From 31c8b41738a75234abc89cddb0c760aaff04dd3e Mon Sep 17 00:00:00 2001 From: STAM Date: Wed, 23 Oct 2024 17:37:12 +0300 Subject: [PATCH 1/6] rollbacked original changelog --- Changelog.txt | 992 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 992 insertions(+) create mode 100644 Changelog.txt diff --git a/Changelog.txt b/Changelog.txt new file mode 100644 index 0000000..feb0794 --- /dev/null +++ b/Changelog.txt @@ -0,0 +1,992 @@ +# vim: set tw=75 ft=none : + +Current version: 1.20p35 + +For newer changes, see Metamod-P git repository commit log at: + http://metamod-p.git.sourceforge.net/git/gitweb.cgi?p=metamod-p/metamod-p;a=summary + +--- + +2012/08/08 1.19p34 + - Revert changes in 1.19p33 and start over with 1.19p32 code base + - Fix compiling with latest userspace headers and gcc-4.6 + - Disabled building x86-64 binaries as Valve has dropped x86-64 + linux server support. + +2012/07/27 1.19p33 + - Accumulated fixes and changes over time + - Fixes compiling with latest userspace headers and gcc-4.6 + - (introduced bugs, crashes, do not use) + +2007/08/12 1.19p32 +[Patch: Metamod-P v32 by Jussi Kivilinna] + - Changed GCC optimization flags based on performance monitoring results, + replaced '-O3 -funroll-all-loops' with '-O2'. + - Made 'Fix for engine_api varargs log calls with very long log string' + default on in sources so that MSVC compile is 1:1 with GCC compile. + - Made 'optimizations on META_DEBUG' always on in sources so that MSVC + compile is 1:1 with GCC compile. + - Fixed compiling META_PERFMON build with MSVC. + - Fixed compiling with MSVC fixed by Nikolay "The Storm" Baklicharov. + - [linux] Remake of dynamic linkent code. Parse dlsym function trampoline + instead of parsing ELF structures. + - [linux] Dropped AMD64 support since Valve doesn't support their AMD64 build + anymore and I don't have access to AMD64 machine to port new dynamic + linkent code. Sorry! + +2007/04/05 1.19p31 +[Patch: Metamod-P v31 by Jussi Kivilinna] + - Enabled 'regparam' for internal functions. Means that function arguments are + passed through registers instead of stack, which increases performance. + - Merged in changes from Metamod 1.19 that I didn't initially notice: + - Fixed a bug where plugins could not catch NewDLL calls for GameDLLs that + do not provide NewDLL information. + +2007/04/04 1.19p30 +[Patch: Metamod-P v30 by Jussi Kivilinna] + - Fixed safevoid_vsnprintf() on win32. + +2007/04/02 1.19p29 +[Patch: Metamod-P v29 by Jussi Kivilinna] + - crash fix that didn't work + +2006/03/04 1.19p28 +[Patch: Metamod-P v28 by Jussi Kivilinna] + - Removed use of __VA_ARGS__ (should be easy to port to msvc now). + - Reduced size of extra engineapi function slots from 128 to 16. + - Clean up code, removed use of likely()/unlikely() macros in places where + they don't give extra performance. + - Added MakeRequestID() API + - Added api for using hook tables from plugins (thanks to BAILOPAN) + - Re-enabled fix for engine_api varargs log calls with very long log string. + +2005/08/24 1.18p26 +[Patch: Metamod-P v26 by Jussi Kivilinna] + - Fixed newapi functions not active on mods that don't use newapi. + - [win32] New is_gamedll() code. + - [linux] Fix for buggy DT_HASH in library walker function. + - Following features were removed to improve stability. These changes were + not present in metamod.org version: + - Removed fix for engine_api varargs log calls with very long log + string. + - Removed optimized version of GET_USER_MSG_ID() for metamod-bots. + +2005/08/24 1.18p25 +[Patch: Metamod-P v25 by Jussi Kivilinna] + - Added mutil::IsQueryingClientCvar(). + - Added support for new HLSDK-API functions: + - enginefuncs_t::pfnQueryClientCvarValue() + - NEW_DLL_FUNCTIONS::pfnCvarValue() + - Fixed reloading and unloading of plugins that haven't been loaded + correctly. + - Fixed loading of plugins that needed changelevel to activate. + - Linux x86 and Windows binaries are now compiled for i586 since there is not + performance difference compared to i686. + - Fixes to improve stability on win32. (thanks to Blackhawk) + - Changed to use mingw-gcc 3.4.2rc + - Changed optimization flags, replaced '-O3 -ffast-math' with '-O2'. + - Minor performance tweaks. + - Changed to use mingw-gcc 3.4.2rc, mingw-gcc 3.4.4rc emited extra code + to zero stack memory which lowered performance. + - Changed API hooks to give structure offset to main API hook function + instead of pointer, which increases performance on linux-i586. + - Raised META_INTERFACE_VERSION to "5:12". + - Fixed metamod_version cvar to show "1.18p25" instead of "1.18.0p25". + - [linux] Improved dynamic linkent code. + - [linux] Static linked with libgcc. + +2005/07/27 1.18p24 +[Patch: Metamod-P v24 by Jussi Kivilinna] + - Updated to match latest metamod.org version. + - Removed mm-p-extensions-API, since loading/unloading plugins functions + are included in Metamod 1.18 in mutil-API. + +2005/04/22 1.17.4p23 +[Patch: Metamod-P v23 by Jussi Kivilinna] + - Fixed broken RegMsgList caused by optimization for mm-bots. + - Fixed optimization for mm-bots. + - [linux] Removed ESF-Mod fix. + - [linux] Minor performance tweaks and reduced filesize for linux. + +2005/04/08 1.17.4p22 +[Patch: Metamod-P v22 by Jussi Kivilinna] + - Optimized GET_USER_MSG_ID() function for metamod-bots. + - Minor performance tweaks. + - [linux] Looks for gamedll for Earth Special Forces Mod from 'linuxdlls' + directory after checking 'dlls'. + +2005/03/25 1.17.4p21 +[Patch: Metamod-P v21 by Jussi Kivilinna] + - Fixed 'meta reload' not working on plugins that have failed loading. + - Fixed bug with handling of metamod-plugin-bots, which might have caused + problems depending on order of loaded plugins. See 'call_count' in + 'api_hook.cpp' for details. + - Minor performace tweaks. + - Changed all non-fatal error messages to warning messages. + +2005/03/05 1.17.4p20 +[Patch: Metamod-P v20 by Jussi Kivilinna] + - Fixed bug with metamod.dll not having working relocation: + - Makefile doesn't use 'dllwrap' for linking windows dlls anymore. + - Minor performance tweaks. + - Updated mini-hlsdk to 'official 2.3+patches' version. + - Fixes to improve stability: + - Added fix for broken 'vsnprintf' for win32 and some glibc versions. + - Fixed wrong api-hook function for 'ClientConnect' in 'api_info.cpp'. + - Fixed wrong integer type for CRC32_t in 'hlsdk/common/crc.h'. + - Removed 'metamod_compat-i386.so' from linux binary release. + +2005/02/27 1.17.4p19 +[Patch: Metamod-P v19 by Jussi Kivilinna] + - Performance tweaks mainly for AMD64 (minor for i386). + - Linux-i386 (metamod_i386.so) binary linked against glibc-2.1.3 for better + compatibility. Compiled using gcc-3.3.4-glibc-2.1.3 crosscompiler available + at: http://forums.unitedadmins.com/index.php?showtopic=44048 + - Binaries not linked against libstdc++ anymore for better compatibility + (see: new_baseclass.h). + +2005/02/25 1.17.4p18 +[Patch: Metamod-P v18 by Jussi Kivilinna] + - Fixed AMD64 support. + +2005/02/19 1.17.4p17 +[Patch: Metamod-P v17 by Jussi Kivilinna] + - Renamed 'Metamod All-Mod-Support' to 'Metamod-P'. + - Fixes to improve stability. + - Minor performance tweaks. + - Merged updates from Metamod 1.17.4, + http://www.sourceforge.net/projects/metamod/ + - Added Mod recognition for Brain Bread 1.2, Snow-War 2.0 and + Gangsta Wars 2.7. + +2005/02/13 1.17.3p16 +[Patch: All-Mod-Support v16 by Jussi Kivilinna] + - Fixes to improve stability. + - Minor performance tweaks. + +2005/01/10 1.17.3p15 +[Patch: All-Mod-Support v15 by Jussi Kivilinna] + - New optimization which reduces binary size more than 50%. + - Changed '-march=i586' to '-march=i686'. This means this binary + doesn't work on Pentium/K6 processors. You need PPro/Athlon + or newer. + - Removed 'Active API Hooks' optimization. + - Removed 'memory write detection' code. + +2004/11/27 1.17.3p14 +[Patch: All-Mod-Support v14 by Jussi Kivilinna] + - Remake of new callback API. + +2004/11/27 1.17.3p13 +[Patch: All-Mod-Support v13 by Jussi Kivilinna] + - New callback API for plugins to load/unload other plugins. See + 'mm_pextensions.h'. + - Fixed a minor memory leak when reloading plugins. + - Minor fixes on 'memory write detection'. + - Minor performance tweaks. + - Moved p13 code from osdep.cpp/h to osdep_p.cpp/h + +2004/11/17 1.17.3p12 +[Patch: All-Mod-Support v12 by Jussi Kivilinna] + - Fixed crashing with 'memory write detection' (part of 'Active API Hooks'). + - Improved 'memory write detection' code. + +2004/11/16 1.17.3p11 +[Patch: All-Mod-Support v11 by Jussi Kivilinna] + - Added new 'Active API Hooks' optimization, speeding up handling HLSDK-API + functions that are not hooked by any plugins. + - Added new command 'meta active' to list active hooks. + - [linux] 'metamod_i386.so' is compiled with gcc-3.3.4 now. If that version + doesn't work for you, use 'metamod_compat-i386.so'. + - [linux] gcc-2.95 compiled binary is now 'metamod_compat-i386.so'. + - Merged updates from Metamod 1.17.3, + http://www.sourceforge.net/projects/metamod/ + - Added Mod recognition for Zombie Panic Beta 0.91c, Out Break 1.0, + Operations 1942 v2.0, The Trenches 1.0-Beta, The Ship V0052. + - When reloading plugins honour their load time settings. Does no longer + attempt to reload plugins when the loading after the unloading would + fail due to a load time conflict. + - Fixed only loading one plugin when multiple plugins with the same + prefix were used, e.g. mm_pluginA.dll and mm_pluginB.dll. + - Fixed a minor memory leak when unloading plugins. + - Fixed potential bug initializing plugin incorrectly after unloading + and loading plugins. + +2004/08/31 1.17.2p10 +[Patch: All-Mod-Support v10 by Jussi Kivilinna] + - Merged updates from Metamod 1.17.2, + http://www.sourceforge.net/projects/metamod/ + - Fixed a memory leak the size of the gamedll when extracting a missing + gamedll from the cache file on Windows Steam servers. + Found by Wei Mingzhi. + - Made game directory lookup case-insensitive. + - Added MOD recognition for The Terrorist Revenge 0.2.1, Pirates, + Vikings and Knights Beta 2.1, CSV15 (Counter-Strike 1.5 for Steam), + Adrenaline Gamer 6.5 and up. + - Changed MOD recognition for Adrenaline Gamer 3.x. The 3.x version of + the MOD is now being deprecated and support will be removed from a + future version of Metamod. It can currently still be used by renaming + the game directory from "ag" to "ag3" or by explicitly specifying the + gamedll. + - Improved parsing of plugins.ini file to not report errors on empty + lines and commented out lines that start with whitespace. + - Added "lin32" and "lin64" keywords in addition to "linux" keyword for + plugins.ini file to support using the same file for the same game on + both 32bit and 64bit servers. The "lin32" and "lin64" keywords + override the "linux" keyword when used on the same plugin. Do not + use "linux" when using "lin32" and/or "lin64" keywords for the same + plugin. + +2004/07/28 1.17.1p9 +[Patch: All-Mod-Support v9 by Jussi Kivilinna] + - [linux] Amd64-support. + - [linux] New version of osdep.cpp:is_gamedll(). + - Reads ELF directly and doesn't use external libraries. + - Binary isn't linked with BFD library anymore, reduces filesize to + less than 500kb. + - More optimizations on META_DEBUG macro. + - No more 'fast' compiles, META_DEBUG is optimized enough now. + - Added '+localinfo mm_clientmeta ' setting for disabling 'meta' + client-command. + - Added 'clientmeta' config.ini setting. + +2004/07/04 1.17.1p8 +[Patch: All-Mod-Support v8 by Jussi Kivilinna] + - Fixed memory leak in linux version of osdep.cpp:is_gamedll(). + - Fixes to improve stability. + - Optimizations on META_DEBUG macro. + +2004/06/06 1.17.1p7 +[Patch: All-Mod-Support v7 by Jussi Kivilinna] + - Official support for All-Mod-Support versions at http://koti.mbnet.fi/axh/ + - Merged updates from Metamod 1.17.1, + http://www.sourceforge.net/projects/metamod/ + - Added MOD recognition for Hostile Intent 1.1. + - Added MOD recognition for Natural Selection Beta 3.0. + - Added MOD recognition for CS13. + - Added MOD recognition Rocket Crowbar 2. + - Added MOD recognition Counter-Strike:Condition Zero. + - On Windows Steam servers extract the gamedll file from the cache file + if it is missing in the dlls directory. + - Added Patch-messages. + - Added '+localinfo mm_autodetect ' setting for disabling + autodetection of gamedll. + - Added 'autodetect' config.ini setting. + - Small tweaks and optimizations at various different places. + +2004/05/21 1.17p6 +[Patch: All-Mod-Support v6 by Jussi Kivilinna] + - Tweaks and optimizations on osdep.cpp:is_gamedll(). + - [linux] Added architecture check for i386 and x86-64 to is_gamedll(). + +2004/04/27 1.17p5 +[Patch: All-Mod-Support v5 by Jussi Kivilinna] +2004/04/26 1.17p4 +[Patch: All-Mod-Support v4 by Jussi Kivilinna] + - Amd64-test versions + +2004/04/25 1.17p3 +[Patch: All-Mod-Support v3 by Jussi Kivilinna] + - Automatically searchs for gameDll for new mods that are not included in + internal mod-list. + - [linux] Cleaned up osdep_linkent_linux.cpp, might work with x86-64 build + now (not tested). + +2004/04/24 1.17p2 +[Patch: All-Mod-Support v2 by Jussi Kivilinna] + - Extra functions slots are now passed all the way to the gameDll now too. + - [linux] New method for dlsym hooking, no need for metamod_linkent_tool.so anymore. + - Made mm_* functions in dllapi.cpp and engine_api.cpp static. + - Made mutil_* functions in mutil.cpp static. + +2004/04/22 1.17p1 +[Patch: All-Mod-Support v1 by Jussi Kivilinna] + - Removed dependences on game.dll structures (CBasePlayer). + - Replaced UTIL_ShowMessage with META_UTIL_ShowMessage. + - [win32] Replaced entity linking with PE dll-export-table combining. + - [linux] Replaced entity linking with dlsym hooking. + - Removed entities from linkgame.cpp + - Added 128 extra function slots on enginefuncs_t structure for future engine updates. + +2003/11/15 1.17 + - Added support for recently added routines in the HL Engine: + SequenceGet() + SequencePickSentence() + GetFileSize() + GetApproxWavePlayLen() + IsCareerMatch() + GetLocalizedStringLength() + RegisterTutorMessageShown() + GetTimesTutorMessageShown() + ProcessTutorMessageDecayBuffer() + ConstructTutorMessageDecayBuffer() + ResetTutorMessageDecayData() + - Removed mod recognition and entities for Master-Sword v1.3, at the + request of the Mod's authors. + - Added mod recognition and entities for HL-Rally vBeta 1.0, Kanonball + v1.01, Over Ground vBeta 1.0, Project Timeless vBeta 1.0, Underworld + Bloodline v2.0. + - Additional entities for The Battle Grounds v1.2.1, Firearms v2.8. + - Additional entities "env_rain" and "env_snow" used on some CS maps. + - Added "metamod_version" cvar that can be queried from game browser + clients. + - Added "meta" client command similar to the console command, providing at + this time only "list" and "version" subcommands. + - Introduced basic config file to provide more reliable and more + flexible options passing, in addition to the current +localinfo method. + - Default filename: addons/metamod/config.ini + - Options include: + debuglevel + gamedll + plugins_file + exec_cfg + - Added option "+localinfo mm_configfile " to override default + config.ini pathname. + - Added "meta config" console command to display result of config + file and localinfo options. + - Added "meta require " console command, to exit the server if the + specified plugin is not found loaded and running. Intended for use in + server.cfg or metaexec.cfg. Suggested by Florian Zschocke. + - If a specified override gamedll pathname is invalid, Metamod will now + exit with an appropriate error, rather than falling back to the + auto-detected gamedll. This should provide more useful feedback in such + situations. + - Added GINFO_REALDLL_FULLPATH for mutil GetGameInfo, to return the + (supposed) "real" dllpathname, ie in case gamedll is overridden. Needed + specifically for plugin "SinglePlayer". + - Raised META_INTERFACE_VERSION to 5:10, for GINFO_REALDLL_FULLPATH. + - Now recognizes "/dev/null" as valid for path options (pluginsfile, + execcfg, configini, etc), for when an empty file _is_ desired. + - Fixed loading of plugins.ini to detect duplicate plugins (by full + pathname). + - Added doc/config.ini with comments to document the file. + - Renamed doc/metamod.ini to doc/plugins.ini, and added comments. + - Internal changes: + - Added conf_meta.cpp, conf_meta.h for config file handling. + - Created full_gamedir_path() to centralize code for testing absolute + path, prepending gamedir if necessary, calling realpath, and + normalizing pathnames. + - Most paths are now stored and operated on as fullpathnames, rather + than gamedir-relative pathnames. + - Now using fopen() rather than LOAD_FILE_FOR_ME when reading text + files, in particular due to fullpathnames. + - Errorcheck for absolute paths as mm_execcfg filename, since + servercommand("exec") won't accept absolute pathanmes. + - Added debug messages to valid_gamedir_file(), for checking why it + failed to use a specified (config.ini, localinfo) path. + - Simplified logic in cmd_doplug() to not require re-mapping pcmd to cmd + string. + - Fixed Makefile to always recompile meta_api.cpp for changes in + info_name.h. + - Split lookup_game() into setup_gamedll and lookup_game, to better + organize for storing gamedll->real_pathname. + - Source and documentation files based on the list of supported + game/mods are split into their own files (games.h, + supportedmods.html), so they can be generated from a local database + rather than maintained manually. + - Makefile now using gcc-2.95 explicitly, to avoid using gcc3 at this + time. + +2003/08/02 1.16.2 + - Mod recognition and entities for The Point of No Return v.Beta 4.0. + - Even more entities for The Specialists v.Beta 2.0. + +2003/07/30 1.16.1 + - Mod recognition and entities for Master-Sword v1.3, The Wastes RC 1.2, + and Monkeystrike v1.2. + - Additional entities for Natural Selection v2.0, The Specialists v.Beta + 2.0, Earth's Special Forces v.Beta 1.1, The Battlegrounds v1.2, and + International Online Soccer v2.0. + +2003/05/08 1.16 + - Added support for Server_GetBlendingInterface() in order to allow client + and server to properly coordinate custom player model blending. This + should fix the issue with mismatched hitboxes observed with CS and DOD. + - Mod recognition and entities for International Online Soccer v1.0 and + Morbid Inclination v1.0. + - Added studioapi.{cpp,h} to provide Server_GetBlendingInterface. + +2003/05/03 1.15.3 + - More additional entities for Day of Defeat v1.0. + +2003/05/02 1.15.2 + - Mod recognition and entities for Rival Species vBeta 1.0, Public Enemy + vBeta 1.0, and Bumper Cars vAlpha. + - Additional entities for Day of Defeat v1.0, Sven Coop v2.1, WormsHL + vBeta 3.0, and Natural Selection v1.1. + +2003/04/09 1.15.1 + - Additional entities for Firearms v2.7 and Desert Crisis v1.5. + - Fixed mod recognition for Adrenalinegamer v4.x and later. + +2003/02/12 1.15 + - Additional entities for VampireSlayer Chapter V. + - Fixed entity name "TS_PowerUp" for The Specialists 1.5; should fix + precache error for "models/powerup.mdl". + - Added DLFNAME implementation for win32, provided by Jussi Kivilinna. + Thus, "meta info " will now list registered commands and + registered cvars under win32, rather than just under linux. + - Now dynamically allocating lists of registered commands and registered + cvars, rather than a fixed limit of 1024 (and before that, 512). Based + on code provided by Jussi Kivilinna. + - Console listing of regcmds/regfuncs now also shows currently allocated + list sizes. + - Replaced valid_file() using LOAD_FILE_FOR_ME with valid_gamedir_file() + using stat(). Thus, it should no longer find unintended files under the + "valve" subdirectory. + - Normalize filenames under win32 to use slashes (/) and lowercase chars, + to get rid of mixed-slashes (ie "half-life\cstrike/dlls") and to + simplify pathname comparisons. + - Also, canonicalize filenames under both win32/linux to remove ".." and + redundant "/" path components, to provide more reliable pathname + comparisions. + - If meta_CVarRegister fails to find a corresponding plugin for a cvar, it + now logs only a Debug message rather than an Error message, as a cvar_t + that's malloc'd by a plugin can't be traced back. Problem reported by + Olo. + - In plugin trace, added "classname" to DispatchSpawn output. + - Added is_absolute_path() to centralize the logic, and to be more + OS-precise. + - Split meta_init_gamedll() from meta_load_gamedll() so that the correct + and normalized Gamedir is available earlier in the code. + - #define NAME_MAX and PATH_MAX to the correct win32 constants, rather + than using (inaccurate) internal values. + - Renamed internal classes RegFunc to RegCmd, to provide more easily + associated names. + - Lots of internal file organization changes: + - Removed superfluous symlinks in docs dir. + - Renamed toplevel doc files to *.txt. + - Added Config.mak to toplevel dir, to provide project name and subdirs, + so that toplevel Makefile can be used for multiple projects. + - Added copyrights to Makefiles. + - Added blurbs to engine notes for FunctionFromName and NameForFunction, + based on investigation of singleplayer support. + - In source Makefile, added support for compiling linux-only or + win32-only projects. + - In source Makefile, fixed vdate.o to properly compile for each link. + - Removed tmp files in msvc dir (.ncb, .plg). + - Added copyright/GPL blurb to *.rc files. + - In stub/meta_api.cpp, comment out unused variables rather than doing + "if(var)" to satisfy gcc -Wunused. + - Reduced vers_meta.h to just the version and other common info, and + create info_name.h for module-specific name, desc, etc, so that I'll + only have to edit 1 file when increasing version/date for all the DLLs + distributed with Metamod. + - Made res_meta.rc common among Metamod and the plugins, rather than + having a separate res_plugin.rc. + - In source Makefile, added "--include-dir" args to windres, so it can + find the now common vers_meta.h. + - Source Makefile now copies targets into ../dlls, rather than doing + that only for comprehensive "dlls" targets. + - Added "-fno-exceptions -fno-rtti" to possibly reduce code size, + suggested by Jussi Kivilinna. + - For plugins, renamed ie "mm_wdmisc" to "wdmisc_mm" where it was missed + earlier. + - For plugins, better organized common code, to make it more adaptable + to other plugin projects (ie, singlep). Ie, plugin_query, + plugin_attach, plugin_detach; moved plugin welcome banner to + meta_api.cpp; etc. + - Added tools/stlfilter to help hide -Weffc++ warnings from g++ STL + headers (although not using STL at this time..) + +2003/01/24 1.14.1 + - Properly recognize win32 full pathname from GetGameDir. + - Added "#include " for getcwd() under MSVC. + - Trace plugin: Changed AlertMessage formatting, ie from + "atype=at_console/1" to "atype=at_console(1)". + - Stub plugin: fixed to compile under MSVC again. + +2003/01/23 1.14 + - Fixed to handle new behavior of engine routine GET_GAME_DIR under HL + 1.1.1.1 (CS 1.6) beta, where the routine no longer returns the + fullpathname of the game directory, but now returns only the string + passed to hlds as the argument to "-game" (pointed out by Alfred + Reynolds). + - Added meta-util function GET_GAME_INFO to return various string-based + information about the gamedll (name, description, gamedir fullpathname, + dll fullpathname, dll filename). + - Raised META_INTERFACE_VERSION from 5:8 to 5:9. + - Added FAQ. + - Some docs touchups. + +2003/01/18 1.13.4 + - Additional entities for betas of Counter-Strike 1.6 and TFC from HL + 1.1.1.1. + - Added missing #include "osdep.h" to several files, to make sure things + like win32 vsnprintf are defined. + - In stub plugin, added engine_api.cpp, to provide example framework for + hooking engine routines. + - In trace plugin, changed logtag to all caps. + +2003/01/12 1.13.3 + - Additional entities and updated mod recognition for Earth's Special + Forces Beta 1. + - Mod recognition for Retro Firearms 2.5. + - Increased max allowed plugin functions and max allowed plugin cvars from + 512 to 1024. + - Fixed UTIL_VarArgs and UTIL_LogPrintf (copied from SDK) to use proper + bounds-checking (to help prevent buffer overflows). + - Updated Copyright to include "2001-2003". + +2002/11/26 1.13.2 + - Mod recognition and entities for Azure Sheep v1.0, BuzzyBots v2.3, + Outlawsmod v.Beta 1.5, The Specialists v.Beta 1.0, and StargateTC v.Beta + 2.2. + - Additional entities for The Battle Grounds v.Demo 1.0, Firearms v.2.6.5, + Global Warfare v.Beta 2.0, and Tour of Duty v1.1 Beta. + - Updated mod recognition for Rocket Crowbar v1.9. + - Compiled against HLSDK 2.3. + - Corrected missing "const" in vdate.h (noted by Ravenous BugBlatter + Beast). + +2002/10/06 1.13.1 + - Mod recognition and entities for Digital Paintball v1.0, Dragon Mod Z + v1.7, Holy Wars v.beta2, and OeL Half-Life v4.0. + - Additional entities for Adrenalinegamer Mod v6.0 and Natural Selection + v1.0. + - Corrected a cast in os_safe_call (from Olafur Osvaldsson). + +2002/08/24 1.13 + - New config file names and locations, per the Addon Development Standard + rev 1.00. Default config files are now: + - $gamedir/addons/metamod/plugins.ini + - $gamedir/addons/metamod/exec.cfg + - File "metagame.ini" no longer supported. + - Additional entities for WormsHL beta 2.1. + - Mod recognition (no entities) for Retro Counter-Strike 2.5. + - Added release_notes.html. + - Added function "valid_file" in support_meta.h. + +2002/07/11 1.12.4 + - Additional entities for Day of Defeat beta 3.0 and Tour of Duty 0.9.0. + - Mod recognition and entities for Natural Selection 1.0. + - Added "$pg" string for /usr/bin/ident. + +2002/07/01 1.12.3 + - Mod recognition and entities for Valve's Ricochet mod. + - Additional entities for Tour of Duty 0.8.0. + - Moved common code from LINK_ENTITY_TO_GAME to a function, rather than + duplicating the code in ~2000 expanded macros. Based on code from Jussi + Kivilinna . + +2002/06/04 1.12.2 + - Even more entities for Firearms rc2.6. + +2002/05/29 1.12.1 + - Mod recognition and entities for Desert Crisis 1.1, Tour of Duty 0.6.7, + and Train Hunters beta 1.0. + - Additional entities for GoldenEye 1.9C and Firearms rc2.6. + - Fixed meta-util function GET_PLUGIN_PATH to return the full path as + intended, rather than a partial path. + - Updated Copyright to include "2001-2002". + - Fixed Makefile to not update .tags or .htags by default. + +2002/04/22 1.12.0 + - Updated for HL 1109, which adds one Engine routine: + const char *GetPlayerAuthId(edict_t *e); + - Mod recognition and entities for The Battle Grounds 0.6, Gangwars Beta + 1.0, and WormsHL Beta 2.0 + - Additional entities for Day of Defeat beta 2.0 and Oz 2.5. + - Changed error message "user message registered again" to a debug message + (level 3). + - Fixed compile problem under MSVC with strcasecmp. + - Added meta-util function GET_PLUGIN_PATH, so a plugin can know from + whence it was loaded. + - In trace plugin, added more trace info for EngineFprintf, ServerPrint, + IsMapValid, GetPlayerUserId, GetPlayerWONId, GetPlayerAuthId, + CVarGetFloat, CVarGetString, AllocString, Time, IsDedicatedServer, + GetCurrentPlayer, GetPlayerStats. + +2002/02/08 1.11.2 + - Hopefully complete list of entities for Day of Defeat beta 2.0. + - Don't complain for NULL routines in gamedll's NEW_DLL_FUNCTIONS. Should + solve "Couldn't find api call: dod.dll:ShouldCollide" errors with DoD + b2. + - Changed default for newapi ShouldCollide() from 0 to 1, per Mugsy@DoD's + observations. + +2002/02/03 1.11.1 + - Mod recognition and entities for Snow-War 1.0, and Earth`s Special + Forces version Alpha 2.0. + - Additional entities for Oz 2.4.1, Svencoop 2.0, and partial entities for + Day of Defeat beta 2.0. + - Added check for duplicate UserMsg registration (should help resolve + recent "reached max msgs 256" errors). + - Dropped leading zeroes in version number. + - Tweaked "interface version" log message to help reduce confusion. + - Compiled with updated version of mingw; should help reduce dll filesizes + found in the previous release. + - Some additional debugging in gamedll entity linking. + +2001/12/17 1.11.00 + - Mod recognition and entities for Weapon Wars v0.3. + - Additional entities for version 1.2 of Global Warfare. + - Linux binary linked against glibc-2.1.2 for better compatibility. + - 'meta game' now lists user messages registered by gamedll. + - Added meta-util functions GET_USER_MSG_ID and GET_USER_MSG_NAME, so + plugins that need to know RegUserMsg name/id mappings (like bots) don't + need to be loaded at server startup. + - Raised META_INTERFACE_VERSION from 5:6 to 5:7. + - Fixed NUM_FOR_EDICT error in pfnCenterSay (from Fritz Elfert). + - Re-fixed set_new_handler for MSVC (from Fritz Elfert). + - Fixed meta_AddServerCommand; was registering plugin's command string + rather than local string, causing segfault on plugin unload. + - Changed trace plugin to use GET_USER_MSG_NAME instead of local list. + - Added 'const' to 'char *' arguments in DLOPEN and DLSYM macros. + - Commented out names of unused function paramenters, to satisfy "gcc + -Wunused" without generating MSVC errors. + - Added '#pragma warning(disable: 4390)' to disable "empty controlled + statement" warnings in MSVC. + - Updated MSDN url references. + +2001/09/19 1.10.00 + - Updated for HL SDK 2.2, which adds two Engine routines: + qboolean Voice_GetClientListening)(int iReceiver, int iSender); + qboolean Voice_SetClientListening)(int iReceiver, int iSender, qboolean bListen); + - Mod recognition and entities for "Scientist Hunt" v1.2 and Existence + Beta 1.3. + +2001/08/01 1.09.00 + - Mod recognition and entities for 'Wanted!' v1.5. + - Mod recognition for Adrenalinegamer v3.2 and v4.1 (no special entities). + - Additional entities for version 2.3 of Oz Deathmatch. + - Additional entities for version 1.0 of Wizard Wars. + - Additional meta-utility function CALL_GAME_ENTITY. Raised + META_INTERFACE_VERSION from 5:5 to 5:6. + - Added proper GPL notices. + +2001/07/06 1.08.02 + - Added mod recognition and entities for Gunman Chronicles. + - Added list of supported mods to docs. + - Updated MSVC project/workspace files to match recent source changes. + - Fixed problem with set_new_handler compiling under MSVC. + +2001/06/30 1.08.01 + - Updated for Day of Defeat v1.3. The name of its win32 dll changed (was + mp.dll; now dod.dll). No new entities. + - Added mod recognition and entities for Rocket Crowbar. + - Fixed problem with windows internal DLL version (don't use leading + zeros as compiler will assume it's octal notation). + +2001/06/16 1.08.00 + - Allow specifying/overriding various things on the command line, via + "+localinfo". Fields are: + - mm_gamedll + a bot or other dll, instead of the gamedll based on the gamedir. + Note this is now the preferred method; the "metagame.ini" file is + deprecated, but still recognized for backwards compatibility. + - mm_pluginsfile + a file with the list of mm plugins, instead of "metamod.ini". + - mm_execcfg + a cfg file for mm plugin cvar settings, instead of "metaexec.cfg". + - mm_debug + an initial debug level. + - Examples: + ./hlds_run -game cstrike +localinfo mm_gamedll dlls/pod_bot.so + ./hlds_run -game cstrike +localinfo mm_pluginsfile mylist.ini + ./hlds_run -game cstrike +localinfo mm_execcfg mysettings.cfg + ./hlds_run -game cstrike +localinfo mm_debug 7 + - Don't try exec'ing metaexec.cfg unless it exists. + - Added additional entity for Action Half-Life Beta 4, from list forwarded + from the dev team. + - Added a couple additional entities for Global Warfare, from list + provided by the dev team. + - Moved a couple entities from the "common" list back to the "valve" list, + for better organization. + - Changed logmsg "Plugin '%s' interface version didn't match" from + "Warning:" to "Note:" to reduce confusion. + - Added an optional plugin meta-api routine Meta_Init, to be called prior + to GiveFnptrsToDll, to let the dll know that it's going to be + queried/loaded as a metamod plugin, to allow for DLL's that can be used + as both a metamod plugin _and_ a standalone DLL. Raised + META_INTERFACE_VERSION from 5:4 to 5:5. + - Removed segfault handler under linux, when calling plugin console + command functions, as (a) it masked legitimate segfaults in plugin + commands and produced confusing output ("plugin has been unloaded", when + really it segfaultd), and (b) wasn't necessary since the situation + should be covered by other tests. + - Replaced combo SDK macros with inline funcs, and added ones for + accessing serverinfo and localinfo infokey buffers. + - Unfinished code for event triggers is in the source, but is disabled + (since it's not finished yet). + +2001/06/10 1.07.03 + - improper compile was reporting wrong version number + +2001/06/07 1.07.02 + - added mod recognition and best-guess list of entities for Deathmatch + Classic v1 and Global Warfare Beta 1.0. + - updated entity list with best-guess additions and corrected win32 dll + name for Wasteland Beta 2. + - added additional entities for Frontline Force 1.2a, from list forwarded + from the dev team. + +2001/05/25 1.07.01 + - added complete (hopefully) list of additional entities for Front Line + Force 1.2a/1.3. + - added best-guess list of entities for Day of Defeat b1.1. + - added best-guess list of entities for Science & Industry 0.97 (later + confirmed by SI lead programmer). + - added better guess list of entites for Action Half-Life b4. + - shrunk entity lists for Jailbreak and Judgement to include only + mod-specific entities (rather than common Valve entities which are in a + separate list). + - in THREAD_CREATE inline, replaced "(DWORD (*)(void*)) func" with + "(LPTHREAD_START_ROUTINE) func" to properly compile under MSVC. + - added engine_notes.html with a list of all the engine routines, and some + comments. + - added utils/getents.sh script to pull entity lists from .so files. + +2001/05/08 1.07.00 + - fixed "%s" server-crashing bug. "You should never pass strings with + unknown contents as the format string." Metamod was passing a + preformatted non-constant (thus unknown contents) string as the format + string (and only argument) when handling printf-style varargs engine + functions (in particular, AlertMessage). Ie, don't do: + printf(buf); + Instead do: + printf("%s", buf); + - added some entities for Action Half-Life Beta4, which should help + address crashing on startup, especially with Last Man Standing random + weapons. Note that I don't have an official, complete list of entities + for the mod, so there may still be some instances of crashing. + - added debugging messages for printf-style varargs engine routines, since + we can't rely on trace_mm for this (as the messages are re-written by + metamod before being passed to trace). + - better info in trace plugin's log messages for AlertMessage and + CreateNamedEntity. + - altered debug levels AlertMessage API routines in api_info.cpp + +2001/05/04 1.06.10 + - fixed a couple of entities for HL Paintball. + - added links.html to docs, a set of links/URLs and books that I found + helpful for the project. + - added to META_INTERFACE_VERSION comments to include associated metmaod + version for each change. + - additional data checking in various MPluginList routines. + - added 'const' to various function arguments to more properly reflect + function purpose. + - changed various function macros to inlines, to provide more obvious type + checking, and easier debugging. + - adjusted private/public members of various classes, to try and make them + more proper. + - added new_handler code, for upcoming code additions. + - added MPluginList::find(plid_t id), for upcoming code additions. + - added thread primitives to osdep, for upcoming code additions. + +2001/04/29 1.06.02 + - added entities and mod recognition for VampireSlayer and Open-Source + Jailbreak. + - updated mod recognition for current names of Action Half-Life's DLL/SO + files. + - added some entities for FLF 1.2a, listed on Botman's news page. + - added some docs for Installation and Compiling. + - added build type info (optimized, debugging, etc) to the SpecialBuild + tag in the version info for the win32 DLL. + - disabled SDK's "DBG_" functions, for MSVC win32 debug compiles. + +2001/04/22 1.06.01 + - added some entities for FLF 1.2. + - better info in trace plugin's log messages for + DispatchObjectCollsionBox, SetModel, FindEntityByString, SetOrigin, + EntOffsetOfPEntity, PEntityOfEntIndex. + - fixed missing initialization for "len" in wdmisc. + - added links to sections in html docs. + - for non-critical interface version mismatch, changed from a META_ERROR + to just META_LOG, since it's not, strictly speaking, an error. + +2001/04/17 1.06.00 + - added support for "metaexec.cfg", a commands file to be exec'd after + loading the plugins, for plugin commands and cvars, since autoexec.cfg + is parsed too early (before plugins loaded) and server.cfg is parsed too + late (after ServerActivate). + - better info in trace plugin's log messages for MessageBegin, + WriteString, AlertMessage, RegUserMsg + - to provide more manageable trace log output, throttled trace plugin to 1 + logmsg per second, by default (of course, this can cause log messages to + be lost). Added cvar "trace_unlimit" (0/1) to enable unlimited logging, + as it did previously. + - added centersay meta-utility functions (CENTER_SAY, CENTER_SAY_PARMS, + CENTER_SAY_VARARGS). Raised META_INTERFACE_VERSION from 5:3 to 5:4. + - fixed crash when trying to load typical game DLLs (like standalone-bots) + as metamod plugins. + - fixed segfault on failed plugin attach; was dlclosing plugin + prematurely. + - in wdmisc, added a proof-of-concept for catching certain game events by + doing string matching on all the log messages produced by the game. + Ugly, to be sure, but interesting nonetheless. + - added more entities for HL Paintball, and fixed the linux so name. + - added "-Wno-unused" to CFLAGS when compiling sdk_util.o, to alleviate + the complaints from #including all the extra SDK header files and class + definitions. + - removed GetEntityAPI routine from trace plugin, as it's unnecessary as a + metamod plugin if already providing GetEntityAPI2. + - in trace, moved gMetaFunctionTable declaration to plugin.cpp, so that + meta_api.cpp can be a standard (plugin-independent) sourcefile used in + any plugin. + - updated the docs to include recent new features, as well as some better + discussion of coding details. + +2001/04/06 1.05.00 + - created utility callback functions, for use by plugins, to reduce code + duplication and help simplify some things. Currently, these consist of + only some convenient logging functions (LOG_CONSOLE, LOG_MESSAGE, + LOG_ERROR, LOG_DEVELOPER). + - added "mutil_funcs_t" to Meta_Query, to pass the meta utility function + table. Increased META_INTERFACE_VERSION from 5:2 to 5:3. + - made sure all exported DLL routines (ie routines that are accessed via + dlsym) are both declared _and defined_ as 'extern "C"', so that the C++ + compiler enforces parameter type-matching, rather than considering + routines with mis-matched arguments/types to be overloaded functions... + Note that it's not sufficient to just be declared "C"; it has to defined + this way as well, to make sure the C++ compiler matches it with the + declaration. Otherwise, again, it'll consider it an overloaded + function, and allow it happily without complaint, and cause the + subsequent dlsym to fail. + - created and deployed C_DLLEXPORT macro for declaring/defining functions + 'extern "C" DLLEXPORT'. + - added plugin 'wdmisc' as a basic example, and for my miscellaneous + commands/cvars. + - renamed "mm_stub" and "mm_trace" to "stub_mm" and "trace_mm" to make + plugin name more apparent, and to be more consistent with adminmod_MM. + - had to move plugin_info_t to its own header file, to avoid circular + #include's between meta_api.h and mutil.h. + - in dllapi.cpp and engineapi.cpp, pulled RETURN_API out of META_HANDLE + macro, to make it easier to add code to middle of API routines. + - renamed util_meta.h to support_meta.h, to avoid confusion with mutil.h + - some code cleanup (better 80-column linebreaks). + +2001/04/03 1.02.00 + - added support for Half-Life Paintball + - added "*_mm" and "*_MM" to the list of suffixes to look for when loading + plugins at console. + - log errors when plugin tries to use MRES_SUPERCEDE in a _Post function + (supercede is only relevant in a non-Post function; use OVERRIDE in a + Post function). + - mm_trace: added info to trace log for FindEntityInSphere + - added osdep macro for strcasecmp, for compiling under windows + - fixed a debug log message for GetEngineFunctions_Post + - fixed a couple internal references to engine globals (gpGLobals) + - renamed local SDK API routines to "mm_*" for easier debug breakpoints + - altered debug levels for a couple API routines in api_info.cpp + +2001/04/01 1.01.00 + - replaced use of FStrEQ in most places with !strcasecmp, so that case + doesn't matter for things like console commands ("META LOAD" will now + work in addition to "meta load") and paths (like "-game CSTRIKE"; and + win32 filepaths are case-insignificant anyway). Interestingly, the HL + engine ignores case for console commands ("ADMIN_COMMAND" works), but + cvars are only recognized with matching case ("ADMIN_DEBUG" does not + work). Confusing. + - added "by " when printing author info, to make it a bit clearer + - added a bit more operation info to metamod.html + +2001/03/30 1.00.00 + - released as v1.0, for inclusion with release of Adminmod v2.50. + - added $(VERSFILE) to Makefile and Config.mak, to better insure correct + rebuild on version number changes + - added "i486", "i586", and "i686" to "i386" in the list of prefixes to + look for when loading plugins at console. + - added "MDLL*" and "MNEW" macros in meta_api.h, to be more convenient for + plugins to call GameDLL functions. + - added missing "extern gamedll_funcs_t *gpGamedllFuncs" to meta_api.h + - added handling of gpGamedllFuncs in stub, for example purposes. + - fixed problems with running bots under metagame.ini: + - moved instantiation of Plugins object to before meta_load_gamedll, so + that if gamedll calls engine functions during GiveFnptrsToDll (like + hpb_bot does), META_ENGINE_HANDLE won't crash from a null Plugins object + pointer. + - in GET_FUNC_TABLE_FROM_GAME, memset gamedll.funcs.struct_field, and then + free/null it if the gamedll's GetFuncs call fails, to handle the + situation where the gamedll provides GetNewDLLFunctions(), but doesn't + have anything to return (like hpb_bot does, when the real gamedll + doesn't provide GetNewDLLFunctions). + - add handling of gpGamedllFuncs to mm_stub's Meta_Attach(). + +2001/03/27 1.0-rc5 + - fixed problem with crashing when a plugin failed to load (improper + dereference of null 'info' structure; incomplete fix from rc2). + - added a plugin status "badfile", for plugin files that appear to be + invalid metamod plugins; this is to differentiate from "failed", which + is a valid-looking plugin file (queried) but encountered a failure + attaching/unloading/etc. + - changed "-march=i686" optimization to "-march=i586", and moved this to + only the optimized binaries, and not the debugging binaries. As it + turns out, i686 doesn't work on things like AMD K6-III cpus (I know, go + figure :). + - duplicated functionality of adminmod's "admin.ini", except with a file + named "metagame.ini". This will allow (at least partial) use with game + DLLs that metamod doesn't support yet - "partial" because, although the + game DLL will load, it may not work if it uses entities that metamod + doesn't know about yet. It will also allow use of standalone "bot" + DLLs, which sit between metamod and the gamedll (much like metamod sits + between the engine and the gamedll). + - added console command "meta game" to show information about the loaded + game DLL (to help troubleshoot issues with "metagame.ini"). + +2001/03/25 1.0-rc4 + - split linkfunc.cpp into linkent.h, linkgame.cpp, linkplug.cpp + - split entity lists for mods into separate files, one for each mod; these + are used to build linkgame.cpp + - metamod/mm_trace version info should indicate debugging/optimized compile + - added entity support for Judgement DM + - added "-fno-rtti" to mm_trace gcc cflags, to address problem of + unresolved CSaveRestoreBuffer symbols using older versions of gcc + - lowered debug levels in GetEntityAPI, GetNewDLLFunctions, etc to enable + "+developer" messages (6 -> 3). + - removed "-Werror" from Makefile's default cflags; should only be used + on devl system with edited SDK + +2001/03/18 1.0-rc3 + - central Makefile can now build optimzed as well as debugging targets; + default to compile is debugging; default in 'dlls' dir is optimized + - toplevel Makefile builds release tgz/zip files. TGZ file includes only + linux .so objects, and text files in unix-LF format. ZIP file includes + only win32 .dll objects, and text files in dos-CRLF format, and actual + files rather than symlinks. + - added mod recognition for "judgedm" mod; still need entities list + - added 4 entities for Firearms 2.5 + +2001/03/07 1.0-rc2 + - fixed missing WINAPI in mm_trace GiveFnptrsToDll + - added HTML version of docs + - description field in metamod.ini is now optional: + - uses "name" from plugin info for desc by default + - desc field in metamod.ini will override this + - "meta list" shows just desc, rather than desc and name + - altered debug levels for a couple API routines in api_info.cpp + - added missing "load" cmd in "meta" usage help + - added to "meta load" usage help + - added macros RETURN_META(result) and RETURN_META_VALUE(result, value) to + simplify plugin coding + - added parameter "gamedll_funcs" to meta_attach(), to give each plugin a + copy of the gamedll's API function tables + - raised META_INTERFACE_VERSION to "5:2" + - now load gamedll before plugins (rather than the reverse) so that + it'll have the gamedll func tables to hand to the plugins + - changed trace plugin console commands: + trace_version -> trace version + trace -> trace set + untrace -> trace unset + showtrace -> trace show + - added "trace list " to list all available routines for tracing + - fixed broken trace cvars + - for "meta {load,unload,etc}" console cmd, added matching against plugin + logtag, as well as for "mm_" in plugin file + - handle null 'info' after failed plugin load (ie in "meta info" etc) + - fixed "usage: meta list" errors on some meta commands; was calling + cmd_meta_pluginlist() instead of Plugins->show() + - fixed: unload/attach delayed plugins at changelevel + - now doesn't export newapi if gamedll doesn't provide it + - now doesn't call plugins getnewapi if gamedll doesn't provide it + - fixed incorrect apitable references in MPlugin::show() + +2001/02/08 1.0-rc1 + - fixed unistd.h under MSVC + - fixed S_ISREG under MSVC + - fixed strncasecmp under MSVC + - fixed void svr_meta() returning value + - fixed missing WINAPI in mm_stub GiveFnptrsToDll + - remade MSVC project for metamod + - created MSVC project for mm_stub + - added an example "metamod.ini" to ./docs From a2cc1fb8bd389d947d9bb529d1cf6e163278fbc8 Mon Sep 17 00:00:00 2001 From: STAM Date: Wed, 23 Oct 2024 17:42:41 +0300 Subject: [PATCH 2/6] converted original changelog to md --- CHANGELOG.md | 993 ++++++++++++++++++++++++++++++++++++++++++++++++++ Changelog.txt | 992 ------------------------------------------------- 2 files changed, 993 insertions(+), 992 deletions(-) create mode 100644 CHANGELOG.md delete mode 100644 Changelog.txt diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..6b518dc --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,993 @@ +# vim: set tw=75 ft=none : + +Current version: 1.20p35 + +For newer changes, see Metamod-P git repository commit log at: +http://metamod-p.git.sourceforge.net/git/gitweb.cgi?p=metamod-p/metamod-p;a=summary + +--- + +## 2012/08/08 1.19p34 +- Revert changes in 1.19p33 and start over with 1.19p32 code base +- Fix compiling with latest userspace headers and gcc-4.6 +- Disabled building x86-64 binaries as Valve has dropped x86-64 +linux server support. + +## 2012/07/27 1.19p33 +- Accumulated fixes and changes over time +- Fixes compiling with latest userspace headers and gcc-4.6 +- (introduced bugs, crashes, do not use) + +## 2007/08/12 1.19p32 +[Patch: Metamod-P v32 by Jussi Kivilinna] +- Changed GCC optimization flags based on performance monitoring results, +replaced '-O3 -funroll-all-loops' with '-O2'. +- Made 'Fix for engine_api varargs log calls with very long log string' +default on in sources so that MSVC compile is 1:1 with GCC compile. +- Made 'optimizations on META_DEBUG' always on in sources so that MSVC +compile is 1:1 with GCC compile. +- Fixed compiling META_PERFMON build with MSVC. +- Fixed compiling with MSVC fixed by Nikolay "The Storm" Baklicharov. +- [linux] Remake of dynamic linkent code. Parse dlsym function trampoline +instead of parsing ELF structures. +- [linux] Dropped AMD64 support since Valve doesn't support their AMD64 build +anymore and I don't have access to AMD64 machine to port new dynamic +linkent code. Sorry! + +## 2007/04/05 1.19p31 +[Patch: Metamod-P v31 by Jussi Kivilinna] +- Enabled 'regparam' for internal functions. Means that function arguments are +passed through registers instead of stack, which increases performance. +- Merged in changes from Metamod 1.19 that I didn't initially notice: +- Fixed a bug where plugins could not catch NewDLL calls for GameDLLs that +do not provide NewDLL information. + +## 2007/04/04 1.19p30 +[Patch: Metamod-P v30 by Jussi Kivilinna] +- Fixed safevoid_vsnprintf() on win32. + +## 2007/04/02 1.19p29 +[Patch: Metamod-P v29 by Jussi Kivilinna] +- crash fix that didn't work + +## 2006/03/04 1.19p28 +[Patch: Metamod-P v28 by Jussi Kivilinna] +- Removed use of __VA_ARGS__ (should be easy to port to msvc now). +- Reduced size of extra engineapi function slots from 128 to 16. +- Clean up code, removed use of likely()/unlikely() macros in places where +they don't give extra performance. +- Added MakeRequestID() API +- Added api for using hook tables from plugins (thanks to BAILOPAN) +- Re-enabled fix for engine_api varargs log calls with very long log string. + +## 2005/08/24 1.18p26 +[Patch: Metamod-P v26 by Jussi Kivilinna] +- Fixed newapi functions not active on mods that don't use newapi. +- [win32] New is_gamedll() code. +- [linux] Fix for buggy DT_HASH in library walker function. +- Following features were removed to improve stability. These changes were +not present in metamod.org version: +- Removed fix for engine_api varargs log calls with very long log +string. +- Removed optimized version of GET_USER_MSG_ID() for metamod-bots. + +## 2005/08/24 1.18p25 +[Patch: Metamod-P v25 by Jussi Kivilinna] +- Added mutil::IsQueryingClientCvar(). +- Added support for new HLSDK-API functions: +- enginefuncs_t::pfnQueryClientCvarValue() +- NEW_DLL_FUNCTIONS::pfnCvarValue() +- Fixed reloading and unloading of plugins that haven't been loaded +correctly. +- Fixed loading of plugins that needed changelevel to activate. +- Linux x86 and Windows binaries are now compiled for i586 since there is not +performance difference compared to i686. +- Fixes to improve stability on win32. (thanks to Blackhawk) +- Changed to use mingw-gcc 3.4.2rc +- Changed optimization flags, replaced '-O3 -ffast-math' with '-O2'. +- Minor performance tweaks. +- Changed to use mingw-gcc 3.4.2rc, mingw-gcc 3.4.4rc emited extra code +to zero stack memory which lowered performance. +- Changed API hooks to give structure offset to main API hook function +instead of pointer, which increases performance on linux-i586. +- Raised META_INTERFACE_VERSION to "5:12". +- Fixed metamod_version cvar to show "1.18p25" instead of "1.18.0p25". +- [linux] Improved dynamic linkent code. +- [linux] Static linked with libgcc. + +## 2005/07/27 1.18p24 +[Patch: Metamod-P v24 by Jussi Kivilinna] +- Updated to match latest metamod.org version. +- Removed mm-p-extensions-API, since loading/unloading plugins functions +are included in Metamod 1.18 in mutil-API. + +## 2005/04/22 1.17.4p23 +[Patch: Metamod-P v23 by Jussi Kivilinna] +- Fixed broken RegMsgList caused by optimization for mm-bots. +- Fixed optimization for mm-bots. +- [linux] Removed ESF-Mod fix. +- [linux] Minor performance tweaks and reduced filesize for linux. + +## 2005/04/08 1.17.4p22 +[Patch: Metamod-P v22 by Jussi Kivilinna] +- Optimized GET_USER_MSG_ID() function for metamod-bots. +- Minor performance tweaks. +- [linux] Looks for gamedll for Earth Special Forces Mod from 'linuxdlls' +directory after checking 'dlls'. + +## 2005/03/25 1.17.4p21 +[Patch: Metamod-P v21 by Jussi Kivilinna] +- Fixed 'meta reload' not working on plugins that have failed loading. +- Fixed bug with handling of metamod-plugin-bots, which might have caused +problems depending on order of loaded plugins. See 'call_count' in +'api_hook.cpp' for details. +- Minor performace tweaks. +- Changed all non-fatal error messages to warning messages. + +## 2005/03/05 1.17.4p20 +[Patch: Metamod-P v20 by Jussi Kivilinna] +- Fixed bug with metamod.dll not having working relocation: +- Makefile doesn't use 'dllwrap' for linking windows dlls anymore. +- Minor performance tweaks. +- Updated mini-hlsdk to 'official 2.3+patches' version. +- Fixes to improve stability: +- Added fix for broken 'vsnprintf' for win32 and some glibc versions. +- Fixed wrong api-hook function for 'ClientConnect' in 'api_info.cpp'. +- Fixed wrong integer type for CRC32_t in 'hlsdk/common/crc.h'. +- Removed 'metamod_compat-i386.so' from linux binary release. + +## 2005/02/27 1.17.4p19 +[Patch: Metamod-P v19 by Jussi Kivilinna] +- Performance tweaks mainly for AMD64 (minor for i386). +- Linux-i386 (metamod_i386.so) binary linked against glibc-2.1.3 for better +compatibility. Compiled using gcc-3.3.4-glibc-2.1.3 crosscompiler available +at: http://forums.unitedadmins.com/index.php?showtopic=44048 +- Binaries not linked against libstdc++ anymore for better compatibility +(see: new_baseclass.h). + +## 2005/02/25 1.17.4p18 +[Patch: Metamod-P v18 by Jussi Kivilinna] +- Fixed AMD64 support. + +## 2005/02/19 1.17.4p17 +[Patch: Metamod-P v17 by Jussi Kivilinna] +- Renamed 'Metamod All-Mod-Support' to 'Metamod-P'. +- Fixes to improve stability. +- Minor performance tweaks. +- Merged updates from Metamod 1.17.4, +http://www.sourceforge.net/projects/metamod/ +- Added Mod recognition for Brain Bread 1.2, Snow-War 2.0 and +Gangsta Wars 2.7. + +## 2005/02/13 1.17.3p16 +[Patch: All-Mod-Support v16 by Jussi Kivilinna] +- Fixes to improve stability. +- Minor performance tweaks. + +## 2005/01/10 1.17.3p15 +[Patch: All-Mod-Support v15 by Jussi Kivilinna] +- New optimization which reduces binary size more than 50%. +- Changed '-march=i586' to '-march=i686'. This means this binary +doesn't work on Pentium/K6 processors. You need PPro/Athlon +or newer. +- Removed 'Active API Hooks' optimization. +- Removed 'memory write detection' code. + +## 2004/11/27 1.17.3p14 +[Patch: All-Mod-Support v14 by Jussi Kivilinna] +- Remake of new callback API. + +## 2004/11/27 1.17.3p13 +[Patch: All-Mod-Support v13 by Jussi Kivilinna] +- New callback API for plugins to load/unload other plugins. See +'mm_pextensions.h'. +- Fixed a minor memory leak when reloading plugins. +- Minor fixes on 'memory write detection'. +- Minor performance tweaks. +- Moved p13 code from osdep.cpp/h to osdep_p.cpp/h + +## 2004/11/17 1.17.3p12 +[Patch: All-Mod-Support v12 by Jussi Kivilinna] +- Fixed crashing with 'memory write detection' (part of 'Active API Hooks'). +- Improved 'memory write detection' code. + +## 2004/11/16 1.17.3p11 +[Patch: All-Mod-Support v11 by Jussi Kivilinna] +- Added new 'Active API Hooks' optimization, speeding up handling HLSDK-API +functions that are not hooked by any plugins. +- Added new command 'meta active' to list active hooks. +- [linux] 'metamod_i386.so' is compiled with gcc-3.3.4 now. If that version +doesn't work for you, use 'metamod_compat-i386.so'. +- [linux] gcc-2.95 compiled binary is now 'metamod_compat-i386.so'. +- Merged updates from Metamod 1.17.3, +http://www.sourceforge.net/projects/metamod/ +- Added Mod recognition for Zombie Panic Beta 0.91c, Out Break 1.0, +Operations 1942 v2.0, The Trenches 1.0-Beta, The Ship V0052. +- When reloading plugins honour their load time settings. Does no longer +attempt to reload plugins when the loading after the unloading would +fail due to a load time conflict. +- Fixed only loading one plugin when multiple plugins with the same +prefix were used, e.g. mm_pluginA.dll and mm_pluginB.dll. +- Fixed a minor memory leak when unloading plugins. +- Fixed potential bug initializing plugin incorrectly after unloading +and loading plugins. + +## 2004/08/31 1.17.2p10 +[Patch: All-Mod-Support v10 by Jussi Kivilinna] +- Merged updates from Metamod 1.17.2, +http://www.sourceforge.net/projects/metamod/ +- Fixed a memory leak the size of the gamedll when extracting a missing +gamedll from the cache file on Windows Steam servers. +Found by Wei Mingzhi. +- Made game directory lookup case-insensitive. +- Added MOD recognition for The Terrorist Revenge 0.2.1, Pirates, +Vikings and Knights Beta 2.1, CSV15 (Counter-Strike 1.5 for Steam), +Adrenaline Gamer 6.5 and up. +- Changed MOD recognition for Adrenaline Gamer 3.x. The 3.x version of +the MOD is now being deprecated and support will be removed from a +future version of Metamod. It can currently still be used by renaming +the game directory from "ag" to "ag3" or by explicitly specifying the +gamedll. +- Improved parsing of plugins.ini file to not report errors on empty +lines and commented out lines that start with whitespace. +- Added "lin32" and "lin64" keywords in addition to "linux" keyword for +plugins.ini file to support using the same file for the same game on +both 32bit and 64bit servers. The "lin32" and "lin64" keywords +override the "linux" keyword when used on the same plugin. Do not +use "linux" when using "lin32" and/or "lin64" keywords for the same +plugin. + +## 2004/07/28 1.17.1p9 +[Patch: All-Mod-Support v9 by Jussi Kivilinna] +- [linux] Amd64-support. +- [linux] New version of osdep.cpp:is_gamedll(). +- Reads ELF directly and doesn't use external libraries. +- Binary isn't linked with BFD library anymore, reduces filesize to +less than 500kb. +- More optimizations on META_DEBUG macro. +- No more 'fast' compiles, META_DEBUG is optimized enough now. +- Added '+localinfo mm_clientmeta ' setting for disabling 'meta' +client-command. +- Added 'clientmeta' config.ini setting. + +## 2004/07/04 1.17.1p8 +[Patch: All-Mod-Support v8 by Jussi Kivilinna] +- Fixed memory leak in linux version of osdep.cpp:is_gamedll(). +- Fixes to improve stability. +- Optimizations on META_DEBUG macro. + +## 2004/06/06 1.17.1p7 +[Patch: All-Mod-Support v7 by Jussi Kivilinna] +- Official support for All-Mod-Support versions at http://koti.mbnet.fi/axh/ +- Merged updates from Metamod 1.17.1, +http://www.sourceforge.net/projects/metamod/ +- Added MOD recognition for Hostile Intent 1.1. +- Added MOD recognition for Natural Selection Beta 3.0. +- Added MOD recognition for CS13. +- Added MOD recognition Rocket Crowbar 2. +- Added MOD recognition Counter-Strike:Condition Zero. +- On Windows Steam servers extract the gamedll file from the cache file +if it is missing in the dlls directory. +- Added Patch-messages. +- Added '+localinfo mm_autodetect ' setting for disabling +autodetection of gamedll. +- Added 'autodetect' config.ini setting. +- Small tweaks and optimizations at various different places. + +## 2004/05/21 1.17p6 +[Patch: All-Mod-Support v6 by Jussi Kivilinna] +- Tweaks and optimizations on osdep.cpp:is_gamedll(). +- [linux] Added architecture check for i386 and x86-64 to is_gamedll(). + +## 2004/04/27 1.17p5 +[Patch: All-Mod-Support v5 by Jussi Kivilinna] +## 2004/04/26 1.17p4 +[Patch: All-Mod-Support v4 by Jussi Kivilinna] +- Amd64-test versions + +## 2004/04/25 1.17p3 +[Patch: All-Mod-Support v3 by Jussi Kivilinna] +- Automatically searchs for gameDll for new mods that are not included in +internal mod-list. +- [linux] Cleaned up osdep_linkent_linux.cpp, might work with x86-64 build +now (not tested). + +## 2004/04/24 1.17p2 +[Patch: All-Mod-Support v2 by Jussi Kivilinna] +- Extra functions slots are now passed all the way to the gameDll now too. +- [linux] New method for dlsym hooking, no need for metamod_linkent_tool.so anymore. +- Made mm_* functions in dllapi.cpp and engine_api.cpp static. +- Made mutil_* functions in mutil.cpp static. + +## 2004/04/22 1.17p1 +[Patch: All-Mod-Support v1 by Jussi Kivilinna] +- Removed dependences on game.dll structures (CBasePlayer). +- Replaced UTIL_ShowMessage with META_UTIL_ShowMessage. +- [win32] Replaced entity linking with PE dll-export-table combining. +- [linux] Replaced entity linking with dlsym hooking. +- Removed entities from linkgame.cpp +- Added 128 extra function slots on enginefuncs_t structure for future engine updates. + +## 2003/11/15 1.17 +- Added support for recently added routines in the HL Engine: +SequenceGet() +SequencePickSentence() +GetFileSize() +GetApproxWavePlayLen() +IsCareerMatch() +GetLocalizedStringLength() +RegisterTutorMessageShown() +GetTimesTutorMessageShown() +ProcessTutorMessageDecayBuffer() +ConstructTutorMessageDecayBuffer() +ResetTutorMessageDecayData() +- Removed mod recognition and entities for Master-Sword v1.3, at the +request of the Mod's authors. +- Added mod recognition and entities for HL-Rally vBeta 1.0, Kanonball +v1.01, Over Ground vBeta 1.0, Project Timeless vBeta 1.0, Underworld +Bloodline v2.0. +- Additional entities for The Battle Grounds v1.2.1, Firearms v2.8. +- Additional entities "env_rain" and "env_snow" used on some CS maps. +- Added "metamod_version" cvar that can be queried from game browser +clients. +- Added "meta" client command similar to the console command, providing at +this time only "list" and "version" subcommands. +- Introduced basic config file to provide more reliable and more +flexible options passing, in addition to the current +localinfo method. +- Default filename: addons/metamod/config.ini +- Options include: +debuglevel +gamedll +plugins_file +exec_cfg +- Added option "+localinfo mm_configfile " to override default +config.ini pathname. +- Added "meta config" console command to display result of config +file and localinfo options. +- Added "meta require " console command, to exit the server if the +specified plugin is not found loaded and running. Intended for use in +server.cfg or metaexec.cfg. Suggested by Florian Zschocke. +- If a specified override gamedll pathname is invalid, Metamod will now +exit with an appropriate error, rather than falling back to the +auto-detected gamedll. This should provide more useful feedback in such +situations. +- Added GINFO_REALDLL_FULLPATH for mutil GetGameInfo, to return the +(supposed) "real" dllpathname, ie in case gamedll is overridden. Needed +specifically for plugin "SinglePlayer". +- Raised META_INTERFACE_VERSION to 5:10, for GINFO_REALDLL_FULLPATH. +- Now recognizes "/dev/null" as valid for path options (pluginsfile, +execcfg, configini, etc), for when an empty file _is_ desired. +- Fixed loading of plugins.ini to detect duplicate plugins (by full +pathname). +- Added doc/config.ini with comments to document the file. +- Renamed doc/metamod.ini to doc/plugins.ini, and added comments. +- Internal changes: +- Added conf_meta.cpp, conf_meta.h for config file handling. +- Created full_gamedir_path() to centralize code for testing absolute +path, prepending gamedir if necessary, calling realpath, and +normalizing pathnames. +- Most paths are now stored and operated on as fullpathnames, rather +than gamedir-relative pathnames. +- Now using fopen() rather than LOAD_FILE_FOR_ME when reading text +files, in particular due to fullpathnames. +- Errorcheck for absolute paths as mm_execcfg filename, since +servercommand("exec") won't accept absolute pathanmes. +- Added debug messages to valid_gamedir_file(), for checking why it +failed to use a specified (config.ini, localinfo) path. +- Simplified logic in cmd_doplug() to not require re-mapping pcmd to cmd +string. +- Fixed Makefile to always recompile meta_api.cpp for changes in +info_name.h. +- Split lookup_game() into setup_gamedll and lookup_game, to better +organize for storing gamedll->real_pathname. +- Source and documentation files based on the list of supported +game/mods are split into their own files (games.h, +supportedmods.html), so they can be generated from a local database +rather than maintained manually. +- Makefile now using gcc-2.95 explicitly, to avoid using gcc3 at this +time. + +## 2003/08/02 1.16.2 +- Mod recognition and entities for The Point of No Return v.Beta 4.0. +- Even more entities for The Specialists v.Beta 2.0. + +## 2003/07/30 1.16.1 +- Mod recognition and entities for Master-Sword v1.3, The Wastes RC 1.2, +and Monkeystrike v1.2. +- Additional entities for Natural Selection v2.0, The Specialists v.Beta +2.0, Earth's Special Forces v.Beta 1.1, The Battlegrounds v1.2, and +International Online Soccer v2.0. + +## 2003/05/08 1.16 +- Added support for Server_GetBlendingInterface() in order to allow client +and server to properly coordinate custom player model blending. This +should fix the issue with mismatched hitboxes observed with CS and DOD. +- Mod recognition and entities for International Online Soccer v1.0 and +Morbid Inclination v1.0. +- Added studioapi.{cpp,h} to provide Server_GetBlendingInterface. + +## 2003/05/03 1.15.3 +- More additional entities for Day of Defeat v1.0. + +## 2003/05/02 1.15.2 +- Mod recognition and entities for Rival Species vBeta 1.0, Public Enemy +vBeta 1.0, and Bumper Cars vAlpha. +- Additional entities for Day of Defeat v1.0, Sven Coop v2.1, WormsHL +vBeta 3.0, and Natural Selection v1.1. + +## 2003/04/09 1.15.1 +- Additional entities for Firearms v2.7 and Desert Crisis v1.5. +- Fixed mod recognition for Adrenalinegamer v4.x and later. + +## 2003/02/12 1.15 +- Additional entities for VampireSlayer Chapter V. +- Fixed entity name "TS_PowerUp" for The Specialists 1.5; should fix +precache error for "models/powerup.mdl". +- Added DLFNAME implementation for win32, provided by Jussi Kivilinna. +Thus, "meta info " will now list registered commands and +registered cvars under win32, rather than just under linux. +- Now dynamically allocating lists of registered commands and registered +cvars, rather than a fixed limit of 1024 (and before that, 512). Based +on code provided by Jussi Kivilinna. +- Console listing of regcmds/regfuncs now also shows currently allocated +list sizes. +- Replaced valid_file() using LOAD_FILE_FOR_ME with valid_gamedir_file() +using stat(). Thus, it should no longer find unintended files under the +"valve" subdirectory. +- Normalize filenames under win32 to use slashes (/) and lowercase chars, +to get rid of mixed-slashes (ie "half-life\cstrike/dlls") and to +simplify pathname comparisons. +- Also, canonicalize filenames under both win32/linux to remove ".." and +redundant "/" path components, to provide more reliable pathname +comparisions. +- If meta_CVarRegister fails to find a corresponding plugin for a cvar, it +now logs only a Debug message rather than an Error message, as a cvar_t +that's malloc'd by a plugin can't be traced back. Problem reported by +Olo. +- In plugin trace, added "classname" to DispatchSpawn output. +- Added is_absolute_path() to centralize the logic, and to be more +OS-precise. +- Split meta_init_gamedll() from meta_load_gamedll() so that the correct +and normalized Gamedir is available earlier in the code. +- #define NAME_MAX and PATH_MAX to the correct win32 constants, rather +than using (inaccurate) internal values. +- Renamed internal classes RegFunc to RegCmd, to provide more easily +associated names. +- Lots of internal file organization changes: +- Removed superfluous symlinks in docs dir. +- Renamed toplevel doc files to *.txt. +- Added Config.mak to toplevel dir, to provide project name and subdirs, +so that toplevel Makefile can be used for multiple projects. +- Added copyrights to Makefiles. +- Added blurbs to engine notes for FunctionFromName and NameForFunction, +based on investigation of singleplayer support. +- In source Makefile, added support for compiling linux-only or +win32-only projects. +- In source Makefile, fixed vdate.o to properly compile for each link. +- Removed tmp files in msvc dir (.ncb, .plg). +- Added copyright/GPL blurb to *.rc files. +- In stub/meta_api.cpp, comment out unused variables rather than doing +"if(var)" to satisfy gcc -Wunused. +- Reduced vers_meta.h to just the version and other common info, and +create info_name.h for module-specific name, desc, etc, so that I'll +only have to edit 1 file when increasing version/date for all the DLLs +distributed with Metamod. +- Made res_meta.rc common among Metamod and the plugins, rather than +having a separate res_plugin.rc. +- In source Makefile, added "--include-dir" args to windres, so it can +find the now common vers_meta.h. +- Source Makefile now copies targets into ../dlls, rather than doing +that only for comprehensive "dlls" targets. +- Added "-fno-exceptions -fno-rtti" to possibly reduce code size, +suggested by Jussi Kivilinna. +- For plugins, renamed ie "mm_wdmisc" to "wdmisc_mm" where it was missed +earlier. +- For plugins, better organized common code, to make it more adaptable +to other plugin projects (ie, singlep). Ie, plugin_query, +plugin_attach, plugin_detach; moved plugin welcome banner to +meta_api.cpp; etc. +- Added tools/stlfilter to help hide -Weffc++ warnings from g++ STL +headers (although not using STL at this time..) + +## 2003/01/24 1.14.1 +- Properly recognize win32 full pathname from GetGameDir. +- Added "#include " for getcwd() under MSVC. +- Trace plugin: Changed AlertMessage formatting, ie from +"atype=at_console/1" to "atype=at_console(1)". +- Stub plugin: fixed to compile under MSVC again. + +## 2003/01/23 1.14 +- Fixed to handle new behavior of engine routine GET_GAME_DIR under HL +1.1.1.1 (CS 1.6) beta, where the routine no longer returns the +fullpathname of the game directory, but now returns only the string +passed to hlds as the argument to "-game" (pointed out by Alfred +Reynolds). +- Added meta-util function GET_GAME_INFO to return various string-based +information about the gamedll (name, description, gamedir fullpathname, +dll fullpathname, dll filename). +- Raised META_INTERFACE_VERSION from 5:8 to 5:9. +- Added FAQ. +- Some docs touchups. + +## 2003/01/18 1.13.4 +- Additional entities for betas of Counter-Strike 1.6 and TFC from HL +1.1.1.1. +- Added missing #include "osdep.h" to several files, to make sure things +like win32 vsnprintf are defined. +- In stub plugin, added engine_api.cpp, to provide example framework for +hooking engine routines. +- In trace plugin, changed logtag to all caps. + +## 2003/01/12 1.13.3 +- Additional entities and updated mod recognition for Earth's Special +Forces Beta 1. +- Mod recognition for Retro Firearms 2.5. +- Increased max allowed plugin functions and max allowed plugin cvars from +512 to 1024. +- Fixed UTIL_VarArgs and UTIL_LogPrintf (copied from SDK) to use proper +bounds-checking (to help prevent buffer overflows). +- Updated Copyright to include "2001-2003". + +## 2002/11/26 1.13.2 +- Mod recognition and entities for Azure Sheep v1.0, BuzzyBots v2.3, +Outlawsmod v.Beta 1.5, The Specialists v.Beta 1.0, and StargateTC v.Beta +2.2. +- Additional entities for The Battle Grounds v.Demo 1.0, Firearms v.2.6.5, +Global Warfare v.Beta 2.0, and Tour of Duty v1.1 Beta. +- Updated mod recognition for Rocket Crowbar v1.9. +- Compiled against HLSDK 2.3. +- Corrected missing "const" in vdate.h (noted by Ravenous BugBlatter +Beast). + +## 2002/10/06 1.13.1 +- Mod recognition and entities for Digital Paintball v1.0, Dragon Mod Z +v1.7, Holy Wars v.beta2, and OeL Half-Life v4.0. +- Additional entities for Adrenalinegamer Mod v6.0 and Natural Selection +v1.0. +- Corrected a cast in os_safe_call (from Olafur Osvaldsson). + +## 2002/08/24 1.13 +- New config file names and locations, per the Addon Development Standard +rev 1.00. Default config files are now: +- $gamedir/addons/metamod/plugins.ini +- $gamedir/addons/metamod/exec.cfg +- File "metagame.ini" no longer supported. +- Additional entities for WormsHL beta 2.1. +- Mod recognition (no entities) for Retro Counter-Strike 2.5. +- Added release_notes.html. +- Added function "valid_file" in support_meta.h. + +## 2002/07/11 1.12.4 +- Additional entities for Day of Defeat beta 3.0 and Tour of Duty 0.9.0. +- Mod recognition and entities for Natural Selection 1.0. +- Added "$pg" string for /usr/bin/ident. + +## 2002/07/01 1.12.3 +- Mod recognition and entities for Valve's Ricochet mod. +- Additional entities for Tour of Duty 0.8.0. +- Moved common code from LINK_ENTITY_TO_GAME to a function, rather than +duplicating the code in ~2000 expanded macros. Based on code from Jussi +Kivilinna . + +## 2002/06/04 1.12.2 +- Even more entities for Firearms rc2.6. + +## 2002/05/29 1.12.1 +- Mod recognition and entities for Desert Crisis 1.1, Tour of Duty 0.6.7, +and Train Hunters beta 1.0. +- Additional entities for GoldenEye 1.9C and Firearms rc2.6. +- Fixed meta-util function GET_PLUGIN_PATH to return the full path as +intended, rather than a partial path. +- Updated Copyright to include "2001-2002". +- Fixed Makefile to not update .tags or .htags by default. + +## 2002/04/22 1.12.0 +- Updated for HL 1109, which adds one Engine routine: +const char *GetPlayerAuthId(edict_t *e); +- Mod recognition and entities for The Battle Grounds 0.6, Gangwars Beta +1.0, and WormsHL Beta 2.0 +- Additional entities for Day of Defeat beta 2.0 and Oz 2.5. +- Changed error message "user message registered again" to a debug message +(level 3). +- Fixed compile problem under MSVC with strcasecmp. +- Added meta-util function GET_PLUGIN_PATH, so a plugin can know from +whence it was loaded. +- In trace plugin, added more trace info for EngineFprintf, ServerPrint, +IsMapValid, GetPlayerUserId, GetPlayerWONId, GetPlayerAuthId, +CVarGetFloat, CVarGetString, AllocString, Time, IsDedicatedServer, +GetCurrentPlayer, GetPlayerStats. + +## 2002/02/08 1.11.2 +- Hopefully complete list of entities for Day of Defeat beta 2.0. +- Don't complain for NULL routines in gamedll's NEW_DLL_FUNCTIONS. Should +solve "Couldn't find api call: dod.dll:ShouldCollide" errors with DoD +b2. +- Changed default for newapi ShouldCollide() from 0 to 1, per Mugsy@DoD's +observations. + +## 2002/02/03 1.11.1 +- Mod recognition and entities for Snow-War 1.0, and Earth`s Special +Forces version Alpha 2.0. +- Additional entities for Oz 2.4.1, Svencoop 2.0, and partial entities for +Day of Defeat beta 2.0. +- Added check for duplicate UserMsg registration (should help resolve +recent "reached max msgs 256" errors). +- Dropped leading zeroes in version number. +- Tweaked "interface version" log message to help reduce confusion. +- Compiled with updated version of mingw; should help reduce dll filesizes +found in the previous release. +- Some additional debugging in gamedll entity linking. + +## 2001/12/17 1.11.00 +- Mod recognition and entities for Weapon Wars v0.3. +- Additional entities for version 1.2 of Global Warfare. +- Linux binary linked against glibc-2.1.2 for better compatibility. +- 'meta game' now lists user messages registered by gamedll. +- Added meta-util functions GET_USER_MSG_ID and GET_USER_MSG_NAME, so +plugins that need to know RegUserMsg name/id mappings (like bots) don't +need to be loaded at server startup. +- Raised META_INTERFACE_VERSION from 5:6 to 5:7. +- Fixed NUM_FOR_EDICT error in pfnCenterSay (from Fritz Elfert). +- Re-fixed set_new_handler for MSVC (from Fritz Elfert). +- Fixed meta_AddServerCommand; was registering plugin's command string +rather than local string, causing segfault on plugin unload. +- Changed trace plugin to use GET_USER_MSG_NAME instead of local list. +- Added 'const' to 'char *' arguments in DLOPEN and DLSYM macros. +- Commented out names of unused function paramenters, to satisfy "gcc +-Wunused" without generating MSVC errors. +- Added '#pragma warning(disable: 4390)' to disable "empty controlled +statement" warnings in MSVC. +- Updated MSDN url references. + +## 2001/09/19 1.10.00 +- Updated for HL SDK 2.2, which adds two Engine routines: +qboolean Voice_GetClientListening)(int iReceiver, int iSender); +qboolean Voice_SetClientListening)(int iReceiver, int iSender, qboolean bListen); +- Mod recognition and entities for "Scientist Hunt" v1.2 and Existence +Beta 1.3. + +## 2001/08/01 1.09.00 +- Mod recognition and entities for 'Wanted!' v1.5. +- Mod recognition for Adrenalinegamer v3.2 and v4.1 (no special entities). +- Additional entities for version 2.3 of Oz Deathmatch. +- Additional entities for version 1.0 of Wizard Wars. +- Additional meta-utility function CALL_GAME_ENTITY. Raised +META_INTERFACE_VERSION from 5:5 to 5:6. +- Added proper GPL notices. + +## 2001/07/06 1.08.02 +- Added mod recognition and entities for Gunman Chronicles. +- Added list of supported mods to docs. +- Updated MSVC project/workspace files to match recent source changes. +- Fixed problem with set_new_handler compiling under MSVC. + +## 2001/06/30 1.08.01 +- Updated for Day of Defeat v1.3. The name of its win32 dll changed (was +mp.dll; now dod.dll). No new entities. +- Added mod recognition and entities for Rocket Crowbar. +- Fixed problem with windows internal DLL version (don't use leading +zeros as compiler will assume it's octal notation). + +## 2001/06/16 1.08.00 +- Allow specifying/overriding various things on the command line, via +"+localinfo". Fields are: +- mm_gamedll +a bot or other dll, instead of the gamedll based on the gamedir. +Note this is now the preferred method; the "metagame.ini" file is +deprecated, but still recognized for backwards compatibility. +- mm_pluginsfile +a file with the list of mm plugins, instead of "metamod.ini". +- mm_execcfg +a cfg file for mm plugin cvar settings, instead of "metaexec.cfg". +- mm_debug +an initial debug level. +- Examples: +./hlds_run -game cstrike +localinfo mm_gamedll dlls/pod_bot.so +./hlds_run -game cstrike +localinfo mm_pluginsfile mylist.ini +./hlds_run -game cstrike +localinfo mm_execcfg mysettings.cfg +./hlds_run -game cstrike +localinfo mm_debug 7 +- Don't try exec'ing metaexec.cfg unless it exists. +- Added additional entity for Action Half-Life Beta 4, from list forwarded +from the dev team. +- Added a couple additional entities for Global Warfare, from list +provided by the dev team. +- Moved a couple entities from the "common" list back to the "valve" list, +for better organization. +- Changed logmsg "Plugin '%s' interface version didn't match" from +"Warning:" to "Note:" to reduce confusion. +- Added an optional plugin meta-api routine Meta_Init, to be called prior +to GiveFnptrsToDll, to let the dll know that it's going to be +queried/loaded as a metamod plugin, to allow for DLL's that can be used +as both a metamod plugin _and_ a standalone DLL. Raised +META_INTERFACE_VERSION from 5:4 to 5:5. +- Removed segfault handler under linux, when calling plugin console +command functions, as (a) it masked legitimate segfaults in plugin +commands and produced confusing output ("plugin has been unloaded", when +really it segfaultd), and (b) wasn't necessary since the situation +should be covered by other tests. +- Replaced combo SDK macros with inline funcs, and added ones for +accessing serverinfo and localinfo infokey buffers. +- Unfinished code for event triggers is in the source, but is disabled +(since it's not finished yet). + +## 2001/06/10 1.07.03 +- improper compile was reporting wrong version number + +## 2001/06/07 1.07.02 +- added mod recognition and best-guess list of entities for Deathmatch +Classic v1 and Global Warfare Beta 1.0. +- updated entity list with best-guess additions and corrected win32 dll +name for Wasteland Beta 2. +- added additional entities for Frontline Force 1.2a, from list forwarded +from the dev team. + +## 2001/05/25 1.07.01 +- added complete (hopefully) list of additional entities for Front Line +Force 1.2a/1.3. +- added best-guess list of entities for Day of Defeat b1.1. +- added best-guess list of entities for Science & Industry 0.97 (later +confirmed by SI lead programmer). +- added better guess list of entites for Action Half-Life b4. +- shrunk entity lists for Jailbreak and Judgement to include only +mod-specific entities (rather than common Valve entities which are in a +separate list). +- in THREAD_CREATE inline, replaced "(DWORD (*)(void*)) func" with +"(LPTHREAD_START_ROUTINE) func" to properly compile under MSVC. +- added engine_notes.html with a list of all the engine routines, and some +comments. +- added utils/getents.sh script to pull entity lists from .so files. + +## 2001/05/08 1.07.00 +- fixed "%s" server-crashing bug. "You should never pass strings with +unknown contents as the format string." Metamod was passing a +preformatted non-constant (thus unknown contents) string as the format +string (and only argument) when handling printf-style varargs engine +functions (in particular, AlertMessage). Ie, don't do: +printf(buf); +Instead do: +printf("%s", buf); +- added some entities for Action Half-Life Beta4, which should help +address crashing on startup, especially with Last Man Standing random +weapons. Note that I don't have an official, complete list of entities +for the mod, so there may still be some instances of crashing. +- added debugging messages for printf-style varargs engine routines, since +we can't rely on trace_mm for this (as the messages are re-written by +metamod before being passed to trace). +- better info in trace plugin's log messages for AlertMessage and +CreateNamedEntity. +- altered debug levels AlertMessage API routines in api_info.cpp + +## 2001/05/04 1.06.10 +- fixed a couple of entities for HL Paintball. +- added links.html to docs, a set of links/URLs and books that I found +helpful for the project. +- added to META_INTERFACE_VERSION comments to include associated metmaod +version for each change. +- additional data checking in various MPluginList routines. +- added 'const' to various function arguments to more properly reflect +function purpose. +- changed various function macros to inlines, to provide more obvious type +checking, and easier debugging. +- adjusted private/public members of various classes, to try and make them +more proper. +- added new_handler code, for upcoming code additions. +- added MPluginList::find(plid_t id), for upcoming code additions. +- added thread primitives to osdep, for upcoming code additions. + +## 2001/04/29 1.06.02 +- added entities and mod recognition for VampireSlayer and Open-Source +Jailbreak. +- updated mod recognition for current names of Action Half-Life's DLL/SO +files. +- added some entities for FLF 1.2a, listed on Botman's news page. +- added some docs for Installation and Compiling. +- added build type info (optimized, debugging, etc) to the SpecialBuild +tag in the version info for the win32 DLL. +- disabled SDK's "DBG_" functions, for MSVC win32 debug compiles. + +## 2001/04/22 1.06.01 +- added some entities for FLF 1.2. +- better info in trace plugin's log messages for +DispatchObjectCollsionBox, SetModel, FindEntityByString, SetOrigin, +EntOffsetOfPEntity, PEntityOfEntIndex. +- fixed missing initialization for "len" in wdmisc. +- added links to sections in html docs. +- for non-critical interface version mismatch, changed from a META_ERROR +to just META_LOG, since it's not, strictly speaking, an error. + +## 2001/04/17 1.06.00 +- added support for "metaexec.cfg", a commands file to be exec'd after +loading the plugins, for plugin commands and cvars, since autoexec.cfg +is parsed too early (before plugins loaded) and server.cfg is parsed too +late (after ServerActivate). +- better info in trace plugin's log messages for MessageBegin, +WriteString, AlertMessage, RegUserMsg +- to provide more manageable trace log output, throttled trace plugin to 1 +logmsg per second, by default (of course, this can cause log messages to +be lost). Added cvar "trace_unlimit" (0/1) to enable unlimited logging, +as it did previously. +- added centersay meta-utility functions (CENTER_SAY, CENTER_SAY_PARMS, +CENTER_SAY_VARARGS). Raised META_INTERFACE_VERSION from 5:3 to 5:4. +- fixed crash when trying to load typical game DLLs (like standalone-bots) +as metamod plugins. +- fixed segfault on failed plugin attach; was dlclosing plugin +prematurely. +- in wdmisc, added a proof-of-concept for catching certain game events by +doing string matching on all the log messages produced by the game. +Ugly, to be sure, but interesting nonetheless. +- added more entities for HL Paintball, and fixed the linux so name. +- added "-Wno-unused" to CFLAGS when compiling sdk_util.o, to alleviate +the complaints from #including all the extra SDK header files and class +definitions. +- removed GetEntityAPI routine from trace plugin, as it's unnecessary as a +metamod plugin if already providing GetEntityAPI2. +- in trace, moved gMetaFunctionTable declaration to plugin.cpp, so that +meta_api.cpp can be a standard (plugin-independent) sourcefile used in +any plugin. +- updated the docs to include recent new features, as well as some better +discussion of coding details. + +## 2001/04/06 1.05.00 +- created utility callback functions, for use by plugins, to reduce code +duplication and help simplify some things. Currently, these consist of +only some convenient logging functions (LOG_CONSOLE, LOG_MESSAGE, +LOG_ERROR, LOG_DEVELOPER). +- added "mutil_funcs_t" to Meta_Query, to pass the meta utility function +table. Increased META_INTERFACE_VERSION from 5:2 to 5:3. +- made sure all exported DLL routines (ie routines that are accessed via +dlsym) are both declared _and defined_ as 'extern "C"', so that the C++ +compiler enforces parameter type-matching, rather than considering +routines with mis-matched arguments/types to be overloaded functions... +Note that it's not sufficient to just be declared "C"; it has to defined +this way as well, to make sure the C++ compiler matches it with the +declaration. Otherwise, again, it'll consider it an overloaded +function, and allow it happily without complaint, and cause the +subsequent dlsym to fail. +- created and deployed C_DLLEXPORT macro for declaring/defining functions +'extern "C" DLLEXPORT'. +- added plugin 'wdmisc' as a basic example, and for my miscellaneous +commands/cvars. +- renamed "mm_stub" and "mm_trace" to "stub_mm" and "trace_mm" to make +plugin name more apparent, and to be more consistent with adminmod_MM. +- had to move plugin_info_t to its own header file, to avoid circular +#include's between meta_api.h and mutil.h. +- in dllapi.cpp and engineapi.cpp, pulled RETURN_API out of META_HANDLE +macro, to make it easier to add code to middle of API routines. +- renamed util_meta.h to support_meta.h, to avoid confusion with mutil.h +- some code cleanup (better 80-column linebreaks). + +## 2001/04/03 1.02.00 +- added support for Half-Life Paintball +- added "*_mm" and "*_MM" to the list of suffixes to look for when loading +plugins at console. +- log errors when plugin tries to use MRES_SUPERCEDE in a _Post function +(supercede is only relevant in a non-Post function; use OVERRIDE in a +Post function). +- mm_trace: added info to trace log for FindEntityInSphere +- added osdep macro for strcasecmp, for compiling under windows +- fixed a debug log message for GetEngineFunctions_Post +- fixed a couple internal references to engine globals (gpGLobals) +- renamed local SDK API routines to "mm_*" for easier debug breakpoints +- altered debug levels for a couple API routines in api_info.cpp + +## 2001/04/01 1.01.00 +- replaced use of FStrEQ in most places with !strcasecmp, so that case +doesn't matter for things like console commands ("META LOAD" will now +work in addition to "meta load") and paths (like "-game CSTRIKE"; and +win32 filepaths are case-insignificant anyway). Interestingly, the HL +engine ignores case for console commands ("ADMIN_COMMAND" works), but +cvars are only recognized with matching case ("ADMIN_DEBUG" does not +work). Confusing. +- added "by " when printing author info, to make it a bit clearer +- added a bit more operation info to metamod.html + +## 2001/03/30 1.00.00 +- released as v1.0, for inclusion with release of Adminmod v2.50. +- added $(VERSFILE) to Makefile and Config.mak, to better insure correct +rebuild on version number changes +- added "i486", "i586", and "i686" to "i386" in the list of prefixes to +look for when loading plugins at console. +- added "MDLL*" and "MNEW" macros in meta_api.h, to be more convenient for +plugins to call GameDLL functions. +- added missing "extern gamedll_funcs_t *gpGamedllFuncs" to meta_api.h +- added handling of gpGamedllFuncs in stub, for example purposes. +- fixed problems with running bots under metagame.ini: +- moved instantiation of Plugins object to before meta_load_gamedll, so +that if gamedll calls engine functions during GiveFnptrsToDll (like +hpb_bot does), META_ENGINE_HANDLE won't crash from a null Plugins object +pointer. +- in GET_FUNC_TABLE_FROM_GAME, memset gamedll.funcs.struct_field, and then +free/null it if the gamedll's GetFuncs call fails, to handle the +situation where the gamedll provides GetNewDLLFunctions(), but doesn't +have anything to return (like hpb_bot does, when the real gamedll +doesn't provide GetNewDLLFunctions). +- add handling of gpGamedllFuncs to mm_stub's Meta_Attach(). + +## 2001/03/27 1.0-rc5 +- fixed problem with crashing when a plugin failed to load (improper +dereference of null 'info' structure; incomplete fix from rc2). +- added a plugin status "badfile", for plugin files that appear to be +invalid metamod plugins; this is to differentiate from "failed", which +is a valid-looking plugin file (queried) but encountered a failure +attaching/unloading/etc. +- changed "-march=i686" optimization to "-march=i586", and moved this to +only the optimized binaries, and not the debugging binaries. As it +turns out, i686 doesn't work on things like AMD K6-III cpus (I know, go +figure :). +- duplicated functionality of adminmod's "admin.ini", except with a file +named "metagame.ini". This will allow (at least partial) use with game +DLLs that metamod doesn't support yet - "partial" because, although the +game DLL will load, it may not work if it uses entities that metamod +doesn't know about yet. It will also allow use of standalone "bot" +DLLs, which sit between metamod and the gamedll (much like metamod sits +between the engine and the gamedll). +- added console command "meta game" to show information about the loaded +game DLL (to help troubleshoot issues with "metagame.ini"). + +## 2001/03/25 1.0-rc4 +- split linkfunc.cpp into linkent.h, linkgame.cpp, linkplug.cpp +- split entity lists for mods into separate files, one for each mod; these +are used to build linkgame.cpp +- metamod/mm_trace version info should indicate debugging/optimized compile +- added entity support for Judgement DM +- added "-fno-rtti" to mm_trace gcc cflags, to address problem of +unresolved CSaveRestoreBuffer symbols using older versions of gcc +- lowered debug levels in GetEntityAPI, GetNewDLLFunctions, etc to enable +"+developer" messages (6 -> 3). +- removed "-Werror" from Makefile's default cflags; should only be used +on devl system with edited SDK + +## 2001/03/18 1.0-rc3 +- central Makefile can now build optimzed as well as debugging targets; +default to compile is debugging; default in 'dlls' dir is optimized +- toplevel Makefile builds release tgz/zip files. TGZ file includes only +linux .so objects, and text files in unix-LF format. ZIP file includes +only win32 .dll objects, and text files in dos-CRLF format, and actual +files rather than symlinks. +- added mod recognition for "judgedm" mod; still need entities list +- added 4 entities for Firearms 2.5 + +## 2001/03/07 1.0-rc2 +- fixed missing WINAPI in mm_trace GiveFnptrsToDll +- added HTML version of docs +- description field in metamod.ini is now optional: +- uses "name" from plugin info for desc by default +- desc field in metamod.ini will override this +- "meta list" shows just desc, rather than desc and name +- altered debug levels for a couple API routines in api_info.cpp +- added missing "load" cmd in "meta" usage help +- added to "meta load" usage help +- added macros RETURN_META(result) and RETURN_META_VALUE(result, value) to +simplify plugin coding +- added parameter "gamedll_funcs" to meta_attach(), to give each plugin a +copy of the gamedll's API function tables +- raised META_INTERFACE_VERSION to "5:2" +- now load gamedll before plugins (rather than the reverse) so that +it'll have the gamedll func tables to hand to the plugins +- changed trace plugin console commands: +trace_version -> trace version +trace -> trace set +untrace -> trace unset +showtrace -> trace show +- added "trace list " to list all available routines for tracing +- fixed broken trace cvars +- for "meta {load,unload,etc}" console cmd, added matching against plugin +logtag, as well as for "mm_" in plugin file +- handle null 'info' after failed plugin load (ie in "meta info" etc) +- fixed "usage: meta list" errors on some meta commands; was calling +cmd_meta_pluginlist() instead of Plugins->show() +- fixed: unload/attach delayed plugins at changelevel +- now doesn't export newapi if gamedll doesn't provide it +- now doesn't call plugins getnewapi if gamedll doesn't provide it +- fixed incorrect apitable references in MPlugin::show() + +## 2001/02/08 1.0-rc1 +- fixed unistd.h under MSVC +- fixed S_ISREG under MSVC +- fixed strncasecmp under MSVC +- fixed void svr_meta() returning value +- fixed missing WINAPI in mm_stub GiveFnptrsToDll +- remade MSVC project for metamod +- created MSVC project for mm_stub +- added an example "metamod.ini" to ./docs + diff --git a/Changelog.txt b/Changelog.txt deleted file mode 100644 index feb0794..0000000 --- a/Changelog.txt +++ /dev/null @@ -1,992 +0,0 @@ -# vim: set tw=75 ft=none : - -Current version: 1.20p35 - -For newer changes, see Metamod-P git repository commit log at: - http://metamod-p.git.sourceforge.net/git/gitweb.cgi?p=metamod-p/metamod-p;a=summary - ---- - -2012/08/08 1.19p34 - - Revert changes in 1.19p33 and start over with 1.19p32 code base - - Fix compiling with latest userspace headers and gcc-4.6 - - Disabled building x86-64 binaries as Valve has dropped x86-64 - linux server support. - -2012/07/27 1.19p33 - - Accumulated fixes and changes over time - - Fixes compiling with latest userspace headers and gcc-4.6 - - (introduced bugs, crashes, do not use) - -2007/08/12 1.19p32 -[Patch: Metamod-P v32 by Jussi Kivilinna] - - Changed GCC optimization flags based on performance monitoring results, - replaced '-O3 -funroll-all-loops' with '-O2'. - - Made 'Fix for engine_api varargs log calls with very long log string' - default on in sources so that MSVC compile is 1:1 with GCC compile. - - Made 'optimizations on META_DEBUG' always on in sources so that MSVC - compile is 1:1 with GCC compile. - - Fixed compiling META_PERFMON build with MSVC. - - Fixed compiling with MSVC fixed by Nikolay "The Storm" Baklicharov. - - [linux] Remake of dynamic linkent code. Parse dlsym function trampoline - instead of parsing ELF structures. - - [linux] Dropped AMD64 support since Valve doesn't support their AMD64 build - anymore and I don't have access to AMD64 machine to port new dynamic - linkent code. Sorry! - -2007/04/05 1.19p31 -[Patch: Metamod-P v31 by Jussi Kivilinna] - - Enabled 'regparam' for internal functions. Means that function arguments are - passed through registers instead of stack, which increases performance. - - Merged in changes from Metamod 1.19 that I didn't initially notice: - - Fixed a bug where plugins could not catch NewDLL calls for GameDLLs that - do not provide NewDLL information. - -2007/04/04 1.19p30 -[Patch: Metamod-P v30 by Jussi Kivilinna] - - Fixed safevoid_vsnprintf() on win32. - -2007/04/02 1.19p29 -[Patch: Metamod-P v29 by Jussi Kivilinna] - - crash fix that didn't work - -2006/03/04 1.19p28 -[Patch: Metamod-P v28 by Jussi Kivilinna] - - Removed use of __VA_ARGS__ (should be easy to port to msvc now). - - Reduced size of extra engineapi function slots from 128 to 16. - - Clean up code, removed use of likely()/unlikely() macros in places where - they don't give extra performance. - - Added MakeRequestID() API - - Added api for using hook tables from plugins (thanks to BAILOPAN) - - Re-enabled fix for engine_api varargs log calls with very long log string. - -2005/08/24 1.18p26 -[Patch: Metamod-P v26 by Jussi Kivilinna] - - Fixed newapi functions not active on mods that don't use newapi. - - [win32] New is_gamedll() code. - - [linux] Fix for buggy DT_HASH in library walker function. - - Following features were removed to improve stability. These changes were - not present in metamod.org version: - - Removed fix for engine_api varargs log calls with very long log - string. - - Removed optimized version of GET_USER_MSG_ID() for metamod-bots. - -2005/08/24 1.18p25 -[Patch: Metamod-P v25 by Jussi Kivilinna] - - Added mutil::IsQueryingClientCvar(). - - Added support for new HLSDK-API functions: - - enginefuncs_t::pfnQueryClientCvarValue() - - NEW_DLL_FUNCTIONS::pfnCvarValue() - - Fixed reloading and unloading of plugins that haven't been loaded - correctly. - - Fixed loading of plugins that needed changelevel to activate. - - Linux x86 and Windows binaries are now compiled for i586 since there is not - performance difference compared to i686. - - Fixes to improve stability on win32. (thanks to Blackhawk) - - Changed to use mingw-gcc 3.4.2rc - - Changed optimization flags, replaced '-O3 -ffast-math' with '-O2'. - - Minor performance tweaks. - - Changed to use mingw-gcc 3.4.2rc, mingw-gcc 3.4.4rc emited extra code - to zero stack memory which lowered performance. - - Changed API hooks to give structure offset to main API hook function - instead of pointer, which increases performance on linux-i586. - - Raised META_INTERFACE_VERSION to "5:12". - - Fixed metamod_version cvar to show "1.18p25" instead of "1.18.0p25". - - [linux] Improved dynamic linkent code. - - [linux] Static linked with libgcc. - -2005/07/27 1.18p24 -[Patch: Metamod-P v24 by Jussi Kivilinna] - - Updated to match latest metamod.org version. - - Removed mm-p-extensions-API, since loading/unloading plugins functions - are included in Metamod 1.18 in mutil-API. - -2005/04/22 1.17.4p23 -[Patch: Metamod-P v23 by Jussi Kivilinna] - - Fixed broken RegMsgList caused by optimization for mm-bots. - - Fixed optimization for mm-bots. - - [linux] Removed ESF-Mod fix. - - [linux] Minor performance tweaks and reduced filesize for linux. - -2005/04/08 1.17.4p22 -[Patch: Metamod-P v22 by Jussi Kivilinna] - - Optimized GET_USER_MSG_ID() function for metamod-bots. - - Minor performance tweaks. - - [linux] Looks for gamedll for Earth Special Forces Mod from 'linuxdlls' - directory after checking 'dlls'. - -2005/03/25 1.17.4p21 -[Patch: Metamod-P v21 by Jussi Kivilinna] - - Fixed 'meta reload' not working on plugins that have failed loading. - - Fixed bug with handling of metamod-plugin-bots, which might have caused - problems depending on order of loaded plugins. See 'call_count' in - 'api_hook.cpp' for details. - - Minor performace tweaks. - - Changed all non-fatal error messages to warning messages. - -2005/03/05 1.17.4p20 -[Patch: Metamod-P v20 by Jussi Kivilinna] - - Fixed bug with metamod.dll not having working relocation: - - Makefile doesn't use 'dllwrap' for linking windows dlls anymore. - - Minor performance tweaks. - - Updated mini-hlsdk to 'official 2.3+patches' version. - - Fixes to improve stability: - - Added fix for broken 'vsnprintf' for win32 and some glibc versions. - - Fixed wrong api-hook function for 'ClientConnect' in 'api_info.cpp'. - - Fixed wrong integer type for CRC32_t in 'hlsdk/common/crc.h'. - - Removed 'metamod_compat-i386.so' from linux binary release. - -2005/02/27 1.17.4p19 -[Patch: Metamod-P v19 by Jussi Kivilinna] - - Performance tweaks mainly for AMD64 (minor for i386). - - Linux-i386 (metamod_i386.so) binary linked against glibc-2.1.3 for better - compatibility. Compiled using gcc-3.3.4-glibc-2.1.3 crosscompiler available - at: http://forums.unitedadmins.com/index.php?showtopic=44048 - - Binaries not linked against libstdc++ anymore for better compatibility - (see: new_baseclass.h). - -2005/02/25 1.17.4p18 -[Patch: Metamod-P v18 by Jussi Kivilinna] - - Fixed AMD64 support. - -2005/02/19 1.17.4p17 -[Patch: Metamod-P v17 by Jussi Kivilinna] - - Renamed 'Metamod All-Mod-Support' to 'Metamod-P'. - - Fixes to improve stability. - - Minor performance tweaks. - - Merged updates from Metamod 1.17.4, - http://www.sourceforge.net/projects/metamod/ - - Added Mod recognition for Brain Bread 1.2, Snow-War 2.0 and - Gangsta Wars 2.7. - -2005/02/13 1.17.3p16 -[Patch: All-Mod-Support v16 by Jussi Kivilinna] - - Fixes to improve stability. - - Minor performance tweaks. - -2005/01/10 1.17.3p15 -[Patch: All-Mod-Support v15 by Jussi Kivilinna] - - New optimization which reduces binary size more than 50%. - - Changed '-march=i586' to '-march=i686'. This means this binary - doesn't work on Pentium/K6 processors. You need PPro/Athlon - or newer. - - Removed 'Active API Hooks' optimization. - - Removed 'memory write detection' code. - -2004/11/27 1.17.3p14 -[Patch: All-Mod-Support v14 by Jussi Kivilinna] - - Remake of new callback API. - -2004/11/27 1.17.3p13 -[Patch: All-Mod-Support v13 by Jussi Kivilinna] - - New callback API for plugins to load/unload other plugins. See - 'mm_pextensions.h'. - - Fixed a minor memory leak when reloading plugins. - - Minor fixes on 'memory write detection'. - - Minor performance tweaks. - - Moved p13 code from osdep.cpp/h to osdep_p.cpp/h - -2004/11/17 1.17.3p12 -[Patch: All-Mod-Support v12 by Jussi Kivilinna] - - Fixed crashing with 'memory write detection' (part of 'Active API Hooks'). - - Improved 'memory write detection' code. - -2004/11/16 1.17.3p11 -[Patch: All-Mod-Support v11 by Jussi Kivilinna] - - Added new 'Active API Hooks' optimization, speeding up handling HLSDK-API - functions that are not hooked by any plugins. - - Added new command 'meta active' to list active hooks. - - [linux] 'metamod_i386.so' is compiled with gcc-3.3.4 now. If that version - doesn't work for you, use 'metamod_compat-i386.so'. - - [linux] gcc-2.95 compiled binary is now 'metamod_compat-i386.so'. - - Merged updates from Metamod 1.17.3, - http://www.sourceforge.net/projects/metamod/ - - Added Mod recognition for Zombie Panic Beta 0.91c, Out Break 1.0, - Operations 1942 v2.0, The Trenches 1.0-Beta, The Ship V0052. - - When reloading plugins honour their load time settings. Does no longer - attempt to reload plugins when the loading after the unloading would - fail due to a load time conflict. - - Fixed only loading one plugin when multiple plugins with the same - prefix were used, e.g. mm_pluginA.dll and mm_pluginB.dll. - - Fixed a minor memory leak when unloading plugins. - - Fixed potential bug initializing plugin incorrectly after unloading - and loading plugins. - -2004/08/31 1.17.2p10 -[Patch: All-Mod-Support v10 by Jussi Kivilinna] - - Merged updates from Metamod 1.17.2, - http://www.sourceforge.net/projects/metamod/ - - Fixed a memory leak the size of the gamedll when extracting a missing - gamedll from the cache file on Windows Steam servers. - Found by Wei Mingzhi. - - Made game directory lookup case-insensitive. - - Added MOD recognition for The Terrorist Revenge 0.2.1, Pirates, - Vikings and Knights Beta 2.1, CSV15 (Counter-Strike 1.5 for Steam), - Adrenaline Gamer 6.5 and up. - - Changed MOD recognition for Adrenaline Gamer 3.x. The 3.x version of - the MOD is now being deprecated and support will be removed from a - future version of Metamod. It can currently still be used by renaming - the game directory from "ag" to "ag3" or by explicitly specifying the - gamedll. - - Improved parsing of plugins.ini file to not report errors on empty - lines and commented out lines that start with whitespace. - - Added "lin32" and "lin64" keywords in addition to "linux" keyword for - plugins.ini file to support using the same file for the same game on - both 32bit and 64bit servers. The "lin32" and "lin64" keywords - override the "linux" keyword when used on the same plugin. Do not - use "linux" when using "lin32" and/or "lin64" keywords for the same - plugin. - -2004/07/28 1.17.1p9 -[Patch: All-Mod-Support v9 by Jussi Kivilinna] - - [linux] Amd64-support. - - [linux] New version of osdep.cpp:is_gamedll(). - - Reads ELF directly and doesn't use external libraries. - - Binary isn't linked with BFD library anymore, reduces filesize to - less than 500kb. - - More optimizations on META_DEBUG macro. - - No more 'fast' compiles, META_DEBUG is optimized enough now. - - Added '+localinfo mm_clientmeta ' setting for disabling 'meta' - client-command. - - Added 'clientmeta' config.ini setting. - -2004/07/04 1.17.1p8 -[Patch: All-Mod-Support v8 by Jussi Kivilinna] - - Fixed memory leak in linux version of osdep.cpp:is_gamedll(). - - Fixes to improve stability. - - Optimizations on META_DEBUG macro. - -2004/06/06 1.17.1p7 -[Patch: All-Mod-Support v7 by Jussi Kivilinna] - - Official support for All-Mod-Support versions at http://koti.mbnet.fi/axh/ - - Merged updates from Metamod 1.17.1, - http://www.sourceforge.net/projects/metamod/ - - Added MOD recognition for Hostile Intent 1.1. - - Added MOD recognition for Natural Selection Beta 3.0. - - Added MOD recognition for CS13. - - Added MOD recognition Rocket Crowbar 2. - - Added MOD recognition Counter-Strike:Condition Zero. - - On Windows Steam servers extract the gamedll file from the cache file - if it is missing in the dlls directory. - - Added Patch-messages. - - Added '+localinfo mm_autodetect ' setting for disabling - autodetection of gamedll. - - Added 'autodetect' config.ini setting. - - Small tweaks and optimizations at various different places. - -2004/05/21 1.17p6 -[Patch: All-Mod-Support v6 by Jussi Kivilinna] - - Tweaks and optimizations on osdep.cpp:is_gamedll(). - - [linux] Added architecture check for i386 and x86-64 to is_gamedll(). - -2004/04/27 1.17p5 -[Patch: All-Mod-Support v5 by Jussi Kivilinna] -2004/04/26 1.17p4 -[Patch: All-Mod-Support v4 by Jussi Kivilinna] - - Amd64-test versions - -2004/04/25 1.17p3 -[Patch: All-Mod-Support v3 by Jussi Kivilinna] - - Automatically searchs for gameDll for new mods that are not included in - internal mod-list. - - [linux] Cleaned up osdep_linkent_linux.cpp, might work with x86-64 build - now (not tested). - -2004/04/24 1.17p2 -[Patch: All-Mod-Support v2 by Jussi Kivilinna] - - Extra functions slots are now passed all the way to the gameDll now too. - - [linux] New method for dlsym hooking, no need for metamod_linkent_tool.so anymore. - - Made mm_* functions in dllapi.cpp and engine_api.cpp static. - - Made mutil_* functions in mutil.cpp static. - -2004/04/22 1.17p1 -[Patch: All-Mod-Support v1 by Jussi Kivilinna] - - Removed dependences on game.dll structures (CBasePlayer). - - Replaced UTIL_ShowMessage with META_UTIL_ShowMessage. - - [win32] Replaced entity linking with PE dll-export-table combining. - - [linux] Replaced entity linking with dlsym hooking. - - Removed entities from linkgame.cpp - - Added 128 extra function slots on enginefuncs_t structure for future engine updates. - -2003/11/15 1.17 - - Added support for recently added routines in the HL Engine: - SequenceGet() - SequencePickSentence() - GetFileSize() - GetApproxWavePlayLen() - IsCareerMatch() - GetLocalizedStringLength() - RegisterTutorMessageShown() - GetTimesTutorMessageShown() - ProcessTutorMessageDecayBuffer() - ConstructTutorMessageDecayBuffer() - ResetTutorMessageDecayData() - - Removed mod recognition and entities for Master-Sword v1.3, at the - request of the Mod's authors. - - Added mod recognition and entities for HL-Rally vBeta 1.0, Kanonball - v1.01, Over Ground vBeta 1.0, Project Timeless vBeta 1.0, Underworld - Bloodline v2.0. - - Additional entities for The Battle Grounds v1.2.1, Firearms v2.8. - - Additional entities "env_rain" and "env_snow" used on some CS maps. - - Added "metamod_version" cvar that can be queried from game browser - clients. - - Added "meta" client command similar to the console command, providing at - this time only "list" and "version" subcommands. - - Introduced basic config file to provide more reliable and more - flexible options passing, in addition to the current +localinfo method. - - Default filename: addons/metamod/config.ini - - Options include: - debuglevel - gamedll - plugins_file - exec_cfg - - Added option "+localinfo mm_configfile " to override default - config.ini pathname. - - Added "meta config" console command to display result of config - file and localinfo options. - - Added "meta require " console command, to exit the server if the - specified plugin is not found loaded and running. Intended for use in - server.cfg or metaexec.cfg. Suggested by Florian Zschocke. - - If a specified override gamedll pathname is invalid, Metamod will now - exit with an appropriate error, rather than falling back to the - auto-detected gamedll. This should provide more useful feedback in such - situations. - - Added GINFO_REALDLL_FULLPATH for mutil GetGameInfo, to return the - (supposed) "real" dllpathname, ie in case gamedll is overridden. Needed - specifically for plugin "SinglePlayer". - - Raised META_INTERFACE_VERSION to 5:10, for GINFO_REALDLL_FULLPATH. - - Now recognizes "/dev/null" as valid for path options (pluginsfile, - execcfg, configini, etc), for when an empty file _is_ desired. - - Fixed loading of plugins.ini to detect duplicate plugins (by full - pathname). - - Added doc/config.ini with comments to document the file. - - Renamed doc/metamod.ini to doc/plugins.ini, and added comments. - - Internal changes: - - Added conf_meta.cpp, conf_meta.h for config file handling. - - Created full_gamedir_path() to centralize code for testing absolute - path, prepending gamedir if necessary, calling realpath, and - normalizing pathnames. - - Most paths are now stored and operated on as fullpathnames, rather - than gamedir-relative pathnames. - - Now using fopen() rather than LOAD_FILE_FOR_ME when reading text - files, in particular due to fullpathnames. - - Errorcheck for absolute paths as mm_execcfg filename, since - servercommand("exec") won't accept absolute pathanmes. - - Added debug messages to valid_gamedir_file(), for checking why it - failed to use a specified (config.ini, localinfo) path. - - Simplified logic in cmd_doplug() to not require re-mapping pcmd to cmd - string. - - Fixed Makefile to always recompile meta_api.cpp for changes in - info_name.h. - - Split lookup_game() into setup_gamedll and lookup_game, to better - organize for storing gamedll->real_pathname. - - Source and documentation files based on the list of supported - game/mods are split into their own files (games.h, - supportedmods.html), so they can be generated from a local database - rather than maintained manually. - - Makefile now using gcc-2.95 explicitly, to avoid using gcc3 at this - time. - -2003/08/02 1.16.2 - - Mod recognition and entities for The Point of No Return v.Beta 4.0. - - Even more entities for The Specialists v.Beta 2.0. - -2003/07/30 1.16.1 - - Mod recognition and entities for Master-Sword v1.3, The Wastes RC 1.2, - and Monkeystrike v1.2. - - Additional entities for Natural Selection v2.0, The Specialists v.Beta - 2.0, Earth's Special Forces v.Beta 1.1, The Battlegrounds v1.2, and - International Online Soccer v2.0. - -2003/05/08 1.16 - - Added support for Server_GetBlendingInterface() in order to allow client - and server to properly coordinate custom player model blending. This - should fix the issue with mismatched hitboxes observed with CS and DOD. - - Mod recognition and entities for International Online Soccer v1.0 and - Morbid Inclination v1.0. - - Added studioapi.{cpp,h} to provide Server_GetBlendingInterface. - -2003/05/03 1.15.3 - - More additional entities for Day of Defeat v1.0. - -2003/05/02 1.15.2 - - Mod recognition and entities for Rival Species vBeta 1.0, Public Enemy - vBeta 1.0, and Bumper Cars vAlpha. - - Additional entities for Day of Defeat v1.0, Sven Coop v2.1, WormsHL - vBeta 3.0, and Natural Selection v1.1. - -2003/04/09 1.15.1 - - Additional entities for Firearms v2.7 and Desert Crisis v1.5. - - Fixed mod recognition for Adrenalinegamer v4.x and later. - -2003/02/12 1.15 - - Additional entities for VampireSlayer Chapter V. - - Fixed entity name "TS_PowerUp" for The Specialists 1.5; should fix - precache error for "models/powerup.mdl". - - Added DLFNAME implementation for win32, provided by Jussi Kivilinna. - Thus, "meta info " will now list registered commands and - registered cvars under win32, rather than just under linux. - - Now dynamically allocating lists of registered commands and registered - cvars, rather than a fixed limit of 1024 (and before that, 512). Based - on code provided by Jussi Kivilinna. - - Console listing of regcmds/regfuncs now also shows currently allocated - list sizes. - - Replaced valid_file() using LOAD_FILE_FOR_ME with valid_gamedir_file() - using stat(). Thus, it should no longer find unintended files under the - "valve" subdirectory. - - Normalize filenames under win32 to use slashes (/) and lowercase chars, - to get rid of mixed-slashes (ie "half-life\cstrike/dlls") and to - simplify pathname comparisons. - - Also, canonicalize filenames under both win32/linux to remove ".." and - redundant "/" path components, to provide more reliable pathname - comparisions. - - If meta_CVarRegister fails to find a corresponding plugin for a cvar, it - now logs only a Debug message rather than an Error message, as a cvar_t - that's malloc'd by a plugin can't be traced back. Problem reported by - Olo. - - In plugin trace, added "classname" to DispatchSpawn output. - - Added is_absolute_path() to centralize the logic, and to be more - OS-precise. - - Split meta_init_gamedll() from meta_load_gamedll() so that the correct - and normalized Gamedir is available earlier in the code. - - #define NAME_MAX and PATH_MAX to the correct win32 constants, rather - than using (inaccurate) internal values. - - Renamed internal classes RegFunc to RegCmd, to provide more easily - associated names. - - Lots of internal file organization changes: - - Removed superfluous symlinks in docs dir. - - Renamed toplevel doc files to *.txt. - - Added Config.mak to toplevel dir, to provide project name and subdirs, - so that toplevel Makefile can be used for multiple projects. - - Added copyrights to Makefiles. - - Added blurbs to engine notes for FunctionFromName and NameForFunction, - based on investigation of singleplayer support. - - In source Makefile, added support for compiling linux-only or - win32-only projects. - - In source Makefile, fixed vdate.o to properly compile for each link. - - Removed tmp files in msvc dir (.ncb, .plg). - - Added copyright/GPL blurb to *.rc files. - - In stub/meta_api.cpp, comment out unused variables rather than doing - "if(var)" to satisfy gcc -Wunused. - - Reduced vers_meta.h to just the version and other common info, and - create info_name.h for module-specific name, desc, etc, so that I'll - only have to edit 1 file when increasing version/date for all the DLLs - distributed with Metamod. - - Made res_meta.rc common among Metamod and the plugins, rather than - having a separate res_plugin.rc. - - In source Makefile, added "--include-dir" args to windres, so it can - find the now common vers_meta.h. - - Source Makefile now copies targets into ../dlls, rather than doing - that only for comprehensive "dlls" targets. - - Added "-fno-exceptions -fno-rtti" to possibly reduce code size, - suggested by Jussi Kivilinna. - - For plugins, renamed ie "mm_wdmisc" to "wdmisc_mm" where it was missed - earlier. - - For plugins, better organized common code, to make it more adaptable - to other plugin projects (ie, singlep). Ie, plugin_query, - plugin_attach, plugin_detach; moved plugin welcome banner to - meta_api.cpp; etc. - - Added tools/stlfilter to help hide -Weffc++ warnings from g++ STL - headers (although not using STL at this time..) - -2003/01/24 1.14.1 - - Properly recognize win32 full pathname from GetGameDir. - - Added "#include " for getcwd() under MSVC. - - Trace plugin: Changed AlertMessage formatting, ie from - "atype=at_console/1" to "atype=at_console(1)". - - Stub plugin: fixed to compile under MSVC again. - -2003/01/23 1.14 - - Fixed to handle new behavior of engine routine GET_GAME_DIR under HL - 1.1.1.1 (CS 1.6) beta, where the routine no longer returns the - fullpathname of the game directory, but now returns only the string - passed to hlds as the argument to "-game" (pointed out by Alfred - Reynolds). - - Added meta-util function GET_GAME_INFO to return various string-based - information about the gamedll (name, description, gamedir fullpathname, - dll fullpathname, dll filename). - - Raised META_INTERFACE_VERSION from 5:8 to 5:9. - - Added FAQ. - - Some docs touchups. - -2003/01/18 1.13.4 - - Additional entities for betas of Counter-Strike 1.6 and TFC from HL - 1.1.1.1. - - Added missing #include "osdep.h" to several files, to make sure things - like win32 vsnprintf are defined. - - In stub plugin, added engine_api.cpp, to provide example framework for - hooking engine routines. - - In trace plugin, changed logtag to all caps. - -2003/01/12 1.13.3 - - Additional entities and updated mod recognition for Earth's Special - Forces Beta 1. - - Mod recognition for Retro Firearms 2.5. - - Increased max allowed plugin functions and max allowed plugin cvars from - 512 to 1024. - - Fixed UTIL_VarArgs and UTIL_LogPrintf (copied from SDK) to use proper - bounds-checking (to help prevent buffer overflows). - - Updated Copyright to include "2001-2003". - -2002/11/26 1.13.2 - - Mod recognition and entities for Azure Sheep v1.0, BuzzyBots v2.3, - Outlawsmod v.Beta 1.5, The Specialists v.Beta 1.0, and StargateTC v.Beta - 2.2. - - Additional entities for The Battle Grounds v.Demo 1.0, Firearms v.2.6.5, - Global Warfare v.Beta 2.0, and Tour of Duty v1.1 Beta. - - Updated mod recognition for Rocket Crowbar v1.9. - - Compiled against HLSDK 2.3. - - Corrected missing "const" in vdate.h (noted by Ravenous BugBlatter - Beast). - -2002/10/06 1.13.1 - - Mod recognition and entities for Digital Paintball v1.0, Dragon Mod Z - v1.7, Holy Wars v.beta2, and OeL Half-Life v4.0. - - Additional entities for Adrenalinegamer Mod v6.0 and Natural Selection - v1.0. - - Corrected a cast in os_safe_call (from Olafur Osvaldsson). - -2002/08/24 1.13 - - New config file names and locations, per the Addon Development Standard - rev 1.00. Default config files are now: - - $gamedir/addons/metamod/plugins.ini - - $gamedir/addons/metamod/exec.cfg - - File "metagame.ini" no longer supported. - - Additional entities for WormsHL beta 2.1. - - Mod recognition (no entities) for Retro Counter-Strike 2.5. - - Added release_notes.html. - - Added function "valid_file" in support_meta.h. - -2002/07/11 1.12.4 - - Additional entities for Day of Defeat beta 3.0 and Tour of Duty 0.9.0. - - Mod recognition and entities for Natural Selection 1.0. - - Added "$pg" string for /usr/bin/ident. - -2002/07/01 1.12.3 - - Mod recognition and entities for Valve's Ricochet mod. - - Additional entities for Tour of Duty 0.8.0. - - Moved common code from LINK_ENTITY_TO_GAME to a function, rather than - duplicating the code in ~2000 expanded macros. Based on code from Jussi - Kivilinna . - -2002/06/04 1.12.2 - - Even more entities for Firearms rc2.6. - -2002/05/29 1.12.1 - - Mod recognition and entities for Desert Crisis 1.1, Tour of Duty 0.6.7, - and Train Hunters beta 1.0. - - Additional entities for GoldenEye 1.9C and Firearms rc2.6. - - Fixed meta-util function GET_PLUGIN_PATH to return the full path as - intended, rather than a partial path. - - Updated Copyright to include "2001-2002". - - Fixed Makefile to not update .tags or .htags by default. - -2002/04/22 1.12.0 - - Updated for HL 1109, which adds one Engine routine: - const char *GetPlayerAuthId(edict_t *e); - - Mod recognition and entities for The Battle Grounds 0.6, Gangwars Beta - 1.0, and WormsHL Beta 2.0 - - Additional entities for Day of Defeat beta 2.0 and Oz 2.5. - - Changed error message "user message registered again" to a debug message - (level 3). - - Fixed compile problem under MSVC with strcasecmp. - - Added meta-util function GET_PLUGIN_PATH, so a plugin can know from - whence it was loaded. - - In trace plugin, added more trace info for EngineFprintf, ServerPrint, - IsMapValid, GetPlayerUserId, GetPlayerWONId, GetPlayerAuthId, - CVarGetFloat, CVarGetString, AllocString, Time, IsDedicatedServer, - GetCurrentPlayer, GetPlayerStats. - -2002/02/08 1.11.2 - - Hopefully complete list of entities for Day of Defeat beta 2.0. - - Don't complain for NULL routines in gamedll's NEW_DLL_FUNCTIONS. Should - solve "Couldn't find api call: dod.dll:ShouldCollide" errors with DoD - b2. - - Changed default for newapi ShouldCollide() from 0 to 1, per Mugsy@DoD's - observations. - -2002/02/03 1.11.1 - - Mod recognition and entities for Snow-War 1.0, and Earth`s Special - Forces version Alpha 2.0. - - Additional entities for Oz 2.4.1, Svencoop 2.0, and partial entities for - Day of Defeat beta 2.0. - - Added check for duplicate UserMsg registration (should help resolve - recent "reached max msgs 256" errors). - - Dropped leading zeroes in version number. - - Tweaked "interface version" log message to help reduce confusion. - - Compiled with updated version of mingw; should help reduce dll filesizes - found in the previous release. - - Some additional debugging in gamedll entity linking. - -2001/12/17 1.11.00 - - Mod recognition and entities for Weapon Wars v0.3. - - Additional entities for version 1.2 of Global Warfare. - - Linux binary linked against glibc-2.1.2 for better compatibility. - - 'meta game' now lists user messages registered by gamedll. - - Added meta-util functions GET_USER_MSG_ID and GET_USER_MSG_NAME, so - plugins that need to know RegUserMsg name/id mappings (like bots) don't - need to be loaded at server startup. - - Raised META_INTERFACE_VERSION from 5:6 to 5:7. - - Fixed NUM_FOR_EDICT error in pfnCenterSay (from Fritz Elfert). - - Re-fixed set_new_handler for MSVC (from Fritz Elfert). - - Fixed meta_AddServerCommand; was registering plugin's command string - rather than local string, causing segfault on plugin unload. - - Changed trace plugin to use GET_USER_MSG_NAME instead of local list. - - Added 'const' to 'char *' arguments in DLOPEN and DLSYM macros. - - Commented out names of unused function paramenters, to satisfy "gcc - -Wunused" without generating MSVC errors. - - Added '#pragma warning(disable: 4390)' to disable "empty controlled - statement" warnings in MSVC. - - Updated MSDN url references. - -2001/09/19 1.10.00 - - Updated for HL SDK 2.2, which adds two Engine routines: - qboolean Voice_GetClientListening)(int iReceiver, int iSender); - qboolean Voice_SetClientListening)(int iReceiver, int iSender, qboolean bListen); - - Mod recognition and entities for "Scientist Hunt" v1.2 and Existence - Beta 1.3. - -2001/08/01 1.09.00 - - Mod recognition and entities for 'Wanted!' v1.5. - - Mod recognition for Adrenalinegamer v3.2 and v4.1 (no special entities). - - Additional entities for version 2.3 of Oz Deathmatch. - - Additional entities for version 1.0 of Wizard Wars. - - Additional meta-utility function CALL_GAME_ENTITY. Raised - META_INTERFACE_VERSION from 5:5 to 5:6. - - Added proper GPL notices. - -2001/07/06 1.08.02 - - Added mod recognition and entities for Gunman Chronicles. - - Added list of supported mods to docs. - - Updated MSVC project/workspace files to match recent source changes. - - Fixed problem with set_new_handler compiling under MSVC. - -2001/06/30 1.08.01 - - Updated for Day of Defeat v1.3. The name of its win32 dll changed (was - mp.dll; now dod.dll). No new entities. - - Added mod recognition and entities for Rocket Crowbar. - - Fixed problem with windows internal DLL version (don't use leading - zeros as compiler will assume it's octal notation). - -2001/06/16 1.08.00 - - Allow specifying/overriding various things on the command line, via - "+localinfo". Fields are: - - mm_gamedll - a bot or other dll, instead of the gamedll based on the gamedir. - Note this is now the preferred method; the "metagame.ini" file is - deprecated, but still recognized for backwards compatibility. - - mm_pluginsfile - a file with the list of mm plugins, instead of "metamod.ini". - - mm_execcfg - a cfg file for mm plugin cvar settings, instead of "metaexec.cfg". - - mm_debug - an initial debug level. - - Examples: - ./hlds_run -game cstrike +localinfo mm_gamedll dlls/pod_bot.so - ./hlds_run -game cstrike +localinfo mm_pluginsfile mylist.ini - ./hlds_run -game cstrike +localinfo mm_execcfg mysettings.cfg - ./hlds_run -game cstrike +localinfo mm_debug 7 - - Don't try exec'ing metaexec.cfg unless it exists. - - Added additional entity for Action Half-Life Beta 4, from list forwarded - from the dev team. - - Added a couple additional entities for Global Warfare, from list - provided by the dev team. - - Moved a couple entities from the "common" list back to the "valve" list, - for better organization. - - Changed logmsg "Plugin '%s' interface version didn't match" from - "Warning:" to "Note:" to reduce confusion. - - Added an optional plugin meta-api routine Meta_Init, to be called prior - to GiveFnptrsToDll, to let the dll know that it's going to be - queried/loaded as a metamod plugin, to allow for DLL's that can be used - as both a metamod plugin _and_ a standalone DLL. Raised - META_INTERFACE_VERSION from 5:4 to 5:5. - - Removed segfault handler under linux, when calling plugin console - command functions, as (a) it masked legitimate segfaults in plugin - commands and produced confusing output ("plugin has been unloaded", when - really it segfaultd), and (b) wasn't necessary since the situation - should be covered by other tests. - - Replaced combo SDK macros with inline funcs, and added ones for - accessing serverinfo and localinfo infokey buffers. - - Unfinished code for event triggers is in the source, but is disabled - (since it's not finished yet). - -2001/06/10 1.07.03 - - improper compile was reporting wrong version number - -2001/06/07 1.07.02 - - added mod recognition and best-guess list of entities for Deathmatch - Classic v1 and Global Warfare Beta 1.0. - - updated entity list with best-guess additions and corrected win32 dll - name for Wasteland Beta 2. - - added additional entities for Frontline Force 1.2a, from list forwarded - from the dev team. - -2001/05/25 1.07.01 - - added complete (hopefully) list of additional entities for Front Line - Force 1.2a/1.3. - - added best-guess list of entities for Day of Defeat b1.1. - - added best-guess list of entities for Science & Industry 0.97 (later - confirmed by SI lead programmer). - - added better guess list of entites for Action Half-Life b4. - - shrunk entity lists for Jailbreak and Judgement to include only - mod-specific entities (rather than common Valve entities which are in a - separate list). - - in THREAD_CREATE inline, replaced "(DWORD (*)(void*)) func" with - "(LPTHREAD_START_ROUTINE) func" to properly compile under MSVC. - - added engine_notes.html with a list of all the engine routines, and some - comments. - - added utils/getents.sh script to pull entity lists from .so files. - -2001/05/08 1.07.00 - - fixed "%s" server-crashing bug. "You should never pass strings with - unknown contents as the format string." Metamod was passing a - preformatted non-constant (thus unknown contents) string as the format - string (and only argument) when handling printf-style varargs engine - functions (in particular, AlertMessage). Ie, don't do: - printf(buf); - Instead do: - printf("%s", buf); - - added some entities for Action Half-Life Beta4, which should help - address crashing on startup, especially with Last Man Standing random - weapons. Note that I don't have an official, complete list of entities - for the mod, so there may still be some instances of crashing. - - added debugging messages for printf-style varargs engine routines, since - we can't rely on trace_mm for this (as the messages are re-written by - metamod before being passed to trace). - - better info in trace plugin's log messages for AlertMessage and - CreateNamedEntity. - - altered debug levels AlertMessage API routines in api_info.cpp - -2001/05/04 1.06.10 - - fixed a couple of entities for HL Paintball. - - added links.html to docs, a set of links/URLs and books that I found - helpful for the project. - - added to META_INTERFACE_VERSION comments to include associated metmaod - version for each change. - - additional data checking in various MPluginList routines. - - added 'const' to various function arguments to more properly reflect - function purpose. - - changed various function macros to inlines, to provide more obvious type - checking, and easier debugging. - - adjusted private/public members of various classes, to try and make them - more proper. - - added new_handler code, for upcoming code additions. - - added MPluginList::find(plid_t id), for upcoming code additions. - - added thread primitives to osdep, for upcoming code additions. - -2001/04/29 1.06.02 - - added entities and mod recognition for VampireSlayer and Open-Source - Jailbreak. - - updated mod recognition for current names of Action Half-Life's DLL/SO - files. - - added some entities for FLF 1.2a, listed on Botman's news page. - - added some docs for Installation and Compiling. - - added build type info (optimized, debugging, etc) to the SpecialBuild - tag in the version info for the win32 DLL. - - disabled SDK's "DBG_" functions, for MSVC win32 debug compiles. - -2001/04/22 1.06.01 - - added some entities for FLF 1.2. - - better info in trace plugin's log messages for - DispatchObjectCollsionBox, SetModel, FindEntityByString, SetOrigin, - EntOffsetOfPEntity, PEntityOfEntIndex. - - fixed missing initialization for "len" in wdmisc. - - added links to sections in html docs. - - for non-critical interface version mismatch, changed from a META_ERROR - to just META_LOG, since it's not, strictly speaking, an error. - -2001/04/17 1.06.00 - - added support for "metaexec.cfg", a commands file to be exec'd after - loading the plugins, for plugin commands and cvars, since autoexec.cfg - is parsed too early (before plugins loaded) and server.cfg is parsed too - late (after ServerActivate). - - better info in trace plugin's log messages for MessageBegin, - WriteString, AlertMessage, RegUserMsg - - to provide more manageable trace log output, throttled trace plugin to 1 - logmsg per second, by default (of course, this can cause log messages to - be lost). Added cvar "trace_unlimit" (0/1) to enable unlimited logging, - as it did previously. - - added centersay meta-utility functions (CENTER_SAY, CENTER_SAY_PARMS, - CENTER_SAY_VARARGS). Raised META_INTERFACE_VERSION from 5:3 to 5:4. - - fixed crash when trying to load typical game DLLs (like standalone-bots) - as metamod plugins. - - fixed segfault on failed plugin attach; was dlclosing plugin - prematurely. - - in wdmisc, added a proof-of-concept for catching certain game events by - doing string matching on all the log messages produced by the game. - Ugly, to be sure, but interesting nonetheless. - - added more entities for HL Paintball, and fixed the linux so name. - - added "-Wno-unused" to CFLAGS when compiling sdk_util.o, to alleviate - the complaints from #including all the extra SDK header files and class - definitions. - - removed GetEntityAPI routine from trace plugin, as it's unnecessary as a - metamod plugin if already providing GetEntityAPI2. - - in trace, moved gMetaFunctionTable declaration to plugin.cpp, so that - meta_api.cpp can be a standard (plugin-independent) sourcefile used in - any plugin. - - updated the docs to include recent new features, as well as some better - discussion of coding details. - -2001/04/06 1.05.00 - - created utility callback functions, for use by plugins, to reduce code - duplication and help simplify some things. Currently, these consist of - only some convenient logging functions (LOG_CONSOLE, LOG_MESSAGE, - LOG_ERROR, LOG_DEVELOPER). - - added "mutil_funcs_t" to Meta_Query, to pass the meta utility function - table. Increased META_INTERFACE_VERSION from 5:2 to 5:3. - - made sure all exported DLL routines (ie routines that are accessed via - dlsym) are both declared _and defined_ as 'extern "C"', so that the C++ - compiler enforces parameter type-matching, rather than considering - routines with mis-matched arguments/types to be overloaded functions... - Note that it's not sufficient to just be declared "C"; it has to defined - this way as well, to make sure the C++ compiler matches it with the - declaration. Otherwise, again, it'll consider it an overloaded - function, and allow it happily without complaint, and cause the - subsequent dlsym to fail. - - created and deployed C_DLLEXPORT macro for declaring/defining functions - 'extern "C" DLLEXPORT'. - - added plugin 'wdmisc' as a basic example, and for my miscellaneous - commands/cvars. - - renamed "mm_stub" and "mm_trace" to "stub_mm" and "trace_mm" to make - plugin name more apparent, and to be more consistent with adminmod_MM. - - had to move plugin_info_t to its own header file, to avoid circular - #include's between meta_api.h and mutil.h. - - in dllapi.cpp and engineapi.cpp, pulled RETURN_API out of META_HANDLE - macro, to make it easier to add code to middle of API routines. - - renamed util_meta.h to support_meta.h, to avoid confusion with mutil.h - - some code cleanup (better 80-column linebreaks). - -2001/04/03 1.02.00 - - added support for Half-Life Paintball - - added "*_mm" and "*_MM" to the list of suffixes to look for when loading - plugins at console. - - log errors when plugin tries to use MRES_SUPERCEDE in a _Post function - (supercede is only relevant in a non-Post function; use OVERRIDE in a - Post function). - - mm_trace: added info to trace log for FindEntityInSphere - - added osdep macro for strcasecmp, for compiling under windows - - fixed a debug log message for GetEngineFunctions_Post - - fixed a couple internal references to engine globals (gpGLobals) - - renamed local SDK API routines to "mm_*" for easier debug breakpoints - - altered debug levels for a couple API routines in api_info.cpp - -2001/04/01 1.01.00 - - replaced use of FStrEQ in most places with !strcasecmp, so that case - doesn't matter for things like console commands ("META LOAD" will now - work in addition to "meta load") and paths (like "-game CSTRIKE"; and - win32 filepaths are case-insignificant anyway). Interestingly, the HL - engine ignores case for console commands ("ADMIN_COMMAND" works), but - cvars are only recognized with matching case ("ADMIN_DEBUG" does not - work). Confusing. - - added "by " when printing author info, to make it a bit clearer - - added a bit more operation info to metamod.html - -2001/03/30 1.00.00 - - released as v1.0, for inclusion with release of Adminmod v2.50. - - added $(VERSFILE) to Makefile and Config.mak, to better insure correct - rebuild on version number changes - - added "i486", "i586", and "i686" to "i386" in the list of prefixes to - look for when loading plugins at console. - - added "MDLL*" and "MNEW" macros in meta_api.h, to be more convenient for - plugins to call GameDLL functions. - - added missing "extern gamedll_funcs_t *gpGamedllFuncs" to meta_api.h - - added handling of gpGamedllFuncs in stub, for example purposes. - - fixed problems with running bots under metagame.ini: - - moved instantiation of Plugins object to before meta_load_gamedll, so - that if gamedll calls engine functions during GiveFnptrsToDll (like - hpb_bot does), META_ENGINE_HANDLE won't crash from a null Plugins object - pointer. - - in GET_FUNC_TABLE_FROM_GAME, memset gamedll.funcs.struct_field, and then - free/null it if the gamedll's GetFuncs call fails, to handle the - situation where the gamedll provides GetNewDLLFunctions(), but doesn't - have anything to return (like hpb_bot does, when the real gamedll - doesn't provide GetNewDLLFunctions). - - add handling of gpGamedllFuncs to mm_stub's Meta_Attach(). - -2001/03/27 1.0-rc5 - - fixed problem with crashing when a plugin failed to load (improper - dereference of null 'info' structure; incomplete fix from rc2). - - added a plugin status "badfile", for plugin files that appear to be - invalid metamod plugins; this is to differentiate from "failed", which - is a valid-looking plugin file (queried) but encountered a failure - attaching/unloading/etc. - - changed "-march=i686" optimization to "-march=i586", and moved this to - only the optimized binaries, and not the debugging binaries. As it - turns out, i686 doesn't work on things like AMD K6-III cpus (I know, go - figure :). - - duplicated functionality of adminmod's "admin.ini", except with a file - named "metagame.ini". This will allow (at least partial) use with game - DLLs that metamod doesn't support yet - "partial" because, although the - game DLL will load, it may not work if it uses entities that metamod - doesn't know about yet. It will also allow use of standalone "bot" - DLLs, which sit between metamod and the gamedll (much like metamod sits - between the engine and the gamedll). - - added console command "meta game" to show information about the loaded - game DLL (to help troubleshoot issues with "metagame.ini"). - -2001/03/25 1.0-rc4 - - split linkfunc.cpp into linkent.h, linkgame.cpp, linkplug.cpp - - split entity lists for mods into separate files, one for each mod; these - are used to build linkgame.cpp - - metamod/mm_trace version info should indicate debugging/optimized compile - - added entity support for Judgement DM - - added "-fno-rtti" to mm_trace gcc cflags, to address problem of - unresolved CSaveRestoreBuffer symbols using older versions of gcc - - lowered debug levels in GetEntityAPI, GetNewDLLFunctions, etc to enable - "+developer" messages (6 -> 3). - - removed "-Werror" from Makefile's default cflags; should only be used - on devl system with edited SDK - -2001/03/18 1.0-rc3 - - central Makefile can now build optimzed as well as debugging targets; - default to compile is debugging; default in 'dlls' dir is optimized - - toplevel Makefile builds release tgz/zip files. TGZ file includes only - linux .so objects, and text files in unix-LF format. ZIP file includes - only win32 .dll objects, and text files in dos-CRLF format, and actual - files rather than symlinks. - - added mod recognition for "judgedm" mod; still need entities list - - added 4 entities for Firearms 2.5 - -2001/03/07 1.0-rc2 - - fixed missing WINAPI in mm_trace GiveFnptrsToDll - - added HTML version of docs - - description field in metamod.ini is now optional: - - uses "name" from plugin info for desc by default - - desc field in metamod.ini will override this - - "meta list" shows just desc, rather than desc and name - - altered debug levels for a couple API routines in api_info.cpp - - added missing "load" cmd in "meta" usage help - - added to "meta load" usage help - - added macros RETURN_META(result) and RETURN_META_VALUE(result, value) to - simplify plugin coding - - added parameter "gamedll_funcs" to meta_attach(), to give each plugin a - copy of the gamedll's API function tables - - raised META_INTERFACE_VERSION to "5:2" - - now load gamedll before plugins (rather than the reverse) so that - it'll have the gamedll func tables to hand to the plugins - - changed trace plugin console commands: - trace_version -> trace version - trace -> trace set - untrace -> trace unset - showtrace -> trace show - - added "trace list " to list all available routines for tracing - - fixed broken trace cvars - - for "meta {load,unload,etc}" console cmd, added matching against plugin - logtag, as well as for "mm_" in plugin file - - handle null 'info' after failed plugin load (ie in "meta info" etc) - - fixed "usage: meta list" errors on some meta commands; was calling - cmd_meta_pluginlist() instead of Plugins->show() - - fixed: unload/attach delayed plugins at changelevel - - now doesn't export newapi if gamedll doesn't provide it - - now doesn't call plugins getnewapi if gamedll doesn't provide it - - fixed incorrect apitable references in MPlugin::show() - -2001/02/08 1.0-rc1 - - fixed unistd.h under MSVC - - fixed S_ISREG under MSVC - - fixed strncasecmp under MSVC - - fixed void svr_meta() returning value - - fixed missing WINAPI in mm_stub GiveFnptrsToDll - - remade MSVC project for metamod - - created MSVC project for mm_stub - - added an example "metamod.ini" to ./docs From 29b24fb9ea48f0dc4615cc8bc2858503edd4f2f3 Mon Sep 17 00:00:00 2001 From: STAM Date: Wed, 23 Oct 2024 18:00:56 +0300 Subject: [PATCH 3/6] backporting changelogs to file --- CHANGELOG.md | 216 +++++++++++++++++++++++++++------------------------ 1 file changed, 115 insertions(+), 101 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6b518dc..b052d53 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,24 +1,35 @@ -# vim: set tw=75 ft=none : +# **Metamod-r** Changelog -Current version: 1.20p35 +**Metamod-r** is based on the original version of [Metamod](http://metamod.org/) written by _Will Day_ for Half-Life 1 with some improvements from [Jussi Kivilinna](https://github.com/jkivilin) ([Metamod-p](https://github.com/jkivilin/metamod-p)). This product contains a large number of performance optimizations and more pure code. The core was written using JIT compiler. -For newer changes, see Metamod-P git repository commit log at: -http://metamod-p.git.sourceforge.net/git/gitweb.cgi?p=metamod-p/metamod-p;a=summary +_____ ---- -## 2012/08/08 1.19p34 +## 2017/11/15 `1.3.0.85` +- [Download](https://github.com/rehlds/metamod-r/releases/tag/1.3.0.84). +- :heavy_check_mark: Fixed parse plugins.ini (Load the plugins for a appropriate platform only) +- :heavy_check_mark: Fixed crash for meta-plugins using UPX + +## 2017/10/27 `1.3.0.84` +- First public release. [Download](https://github.com/rehlds/metamod-r/releases/tag/1.3.0.84). +- :recycle: Minor refactoring + +## 2016/07/04 `0.0.0.0` (based on `1.20p35`) +- Started `metamod-r` project by forkig from `metamod-p`. Based on version `1.20p35`. +- Official changelog of original version `missed`. + +## 2012/08/08 `1.19p34` - Revert changes in 1.19p33 and start over with 1.19p32 code base - Fix compiling with latest userspace headers and gcc-4.6 - Disabled building x86-64 binaries as Valve has dropped x86-64 linux server support. -## 2012/07/27 1.19p33 +## 2012/07/27 `1.19p33` - Accumulated fixes and changes over time - Fixes compiling with latest userspace headers and gcc-4.6 - (introduced bugs, crashes, do not use) -## 2007/08/12 1.19p32 +## 2007/08/12 `1.19p32` [Patch: Metamod-P v32 by Jussi Kivilinna] - Changed GCC optimization flags based on performance monitoring results, replaced '-O3 -funroll-all-loops' with '-O2'. @@ -28,13 +39,13 @@ default on in sources so that MSVC compile is 1:1 with GCC compile. compile is 1:1 with GCC compile. - Fixed compiling META_PERFMON build with MSVC. - Fixed compiling with MSVC fixed by Nikolay "The Storm" Baklicharov. -- [linux] Remake of dynamic linkent code. Parse dlsym function trampoline +- `linux` Remake of dynamic linkent code. Parse dlsym function trampoline instead of parsing ELF structures. -- [linux] Dropped AMD64 support since Valve doesn't support their AMD64 build +- `linux` Dropped AMD64 support since Valve doesn't support their AMD64 build anymore and I don't have access to AMD64 machine to port new dynamic linkent code. Sorry! -## 2007/04/05 1.19p31 +## 2007/04/05 `1.19p31` [Patch: Metamod-P v31 by Jussi Kivilinna] - Enabled 'regparam' for internal functions. Means that function arguments are passed through registers instead of stack, which increases performance. @@ -42,15 +53,15 @@ passed through registers instead of stack, which increases performance. - Fixed a bug where plugins could not catch NewDLL calls for GameDLLs that do not provide NewDLL information. -## 2007/04/04 1.19p30 +## 2007/04/04 `1.19p30` [Patch: Metamod-P v30 by Jussi Kivilinna] - Fixed safevoid_vsnprintf() on win32. -## 2007/04/02 1.19p29 +## 2007/04/02 `1.19p29` [Patch: Metamod-P v29 by Jussi Kivilinna] - crash fix that didn't work -## 2006/03/04 1.19p28 +## 2006/03/04 `1.19p28` [Patch: Metamod-P v28 by Jussi Kivilinna] - Removed use of __VA_ARGS__ (should be easy to port to msvc now). - Reduced size of extra engineapi function slots from 128 to 16. @@ -60,18 +71,18 @@ they don't give extra performance. - Added api for using hook tables from plugins (thanks to BAILOPAN) - Re-enabled fix for engine_api varargs log calls with very long log string. -## 2005/08/24 1.18p26 +## 2005/08/24 `1.18p26` [Patch: Metamod-P v26 by Jussi Kivilinna] - Fixed newapi functions not active on mods that don't use newapi. - [win32] New is_gamedll() code. -- [linux] Fix for buggy DT_HASH in library walker function. +- `linux` Fix for buggy DT_HASH in library walker function. - Following features were removed to improve stability. These changes were not present in metamod.org version: - Removed fix for engine_api varargs log calls with very long log string. - Removed optimized version of GET_USER_MSG_ID() for metamod-bots. -## 2005/08/24 1.18p25 +## 2005/08/24 `1.18p25` [Patch: Metamod-P v25 by Jussi Kivilinna] - Added mutil::IsQueryingClientCvar(). - Added support for new HLSDK-API functions: @@ -92,30 +103,30 @@ to zero stack memory which lowered performance. instead of pointer, which increases performance on linux-i586. - Raised META_INTERFACE_VERSION to "5:12". - Fixed metamod_version cvar to show "1.18p25" instead of "1.18.0p25". -- [linux] Improved dynamic linkent code. -- [linux] Static linked with libgcc. +- `linux` Improved dynamic linkent code. +- `linux` Static linked with libgcc. -## 2005/07/27 1.18p24 +## 2005/07/27 `1.18p24` [Patch: Metamod-P v24 by Jussi Kivilinna] - Updated to match latest metamod.org version. - Removed mm-p-extensions-API, since loading/unloading plugins functions are included in Metamod 1.18 in mutil-API. -## 2005/04/22 1.17.4p23 +## 2005/04/22 `1.17.4p23` [Patch: Metamod-P v23 by Jussi Kivilinna] - Fixed broken RegMsgList caused by optimization for mm-bots. - Fixed optimization for mm-bots. -- [linux] Removed ESF-Mod fix. -- [linux] Minor performance tweaks and reduced filesize for linux. +- `linux` Removed ESF-Mod fix. +- `linux` Minor performance tweaks and reduced filesize for linux. -## 2005/04/08 1.17.4p22 +## 2005/04/08 `1.17.4p22` [Patch: Metamod-P v22 by Jussi Kivilinna] - Optimized GET_USER_MSG_ID() function for metamod-bots. - Minor performance tweaks. -- [linux] Looks for gamedll for Earth Special Forces Mod from 'linuxdlls' +- `linux` Looks for gamedll for Earth Special Forces Mod from 'linuxdlls' directory after checking 'dlls'. -## 2005/03/25 1.17.4p21 +## 2005/03/25 `1.17.4p21` [Patch: Metamod-P v21 by Jussi Kivilinna] - Fixed 'meta reload' not working on plugins that have failed loading. - Fixed bug with handling of metamod-plugin-bots, which might have caused @@ -124,7 +135,7 @@ problems depending on order of loaded plugins. See 'call_count' in - Minor performace tweaks. - Changed all non-fatal error messages to warning messages. -## 2005/03/05 1.17.4p20 +## 2005/03/05 `1.17.4p20` [Patch: Metamod-P v20 by Jussi Kivilinna] - Fixed bug with metamod.dll not having working relocation: - Makefile doesn't use 'dllwrap' for linking windows dlls anymore. @@ -136,7 +147,7 @@ problems depending on order of loaded plugins. See 'call_count' in - Fixed wrong integer type for CRC32_t in 'hlsdk/common/crc.h'. - Removed 'metamod_compat-i386.so' from linux binary release. -## 2005/02/27 1.17.4p19 +## 2005/02/27 `1.17.4p19` [Patch: Metamod-P v19 by Jussi Kivilinna] - Performance tweaks mainly for AMD64 (minor for i386). - Linux-i386 (metamod_i386.so) binary linked against glibc-2.1.3 for better @@ -145,11 +156,11 @@ at: http://forums.unitedadmins.com/index.php?showtopic=44048 - Binaries not linked against libstdc++ anymore for better compatibility (see: new_baseclass.h). -## 2005/02/25 1.17.4p18 +## 2005/02/25 `1.17.4p18` [Patch: Metamod-P v18 by Jussi Kivilinna] - Fixed AMD64 support. -## 2005/02/19 1.17.4p17 +## 2005/02/19 `1.17.4p17` [Patch: Metamod-P v17 by Jussi Kivilinna] - Renamed 'Metamod All-Mod-Support' to 'Metamod-P'. - Fixes to improve stability. @@ -159,12 +170,12 @@ http://www.sourceforge.net/projects/metamod/ - Added Mod recognition for Brain Bread 1.2, Snow-War 2.0 and Gangsta Wars 2.7. -## 2005/02/13 1.17.3p16 +## 2005/02/13 `1.17.3p16` [Patch: All-Mod-Support v16 by Jussi Kivilinna] - Fixes to improve stability. - Minor performance tweaks. -## 2005/01/10 1.17.3p15 +## 2005/01/10 `1.17.3p15` [Patch: All-Mod-Support v15 by Jussi Kivilinna] - New optimization which reduces binary size more than 50%. - Changed '-march=i586' to '-march=i686'. This means this binary @@ -173,11 +184,11 @@ or newer. - Removed 'Active API Hooks' optimization. - Removed 'memory write detection' code. -## 2004/11/27 1.17.3p14 +## 2004/11/27 `1.17.3p14` [Patch: All-Mod-Support v14 by Jussi Kivilinna] - Remake of new callback API. -## 2004/11/27 1.17.3p13 +## 2004/11/27 `1.17.3p13` [Patch: All-Mod-Support v13 by Jussi Kivilinna] - New callback API for plugins to load/unload other plugins. See 'mm_pextensions.h'. @@ -186,19 +197,19 @@ or newer. - Minor performance tweaks. - Moved p13 code from osdep.cpp/h to osdep_p.cpp/h -## 2004/11/17 1.17.3p12 +## 2004/11/17 `1.17.3p12` [Patch: All-Mod-Support v12 by Jussi Kivilinna] - Fixed crashing with 'memory write detection' (part of 'Active API Hooks'). - Improved 'memory write detection' code. -## 2004/11/16 1.17.3p11 +## 2004/11/16 `1.17.3p11` [Patch: All-Mod-Support v11 by Jussi Kivilinna] - Added new 'Active API Hooks' optimization, speeding up handling HLSDK-API functions that are not hooked by any plugins. - Added new command 'meta active' to list active hooks. -- [linux] 'metamod_i386.so' is compiled with gcc-3.3.4 now. If that version +- `linux` 'metamod_i386.so' is compiled with gcc-3.3.4 now. If that version doesn't work for you, use 'metamod_compat-i386.so'. -- [linux] gcc-2.95 compiled binary is now 'metamod_compat-i386.so'. +- `linux` gcc-2.95 compiled binary is now 'metamod_compat-i386.so'. - Merged updates from Metamod 1.17.3, http://www.sourceforge.net/projects/metamod/ - Added Mod recognition for Zombie Panic Beta 0.91c, Out Break 1.0, @@ -212,7 +223,7 @@ prefix were used, e.g. mm_pluginA.dll and mm_pluginB.dll. - Fixed potential bug initializing plugin incorrectly after unloading and loading plugins. -## 2004/08/31 1.17.2p10 +## 2004/08/31 `1.17.2p10` [Patch: All-Mod-Support v10 by Jussi Kivilinna] - Merged updates from Metamod 1.17.2, http://www.sourceforge.net/projects/metamod/ @@ -237,10 +248,10 @@ override the "linux" keyword when used on the same plugin. Do not use "linux" when using "lin32" and/or "lin64" keywords for the same plugin. -## 2004/07/28 1.17.1p9 +## 2004/07/28 `1.17.1p9` [Patch: All-Mod-Support v9 by Jussi Kivilinna] -- [linux] Amd64-support. -- [linux] New version of osdep.cpp:is_gamedll(). +- `linux` Amd64-support. +- `linux` New version of osdep.cpp:is_gamedll(). - Reads ELF directly and doesn't use external libraries. - Binary isn't linked with BFD library anymore, reduces filesize to less than 500kb. @@ -250,13 +261,13 @@ less than 500kb. client-command. - Added 'clientmeta' config.ini setting. -## 2004/07/04 1.17.1p8 +## 2004/07/04 `1.17.1p8` [Patch: All-Mod-Support v8 by Jussi Kivilinna] - Fixed memory leak in linux version of osdep.cpp:is_gamedll(). - Fixes to improve stability. - Optimizations on META_DEBUG macro. -## 2004/06/06 1.17.1p7 +## 2004/06/06 `1.17.1p7` [Patch: All-Mod-Support v7 by Jussi Kivilinna] - Official support for All-Mod-Support versions at http://koti.mbnet.fi/axh/ - Merged updates from Metamod 1.17.1, @@ -274,42 +285,43 @@ autodetection of gamedll. - Added 'autodetect' config.ini setting. - Small tweaks and optimizations at various different places. -## 2004/05/21 1.17p6 +## 2004/05/21 `1.17p6` [Patch: All-Mod-Support v6 by Jussi Kivilinna] - Tweaks and optimizations on osdep.cpp:is_gamedll(). -- [linux] Added architecture check for i386 and x86-64 to is_gamedll(). +- `linux` Added architecture check for i386 and x86-64 to is_gamedll(). -## 2004/04/27 1.17p5 +## 2004/04/27 `1.17p5` [Patch: All-Mod-Support v5 by Jussi Kivilinna] -## 2004/04/26 1.17p4 +## 2004/04/26 `1.17p4` [Patch: All-Mod-Support v4 by Jussi Kivilinna] - Amd64-test versions -## 2004/04/25 1.17p3 +## 2004/04/25 `1.17p3` [Patch: All-Mod-Support v3 by Jussi Kivilinna] - Automatically searchs for gameDll for new mods that are not included in internal mod-list. -- [linux] Cleaned up osdep_linkent_linux.cpp, might work with x86-64 build +- `linux` Cleaned up osdep_linkent_linux.cpp, might work with x86-64 build now (not tested). -## 2004/04/24 1.17p2 +## 2004/04/24 `1.17p2` [Patch: All-Mod-Support v2 by Jussi Kivilinna] - Extra functions slots are now passed all the way to the gameDll now too. -- [linux] New method for dlsym hooking, no need for metamod_linkent_tool.so anymore. +- `linux` New method for dlsym hooking, no need for metamod_linkent_tool.so anymore. - Made mm_* functions in dllapi.cpp and engine_api.cpp static. - Made mutil_* functions in mutil.cpp static. -## 2004/04/22 1.17p1 +## 2004/04/22 `1.17p1` [Patch: All-Mod-Support v1 by Jussi Kivilinna] - Removed dependences on game.dll structures (CBasePlayer). - Replaced UTIL_ShowMessage with META_UTIL_ShowMessage. - [win32] Replaced entity linking with PE dll-export-table combining. -- [linux] Replaced entity linking with dlsym hooking. +- `linux` Replaced entity linking with dlsym hooking. - Removed entities from linkgame.cpp - Added 128 extra function slots on enginefuncs_t structure for future engine updates. -## 2003/11/15 1.17 +## 2003/11/15 `1.17` - Added support for recently added routines in the HL Engine: +``` SequenceGet() SequencePickSentence() GetFileSize() @@ -321,6 +333,7 @@ GetTimesTutorMessageShown() ProcessTutorMessageDecayBuffer() ConstructTutorMessageDecayBuffer() ResetTutorMessageDecayData() +``` - Removed mod recognition and entities for Master-Sword v1.3, at the request of the Mod's authors. - Added mod recognition and entities for HL-Rally vBeta 1.0, Kanonball @@ -336,10 +349,12 @@ this time only "list" and "version" subcommands. flexible options passing, in addition to the current +localinfo method. - Default filename: addons/metamod/config.ini - Options include: +``` debuglevel gamedll plugins_file exec_cfg +``` - Added option "+localinfo mm_configfile " to override default config.ini pathname. - Added "meta config" console command to display result of config @@ -387,18 +402,18 @@ rather than maintained manually. - Makefile now using gcc-2.95 explicitly, to avoid using gcc3 at this time. -## 2003/08/02 1.16.2 +## 2003/08/02 `1.16.2` - Mod recognition and entities for The Point of No Return v.Beta 4.0. - Even more entities for The Specialists v.Beta 2.0. -## 2003/07/30 1.16.1 +## 2003/07/30 `1.16.1` - Mod recognition and entities for Master-Sword v1.3, The Wastes RC 1.2, and Monkeystrike v1.2. - Additional entities for Natural Selection v2.0, The Specialists v.Beta 2.0, Earth's Special Forces v.Beta 1.1, The Battlegrounds v1.2, and International Online Soccer v2.0. -## 2003/05/08 1.16 +## 2003/05/08 `1.16` - Added support for Server_GetBlendingInterface() in order to allow client and server to properly coordinate custom player model blending. This should fix the issue with mismatched hitboxes observed with CS and DOD. @@ -406,20 +421,20 @@ should fix the issue with mismatched hitboxes observed with CS and DOD. Morbid Inclination v1.0. - Added studioapi.{cpp,h} to provide Server_GetBlendingInterface. -## 2003/05/03 1.15.3 +## 2003/05/03 `1.15.3` - More additional entities for Day of Defeat v1.0. - -## 2003/05/02 1.15.2 +` +## 2003/05/02 `1.15.2` - Mod recognition and entities for Rival Species vBeta 1.0, Public Enemy vBeta 1.0, and Bumper Cars vAlpha. - Additional entities for Day of Defeat v1.0, Sven Coop v2.1, WormsHL vBeta 3.0, and Natural Selection v1.1. -## 2003/04/09 1.15.1 +## 2003/04/09 `1.15.1` - Additional entities for Firearms v2.7 and Desert Crisis v1.5. - Fixed mod recognition for Adrenalinegamer v4.x and later. -## 2003/02/12 1.15 +## 2003/02/12 `1.15` - Additional entities for VampireSlayer Chapter V. - Fixed entity name "TS_PowerUp" for The Specialists 1.5; should fix precache error for "models/powerup.mdl". @@ -489,14 +504,14 @@ meta_api.cpp; etc. - Added tools/stlfilter to help hide -Weffc++ warnings from g++ STL headers (although not using STL at this time..) -## 2003/01/24 1.14.1 +## 2003/01/24 `1.14.1` - Properly recognize win32 full pathname from GetGameDir. - Added "#include " for getcwd() under MSVC. - Trace plugin: Changed AlertMessage formatting, ie from "atype=at_console/1" to "atype=at_console(1)". - Stub plugin: fixed to compile under MSVC again. -## 2003/01/23 1.14 +## 2003/01/23 `1.14` - Fixed to handle new behavior of engine routine GET_GAME_DIR under HL 1.1.1.1 (CS 1.6) beta, where the routine no longer returns the fullpathname of the game directory, but now returns only the string @@ -509,7 +524,7 @@ dll fullpathname, dll filename). - Added FAQ. - Some docs touchups. -## 2003/01/18 1.13.4 +## 2003/01/18 `1.13.4` - Additional entities for betas of Counter-Strike 1.6 and TFC from HL 1.1.1.1. - Added missing #include "osdep.h" to several files, to make sure things @@ -518,7 +533,7 @@ like win32 vsnprintf are defined. hooking engine routines. - In trace plugin, changed logtag to all caps. -## 2003/01/12 1.13.3 +## 2003/01/12 `1.13.3` - Additional entities and updated mod recognition for Earth's Special Forces Beta 1. - Mod recognition for Retro Firearms 2.5. @@ -528,7 +543,7 @@ Forces Beta 1. bounds-checking (to help prevent buffer overflows). - Updated Copyright to include "2001-2003". -## 2002/11/26 1.13.2 +## 2002/11/26 `1.13.2` - Mod recognition and entities for Azure Sheep v1.0, BuzzyBots v2.3, Outlawsmod v.Beta 1.5, The Specialists v.Beta 1.0, and StargateTC v.Beta 2.2. @@ -539,14 +554,14 @@ Global Warfare v.Beta 2.0, and Tour of Duty v1.1 Beta. - Corrected missing "const" in vdate.h (noted by Ravenous BugBlatter Beast). -## 2002/10/06 1.13.1 +## 2002/10/06 `1.13.1` - Mod recognition and entities for Digital Paintball v1.0, Dragon Mod Z v1.7, Holy Wars v.beta2, and OeL Half-Life v4.0. - Additional entities for Adrenalinegamer Mod v6.0 and Natural Selection v1.0. - Corrected a cast in os_safe_call (from Olafur Osvaldsson). -## 2002/08/24 1.13 +## 2002/08/24 `1.13` - New config file names and locations, per the Addon Development Standard rev 1.00. Default config files are now: - $gamedir/addons/metamod/plugins.ini @@ -557,22 +572,22 @@ rev 1.00. Default config files are now: - Added release_notes.html. - Added function "valid_file" in support_meta.h. -## 2002/07/11 1.12.4 +## 2002/07/11 `1.12.4` - Additional entities for Day of Defeat beta 3.0 and Tour of Duty 0.9.0. - Mod recognition and entities for Natural Selection 1.0. - Added "$pg" string for /usr/bin/ident. -## 2002/07/01 1.12.3 +## 2002/07/01 `1.12.3` - Mod recognition and entities for Valve's Ricochet mod. - Additional entities for Tour of Duty 0.8.0. - Moved common code from LINK_ENTITY_TO_GAME to a function, rather than duplicating the code in ~2000 expanded macros. Based on code from Jussi Kivilinna . -## 2002/06/04 1.12.2 +## 2002/06/04 `1.12.2` - Even more entities for Firearms rc2.6. -## 2002/05/29 1.12.1 +## 2002/05/29 `1.12.1` - Mod recognition and entities for Desert Crisis 1.1, Tour of Duty 0.6.7, and Train Hunters beta 1.0. - Additional entities for GoldenEye 1.9C and Firearms rc2.6. @@ -581,7 +596,7 @@ intended, rather than a partial path. - Updated Copyright to include "2001-2002". - Fixed Makefile to not update .tags or .htags by default. -## 2002/04/22 1.12.0 +## 2002/04/22 `1.12.0` - Updated for HL 1109, which adds one Engine routine: const char *GetPlayerAuthId(edict_t *e); - Mod recognition and entities for The Battle Grounds 0.6, Gangwars Beta @@ -597,7 +612,7 @@ IsMapValid, GetPlayerUserId, GetPlayerWONId, GetPlayerAuthId, CVarGetFloat, CVarGetString, AllocString, Time, IsDedicatedServer, GetCurrentPlayer, GetPlayerStats. -## 2002/02/08 1.11.2 +## 2002/02/08 `1.11.2` - Hopefully complete list of entities for Day of Defeat beta 2.0. - Don't complain for NULL routines in gamedll's NEW_DLL_FUNCTIONS. Should solve "Couldn't find api call: dod.dll:ShouldCollide" errors with DoD @@ -605,7 +620,7 @@ b2. - Changed default for newapi ShouldCollide() from 0 to 1, per Mugsy@DoD's observations. -## 2002/02/03 1.11.1 +## 2002/02/03 `1.11.1` - Mod recognition and entities for Snow-War 1.0, and Earth`s Special Forces version Alpha 2.0. - Additional entities for Oz 2.4.1, Svencoop 2.0, and partial entities for @@ -618,7 +633,7 @@ recent "reached max msgs 256" errors). found in the previous release. - Some additional debugging in gamedll entity linking. -## 2001/12/17 1.11.00 +## 2001/12/17 `1.11.00` - Mod recognition and entities for Weapon Wars v0.3. - Additional entities for version 1.2 of Global Warfare. - Linux binary linked against glibc-2.1.2 for better compatibility. @@ -639,14 +654,14 @@ rather than local string, causing segfault on plugin unload. statement" warnings in MSVC. - Updated MSDN url references. -## 2001/09/19 1.10.00 +## 2001/09/19 `1.10.00` - Updated for HL SDK 2.2, which adds two Engine routines: qboolean Voice_GetClientListening)(int iReceiver, int iSender); qboolean Voice_SetClientListening)(int iReceiver, int iSender, qboolean bListen); - Mod recognition and entities for "Scientist Hunt" v1.2 and Existence Beta 1.3. -## 2001/08/01 1.09.00 +## 2001/08/01 `1.09.00` - Mod recognition and entities for 'Wanted!' v1.5. - Mod recognition for Adrenalinegamer v3.2 and v4.1 (no special entities). - Additional entities for version 2.3 of Oz Deathmatch. @@ -655,20 +670,20 @@ Beta 1.3. META_INTERFACE_VERSION from 5:5 to 5:6. - Added proper GPL notices. -## 2001/07/06 1.08.02 +## 2001/07/06 `1.08.02` - Added mod recognition and entities for Gunman Chronicles. - Added list of supported mods to docs. - Updated MSVC project/workspace files to match recent source changes. - Fixed problem with set_new_handler compiling under MSVC. -## 2001/06/30 1.08.01 +## 2001/06/30 `1.08.01` - Updated for Day of Defeat v1.3. The name of its win32 dll changed (was mp.dll; now dod.dll). No new entities. - Added mod recognition and entities for Rocket Crowbar. - Fixed problem with windows internal DLL version (don't use leading zeros as compiler will assume it's octal notation). -## 2001/06/16 1.08.00 +## 2001/06/16 `1.08.00` - Allow specifying/overriding various things on the command line, via "+localinfo". Fields are: - mm_gamedll @@ -710,10 +725,10 @@ accessing serverinfo and localinfo infokey buffers. - Unfinished code for event triggers is in the source, but is disabled (since it's not finished yet). -## 2001/06/10 1.07.03 +## 2001/06/10 `1.07.03` - improper compile was reporting wrong version number -## 2001/06/07 1.07.02 +## 2001/06/07 `1.07.02` - added mod recognition and best-guess list of entities for Deathmatch Classic v1 and Global Warfare Beta 1.0. - updated entity list with best-guess additions and corrected win32 dll @@ -721,7 +736,7 @@ name for Wasteland Beta 2. - added additional entities for Frontline Force 1.2a, from list forwarded from the dev team. -## 2001/05/25 1.07.01 +## 2001/05/25 `1.07.01` - added complete (hopefully) list of additional entities for Front Line Force 1.2a/1.3. - added best-guess list of entities for Day of Defeat b1.1. @@ -737,7 +752,7 @@ separate list). comments. - added utils/getents.sh script to pull entity lists from .so files. -## 2001/05/08 1.07.00 +## 2001/05/08 `1.07.00` - fixed "%s" server-crashing bug. "You should never pass strings with unknown contents as the format string." Metamod was passing a preformatted non-constant (thus unknown contents) string as the format @@ -757,7 +772,7 @@ metamod before being passed to trace). CreateNamedEntity. - altered debug levels AlertMessage API routines in api_info.cpp -## 2001/05/04 1.06.10 +## 2001/05/04 `1.06.10` - fixed a couple of entities for HL Paintball. - added links.html to docs, a set of links/URLs and books that I found helpful for the project. @@ -774,7 +789,7 @@ more proper. - added MPluginList::find(plid_t id), for upcoming code additions. - added thread primitives to osdep, for upcoming code additions. -## 2001/04/29 1.06.02 +## 2001/04/29 `1.06.02` - added entities and mod recognition for VampireSlayer and Open-Source Jailbreak. - updated mod recognition for current names of Action Half-Life's DLL/SO @@ -785,7 +800,7 @@ files. tag in the version info for the win32 DLL. - disabled SDK's "DBG_" functions, for MSVC win32 debug compiles. -## 2001/04/22 1.06.01 +## 2001/04/22 `1.06.01` - added some entities for FLF 1.2. - better info in trace plugin's log messages for DispatchObjectCollsionBox, SetModel, FindEntityByString, SetOrigin, @@ -795,7 +810,7 @@ EntOffsetOfPEntity, PEntityOfEntIndex. - for non-critical interface version mismatch, changed from a META_ERROR to just META_LOG, since it's not, strictly speaking, an error. -## 2001/04/17 1.06.00 +## 2001/04/17 `1.06.00` - added support for "metaexec.cfg", a commands file to be exec'd after loading the plugins, for plugin commands and cvars, since autoexec.cfg is parsed too early (before plugins loaded) and server.cfg is parsed too @@ -827,7 +842,7 @@ any plugin. - updated the docs to include recent new features, as well as some better discussion of coding details. -## 2001/04/06 1.05.00 +## 2001/04/06 `1.05.00` - created utility callback functions, for use by plugins, to reduce code duplication and help simplify some things. Currently, these consist of only some convenient logging functions (LOG_CONSOLE, LOG_MESSAGE, @@ -856,7 +871,7 @@ macro, to make it easier to add code to middle of API routines. - renamed util_meta.h to support_meta.h, to avoid confusion with mutil.h - some code cleanup (better 80-column linebreaks). -## 2001/04/03 1.02.00 +## 2001/04/03 `1.02.00` - added support for Half-Life Paintball - added "*_mm" and "*_MM" to the list of suffixes to look for when loading plugins at console. @@ -870,7 +885,7 @@ Post function). - renamed local SDK API routines to "mm_*" for easier debug breakpoints - altered debug levels for a couple API routines in api_info.cpp -## 2001/04/01 1.01.00 +## 2001/04/01 `1.01.00` - replaced use of FStrEQ in most places with !strcasecmp, so that case doesn't matter for things like console commands ("META LOAD" will now work in addition to "meta load") and paths (like "-game CSTRIKE"; and @@ -881,7 +896,7 @@ work). Confusing. - added "by " when printing author info, to make it a bit clearer - added a bit more operation info to metamod.html -## 2001/03/30 1.00.00 +## 2001/03/30 `1.00.00` - released as v1.0, for inclusion with release of Adminmod v2.50. - added $(VERSFILE) to Makefile and Config.mak, to better insure correct rebuild on version number changes @@ -903,7 +918,7 @@ have anything to return (like hpb_bot does, when the real gamedll doesn't provide GetNewDLLFunctions). - add handling of gpGamedllFuncs to mm_stub's Meta_Attach(). -## 2001/03/27 1.0-rc5 +## 2001/03/27 `1.0-rc5` - fixed problem with crashing when a plugin failed to load (improper dereference of null 'info' structure; incomplete fix from rc2). - added a plugin status "badfile", for plugin files that appear to be @@ -924,7 +939,7 @@ between the engine and the gamedll). - added console command "meta game" to show information about the loaded game DLL (to help troubleshoot issues with "metagame.ini"). -## 2001/03/25 1.0-rc4 +## 2001/03/25 `1.0-rc4` - split linkfunc.cpp into linkent.h, linkgame.cpp, linkplug.cpp - split entity lists for mods into separate files, one for each mod; these are used to build linkgame.cpp @@ -937,7 +952,7 @@ unresolved CSaveRestoreBuffer symbols using older versions of gcc - removed "-Werror" from Makefile's default cflags; should only be used on devl system with edited SDK -## 2001/03/18 1.0-rc3 +## 2001/03/18 `1.0-rc3` - central Makefile can now build optimzed as well as debugging targets; default to compile is debugging; default in 'dlls' dir is optimized - toplevel Makefile builds release tgz/zip files. TGZ file includes only @@ -947,7 +962,7 @@ files rather than symlinks. - added mod recognition for "judgedm" mod; still need entities list - added 4 entities for Firearms 2.5 -## 2001/03/07 1.0-rc2 +## 2001/03/07 `1.0-rc2` - fixed missing WINAPI in mm_trace GiveFnptrsToDll - added HTML version of docs - description field in metamod.ini is now optional: @@ -981,7 +996,7 @@ cmd_meta_pluginlist() instead of Plugins->show() - now doesn't call plugins getnewapi if gamedll doesn't provide it - fixed incorrect apitable references in MPlugin::show() -## 2001/02/08 1.0-rc1 +## 2001/02/08 `1.0-rc1` - fixed unistd.h under MSVC - fixed S_ISREG under MSVC - fixed strncasecmp under MSVC @@ -990,4 +1005,3 @@ cmd_meta_pluginlist() instead of Plugins->show() - remade MSVC project for metamod - created MSVC project for mm_stub - added an example "metamod.ini" to ./docs - From 720a63eacd1365f9b2cdf5c4750d1537bc8750d7 Mon Sep 17 00:00:00 2001 From: STAM Date: Mon, 28 Oct 2024 12:25:40 +0300 Subject: [PATCH 4/6] changelog refactoring --- CHANGELOG.md | 1095 +++++--------------------------------------------- 1 file changed, 98 insertions(+), 997 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b052d53..d540bf9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,1007 +1,108 @@ +# Changelog + # **Metamod-r** Changelog **Metamod-r** is based on the original version of [Metamod](http://metamod.org/) written by _Will Day_ for Half-Life 1 with some improvements from [Jussi Kivilinna](https://github.com/jkivilin) ([Metamod-p](https://github.com/jkivilin/metamod-p)). This product contains a large number of performance optimizations and more pure code. The core was written using JIT compiler. +`*` Original changelog [here](https://github.com/Bots-United/metamod-p/blob/master/doc/Changelog). + _____ +## [`1.3.0.149`](https://github.com/rehlds/metamod-r/releases/tag/1.3.0.149) - 2024-04-23 -## 2017/11/15 `1.3.0.85` -- [Download](https://github.com/rehlds/metamod-r/releases/tag/1.3.0.84). -- :heavy_check_mark: Fixed parse plugins.ini (Load the plugins for a appropriate platform only) -- :heavy_check_mark: Fixed crash for meta-plugins using UPX +### Fixed +- Fixed shutdown issue -## 2017/10/27 `1.3.0.84` -- First public release. [Download](https://github.com/rehlds/metamod-r/releases/tag/1.3.0.84). -- :recycle: Minor refactoring +**Full Changelog**: [1.3.0.138...1.3.0.149](https://github.com/rehlds/metamod-r/compare/1.3.0.138...1.3.0.149) -## 2016/07/04 `0.0.0.0` (based on `1.20p35`) +## [`1.3.0.138`](https://github.com/rehlds/metamod-r/releases/tag/1.3.0.138) - 2023-11-28 + +### Changed +- Improve ReHLDS API initialization. + +### Fixed +- HLDS сompatibility +- [Fixed](https://github.com/rehlds/metamod-r/commit/ec926a611f4d225bb433609bf827269ad8482618) Gracefully shutdown metamod and plugins when game is closing (now _restart command work properly) + +**Full Changelog**: [1.3.0.131...1.3.0.138](https://github.com/rehlds/metamod-r/compare/1.3.0.131...1.3.0.138) + +## [`1.3.0.131`](https://github.com/rehlds/metamod-r/releases/tag/1.3.0.131) - 2018-08-24 + +### Changed +- Updateed `C++ Intel Compiler` version `17.0` > `19.0`. + +**Full Changelog**: [1.3.0.128...1.3.0.131](https://github.com/rehlds/metamod-r/compare/1.3.0.128...1.3.0.131) + +## [`1.3.0.128`](https://github.com/rehlds/metamod-r/releases/tag/1.3.0.128) - 2018-08-24 + +### Fixed +- [Fixed](https://github.com/rehlds/metamod-r/commit/0cf2f709dbeae18ca84d2fafd4481ffbba06ad0c) two bugs in `jit` + +**Full Changelog**: [1.3.0.126...1.3.0.128](https://github.com/rehlds/metamod-r/compare/1.3.0.126...1.3.0.128) + +## [`1.3.0.126`](https://github.com/rehlds/metamod-r/releases/tag/1.3.0.126) - 2018-05-10 + +### Fixed +- [Fixed](https://github.com/rehlds/metamod-r/commit/93b5bd45e279aad6a91e71504dd8deaf9896ab42) crashes in `pfnAlertMessage` + +**Full Changelog**: [1.3.0.125...1.3.0.126](https://github.com/rehlds/metamod-r/compare/1.3.0.125...1.3.0.126) + +## [`1.3.0.125`](https://github.com/rehlds/metamod-r/releases/tag/1.3.0.125) - 2018-04-30 + +### Fixed +- [Fixed](https://github.com/rehlds/metamod-r/commit/6456c5f7ec872cd98d9be964440cf96780899558#diff-f15b77cc15bf608d761260093dfe8e0d) binary names to correctly auto detect of games + +**Full Changelog**: [1.3.0.119...1.3.0.125](https://github.com/rehlds/metamod-r/compare/1.3.0.119...1.3.0.125) + +## [`1.3.0.119`](https://github.com/rehlds/metamod-r/releases/tag/1.3.0.119) - 2018-03-12 + +### Added +- Added support of various gamedll binaries for mods +- Added `mm_pluginsfile` option + +**Full Changelog**: [1.3.0.107...1.3.0.119](https://github.com/rehlds/metamod-r/compare/1.3.0.107...1.3.0.119) + + +## [`1.3.0.107`](https://github.com/rehlds/metamod-r/releases/tag/1.3.0.107) - 2018-01-29 + +### Fixed +- Fixed problems with api functions returning float + +### Added +- [Added](https://github.com/rehlds/metamod-r/commit/132cbad0099c9903123d7ff7c3e1c13344efb3c9) more supported games + +### Changed +- Refactoring + +**Full Changelog**: [1.3.0.86...1.3.0.107](https://github.com/rehlds/metamod-r/compare/1.3.0.86...1.3.0.107) + +## [`1.3.0.86`](https://github.com/rehlds/metamod-r/releases/tag/1.3.0.86) - 2017-11-15 + +### Fixed +- [Fixed crash](https://github.com/rehlds/metamod-r/commit/5b7fe147231df9354a8fe29c3852bd1db8119e81) and reworked `find_memloc` + +**Full Changelog**: [1.3.0.85...1.3.0.86](https://github.com/rehlds/metamod-r/compare/1.3.0.85...1.3.0.86) + + +## [`1.3.0.85`](https://github.com/rehlds/metamod-r/releases/tag/1.3.0.85) - 2017-11-15 + +### Fixed +- Fixed parse plugins.ini (Load the plugins for a appropriate platform only) +- Fixed crash for meta-plugins using UPX + +**Full Changelog**: [1.3.0.84...1.3.0.85](https://github.com/rehlds/metamod-r/compare/1.3.0.84...1.3.0.85) + +## [`1.3.0.84`](https://github.com/rehlds/metamod-r/releases/tag/1.3.0.84) - 2017-10-27 + +### Added +- First public release. + +### Changed +- Minor refactoring + + +## `0.0.0.0` (based on `1.20p35`) - 2016-07-04 + +### Added - Started `metamod-r` project by forkig from `metamod-p`. Based on version `1.20p35`. -- Official changelog of original version `missed`. - -## 2012/08/08 `1.19p34` -- Revert changes in 1.19p33 and start over with 1.19p32 code base -- Fix compiling with latest userspace headers and gcc-4.6 -- Disabled building x86-64 binaries as Valve has dropped x86-64 -linux server support. - -## 2012/07/27 `1.19p33` -- Accumulated fixes and changes over time -- Fixes compiling with latest userspace headers and gcc-4.6 -- (introduced bugs, crashes, do not use) - -## 2007/08/12 `1.19p32` -[Patch: Metamod-P v32 by Jussi Kivilinna] -- Changed GCC optimization flags based on performance monitoring results, -replaced '-O3 -funroll-all-loops' with '-O2'. -- Made 'Fix for engine_api varargs log calls with very long log string' -default on in sources so that MSVC compile is 1:1 with GCC compile. -- Made 'optimizations on META_DEBUG' always on in sources so that MSVC -compile is 1:1 with GCC compile. -- Fixed compiling META_PERFMON build with MSVC. -- Fixed compiling with MSVC fixed by Nikolay "The Storm" Baklicharov. -- `linux` Remake of dynamic linkent code. Parse dlsym function trampoline -instead of parsing ELF structures. -- `linux` Dropped AMD64 support since Valve doesn't support their AMD64 build -anymore and I don't have access to AMD64 machine to port new dynamic -linkent code. Sorry! - -## 2007/04/05 `1.19p31` -[Patch: Metamod-P v31 by Jussi Kivilinna] -- Enabled 'regparam' for internal functions. Means that function arguments are -passed through registers instead of stack, which increases performance. -- Merged in changes from Metamod 1.19 that I didn't initially notice: -- Fixed a bug where plugins could not catch NewDLL calls for GameDLLs that -do not provide NewDLL information. - -## 2007/04/04 `1.19p30` -[Patch: Metamod-P v30 by Jussi Kivilinna] -- Fixed safevoid_vsnprintf() on win32. - -## 2007/04/02 `1.19p29` -[Patch: Metamod-P v29 by Jussi Kivilinna] -- crash fix that didn't work - -## 2006/03/04 `1.19p28` -[Patch: Metamod-P v28 by Jussi Kivilinna] -- Removed use of __VA_ARGS__ (should be easy to port to msvc now). -- Reduced size of extra engineapi function slots from 128 to 16. -- Clean up code, removed use of likely()/unlikely() macros in places where -they don't give extra performance. -- Added MakeRequestID() API -- Added api for using hook tables from plugins (thanks to BAILOPAN) -- Re-enabled fix for engine_api varargs log calls with very long log string. - -## 2005/08/24 `1.18p26` -[Patch: Metamod-P v26 by Jussi Kivilinna] -- Fixed newapi functions not active on mods that don't use newapi. -- [win32] New is_gamedll() code. -- `linux` Fix for buggy DT_HASH in library walker function. -- Following features were removed to improve stability. These changes were -not present in metamod.org version: -- Removed fix for engine_api varargs log calls with very long log -string. -- Removed optimized version of GET_USER_MSG_ID() for metamod-bots. - -## 2005/08/24 `1.18p25` -[Patch: Metamod-P v25 by Jussi Kivilinna] -- Added mutil::IsQueryingClientCvar(). -- Added support for new HLSDK-API functions: -- enginefuncs_t::pfnQueryClientCvarValue() -- NEW_DLL_FUNCTIONS::pfnCvarValue() -- Fixed reloading and unloading of plugins that haven't been loaded -correctly. -- Fixed loading of plugins that needed changelevel to activate. -- Linux x86 and Windows binaries are now compiled for i586 since there is not -performance difference compared to i686. -- Fixes to improve stability on win32. (thanks to Blackhawk) -- Changed to use mingw-gcc 3.4.2rc -- Changed optimization flags, replaced '-O3 -ffast-math' with '-O2'. -- Minor performance tweaks. -- Changed to use mingw-gcc 3.4.2rc, mingw-gcc 3.4.4rc emited extra code -to zero stack memory which lowered performance. -- Changed API hooks to give structure offset to main API hook function -instead of pointer, which increases performance on linux-i586. -- Raised META_INTERFACE_VERSION to "5:12". -- Fixed metamod_version cvar to show "1.18p25" instead of "1.18.0p25". -- `linux` Improved dynamic linkent code. -- `linux` Static linked with libgcc. - -## 2005/07/27 `1.18p24` -[Patch: Metamod-P v24 by Jussi Kivilinna] -- Updated to match latest metamod.org version. -- Removed mm-p-extensions-API, since loading/unloading plugins functions -are included in Metamod 1.18 in mutil-API. - -## 2005/04/22 `1.17.4p23` -[Patch: Metamod-P v23 by Jussi Kivilinna] -- Fixed broken RegMsgList caused by optimization for mm-bots. -- Fixed optimization for mm-bots. -- `linux` Removed ESF-Mod fix. -- `linux` Minor performance tweaks and reduced filesize for linux. - -## 2005/04/08 `1.17.4p22` -[Patch: Metamod-P v22 by Jussi Kivilinna] -- Optimized GET_USER_MSG_ID() function for metamod-bots. -- Minor performance tweaks. -- `linux` Looks for gamedll for Earth Special Forces Mod from 'linuxdlls' -directory after checking 'dlls'. - -## 2005/03/25 `1.17.4p21` -[Patch: Metamod-P v21 by Jussi Kivilinna] -- Fixed 'meta reload' not working on plugins that have failed loading. -- Fixed bug with handling of metamod-plugin-bots, which might have caused -problems depending on order of loaded plugins. See 'call_count' in -'api_hook.cpp' for details. -- Minor performace tweaks. -- Changed all non-fatal error messages to warning messages. - -## 2005/03/05 `1.17.4p20` -[Patch: Metamod-P v20 by Jussi Kivilinna] -- Fixed bug with metamod.dll not having working relocation: -- Makefile doesn't use 'dllwrap' for linking windows dlls anymore. -- Minor performance tweaks. -- Updated mini-hlsdk to 'official 2.3+patches' version. -- Fixes to improve stability: -- Added fix for broken 'vsnprintf' for win32 and some glibc versions. -- Fixed wrong api-hook function for 'ClientConnect' in 'api_info.cpp'. -- Fixed wrong integer type for CRC32_t in 'hlsdk/common/crc.h'. -- Removed 'metamod_compat-i386.so' from linux binary release. - -## 2005/02/27 `1.17.4p19` -[Patch: Metamod-P v19 by Jussi Kivilinna] -- Performance tweaks mainly for AMD64 (minor for i386). -- Linux-i386 (metamod_i386.so) binary linked against glibc-2.1.3 for better -compatibility. Compiled using gcc-3.3.4-glibc-2.1.3 crosscompiler available -at: http://forums.unitedadmins.com/index.php?showtopic=44048 -- Binaries not linked against libstdc++ anymore for better compatibility -(see: new_baseclass.h). - -## 2005/02/25 `1.17.4p18` -[Patch: Metamod-P v18 by Jussi Kivilinna] -- Fixed AMD64 support. - -## 2005/02/19 `1.17.4p17` -[Patch: Metamod-P v17 by Jussi Kivilinna] -- Renamed 'Metamod All-Mod-Support' to 'Metamod-P'. -- Fixes to improve stability. -- Minor performance tweaks. -- Merged updates from Metamod 1.17.4, -http://www.sourceforge.net/projects/metamod/ -- Added Mod recognition for Brain Bread 1.2, Snow-War 2.0 and -Gangsta Wars 2.7. - -## 2005/02/13 `1.17.3p16` -[Patch: All-Mod-Support v16 by Jussi Kivilinna] -- Fixes to improve stability. -- Minor performance tweaks. - -## 2005/01/10 `1.17.3p15` -[Patch: All-Mod-Support v15 by Jussi Kivilinna] -- New optimization which reduces binary size more than 50%. -- Changed '-march=i586' to '-march=i686'. This means this binary -doesn't work on Pentium/K6 processors. You need PPro/Athlon -or newer. -- Removed 'Active API Hooks' optimization. -- Removed 'memory write detection' code. - -## 2004/11/27 `1.17.3p14` -[Patch: All-Mod-Support v14 by Jussi Kivilinna] -- Remake of new callback API. - -## 2004/11/27 `1.17.3p13` -[Patch: All-Mod-Support v13 by Jussi Kivilinna] -- New callback API for plugins to load/unload other plugins. See -'mm_pextensions.h'. -- Fixed a minor memory leak when reloading plugins. -- Minor fixes on 'memory write detection'. -- Minor performance tweaks. -- Moved p13 code from osdep.cpp/h to osdep_p.cpp/h - -## 2004/11/17 `1.17.3p12` -[Patch: All-Mod-Support v12 by Jussi Kivilinna] -- Fixed crashing with 'memory write detection' (part of 'Active API Hooks'). -- Improved 'memory write detection' code. - -## 2004/11/16 `1.17.3p11` -[Patch: All-Mod-Support v11 by Jussi Kivilinna] -- Added new 'Active API Hooks' optimization, speeding up handling HLSDK-API -functions that are not hooked by any plugins. -- Added new command 'meta active' to list active hooks. -- `linux` 'metamod_i386.so' is compiled with gcc-3.3.4 now. If that version -doesn't work for you, use 'metamod_compat-i386.so'. -- `linux` gcc-2.95 compiled binary is now 'metamod_compat-i386.so'. -- Merged updates from Metamod 1.17.3, -http://www.sourceforge.net/projects/metamod/ -- Added Mod recognition for Zombie Panic Beta 0.91c, Out Break 1.0, -Operations 1942 v2.0, The Trenches 1.0-Beta, The Ship V0052. -- When reloading plugins honour their load time settings. Does no longer -attempt to reload plugins when the loading after the unloading would -fail due to a load time conflict. -- Fixed only loading one plugin when multiple plugins with the same -prefix were used, e.g. mm_pluginA.dll and mm_pluginB.dll. -- Fixed a minor memory leak when unloading plugins. -- Fixed potential bug initializing plugin incorrectly after unloading -and loading plugins. - -## 2004/08/31 `1.17.2p10` -[Patch: All-Mod-Support v10 by Jussi Kivilinna] -- Merged updates from Metamod 1.17.2, -http://www.sourceforge.net/projects/metamod/ -- Fixed a memory leak the size of the gamedll when extracting a missing -gamedll from the cache file on Windows Steam servers. -Found by Wei Mingzhi. -- Made game directory lookup case-insensitive. -- Added MOD recognition for The Terrorist Revenge 0.2.1, Pirates, -Vikings and Knights Beta 2.1, CSV15 (Counter-Strike 1.5 for Steam), -Adrenaline Gamer 6.5 and up. -- Changed MOD recognition for Adrenaline Gamer 3.x. The 3.x version of -the MOD is now being deprecated and support will be removed from a -future version of Metamod. It can currently still be used by renaming -the game directory from "ag" to "ag3" or by explicitly specifying the -gamedll. -- Improved parsing of plugins.ini file to not report errors on empty -lines and commented out lines that start with whitespace. -- Added "lin32" and "lin64" keywords in addition to "linux" keyword for -plugins.ini file to support using the same file for the same game on -both 32bit and 64bit servers. The "lin32" and "lin64" keywords -override the "linux" keyword when used on the same plugin. Do not -use "linux" when using "lin32" and/or "lin64" keywords for the same -plugin. - -## 2004/07/28 `1.17.1p9` -[Patch: All-Mod-Support v9 by Jussi Kivilinna] -- `linux` Amd64-support. -- `linux` New version of osdep.cpp:is_gamedll(). -- Reads ELF directly and doesn't use external libraries. -- Binary isn't linked with BFD library anymore, reduces filesize to -less than 500kb. -- More optimizations on META_DEBUG macro. -- No more 'fast' compiles, META_DEBUG is optimized enough now. -- Added '+localinfo mm_clientmeta ' setting for disabling 'meta' -client-command. -- Added 'clientmeta' config.ini setting. - -## 2004/07/04 `1.17.1p8` -[Patch: All-Mod-Support v8 by Jussi Kivilinna] -- Fixed memory leak in linux version of osdep.cpp:is_gamedll(). -- Fixes to improve stability. -- Optimizations on META_DEBUG macro. - -## 2004/06/06 `1.17.1p7` -[Patch: All-Mod-Support v7 by Jussi Kivilinna] -- Official support for All-Mod-Support versions at http://koti.mbnet.fi/axh/ -- Merged updates from Metamod 1.17.1, -http://www.sourceforge.net/projects/metamod/ -- Added MOD recognition for Hostile Intent 1.1. -- Added MOD recognition for Natural Selection Beta 3.0. -- Added MOD recognition for CS13. -- Added MOD recognition Rocket Crowbar 2. -- Added MOD recognition Counter-Strike:Condition Zero. -- On Windows Steam servers extract the gamedll file from the cache file -if it is missing in the dlls directory. -- Added Patch-messages. -- Added '+localinfo mm_autodetect ' setting for disabling -autodetection of gamedll. -- Added 'autodetect' config.ini setting. -- Small tweaks and optimizations at various different places. - -## 2004/05/21 `1.17p6` -[Patch: All-Mod-Support v6 by Jussi Kivilinna] -- Tweaks and optimizations on osdep.cpp:is_gamedll(). -- `linux` Added architecture check for i386 and x86-64 to is_gamedll(). - -## 2004/04/27 `1.17p5` -[Patch: All-Mod-Support v5 by Jussi Kivilinna] -## 2004/04/26 `1.17p4` -[Patch: All-Mod-Support v4 by Jussi Kivilinna] -- Amd64-test versions - -## 2004/04/25 `1.17p3` -[Patch: All-Mod-Support v3 by Jussi Kivilinna] -- Automatically searchs for gameDll for new mods that are not included in -internal mod-list. -- `linux` Cleaned up osdep_linkent_linux.cpp, might work with x86-64 build -now (not tested). - -## 2004/04/24 `1.17p2` -[Patch: All-Mod-Support v2 by Jussi Kivilinna] -- Extra functions slots are now passed all the way to the gameDll now too. -- `linux` New method for dlsym hooking, no need for metamod_linkent_tool.so anymore. -- Made mm_* functions in dllapi.cpp and engine_api.cpp static. -- Made mutil_* functions in mutil.cpp static. - -## 2004/04/22 `1.17p1` -[Patch: All-Mod-Support v1 by Jussi Kivilinna] -- Removed dependences on game.dll structures (CBasePlayer). -- Replaced UTIL_ShowMessage with META_UTIL_ShowMessage. -- [win32] Replaced entity linking with PE dll-export-table combining. -- `linux` Replaced entity linking with dlsym hooking. -- Removed entities from linkgame.cpp -- Added 128 extra function slots on enginefuncs_t structure for future engine updates. - -## 2003/11/15 `1.17` -- Added support for recently added routines in the HL Engine: -``` -SequenceGet() -SequencePickSentence() -GetFileSize() -GetApproxWavePlayLen() -IsCareerMatch() -GetLocalizedStringLength() -RegisterTutorMessageShown() -GetTimesTutorMessageShown() -ProcessTutorMessageDecayBuffer() -ConstructTutorMessageDecayBuffer() -ResetTutorMessageDecayData() -``` -- Removed mod recognition and entities for Master-Sword v1.3, at the -request of the Mod's authors. -- Added mod recognition and entities for HL-Rally vBeta 1.0, Kanonball -v1.01, Over Ground vBeta 1.0, Project Timeless vBeta 1.0, Underworld -Bloodline v2.0. -- Additional entities for The Battle Grounds v1.2.1, Firearms v2.8. -- Additional entities "env_rain" and "env_snow" used on some CS maps. -- Added "metamod_version" cvar that can be queried from game browser -clients. -- Added "meta" client command similar to the console command, providing at -this time only "list" and "version" subcommands. -- Introduced basic config file to provide more reliable and more -flexible options passing, in addition to the current +localinfo method. -- Default filename: addons/metamod/config.ini -- Options include: -``` -debuglevel -gamedll -plugins_file -exec_cfg -``` -- Added option "+localinfo mm_configfile " to override default -config.ini pathname. -- Added "meta config" console command to display result of config -file and localinfo options. -- Added "meta require " console command, to exit the server if the -specified plugin is not found loaded and running. Intended for use in -server.cfg or metaexec.cfg. Suggested by Florian Zschocke. -- If a specified override gamedll pathname is invalid, Metamod will now -exit with an appropriate error, rather than falling back to the -auto-detected gamedll. This should provide more useful feedback in such -situations. -- Added GINFO_REALDLL_FULLPATH for mutil GetGameInfo, to return the -(supposed) "real" dllpathname, ie in case gamedll is overridden. Needed -specifically for plugin "SinglePlayer". -- Raised META_INTERFACE_VERSION to 5:10, for GINFO_REALDLL_FULLPATH. -- Now recognizes "/dev/null" as valid for path options (pluginsfile, -execcfg, configini, etc), for when an empty file _is_ desired. -- Fixed loading of plugins.ini to detect duplicate plugins (by full -pathname). -- Added doc/config.ini with comments to document the file. -- Renamed doc/metamod.ini to doc/plugins.ini, and added comments. -- Internal changes: -- Added conf_meta.cpp, conf_meta.h for config file handling. -- Created full_gamedir_path() to centralize code for testing absolute -path, prepending gamedir if necessary, calling realpath, and -normalizing pathnames. -- Most paths are now stored and operated on as fullpathnames, rather -than gamedir-relative pathnames. -- Now using fopen() rather than LOAD_FILE_FOR_ME when reading text -files, in particular due to fullpathnames. -- Errorcheck for absolute paths as mm_execcfg filename, since -servercommand("exec") won't accept absolute pathanmes. -- Added debug messages to valid_gamedir_file(), for checking why it -failed to use a specified (config.ini, localinfo) path. -- Simplified logic in cmd_doplug() to not require re-mapping pcmd to cmd -string. -- Fixed Makefile to always recompile meta_api.cpp for changes in -info_name.h. -- Split lookup_game() into setup_gamedll and lookup_game, to better -organize for storing gamedll->real_pathname. -- Source and documentation files based on the list of supported -game/mods are split into their own files (games.h, -supportedmods.html), so they can be generated from a local database -rather than maintained manually. -- Makefile now using gcc-2.95 explicitly, to avoid using gcc3 at this -time. - -## 2003/08/02 `1.16.2` -- Mod recognition and entities for The Point of No Return v.Beta 4.0. -- Even more entities for The Specialists v.Beta 2.0. - -## 2003/07/30 `1.16.1` -- Mod recognition and entities for Master-Sword v1.3, The Wastes RC 1.2, -and Monkeystrike v1.2. -- Additional entities for Natural Selection v2.0, The Specialists v.Beta -2.0, Earth's Special Forces v.Beta 1.1, The Battlegrounds v1.2, and -International Online Soccer v2.0. - -## 2003/05/08 `1.16` -- Added support for Server_GetBlendingInterface() in order to allow client -and server to properly coordinate custom player model blending. This -should fix the issue with mismatched hitboxes observed with CS and DOD. -- Mod recognition and entities for International Online Soccer v1.0 and -Morbid Inclination v1.0. -- Added studioapi.{cpp,h} to provide Server_GetBlendingInterface. - -## 2003/05/03 `1.15.3` -- More additional entities for Day of Defeat v1.0. -` -## 2003/05/02 `1.15.2` -- Mod recognition and entities for Rival Species vBeta 1.0, Public Enemy -vBeta 1.0, and Bumper Cars vAlpha. -- Additional entities for Day of Defeat v1.0, Sven Coop v2.1, WormsHL -vBeta 3.0, and Natural Selection v1.1. - -## 2003/04/09 `1.15.1` -- Additional entities for Firearms v2.7 and Desert Crisis v1.5. -- Fixed mod recognition for Adrenalinegamer v4.x and later. - -## 2003/02/12 `1.15` -- Additional entities for VampireSlayer Chapter V. -- Fixed entity name "TS_PowerUp" for The Specialists 1.5; should fix -precache error for "models/powerup.mdl". -- Added DLFNAME implementation for win32, provided by Jussi Kivilinna. -Thus, "meta info " will now list registered commands and -registered cvars under win32, rather than just under linux. -- Now dynamically allocating lists of registered commands and registered -cvars, rather than a fixed limit of 1024 (and before that, 512). Based -on code provided by Jussi Kivilinna. -- Console listing of regcmds/regfuncs now also shows currently allocated -list sizes. -- Replaced valid_file() using LOAD_FILE_FOR_ME with valid_gamedir_file() -using stat(). Thus, it should no longer find unintended files under the -"valve" subdirectory. -- Normalize filenames under win32 to use slashes (/) and lowercase chars, -to get rid of mixed-slashes (ie "half-life\cstrike/dlls") and to -simplify pathname comparisons. -- Also, canonicalize filenames under both win32/linux to remove ".." and -redundant "/" path components, to provide more reliable pathname -comparisions. -- If meta_CVarRegister fails to find a corresponding plugin for a cvar, it -now logs only a Debug message rather than an Error message, as a cvar_t -that's malloc'd by a plugin can't be traced back. Problem reported by -Olo. -- In plugin trace, added "classname" to DispatchSpawn output. -- Added is_absolute_path() to centralize the logic, and to be more -OS-precise. -- Split meta_init_gamedll() from meta_load_gamedll() so that the correct -and normalized Gamedir is available earlier in the code. -- #define NAME_MAX and PATH_MAX to the correct win32 constants, rather -than using (inaccurate) internal values. -- Renamed internal classes RegFunc to RegCmd, to provide more easily -associated names. -- Lots of internal file organization changes: -- Removed superfluous symlinks in docs dir. -- Renamed toplevel doc files to *.txt. -- Added Config.mak to toplevel dir, to provide project name and subdirs, -so that toplevel Makefile can be used for multiple projects. -- Added copyrights to Makefiles. -- Added blurbs to engine notes for FunctionFromName and NameForFunction, -based on investigation of singleplayer support. -- In source Makefile, added support for compiling linux-only or -win32-only projects. -- In source Makefile, fixed vdate.o to properly compile for each link. -- Removed tmp files in msvc dir (.ncb, .plg). -- Added copyright/GPL blurb to *.rc files. -- In stub/meta_api.cpp, comment out unused variables rather than doing -"if(var)" to satisfy gcc -Wunused. -- Reduced vers_meta.h to just the version and other common info, and -create info_name.h for module-specific name, desc, etc, so that I'll -only have to edit 1 file when increasing version/date for all the DLLs -distributed with Metamod. -- Made res_meta.rc common among Metamod and the plugins, rather than -having a separate res_plugin.rc. -- In source Makefile, added "--include-dir" args to windres, so it can -find the now common vers_meta.h. -- Source Makefile now copies targets into ../dlls, rather than doing -that only for comprehensive "dlls" targets. -- Added "-fno-exceptions -fno-rtti" to possibly reduce code size, -suggested by Jussi Kivilinna. -- For plugins, renamed ie "mm_wdmisc" to "wdmisc_mm" where it was missed -earlier. -- For plugins, better organized common code, to make it more adaptable -to other plugin projects (ie, singlep). Ie, plugin_query, -plugin_attach, plugin_detach; moved plugin welcome banner to -meta_api.cpp; etc. -- Added tools/stlfilter to help hide -Weffc++ warnings from g++ STL -headers (although not using STL at this time..) - -## 2003/01/24 `1.14.1` -- Properly recognize win32 full pathname from GetGameDir. -- Added "#include " for getcwd() under MSVC. -- Trace plugin: Changed AlertMessage formatting, ie from -"atype=at_console/1" to "atype=at_console(1)". -- Stub plugin: fixed to compile under MSVC again. - -## 2003/01/23 `1.14` -- Fixed to handle new behavior of engine routine GET_GAME_DIR under HL -1.1.1.1 (CS 1.6) beta, where the routine no longer returns the -fullpathname of the game directory, but now returns only the string -passed to hlds as the argument to "-game" (pointed out by Alfred -Reynolds). -- Added meta-util function GET_GAME_INFO to return various string-based -information about the gamedll (name, description, gamedir fullpathname, -dll fullpathname, dll filename). -- Raised META_INTERFACE_VERSION from 5:8 to 5:9. -- Added FAQ. -- Some docs touchups. - -## 2003/01/18 `1.13.4` -- Additional entities for betas of Counter-Strike 1.6 and TFC from HL -1.1.1.1. -- Added missing #include "osdep.h" to several files, to make sure things -like win32 vsnprintf are defined. -- In stub plugin, added engine_api.cpp, to provide example framework for -hooking engine routines. -- In trace plugin, changed logtag to all caps. - -## 2003/01/12 `1.13.3` -- Additional entities and updated mod recognition for Earth's Special -Forces Beta 1. -- Mod recognition for Retro Firearms 2.5. -- Increased max allowed plugin functions and max allowed plugin cvars from -512 to 1024. -- Fixed UTIL_VarArgs and UTIL_LogPrintf (copied from SDK) to use proper -bounds-checking (to help prevent buffer overflows). -- Updated Copyright to include "2001-2003". - -## 2002/11/26 `1.13.2` -- Mod recognition and entities for Azure Sheep v1.0, BuzzyBots v2.3, -Outlawsmod v.Beta 1.5, The Specialists v.Beta 1.0, and StargateTC v.Beta -2.2. -- Additional entities for The Battle Grounds v.Demo 1.0, Firearms v.2.6.5, -Global Warfare v.Beta 2.0, and Tour of Duty v1.1 Beta. -- Updated mod recognition for Rocket Crowbar v1.9. -- Compiled against HLSDK 2.3. -- Corrected missing "const" in vdate.h (noted by Ravenous BugBlatter -Beast). - -## 2002/10/06 `1.13.1` -- Mod recognition and entities for Digital Paintball v1.0, Dragon Mod Z -v1.7, Holy Wars v.beta2, and OeL Half-Life v4.0. -- Additional entities for Adrenalinegamer Mod v6.0 and Natural Selection -v1.0. -- Corrected a cast in os_safe_call (from Olafur Osvaldsson). - -## 2002/08/24 `1.13` -- New config file names and locations, per the Addon Development Standard -rev 1.00. Default config files are now: -- $gamedir/addons/metamod/plugins.ini -- $gamedir/addons/metamod/exec.cfg -- File "metagame.ini" no longer supported. -- Additional entities for WormsHL beta 2.1. -- Mod recognition (no entities) for Retro Counter-Strike 2.5. -- Added release_notes.html. -- Added function "valid_file" in support_meta.h. - -## 2002/07/11 `1.12.4` -- Additional entities for Day of Defeat beta 3.0 and Tour of Duty 0.9.0. -- Mod recognition and entities for Natural Selection 1.0. -- Added "$pg" string for /usr/bin/ident. - -## 2002/07/01 `1.12.3` -- Mod recognition and entities for Valve's Ricochet mod. -- Additional entities for Tour of Duty 0.8.0. -- Moved common code from LINK_ENTITY_TO_GAME to a function, rather than -duplicating the code in ~2000 expanded macros. Based on code from Jussi -Kivilinna . - -## 2002/06/04 `1.12.2` -- Even more entities for Firearms rc2.6. - -## 2002/05/29 `1.12.1` -- Mod recognition and entities for Desert Crisis 1.1, Tour of Duty 0.6.7, -and Train Hunters beta 1.0. -- Additional entities for GoldenEye 1.9C and Firearms rc2.6. -- Fixed meta-util function GET_PLUGIN_PATH to return the full path as -intended, rather than a partial path. -- Updated Copyright to include "2001-2002". -- Fixed Makefile to not update .tags or .htags by default. - -## 2002/04/22 `1.12.0` -- Updated for HL 1109, which adds one Engine routine: -const char *GetPlayerAuthId(edict_t *e); -- Mod recognition and entities for The Battle Grounds 0.6, Gangwars Beta -1.0, and WormsHL Beta 2.0 -- Additional entities for Day of Defeat beta 2.0 and Oz 2.5. -- Changed error message "user message registered again" to a debug message -(level 3). -- Fixed compile problem under MSVC with strcasecmp. -- Added meta-util function GET_PLUGIN_PATH, so a plugin can know from -whence it was loaded. -- In trace plugin, added more trace info for EngineFprintf, ServerPrint, -IsMapValid, GetPlayerUserId, GetPlayerWONId, GetPlayerAuthId, -CVarGetFloat, CVarGetString, AllocString, Time, IsDedicatedServer, -GetCurrentPlayer, GetPlayerStats. - -## 2002/02/08 `1.11.2` -- Hopefully complete list of entities for Day of Defeat beta 2.0. -- Don't complain for NULL routines in gamedll's NEW_DLL_FUNCTIONS. Should -solve "Couldn't find api call: dod.dll:ShouldCollide" errors with DoD -b2. -- Changed default for newapi ShouldCollide() from 0 to 1, per Mugsy@DoD's -observations. - -## 2002/02/03 `1.11.1` -- Mod recognition and entities for Snow-War 1.0, and Earth`s Special -Forces version Alpha 2.0. -- Additional entities for Oz 2.4.1, Svencoop 2.0, and partial entities for -Day of Defeat beta 2.0. -- Added check for duplicate UserMsg registration (should help resolve -recent "reached max msgs 256" errors). -- Dropped leading zeroes in version number. -- Tweaked "interface version" log message to help reduce confusion. -- Compiled with updated version of mingw; should help reduce dll filesizes -found in the previous release. -- Some additional debugging in gamedll entity linking. - -## 2001/12/17 `1.11.00` -- Mod recognition and entities for Weapon Wars v0.3. -- Additional entities for version 1.2 of Global Warfare. -- Linux binary linked against glibc-2.1.2 for better compatibility. -- 'meta game' now lists user messages registered by gamedll. -- Added meta-util functions GET_USER_MSG_ID and GET_USER_MSG_NAME, so -plugins that need to know RegUserMsg name/id mappings (like bots) don't -need to be loaded at server startup. -- Raised META_INTERFACE_VERSION from 5:6 to 5:7. -- Fixed NUM_FOR_EDICT error in pfnCenterSay (from Fritz Elfert). -- Re-fixed set_new_handler for MSVC (from Fritz Elfert). -- Fixed meta_AddServerCommand; was registering plugin's command string -rather than local string, causing segfault on plugin unload. -- Changed trace plugin to use GET_USER_MSG_NAME instead of local list. -- Added 'const' to 'char *' arguments in DLOPEN and DLSYM macros. -- Commented out names of unused function paramenters, to satisfy "gcc --Wunused" without generating MSVC errors. -- Added '#pragma warning(disable: 4390)' to disable "empty controlled -statement" warnings in MSVC. -- Updated MSDN url references. - -## 2001/09/19 `1.10.00` -- Updated for HL SDK 2.2, which adds two Engine routines: -qboolean Voice_GetClientListening)(int iReceiver, int iSender); -qboolean Voice_SetClientListening)(int iReceiver, int iSender, qboolean bListen); -- Mod recognition and entities for "Scientist Hunt" v1.2 and Existence -Beta 1.3. - -## 2001/08/01 `1.09.00` -- Mod recognition and entities for 'Wanted!' v1.5. -- Mod recognition for Adrenalinegamer v3.2 and v4.1 (no special entities). -- Additional entities for version 2.3 of Oz Deathmatch. -- Additional entities for version 1.0 of Wizard Wars. -- Additional meta-utility function CALL_GAME_ENTITY. Raised -META_INTERFACE_VERSION from 5:5 to 5:6. -- Added proper GPL notices. - -## 2001/07/06 `1.08.02` -- Added mod recognition and entities for Gunman Chronicles. -- Added list of supported mods to docs. -- Updated MSVC project/workspace files to match recent source changes. -- Fixed problem with set_new_handler compiling under MSVC. - -## 2001/06/30 `1.08.01` -- Updated for Day of Defeat v1.3. The name of its win32 dll changed (was -mp.dll; now dod.dll). No new entities. -- Added mod recognition and entities for Rocket Crowbar. -- Fixed problem with windows internal DLL version (don't use leading -zeros as compiler will assume it's octal notation). - -## 2001/06/16 `1.08.00` -- Allow specifying/overriding various things on the command line, via -"+localinfo". Fields are: -- mm_gamedll -a bot or other dll, instead of the gamedll based on the gamedir. -Note this is now the preferred method; the "metagame.ini" file is -deprecated, but still recognized for backwards compatibility. -- mm_pluginsfile -a file with the list of mm plugins, instead of "metamod.ini". -- mm_execcfg -a cfg file for mm plugin cvar settings, instead of "metaexec.cfg". -- mm_debug -an initial debug level. -- Examples: -./hlds_run -game cstrike +localinfo mm_gamedll dlls/pod_bot.so -./hlds_run -game cstrike +localinfo mm_pluginsfile mylist.ini -./hlds_run -game cstrike +localinfo mm_execcfg mysettings.cfg -./hlds_run -game cstrike +localinfo mm_debug 7 -- Don't try exec'ing metaexec.cfg unless it exists. -- Added additional entity for Action Half-Life Beta 4, from list forwarded -from the dev team. -- Added a couple additional entities for Global Warfare, from list -provided by the dev team. -- Moved a couple entities from the "common" list back to the "valve" list, -for better organization. -- Changed logmsg "Plugin '%s' interface version didn't match" from -"Warning:" to "Note:" to reduce confusion. -- Added an optional plugin meta-api routine Meta_Init, to be called prior -to GiveFnptrsToDll, to let the dll know that it's going to be -queried/loaded as a metamod plugin, to allow for DLL's that can be used -as both a metamod plugin _and_ a standalone DLL. Raised -META_INTERFACE_VERSION from 5:4 to 5:5. -- Removed segfault handler under linux, when calling plugin console -command functions, as (a) it masked legitimate segfaults in plugin -commands and produced confusing output ("plugin has been unloaded", when -really it segfaultd), and (b) wasn't necessary since the situation -should be covered by other tests. -- Replaced combo SDK macros with inline funcs, and added ones for -accessing serverinfo and localinfo infokey buffers. -- Unfinished code for event triggers is in the source, but is disabled -(since it's not finished yet). - -## 2001/06/10 `1.07.03` -- improper compile was reporting wrong version number - -## 2001/06/07 `1.07.02` -- added mod recognition and best-guess list of entities for Deathmatch -Classic v1 and Global Warfare Beta 1.0. -- updated entity list with best-guess additions and corrected win32 dll -name for Wasteland Beta 2. -- added additional entities for Frontline Force 1.2a, from list forwarded -from the dev team. - -## 2001/05/25 `1.07.01` -- added complete (hopefully) list of additional entities for Front Line -Force 1.2a/1.3. -- added best-guess list of entities for Day of Defeat b1.1. -- added best-guess list of entities for Science & Industry 0.97 (later -confirmed by SI lead programmer). -- added better guess list of entites for Action Half-Life b4. -- shrunk entity lists for Jailbreak and Judgement to include only -mod-specific entities (rather than common Valve entities which are in a -separate list). -- in THREAD_CREATE inline, replaced "(DWORD (*)(void*)) func" with -"(LPTHREAD_START_ROUTINE) func" to properly compile under MSVC. -- added engine_notes.html with a list of all the engine routines, and some -comments. -- added utils/getents.sh script to pull entity lists from .so files. - -## 2001/05/08 `1.07.00` -- fixed "%s" server-crashing bug. "You should never pass strings with -unknown contents as the format string." Metamod was passing a -preformatted non-constant (thus unknown contents) string as the format -string (and only argument) when handling printf-style varargs engine -functions (in particular, AlertMessage). Ie, don't do: -printf(buf); -Instead do: -printf("%s", buf); -- added some entities for Action Half-Life Beta4, which should help -address crashing on startup, especially with Last Man Standing random -weapons. Note that I don't have an official, complete list of entities -for the mod, so there may still be some instances of crashing. -- added debugging messages for printf-style varargs engine routines, since -we can't rely on trace_mm for this (as the messages are re-written by -metamod before being passed to trace). -- better info in trace plugin's log messages for AlertMessage and -CreateNamedEntity. -- altered debug levels AlertMessage API routines in api_info.cpp - -## 2001/05/04 `1.06.10` -- fixed a couple of entities for HL Paintball. -- added links.html to docs, a set of links/URLs and books that I found -helpful for the project. -- added to META_INTERFACE_VERSION comments to include associated metmaod -version for each change. -- additional data checking in various MPluginList routines. -- added 'const' to various function arguments to more properly reflect -function purpose. -- changed various function macros to inlines, to provide more obvious type -checking, and easier debugging. -- adjusted private/public members of various classes, to try and make them -more proper. -- added new_handler code, for upcoming code additions. -- added MPluginList::find(plid_t id), for upcoming code additions. -- added thread primitives to osdep, for upcoming code additions. - -## 2001/04/29 `1.06.02` -- added entities and mod recognition for VampireSlayer and Open-Source -Jailbreak. -- updated mod recognition for current names of Action Half-Life's DLL/SO -files. -- added some entities for FLF 1.2a, listed on Botman's news page. -- added some docs for Installation and Compiling. -- added build type info (optimized, debugging, etc) to the SpecialBuild -tag in the version info for the win32 DLL. -- disabled SDK's "DBG_" functions, for MSVC win32 debug compiles. - -## 2001/04/22 `1.06.01` -- added some entities for FLF 1.2. -- better info in trace plugin's log messages for -DispatchObjectCollsionBox, SetModel, FindEntityByString, SetOrigin, -EntOffsetOfPEntity, PEntityOfEntIndex. -- fixed missing initialization for "len" in wdmisc. -- added links to sections in html docs. -- for non-critical interface version mismatch, changed from a META_ERROR -to just META_LOG, since it's not, strictly speaking, an error. - -## 2001/04/17 `1.06.00` -- added support for "metaexec.cfg", a commands file to be exec'd after -loading the plugins, for plugin commands and cvars, since autoexec.cfg -is parsed too early (before plugins loaded) and server.cfg is parsed too -late (after ServerActivate). -- better info in trace plugin's log messages for MessageBegin, -WriteString, AlertMessage, RegUserMsg -- to provide more manageable trace log output, throttled trace plugin to 1 -logmsg per second, by default (of course, this can cause log messages to -be lost). Added cvar "trace_unlimit" (0/1) to enable unlimited logging, -as it did previously. -- added centersay meta-utility functions (CENTER_SAY, CENTER_SAY_PARMS, -CENTER_SAY_VARARGS). Raised META_INTERFACE_VERSION from 5:3 to 5:4. -- fixed crash when trying to load typical game DLLs (like standalone-bots) -as metamod plugins. -- fixed segfault on failed plugin attach; was dlclosing plugin -prematurely. -- in wdmisc, added a proof-of-concept for catching certain game events by -doing string matching on all the log messages produced by the game. -Ugly, to be sure, but interesting nonetheless. -- added more entities for HL Paintball, and fixed the linux so name. -- added "-Wno-unused" to CFLAGS when compiling sdk_util.o, to alleviate -the complaints from #including all the extra SDK header files and class -definitions. -- removed GetEntityAPI routine from trace plugin, as it's unnecessary as a -metamod plugin if already providing GetEntityAPI2. -- in trace, moved gMetaFunctionTable declaration to plugin.cpp, so that -meta_api.cpp can be a standard (plugin-independent) sourcefile used in -any plugin. -- updated the docs to include recent new features, as well as some better -discussion of coding details. - -## 2001/04/06 `1.05.00` -- created utility callback functions, for use by plugins, to reduce code -duplication and help simplify some things. Currently, these consist of -only some convenient logging functions (LOG_CONSOLE, LOG_MESSAGE, -LOG_ERROR, LOG_DEVELOPER). -- added "mutil_funcs_t" to Meta_Query, to pass the meta utility function -table. Increased META_INTERFACE_VERSION from 5:2 to 5:3. -- made sure all exported DLL routines (ie routines that are accessed via -dlsym) are both declared _and defined_ as 'extern "C"', so that the C++ -compiler enforces parameter type-matching, rather than considering -routines with mis-matched arguments/types to be overloaded functions... -Note that it's not sufficient to just be declared "C"; it has to defined -this way as well, to make sure the C++ compiler matches it with the -declaration. Otherwise, again, it'll consider it an overloaded -function, and allow it happily without complaint, and cause the -subsequent dlsym to fail. -- created and deployed C_DLLEXPORT macro for declaring/defining functions -'extern "C" DLLEXPORT'. -- added plugin 'wdmisc' as a basic example, and for my miscellaneous -commands/cvars. -- renamed "mm_stub" and "mm_trace" to "stub_mm" and "trace_mm" to make -plugin name more apparent, and to be more consistent with adminmod_MM. -- had to move plugin_info_t to its own header file, to avoid circular -#include's between meta_api.h and mutil.h. -- in dllapi.cpp and engineapi.cpp, pulled RETURN_API out of META_HANDLE -macro, to make it easier to add code to middle of API routines. -- renamed util_meta.h to support_meta.h, to avoid confusion with mutil.h -- some code cleanup (better 80-column linebreaks). - -## 2001/04/03 `1.02.00` -- added support for Half-Life Paintball -- added "*_mm" and "*_MM" to the list of suffixes to look for when loading -plugins at console. -- log errors when plugin tries to use MRES_SUPERCEDE in a _Post function -(supercede is only relevant in a non-Post function; use OVERRIDE in a -Post function). -- mm_trace: added info to trace log for FindEntityInSphere -- added osdep macro for strcasecmp, for compiling under windows -- fixed a debug log message for GetEngineFunctions_Post -- fixed a couple internal references to engine globals (gpGLobals) -- renamed local SDK API routines to "mm_*" for easier debug breakpoints -- altered debug levels for a couple API routines in api_info.cpp - -## 2001/04/01 `1.01.00` -- replaced use of FStrEQ in most places with !strcasecmp, so that case -doesn't matter for things like console commands ("META LOAD" will now -work in addition to "meta load") and paths (like "-game CSTRIKE"; and -win32 filepaths are case-insignificant anyway). Interestingly, the HL -engine ignores case for console commands ("ADMIN_COMMAND" works), but -cvars are only recognized with matching case ("ADMIN_DEBUG" does not -work). Confusing. -- added "by " when printing author info, to make it a bit clearer -- added a bit more operation info to metamod.html - -## 2001/03/30 `1.00.00` -- released as v1.0, for inclusion with release of Adminmod v2.50. -- added $(VERSFILE) to Makefile and Config.mak, to better insure correct -rebuild on version number changes -- added "i486", "i586", and "i686" to "i386" in the list of prefixes to -look for when loading plugins at console. -- added "MDLL*" and "MNEW" macros in meta_api.h, to be more convenient for -plugins to call GameDLL functions. -- added missing "extern gamedll_funcs_t *gpGamedllFuncs" to meta_api.h -- added handling of gpGamedllFuncs in stub, for example purposes. -- fixed problems with running bots under metagame.ini: -- moved instantiation of Plugins object to before meta_load_gamedll, so -that if gamedll calls engine functions during GiveFnptrsToDll (like -hpb_bot does), META_ENGINE_HANDLE won't crash from a null Plugins object -pointer. -- in GET_FUNC_TABLE_FROM_GAME, memset gamedll.funcs.struct_field, and then -free/null it if the gamedll's GetFuncs call fails, to handle the -situation where the gamedll provides GetNewDLLFunctions(), but doesn't -have anything to return (like hpb_bot does, when the real gamedll -doesn't provide GetNewDLLFunctions). -- add handling of gpGamedllFuncs to mm_stub's Meta_Attach(). - -## 2001/03/27 `1.0-rc5` -- fixed problem with crashing when a plugin failed to load (improper -dereference of null 'info' structure; incomplete fix from rc2). -- added a plugin status "badfile", for plugin files that appear to be -invalid metamod plugins; this is to differentiate from "failed", which -is a valid-looking plugin file (queried) but encountered a failure -attaching/unloading/etc. -- changed "-march=i686" optimization to "-march=i586", and moved this to -only the optimized binaries, and not the debugging binaries. As it -turns out, i686 doesn't work on things like AMD K6-III cpus (I know, go -figure :). -- duplicated functionality of adminmod's "admin.ini", except with a file -named "metagame.ini". This will allow (at least partial) use with game -DLLs that metamod doesn't support yet - "partial" because, although the -game DLL will load, it may not work if it uses entities that metamod -doesn't know about yet. It will also allow use of standalone "bot" -DLLs, which sit between metamod and the gamedll (much like metamod sits -between the engine and the gamedll). -- added console command "meta game" to show information about the loaded -game DLL (to help troubleshoot issues with "metagame.ini"). - -## 2001/03/25 `1.0-rc4` -- split linkfunc.cpp into linkent.h, linkgame.cpp, linkplug.cpp -- split entity lists for mods into separate files, one for each mod; these -are used to build linkgame.cpp -- metamod/mm_trace version info should indicate debugging/optimized compile -- added entity support for Judgement DM -- added "-fno-rtti" to mm_trace gcc cflags, to address problem of -unresolved CSaveRestoreBuffer symbols using older versions of gcc -- lowered debug levels in GetEntityAPI, GetNewDLLFunctions, etc to enable -"+developer" messages (6 -> 3). -- removed "-Werror" from Makefile's default cflags; should only be used -on devl system with edited SDK - -## 2001/03/18 `1.0-rc3` -- central Makefile can now build optimzed as well as debugging targets; -default to compile is debugging; default in 'dlls' dir is optimized -- toplevel Makefile builds release tgz/zip files. TGZ file includes only -linux .so objects, and text files in unix-LF format. ZIP file includes -only win32 .dll objects, and text files in dos-CRLF format, and actual -files rather than symlinks. -- added mod recognition for "judgedm" mod; still need entities list -- added 4 entities for Firearms 2.5 - -## 2001/03/07 `1.0-rc2` -- fixed missing WINAPI in mm_trace GiveFnptrsToDll -- added HTML version of docs -- description field in metamod.ini is now optional: -- uses "name" from plugin info for desc by default -- desc field in metamod.ini will override this -- "meta list" shows just desc, rather than desc and name -- altered debug levels for a couple API routines in api_info.cpp -- added missing "load" cmd in "meta" usage help -- added to "meta load" usage help -- added macros RETURN_META(result) and RETURN_META_VALUE(result, value) to -simplify plugin coding -- added parameter "gamedll_funcs" to meta_attach(), to give each plugin a -copy of the gamedll's API function tables -- raised META_INTERFACE_VERSION to "5:2" -- now load gamedll before plugins (rather than the reverse) so that -it'll have the gamedll func tables to hand to the plugins -- changed trace plugin console commands: -trace_version -> trace version -trace -> trace set -untrace -> trace unset -showtrace -> trace show -- added "trace list " to list all available routines for tracing -- fixed broken trace cvars -- for "meta {load,unload,etc}" console cmd, added matching against plugin -logtag, as well as for "mm_" in plugin file -- handle null 'info' after failed plugin load (ie in "meta info" etc) -- fixed "usage: meta list" errors on some meta commands; was calling -cmd_meta_pluginlist() instead of Plugins->show() -- fixed: unload/attach delayed plugins at changelevel -- now doesn't export newapi if gamedll doesn't provide it -- now doesn't call plugins getnewapi if gamedll doesn't provide it -- fixed incorrect apitable references in MPlugin::show() - -## 2001/02/08 `1.0-rc1` -- fixed unistd.h under MSVC -- fixed S_ISREG under MSVC -- fixed strncasecmp under MSVC -- fixed void svr_meta() returning value -- fixed missing WINAPI in mm_stub GiveFnptrsToDll -- remade MSVC project for metamod -- created MSVC project for mm_stub -- added an example "metamod.ini" to ./docs +- Official changelog of original version is `missed`. From 8dcdd6833c71a61ad894bf2c62fa915576eb6dbf Mon Sep 17 00:00:00 2001 From: STAM Date: Mon, 28 Oct 2024 17:49:05 +0300 Subject: [PATCH 5/6] Changelog fixes. Thanks @a1batross --- CHANGELOG.md | 45 ++++++++++++++++++++------------------------- 1 file changed, 20 insertions(+), 25 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d540bf9..c795439 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,12 +1,10 @@ -# Changelog - # **Metamod-r** Changelog -**Metamod-r** is based on the original version of [Metamod](http://metamod.org/) written by _Will Day_ for Half-Life 1 with some improvements from [Jussi Kivilinna](https://github.com/jkivilin) ([Metamod-p](https://github.com/jkivilin/metamod-p)). This product contains a large number of performance optimizations and more pure code. The core was written using JIT compiler. +**Metamod-r** is based on the original version of [Metamod](http://metamod.org/) written by _Will Day_ for Half-Life 1 with some improvements from [Jussi Kivilinna](https://github.com/jkivilin) ([Metamod-p](https://github.com/jkivilin/metamod-p)). This product contains numerous performance optimizations and cleaner code. The core was rewritten with a JIT compiler. `*` Original changelog [here](https://github.com/Bots-United/metamod-p/blob/master/doc/Changelog). -_____ +--- ## [`1.3.0.149`](https://github.com/rehlds/metamod-r/releases/tag/1.3.0.149) - 2024-04-23 @@ -18,77 +16,75 @@ _____ ## [`1.3.0.138`](https://github.com/rehlds/metamod-r/releases/tag/1.3.0.138) - 2023-11-28 ### Changed -- Improve ReHLDS API initialization. +- Improved ReHLDS API initialization. ### Fixed -- HLDS сompatibility -- [Fixed](https://github.com/rehlds/metamod-r/commit/ec926a611f4d225bb433609bf827269ad8482618) Gracefully shutdown metamod and plugins when game is closing (now _restart command work properly) +- HLDS compatibility +- [Fixed](https://github.com/rehlds/metamod-r/commit/ec926a611f4d225bb433609bf827269ad8482618) gracefully shuts down Metamod and plugins when the game is closing (now the _restart command works properly). **Full Changelog**: [1.3.0.131...1.3.0.138](https://github.com/rehlds/metamod-r/compare/1.3.0.131...1.3.0.138) ## [`1.3.0.131`](https://github.com/rehlds/metamod-r/releases/tag/1.3.0.131) - 2018-08-24 ### Changed -- Updateed `C++ Intel Compiler` version `17.0` > `19.0`. +- Updated `C++ Intel Compiler` version `17.0` > `19.0`. **Full Changelog**: [1.3.0.128...1.3.0.131](https://github.com/rehlds/metamod-r/compare/1.3.0.128...1.3.0.131) ## [`1.3.0.128`](https://github.com/rehlds/metamod-r/releases/tag/1.3.0.128) - 2018-08-24 ### Fixed -- [Fixed](https://github.com/rehlds/metamod-r/commit/0cf2f709dbeae18ca84d2fafd4481ffbba06ad0c) two bugs in `jit` +- [Fixed](https://github.com/rehlds/metamod-r/commit/0cf2f709dbeae18ca84d2fafd4481ffbba06ad0c) two bugs in `jit`. **Full Changelog**: [1.3.0.126...1.3.0.128](https://github.com/rehlds/metamod-r/compare/1.3.0.126...1.3.0.128) ## [`1.3.0.126`](https://github.com/rehlds/metamod-r/releases/tag/1.3.0.126) - 2018-05-10 ### Fixed -- [Fixed](https://github.com/rehlds/metamod-r/commit/93b5bd45e279aad6a91e71504dd8deaf9896ab42) crashes in `pfnAlertMessage` +- [Fixed](https://github.com/rehlds/metamod-r/commit/93b5bd45e279aad6a91e71504dd8deaf9896ab42) crashes in `pfnAlertMessage`. **Full Changelog**: [1.3.0.125...1.3.0.126](https://github.com/rehlds/metamod-r/compare/1.3.0.125...1.3.0.126) ## [`1.3.0.125`](https://github.com/rehlds/metamod-r/releases/tag/1.3.0.125) - 2018-04-30 ### Fixed -- [Fixed](https://github.com/rehlds/metamod-r/commit/6456c5f7ec872cd98d9be964440cf96780899558#diff-f15b77cc15bf608d761260093dfe8e0d) binary names to correctly auto detect of games +- [Fixed](https://github.com/rehlds/metamod-r/commit/6456c5f7ec872cd98d9be964440cf96780899558#diff-f15b77cc15bf608d761260093dfe8e0d) binary names to correctly auto-detect games. **Full Changelog**: [1.3.0.119...1.3.0.125](https://github.com/rehlds/metamod-r/compare/1.3.0.119...1.3.0.125) ## [`1.3.0.119`](https://github.com/rehlds/metamod-r/releases/tag/1.3.0.119) - 2018-03-12 ### Added -- Added support of various gamedll binaries for mods -- Added `mm_pluginsfile` option +- Added support for various gamedll binaries for mods. +- Added `mm_pluginsfile` option. **Full Changelog**: [1.3.0.107...1.3.0.119](https://github.com/rehlds/metamod-r/compare/1.3.0.107...1.3.0.119) - ## [`1.3.0.107`](https://github.com/rehlds/metamod-r/releases/tag/1.3.0.107) - 2018-01-29 ### Fixed -- Fixed problems with api functions returning float +- Fixed problems with API functions returning float. ### Added -- [Added](https://github.com/rehlds/metamod-r/commit/132cbad0099c9903123d7ff7c3e1c13344efb3c9) more supported games +- [Added](https://github.com/rehlds/metamod-r/commit/132cbad0099c9903123d7ff7c3e1c13344efb3c9) support for more games. ### Changed -- Refactoring +- Refactored code. **Full Changelog**: [1.3.0.86...1.3.0.107](https://github.com/rehlds/metamod-r/compare/1.3.0.86...1.3.0.107) ## [`1.3.0.86`](https://github.com/rehlds/metamod-r/releases/tag/1.3.0.86) - 2017-11-15 ### Fixed -- [Fixed crash](https://github.com/rehlds/metamod-r/commit/5b7fe147231df9354a8fe29c3852bd1db8119e81) and reworked `find_memloc` +- [Fixed crash](https://github.com/rehlds/metamod-r/commit/5b7fe147231df9354a8fe29c3852bd1db8119e81) and reworked `find_memloc`. **Full Changelog**: [1.3.0.85...1.3.0.86](https://github.com/rehlds/metamod-r/compare/1.3.0.85...1.3.0.86) - ## [`1.3.0.85`](https://github.com/rehlds/metamod-r/releases/tag/1.3.0.85) - 2017-11-15 ### Fixed -- Fixed parse plugins.ini (Load the plugins for a appropriate platform only) -- Fixed crash for meta-plugins using UPX +- Fixed parse plugins.ini (loads the plugins for an appropriate platform only). +- Fixed crash for meta-plugins using UPX. **Full Changelog**: [1.3.0.84...1.3.0.85](https://github.com/rehlds/metamod-r/compare/1.3.0.84...1.3.0.85) @@ -98,11 +94,10 @@ _____ - First public release. ### Changed -- Minor refactoring - +- Minor refactoring. ## `0.0.0.0` (based on `1.20p35`) - 2016-07-04 ### Added -- Started `metamod-r` project by forkig from `metamod-p`. Based on version `1.20p35`. -- Official changelog of original version is `missed`. +- Started `metamod-r` project by forking from `metamod-p`. Based on version `1.20p35`. +- The official changelog of the original version is missing. From 22c0ec665b60f98c9c892a7abf382fcc1f59c107 Mon Sep 17 00:00:00 2001 From: STAM Date: Wed, 30 Oct 2024 13:28:32 +0300 Subject: [PATCH 6/6] Update CHANGELOG.md Co-authored-by: Sergey Shorokhov --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c795439..563db84 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,4 @@ -# **Metamod-r** Changelog +# [Metamod-r](https://github.com/rehlds/metamod-r) Changelog **Metamod-r** is based on the original version of [Metamod](http://metamod.org/) written by _Will Day_ for Half-Life 1 with some improvements from [Jussi Kivilinna](https://github.com/jkivilin) ([Metamod-p](https://github.com/jkivilin/metamod-p)). This product contains numerous performance optimizations and cleaner code. The core was rewritten with a JIT compiler.