1
0
mirror of https://github.com/alliedmodders/metamod-source.git synced 2024-11-29 11:24:19 +01:00
HLMetaModOfficial/support/changelog.txt

202 lines
9.9 KiB
Plaintext
Raw Normal View History

2008/??/?? 1.7.0:
- Fixed amb1952: Crash when first plugin listed in metaplugins.ini had an alias
and was not on the first line of the file.
Some reorganization. --HG-- rename : sourcemm/IPluginManager.h => core/IPluginManager.h rename : sourcemm/ISmmAPI.h => core/ISmmAPI.h rename : sourcemm/ISmmPlugin.h => core/ISmmPlugin.h rename : sourcemm/ISmmPluginExt.h => core/ISmmPluginExt.h rename : sourcemm/LICENSE.txt => core/LICENSE.txt rename : sourcemm/Makefile => core/Makefile rename : sourcemm/changelog.txt => core/changelog.txt rename : sourcemm/episode1/console.cpp => core/episode1/console.cpp rename : sourcemm/episode1/console.h => core/episode1/console.h rename : sourcemm/episode1/convar_smm.h => core/episode1/convar_smm.h rename : sourcemm/episode1/msvc8/sourcemm.sln => core/episode1/msvc8/sourcemm.sln rename : sourcemm/episode1/msvc8/sourcemm.vcproj => core/episode1/msvc8/sourcemm.vcproj rename : sourcemm/episode1/provider_ep1.cpp => core/episode1/provider_ep1.cpp rename : sourcemm/episode1/provider_ep1.h => core/episode1/provider_ep1.h rename : sourcemm/episode1/vsp_listener.cpp => core/episode1/vsp_listener.cpp rename : sourcemm/episode1/vsp_listener.h => core/episode1/vsp_listener.h rename : sourcemm/metamod.cpp => core/metamod.cpp rename : sourcemm/metamod.h => core/metamod.h rename : sourcemm/metamod_console.cpp => core/metamod_console.cpp rename : sourcemm/metamod_console.h => core/metamod_console.h rename : sourcemm/metamod_oslink.cpp => core/metamod_oslink.cpp rename : sourcemm/metamod_oslink.h => core/metamod_oslink.h rename : sourcemm/metamod_plugins.cpp => core/metamod_plugins.cpp rename : sourcemm/metamod_plugins.h => core/metamod_plugins.h rename : sourcemm/metamod_provider.h => core/metamod_provider.h rename : sourcemm/metamod_util.cpp => core/metamod_util.cpp rename : sourcemm/metamod_util.h => core/metamod_util.h rename : sourcemm/episode2/console.cpp => core/provider/console.cpp rename : sourcemm/episode2/console.h => core/provider/console.h rename : sourcemm/episode2/msvc8/sourcemm.sln => core/provider/msvc8/sourcemm.sln rename : sourcemm/episode2/msvc8/sourcemm.vcproj => core/provider/msvc8/sourcemm.vcproj rename : sourcemm/episode2/msvc9/sourcemm.sln => core/provider/msvc9/sourcemm.sln rename : sourcemm/episode2/msvc9/sourcemm.vcproj => core/provider/msvc9/sourcemm.vcproj rename : sourcemm/episode2/provider_ep2.cpp => core/provider/provider_ep2.cpp rename : sourcemm/episode2/provider_ep2.h => core/provider/provider_ep2.h rename : sourcemm/episode2/vsp_listener.cpp => core/provider/vsp_listener.cpp rename : sourcemm/episode2/vsp_listener.h => core/provider/vsp_listener.h rename : sourcehook/FastDelegate.h => core/sourcehook/FastDelegate.h rename : sourcehook/generate/FastDelegate.h => core/sourcehook/generate/FastDelegate.h rename : sourcehook/generate/FastDelegate.hxx => core/sourcehook/generate/FastDelegate.hxx rename : sourcehook/generate/generate => core/sourcehook/generate/generate rename : sourcehook/generate/generate.bat => core/sourcehook/generate/generate.bat rename : sourcehook/generate/sh_memfuncinfo.h => core/sourcehook/generate/sh_memfuncinfo.h rename : sourcehook/generate/sh_memfuncinfo.hxx => core/sourcehook/generate/sh_memfuncinfo.hxx rename : sourcehook/generate/shworker.bin => core/sourcehook/generate/shworker.bin rename : sourcehook/generate/shworker.exe => core/sourcehook/generate/shworker.exe rename : sourcehook/generate/shworker/Makefile => core/sourcehook/generate/shworker/Makefile rename : sourcehook/generate/shworker/fd_hopter.cpp => core/sourcehook/generate/shworker/fd_hopter.cpp rename : sourcehook/generate/shworker/msvc7/shworker.vcproj => core/sourcehook/generate/shworker/msvc7/shworker.vcproj rename : sourcehook/generate/shworker/msvc8/shworker.vcproj => core/sourcehook/generate/shworker/msvc8/shworker.vcproj rename : sourcehook/generate/shworker/shworker.cpp => core/sourcehook/generate/shworker/shworker.cpp rename : sourcehook/generate/sourcehook.h => core/sourcehook/generate/sourcehook.h rename : sourcehook/generate/sourcehook.hxx => core/sourcehook/generate/sourcehook.hxx rename : sourcehook/sh_list.h => core/sourcehook/sh_list.h rename : sourcehook/sh_memfuncinfo.h => core/sourcehook/sh_memfuncinfo.h rename : sourcehook/sh_memory.h => core/sourcehook/sh_memory.h rename : sourcehook/sh_pagealloc.h => core/sourcehook/sh_pagealloc.h rename : sourcehook/sh_stack.h => core/sourcehook/sh_stack.h rename : sourcehook/sh_string.h => core/sourcehook/sh_string.h rename : sourcehook/sh_tinyhash.h => core/sourcehook/sh_tinyhash.h rename : sourcehook/sh_vector.h => core/sourcehook/sh_vector.h rename : sourcehook/sourcehook.cpp => core/sourcehook/sourcehook.cpp rename : sourcehook/sourcehook.h => core/sourcehook/sourcehook.h rename : sourcehook/sourcehook_hookmangen.cpp => core/sourcehook/sourcehook_hookmangen.cpp rename : sourcehook/sourcehook_hookmangen.h => core/sourcehook/sourcehook_hookmangen.h rename : sourcehook/sourcehook_hookmangen_x86.h => core/sourcehook/sourcehook_hookmangen_x86.h rename : sourcehook/sourcehook_impl.h => core/sourcehook/sourcehook_impl.h rename : sourcehook/sourcehook_impl_chook.h => core/sourcehook/sourcehook_impl_chook.h rename : sourcehook/sourcehook_impl_chookidman.h => core/sourcehook/sourcehook_impl_chookidman.h rename : sourcehook/sourcehook_impl_chookmaninfo.h => core/sourcehook/sourcehook_impl_chookmaninfo.h rename : sourcehook/sourcehook_impl_ciface.h => core/sourcehook/sourcehook_impl_ciface.h rename : sourcehook/sourcehook_impl_cproto.h => core/sourcehook/sourcehook_impl_cproto.h rename : sourcehook/sourcehook_impl_cvfnptr.h => core/sourcehook/sourcehook_impl_cvfnptr.h rename : sourcehook/sourcehook_pibuilder.h => core/sourcehook/sourcehook_pibuilder.h rename : sourcehook/test/Makefile => core/sourcehook/test/Makefile rename : sourcehook/test/generate.bat => core/sourcehook/test/generate.bat rename : sourcehook/test/main.cpp => core/sourcehook/test/main.cpp rename : sourcehook/test/msvc7/test.vcproj => core/sourcehook/test/msvc7/test.vcproj rename : sourcehook/test/msvc8/test.vcproj => core/sourcehook/test/msvc8/test.vcproj rename : sourcehook/test/sourcehook_test.h => core/sourcehook/test/sourcehook_test.h rename : sourcehook/test/test1.cpp => core/sourcehook/test/test1.cpp rename : sourcehook/test/test2.cpp => core/sourcehook/test/test2.cpp rename : sourcehook/test/test3.cpp => core/sourcehook/test/test3.cpp rename : sourcehook/test/test4.cpp => core/sourcehook/test/test4.cpp rename : sourcehook/test/testbail.cpp => core/sourcehook/test/testbail.cpp rename : sourcehook/test/testbail.h => core/sourcehook/test/testbail.h rename : sourcehook/test/testbail2.cpp => core/sourcehook/test/testbail2.cpp rename : sourcehook/test/testevents.h => core/sourcehook/test/testevents.h rename : sourcehook/test/testhookmangen.cpp => core/sourcehook/test/testhookmangen.cpp rename : sourcehook/test/testhookmangen.h => core/sourcehook/test/testhookmangen.h rename : sourcehook/test/testhookmangen.hxx => core/sourcehook/test/testhookmangen.hxx rename : sourcehook/test/testlist.cpp => core/sourcehook/test/testlist.cpp rename : sourcehook/test/testmanual.cpp => core/sourcehook/test/testmanual.cpp rename : sourcehook/test/testmulti.cpp => core/sourcehook/test/testmulti.cpp rename : sourcehook/test/testrecall.cpp => core/sourcehook/test/testrecall.cpp rename : sourcehook/test/testreentr.cpp => core/sourcehook/test/testreentr.cpp rename : sourcehook/test/testref.cpp => core/sourcehook/test/testref.cpp rename : sourcehook/test/testrefret.cpp => core/sourcehook/test/testrefret.cpp rename : sourcehook/test/testvphooks.cpp => core/sourcehook/test/testvphooks.cpp rename : sourcemm/svn_version.h => core/svn_version.h rename : sourcemm/svn_version.tpl => core/svn_version.tpl rename : sourcemm/version.rc => core/version.rc
2008-11-14 11:04:02 +01:00
2008/07/26 1.6.2:
- Fixed a bug where VDF files were opened by MM:S even if the .vdf extension
was not at the very end of the filename. For example, "plugin.vdf.disabled"
would have been opened in previous versions. (bug 1534)
- Removed FCVAR_REPLICATED from MM:S convars. The following message will no
longer appear in client consoles: ConVarRef metamod_version doesn't point to
an existing ConVar. (bug 1480)
2008/02/25 1.6.1:
- Fixed crash bug against mods compiled with GCC-4.2 -fvisibility=hidden
- API wrappers for GetUserMessageInfo() now have failsafe fallbacks
since the OrangeBox SDK fixed an older SDK's crash bug.
2008/02/18 1.6.0:
- Added ability to load from a VDF file instead of gameinfo.txt.
- Added ability to load MM:S plugins from VDF files.
- Added new version of SourceHook with the following changes:
- Added API for hooking functions on a virtual table to all instances.
- SH_ADD_HOOK macros now return non-zero hook IDs. Additionally,
the old hook adding/removing syntax is deprecated (but still supported).
- Added SH_REMOVE_HOOK_ID to remove hooks by ID.
- CallClasses have been deprecated. The SH_CALL macro can now take a class
instance pointer rather than a callclass pointer.
- Can now generate dynamic, arbitrary hooks at runtime (see hookmangen).
- Metamod:Source has now received a large internal rewrite to improve coding
standards and to separate internal logic from engine specifics.
- Added mm_basedir cvar to specify Metamod's base folder.
- Added API for getting highest supported IServerPluginCallbacks interface
version.
- Added API for detecting the engine version.
- Added API for getting the VSP-simulation interface upon late loading.
- Added OnUnlinkConCommandBase to IMetamodListner to notify when Metamod:Source
is about to remove a concommand or convar.
- Added the ability for Metamod:Source to load as a VSP instead of through
gameinfo.txt.
- The output of the "meta list" command has been reformatted in order to allow
more space for plugins' name, version, and author fields.
- Sample/Stub plugins have improved building mechanism and code, and will
compile against both MM:S 1.6 for OrangeBox and MM:S 1.4 for Episode 1.
2008/07/26 1.4.4:
- Fixed a bug where loading plugins built for MM:S 1.3 or older (API ver <= 9)
would cause a crash.
- Fixed a bug where loading plugins using VDF files caused Metamod:Source
to crash on The Ship. (bug 1523)
- Fixed a class of crashes caused by improper cvar removal handling. (bug 1416)
- Fixed a bug where VDF files were opened by MM:S even if the .vdf extension
was not at the very end of the filename. For example, "plugin.vdf.disabled"
would have been opened in previous versions. (bug 1534)
- Removed FCVAR_REPLICATED from MM:S convars. (bug 1479)
2008/01/23 1.4.3:
- Metamod:Source can now be loaded via a .vdf instead of gameinfo.txt.
- Added new plugin loading mechanism via .vdf files in the metamod folder.
- Changed "meta list" output to look similar to Metamod:Source 1.6.
- Plugins which need a VSP pointer can now receive it on late load.
- Fixed a small memory leak when using recalls (RETURN_META_NEWPARAMS).
- Fixed a rare memory corruption bug in the CVector class.
Some reorganization. --HG-- rename : sourcemm/IPluginManager.h => core/IPluginManager.h rename : sourcemm/ISmmAPI.h => core/ISmmAPI.h rename : sourcemm/ISmmPlugin.h => core/ISmmPlugin.h rename : sourcemm/ISmmPluginExt.h => core/ISmmPluginExt.h rename : sourcemm/LICENSE.txt => core/LICENSE.txt rename : sourcemm/Makefile => core/Makefile rename : sourcemm/changelog.txt => core/changelog.txt rename : sourcemm/episode1/console.cpp => core/episode1/console.cpp rename : sourcemm/episode1/console.h => core/episode1/console.h rename : sourcemm/episode1/convar_smm.h => core/episode1/convar_smm.h rename : sourcemm/episode1/msvc8/sourcemm.sln => core/episode1/msvc8/sourcemm.sln rename : sourcemm/episode1/msvc8/sourcemm.vcproj => core/episode1/msvc8/sourcemm.vcproj rename : sourcemm/episode1/provider_ep1.cpp => core/episode1/provider_ep1.cpp rename : sourcemm/episode1/provider_ep1.h => core/episode1/provider_ep1.h rename : sourcemm/episode1/vsp_listener.cpp => core/episode1/vsp_listener.cpp rename : sourcemm/episode1/vsp_listener.h => core/episode1/vsp_listener.h rename : sourcemm/metamod.cpp => core/metamod.cpp rename : sourcemm/metamod.h => core/metamod.h rename : sourcemm/metamod_console.cpp => core/metamod_console.cpp rename : sourcemm/metamod_console.h => core/metamod_console.h rename : sourcemm/metamod_oslink.cpp => core/metamod_oslink.cpp rename : sourcemm/metamod_oslink.h => core/metamod_oslink.h rename : sourcemm/metamod_plugins.cpp => core/metamod_plugins.cpp rename : sourcemm/metamod_plugins.h => core/metamod_plugins.h rename : sourcemm/metamod_provider.h => core/metamod_provider.h rename : sourcemm/metamod_util.cpp => core/metamod_util.cpp rename : sourcemm/metamod_util.h => core/metamod_util.h rename : sourcemm/episode2/console.cpp => core/provider/console.cpp rename : sourcemm/episode2/console.h => core/provider/console.h rename : sourcemm/episode2/msvc8/sourcemm.sln => core/provider/msvc8/sourcemm.sln rename : sourcemm/episode2/msvc8/sourcemm.vcproj => core/provider/msvc8/sourcemm.vcproj rename : sourcemm/episode2/msvc9/sourcemm.sln => core/provider/msvc9/sourcemm.sln rename : sourcemm/episode2/msvc9/sourcemm.vcproj => core/provider/msvc9/sourcemm.vcproj rename : sourcemm/episode2/provider_ep2.cpp => core/provider/provider_ep2.cpp rename : sourcemm/episode2/provider_ep2.h => core/provider/provider_ep2.h rename : sourcemm/episode2/vsp_listener.cpp => core/provider/vsp_listener.cpp rename : sourcemm/episode2/vsp_listener.h => core/provider/vsp_listener.h rename : sourcehook/FastDelegate.h => core/sourcehook/FastDelegate.h rename : sourcehook/generate/FastDelegate.h => core/sourcehook/generate/FastDelegate.h rename : sourcehook/generate/FastDelegate.hxx => core/sourcehook/generate/FastDelegate.hxx rename : sourcehook/generate/generate => core/sourcehook/generate/generate rename : sourcehook/generate/generate.bat => core/sourcehook/generate/generate.bat rename : sourcehook/generate/sh_memfuncinfo.h => core/sourcehook/generate/sh_memfuncinfo.h rename : sourcehook/generate/sh_memfuncinfo.hxx => core/sourcehook/generate/sh_memfuncinfo.hxx rename : sourcehook/generate/shworker.bin => core/sourcehook/generate/shworker.bin rename : sourcehook/generate/shworker.exe => core/sourcehook/generate/shworker.exe rename : sourcehook/generate/shworker/Makefile => core/sourcehook/generate/shworker/Makefile rename : sourcehook/generate/shworker/fd_hopter.cpp => core/sourcehook/generate/shworker/fd_hopter.cpp rename : sourcehook/generate/shworker/msvc7/shworker.vcproj => core/sourcehook/generate/shworker/msvc7/shworker.vcproj rename : sourcehook/generate/shworker/msvc8/shworker.vcproj => core/sourcehook/generate/shworker/msvc8/shworker.vcproj rename : sourcehook/generate/shworker/shworker.cpp => core/sourcehook/generate/shworker/shworker.cpp rename : sourcehook/generate/sourcehook.h => core/sourcehook/generate/sourcehook.h rename : sourcehook/generate/sourcehook.hxx => core/sourcehook/generate/sourcehook.hxx rename : sourcehook/sh_list.h => core/sourcehook/sh_list.h rename : sourcehook/sh_memfuncinfo.h => core/sourcehook/sh_memfuncinfo.h rename : sourcehook/sh_memory.h => core/sourcehook/sh_memory.h rename : sourcehook/sh_pagealloc.h => core/sourcehook/sh_pagealloc.h rename : sourcehook/sh_stack.h => core/sourcehook/sh_stack.h rename : sourcehook/sh_string.h => core/sourcehook/sh_string.h rename : sourcehook/sh_tinyhash.h => core/sourcehook/sh_tinyhash.h rename : sourcehook/sh_vector.h => core/sourcehook/sh_vector.h rename : sourcehook/sourcehook.cpp => core/sourcehook/sourcehook.cpp rename : sourcehook/sourcehook.h => core/sourcehook/sourcehook.h rename : sourcehook/sourcehook_hookmangen.cpp => core/sourcehook/sourcehook_hookmangen.cpp rename : sourcehook/sourcehook_hookmangen.h => core/sourcehook/sourcehook_hookmangen.h rename : sourcehook/sourcehook_hookmangen_x86.h => core/sourcehook/sourcehook_hookmangen_x86.h rename : sourcehook/sourcehook_impl.h => core/sourcehook/sourcehook_impl.h rename : sourcehook/sourcehook_impl_chook.h => core/sourcehook/sourcehook_impl_chook.h rename : sourcehook/sourcehook_impl_chookidman.h => core/sourcehook/sourcehook_impl_chookidman.h rename : sourcehook/sourcehook_impl_chookmaninfo.h => core/sourcehook/sourcehook_impl_chookmaninfo.h rename : sourcehook/sourcehook_impl_ciface.h => core/sourcehook/sourcehook_impl_ciface.h rename : sourcehook/sourcehook_impl_cproto.h => core/sourcehook/sourcehook_impl_cproto.h rename : sourcehook/sourcehook_impl_cvfnptr.h => core/sourcehook/sourcehook_impl_cvfnptr.h rename : sourcehook/sourcehook_pibuilder.h => core/sourcehook/sourcehook_pibuilder.h rename : sourcehook/test/Makefile => core/sourcehook/test/Makefile rename : sourcehook/test/generate.bat => core/sourcehook/test/generate.bat rename : sourcehook/test/main.cpp => core/sourcehook/test/main.cpp rename : sourcehook/test/msvc7/test.vcproj => core/sourcehook/test/msvc7/test.vcproj rename : sourcehook/test/msvc8/test.vcproj => core/sourcehook/test/msvc8/test.vcproj rename : sourcehook/test/sourcehook_test.h => core/sourcehook/test/sourcehook_test.h rename : sourcehook/test/test1.cpp => core/sourcehook/test/test1.cpp rename : sourcehook/test/test2.cpp => core/sourcehook/test/test2.cpp rename : sourcehook/test/test3.cpp => core/sourcehook/test/test3.cpp rename : sourcehook/test/test4.cpp => core/sourcehook/test/test4.cpp rename : sourcehook/test/testbail.cpp => core/sourcehook/test/testbail.cpp rename : sourcehook/test/testbail.h => core/sourcehook/test/testbail.h rename : sourcehook/test/testbail2.cpp => core/sourcehook/test/testbail2.cpp rename : sourcehook/test/testevents.h => core/sourcehook/test/testevents.h rename : sourcehook/test/testhookmangen.cpp => core/sourcehook/test/testhookmangen.cpp rename : sourcehook/test/testhookmangen.h => core/sourcehook/test/testhookmangen.h rename : sourcehook/test/testhookmangen.hxx => core/sourcehook/test/testhookmangen.hxx rename : sourcehook/test/testlist.cpp => core/sourcehook/test/testlist.cpp rename : sourcehook/test/testmanual.cpp => core/sourcehook/test/testmanual.cpp rename : sourcehook/test/testmulti.cpp => core/sourcehook/test/testmulti.cpp rename : sourcehook/test/testrecall.cpp => core/sourcehook/test/testrecall.cpp rename : sourcehook/test/testreentr.cpp => core/sourcehook/test/testreentr.cpp rename : sourcehook/test/testref.cpp => core/sourcehook/test/testref.cpp rename : sourcehook/test/testrefret.cpp => core/sourcehook/test/testrefret.cpp rename : sourcehook/test/testvphooks.cpp => core/sourcehook/test/testvphooks.cpp rename : sourcemm/svn_version.h => core/svn_version.h rename : sourcemm/svn_version.tpl => core/svn_version.tpl rename : sourcemm/version.rc => core/version.rc
2008-11-14 11:04:02 +01:00
2007/06/26 1.4.2:
- Fixed a bug where unloading all plugins could crash if one plugin had child
plugins.
2007/05/16 1.4.1:
- The client version of the "meta" command should now work with games using the
latest Source beta (srcds0407).
- Fixed amb233 (VSP listener didn't work with Steam dedicated version).
- Fixed amb277 (failed to get user message list in Kreedz Climbing).
2007/04/05 1.4.0:
- Added API functions for retrieving User Message info without potentially
crashing.
- Added API functions for letting SourceMM plugins use Valve Server Plugin
callbacks.
- Added plugin status to client version of "meta list" command. Previously, it
did not differentiate between running and paused plugins.
- An experimental automatic gameinfo.txt fixer is now available.
- Changed version numbering to include the build number (SVN revision).
- Fixed amb93 (improved mod path detection).
- Fixed various rare string inconsistencies.
2006/11/29 1.3d:
- Updated Metamod:Source to recognize the latest Source Engine version
(ServerGameDLL006)
2006/09/06 1.3a:
- Fixed a building issue on Linux which caused unresolved symbol errors when
trying to load Metamod:Source on a game using an older set of engine
libraries. This fix should now allow Metamod:Source to run with The Ship on
Linux.
2006/08/16 1.3:
- Added SourceHook support for functions that return references.
- Added some extra information to the "meta game" command: Description and
Interface. For example, CS:S would display "Counter-Strike: Source" and
"ServerGameDLL004."
- Added some extra functionality to ISmmPluginManager.
- Added compiling support for MSVC 8.0 (Visual Studio 2005) and GCC 4.x.
- Added another API helper function for formatting and searching for
interfaces.
- Updated project files and source tree to use the latest HL2SDK.
- Updated the sample plugins to be a bit cleaner and use newer API.
- Fixed bug where Metamod:Source could load the wrong GameDLL and/or load more
than one GameDLL. This issue occured in HL2 CTF, SourceForts, or any other
mod that relied on files from another mod directory.
- Fixed bug where ISmmAPI::MetaFactory() would return the wrong interface when
trying to retrieve ISmmPluginManager.
- Fixed bug where returning false in Load() after adding a Metamod event
listener or hooking a function could cause a crash instead of rejecting the
plugin.
- Fixed bug where trying to load Metamod:Source a second time as a SourceMM or
Valve server plugin could cause a crash.
- Fixed a bug in FormatIface() that caused InterfaceSearch() to infinite loop.
2006/06/14 1.2.3:
- Added SourceHook API for manual recalls: RETURN_META_(VALUE_)MNEWPARAMS
- Added support for ServerGameDLL005 (latest HL2DM update)
2006/05/25 1.2.2:
- Added the ability to "alias" plugin names in metaplugins.ini.
- Added "meta alias" command.
- Added SourceHook API for manual callclasses.
- Added support for the latest Source engine (ServerGameDLL005).
- Added API for printing text in a client's console with ClientConPrintf. This
does the same thing as IVEngineServer::ClientPrintf except that it allows
string formatting.
- Added client version of "meta" command in order to allow clients to view
version information and a list of loaded plugins.
- Fixed a bug causing old mods on newer engines to fail loading.
- Fixed issues with SourceHook's SH_CALL and reference parameters.
- Fixed a bug where the mm_pluginsfile cvar was being ignored.
- Fixed a memory leak when using ISmmAPI::InterfaceSearch.
2006/02/15 1.2.1:
- Fixed bug where returning newparams in a post hook would cause infinite
recursion.
- Fixed bug where "meta load" could load the same plugin multiple times.
- Fixed bug where unloading a plugin could crash internal hook states.
- Fixed bug where unhooking a single hook would clear the hook chain.
2006/01/07 1.2:
- Added SourceHook API for modifying parameters in the hook chain.
- Added SourceHook API for declaring and hooking manual vtable hooks.
- Added better API for querying an interface factory.
- Added API for formatting an OS-independent path.
- Added Listen Server Launcher to the graphical installer.
- Fixed bug where failed plugins could crash the plugin list.
- NOTE: SourceHook changes may require plugins to be recompiled against the new
API.
2005/12/06 1.1.2:
- Added interface overriding/sharing examples to sample plugins.
- Added API to help guessing at Valve interface versions.
- Fixed various memory leaks.
- Fixed memory corruption bug on vector copying.
- Fixed other various template bugs.
2005/10/21 1.1.1:
- Fixed a bug where AllPluginsLoaded() was not called after DLLInit().
2005/10/21 1.1:
- Rewrote GameDLL loading code to be API version generic. As such, SourceMM
will now easily support new API releases without an SDK release, such as the
case with Day of Defeat:Source.
- Added more flexibility to plugin control by supplying an event system.
- Removed dependency on libstdc++.so by supplying a small template library.
- SourceHook internal API is now interface-based, meaning that future updates
to the API will not break older plugins. This update, however, breaks older
plugins.
- SourceHook is now re-entrant.
- Added a basic automated installer (by Basic-Master).
- Fixed a bug where games with changing game names would not work.
- Fixed various bugs, including a cvarlist corruption bug on unloading plugins.
2005/07/07 1.00-RC2:
- Added API for dealing with ConCommandBase registration (cvars/concmds). This
is to fix the fact that Valve API provides no way to unlist a cvar/cmd.
- Added two new commands - "meta cmds" and "meta cvars".
- Added API calls for correctly printing to the console such that rcon will
also receive messages that a plugin prints. This problem was mentioned on
hlcoders and Valve offered no reply.
- Added event hooking and cvar samples to sample_mm.
- Added new cvar, mm_pluginsfile, which defaults to
"addons/metamod/metaplugins.ini".
- Fixed a bug where multiple vtable patches on the same hook were not
re-patched when removed. This caused a crash when two hooks were declared on
one function, the first was removed, and the original function was then
called.
- Fixed "meta clear" not unloading all plugins.
- Fixed Metamod:Source loading plugins with a higher current API version.
- Fixed whitespace being parsed in metaplugins.ini.
- Fixed bug where SourceHook tried to patch already destroyed/unavailable
memory.
- Bumped Plugin API version to 6.
2005/05/06 1.00-RC1:
- Initial release.