github SamClassicPatch/SuperProject 1.9-pre1
1.9 update (Pre-release 1)

latest release: 1.9
pre-releaseone month ago

THIS IS A PRE-RELEASE VERSION! This means that it's not yet ready for proper usage!

If you'd like to help testing it, install it just like a regular Classics Patch update. All found bugs should be reported as soon as possible!

Primary features to test

  • New controller support and Mouse Button 4 & Mouse Button 5.
  • Overall game menu due to major modifications.
  • Overall stability due to the rewritten API.
  • Italian localization.

NOTE: The wiki will be updated to reflect changes in this version once the full release happens.

Changes since 1.8

Common changes

  • Replaced sam_bNotifyAboutUpdates command with a NotifyAboutUpdates config property to allow update notifications to be toggled globally instead of per mod (since the command state was stored in PersistentSymbols.ini).
  • Added observer camera command for multiplying speed for changing the FOV (ocam_fFOVChangeMul command).
  • Added shell command for clearing the entire console log (ClearConsole() command).
  • Extended input functionality by patching input interface methods:
    • Finally made Mouse Button 4 and Mouse Button 5 work properly.
    • Improved game controller support by replacing Windows Multimedia Joystick functionality with SDL_GameController.
    • Renamed all controller buttons & axes from generic joystick names to actions of an Xbox-like controller.
    • Allowed controller axes to be bound as regular buttons (primarily for triggers).
      • Added inp_fAxisPressThreshold command for controlling the movement threshold after which an axis is considered "pressed".
    • Added display of currently connected controllers using inp_JoystickInfo() command.
  • Added Italian localization via a separate GRO file with translation files (thanks to @Kappa971).

Mod changes

  • Fixed modded GameGUI windows not opening in any editor: SamClassicPatch/Mod#5
  • Synchronized message counters between player predictions and real player entities to get rid of the notification sound every time an enemy is killed with prediction on.
  • Made Game library replace old camera commands (starting with cam_) with new observer camera ones (starting with ocam_) to avoid errors from using them.

Game changes

  • Reworked certain parts of the menu to hopefully make going from menu to menu more reliable.
  • Replaced hardcoded "Video Options" & "Audio Options" menus with custom option configs.
    • Allowed custom screen resolutions to be added using Data/ClassicsPatch/Resolutions.lst file (in a WIDTHxHEIGHT form, e.g. 1440x720).
  • Allowed using controllers for navigating the game menu and NETRICSA.
  • Completely remade "Advanced Joystick Setup" menu to be more convenient to use.
  • Made sliders continuously change values only on the initially clicked slider (instead of any one underneath the mouse while LMB is held down).
  • Fixed sliders being unable to continuously change values on held LMB in fullscreen mode.
  • Changes to option configs:
    • Made option config display a fatal error instead of crashing, if its file cannot be loaded.
    • Allowed translating strings using PATCHLOCALIZE chunk instead of TTRS to prevent it from being detected by the Depend utility.
    • Added BigFill type to the Slider: property that creates big fill bars, akin to the volume sliders.
    • Added Range: property that automatically generates a list of values from 0% to 100% by specifying the min value, the max value and the step size (e.g. Range: 1 2 0.65 will add 1 (0%), 1.65 (65%) and 2 (100%) values).
    • Added Button type for creating clickable buttons that recursively open another option config specified with the next Include: property.
    • Added AutoValue: property that automatically adds specific values to an option and does extra configuration for it based on the specified variable. If no variable is specified, it simply adds the value as is and uses it as an automatically translated display name.
    • Implemented convenient drop-down lists for Toggle config options with more than 2 values (sam_bConfigValueLists command).

Server changes

  • Rewrote internal logic of built-in extension packets, which breaks compatibility with previous versions of the patch. Any demos that have been recorded with extension packets being used are going to be broken starting from this version.
  • Added built-in extension packets for playing global sounds for all clients (pck_PlayQuickSound() and pck_PlayGlobalSound() commands).

Plugin changes

Server Utilities

  • Fixed the issue with only the last weapon from the list being given out/taken away on all PlayerMarker entities. For example, only Sniper was given out when Chainsaw, Tommygun and Sniper were enabled.

Other changes

  • Completely redesigned and rewrote the API for the Core library. The new external frontend is now implemented via C API.
    • Added API version using CLASSICSPATCH_INTERFACE_VERSION macro to patch info that's displayed using PatchInfo() command.
    • Added new ClassicsPatchAPI shell symbol for identifying patch versions with the new API to replace CoreAPI.
  • Took out a lot of code from the entire project to form a standalone header library and utilized its code instead.
  • Added experimental build configuration for the open-source forks of The Second Encounter v1.10, much like the Revolution configuration.
  • Added tools to the main repository for assisting in creation of localizations to other languages.
  • Updated patch credits page in the game menu to include third party resources.
  • Added default control presets for game controllers in slots 1-4.

Known issues

Installation

  1. Download desired version of the patch (TFE1.05_<date>.zip or TSE1.07_<date>.zip for Steam).
  2. Navigate to the game folder and extract contents of the ZIP archive into it.
  3. Agree to replace existing files (original unmodified copies of the files are included with an _OG suffix at the end of the name).
  4. (Optional) Download SE1_RevResources.gro and put it in the game folder if you intend on playing Revolution levels without mounting Revolution itself.
  5. (Optional) Download SE1_ClassicsPatch_<language>.gro and put it in the game folder to install desired localization of the patch.

Don't miss a new SuperProject release

NewReleases is sending notifications on new releases.