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 aNotifyAboutUpdates
config property to allow update notifications to be toggled globally instead of per mod (since the command state was stored inPersistentSymbols.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
- 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 withocam_
) 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 aWIDTHxHEIGHT
form, e.g.1440x720
).
- Allowed custom screen resolutions to be added using
- 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 ofTTRS
to prevent it from being detected by the Depend utility. - Added
BigFill
type to theSlider:
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 add1 (0%)
,1.65 (65%)
and2 (100%)
values). - Added
Button
type for creating clickable buttons that recursively open another option config specified with the nextInclude:
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()
andpck_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 usingPatchInfo()
command. - Added new
ClassicsPatchAPI
shell symbol for identifying patch versions with the new API to replaceCoreAPI
.
- Added API version using
- 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
- Download desired version of the patch (
TFE1.05_<date>.zip
orTSE1.07_<date>.zip
for Steam). - Navigate to the game folder and extract contents of the ZIP archive into it.
- Agree to replace existing files (original unmodified copies of the files are included with an
_OG
suffix at the end of the name). - (Optional) Download
SE1_RevResources.gro
and put it in the game folder if you intend on playing Revolution levels without mounting Revolution itself. - (Optional) Download
SE1_ClassicsPatch_<language>.gro
and put it in the game folder to install desired localization of the patch.