Metamod:Source 1.8.0 Release Notes
Metamod:Source 1.8.0 is currently in beta. These release notes are preliminary.
New Engine Support
Support has been added for using Metamod:Source on "Left 4 Dead 2". This game uses a variation of the Source engine present in Left 4 Dead 1.
As of L4D2, Valve has ceased using the "*_i486.so" naming scheme for Linux binaries in favor of the slightly less meaningless "*_linux.so". If you have plugins which link against tier0 or vstdlib, keep in mind that they are now tier0_linux.so and vstdlib_linux.so. Similarly, Metamod:Source now ships with both "server_i486.so" and "server_linux.so" and these binaries are identical.
Metamod:Source will continue to automatically append an "_i486.so" when loading plugins, in order to maintain consistency across game engines for plugin distributors.
AlliedModders has reverse engineered an L4D2 SDK capable of building plugins. This attempt is preliminary and more fixes may come as we explore the engine. You can grab a copy from our Mercurial forest (see the bottom of the page). If you discover any changes yourself, we greatly appreciate bug reports or any attempts at notifying us.
Of note, IVEngineServer::Time() is now IVEngineServer::OBSOLETE_Time() and has been deprecated for tier0's Plat_FloatTime() call. The convar.h and SendProp headers changed as well.
Legacy API Changes
A large number of SourceHook features have been backported from the "New API" version of SourceHook. These are:
- Global hooks, also called "VP" and "DVP" hooks.
- Extended removal and addition syntax.
- New SH_CALL - CallClasses are now deprecated, although unlike the "New API" SourceHook, the old syntax is still available.
- SH_GET_ORIG_VFNPTR macro.
We have backported three extra API calls from the New API:
- IMetamodListener::OnUnlinkConCommandBase() - Notification of plugin cvar removal.
- ISmmAPI::GetVSPInfo() - Extended VSP information.
- ISmmAPI::GetSourceEngineBuild() - Source Engine version information.
Because of these changes, PLAPI_VERSION has been incremented to 11. Plugins compiled against Metamod:Source 1.8's legacy API will not load on earlier versions.
New API Changes
Metamod:Source now treats TF and DoD:S as a separate "Orange Box Valve" engine, since compatibility diverged with a recent update. GetSourceEngineBuild now returns a new SOURCE_ENGINE_ORANGEBOXVALVE value for this game. Similarly, users of the "extended loading" API will see this value in MetamodVersionInfo. To preserve compatibility, Metamod:Source will default back to SOURCE_ENGINE_ORANGEBOX when loading plugins which do not support SOURCE_ENGINE_ORANGEBOXVALVE (however, GetSourceEngineBuild will return the correct result).
Also for users of the extended loading API, the MetamodVersionInfo struct now has a game_dir field which contains the game folder. Since it is only valid to read this field on newer versions, there is a helper function to retrieve the value or return NULL.
METAMOD_PLAPI_VERSION has been incremented to 15. Plugins compiled against Metamod:Source 1.8 will not load against earlier versions. However, extended loaders can take advantage of the new API while loading older plugins.