This covers all commits to 1.7 since the release of 1.7.2.
Now that we're on a roling release cycle, I'd like to do a roundup like this semi-regularly (depending on interest and commit frequency) to replace the old release changelogs.
- The normal set of gamedata updates for numerous games.
- Worked around a case where client connections could desynchronize, causing authentication information to persist across players.
- Fixed a rare crash in the TF2 extension due to a missing IsFree() check.
- Fixed cases where IsCharAlpha/IsCharNumeric/IsCharSpace/IsCharUpper/IsCharLower could return incorrect data.
- Fixed ConVar.*Value property setters not working correctly.
- Fixed mouse movement values in OnPlayerRunCommand for TF2/CS:S/DoD:S/HL2:DM.
- Change default path ID to "GAME" instead of NULL for valvefs-using filesystem natives.
- Fixed SQL_SetCharset potentially misbehaving when used with threaded operations.
- Improve allocation policy for datapacks to save memory.
(Need to recompile plugins for these)
- Fixed an issue where some unary operators could return incorrect data.
- Corrected oversight with view_as<>(...) where it could compile with missing parenthesis.
- Fixed a compiler crash with invalid array initializers.
- Fixed parameter list of DBResultSet.IsFieldNull.
- Added support for Modular Combat.
- Added support for setting string_t Prop_Data fields (such as "m_target") to SetEntPropString.
- Added array support to SetEntPropString.
- Include datapack memory allocation in handle dump.
- Added new condition / holiday constants to tf2.inc.
- Added FindMap native.
- Added GetTeamEntity native.
As always, I'd like to thank the SourceMod team and members of the community contributing changes this period - including Powerlord, FlaminSarge, Thordin, WildCard65, and PeaceMaker.
Most interesting development takes place in the development branch (1.8) and I am currently working on a roundup of that (there is a lot!) - so hold on to your hats!
As for what is coming in the future...
This is all 1.8 changes since forking off 1.7 (also everything already listed above).
There have been a lot of commits moving around SM internals to facilitate future work.
Some stuff may have been missed, some stuff may have snuck in that is in 1.7.x before 1.7.2 - future updates will be a lot easier to compile.
- Corrected buffer sizes for player and map names in numerous base plugins.
- Corrected numerous spelling mistakes throughout the config files and API documentation.
- Fixed methodmap chaining using the wrong value when used as a default parameter.
- Fixed "sm plugins refresh" not reloading changed plugins.
- Fixed a misleading error message from "sm config".
- Increased buffer sizes for PrintTo*All stocks.
- Fixed FindFlagChar returning false when given custom6 flag.
- Notify plugin listeners of SetFailState'd plugins on unload.
- Pause dependent plugins on SetFailState.
- Fixed an issue with asynchronous queries potentially completing after plugin unload.
- Added support for Black Mesa.
- Added SetClientName native.
- Populate MaxClients before OnPluginStart is called.
- Added support for listening to, blocking, changing, and faking ClientCommandKeyValues.
- Introduced a datapack position tag to avoid common mishaps with SetPackPosition.
- Added GetMapDisplayName native to assist working with workshop maps.
- Added EmitSoundEntry native and updated AddNormalSHook with support for newer engine features.
- Added File Transfer hooks to SDKTools.
- Updated convar flags to match modern engines.
- Added offset printing to datamap dumps.
- Include date information in property dumps.
- Changed map history storage limit to be configurable (sm_maphistory_size).
- Added TE_SendToAllInRange native.
- Added GetEntityRenderColor stock.
- Updated large swathes of the API to use methodmaps.
- Removed methodmap native binding syntax.
- Moved the git revision to the 4th version number component.
- Removed lots of unused gamedata.
- Killed off the INativeInvoker extension API.
- Enable SDK independence with MM:S enabled extensions.
- Huge amount of refactoring moving code from Core to Logic (smaller download, faster builds).
- Huge amount of refactoring to SourcePawn VM internals:
- Faster, safer, easier to maintain plugin loading and unloading.
- New error handling model with better stack traces.
- All functions can now be used as callbacks.