From ab539143517c2231e91f507fce6c7fccdff81a7c Mon Sep 17 00:00:00 2001 From: Scott Ehlert Date: Tue, 13 Mar 2007 19:45:19 +0000 Subject: [PATCH] Massive reorganization attempt - part 2 Moved old/defunct/unofficial modules out of trunk --- dlls/BB/amxxmodule.cpp | 3051 ---------- dlls/BB/amxxmodule.h | 2239 -------- dlls/BB/bb.cpp | 144 - dlls/BB/bb.h | 115 - dlls/BB/bb.inc | 47 - dlls/BB/bb.ncb | Bin 273408 -> 0 bytes dlls/BB/bb.sln | 21 - dlls/BB/bb.vcproj | 180 - dlls/BB/bb_const.h | 12 - dlls/BB/bb_const.inc | 26 - dlls/BB/bb_stocks.inc | 112 - dlls/BB/moduleconfig.h | 462 -- dlls/BB/pdata.h | 40 - dlls/MemHack/MemConst.h | 48 - dlls/MemHack/MemHack.cpp | 16 - dlls/MemHack/MemHack.ncb | Bin 134144 -> 0 bytes dlls/MemHack/MemHack.sln | 19 - dlls/MemHack/MemHack.vcproj | 254 - dlls/MemHack/MemMisc.cpp | 111 - dlls/MemHack/MemMisc.h | 38 - dlls/MemHack/MemMiscNatives.cpp | 33 - dlls/MemHack/MemRead.cpp | 56 - dlls/MemHack/MemRead.h | 23 - dlls/MemHack/MemReadNatives.cpp | 78 - dlls/MemHack/MemWrite.cpp | 78 - dlls/MemHack/MemWrite.h | 23 - dlls/MemHack/MemWriteNatives.cpp | 72 - dlls/MemHack/amxxmodule.cpp | 3078 ----------- dlls/MemHack/amxxmodule.h | 2241 -------- dlls/MemHack/memhack.inc | 20 - dlls/MemHack/memhack_const.inc | 23 - dlls/MemHack/moduleconfig.h | 463 -- dlls/arrayx/Array.cpp | 34 - dlls/arrayx/Array.dep | 175 - dlls/arrayx/Array.dsp | 237 - dlls/arrayx/Array.dsw | 29 - dlls/arrayx/Array.ncb | Bin 279552 -> 0 bytes dlls/arrayx/Array.opt | Bin 48640 -> 0 bytes dlls/arrayx/Array.plg | 110 - dlls/arrayx/BinTrieNativeFunctions.h | 78 - dlls/arrayx/BinTrieNatives.cpp | 69 - dlls/arrayx/CArray.cpp | 87 - dlls/arrayx/CArray.h | 74 - dlls/arrayx/CBaseList.h | 36 - dlls/arrayx/CBaseMap.h | 29 - dlls/arrayx/CBinTrie.cpp | 76 - dlls/arrayx/CBinTrie.h | 54 - dlls/arrayx/CHashtable.h | 82 - dlls/arrayx/CKeytable.cpp | 66 - dlls/arrayx/CKeytable.h | 66 - dlls/arrayx/Capsule.cpp | 261 - dlls/arrayx/Capsule.h | 65 - dlls/arrayx/ComboArray.h | 80 - dlls/arrayx/ComboTable.h | 68 - dlls/arrayx/GenericNatives.h | 862 --- dlls/arrayx/Judy.a | Bin 1164254 -> 0 bytes dlls/arrayx/Judy.h | 742 --- dlls/arrayx/Judy.lib | Bin 256910 -> 0 bytes dlls/arrayx/JudyEx.h | 50 - dlls/arrayx/JudyExtra.cpp | 313 -- dlls/arrayx/JudyExtra.h | 24 - dlls/arrayx/JudyIncludes.h | 43 - dlls/arrayx/JudyVar.h | 70 - dlls/arrayx/JudyVec.h | 20 - dlls/arrayx/ListNativeFunctions.h | 114 - dlls/arrayx/ListNatives.cpp | 43 - dlls/arrayx/MapNativeFunctions.h | 94 - dlls/arrayx/MapNatives.cpp | 54 - dlls/arrayx/NativeIncludes.h | 130 - dlls/arrayx/SDK/CBaseList.h | 35 - dlls/arrayx/SDK/CBaseMap.h | 28 - dlls/arrayx/SDK/CBinTrie.h | 52 - dlls/arrayx/SDK/Capsule.cpp | 261 - dlls/arrayx/SDK/Capsule.h | 64 - dlls/arrayx/SDK/GenericNatives.h | 845 --- dlls/arrayx/SDK/NativeFunctions.h | 58 - dlls/arrayx/amxxmodule.cpp | 3090 ----------- dlls/arrayx/amxxmodule.h | 2286 -------- dlls/arrayx/libstdc++.a | Bin 1140874 -> 0 bytes dlls/arrayx/makefile | 58 - dlls/arrayx/moduleconfig.h | 463 -- dlls/arrayx/osdefs.h | 60 - dlls/metamapx/JBRandom.h | 47 - dlls/metamapx/amxxmodule.cpp | 2990 ---------- dlls/metamapx/amxxmodule.h | 2152 -------- dlls/metamapx/metamap.cpp | 460 -- dlls/metamapx/metamap.h | 19 - dlls/metamapx/metamap.inc | 9 - dlls/metamapx/metamap.vcproj | 199 - dlls/metamapx/moduleconfig.h | 462 -- editor/editor2/AMX.ico | Bin 766 -> 0 bytes editor/editor2/AMXX_Edit_v2.cfg | 38 - editor/editor2/AMXX_Edit_v2.dof | 136 - editor/editor2/AMXX_Edit_v2.dpr | 76 - editor/editor2/AMXX_Edit_v2.exe | Bin 626176 -> 0 bytes editor/editor2/AMXX_Edit_v2.res | Bin 1584 -> 0 bytes editor/editor2/CorelButton.dcr | Bin 480 -> 0 bytes editor/editor2/CorelButton.pas | 300 - editor/editor2/Grey.ico | Bin 2238 -> 0 bytes editor/editor2/Logo.jpg | Bin 38159 -> 0 bytes editor/editor2/Red.ico | Bin 2238 -> 0 bytes editor/editor2/SciLexer.dll | Bin 487424 -> 0 bytes editor/editor2/UnitAddMenu.pas | 436 -- editor/editor2/UnitFunc.pas | 656 --- editor/editor2/UnitHowToMakePlayerMenu.dfm | Bin 1123 -> 0 bytes editor/editor2/UnitHowToMakePlayerMenu.pas | 24 - editor/editor2/UnitReadThread.pas | 60 - editor/editor2/UnitTextAnalyze.pas | 205 - editor/editor2/UnitfrmAbout.dfm | Bin 226172 -> 0 bytes editor/editor2/UnitfrmAbout.pas | 32 - editor/editor2/UnitfrmDebug.dfm | Bin 1504 -> 0 bytes editor/editor2/UnitfrmDebug.pas | 91 - editor/editor2/UnitfrmExceptionHandler.dfm | 99 - editor/editor2/UnitfrmExceptionHandler.pas | 742 --- editor/editor2/UnitfrmGoToLine.dfm | Bin 843 -> 0 bytes editor/editor2/UnitfrmGoToLine.pas | 48 - editor/editor2/UnitfrmLoopGenerator.dfm | Bin 1782 -> 0 bytes editor/editor2/UnitfrmLoopGenerator.pas | 66 - editor/editor2/UnitfrmMain.dfm | 5827 -------------------- editor/editor2/UnitfrmMain.pas | 1251 ----- editor/editor2/UnitfrmMenuMaker.dfm | Bin 23424 -> 0 bytes editor/editor2/UnitfrmMenuMaker.pas | 461 -- editor/editor2/UnitfrmOptions.dfm | Bin 8212 -> 0 bytes editor/editor2/UnitfrmOptions.pas | 156 - editor/editor2/UnitfrmSaveDialog.dfm | Bin 881 -> 0 bytes editor/editor2/UnitfrmSaveDialog.pas | 41 - editor/editor2/UnitfrmSelectMenu.dfm | Bin 759 -> 0 bytes editor/editor2/UnitfrmSelectMenu.pas | 80 - editor/editor2/UnitfrmSockets.dfm | 191 - editor/editor2/UnitfrmSockets.pas | 259 - editor/editor2/White.ico | Bin 2238 -> 0 bytes editor/editor2/Yellow.ico | Bin 2238 -> 0 bytes editor/editor2/del.bat | 11 - editor/editor2/gpl.txt | 281 - 134 files changed, 42663 deletions(-) delete mode 100644 dlls/BB/amxxmodule.cpp delete mode 100644 dlls/BB/amxxmodule.h delete mode 100644 dlls/BB/bb.cpp delete mode 100644 dlls/BB/bb.h delete mode 100644 dlls/BB/bb.inc delete mode 100644 dlls/BB/bb.ncb delete mode 100644 dlls/BB/bb.sln delete mode 100644 dlls/BB/bb.vcproj delete mode 100644 dlls/BB/bb_const.h delete mode 100644 dlls/BB/bb_const.inc delete mode 100644 dlls/BB/bb_stocks.inc delete mode 100644 dlls/BB/moduleconfig.h delete mode 100644 dlls/BB/pdata.h delete mode 100644 dlls/MemHack/MemConst.h delete mode 100644 dlls/MemHack/MemHack.cpp delete mode 100644 dlls/MemHack/MemHack.ncb delete mode 100644 dlls/MemHack/MemHack.sln delete mode 100644 dlls/MemHack/MemHack.vcproj delete mode 100644 dlls/MemHack/MemMisc.cpp delete mode 100644 dlls/MemHack/MemMisc.h delete mode 100644 dlls/MemHack/MemMiscNatives.cpp delete mode 100644 dlls/MemHack/MemRead.cpp delete mode 100644 dlls/MemHack/MemRead.h delete mode 100644 dlls/MemHack/MemReadNatives.cpp delete mode 100644 dlls/MemHack/MemWrite.cpp delete mode 100644 dlls/MemHack/MemWrite.h delete mode 100644 dlls/MemHack/MemWriteNatives.cpp delete mode 100644 dlls/MemHack/amxxmodule.cpp delete mode 100644 dlls/MemHack/amxxmodule.h delete mode 100644 dlls/MemHack/memhack.inc delete mode 100644 dlls/MemHack/memhack_const.inc delete mode 100644 dlls/MemHack/moduleconfig.h delete mode 100644 dlls/arrayx/Array.cpp delete mode 100644 dlls/arrayx/Array.dep delete mode 100644 dlls/arrayx/Array.dsp delete mode 100644 dlls/arrayx/Array.dsw delete mode 100644 dlls/arrayx/Array.ncb delete mode 100644 dlls/arrayx/Array.opt delete mode 100644 dlls/arrayx/Array.plg delete mode 100644 dlls/arrayx/BinTrieNativeFunctions.h delete mode 100644 dlls/arrayx/BinTrieNatives.cpp delete mode 100644 dlls/arrayx/CArray.cpp delete mode 100644 dlls/arrayx/CArray.h delete mode 100644 dlls/arrayx/CBaseList.h delete mode 100644 dlls/arrayx/CBaseMap.h delete mode 100644 dlls/arrayx/CBinTrie.cpp delete mode 100644 dlls/arrayx/CBinTrie.h delete mode 100644 dlls/arrayx/CHashtable.h delete mode 100644 dlls/arrayx/CKeytable.cpp delete mode 100644 dlls/arrayx/CKeytable.h delete mode 100644 dlls/arrayx/Capsule.cpp delete mode 100644 dlls/arrayx/Capsule.h delete mode 100644 dlls/arrayx/ComboArray.h delete mode 100644 dlls/arrayx/ComboTable.h delete mode 100644 dlls/arrayx/GenericNatives.h delete mode 100644 dlls/arrayx/Judy.a delete mode 100644 dlls/arrayx/Judy.h delete mode 100644 dlls/arrayx/Judy.lib delete mode 100644 dlls/arrayx/JudyEx.h delete mode 100644 dlls/arrayx/JudyExtra.cpp delete mode 100644 dlls/arrayx/JudyExtra.h delete mode 100644 dlls/arrayx/JudyIncludes.h delete mode 100644 dlls/arrayx/JudyVar.h delete mode 100644 dlls/arrayx/JudyVec.h delete mode 100644 dlls/arrayx/ListNativeFunctions.h delete mode 100644 dlls/arrayx/ListNatives.cpp delete mode 100644 dlls/arrayx/MapNativeFunctions.h delete mode 100644 dlls/arrayx/MapNatives.cpp delete mode 100644 dlls/arrayx/NativeIncludes.h delete mode 100644 dlls/arrayx/SDK/CBaseList.h delete mode 100644 dlls/arrayx/SDK/CBaseMap.h delete mode 100644 dlls/arrayx/SDK/CBinTrie.h delete mode 100644 dlls/arrayx/SDK/Capsule.cpp delete mode 100644 dlls/arrayx/SDK/Capsule.h delete mode 100644 dlls/arrayx/SDK/GenericNatives.h delete mode 100644 dlls/arrayx/SDK/NativeFunctions.h delete mode 100644 dlls/arrayx/amxxmodule.cpp delete mode 100644 dlls/arrayx/amxxmodule.h delete mode 100644 dlls/arrayx/libstdc++.a delete mode 100644 dlls/arrayx/makefile delete mode 100644 dlls/arrayx/moduleconfig.h delete mode 100644 dlls/arrayx/osdefs.h delete mode 100755 dlls/metamapx/JBRandom.h delete mode 100755 dlls/metamapx/amxxmodule.cpp delete mode 100755 dlls/metamapx/amxxmodule.h delete mode 100755 dlls/metamapx/metamap.cpp delete mode 100755 dlls/metamapx/metamap.h delete mode 100755 dlls/metamapx/metamap.inc delete mode 100755 dlls/metamapx/metamap.vcproj delete mode 100755 dlls/metamapx/moduleconfig.h delete mode 100755 editor/editor2/AMX.ico delete mode 100755 editor/editor2/AMXX_Edit_v2.cfg delete mode 100755 editor/editor2/AMXX_Edit_v2.dof delete mode 100755 editor/editor2/AMXX_Edit_v2.dpr delete mode 100755 editor/editor2/AMXX_Edit_v2.exe delete mode 100755 editor/editor2/AMXX_Edit_v2.res delete mode 100755 editor/editor2/CorelButton.dcr delete mode 100755 editor/editor2/CorelButton.pas delete mode 100755 editor/editor2/Grey.ico delete mode 100755 editor/editor2/Logo.jpg delete mode 100755 editor/editor2/Red.ico delete mode 100755 editor/editor2/SciLexer.dll delete mode 100755 editor/editor2/UnitAddMenu.pas delete mode 100755 editor/editor2/UnitFunc.pas delete mode 100755 editor/editor2/UnitHowToMakePlayerMenu.dfm delete mode 100755 editor/editor2/UnitHowToMakePlayerMenu.pas delete mode 100755 editor/editor2/UnitReadThread.pas delete mode 100755 editor/editor2/UnitTextAnalyze.pas delete mode 100755 editor/editor2/UnitfrmAbout.dfm delete mode 100755 editor/editor2/UnitfrmAbout.pas delete mode 100755 editor/editor2/UnitfrmDebug.dfm delete mode 100755 editor/editor2/UnitfrmDebug.pas delete mode 100755 editor/editor2/UnitfrmExceptionHandler.dfm delete mode 100755 editor/editor2/UnitfrmExceptionHandler.pas delete mode 100755 editor/editor2/UnitfrmGoToLine.dfm delete mode 100755 editor/editor2/UnitfrmGoToLine.pas delete mode 100755 editor/editor2/UnitfrmLoopGenerator.dfm delete mode 100755 editor/editor2/UnitfrmLoopGenerator.pas delete mode 100755 editor/editor2/UnitfrmMain.dfm delete mode 100755 editor/editor2/UnitfrmMain.pas delete mode 100755 editor/editor2/UnitfrmMenuMaker.dfm delete mode 100755 editor/editor2/UnitfrmMenuMaker.pas delete mode 100755 editor/editor2/UnitfrmOptions.dfm delete mode 100755 editor/editor2/UnitfrmOptions.pas delete mode 100755 editor/editor2/UnitfrmSaveDialog.dfm delete mode 100755 editor/editor2/UnitfrmSaveDialog.pas delete mode 100755 editor/editor2/UnitfrmSelectMenu.dfm delete mode 100755 editor/editor2/UnitfrmSelectMenu.pas delete mode 100755 editor/editor2/UnitfrmSockets.dfm delete mode 100755 editor/editor2/UnitfrmSockets.pas delete mode 100755 editor/editor2/White.ico delete mode 100755 editor/editor2/Yellow.ico delete mode 100755 editor/editor2/del.bat delete mode 100755 editor/editor2/gpl.txt diff --git a/dlls/BB/amxxmodule.cpp b/dlls/BB/amxxmodule.cpp deleted file mode 100644 index c38a396b..00000000 --- a/dlls/BB/amxxmodule.cpp +++ /dev/null @@ -1,3051 +0,0 @@ -/* AMX Mod X -* -* by the AMX Mod X Development Team -* originally developed by OLO -* -* Parts Copyright (C) 2001-2003 Will Day -* -* This program is free software; you can redistribute it and/or modify it -* under the terms of the GNU General Public License as published by the -* Free Software Foundation; either version 2 of the License, or (at -* your option) any later version. -* -* This program is distributed in the hope that it will be useful, but -* WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -* General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software Foundation, -* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -* -* In addition, as a special exception, the author gives permission to -* link the code of this program with the Half-Life Game Engine ("HL -* Engine") and Modified Game Libraries ("MODs") developed by Valve, -* L.L.C ("Valve"). You must obey the GNU General Public License in all -* respects for all of the code used other than the HL Engine and MODs -* from Valve. If you modify this file, you may extend this exception -* to your version of the file, but you are not obligated to do so. If -* you do not wish to do so, delete this exception statement from your -* version. -* -* Description: AMX Mod X Module Interface Functions -*/ - -#include -#include -#include -#include -#include -#include "amxxmodule.h" - -/************* METAMOD SUPPORT *************/ -#ifdef USE_METAMOD - -enginefuncs_t g_engfuncs; -globalvars_t *gpGlobals; - - - -DLL_FUNCTIONS *g_pFunctionTable; -DLL_FUNCTIONS *g_pFunctionTable_Post; -enginefuncs_t *g_pengfuncsTable; -enginefuncs_t *g_pengfuncsTable_Post; -NEW_DLL_FUNCTIONS *g_pNewFunctionsTable; -NEW_DLL_FUNCTIONS *g_pNewFunctionsTable_Post; - - -// GetEntityAPI2 functions -static DLL_FUNCTIONS g_EntityAPI_Table = -{ -#ifdef FN_GameDLLInit - FN_GameDLLInit, -#else - NULL, -#endif -#ifdef FN_DispatchSpawn - FN_DispatchSpawn, -#else - NULL, -#endif -#ifdef FN_DispatchThink - FN_DispatchThink, -#else - NULL, -#endif -#ifdef FN_DispatchUse - FN_DispatchUse, -#else - NULL, -#endif -#ifdef FN_DispatchTouch - FN_DispatchTouch, -#else - NULL, -#endif -#ifdef FN_DispatchBlocked - FN_DispatchBlocked, -#else - NULL, -#endif -#ifdef FN_DispatchKeyValue - FN_DispatchKeyValue, -#else - NULL, -#endif -#ifdef FN_DispatchSave - FN_DispatchSave, -#else - NULL, -#endif -#ifdef FN_DispatchRestore - FN_DispatchRestore, -#else - NULL, -#endif -#ifdef FN_DispatchObjectCollsionBox - FN_DispatchObjectCollsionBox, -#else - NULL, -#endif -#ifdef FN_SaveWriteFields - FN_SaveWriteFields, -#else - NULL, -#endif -#ifdef FN_SaveReadFields - FN_SaveReadFields, -#else - NULL, -#endif -#ifdef FN_SaveGlobalState - FN_SaveGlobalState, -#else - NULL, -#endif -#ifdef FN_RestoreGlobalState - FN_RestoreGlobalState, -#else - NULL, -#endif -#ifdef FN_ResetGlobalState - FN_ResetGlobalState, -#else - NULL, -#endif -#ifdef FN_ClientConnect - FN_ClientConnect, -#else - NULL, -#endif -#ifdef FN_ClientDisconnect - FN_ClientDisconnect, -#else - NULL, -#endif -#ifdef FN_ClientKill - FN_ClientKill, -#else - NULL, -#endif -#ifdef FN_ClientPutInServer - FN_ClientPutInServer, -#else - NULL, -#endif -#ifdef FN_ClientCommand - FN_ClientCommand, -#else - NULL, -#endif -#ifdef FN_ClientUserInfoChanged - FN_ClientUserInfoChanged, -#else - NULL, -#endif -#ifdef FN_ServerActivate - FN_ServerActivate, -#else - NULL, -#endif -#ifdef FN_ServerDeactivate - FN_ServerDeactivate, -#else - NULL, -#endif -#ifdef FN_PlayerPreThink - FN_PlayerPreThink, -#else - NULL, -#endif -#ifdef FN_PlayerPostThink - FN_PlayerPostThink, -#else - NULL, -#endif -#ifdef FN_StartFrame - FN_StartFrame, -#else - NULL, -#endif -#ifdef FN_ParmsNewLevel - FN_ParmsNewLevel, -#else - NULL, -#endif -#ifdef FN_ParmsChangeLevel - FN_ParmsChangeLevel, -#else - NULL, -#endif -#ifdef FN_GetGameDescription - FN_GetGameDescription, -#else - NULL, -#endif -#ifdef FN_PlayerCustomization - FN_PlayerCustomization, -#else - NULL, -#endif -#ifdef FN_SpectatorConnect - FN_SpectatorConnect, -#else - NULL, -#endif -#ifdef FN_SpectatorDisconnect - FN_SpectatorDisconnect, -#else - NULL, -#endif -#ifdef FN_SpectatorThink - FN_SpectatorThink, -#else - NULL, -#endif -#ifdef FN_Sys_Error - FN_Sys_Error, -#else - NULL, -#endif -#ifdef FN_PM_Move - FN_PM_Move, -#else - NULL, -#endif -#ifdef FN_PM_Init - FN_PM_Init, -#else - NULL, -#endif -#ifdef FN_PM_FindTextureType - FN_PM_FindTextureType, -#else - NULL, -#endif -#ifdef FN_SetupVisibility - FN_SetupVisibility, -#else - NULL, -#endif -#ifdef FN_UpdateClientData - FN_UpdateClientData, -#else - NULL, -#endif -#ifdef FN_AddToFullPack - FN_AddToFullPack, -#else - NULL, -#endif -#ifdef FN_CreateBaseline - FN_CreateBaseline, -#else - NULL, -#endif -#ifdef FN_RegisterEncoders - FN_RegisterEncoders, -#else - NULL, -#endif -#ifdef FN_GetWeaponData - FN_GetWeaponData, -#else - NULL, -#endif -#ifdef FN_CmdStart - FN_CmdStart, -#else - NULL, -#endif -#ifdef FN_CmdEnd - FN_CmdEnd, -#else - NULL, -#endif -#ifdef FN_ConnectionlessPacket - FN_ConnectionlessPacket, -#else - NULL, -#endif -#ifdef FN_GetHullBounds - FN_GetHullBounds, -#else - NULL, -#endif -#ifdef FN_CreateInstancedBaselines - FN_CreateInstancedBaselines, -#else - NULL, -#endif -#ifdef FN_InconsistentFile - FN_InconsistentFile, -#else - NULL, -#endif -#ifdef FN_AllowLagCompensation - FN_AllowLagCompensation -#else - NULL -#endif -}; // g_EntityAPI2_Table - -// GetEntityAPI2_Post functions -static DLL_FUNCTIONS g_EntityAPI_Post_Table = -{ -#ifdef FN_GameDLLInit_Post - FN_GameDLLInit_Post, -#else - NULL, -#endif -#ifdef FN_DispatchSpawn_Post - FN_DispatchSpawn_Post, -#else - NULL, -#endif -#ifdef FN_DispatchThink_Post - FN_DispatchThink_Post, -#else - NULL, -#endif -#ifdef FN_DispatchUse_Post - FN_DispatchUse_Post, -#else - NULL, -#endif -#ifdef FN_DispatchTouch_Post - FN_DispatchTouch_Post, -#else - NULL, -#endif -#ifdef FN_DispatchBlocked_Post - FN_DispatchBlocked_Post, -#else - NULL, -#endif -#ifdef FN_DispatchKeyValue_Post - FN_DispatchKeyValue_Post, -#else - NULL, -#endif -#ifdef FN_DispatchSave_Post - FN_DispatchSave_Post, -#else - NULL, -#endif -#ifdef FN_DispatchRestore_Post - FN_DispatchRestore_Post, -#else - NULL, -#endif -#ifdef FN_DispatchObjectCollsionBox_Post - FN_DispatchObjectCollsionBox_Post, -#else - NULL, -#endif -#ifdef FN_SaveWriteFields_Post - FN_SaveWriteFields_Post, -#else - NULL, -#endif -#ifdef FN_SaveReadFields_Post - FN_SaveReadFields_Post, -#else - NULL, -#endif -#ifdef FN_SaveGlobalState_Post - FN_SaveGlobalState_Post, -#else - NULL, -#endif -#ifdef FN_RestoreGlobalState_Post - FN_RestoreGlobalState_Post, -#else - NULL, -#endif -#ifdef FN_ResetGlobalState_Post - FN_ResetGlobalState_Post, -#else - NULL, -#endif -#ifdef FN_ClientConnect_Post - FN_ClientConnect_Post, -#else - NULL, -#endif -#ifdef FN_ClientDisconnect_Post - FN_ClientDisconnect_Post, -#else - NULL, -#endif -#ifdef FN_ClientKill_Post - FN_ClientKill_Post, -#else - NULL, -#endif -#ifdef FN_ClientPutInServer_Post - FN_ClientPutInServer_Post, -#else - NULL, -#endif -#ifdef FN_ClientCommand_Post - FN_ClientCommand_Post, -#else - NULL, -#endif -#ifdef FN_ClientUserInfoChanged_Post - FN_ClientUserInfoChanged_Post, -#else - NULL, -#endif -#ifdef FN_ServerActivate_Post - FN_ServerActivate_Post, -#else - NULL, -#endif -#ifdef FN_ServerDeactivate_Post - FN_ServerDeactivate_Post, -#else - NULL, -#endif -#ifdef FN_PlayerPreThink_Post - FN_PlayerPreThink_Post, -#else - NULL, -#endif -#ifdef FN_PlayerPostThink_Post - FN_PlayerPostThink_Post, -#else - NULL, -#endif -#ifdef FN_StartFrame_Post - FN_StartFrame_Post, -#else - NULL, -#endif -#ifdef FN_ParmsNewLevel_Post - FN_ParmsNewLevel_Post, -#else - NULL, -#endif -#ifdef FN_ParmsChangeLevel_Post - FN_ParmsChangeLevel_Post, -#else - NULL, -#endif -#ifdef FN_GetGameDescription_Post - FN_GetGameDescription_Post, -#else - NULL, -#endif -#ifdef FN_PlayerCustomization_Post - FN_PlayerCustomization_Post, -#else - NULL, -#endif -#ifdef FN_SpectatorConnect_Post - FN_SpectatorConnect_Post, -#else - NULL, -#endif -#ifdef FN_SpectatorDisconnect_Post - FN_SpectatorDisconnect_Post, -#else - NULL, -#endif -#ifdef FN_SpectatorThink_Post - FN_SpectatorThink_Post, -#else - NULL, -#endif -#ifdef FN_Sys_Error_Post - FN_Sys_Error_Post, -#else - NULL, -#endif -#ifdef FN_PM_Move_Post - FN_PM_Move_Post, -#else - NULL, -#endif -#ifdef FN_PM_Init_Post - FN_PM_Init_Post, -#else - NULL, -#endif -#ifdef FN_PM_FindTextureType_Post - FN_PM_FindTextureType_Post, -#else - NULL, -#endif -#ifdef FN_SetupVisibility_Post - FN_SetupVisibility_Post, -#else - NULL, -#endif -#ifdef FN_UpdateClientData_Post - FN_UpdateClientData_Post, -#else - NULL, -#endif -#ifdef FN_AddToFullPack_Post - FN_AddToFullPack_Post, -#else - NULL, -#endif -#ifdef FN_CreateBaseline_Post - FN_CreateBaseline_Post, -#else - NULL, -#endif -#ifdef FN_RegisterEncoders_Post - FN_RegisterEncoders_Post, -#else - NULL, -#endif -#ifdef FN_GetWeaponData_Post - FN_GetWeaponData_Post, -#else - NULL, -#endif -#ifdef FN_CmdStart_Post - FN_CmdStart_Post, -#else - NULL, -#endif -#ifdef FN_CmdEnd_Post - FN_CmdEnd_Post, -#else - NULL, -#endif -#ifdef FN_ConnectionlessPacket_Post - FN_ConnectionlessPacket_Post, -#else - NULL, -#endif -#ifdef FN_GetHullBounds_Post - FN_GetHullBounds_Post, -#else - NULL, -#endif -#ifdef FN_CreateInstancedBaselines_Post - FN_CreateInstancedBaselines_Post, -#else - NULL, -#endif -#ifdef FN_InconsistentFile_Post - FN_InconsistentFile_Post, -#else - NULL, -#endif -#ifdef FN_AllowLagCompensation - FN_AllowLagCompensation, -#else - NULL, -#endif -}; // g_EntityAPI2_Table - -static enginefuncs_t g_EngineFuncs_Table = -{ -#ifdef FN_PrecacheModel - FN_PrecacheModel, -#else - NULL, -#endif -#ifdef FN_PrecacheSound - FN_PrecacheSound, -#else - NULL, -#endif -#ifdef FN_SetModel - FN_SetModel, -#else - NULL, -#endif -#ifdef FN_ModelIndex - FN_ModelIndex, -#else - NULL, -#endif -#ifdef FN_ModelFrames - FN_ModelFrames, -#else - NULL, -#endif -#ifdef FN_SetSize - FN_SetSize, -#else - NULL, -#endif -#ifdef FN_ChangeLevel - FN_ChangeLevel, -#else - NULL, -#endif -#ifdef FN_GetSpawnParms - FN_GetSpawnParms, -#else - NULL, -#endif -#ifdef FN_SaveSpawnParms - FN_SaveSpawnParms, -#else - NULL, -#endif -#ifdef FN_VecToYaw - FN_VecToYaw, -#else - NULL, -#endif -#ifdef FN_VecToAngles - FN_VecToAngles, -#else - NULL, -#endif -#ifdef FN_MoveToOrigin - FN_MoveToOrigin, -#else - NULL, -#endif -#ifdef FN_ChangeYaw - FN_ChangeYaw, -#else - NULL, -#endif -#ifdef FN_ChangePitch - FN_ChangePitch, -#else - NULL, -#endif -#ifdef FN_FindEntityByString - FN_FindEntityByString, -#else - NULL, -#endif -#ifdef FN_GetEntityIllum - FN_GetEntityIllum, -#else - NULL, -#endif -#ifdef FN_FindEntityInSphere - FN_FindEntityInSphere, -#else - NULL, -#endif -#ifdef FN_FindClientInPVS - FN_FindClientInPVS, -#else - NULL, -#endif -#ifdef FN_EntitiesInPVS - FN_EntitiesInPVS, -#else - NULL, -#endif -#ifdef FN_MakeVectors - FN_MakeVectors, -#else - NULL, -#endif -#ifdef FN_AngleVectors - FN_AngleVectors, -#else - NULL, -#endif -#ifdef FN_CreateEntity - FN_CreateEntity, -#else - NULL, -#endif -#ifdef FN_RemoveEntity - FN_RemoveEntity, -#else - NULL, -#endif -#ifdef FN_CreateNamedEntity - FN_CreateNamedEntity, -#else - NULL, -#endif -#ifdef FN_MakeStatic - FN_MakeStatic, -#else - NULL, -#endif -#ifdef FN_EntIsOnFloor - FN_EntIsOnFloor, -#else - NULL, -#endif -#ifdef FN_DropToFloor - FN_DropToFloor, -#else - NULL, -#endif -#ifdef FN_WalkMove - FN_WalkMove, -#else - NULL, -#endif -#ifdef FN_SetOrigin - FN_SetOrigin, -#else - NULL, -#endif -#ifdef FN_EmitSound - FN_EmitSound, -#else - NULL, -#endif -#ifdef FN_EmitAmbientSound - FN_EmitAmbientSound, -#else - NULL, -#endif -#ifdef FN_TraceLine - FN_TraceLine, -#else - NULL, -#endif -#ifdef FN_TraceToss - FN_TraceToss, -#else - NULL, -#endif -#ifdef FN_TraceMonsterHull - FN_TraceMonsterHull, -#else - NULL, -#endif -#ifdef FN_TraceHull - FN_TraceHull, -#else - NULL, -#endif -#ifdef FN_TraceModel - FN_TraceModel, -#else - NULL, -#endif -#ifdef FN_TraceTexture - FN_TraceTexture, -#else - NULL, -#endif -#ifdef FN_TraceSphere - FN_TraceSphere, -#else - NULL, -#endif -#ifdef FN_GetAimVector - FN_GetAimVector, -#else - NULL, -#endif -#ifdef FN_ServerCommand - FN_ServerCommand, -#else - NULL, -#endif -#ifdef FN_ServerExecute - FN_ServerExecute, -#else - NULL, -#endif -#ifdef FN_engClientCommand - FN_engClientCommand, -#else - NULL, -#endif -#ifdef FN_ParticleEffect - FN_ParticleEffect, -#else - NULL, -#endif -#ifdef FN_LightStyle - FN_LightStyle, -#else - NULL, -#endif -#ifdef FN_DecalIndex - FN_DecalIndex, -#else - NULL, -#endif -#ifdef FN_PointContents - FN_PointContents, -#else - NULL, -#endif -#ifdef FN_MessageBegin - FN_MessageBegin, -#else - NULL, -#endif -#ifdef FN_MessageEnd - FN_MessageEnd, -#else - NULL, -#endif -#ifdef FN_WriteByte - FN_WriteByte, -#else - NULL, -#endif -#ifdef FN_WriteChar - FN_WriteChar, -#else - NULL, -#endif -#ifdef FN_WriteShort - FN_WriteShort, -#else - NULL, -#endif -#ifdef FN_WriteLong - FN_WriteLong, -#else - NULL, -#endif -#ifdef FN_WriteAngle - FN_WriteAngle, -#else - NULL, -#endif -#ifdef FN_WriteCoord - FN_WriteCoord, -#else - NULL, -#endif -#ifdef FN_WriteString - FN_WriteString, -#else - NULL, -#endif -#ifdef FN_WriteEntity - FN_WriteEntity, -#else - NULL, -#endif -#ifdef FN_CVarRegister - FN_CVarRegister, -#else - NULL, -#endif -#ifdef FN_CVarGetFloat - FN_CVarGetFloat, -#else - NULL, -#endif -#ifdef FN_CVarGetString - FN_CVarGetString, -#else - NULL, -#endif -#ifdef FN_CVarSetFloat - FN_CVarSetFloat, -#else - NULL, -#endif -#ifdef FN_CVarSetString - FN_CVarSetString, -#else - NULL, -#endif -#ifdef FN_AlertMessage - FN_AlertMessage, -#else - NULL, -#endif -#ifdef FN_EngineFprintf - FN_EngineFprintf, -#else - NULL, -#endif -#ifdef FN_PvAllocEntPrivateData - FN_PvAllocEntPrivateData, -#else - NULL, -#endif -#ifdef FN_PvEntPrivateData - FN_PvEntPrivateData, -#else - NULL, -#endif -#ifdef FN_FreeEntPrivateData - FN_FreeEntPrivateData, -#else - NULL, -#endif -#ifdef FN_SzFromIndex - FN_SzFromIndex, -#else - NULL, -#endif -#ifdef FN_AllocString - FN_AllocString, -#else - NULL, -#endif -#ifdef FN_GetVarsOfEnt - FN_GetVarsOfEnt, -#else - NULL, -#endif -#ifdef FN_PEntityOfEntOffset - FN_PEntityOfEntOffset, -#else - NULL, -#endif -#ifdef FN_EntOffsetOfPEntity - FN_EntOffsetOfPEntity, -#else - NULL, -#endif -#ifdef FN_IndexOfEdict - FN_IndexOfEdict, -#else - NULL, -#endif -#ifdef FN_PEntityOfEntIndex - FN_PEntityOfEntIndex, -#else - NULL, -#endif -#ifdef FN_FindEntityByVars - FN_FindEntityByVars, -#else - NULL, -#endif -#ifdef FN_GetModelPtr - FN_GetModelPtr, -#else - NULL, -#endif -#ifdef FN_RegUserMsg - FN_RegUserMsg, -#else - NULL, -#endif -#ifdef FN_AnimationAutomove - FN_AnimationAutomove, -#else - NULL, -#endif -#ifdef FN_GetBonePosition - FN_GetBonePosition, -#else - NULL, -#endif -#ifdef FN_FunctionFromName - FN_FunctionFromName, -#else - NULL, -#endif -#ifdef FN_NameForFunction - FN_NameForFunction, -#else - NULL, -#endif -#ifdef FN_ClientPrintf - FN_ClientPrintf, -#else - NULL, -#endif -#ifdef FN_ServerPrint - FN_ServerPrint, -#else - NULL, -#endif -#ifdef FN_Cmd_Args - FN_Cmd_Args, -#else - NULL, -#endif -#ifdef FN_Cmd_Argv - FN_Cmd_Argv, -#else - NULL, -#endif -#ifdef FN_Cmd_Argc - FN_Cmd_Argc, -#else - NULL, -#endif -#ifdef FN_GetAttachment - FN_GetAttachment, -#else - NULL, -#endif -#ifdef FN_CRC32_Init - FN_CRC32_Init, -#else - NULL, -#endif -#ifdef FN_CRC32_ProcessBuffer - FN_CRC32_ProcessBuffer, -#else - NULL, -#endif -#ifdef FN_CRC32_ProcessByte - FN_CRC32_ProcessByte, -#else - NULL, -#endif -#ifdef FN_CRC32_Final - FN_CRC32_Final, -#else - NULL, -#endif -#ifdef FN_RandomLong - FN_RandomLong, -#else - NULL, -#endif -#ifdef FN_RandomFloat - FN_RandomFloat, -#else - NULL, -#endif -#ifdef FN_SetView - FN_SetView, -#else - NULL, -#endif -#ifdef FN_Time - FN_Time, -#else - NULL, -#endif -#ifdef FN_CrosshairAngle - FN_CrosshairAngle, -#else - NULL, -#endif -#ifdef FN_LoadFileForMe - FN_LoadFileForMe, -#else - NULL, -#endif -#ifdef FN_FreeFile - FN_FreeFile, -#else - NULL, -#endif -#ifdef FN_EndSection - FN_EndSection, -#else - NULL, -#endif -#ifdef FN_CompareFileTime - FN_CompareFileTime, -#else - NULL, -#endif -#ifdef FN_GetGameDir - FN_GetGameDir, -#else - NULL, -#endif -#ifdef FN_Cvar_RegisterVariable - FN_Cvar_RegisterVariable, -#else - NULL, -#endif -#ifdef FN_FadeClientVolume - FN_FadeClientVolume, -#else - NULL, -#endif -#ifdef FN_SetClientMaxspeed - FN_SetClientMaxspeed, -#else - NULL, -#endif -#ifdef FN_CreateFakeClient - FN_CreateFakeClient, -#else - NULL, -#endif -#ifdef FN_RunPlayerMove - FN_RunPlayerMove, -#else - NULL, -#endif -#ifdef FN_NumberOfEntities - FN_NumberOfEntities, -#else - NULL, -#endif -#ifdef FN_GetInfoKeyBuffer - FN_GetInfoKeyBuffer, -#else - NULL, -#endif -#ifdef FN_InfoKeyValue - FN_InfoKeyValue, -#else - NULL, -#endif -#ifdef FN_SetKeyValue - FN_SetKeyValue, -#else - NULL, -#endif -#ifdef FN_SetClientKeyValue - FN_SetClientKeyValue, -#else - NULL, -#endif -#ifdef FN_IsMapValid - FN_IsMapValid, -#else - NULL, -#endif -#ifdef FN_StaticDecal - FN_StaticDecal, -#else - NULL, -#endif -#ifdef FN_PrecacheGeneric - FN_PrecacheGeneric, -#else - NULL, -#endif -#ifdef FN_GetPlayerUserId - FN_GetPlayerUserId, -#else - NULL, -#endif -#ifdef FN_BuildSoundMsg - FN_BuildSoundMsg, -#else - NULL, -#endif -#ifdef FN_IsDedicatedServer - FN_IsDedicatedServer, -#else - NULL, -#endif -#ifdef FN_CVarGetPointer - FN_CVarGetPointer, -#else - NULL, -#endif -#ifdef FN_GetPlayerWONId - FN_GetPlayerWONId, -#else - NULL, -#endif -#ifdef FN_Info_RemoveKey - FN_Info_RemoveKey, -#else - NULL, -#endif -#ifdef FN_GetPhysicsKeyValue - FN_GetPhysicsKeyValue, -#else - NULL, -#endif -#ifdef FN_SetPhysicsKeyValue - FN_SetPhysicsKeyValue, -#else - NULL, -#endif -#ifdef FN_GetPhysicsInfoString - FN_GetPhysicsInfoString, -#else - NULL, -#endif -#ifdef FN_PrecacheEvent - FN_PrecacheEvent, -#else - NULL, -#endif -#ifdef FN_PlaybackEvent - FN_PlaybackEvent, -#else - NULL, -#endif -#ifdef FN_SetFatPVS - FN_SetFatPVS, -#else - NULL, -#endif -#ifdef FN_SetFatPAS - FN_SetFatPAS, -#else - NULL, -#endif -#ifdef FN_CheckVisibility - FN_CheckVisibility, -#else - NULL, -#endif -#ifdef FN_DeltaSetField - FN_DeltaSetField, -#else - NULL, -#endif -#ifdef FN_DeltaUnsetField - FN_DeltaUnsetField, -#else - NULL, -#endif -#ifdef FN_DeltaAddEncoder - FN_DeltaAddEncoder, -#else - NULL, -#endif -#ifdef FN_GetCurrentPlayer - FN_GetCurrentPlayer, -#else - NULL, -#endif -#ifdef FN_CanSkipPlayer - FN_CanSkipPlayer, -#else - NULL, -#endif -#ifdef FN_DeltaFindField - FN_DeltaFindField, -#else - NULL, -#endif -#ifdef FN_DeltaSetFieldByIndex - FN_DeltaSetFieldByIndex, -#else - NULL, -#endif -#ifdef FN_DeltaUnsetFieldByIndex - FN_DeltaUnsetFieldByIndex, -#else - NULL, -#endif -#ifdef FN_SetGroupMask - FN_SetGroupMask, -#else - NULL, -#endif -#ifdef FN_engCreateInstancedBaseline - FN_engCreateInstancedBaseline, -#else - NULL, -#endif -#ifdef FN_Cvar_DirectSet - FN_Cvar_DirectSet, -#else - NULL, -#endif -#ifdef FN_ForceUnmodified - FN_ForceUnmodified, -#else - NULL, -#endif -#ifdef FN_GetPlayerStats - FN_GetPlayerStats, -#else - NULL, -#endif -#ifdef FN_AddServerCommand - FN_AddServerCommand, -#else - NULL, -#endif -#ifdef FN_Voice_GetClientListening - FN_Voice_GetClientListening, -#else - NULL, -#endif -#ifdef FN_Voice_SetClientListening - FN_Voice_SetClientListening, -#else - NULL, -#endif -#ifdef FN_GetPlayerAuthId - FN_GetPlayerAuthId -#else - NULL -#endif -}; // g_EngineFuncs_Table - - -static enginefuncs_t g_EngineFuncs_Post_Table = -{ -#ifdef FN_PrecacheModel_Post - FN_PrecacheModel_Post, -#else - NULL, -#endif -#ifdef FN_PrecacheSound_Post - FN_PrecacheSound_Post, -#else - NULL, -#endif -#ifdef FN_SetModel_Post - FN_SetModel_Post, -#else - NULL, -#endif -#ifdef FN_ModelIndex_Post - FN_ModelIndex_Post, -#else - NULL, -#endif -#ifdef FN_ModelFrames_Post - FN_ModelFrames_Post, -#else - NULL, -#endif -#ifdef FN_SetSize_Post - FN_SetSize_Post, -#else - NULL, -#endif -#ifdef FN_ChangeLevel_Post - FN_ChangeLevel_Post, -#else - NULL, -#endif -#ifdef FN_GetSpawnParms_Post - FN_GetSpawnParms_Post, -#else - NULL, -#endif -#ifdef FN_SaveSpawnParms_Post - FN_SaveSpawnParms_Post, -#else - NULL, -#endif -#ifdef FN_VecToYaw_Post - FN_VecToYaw_Post, -#else - NULL, -#endif -#ifdef FN_VecToAngles_Post - FN_VecToAngles_Post, -#else - NULL, -#endif -#ifdef FN_MoveToOrigin_Post - FN_MoveToOrigin_Post, -#else - NULL, -#endif -#ifdef FN_ChangeYaw_Post - FN_ChangeYaw_Post, -#else - NULL, -#endif -#ifdef FN_ChangePitch_Post - FN_ChangePitch_Post, -#else - NULL, -#endif -#ifdef FN_FindEntityByString_Post - FN_FindEntityByString_Post, -#else - NULL, -#endif -#ifdef FN_GetEntityIllum_Post - FN_GetEntityIllum_Post, -#else - NULL, -#endif -#ifdef FN_FindEntityInSphere_Post - FN_FindEntityInSphere_Post, -#else - NULL, -#endif -#ifdef FN_FindClientInPVS_Post - FN_FindClientInPVS_Post, -#else - NULL, -#endif -#ifdef FN_EntitiesInPVS_Post - FN_EntitiesInPVS_Post, -#else - NULL, -#endif -#ifdef FN_MakeVectors_Post - FN_MakeVectors_Post, -#else - NULL, -#endif -#ifdef FN_AngleVectors_Post - FN_AngleVectors_Post, -#else - NULL, -#endif -#ifdef FN_CreateEntity_Post - FN_CreateEntity_Post, -#else - NULL, -#endif -#ifdef FN_RemoveEntity_Post - FN_RemoveEntity_Post, -#else - NULL, -#endif -#ifdef FN_CreateNamedEntity_Post - FN_CreateNamedEntity_Post, -#else - NULL, -#endif -#ifdef FN_MakeStatic_Post - FN_MakeStatic_Post, -#else - NULL, -#endif -#ifdef FN_EntIsOnFloor_Post - FN_EntIsOnFloor_Post, -#else - NULL, -#endif -#ifdef FN_DropToFloor_Post - FN_DropToFloor_Post, -#else - NULL, -#endif -#ifdef FN_WalkMove_Post - FN_WalkMove_Post, -#else - NULL, -#endif -#ifdef FN_SetOrigin_Post - FN_SetOrigin_Post, -#else - NULL, -#endif -#ifdef FN_EmitSound_Post - FN_EmitSound_Post, -#else - NULL, -#endif -#ifdef FN_EmitAmbientSound_Post - FN_EmitAmbientSound_Post, -#else - NULL, -#endif -#ifdef FN_TraceLine_Post - FN_TraceLine_Post, -#else - NULL, -#endif -#ifdef FN_TraceToss_Post - FN_TraceToss_Post, -#else - NULL, -#endif -#ifdef FN_TraceMonsterHull_Post - FN_TraceMonsterHull_Post, -#else - NULL, -#endif -#ifdef FN_TraceHull_Post - FN_TraceHull_Post, -#else - NULL, -#endif -#ifdef FN_TraceModel_Post - FN_TraceModel_Post, -#else - NULL, -#endif -#ifdef FN_TraceTexture_Post - FN_TraceTexture_Post, -#else - NULL, -#endif -#ifdef FN_TraceSphere_Post - FN_TraceSphere_Post, -#else - NULL, -#endif -#ifdef FN_GetAimVector_Post - FN_GetAimVector_Post, -#else - NULL, -#endif -#ifdef FN_ServerCommand_Post - FN_ServerCommand_Post, -#else - NULL, -#endif -#ifdef FN_ServerExecute_Post - FN_ServerExecute_Post, -#else - NULL, -#endif -#ifdef FN_engClientCommand_Post - FN_engClientCommand_Post, -#else - NULL, -#endif -#ifdef FN_ParticleEffect_Post - FN_ParticleEffect_Post, -#else - NULL, -#endif -#ifdef FN_LightStyle_Post - FN_LightStyle_Post, -#else - NULL, -#endif -#ifdef FN_DecalIndex_Post - FN_DecalIndex_Post, -#else - NULL, -#endif -#ifdef FN_PointContents_Post - FN_PointContents_Post, -#else - NULL, -#endif -#ifdef FN_MessageBegin_Post - FN_MessageBegin_Post, -#else - NULL, -#endif -#ifdef FN_MessageEnd_Post - FN_MessageEnd_Post, -#else - NULL, -#endif -#ifdef FN_WriteByte_Post - FN_WriteByte_Post, -#else - NULL, -#endif -#ifdef FN_WriteChar_Post - FN_WriteChar_Post, -#else - NULL, -#endif -#ifdef FN_WriteShort_Post - FN_WriteShort_Post, -#else - NULL, -#endif -#ifdef FN_WriteLong_Post - FN_WriteLong_Post, -#else - NULL, -#endif -#ifdef FN_WriteAngle_Post - FN_WriteAngle_Post, -#else - NULL, -#endif -#ifdef FN_WriteCoord_Post - FN_WriteCoord_Post, -#else - NULL, -#endif -#ifdef FN_WriteString_Post - FN_WriteString_Post, -#else - NULL, -#endif -#ifdef FN_WriteEntity_Post - FN_WriteEntity_Post, -#else - NULL, -#endif -#ifdef FN_CVarRegister_Post - FN_CVarRegister_Post, -#else - NULL, -#endif -#ifdef FN_CVarGetFloat_Post - FN_CVarGetFloat_Post, -#else - NULL, -#endif -#ifdef FN_CVarGetString_Post - FN_CVarGetString_Post, -#else - NULL, -#endif -#ifdef FN_CVarSetFloat_Post - FN_CVarSetFloat_Post, -#else - NULL, -#endif -#ifdef FN_CVarSetString_Post - FN_CVarSetString_Post, -#else - NULL, -#endif -#ifdef FN_AlertMessage_Post - FN_AlertMessage_Post, -#else - NULL, -#endif -#ifdef FN_EngineFprintf_Post - FN_EngineFprintf_Post, -#else - NULL, -#endif -#ifdef FN_PvAllocEntPrivateData_Post - FN_PvAllocEntPrivateData_Post, -#else - NULL, -#endif -#ifdef FN_PvEntPrivateData_Post - FN_PvEntPrivateData_Post, -#else - NULL, -#endif -#ifdef FN_FreeEntPrivateData_Post - FN_FreeEntPrivateData_Post, -#else - NULL, -#endif -#ifdef FN_SzFromIndex_Post - FN_SzFromIndex_Post, -#else - NULL, -#endif -#ifdef FN_AllocString_Post - FN_AllocString_Post, -#else - NULL, -#endif -#ifdef FN_GetVarsOfEnt_Post - FN_GetVarsOfEnt_Post, -#else - NULL, -#endif -#ifdef FN_PEntityOfEntOffset_Post - FN_PEntityOfEntOffset_Post, -#else - NULL, -#endif -#ifdef FN_EntOffsetOfPEntity_Post - FN_EntOffsetOfPEntity_Post, -#else - NULL, -#endif -#ifdef FN_IndexOfEdict_Post - FN_IndexOfEdict_Post, -#else - NULL, -#endif -#ifdef FN_PEntityOfEntIndex_Post - FN_PEntityOfEntIndex_Post, -#else - NULL, -#endif -#ifdef FN_FindEntityByVars_Post - FN_FindEntityByVars_Post, -#else - NULL, -#endif -#ifdef FN_GetModelPtr_Post - FN_GetModelPtr_Post, -#else - NULL, -#endif -#ifdef FN_RegUserMsg_Post - FN_RegUserMsg_Post, -#else - NULL, -#endif -#ifdef FN_AnimationAutomove_Post - FN_AnimationAutomove_Post, -#else - NULL, -#endif -#ifdef FN_GetBonePosition_Post - FN_GetBonePosition_Post, -#else - NULL, -#endif -#ifdef FN_FunctionFromName_Post - FN_FunctionFromName_Post, -#else - NULL, -#endif -#ifdef FN_NameForFunction_Post - FN_NameForFunction_Post, -#else - NULL, -#endif -#ifdef FN_ClientPrintf_Post - FN_ClientPrintf_Post, -#else - NULL, -#endif -#ifdef FN_ServerPrint_Post - FN_ServerPrint_Post, -#else - NULL, -#endif -#ifdef FN_Cmd_Args_Post - FN_Cmd_Args_Post, -#else - NULL, -#endif -#ifdef FN_Cmd_Argv_Post - FN_Cmd_Argv_Post, -#else - NULL, -#endif -#ifdef FN_Cmd_Argc_Post - FN_Cmd_Argc_Post, -#else - NULL, -#endif -#ifdef FN_GetAttachment_Post - FN_GetAttachment_Post, -#else - NULL, -#endif -#ifdef FN_CRC32_Init_Post - FN_CRC32_Init_Post, -#else - NULL, -#endif -#ifdef FN_CRC32_ProcessBuffer_Post - FN_CRC32_ProcessBuffer_Post, -#else - NULL, -#endif -#ifdef FN_CRC32_ProcessByte_Post - FN_CRC32_ProcessByte_Post, -#else - NULL, -#endif -#ifdef FN_CRC32_Final_Post - FN_CRC32_Final_Post, -#else - NULL, -#endif -#ifdef FN_RandomLong_Post - FN_RandomLong_Post, -#else - NULL, -#endif -#ifdef FN_RandomFloat_Post - FN_RandomFloat_Post, -#else - NULL, -#endif -#ifdef FN_SetView_Post - FN_SetView_Post, -#else - NULL, -#endif -#ifdef FN_Time_Post - FN_Time_Post, -#else - NULL, -#endif -#ifdef FN_CrosshairAngle_Post - FN_CrosshairAngle_Post, -#else - NULL, -#endif -#ifdef FN_LoadFileForMe_Post - FN_LoadFileForMe_Post, -#else - NULL, -#endif -#ifdef FN_FreeFile_Post - FN_FreeFile_Post, -#else - NULL, -#endif -#ifdef FN_EndSection_Post - FN_EndSection_Post, -#else - NULL, -#endif -#ifdef FN_CompareFileTime_Post - FN_CompareFileTime_Post, -#else - NULL, -#endif -#ifdef FN_GetGameDir_Post - FN_GetGameDir_Post, -#else - NULL, -#endif -#ifdef FN_Cvar_RegisterVariable_Post - FN_Cvar_RegisterVariable_Post, -#else - NULL, -#endif -#ifdef FN_FadeClientVolume_Post - FN_FadeClientVolume_Post, -#else - NULL, -#endif -#ifdef FN_SetClientMaxspeed_Post - FN_SetClientMaxspeed_Post, -#else - NULL, -#endif -#ifdef FN_CreateFakeClient_Post - FN_CreateFakeClient_Post, -#else - NULL, -#endif -#ifdef FN_RunPlayerMove_Post - FN_RunPlayerMove_Post, -#else - NULL, -#endif -#ifdef FN_NumberOfEntities_Post - FN_NumberOfEntities_Post, -#else - NULL, -#endif -#ifdef FN_GetInfoKeyBuffer_Post - FN_GetInfoKeyBuffer_Post, -#else - NULL, -#endif -#ifdef FN_InfoKeyValue_Post - FN_InfoKeyValue_Post, -#else - NULL, -#endif -#ifdef FN_SetKeyValue_Post - FN_SetKeyValue_Post, -#else - NULL, -#endif -#ifdef FN_SetClientKeyValue_Post - FN_SetClientKeyValue_Post, -#else - NULL, -#endif -#ifdef FN_IsMapValid_Post - FN_IsMapValid_Post, -#else - NULL, -#endif -#ifdef FN_StaticDecal_Post - FN_StaticDecal_Post, -#else - NULL, -#endif -#ifdef FN_PrecacheGeneric_Post - FN_PrecacheGeneric_Post, -#else - NULL, -#endif -#ifdef FN_GetPlayerUserId_Post - FN_GetPlayerUserId_Post, -#else - NULL, -#endif -#ifdef FN_BuildSoundMsg_Post - FN_BuildSoundMsg_Post, -#else - NULL, -#endif -#ifdef FN_IsDedicatedServer_Post - FN_IsDedicatedServer_Post, -#else - NULL, -#endif -#ifdef FN_CVarGetPointer_Post - FN_CVarGetPointer_Post, -#else - NULL, -#endif -#ifdef FN_GetPlayerWONId_Post - FN_GetPlayerWONId_Post, -#else - NULL, -#endif -#ifdef FN_Info_RemoveKey_Post - FN_Info_RemoveKey_Post, -#else - NULL, -#endif -#ifdef FN_GetPhysicsKeyValue_Post - FN_GetPhysicsKeyValue_Post, -#else - NULL, -#endif -#ifdef FN_SetPhysicsKeyValue_Post - FN_SetPhysicsKeyValue_Post, -#else - NULL, -#endif -#ifdef FN_GetPhysicsInfoString_Post - FN_GetPhysicsInfoString_Post, -#else - NULL, -#endif -#ifdef FN_PrecacheEvent_Post - FN_PrecacheEvent_Post, -#else - NULL, -#endif -#ifdef FN_PlaybackEvent_Post - FN_PlaybackEvent_Post, -#else - NULL, -#endif -#ifdef FN_SetFatPVS_Post - FN_SetFatPVS_Post, -#else - NULL, -#endif -#ifdef FN_SetFatPAS_Post - FN_SetFatPAS_Post, -#else - NULL, -#endif -#ifdef FN_CheckVisibility_Post - FN_CheckVisibility_Post, -#else - NULL, -#endif -#ifdef FN_DeltaSetField_Post - FN_DeltaSetField_Post, -#else - NULL, -#endif -#ifdef FN_DeltaUnsetField_Post - FN_DeltaUnsetField_Post, -#else - NULL, -#endif -#ifdef FN_DeltaAddEncoder_Post - FN_DeltaAddEncoder_Post, -#else - NULL, -#endif -#ifdef FN_GetCurrentPlayer_Post - FN_GetCurrentPlayer_Post, -#else - NULL, -#endif -#ifdef FN_CanSkipPlayer_Post - FN_CanSkipPlayer_Post, -#else - NULL, -#endif -#ifdef FN_DeltaFindField_Post - FN_DeltaFindField_Post, -#else - NULL, -#endif -#ifdef FN_DeltaSetFieldByIndex_Post - FN_DeltaSetFieldByIndex_Post, -#else - NULL, -#endif -#ifdef FN_DeltaUnsetFieldByIndex_Post - FN_DeltaUnsetFieldByIndex_Post, -#else - NULL, -#endif -#ifdef FN_SetGroupMask_Post - FN_SetGroupMask_Post, -#else - NULL, -#endif -#ifdef FN_engCreateInstancedBaseline_Post - FN_engCreateInstancedBaseline_Post, -#else - NULL, -#endif -#ifdef FN_Cvar_DirectSet_Post - FN_Cvar_DirectSet_Post, -#else - NULL, -#endif -#ifdef FN_ForceUnmodified_Post - FN_ForceUnmodified_Post, -#else - NULL, -#endif -#ifdef FN_GetPlayerStats_Post - FN_GetPlayerStats_Post, -#else - NULL, -#endif -#ifdef FN_AddServerCommand_Post - FN_AddServerCommand_Post, -#else - NULL, -#endif -#ifdef FN_Voice_GetClientListening_Post - FN_Voice_GetClientListening_Post, -#else - NULL, -#endif -#ifdef FN_Voice_SetClientListening_Post - FN_Voice_SetClientListening_Post, -#else - NULL, -#endif -#ifdef FN_GetPlayerAuthId_Post - FN_GetPlayerAuthId_Post -#else - NULL -#endif -}; // g_EngineFuncs_Post_Table - - -static NEW_DLL_FUNCTIONS g_NewFuncs_Table = -{ -#ifdef FN_OnFreeEntPrivateData - FN_OnFreeEntPrivateData, -#else - NULL, -#endif -#ifdef FN_GameShutdown - FN_GameShutdown, -#else - NULL, -#endif -#ifdef FN_ShouldCollide - ShouldCollide, -#else - NULL, -#endif -}; - - -static NEW_DLL_FUNCTIONS g_NewFuncs_Post_Table = -{ -#ifdef FN_OnFreeEntPrivateData_Post - FN_OnFreeEntPrivateData_Post, -#else - NULL, -#endif -#ifdef FN_GameShutdown_Post - FN_GameShutdown_Post, -#else - NULL, -#endif -#ifdef FN_ShouldCollide_Post - ShouldCollide_Post, -#else - NULL, -#endif -}; - -// Global variables from metamod. These variable names are referenced by -// various macros. -meta_globals_t *gpMetaGlobals; // metamod globals -gamedll_funcs_t *gpGamedllFuncs; // gameDLL function tables -mutil_funcs_t *gpMetaUtilFuncs; // metamod utility functions - - -plugin_info_t Plugin_info = { - META_INTERFACE_VERSION, - MODULE_NAME, - MODULE_VERSION, - MODULE_DATE, - MODULE_AUTHOR, - MODULE_URL, - MODULE_LOGTAG, - PT_ANYTIME, - PT_ANYTIME -}; - -/* -C_DLLEXPORT int GetEntityAPI(DLL_FUNCTIONS *pFunctionTable, int interfaceVersion) -{ - LOG_DEVELOPER(PLID, "called: GetEntityAPI; version=%d", interfaceVersion); - if(!pFunctionTable) { - LOG_ERROR(PLID, "GetEntityAPI called with null pFunctionTable"); - return(FALSE); - } - else if(interfaceVersion != INTERFACE_VERSION) { - LOG_ERROR(PLID, "GetEntityAPI version mismatch; requested=%d ours=%d", interfaceVersion, INTERFACE_VERSION); - return(FALSE); - } - memcpy(pFunctionTable, &g_EntityAPI_Table, sizeof( DLL_FUNCTIONS ) ); - - return (TRUE); -} - -C_DLLEXPORT int GetEntityAPI_Post(DLL_FUNCTIONS *pFunctionTable, int interfaceVersion) -{ - LOG_DEVELOPER(PLID, "called: GetEntityAPI_Post; version=%d", interfaceVersion); - if(!pFunctionTable) { - LOG_ERROR(PLID, "GetEntityAPI_Post called with null pFunctionTable"); - return(FALSE); - } - else if(interfaceVersion != INTERFACE_VERSION) { - LOG_ERROR(PLID, "GetEntityAPI_Post version mismatch; requested=%d ours=%d", interfaceVersion, INTERFACE_VERSION); - return(FALSE); - } - memcpy(pFunctionTable, &g_EntityAPI_Post_Table, sizeof( DLL_FUNCTIONS ) ); - - return(TRUE); -} -*/ - -C_DLLEXPORT int GetEntityAPI2(DLL_FUNCTIONS *pFunctionTable, int *interfaceVersion) -{ - LOG_DEVELOPER(PLID, "called: GetEntityAPI2; version=%d", *interfaceVersion); - if(!pFunctionTable) { - LOG_ERROR(PLID, "GetEntityAPI2 called with null pFunctionTable"); - return(FALSE); - } - else if(*interfaceVersion != INTERFACE_VERSION) { - LOG_ERROR(PLID, - "GetEntityAPI2 version mismatch; requested=%d ours=%d", - *interfaceVersion, INTERFACE_VERSION); - //! Tell engine what version we had, so it can figure out who is - //! out of date. - *interfaceVersion = INTERFACE_VERSION; - return(FALSE); - } - memcpy(pFunctionTable, &g_EntityAPI_Table, sizeof(DLL_FUNCTIONS)); - g_pFunctionTable=pFunctionTable; - return(TRUE); -} - -C_DLLEXPORT int GetEntityAPI2_Post(DLL_FUNCTIONS *pFunctionTable, int *interfaceVersion) -{ - LOG_DEVELOPER(PLID, "called: GetEntityAPI2_Post; version=%d", *interfaceVersion); - if(!pFunctionTable) { - LOG_ERROR(PLID, "GetEntityAPI2_Post called with null pFunctionTable"); - return(FALSE); - } - else if(*interfaceVersion != INTERFACE_VERSION) { - LOG_ERROR(PLID, "GetEntityAPI2_Post version mismatch; requested=%d ours=%d", *interfaceVersion, INTERFACE_VERSION); - //! Tell engine what version we had, so it can figure out who is out of date. - *interfaceVersion = INTERFACE_VERSION; - return(FALSE); - } - memcpy( pFunctionTable, &g_EntityAPI_Post_Table, sizeof( DLL_FUNCTIONS ) ); - g_pFunctionTable_Post=pFunctionTable; - return(TRUE); -} - -C_DLLEXPORT int GetEngineFunctions(enginefuncs_t *pengfuncsFromEngine, int *interfaceVersion) -{ - LOG_DEVELOPER(PLID, "called: GetEngineFunctions; version=%d", - *interfaceVersion); - if(!pengfuncsFromEngine) { - LOG_ERROR(PLID, - "GetEngineFunctions called with null pengfuncsFromEngine"); - return(FALSE); - } - else if(*interfaceVersion != ENGINE_INTERFACE_VERSION) { - LOG_ERROR(PLID, - "GetEngineFunctions version mismatch; requested=%d ours=%d", - *interfaceVersion, ENGINE_INTERFACE_VERSION); - // Tell metamod what version we had, so it can figure out who is - // out of date. - *interfaceVersion = ENGINE_INTERFACE_VERSION; - return(FALSE); - } - memcpy(pengfuncsFromEngine, &g_EngineFuncs_Table, sizeof(enginefuncs_t)); - g_pengfuncsTable=pengfuncsFromEngine; - return TRUE; -} - -C_DLLEXPORT int GetEngineFunctions_Post(enginefuncs_t *pengfuncsFromEngine, int *interfaceVersion) -{ - LOG_DEVELOPER(PLID, "called: GetEngineFunctions_Post; version=%d", *interfaceVersion); - if(!pengfuncsFromEngine) { - LOG_ERROR(PLID, "GetEngineFunctions_Post called with null pengfuncsFromEngine"); - return(FALSE); - } - else if(*interfaceVersion != ENGINE_INTERFACE_VERSION) { - LOG_ERROR(PLID, "GetEngineFunctions_Post version mismatch; requested=%d ours=%d", *interfaceVersion, ENGINE_INTERFACE_VERSION); - // Tell metamod what version we had, so it can figure out who is out of date. - *interfaceVersion = ENGINE_INTERFACE_VERSION; - return(FALSE); - } - memcpy(pengfuncsFromEngine, &g_EngineFuncs_Post_Table, sizeof(enginefuncs_t)); - g_pengfuncsTable_Post=pengfuncsFromEngine; - return TRUE; - -} - -C_DLLEXPORT int GetNewDLLFunctions(NEW_DLL_FUNCTIONS *pNewFunctionTable, - int *interfaceVersion) -{ - LOG_DEVELOPER(PLID, "called: GetNewDLLFunctions; version=%d", - *interfaceVersion); - if(!pNewFunctionTable) { - LOG_ERROR(PLID, - "GetNewDLLFunctions called with null pNewFunctionTable"); - return(FALSE); - } - else if(*interfaceVersion != NEW_DLL_FUNCTIONS_VERSION) { - LOG_ERROR(PLID, - "GetNewDLLFunctions version mismatch; requested=%d ours=%d", - *interfaceVersion, NEW_DLL_FUNCTIONS_VERSION); - //! Tell engine what version we had, so it can figure out who is - //! out of date. - *interfaceVersion = NEW_DLL_FUNCTIONS_VERSION; - return(FALSE); - } - memcpy(pNewFunctionTable, &g_NewFuncs_Table, sizeof(NEW_DLL_FUNCTIONS)); - g_pNewFunctionsTable=pNewFunctionTable; - return TRUE; -} - -C_DLLEXPORT int GetNewDLLFunctions_Post( NEW_DLL_FUNCTIONS *pNewFunctionTable, int *interfaceVersion ) -{ - LOG_DEVELOPER(PLID, "called: GetNewDLLFunctions_Post; version=%d", *interfaceVersion); - if(!pNewFunctionTable) { - LOG_ERROR(PLID, "GetNewDLLFunctions_Post called with null pNewFunctionTable"); - return(FALSE); - } - else if(*interfaceVersion != NEW_DLL_FUNCTIONS_VERSION) { - LOG_ERROR(PLID, "GetNewDLLFunctions_Post version mismatch; requested=%d ours=%d", *interfaceVersion, NEW_DLL_FUNCTIONS_VERSION); - //! Tell engine what version we had, so it can figure out who is out of date. - *interfaceVersion = NEW_DLL_FUNCTIONS_VERSION; - return(FALSE); - } - memcpy(pNewFunctionTable, &g_NewFuncs_Post_Table, sizeof(NEW_DLL_FUNCTIONS)); - g_pNewFunctionsTable_Post=pNewFunctionTable; - return TRUE; -} - - -static META_FUNCTIONS g_MetaFunctions_Table = -{ - NULL, - NULL, - GetEntityAPI2, - GetEntityAPI2_Post, - GetNewDLLFunctions, - GetNewDLLFunctions_Post, - GetEngineFunctions, - GetEngineFunctions_Post -}; - -C_DLLEXPORT int Meta_Query(char *ifvers, plugin_info_t **pPlugInfo, mutil_funcs_t *pMetaUtilFuncs) -{ - if ((int) CVAR_GET_FLOAT("developer") != 0) - UTIL_LogPrintf("[%s] dev: called: Meta_Query; version=%s, ours=%s\n", - Plugin_info.logtag, ifvers, Plugin_info.ifvers); - - // Check for valid pMetaUtilFuncs before we continue. - if(!pMetaUtilFuncs) { - UTIL_LogPrintf("[%s] ERROR: Meta_Query called with null pMetaUtilFuncs\n", Plugin_info.logtag); - return(FALSE); - } - - gpMetaUtilFuncs = pMetaUtilFuncs; - - *pPlugInfo = &Plugin_info; - - // Check for interface version compatibility. - if(!FStrEq(ifvers, Plugin_info.ifvers)) { - int mmajor=0, mminor=0, pmajor=0, pminor=0; - LOG_MESSAGE(PLID, "WARNING: meta-interface version mismatch; requested=%s ours=%s", - Plugin_info.logtag, ifvers); - // If plugin has later interface version, it's incompatible (update - // metamod). - sscanf(ifvers, "%d:%d", &mmajor, &mminor); - sscanf(META_INTERFACE_VERSION, "%d:%d", &pmajor, &pminor); - if(pmajor > mmajor || (pmajor==mmajor && pminor > mminor)) { - LOG_ERROR(PLID, "metamod version is too old for this module; update metamod"); - return(FALSE); - } - // If plugin has older major interface version, it's incompatible - // (update plugin). - else if(pmajor < mmajor) { - LOG_ERROR(PLID, "metamod version is incompatible with this module; please find a newer version of this module"); - return(FALSE); - } - // Minor interface is older, but this is guaranteed to be backwards - // compatible, so we warn, but we still accept it. - else if(pmajor==mmajor && pminor < mminor) - LOG_MESSAGE(PLID, "WARNING: metamod version is newer than expected; consider finding a newer version of this module"); - else - LOG_ERROR(PLID, "unexpected version comparison; metavers=%s, mmajor=%d, mminor=%d; plugvers=%s, pmajor=%d, pminor=%d", ifvers, mmajor, mminor, META_INTERFACE_VERSION, pmajor, pminor); - } - -#ifdef FN_META_QUERY - return FN_META_QUERY(); -#endif // FN_META_QUERY - - return 1; -} - - -C_DLLEXPORT int Meta_Attach(PLUG_LOADTIME now, META_FUNCTIONS *pFunctionTable, meta_globals_t *pMGlobals, gamedll_funcs_t *pGamedllFuncs) -{ - if(now > Plugin_info.loadable) { - LOG_ERROR(PLID, "Can't load module right now"); - return(FALSE); - } - if(!pMGlobals) { - LOG_ERROR(PLID, "Meta_Attach called with null pMGlobals"); - return(FALSE); - } - gpMetaGlobals=pMGlobals; - if(!pFunctionTable) { - LOG_ERROR(PLID, "Meta_Attach called with null pFunctionTable"); - return(FALSE); - } - - memcpy(pFunctionTable, &g_MetaFunctions_Table, sizeof(META_FUNCTIONS)); - gpGamedllFuncs=pGamedllFuncs; - - // Let's go. - -#ifdef FN_META_ATTACH - FN_META_ATTACH(); -#endif // FN_META_ATTACH - - return TRUE; -} - -C_DLLEXPORT int Meta_Detach(PLUG_LOADTIME now, PL_UNLOAD_REASON reason) -{ - if(now > Plugin_info.unloadable && reason != PNL_CMD_FORCED) { - LOG_ERROR(PLID, "Can't unload plugin right now"); - return(FALSE); - } - -#ifdef FN_META_DETACH - return FN_META_DETACH(); -#endif // FN_META_DETACH - return TRUE; -} - - - -#ifdef __linux__ -// linux prototype -C_DLLEXPORT void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals ) { - -#else -#ifdef _MSC_VER -// MSVC: Simulate __stdcall calling convention -C_DLLEXPORT __declspec(naked) void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals ) -{ - __asm // Prolog - { - // Save ebp - push ebp - // Set stack frame pointer - mov ebp, esp - // Allocate space for local variables - // The MSVC compiler gives us the needed size in __LOCAL_SIZE. - sub esp, __LOCAL_SIZE - // Push registers - push ebx - push esi - push edi - } -#else // _MSC_VER -#ifdef __GNUC__ -// GCC can also work with this -C_DLLEXPORT void __stdcall GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals ) -{ -#else // __GNUC__ -// compiler not known -#error There is no support (yet) for your compiler. Please use MSVC or GCC compilers or contact the AMX Mod X dev team. -#endif // __GNUC__ -#endif // _MSC_VER -#endif // __linux__ - - // ** Function core <-- - memcpy(&g_engfuncs, pengfuncsFromEngine, sizeof(enginefuncs_t)); - gpGlobals = pGlobals; - // NOTE! Have to call logging function _after_ copying into g_engfuncs, so - // that g_engfuncs.pfnAlertMessage() can be resolved properly, heh. :) - UTIL_LogPrintf("[%s] dev: called: GiveFnptrsToDll\n", Plugin_info.logtag); - // --> ** Function core - -#ifdef _MSC_VER - // Epilog - if (sizeof(int*) == 8) - { // 64 bit - __asm - { - // Pop registers - pop edi - pop esi - pop ebx - // Restore stack frame pointer - mov esp, ebp - // Restore ebp - pop ebp - // 2 * sizeof(int*) = 16 on 64 bit - ret 16 - } - } - else - { // 32 bit - __asm - { - // Pop registers - pop edi - pop esi - pop ebx - // Restore stack frame pointer - mov esp, ebp - // Restore ebp - pop ebp - // 2 * sizeof(int*) = 8 on 32 bit - ret 8 - } - } -#endif // #ifdef _MSC_VER -} - -#endif // #ifdef USE_METAMOD - -/************* AMXX Stuff *************/ - -// *** Globals *** -// Module info -static amxx_module_info_s g_ModuleInfo = -{ - MODULE_NAME, - MODULE_AUTHOR, - MODULE_VERSION, -#ifdef MODULE_RELOAD_ON_MAPCHANGE - 1, -#else // MODULE_RELOAD_ON_MAPCHANGE - 0, -#endif // MODULE_RELOAD_ON_MAPCHANGE - MODULE_LOGTAG -}; - -// Storage for the requested functions -PFN_ADD_NATIVES g_fn_AddNatives; -PFN_BUILD_PATHNAME g_fn_BuildPathname; -PFN_BUILD_PATHNAME_R g_fn_BuildPathnameR; -PFN_GET_AMXADDR g_fn_GetAmxAddr; -PFN_PRINT_SRVCONSOLE g_fn_PrintSrvConsole; -PFN_GET_MODNAME g_fn_GetModname; -PFN_GET_AMXSCRIPTNAME g_fn_GetAmxScriptName; -PFN_GET_AMXSCRIPT g_fn_GetAmxScript; -PFN_FIND_AMXSCRIPT_BYAMX g_fn_FindAmxScriptByAmx; -PFN_FIND_AMXSCRIPT_BYNAME g_fn_FindAmxScriptByName; -PFN_SET_AMXSTRING g_fn_SetAmxString; -PFN_GET_AMXSTRING g_fn_GetAmxString; -PFN_GET_AMXSTRINGLEN g_fn_GetAmxStringLen; -PFN_FORMAT_AMXSTRING g_fn_FormatAmxString; -PFN_COPY_AMXMEMORY g_fn_CopyAmxMemory; -PFN_LOG g_fn_Log; -PFN_LOG_ERROR g_fn_LogErrorFunc; -PFN_RAISE_AMXERROR g_fn_RaiseAmxError; -PFN_REGISTER_FORWARD g_fn_RegisterForward; -PFN_EXECUTE_FORWARD g_fn_ExecuteForward; -PFN_PREPARE_CELLARRAY g_fn_PrepareCellArray; -PFN_PREPARE_CHARARRAY g_fn_PrepareCharArray; -PFN_PREPARE_CELLARRAY_A g_fn_PrepareCellArrayA; -PFN_PREPARE_CHARARRAY_A g_fn_PrepareCharArrayA; -PFN_IS_PLAYER_VALID g_fn_IsPlayerValid; -PFN_GET_PLAYER_NAME g_fn_GetPlayerName; -PFN_GET_PLAYER_IP g_fn_GetPlayerIP; -PFN_IS_PLAYER_INGAME g_fn_IsPlayerIngame; -PFN_IS_PLAYER_BOT g_fn_IsPlayerBot; -PFN_IS_PLAYER_AUTHORIZED g_fn_IsPlayerAuthorized; -PFN_GET_PLAYER_TIME g_fn_GetPlayerTime; -PFN_GET_PLAYER_PLAYTIME g_fn_GetPlayerPlayTime; -PFN_GET_PLAYER_CURWEAPON g_fn_GetPlayerCurweapon; -PFN_GET_PLAYER_TEAM g_fn_GetPlayerTeam; -PFN_GET_PLAYER_TEAMID g_fn_GetPlayerTeamID; -PFN_GET_PLAYER_DEATHS g_fn_GetPlayerDeaths; -PFN_GET_PLAYER_MENU g_fn_GetPlayerMenu; -PFN_GET_PLAYER_KEYS g_fn_GetPlayerKeys; -PFN_IS_PLAYER_ALIVE g_fn_IsPlayerAlive; -PFN_GET_PLAYER_FRAGS g_fn_GetPlayerFrags; -PFN_IS_PLAYER_CONNECTING g_fn_IsPlayerConnecting; -PFN_IS_PLAYER_HLTV g_fn_IsPlayerHLTV; -PFN_GET_PLAYER_ARMOR g_fn_GetPlayerArmor; -PFN_GET_PLAYER_HEALTH g_fn_GetPlayerHealth; -PFN_ALLOCATOR g_fn_Allocator; -PFN_REALLOCATOR g_fn_Reallocator; -PFN_DEALLOCATOR g_fn_Deallocator; -PFN_AMX_EXEC g_fn_AmxExec; -PFN_AMX_EXECV g_fn_AmxExecv; -PFN_AMX_ALLOT g_fn_AmxAllot; -PFN_AMX_FINDPUBLIC g_fn_AmxFindPublic; -PFN_LOAD_AMXSCRIPT g_fn_LoadAmxScript; -PFN_UNLOAD_AMXSCRIPT g_fn_UnloadAmxScript; -PFN_REAL_TO_CELL g_fn_RealToCell; -PFN_CELL_TO_REAL g_fn_CellToReal; -PFN_REGISTER_SPFORWARD g_fn_RegisterSPForward; -PFN_REGISTER_SPFORWARD_BYNAME g_fn_RegisterSPForwardByName; -PFN_UNREGISTER_SPFORWARD g_fn_UnregisterSPForward; -PFN_MERGEDEFINITION_FILE g_fn_MergeDefinition_File; -PFN_AMX_FINDNATIVE g_fn_AmxFindNative; -PFN_GETPLAYERFLAGS g_fn_GetPlayerFlags; -PFN_GET_PLAYER_EDICT g_fn_GetPlayerEdict; -PFN_FORMAT g_fn_Format; -PFN_REGISTERFUNCTION g_fn_RegisterFunction; -PFN_REQ_FNPTR g_fn_RequestFunction; -PFN_AMX_PUSH g_fn_AmxPush; - -// *** Exports *** -C_DLLEXPORT int AMXX_Query(int *interfaceVersion, amxx_module_info_s *moduleInfo) -{ - // check parameters - if (!interfaceVersion || !moduleInfo) - return AMXX_PARAM; - - // check interface version - if (*interfaceVersion != AMXX_INTERFACE_VERSION) - { - // Tell amxx core our interface version - *interfaceVersion = AMXX_INTERFACE_VERSION; - return AMXX_IFVERS; - } - - // copy module info - memcpy(moduleInfo, &g_ModuleInfo, sizeof(amxx_module_info_s)); - -#ifdef FN_AMXX_QUERY - FN_AMXX_QUERY(); -#endif // FN_AMXX_QUERY - // Everything ok :) - return AMXX_OK; -} - -// request function -#define REQFUNC(name, fptr, type) if ((fptr = (type)reqFnptrFunc(name)) == 0) return AMXX_FUNC_NOT_PRESENT -// request optional function -#define REQFUNC_OPT(name, fptr, type) fptr = (type)reqFnptrFunc(name) - -C_DLLEXPORT int AMXX_Attach(PFN_REQ_FNPTR reqFnptrFunc) -{ - // Check pointer - if (!reqFnptrFunc) - return AMXX_PARAM; - - g_fn_RequestFunction = reqFnptrFunc; - - // Req all known functions - // Misc - REQFUNC("BuildPathname", g_fn_BuildPathname, PFN_BUILD_PATHNAME); - REQFUNC("BuildPathnameR", g_fn_BuildPathnameR, PFN_BUILD_PATHNAME_R); - REQFUNC("PrintSrvConsole", g_fn_PrintSrvConsole, PFN_PRINT_SRVCONSOLE); - REQFUNC("GetModname", g_fn_GetModname, PFN_GET_MODNAME); - REQFUNC("Log", g_fn_Log, PFN_LOG); - REQFUNC("LogError", g_fn_LogErrorFunc, PFN_LOG_ERROR); - REQFUNC("MergeDefinitionFile", g_fn_MergeDefinition_File, PFN_MERGEDEFINITION_FILE); - REQFUNC("Format", g_fn_Format, PFN_FORMAT); - REQFUNC("RegisterFunction", g_fn_RegisterFunction, PFN_REGISTERFUNCTION); - - // Amx scripts - REQFUNC("GetAmxScript", g_fn_GetAmxScript, PFN_GET_AMXSCRIPT); - REQFUNC("FindAmxScriptByAmx", g_fn_FindAmxScriptByAmx, PFN_FIND_AMXSCRIPT_BYAMX); - REQFUNC("FindAmxScriptByName", g_fn_FindAmxScriptByName, PFN_FIND_AMXSCRIPT_BYNAME); - REQFUNC("LoadAmxScript", g_fn_LoadAmxScript, PFN_LOAD_AMXSCRIPT); - REQFUNC("UnloadAmxScript", g_fn_UnloadAmxScript, PFN_UNLOAD_AMXSCRIPT); - REQFUNC("GetAmxScriptName", g_fn_GetAmxScriptName, PFN_GET_AMXSCRIPTNAME); - - // String / mem in amx scripts support - REQFUNC("SetAmxString", g_fn_SetAmxString, PFN_SET_AMXSTRING); - REQFUNC("GetAmxString", g_fn_GetAmxString, PFN_GET_AMXSTRING); - REQFUNC("GetAmxStringLen", g_fn_GetAmxStringLen, PFN_GET_AMXSTRINGLEN); - REQFUNC("FormatAmxString", g_fn_FormatAmxString, PFN_FORMAT_AMXSTRING); - REQFUNC("CopyAmxMemory", g_fn_CopyAmxMemory, PFN_COPY_AMXMEMORY); - REQFUNC("GetAmxAddr", g_fn_GetAmxAddr, PFN_GET_AMXADDR); - - REQFUNC("amx_Exec", g_fn_AmxExec, PFN_AMX_EXEC); - REQFUNC("amx_Execv", g_fn_AmxExecv, PFN_AMX_EXECV); - REQFUNC("amx_FindPublic", g_fn_AmxFindPublic, PFN_AMX_FINDPUBLIC); - REQFUNC("amx_Allot", g_fn_AmxAllot, PFN_AMX_ALLOT); - REQFUNC("amx_FindNative", g_fn_AmxFindNative, PFN_AMX_FINDNATIVE); - - // Natives / Forwards - REQFUNC("AddNatives", g_fn_AddNatives, PFN_ADD_NATIVES); - REQFUNC("RaiseAmxError", g_fn_RaiseAmxError, PFN_RAISE_AMXERROR); - REQFUNC("RegisterForward", g_fn_RegisterForward, PFN_REGISTER_FORWARD); - REQFUNC("RegisterSPForward", g_fn_RegisterSPForward, PFN_REGISTER_SPFORWARD); - REQFUNC("RegisterSPForwardByName", g_fn_RegisterSPForwardByName, PFN_REGISTER_SPFORWARD_BYNAME); - REQFUNC("UnregisterSPForward", g_fn_UnregisterSPForward, PFN_UNREGISTER_SPFORWARD); - REQFUNC("ExecuteForward", g_fn_ExecuteForward, PFN_EXECUTE_FORWARD); - REQFUNC("PrepareCellArray", g_fn_PrepareCellArray, PFN_PREPARE_CELLARRAY); - REQFUNC("PrepareCharArray", g_fn_PrepareCharArray, PFN_PREPARE_CHARARRAY); - REQFUNC("PrepareCellArrayA", g_fn_PrepareCellArrayA, PFN_PREPARE_CELLARRAY_A); - REQFUNC("PrepareCharArrayA", g_fn_PrepareCharArrayA, PFN_PREPARE_CHARARRAY_A); - // Player - REQFUNC("IsPlayerValid", g_fn_IsPlayerValid, PFN_IS_PLAYER_VALID); - REQFUNC("GetPlayerName", g_fn_GetPlayerName, PFN_GET_PLAYER_NAME); - REQFUNC("GetPlayerIP", g_fn_GetPlayerIP, PFN_GET_PLAYER_IP); - REQFUNC("IsPlayerInGame", g_fn_IsPlayerIngame, PFN_IS_PLAYER_INGAME); - REQFUNC("IsPlayerBot", g_fn_IsPlayerBot, PFN_IS_PLAYER_BOT); - REQFUNC("IsPlayerAuthorized", g_fn_IsPlayerAuthorized, PFN_IS_PLAYER_AUTHORIZED); - REQFUNC("GetPlayerTime", g_fn_GetPlayerTime, PFN_GET_PLAYER_TIME); - REQFUNC("GetPlayerPlayTime", g_fn_GetPlayerPlayTime, PFN_GET_PLAYER_PLAYTIME); - REQFUNC("GetPlayerCurweapon", g_fn_GetPlayerCurweapon, PFN_GET_PLAYER_CURWEAPON); - REQFUNC("GetPlayerTeamID", g_fn_GetPlayerTeamID, PFN_GET_PLAYER_TEAMID); - REQFUNC("GetPlayerTeam",g_fn_GetPlayerTeam, PFN_GET_PLAYER_TEAM); - REQFUNC("GetPlayerDeaths", g_fn_GetPlayerDeaths, PFN_GET_PLAYER_DEATHS); - REQFUNC("GetPlayerMenu", g_fn_GetPlayerMenu, PFN_GET_PLAYER_MENU); - REQFUNC("GetPlayerKeys", g_fn_GetPlayerKeys, PFN_GET_PLAYER_KEYS); - REQFUNC("IsPlayerAlive", g_fn_IsPlayerAlive, PFN_IS_PLAYER_ALIVE); - REQFUNC("GetPlayerFrags", g_fn_GetPlayerFrags, PFN_GET_PLAYER_FRAGS); - REQFUNC("IsPlayerConnecting", g_fn_IsPlayerConnecting, PFN_IS_PLAYER_CONNECTING); - REQFUNC("IsPlayerHLTV", g_fn_IsPlayerHLTV, PFN_IS_PLAYER_HLTV); - REQFUNC("GetPlayerArmor", g_fn_GetPlayerArmor, PFN_GET_PLAYER_ARMOR); - REQFUNC("GetPlayerHealth", g_fn_GetPlayerHealth, PFN_GET_PLAYER_HEALTH); - REQFUNC("GetPlayerFlags", g_fn_GetPlayerFlags, PFN_GETPLAYERFLAGS); - REQFUNC("GetPlayerEdict", g_fn_GetPlayerEdict, PFN_GET_PLAYER_EDICT); - REQFUNC("amx_Push", g_fn_AmxPush, PFN_AMX_PUSH); - - // Memory - REQFUNC_OPT("Allocator", g_fn_Allocator, PFN_ALLOCATOR); - REQFUNC_OPT("Reallocator", g_fn_Reallocator, PFN_REALLOCATOR); - REQFUNC_OPT("Deallocator", g_fn_Deallocator, PFN_DEALLOCATOR); - - REQFUNC("CellToReal", g_fn_CellToReal, PFN_CELL_TO_REAL); - REQFUNC("RealToCell", g_fn_RealToCell, PFN_REAL_TO_CELL); - -#ifdef FN_AMXX_ATTACH - FN_AMXX_ATTACH(); -#endif // FN_AMXX_ATACH - - return AMXX_OK; -} - -C_DLLEXPORT int AMXX_Detach() -{ -#ifdef FN_AMXX_DETACH - FN_AMXX_DETACH(); -#endif // FN_AMXX_DETACH - - return AMXX_OK; -} - -C_DLLEXPORT int AMXX_PluginsLoaded() -{ -#ifdef FN_AMXX_PLUGINSLOADED - FN_AMXX_PLUGINSLOADED(); -#endif // FN_AMXX_PLUGINSLOADED - return AMXX_OK; -} - -// Advanced MF functions -void MF_Log(const char *fmt, ...) -{ - // :TODO: Overflow possible here - char msg[3072]; - va_list arglst; - va_start(arglst, fmt); - vsprintf(msg, fmt, arglst); - va_end(arglst); - - g_fn_Log("[%s] %s", MODULE_LOGTAG, msg); -} - -void MF_LogError(AMX *amx, int err, const char *fmt, ...) -{ - // :TODO: Overflow possible here - char msg[3072]; - va_list arglst; - va_start(arglst, fmt); - vsprintf(msg, fmt, arglst); - va_end(arglst); - - g_fn_LogErrorFunc(amx, err, "[%s] %s", MODULE_LOGTAG, msg); -} - - -#ifdef _DEBUG -// validate macros -// Makes sure compiler reports errors when macros are invalid -void ValidateMacros_DontCallThis_Smiley() -{ - MF_BuildPathname("str", "str", 0); - MF_BuildPathnameR(NULL, 0, "%d", 0); - MF_FormatAmxString(NULL, 0, 0, NULL); - MF_GetAmxAddr(NULL, 0); - MF_PrintSrvConsole("str", "str", 0); - MF_GetModname(); - MF_GetScriptName(0); - MF_GetScriptAmx(0); - MF_FindScriptByAmx(NULL); - MF_FindScriptByName("str"); - MF_SetAmxString(NULL, 0, "str", 0); - MF_GetAmxString(NULL, 0, 0, 0); - MF_GetAmxStringLen(NULL); - MF_CopyAmxMemory(NULL, NULL, 0); - MF_Log("str", "str", 0); - MF_LogError(NULL, 0, NULL); - MF_RaiseAmxError(NULL, 0); - MF_RegisterForward("str", (ForwardExecType)0, 0, 0, 0); - MF_ExecuteForward(0, 0, 0); - MF_PrepareCellArray(NULL, 0); - MF_PrepareCharArray(NULL, 0); - MF_PrepareCellArrayA(NULL, 0, true); - MF_PrepareCharArrayA(NULL, 0, true); - MF_IsPlayerValid(0); - MF_GetPlayerName(0); - MF_GetPlayerIP(0); - MF_IsPlayerIngame(0); - MF_IsPlayerBot(0); - MF_IsPlayerAuthorized(0); - MF_GetPlayerTime(0); - MF_GetPlayerPlayTime(0); - MF_GetPlayerCurweapon(0); - MF_GetPlayerTeamID(0); - MF_GetPlayerTeam(0); - MF_GetPlayerDeaths(0); - MF_GetPlayerMenu(0); - MF_GetPlayerKeys(0); - MF_IsPlayerAlive(0); - MF_GetPlayerFrags(0); - MF_IsPlayerConnecting(0); - MF_IsPlayerHLTV(0); - MF_GetPlayerArmor(0); - MF_GetPlayerHealth(0); - MF_AmxExec(0, 0, 0); - MF_AmxExecv(0, 0, 0, 0, 0); - MF_AmxFindPublic(0, 0, 0); - MF_AmxAllot(0, 0, 0, 0); - MF_LoadAmxScript(0, 0, 0, 0, 0); - MF_UnloadAmxScript(0, 0); - MF_RegisterSPForward(0, 0, 0, 0, 0, 0); - MF_RegisterSPForwardByName(0, 0, 0, 0, 0, 0); - MF_UnregisterSPForward(0); - MF_GetPlayerFrags(0); - MF_GetPlayerEdict(0); - MF_Format("", 4, "str"); - MF_RegisterFunction(NULL, ""); -} -#endif - -/************* MEMORY *************/ -// undef all defined macros -#undef new -#undef delete -#undef malloc -#undef calloc -#undef realloc -#undef free - -const unsigned int m_alloc_unknown = 0; -const unsigned int m_alloc_new = 1; -const unsigned int m_alloc_new_array = 2; -const unsigned int m_alloc_malloc = 3; -const unsigned int m_alloc_calloc = 4; -const unsigned int m_alloc_realloc = 5; -const unsigned int m_alloc_delete = 6; -const unsigned int m_alloc_delete_array = 7; -const unsigned int m_alloc_free = 8; - -const char *g_Mem_CurrentFilename = "??"; -int g_Mem_CurrentLine = 0; -const char *g_Mem_CurrentFunc = "??"; - -const char *Mem_MakeSourceFile(const char *sourceFile) -{ - static char buffer[512]; - static size_t pos = 0; - if (!pos) - { - // init - buffer[0] = '['; - strcpy(buffer + 1, MODULE_NAME); - pos = strlen(MODULE_NAME) + 1; - buffer[pos++] = ']'; - } - - // convert from absolute path to [modulename]filename - const char *ptr = strrchr(sourceFile, '\\'); - if (ptr) - ptr++; - else - { - ptr = strrchr(sourceFile, '/'); - if (ptr) - ptr++; - else - ptr = sourceFile; - } - strcpy(buffer + pos, ptr); - return buffer; -} - -void Mem_SetOwner(const char *filename, int line, const char *function) -{ - g_Mem_CurrentFilename = filename; - g_Mem_CurrentLine = line; - g_Mem_CurrentFunc = function; -} - -void Mem_ResetGlobals() -{ - Mem_SetOwner("??", 0, "??"); -} - -// raw (re/de)allocators -void * Mem_Allocator(const char *sourceFile, const unsigned int sourceLine, const char *sourceFunc, - const unsigned int allocationType, const size_t reportedSize) -{ - if (g_fn_Allocator) - return g_fn_Allocator(Mem_MakeSourceFile(sourceFile), sourceLine, sourceFunc, allocationType, reportedSize); - else - return malloc(reportedSize); -} - -void * Mem_Reallocator(const char *sourceFile, const unsigned int sourceLine, const char *sourceFunc, - const unsigned int reallocationType, const size_t reportedSize, void *reportedAddress) -{ - if (g_fn_Reallocator) - return g_fn_Reallocator(Mem_MakeSourceFile(sourceFile), sourceLine, sourceFunc, reallocationType, reportedSize, reportedAddress); - else - return realloc(reportedAddress, reportedSize); -} - -void Mem_Deallocator(const char *sourceFile, const unsigned int sourceLine, const char *sourceFunc, - const unsigned int deallocationType, void *reportedAddress) -{ - // If you you get user breakpoint here, something failed :) - // - invalid pointer - // - alloc type mismatch ( for example - // char *a = new char[5]; delete char; - // ) - // - The allocation unit is damaged (for example - // char *a = new char[5]; a[6] = 8; - // ) - // - break on dealloc flag set (somehow) - - if (g_fn_Deallocator) - g_fn_Deallocator(Mem_MakeSourceFile(sourceFile), sourceLine, sourceFunc, deallocationType, reportedAddress); - else - free(reportedAddress); -} - -// new and delete operators -void *operator new(size_t reportedSize) -{ - if (reportedSize == 0) - reportedSize = 1; - void *ptr = Mem_Allocator(g_Mem_CurrentFilename, g_Mem_CurrentLine, g_Mem_CurrentFunc, m_alloc_new, reportedSize); - // :TODO: Handler support ? - if (ptr) - return ptr; - - // allocation failed - return NULL; -} - -void *operator new[](size_t reportedSize) -{ - if (reportedSize == 0) - reportedSize = 1; - void *ptr = Mem_Allocator(g_Mem_CurrentFilename, g_Mem_CurrentLine, g_Mem_CurrentFunc, m_alloc_new_array, reportedSize); - // :TODO: Handler support ? - if (ptr) - return ptr; - - // allocation failed - return NULL; -} - -// Microsoft memory tracking operators -void *operator new(size_t reportedSize, const char *sourceFile, int sourceLine) -{ - if (reportedSize == 0) - reportedSize = 1; - void *ptr = Mem_Allocator(g_Mem_CurrentFilename, g_Mem_CurrentLine, g_Mem_CurrentFunc, m_alloc_new, reportedSize); - // :TODO: Handler support ? - if (ptr) - return ptr; - - // allocation failed - return NULL; -} -void *operator new[](size_t reportedSize, const char *sourceFile, int sourceLine) -{ - if (reportedSize == 0) - reportedSize = 1; - void *ptr = Mem_Allocator(g_Mem_CurrentFilename, g_Mem_CurrentLine, g_Mem_CurrentFunc, m_alloc_new_array, reportedSize); - // :TODO: Handler support ? - if (ptr) - return ptr; - - // allocation failed - return NULL; -} - -void operator delete(void *reportedAddress) -{ - if (!reportedAddress) - return; - - Mem_Deallocator(g_Mem_CurrentFilename, g_Mem_CurrentLine, g_Mem_CurrentFunc, m_alloc_delete, reportedAddress); -} - -void operator delete[](void *reportedAddress) -{ - if (!reportedAddress) - return; - - Mem_Deallocator(g_Mem_CurrentFilename, g_Mem_CurrentLine, g_Mem_CurrentFunc, m_alloc_delete_array, reportedAddress); -} - -/************* stuff from dlls/util.cpp *************/ -// must come here because cbase.h declares it's own operator new - -#ifdef USE_METAMOD - -// Selected portions of dlls/util.cpp from SDK 2.1. -// Functions copied from there as needed... -// And modified to avoid buffer overflows (argh). - -/*** -* -* Copyright (c) 1999, 2000 Valve LLC. All rights reserved. -* -* This product contains software technology licensed from Id -* Software, Inc. ("Id Technology"). Id Technology (c) 1996 Id Software, Inc. -* All Rights Reserved. -* -* Use, distribution, and modification of this source code and/or resulting -* object code is restricted to non-commercial enhancements to products from -* Valve LLC. All other use, distribution, or modification is prohibited -* without written permission from Valve LLC. -* -****/ -/* - -===== util.cpp ======================================================== - - Utility code. Really not optional after all. - -*/ - -#include -#include "sdk_util.h" -#include - -#include // for strncpy(), etc - -#include "osdep.h" // win32 vsnprintf, etc - -char* UTIL_VarArgs( char *format, ... ) -{ - va_list argptr; - static char string[1024]; - - va_start (argptr, format); - vsnprintf (string, sizeof(string), format, argptr); - va_end (argptr); - - return string; -} - - -//========================================================= -// UTIL_LogPrintf - Prints a logged message to console. -// Preceded by LOG: ( timestamp ) < message > -//========================================================= -void UTIL_LogPrintf( char *fmt, ... ) -{ - va_list argptr; - static char string[1024]; - - va_start ( argptr, fmt ); - vsnprintf ( string, sizeof(string), fmt, argptr ); - va_end ( argptr ); - - // Print to server console - ALERT( at_logged, "%s", string ); -} - - -void UTIL_HudMessage(CBaseEntity *pEntity, const hudtextparms_t &textparms, - const char *pMessage) -{ - if ( !pEntity ) - return; - - MESSAGE_BEGIN( MSG_ONE, SVC_TEMPENTITY, NULL, ENT(pEntity->pev) ); - WRITE_BYTE( TE_TEXTMESSAGE ); - WRITE_BYTE( textparms.channel & 0xFF ); - - WRITE_SHORT( FixedSigned16( textparms.x, 1<<13 ) ); - WRITE_SHORT( FixedSigned16( textparms.y, 1<<13 ) ); - WRITE_BYTE( textparms.effect ); - - WRITE_BYTE( textparms.r1 ); - WRITE_BYTE( textparms.g1 ); - WRITE_BYTE( textparms.b1 ); - WRITE_BYTE( textparms.a1 ); - - WRITE_BYTE( textparms.r2 ); - WRITE_BYTE( textparms.g2 ); - WRITE_BYTE( textparms.b2 ); - WRITE_BYTE( textparms.a2 ); - - WRITE_SHORT( FixedUnsigned16( textparms.fadeinTime, 1<<8 ) ); - WRITE_SHORT( FixedUnsigned16( textparms.fadeoutTime, 1<<8 ) ); - WRITE_SHORT( FixedUnsigned16( textparms.holdTime, 1<<8 ) ); - - if ( textparms.effect == 2 ) - WRITE_SHORT( FixedUnsigned16( textparms.fxTime, 1<<8 ) ); - - if ( strlen( pMessage ) < 512 ) - { - WRITE_STRING( pMessage ); - } - else - { - char tmp[512]; - strncpy( tmp, pMessage, 511 ); - tmp[511] = 0; - WRITE_STRING( tmp ); - } - MESSAGE_END(); -} - -short FixedSigned16( float value, float scale ) -{ - int output; - - output = (int) (value * scale); - - if ( output > 32767 ) - output = 32767; - - if ( output < -32768 ) - output = -32768; - - return (short)output; -} - -unsigned short FixedUnsigned16( float value, float scale ) -{ - int output; - - output = (int) (value * scale); - if ( output < 0 ) - output = 0; - if ( output > 0xFFFF ) - output = 0xFFFF; - - return (unsigned short)output; -} -#endif // USE_METAMOD diff --git a/dlls/BB/amxxmodule.h b/dlls/BB/amxxmodule.h deleted file mode 100644 index baf6d259..00000000 --- a/dlls/BB/amxxmodule.h +++ /dev/null @@ -1,2239 +0,0 @@ -/* - * AMX Mod X Module Interface Functions - * This file may be freely used -*/ - -// prevent double include -#ifndef __AMXXMODULE_H__ -#define __AMXXMODULE_H__ - -// config -#include "moduleconfig.h" - -// metamod include files -#ifdef USE_METAMOD -#include -#include -#include "osdep.h" -#endif // #ifdef USE_METAMOD - -// DLL Export -#undef DLLEXPORT -#ifndef __linux__ -#define DLLEXPORT __declspec(dllexport) -#else -#define DLLEXPORT -#define LINUX -#endif - -#undef C_DLLEXPORT -#define C_DLLEXPORT extern "C" DLLEXPORT - -// ***** AMXX stuff ***** - -// module interface version was 1 -// 2 - added logtag to struct (amxx1.1-rc1) -// 3 - added new tagAMX structure (amxx1.5) -#define AMXX_INTERFACE_VERSION 3 - -// amxx module info -struct amxx_module_info_s -{ - const char *name; - const char *author; - const char *version; - int reload; // reload on mapchange when nonzero - const char *logtag; // added in version 2 -}; - - - -// return values from functions called by amxx -#define AMXX_OK 0 /* no error */ -#define AMXX_IFVERS 1 /* interface version */ -#define AMXX_PARAM 2 /* Invalid parameter */ -#define AMXX_FUNC_NOT_PRESENT 3 /* Function not present */ - -// *** Small stuff *** -// The next section is copied from the amx.h file -// Copyright (c) ITB CompuPhase, 1997-2005 - -#if defined HAVE_STDINT_H - #include -#else - #if defined __LCC__ || defined __DMC__ || defined LINUX - #if defined HAVE_INTTYPES_H - #include - #else - #include - #endif - #elif !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L - /* The ISO C99 defines the int16_t and int_32t types. If the compiler got - * here, these types are probably undefined. - */ - #if defined __MACH__ - #include - typedef unsigned short int uint16_t; - typedef unsigned long int uint32_t; - #elif defined __FreeBSD__ - #include - #else - typedef short int int16_t; - typedef unsigned short int uint16_t; - #if defined SN_TARGET_PS2 - typedef int int32_t; - typedef unsigned int uint32_t; - #else - typedef long int int32_t; - typedef unsigned long int uint32_t; - #endif - #if defined __WIN32__ || defined _WIN32 || defined WIN32 - typedef __int64 int64_t; - typedef unsigned __int64 uint64_t; - #define HAVE_I64 - #elif defined __GNUC__ - typedef long long int64_t; - typedef unsigned long long uint64_t; - #define HAVE_I64 - #endif - #endif - #endif - #define HAVE_STDINT_H -#endif -#if defined _LP64 || defined WIN64 || defined _WIN64 - #if !defined __64BIT__ - #define __64BIT__ - #endif -#endif - -/* calling convention for native functions */ -#if !defined AMX_NATIVE_CALL - #define AMX_NATIVE_CALL -#endif -/* calling convention for all interface functions and callback functions */ -#if !defined AMXAPI - #if defined STDECL - #define AMXAPI __stdcall - #elif defined CDECL - #define AMXAPI __cdecl - #else - #define AMXAPI - #endif -#endif -#if !defined AMXEXPORT - #define AMXEXPORT -#endif - -#if !defined PAWN_CELL_SIZE - #define PAWN_CELL_SIZE 32 /* by default, use 32-bit cells */ -#endif -#if PAWN_CELL_SIZE==16 - typedef uint16_t ucell; - typedef int16_t cell; -#elif PAWN_CELL_SIZE==32 - typedef uint32_t ucell; - typedef int32_t cell; -#define REAL float -#elif PAWN_CELL_SIZE==64 - typedef uint64_t ucell; - typedef int64_t cell; -#define REAL double -#else - #error Unsupported cell size (PAWN_CELL_SIZE) -#endif - -#define UNPACKEDMAX ((1 << (sizeof(cell)-1)*8) - 1) -#define UNLIMITED (~1u >> 1) - -struct tagAMX; -typedef cell (AMX_NATIVE_CALL *AMX_NATIVE)(struct tagAMX *amx, cell *params); -typedef int (AMXAPI *AMX_CALLBACK)(struct tagAMX *amx, cell index, - cell *result, cell *params); -typedef int (AMXAPI *AMX_DEBUG)(struct tagAMX *amx); -#if !defined _FAR - #define _FAR -#endif - -#if defined _MSC_VER - #pragma warning(disable:4103) /* disable warning message 4103 that complains - * about pragma pack in a header file */ - #pragma warning(disable:4100) /* "'%$S' : unreferenced formal parameter" */ -#endif - - -/* Some compilers do not support the #pragma align, which should be fine. Some - * compilers give a warning on unknown #pragmas, which is not so fine... - */ -#if (defined SN_TARGET_PS2 || defined __GNUC__) && !defined AMX_NO_ALIGN - #define AMX_NO_ALIGN -#endif - -#if defined __GNUC__ - #define PACKED __attribute__((packed)) -#else - #define PACKED -#endif - -#if !defined AMX_NO_ALIGN - #if defined LINUX || defined __FreeBSD__ - #pragma pack(1) /* structures must be packed (byte-aligned) */ - #elif defined MACOS && defined __MWERKS__ - #pragma options align=mac68k - #else - #pragma pack(push) - #pragma pack(1) /* structures must be packed (byte-aligned) */ - #if defined __TURBOC__ - #pragma option -a- /* "pack" pragma for older Borland compilers */ - #endif - #endif -#endif - -typedef struct { - const char _FAR *name PACKED; - AMX_NATIVE func PACKED; -} AMX_NATIVE_INFO; - -#define AMX_USERNUM 4 - -/* The AMX structure is the internal structure for many functions. Not all - * fields are valid at all times; many fields are cached in local variables. - */ -typedef struct tagAMX { - unsigned char _FAR *base PACKED; /* points to the AMX header plus the code, optionally also the data */ - unsigned char _FAR *data PACKED; /* points to separate data+stack+heap, may be NULL */ - AMX_CALLBACK callback PACKED; - AMX_DEBUG debug PACKED; /* debug callback */ - /* for external functions a few registers must be accessible from the outside */ - cell cip PACKED; /* instruction pointer: relative to base + amxhdr->cod */ - cell frm PACKED; /* stack frame base: relative to base + amxhdr->dat */ - cell hea PACKED; /* top of the heap: relative to base + amxhdr->dat */ - cell hlw PACKED; /* bottom of the heap: relative to base + amxhdr->dat */ - cell stk PACKED; /* stack pointer: relative to base + amxhdr->dat */ - cell stp PACKED; /* top of the stack: relative to base + amxhdr->dat */ - int flags PACKED; /* current status, see amx_Flags() */ - /* user data */ - long usertags[AMX_USERNUM] PACKED; - //okay userdata[3] in AMX Mod X is for the CPlugin * pointer - //we're also gonna set userdata[2] to a special debug structure - void _FAR *userdata[AMX_USERNUM] PACKED; - /* native functions can raise an error */ - int error PACKED; - /* passing parameters requires a "count" field */ - int paramcount; - /* the sleep opcode needs to store the full AMX status */ - cell pri PACKED; - cell alt PACKED; - cell reset_stk PACKED; - cell reset_hea PACKED; - cell sysreq_d PACKED; /* relocated address/value for the SYSREQ.D opcode */ - /* support variables for the JIT */ - int reloc_size PACKED; /* required temporary buffer for relocations */ - long code_size PACKED; /* estimated memory footprint of the native code */ -} PACKED AMX; - -enum { - AMX_ERR_NONE, - /* reserve the first 15 error codes for exit codes of the abstract machine */ - AMX_ERR_EXIT, /* forced exit */ - AMX_ERR_ASSERT, /* assertion failed */ - AMX_ERR_STACKERR, /* stack/heap collision */ - AMX_ERR_BOUNDS, /* index out of bounds */ - AMX_ERR_MEMACCESS, /* invalid memory access */ - AMX_ERR_INVINSTR, /* invalid instruction */ - AMX_ERR_STACKLOW, /* stack underflow */ - AMX_ERR_HEAPLOW, /* heap underflow */ - AMX_ERR_CALLBACK, /* no callback, or invalid callback */ - AMX_ERR_NATIVE, /* native function failed */ - AMX_ERR_DIVIDE, /* divide by zero */ - AMX_ERR_SLEEP, /* go into sleepmode - code can be restarted */ - AMX_ERR_INVSTATE, /* invalid state for this access */ - - AMX_ERR_MEMORY = 16, /* out of memory */ - AMX_ERR_FORMAT, /* invalid file format */ - AMX_ERR_VERSION, /* file is for a newer version of the AMX */ - AMX_ERR_NOTFOUND, /* function not found */ - AMX_ERR_INDEX, /* invalid index parameter (bad entry point) */ - AMX_ERR_DEBUG, /* debugger cannot run */ - AMX_ERR_INIT, /* AMX not initialized (or doubly initialized) */ - AMX_ERR_USERDATA, /* unable to set user data field (table full) */ - AMX_ERR_INIT_JIT, /* cannot initialize the JIT */ - AMX_ERR_PARAMS, /* parameter error */ - AMX_ERR_DOMAIN, /* domain error, expression result does not fit in range */ -}; - -#if !defined AMX_NO_ALIGN - #if defined __linux__ - #pragma pack() /* reset default packing */ - #else - #pragma pack(pop) /* reset previous packing */ - #endif -#endif - - -// ***** declare functions ***** - -#ifdef USE_METAMOD -void UTIL_LogPrintf( char *fmt, ... ); -void UTIL_HudMessage(CBaseEntity *pEntity, const hudtextparms_t &textparms, const char *pMessage); -short FixedSigned16( float value, float scale ); -unsigned short FixedUnsigned16( float value, float scale ); - -#ifdef FN_META_QUERY -void FN_META_QUERY(void); -#endif // FN_META_QUERY - -#ifdef FN_META_ATTACH -void FN_META_ATTACH(void); -#endif // FN_META_ATTACH - -#ifdef FN_META_DETACH -void FN_META_DETACH(void); -#endif // FN_META_DETACH - - - - - -#ifdef FN_GameDLLInit -void FN_GameDLLInit(void); -#endif // FN_GameDLLInit - -#ifdef FN_DispatchSpawn -int FN_DispatchSpawn(edict_t *pent); -#endif // FN_DispatchSpawn - -#ifdef FN_DispatchThink -void FN_DispatchThink(edict_t *pent); -#endif // FN_DispatchThink - -#ifdef FN_DispatchUse -void FN_DispatchUse(edict_t *pentUser, edict_t *pentOther); -#endif // FN_DispatchUse - -#ifdef FN_DispatchTouch -void FN_DispatchTouch(edict_t *pentTouched, edict_t *pentOther); -#endif // FN_DispatchTouch - -#ifdef FN_DispatchBlocked -void FN_DispatchBlocked(edict_t *pentBlocked, edict_t *pentOther); -#endif // FN_DispatchBlocked - -#ifdef FN_DispatchKeyValue -void FN_DispatchKeyValue(edict_t *pentKeyvalue, KeyValueData *pkvd); -#endif // FN_DispatchKeyValue - -#ifdef FN_DispatchSave -void FN_DispatchSave(edict_t *pent, SAVERESTOREDATA *pSaveData); -#endif // FN_DispatchSave - -#ifdef FN_DispatchRestore -int FN_DispatchRestore(edict_t *pent, SAVERESTOREDATA *pSaveData, int globalEntity); -#endif // FN_DispatchRestore - -#ifdef FN_DispatchObjectCollsionBox -void FN_DispatchObjectCollsionBox(edict_t *pent); -#endif // FN_DispatchObjectCollsionBox - -#ifdef FN_SaveWriteFields -void FN_SaveWriteFields(SAVERESTOREDATA *pSaveData, const char *pname, void *pBaseData, TYPEDESCRIPTION *pFields, int fieldCount); -#endif // FN_SaveWriteFields - -#ifdef FN_SaveReadFields -void FN_SaveReadFields(SAVERESTOREDATA *pSaveData, const char *pname, void *pBaseData, TYPEDESCRIPTION *pFields, int fieldCount); -#endif // FN_SaveReadFields - -#ifdef FN_SaveGlobalState -void FN_SaveGlobalState(SAVERESTOREDATA *pSaveData); -#endif // FN_SaveGlobalState - -#ifdef FN_RestoreGlobalState -void FN_RestoreGlobalState(SAVERESTOREDATA *pSaveData); -#endif // FN_RestoreGlobalState - -#ifdef FN_ResetGlobalState -void FN_ResetGlobalState(void); -#endif // FN_ResetGlobalState - -#ifdef FN_ClientConnect -BOOL FN_ClientConnect(edict_t *pEntity, const char *pszName, const char *pszAddress, char szRejectReason[ 128 ]); -#endif // FN_ClientConnect - -#ifdef FN_ClientDisconnect -void FN_ClientDisconnect(edict_t *pEntity); -#endif // FN_ClientDisconnect - -#ifdef FN_ClientKill -void FN_ClientKill(edict_t *pEntity); -#endif // FN_ClientKill - -#ifdef FN_ClientPutInServer -void FN_ClientPutInServer(edict_t *pEntity); -#endif // FN_ClientPutInServer - -#ifdef FN_ClientCommand -void FN_ClientCommand(edict_t *pEntity); -#endif // FN_ClientCommand - -#ifdef FN_ClientUserInfoChanged -void FN_ClientUserInfoChanged(edict_t *pEntity, char *infobuffer); -#endif // FN_ClientUserInfoChanged - -#ifdef FN_ServerActivate -void FN_ServerActivate(edict_t *pEdictList, int edictCount, int clientMax); -#endif // FN_ServerActivate - -#ifdef FN_ServerDeactivate -void FN_ServerDeactivate(void); -#endif // FN_ServerDeactivate - -#ifdef FN_PlayerPreThink -void FN_PlayerPreThink(edict_t *pEntity); -#endif // FN_PlayerPreThink - -#ifdef FN_PlayerPostThink -void FN_PlayerPostThink(edict_t *pEntity); -#endif // FN_PlayerPostThink - -#ifdef FN_StartFrame -void FN_StartFrame(void); -#endif // FN_StartFrame - -#ifdef FN_ParmsNewLevel -void FN_ParmsNewLevel(void); -#endif // FN_ParmsNewLevel - -#ifdef FN_ParmsChangeLevel -void FN_ParmsChangeLevel(void); -#endif // FN_ParmsChangeLevel - -#ifdef FN_GetGameDescription -const char *FN_GetGameDescription(void); -#endif // FN_GetGameDescription - -#ifdef FN_PlayerCustomization -void FN_PlayerCustomization(edict_t *pEntity, customization_t *pCust); -#endif // FN_PlayerCustomization - -#ifdef FN_SpectatorConnect -void FN_SpectatorConnect(edict_t *pEntity); -#endif // FN_SpectatorConnect - -#ifdef FN_SpectatorDisconnect -void FN_SpectatorDisconnect(edict_t *pEntity); -#endif // FN_SpectatorDisconnect - -#ifdef FN_SpectatorThink -void FN_SpectatorThink(edict_t *pEntity); -#endif // FN_SpectatorThink - -#ifdef FN_Sys_Error -void FN_Sys_Error(const char *error_string); -#endif // FN_Sys_Error - -#ifdef FN_PM_Move -void FN_PM_Move(struct playermove_s *ppmove, int server); -#endif // FN_PM_Move - -#ifdef FN_PM_Init -void FN_PM_Init(struct playermove_s *ppmove); -#endif // FN_PM_Init - -#ifdef FN_PM_FindTextureType -char FN_PM_FindTextureType(char *name); -#endif // FN_PM_FindTextureType - -#ifdef FN_SetupVisibility -void FN_SetupVisibility(edict_t *pViewEntity, edict_t *pClient, unsigned char **pvs, unsigned char **pas); -#endif // FN_SetupVisibility - -#ifdef FN_UpdateClientData -void FN_UpdateClientData(const struct edict_s *ent, int sendweapons, struct clientdata_s *cd); -#endif // FN_UpdateClientData - -#ifdef FN_AddToFullPack -int FN_AddToFullPack(struct entity_state_s *state, int e, edict_t *ent, edict_t *host, int hostflags, int player, unsigned char *pSet); -#endif // FN_AddToFullPack - -#ifdef FN_CreateBaseline -void FN_CreateBaseline(int player, int eindex, struct entity_state_s *baseline, struct edict_s *entity, int playermodelindex, vec3_t player_mins, vec3_t player_maxs); -#endif // FN_CreateBaseline - -#ifdef FN_RegisterEncoders -void FN_RegisterEncoders(void); -#endif // FN_RegisterEncoders - -#ifdef FN_GetWeaponData -int FN_GetWeaponData(struct edict_s *player, struct weapon_data_s *info); -#endif // FN_GetWeaponData - -#ifdef FN_CmdStart -void FN_CmdStart(const edict_t *player, const struct usercmd_s *cmd, unsigned int random_seed); -#endif // FN_CmdStart - -#ifdef FN_CmdEnd -void FN_CmdEnd(const edict_t *player); -#endif // FN_CmdEnd - -#ifdef FN_ConnectionlessPacket -int FN_ConnectionlessPacket(const struct netadr_s *net_from, const char *args, char *response_buffer, int *response_buffer_size); -#endif // FN_ConnectionlessPacket - -#ifdef FN_GetHullBounds -int FN_GetHullBounds(int hullnumber, float *mins, float *maxs); -#endif // FN_GetHullBounds - -#ifdef FN_CreateInstancedBaselines -void FN_CreateInstancedBaselines(void); -#endif // FN_CreateInstancedBaselines - -#ifdef FN_InconsistentFile -int FN_InconsistentFile(const edict_t *player, const char *filename, char *disconnect_message); -#endif // FN_InconsistentFile - -#ifdef FN_AllowLagCompensation -int FN_AllowLagCompensation(void); -#endif // FN_AllowLagCompensation - - - - -#ifdef FN_GameDLLInit_Post -void FN_GameDLLInit_Post(void); -#endif // FN_GameDLLInit_Post - -#ifdef FN_DispatchSpawn_Post -int FN_DispatchSpawn_Post(edict_t *pent); -#endif // FN_DispatchSpawn_Post - -#ifdef FN_DispatchThink_Post -void FN_DispatchThink_Post(edict_t *pent); -#endif // FN_DispatchThink_Post - -#ifdef FN_DispatchUse_Post -void FN_DispatchUse_Post(edict_t *pentUser, edict_t *pentOther); -#endif // FN_DispatchUse_Post - -#ifdef FN_DispatchTouch_Post -void FN_DispatchTouch_Post(edict_t *pentTouched, edict_t *pentOther); -#endif // FN_DispatchTouch_Post - -#ifdef FN_DispatchBlocked_Post -void FN_DispatchBlocked_Post(edict_t *pentBlocked, edict_t *pentOther); -#endif // FN_DispatchBlocked_Post - -#ifdef FN_DispatchKeyValue_Post -void FN_DispatchKeyValue_Post(edict_t *pentKeyvalue, KeyValueData *pkvd); -#endif // FN_DispatchKeyValue_Post - -#ifdef FN_DispatchSave_Post -void FN_DispatchSave_Post(edict_t *pent, SAVERESTOREDATA *pSaveData); -#endif // FN_DispatchSave_Post - -#ifdef FN_DispatchRestore_Post -int FN_DispatchRestore_Post(edict_t *pent, SAVERESTOREDATA *pSaveData, int globalEntity); -#endif // FN_DispatchRestore_Post - -#ifdef FN_DispatchObjectCollsionBox_Post -void FN_DispatchObjectCollsionBox_Post(edict_t *pent); -#endif // FN_DispatchObjectCollsionBox_Post - -#ifdef FN_SaveWriteFields_Post -void FN_SaveWriteFields_Post(SAVERESTOREDATA *pSaveData, const char *pname, void *pBaseData, TYPEDESCRIPTION *pFields, int fieldCount); -#endif // FN_SaveWriteFields_Post - -#ifdef FN_SaveReadFields_Post -void FN_SaveReadFields_Post(SAVERESTOREDATA *pSaveData, const char *pname, void *pBaseData, TYPEDESCRIPTION *pFields, int fieldCount); -#endif // FN_SaveReadFields_Post - -#ifdef FN_SaveGlobalState_Post -void FN_SaveGlobalState_Post(SAVERESTOREDATA *pSaveData); -#endif // FN_SaveGlobalState_Post - -#ifdef FN_RestoreGlobalState_Post -void FN_RestoreGlobalState_Post(SAVERESTOREDATA *pSaveData); -#endif // FN_RestoreGlobalState_Post - -#ifdef FN_ResetGlobalState_Post -void FN_ResetGlobalState_Post(void); -#endif // FN_ResetGlobalState_Post - -#ifdef FN_ClientConnect_Post -BOOL FN_ClientConnect_Post(edict_t *pEntity, const char *pszName, const char *pszAddress, char szRejectReason[ 128 ]); -#endif // FN_ClientConnect_Post - -#ifdef FN_ClientDisconnect_Post -void FN_ClientDisconnect_Post(edict_t *pEntity); -#endif // FN_ClientDisconnect_Post - -#ifdef FN_ClientKill_Post -void FN_ClientKill_Post(edict_t *pEntity); -#endif // FN_ClientKill_Post - -#ifdef FN_ClientPutInServer_Post -void FN_ClientPutInServer_Post(edict_t *pEntity); -#endif // FN_ClientPutInServer_Post - -#ifdef FN_ClientCommand_Post -void FN_ClientCommand_Post(edict_t *pEntity); -#endif // FN_ClientCommand_Post - -#ifdef FN_ClientUserInfoChanged_Post -void FN_ClientUserInfoChanged_Post(edict_t *pEntity, char *infobuffer); -#endif // FN_ClientUserInfoChanged_Post - -#ifdef FN_ServerActivate_Post -void FN_ServerActivate_Post(edict_t *pEdictList, int edictCount, int clientMax); -#endif // FN_ServerActivate_Post - -#ifdef FN_ServerDeactivate_Post -void FN_ServerDeactivate_Post(void); -#endif // FN_ServerDeactivate_Post - -#ifdef FN_PlayerPreThink_Post -void FN_PlayerPreThink_Post(edict_t *pEntity); -#endif // FN_PlayerPreThink_Post - -#ifdef FN_PlayerPostThink_Post -void FN_PlayerPostThink_Post(edict_t *pEntity); -#endif // FN_PlayerPostThink_Post - -#ifdef FN_StartFrame_Post -void FN_StartFrame_Post(void); -#endif // FN_StartFrame_Post - -#ifdef FN_ParmsNewLevel_Post -void FN_ParmsNewLevel_Post(void); -#endif // FN_ParmsNewLevel_Post - -#ifdef FN_ParmsChangeLevel_Post -void FN_ParmsChangeLevel_Post(void); -#endif // FN_ParmsChangeLevel_Post - -#ifdef FN_GetGameDescription_Post -const char *FN_GetGameDescription_Post(void); -#endif // FN_GetGameDescription_Post - -#ifdef FN_PlayerCustomization_Post -void FN_PlayerCustomization_Post(edict_t *pEntity, customization_t *pCust); -#endif // FN_PlayerCustomization_Post - -#ifdef FN_SpectatorConnect_Post -void FN_SpectatorConnect_Post(edict_t *pEntity); -#endif // FN_SpectatorConnect_Post - -#ifdef FN_SpectatorDisconnect_Post -void FN_SpectatorDisconnect_Post(edict_t *pEntity); -#endif // FN_SpectatorDisconnect_Post - -#ifdef FN_SpectatorThink_Post -void FN_SpectatorThink_Post(edict_t *pEntity); -#endif // FN_SpectatorThink_Post - -#ifdef FN_Sys_Error_Post -void FN_Sys_Error_Post(const char *error_string); -#endif // FN_Sys_Error_Post - -#ifdef FN_PM_Move_Post -void FN_PM_Move_Post(struct playermove_s *ppmove, int server); -#endif // FN_PM_Move_Post - -#ifdef FN_PM_Init_Post -void FN_PM_Init_Post(struct playermove_s *ppmove); -#endif // FN_PM_Init_Post - -#ifdef FN_PM_FindTextureType_Post -char FN_PM_FindTextureType_Post(char *name); -#endif // FN_PM_FindTextureType_Post - -#ifdef FN_SetupVisibility_Post -void FN_SetupVisibility_Post(edict_t *pViewEntity, edict_t *pClient, unsigned char **pvs, unsigned char **pas); -#endif // FN_SetupVisibility_Post - -#ifdef FN_UpdateClientData_Post -void FN_UpdateClientData_Post(const struct edict_s *ent, int sendweapons, struct clientdata_s *cd); -#endif // FN_UpdateClientData_Post - -#ifdef FN_AddToFullPack_Post -int FN_AddToFullPack_Post(struct entity_state_s *state, int e, edict_t *ent, edict_t *host, int hostflags, int player, unsigned char *pSet); -#endif // FN_AddToFullPack_Post - -#ifdef FN_CreateBaseline_Post -void FN_CreateBaseline_Post(int player, int eindex, struct entity_state_s *baseline, struct edict_s *entity, int playermodelindex, vec3_t player_mins, vec3_t player_maxs); -#endif // FN_CreateBaseline_Post - -#ifdef FN_RegisterEncoders_Post -void FN_RegisterEncoders_Post(void); -#endif // FN_RegisterEncoders_Post - -#ifdef FN_GetWeaponData_Post -int FN_GetWeaponData_Post(struct edict_s *player, struct weapon_data_s *info); -#endif // FN_GetWeaponData_Post - -#ifdef FN_CmdStart_Post -void FN_CmdStart_Post(const edict_t *player, const struct usercmd_s *cmd, unsigned int random_seed); -#endif // FN_CmdStart_Post - -#ifdef FN_CmdEnd_Post -void FN_CmdEnd_Post(const edict_t *player); -#endif // FN_CmdEnd_Post - -#ifdef FN_ConnectionlessPacket_Post -int FN_ConnectionlessPacket_Post(const struct netadr_s *net_from, const char *args, char *response_buffer, int *response_buffer_size); -#endif // FN_ConnectionlessPacket_Post - -#ifdef FN_GetHullBounds_Post -int FN_GetHullBounds_Post(int hullnumber, float *mins, float *maxs); -#endif // FN_GetHullBounds_Post - -#ifdef FN_CreateInstancedBaselines_Post -void FN_CreateInstancedBaselines_Post(void); -#endif // FN_CreateInstancedBaselines_Post - -#ifdef FN_InconsistentFile_Post -int FN_InconsistentFile_Post(const edict_t *player, const char *filename, char *disconnect_message); -#endif // FN_InconsistentFile_Post - -#ifdef FN_AllowLagCompensation_Post -int FN_AllowLagCompensation_Post(void); -#endif // FN_AllowLagCompensation_Post - - - -#ifdef FN_PrecacheModel -int FN_PrecacheModel(char *s); -#endif // FN_PrecacheModel - -#ifdef FN_PrecacheSound -int FN_PrecacheSound(char *s); -#endif // FN_PrecacheSound - -#ifdef FN_SetModel -void FN_SetModel(edict_t *e, const char *m); -#endif // FN_SetModel - -#ifdef FN_ModelIndex -int FN_ModelIndex(const char *m); -#endif // FN_ModelIndex - -#ifdef FN_ModelFrames -int FN_ModelFrames(int modelIndex); -#endif // FN_ModelFrames - -#ifdef FN_SetSize -void FN_SetSize(edict_t *e, const float *rgflMin, const float *rgflMax); -#endif // FN_SetSize - -#ifdef FN_ChangeLevel -void FN_ChangeLevel(char *s1, char *s2); -#endif // FN_ChangeLevel - -#ifdef FN_GetSpawnParms -void FN_GetSpawnParms(edict_t *ent); -#endif // FN_GetSpawnParms - -#ifdef FN_SaveSpawnParms -void FN_SaveSpawnParms(edict_t *ent); -#endif // FN_SaveSpawnParms - -#ifdef FN_VecToYaw -float FN_VecToYaw(const float *rgflVector); -#endif // FN_VecToYaw - -#ifdef FN_VecToAngles -void FN_VecToAngles(const float *rgflVectorIn, float *rgflVectorOut); -#endif // FN_VecToAngles - -#ifdef FN_MoveToOrigin -void FN_MoveToOrigin(edict_t *ent, const float *pflGoal, float dist, int iMoveType); -#endif // FN_MoveToOrigin - -#ifdef FN_ChangeYaw -void FN_ChangeYaw(edict_t *ent); -#endif // FN_ChangeYaw - -#ifdef FN_ChangePitch -void FN_ChangePitch(edict_t *ent); -#endif // FN_ChangePitch - -#ifdef FN_FindEntityByString -edict_t *FN_FindEntityByString(edict_t *pEdictStartSearchAfter, const char *pszField, const char *pszValue); -#endif // FN_FindEntityByString - -#ifdef FN_GetEntityIllum -int FN_GetEntityIllum(edict_t *pEnt); -#endif // FN_GetEntityIllum - -#ifdef FN_FindEntityInSphere -edict_t *FN_FindEntityInSphere(edict_t *pEdictStartSearchAfter, const float *org, float rad); -#endif // FN_FindEntityInSphere - -#ifdef FN_FindClientInPVS -edict_t *FN_FindClientInPVS(edict_t *pEdict); -#endif // FN_FindClientInPVS - -#ifdef FN_EntitiesInPVS -edict_t *FN_EntitiesInPVS(edict_t *pplayer); -#endif // FN_EntitiesInPVS - -#ifdef FN_MakeVectors -void FN_MakeVectors(const float *rgflVector); -#endif // FN_MakeVectors - -#ifdef FN_AngleVectors -void FN_AngleVectors(const float *rgflVector, float *forward, float *right, float *up); -#endif // FN_AngleVectors - -#ifdef FN_CreateEntity -edict_t *FN_CreateEntity(void); -#endif // FN_CreateEntity - -#ifdef FN_RemoveEntity -void FN_RemoveEntity(edict_t *e); -#endif // FN_RemoveEntity - -#ifdef FN_CreateNamedEntity -edict_t *FN_CreateNamedEntity(int className); -#endif // FN_CreateNamedEntity - -#ifdef FN_MakeStatic -void FN_MakeStatic(edict_t *ent); -#endif // FN_MakeStatic - -#ifdef FN_EntIsOnFloor -int FN_EntIsOnFloor(edict_t *ent); -#endif // FN_EntIsOnFloor - -#ifdef FN_DropToFloor -int FN_DropToFloor(edict_t *ent); -#endif // FN_DropToFloor - -#ifdef FN_WalkMove -int FN_WalkMove(edict_t *ent, float yaw, float dist, int iMode); -#endif // FN_WalkMove - -#ifdef FN_SetOrigin -void FN_SetOrigin(edict_t *e, const float *rgflOrigin); -#endif // FN_SetOrigin - -#ifdef FN_EmitSound -void FN_EmitSound(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch); -#endif // FN_EmitSound - -#ifdef FN_EmitAmbientSound -void FN_EmitAmbientSound(edict_t *entity, float *pos, const char *samp, float vol, float attenuation, int fFlags, int pitch); -#endif // FN_EmitAmbientSound - -#ifdef FN_TraceLine -void FN_TraceLine(const float *v1, const float *v2, int fNoMonsters, edict_t *pentToSkip, TraceResult *ptr); -#endif // FN_TraceLine - -#ifdef FN_TraceToss -void FN_TraceToss(edict_t *pent, edict_t *pentToIgnore, TraceResult *ptr); -#endif // FN_TraceToss - -#ifdef FN_TraceMonsterHull -int FN_TraceMonsterHull(edict_t *pEdict, const float *v1, const float *v2, int fNoMonsters, edict_t *pentToSkip, TraceResult *ptr); -#endif // FN_TraceMonsterHull - -#ifdef FN_TraceHull -void FN_TraceHull(const float *v1, const float *v2, int fNoMonsters, int hullNumber, edict_t *pentToSkip, TraceResult *ptr); -#endif // FN_TraceHull - -#ifdef FN_TraceModel -void FN_TraceModel(const float *v1, const float *v2, int hullNumber, edict_t *pent, TraceResult *ptr); -#endif // FN_TraceModel - -#ifdef FN_TraceTexture -const char *FN_TraceTexture(edict_t *pTextureEntity, const float *v1, const float *v2 ); -#endif // FN_TraceTexture - -#ifdef FN_TraceSphere -void FN_TraceSphere(const float *v1, const float *v2, int fNoMonsters, float radius, edict_t *pentToSkip, TraceResult *ptr); -#endif // FN_TraceSphere - -#ifdef FN_GetAimVector -void FN_GetAimVector(edict_t *ent, float speed, float *rgflReturn); -#endif // FN_GetAimVector - -#ifdef FN_ServerCommand -void FN_ServerCommand(char *str); -#endif // FN_ServerCommand - -#ifdef FN_ServerExecute -void FN_ServerExecute(void); -#endif // FN_ServerExecute - -#ifdef FN_engClientCommand -void FN_engClientCommand(edict_t *pEdict, char *szFmt, ...); -#endif // FN_engClientCommand - -#ifdef FN_ParticleEffect -void FN_ParticleEffect(const float *org, const float *dir, float color, float count); -#endif // FN_ParticleEffect - -#ifdef FN_LightStyle -void FN_LightStyle(int style, char *val); -#endif // FN_LightStyle - -#ifdef FN_DecalIndex -int FN_DecalIndex(const char *name); -#endif // FN_DecalIndex - -#ifdef FN_PointContents -int FN_PointContents(const float *rgflVector); -#endif // FN_PointContents - -#ifdef FN_MessageBegin -void FN_MessageBegin(int msg_dest, int msg_type, const float *pOrigin, edict_t *ed); -#endif // FN_MessageBegin - -#ifdef FN_MessageEnd -void FN_MessageEnd(void); -#endif // FN_MessageEnd - -#ifdef FN_WriteByte -void FN_WriteByte(int iValue); -#endif // FN_WriteByte - -#ifdef FN_WriteChar -void FN_WriteChar(int iValue); -#endif // FN_WriteChar - -#ifdef FN_WriteShort -void FN_WriteShort(int iValue); -#endif // FN_WriteShort - -#ifdef FN_WriteLong -void FN_WriteLong(int iValue); -#endif // FN_WriteLong - -#ifdef FN_WriteAngle -void FN_WriteAngle(float flValue); -#endif // FN_WriteAngle - -#ifdef FN_WriteCoord -void FN_WriteCoord(float flValue); -#endif // FN_WriteCoord - -#ifdef FN_WriteString -void FN_WriteString(const char *sz); -#endif // FN_WriteString - -#ifdef FN_WriteEntity -void FN_WriteEntity(int iValue); -#endif // FN_WriteEntity - -#ifdef FN_CVarRegister -void FN_CVarRegister(cvar_t *pCvar); -#endif // FN_CVarRegister - -#ifdef FN_CVarGetFloat -float FN_CVarGetFloat(const char *szVarName); -#endif // FN_CVarGetFloat - -#ifdef FN_CVarGetString -const char *FN_CVarGetString(const char *szVarName); -#endif // FN_CVarGetString - -#ifdef FN_CVarSetFloat -void FN_CVarSetFloat(const char *szVarName, float flValue); -#endif // FN_CVarSetFloat - -#ifdef FN_CVarSetString -void FN_CVarSetString(const char *szVarName, const char *szValue); -#endif // FN_CVarSetString - -#ifdef FN_AlertMessage -void FN_AlertMessage(ALERT_TYPE atype, char *szFmt, ...); -#endif // FN_AlertMessage - -#ifdef FN_EngineFprintf -void FN_EngineFprintf(FILE *pfile, char *szFmt, ...); -#endif // FN_EngineFprintf - -#ifdef FN_PvAllocEntPrivateData -void *FN_PvAllocEntPrivateData(edict_t *pEdict, int32 cb); -#endif // FN_PvAllocEntPrivateData - -#ifdef FN_PvEntPrivateData -void *FN_PvEntPrivateData(edict_t *pEdict); -#endif // FN_PvEntPrivateData - -#ifdef FN_FreeEntPrivateData -void FN_FreeEntPrivateData(edict_t *pEdict); -#endif // FN_FreeEntPrivateData - -#ifdef FN_SzFromIndex -const char *FN_SzFromIndex(int iString); -#endif // FN_SzFromIndex - -#ifdef FN_AllocString -int FN_AllocString(const char *szValue); -#endif // FN_AllocString - -#ifdef FN_GetVarsOfEnt -struct entvars_s *FN_GetVarsOfEnt(edict_t *pEdict); -#endif // FN_GetVarsOfEnt - -#ifdef FN_PEntityOfEntOffset -edict_t *FN_PEntityOfEntOffset(int iEntOffset); -#endif // FN_PEntityOfEntOffset - -#ifdef FN_EntOffsetOfPEntity -int FN_EntOffsetOfPEntity(const edict_t *pEdict); -#endif // FN_EntOffsetOfPEntity - -#ifdef FN_IndexOfEdict -int FN_IndexOfEdict(const edict_t *pEdict); -#endif // FN_IndexOfEdict - -#ifdef FN_PEntityOfEntIndex -edict_t *FN_PEntityOfEntIndex(int iEntIndex); -#endif // FN_PEntityOfEntIndex - -#ifdef FN_FindEntityByVars -edict_t *FN_FindEntityByVars(struct entvars_s *pvars); -#endif // FN_FindEntityByVars - -#ifdef FN_GetModelPtr -void *FN_GetModelPtr(edict_t *pEdict); -#endif // FN_GetModelPtr - -#ifdef FN_RegUserMsg -int FN_RegUserMsg(const char *pszName, int iSize); -#endif // FN_RegUserMsg - -#ifdef FN_AnimationAutomove -void FN_AnimationAutomove(const edict_t *pEdict, float flTime); -#endif // FN_AnimationAutomove - -#ifdef FN_GetBonePosition -void FN_GetBonePosition(const edict_t *pEdict, int iBone, float *rgflOrigin, float *rgflAngles); -#endif // FN_GetBonePosition - -#ifdef FN_FunctionFromName -unsigned long FN_FunctionFromName(const char *pName); -#endif // FN_FunctionFromName - -#ifdef FN_NameForFunction -const char *FN_NameForFunction(unsigned long function); -#endif // FN_NameForFunction - -#ifdef FN_ClientPrintf -void FN_ClientPrintf(edict_t *pEdict, PRINT_TYPE ptype, const char *szMsg); -#endif // FN_ClientPrintf - -#ifdef FN_ServerPrint -void FN_ServerPrint(const char *szMsg); -#endif // FN_ServerPrint - -#ifdef FN_Cmd_Args -const char *FN_Cmd_Args(void); -#endif // FN_Cmd_Args - -#ifdef FN_Cmd_Argv -const char *FN_Cmd_Argv(int argc); -#endif // FN_Cmd_Argv - -#ifdef FN_Cmd_Argc -int FN_Cmd_Argc(void); -#endif // FN_Cmd_Argc - -#ifdef FN_GetAttachment -void FN_GetAttachment(const edict_t *pEdict, int iAttachment, float *rgflOrigin, float *rgflAngles ); -#endif // FN_GetAttachment - -#ifdef FN_CRC32_Init -void FN_CRC32_Init(CRC32_t *pulCRC); -#endif // FN_CRC32_Init - -#ifdef FN_CRC32_ProcessBuffer -void FN_CRC32_ProcessBuffer(CRC32_t *pulCRC, void *p, int len); -#endif // FN_CRC32_ProcessBuffer - -#ifdef FN_CRC32_ProcessByte -void FN_CRC32_ProcessByte(CRC32_t *pulCRC, unsigned char ch); -#endif // FN_CRC32_ProcessByte - -#ifdef FN_CRC32_Final -CRC32_t FN_CRC32_Final(CRC32_t pulCRC); -#endif // FN_CRC32_Final - -#ifdef FN_RandomLong -long FN_RandomLong(long lLow, long lHigh); -#endif // FN_RandomLong - -#ifdef FN_RandomFloat -float FN_RandomFloat(float flLow, float flHigh); -#endif // FN_RandomFloat - -#ifdef FN_SetView -void FN_SetView(const edict_t *pClient, const edict_t *pViewent); -#endif // FN_SetView - -#ifdef FN_Time -float FN_Time(void); -#endif // FN_Time - -#ifdef FN_CrosshairAngle -void FN_CrosshairAngle(const edict_t *pClient, float pitch, float yaw); -#endif // FN_CrosshairAngle - -#ifdef FN_LoadFileForMe -byte *FN_LoadFileForMe(char *filename, int *pLength); -#endif // FN_LoadFileForMe - -#ifdef FN_FreeFile -void FN_FreeFile(void *buffer); -#endif // FN_FreeFile - -#ifdef FN_EndSection -void FN_EndSection(const char *pszSectionName); -#endif // FN_EndSection - -#ifdef FN_CompareFileTime -int FN_CompareFileTime(char *filename1, char *filename2, int *iCompare); -#endif // FN_CompareFileTime - -#ifdef FN_GetGameDir -void FN_GetGameDir(char *szGetGameDir); -#endif // FN_GetGameDir - -#ifdef FN_Cvar_RegisterVariable -void FN_Cvar_RegisterVariable(cvar_t *variable); -#endif // FN_Cvar_RegisterVariable - -#ifdef FN_FadeClientVolume -void FN_FadeClientVolume(const edict_t *pEdict, int fadePercent, int fadeOutSeconds, int holdTime, int fadeInSeconds); -#endif // FN_FadeClientVolume - -#ifdef FN_SetClientMaxspeed -void FN_SetClientMaxspeed(const edict_t *pEdict, float fNewMaxspeed); -#endif // FN_SetClientMaxspeed - -#ifdef FN_CreateFakeClient -edict_t *FN_CreateFakeClient(const char *netname); -#endif // FN_CreateFakeClient - -#ifdef FN_RunPlayerMove -void FN_RunPlayerMove(edict_t *fakeclient, const float *viewangles, float forwardmove, float sidemove, float upmove, unsigned short buttons, byte impulse, byte msec); -#endif // FN_RunPlayerMove - -#ifdef FN_NumberOfEntities -int FN_NumberOfEntities(void); -#endif // FN_NumberOfEntities - -#ifdef FN_GetInfoKeyBuffer -char *FN_GetInfoKeyBuffer(edict_t *e); -#endif // FN_GetInfoKeyBuffer - -#ifdef FN_InfoKeyValue -char *FN_InfoKeyValue(char *infobuffer, char *key); -#endif // FN_InfoKeyValue - -#ifdef FN_SetKeyValue -void FN_SetKeyValue(char *infobuffer, char *key, char *value); -#endif // FN_SetKeyValue - -#ifdef FN_SetClientKeyValue -void FN_SetClientKeyValue(int clientIndex, char *infobuffer, char *key, char *value); -#endif // FN_SetClientKeyValue - -#ifdef FN_IsMapValid -int FN_IsMapValid(char *filename); -#endif // FN_IsMapValid - -#ifdef FN_StaticDecal -void FN_StaticDecal(const float *origin, int decalIndex, int entityIndex, int modelIndex); -#endif // FN_StaticDecal - -#ifdef FN_PrecacheGeneric -int FN_PrecacheGeneric(char *s); -#endif // FN_PrecacheGeneric - -#ifdef FN_GetPlayerUserId -int FN_GetPlayerUserId(edict_t *e ); -#endif // FN_GetPlayerUserId - -#ifdef FN_BuildSoundMsg -void FN_BuildSoundMsg(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed); -#endif // FN_BuildSoundMsg - -#ifdef FN_IsDedicatedServer -int FN_IsDedicatedServer(void); -#endif // FN_IsDedicatedServer - -#ifdef FN_CVarGetPointer -cvar_t *FN_CVarGetPointer(const char *szVarName); -#endif // FN_CVarGetPointer - -#ifdef FN_GetPlayerWONId -unsigned int FN_GetPlayerWONId(edict_t *e); -#endif // FN_GetPlayerWONId - -#ifdef FN_Info_RemoveKey -void FN_Info_RemoveKey( char *s, const char *key); -#endif // FN_Info_RemoveKey - -#ifdef FN_GetPhysicsKeyValue -const char *FN_GetPhysicsKeyValue(const edict_t *pClient, const char *key); -#endif // FN_GetPhysicsKeyValue - -#ifdef FN_SetPhysicsKeyValue -void FN_SetPhysicsKeyValue(const edict_t *pClient, const char *key, const char *value); -#endif // FN_SetPhysicsKeyValue - -#ifdef FN_GetPhysicsInfoString -const char *FN_GetPhysicsInfoString( const edict_t *pClient); -#endif // FN_GetPhysicsInfoString - -#ifdef FN_PrecacheEvent -unsigned short FN_PrecacheEvent(int type, const char *psz); -#endif // FN_PrecacheEvent - -#ifdef FN_PlaybackEvent -void FN_PlaybackEvent(int flags, const edict_t *pInvoker, unsigned short eventindex, float delay, float *origin, float *angles, float fparam1, float fparam2, int iparam1, int iparam2, int bparam1, int bparam2); -#endif // FN_PlaybackEvent - -#ifdef FN_SetFatPVS -unsigned char *FN_SetFatPVS(float *org); -#endif // FN_SetFatPVS - -#ifdef FN_SetFatPAS -unsigned char *FN_SetFatPAS(float *org); -#endif // FN_SetFatPAS - -#ifdef FN_CheckVisibility -int FN_CheckVisibility(const edict_t *entity, unsigned char *pset); -#endif // FN_CheckVisibility - -#ifdef FN_DeltaSetField -void FN_DeltaSetField(struct delta_s *pFields, const char *fieldname); -#endif // FN_DeltaSetField - -#ifdef FN_DeltaUnsetField -void FN_DeltaUnsetField(struct delta_s *pFields, const char *fieldname); -#endif // FN_DeltaUnsetField - -#ifdef FN_DeltaAddEncoder -void FN_DeltaAddEncoder(char *name, void (*conditionalencode)( struct delta_s *pFields, const unsigned char *from, const unsigned char *to ) ); -#endif // FN_DeltaAddEncoder - -#ifdef FN_GetCurrentPlayer -int FN_GetCurrentPlayer(void); -#endif // FN_GetCurrentPlayer - -#ifdef FN_CanSkipPlayer -int FN_CanSkipPlayer(const edict_t *player); -#endif // FN_CanSkipPlayer - -#ifdef FN_DeltaFindField -int FN_DeltaFindField(struct delta_s *pFields, const char *fieldname); -#endif // FN_DeltaFindField - -#ifdef FN_DeltaSetFieldByIndex -void FN_DeltaSetFieldByIndex(struct delta_s *pFields, int fieldNumber); -#endif // FN_DeltaSetFieldByIndex - -#ifdef FN_DeltaUnsetFieldByIndex -void FN_DeltaUnsetFieldByIndex(struct delta_s *pFields, int fieldNumber); -#endif // FN_DeltaUnsetFieldByIndex - -#ifdef FN_SetGroupMask -void FN_SetGroupMask(int mask, int op); -#endif // FN_SetGroupMask - -#ifdef FN_engCreateInstancedBaseline -int FN_engCreateInstancedBaseline(int classname, struct entity_state_s *baseline); -#endif // FN_engCreateInstancedBaseline - -#ifdef FN_Cvar_DirectSet -void FN_Cvar_DirectSet(struct cvar_s *var, char *value); -#endif // FN_Cvar_DirectSet - -#ifdef FN_ForceUnmodified -void FN_ForceUnmodified(FORCE_TYPE type, float *mins, float *maxs, const char *filename); -#endif // FN_ForceUnmodified - -#ifdef FN_GetPlayerStats -void FN_GetPlayerStats(const edict_t *pClient, int *ping, int *packet_loss); -#endif // FN_GetPlayerStats - -#ifdef FN_AddServerCommand -void FN_AddServerCommand(char *cmd_name, void (*function) (void)); -#endif // FN_AddServerCommand - -#ifdef FN_Voice_GetClientListening -qboolean FN_Voice_GetClientListening(int iReceiver, int iSender); -#endif // FN_Voice_GetClientListening - -#ifdef FN_Voice_SetClientListening -qboolean FN_Voice_SetClientListening(int iReceiver, int iSender, qboolean bListen); -#endif // FN_Voice_SetClientListening - -#ifdef FN_GetPlayerAuthId -const char *FN_GetPlayerAuthId(edict_t *e); -#endif // FN_GetPlayerAuthId - - - - - - -#ifdef FN_PrecacheModel_Post -int FN_PrecacheModel_Post(char *s); -#endif // FN_PrecacheModel_Post - -#ifdef FN_PrecacheSound_Post -int FN_PrecacheSound_Post(char *s); -#endif // FN_PrecacheSound_Post - -#ifdef FN_SetModel_Post -void FN_SetModel_Post(edict_t *e, const char *m); -#endif // FN_SetModel_Post - -#ifdef FN_ModelIndex_Post -int FN_ModelIndex_Post(const char *m); -#endif // FN_ModelIndex_Post - -#ifdef FN_ModelFrames_Post -int FN_ModelFrames_Post(int modelIndex); -#endif // FN_ModelFrames_Post - -#ifdef FN_SetSize_Post -void FN_SetSize_Post(edict_t *e, const float *rgflMin, const float *rgflMax); -#endif // FN_SetSize_Post - -#ifdef FN_ChangeLevel_Post -void FN_ChangeLevel_Post(char *s1, char *s2); -#endif // FN_ChangeLevel_Post - -#ifdef FN_GetSpawnParms_Post -void FN_GetSpawnParms_Post(edict_t *ent); -#endif // FN_GetSpawnParms_Post - -#ifdef FN_SaveSpawnParms_Post -void FN_SaveSpawnParms_Post(edict_t *ent); -#endif // FN_SaveSpawnParms_Post - -#ifdef FN_VecToYaw_Post -float FN_VecToYaw_Post(const float *rgflVector); -#endif // FN_VecToYaw_Post - -#ifdef FN_VecToAngles_Post -void FN_VecToAngles_Post(const float *rgflVectorIn, float *rgflVectorOut); -#endif // FN_VecToAngles_Post - -#ifdef FN_MoveToOrigin_Post -void FN_MoveToOrigin_Post(edict_t *ent, const float *pflGoal, float dist, int iMoveType); -#endif // FN_MoveToOrigin_Post - -#ifdef FN_ChangeYaw_Post -void FN_ChangeYaw_Post(edict_t *ent); -#endif // FN_ChangeYaw_Post - -#ifdef FN_ChangePitch_Post -void FN_ChangePitch_Post(edict_t *ent); -#endif // FN_ChangePitch_Post - -#ifdef FN_FindEntityByString_Post -edict_t *FN_FindEntityByString_Post(edict_t *pEdictStartSearchAfter, const char *pszField, const char *pszValue); -#endif // FN_FindEntityByString_Post - -#ifdef FN_GetEntityIllum_Post -int FN_GetEntityIllum_Post(edict_t *pEnt); -#endif // FN_GetEntityIllum_Post - -#ifdef FN_FindEntityInSphere_Post -edict_t *FN_FindEntityInSphere_Post(edict_t *pEdictStartSearchAfter, const float *org, float rad); -#endif // FN_FindEntityInSphere_Post - -#ifdef FN_FindClientInPVS_Post -edict_t *FN_FindClientInPVS_Post(edict_t *pEdict); -#endif // FN_FindClientInPVS_Post - -#ifdef FN_EntitiesInPVS_Post -edict_t *FN_EntitiesInPVS_Post(edict_t *pplayer); -#endif // FN_EntitiesInPVS_Post - -#ifdef FN_MakeVectors_Post -void FN_MakeVectors_Post(const float *rgflVector); -#endif // FN_MakeVectors_Post - -#ifdef FN_AngleVectors_Post -void FN_AngleVectors_Post(const float *rgflVector, float *forward, float *right, float *up); -#endif // FN_AngleVectors_Post - -#ifdef FN_CreateEntity_Post -edict_t *FN_CreateEntity_Post(void); -#endif // FN_CreateEntity_Post - -#ifdef FN_RemoveEntity_Post -void FN_RemoveEntity_Post(edict_t *e); -#endif // FN_RemoveEntity_Post - -#ifdef FN_CreateNamedEntity_Post -edict_t *FN_CreateNamedEntity_Post(int className); -#endif // FN_CreateNamedEntity_Post - -#ifdef FN_MakeStatic_Post -void FN_MakeStatic_Post(edict_t *ent); -#endif // FN_MakeStatic_Post - -#ifdef FN_EntIsOnFloor_Post -int FN_EntIsOnFloor_Post(edict_t *ent); -#endif // FN_EntIsOnFloor_Post - -#ifdef FN_DropToFloor_Post -int FN_DropToFloor_Post(edict_t *ent); -#endif // FN_DropToFloor_Post - -#ifdef FN_WalkMove_Post -int FN_WalkMove_Post(edict_t *ent, float yaw, float dist, int iMode); -#endif // FN_WalkMove_Post - -#ifdef FN_SetOrigin_Post -void FN_SetOrigin_Post(edict_t *e, const float *rgflOrigin); -#endif // FN_SetOrigin_Post - -#ifdef FN_EmitSound_Post -void FN_EmitSound_Post(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch); -#endif // FN_EmitSound_Post - -#ifdef FN_EmitAmbientSound_Post -void FN_EmitAmbientSound_Post(edict_t *entity, float *pos, const char *samp, float vol, float attenuation, int fFlags, int pitch); -#endif // FN_EmitAmbientSound_Post - -#ifdef FN_TraceLine_Post -void FN_TraceLine_Post(const float *v1, const float *v2, int fNoMonsters, edict_t *pentToSkip, TraceResult *ptr); -#endif // FN_TraceLine_Post - -#ifdef FN_TraceToss_Post -void FN_TraceToss_Post(edict_t *pent, edict_t *pentToIgnore, TraceResult *ptr); -#endif // FN_TraceToss_Post - -#ifdef FN_TraceMonsterHull_Post -int FN_TraceMonsterHull_Post(edict_t *pEdict, const float *v1, const float *v2, int fNoMonsters, edict_t *pentToSkip, TraceResult *ptr); -#endif // FN_TraceMonsterHull_Post - -#ifdef FN_TraceHull_Post -void FN_TraceHull_Post(const float *v1, const float *v2, int fNoMonsters, int hullNumber, edict_t *pentToSkip, TraceResult *ptr); -#endif // FN_TraceHull_Post - -#ifdef FN_TraceModel_Post -void FN_TraceModel_Post(const float *v1, const float *v2, int hullNumber, edict_t *pent, TraceResult *ptr); -#endif // FN_TraceModel_Post - -#ifdef FN_TraceTexture_Post -const char *FN_TraceTexture_Post(edict_t *pTextureEntity, const float *v1, const float *v2 ); -#endif // FN_TraceTexture_Post - -#ifdef FN_TraceSphere_Post -void FN_TraceSphere_Post(const float *v1, const float *v2, int fNoMonsters, float radius, edict_t *pentToSkip, TraceResult *ptr); -#endif // FN_TraceSphere_Post - -#ifdef FN_GetAimVector_Post -void FN_GetAimVector_Post(edict_t *ent, float speed, float *rgflReturn); -#endif // FN_GetAimVector_Post - -#ifdef FN_ServerCommand_Post -void FN_ServerCommand_Post(char *str); -#endif // FN_ServerCommand_Post - -#ifdef FN_ServerExecute_Post -void FN_ServerExecute_Post(void); -#endif // FN_ServerExecute_Post - -#ifdef FN_engClientCommand_Post -void FN_engClientCommand_Post(edict_t *pEdict, char *szFmt, ...); -#endif // FN_engClientCommand_Post - -#ifdef FN_ParticleEffect_Post -void FN_ParticleEffect_Post(const float *org, const float *dir, float color, float count); -#endif // FN_ParticleEffect_Post - -#ifdef FN_LightStyle_Post -void FN_LightStyle_Post(int style, char *val); -#endif // FN_LightStyle_Post - -#ifdef FN_DecalIndex_Post -int FN_DecalIndex_Post(const char *name); -#endif // FN_DecalIndex_Post - -#ifdef FN_PointContents_Post -int FN_PointContents_Post(const float *rgflVector); -#endif // FN_PointContents_Post - -#ifdef FN_MessageBegin_Post -void FN_MessageBegin_Post(int msg_dest, int msg_type, const float *pOrigin, edict_t *ed); -#endif // FN_MessageBegin_Post - -#ifdef FN_MessageEnd_Post -void FN_MessageEnd_Post(void); -#endif // FN_MessageEnd_Post - -#ifdef FN_WriteByte_Post -void FN_WriteByte_Post(int iValue); -#endif // FN_WriteByte_Post - -#ifdef FN_WriteChar_Post -void FN_WriteChar_Post(int iValue); -#endif // FN_WriteChar_Post - -#ifdef FN_WriteShort_Post -void FN_WriteShort_Post(int iValue); -#endif // FN_WriteShort_Post - -#ifdef FN_WriteLong_Post -void FN_WriteLong_Post(int iValue); -#endif // FN_WriteLong_Post - -#ifdef FN_WriteAngle_Post -void FN_WriteAngle_Post(float flValue); -#endif // FN_WriteAngle_Post - -#ifdef FN_WriteCoord_Post -void FN_WriteCoord_Post(float flValue); -#endif // FN_WriteCoord_Post - -#ifdef FN_WriteString_Post -void FN_WriteString_Post(const char *sz); -#endif // FN_WriteString_Post - -#ifdef FN_WriteEntity_Post -void FN_WriteEntity_Post(int iValue); -#endif // FN_WriteEntity_Post - -#ifdef FN_CVarRegister_Post -void FN_CVarRegister_Post(cvar_t *pCvar); -#endif // FN_CVarRegister_Post - -#ifdef FN_CVarGetFloat_Post -float FN_CVarGetFloat_Post(const char *szVarName); -#endif // FN_CVarGetFloat_Post - -#ifdef FN_CVarGetString_Post -const char *FN_CVarGetString_Post(const char *szVarName); -#endif // FN_CVarGetString_Post - -#ifdef FN_CVarSetFloat_Post -void FN_CVarSetFloat_Post(const char *szVarName, float flValue); -#endif // FN_CVarSetFloat_Post - -#ifdef FN_CVarSetString_Post -void FN_CVarSetString_Post(const char *szVarName, const char *szValue); -#endif // FN_CVarSetString_Post - -#ifdef FN_AlertMessage_Post -void FN_AlertMessage_Post(ALERT_TYPE atype, char *szFmt, ...); -#endif // FN_AlertMessage_Post - -#ifdef FN_EngineFprintf_Post -void FN_EngineFprintf_Post(FILE *pfile, char *szFmt, ...); -#endif // FN_EngineFprintf_Post - -#ifdef FN_PvAllocEntPrivateData_Post -void *FN_PvAllocEntPrivateData_Post(edict_t *pEdict, long cb); -#endif // FN_PvAllocEntPrivateData_Post - -#ifdef FN_PvEntPrivateData_Post -void *FN_PvEntPrivateData_Post(edict_t *pEdict); -#endif // FN_PvEntPrivateData_Post - -#ifdef FN_FreeEntPrivateData_Post -void FN_FreeEntPrivateData_Post(edict_t *pEdict); -#endif // FN_FreeEntPrivateData_Post - -#ifdef FN_SzFromIndex_Post -const char *FN_SzFromIndex_Post(int iString); -#endif // FN_SzFromIndex_Post - -#ifdef FN_AllocString_Post -int FN_AllocString_Post(const char *szValue); -#endif // FN_AllocString_Post - -#ifdef FN_GetVarsOfEnt_Post -struct entvars_s *FN_GetVarsOfEnt_Post(edict_t *pEdict); -#endif // FN_GetVarsOfEnt_Post - -#ifdef FN_PEntityOfEntOffset_Post -edict_t *FN_PEntityOfEntOffset_Post(int iEntOffset); -#endif // FN_PEntityOfEntOffset_Post - -#ifdef FN_EntOffsetOfPEntity_Post -int FN_EntOffsetOfPEntity_Post(const edict_t *pEdict); -#endif // FN_EntOffsetOfPEntity_Post - -#ifdef FN_IndexOfEdict_Post -int FN_IndexOfEdict_Post(const edict_t *pEdict); -#endif // FN_IndexOfEdict_Post - -#ifdef FN_PEntityOfEntIndex_Post -edict_t *FN_PEntityOfEntIndex_Post(int iEntIndex); -#endif // FN_PEntityOfEntIndex_Post - -#ifdef FN_FindEntityByVars_Post -edict_t *FN_FindEntityByVars_Post(struct entvars_s *pvars); -#endif // FN_FindEntityByVars_Post - -#ifdef FN_GetModelPtr_Post -void *FN_GetModelPtr_Post(edict_t *pEdict); -#endif // FN_GetModelPtr_Post - -#ifdef FN_RegUserMsg_Post -int FN_RegUserMsg_Post(const char *pszName, int iSize); -#endif // FN_RegUserMsg_Post - -#ifdef FN_AnimationAutomove_Post -void FN_AnimationAutomove_Post(const edict_t *pEdict, float flTime); -#endif // FN_AnimationAutomove_Post - -#ifdef FN_GetBonePosition_Post -void FN_GetBonePosition_Post(const edict_t *pEdict, int iBone, float *rgflOrigin, float *rgflAngles); -#endif // FN_GetBonePosition_Post - -#ifdef FN_FunctionFromName_Post -unsigned long FN_FunctionFromName_Post(const char *pName); -#endif // FN_FunctionFromName_Post - -#ifdef FN_NameForFunction_Post -const char *FN_NameForFunction_Post(unsigned long function); -#endif // FN_NameForFunction_Post - -#ifdef FN_ClientPrintf_Post -void FN_ClientPrintf_Post(edict_t *pEdict, PRINT_TYPE ptype, const char *szMsg); -#endif // FN_ClientPrintf_Post - -#ifdef FN_ServerPrint_Post -void FN_ServerPrint_Post(const char *szMsg); -#endif // FN_ServerPrint_Post - -#ifdef FN_Cmd_Args_Post -const char *FN_Cmd_Args_Post(void); -#endif // FN_Cmd_Args_Post - -#ifdef FN_Cmd_Argv_Post -const char *FN_Cmd_Argv_Post(int argc); -#endif // FN_Cmd_Argv_Post - -#ifdef FN_Cmd_Argc_Post -int FN_Cmd_Argc_Post(void); -#endif // FN_Cmd_Argc_Post - -#ifdef FN_GetAttachment_Post -void FN_GetAttachment_Post(const edict_t *pEdict, int iAttachment, float *rgflOrigin, float *rgflAngles ); -#endif // FN_GetAttachment_Post - -#ifdef FN_CRC32_Init_Post -void FN_CRC32_Init_Post(CRC32_t *pulCRC); -#endif // FN_CRC32_Init_Post - -#ifdef FN_CRC32_ProcessBuffer_Post -void FN_CRC32_ProcessBuffer_Post(CRC32_t *pulCRC, void *p, int len); -#endif // FN_CRC32_ProcessBuffer_Post - -#ifdef FN_CRC32_ProcessByte_Post -void FN_CRC32_ProcessByte_Post(CRC32_t *pulCRC, unsigned char ch); -#endif // FN_CRC32_ProcessByte_Post - -#ifdef FN_CRC32_Final_Post -CRC32_t FN_CRC32_Final_Post(CRC32_t pulCRC); -#endif // FN_CRC32_Final_Post - -#ifdef FN_RandomLong_Post -long FN_RandomLong_Post(long lLow, long lHigh); -#endif // FN_RandomLong_Post - -#ifdef FN_RandomFloat_Post -float FN_RandomFloat_Post(float flLow, float flHigh); -#endif // FN_RandomFloat_Post - -#ifdef FN_SetView_Post -void FN_SetView_Post(const edict_t *pClient, const edict_t *pViewent); -#endif // FN_SetView_Post - -#ifdef FN_Time_Post -float FN_Time_Post(void); -#endif // FN_Time_Post - -#ifdef FN_CrosshairAngle_Post -void FN_CrosshairAngle_Post(const edict_t *pClient, float pitch, float yaw); -#endif // FN_CrosshairAngle_Post - -#ifdef FN_LoadFileForMe_Post -byte *FN_LoadFileForMe_Post(char *filename, int *pLength); -#endif // FN_LoadFileForMe_Post - -#ifdef FN_FreeFile_Post -void FN_FreeFile_Post(void *buffer); -#endif // FN_FreeFile_Post - -#ifdef FN_EndSection_Post -void FN_EndSection_Post(const char *pszSectionName); -#endif // FN_EndSection_Post - -#ifdef FN_CompareFileTime_Post -int FN_CompareFileTime_Post(char *filename1, char *filename2, int *iCompare); -#endif // FN_CompareFileTime_Post - -#ifdef FN_GetGameDir_Post -void FN_GetGameDir_Post(char *szGetGameDir); -#endif // FN_GetGameDir_Post - -#ifdef FN_Cvar_RegisterVariable_Post -void FN_Cvar_RegisterVariable_Post(cvar_t *variable); -#endif // FN_Cvar_RegisterVariable_Post - -#ifdef FN_FadeClientVolume_Post -void FN_FadeClientVolume_Post(const edict_t *pEdict, int fadePercent, int fadeOutSeconds, int holdTime, int fadeInSeconds); -#endif // FN_FadeClientVolume_Post - -#ifdef FN_SetClientMaxspeed_Post -void FN_SetClientMaxspeed_Post(const edict_t *pEdict, float fNewMaxspeed); -#endif // FN_SetClientMaxspeed_Post - -#ifdef FN_CreateFakeClient_Post -edict_t *FN_CreateFakeClient_Post(const char *netname); -#endif // FN_CreateFakeClient_Post - -#ifdef FN_RunPlayerMove_Post -void FN_RunPlayerMove_Post(edict_t *fakeclient, const float *viewangles, float forwardmove, float sidemove, float upmove, unsigned short buttons, byte impulse, byte msec); -#endif // FN_RunPlayerMove_Post - -#ifdef FN_NumberOfEntities_Post -int FN_NumberOfEntities_Post(void); -#endif // FN_NumberOfEntities_Post - -#ifdef FN_GetInfoKeyBuffer_Post -char *FN_GetInfoKeyBuffer_Post(edict_t *e); -#endif // FN_GetInfoKeyBuffer_Post - -#ifdef FN_InfoKeyValue_Post -char *FN_InfoKeyValue_Post(char *infobuffer, char *key); -#endif // FN_InfoKeyValue_Post - -#ifdef FN_SetKeyValue_Post -void FN_SetKeyValue_Post(char *infobuffer, char *key, char *value); -#endif // FN_SetKeyValue_Post - -#ifdef FN_SetClientKeyValue_Post -void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, char *key, char *value); -#endif // FN_SetClientKeyValue_Post - -#ifdef FN_IsMapValid_Post -int FN_IsMapValid_Post(char *filename); -#endif // FN_IsMapValid_Post - -#ifdef FN_StaticDecal_Post -void FN_StaticDecal_Post(const float *origin, int decalIndex, int entityIndex, int modelIndex); -#endif // FN_StaticDecal_Post - -#ifdef FN_PrecacheGeneric_Post -int FN_PrecacheGeneric_Post(char *s); -#endif // FN_PrecacheGeneric_Post - -#ifdef FN_GetPlayerUserId_Post -int FN_GetPlayerUserId_Post(edict_t *e ); -#endif // FN_GetPlayerUserId_Post - -#ifdef FN_BuildSoundMsg_Post -void FN_BuildSoundMsg_Post(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed); -#endif // FN_BuildSoundMsg_Post - -#ifdef FN_IsDedicatedServer_Post -int FN_IsDedicatedServer_Post(void); -#endif // FN_IsDedicatedServer_Post - -#ifdef FN_CVarGetPointer_Post -cvar_t *FN_CVarGetPointer_Post(const char *szVarName); -#endif // FN_CVarGetPointer_Post - -#ifdef FN_GetPlayerWONId_Post -unsigned int FN_GetPlayerWONId_Post(edict_t *e); -#endif // FN_GetPlayerWONId_Post - -#ifdef FN_Info_RemoveKey_Post -void FN_Info_RemoveKey_Post( char *s, const char *key); -#endif // FN_Info_RemoveKey_Post - -#ifdef FN_GetPhysicsKeyValue_Post -const char *FN_GetPhysicsKeyValue_Post(const edict_t *pClient, const char *key); -#endif // FN_GetPhysicsKeyValue_Post - -#ifdef FN_SetPhysicsKeyValue_Post -void FN_SetPhysicsKeyValue_Post(const edict_t *pClient, const char *key, const char *value); -#endif // FN_SetPhysicsKeyValue_Post - -#ifdef FN_GetPhysicsInfoString_Post -const char *FN_GetPhysicsInfoString_Post( const edict_t *pClient); -#endif // FN_GetPhysicsInfoString_Post - -#ifdef FN_PrecacheEvent_Post -unsigned short FN_PrecacheEvent_Post(int type, const char *psz); -#endif // FN_PrecacheEvent_Post - -#ifdef FN_PlaybackEvent_Post -void FN_PlaybackEvent_Post(int flags, const edict_t *pInvoker, unsigned short eventindex, float delay, float *origin, float *angles, float fparam1, float fparam2, int iparam1, int iparam2, int bparam1, int bparam2); -#endif // FN_PlaybackEvent_Post - -#ifdef FN_SetFatPVS_Post -unsigned char *FN_SetFatPVS_Post(float *org); -#endif // FN_SetFatPVS_Post - -#ifdef FN_SetFatPAS_Post -unsigned char *FN_SetFatPAS_Post(float *org); -#endif // FN_SetFatPAS_Post - -#ifdef FN_CheckVisibility_Post -int FN_CheckVisibility_Post(const edict_t *entity, unsigned char *pset); -#endif // FN_CheckVisibility_Post - -#ifdef FN_DeltaSetField_Post -void FN_DeltaSetField_Post(struct delta_s *pFields, const char *fieldname); -#endif // FN_DeltaSetField_Post - -#ifdef FN_DeltaUnsetField_Post -void FN_DeltaUnsetField_Post(struct delta_s *pFields, const char *fieldname); -#endif // FN_DeltaUnsetField_Post - -#ifdef FN_DeltaAddEncoder_Post -void FN_DeltaAddEncoder_Post(char *name, void (*conditionalencode)( struct delta_s *pFields, const unsigned char *from, const unsigned char *to ) ); -#endif // FN_DeltaAddEncoder_Post - -#ifdef FN_GetCurrentPlayer_Post -int FN_GetCurrentPlayer_Post(void); -#endif // FN_GetCurrentPlayer_Post - -#ifdef FN_CanSkipPlayer_Post -int FN_CanSkipPlayer_Post(const edict_t *player); -#endif // FN_CanSkipPlayer_Post - -#ifdef FN_DeltaFindField_Post -int FN_DeltaFindField_Post(struct delta_s *pFields, const char *fieldname); -#endif // FN_DeltaFindField_Post - -#ifdef FN_DeltaSetFieldByIndex_Post -void FN_DeltaSetFieldByIndex_Post(struct delta_s *pFields, int fieldNumber); -#endif // FN_DeltaSetFieldByIndex_Post - -#ifdef FN_DeltaUnsetFieldByIndex_Post -void FN_DeltaUnsetFieldByIndex_Post(struct delta_s *pFields, int fieldNumber); -#endif // FN_DeltaUnsetFieldByIndex_Post - -#ifdef FN_SetGroupMask_Post -void FN_SetGroupMask_Post(int mask, int op); -#endif // FN_SetGroupMask_Post - -#ifdef FN_engCreateInstancedBaseline_Post -int FN_engCreateInstancedBaseline_Post(int classname, struct entity_state_s *baseline); -#endif // FN_engCreateInstancedBaseline_Post - -#ifdef FN_Cvar_DirectSet_Post -void FN_Cvar_DirectSet_Post(struct cvar_s *var, char *value); -#endif // FN_Cvar_DirectSet_Post - -#ifdef FN_ForceUnmodified_Post -void FN_ForceUnmodified_Post(FORCE_TYPE type, float *mins, float *maxs, const char *filename); -#endif // FN_ForceUnmodified_Post - -#ifdef FN_GetPlayerStats_Post -void FN_GetPlayerStats_Post(const edict_t *pClient, int *ping, int *packet_loss); -#endif // FN_GetPlayerStats_Post - -#ifdef FN_AddServerCommand_Post -void FN_AddServerCommand_Post(char *cmd_name, void (*function)(void)); -#endif // FN_AddServerCommand_Post - -#ifdef FN_Voice_GetClientListening_Post -qboolean FN_Voice_GetClientListening_Post(int iReceiver, int iSender); -#endif // FN_Voice_GetClientListening_Post - -#ifdef FN_Voice_SetClientListening_Post -qboolean FN_Voice_SetClientListening_Post(int iReceiver, int iSender, qboolean bListen); -#endif // FN_Voice_SetClientListening_Post - -#ifdef FN_GetPlayerAuthId_Post -const char *FN_GetPlayerAuthId_Post(edict_t *e); -#endif // FN_GetPlayerAuthId - - - - -#ifdef FN_OnFreeEntPrivateData -void FN_OnFreeEntPrivateData(edict_t *pEnt); -#endif // FN_OnFreeEntPrivateData - -#ifdef FN_GameShutdown -void FN_GameShutdown(void); -#endif // FN_GameShutdown - -#ifdef FN_ShouldCollide -int FN_ShouldCollide(edict_t *pentTouched, edict_t *pentOther); -#endif // FN_ShouldCollide - - - - - -#ifdef FN_OnFreeEntPrivateData_Post -void FN_OnFreeEntPrivateData_Post(edict_t *pEnt); -#endif // FN_OnFreeEntPrivateData_Post - -#ifdef FN_GameShutdown_Post -void FN_GameShutdown_Post(void); -#endif // FN_GameShutdown_Post - -#ifdef FN_ShouldCollide_Post -int FN_ShouldCollide_Post(edict_t *pentTouched, edict_t *pentOther); -#endif // FN_ShouldCollide_Post - -#endif // USE_METAMOD - - -#ifdef FN_AMXX_QUERY -void FN_AMXX_QUERY(void); -#endif // FN_AMXX_QUERY - -#ifdef FN_AMXX_ATTACH -void FN_AMXX_ATTACH(void); -#endif // FN_AMXX_ATTACH - -#ifdef FN_AMXX_DETACH -void FN_AMXX_DETACH(void); -#endif // FN_AMXX_DETACH - -#ifdef FN_AMXX_PLUGINSLOADED -void FN_AMXX_PLUGINSLOADED(void); -#endif // FN_AMXX_PLUGINSLOADED - -// *** Types *** -typedef void* (*PFN_REQ_FNPTR)(const char * /*name*/); - -// ***** Module funcs stuff ***** -enum ForwardExecType -{ - ET_IGNORE = 0, // Ignore return vaue - ET_STOP, // Stop on PLUGIN_HANDLED - ET_STOP2, // Stop on PLUGIN_HANDLED, continue on other values, return biggest return value - ET_CONTINUE, // Continue; return biggest return value -}; - -enum ForwardParam -{ - FP_DONE = -1, // specify this as the last argument - // only tells the function that there are no more arguments - FP_CELL, // normal cell - FP_FLOAT, // float; used as normal cell though - FP_STRING, // string - FP_STRINGEX, // string; will be updated to the last function's value - FP_ARRAY, // array; use the return value of prepareArray. -}; - - -typedef int (*PFN_ADD_NATIVES) (const AMX_NATIVE_INFO * /*list*/); -typedef char * (*PFN_BUILD_PATHNAME) (const char * /*format*/, ...); -typedef char * (*PFN_BUILD_PATHNAME_R) (char * /*buffer*/, size_t /* maxlen */, const char * /* format */, ...); -typedef cell * (*PFN_GET_AMXADDR) (AMX * /*amx*/, cell /*offset*/); -typedef void (*PFN_PRINT_SRVCONSOLE) (char * /*format*/, ...); -typedef const char * (*PFN_GET_MODNAME) (void); -typedef const char * (*PFN_GET_AMXSCRIPTNAME) (int /*id*/); -typedef AMX * (*PFN_GET_AMXSCRIPT) (int /*id*/); -typedef int (*PFN_FIND_AMXSCRIPT_BYAMX) (const AMX * /*amx*/); -typedef int (*PFN_FIND_AMXSCRIPT_BYNAME) (const char * /*name*/); -typedef int (*PFN_SET_AMXSTRING) (AMX * /*amx*/, cell /*amx_addr*/, const char * /* source */, int /* max */); -typedef char * (*PFN_GET_AMXSTRING) (AMX * /*amx*/, cell /*amx_addr*/, int /*bufferId*/, int * /*pLen*/); -typedef int (*PFN_GET_AMXSTRINGLEN) (const cell *ptr); -typedef char * (*PFN_FORMAT_AMXSTRING) (AMX * /*amx*/, cell * /*params*/, int /*startParam*/, int * /*pLen*/); -typedef void (*PFN_COPY_AMXMEMORY) (cell * /*dest*/, const cell * /*src*/, int /*len*/); -typedef void (*PFN_LOG) (const char * /*fmt*/, ...); -typedef void (*PFN_LOG_ERROR) (AMX * /*amx*/, int /*err*/, const char * /*fmt*/, ...); -typedef int (*PFN_RAISE_AMXERROR) (AMX * /*amx*/, int /*error*/); -typedef int (*PFN_REGISTER_FORWARD) (const char * /*funcname*/, ForwardExecType /*exectype*/, ... /*paramtypes terminated by PF_DONE*/); -typedef int (*PFN_EXECUTE_FORWARD) (int /*id*/, ... /*params*/); -typedef cell (*PFN_PREPARE_CELLARRAY) (cell * /*ptr*/, unsigned int /*size*/); -typedef cell (*PFN_PREPARE_CHARARRAY) (char * /*ptr*/, unsigned int /*size*/); -typedef cell (*PFN_PREPARE_CELLARRAY_A) (cell * /*ptr*/, unsigned int /*size*/, bool /*copyBack*/); -typedef cell (*PFN_PREPARE_CHARARRAY_A) (char * /*ptr*/, unsigned int /*size*/, bool /*copyBack*/); -typedef int (*PFN_IS_PLAYER_VALID) (int /*id*/); -typedef const char * (*PFN_GET_PLAYER_NAME) (int /*id*/); -typedef const char * (*PFN_GET_PLAYER_IP) (int /*id*/); -typedef int (*PFN_IS_PLAYER_INGAME) (int /*id*/); -typedef int (*PFN_IS_PLAYER_BOT) (int /*id*/); -typedef int (*PFN_IS_PLAYER_AUTHORIZED) (int /*id*/); -typedef float (*PFN_GET_PLAYER_TIME) (int /*id*/); -typedef float (*PFN_GET_PLAYER_PLAYTIME) (int /*id*/); -typedef int (*PFN_GETPLAYERFLAGS) (int /* id*/); -typedef int (*PFN_GET_PLAYER_CURWEAPON) (int /*id*/); -typedef const char * (*PFN_GET_PLAYER_TEAM) (int /*id*/); -typedef int (*PFN_GET_PLAYER_TEAMID) (int /*id*/); -typedef int (*PFN_GET_PLAYER_DEATHS) (int /*id*/); -typedef int (*PFN_GET_PLAYER_MENU) (int /*id*/); -typedef int (*PFN_GET_PLAYER_KEYS) (int /*id*/); -typedef int (*PFN_IS_PLAYER_ALIVE) (int /*id*/); -typedef int (*PFN_GET_PLAYER_FRAGS) (int /*id*/); -typedef int (*PFN_IS_PLAYER_CONNECTING) (int /*id*/); -typedef int (*PFN_IS_PLAYER_HLTV) (int /*id*/); -typedef int (*PFN_GET_PLAYER_ARMOR) (int /*id*/); -typedef int (*PFN_GET_PLAYER_HEALTH) (int /*id*/); -#ifdef USE_METAMOD -typedef edict_t * (*PFN_GET_PLAYER_EDICT) (int /*id*/); -#else -typedef void * (*PFN_GET_PLAYER_EDICT) (int /*id*/); -#endif - -typedef void * (*PFN_ALLOCATOR) (const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/, - const unsigned int /*type*/, const size_t /*size*/); -typedef void * (*PFN_REALLOCATOR) (const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/, - const unsigned int /*type*/, const size_t /*size*/, void* /*addr*/ ); -typedef void (*PFN_DEALLOCATOR) (const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/, - const unsigned int /*type*/, const void* /*addr*/ ); -typedef int (*PFN_AMX_EXEC) (AMX* /*amx*/, cell* /*return val*/, int /*index*/); -typedef int (*PFN_AMX_EXECV) (AMX* /*amx*/, cell* /*return val*/, int /*index*/, int /*numparams*/, cell[] /*params*/); -typedef int (*PFN_AMX_ALLOT) (AMX* /*amx*/, int /*length*/, cell* /*amx_addr*/, cell** /*phys_addr*/); -typedef int (*PFN_AMX_FINDPUBLIC) (AMX* /*amx*/, char* /*func name*/, int* /*index*/); -typedef int (*PFN_AMX_FINDNATIVE) (AMX* /*amx*/, char* /*func name*/, int* /*index*/); -typedef int (*PFN_LOAD_AMXSCRIPT) (AMX* /*amx*/, void** /*code*/, const char* /*path*/, char[64] /*error info*/, int /* debug */); -typedef int (*PFN_UNLOAD_AMXSCRIPT) (AMX* /*amx*/,void** /*code*/); -typedef cell (*PFN_REAL_TO_CELL) (REAL /*x*/); -typedef REAL (*PFN_CELL_TO_REAL) (cell /*x*/); -typedef int (*PFN_REGISTER_SPFORWARD) (AMX * /*amx*/, int /*func*/, ... /*params*/); -typedef int (*PFN_REGISTER_SPFORWARD_BYNAME) (AMX * /*amx*/, const char * /*funcName*/, ... /*params*/); -typedef void (*PFN_UNREGISTER_SPFORWARD) (int /*id*/); -typedef void (*PFN_MERGEDEFINITION_FILE) (const char * /*filename*/); -typedef const char * (*PFN_FORMAT) (const char * /*fmt*/, ... /*params*/); -typedef void (*PFN_REGISTERFUNCTION) (void * /*pfn*/, const char * /*desc*/); -typedef int (*PFN_AMX_PUSH) (AMX * /*amx*/, cell /*value*/); - -extern PFN_ADD_NATIVES g_fn_AddNatives; -extern PFN_BUILD_PATHNAME g_fn_BuildPathname; -extern PFN_BUILD_PATHNAME_R g_fn_BuildPathnameR; -extern PFN_GET_AMXADDR g_fn_GetAmxAddr; -extern PFN_PRINT_SRVCONSOLE g_fn_PrintSrvConsole; -extern PFN_GET_MODNAME g_fn_GetModname; -extern PFN_GET_AMXSCRIPTNAME g_fn_GetAmxScriptName; -extern PFN_GET_AMXSCRIPT g_fn_GetAmxScript; -extern PFN_FIND_AMXSCRIPT_BYAMX g_fn_FindAmxScriptByAmx; -extern PFN_FIND_AMXSCRIPT_BYNAME g_fn_FindAmxScriptByName; -extern PFN_SET_AMXSTRING g_fn_SetAmxString; -extern PFN_GET_AMXSTRING g_fn_GetAmxString; -extern PFN_GET_AMXSTRINGLEN g_fn_GetAmxStringLen; -extern PFN_FORMAT_AMXSTRING g_fn_FormatAmxString; -extern PFN_COPY_AMXMEMORY g_fn_CopyAmxMemory; -extern PFN_LOG g_fn_Log; -extern PFN_LOG_ERROR g_fn_LogErrorFunc; -extern PFN_RAISE_AMXERROR g_fn_RaiseAmxError; -extern PFN_REGISTER_FORWARD g_fn_RegisterForward; -extern PFN_EXECUTE_FORWARD g_fn_ExecuteForward; -extern PFN_PREPARE_CELLARRAY g_fn_PrepareCellArray; -extern PFN_PREPARE_CHARARRAY g_fn_PrepareCharArray; -extern PFN_PREPARE_CELLARRAY_A g_fn_PrepareCellArrayA; -extern PFN_PREPARE_CHARARRAY_A g_fn_PrepareCharArrayA; -extern PFN_IS_PLAYER_VALID g_fn_IsPlayerValid; -extern PFN_GET_PLAYER_NAME g_fn_GetPlayerName; -extern PFN_GET_PLAYER_IP g_fn_GetPlayerIP; -extern PFN_IS_PLAYER_INGAME g_fn_IsPlayerIngame; -extern PFN_IS_PLAYER_BOT g_fn_IsPlayerBot; -extern PFN_IS_PLAYER_AUTHORIZED g_fn_IsPlayerAuthorized; -extern PFN_GET_PLAYER_TIME g_fn_GetPlayerTime; -extern PFN_GET_PLAYER_PLAYTIME g_fn_GetPlayerPlayTime; -extern PFN_GET_PLAYER_CURWEAPON g_fn_GetPlayerCurweapon; -extern PFN_GET_PLAYER_TEAMID g_fn_GetPlayerTeamID; -extern PFN_GET_PLAYER_DEATHS g_fn_GetPlayerDeaths; -extern PFN_GET_PLAYER_MENU g_fn_GetPlayerMenu; -extern PFN_GET_PLAYER_KEYS g_fn_GetPlayerKeys; -extern PFN_IS_PLAYER_ALIVE g_fn_IsPlayerAlive; -extern PFN_GET_PLAYER_FRAGS g_fn_GetPlayerFrags; -extern PFN_IS_PLAYER_CONNECTING g_fn_IsPlayerConnecting; -extern PFN_IS_PLAYER_HLTV g_fn_IsPlayerHLTV; -extern PFN_GET_PLAYER_ARMOR g_fn_GetPlayerArmor; -extern PFN_GET_PLAYER_HEALTH g_fn_GetPlayerHealth; -extern PFN_AMX_EXEC g_fn_AmxExec; -extern PFN_AMX_EXECV g_fn_AmxExecv; -extern PFN_AMX_ALLOT g_fn_AmxAllot; -extern PFN_AMX_FINDPUBLIC g_fn_AmxFindPublic; -extern PFN_LOAD_AMXSCRIPT g_fn_LoadAmxScript; -extern PFN_UNLOAD_AMXSCRIPT g_fn_UnloadAmxScript; -extern PFN_REAL_TO_CELL g_fn_RealToCell; -extern PFN_CELL_TO_REAL g_fn_CellToReal; -extern PFN_REGISTER_SPFORWARD g_fn_RegisterSPForward; -extern PFN_REGISTER_SPFORWARD_BYNAME g_fn_RegisterSPForwardByName; -extern PFN_UNREGISTER_SPFORWARD g_fn_UnregisterSPForward; -extern PFN_MERGEDEFINITION_FILE g_fn_MergeDefinition_File; -extern PFN_AMX_FINDNATIVE g_fn_AmxFindNative; -extern PFN_GETPLAYERFLAGS g_fn_GetPlayerFlags; -extern PFN_GET_PLAYER_EDICT g_fn_GetPlayerEdict; -extern PFN_FORMAT g_fn_Format; -extern PFN_GET_PLAYER_TEAM g_fn_GetPlayerTeam; -extern PFN_REGISTERFUNCTION g_fn_RegisterFunction; -extern PFN_REQ_FNPTR g_fn_RequestFunction; -extern PFN_AMX_PUSH g_fn_AmxPush; - -#ifdef MAY_NEVER_BE_DEFINED -// Function prototypes for intellisense and similar systems -// They understand #if 0 so we use #ifdef MAY_NEVER_BE_DEFINED -int MF_AddNatives (const AMX_NATIVE_INFO *list) { } -char * MF_BuildPathname (const char * format, ...) { } -char * MF_BuildPathnameR (char *buffer, size_t maxlen, const char *fmt, ...) { } -cell * MF_GetAmxAddr (AMX * amx, cell offset) { } -void MF_PrintSrvConsole (char * format, ...) { } -const char * MF_GetModname (void) { } -const char * MF_GetScriptName (int id) { } -AMX * MF_GetScriptAmx (int id) { } -int MF_FindScriptByAmx (const AMX * amx) { } -int MF_FindScriptByAmx (const char * name) { } -int MF_SetAmxString (AMX * amx, cell amx_addr, const char * source , int max ) { } -char * MF_GetAmxString (AMX * amx, cell amx_addr, int bufferId, int * pLen) { } -int MF_GetAmxStringLen (const cell *ptr) { } -char * MF_FormatAmxString (AMX * amx, cell * params, int startParam, int * pLen) { } -void MF_CopyAmxMemory (cell * dest, const cell * src, int len) { } -void MF_Log (const char * fmt, ...) { } -void MF_LogError (AMX * amx, int err, const char *fmt, ...) { } -int MF_RaiseAmxError (AMX * amx, int error) { } -int MF_RegisterForward (const char * funcname, ForwardExecType exectype, ...) { } -int MF_ExecuteForward (int id, ...) { } -cell MF_PrepareCellArray (cell * ptr, unsigned int size) { } -cell MF_PrepareCharArray (char * ptr, unsigned int size) { } -cell MF_PrepareCellArrayA (cell * ptr, unsigned int size, bool copyBack) { } -cell MF_PrepareCharArrayA (char * ptr, unsigned int size, bool copyBack) { } -int MF_IsPlayerValid (int id) { } -const char * MF_GetPlayerName (int id) { } -const char * MF_GetPlayerIP (int id) { } -int MF_IsPlayerIngame (int id) { } -int MF_IsPlayerBot (int id) { } -int MF_IsPlayerAuthorized (int id) { } -float MF_GetPlayerTime (int id) { } -float MF_GetPlayerPlayTime (int id) { } -int MF_GetPlayerCurweapon (int id) { } -const char * MF_GetPlayerTeam (int id) { } -int MF_GetPlayerTeamID (int id) { } -int MF_GetPlayerDeaths (int id) { } -int MF_GetPlayerMenu (int id) { } -int MF_GetPlayerKeys (int id) { } -int MF_IsPlayerAlive (int id) { } -int MF_GetPlayerFrags (int id) { } -int MF_IsPlayerConnecting (int id) { } -int MF_IsPlayerHLTV (int id) { } -int MF_GetPlayerArmor (int id) { } -int MF_GetPlayerHealth (int id) { } -REAL amx_ctof (cell x) { } -cell amx_ftoc (float x) { } -int MF_RegisterSPForwardByName (AMX * amx, const char *str, ...) { } -int MF_RegisterSPForward (AMX * amx, int func, ...) { } -void MF_UnregisterSPForward (int id) { } -int MF_GetPlayerFlags (int id) { } -edict_t* MF_GetPlayerEdict (int id) { } -const char * MF_Format (const char *fmt, ...) { } -void MF_RegisterFunction (void *pfn, const char *description) { } -void * MF_RequestFunction (const char *description) { } -int MF_AmxPush (AMX *amx, cell *params) { } -int MF_AmxExec (AMX *amx, cell *retval, int idx) { } -#endif // MAY_NEVER_BE_DEFINED - -#define MF_AddNatives g_fn_AddNatives -#define MF_BuildPathname g_fn_BuildPathname -#define MF_BuildPathnameR g_fn_BuildPathnameR -#define MF_FormatAmxString g_fn_FormatAmxString -#define MF_GetAmxAddr g_fn_GetAmxAddr -#define MF_PrintSrvConsole g_fn_PrintSrvConsole -#define MF_GetModname g_fn_GetModname -#define MF_GetScriptName g_fn_GetAmxScriptName -#define MF_GetScriptAmx g_fn_GetAmxScript -#define MF_FindScriptByAmx g_fn_FindAmxScriptByAmx -#define MF_FindScriptByName g_fn_FindAmxScriptByName -#define MF_SetAmxString g_fn_SetAmxString -#define MF_GetAmxString g_fn_GetAmxString -#define MF_GetAmxStringLen g_fn_GetAmxStringLen -#define MF_CopyAmxMemory g_fn_CopyAmxMemory -void MF_Log(const char *fmt, ...); -void MF_LogError(AMX *amx, int err, const char *fmt, ...); -#define MF_RaiseAmxError g_fn_RaiseAmxError -#define MF_RegisterForward g_fn_RegisterForward -#define MF_ExecuteForward g_fn_ExecuteForward -#define MF_PrepareCellArray g_fn_PrepareCellArray -#define MF_PrepareCharArray g_fn_PrepareCharArray -#define MF_PrepareCellArrayA g_fn_PrepareCellArrayA -#define MF_PrepareCharArrayA g_fn_PrepareCharArrayA -#define MF_IsPlayerValid g_fn_IsPlayerValid -#define MF_GetPlayerName g_fn_GetPlayerName -#define MF_GetPlayerIP g_fn_GetPlayerIP -#define MF_IsPlayerIngame g_fn_IsPlayerIngame -#define MF_IsPlayerBot g_fn_IsPlayerBot -#define MF_IsPlayerAuthorized g_fn_IsPlayerAuthorized -#define MF_GetPlayerTime g_fn_GetPlayerTime -#define MF_GetPlayerPlayTime g_fn_GetPlayerPlayTime -#define MF_GetPlayerCurweapon g_fn_GetPlayerCurweapon -#define MF_GetPlayerTeam g_fn_GetPlayerTeam -#define MF_GetPlayerTeamID g_fn_GetPlayerTeamID -#define MF_GetPlayerDeaths g_fn_GetPlayerDeaths -#define MF_GetPlayerMenu g_fn_GetPlayerMenu -#define MF_GetPlayerKeys g_fn_GetPlayerKeys -#define MF_IsPlayerAlive g_fn_IsPlayerAlive -#define MF_GetPlayerFrags g_fn_GetPlayerFrags -#define MF_IsPlayerConnecting g_fn_IsPlayerConnecting -#define MF_IsPlayerHLTV g_fn_IsPlayerHLTV -#define MF_GetPlayerArmor g_fn_GetPlayerArmor -#define MF_GetPlayerHealth g_fn_GetPlayerHealth -#define MF_AmxExec g_fn_AmxExec -#define MF_AmxExecv g_fn_AmxExecv -#define MF_AmxFindPublic g_fn_AmxFindPublic -#define MF_AmxAllot g_fn_AmxAllot -#define MF_AmxFindNative g_fn_AmxFindNative -#define MF_LoadAmxScript g_fn_LoadAmxScript -#define MF_UnloadAmxScript g_fn_UnloadAmxScript -#define MF_MergeDefinitionFile g_fn_MergeDefinition_File -#define amx_ctof g_fn_CellToReal -#define amx_ftoc g_fn_RealToCell -#define MF_RegisterSPForwardByName g_fn_RegisterSPForwardByName -#define MF_RegisterSPForward g_fn_RegisterSPForward -#define MF_UnregisterSPForward g_fn_UnregisterSPForward -#define MF_GetPlayerFlags g_fn_GetPlayerFlags -#define MF_GetPlayerEdict g_fn_GetPlayerEdict -#define MF_Format g_fn_Format -#define MF_RegisterFunction g_fn_RegisterFunction -#define MF_RequestFunction g_fn_RequestFunction; -#define MF_AmxPush g_fn_AmxPush - -/*** Memory ***/ -void *operator new(size_t reportedSize); -void *operator new[](size_t reportedSize); -void *operator new(size_t reportedSize, const char *sourceFile, int sourceLine); -void *operator new[](size_t reportedSize, const char *sourceFile, int sourceLine); -void operator delete(void *reportedAddress); -void operator delete[](void *reportedAddress); - -// Allocation types -extern const unsigned int m_alloc_unknown; -extern const unsigned int m_alloc_new; -extern const unsigned int m_alloc_new_array; -extern const unsigned int m_alloc_malloc; -extern const unsigned int m_alloc_calloc; -extern const unsigned int m_alloc_realloc; -extern const unsigned int m_alloc_delete; -extern const unsigned int m_alloc_delete_array; -extern const unsigned int m_alloc_free; - -// To be called before new / delete -void Mem_SetOwner(const char *filename, int line, const char *function); -// Actual allocator -void * Mem_Allocator(const char *sourceFile, const unsigned int sourceLine, const char *sourceFunc, - const unsigned int allocationType, const size_t reportedSize); -void * Mem_Reallocator(const char *sourceFile, const unsigned int sourceLine, const char *sourceFunc, - const unsigned int reallocationType, const size_t reportedSize, void *reportedAddress); -void Mem_Deallocator(const char *sourceFile, const unsigned int sourceLine, const char *sourceFunc, - const unsigned int deallocationType, void *reportedAddress); - -// memory macros -#ifndef __FUNCTION__ -#define __FUNCTION__ "??" -#endif - -// call Mem_SetOwner, followed by the actual new operator -#define new (Mem_SetOwner(__FILE__,__LINE__,__FUNCTION__),false) ? NULL : new -// call Mem_SetOwner, followed by the actual delete operator -#define delete (Mem_SetOwner(__FILE__,__LINE__,__FUNCTION__),false) ? Mem_SetOwner("",0,"") : delete -#define malloc(sz) Mem_Allocator (__FILE__,__LINE__,__FUNCTION__,m_alloc_malloc,sz) -#define calloc(sz) Mem_Allocator (__FILE__,__LINE__,__FUNCTION__,m_alloc_calloc,sz) -#define realloc(ptr,sz) Mem_Reallocator(__FILE__,__LINE__,__FUNCTION__,m_alloc_realloc,sz,ptr) -#define free(ptr) Mem_Deallocator(__FILE__,__LINE__,__FUNCTION__,m_alloc_free,ptr) - -#endif // #ifndef __AMXXMODULE_H__ diff --git a/dlls/BB/bb.cpp b/dlls/BB/bb.cpp deleted file mode 100644 index 4b9c5916..00000000 --- a/dlls/BB/bb.cpp +++ /dev/null @@ -1,144 +0,0 @@ -#include "bb.h" - -static cell AMX_NATIVE_CALL get_user_exp(AMX *amx,cell *params) -{ - return amx_ftoc(GetUserExp(params[1])); -} - -static cell AMX_NATIVE_CALL set_user_exp(AMX *amx,cell *params) -{ - float Exp = amx_ctof(params[2]); - SetUserExp(params[1], Exp ); - return 1; -} - -static cell AMX_NATIVE_CALL get_user_points(AMX *amx,cell *params) -{ - return amx_ftoc(GetUserPoints(params[1])); -} - -static cell AMX_NATIVE_CALL set_user_points(AMX *amx,cell *params) -{ - float Exp = amx_ctof(params[2]); - SetUserPoints(params[1], Exp ); - return 1; -} - -static cell AMX_NATIVE_CALL get_user_level(AMX *amx,cell *params) -{ - return GetUserLevel(params[1]); -} - -static cell AMX_NATIVE_CALL set_user_level(AMX *amx,cell *params) -{ - if(GetUserLevel(params[1]) > params[2]) - { - MF_LogError(amx,AMX_ERR_NATIVE,"Must set to a level higher than current one!"); - return 0; - } - SetUserLevel(params[1], params[2] ); - return 1; -} - -static cell AMX_NATIVE_CALL get_user_speed(AMX *amx,cell *params) -{ - return GetUserSpeed(params[1]); -} - -static cell AMX_NATIVE_CALL set_user_speed(AMX *amx,cell *params) -{ - SetUserSpeed(params[1], params[2] ); - return 1; -} - -static cell AMX_NATIVE_CALL get_user_hitpoints(AMX *amx,cell *params) -{ - return GetUserHitPoints(params[1]); -} - -static cell AMX_NATIVE_CALL set_user_hitpoints(AMX *amx,cell *params) -{ - SetUserHitPoints(params[1], params[2] ); - return 1; -} - -static cell AMX_NATIVE_CALL get_user_skill(AMX *amx,cell *params) -{ - return GetUserSkill(params[1]); -} - -static cell AMX_NATIVE_CALL set_user_skill(AMX *amx,cell *params) -{ - SetUserSkill(params[1], params[2] ); - return 1; -} - -static cell AMX_NATIVE_CALL send_progress_bar(AMX *amx,cell *params) -{ - int len = 0; - float time = amx_ctof(params[3]); - SendProgressBar(params[1], MF_GetAmxString( amx, params[2], 0, &len ), time ); - return 1; -} - -static cell AMX_NATIVE_CALL send_show_objective(AMX *amx,cell *params) -{ - int len = 0; - SendShowObjective(params[1], MF_GetAmxString( amx, params[2], 0, &len ) ); - return 1; -} - -static cell AMX_NATIVE_CALL send_show_message(AMX *amx,cell *params) -{ - int len = 0; - float time = amx_ctof(params[2]); - SendShowMessage(params[1], time, MF_GetAmxString( amx, params[2], 0, &len ), MF_GetAmxString( amx, params[3], 0, &len ) ); - return 1; -} - -static cell AMX_NATIVE_CALL reset_user_hud(AMX *amx,cell *params) -{ - UpdateBBHud( params[1] ); - return 1; -} - -static cell AMX_NATIVE_CALL is_user_zombie(AMX *amx,cell *params) -{ - return IsUserZombie(params[1]); -} - - -AMX_NATIVE_INFO bb_Exports[] = -{ - {"bb_is_user_zombie",is_user_zombie}, - {"bb_reset_user_hud", reset_user_hud}, - - {"bb_show_message",send_show_message}, - {"bb_show_objective", send_show_objective}, - {"bb_show_progress_bar", send_progress_bar}, - - {"bb_get_user_skill",get_user_skill}, - {"bb_set_user_skill", set_user_skill}, - - {"bb_get_user_hitpoints",get_user_hitpoints}, - {"bb_set_user_hitpoints", set_user_hitpoints}, - - {"bb_get_user_speed",get_user_speed}, - {"bb_set_user_speed", set_user_speed}, - - {"bb_get_user_exp",get_user_exp}, - {"bb_set_user_exp", set_user_exp}, - - {"bb_get_user_points",get_user_points}, - {"bb_set_user_points", set_user_points}, - - {"bb_get_user_level",get_user_level}, - {"bb_set_user_level", set_user_level}, - - { NULL, NULL } -}; - -void OnAmxxAttach() -{ - MF_AddNatives(bb_Exports); -} \ No newline at end of file diff --git a/dlls/BB/bb.h b/dlls/BB/bb.h deleted file mode 100644 index d433be78..00000000 --- a/dlls/BB/bb.h +++ /dev/null @@ -1,115 +0,0 @@ -// prevent double include -#ifndef __BB_H__ -#define __BB_H__ - -#include "pdata.h" -#include "bb_const.h" - -void UpdateBBHud( long& target); - -inline float GetUserExp( long& target) - { return GetPData(target, BB_PDATA_EXP, 100.0); } - -inline void SetUserExp( long& target, float& exp) - { SetPData(target, BB_PDATA_EXP, exp); } - -inline float GetUserPoints( long& target) - { return GetPData(target, BB_PDATA_POINT, 100.0); } - -inline void SetUserPoints( long& target, float& points) - {SetPData(target, BB_PDATA_POINT, points, true);} - -inline long GetUserLevel(long& target) - { return GetPData(target,BB_PDATA_LEVEL,100); } - -inline void SetUserLevel(long& target, long& level) -{ - long i; - float totalxp = 0.0; - - for(i=1;i<=level;i++) { - totalxp += 150.0 + ((i-1) * 300.0); - } - - SetUserExp( target, totalxp ); - - MESSAGE_BEGIN(MSG_ONE,120, NULL, MF_GetPlayerEdict( target) ); - WRITE_COORD(0); - WRITE_BYTE(level); - WRITE_BYTE( GetUserPoints(target) ); - MESSAGE_END(); - - MESSAGE_BEGIN(MSG_ALL,81, NULL, MF_GetPlayerEdict( target )); - WRITE_BYTE( target ); - WRITE_SHORT( MF_GetPlayerFrags( target ) ); - WRITE_SHORT( MF_GetPlayerDeaths( target ) ); - WRITE_BYTE(level); - MESSAGE_END(); - - SetPData(target,BB_PDATA_LEVEL,level); - SetPData(target,BB_PDATA_LEVEL - 1,level); - -} - -inline long GetUserSpeed(long& target) - { return GetPData(target,BB_PDATA_SPEED,100); } - -inline void SetUserSpeed(long& target, long& speed) - { SetPData(target,BB_PDATA_SPEED,speed, true);} - -inline long GetUserHitPoints(long& target) - { return GetPData(target,BB_PDATA_HITPOINTS,100); } - -inline void SetUserHitPoints(long& target, long& hitpoints) - { SetPData(target,BB_PDATA_HITPOINTS,hitpoints, true); } - -inline long GetUserSkill(long& target) - { return GetPData(target,BB_PDATA_SKILL,100); } - -inline void SetUserSkill(long& target, long& skill ) - { SetPData(target,BB_PDATA_SKILL,skill,true); } - -inline bool IsUserZombie(long& target) -{ - return ( (MF_GetPlayerEdict( target ))->v.team == 2); -} - -inline void SendProgressBar( long& target, char* message, float& time) -{ - MESSAGE_BEGIN(MSG_ONE, 122, NULL, MF_GetPlayerEdict( target)); - WRITE_STRING(message); - WRITE_COORD(time); - MESSAGE_END(); -} - -inline void SendShowObjective( long& target, char* message) -{ - MESSAGE_BEGIN(MSG_ONE, 122, NULL, MF_GetPlayerEdict( target)); - WRITE_COORD(-1); - WRITE_BYTE(144); - WRITE_STRING(message); - MESSAGE_END(); -} - -inline void SendShowMessage( long& target, float& duration, char* message, char* message2) -{ - MESSAGE_BEGIN(MSG_ONE, 122, NULL, MF_GetPlayerEdict( target)); - WRITE_COORD(duration); - WRITE_BYTE(32); - WRITE_STRING(message); - WRITE_STRING(message2); - MESSAGE_END(); -} - -void UpdateBBHud( long& target) -{ - MESSAGE_BEGIN( MSG_ONE, 113, NULL, MF_GetPlayerEdict( target) ); - WRITE_BYTE( GetUserHitPoints(target) ); - WRITE_BYTE( GetUserSpeed(target) ); - WRITE_BYTE( GetUserSkill(target) ); - WRITE_BYTE( GetUserPoints(target) ); - MESSAGE_END(); -} - -#endif - diff --git a/dlls/BB/bb.inc b/dlls/BB/bb.inc deleted file mode 100644 index dd25ddb4..00000000 --- a/dlls/BB/bb.inc +++ /dev/null @@ -1,47 +0,0 @@ -/* BrainBread Fun Module - * - * (c) 2005, XxAvalanchexX (converted to module by Rukia) - * - * This file is provided as is (no warranties). - */ - -#if defined _brainbread_included - #endinput -#endif -#define _brainbread_included - -#pragma library BBFUN - -#include -#include - -native bb_is_user_zombie(id) -native bb_reset_user_hud(id) - -native bb_show_message(id,Float:time = -1,message[],message2[] = "") -native bb_show_objective(id,message[] = "") -native bb_show_progress_bar(id,message[],time = 10) - -native bb_get_user_skill(id) -native bb_set_user_skill(id,skill) -stock bb_add_user_skill(id,skill) bb_set_user_skill(id,bb_get_user_skill(id) + skill) - -native Float:bb_get_user_exp(id) -native bb_set_user_exp(id,Float:exp) -stock bb_add_user_exp(id,Float:exp) bb_set_user_exp(id,bb_get_user_exp(id) + exp) - -native Float:bb_get_user_points(id) -native bb_set_user_points(id,Float:points) -stock bb_add_user_points(id,Float:points) bb_set_user_ponts(id,bb_get_user_points(id) + points) - -native bb_get_user_level(id) -native bb_set_user_level(id,level) -stock bb_add_user_level(id,level) bb_set_user_level(id,bb_get_user_level(id) + level) - -native bb_get_user_speed(id) -native bb_set_user_speed(id,speed) -stock bb_add_user_speed(id,speed) bb_set_user_speed(id,bb_get_user_speed(id) + speed) - -native bb_get_user_hitpoints(id) -native bb_set_user_hitpoints(id,hitpoints) -stock bb_add_user_hitpoints(id,hitpoints) bb_set_user_hitpoints(id,bb_get_user_hitpoints(id) + hitpoints) \ No newline at end of file diff --git a/dlls/BB/bb.ncb b/dlls/BB/bb.ncb deleted file mode 100644 index b1106abdcbe7a89395a9994aff0f7b5647732e15..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 273408 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 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dlls/BB/bb_const.h b/dlls/BB/bb_const.h deleted file mode 100644 index af142627..00000000 --- a/dlls/BB/bb_const.h +++ /dev/null @@ -1,12 +0,0 @@ -// prevent double include -#ifndef __BB_CONST__ -#define __BB_CONST__ - -#define BB_PDATA_LEVEL 505 -#define BB_PDATA_EXP 4 -#define BB_PDATA_POINT 432 -#define BB_PDATA_SPEED 501 -#define BB_PDATA_HITPOINTS 502 -#define BB_PDATA_SKILL 503 - -#endif \ No newline at end of file diff --git a/dlls/BB/bb_const.inc b/dlls/BB/bb_const.inc deleted file mode 100644 index 26e289f1..00000000 --- a/dlls/BB/bb_const.inc +++ /dev/null @@ -1,26 +0,0 @@ -/* BrainBread Fun Module Constants - * - * (c) 2005, XxAvalanchexX (converted to module by Rukia) - * - * This file is provided as is (no warranties). - */ - -#if defined _brainbread_const_included - #endinput -#endif -#define _brainbread_const_included - - -#define SPRAY_BSPRITZ 1 -#define SPRAY_BGUSH 2 -#define SPRAY_SMOKEPUFF 4 -#define SPRAY_EXPLOSION 5 - -#define DOT_GREEN 1 -#define DOT_RED 2 -#define DOT_WHITE 3 -#define DOT_LTBLUE 4 -#define DOT_BLUE 5 -#define DOT_ORANGE 6 -#define DOT_FLYELLOW 7 -#define DOT_FLGREEN 8 diff --git a/dlls/BB/bb_stocks.inc b/dlls/BB/bb_stocks.inc deleted file mode 100644 index b94feb17..00000000 --- a/dlls/BB/bb_stocks.inc +++ /dev/null @@ -1,112 +0,0 @@ -/* BrainBread Fun Module Stocks - * - * (c) 2005, XxAvalanchexX (converted to module by Rukia) - * - * This file is provided as is (no warranties). - */ - -#if defined _brainbread_stocks_included - #endinput -#endif -#define _brainbread_stocks_included - -/* Used to create a spray */ -stock bb_spray(type,origin[3]) { - - /* type: type of spray, see below */ - /* origin: origin of where spray comes from */ - - /* TYPES: - SPRAY_BSPRITZ (1) = Blood spritz - SPRAY_BGUSH (2) = Blood gush - SPRAY_SMOKEPUFF (4) = Smoke puffs - SPRAY_EXPLOSION (5) = Firey explosion */ - - message_begin(MSG_PVS,118,origin,0); - write_byte(type); - write_coord(origin[0]); - write_coord(origin[1]); - write_coord(origin[2]); - write_coord(random_num(-1,1)); - write_coord(random_num(-1,1)); - write_coord(random_num(-1,1)); - write_coord(random_num(-1,1)); - write_coord(random_num(-1,1)); - write_coord(random_num(-1,1)); - message_end(); - - return 1; -} - -/* Used to create a spray, with more parameters */ -stock bb_spray_adv(type,origin[3],size[3],dir[3]) { - - /* type: type of spray, see below */ - /* origin: origin of where spray comes from */ - /* size: size of spray, in XYZ format (I think), use a small number like -1 to 1 */ - /* dir: direction of spray, in XYZ format (I think), use a small number like -1 to 1 */ - - /* TYPES: - SPRAY_BSPRITZ (1) = Blood spritz - SPRAY_BGUSH (2) = Blood gush - SPRAY_SMOKEPUFF (4) = Smoke puffs - SPRAY_EXPLOSION (5) = Firey explosion */ - - message_begin(MSG_PVS,118,origin,0); - write_byte(type); - write_coord(origin[0]); - write_coord(origin[1]); - write_coord(origin[2]); - write_coord(size[0]); - write_coord(size[1]); - write_coord(size[2]); - write_coord(dir[0]); - write_coord(dir[1]); - write_coord(dir[2]); - message_end(); - - return 1; -} - -/* Used to set dots on the radar */ -stock bb_radar(id,dot_id,dot_origin[3],dot_status,dot_type) { - - /* dot_id: unique ID for this dot, use same ID to modify the same dot */ - /* dot_origin: the origin of where to place this dot */ - /* dot_status: 0 to remove the dot, 1 to add or modify the dot */ - /* dot_type: the type of dot, see below */ - - /* dot_origin and dot_type need not be set accurately when removing the dot */ - - /* TYPES: - DOT_GREEN (1) = Green Dot, used to mark teammates - DOT_RED (2) = Red Dot, used to mark enemies for zombies - DOT_WHITE (3) = White Dot, used to mark mission zones - DOT_LTBLUE (4) = Light Blue Dot, not used for BrainBread - DOT_BLUE (5) = Blue Dot, used to mark the BlackHawk - DOT_ORANGE (6) = Orange Dot, not used for BrainBread - DOT_FLYELLOW (7) = Flashing Yellow Dot, used to mark the Case or Fred - DOT_FLGREEN (8) = Flashing Green Dot, not used for BrainBread, - it stops flashing and turns to white after 3 seconds */ - - message_begin(MSG_ONE,93,{0,0,0},id); - write_short(dot_id); - write_byte(1); - write_coord(dot_origin[0]); - write_coord(dot_origin[1]); - write_coord(dot_origin[2]); - write_byte(1); - message_end(); - - message_begin(MSG_ONE,93,{0,0,0},id); - write_short(dot_id); - write_byte((dot_status > 0) ? 2 : 0); - - if(dot_status > 0) { - write_byte(dot_type); - } - - message_end(); - - return 1; -} diff --git a/dlls/BB/moduleconfig.h b/dlls/BB/moduleconfig.h deleted file mode 100644 index 3a68f862..00000000 --- a/dlls/BB/moduleconfig.h +++ /dev/null @@ -1,462 +0,0 @@ -// Configuration - -#ifndef __MODULECONFIG_H__ -#define __MODULECONFIG_H__ - -// Module info -#define MODULE_NAME "BBFUN" -#define MODULE_VERSION "1.65" -#define MODULE_AUTHOR "Avalanche" -#define MODULE_URL "www.rcrclansite.com" -#define MODULE_LOGTAG "BB" -// If you want the module not to be reloaded on mapchange, remove / comment out the next line -#define MODULE_RELOAD_ON_MAPCHANGE - -#ifdef __DATE__ -#define MODULE_DATE __DATE__ -#else // __DATE__ -#define MODULE_DATE "Today" -#endif // __DATE__ - -// metamod plugin? -#define USE_METAMOD - -// - AMXX Init functions -// Also consider using FN_META_* -// AMXX query -//#define FN_AMXX_QUERY OnAmxxQuery -// AMXX attach -// Do native functions init here (MF_AddNatives) -#define FN_AMXX_ATTACH OnAmxxAttach -// AMXX detach -// #define FN_AMXX_DETACH OnAmxxDetach -// All plugins loaded -// Do forward functions init here (MF_RegisterForward) -// #define FN_AMXX_PLUGINSLOADED OnPluginsLoaded - -/**** METAMOD ****/ -// If your module doesn't use metamod, you may close the file now :) -#ifdef USE_METAMOD -// ---- -// Hook Functions -// Uncomment these to be called -// You can also change the function name - -// - Metamod init functions -// Also consider using FN_AMXX_* -// Meta query -//#define FN_META_QUERY OnMetaQuery -// Meta attach -//#define FN_META_ATTACH OnMetaAttach -// Meta detach -//#define FN_META_DETACH OnMetaDetach - -// (wd) are Will Day's notes -// - GetEntityAPI2 functions -// #define FN_GameDLLInit GameDLLInit /* pfnGameInit() */ -// #define FN_DispatchSpawn DispatchSpawn /* pfnSpawn() */ -// #define FN_DispatchThink DispatchThink /* pfnThink() */ -// #define FN_DispatchUse DispatchUse /* pfnUse() */ -// #define FN_DispatchTouch DispatchTouch /* pfnTouch() */ -// #define FN_DispatchBlocked DispatchBlocked /* pfnBlocked() */ -// #define FN_DispatchKeyValue DispatchKeyValue /* pfnKeyValue() */ -// #define FN_DispatchSave DispatchSave /* pfnSave() */ -// #define FN_DispatchRestore DispatchRestore /* pfnRestore() */ -// #define FN_DispatchObjectCollsionBox DispatchObjectCollsionBox /* pfnSetAbsBox() */ -// #define FN_SaveWriteFields SaveWriteFields /* pfnSaveWriteFields() */ -// #define FN_SaveReadFields SaveReadFields /* pfnSaveReadFields() */ -// #define FN_SaveGlobalState SaveGlobalState /* pfnSaveGlobalState() */ -// #define FN_RestoreGlobalState RestoreGlobalState /* pfnRestoreGlobalState() */ -// #define FN_ResetGlobalState ResetGlobalState /* pfnResetGlobalState() */ -// #define FN_ClientConnect ClientConnect /* pfnClientConnect() (wd) Client has connected */ -// #define FN_ClientDisconnect ClientDisconnect /* pfnClientDisconnect() (wd) Player has left the game */ -// #define FN_ClientKill ClientKill /* pfnClientKill() (wd) Player has typed "kill" */ -// #define FN_ClientPutInServer ClientPutInServer /* pfnClientPutInServer() (wd) Client is entering the game */ -// #define FN_ClientCommand ClientCommand /* pfnClientCommand() (wd) Player has sent a command (typed or from a bind) */ -// #define FN_ClientUserInfoChanged ClientUserInfoChanged /* pfnClientUserInfoChanged() (wd) Client has updated their setinfo structure */ -// #define FN_ServerActivate ServerActivate /* pfnServerActivate() (wd) Server is starting a new map */ -// #define FN_ServerDeactivate ServerDeactivate /* pfnServerDeactivate() (wd) Server is leaving the map (shutdown or changelevel); SDK2 */ -// #define FN_PlayerPreThink PlayerPreThink /* pfnPlayerPreThink() */ -// #define FN_PlayerPostThink PlayerPostThink /* pfnPlayerPostThink() */ -// #define FN_StartFrame StartFrame /* pfnStartFrame() */ -// #define FN_ParmsNewLevel ParmsNewLevel /* pfnParmsNewLevel() */ -// #define FN_ParmsChangeLevel ParmsChangeLevel /* pfnParmsChangeLevel() */ -// #define FN_GetGameDescription GetGameDescription /* pfnGetGameDescription() Returns string describing current .dll. E.g. "TeamFotrress 2" "Half-Life" */ -// #define FN_PlayerCustomization PlayerCustomization /* pfnPlayerCustomization() Notifies .dll of new customization for player. */ -// #define FN_SpectatorConnect SpectatorConnect /* pfnSpectatorConnect() Called when spectator joins server */ -// #define FN_SpectatorDisconnect SpectatorDisconnect /* pfnSpectatorDisconnect() Called when spectator leaves the server */ -// #define FN_SpectatorThink SpectatorThink /* pfnSpectatorThink() Called when spectator sends a command packet (usercmd_t) */ -// #define FN_Sys_Error Sys_Error /* pfnSys_Error() Notify game .dll that engine is going to shut down. Allows mod authors to set a breakpoint. SDK2 */ -// #define FN_PM_Move PM_Move /* pfnPM_Move() (wd) SDK2 */ -// #define FN_PM_Init PM_Init /* pfnPM_Init() Server version of player movement initialization; (wd) SDK2 */ -// #define FN_PM_FindTextureType PM_FindTextureType /* pfnPM_FindTextureType() (wd) SDK2 */ -// #define FN_SetupVisibility SetupVisibility /* pfnSetupVisibility() Set up PVS and PAS for networking for this client; (wd) SDK2 */ -// #define FN_UpdateClientData UpdateClientData /* pfnUpdateClientData() Set up data sent only to specific client; (wd) SDK2 */ -// #define FN_AddToFullPack AddToFullPack /* pfnAddToFullPack() (wd) SDK2 */ -// #define FN_CreateBaseline CreateBaseline /* pfnCreateBaseline() Tweak entity baseline for network encoding allows setup of player baselines too.; (wd) SDK2 */ -// #define FN_RegisterEncoders RegisterEncoders /* pfnRegisterEncoders() Callbacks for network encoding; (wd) SDK2 */ -// #define FN_GetWeaponData GetWeaponData /* pfnGetWeaponData() (wd) SDK2 */ -// #define FN_CmdStart CmdStart /* pfnCmdStart() (wd) SDK2 */ -// #define FN_CmdEnd CmdEnd /* pfnCmdEnd() (wd) SDK2 */ -// #define FN_ConnectionlessPacket ConnectionlessPacket /* pfnConnectionlessPacket() (wd) SDK2 */ -// #define FN_GetHullBounds GetHullBounds /* pfnGetHullBounds() (wd) SDK2 */ -// #define FN_CreateInstancedBaselines CreateInstancedBaselines /* pfnCreateInstancedBaselines() (wd) SDK2 */ -// #define FN_InconsistentFile InconsistentFile /* pfnInconsistentFile() (wd) SDK2 */ -// #define FN_AllowLagCompensation AllowLagCompensation /* pfnAllowLagCompensation() (wd) SDK2 */ - -// - GetEntityAPI2_Post functions -// #define FN_GameDLLInit_Post GameDLLInit_Post -// #define FN_DispatchSpawn_Post DispatchSpawn_Post -// #define FN_DispatchThink_Post DispatchThink_Post -// #define FN_DispatchUse_Post DispatchUse_Post -// #define FN_DispatchTouch_Post DispatchTouch_Post -// #define FN_DispatchBlocked_Post DispatchBlocked_Post -// #define FN_DispatchKeyValue_Post DispatchKeyValue_Post -// #define FN_DispatchSave_Post DispatchSave_Post -// #define FN_DispatchRestore_Post DispatchRestore_Post -// #define FN_DispatchObjectCollsionBox_Post DispatchObjectCollsionBox_Post -// #define FN_SaveWriteFields_Post SaveWriteFields_Post -// #define FN_SaveReadFields_Post SaveReadFields_Post -// #define FN_SaveGlobalState_Post SaveGlobalState_Post -// #define FN_RestoreGlobalState_Post RestoreGlobalState_Post -// #define FN_ResetGlobalState_Post ResetGlobalState_Post -// #define FN_ClientConnect_Post ClientConnect_Post -// #define FN_ClientDisconnect_Post ClientDisconnect_Post -// #define FN_ClientKill_Post ClientKill_Post -// #define FN_ClientPutInServer_Post ClientPutInServer_Post -// #define FN_ClientCommand_Post ClientCommand_Post -// #define FN_ClientUserInfoChanged_Post ClientUserInfoChanged_Post -// #define FN_ServerActivate_Post ServerActivate_Post -// #define FN_ServerDeactivate_Post ServerDeactivate_Post -// #define FN_PlayerPreThink_Post PlayerPreThink_Post -// #define FN_PlayerPostThink_Post PlayerPostThink_Post -// #define FN_StartFrame_Post StartFrame_Post -// #define FN_ParmsNewLevel_Post ParmsNewLevel_Post -// #define FN_ParmsChangeLevel_Post ParmsChangeLevel_Post -// #define FN_GetGameDescription_Post GetGameDescription_Post -// #define FN_PlayerCustomization_Post PlayerCustomization_Post -// #define FN_SpectatorConnect_Post SpectatorConnect_Post -// #define FN_SpectatorDisconnect_Post SpectatorDisconnect_Post -// #define FN_SpectatorThink_Post SpectatorThink_Post -// #define FN_Sys_Error_Post Sys_Error_Post -// #define FN_PM_Move_Post PM_Move_Post -// #define FN_PM_Init_Post PM_Init_Post -// #define FN_PM_FindTextureType_Post PM_FindTextureType_Post -// #define FN_SetupVisibility_Post SetupVisibility_Post -// #define FN_UpdateClientData_Post UpdateClientData_Post -// #define FN_AddToFullPack_Post AddToFullPack_Post -// #define FN_CreateBaseline_Post CreateBaseline_Post -// #define FN_RegisterEncoders_Post RegisterEncoders_Post -// #define FN_GetWeaponData_Post GetWeaponData_Post -// #define FN_CmdStart_Post CmdStart_Post -// #define FN_CmdEnd_Post CmdEnd_Post -// #define FN_ConnectionlessPacket_Post ConnectionlessPacket_Post -// #define FN_GetHullBounds_Post GetHullBounds_Post -// #define FN_CreateInstancedBaselines_Post CreateInstancedBaselines_Post -// #define FN_InconsistentFile_Post InconsistentFile_Post -// #define FN_AllowLagCompensation_Post AllowLagCompensation_Post - -// - GetEngineAPI functions -// #define FN_PrecacheModel PrecacheModel -// #define FN_PrecacheSound PrecacheSound -// #define FN_SetModel SetModel -// #define FN_ModelIndex ModelIndex -// #define FN_ModelFrames ModelFrames -// #define FN_SetSize SetSize -// #define FN_ChangeLevel ChangeLevel -// #define FN_GetSpawnParms GetSpawnParms -// #define FN_SaveSpawnParms SaveSpawnParms -// #define FN_VecToYaw VecToYaw -// #define FN_VecToAngles VecToAngles -// #define FN_MoveToOrigin MoveToOrigin -// #define FN_ChangeYaw ChangeYaw -// #define FN_ChangePitch ChangePitch -// #define FN_FindEntityByString FindEntityByString -// #define FN_GetEntityIllum GetEntityIllum -// #define FN_FindEntityInSphere FindEntityInSphere -// #define FN_FindClientInPVS FindClientInPVS -// #define FN_EntitiesInPVS EntitiesInPVS -// #define FN_MakeVectors MakeVectors -// #define FN_AngleVectors AngleVectors -// #define FN_CreateEntity CreateEntity -// #define FN_RemoveEntity RemoveEntity -// #define FN_CreateNamedEntity CreateNamedEntity -// #define FN_MakeStatic MakeStatic -// #define FN_EntIsOnFloor EntIsOnFloor -// #define FN_DropToFloor DropToFloor -// #define FN_WalkMove WalkMove -// #define FN_SetOrigin SetOrigin -// #define FN_EmitSound EmitSound -// #define FN_EmitAmbientSound EmitAmbientSound -// #define FN_TraceLine TraceLine -// #define FN_TraceToss TraceToss -// #define FN_TraceMonsterHull TraceMonsterHull -// #define FN_TraceHull TraceHull -// #define FN_TraceModel TraceModel -// #define FN_TraceTexture TraceTexture -// #define FN_TraceSphere TraceSphere -// #define FN_GetAimVector GetAimVector -// #define FN_ServerCommand ServerCommand -// #define FN_ServerExecute ServerExecute -// #define FN_engClientCommand engClientCommand -// #define FN_ParticleEffect ParticleEffect -// #define FN_LightStyle LightStyle -// #define FN_DecalIndex DecalIndex -// #define FN_PointContents PointContents -// #define FN_MessageBegin MessageBegin -// #define FN_MessageEnd MessageEnd -// #define FN_WriteByte WriteByte -// #define FN_WriteChar WriteChar -// #define FN_WriteShort WriteShort -// #define FN_WriteLong WriteLong -// #define FN_WriteAngle WriteAngle -// #define FN_WriteCoord WriteCoord -// #define FN_WriteString WriteString -// #define FN_WriteEntity WriteEntity -// #define FN_CVarRegister CVarRegister -// #define FN_CVarGetFloat CVarGetFloat -// #define FN_CVarGetString CVarGetString -// #define FN_CVarSetFloat CVarSetFloat -// #define FN_CVarSetString CVarSetString -// #define FN_AlertMessage AlertMessage -// #define FN_EngineFprintf EngineFprintf -// #define FN_PvAllocEntPrivateData PvAllocEntPrivateData -// #define FN_PvEntPrivateData PvEntPrivateData -// #define FN_FreeEntPrivateData FreeEntPrivateData -// #define FN_SzFromIndex SzFromIndex -// #define FN_AllocString AllocString -// #define FN_GetVarsOfEnt GetVarsOfEnt -// #define FN_PEntityOfEntOffset PEntityOfEntOffset -// #define FN_EntOffsetOfPEntity EntOffsetOfPEntity -// #define FN_IndexOfEdict IndexOfEdict -// #define FN_PEntityOfEntIndex PEntityOfEntIndex -// #define FN_FindEntityByVars FindEntityByVars -// #define FN_GetModelPtr GetModelPtr -// #define FN_RegUserMsg RegUserMsg -// #define FN_AnimationAutomove AnimationAutomove -// #define FN_GetBonePosition GetBonePosition -// #define FN_FunctionFromName FunctionFromName -// #define FN_NameForFunction NameForFunction -// #define FN_ClientPrintf ClientPrintf -// #define FN_ServerPrint ServerPrint -// #define FN_Cmd_Args Cmd_Args -// #define FN_Cmd_Argv Cmd_Argv -// #define FN_Cmd_Argc Cmd_Argc -// #define FN_GetAttachment GetAttachment -// #define FN_CRC32_Init CRC32_Init -// #define FN_CRC32_ProcessBuffer CRC32_ProcessBuffer -// #define FN_CRC32_ProcessByte CRC32_ProcessByte -// #define FN_CRC32_Final CRC32_Final -// #define FN_RandomLong RandomLong -// #define FN_RandomFloat RandomFloat -// #define FN_SetView SetView -// #define FN_Time Time -// #define FN_CrosshairAngle CrosshairAngle -// #define FN_LoadFileForMe LoadFileForMe -// #define FN_FreeFile FreeFile -// #define FN_EndSection EndSection -// #define FN_CompareFileTime CompareFileTime -// #define FN_GetGameDir GetGameDir -// #define FN_Cvar_RegisterVariable Cvar_RegisterVariable -// #define FN_FadeClientVolume FadeClientVolume -// #define FN_SetClientMaxspeed SetClientMaxspeed -// #define FN_CreateFakeClient CreateFakeClient -// #define FN_RunPlayerMove RunPlayerMove -// #define FN_NumberOfEntities NumberOfEntities -// #define FN_GetInfoKeyBuffer GetInfoKeyBuffer -// #define FN_InfoKeyValue InfoKeyValue -// #define FN_SetKeyValue SetKeyValue -// #define FN_SetClientKeyValue SetClientKeyValue -// #define FN_IsMapValid IsMapValid -// #define FN_StaticDecal StaticDecal -// #define FN_PrecacheGeneric PrecacheGeneric -// #define FN_GetPlayerUserId GetPlayerUserId -// #define FN_BuildSoundMsg BuildSoundMsg -// #define FN_IsDedicatedServer IsDedicatedServer -// #define FN_CVarGetPointer CVarGetPointer -// #define FN_GetPlayerWONId GetPlayerWONId -// #define FN_Info_RemoveKey Info_RemoveKey -// #define FN_GetPhysicsKeyValue GetPhysicsKeyValue -// #define FN_SetPhysicsKeyValue SetPhysicsKeyValue -// #define FN_GetPhysicsInfoString GetPhysicsInfoString -// #define FN_PrecacheEvent PrecacheEvent -// #define FN_PlaybackEvent PlaybackEvent -// #define FN_SetFatPVS SetFatPVS -// #define FN_SetFatPAS SetFatPAS -// #define FN_CheckVisibility CheckVisibility -// #define FN_DeltaSetField DeltaSetField -// #define FN_DeltaUnsetField DeltaUnsetField -// #define FN_DeltaAddEncoder DeltaAddEncoder -// #define FN_GetCurrentPlayer GetCurrentPlayer -// #define FN_CanSkipPlayer CanSkipPlayer -// #define FN_DeltaFindField DeltaFindField -// #define FN_DeltaSetFieldByIndex DeltaSetFieldByIndex -// #define FN_DeltaUnsetFieldByIndex DeltaUnsetFieldByIndex -// #define FN_SetGroupMask SetGroupMask -// #define FN_engCreateInstancedBaseline engCreateInstancedBaseline -// #define FN_Cvar_DirectSet Cvar_DirectSet -// #define FN_ForceUnmodified ForceUnmodified -// #define FN_GetPlayerStats GetPlayerStats -// #define FN_AddServerCommand AddServerCommand -// #define FN_Voice_GetClientListening Voice_GetClientListening -// #define FN_Voice_SetClientListening Voice_SetClientListening -// #define FN_GetPlayerAuthId GetPlayerAuthId - -// - GetEngineAPI_Post functions -// #define FN_PrecacheModel_Post PrecacheModel_Post -// #define FN_PrecacheSound_Post PrecacheSound_Post -// #define FN_SetModel_Post SetModel_Post -// #define FN_ModelIndex_Post ModelIndex_Post -// #define FN_ModelFrames_Post ModelFrames_Post -// #define FN_SetSize_Post SetSize_Post -// #define FN_ChangeLevel_Post ChangeLevel_Post -// #define FN_GetSpawnParms_Post GetSpawnParms_Post -// #define FN_SaveSpawnParms_Post SaveSpawnParms_Post -// #define FN_VecToYaw_Post VecToYaw_Post -// #define FN_VecToAngles_Post VecToAngles_Post -// #define FN_MoveToOrigin_Post MoveToOrigin_Post -// #define FN_ChangeYaw_Post ChangeYaw_Post -// #define FN_ChangePitch_Post ChangePitch_Post -// #define FN_FindEntityByString_Post FindEntityByString_Post -// #define FN_GetEntityIllum_Post GetEntityIllum_Post -// #define FN_FindEntityInSphere_Post FindEntityInSphere_Post -// #define FN_FindClientInPVS_Post FindClientInPVS_Post -// #define FN_EntitiesInPVS_Post EntitiesInPVS_Post -// #define FN_MakeVectors_Post MakeVectors_Post -// #define FN_AngleVectors_Post AngleVectors_Post -// #define FN_CreateEntity_Post CreateEntity_Post -// #define FN_RemoveEntity_Post RemoveEntity_Post -// #define FN_CreateNamedEntity_Post CreateNamedEntity_Post -// #define FN_MakeStatic_Post MakeStatic_Post -// #define FN_EntIsOnFloor_Post EntIsOnFloor_Post -// #define FN_DropToFloor_Post DropToFloor_Post -// #define FN_WalkMove_Post WalkMove_Post -// #define FN_SetOrigin_Post SetOrigin_Post -// #define FN_EmitSound_Post EmitSound_Post -// #define FN_EmitAmbientSound_Post EmitAmbientSound_Post -// #define FN_TraceLine_Post TraceLine_Post -// #define FN_TraceToss_Post TraceToss_Post -// #define FN_TraceMonsterHull_Post TraceMonsterHull_Post -// #define FN_TraceHull_Post TraceHull_Post -// #define FN_TraceModel_Post TraceModel_Post -// #define FN_TraceTexture_Post TraceTexture_Post -// #define FN_TraceSphere_Post TraceSphere_Post -// #define FN_GetAimVector_Post GetAimVector_Post -// #define FN_ServerCommand_Post ServerCommand_Post -// #define FN_ServerExecute_Post ServerExecute_Post -// #define FN_engClientCommand_Post engClientCommand_Post -// #define FN_ParticleEffect_Post ParticleEffect_Post -// #define FN_LightStyle_Post LightStyle_Post -// #define FN_DecalIndex_Post DecalIndex_Post -// #define FN_PointContents_Post PointContents_Post -// #define FN_MessageBegin_Post MessageBegin_Post -// #define FN_MessageEnd_Post MessageEnd_Post -// #define FN_WriteByte_Post WriteByte_Post -// #define FN_WriteChar_Post WriteChar_Post -// #define FN_WriteShort_Post WriteShort_Post -// #define FN_WriteLong_Post WriteLong_Post -// #define FN_WriteAngle_Post WriteAngle_Post -// #define FN_WriteCoord_Post WriteCoord_Post -// #define FN_WriteString_Post WriteString_Post -// #define FN_WriteEntity_Post WriteEntity_Post -// #define FN_CVarRegister_Post CVarRegister_Post -// #define FN_CVarGetFloat_Post CVarGetFloat_Post -// #define FN_CVarGetString_Post CVarGetString_Post -// #define FN_CVarSetFloat_Post CVarSetFloat_Post -// #define FN_CVarSetString_Post CVarSetString_Post -// #define FN_AlertMessage_Post AlertMessage_Post -// #define FN_EngineFprintf_Post EngineFprintf_Post -// #define FN_PvAllocEntPrivateData_Post PvAllocEntPrivateData_Post -// #define FN_PvEntPrivateData_Post PvEntPrivateData_Post -// #define FN_FreeEntPrivateData_Post FreeEntPrivateData_Post -// #define FN_SzFromIndex_Post SzFromIndex_Post -// #define FN_AllocString_Post AllocString_Post -// #define FN_GetVarsOfEnt_Post GetVarsOfEnt_Post -// #define FN_PEntityOfEntOffset_Post PEntityOfEntOffset_Post -// #define FN_EntOffsetOfPEntity_Post EntOffsetOfPEntity_Post -// #define FN_IndexOfEdict_Post IndexOfEdict_Post -// #define FN_PEntityOfEntIndex_Post PEntityOfEntIndex_Post -// #define FN_FindEntityByVars_Post FindEntityByVars_Post -// #define FN_GetModelPtr_Post GetModelPtr_Post -// #define FN_RegUserMsg_Post RegUserMsg_Post -// #define FN_AnimationAutomove_Post AnimationAutomove_Post -// #define FN_GetBonePosition_Post GetBonePosition_Post -// #define FN_FunctionFromName_Post FunctionFromName_Post -// #define FN_NameForFunction_Post NameForFunction_Post -// #define FN_ClientPrintf_Post ClientPrintf_Post -// #define FN_ServerPrint_Post ServerPrint_Post -// #define FN_Cmd_Args_Post Cmd_Args_Post -// #define FN_Cmd_Argv_Post Cmd_Argv_Post -// #define FN_Cmd_Argc_Post Cmd_Argc_Post -// #define FN_GetAttachment_Post GetAttachment_Post -// #define FN_CRC32_Init_Post CRC32_Init_Post -// #define FN_CRC32_ProcessBuffer_Post CRC32_ProcessBuffer_Post -// #define FN_CRC32_ProcessByte_Post CRC32_ProcessByte_Post -// #define FN_CRC32_Final_Post CRC32_Final_Post -// #define FN_RandomLong_Post RandomLong_Post -// #define FN_RandomFloat_Post RandomFloat_Post -// #define FN_SetView_Post SetView_Post -// #define FN_Time_Post Time_Post -// #define FN_CrosshairAngle_Post CrosshairAngle_Post -// #define FN_LoadFileForMe_Post LoadFileForMe_Post -// #define FN_FreeFile_Post FreeFile_Post -// #define FN_EndSection_Post EndSection_Post -// #define FN_CompareFileTime_Post CompareFileTime_Post -// #define FN_GetGameDir_Post GetGameDir_Post -// #define FN_Cvar_RegisterVariable_Post Cvar_RegisterVariable_Post -// #define FN_FadeClientVolume_Post FadeClientVolume_Post -// #define FN_SetClientMaxspeed_Post SetClientMaxspeed_Post -// #define FN_CreateFakeClient_Post CreateFakeClient_Post -// #define FN_RunPlayerMove_Post RunPlayerMove_Post -// #define FN_NumberOfEntities_Post NumberOfEntities_Post -// #define FN_GetInfoKeyBuffer_Post GetInfoKeyBuffer_Post -// #define FN_InfoKeyValue_Post InfoKeyValue_Post -// #define FN_SetKeyValue_Post SetKeyValue_Post -// #define FN_SetClientKeyValue_Post SetClientKeyValue_Post -// #define FN_IsMapValid_Post IsMapValid_Post -// #define FN_StaticDecal_Post StaticDecal_Post -// #define FN_PrecacheGeneric_Post PrecacheGeneric_Post -// #define FN_GetPlayerUserId_Post GetPlayerUserId_Post -// #define FN_BuildSoundMsg_Post BuildSoundMsg_Post -// #define FN_IsDedicatedServer_Post IsDedicatedServer_Post -// #define FN_CVarGetPointer_Post CVarGetPointer_Post -// #define FN_GetPlayerWONId_Post GetPlayerWONId_Post -// #define FN_Info_RemoveKey_Post Info_RemoveKey_Post -// #define FN_GetPhysicsKeyValue_Post GetPhysicsKeyValue_Post -// #define FN_SetPhysicsKeyValue_Post SetPhysicsKeyValue_Post -// #define FN_GetPhysicsInfoString_Post GetPhysicsInfoString_Post -// #define FN_PrecacheEvent_Post PrecacheEvent_Post -// #define FN_PlaybackEvent_Post PlaybackEvent_Post -// #define FN_SetFatPVS_Post SetFatPVS_Post -// #define FN_SetFatPAS_Post SetFatPAS_Post -// #define FN_CheckVisibility_Post CheckVisibility_Post -// #define FN_DeltaSetField_Post DeltaSetField_Post -// #define FN_DeltaUnsetField_Post DeltaUnsetField_Post -// #define FN_DeltaAddEncoder_Post DeltaAddEncoder_Post -// #define FN_GetCurrentPlayer_Post GetCurrentPlayer_Post -// #define FN_CanSkipPlayer_Post CanSkipPlayer_Post -// #define FN_DeltaFindField_Post DeltaFindField_Post -// #define FN_DeltaSetFieldByIndex_Post DeltaSetFieldByIndex_Post -// #define FN_DeltaUnsetFieldByIndex_Post DeltaUnsetFieldByIndex_Post -// #define FN_SetGroupMask_Post SetGroupMask_Post -// #define FN_engCreateInstancedBaseline_Post engCreateInstancedBaseline_Post -// #define FN_Cvar_DirectSet_Post Cvar_DirectSet_Post -// #define FN_ForceUnmodified_Post ForceUnmodified_Post -// #define FN_GetPlayerStats_Post GetPlayerStats_Post -// #define FN_AddServerCommand_Post AddServerCommand_Post -// #define FN_Voice_GetClientListening_Post Voice_GetClientListening_Post -// #define FN_Voice_SetClientListening_Post Voice_SetClientListening_Post -// #define FN_GetPlayerAuthId_Post GetPlayerAuthId_Post - -// #define FN_OnFreeEntPrivateData OnFreeEntPrivateData -// #define FN_GameShutdown GameShutdown -// #define FN_ShouldCollide ShouldCollide - -// #define FN_OnFreeEntPrivateData_Post OnFreeEntPrivateData_Post -// #define FN_GameShutdown_Post GameShutdown_Post -// #define FN_ShouldCollide_Post ShouldCollide_Post - - -#endif // USE_METAMOD - -#endif // __MODULECONFIG_H__ \ No newline at end of file diff --git a/dlls/BB/pdata.h b/dlls/BB/pdata.h deleted file mode 100644 index 54aaa9fc..00000000 --- a/dlls/BB/pdata.h +++ /dev/null @@ -1,40 +0,0 @@ -// prevent double include -#ifndef __PDATA_H__ -#define __PDATA_H__ - -#include -#include "amxxmodule.h" - -#if defined __linux__ - #define EXTRAOFFSET 5 // offsets 5 higher in Linux builds -#else - #define EXTRAOFFSET 0 // no change in Windows builds -#endif // defined __linux__ - -inline edict_t* MF_GetEntityEdict( long& EntID ) -{ - if( (EntID > 0) && (EntID <= (gpGlobals->maxClients) ) ) - return MF_GetPlayerEdict( EntID ); - - return NULL; -} - -template -inline void SetPData( long& targetid, long offset, ValueType value, bool reset = false ) -{ - edict_t* target = MF_GetEntityEdict( targetid ); - if(target == NULL) return; - - *((ValueType *)target->pvPrivateData + offset + EXTRAOFFSET) = value; - if(reset) UpdateBBHud( targetid ); -}; - -template -inline ValueType GetPData( long& targetid, long offset, ValueType value ) -{ - edict_t* target = MF_GetEntityEdict( targetid ); - if(target == NULL) return NULL; - return *((ValueType *)target->pvPrivateData + offset + EXTRAOFFSET); -} - -#endif \ No newline at end of file diff --git a/dlls/MemHack/MemConst.h b/dlls/MemHack/MemConst.h deleted file mode 100644 index d84b642a..00000000 --- a/dlls/MemHack/MemConst.h +++ /dev/null @@ -1,48 +0,0 @@ -#ifndef __MEMCONST_H__ -#define __MEMCONST_H__ - -#ifdef __linux__ - #include -#endif - -#include "amxxmodule.h" - -// Define memory address type -#ifdef __amd64__ - typedef uint64_t maddress; -#else - typedef uint32_t maddress; -#endif - -// Number of bytes for different data types -#define BYTE_BYTES 1 -#define WORD_BYTES 2 -#define DWORD_BYTES 4 -#define QWORD_BYTES 8 -#define FLOAT_BYTES 4 - -// Return codes for MemoryProtect -#define MP_FAIL -1 -#define MP_OK 0 - -// Memory protection constants -#ifdef __linux__ - #define MPROT_CODE PROT_READ|PROT_EXEC - #define MPROT_DATA PROT_READ|PROT_WRITE - #define MPROT_RODATA PROT_READ - #define MPROT_CODE_EDIT PROT_READ|PROT_WRITE|PROT_EXEC - #define MPROT_RODATA_EDIT PROT_READ|PROT_WRITE -#else - #define MPROT_CODE PAGE_EXECUTE_READ - #define MPROT_DATA PAGE_READWRITE - #define MPROT_RODATA PAGE_READONLY - #define MPROT_CODE_EDIT PAGE_EXECUTE_READWRITE - #define MPROT_RODATA_EDIT PAGE_READWRITE -#endif - -// Memory area types -#define MEMTYPE_CODE 0 // Code (usually .text segment, requires mprotect or VirtualProtect) -#define MEMTYPE_DATA 1 // Data (usually .data segment, writable by default) -#define MEMTYPE_RODATA 2 // Read-Only Data (usually .rodata on Linux, .rdata on Windows) - -#endif // #ifndef __MEMHACK_H__ diff --git a/dlls/MemHack/MemHack.cpp b/dlls/MemHack/MemHack.cpp deleted file mode 100644 index eb3fd05d..00000000 --- a/dlls/MemHack/MemHack.cpp +++ /dev/null @@ -1,16 +0,0 @@ -#include "MemMisc.h" - -extern AMX_NATIVE_INFO read_natives[]; -extern AMX_NATIVE_INFO write_natives[]; -extern AMX_NATIVE_INFO misc_natives[]; - -void OnAmxxAttach() -{ - // Get Base Addresses for dll and engine; exit if unavailable. - if(GetBaseAddresses() == false) return MF_LogError(NULL,AMX_ERR_MEMACCESS,"Unable to get base address of game or mod .dll!"); - - // Add natives if base is found. - MF_AddNatives(read_natives); - MF_AddNatives(write_natives); - MF_AddNatives(misc_natives); -} \ No newline at end of file diff --git a/dlls/MemHack/MemHack.ncb b/dlls/MemHack/MemHack.ncb deleted file mode 100644 index 8ed80be9550716f2f0e3fcaa7a0b293766b76e94..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 134144 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 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dlls/MemHack/MemMisc.cpp b/dlls/MemHack/MemMisc.cpp deleted file mode 100644 index 62465a19..00000000 --- a/dlls/MemHack/MemMisc.cpp +++ /dev/null @@ -1,111 +0,0 @@ -#include "MemConst.h" - -// Game memory addresses -maddress gameDllAddress = NULL; -maddress gameEngAddress = NULL; - -bool GetBaseAddress(void *pAddr, maddress &pBaseAddr/*, size_t *memLength*/) -{ -#ifdef WIN32 - MEMORY_BASIC_INFORMATION mem; - if (!VirtualQuery(pAddr, &mem, sizeof(mem))) - return false; - - pBaseAddr = (maddress)mem.AllocationBase; - - IMAGE_DOS_HEADER *dos = (IMAGE_DOS_HEADER *)(mem.AllocationBase); - IMAGE_NT_HEADERS *pe = reinterpret_cast( (unsigned long)dos + (unsigned long)dos->e_lfanew ); - if (pe->Signature != IMAGE_NT_SIGNATURE) - return false; - - //if (memLength) - //*memLength = (size_t)(pe->OptionalHeader.SizeOfImage); - return true; -#else - Dl_info info; - struct stat buf; - - if (!dladdr(pAddr, &info)) - return false; - - if (!info.dli_fbase || !info.dli_fname) - return false; - - if (stat(info.dli_fname, &buf) != 0) - return false; - - if (pBaseAddr) - *pBaseAddr = (unsigned char *)info.dli_fbase; - //if (memLength) - //*memLength = buf.st_size; - - return true; -#endif -} - -/* Wrapper for mprotect and VirtualProtect */ -int MemoryProtect(void *addr, size_t len, unsigned long newProt, unsigned long *oldProt, char memType) { - int retVal; - - #ifdef __linux__ - maddress alignAddr = (maddress)addr - ((maddress)addr % pageSize); - retVal = mprotect((void*)alignAddr, pageSize, newProt); - - // Linux's mprotect doesn't get the old protection flags, so we have to fake it - switch (memType) { - case MEMTYPE_CODE: - *oldProt = MPROT_CODE; - break; - case MEMTYPE_RODATA: - *oldProt = MPROT_RODATA; - break; - default: - *oldProt = MPROT_CODE; - break; - } - #else - retVal = VirtualProtect(addr, len, newProt, oldProt); - // This will match the Windows return value with the Linux ones, done for consistency - if (retVal == 0) { - retVal = -1; - } else { - retVal = 0; - } - #endif - - return retVal; -} - -// Linux won't work till I fix it for MEMTYPE_DATA -#ifdef __linux__ - // Data section stuff - maddress dataSectionStart; - maddress dataSectionOffset; - - int pageSize = sysconf(_SC_PAGESIZE); -#endif - -/* Gets real memory address */ -maddress GetRealMemoryAddress(maddress baseaddress, maddress address, char memType) -{ - if(baseaddress == NULL) return address; - - maddress realAddress = address; - - switch (memType) - { - case MEMTYPE_CODE: case MEMTYPE_RODATA: - realAddress = baseaddress + address; - break; - case MEMTYPE_DATA: - // Linux's data segment is in a not so simple place in memory - #ifdef __linux__ - realAddress = dataSectionStart + (address - dataSectionOffset); - #else - realAddress = baseaddress + address; - #endif - break; - } - - return realAddress; -} \ No newline at end of file diff --git a/dlls/MemHack/MemMisc.h b/dlls/MemHack/MemMisc.h deleted file mode 100644 index 73acc070..00000000 --- a/dlls/MemHack/MemMisc.h +++ /dev/null @@ -1,38 +0,0 @@ -#ifndef __MEMMISC_H__ -#define __MEMMISC_H__ - -#include "MemConst.h" - -#define SAMPLE_DLLFUNC reinterpret_cast(gpGamedllFuncs->dllapi_table->pfnThink) -#define SAMPLE_ENGFUNC reinterpret_cast(g_engfuncs.pfnChangeLevel) - -extern maddress gameDllAddress; -extern maddress gameEngAddress; - -inline maddress PickBaseAddress(long num) -{ - if(num == 0) return gameDllAddress; - else if(num == 1) return gameEngAddress; - - return NULL; -} - -extern int MemoryProtect(void *addr, size_t len, unsigned long newProt, unsigned long *oldProt, char memType = MEMTYPE_CODE); -extern maddress GetRealMemoryAddress(maddress baseaddress,maddress address, char memType); - -extern bool GetBaseAddress(void *pAddr, maddress &pBaseAddr); - -inline bool GetBaseAddresses( void ) -{ - bool success = false; - - success = GetBaseAddress(SAMPLE_DLLFUNC, gameDllAddress); - if(success == false) return false; - - success = GetBaseAddress(SAMPLE_ENGFUNC, gameEngAddress); - if(success == false) return false; - - return true; -} - -#endif \ No newline at end of file diff --git a/dlls/MemHack/MemMiscNatives.cpp b/dlls/MemHack/MemMiscNatives.cpp deleted file mode 100644 index 5cd2d4ed..00000000 --- a/dlls/MemHack/MemMiscNatives.cpp +++ /dev/null @@ -1,33 +0,0 @@ -#include "MemMisc.h" - -#define NATIVE_MISC_ADDRESS params[1] -#define NATIVE_MISC_BASEADDRESS PickBaseAddress(params[2]) -#define NATIVE_MISC_FLAGS params[3] - -static cell AMX_NATIVE_CALL memhack_get_base(AMX *amx, cell *params) -{ - cell *success = MF_GetAmxAddr(amx, params[2]); - maddress BaseAddr = NULL; - - bool is_success = GetBaseAddress((void*)(params[1]), BaseAddr); - *success = is_success; - - return cell(BaseAddr); -} - -static cell AMX_NATIVE_CALL memhack_get_realaddr(AMX *amx, cell *params) -{ - return (cell)GetRealMemoryAddress(NATIVE_MISC_ADDRESS,NATIVE_MISC_BASEADDRESS,NATIVE_MISC_FLAGS); -} - -static cell AMX_NATIVE_CALL memhack_return_addr(AMX *amx, cell *params) -{ - return (cell)PickBaseAddress(params[1]); -} - -AMX_NATIVE_INFO misc_natives[] = { - { "memhack_get_base", memhack_get_base }, - { "memhack_get_realaddr", memhack_get_realaddr }, - { "memhack_return_addr", memhack_return_addr }, - { NULL, NULL } -}; diff --git a/dlls/MemHack/MemRead.cpp b/dlls/MemHack/MemRead.cpp deleted file mode 100644 index 5d9e72a5..00000000 --- a/dlls/MemHack/MemRead.cpp +++ /dev/null @@ -1,56 +0,0 @@ -#include "MemMisc.h" - -/* Functions that read different data types in memory */ - -template -Type UTIL_ReadMemory(maddress BaseAddress, maddress StartAddress, char MemType, Type returnType) -{ - maddress EndAddress = GetRealMemoryAddress(BaseAddress, StartAddress, MemType); - - return *(Type*)EndAddress; -} - -char UTIL_ReadMemory_Byte(maddress BaseAddress, maddress address, char memType) -{ - return UTIL_ReadMemory( BaseAddress, address, memType, char(NULL)); -} - -short UTIL_ReadMemory_Word(maddress BaseAddress, maddress address, char memType) -{ - return UTIL_ReadMemory( BaseAddress, address, memType, short(NULL)); -} - -int32_t UTIL_ReadMemory_Dword(maddress BaseAddress, maddress address, char memType) -{ - return UTIL_ReadMemory( BaseAddress, address, memType, int32_t(NULL)); -} - -long long UTIL_ReadMemory_Qword(maddress BaseAddress, maddress address, char memType) -{ - return UTIL_ReadMemory( BaseAddress, address, memType, (long long)(NULL)); -} - -float UTIL_ReadMemory_Float(maddress BaseAddress, maddress address, char memType) -{ - return UTIL_ReadMemory( BaseAddress, address, memType, float(NULL)); -} - - unsigned char UTIL_ReadMemory_UnsignedByte(maddress BaseAddress, maddress address, char memType) -{ - return UTIL_ReadMemory( BaseAddress, address, memType, (unsigned char)(NULL)); -} - - unsigned short UTIL_ReadMemory_UnsignedWord(maddress BaseAddress, maddress address, char memType) -{ - return UTIL_ReadMemory( BaseAddress, address, memType, (unsigned short)(NULL)); -} - - uint32_t UTIL_ReadMemory_UnsignedDword(maddress BaseAddress, maddress address, char memType) -{ - return UTIL_ReadMemory( BaseAddress, address, memType, uint32_t(NULL)); -} - - maddress UTIL_ReadMemory_Pointer(maddress BaseAddress, maddress address, char memType) -{ - return UTIL_ReadMemory( BaseAddress, address, memType, maddress(NULL)); -} diff --git a/dlls/MemHack/MemRead.h b/dlls/MemHack/MemRead.h deleted file mode 100644 index 93656987..00000000 --- a/dlls/MemHack/MemRead.h +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef __MEMREAD_H__ -#define __MEMREAD_H__ - -#include "MemMisc.h" - -// Functions that read different data types in memory - -// Base function -template -extern Type UTIL_ReadMemory(maddress BaseAddress, maddress StartAddress, char MemType, Type returnType); - -// Inline stocks -inline char UTIL_ReadMemory_Byte (maddress baseaddress, maddress address, char memType = MEMTYPE_DATA); -inline short UTIL_ReadMemory_Word (maddress baseaddress, maddress address, char memType = MEMTYPE_DATA); -inline int32_t UTIL_ReadMemory_Dword (maddress baseaddress, maddress address, char memType = MEMTYPE_DATA); -inline long long UTIL_ReadMemory_Qword (maddress baseaddress, maddress address, char memType = MEMTYPE_DATA); -inline float UTIL_ReadMemory_Float (maddress baseaddress, maddress address, char memType = MEMTYPE_DATA); -inline unsigned char UTIL_ReadMemory_UnsignedByte (maddress baseaddress, maddress address, char memType = MEMTYPE_DATA); -inline unsigned short UTIL_ReadMemory_UnsignedWord (maddress baseaddress, maddress address, char memType = MEMTYPE_DATA); -inline uint32_t UTIL_ReadMemory_UnsignedDword (maddress baseaddress, maddress address, char memType = MEMTYPE_DATA); -inline maddress UTIL_ReadMemory_Pointer (maddress baseaddress, maddress address, char memType = MEMTYPE_DATA); - -#endif \ No newline at end of file diff --git a/dlls/MemHack/MemReadNatives.cpp b/dlls/MemHack/MemReadNatives.cpp deleted file mode 100644 index 92fcdfe1..00000000 --- a/dlls/MemHack/MemReadNatives.cpp +++ /dev/null @@ -1,78 +0,0 @@ -#include "MemRead.h" - -#define NATIVE_HACK_BASEADDRESS PickBaseAddress(params[2]) -#define NATIVE_HACK_ADDRESS params[1] -#define NATIVE_HACK_FLAGS params[3] -#define NATIVE_HACK_SIGNED params[4] -#define NATIVE_HACK_MEMORY NATIVE_HACK_BASEADDRESS, NATIVE_HACK_ADDRESS, NATIVE_HACK_FLAGS - -static cell AMX_NATIVE_CALL memhack_get_char(AMX *amx, cell *params) -{ - if(NATIVE_HACK_SIGNED) - { - char HackedMemory = UTIL_ReadMemory_Byte(NATIVE_HACK_MEMORY); - return (cell)(HackedMemory); - } - else - { - unsigned char HackedMemory = UTIL_ReadMemory_UnsignedByte(NATIVE_HACK_MEMORY); - return (cell)(HackedMemory); - } -} - -static cell AMX_NATIVE_CALL memhack_get_short(AMX *amx, cell *params) -{ - if(NATIVE_HACK_SIGNED) - { - short HackedMemory = UTIL_ReadMemory_Word(NATIVE_HACK_MEMORY); - return (cell)(HackedMemory); - } - else - { - unsigned short HackedMemory = UTIL_ReadMemory_UnsignedWord(NATIVE_HACK_MEMORY); - return (cell)(HackedMemory); - } -} - -static cell AMX_NATIVE_CALL memhack_get_long(AMX *amx, cell *params) -{ - if(NATIVE_HACK_SIGNED) - { - long HackedMemory = UTIL_ReadMemory_Dword(NATIVE_HACK_MEMORY); - return (cell)(HackedMemory); - } - else - { - unsigned long HackedMemory = UTIL_ReadMemory_UnsignedDword(NATIVE_HACK_MEMORY); - return (cell)(HackedMemory); - } -} - -static cell AMX_NATIVE_CALL memhack_get_quad(AMX *amx, cell *params) -{ - long long HackedMemory = UTIL_ReadMemory_Qword(NATIVE_HACK_MEMORY); - return amx_ftoc(float(HackedMemory)); -} - -static cell AMX_NATIVE_CALL memhack_get_float(AMX *amx, cell *params) -{ - float HackedMemory = UTIL_ReadMemory_Float(NATIVE_HACK_MEMORY); - return amx_ftoc(HackedMemory); -} - -static cell AMX_NATIVE_CALL memhack_get_pointer(AMX *amx, cell *params) -{ - maddress HackedMemory = UTIL_ReadMemory_Pointer(NATIVE_HACK_MEMORY); - return (cell)(HackedMemory); -} - -AMX_NATIVE_INFO read_natives[] = { - { "memhack_get_char", memhack_get_char }, - { "memhack_get_short", memhack_get_short }, - { "memhack_get_long", memhack_get_long }, - - { "memhack_get_float", memhack_get_float }, - { "memhack_get_quad", memhack_get_quad }, - { "memhack_get_pointer", memhack_get_pointer }, - { NULL, NULL } -}; \ No newline at end of file diff --git a/dlls/MemHack/MemWrite.cpp b/dlls/MemHack/MemWrite.cpp deleted file mode 100644 index c7ad60d0..00000000 --- a/dlls/MemHack/MemWrite.cpp +++ /dev/null @@ -1,78 +0,0 @@ -#include "MemMisc.h" - -/* Functions that patch different data types in memory */ -template -int UTIL_PatchMemory(maddress baseaddress, maddress address, Type patch, char memType, size_t byteType, bool extraProtect) -{ - unsigned long oldProtect = 0; - maddress realAddress = GetRealMemoryAddress(baseaddress, address, memType); - - switch (memType) - { - case MEMTYPE_CODE: - if (MemoryProtect((void*)realAddress, byteType, MPROT_CODE_EDIT, &oldProtect, memType) == MP_FAIL) return MP_FAIL; - break; - - case MEMTYPE_RODATA: - if (MemoryProtect((void*)realAddress, byteType, MPROT_RODATA_EDIT, &oldProtect, memType) == MP_FAIL) return MP_FAIL; - break; - } - - *(Type*)realAddress = patch; - - if (memType == MEMTYPE_CODE) - { - MemoryProtect((void*)realAddress, byteType, oldProtect, &oldProtect); - } - else if(extraProtect == true) - { - if(memType == MEMTYPE_RODATA) MemoryProtect((void*)realAddress, byteType, oldProtect, &oldProtect); - } - - return MP_OK; -} - - int UTIL_PatchMemory_Byte(maddress baseaddress, maddress address, char patch, char memType) -{ - return UTIL_PatchMemory(baseaddress, address, (char)patch, memType, BYTE_BYTES, true); -} - - int UTIL_PatchMemory_Word(maddress baseaddress, maddress address, short patch, char memType) -{ - return UTIL_PatchMemory(baseaddress, address, (short)patch, memType, WORD_BYTES, true); -} - - int UTIL_PatchMemory_Dword(maddress baseaddress, maddress address, int32_t patch, char memType) -{ - return UTIL_PatchMemory(baseaddress, address, (int32_t)patch, memType, DWORD_BYTES, true); -} - - int UTIL_PatchMemory_Qword(maddress baseaddress, maddress address, long long patch, char memType) -{ - return UTIL_PatchMemory(baseaddress, address, (long long)patch, memType, QWORD_BYTES, false); -} - - int UTIL_PatchMemory_Float(maddress baseaddress, maddress address, float patch, char memType) -{ - return UTIL_PatchMemory(baseaddress, address, (float)patch, memType, FLOAT_BYTES, false); -} - - int UTIL_PatchMemory_UnsignedByte(maddress baseaddress, maddress address, unsigned char patch, char memType) -{ - return UTIL_PatchMemory(baseaddress, address, (unsigned char)patch, memType, BYTE_BYTES, false); -} - - int UTIL_PatchMemory_UnsignedWord(maddress baseaddress, maddress address, unsigned short patch, char memType) -{ - return UTIL_PatchMemory(baseaddress, address, (unsigned short)patch, memType, WORD_BYTES, false); -} - - int UTIL_PatchMemory_UnsignedDword(maddress baseaddress, maddress address, uint32_t patch, char memType) -{ - return UTIL_PatchMemory(baseaddress, address, (uint32_t)patch, memType, DWORD_BYTES, false); -} - - int UTIL_PatchMemory_Pointer(maddress baseaddress, maddress address, maddress patch, char memType) -{ - return UTIL_PatchMemory(baseaddress, address, (maddress)patch, memType, DWORD_BYTES, true); -} diff --git a/dlls/MemHack/MemWrite.h b/dlls/MemHack/MemWrite.h deleted file mode 100644 index 8b0c7159..00000000 --- a/dlls/MemHack/MemWrite.h +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef __MEMWRITE_H__ -#define __MEMWRITE_H__ - -#include "MemMisc.h" - -// Functions that patch different data types in memory - -// Base function -template -inline int UTIL_PatchMemory(maddress baseaddress, maddress address, Type patch, char memType, size_t byteType, bool extraProtect); - -// Inline stocks -extern inline int UTIL_PatchMemory_Byte (maddress baseaddress, maddress address, char patch, char memType = MEMTYPE_DATA); -extern inline int UTIL_PatchMemory_Word (maddress baseaddress, maddress address, short patch, char memType = MEMTYPE_DATA); -extern inline int UTIL_PatchMemory_Dword (maddress baseaddress, maddress address, int32_t patch, char memType = MEMTYPE_DATA); -extern inline int UTIL_PatchMemory_Qword (maddress baseaddress, maddress address, long long patch, char memType = MEMTYPE_DATA); -extern inline int UTIL_PatchMemory_Float (maddress baseaddress, maddress address, float patch, char memType = MEMTYPE_DATA); -extern inline int UTIL_PatchMemory_UnsignedByte (maddress baseaddress, maddress address, unsigned char patch, char memType = MEMTYPE_DATA); -extern inline int UTIL_PatchMemory_UnsignedWord (maddress baseaddress, maddress address, unsigned short patch, char memType = MEMTYPE_DATA); -extern inline int UTIL_PatchMemory_UnsignedDword (maddress baseaddress, maddress address, uint32_t patch, char memType = MEMTYPE_DATA); -extern inline int UTIL_PatchMemory_Pointer (maddress baseaddress, maddress address, maddress patch, char memType = MEMTYPE_DATA); - -#endif \ No newline at end of file diff --git a/dlls/MemHack/MemWriteNatives.cpp b/dlls/MemHack/MemWriteNatives.cpp deleted file mode 100644 index 431a513c..00000000 --- a/dlls/MemHack/MemWriteNatives.cpp +++ /dev/null @@ -1,72 +0,0 @@ -#include "MemWrite.h" - -#define NATIVE_PATCH_BASEADDRESS PickBaseAddress(params[2]) -#define NATIVE_PATCH_ADDRESS params[1] -#define NATIVE_PATCH_FLAGS params[4] -#define NATIVE_PATCH_SIGNED params[5] -#define NATIVE_PATCH_PARAMETER params[3] - -#define NATIVE_PATCH_MEMORY NATIVE_PATCH_BASEADDRESS, NATIVE_PATCH_ADDRESS - -static cell AMX_NATIVE_CALL memhack_set_char(AMX *amx, cell *params) -{ - if(NATIVE_PATCH_SIGNED) - { - return (cell)UTIL_PatchMemory_Byte(NATIVE_PATCH_MEMORY, (char)(NATIVE_PATCH_PARAMETER), NATIVE_PATCH_FLAGS); - } - else - { - return (cell)UTIL_PatchMemory_UnsignedByte(NATIVE_PATCH_MEMORY, (unsigned char)(NATIVE_PATCH_PARAMETER), NATIVE_PATCH_FLAGS); - } -} - -static cell AMX_NATIVE_CALL memhack_set_short(AMX *amx, cell *params) -{ - if(NATIVE_PATCH_SIGNED) - { - return (cell)UTIL_PatchMemory_Word(NATIVE_PATCH_MEMORY, (short)(NATIVE_PATCH_PARAMETER), NATIVE_PATCH_FLAGS); - } - else - { - return (cell)UTIL_PatchMemory_UnsignedWord(NATIVE_PATCH_MEMORY, (unsigned short)(NATIVE_PATCH_PARAMETER), NATIVE_PATCH_FLAGS); - } -} - -static cell AMX_NATIVE_CALL memhack_set_long(AMX *amx, cell *params) -{ - if(NATIVE_PATCH_SIGNED) - { - return (cell)UTIL_PatchMemory_Dword(NATIVE_PATCH_MEMORY, (long)(NATIVE_PATCH_PARAMETER), NATIVE_PATCH_FLAGS); - } - else - { - return (cell)UTIL_PatchMemory_Dword(NATIVE_PATCH_MEMORY, (unsigned long)(NATIVE_PATCH_PARAMETER), NATIVE_PATCH_FLAGS); - } -} - -static cell AMX_NATIVE_CALL memhack_set_quad(AMX *amx, cell *params) -{ - return (cell)UTIL_PatchMemory_Qword(NATIVE_PATCH_MEMORY, (long long)(NATIVE_PATCH_PARAMETER), NATIVE_PATCH_FLAGS); -} - -static cell AMX_NATIVE_CALL memhack_set_float(AMX *amx, cell *params) -{ - return (cell)UTIL_PatchMemory_Float(NATIVE_PATCH_MEMORY, amx_ctof(NATIVE_PATCH_PARAMETER), NATIVE_PATCH_FLAGS); -} - -static cell AMX_NATIVE_CALL memhack_set_pointer(AMX *amx, cell *params) -{ - return (cell)UTIL_PatchMemory_Pointer(NATIVE_PATCH_MEMORY, (maddress)(NATIVE_PATCH_PARAMETER), NATIVE_PATCH_FLAGS); -} - -AMX_NATIVE_INFO write_natives[] = { - { "memhack_set_char", memhack_set_char }, - { "memhack_set_short", memhack_set_short }, - { "memhack_set_long", memhack_set_long }, - - { "memhack_set_float", memhack_set_float }, - { "memhack_set_quad", memhack_set_quad }, - { "memhack_set_pointer", memhack_set_pointer }, - { NULL, NULL } -}; - diff --git a/dlls/MemHack/amxxmodule.cpp b/dlls/MemHack/amxxmodule.cpp deleted file mode 100644 index e374e441..00000000 --- a/dlls/MemHack/amxxmodule.cpp +++ /dev/null @@ -1,3078 +0,0 @@ -/* AMX Mod X -* -* by the AMX Mod X Development Team -* originally developed by OLO -* -* Parts Copyright (C) 2001-2003 Will Day -* -* This program is free software; you can redistribute it and/or modify it -* under the terms of the GNU General Public License as published by the -* Free Software Foundation; either version 2 of the License, or (at -* your option) any later version. -* -* This program is distributed in the hope that it will be useful, but -* WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -* General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software Foundation, -* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -* -* In addition, as a special exception, the author gives permission to -* link the code of this program with the Half-Life Game Engine ("HL -* Engine") and Modified Game Libraries ("MODs") developed by Valve, -* L.L.C ("Valve"). You must obey the GNU General Public License in all -* respects for all of the code used other than the HL Engine and MODs -* from Valve. If you modify this file, you may extend this exception -* to your version of the file, but you are not obligated to do so. If -* you do not wish to do so, delete this exception statement from your -* version. -* -* Description: AMX Mod X Module Interface Functions -*/ - -#include -#include -#include -#include -#include -#include "amxxmodule.h" - -/************* METAMOD SUPPORT *************/ -#ifdef USE_METAMOD - -enginefuncs_t g_engfuncs; -globalvars_t *gpGlobals; - -DLL_FUNCTIONS *g_pFunctionTable; -DLL_FUNCTIONS *g_pFunctionTable_Post; -enginefuncs_t *g_pengfuncsTable; -enginefuncs_t *g_pengfuncsTable_Post; -NEW_DLL_FUNCTIONS *g_pNewFunctionsTable; -NEW_DLL_FUNCTIONS *g_pNewFunctionsTable_Post; - -// GetEntityAPI2 functions -static DLL_FUNCTIONS g_EntityAPI_Table = -{ -#ifdef FN_GameDLLInit - FN_GameDLLInit, -#else - NULL, -#endif -#ifdef FN_DispatchSpawn - FN_DispatchSpawn, -#else - NULL, -#endif -#ifdef FN_DispatchThink - FN_DispatchThink, -#else - NULL, -#endif -#ifdef FN_DispatchUse - FN_DispatchUse, -#else - NULL, -#endif -#ifdef FN_DispatchTouch - FN_DispatchTouch, -#else - NULL, -#endif -#ifdef FN_DispatchBlocked - FN_DispatchBlocked, -#else - NULL, -#endif -#ifdef FN_DispatchKeyValue - FN_DispatchKeyValue, -#else - NULL, -#endif -#ifdef FN_DispatchSave - FN_DispatchSave, -#else - NULL, -#endif -#ifdef FN_DispatchRestore - FN_DispatchRestore, -#else - NULL, -#endif -#ifdef FN_DispatchObjectCollsionBox - FN_DispatchObjectCollsionBox, -#else - NULL, -#endif -#ifdef FN_SaveWriteFields - FN_SaveWriteFields, -#else - NULL, -#endif -#ifdef FN_SaveReadFields - FN_SaveReadFields, -#else - NULL, -#endif -#ifdef FN_SaveGlobalState - FN_SaveGlobalState, -#else - NULL, -#endif -#ifdef FN_RestoreGlobalState - FN_RestoreGlobalState, -#else - NULL, -#endif -#ifdef FN_ResetGlobalState - FN_ResetGlobalState, -#else - NULL, -#endif -#ifdef FN_ClientConnect - FN_ClientConnect, -#else - NULL, -#endif -#ifdef FN_ClientDisconnect - FN_ClientDisconnect, -#else - NULL, -#endif -#ifdef FN_ClientKill - FN_ClientKill, -#else - NULL, -#endif -#ifdef FN_ClientPutInServer - FN_ClientPutInServer, -#else - NULL, -#endif -#ifdef FN_ClientCommand - FN_ClientCommand, -#else - NULL, -#endif -#ifdef FN_ClientUserInfoChanged - FN_ClientUserInfoChanged, -#else - NULL, -#endif -#ifdef FN_ServerActivate - FN_ServerActivate, -#else - NULL, -#endif -#ifdef FN_ServerDeactivate - FN_ServerDeactivate, -#else - NULL, -#endif -#ifdef FN_PlayerPreThink - FN_PlayerPreThink, -#else - NULL, -#endif -#ifdef FN_PlayerPostThink - FN_PlayerPostThink, -#else - NULL, -#endif -#ifdef FN_StartFrame - FN_StartFrame, -#else - NULL, -#endif -#ifdef FN_ParmsNewLevel - FN_ParmsNewLevel, -#else - NULL, -#endif -#ifdef FN_ParmsChangeLevel - FN_ParmsChangeLevel, -#else - NULL, -#endif -#ifdef FN_GetGameDescription - FN_GetGameDescription, -#else - NULL, -#endif -#ifdef FN_PlayerCustomization - FN_PlayerCustomization, -#else - NULL, -#endif -#ifdef FN_SpectatorConnect - FN_SpectatorConnect, -#else - NULL, -#endif -#ifdef FN_SpectatorDisconnect - FN_SpectatorDisconnect, -#else - NULL, -#endif -#ifdef FN_SpectatorThink - FN_SpectatorThink, -#else - NULL, -#endif -#ifdef FN_Sys_Error - FN_Sys_Error, -#else - NULL, -#endif -#ifdef FN_PM_Move - FN_PM_Move, -#else - NULL, -#endif -#ifdef FN_PM_Init - FN_PM_Init, -#else - NULL, -#endif -#ifdef FN_PM_FindTextureType - FN_PM_FindTextureType, -#else - NULL, -#endif -#ifdef FN_SetupVisibility - FN_SetupVisibility, -#else - NULL, -#endif -#ifdef FN_UpdateClientData - FN_UpdateClientData, -#else - NULL, -#endif -#ifdef FN_AddToFullPack - FN_AddToFullPack, -#else - NULL, -#endif -#ifdef FN_CreateBaseline - FN_CreateBaseline, -#else - NULL, -#endif -#ifdef FN_RegisterEncoders - FN_RegisterEncoders, -#else - NULL, -#endif -#ifdef FN_GetWeaponData - FN_GetWeaponData, -#else - NULL, -#endif -#ifdef FN_CmdStart - FN_CmdStart, -#else - NULL, -#endif -#ifdef FN_CmdEnd - FN_CmdEnd, -#else - NULL, -#endif -#ifdef FN_ConnectionlessPacket - FN_ConnectionlessPacket, -#else - NULL, -#endif -#ifdef FN_GetHullBounds - FN_GetHullBounds, -#else - NULL, -#endif -#ifdef FN_CreateInstancedBaselines - FN_CreateInstancedBaselines, -#else - NULL, -#endif -#ifdef FN_InconsistentFile - FN_InconsistentFile, -#else - NULL, -#endif -#ifdef FN_AllowLagCompensation - FN_AllowLagCompensation -#else - NULL -#endif -}; // g_EntityAPI2_Table - -// GetEntityAPI2_Post functions -static DLL_FUNCTIONS g_EntityAPI_Post_Table = -{ -#ifdef FN_GameDLLInit_Post - FN_GameDLLInit_Post, -#else - NULL, -#endif -#ifdef FN_DispatchSpawn_Post - FN_DispatchSpawn_Post, -#else - NULL, -#endif -#ifdef FN_DispatchThink_Post - FN_DispatchThink_Post, -#else - NULL, -#endif -#ifdef FN_DispatchUse_Post - FN_DispatchUse_Post, -#else - NULL, -#endif -#ifdef FN_DispatchTouch_Post - FN_DispatchTouch_Post, -#else - NULL, -#endif -#ifdef FN_DispatchBlocked_Post - FN_DispatchBlocked_Post, -#else - NULL, -#endif -#ifdef FN_DispatchKeyValue_Post - FN_DispatchKeyValue_Post, -#else - NULL, -#endif -#ifdef FN_DispatchSave_Post - FN_DispatchSave_Post, -#else - NULL, -#endif -#ifdef FN_DispatchRestore_Post - FN_DispatchRestore_Post, -#else - NULL, -#endif -#ifdef FN_DispatchObjectCollsionBox_Post - FN_DispatchObjectCollsionBox_Post, -#else - NULL, -#endif -#ifdef FN_SaveWriteFields_Post - FN_SaveWriteFields_Post, -#else - NULL, -#endif -#ifdef FN_SaveReadFields_Post - FN_SaveReadFields_Post, -#else - NULL, -#endif -#ifdef FN_SaveGlobalState_Post - FN_SaveGlobalState_Post, -#else - NULL, -#endif -#ifdef FN_RestoreGlobalState_Post - FN_RestoreGlobalState_Post, -#else - NULL, -#endif -#ifdef FN_ResetGlobalState_Post - FN_ResetGlobalState_Post, -#else - NULL, -#endif -#ifdef FN_ClientConnect_Post - FN_ClientConnect_Post, -#else - NULL, -#endif -#ifdef FN_ClientDisconnect_Post - FN_ClientDisconnect_Post, -#else - NULL, -#endif -#ifdef FN_ClientKill_Post - FN_ClientKill_Post, -#else - NULL, -#endif -#ifdef FN_ClientPutInServer_Post - FN_ClientPutInServer_Post, -#else - NULL, -#endif -#ifdef FN_ClientCommand_Post - FN_ClientCommand_Post, -#else - NULL, -#endif -#ifdef FN_ClientUserInfoChanged_Post - FN_ClientUserInfoChanged_Post, -#else - NULL, -#endif -#ifdef FN_ServerActivate_Post - FN_ServerActivate_Post, -#else - NULL, -#endif -#ifdef FN_ServerDeactivate_Post - FN_ServerDeactivate_Post, -#else - NULL, -#endif -#ifdef FN_PlayerPreThink_Post - FN_PlayerPreThink_Post, -#else - NULL, -#endif -#ifdef FN_PlayerPostThink_Post - FN_PlayerPostThink_Post, -#else - NULL, -#endif -#ifdef FN_StartFrame_Post - FN_StartFrame_Post, -#else - NULL, -#endif -#ifdef FN_ParmsNewLevel_Post - FN_ParmsNewLevel_Post, -#else - NULL, -#endif -#ifdef FN_ParmsChangeLevel_Post - FN_ParmsChangeLevel_Post, -#else - NULL, -#endif -#ifdef FN_GetGameDescription_Post - FN_GetGameDescription_Post, -#else - NULL, -#endif -#ifdef FN_PlayerCustomization_Post - FN_PlayerCustomization_Post, -#else - NULL, -#endif -#ifdef FN_SpectatorConnect_Post - FN_SpectatorConnect_Post, -#else - NULL, -#endif -#ifdef FN_SpectatorDisconnect_Post - FN_SpectatorDisconnect_Post, -#else - NULL, -#endif -#ifdef FN_SpectatorThink_Post - FN_SpectatorThink_Post, -#else - NULL, -#endif -#ifdef FN_Sys_Error_Post - FN_Sys_Error_Post, -#else - NULL, -#endif -#ifdef FN_PM_Move_Post - FN_PM_Move_Post, -#else - NULL, -#endif -#ifdef FN_PM_Init_Post - FN_PM_Init_Post, -#else - NULL, -#endif -#ifdef FN_PM_FindTextureType_Post - FN_PM_FindTextureType_Post, -#else - NULL, -#endif -#ifdef FN_SetupVisibility_Post - FN_SetupVisibility_Post, -#else - NULL, -#endif -#ifdef FN_UpdateClientData_Post - FN_UpdateClientData_Post, -#else - NULL, -#endif -#ifdef FN_AddToFullPack_Post - FN_AddToFullPack_Post, -#else - NULL, -#endif -#ifdef FN_CreateBaseline_Post - FN_CreateBaseline_Post, -#else - NULL, -#endif -#ifdef FN_RegisterEncoders_Post - FN_RegisterEncoders_Post, -#else - NULL, -#endif -#ifdef FN_GetWeaponData_Post - FN_GetWeaponData_Post, -#else - NULL, -#endif -#ifdef FN_CmdStart_Post - FN_CmdStart_Post, -#else - NULL, -#endif -#ifdef FN_CmdEnd_Post - FN_CmdEnd_Post, -#else - NULL, -#endif -#ifdef FN_ConnectionlessPacket_Post - FN_ConnectionlessPacket_Post, -#else - NULL, -#endif -#ifdef FN_GetHullBounds_Post - FN_GetHullBounds_Post, -#else - NULL, -#endif -#ifdef FN_CreateInstancedBaselines_Post - FN_CreateInstancedBaselines_Post, -#else - NULL, -#endif -#ifdef FN_InconsistentFile_Post - FN_InconsistentFile_Post, -#else - NULL, -#endif -#ifdef FN_AllowLagCompensation - FN_AllowLagCompensation, -#else - NULL, -#endif -}; // g_EntityAPI2_Table - -static enginefuncs_t g_EngineFuncs_Table = -{ -#ifdef FN_PrecacheModel - FN_PrecacheModel, -#else - NULL, -#endif -#ifdef FN_PrecacheSound - FN_PrecacheSound, -#else - NULL, -#endif -#ifdef FN_SetModel - FN_SetModel, -#else - NULL, -#endif -#ifdef FN_ModelIndex - FN_ModelIndex, -#else - NULL, -#endif -#ifdef FN_ModelFrames - FN_ModelFrames, -#else - NULL, -#endif -#ifdef FN_SetSize - FN_SetSize, -#else - NULL, -#endif -#ifdef FN_ChangeLevel - FN_ChangeLevel, -#else - NULL, -#endif -#ifdef FN_GetSpawnParms - FN_GetSpawnParms, -#else - NULL, -#endif -#ifdef FN_SaveSpawnParms - FN_SaveSpawnParms, -#else - NULL, -#endif -#ifdef FN_VecToYaw - FN_VecToYaw, -#else - NULL, -#endif -#ifdef FN_VecToAngles - FN_VecToAngles, -#else - NULL, -#endif -#ifdef FN_MoveToOrigin - FN_MoveToOrigin, -#else - NULL, -#endif -#ifdef FN_ChangeYaw - FN_ChangeYaw, -#else - NULL, -#endif -#ifdef FN_ChangePitch - FN_ChangePitch, -#else - NULL, -#endif -#ifdef FN_FindEntityByString - FN_FindEntityByString, -#else - NULL, -#endif -#ifdef FN_GetEntityIllum - FN_GetEntityIllum, -#else - NULL, -#endif -#ifdef FN_FindEntityInSphere - FN_FindEntityInSphere, -#else - NULL, -#endif -#ifdef FN_FindClientInPVS - FN_FindClientInPVS, -#else - NULL, -#endif -#ifdef FN_EntitiesInPVS - FN_EntitiesInPVS, -#else - NULL, -#endif -#ifdef FN_MakeVectors - FN_MakeVectors, -#else - NULL, -#endif -#ifdef FN_AngleVectors - FN_AngleVectors, -#else - NULL, -#endif -#ifdef FN_CreateEntity - FN_CreateEntity, -#else - NULL, -#endif -#ifdef FN_RemoveEntity - FN_RemoveEntity, -#else - NULL, -#endif -#ifdef FN_CreateNamedEntity - FN_CreateNamedEntity, -#else - NULL, -#endif -#ifdef FN_MakeStatic - FN_MakeStatic, -#else - NULL, -#endif -#ifdef FN_EntIsOnFloor - FN_EntIsOnFloor, -#else - NULL, -#endif -#ifdef FN_DropToFloor - FN_DropToFloor, -#else - NULL, -#endif -#ifdef FN_WalkMove - FN_WalkMove, -#else - NULL, -#endif -#ifdef FN_SetOrigin - FN_SetOrigin, -#else - NULL, -#endif -#ifdef FN_EmitSound - FN_EmitSound, -#else - NULL, -#endif -#ifdef FN_EmitAmbientSound - FN_EmitAmbientSound, -#else - NULL, -#endif -#ifdef FN_TraceLine - FN_TraceLine, -#else - NULL, -#endif -#ifdef FN_TraceToss - FN_TraceToss, -#else - NULL, -#endif -#ifdef FN_TraceMonsterHull - FN_TraceMonsterHull, -#else - NULL, -#endif -#ifdef FN_TraceHull - FN_TraceHull, -#else - NULL, -#endif -#ifdef FN_TraceModel - FN_TraceModel, -#else - NULL, -#endif -#ifdef FN_TraceTexture - FN_TraceTexture, -#else - NULL, -#endif -#ifdef FN_TraceSphere - FN_TraceSphere, -#else - NULL, -#endif -#ifdef FN_GetAimVector - FN_GetAimVector, -#else - NULL, -#endif -#ifdef FN_ServerCommand - FN_ServerCommand, -#else - NULL, -#endif -#ifdef FN_ServerExecute - FN_ServerExecute, -#else - NULL, -#endif -#ifdef FN_engClientCommand - FN_engClientCommand, -#else - NULL, -#endif -#ifdef FN_ParticleEffect - FN_ParticleEffect, -#else - NULL, -#endif -#ifdef FN_LightStyle - FN_LightStyle, -#else - NULL, -#endif -#ifdef FN_DecalIndex - FN_DecalIndex, -#else - NULL, -#endif -#ifdef FN_PointContents - FN_PointContents, -#else - NULL, -#endif -#ifdef FN_MessageBegin - FN_MessageBegin, -#else - NULL, -#endif -#ifdef FN_MessageEnd - FN_MessageEnd, -#else - NULL, -#endif -#ifdef FN_WriteByte - FN_WriteByte, -#else - NULL, -#endif -#ifdef FN_WriteChar - FN_WriteChar, -#else - NULL, -#endif -#ifdef FN_WriteShort - FN_WriteShort, -#else - NULL, -#endif -#ifdef FN_WriteLong - FN_WriteLong, -#else - NULL, -#endif -#ifdef FN_WriteAngle - FN_WriteAngle, -#else - NULL, -#endif -#ifdef FN_WriteCoord - FN_WriteCoord, -#else - NULL, -#endif -#ifdef FN_WriteString - FN_WriteString, -#else - NULL, -#endif -#ifdef FN_WriteEntity - FN_WriteEntity, -#else - NULL, -#endif -#ifdef FN_CVarRegister - FN_CVarRegister, -#else - NULL, -#endif -#ifdef FN_CVarGetFloat - FN_CVarGetFloat, -#else - NULL, -#endif -#ifdef FN_CVarGetString - FN_CVarGetString, -#else - NULL, -#endif -#ifdef FN_CVarSetFloat - FN_CVarSetFloat, -#else - NULL, -#endif -#ifdef FN_CVarSetString - FN_CVarSetString, -#else - NULL, -#endif -#ifdef FN_AlertMessage - FN_AlertMessage, -#else - NULL, -#endif -#ifdef FN_EngineFprintf - FN_EngineFprintf, -#else - NULL, -#endif -#ifdef FN_PvAllocEntPrivateData - FN_PvAllocEntPrivateData, -#else - NULL, -#endif -#ifdef FN_PvEntPrivateData - FN_PvEntPrivateData, -#else - NULL, -#endif -#ifdef FN_FreeEntPrivateData - FN_FreeEntPrivateData, -#else - NULL, -#endif -#ifdef FN_SzFromIndex - FN_SzFromIndex, -#else - NULL, -#endif -#ifdef FN_AllocString - FN_AllocString, -#else - NULL, -#endif -#ifdef FN_GetVarsOfEnt - FN_GetVarsOfEnt, -#else - NULL, -#endif -#ifdef FN_PEntityOfEntOffset - FN_PEntityOfEntOffset, -#else - NULL, -#endif -#ifdef FN_EntOffsetOfPEntity - FN_EntOffsetOfPEntity, -#else - NULL, -#endif -#ifdef FN_IndexOfEdict - FN_IndexOfEdict, -#else - NULL, -#endif -#ifdef FN_PEntityOfEntIndex - FN_PEntityOfEntIndex, -#else - NULL, -#endif -#ifdef FN_FindEntityByVars - FN_FindEntityByVars, -#else - NULL, -#endif -#ifdef FN_GetModelPtr - FN_GetModelPtr, -#else - NULL, -#endif -#ifdef FN_RegUserMsg - FN_RegUserMsg, -#else - NULL, -#endif -#ifdef FN_AnimationAutomove - FN_AnimationAutomove, -#else - NULL, -#endif -#ifdef FN_GetBonePosition - FN_GetBonePosition, -#else - NULL, -#endif -#ifdef FN_FunctionFromName - FN_FunctionFromName, -#else - NULL, -#endif -#ifdef FN_NameForFunction - FN_NameForFunction, -#else - NULL, -#endif -#ifdef FN_ClientPrintf - FN_ClientPrintf, -#else - NULL, -#endif -#ifdef FN_ServerPrint - FN_ServerPrint, -#else - NULL, -#endif -#ifdef FN_Cmd_Args - FN_Cmd_Args, -#else - NULL, -#endif -#ifdef FN_Cmd_Argv - FN_Cmd_Argv, -#else - NULL, -#endif -#ifdef FN_Cmd_Argc - FN_Cmd_Argc, -#else - NULL, -#endif -#ifdef FN_GetAttachment - FN_GetAttachment, -#else - NULL, -#endif -#ifdef FN_CRC32_Init - FN_CRC32_Init, -#else - NULL, -#endif -#ifdef FN_CRC32_ProcessBuffer - FN_CRC32_ProcessBuffer, -#else - NULL, -#endif -#ifdef FN_CRC32_ProcessByte - FN_CRC32_ProcessByte, -#else - NULL, -#endif -#ifdef FN_CRC32_Final - FN_CRC32_Final, -#else - NULL, -#endif -#ifdef FN_RandomLong - FN_RandomLong, -#else - NULL, -#endif -#ifdef FN_RandomFloat - FN_RandomFloat, -#else - NULL, -#endif -#ifdef FN_SetView - FN_SetView, -#else - NULL, -#endif -#ifdef FN_Time - FN_Time, -#else - NULL, -#endif -#ifdef FN_CrosshairAngle - FN_CrosshairAngle, -#else - NULL, -#endif -#ifdef FN_LoadFileForMe - FN_LoadFileForMe, -#else - NULL, -#endif -#ifdef FN_FreeFile - FN_FreeFile, -#else - NULL, -#endif -#ifdef FN_EndSection - FN_EndSection, -#else - NULL, -#endif -#ifdef FN_CompareFileTime - FN_CompareFileTime, -#else - NULL, -#endif -#ifdef FN_GetGameDir - FN_GetGameDir, -#else - NULL, -#endif -#ifdef FN_Cvar_RegisterVariable - FN_Cvar_RegisterVariable, -#else - NULL, -#endif -#ifdef FN_FadeClientVolume - FN_FadeClientVolume, -#else - NULL, -#endif -#ifdef FN_SetClientMaxspeed - FN_SetClientMaxspeed, -#else - NULL, -#endif -#ifdef FN_CreateFakeClient - FN_CreateFakeClient, -#else - NULL, -#endif -#ifdef FN_RunPlayerMove - FN_RunPlayerMove, -#else - NULL, -#endif -#ifdef FN_NumberOfEntities - FN_NumberOfEntities, -#else - NULL, -#endif -#ifdef FN_GetInfoKeyBuffer - FN_GetInfoKeyBuffer, -#else - NULL, -#endif -#ifdef FN_InfoKeyValue - FN_InfoKeyValue, -#else - NULL, -#endif -#ifdef FN_SetKeyValue - FN_SetKeyValue, -#else - NULL, -#endif -#ifdef FN_SetClientKeyValue - FN_SetClientKeyValue, -#else - NULL, -#endif -#ifdef FN_IsMapValid - FN_IsMapValid, -#else - NULL, -#endif -#ifdef FN_StaticDecal - FN_StaticDecal, -#else - NULL, -#endif -#ifdef FN_PrecacheGeneric - FN_PrecacheGeneric, -#else - NULL, -#endif -#ifdef FN_GetPlayerUserId - FN_GetPlayerUserId, -#else - NULL, -#endif -#ifdef FN_BuildSoundMsg - FN_BuildSoundMsg, -#else - NULL, -#endif -#ifdef FN_IsDedicatedServer - FN_IsDedicatedServer, -#else - NULL, -#endif -#ifdef FN_CVarGetPointer - FN_CVarGetPointer, -#else - NULL, -#endif -#ifdef FN_GetPlayerWONId - FN_GetPlayerWONId, -#else - NULL, -#endif -#ifdef FN_Info_RemoveKey - FN_Info_RemoveKey, -#else - NULL, -#endif -#ifdef FN_GetPhysicsKeyValue - FN_GetPhysicsKeyValue, -#else - NULL, -#endif -#ifdef FN_SetPhysicsKeyValue - FN_SetPhysicsKeyValue, -#else - NULL, -#endif -#ifdef FN_GetPhysicsInfoString - FN_GetPhysicsInfoString, -#else - NULL, -#endif -#ifdef FN_PrecacheEvent - FN_PrecacheEvent, -#else - NULL, -#endif -#ifdef FN_PlaybackEvent - FN_PlaybackEvent, -#else - NULL, -#endif -#ifdef FN_SetFatPVS - FN_SetFatPVS, -#else - NULL, -#endif -#ifdef FN_SetFatPAS - FN_SetFatPAS, -#else - NULL, -#endif -#ifdef FN_CheckVisibility - FN_CheckVisibility, -#else - NULL, -#endif -#ifdef FN_DeltaSetField - FN_DeltaSetField, -#else - NULL, -#endif -#ifdef FN_DeltaUnsetField - FN_DeltaUnsetField, -#else - NULL, -#endif -#ifdef FN_DeltaAddEncoder - FN_DeltaAddEncoder, -#else - NULL, -#endif -#ifdef FN_GetCurrentPlayer - FN_GetCurrentPlayer, -#else - NULL, -#endif -#ifdef FN_CanSkipPlayer - FN_CanSkipPlayer, -#else - NULL, -#endif -#ifdef FN_DeltaFindField - FN_DeltaFindField, -#else - NULL, -#endif -#ifdef FN_DeltaSetFieldByIndex - FN_DeltaSetFieldByIndex, -#else - NULL, -#endif -#ifdef FN_DeltaUnsetFieldByIndex - FN_DeltaUnsetFieldByIndex, -#else - NULL, -#endif -#ifdef FN_SetGroupMask - FN_SetGroupMask, -#else - NULL, -#endif -#ifdef FN_engCreateInstancedBaseline - FN_engCreateInstancedBaseline, -#else - NULL, -#endif -#ifdef FN_Cvar_DirectSet - FN_Cvar_DirectSet, -#else - NULL, -#endif -#ifdef FN_ForceUnmodified - FN_ForceUnmodified, -#else - NULL, -#endif -#ifdef FN_GetPlayerStats - FN_GetPlayerStats, -#else - NULL, -#endif -#ifdef FN_AddServerCommand - FN_AddServerCommand, -#else - NULL, -#endif -#ifdef FN_Voice_GetClientListening - FN_Voice_GetClientListening, -#else - NULL, -#endif -#ifdef FN_Voice_SetClientListening - FN_Voice_SetClientListening, -#else - NULL, -#endif -#ifdef FN_GetPlayerAuthId - FN_GetPlayerAuthId -#else - NULL -#endif -}; // g_EngineFuncs_Table - - -static enginefuncs_t g_EngineFuncs_Post_Table = -{ -#ifdef FN_PrecacheModel_Post - FN_PrecacheModel_Post, -#else - NULL, -#endif -#ifdef FN_PrecacheSound_Post - FN_PrecacheSound_Post, -#else - NULL, -#endif -#ifdef FN_SetModel_Post - FN_SetModel_Post, -#else - NULL, -#endif -#ifdef FN_ModelIndex_Post - FN_ModelIndex_Post, -#else - NULL, -#endif -#ifdef FN_ModelFrames_Post - FN_ModelFrames_Post, -#else - NULL, -#endif -#ifdef FN_SetSize_Post - FN_SetSize_Post, -#else - NULL, -#endif -#ifdef FN_ChangeLevel_Post - FN_ChangeLevel_Post, -#else - NULL, -#endif -#ifdef FN_GetSpawnParms_Post - FN_GetSpawnParms_Post, -#else - NULL, -#endif -#ifdef FN_SaveSpawnParms_Post - FN_SaveSpawnParms_Post, -#else - NULL, -#endif -#ifdef FN_VecToYaw_Post - FN_VecToYaw_Post, -#else - NULL, -#endif -#ifdef FN_VecToAngles_Post - FN_VecToAngles_Post, -#else - NULL, -#endif -#ifdef FN_MoveToOrigin_Post - FN_MoveToOrigin_Post, -#else - NULL, -#endif -#ifdef FN_ChangeYaw_Post - FN_ChangeYaw_Post, -#else - NULL, -#endif -#ifdef FN_ChangePitch_Post - FN_ChangePitch_Post, -#else - NULL, -#endif -#ifdef FN_FindEntityByString_Post - FN_FindEntityByString_Post, -#else - NULL, -#endif -#ifdef FN_GetEntityIllum_Post - FN_GetEntityIllum_Post, -#else - NULL, -#endif -#ifdef FN_FindEntityInSphere_Post - FN_FindEntityInSphere_Post, -#else - NULL, -#endif -#ifdef FN_FindClientInPVS_Post - FN_FindClientInPVS_Post, -#else - NULL, -#endif -#ifdef FN_EntitiesInPVS_Post - FN_EntitiesInPVS_Post, -#else - NULL, -#endif -#ifdef FN_MakeVectors_Post - FN_MakeVectors_Post, -#else - NULL, -#endif -#ifdef FN_AngleVectors_Post - FN_AngleVectors_Post, -#else - NULL, -#endif -#ifdef FN_CreateEntity_Post - FN_CreateEntity_Post, -#else - NULL, -#endif -#ifdef FN_RemoveEntity_Post - FN_RemoveEntity_Post, -#else - NULL, -#endif -#ifdef FN_CreateNamedEntity_Post - FN_CreateNamedEntity_Post, -#else - NULL, -#endif -#ifdef FN_MakeStatic_Post - FN_MakeStatic_Post, -#else - NULL, -#endif -#ifdef FN_EntIsOnFloor_Post - FN_EntIsOnFloor_Post, -#else - NULL, -#endif -#ifdef FN_DropToFloor_Post - FN_DropToFloor_Post, -#else - NULL, -#endif -#ifdef FN_WalkMove_Post - FN_WalkMove_Post, -#else - NULL, -#endif -#ifdef FN_SetOrigin_Post - FN_SetOrigin_Post, -#else - NULL, -#endif -#ifdef FN_EmitSound_Post - FN_EmitSound_Post, -#else - NULL, -#endif -#ifdef FN_EmitAmbientSound_Post - FN_EmitAmbientSound_Post, -#else - NULL, -#endif -#ifdef FN_TraceLine_Post - FN_TraceLine_Post, -#else - NULL, -#endif -#ifdef FN_TraceToss_Post - FN_TraceToss_Post, -#else - NULL, -#endif -#ifdef FN_TraceMonsterHull_Post - FN_TraceMonsterHull_Post, -#else - NULL, -#endif -#ifdef FN_TraceHull_Post - FN_TraceHull_Post, -#else - NULL, -#endif -#ifdef FN_TraceModel_Post - FN_TraceModel_Post, -#else - NULL, -#endif -#ifdef FN_TraceTexture_Post - FN_TraceTexture_Post, -#else - NULL, -#endif -#ifdef FN_TraceSphere_Post - FN_TraceSphere_Post, -#else - NULL, -#endif -#ifdef FN_GetAimVector_Post - FN_GetAimVector_Post, -#else - NULL, -#endif -#ifdef FN_ServerCommand_Post - FN_ServerCommand_Post, -#else - NULL, -#endif -#ifdef FN_ServerExecute_Post - FN_ServerExecute_Post, -#else - NULL, -#endif -#ifdef FN_engClientCommand_Post - FN_engClientCommand_Post, -#else - NULL, -#endif -#ifdef FN_ParticleEffect_Post - FN_ParticleEffect_Post, -#else - NULL, -#endif -#ifdef FN_LightStyle_Post - FN_LightStyle_Post, -#else - NULL, -#endif -#ifdef FN_DecalIndex_Post - FN_DecalIndex_Post, -#else - NULL, -#endif -#ifdef FN_PointContents_Post - FN_PointContents_Post, -#else - NULL, -#endif -#ifdef FN_MessageBegin_Post - FN_MessageBegin_Post, -#else - NULL, -#endif -#ifdef FN_MessageEnd_Post - FN_MessageEnd_Post, -#else - NULL, -#endif -#ifdef FN_WriteByte_Post - FN_WriteByte_Post, -#else - NULL, -#endif -#ifdef FN_WriteChar_Post - FN_WriteChar_Post, -#else - NULL, -#endif -#ifdef FN_WriteShort_Post - FN_WriteShort_Post, -#else - NULL, -#endif -#ifdef FN_WriteLong_Post - FN_WriteLong_Post, -#else - NULL, -#endif -#ifdef FN_WriteAngle_Post - FN_WriteAngle_Post, -#else - NULL, -#endif -#ifdef FN_WriteCoord_Post - FN_WriteCoord_Post, -#else - NULL, -#endif -#ifdef FN_WriteString_Post - FN_WriteString_Post, -#else - NULL, -#endif -#ifdef FN_WriteEntity_Post - FN_WriteEntity_Post, -#else - NULL, -#endif -#ifdef FN_CVarRegister_Post - FN_CVarRegister_Post, -#else - NULL, -#endif -#ifdef FN_CVarGetFloat_Post - FN_CVarGetFloat_Post, -#else - NULL, -#endif -#ifdef FN_CVarGetString_Post - FN_CVarGetString_Post, -#else - NULL, -#endif -#ifdef FN_CVarSetFloat_Post - FN_CVarSetFloat_Post, -#else - NULL, -#endif -#ifdef FN_CVarSetString_Post - FN_CVarSetString_Post, -#else - NULL, -#endif -#ifdef FN_AlertMessage_Post - FN_AlertMessage_Post, -#else - NULL, -#endif -#ifdef FN_EngineFprintf_Post - FN_EngineFprintf_Post, -#else - NULL, -#endif -#ifdef FN_PvAllocEntPrivateData_Post - FN_PvAllocEntPrivateData_Post, -#else - NULL, -#endif -#ifdef FN_PvEntPrivateData_Post - FN_PvEntPrivateData_Post, -#else - NULL, -#endif -#ifdef FN_FreeEntPrivateData_Post - FN_FreeEntPrivateData_Post, -#else - NULL, -#endif -#ifdef FN_SzFromIndex_Post - FN_SzFromIndex_Post, -#else - NULL, -#endif -#ifdef FN_AllocString_Post - FN_AllocString_Post, -#else - NULL, -#endif -#ifdef FN_GetVarsOfEnt_Post - FN_GetVarsOfEnt_Post, -#else - NULL, -#endif -#ifdef FN_PEntityOfEntOffset_Post - FN_PEntityOfEntOffset_Post, -#else - NULL, -#endif -#ifdef FN_EntOffsetOfPEntity_Post - FN_EntOffsetOfPEntity_Post, -#else - NULL, -#endif -#ifdef FN_IndexOfEdict_Post - FN_IndexOfEdict_Post, -#else - NULL, -#endif -#ifdef FN_PEntityOfEntIndex_Post - FN_PEntityOfEntIndex_Post, -#else - NULL, -#endif -#ifdef FN_FindEntityByVars_Post - FN_FindEntityByVars_Post, -#else - NULL, -#endif -#ifdef FN_GetModelPtr_Post - FN_GetModelPtr_Post, -#else - NULL, -#endif -#ifdef FN_RegUserMsg_Post - FN_RegUserMsg_Post, -#else - NULL, -#endif -#ifdef FN_AnimationAutomove_Post - FN_AnimationAutomove_Post, -#else - NULL, -#endif -#ifdef FN_GetBonePosition_Post - FN_GetBonePosition_Post, -#else - NULL, -#endif -#ifdef FN_FunctionFromName_Post - FN_FunctionFromName_Post, -#else - NULL, -#endif -#ifdef FN_NameForFunction_Post - FN_NameForFunction_Post, -#else - NULL, -#endif -#ifdef FN_ClientPrintf_Post - FN_ClientPrintf_Post, -#else - NULL, -#endif -#ifdef FN_ServerPrint_Post - FN_ServerPrint_Post, -#else - NULL, -#endif -#ifdef FN_Cmd_Args_Post - FN_Cmd_Args_Post, -#else - NULL, -#endif -#ifdef FN_Cmd_Argv_Post - FN_Cmd_Argv_Post, -#else - NULL, -#endif -#ifdef FN_Cmd_Argc_Post - FN_Cmd_Argc_Post, -#else - NULL, -#endif -#ifdef FN_GetAttachment_Post - FN_GetAttachment_Post, -#else - NULL, -#endif -#ifdef FN_CRC32_Init_Post - FN_CRC32_Init_Post, -#else - NULL, -#endif -#ifdef FN_CRC32_ProcessBuffer_Post - FN_CRC32_ProcessBuffer_Post, -#else - NULL, -#endif -#ifdef FN_CRC32_ProcessByte_Post - FN_CRC32_ProcessByte_Post, -#else - NULL, -#endif -#ifdef FN_CRC32_Final_Post - FN_CRC32_Final_Post, -#else - NULL, -#endif -#ifdef FN_RandomLong_Post - FN_RandomLong_Post, -#else - NULL, -#endif -#ifdef FN_RandomFloat_Post - FN_RandomFloat_Post, -#else - NULL, -#endif -#ifdef FN_SetView_Post - FN_SetView_Post, -#else - NULL, -#endif -#ifdef FN_Time_Post - FN_Time_Post, -#else - NULL, -#endif -#ifdef FN_CrosshairAngle_Post - FN_CrosshairAngle_Post, -#else - NULL, -#endif -#ifdef FN_LoadFileForMe_Post - FN_LoadFileForMe_Post, -#else - NULL, -#endif -#ifdef FN_FreeFile_Post - FN_FreeFile_Post, -#else - NULL, -#endif -#ifdef FN_EndSection_Post - FN_EndSection_Post, -#else - NULL, -#endif -#ifdef FN_CompareFileTime_Post - FN_CompareFileTime_Post, -#else - NULL, -#endif -#ifdef FN_GetGameDir_Post - FN_GetGameDir_Post, -#else - NULL, -#endif -#ifdef FN_Cvar_RegisterVariable_Post - FN_Cvar_RegisterVariable_Post, -#else - NULL, -#endif -#ifdef FN_FadeClientVolume_Post - FN_FadeClientVolume_Post, -#else - NULL, -#endif -#ifdef FN_SetClientMaxspeed_Post - FN_SetClientMaxspeed_Post, -#else - NULL, -#endif -#ifdef FN_CreateFakeClient_Post - FN_CreateFakeClient_Post, -#else - NULL, -#endif -#ifdef FN_RunPlayerMove_Post - FN_RunPlayerMove_Post, -#else - NULL, -#endif -#ifdef FN_NumberOfEntities_Post - FN_NumberOfEntities_Post, -#else - NULL, -#endif -#ifdef FN_GetInfoKeyBuffer_Post - FN_GetInfoKeyBuffer_Post, -#else - NULL, -#endif -#ifdef FN_InfoKeyValue_Post - FN_InfoKeyValue_Post, -#else - NULL, -#endif -#ifdef FN_SetKeyValue_Post - FN_SetKeyValue_Post, -#else - NULL, -#endif -#ifdef FN_SetClientKeyValue_Post - FN_SetClientKeyValue_Post, -#else - NULL, -#endif -#ifdef FN_IsMapValid_Post - FN_IsMapValid_Post, -#else - NULL, -#endif -#ifdef FN_StaticDecal_Post - FN_StaticDecal_Post, -#else - NULL, -#endif -#ifdef FN_PrecacheGeneric_Post - FN_PrecacheGeneric_Post, -#else - NULL, -#endif -#ifdef FN_GetPlayerUserId_Post - FN_GetPlayerUserId_Post, -#else - NULL, -#endif -#ifdef FN_BuildSoundMsg_Post - FN_BuildSoundMsg_Post, -#else - NULL, -#endif -#ifdef FN_IsDedicatedServer_Post - FN_IsDedicatedServer_Post, -#else - NULL, -#endif -#ifdef FN_CVarGetPointer_Post - FN_CVarGetPointer_Post, -#else - NULL, -#endif -#ifdef FN_GetPlayerWONId_Post - FN_GetPlayerWONId_Post, -#else - NULL, -#endif -#ifdef FN_Info_RemoveKey_Post - FN_Info_RemoveKey_Post, -#else - NULL, -#endif -#ifdef FN_GetPhysicsKeyValue_Post - FN_GetPhysicsKeyValue_Post, -#else - NULL, -#endif -#ifdef FN_SetPhysicsKeyValue_Post - FN_SetPhysicsKeyValue_Post, -#else - NULL, -#endif -#ifdef FN_GetPhysicsInfoString_Post - FN_GetPhysicsInfoString_Post, -#else - NULL, -#endif -#ifdef FN_PrecacheEvent_Post - FN_PrecacheEvent_Post, -#else - NULL, -#endif -#ifdef FN_PlaybackEvent_Post - FN_PlaybackEvent_Post, -#else - NULL, -#endif -#ifdef FN_SetFatPVS_Post - FN_SetFatPVS_Post, -#else - NULL, -#endif -#ifdef FN_SetFatPAS_Post - FN_SetFatPAS_Post, -#else - NULL, -#endif -#ifdef FN_CheckVisibility_Post - FN_CheckVisibility_Post, -#else - NULL, -#endif -#ifdef FN_DeltaSetField_Post - FN_DeltaSetField_Post, -#else - NULL, -#endif -#ifdef FN_DeltaUnsetField_Post - FN_DeltaUnsetField_Post, -#else - NULL, -#endif -#ifdef FN_DeltaAddEncoder_Post - FN_DeltaAddEncoder_Post, -#else - NULL, -#endif -#ifdef FN_GetCurrentPlayer_Post - FN_GetCurrentPlayer_Post, -#else - NULL, -#endif -#ifdef FN_CanSkipPlayer_Post - FN_CanSkipPlayer_Post, -#else - NULL, -#endif -#ifdef FN_DeltaFindField_Post - FN_DeltaFindField_Post, -#else - NULL, -#endif -#ifdef FN_DeltaSetFieldByIndex_Post - FN_DeltaSetFieldByIndex_Post, -#else - NULL, -#endif -#ifdef FN_DeltaUnsetFieldByIndex_Post - FN_DeltaUnsetFieldByIndex_Post, -#else - NULL, -#endif -#ifdef FN_SetGroupMask_Post - FN_SetGroupMask_Post, -#else - NULL, -#endif -#ifdef FN_engCreateInstancedBaseline_Post - FN_engCreateInstancedBaseline_Post, -#else - NULL, -#endif -#ifdef FN_Cvar_DirectSet_Post - FN_Cvar_DirectSet_Post, -#else - NULL, -#endif -#ifdef FN_ForceUnmodified_Post - FN_ForceUnmodified_Post, -#else - NULL, -#endif -#ifdef FN_GetPlayerStats_Post - FN_GetPlayerStats_Post, -#else - NULL, -#endif -#ifdef FN_AddServerCommand_Post - FN_AddServerCommand_Post, -#else - NULL, -#endif -#ifdef FN_Voice_GetClientListening_Post - FN_Voice_GetClientListening_Post, -#else - NULL, -#endif -#ifdef FN_Voice_SetClientListening_Post - FN_Voice_SetClientListening_Post, -#else - NULL, -#endif -#ifdef FN_GetPlayerAuthId_Post - FN_GetPlayerAuthId_Post -#else - NULL -#endif -}; // g_EngineFuncs_Post_Table - - -static NEW_DLL_FUNCTIONS g_NewFuncs_Table = -{ -#ifdef FN_OnFreeEntPrivateData - FN_OnFreeEntPrivateData, -#else - NULL, -#endif -#ifdef FN_GameShutdown - FN_GameShutdown, -#else - NULL, -#endif -#ifdef FN_ShouldCollide - ShouldCollide, -#else - NULL, -#endif -}; - - -static NEW_DLL_FUNCTIONS g_NewFuncs_Post_Table = -{ -#ifdef FN_OnFreeEntPrivateData_Post - FN_OnFreeEntPrivateData_Post, -#else - NULL, -#endif -#ifdef FN_GameShutdown_Post - FN_GameShutdown_Post, -#else - NULL, -#endif -#ifdef FN_ShouldCollide_Post - ShouldCollide_Post, -#else - NULL, -#endif -}; - -// Global variables from metamod. These variable names are referenced by -// various macros. -meta_globals_t *gpMetaGlobals; // metamod globals -gamedll_funcs_t *gpGamedllFuncs; // gameDLL function tables -mutil_funcs_t *gpMetaUtilFuncs; // metamod utility functions - - -plugin_info_t Plugin_info = { - META_INTERFACE_VERSION, - MODULE_NAME, - MODULE_VERSION, - MODULE_DATE, - MODULE_AUTHOR, - MODULE_URL, - MODULE_LOGTAG, - PT_ANYTIME, - PT_ANYTIME -}; - -/* -C_DLLEXPORT int GetEntityAPI(DLL_FUNCTIONS *pFunctionTable, int interfaceVersion) -{ - LOG_DEVELOPER(PLID, "called: GetEntityAPI; version=%d", interfaceVersion); - if(!pFunctionTable) { - LOG_ERROR(PLID, "GetEntityAPI called with null pFunctionTable"); - return(FALSE); - } - else if(interfaceVersion != INTERFACE_VERSION) { - LOG_ERROR(PLID, "GetEntityAPI version mismatch; requested=%d ours=%d", interfaceVersion, INTERFACE_VERSION); - return(FALSE); - } - memcpy(pFunctionTable, &g_EntityAPI_Table, sizeof( DLL_FUNCTIONS ) ); - - return (TRUE); -} - -C_DLLEXPORT int GetEntityAPI_Post(DLL_FUNCTIONS *pFunctionTable, int interfaceVersion) -{ - LOG_DEVELOPER(PLID, "called: GetEntityAPI_Post; version=%d", interfaceVersion); - if(!pFunctionTable) { - LOG_ERROR(PLID, "GetEntityAPI_Post called with null pFunctionTable"); - return(FALSE); - } - else if(interfaceVersion != INTERFACE_VERSION) { - LOG_ERROR(PLID, "GetEntityAPI_Post version mismatch; requested=%d ours=%d", interfaceVersion, INTERFACE_VERSION); - return(FALSE); - } - memcpy(pFunctionTable, &g_EntityAPI_Post_Table, sizeof( DLL_FUNCTIONS ) ); - - return(TRUE); -} -*/ - -C_DLLEXPORT int GetEntityAPI2(DLL_FUNCTIONS *pFunctionTable, int *interfaceVersion) -{ - LOG_DEVELOPER(PLID, "called: GetEntityAPI2; version=%d", *interfaceVersion); - if(!pFunctionTable) { - LOG_ERROR(PLID, "GetEntityAPI2 called with null pFunctionTable"); - return(FALSE); - } - else if(*interfaceVersion != INTERFACE_VERSION) { - LOG_ERROR(PLID, - "GetEntityAPI2 version mismatch; requested=%d ours=%d", - *interfaceVersion, INTERFACE_VERSION); - //! Tell engine what version we had, so it can figure out who is - //! out of date. - *interfaceVersion = INTERFACE_VERSION; - return(FALSE); - } - memcpy(pFunctionTable, &g_EntityAPI_Table, sizeof(DLL_FUNCTIONS)); - g_pFunctionTable=pFunctionTable; - return(TRUE); -} - -C_DLLEXPORT int GetEntityAPI2_Post(DLL_FUNCTIONS *pFunctionTable, int *interfaceVersion) -{ - LOG_DEVELOPER(PLID, "called: GetEntityAPI2_Post; version=%d", *interfaceVersion); - if(!pFunctionTable) { - LOG_ERROR(PLID, "GetEntityAPI2_Post called with null pFunctionTable"); - return(FALSE); - } - else if(*interfaceVersion != INTERFACE_VERSION) { - LOG_ERROR(PLID, "GetEntityAPI2_Post version mismatch; requested=%d ours=%d", *interfaceVersion, INTERFACE_VERSION); - //! Tell engine what version we had, so it can figure out who is out of date. - *interfaceVersion = INTERFACE_VERSION; - return(FALSE); - } - memcpy( pFunctionTable, &g_EntityAPI_Post_Table, sizeof( DLL_FUNCTIONS ) ); - g_pFunctionTable_Post=pFunctionTable; - return(TRUE); -} - -C_DLLEXPORT int GetEngineFunctions(enginefuncs_t *pengfuncsFromEngine, int *interfaceVersion) -{ - LOG_DEVELOPER(PLID, "called: GetEngineFunctions; version=%d", - *interfaceVersion); - if(!pengfuncsFromEngine) { - LOG_ERROR(PLID, - "GetEngineFunctions called with null pengfuncsFromEngine"); - return(FALSE); - } - else if(*interfaceVersion != ENGINE_INTERFACE_VERSION) { - LOG_ERROR(PLID, - "GetEngineFunctions version mismatch; requested=%d ours=%d", - *interfaceVersion, ENGINE_INTERFACE_VERSION); - // Tell metamod what version we had, so it can figure out who is - // out of date. - *interfaceVersion = ENGINE_INTERFACE_VERSION; - return(FALSE); - } - memcpy(pengfuncsFromEngine, &g_EngineFuncs_Table, sizeof(enginefuncs_t)); - g_pengfuncsTable=pengfuncsFromEngine; - return TRUE; -} - -C_DLLEXPORT int GetEngineFunctions_Post(enginefuncs_t *pengfuncsFromEngine, int *interfaceVersion) -{ - LOG_DEVELOPER(PLID, "called: GetEngineFunctions_Post; version=%d", *interfaceVersion); - if(!pengfuncsFromEngine) { - LOG_ERROR(PLID, "GetEngineFunctions_Post called with null pengfuncsFromEngine"); - return(FALSE); - } - else if(*interfaceVersion != ENGINE_INTERFACE_VERSION) { - LOG_ERROR(PLID, "GetEngineFunctions_Post version mismatch; requested=%d ours=%d", *interfaceVersion, ENGINE_INTERFACE_VERSION); - // Tell metamod what version we had, so it can figure out who is out of date. - *interfaceVersion = ENGINE_INTERFACE_VERSION; - return(FALSE); - } - memcpy(pengfuncsFromEngine, &g_EngineFuncs_Post_Table, sizeof(enginefuncs_t)); - g_pengfuncsTable_Post=pengfuncsFromEngine; - return TRUE; - -} - -C_DLLEXPORT int GetNewDLLFunctions(NEW_DLL_FUNCTIONS *pNewFunctionTable, - int *interfaceVersion) -{ - LOG_DEVELOPER(PLID, "called: GetNewDLLFunctions; version=%d", - *interfaceVersion); - if(!pNewFunctionTable) { - LOG_ERROR(PLID, - "GetNewDLLFunctions called with null pNewFunctionTable"); - return(FALSE); - } - else if(*interfaceVersion != NEW_DLL_FUNCTIONS_VERSION) { - LOG_ERROR(PLID, - "GetNewDLLFunctions version mismatch; requested=%d ours=%d", - *interfaceVersion, NEW_DLL_FUNCTIONS_VERSION); - //! Tell engine what version we had, so it can figure out who is - //! out of date. - *interfaceVersion = NEW_DLL_FUNCTIONS_VERSION; - return(FALSE); - } - memcpy(pNewFunctionTable, &g_NewFuncs_Table, sizeof(NEW_DLL_FUNCTIONS)); - g_pNewFunctionsTable=pNewFunctionTable; - return TRUE; -} - -C_DLLEXPORT int GetNewDLLFunctions_Post( NEW_DLL_FUNCTIONS *pNewFunctionTable, int *interfaceVersion ) -{ - LOG_DEVELOPER(PLID, "called: GetNewDLLFunctions_Post; version=%d", *interfaceVersion); - if(!pNewFunctionTable) { - LOG_ERROR(PLID, "GetNewDLLFunctions_Post called with null pNewFunctionTable"); - return(FALSE); - } - else if(*interfaceVersion != NEW_DLL_FUNCTIONS_VERSION) { - LOG_ERROR(PLID, "GetNewDLLFunctions_Post version mismatch; requested=%d ours=%d", *interfaceVersion, NEW_DLL_FUNCTIONS_VERSION); - //! Tell engine what version we had, so it can figure out who is out of date. - *interfaceVersion = NEW_DLL_FUNCTIONS_VERSION; - return(FALSE); - } - memcpy(pNewFunctionTable, &g_NewFuncs_Post_Table, sizeof(NEW_DLL_FUNCTIONS)); - g_pNewFunctionsTable_Post=pNewFunctionTable; - return TRUE; -} - - -static META_FUNCTIONS g_MetaFunctions_Table = -{ - NULL, - NULL, - GetEntityAPI2, - GetEntityAPI2_Post, - GetNewDLLFunctions, - GetNewDLLFunctions_Post, - GetEngineFunctions, - GetEngineFunctions_Post -}; - -C_DLLEXPORT int Meta_Query(char *ifvers, plugin_info_t **pPlugInfo, mutil_funcs_t *pMetaUtilFuncs) -{ - if ((int) CVAR_GET_FLOAT("developer") != 0) - UTIL_LogPrintf("[%s] dev: called: Meta_Query; version=%s, ours=%s\n", - Plugin_info.logtag, ifvers, Plugin_info.ifvers); - - // Check for valid pMetaUtilFuncs before we continue. - if(!pMetaUtilFuncs) { - UTIL_LogPrintf("[%s] ERROR: Meta_Query called with null pMetaUtilFuncs\n", Plugin_info.logtag); - return(FALSE); - } - - gpMetaUtilFuncs = pMetaUtilFuncs; - - *pPlugInfo = &Plugin_info; - - // Check for interface version compatibility. - if(!FStrEq(ifvers, Plugin_info.ifvers)) { - int mmajor=0, mminor=0, pmajor=0, pminor=0; - LOG_MESSAGE(PLID, "WARNING: meta-interface version mismatch; requested=%s ours=%s", - Plugin_info.logtag, ifvers); - // If plugin has later interface version, it's incompatible (update - // metamod). - sscanf(ifvers, "%d:%d", &mmajor, &mminor); - sscanf(META_INTERFACE_VERSION, "%d:%d", &pmajor, &pminor); - if(pmajor > mmajor || (pmajor==mmajor && pminor > mminor)) { - LOG_ERROR(PLID, "metamod version is too old for this module; update metamod"); - return(FALSE); - } - // If plugin has older major interface version, it's incompatible - // (update plugin). - else if(pmajor < mmajor) { - LOG_ERROR(PLID, "metamod version is incompatible with this module; please find a newer version of this module"); - return(FALSE); - } - // Minor interface is older, but this is guaranteed to be backwards - // compatible, so we warn, but we still accept it. - else if(pmajor==mmajor && pminor < mminor) - LOG_MESSAGE(PLID, "WARNING: metamod version is newer than expected; consider finding a newer version of this module"); - else - LOG_ERROR(PLID, "unexpected version comparison; metavers=%s, mmajor=%d, mminor=%d; plugvers=%s, pmajor=%d, pminor=%d", ifvers, mmajor, mminor, META_INTERFACE_VERSION, pmajor, pminor); - } - -#ifdef FN_META_QUERY - return FN_META_QUERY(); -#endif // FN_META_QUERY - - return 1; -} - - -C_DLLEXPORT int Meta_Attach(PLUG_LOADTIME now, META_FUNCTIONS *pFunctionTable, meta_globals_t *pMGlobals, gamedll_funcs_t *pGamedllFuncs) -{ - if(now > Plugin_info.loadable) { - LOG_ERROR(PLID, "Can't load module right now"); - return(FALSE); - } - if(!pMGlobals) { - LOG_ERROR(PLID, "Meta_Attach called with null pMGlobals"); - return(FALSE); - } - gpMetaGlobals=pMGlobals; - if(!pFunctionTable) { - LOG_ERROR(PLID, "Meta_Attach called with null pFunctionTable"); - return(FALSE); - } - - memcpy(pFunctionTable, &g_MetaFunctions_Table, sizeof(META_FUNCTIONS)); - gpGamedllFuncs=pGamedllFuncs; - - // Let's go. - -#ifdef FN_META_ATTACH - FN_META_ATTACH(); -#endif // FN_META_ATTACH - - return TRUE; -} - -C_DLLEXPORT int Meta_Detach(PLUG_LOADTIME now, PL_UNLOAD_REASON reason) -{ - if(now > Plugin_info.unloadable && reason != PNL_CMD_FORCED) { - LOG_ERROR(PLID, "Can't unload plugin right now"); - return(FALSE); - } - -#ifdef FN_META_DETACH - return FN_META_DETACH(); -#endif // FN_META_DETACH - return TRUE; -} - - - -#ifdef __linux__ -// linux prototype -C_DLLEXPORT void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals ) { - -#else -#ifdef _MSC_VER -// MSVC: Simulate __stdcall calling convention -C_DLLEXPORT __declspec(naked) void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals ) -{ - __asm // Prolog - { - // Save ebp - push ebp - // Set stack frame pointer - mov ebp, esp - // Allocate space for local variables - // The MSVC compiler gives us the needed size in __LOCAL_SIZE. - sub esp, __LOCAL_SIZE - // Push registers - push ebx - push esi - push edi - } -#else // _MSC_VER -#ifdef __GNUC__ -// GCC can also work with this -C_DLLEXPORT void __stdcall GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals ) -{ -#else // __GNUC__ -// compiler not known -#error There is no support (yet) for your compiler. Please use MSVC or GCC compilers or contact the AMX Mod X dev team. -#endif // __GNUC__ -#endif // _MSC_VER -#endif // __linux__ - - // ** Function core <-- - memcpy(&g_engfuncs, pengfuncsFromEngine, sizeof(enginefuncs_t)); - gpGlobals = pGlobals; - // NOTE! Have to call logging function _after_ copying into g_engfuncs, so - // that g_engfuncs.pfnAlertMessage() can be resolved properly, heh. :) - UTIL_LogPrintf("[%s] dev: called: GiveFnptrsToDll\n", Plugin_info.logtag); - // --> ** Function core - -#ifdef _MSC_VER - // Epilog - if (sizeof(int*) == 8) - { // 64 bit - __asm - { - // Pop registers - pop edi - pop esi - pop ebx - // Restore stack frame pointer - mov esp, ebp - // Restore ebp - pop ebp - // 2 * sizeof(int*) = 16 on 64 bit - ret 16 - } - } - else - { // 32 bit - __asm - { - // Pop registers - pop edi - pop esi - pop ebx - // Restore stack frame pointer - mov esp, ebp - // Restore ebp - pop ebp - // 2 * sizeof(int*) = 8 on 32 bit - ret 8 - } - } -#endif // #ifdef _MSC_VER -} - -#endif // #ifdef USE_METAMOD - -/************* AMXX Stuff *************/ - -// *** Globals *** -// Module info -static amxx_module_info_s g_ModuleInfo = -{ - MODULE_NAME, - MODULE_AUTHOR, - MODULE_VERSION, -#ifdef MODULE_RELOAD_ON_MAPCHANGE - 1, -#else // MODULE_RELOAD_ON_MAPCHANGE - 0, -#endif // MODULE_RELOAD_ON_MAPCHANGE - MODULE_LOGTAG -}; - -// Storage for the requested functions -PFN_ADD_NATIVES g_fn_AddNatives; -PFN_BUILD_PATHNAME g_fn_BuildPathname; -PFN_BUILD_PATHNAME_R g_fn_BuildPathnameR; -PFN_GET_AMXADDR g_fn_GetAmxAddr; -PFN_PRINT_SRVCONSOLE g_fn_PrintSrvConsole; -PFN_GET_MODNAME g_fn_GetModname; -PFN_GET_AMXSCRIPTNAME g_fn_GetAmxScriptName; -PFN_GET_AMXSCRIPT g_fn_GetAmxScript; -PFN_FIND_AMXSCRIPT_BYAMX g_fn_FindAmxScriptByAmx; -PFN_FIND_AMXSCRIPT_BYNAME g_fn_FindAmxScriptByName; -PFN_SET_AMXSTRING g_fn_SetAmxString; -PFN_GET_AMXSTRING g_fn_GetAmxString; -PFN_GET_AMXSTRINGLEN g_fn_GetAmxStringLen; -PFN_FORMAT_AMXSTRING g_fn_FormatAmxString; -PFN_COPY_AMXMEMORY g_fn_CopyAmxMemory; -PFN_LOG g_fn_Log; -PFN_LOG_ERROR g_fn_LogErrorFunc; -PFN_RAISE_AMXERROR g_fn_RaiseAmxError; -PFN_REGISTER_FORWARD g_fn_RegisterForward; -PFN_EXECUTE_FORWARD g_fn_ExecuteForward; -PFN_PREPARE_CELLARRAY g_fn_PrepareCellArray; -PFN_PREPARE_CHARARRAY g_fn_PrepareCharArray; -PFN_PREPARE_CELLARRAY_A g_fn_PrepareCellArrayA; -PFN_PREPARE_CHARARRAY_A g_fn_PrepareCharArrayA; -PFN_IS_PLAYER_VALID g_fn_IsPlayerValid; -PFN_GET_PLAYER_NAME g_fn_GetPlayerName; -PFN_GET_PLAYER_IP g_fn_GetPlayerIP; -PFN_IS_PLAYER_INGAME g_fn_IsPlayerIngame; -PFN_IS_PLAYER_BOT g_fn_IsPlayerBot; -PFN_IS_PLAYER_AUTHORIZED g_fn_IsPlayerAuthorized; -PFN_GET_PLAYER_TIME g_fn_GetPlayerTime; -PFN_GET_PLAYER_PLAYTIME g_fn_GetPlayerPlayTime; -PFN_GET_PLAYER_CURWEAPON g_fn_GetPlayerCurweapon; -PFN_GET_PLAYER_TEAM g_fn_GetPlayerTeam; -PFN_GET_PLAYER_TEAMID g_fn_GetPlayerTeamID; -PFN_GET_PLAYER_DEATHS g_fn_GetPlayerDeaths; -PFN_GET_PLAYER_MENU g_fn_GetPlayerMenu; -PFN_GET_PLAYER_KEYS g_fn_GetPlayerKeys; -PFN_IS_PLAYER_ALIVE g_fn_IsPlayerAlive; -PFN_GET_PLAYER_FRAGS g_fn_GetPlayerFrags; -PFN_IS_PLAYER_CONNECTING g_fn_IsPlayerConnecting; -PFN_IS_PLAYER_HLTV g_fn_IsPlayerHLTV; -PFN_GET_PLAYER_ARMOR g_fn_GetPlayerArmor; -PFN_GET_PLAYER_HEALTH g_fn_GetPlayerHealth; -#ifdef MEMORY_TEST -PFN_ALLOCATOR g_fn_Allocator; -PFN_REALLOCATOR g_fn_Reallocator; -PFN_DEALLOCATOR g_fn_Deallocator; -#endif -PFN_AMX_EXEC g_fn_AmxExec; -PFN_AMX_EXECV g_fn_AmxExecv; -PFN_AMX_ALLOT g_fn_AmxAllot; -PFN_AMX_FINDPUBLIC g_fn_AmxFindPublic; -PFN_LOAD_AMXSCRIPT g_fn_LoadAmxScript; -PFN_UNLOAD_AMXSCRIPT g_fn_UnloadAmxScript; -PFN_REAL_TO_CELL g_fn_RealToCell; -PFN_CELL_TO_REAL g_fn_CellToReal; -PFN_REGISTER_SPFORWARD g_fn_RegisterSPForward; -PFN_REGISTER_SPFORWARD_BYNAME g_fn_RegisterSPForwardByName; -PFN_UNREGISTER_SPFORWARD g_fn_UnregisterSPForward; -PFN_MERGEDEFINITION_FILE g_fn_MergeDefinition_File; -PFN_AMX_FINDNATIVE g_fn_AmxFindNative; -PFN_GETPLAYERFLAGS g_fn_GetPlayerFlags; -PFN_GET_PLAYER_EDICT g_fn_GetPlayerEdict; -PFN_FORMAT g_fn_Format; -PFN_REGISTERFUNCTION g_fn_RegisterFunction; -PFN_REQ_FNPTR g_fn_RequestFunction; -PFN_AMX_PUSH g_fn_AmxPush; - -// *** Exports *** -C_DLLEXPORT int AMXX_Query(int *interfaceVersion, amxx_module_info_s *moduleInfo) -{ - // check parameters - if (!interfaceVersion || !moduleInfo) - return AMXX_PARAM; - - // check interface version - if (*interfaceVersion != AMXX_INTERFACE_VERSION) - { - // Tell amxx core our interface version - *interfaceVersion = AMXX_INTERFACE_VERSION; - return AMXX_IFVERS; - } - - // copy module info - memcpy(moduleInfo, &g_ModuleInfo, sizeof(amxx_module_info_s)); - -#ifdef FN_AMXX_QUERY - FN_AMXX_QUERY(); -#endif // FN_AMXX_QUERY - // Everything ok :) - return AMXX_OK; -} - -// request function -#define REQFUNC(name, fptr, type) if ((fptr = (type)reqFnptrFunc(name)) == 0) return AMXX_FUNC_NOT_PRESENT -// request optional function -#define REQFUNC_OPT(name, fptr, type) fptr = (type)reqFnptrFunc(name) - -C_DLLEXPORT int AMXX_Attach(PFN_REQ_FNPTR reqFnptrFunc) -{ - // Check pointer - if (!reqFnptrFunc) - return AMXX_PARAM; - - g_fn_RequestFunction = reqFnptrFunc; - - // Req all known functions - // Misc - REQFUNC("BuildPathname", g_fn_BuildPathname, PFN_BUILD_PATHNAME); - REQFUNC("BuildPathnameR", g_fn_BuildPathnameR, PFN_BUILD_PATHNAME_R); - REQFUNC("PrintSrvConsole", g_fn_PrintSrvConsole, PFN_PRINT_SRVCONSOLE); - REQFUNC("GetModname", g_fn_GetModname, PFN_GET_MODNAME); - REQFUNC("Log", g_fn_Log, PFN_LOG); - REQFUNC("LogError", g_fn_LogErrorFunc, PFN_LOG_ERROR); - REQFUNC("MergeDefinitionFile", g_fn_MergeDefinition_File, PFN_MERGEDEFINITION_FILE); - REQFUNC("Format", g_fn_Format, PFN_FORMAT); - REQFUNC("RegisterFunction", g_fn_RegisterFunction, PFN_REGISTERFUNCTION); - - // Amx scripts - REQFUNC("GetAmxScript", g_fn_GetAmxScript, PFN_GET_AMXSCRIPT); - REQFUNC("FindAmxScriptByAmx", g_fn_FindAmxScriptByAmx, PFN_FIND_AMXSCRIPT_BYAMX); - REQFUNC("FindAmxScriptByName", g_fn_FindAmxScriptByName, PFN_FIND_AMXSCRIPT_BYNAME); - REQFUNC("LoadAmxScript", g_fn_LoadAmxScript, PFN_LOAD_AMXSCRIPT); - REQFUNC("UnloadAmxScript", g_fn_UnloadAmxScript, PFN_UNLOAD_AMXSCRIPT); - REQFUNC("GetAmxScriptName", g_fn_GetAmxScriptName, PFN_GET_AMXSCRIPTNAME); - - // String / mem in amx scripts support - REQFUNC("SetAmxString", g_fn_SetAmxString, PFN_SET_AMXSTRING); - REQFUNC("GetAmxString", g_fn_GetAmxString, PFN_GET_AMXSTRING); - REQFUNC("GetAmxStringLen", g_fn_GetAmxStringLen, PFN_GET_AMXSTRINGLEN); - REQFUNC("FormatAmxString", g_fn_FormatAmxString, PFN_FORMAT_AMXSTRING); - REQFUNC("CopyAmxMemory", g_fn_CopyAmxMemory, PFN_COPY_AMXMEMORY); - REQFUNC("GetAmxAddr", g_fn_GetAmxAddr, PFN_GET_AMXADDR); - - REQFUNC("amx_Exec", g_fn_AmxExec, PFN_AMX_EXEC); - REQFUNC("amx_Execv", g_fn_AmxExecv, PFN_AMX_EXECV); - REQFUNC("amx_FindPublic", g_fn_AmxFindPublic, PFN_AMX_FINDPUBLIC); - REQFUNC("amx_Allot", g_fn_AmxAllot, PFN_AMX_ALLOT); - REQFUNC("amx_FindNative", g_fn_AmxFindNative, PFN_AMX_FINDNATIVE); - - // Natives / Forwards - REQFUNC("AddNatives", g_fn_AddNatives, PFN_ADD_NATIVES); - REQFUNC("RaiseAmxError", g_fn_RaiseAmxError, PFN_RAISE_AMXERROR); - REQFUNC("RegisterForward", g_fn_RegisterForward, PFN_REGISTER_FORWARD); - REQFUNC("RegisterSPForward", g_fn_RegisterSPForward, PFN_REGISTER_SPFORWARD); - REQFUNC("RegisterSPForwardByName", g_fn_RegisterSPForwardByName, PFN_REGISTER_SPFORWARD_BYNAME); - REQFUNC("UnregisterSPForward", g_fn_UnregisterSPForward, PFN_UNREGISTER_SPFORWARD); - REQFUNC("ExecuteForward", g_fn_ExecuteForward, PFN_EXECUTE_FORWARD); - REQFUNC("PrepareCellArray", g_fn_PrepareCellArray, PFN_PREPARE_CELLARRAY); - REQFUNC("PrepareCharArray", g_fn_PrepareCharArray, PFN_PREPARE_CHARARRAY); - REQFUNC("PrepareCellArrayA", g_fn_PrepareCellArrayA, PFN_PREPARE_CELLARRAY_A); - REQFUNC("PrepareCharArrayA", g_fn_PrepareCharArrayA, PFN_PREPARE_CHARARRAY_A); - // Player - REQFUNC("IsPlayerValid", g_fn_IsPlayerValid, PFN_IS_PLAYER_VALID); - REQFUNC("GetPlayerName", g_fn_GetPlayerName, PFN_GET_PLAYER_NAME); - REQFUNC("GetPlayerIP", g_fn_GetPlayerIP, PFN_GET_PLAYER_IP); - REQFUNC("IsPlayerInGame", g_fn_IsPlayerIngame, PFN_IS_PLAYER_INGAME); - REQFUNC("IsPlayerBot", g_fn_IsPlayerBot, PFN_IS_PLAYER_BOT); - REQFUNC("IsPlayerAuthorized", g_fn_IsPlayerAuthorized, PFN_IS_PLAYER_AUTHORIZED); - REQFUNC("GetPlayerTime", g_fn_GetPlayerTime, PFN_GET_PLAYER_TIME); - REQFUNC("GetPlayerPlayTime", g_fn_GetPlayerPlayTime, PFN_GET_PLAYER_PLAYTIME); - REQFUNC("GetPlayerCurweapon", g_fn_GetPlayerCurweapon, PFN_GET_PLAYER_CURWEAPON); - REQFUNC("GetPlayerTeamID", g_fn_GetPlayerTeamID, PFN_GET_PLAYER_TEAMID); - REQFUNC("GetPlayerTeam",g_fn_GetPlayerTeam, PFN_GET_PLAYER_TEAM); - REQFUNC("GetPlayerDeaths", g_fn_GetPlayerDeaths, PFN_GET_PLAYER_DEATHS); - REQFUNC("GetPlayerMenu", g_fn_GetPlayerMenu, PFN_GET_PLAYER_MENU); - REQFUNC("GetPlayerKeys", g_fn_GetPlayerKeys, PFN_GET_PLAYER_KEYS); - REQFUNC("IsPlayerAlive", g_fn_IsPlayerAlive, PFN_IS_PLAYER_ALIVE); - REQFUNC("GetPlayerFrags", g_fn_GetPlayerFrags, PFN_GET_PLAYER_FRAGS); - REQFUNC("IsPlayerConnecting", g_fn_IsPlayerConnecting, PFN_IS_PLAYER_CONNECTING); - REQFUNC("IsPlayerHLTV", g_fn_IsPlayerHLTV, PFN_IS_PLAYER_HLTV); - REQFUNC("GetPlayerArmor", g_fn_GetPlayerArmor, PFN_GET_PLAYER_ARMOR); - REQFUNC("GetPlayerHealth", g_fn_GetPlayerHealth, PFN_GET_PLAYER_HEALTH); - REQFUNC("GetPlayerFlags", g_fn_GetPlayerFlags, PFN_GETPLAYERFLAGS); - REQFUNC("GetPlayerEdict", g_fn_GetPlayerEdict, PFN_GET_PLAYER_EDICT); - REQFUNC("amx_Push", g_fn_AmxPush, PFN_AMX_PUSH); - -#ifdef MEMORY_TEST - // Memory - REQFUNC_OPT("Allocator", g_fn_Allocator, PFN_ALLOCATOR); - REQFUNC_OPT("Reallocator", g_fn_Reallocator, PFN_REALLOCATOR); - REQFUNC_OPT("Deallocator", g_fn_Deallocator, PFN_DEALLOCATOR); -#endif - - REQFUNC("CellToReal", g_fn_CellToReal, PFN_CELL_TO_REAL); - REQFUNC("RealToCell", g_fn_RealToCell, PFN_REAL_TO_CELL); - -#ifdef FN_AMXX_ATTACH - FN_AMXX_ATTACH(); -#endif // FN_AMXX_ATACH - - return AMXX_OK; -} - -C_DLLEXPORT int AMXX_Detach() -{ -#ifdef FN_AMXX_DETACH - FN_AMXX_DETACH(); -#endif // FN_AMXX_DETACH - - return AMXX_OK; -} - -C_DLLEXPORT int AMXX_PluginsLoaded() -{ -#ifdef FN_AMXX_PLUGINSLOADED - FN_AMXX_PLUGINSLOADED(); -#endif // FN_AMXX_PLUGINSLOADED - return AMXX_OK; -} - -// Advanced MF functions -void MF_Log(const char *fmt, ...) -{ - // :TODO: Overflow possible here - char msg[3072]; - va_list arglst; - va_start(arglst, fmt); - vsprintf(msg, fmt, arglst); - va_end(arglst); - - g_fn_Log("[%s] %s", MODULE_LOGTAG, msg); -} - -void MF_LogError(AMX *amx, int err, const char *fmt, ...) -{ - // :TODO: Overflow possible here - char msg[3072]; - va_list arglst; - va_start(arglst, fmt); - vsprintf(msg, fmt, arglst); - va_end(arglst); - - g_fn_LogErrorFunc(amx, err, "[%s] %s", MODULE_LOGTAG, msg); -} - - -#ifdef _DEBUG -// validate macros -// Makes sure compiler reports errors when macros are invalid -void ValidateMacros_DontCallThis_Smiley() -{ - MF_BuildPathname("str", "str", 0); - MF_BuildPathnameR(NULL, 0, "%d", 0); - MF_FormatAmxString(NULL, 0, 0, NULL); - MF_GetAmxAddr(NULL, 0); - MF_PrintSrvConsole("str", "str", 0); - MF_GetModname(); - MF_GetScriptName(0); - MF_GetScriptAmx(0); - MF_FindScriptByAmx(NULL); - MF_FindScriptByName("str"); - MF_SetAmxString(NULL, 0, "str", 0); - MF_GetAmxString(NULL, 0, 0, 0); - MF_GetAmxStringLen(NULL); - MF_CopyAmxMemory(NULL, NULL, 0); - MF_Log("str", "str", 0); - MF_LogError(NULL, 0, NULL); - MF_RaiseAmxError(NULL, 0); - MF_RegisterForward("str", (ForwardExecType)0, 0, 0, 0); - MF_ExecuteForward(0, 0, 0); - MF_PrepareCellArray(NULL, 0); - MF_PrepareCharArray(NULL, 0); - MF_PrepareCellArrayA(NULL, 0, true); - MF_PrepareCharArrayA(NULL, 0, true); - MF_IsPlayerValid(0); - MF_GetPlayerName(0); - MF_GetPlayerIP(0); - MF_IsPlayerIngame(0); - MF_IsPlayerBot(0); - MF_IsPlayerAuthorized(0); - MF_GetPlayerTime(0); - MF_GetPlayerPlayTime(0); - MF_GetPlayerCurweapon(0); - MF_GetPlayerTeamID(0); - MF_GetPlayerTeam(0); - MF_GetPlayerDeaths(0); - MF_GetPlayerMenu(0); - MF_GetPlayerKeys(0); - MF_IsPlayerAlive(0); - MF_GetPlayerFrags(0); - MF_IsPlayerConnecting(0); - MF_IsPlayerHLTV(0); - MF_GetPlayerArmor(0); - MF_GetPlayerHealth(0); - MF_AmxExec(0, 0, 0); - MF_AmxExecv(0, 0, 0, 0, 0); - MF_AmxFindPublic(0, 0, 0); - MF_AmxAllot(0, 0, 0, 0); - MF_LoadAmxScript(0, 0, 0, 0, 0); - MF_UnloadAmxScript(0, 0); - MF_RegisterSPForward(0, 0, 0, 0, 0, 0); - MF_RegisterSPForwardByName(0, 0, 0, 0, 0, 0); - MF_UnregisterSPForward(0); - MF_GetPlayerFrags(0); - MF_GetPlayerEdict(0); - MF_Format("", 4, "str"); - MF_RegisterFunction(NULL, ""); -} -#endif - -#ifdef MEMORY_TEST - -/************* MEMORY *************/ -// undef all defined macros -#undef new -#undef delete -#undef malloc -#undef calloc -#undef realloc -#undef free - -const unsigned int m_alloc_unknown = 0; -const unsigned int m_alloc_new = 1; -const unsigned int m_alloc_new_array = 2; -const unsigned int m_alloc_malloc = 3; -const unsigned int m_alloc_calloc = 4; -const unsigned int m_alloc_realloc = 5; -const unsigned int m_alloc_delete = 6; -const unsigned int m_alloc_delete_array = 7; -const unsigned int m_alloc_free = 8; - -const char *g_Mem_CurrentFilename = "??"; -int g_Mem_CurrentLine = 0; -const char *g_Mem_CurrentFunc = "??"; - -const char *Mem_MakeSourceFile(const char *sourceFile) -{ - static char buffer[512]; - static size_t pos = 0; - if (!pos) - { - // init - buffer[0] = '['; - strcpy(buffer + 1, MODULE_NAME); - pos = strlen(MODULE_NAME) + 1; - buffer[pos++] = ']'; - } - - // convert from absolute path to [modulename]filename - const char *ptr = strrchr(sourceFile, '\\'); - if (ptr) - ptr++; - else - { - ptr = strrchr(sourceFile, '/'); - if (ptr) - ptr++; - else - ptr = sourceFile; - } - strcpy(buffer + pos, ptr); - return buffer; -} - -void Mem_SetOwner(const char *filename, int line, const char *function) -{ - g_Mem_CurrentFilename = filename; - g_Mem_CurrentLine = line; - g_Mem_CurrentFunc = function; -} - -void Mem_ResetGlobals() -{ - Mem_SetOwner("??", 0, "??"); -} - -// raw (re/de)allocators -void * Mem_Allocator(const char *sourceFile, const unsigned int sourceLine, const char *sourceFunc, - const unsigned int allocationType, const size_t reportedSize) -{ - if (g_fn_Allocator) - return g_fn_Allocator(Mem_MakeSourceFile(sourceFile), sourceLine, sourceFunc, allocationType, reportedSize); - else - return malloc(reportedSize); -} - -void * Mem_Reallocator(const char *sourceFile, const unsigned int sourceLine, const char *sourceFunc, - const unsigned int reallocationType, const size_t reportedSize, void *reportedAddress) -{ - if (g_fn_Reallocator) - return g_fn_Reallocator(Mem_MakeSourceFile(sourceFile), sourceLine, sourceFunc, reallocationType, reportedSize, reportedAddress); - else - return realloc(reportedAddress, reportedSize); -} - -void Mem_Deallocator(const char *sourceFile, const unsigned int sourceLine, const char *sourceFunc, - const unsigned int deallocationType, void *reportedAddress) -{ - // If you you get user breakpoint here, something failed :) - // - invalid pointer - // - alloc type mismatch ( for example - // char *a = new char[5]; delete char; - // ) - // - The allocation unit is damaged (for example - // char *a = new char[5]; a[6] = 8; - // ) - // - break on dealloc flag set (somehow) - - if (g_fn_Deallocator) - g_fn_Deallocator(Mem_MakeSourceFile(sourceFile), sourceLine, sourceFunc, deallocationType, reportedAddress); - else - free(reportedAddress); -} - -// new and delete operators -void *operator new(size_t reportedSize) -{ - if (reportedSize == 0) - reportedSize = 1; - void *ptr = Mem_Allocator(g_Mem_CurrentFilename, g_Mem_CurrentLine, g_Mem_CurrentFunc, m_alloc_new, reportedSize); - // :TODO: Handler support ? - if (ptr) - return ptr; - - // allocation failed - return NULL; -} - -void *operator new[](size_t reportedSize) -{ - if (reportedSize == 0) - reportedSize = 1; - void *ptr = Mem_Allocator(g_Mem_CurrentFilename, g_Mem_CurrentLine, g_Mem_CurrentFunc, m_alloc_new_array, reportedSize); - // :TODO: Handler support ? - if (ptr) - return ptr; - - // allocation failed - return NULL; -} - -// Microsoft memory tracking operators -void *operator new(size_t reportedSize, const char *sourceFile, int sourceLine) -{ - if (reportedSize == 0) - reportedSize = 1; - void *ptr = Mem_Allocator(g_Mem_CurrentFilename, g_Mem_CurrentLine, g_Mem_CurrentFunc, m_alloc_new, reportedSize); - // :TODO: Handler support ? - if (ptr) - return ptr; - - // allocation failed - return NULL; -} -void *operator new[](size_t reportedSize, const char *sourceFile, int sourceLine) -{ - if (reportedSize == 0) - reportedSize = 1; - void *ptr = Mem_Allocator(g_Mem_CurrentFilename, g_Mem_CurrentLine, g_Mem_CurrentFunc, m_alloc_new_array, reportedSize); - // :TODO: Handler support ? - if (ptr) - return ptr; - - // allocation failed - return NULL; -} - -void operator delete(void *reportedAddress) -{ - if (!reportedAddress) - return; - - Mem_Deallocator(g_Mem_CurrentFilename, g_Mem_CurrentLine, g_Mem_CurrentFunc, m_alloc_delete, reportedAddress); -} - -void operator delete[](void *reportedAddress) -{ - if (!reportedAddress) - return; - - Mem_Deallocator(g_Mem_CurrentFilename, g_Mem_CurrentLine, g_Mem_CurrentFunc, m_alloc_delete_array, reportedAddress); -} - -#else - -#if !defined NO_ALLOC_OVERRIDES && !defined MEMORY_TEST && !defined WIN32 -void * ::operator new(size_t size) { - return(calloc(1, size)); -} - -void * ::operator new[](size_t size) { - return(calloc(1, size)); -} - -void ::operator delete(void * ptr) { - if(ptr) - free(ptr); -} - -void ::operator delete[](void * ptr) { - if(ptr) - free(ptr); -} -#endif - -#endif //MEMORY_TEST - -/************* stuff from dlls/util.cpp *************/ -// must come here because cbase.h declares it's own operator new - -#ifdef USE_METAMOD - -// Selected portions of dlls/util.cpp from SDK 2.1. -// Functions copied from there as needed... -// And modified to avoid buffer overflows (argh). - -/*** -* -* Copyright (c) 1999, 2000 Valve LLC. All rights reserved. -* -* This product contains software technology licensed from Id -* Software, Inc. ("Id Technology"). Id Technology (c) 1996 Id Software, Inc. -* All Rights Reserved. -* -* Use, distribution, and modification of this source code and/or resulting -* object code is restricted to non-commercial enhancements to products from -* Valve LLC. All other use, distribution, or modification is prohibited -* without written permission from Valve LLC. -* -****/ -/* - -===== util.cpp ======================================================== - - Utility code. Really not optional after all. - -*/ - -#include -#include "sdk_util.h" -#include - -#include // for strncpy(), etc - -#include "osdep.h" // win32 vsnprintf, etc - -char* UTIL_VarArgs( char *format, ... ) -{ - va_list argptr; - static char string[1024]; - - va_start (argptr, format); - vsnprintf (string, sizeof(string), format, argptr); - va_end (argptr); - - return string; -} - - -//========================================================= -// UTIL_LogPrintf - Prints a logged message to console. -// Preceded by LOG: ( timestamp ) < message > -//========================================================= -void UTIL_LogPrintf( char *fmt, ... ) -{ - va_list argptr; - static char string[1024]; - - va_start ( argptr, fmt ); - vsnprintf ( string, sizeof(string), fmt, argptr ); - va_end ( argptr ); - - // Print to server console - ALERT( at_logged, "%s", string ); -} - - -void UTIL_HudMessage(CBaseEntity *pEntity, const hudtextparms_t &textparms, - const char *pMessage) -{ - if ( !pEntity ) - return; - - MESSAGE_BEGIN( MSG_ONE, SVC_TEMPENTITY, NULL, ENT(pEntity->pev) ); - WRITE_BYTE( TE_TEXTMESSAGE ); - WRITE_BYTE( textparms.channel & 0xFF ); - - WRITE_SHORT( FixedSigned16( textparms.x, 1<<13 ) ); - WRITE_SHORT( FixedSigned16( textparms.y, 1<<13 ) ); - WRITE_BYTE( textparms.effect ); - - WRITE_BYTE( textparms.r1 ); - WRITE_BYTE( textparms.g1 ); - WRITE_BYTE( textparms.b1 ); - WRITE_BYTE( textparms.a1 ); - - WRITE_BYTE( textparms.r2 ); - WRITE_BYTE( textparms.g2 ); - WRITE_BYTE( textparms.b2 ); - WRITE_BYTE( textparms.a2 ); - - WRITE_SHORT( FixedUnsigned16( textparms.fadeinTime, 1<<8 ) ); - WRITE_SHORT( FixedUnsigned16( textparms.fadeoutTime, 1<<8 ) ); - WRITE_SHORT( FixedUnsigned16( textparms.holdTime, 1<<8 ) ); - - if ( textparms.effect == 2 ) - WRITE_SHORT( FixedUnsigned16( textparms.fxTime, 1<<8 ) ); - - if ( strlen( pMessage ) < 512 ) - { - WRITE_STRING( pMessage ); - } - else - { - char tmp[512]; - strncpy( tmp, pMessage, 511 ); - tmp[511] = 0; - WRITE_STRING( tmp ); - } - MESSAGE_END(); -} - -short FixedSigned16( float value, float scale ) -{ - int output; - - output = (int) (value * scale); - - if ( output > 32767 ) - output = 32767; - - if ( output < -32768 ) - output = -32768; - - return (short)output; -} - -unsigned short FixedUnsigned16( float value, float scale ) -{ - int output; - - output = (int) (value * scale); - if ( output < 0 ) - output = 0; - if ( output > 0xFFFF ) - output = 0xFFFF; - - return (unsigned short)output; -} -#endif // USE_METAMOD diff --git a/dlls/MemHack/amxxmodule.h b/dlls/MemHack/amxxmodule.h deleted file mode 100644 index 0a000d20..00000000 --- a/dlls/MemHack/amxxmodule.h +++ /dev/null @@ -1,2241 +0,0 @@ -/* - * AMX Mod X Module Interface Functions - * This file may be freely used -*/ - -// prevent double include -#ifndef __AMXXMODULE_H__ -#define __AMXXMODULE_H__ - -// config -#include "moduleconfig.h" - -// metamod include files -#ifdef USE_METAMOD -#include -#include -#include "osdep.h" -#endif // #ifdef USE_METAMOD - -// DLL Export -#undef DLLEXPORT -#ifndef __linux__ -#define DLLEXPORT __declspec(dllexport) -#else -#define DLLEXPORT -#define LINUX -#endif - -#undef C_DLLEXPORT -#define C_DLLEXPORT extern "C" DLLEXPORT - -// ***** AMXX stuff ***** - -// module interface version was 1 -// 2 - added logtag to struct (amxx1.1-rc1) -// 3 - added new tagAMX structure (amxx1.5) -#define AMXX_INTERFACE_VERSION 3 - -// amxx module info -struct amxx_module_info_s -{ - const char *name; - const char *author; - const char *version; - int reload; // reload on mapchange when nonzero - const char *logtag; // added in version 2 -}; - -// return values from functions called by amxx -#define AMXX_OK 0 /* no error */ -#define AMXX_IFVERS 1 /* interface version */ -#define AMXX_PARAM 2 /* Invalid parameter */ -#define AMXX_FUNC_NOT_PRESENT 3 /* Function not present */ - -// *** Small stuff *** -// The next section is copied from the amx.h file -// Copyright (c) ITB CompuPhase, 1997-2005 - -#if defined HAVE_STDINT_H - #include -#else - #if defined __LCC__ || defined __DMC__ || defined LINUX - #if defined HAVE_INTTYPES_H - #include - #else - #include - #endif - #elif !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L - /* The ISO C99 defines the int16_t and int_32t types. If the compiler got - * here, these types are probably undefined. - */ - #if defined __MACH__ - #include - typedef unsigned short int uint16_t; - typedef unsigned long int uint32_t; - #elif defined __FreeBSD__ - #include - #else - typedef short int int16_t; - typedef unsigned short int uint16_t; - #if defined SN_TARGET_PS2 - typedef int int32_t; - typedef unsigned int uint32_t; - #else - typedef long int int32_t; - typedef unsigned long int uint32_t; - #endif - #if defined __WIN32__ || defined _WIN32 || defined WIN32 - typedef __int64 int64_t; - typedef unsigned __int64 uint64_t; - #define HAVE_I64 - #elif defined __GNUC__ - typedef long long int64_t; - typedef unsigned long long uint64_t; - #define HAVE_I64 - #endif - #endif - #endif - #define HAVE_STDINT_H -#endif -#if defined _LP64 || defined WIN64 || defined _WIN64 - #if !defined __64BIT__ - #define __64BIT__ - #endif -#endif - -/* calling convention for native functions */ -#if !defined AMX_NATIVE_CALL - #define AMX_NATIVE_CALL -#endif -/* calling convention for all interface functions and callback functions */ -#if !defined AMXAPI - #if defined STDECL - #define AMXAPI __stdcall - #elif defined CDECL - #define AMXAPI __cdecl - #else - #define AMXAPI - #endif -#endif -#if !defined AMXEXPORT - #define AMXEXPORT -#endif - -#if !defined PAWN_CELL_SIZE - #define PAWN_CELL_SIZE 32 /* by default, use 32-bit cells */ -#endif -#if PAWN_CELL_SIZE==16 - typedef uint16_t ucell; - typedef int16_t cell; -#elif PAWN_CELL_SIZE==32 - typedef uint32_t ucell; - typedef int32_t cell; -#define REAL float -#elif PAWN_CELL_SIZE==64 - typedef uint64_t ucell; - typedef int64_t cell; -#define REAL double -#else - #error Unsupported cell size (PAWN_CELL_SIZE) -#endif - -#define UNPACKEDMAX ((1 << (sizeof(cell)-1)*8) - 1) -#define UNLIMITED (~1u >> 1) - -struct tagAMX; -typedef cell (AMX_NATIVE_CALL *AMX_NATIVE)(struct tagAMX *amx, cell *params); -typedef int (AMXAPI *AMX_CALLBACK)(struct tagAMX *amx, cell index, - cell *result, cell *params); -typedef int (AMXAPI *AMX_DEBUG)(struct tagAMX *amx); -#if !defined _FAR - #define _FAR -#endif - -#if defined _MSC_VER - #pragma warning(disable:4103) /* disable warning message 4103 that complains - * about pragma pack in a header file */ - #pragma warning(disable:4100) /* "'%$S' : unreferenced formal parameter" */ -#endif - - -/* Some compilers do not support the #pragma align, which should be fine. Some - * compilers give a warning on unknown #pragmas, which is not so fine... - */ -#if (defined SN_TARGET_PS2 || defined __GNUC__) && !defined AMX_NO_ALIGN - #define AMX_NO_ALIGN -#endif - -#if defined __GNUC__ - #define PACKED __attribute__((packed)) -#else - #define PACKED -#endif - -#if !defined AMX_NO_ALIGN - #if defined LINUX || defined __FreeBSD__ - #pragma pack(1) /* structures must be packed (byte-aligned) */ - #elif defined MACOS && defined __MWERKS__ - #pragma options align=mac68k - #else - #pragma pack(push) - #pragma pack(1) /* structures must be packed (byte-aligned) */ - #if defined __TURBOC__ - #pragma option -a- /* "pack" pragma for older Borland compilers */ - #endif - #endif -#endif - -typedef struct { - const char _FAR *name PACKED; - AMX_NATIVE func PACKED; -} AMX_NATIVE_INFO; - -#define AMX_USERNUM 4 - -/* The AMX structure is the internal structure for many functions. Not all - * fields are valid at all times; many fields are cached in local variables. - */ -typedef struct tagAMX { - unsigned char _FAR *base PACKED; /* points to the AMX header plus the code, optionally also the data */ - unsigned char _FAR *data PACKED; /* points to separate data+stack+heap, may be NULL */ - AMX_CALLBACK callback PACKED; - AMX_DEBUG debug PACKED; /* debug callback */ - /* for external functions a few registers must be accessible from the outside */ - cell cip PACKED; /* instruction pointer: relative to base + amxhdr->cod */ - cell frm PACKED; /* stack frame base: relative to base + amxhdr->dat */ - cell hea PACKED; /* top of the heap: relative to base + amxhdr->dat */ - cell hlw PACKED; /* bottom of the heap: relative to base + amxhdr->dat */ - cell stk PACKED; /* stack pointer: relative to base + amxhdr->dat */ - cell stp PACKED; /* top of the stack: relative to base + amxhdr->dat */ - int flags PACKED; /* current status, see amx_Flags() */ - /* user data */ - long usertags[AMX_USERNUM] PACKED; - //okay userdata[3] in AMX Mod X is for the CPlugin * pointer - //we're also gonna set userdata[2] to a special debug structure - void _FAR *userdata[AMX_USERNUM] PACKED; - /* native functions can raise an error */ - int error PACKED; - /* passing parameters requires a "count" field */ - int paramcount; - /* the sleep opcode needs to store the full AMX status */ - cell pri PACKED; - cell alt PACKED; - cell reset_stk PACKED; - cell reset_hea PACKED; - cell sysreq_d PACKED; /* relocated address/value for the SYSREQ.D opcode */ - /* support variables for the JIT */ - int reloc_size PACKED; /* required temporary buffer for relocations */ - long code_size PACKED; /* estimated memory footprint of the native code */ -} PACKED AMX; - -enum { - AMX_ERR_NONE, - /* reserve the first 15 error codes for exit codes of the abstract machine */ - AMX_ERR_EXIT, /* forced exit */ - AMX_ERR_ASSERT, /* assertion failed */ - AMX_ERR_STACKERR, /* stack/heap collision */ - AMX_ERR_BOUNDS, /* index out of bounds */ - AMX_ERR_MEMACCESS, /* invalid memory access */ - AMX_ERR_INVINSTR, /* invalid instruction */ - AMX_ERR_STACKLOW, /* stack underflow */ - AMX_ERR_HEAPLOW, /* heap underflow */ - AMX_ERR_CALLBACK, /* no callback, or invalid callback */ - AMX_ERR_NATIVE, /* native function failed */ - AMX_ERR_DIVIDE, /* divide by zero */ - AMX_ERR_SLEEP, /* go into sleepmode - code can be restarted */ - AMX_ERR_INVSTATE, /* invalid state for this access */ - - AMX_ERR_MEMORY = 16, /* out of memory */ - AMX_ERR_FORMAT, /* invalid file format */ - AMX_ERR_VERSION, /* file is for a newer version of the AMX */ - AMX_ERR_NOTFOUND, /* function not found */ - AMX_ERR_INDEX, /* invalid index parameter (bad entry point) */ - AMX_ERR_DEBUG, /* debugger cannot run */ - AMX_ERR_INIT, /* AMX not initialized (or doubly initialized) */ - AMX_ERR_USERDATA, /* unable to set user data field (table full) */ - AMX_ERR_INIT_JIT, /* cannot initialize the JIT */ - AMX_ERR_PARAMS, /* parameter error */ - AMX_ERR_DOMAIN, /* domain error, expression result does not fit in range */ -}; - -#if !defined AMX_NO_ALIGN - #if defined __linux__ - #pragma pack() /* reset default packing */ - #else - #pragma pack(pop) /* reset previous packing */ - #endif -#endif - - -// ***** declare functions ***** - -#ifdef USE_METAMOD -void UTIL_LogPrintf( char *fmt, ... ); -void UTIL_HudMessage(CBaseEntity *pEntity, const hudtextparms_t &textparms, const char *pMessage); -short FixedSigned16( float value, float scale ); -unsigned short FixedUnsigned16( float value, float scale ); - -#ifdef FN_META_QUERY -void FN_META_QUERY(void); -#endif // FN_META_QUERY - -#ifdef FN_META_ATTACH -void FN_META_ATTACH(void); -#endif // FN_META_ATTACH - -#ifdef FN_META_DETACH -void FN_META_DETACH(void); -#endif // FN_META_DETACH - - - - - -#ifdef FN_GameDLLInit -void FN_GameDLLInit(void); -#endif // FN_GameDLLInit - -#ifdef FN_DispatchSpawn -int FN_DispatchSpawn(edict_t *pent); -#endif // FN_DispatchSpawn - -#ifdef FN_DispatchThink -void FN_DispatchThink(edict_t *pent); -#endif // FN_DispatchThink - -#ifdef FN_DispatchUse -void FN_DispatchUse(edict_t *pentUser, edict_t *pentOther); -#endif // FN_DispatchUse - -#ifdef FN_DispatchTouch -void FN_DispatchTouch(edict_t *pentTouched, edict_t *pentOther); -#endif // FN_DispatchTouch - -#ifdef FN_DispatchBlocked -void FN_DispatchBlocked(edict_t *pentBlocked, edict_t *pentOther); -#endif // FN_DispatchBlocked - -#ifdef FN_DispatchKeyValue -void FN_DispatchKeyValue(edict_t *pentKeyvalue, KeyValueData *pkvd); -#endif // FN_DispatchKeyValue - -#ifdef FN_DispatchSave -void FN_DispatchSave(edict_t *pent, SAVERESTOREDATA *pSaveData); -#endif // FN_DispatchSave - -#ifdef FN_DispatchRestore -int FN_DispatchRestore(edict_t *pent, SAVERESTOREDATA *pSaveData, int globalEntity); -#endif // FN_DispatchRestore - -#ifdef FN_DispatchObjectCollsionBox -void FN_DispatchObjectCollsionBox(edict_t *pent); -#endif // FN_DispatchObjectCollsionBox - -#ifdef FN_SaveWriteFields -void FN_SaveWriteFields(SAVERESTOREDATA *pSaveData, const char *pname, void *pBaseData, TYPEDESCRIPTION *pFields, int fieldCount); -#endif // FN_SaveWriteFields - -#ifdef FN_SaveReadFields -void FN_SaveReadFields(SAVERESTOREDATA *pSaveData, const char *pname, void *pBaseData, TYPEDESCRIPTION *pFields, int fieldCount); -#endif // FN_SaveReadFields - -#ifdef FN_SaveGlobalState -void FN_SaveGlobalState(SAVERESTOREDATA *pSaveData); -#endif // FN_SaveGlobalState - -#ifdef FN_RestoreGlobalState -void FN_RestoreGlobalState(SAVERESTOREDATA *pSaveData); -#endif // FN_RestoreGlobalState - -#ifdef FN_ResetGlobalState -void FN_ResetGlobalState(void); -#endif // FN_ResetGlobalState - -#ifdef FN_ClientConnect -BOOL FN_ClientConnect(edict_t *pEntity, const char *pszName, const char *pszAddress, char szRejectReason[ 128 ]); -#endif // FN_ClientConnect - -#ifdef FN_ClientDisconnect -void FN_ClientDisconnect(edict_t *pEntity); -#endif // FN_ClientDisconnect - -#ifdef FN_ClientKill -void FN_ClientKill(edict_t *pEntity); -#endif // FN_ClientKill - -#ifdef FN_ClientPutInServer -void FN_ClientPutInServer(edict_t *pEntity); -#endif // FN_ClientPutInServer - -#ifdef FN_ClientCommand -void FN_ClientCommand(edict_t *pEntity); -#endif // FN_ClientCommand - -#ifdef FN_ClientUserInfoChanged -void FN_ClientUserInfoChanged(edict_t *pEntity, char *infobuffer); -#endif // FN_ClientUserInfoChanged - -#ifdef FN_ServerActivate -void FN_ServerActivate(edict_t *pEdictList, int edictCount, int clientMax); -#endif // FN_ServerActivate - -#ifdef FN_ServerDeactivate -void FN_ServerDeactivate(void); -#endif // FN_ServerDeactivate - -#ifdef FN_PlayerPreThink -void FN_PlayerPreThink(edict_t *pEntity); -#endif // FN_PlayerPreThink - -#ifdef FN_PlayerPostThink -void FN_PlayerPostThink(edict_t *pEntity); -#endif // FN_PlayerPostThink - -#ifdef FN_StartFrame -void FN_StartFrame(void); -#endif // FN_StartFrame - -#ifdef FN_ParmsNewLevel -void FN_ParmsNewLevel(void); -#endif // FN_ParmsNewLevel - -#ifdef FN_ParmsChangeLevel -void FN_ParmsChangeLevel(void); -#endif // FN_ParmsChangeLevel - -#ifdef FN_GetGameDescription -const char *FN_GetGameDescription(void); -#endif // FN_GetGameDescription - -#ifdef FN_PlayerCustomization -void FN_PlayerCustomization(edict_t *pEntity, customization_t *pCust); -#endif // FN_PlayerCustomization - -#ifdef FN_SpectatorConnect -void FN_SpectatorConnect(edict_t *pEntity); -#endif // FN_SpectatorConnect - -#ifdef FN_SpectatorDisconnect -void FN_SpectatorDisconnect(edict_t *pEntity); -#endif // FN_SpectatorDisconnect - -#ifdef FN_SpectatorThink -void FN_SpectatorThink(edict_t *pEntity); -#endif // FN_SpectatorThink - -#ifdef FN_Sys_Error -void FN_Sys_Error(const char *error_string); -#endif // FN_Sys_Error - -#ifdef FN_PM_Move -void FN_PM_Move(struct playermove_s *ppmove, int server); -#endif // FN_PM_Move - -#ifdef FN_PM_Init -void FN_PM_Init(struct playermove_s *ppmove); -#endif // FN_PM_Init - -#ifdef FN_PM_FindTextureType -char FN_PM_FindTextureType(char *name); -#endif // FN_PM_FindTextureType - -#ifdef FN_SetupVisibility -void FN_SetupVisibility(edict_t *pViewEntity, edict_t *pClient, unsigned char **pvs, unsigned char **pas); -#endif // FN_SetupVisibility - -#ifdef FN_UpdateClientData -void FN_UpdateClientData(const struct edict_s *ent, int sendweapons, struct clientdata_s *cd); -#endif // FN_UpdateClientData - -#ifdef FN_AddToFullPack -int FN_AddToFullPack(struct entity_state_s *state, int e, edict_t *ent, edict_t *host, int hostflags, int player, unsigned char *pSet); -#endif // FN_AddToFullPack - -#ifdef FN_CreateBaseline -void FN_CreateBaseline(int player, int eindex, struct entity_state_s *baseline, struct edict_s *entity, int playermodelindex, vec3_t player_mins, vec3_t player_maxs); -#endif // FN_CreateBaseline - -#ifdef FN_RegisterEncoders -void FN_RegisterEncoders(void); -#endif // FN_RegisterEncoders - -#ifdef FN_GetWeaponData -int FN_GetWeaponData(struct edict_s *player, struct weapon_data_s *info); -#endif // FN_GetWeaponData - -#ifdef FN_CmdStart -void FN_CmdStart(const edict_t *player, const struct usercmd_s *cmd, unsigned int random_seed); -#endif // FN_CmdStart - -#ifdef FN_CmdEnd -void FN_CmdEnd(const edict_t *player); -#endif // FN_CmdEnd - -#ifdef FN_ConnectionlessPacket -int FN_ConnectionlessPacket(const struct netadr_s *net_from, const char *args, char *response_buffer, int *response_buffer_size); -#endif // FN_ConnectionlessPacket - -#ifdef FN_GetHullBounds -int FN_GetHullBounds(int hullnumber, float *mins, float *maxs); -#endif // FN_GetHullBounds - -#ifdef FN_CreateInstancedBaselines -void FN_CreateInstancedBaselines(void); -#endif // FN_CreateInstancedBaselines - -#ifdef FN_InconsistentFile -int FN_InconsistentFile(const edict_t *player, const char *filename, char *disconnect_message); -#endif // FN_InconsistentFile - -#ifdef FN_AllowLagCompensation -int FN_AllowLagCompensation(void); -#endif // FN_AllowLagCompensation - - - - -#ifdef FN_GameDLLInit_Post -void FN_GameDLLInit_Post(void); -#endif // FN_GameDLLInit_Post - -#ifdef FN_DispatchSpawn_Post -int FN_DispatchSpawn_Post(edict_t *pent); -#endif // FN_DispatchSpawn_Post - -#ifdef FN_DispatchThink_Post -void FN_DispatchThink_Post(edict_t *pent); -#endif // FN_DispatchThink_Post - -#ifdef FN_DispatchUse_Post -void FN_DispatchUse_Post(edict_t *pentUser, edict_t *pentOther); -#endif // FN_DispatchUse_Post - -#ifdef FN_DispatchTouch_Post -void FN_DispatchTouch_Post(edict_t *pentTouched, edict_t *pentOther); -#endif // FN_DispatchTouch_Post - -#ifdef FN_DispatchBlocked_Post -void FN_DispatchBlocked_Post(edict_t *pentBlocked, edict_t *pentOther); -#endif // FN_DispatchBlocked_Post - -#ifdef FN_DispatchKeyValue_Post -void FN_DispatchKeyValue_Post(edict_t *pentKeyvalue, KeyValueData *pkvd); -#endif // FN_DispatchKeyValue_Post - -#ifdef FN_DispatchSave_Post -void FN_DispatchSave_Post(edict_t *pent, SAVERESTOREDATA *pSaveData); -#endif // FN_DispatchSave_Post - -#ifdef FN_DispatchRestore_Post -int FN_DispatchRestore_Post(edict_t *pent, SAVERESTOREDATA *pSaveData, int globalEntity); -#endif // FN_DispatchRestore_Post - -#ifdef FN_DispatchObjectCollsionBox_Post -void FN_DispatchObjectCollsionBox_Post(edict_t *pent); -#endif // FN_DispatchObjectCollsionBox_Post - -#ifdef FN_SaveWriteFields_Post -void FN_SaveWriteFields_Post(SAVERESTOREDATA *pSaveData, const char *pname, void *pBaseData, TYPEDESCRIPTION *pFields, int fieldCount); -#endif // FN_SaveWriteFields_Post - -#ifdef FN_SaveReadFields_Post -void FN_SaveReadFields_Post(SAVERESTOREDATA *pSaveData, const char *pname, void *pBaseData, TYPEDESCRIPTION *pFields, int fieldCount); -#endif // FN_SaveReadFields_Post - -#ifdef FN_SaveGlobalState_Post -void FN_SaveGlobalState_Post(SAVERESTOREDATA *pSaveData); -#endif // FN_SaveGlobalState_Post - -#ifdef FN_RestoreGlobalState_Post -void FN_RestoreGlobalState_Post(SAVERESTOREDATA *pSaveData); -#endif // FN_RestoreGlobalState_Post - -#ifdef FN_ResetGlobalState_Post -void FN_ResetGlobalState_Post(void); -#endif // FN_ResetGlobalState_Post - -#ifdef FN_ClientConnect_Post -BOOL FN_ClientConnect_Post(edict_t *pEntity, const char *pszName, const char *pszAddress, char szRejectReason[ 128 ]); -#endif // FN_ClientConnect_Post - -#ifdef FN_ClientDisconnect_Post -void FN_ClientDisconnect_Post(edict_t *pEntity); -#endif // FN_ClientDisconnect_Post - -#ifdef FN_ClientKill_Post -void FN_ClientKill_Post(edict_t *pEntity); -#endif // FN_ClientKill_Post - -#ifdef FN_ClientPutInServer_Post -void FN_ClientPutInServer_Post(edict_t *pEntity); -#endif // FN_ClientPutInServer_Post - -#ifdef FN_ClientCommand_Post -void FN_ClientCommand_Post(edict_t *pEntity); -#endif // FN_ClientCommand_Post - -#ifdef FN_ClientUserInfoChanged_Post -void FN_ClientUserInfoChanged_Post(edict_t *pEntity, char *infobuffer); -#endif // FN_ClientUserInfoChanged_Post - -#ifdef FN_ServerActivate_Post -void FN_ServerActivate_Post(edict_t *pEdictList, int edictCount, int clientMax); -#endif // FN_ServerActivate_Post - -#ifdef FN_ServerDeactivate_Post -void FN_ServerDeactivate_Post(void); -#endif // FN_ServerDeactivate_Post - -#ifdef FN_PlayerPreThink_Post -void FN_PlayerPreThink_Post(edict_t *pEntity); -#endif // FN_PlayerPreThink_Post - -#ifdef FN_PlayerPostThink_Post -void FN_PlayerPostThink_Post(edict_t *pEntity); -#endif // FN_PlayerPostThink_Post - -#ifdef FN_StartFrame_Post -void FN_StartFrame_Post(void); -#endif // FN_StartFrame_Post - -#ifdef FN_ParmsNewLevel_Post -void FN_ParmsNewLevel_Post(void); -#endif // FN_ParmsNewLevel_Post - -#ifdef FN_ParmsChangeLevel_Post -void FN_ParmsChangeLevel_Post(void); -#endif // FN_ParmsChangeLevel_Post - -#ifdef FN_GetGameDescription_Post -const char *FN_GetGameDescription_Post(void); -#endif // FN_GetGameDescription_Post - -#ifdef FN_PlayerCustomization_Post -void FN_PlayerCustomization_Post(edict_t *pEntity, customization_t *pCust); -#endif // FN_PlayerCustomization_Post - -#ifdef FN_SpectatorConnect_Post -void FN_SpectatorConnect_Post(edict_t *pEntity); -#endif // FN_SpectatorConnect_Post - -#ifdef FN_SpectatorDisconnect_Post -void FN_SpectatorDisconnect_Post(edict_t *pEntity); -#endif // FN_SpectatorDisconnect_Post - -#ifdef FN_SpectatorThink_Post -void FN_SpectatorThink_Post(edict_t *pEntity); -#endif // FN_SpectatorThink_Post - -#ifdef FN_Sys_Error_Post -void FN_Sys_Error_Post(const char *error_string); -#endif // FN_Sys_Error_Post - -#ifdef FN_PM_Move_Post -void FN_PM_Move_Post(struct playermove_s *ppmove, int server); -#endif // FN_PM_Move_Post - -#ifdef FN_PM_Init_Post -void FN_PM_Init_Post(struct playermove_s *ppmove); -#endif // FN_PM_Init_Post - -#ifdef FN_PM_FindTextureType_Post -char FN_PM_FindTextureType_Post(char *name); -#endif // FN_PM_FindTextureType_Post - -#ifdef FN_SetupVisibility_Post -void FN_SetupVisibility_Post(edict_t *pViewEntity, edict_t *pClient, unsigned char **pvs, unsigned char **pas); -#endif // FN_SetupVisibility_Post - -#ifdef FN_UpdateClientData_Post -void FN_UpdateClientData_Post(const struct edict_s *ent, int sendweapons, struct clientdata_s *cd); -#endif // FN_UpdateClientData_Post - -#ifdef FN_AddToFullPack_Post -int FN_AddToFullPack_Post(struct entity_state_s *state, int e, edict_t *ent, edict_t *host, int hostflags, int player, unsigned char *pSet); -#endif // FN_AddToFullPack_Post - -#ifdef FN_CreateBaseline_Post -void FN_CreateBaseline_Post(int player, int eindex, struct entity_state_s *baseline, struct edict_s *entity, int playermodelindex, vec3_t player_mins, vec3_t player_maxs); -#endif // FN_CreateBaseline_Post - -#ifdef FN_RegisterEncoders_Post -void FN_RegisterEncoders_Post(void); -#endif // FN_RegisterEncoders_Post - -#ifdef FN_GetWeaponData_Post -int FN_GetWeaponData_Post(struct edict_s *player, struct weapon_data_s *info); -#endif // FN_GetWeaponData_Post - -#ifdef FN_CmdStart_Post -void FN_CmdStart_Post(const edict_t *player, const struct usercmd_s *cmd, unsigned int random_seed); -#endif // FN_CmdStart_Post - -#ifdef FN_CmdEnd_Post -void FN_CmdEnd_Post(const edict_t *player); -#endif // FN_CmdEnd_Post - -#ifdef FN_ConnectionlessPacket_Post -int FN_ConnectionlessPacket_Post(const struct netadr_s *net_from, const char *args, char *response_buffer, int *response_buffer_size); -#endif // FN_ConnectionlessPacket_Post - -#ifdef FN_GetHullBounds_Post -int FN_GetHullBounds_Post(int hullnumber, float *mins, float *maxs); -#endif // FN_GetHullBounds_Post - -#ifdef FN_CreateInstancedBaselines_Post -void FN_CreateInstancedBaselines_Post(void); -#endif // FN_CreateInstancedBaselines_Post - -#ifdef FN_InconsistentFile_Post -int FN_InconsistentFile_Post(const edict_t *player, const char *filename, char *disconnect_message); -#endif // FN_InconsistentFile_Post - -#ifdef FN_AllowLagCompensation_Post -int FN_AllowLagCompensation_Post(void); -#endif // FN_AllowLagCompensation_Post - - - -#ifdef FN_PrecacheModel -int FN_PrecacheModel(char *s); -#endif // FN_PrecacheModel - -#ifdef FN_PrecacheSound -int FN_PrecacheSound(char *s); -#endif // FN_PrecacheSound - -#ifdef FN_SetModel -void FN_SetModel(edict_t *e, const char *m); -#endif // FN_SetModel - -#ifdef FN_ModelIndex -int FN_ModelIndex(const char *m); -#endif // FN_ModelIndex - -#ifdef FN_ModelFrames -int FN_ModelFrames(int modelIndex); -#endif // FN_ModelFrames - -#ifdef FN_SetSize -void FN_SetSize(edict_t *e, const float *rgflMin, const float *rgflMax); -#endif // FN_SetSize - -#ifdef FN_ChangeLevel -void FN_ChangeLevel(char *s1, char *s2); -#endif // FN_ChangeLevel - -#ifdef FN_GetSpawnParms -void FN_GetSpawnParms(edict_t *ent); -#endif // FN_GetSpawnParms - -#ifdef FN_SaveSpawnParms -void FN_SaveSpawnParms(edict_t *ent); -#endif // FN_SaveSpawnParms - -#ifdef FN_VecToYaw -float FN_VecToYaw(const float *rgflVector); -#endif // FN_VecToYaw - -#ifdef FN_VecToAngles -void FN_VecToAngles(const float *rgflVectorIn, float *rgflVectorOut); -#endif // FN_VecToAngles - -#ifdef FN_MoveToOrigin -void FN_MoveToOrigin(edict_t *ent, const float *pflGoal, float dist, int iMoveType); -#endif // FN_MoveToOrigin - -#ifdef FN_ChangeYaw -void FN_ChangeYaw(edict_t *ent); -#endif // FN_ChangeYaw - -#ifdef FN_ChangePitch -void FN_ChangePitch(edict_t *ent); -#endif // FN_ChangePitch - -#ifdef FN_FindEntityByString -edict_t *FN_FindEntityByString(edict_t *pEdictStartSearchAfter, const char *pszField, const char *pszValue); -#endif // FN_FindEntityByString - -#ifdef FN_GetEntityIllum -int FN_GetEntityIllum(edict_t *pEnt); -#endif // FN_GetEntityIllum - -#ifdef FN_FindEntityInSphere -edict_t *FN_FindEntityInSphere(edict_t *pEdictStartSearchAfter, const float *org, float rad); -#endif // FN_FindEntityInSphere - -#ifdef FN_FindClientInPVS -edict_t *FN_FindClientInPVS(edict_t *pEdict); -#endif // FN_FindClientInPVS - -#ifdef FN_EntitiesInPVS -edict_t *FN_EntitiesInPVS(edict_t *pplayer); -#endif // FN_EntitiesInPVS - -#ifdef FN_MakeVectors -void FN_MakeVectors(const float *rgflVector); -#endif // FN_MakeVectors - -#ifdef FN_AngleVectors -void FN_AngleVectors(const float *rgflVector, float *forward, float *right, float *up); -#endif // FN_AngleVectors - -#ifdef FN_CreateEntity -edict_t *FN_CreateEntity(void); -#endif // FN_CreateEntity - -#ifdef FN_RemoveEntity -void FN_RemoveEntity(edict_t *e); -#endif // FN_RemoveEntity - -#ifdef FN_CreateNamedEntity -edict_t *FN_CreateNamedEntity(int className); -#endif // FN_CreateNamedEntity - -#ifdef FN_MakeStatic -void FN_MakeStatic(edict_t *ent); -#endif // FN_MakeStatic - -#ifdef FN_EntIsOnFloor -int FN_EntIsOnFloor(edict_t *ent); -#endif // FN_EntIsOnFloor - -#ifdef FN_DropToFloor -int FN_DropToFloor(edict_t *ent); -#endif // FN_DropToFloor - -#ifdef FN_WalkMove -int FN_WalkMove(edict_t *ent, float yaw, float dist, int iMode); -#endif // FN_WalkMove - -#ifdef FN_SetOrigin -void FN_SetOrigin(edict_t *e, const float *rgflOrigin); -#endif // FN_SetOrigin - -#ifdef FN_EmitSound -void FN_EmitSound(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch); -#endif // FN_EmitSound - -#ifdef FN_EmitAmbientSound -void FN_EmitAmbientSound(edict_t *entity, float *pos, const char *samp, float vol, float attenuation, int fFlags, int pitch); -#endif // FN_EmitAmbientSound - -#ifdef FN_TraceLine -void FN_TraceLine(const float *v1, const float *v2, int fNoMonsters, edict_t *pentToSkip, TraceResult *ptr); -#endif // FN_TraceLine - -#ifdef FN_TraceToss -void FN_TraceToss(edict_t *pent, edict_t *pentToIgnore, TraceResult *ptr); -#endif // FN_TraceToss - -#ifdef FN_TraceMonsterHull -int FN_TraceMonsterHull(edict_t *pEdict, const float *v1, const float *v2, int fNoMonsters, edict_t *pentToSkip, TraceResult *ptr); -#endif // FN_TraceMonsterHull - -#ifdef FN_TraceHull -void FN_TraceHull(const float *v1, const float *v2, int fNoMonsters, int hullNumber, edict_t *pentToSkip, TraceResult *ptr); -#endif // FN_TraceHull - -#ifdef FN_TraceModel -void FN_TraceModel(const float *v1, const float *v2, int hullNumber, edict_t *pent, TraceResult *ptr); -#endif // FN_TraceModel - -#ifdef FN_TraceTexture -const char *FN_TraceTexture(edict_t *pTextureEntity, const float *v1, const float *v2 ); -#endif // FN_TraceTexture - -#ifdef FN_TraceSphere -void FN_TraceSphere(const float *v1, const float *v2, int fNoMonsters, float radius, edict_t *pentToSkip, TraceResult *ptr); -#endif // FN_TraceSphere - -#ifdef FN_GetAimVector -void FN_GetAimVector(edict_t *ent, float speed, float *rgflReturn); -#endif // FN_GetAimVector - -#ifdef FN_ServerCommand -void FN_ServerCommand(char *str); -#endif // FN_ServerCommand - -#ifdef FN_ServerExecute -void FN_ServerExecute(void); -#endif // FN_ServerExecute - -#ifdef FN_engClientCommand -void FN_engClientCommand(edict_t *pEdict, char *szFmt, ...); -#endif // FN_engClientCommand - -#ifdef FN_ParticleEffect -void FN_ParticleEffect(const float *org, const float *dir, float color, float count); -#endif // FN_ParticleEffect - -#ifdef FN_LightStyle -void FN_LightStyle(int style, char *val); -#endif // FN_LightStyle - -#ifdef FN_DecalIndex -int FN_DecalIndex(const char *name); -#endif // FN_DecalIndex - -#ifdef FN_PointContents -int FN_PointContents(const float *rgflVector); -#endif // FN_PointContents - -#ifdef FN_MessageBegin -void FN_MessageBegin(int msg_dest, int msg_type, const float *pOrigin, edict_t *ed); -#endif // FN_MessageBegin - -#ifdef FN_MessageEnd -void FN_MessageEnd(void); -#endif // FN_MessageEnd - -#ifdef FN_WriteByte -void FN_WriteByte(int iValue); -#endif // FN_WriteByte - -#ifdef FN_WriteChar -void FN_WriteChar(int iValue); -#endif // FN_WriteChar - -#ifdef FN_WriteShort -void FN_WriteShort(int iValue); -#endif // FN_WriteShort - -#ifdef FN_WriteLong -void FN_WriteLong(int iValue); -#endif // FN_WriteLong - -#ifdef FN_WriteAngle -void FN_WriteAngle(float flValue); -#endif // FN_WriteAngle - -#ifdef FN_WriteCoord -void FN_WriteCoord(float flValue); -#endif // FN_WriteCoord - -#ifdef FN_WriteString -void FN_WriteString(const char *sz); -#endif // FN_WriteString - -#ifdef FN_WriteEntity -void FN_WriteEntity(int iValue); -#endif // FN_WriteEntity - -#ifdef FN_CVarRegister -void FN_CVarRegister(cvar_t *pCvar); -#endif // FN_CVarRegister - -#ifdef FN_CVarGetFloat -float FN_CVarGetFloat(const char *szVarName); -#endif // FN_CVarGetFloat - -#ifdef FN_CVarGetString -const char *FN_CVarGetString(const char *szVarName); -#endif // FN_CVarGetString - -#ifdef FN_CVarSetFloat -void FN_CVarSetFloat(const char *szVarName, float flValue); -#endif // FN_CVarSetFloat - -#ifdef FN_CVarSetString -void FN_CVarSetString(const char *szVarName, const char *szValue); -#endif // FN_CVarSetString - -#ifdef FN_AlertMessage -void FN_AlertMessage(ALERT_TYPE atype, char *szFmt, ...); -#endif // FN_AlertMessage - -#ifdef FN_EngineFprintf -void FN_EngineFprintf(FILE *pfile, char *szFmt, ...); -#endif // FN_EngineFprintf - -#ifdef FN_PvAllocEntPrivateData -void *FN_PvAllocEntPrivateData(edict_t *pEdict, int32 cb); -#endif // FN_PvAllocEntPrivateData - -#ifdef FN_PvEntPrivateData -void *FN_PvEntPrivateData(edict_t *pEdict); -#endif // FN_PvEntPrivateData - -#ifdef FN_FreeEntPrivateData -void FN_FreeEntPrivateData(edict_t *pEdict); -#endif // FN_FreeEntPrivateData - -#ifdef FN_SzFromIndex -const char *FN_SzFromIndex(int iString); -#endif // FN_SzFromIndex - -#ifdef FN_AllocString -int FN_AllocString(const char *szValue); -#endif // FN_AllocString - -#ifdef FN_GetVarsOfEnt -struct entvars_s *FN_GetVarsOfEnt(edict_t *pEdict); -#endif // FN_GetVarsOfEnt - -#ifdef FN_PEntityOfEntOffset -edict_t *FN_PEntityOfEntOffset(int iEntOffset); -#endif // FN_PEntityOfEntOffset - -#ifdef FN_EntOffsetOfPEntity -int FN_EntOffsetOfPEntity(const edict_t *pEdict); -#endif // FN_EntOffsetOfPEntity - -#ifdef FN_IndexOfEdict -int FN_IndexOfEdict(const edict_t *pEdict); -#endif // FN_IndexOfEdict - -#ifdef FN_PEntityOfEntIndex -edict_t *FN_PEntityOfEntIndex(int iEntIndex); -#endif // FN_PEntityOfEntIndex - -#ifdef FN_FindEntityByVars -edict_t *FN_FindEntityByVars(struct entvars_s *pvars); -#endif // FN_FindEntityByVars - -#ifdef FN_GetModelPtr -void *FN_GetModelPtr(edict_t *pEdict); -#endif // FN_GetModelPtr - -#ifdef FN_RegUserMsg -int FN_RegUserMsg(const char *pszName, int iSize); -#endif // FN_RegUserMsg - -#ifdef FN_AnimationAutomove -void FN_AnimationAutomove(const edict_t *pEdict, float flTime); -#endif // FN_AnimationAutomove - -#ifdef FN_GetBonePosition -void FN_GetBonePosition(const edict_t *pEdict, int iBone, float *rgflOrigin, float *rgflAngles); -#endif // FN_GetBonePosition - -#ifdef FN_FunctionFromName -unsigned long FN_FunctionFromName(const char *pName); -#endif // FN_FunctionFromName - -#ifdef FN_NameForFunction -const char *FN_NameForFunction(unsigned long function); -#endif // FN_NameForFunction - -#ifdef FN_ClientPrintf -void FN_ClientPrintf(edict_t *pEdict, PRINT_TYPE ptype, const char *szMsg); -#endif // FN_ClientPrintf - -#ifdef FN_ServerPrint -void FN_ServerPrint(const char *szMsg); -#endif // FN_ServerPrint - -#ifdef FN_Cmd_Args -const char *FN_Cmd_Args(void); -#endif // FN_Cmd_Args - -#ifdef FN_Cmd_Argv -const char *FN_Cmd_Argv(int argc); -#endif // FN_Cmd_Argv - -#ifdef FN_Cmd_Argc -int FN_Cmd_Argc(void); -#endif // FN_Cmd_Argc - -#ifdef FN_GetAttachment -void FN_GetAttachment(const edict_t *pEdict, int iAttachment, float *rgflOrigin, float *rgflAngles ); -#endif // FN_GetAttachment - -#ifdef FN_CRC32_Init -void FN_CRC32_Init(CRC32_t *pulCRC); -#endif // FN_CRC32_Init - -#ifdef FN_CRC32_ProcessBuffer -void FN_CRC32_ProcessBuffer(CRC32_t *pulCRC, void *p, int len); -#endif // FN_CRC32_ProcessBuffer - -#ifdef FN_CRC32_ProcessByte -void FN_CRC32_ProcessByte(CRC32_t *pulCRC, unsigned char ch); -#endif // FN_CRC32_ProcessByte - -#ifdef FN_CRC32_Final -CRC32_t FN_CRC32_Final(CRC32_t pulCRC); -#endif // FN_CRC32_Final - -#ifdef FN_RandomLong -long FN_RandomLong(long lLow, long lHigh); -#endif // FN_RandomLong - -#ifdef FN_RandomFloat -float FN_RandomFloat(float flLow, float flHigh); -#endif // FN_RandomFloat - -#ifdef FN_SetView -void FN_SetView(const edict_t *pClient, const edict_t *pViewent); -#endif // FN_SetView - -#ifdef FN_Time -float FN_Time(void); -#endif // FN_Time - -#ifdef FN_CrosshairAngle -void FN_CrosshairAngle(const edict_t *pClient, float pitch, float yaw); -#endif // FN_CrosshairAngle - -#ifdef FN_LoadFileForMe -byte *FN_LoadFileForMe(char *filename, int *pLength); -#endif // FN_LoadFileForMe - -#ifdef FN_FreeFile -void FN_FreeFile(void *buffer); -#endif // FN_FreeFile - -#ifdef FN_EndSection -void FN_EndSection(const char *pszSectionName); -#endif // FN_EndSection - -#ifdef FN_CompareFileTime -int FN_CompareFileTime(char *filename1, char *filename2, int *iCompare); -#endif // FN_CompareFileTime - -#ifdef FN_GetGameDir -void FN_GetGameDir(char *szGetGameDir); -#endif // FN_GetGameDir - -#ifdef FN_Cvar_RegisterVariable -void FN_Cvar_RegisterVariable(cvar_t *variable); -#endif // FN_Cvar_RegisterVariable - -#ifdef FN_FadeClientVolume -void FN_FadeClientVolume(const edict_t *pEdict, int fadePercent, int fadeOutSeconds, int holdTime, int fadeInSeconds); -#endif // FN_FadeClientVolume - -#ifdef FN_SetClientMaxspeed -void FN_SetClientMaxspeed(const edict_t *pEdict, float fNewMaxspeed); -#endif // FN_SetClientMaxspeed - -#ifdef FN_CreateFakeClient -edict_t *FN_CreateFakeClient(const char *netname); -#endif // FN_CreateFakeClient - -#ifdef FN_RunPlayerMove -void FN_RunPlayerMove(edict_t *fakeclient, const float *viewangles, float forwardmove, float sidemove, float upmove, unsigned short buttons, byte impulse, byte msec); -#endif // FN_RunPlayerMove - -#ifdef FN_NumberOfEntities -int FN_NumberOfEntities(void); -#endif // FN_NumberOfEntities - -#ifdef FN_GetInfoKeyBuffer -char *FN_GetInfoKeyBuffer(edict_t *e); -#endif // FN_GetInfoKeyBuffer - -#ifdef FN_InfoKeyValue -char *FN_InfoKeyValue(char *infobuffer, char *key); -#endif // FN_InfoKeyValue - -#ifdef FN_SetKeyValue -void FN_SetKeyValue(char *infobuffer, char *key, char *value); -#endif // FN_SetKeyValue - -#ifdef FN_SetClientKeyValue -void FN_SetClientKeyValue(int clientIndex, char *infobuffer, char *key, char *value); -#endif // FN_SetClientKeyValue - -#ifdef FN_IsMapValid -int FN_IsMapValid(char *filename); -#endif // FN_IsMapValid - -#ifdef FN_StaticDecal -void FN_StaticDecal(const float *origin, int decalIndex, int entityIndex, int modelIndex); -#endif // FN_StaticDecal - -#ifdef FN_PrecacheGeneric -int FN_PrecacheGeneric(char *s); -#endif // FN_PrecacheGeneric - -#ifdef FN_GetPlayerUserId -int FN_GetPlayerUserId(edict_t *e ); -#endif // FN_GetPlayerUserId - -#ifdef FN_BuildSoundMsg -void FN_BuildSoundMsg(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed); -#endif // FN_BuildSoundMsg - -#ifdef FN_IsDedicatedServer -int FN_IsDedicatedServer(void); -#endif // FN_IsDedicatedServer - -#ifdef FN_CVarGetPointer -cvar_t *FN_CVarGetPointer(const char *szVarName); -#endif // FN_CVarGetPointer - -#ifdef FN_GetPlayerWONId -unsigned int FN_GetPlayerWONId(edict_t *e); -#endif // FN_GetPlayerWONId - -#ifdef FN_Info_RemoveKey -void FN_Info_RemoveKey( char *s, const char *key); -#endif // FN_Info_RemoveKey - -#ifdef FN_GetPhysicsKeyValue -const char *FN_GetPhysicsKeyValue(const edict_t *pClient, const char *key); -#endif // FN_GetPhysicsKeyValue - -#ifdef FN_SetPhysicsKeyValue -void FN_SetPhysicsKeyValue(const edict_t *pClient, const char *key, const char *value); -#endif // FN_SetPhysicsKeyValue - -#ifdef FN_GetPhysicsInfoString -const char *FN_GetPhysicsInfoString( const edict_t *pClient); -#endif // FN_GetPhysicsInfoString - -#ifdef FN_PrecacheEvent -unsigned short FN_PrecacheEvent(int type, const char *psz); -#endif // FN_PrecacheEvent - -#ifdef FN_PlaybackEvent -void FN_PlaybackEvent(int flags, const edict_t *pInvoker, unsigned short eventindex, float delay, float *origin, float *angles, float fparam1, float fparam2, int iparam1, int iparam2, int bparam1, int bparam2); -#endif // FN_PlaybackEvent - -#ifdef FN_SetFatPVS -unsigned char *FN_SetFatPVS(float *org); -#endif // FN_SetFatPVS - -#ifdef FN_SetFatPAS -unsigned char *FN_SetFatPAS(float *org); -#endif // FN_SetFatPAS - -#ifdef FN_CheckVisibility -int FN_CheckVisibility(const edict_t *entity, unsigned char *pset); -#endif // FN_CheckVisibility - -#ifdef FN_DeltaSetField -void FN_DeltaSetField(struct delta_s *pFields, const char *fieldname); -#endif // FN_DeltaSetField - -#ifdef FN_DeltaUnsetField -void FN_DeltaUnsetField(struct delta_s *pFields, const char *fieldname); -#endif // FN_DeltaUnsetField - -#ifdef FN_DeltaAddEncoder -void FN_DeltaAddEncoder(char *name, void (*conditionalencode)( struct delta_s *pFields, const unsigned char *from, const unsigned char *to ) ); -#endif // FN_DeltaAddEncoder - -#ifdef FN_GetCurrentPlayer -int FN_GetCurrentPlayer(void); -#endif // FN_GetCurrentPlayer - -#ifdef FN_CanSkipPlayer -int FN_CanSkipPlayer(const edict_t *player); -#endif // FN_CanSkipPlayer - -#ifdef FN_DeltaFindField -int FN_DeltaFindField(struct delta_s *pFields, const char *fieldname); -#endif // FN_DeltaFindField - -#ifdef FN_DeltaSetFieldByIndex -void FN_DeltaSetFieldByIndex(struct delta_s *pFields, int fieldNumber); -#endif // FN_DeltaSetFieldByIndex - -#ifdef FN_DeltaUnsetFieldByIndex -void FN_DeltaUnsetFieldByIndex(struct delta_s *pFields, int fieldNumber); -#endif // FN_DeltaUnsetFieldByIndex - -#ifdef FN_SetGroupMask -void FN_SetGroupMask(int mask, int op); -#endif // FN_SetGroupMask - -#ifdef FN_engCreateInstancedBaseline -int FN_engCreateInstancedBaseline(int classname, struct entity_state_s *baseline); -#endif // FN_engCreateInstancedBaseline - -#ifdef FN_Cvar_DirectSet -void FN_Cvar_DirectSet(struct cvar_s *var, char *value); -#endif // FN_Cvar_DirectSet - -#ifdef FN_ForceUnmodified -void FN_ForceUnmodified(FORCE_TYPE type, float *mins, float *maxs, const char *filename); -#endif // FN_ForceUnmodified - -#ifdef FN_GetPlayerStats -void FN_GetPlayerStats(const edict_t *pClient, int *ping, int *packet_loss); -#endif // FN_GetPlayerStats - -#ifdef FN_AddServerCommand -void FN_AddServerCommand(char *cmd_name, void (*function) (void)); -#endif // FN_AddServerCommand - -#ifdef FN_Voice_GetClientListening -qboolean FN_Voice_GetClientListening(int iReceiver, int iSender); -#endif // FN_Voice_GetClientListening - -#ifdef FN_Voice_SetClientListening -qboolean FN_Voice_SetClientListening(int iReceiver, int iSender, qboolean bListen); -#endif // FN_Voice_SetClientListening - -#ifdef FN_GetPlayerAuthId -const char *FN_GetPlayerAuthId(edict_t *e); -#endif // FN_GetPlayerAuthId - - - - - - -#ifdef FN_PrecacheModel_Post -int FN_PrecacheModel_Post(char *s); -#endif // FN_PrecacheModel_Post - -#ifdef FN_PrecacheSound_Post -int FN_PrecacheSound_Post(char *s); -#endif // FN_PrecacheSound_Post - -#ifdef FN_SetModel_Post -void FN_SetModel_Post(edict_t *e, const char *m); -#endif // FN_SetModel_Post - -#ifdef FN_ModelIndex_Post -int FN_ModelIndex_Post(const char *m); -#endif // FN_ModelIndex_Post - -#ifdef FN_ModelFrames_Post -int FN_ModelFrames_Post(int modelIndex); -#endif // FN_ModelFrames_Post - -#ifdef FN_SetSize_Post -void FN_SetSize_Post(edict_t *e, const float *rgflMin, const float *rgflMax); -#endif // FN_SetSize_Post - -#ifdef FN_ChangeLevel_Post -void FN_ChangeLevel_Post(char *s1, char *s2); -#endif // FN_ChangeLevel_Post - -#ifdef FN_GetSpawnParms_Post -void FN_GetSpawnParms_Post(edict_t *ent); -#endif // FN_GetSpawnParms_Post - -#ifdef FN_SaveSpawnParms_Post -void FN_SaveSpawnParms_Post(edict_t *ent); -#endif // FN_SaveSpawnParms_Post - -#ifdef FN_VecToYaw_Post -float FN_VecToYaw_Post(const float *rgflVector); -#endif // FN_VecToYaw_Post - -#ifdef FN_VecToAngles_Post -void FN_VecToAngles_Post(const float *rgflVectorIn, float *rgflVectorOut); -#endif // FN_VecToAngles_Post - -#ifdef FN_MoveToOrigin_Post -void FN_MoveToOrigin_Post(edict_t *ent, const float *pflGoal, float dist, int iMoveType); -#endif // FN_MoveToOrigin_Post - -#ifdef FN_ChangeYaw_Post -void FN_ChangeYaw_Post(edict_t *ent); -#endif // FN_ChangeYaw_Post - -#ifdef FN_ChangePitch_Post -void FN_ChangePitch_Post(edict_t *ent); -#endif // FN_ChangePitch_Post - -#ifdef FN_FindEntityByString_Post -edict_t *FN_FindEntityByString_Post(edict_t *pEdictStartSearchAfter, const char *pszField, const char *pszValue); -#endif // FN_FindEntityByString_Post - -#ifdef FN_GetEntityIllum_Post -int FN_GetEntityIllum_Post(edict_t *pEnt); -#endif // FN_GetEntityIllum_Post - -#ifdef FN_FindEntityInSphere_Post -edict_t *FN_FindEntityInSphere_Post(edict_t *pEdictStartSearchAfter, const float *org, float rad); -#endif // FN_FindEntityInSphere_Post - -#ifdef FN_FindClientInPVS_Post -edict_t *FN_FindClientInPVS_Post(edict_t *pEdict); -#endif // FN_FindClientInPVS_Post - -#ifdef FN_EntitiesInPVS_Post -edict_t *FN_EntitiesInPVS_Post(edict_t *pplayer); -#endif // FN_EntitiesInPVS_Post - -#ifdef FN_MakeVectors_Post -void FN_MakeVectors_Post(const float *rgflVector); -#endif // FN_MakeVectors_Post - -#ifdef FN_AngleVectors_Post -void FN_AngleVectors_Post(const float *rgflVector, float *forward, float *right, float *up); -#endif // FN_AngleVectors_Post - -#ifdef FN_CreateEntity_Post -edict_t *FN_CreateEntity_Post(void); -#endif // FN_CreateEntity_Post - -#ifdef FN_RemoveEntity_Post -void FN_RemoveEntity_Post(edict_t *e); -#endif // FN_RemoveEntity_Post - -#ifdef FN_CreateNamedEntity_Post -edict_t *FN_CreateNamedEntity_Post(int className); -#endif // FN_CreateNamedEntity_Post - -#ifdef FN_MakeStatic_Post -void FN_MakeStatic_Post(edict_t *ent); -#endif // FN_MakeStatic_Post - -#ifdef FN_EntIsOnFloor_Post -int FN_EntIsOnFloor_Post(edict_t *ent); -#endif // FN_EntIsOnFloor_Post - -#ifdef FN_DropToFloor_Post -int FN_DropToFloor_Post(edict_t *ent); -#endif // FN_DropToFloor_Post - -#ifdef FN_WalkMove_Post -int FN_WalkMove_Post(edict_t *ent, float yaw, float dist, int iMode); -#endif // FN_WalkMove_Post - -#ifdef FN_SetOrigin_Post -void FN_SetOrigin_Post(edict_t *e, const float *rgflOrigin); -#endif // FN_SetOrigin_Post - -#ifdef FN_EmitSound_Post -void FN_EmitSound_Post(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch); -#endif // FN_EmitSound_Post - -#ifdef FN_EmitAmbientSound_Post -void FN_EmitAmbientSound_Post(edict_t *entity, float *pos, const char *samp, float vol, float attenuation, int fFlags, int pitch); -#endif // FN_EmitAmbientSound_Post - -#ifdef FN_TraceLine_Post -void FN_TraceLine_Post(const float *v1, const float *v2, int fNoMonsters, edict_t *pentToSkip, TraceResult *ptr); -#endif // FN_TraceLine_Post - -#ifdef FN_TraceToss_Post -void FN_TraceToss_Post(edict_t *pent, edict_t *pentToIgnore, TraceResult *ptr); -#endif // FN_TraceToss_Post - -#ifdef FN_TraceMonsterHull_Post -int FN_TraceMonsterHull_Post(edict_t *pEdict, const float *v1, const float *v2, int fNoMonsters, edict_t *pentToSkip, TraceResult *ptr); -#endif // FN_TraceMonsterHull_Post - -#ifdef FN_TraceHull_Post -void FN_TraceHull_Post(const float *v1, const float *v2, int fNoMonsters, int hullNumber, edict_t *pentToSkip, TraceResult *ptr); -#endif // FN_TraceHull_Post - -#ifdef FN_TraceModel_Post -void FN_TraceModel_Post(const float *v1, const float *v2, int hullNumber, edict_t *pent, TraceResult *ptr); -#endif // FN_TraceModel_Post - -#ifdef FN_TraceTexture_Post -const char *FN_TraceTexture_Post(edict_t *pTextureEntity, const float *v1, const float *v2 ); -#endif // FN_TraceTexture_Post - -#ifdef FN_TraceSphere_Post -void FN_TraceSphere_Post(const float *v1, const float *v2, int fNoMonsters, float radius, edict_t *pentToSkip, TraceResult *ptr); -#endif // FN_TraceSphere_Post - -#ifdef FN_GetAimVector_Post -void FN_GetAimVector_Post(edict_t *ent, float speed, float *rgflReturn); -#endif // FN_GetAimVector_Post - -#ifdef FN_ServerCommand_Post -void FN_ServerCommand_Post(char *str); -#endif // FN_ServerCommand_Post - -#ifdef FN_ServerExecute_Post -void FN_ServerExecute_Post(void); -#endif // FN_ServerExecute_Post - -#ifdef FN_engClientCommand_Post -void FN_engClientCommand_Post(edict_t *pEdict, char *szFmt, ...); -#endif // FN_engClientCommand_Post - -#ifdef FN_ParticleEffect_Post -void FN_ParticleEffect_Post(const float *org, const float *dir, float color, float count); -#endif // FN_ParticleEffect_Post - -#ifdef FN_LightStyle_Post -void FN_LightStyle_Post(int style, char *val); -#endif // FN_LightStyle_Post - -#ifdef FN_DecalIndex_Post -int FN_DecalIndex_Post(const char *name); -#endif // FN_DecalIndex_Post - -#ifdef FN_PointContents_Post -int FN_PointContents_Post(const float *rgflVector); -#endif // FN_PointContents_Post - -#ifdef FN_MessageBegin_Post -void FN_MessageBegin_Post(int msg_dest, int msg_type, const float *pOrigin, edict_t *ed); -#endif // FN_MessageBegin_Post - -#ifdef FN_MessageEnd_Post -void FN_MessageEnd_Post(void); -#endif // FN_MessageEnd_Post - -#ifdef FN_WriteByte_Post -void FN_WriteByte_Post(int iValue); -#endif // FN_WriteByte_Post - -#ifdef FN_WriteChar_Post -void FN_WriteChar_Post(int iValue); -#endif // FN_WriteChar_Post - -#ifdef FN_WriteShort_Post -void FN_WriteShort_Post(int iValue); -#endif // FN_WriteShort_Post - -#ifdef FN_WriteLong_Post -void FN_WriteLong_Post(int iValue); -#endif // FN_WriteLong_Post - -#ifdef FN_WriteAngle_Post -void FN_WriteAngle_Post(float flValue); -#endif // FN_WriteAngle_Post - -#ifdef FN_WriteCoord_Post -void FN_WriteCoord_Post(float flValue); -#endif // FN_WriteCoord_Post - -#ifdef FN_WriteString_Post -void FN_WriteString_Post(const char *sz); -#endif // FN_WriteString_Post - -#ifdef FN_WriteEntity_Post -void FN_WriteEntity_Post(int iValue); -#endif // FN_WriteEntity_Post - -#ifdef FN_CVarRegister_Post -void FN_CVarRegister_Post(cvar_t *pCvar); -#endif // FN_CVarRegister_Post - -#ifdef FN_CVarGetFloat_Post -float FN_CVarGetFloat_Post(const char *szVarName); -#endif // FN_CVarGetFloat_Post - -#ifdef FN_CVarGetString_Post -const char *FN_CVarGetString_Post(const char *szVarName); -#endif // FN_CVarGetString_Post - -#ifdef FN_CVarSetFloat_Post -void FN_CVarSetFloat_Post(const char *szVarName, float flValue); -#endif // FN_CVarSetFloat_Post - -#ifdef FN_CVarSetString_Post -void FN_CVarSetString_Post(const char *szVarName, const char *szValue); -#endif // FN_CVarSetString_Post - -#ifdef FN_AlertMessage_Post -void FN_AlertMessage_Post(ALERT_TYPE atype, char *szFmt, ...); -#endif // FN_AlertMessage_Post - -#ifdef FN_EngineFprintf_Post -void FN_EngineFprintf_Post(FILE *pfile, char *szFmt, ...); -#endif // FN_EngineFprintf_Post - -#ifdef FN_PvAllocEntPrivateData_Post -void *FN_PvAllocEntPrivateData_Post(edict_t *pEdict, long cb); -#endif // FN_PvAllocEntPrivateData_Post - -#ifdef FN_PvEntPrivateData_Post -void *FN_PvEntPrivateData_Post(edict_t *pEdict); -#endif // FN_PvEntPrivateData_Post - -#ifdef FN_FreeEntPrivateData_Post -void FN_FreeEntPrivateData_Post(edict_t *pEdict); -#endif // FN_FreeEntPrivateData_Post - -#ifdef FN_SzFromIndex_Post -const char *FN_SzFromIndex_Post(int iString); -#endif // FN_SzFromIndex_Post - -#ifdef FN_AllocString_Post -int FN_AllocString_Post(const char *szValue); -#endif // FN_AllocString_Post - -#ifdef FN_GetVarsOfEnt_Post -struct entvars_s *FN_GetVarsOfEnt_Post(edict_t *pEdict); -#endif // FN_GetVarsOfEnt_Post - -#ifdef FN_PEntityOfEntOffset_Post -edict_t *FN_PEntityOfEntOffset_Post(int iEntOffset); -#endif // FN_PEntityOfEntOffset_Post - -#ifdef FN_EntOffsetOfPEntity_Post -int FN_EntOffsetOfPEntity_Post(const edict_t *pEdict); -#endif // FN_EntOffsetOfPEntity_Post - -#ifdef FN_IndexOfEdict_Post -int FN_IndexOfEdict_Post(const edict_t *pEdict); -#endif // FN_IndexOfEdict_Post - -#ifdef FN_PEntityOfEntIndex_Post -edict_t *FN_PEntityOfEntIndex_Post(int iEntIndex); -#endif // FN_PEntityOfEntIndex_Post - -#ifdef FN_FindEntityByVars_Post -edict_t *FN_FindEntityByVars_Post(struct entvars_s *pvars); -#endif // FN_FindEntityByVars_Post - -#ifdef FN_GetModelPtr_Post -void *FN_GetModelPtr_Post(edict_t *pEdict); -#endif // FN_GetModelPtr_Post - -#ifdef FN_RegUserMsg_Post -int FN_RegUserMsg_Post(const char *pszName, int iSize); -#endif // FN_RegUserMsg_Post - -#ifdef FN_AnimationAutomove_Post -void FN_AnimationAutomove_Post(const edict_t *pEdict, float flTime); -#endif // FN_AnimationAutomove_Post - -#ifdef FN_GetBonePosition_Post -void FN_GetBonePosition_Post(const edict_t *pEdict, int iBone, float *rgflOrigin, float *rgflAngles); -#endif // FN_GetBonePosition_Post - -#ifdef FN_FunctionFromName_Post -unsigned long FN_FunctionFromName_Post(const char *pName); -#endif // FN_FunctionFromName_Post - -#ifdef FN_NameForFunction_Post -const char *FN_NameForFunction_Post(unsigned long function); -#endif // FN_NameForFunction_Post - -#ifdef FN_ClientPrintf_Post -void FN_ClientPrintf_Post(edict_t *pEdict, PRINT_TYPE ptype, const char *szMsg); -#endif // FN_ClientPrintf_Post - -#ifdef FN_ServerPrint_Post -void FN_ServerPrint_Post(const char *szMsg); -#endif // FN_ServerPrint_Post - -#ifdef FN_Cmd_Args_Post -const char *FN_Cmd_Args_Post(void); -#endif // FN_Cmd_Args_Post - -#ifdef FN_Cmd_Argv_Post -const char *FN_Cmd_Argv_Post(int argc); -#endif // FN_Cmd_Argv_Post - -#ifdef FN_Cmd_Argc_Post -int FN_Cmd_Argc_Post(void); -#endif // FN_Cmd_Argc_Post - -#ifdef FN_GetAttachment_Post -void FN_GetAttachment_Post(const edict_t *pEdict, int iAttachment, float *rgflOrigin, float *rgflAngles ); -#endif // FN_GetAttachment_Post - -#ifdef FN_CRC32_Init_Post -void FN_CRC32_Init_Post(CRC32_t *pulCRC); -#endif // FN_CRC32_Init_Post - -#ifdef FN_CRC32_ProcessBuffer_Post -void FN_CRC32_ProcessBuffer_Post(CRC32_t *pulCRC, void *p, int len); -#endif // FN_CRC32_ProcessBuffer_Post - -#ifdef FN_CRC32_ProcessByte_Post -void FN_CRC32_ProcessByte_Post(CRC32_t *pulCRC, unsigned char ch); -#endif // FN_CRC32_ProcessByte_Post - -#ifdef FN_CRC32_Final_Post -CRC32_t FN_CRC32_Final_Post(CRC32_t pulCRC); -#endif // FN_CRC32_Final_Post - -#ifdef FN_RandomLong_Post -long FN_RandomLong_Post(long lLow, long lHigh); -#endif // FN_RandomLong_Post - -#ifdef FN_RandomFloat_Post -float FN_RandomFloat_Post(float flLow, float flHigh); -#endif // FN_RandomFloat_Post - -#ifdef FN_SetView_Post -void FN_SetView_Post(const edict_t *pClient, const edict_t *pViewent); -#endif // FN_SetView_Post - -#ifdef FN_Time_Post -float FN_Time_Post(void); -#endif // FN_Time_Post - -#ifdef FN_CrosshairAngle_Post -void FN_CrosshairAngle_Post(const edict_t *pClient, float pitch, float yaw); -#endif // FN_CrosshairAngle_Post - -#ifdef FN_LoadFileForMe_Post -byte *FN_LoadFileForMe_Post(char *filename, int *pLength); -#endif // FN_LoadFileForMe_Post - -#ifdef FN_FreeFile_Post -void FN_FreeFile_Post(void *buffer); -#endif // FN_FreeFile_Post - -#ifdef FN_EndSection_Post -void FN_EndSection_Post(const char *pszSectionName); -#endif // FN_EndSection_Post - -#ifdef FN_CompareFileTime_Post -int FN_CompareFileTime_Post(char *filename1, char *filename2, int *iCompare); -#endif // FN_CompareFileTime_Post - -#ifdef FN_GetGameDir_Post -void FN_GetGameDir_Post(char *szGetGameDir); -#endif // FN_GetGameDir_Post - -#ifdef FN_Cvar_RegisterVariable_Post -void FN_Cvar_RegisterVariable_Post(cvar_t *variable); -#endif // FN_Cvar_RegisterVariable_Post - -#ifdef FN_FadeClientVolume_Post -void FN_FadeClientVolume_Post(const edict_t *pEdict, int fadePercent, int fadeOutSeconds, int holdTime, int fadeInSeconds); -#endif // FN_FadeClientVolume_Post - -#ifdef FN_SetClientMaxspeed_Post -void FN_SetClientMaxspeed_Post(const edict_t *pEdict, float fNewMaxspeed); -#endif // FN_SetClientMaxspeed_Post - -#ifdef FN_CreateFakeClient_Post -edict_t *FN_CreateFakeClient_Post(const char *netname); -#endif // FN_CreateFakeClient_Post - -#ifdef FN_RunPlayerMove_Post -void FN_RunPlayerMove_Post(edict_t *fakeclient, const float *viewangles, float forwardmove, float sidemove, float upmove, unsigned short buttons, byte impulse, byte msec); -#endif // FN_RunPlayerMove_Post - -#ifdef FN_NumberOfEntities_Post -int FN_NumberOfEntities_Post(void); -#endif // FN_NumberOfEntities_Post - -#ifdef FN_GetInfoKeyBuffer_Post -char *FN_GetInfoKeyBuffer_Post(edict_t *e); -#endif // FN_GetInfoKeyBuffer_Post - -#ifdef FN_InfoKeyValue_Post -char *FN_InfoKeyValue_Post(char *infobuffer, char *key); -#endif // FN_InfoKeyValue_Post - -#ifdef FN_SetKeyValue_Post -void FN_SetKeyValue_Post(char *infobuffer, char *key, char *value); -#endif // FN_SetKeyValue_Post - -#ifdef FN_SetClientKeyValue_Post -void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, char *key, char *value); -#endif // FN_SetClientKeyValue_Post - -#ifdef FN_IsMapValid_Post -int FN_IsMapValid_Post(char *filename); -#endif // FN_IsMapValid_Post - -#ifdef FN_StaticDecal_Post -void FN_StaticDecal_Post(const float *origin, int decalIndex, int entityIndex, int modelIndex); -#endif // FN_StaticDecal_Post - -#ifdef FN_PrecacheGeneric_Post -int FN_PrecacheGeneric_Post(char *s); -#endif // FN_PrecacheGeneric_Post - -#ifdef FN_GetPlayerUserId_Post -int FN_GetPlayerUserId_Post(edict_t *e ); -#endif // FN_GetPlayerUserId_Post - -#ifdef FN_BuildSoundMsg_Post -void FN_BuildSoundMsg_Post(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed); -#endif // FN_BuildSoundMsg_Post - -#ifdef FN_IsDedicatedServer_Post -int FN_IsDedicatedServer_Post(void); -#endif // FN_IsDedicatedServer_Post - -#ifdef FN_CVarGetPointer_Post -cvar_t *FN_CVarGetPointer_Post(const char *szVarName); -#endif // FN_CVarGetPointer_Post - -#ifdef FN_GetPlayerWONId_Post -unsigned int FN_GetPlayerWONId_Post(edict_t *e); -#endif // FN_GetPlayerWONId_Post - -#ifdef FN_Info_RemoveKey_Post -void FN_Info_RemoveKey_Post( char *s, const char *key); -#endif // FN_Info_RemoveKey_Post - -#ifdef FN_GetPhysicsKeyValue_Post -const char *FN_GetPhysicsKeyValue_Post(const edict_t *pClient, const char *key); -#endif // FN_GetPhysicsKeyValue_Post - -#ifdef FN_SetPhysicsKeyValue_Post -void FN_SetPhysicsKeyValue_Post(const edict_t *pClient, const char *key, const char *value); -#endif // FN_SetPhysicsKeyValue_Post - -#ifdef FN_GetPhysicsInfoString_Post -const char *FN_GetPhysicsInfoString_Post( const edict_t *pClient); -#endif // FN_GetPhysicsInfoString_Post - -#ifdef FN_PrecacheEvent_Post -unsigned short FN_PrecacheEvent_Post(int type, const char *psz); -#endif // FN_PrecacheEvent_Post - -#ifdef FN_PlaybackEvent_Post -void FN_PlaybackEvent_Post(int flags, const edict_t *pInvoker, unsigned short eventindex, float delay, float *origin, float *angles, float fparam1, float fparam2, int iparam1, int iparam2, int bparam1, int bparam2); -#endif // FN_PlaybackEvent_Post - -#ifdef FN_SetFatPVS_Post -unsigned char *FN_SetFatPVS_Post(float *org); -#endif // FN_SetFatPVS_Post - -#ifdef FN_SetFatPAS_Post -unsigned char *FN_SetFatPAS_Post(float *org); -#endif // FN_SetFatPAS_Post - -#ifdef FN_CheckVisibility_Post -int FN_CheckVisibility_Post(const edict_t *entity, unsigned char *pset); -#endif // FN_CheckVisibility_Post - -#ifdef FN_DeltaSetField_Post -void FN_DeltaSetField_Post(struct delta_s *pFields, const char *fieldname); -#endif // FN_DeltaSetField_Post - -#ifdef FN_DeltaUnsetField_Post -void FN_DeltaUnsetField_Post(struct delta_s *pFields, const char *fieldname); -#endif // FN_DeltaUnsetField_Post - -#ifdef FN_DeltaAddEncoder_Post -void FN_DeltaAddEncoder_Post(char *name, void (*conditionalencode)( struct delta_s *pFields, const unsigned char *from, const unsigned char *to ) ); -#endif // FN_DeltaAddEncoder_Post - -#ifdef FN_GetCurrentPlayer_Post -int FN_GetCurrentPlayer_Post(void); -#endif // FN_GetCurrentPlayer_Post - -#ifdef FN_CanSkipPlayer_Post -int FN_CanSkipPlayer_Post(const edict_t *player); -#endif // FN_CanSkipPlayer_Post - -#ifdef FN_DeltaFindField_Post -int FN_DeltaFindField_Post(struct delta_s *pFields, const char *fieldname); -#endif // FN_DeltaFindField_Post - -#ifdef FN_DeltaSetFieldByIndex_Post -void FN_DeltaSetFieldByIndex_Post(struct delta_s *pFields, int fieldNumber); -#endif // FN_DeltaSetFieldByIndex_Post - -#ifdef FN_DeltaUnsetFieldByIndex_Post -void FN_DeltaUnsetFieldByIndex_Post(struct delta_s *pFields, int fieldNumber); -#endif // FN_DeltaUnsetFieldByIndex_Post - -#ifdef FN_SetGroupMask_Post -void FN_SetGroupMask_Post(int mask, int op); -#endif // FN_SetGroupMask_Post - -#ifdef FN_engCreateInstancedBaseline_Post -int FN_engCreateInstancedBaseline_Post(int classname, struct entity_state_s *baseline); -#endif // FN_engCreateInstancedBaseline_Post - -#ifdef FN_Cvar_DirectSet_Post -void FN_Cvar_DirectSet_Post(struct cvar_s *var, char *value); -#endif // FN_Cvar_DirectSet_Post - -#ifdef FN_ForceUnmodified_Post -void FN_ForceUnmodified_Post(FORCE_TYPE type, float *mins, float *maxs, const char *filename); -#endif // FN_ForceUnmodified_Post - -#ifdef FN_GetPlayerStats_Post -void FN_GetPlayerStats_Post(const edict_t *pClient, int *ping, int *packet_loss); -#endif // FN_GetPlayerStats_Post - -#ifdef FN_AddServerCommand_Post -void FN_AddServerCommand_Post(char *cmd_name, void (*function)(void)); -#endif // FN_AddServerCommand_Post - -#ifdef FN_Voice_GetClientListening_Post -qboolean FN_Voice_GetClientListening_Post(int iReceiver, int iSender); -#endif // FN_Voice_GetClientListening_Post - -#ifdef FN_Voice_SetClientListening_Post -qboolean FN_Voice_SetClientListening_Post(int iReceiver, int iSender, qboolean bListen); -#endif // FN_Voice_SetClientListening_Post - -#ifdef FN_GetPlayerAuthId_Post -const char *FN_GetPlayerAuthId_Post(edict_t *e); -#endif // FN_GetPlayerAuthId - - - - -#ifdef FN_OnFreeEntPrivateData -void FN_OnFreeEntPrivateData(edict_t *pEnt); -#endif // FN_OnFreeEntPrivateData - -#ifdef FN_GameShutdown -void FN_GameShutdown(void); -#endif // FN_GameShutdown - -#ifdef FN_ShouldCollide -int FN_ShouldCollide(edict_t *pentTouched, edict_t *pentOther); -#endif // FN_ShouldCollide - - - - - -#ifdef FN_OnFreeEntPrivateData_Post -void FN_OnFreeEntPrivateData_Post(edict_t *pEnt); -#endif // FN_OnFreeEntPrivateData_Post - -#ifdef FN_GameShutdown_Post -void FN_GameShutdown_Post(void); -#endif // FN_GameShutdown_Post - -#ifdef FN_ShouldCollide_Post -int FN_ShouldCollide_Post(edict_t *pentTouched, edict_t *pentOther); -#endif // FN_ShouldCollide_Post - -#endif // USE_METAMOD - - -#ifdef FN_AMXX_QUERY -void FN_AMXX_QUERY(void); -#endif // FN_AMXX_QUERY - -#ifdef FN_AMXX_ATTACH -void FN_AMXX_ATTACH(void); -#endif // FN_AMXX_ATTACH - -#ifdef FN_AMXX_DETACH -void FN_AMXX_DETACH(void); -#endif // FN_AMXX_DETACH - -#ifdef FN_AMXX_PLUGINSLOADED -void FN_AMXX_PLUGINSLOADED(void); -#endif // FN_AMXX_PLUGINSLOADED - -// *** Types *** -typedef void* (*PFN_REQ_FNPTR)(const char * /*name*/); - -// ***** Module funcs stuff ***** -enum ForwardExecType -{ - ET_IGNORE = 0, // Ignore return vaue - ET_STOP, // Stop on PLUGIN_HANDLED - ET_STOP2, // Stop on PLUGIN_HANDLED, continue on other values, return biggest return value - ET_CONTINUE, // Continue; return biggest return value -}; - -enum ForwardParam -{ - FP_DONE = -1, // specify this as the last argument - // only tells the function that there are no more arguments - FP_CELL, // normal cell - FP_FLOAT, // float; used as normal cell though - FP_STRING, // string - FP_STRINGEX, // string; will be updated to the last function's value - FP_ARRAY, // array; use the return value of prepareArray. -}; - - -typedef int (*PFN_ADD_NATIVES) (const AMX_NATIVE_INFO * /*list*/); -typedef char * (*PFN_BUILD_PATHNAME) (const char * /*format*/, ...); -typedef char * (*PFN_BUILD_PATHNAME_R) (char * /*buffer*/, size_t /* maxlen */, const char * /* format */, ...); -typedef cell * (*PFN_GET_AMXADDR) (AMX * /*amx*/, cell /*offset*/); -typedef void (*PFN_PRINT_SRVCONSOLE) (char * /*format*/, ...); -typedef const char * (*PFN_GET_MODNAME) (void); -typedef const char * (*PFN_GET_AMXSCRIPTNAME) (int /*id*/); -typedef AMX * (*PFN_GET_AMXSCRIPT) (int /*id*/); -typedef int (*PFN_FIND_AMXSCRIPT_BYAMX) (const AMX * /*amx*/); -typedef int (*PFN_FIND_AMXSCRIPT_BYNAME) (const char * /*name*/); -typedef int (*PFN_SET_AMXSTRING) (AMX * /*amx*/, cell /*amx_addr*/, const char * /* source */, int /* max */); -typedef char * (*PFN_GET_AMXSTRING) (AMX * /*amx*/, cell /*amx_addr*/, int /*bufferId*/, int * /*pLen*/); -typedef int (*PFN_GET_AMXSTRINGLEN) (const cell *ptr); -typedef char * (*PFN_FORMAT_AMXSTRING) (AMX * /*amx*/, cell * /*params*/, int /*startParam*/, int * /*pLen*/); -typedef void (*PFN_COPY_AMXMEMORY) (cell * /*dest*/, const cell * /*src*/, int /*len*/); -typedef void (*PFN_LOG) (const char * /*fmt*/, ...); -typedef void (*PFN_LOG_ERROR) (AMX * /*amx*/, int /*err*/, const char * /*fmt*/, ...); -typedef int (*PFN_RAISE_AMXERROR) (AMX * /*amx*/, int /*error*/); -typedef int (*PFN_REGISTER_FORWARD) (const char * /*funcname*/, ForwardExecType /*exectype*/, ... /*paramtypes terminated by PF_DONE*/); -typedef int (*PFN_EXECUTE_FORWARD) (int /*id*/, ... /*params*/); -typedef cell (*PFN_PREPARE_CELLARRAY) (cell * /*ptr*/, unsigned int /*size*/); -typedef cell (*PFN_PREPARE_CHARARRAY) (char * /*ptr*/, unsigned int /*size*/); -typedef cell (*PFN_PREPARE_CELLARRAY_A) (cell * /*ptr*/, unsigned int /*size*/, bool /*copyBack*/); -typedef cell (*PFN_PREPARE_CHARARRAY_A) (char * /*ptr*/, unsigned int /*size*/, bool /*copyBack*/); -typedef int (*PFN_IS_PLAYER_VALID) (int /*id*/); -typedef const char * (*PFN_GET_PLAYER_NAME) (int /*id*/); -typedef const char * (*PFN_GET_PLAYER_IP) (int /*id*/); -typedef int (*PFN_IS_PLAYER_INGAME) (int /*id*/); -typedef int (*PFN_IS_PLAYER_BOT) (int /*id*/); -typedef int (*PFN_IS_PLAYER_AUTHORIZED) (int /*id*/); -typedef float (*PFN_GET_PLAYER_TIME) (int /*id*/); -typedef float (*PFN_GET_PLAYER_PLAYTIME) (int /*id*/); -typedef int (*PFN_GETPLAYERFLAGS) (int /* id*/); -typedef int (*PFN_GET_PLAYER_CURWEAPON) (int /*id*/); -typedef const char * (*PFN_GET_PLAYER_TEAM) (int /*id*/); -typedef int (*PFN_GET_PLAYER_TEAMID) (int /*id*/); -typedef int (*PFN_GET_PLAYER_DEATHS) (int /*id*/); -typedef int (*PFN_GET_PLAYER_MENU) (int /*id*/); -typedef int (*PFN_GET_PLAYER_KEYS) (int /*id*/); -typedef int (*PFN_IS_PLAYER_ALIVE) (int /*id*/); -typedef int (*PFN_GET_PLAYER_FRAGS) (int /*id*/); -typedef int (*PFN_IS_PLAYER_CONNECTING) (int /*id*/); -typedef int (*PFN_IS_PLAYER_HLTV) (int /*id*/); -typedef int (*PFN_GET_PLAYER_ARMOR) (int /*id*/); -typedef int (*PFN_GET_PLAYER_HEALTH) (int /*id*/); -#ifdef USE_METAMOD -typedef edict_t * (*PFN_GET_PLAYER_EDICT) (int /*id*/); -#else -typedef void * (*PFN_GET_PLAYER_EDICT) (int /*id*/); -#endif - -#ifdef MEMORY_TEST -typedef void * (*PFN_ALLOCATOR) (const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/, - const unsigned int /*type*/, const size_t /*size*/); -typedef void * (*PFN_REALLOCATOR) (const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/, - const unsigned int /*type*/, const size_t /*size*/, void* /*addr*/ ); -typedef void (*PFN_DEALLOCATOR) (const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/, - const unsigned int /*type*/, const void* /*addr*/ ); -#endif -typedef int (*PFN_AMX_EXEC) (AMX* /*amx*/, cell* /*return val*/, int /*index*/); -typedef int (*PFN_AMX_EXECV) (AMX* /*amx*/, cell* /*return val*/, int /*index*/, int /*numparams*/, cell[] /*params*/); -typedef int (*PFN_AMX_ALLOT) (AMX* /*amx*/, int /*length*/, cell* /*amx_addr*/, cell** /*phys_addr*/); -typedef int (*PFN_AMX_FINDPUBLIC) (AMX* /*amx*/, char* /*func name*/, int* /*index*/); -typedef int (*PFN_AMX_FINDNATIVE) (AMX* /*amx*/, char* /*func name*/, int* /*index*/); -typedef int (*PFN_LOAD_AMXSCRIPT) (AMX* /*amx*/, void** /*code*/, const char* /*path*/, char[64] /*error info*/, int /* debug */); -typedef int (*PFN_UNLOAD_AMXSCRIPT) (AMX* /*amx*/,void** /*code*/); -typedef cell (*PFN_REAL_TO_CELL) (REAL /*x*/); -typedef REAL (*PFN_CELL_TO_REAL) (cell /*x*/); -typedef int (*PFN_REGISTER_SPFORWARD) (AMX * /*amx*/, int /*func*/, ... /*params*/); -typedef int (*PFN_REGISTER_SPFORWARD_BYNAME) (AMX * /*amx*/, const char * /*funcName*/, ... /*params*/); -typedef void (*PFN_UNREGISTER_SPFORWARD) (int /*id*/); -typedef void (*PFN_MERGEDEFINITION_FILE) (const char * /*filename*/); -typedef const char * (*PFN_FORMAT) (const char * /*fmt*/, ... /*params*/); -typedef void (*PFN_REGISTERFUNCTION) (void * /*pfn*/, const char * /*desc*/); -typedef int (*PFN_AMX_PUSH) (AMX * /*amx*/, cell /*value*/); - -extern PFN_ADD_NATIVES g_fn_AddNatives; -extern PFN_BUILD_PATHNAME g_fn_BuildPathname; -extern PFN_BUILD_PATHNAME_R g_fn_BuildPathnameR; -extern PFN_GET_AMXADDR g_fn_GetAmxAddr; -extern PFN_PRINT_SRVCONSOLE g_fn_PrintSrvConsole; -extern PFN_GET_MODNAME g_fn_GetModname; -extern PFN_GET_AMXSCRIPTNAME g_fn_GetAmxScriptName; -extern PFN_GET_AMXSCRIPT g_fn_GetAmxScript; -extern PFN_FIND_AMXSCRIPT_BYAMX g_fn_FindAmxScriptByAmx; -extern PFN_FIND_AMXSCRIPT_BYNAME g_fn_FindAmxScriptByName; -extern PFN_SET_AMXSTRING g_fn_SetAmxString; -extern PFN_GET_AMXSTRING g_fn_GetAmxString; -extern PFN_GET_AMXSTRINGLEN g_fn_GetAmxStringLen; -extern PFN_FORMAT_AMXSTRING g_fn_FormatAmxString; -extern PFN_COPY_AMXMEMORY g_fn_CopyAmxMemory; -extern PFN_LOG g_fn_Log; -extern PFN_LOG_ERROR g_fn_LogErrorFunc; -extern PFN_RAISE_AMXERROR g_fn_RaiseAmxError; -extern PFN_REGISTER_FORWARD g_fn_RegisterForward; -extern PFN_EXECUTE_FORWARD g_fn_ExecuteForward; -extern PFN_PREPARE_CELLARRAY g_fn_PrepareCellArray; -extern PFN_PREPARE_CHARARRAY g_fn_PrepareCharArray; -extern PFN_PREPARE_CELLARRAY_A g_fn_PrepareCellArrayA; -extern PFN_PREPARE_CHARARRAY_A g_fn_PrepareCharArrayA; -extern PFN_IS_PLAYER_VALID g_fn_IsPlayerValid; -extern PFN_GET_PLAYER_NAME g_fn_GetPlayerName; -extern PFN_GET_PLAYER_IP g_fn_GetPlayerIP; -extern PFN_IS_PLAYER_INGAME g_fn_IsPlayerIngame; -extern PFN_IS_PLAYER_BOT g_fn_IsPlayerBot; -extern PFN_IS_PLAYER_AUTHORIZED g_fn_IsPlayerAuthorized; -extern PFN_GET_PLAYER_TIME g_fn_GetPlayerTime; -extern PFN_GET_PLAYER_PLAYTIME g_fn_GetPlayerPlayTime; -extern PFN_GET_PLAYER_CURWEAPON g_fn_GetPlayerCurweapon; -extern PFN_GET_PLAYER_TEAMID g_fn_GetPlayerTeamID; -extern PFN_GET_PLAYER_DEATHS g_fn_GetPlayerDeaths; -extern PFN_GET_PLAYER_MENU g_fn_GetPlayerMenu; -extern PFN_GET_PLAYER_KEYS g_fn_GetPlayerKeys; -extern PFN_IS_PLAYER_ALIVE g_fn_IsPlayerAlive; -extern PFN_GET_PLAYER_FRAGS g_fn_GetPlayerFrags; -extern PFN_IS_PLAYER_CONNECTING g_fn_IsPlayerConnecting; -extern PFN_IS_PLAYER_HLTV g_fn_IsPlayerHLTV; -extern PFN_GET_PLAYER_ARMOR g_fn_GetPlayerArmor; -extern PFN_GET_PLAYER_HEALTH g_fn_GetPlayerHealth; -extern PFN_AMX_EXEC g_fn_AmxExec; -extern PFN_AMX_ALLOT g_fn_AmxAllot; -extern PFN_AMX_FINDPUBLIC g_fn_AmxFindPublic; -extern PFN_LOAD_AMXSCRIPT g_fn_LoadAmxScript; -extern PFN_UNLOAD_AMXSCRIPT g_fn_UnloadAmxScript; -extern PFN_REAL_TO_CELL g_fn_RealToCell; -extern PFN_CELL_TO_REAL g_fn_CellToReal; -extern PFN_REGISTER_SPFORWARD g_fn_RegisterSPForward; -extern PFN_REGISTER_SPFORWARD_BYNAME g_fn_RegisterSPForwardByName; -extern PFN_UNREGISTER_SPFORWARD g_fn_UnregisterSPForward; -extern PFN_MERGEDEFINITION_FILE g_fn_MergeDefinition_File; -extern PFN_AMX_FINDNATIVE g_fn_AmxFindNative; -extern PFN_GETPLAYERFLAGS g_fn_GetPlayerFlags; -extern PFN_GET_PLAYER_EDICT g_fn_GetPlayerEdict; -extern PFN_FORMAT g_fn_Format; -extern PFN_GET_PLAYER_TEAM g_fn_GetPlayerTeam; -extern PFN_REGISTERFUNCTION g_fn_RegisterFunction; -extern PFN_REQ_FNPTR g_fn_RequestFunction; -extern PFN_AMX_PUSH g_fn_AmxPush; - -#ifdef MAY_NEVER_BE_DEFINED -// Function prototypes for intellisense and similar systems -// They understand #if 0 so we use #ifdef MAY_NEVER_BE_DEFINED -int MF_AddNatives (const AMX_NATIVE_INFO *list) { } -char * MF_BuildPathname (const char * format, ...) { } -char * MF_BuildPathnameR (char *buffer, size_t maxlen, const char *fmt, ...) { } -cell * MF_GetAmxAddr (AMX * amx, cell offset) { } -void MF_PrintSrvConsole (char * format, ...) { } -const char * MF_GetModname (void) { } -const char * MF_GetScriptName (int id) { } -AMX * MF_GetScriptAmx (int id) { } -int MF_FindScriptByAmx (const AMX * amx) { } -int MF_FindScriptByAmx (const char * name) { } -int MF_SetAmxString (AMX * amx, cell amx_addr, const char * source , int max ) { } -char * MF_GetAmxString (AMX * amx, cell amx_addr, int bufferId, int * pLen) { } -int MF_GetAmxStringLen (const cell *ptr) { } -char * MF_FormatAmxString (AMX * amx, cell * params, int startParam, int * pLen) { } -void MF_CopyAmxMemory (cell * dest, const cell * src, int len) { } -void MF_Log (const char * fmt, ...) { } -void MF_LogError (AMX * amx, int err, const char *fmt, ...) { } -int MF_RaiseAmxError (AMX * amx, int error) { } -int MF_RegisterForward (const char * funcname, ForwardExecType exectype, ...) { } -int MF_ExecuteForward (int id, ...) { } -cell MF_PrepareCellArray (cell * ptr, unsigned int size) { } -cell MF_PrepareCharArray (char * ptr, unsigned int size) { } -cell MF_PrepareCellArrayA (cell * ptr, unsigned int size, bool copyBack) { } -cell MF_PrepareCharArrayA (char * ptr, unsigned int size, bool copyBack) { } -int MF_IsPlayerValid (int id) { } -const char * MF_GetPlayerName (int id) { } -const char * MF_GetPlayerIP (int id) { } -int MF_IsPlayerIngame (int id) { } -int MF_IsPlayerBot (int id) { } -int MF_IsPlayerAuthorized (int id) { } -float MF_GetPlayerTime (int id) { } -float MF_GetPlayerPlayTime (int id) { } -int MF_GetPlayerCurweapon (int id) { } -const char * MF_GetPlayerTeam (int id) { } -int MF_GetPlayerTeamID (int id) { } -int MF_GetPlayerDeaths (int id) { } -int MF_GetPlayerMenu (int id) { } -int MF_GetPlayerKeys (int id) { } -int MF_IsPlayerAlive (int id) { } -int MF_GetPlayerFrags (int id) { } -int MF_IsPlayerConnecting (int id) { } -int MF_IsPlayerHLTV (int id) { } -int MF_GetPlayerArmor (int id) { } -int MF_GetPlayerHealth (int id) { } -REAL amx_ctof (cell x) { } -cell amx_ftoc (float x) { } -int MF_RegisterSPForwardByName (AMX * amx, const char *str, ...) { } -int MF_RegisterSPForward (AMX * amx, int func, ...) { } -void MF_UnregisterSPForward (int id) { } -int MF_GetPlayerFlags (int id) { } -edict_t* MF_GetPlayerEdict (int id) { } -const char * MF_Format (const char *fmt, ...) { } -void MF_RegisterFunction (void *pfn, const char *description) { } -void * MF_RequestFunction (const char *description) { } -int MF_AmxPush (AMX *amx, cell *params) { } -int MF_AmxExec (AMX *amx, cell *retval, int idx) { } -#endif // MAY_NEVER_BE_DEFINED - -#define MF_AddNatives g_fn_AddNatives -#define MF_BuildPathname g_fn_BuildPathname -#define MF_BuildPathnameR g_fn_BuildPathnameR -#define MF_FormatAmxString g_fn_FormatAmxString -#define MF_GetAmxAddr g_fn_GetAmxAddr -#define MF_PrintSrvConsole g_fn_PrintSrvConsole -#define MF_GetModname g_fn_GetModname -#define MF_GetScriptName g_fn_GetAmxScriptName -#define MF_GetScriptAmx g_fn_GetAmxScript -#define MF_FindScriptByAmx g_fn_FindAmxScriptByAmx -#define MF_FindScriptByName g_fn_FindAmxScriptByName -#define MF_SetAmxString g_fn_SetAmxString -#define MF_GetAmxString g_fn_GetAmxString -#define MF_GetAmxStringLen g_fn_GetAmxStringLen -#define MF_CopyAmxMemory g_fn_CopyAmxMemory -void MF_Log(const char *fmt, ...); -void MF_LogError(AMX *amx, int err, const char *fmt, ...); -#define MF_RaiseAmxError g_fn_RaiseAmxError -#define MF_RegisterForward g_fn_RegisterForward -#define MF_ExecuteForward g_fn_ExecuteForward -#define MF_PrepareCellArray g_fn_PrepareCellArray -#define MF_PrepareCharArray g_fn_PrepareCharArray -#define MF_PrepareCellArrayA g_fn_PrepareCellArrayA -#define MF_PrepareCharArrayA g_fn_PrepareCharArrayA -#define MF_IsPlayerValid g_fn_IsPlayerValid -#define MF_GetPlayerName g_fn_GetPlayerName -#define MF_GetPlayerIP g_fn_GetPlayerIP -#define MF_IsPlayerIngame g_fn_IsPlayerIngame -#define MF_IsPlayerBot g_fn_IsPlayerBot -#define MF_IsPlayerAuthorized g_fn_IsPlayerAuthorized -#define MF_GetPlayerTime g_fn_GetPlayerTime -#define MF_GetPlayerPlayTime g_fn_GetPlayerPlayTime -#define MF_GetPlayerCurweapon g_fn_GetPlayerCurweapon -#define MF_GetPlayerTeam g_fn_GetPlayerTeam -#define MF_GetPlayerTeamID g_fn_GetPlayerTeamID -#define MF_GetPlayerDeaths g_fn_GetPlayerDeaths -#define MF_GetPlayerMenu g_fn_GetPlayerMenu -#define MF_GetPlayerKeys g_fn_GetPlayerKeys -#define MF_IsPlayerAlive g_fn_IsPlayerAlive -#define MF_GetPlayerFrags g_fn_GetPlayerFrags -#define MF_IsPlayerConnecting g_fn_IsPlayerConnecting -#define MF_IsPlayerHLTV g_fn_IsPlayerHLTV -#define MF_GetPlayerArmor g_fn_GetPlayerArmor -#define MF_GetPlayerHealth g_fn_GetPlayerHealth -#define MF_AmxExec g_fn_AmxExec -#define MF_AmxExecv g_fn_AmxExecv -#define MF_AmxFindPublic g_fn_AmxFindPublic -#define MF_AmxAllot g_fn_AmxAllot -#define MF_AmxFindNative g_fn_AmxFindNative -#define MF_LoadAmxScript g_fn_LoadAmxScript -#define MF_UnloadAmxScript g_fn_UnloadAmxScript -#define MF_MergeDefinitionFile g_fn_MergeDefinition_File -#define amx_ctof g_fn_CellToReal -#define amx_ftoc g_fn_RealToCell -#define MF_RegisterSPForwardByName g_fn_RegisterSPForwardByName -#define MF_RegisterSPForward g_fn_RegisterSPForward -#define MF_UnregisterSPForward g_fn_UnregisterSPForward -#define MF_GetPlayerFlags g_fn_GetPlayerFlags -#define MF_GetPlayerEdict g_fn_GetPlayerEdict -#define MF_Format g_fn_Format -#define MF_RegisterFunction g_fn_RegisterFunction -#define MF_RequestFunction g_fn_RequestFunction; -#define MF_AmxPush g_fn_AmxPush - -#ifdef MEMORY_TEST -/*** Memory ***/ -void *operator new(size_t reportedSize); -void *operator new[](size_t reportedSize); -void *operator new(size_t reportedSize, const char *sourceFile, int sourceLine); -void *operator new[](size_t reportedSize, const char *sourceFile, int sourceLine); -void operator delete(void *reportedAddress); -void operator delete[](void *reportedAddress); - -// Allocation types -extern const unsigned int m_alloc_unknown; -extern const unsigned int m_alloc_new; -extern const unsigned int m_alloc_new_array; -extern const unsigned int m_alloc_malloc; -extern const unsigned int m_alloc_calloc; -extern const unsigned int m_alloc_realloc; -extern const unsigned int m_alloc_delete; -extern const unsigned int m_alloc_delete_array; -extern const unsigned int m_alloc_free; - -// To be called before new / delete -void Mem_SetOwner(const char *filename, int line, const char *function); -// Actual allocator -void * Mem_Allocator(const char *sourceFile, const unsigned int sourceLine, const char *sourceFunc, - const unsigned int allocationType, const size_t reportedSize); -void * Mem_Reallocator(const char *sourceFile, const unsigned int sourceLine, const char *sourceFunc, - const unsigned int reallocationType, const size_t reportedSize, void *reportedAddress); -void Mem_Deallocator(const char *sourceFile, const unsigned int sourceLine, const char *sourceFunc, - const unsigned int deallocationType, void *reportedAddress); - -// memory macros -#ifndef __FUNCTION__ -#define __FUNCTION__ "??" -#endif - -// call Mem_SetOwner, followed by the actual new operator -#define new (Mem_SetOwner(__FILE__,__LINE__,__FUNCTION__),false) ? NULL : new -// call Mem_SetOwner, followed by the actual delete operator -#define delete (Mem_SetOwner(__FILE__,__LINE__,__FUNCTION__),false) ? Mem_SetOwner("",0,"") : delete -#define malloc(sz) Mem_Allocator (__FILE__,__LINE__,__FUNCTION__,m_alloc_malloc,sz) -#define calloc(sz) Mem_Allocator (__FILE__,__LINE__,__FUNCTION__,m_alloc_calloc,sz) -#define realloc(ptr,sz) Mem_Reallocator(__FILE__,__LINE__,__FUNCTION__,m_alloc_realloc,sz,ptr) -#define free(ptr) Mem_Deallocator(__FILE__,__LINE__,__FUNCTION__,m_alloc_free,ptr) - -#endif //MEMORY_TEST - -#endif // #ifndef __AMXXMODULE_H__ diff --git a/dlls/MemHack/memhack.inc b/dlls/MemHack/memhack.inc deleted file mode 100644 index 97762de6..00000000 --- a/dlls/MemHack/memhack.inc +++ /dev/null @@ -1,20 +0,0 @@ -#include - -native memhack_get_char(address,baseaddress = DLLBASE, memtype = MEMTYPE_DATA, signtype = MEM_SIGNED); -native memhack_get_short(address,baseaddress = DLLBASE, memtype = MEMTYPE_DATA, signtype = MEM_SIGNED); -native memhack_get_long(address,baseaddress = DLLBASE, memtype = MEMTYPE_DATA, signtype = MEM_SIGNED); - -native Float:memhack_get_float(address,baseaddress = DLLBASE, memtype = MEMTYPE_DATA); -native Float:memhack_get_quad(address,baseaddress = DLLBASE, memtype = MEMTYPE_DATA); -native memhack_get_pointer(address,baseaddress = DLLBASE, memtype = MEMTYPE_DATA); - -native memhack_set_char(address,baseaddress = DLLBASE, new_val, memtype = MEMTYPE_DATA, signtype = MEM_SIGNED); -native memhack_set_short(address,baseaddress = DLLBASE, new_val, memtype = MEMTYPE_DATA, signtype = MEM_SIGNED); -native memhack_set_long(address,baseaddress = DLLBASE, new_val, memtype = MEMTYPE_DATA, signtype = MEM_SIGNED); - -native memhack_set_float(address,baseaddress = DLLBASE, Float:new_val, memtype = MEMTYPE_DATA); -native memhack_set_quad(address,baseaddress = DLLBASE,Float:new_val, memtype = MEMTYPE_DATA); -native memhack_set_pointer(address,baseaddress = DLLBASE, new_val, memtype = MEMTYPE_DATA); - -native memhack_get_base(func_addr,&success); -native memhack_get_realaddr(address,baseaddress,memtype = MEMTYPE_DATA); \ No newline at end of file diff --git a/dlls/MemHack/memhack_const.inc b/dlls/MemHack/memhack_const.inc deleted file mode 100644 index bd30a7d9..00000000 --- a/dlls/MemHack/memhack_const.inc +++ /dev/null @@ -1,23 +0,0 @@ -#if defined _memhack_const_included - #endinput -#endif -#define _memhack_const_included - -// Different Address Bases -#define MEM_DLLBASE 0 -#define MEM_ENGBASE 1 -#define MEM_NULLBASE 2 - -// Signed or unsigned -#define MEM_SIGNED 0 -#define MEM_UNSIGNED 1 - -// Memory area types -#define MEMTYPE_CODE 0 // Code (usually .text segment, requires mprotect or VirtualProtect) -#define MEMTYPE_DATA 1 // Data (usually .data segment, writable by default) -#define MEMTYPE_RODATA 2 // Read-Only Data (usually .rodata on Linux, .rdata on Windows) - -// Return codes for patching (set natives) -#define MP_FAIL -1 -#define MP_OK 0 - diff --git a/dlls/MemHack/moduleconfig.h b/dlls/MemHack/moduleconfig.h deleted file mode 100644 index 73d774a6..00000000 --- a/dlls/MemHack/moduleconfig.h +++ /dev/null @@ -1,463 +0,0 @@ -// Configuration - -#ifndef __MODULECONFIG_H__ -#define __MODULECONFIG_H__ - -// Module info -#define MODULE_NAME "MemHack" -#define MODULE_VERSION "1.65" -#define MODULE_AUTHOR "SD and Rukia" -#define MODULE_URL "www.amxmodx.org" -#define MODULE_LOGTAG "MEMHACK" -// If you want the module not to be reloaded on mapchange, remove / comment out the next line -#define MODULE_RELOAD_ON_MAPCHANGE - -#ifdef __DATE__ -#define MODULE_DATE __DATE__ -#else // __DATE__ -#define MODULE_DATE "Unknown" -#endif // __DATE__ - -// metamod plugin? -#define USE_METAMOD - -// - AMXX Init functions -// Also consider using FN_META_* -// AMXX query -//#define FN_AMXX_QUERY OnAmxxQuery -// AMXX attach -// Do native functions init here (MF_AddNatives) -#define FN_AMXX_ATTACH OnAmxxAttach -// AMXX dettach -//#define FN_AMXX_DETTACH OnAmxxDettach -// All plugins loaded -// Do forward functions init here (MF_RegisterForward) -// #define FN_AMXX_PLUGINSLOADED OnPluginsLoaded - -/**** METAMOD ****/ -// If your module doesn't use metamod, you may close the file now :) -#ifdef USE_METAMOD -// ---- -// Hook Functions -// Uncomment these to be called -// You can also change the function name - -// - Metamod init functions -// Also consider using FN_AMXX_* -// Meta query -//#define FN_META_QUERY OnMetaQuery -// Meta attach -//#define FN_META_ATTACH OnMetaAttach -// Meta dettach -//#define FN_META_DETTACH OnMetaDettach - -// (wd) are Will Day's notes -// - GetEntityAPI2 functions -// #define FN_GameDLLInit GameDLLInit /* pfnGameInit() */ -// #define FN_DispatchSpawn DispatchSpawn /* pfnSpawn() */ -// #define FN_DispatchThink DispatchThink /* pfnThink() */ -// #define FN_DispatchUse DispatchUse /* pfnUse() */ -// #define FN_DispatchTouch DispatchTouch /* pfnTouch() */ -// #define FN_DispatchBlocked DispatchBlocked /* pfnBlocked() */ -// #define FN_DispatchKeyValue DispatchKeyValue /* pfnKeyValue() */ -// #define FN_DispatchSave DispatchSave /* pfnSave() */ -// #define FN_DispatchRestore DispatchRestore /* pfnRestore() */ -// #define FN_DispatchObjectCollsionBox DispatchObjectCollsionBox /* pfnSetAbsBox() */ -// #define FN_SaveWriteFields SaveWriteFields /* pfnSaveWriteFields() */ -// #define FN_SaveReadFields SaveReadFields /* pfnSaveReadFields() */ -// #define FN_SaveGlobalState SaveGlobalState /* pfnSaveGlobalState() */ -// #define FN_RestoreGlobalState RestoreGlobalState /* pfnRestoreGlobalState() */ -// #define FN_ResetGlobalState ResetGlobalState /* pfnResetGlobalState() */ -// #define FN_ClientConnect ClientConnect /* pfnClientConnect() (wd) Client has connected */ -// #define FN_ClientDisconnect ClientDisconnect /* pfnClientDisconnect() (wd) Player has left the game */ -// #define FN_ClientKill ClientKill /* pfnClientKill() (wd) Player has typed "kill" */ -// #define FN_ClientPutInServer ClientPutInServer /* pfnClientPutInServer() (wd) Client is entering the game */ -// #define FN_ClientCommand ClientCommand /* pfnClientCommand() (wd) Player has sent a command (typed or from a bind) */ -// #define FN_ClientUserInfoChanged ClientUserInfoChanged /* pfnClientUserInfoChanged() (wd) Client has updated their setinfo structure */ -// #define FN_ServerActivate ServerActivate /* pfnServerActivate() (wd) Server is starting a new map */ -// #define FN_ServerDeactivate ServerDeactivate /* pfnServerDeactivate() (wd) Server is leaving the map (shutdown or changelevel); SDK2 */ -// #define FN_PlayerPreThink PlayerPreThink /* pfnPlayerPreThink() */ -// #define FN_PlayerPostThink PlayerPostThink /* pfnPlayerPostThink() */ -// #define FN_StartFrame StartFrame /* pfnStartFrame() */ -// #define FN_ParmsNewLevel ParmsNewLevel /* pfnParmsNewLevel() */ -// #define FN_ParmsChangeLevel ParmsChangeLevel /* pfnParmsChangeLevel() */ -// #define FN_GetGameDescription GetGameDescription /* pfnGetGameDescription() Returns string describing current .dll. E.g. "TeamFotrress 2" "Half-Life" */ -// #define FN_PlayerCustomization PlayerCustomization /* pfnPlayerCustomization() Notifies .dll of new customization for player. */ -// #define FN_SpectatorConnect SpectatorConnect /* pfnSpectatorConnect() Called when spectator joins server */ -// #define FN_SpectatorDisconnect SpectatorDisconnect /* pfnSpectatorDisconnect() Called when spectator leaves the server */ -// #define FN_SpectatorThink SpectatorThink /* pfnSpectatorThink() Called when spectator sends a command packet (usercmd_t) */ -// #define FN_Sys_Error Sys_Error /* pfnSys_Error() Notify game .dll that engine is going to shut down. Allows mod authors to set a breakpoint. SDK2 */ -// #define FN_PM_Move PM_Move /* pfnPM_Move() (wd) SDK2 */ -// #define FN_PM_Init PM_Init /* pfnPM_Init() Server version of player movement initialization; (wd) SDK2 */ -// #define FN_PM_FindTextureType PM_FindTextureType /* pfnPM_FindTextureType() (wd) SDK2 */ -// #define FN_SetupVisibility SetupVisibility /* pfnSetupVisibility() Set up PVS and PAS for networking for this client; (wd) SDK2 */ -// #define FN_UpdateClientData UpdateClientData /* pfnUpdateClientData() Set up data sent only to specific client; (wd) SDK2 */ -// #define FN_AddToFullPack AddToFullPack /* pfnAddToFullPack() (wd) SDK2 */ -// #define FN_CreateBaseline CreateBaseline /* pfnCreateBaseline() Tweak entity baseline for network encoding allows setup of player baselines too.; (wd) SDK2 */ -// #define FN_RegisterEncoders RegisterEncoders /* pfnRegisterEncoders() Callbacks for network encoding; (wd) SDK2 */ -// #define FN_GetWeaponData GetWeaponData /* pfnGetWeaponData() (wd) SDK2 */ -// #define FN_CmdStart CmdStart /* pfnCmdStart() (wd) SDK2 */ -// #define FN_CmdEnd CmdEnd /* pfnCmdEnd() (wd) SDK2 */ -// #define FN_ConnectionlessPacket ConnectionlessPacket /* pfnConnectionlessPacket() (wd) SDK2 */ -// #define FN_GetHullBounds GetHullBounds /* pfnGetHullBounds() (wd) SDK2 */ -// #define FN_CreateInstancedBaselines CreateInstancedBaselines /* pfnCreateInstancedBaselines() (wd) SDK2 */ -// #define FN_InconsistentFile InconsistentFile /* pfnInconsistentFile() (wd) SDK2 */ -// #define FN_AllowLagCompensation AllowLagCompensation /* pfnAllowLagCompensation() (wd) SDK2 */ - -// - GetEntityAPI2_Post functions -// #define FN_GameDLLInit_Post GameDLLInit_Post -// #define FN_DispatchSpawn_Post DispatchSpawn_Post -// #define FN_DispatchThink_Post DispatchThink_Post -// #define FN_DispatchUse_Post DispatchUse_Post -// #define FN_DispatchTouch_Post DispatchTouch_Post -// #define FN_DispatchBlocked_Post DispatchBlocked_Post -// #define FN_DispatchKeyValue_Post DispatchKeyValue_Post -// #define FN_DispatchSave_Post DispatchSave_Post -// #define FN_DispatchRestore_Post DispatchRestore_Post -// #define FN_DispatchObjectCollsionBox_Post DispatchObjectCollsionBox_Post -// #define FN_SaveWriteFields_Post SaveWriteFields_Post -// #define FN_SaveReadFields_Post SaveReadFields_Post -// #define FN_SaveGlobalState_Post SaveGlobalState_Post -// #define FN_RestoreGlobalState_Post RestoreGlobalState_Post -// #define FN_ResetGlobalState_Post ResetGlobalState_Post -// #define FN_ClientConnect_Post ClientConnect_Post -// #define FN_ClientDisconnect_Post ClientDisconnect_Post -// #define FN_ClientKill_Post ClientKill_Post -// #define FN_ClientPutInServer_Post ClientPutInServer_Post -// #define FN_ClientCommand_Post ClientCommand_Post -// #define FN_ClientUserInfoChanged_Post ClientUserInfoChanged_Post -// #define FN_ServerActivate_Post ServerActivate_Post -// #define FN_ServerDeactivate_Post ServerDeactivate_Post -// #define FN_PlayerPreThink_Post PlayerPreThink_Post -// #define FN_PlayerPostThink_Post PlayerPostThink_Post -// #define FN_StartFrame_Post StartFrame_Post -// #define FN_ParmsNewLevel_Post ParmsNewLevel_Post -// #define FN_ParmsChangeLevel_Post ParmsChangeLevel_Post -// #define FN_GetGameDescription_Post GetGameDescription_Post -// #define FN_PlayerCustomization_Post PlayerCustomization_Post -// #define FN_SpectatorConnect_Post SpectatorConnect_Post -// #define FN_SpectatorDisconnect_Post SpectatorDisconnect_Post -// #define FN_SpectatorThink_Post SpectatorThink_Post -// #define FN_Sys_Error_Post Sys_Error_Post -// #define FN_PM_Move_Post PM_Move_Post -// #define FN_PM_Init_Post PM_Init_Post -// #define FN_PM_FindTextureType_Post PM_FindTextureType_Post -// #define FN_SetupVisibility_Post SetupVisibility_Post -// #define FN_UpdateClientData_Post UpdateClientData_Post -// #define FN_AddToFullPack_Post AddToFullPack_Post -// #define FN_CreateBaseline_Post CreateBaseline_Post -// #define FN_RegisterEncoders_Post RegisterEncoders_Post -// #define FN_GetWeaponData_Post GetWeaponData_Post -// #define FN_CmdStart_Post CmdStart_Post -// #define FN_CmdEnd_Post CmdEnd_Post -// #define FN_ConnectionlessPacket_Post ConnectionlessPacket_Post -// #define FN_GetHullBounds_Post GetHullBounds_Post -// #define FN_CreateInstancedBaselines_Post CreateInstancedBaselines_Post -// #define FN_InconsistentFile_Post InconsistentFile_Post -// #define FN_AllowLagCompensation_Post AllowLagCompensation_Post - -// - GetEngineAPI functions -// #define FN_PrecacheModel PrecacheModel -// #define FN_PrecacheSound PrecacheSound -// #define FN_SetModel SetModel -// #define FN_ModelIndex ModelIndex -// #define FN_ModelFrames ModelFrames -// #define FN_SetSize SetSize -// #define FN_ChangeLevel ChangeLevel -// #define FN_GetSpawnParms GetSpawnParms -// #define FN_SaveSpawnParms SaveSpawnParms -// #define FN_VecToYaw VecToYaw -// #define FN_VecToAngles VecToAngles -// #define FN_MoveToOrigin MoveToOrigin -// #define FN_ChangeYaw ChangeYaw -// #define FN_ChangePitch ChangePitch -// #define FN_FindEntityByString FindEntityByString -// #define FN_GetEntityIllum GetEntityIllum -// #define FN_FindEntityInSphere FindEntityInSphere -// #define FN_FindClientInPVS FindClientInPVS -// #define FN_EntitiesInPVS EntitiesInPVS -// #define FN_MakeVectors MakeVectors -// #define FN_AngleVectors AngleVectors -// #define FN_CreateEntity CreateEntity -// #define FN_RemoveEntity RemoveEntity -// #define FN_CreateNamedEntity CreateNamedEntity -// #define FN_MakeStatic MakeStatic -// #define FN_EntIsOnFloor EntIsOnFloor -// #define FN_DropToFloor DropToFloor -// #define FN_WalkMove WalkMove -// #define FN_SetOrigin SetOrigin -// #define FN_EmitSound EmitSound -// #define FN_EmitAmbientSound EmitAmbientSound -// #define FN_TraceLine TraceLine -// #define FN_TraceToss TraceToss -// #define FN_TraceMonsterHull TraceMonsterHull -// #define FN_TraceHull TraceHull -// #define FN_TraceModel TraceModel -// #define FN_TraceTexture TraceTexture -// #define FN_TraceSphere TraceSphere -// #define FN_GetAimVector GetAimVector -// #define FN_ServerCommand ServerCommand -// #define FN_ServerExecute ServerExecute -// #define FN_engClientCommand engClientCommand -// #define FN_ParticleEffect ParticleEffect -// #define FN_LightStyle LightStyle -// #define FN_DecalIndex DecalIndex -// #define FN_PointContents PointContents -// #define FN_MessageBegin MessageBegin -// #define FN_MessageEnd MessageEnd -// #define FN_WriteByte WriteByte -// #define FN_WriteChar WriteChar -// #define FN_WriteShort WriteShort -// #define FN_WriteLong WriteLong -// #define FN_WriteAngle WriteAngle -// #define FN_WriteCoord WriteCoord -// #define FN_WriteString WriteString -// #define FN_WriteEntity WriteEntity -// #define FN_CVarRegister CVarRegister -// #define FN_CVarGetFloat CVarGetFloat -// #define FN_CVarGetString CVarGetString -// #define FN_CVarSetFloat CVarSetFloat -// #define FN_CVarSetString CVarSetString -// #define FN_AlertMessage AlertMessage -// #define FN_EngineFprintf EngineFprintf -// #define FN_PvAllocEntPrivateData PvAllocEntPrivateData -// #define FN_PvEntPrivateData PvEntPrivateData -// #define FN_FreeEntPrivateData FreeEntPrivateData -// #define FN_SzFromIndex SzFromIndex -// #define FN_AllocString AllocString -// #define FN_GetVarsOfEnt GetVarsOfEnt -// #define FN_PEntityOfEntOffset PEntityOfEntOffset -// #define FN_EntOffsetOfPEntity EntOffsetOfPEntity -// #define FN_IndexOfEdict IndexOfEdict -// #define FN_PEntityOfEntIndex PEntityOfEntIndex -// #define FN_FindEntityByVars FindEntityByVars -// #define FN_GetModelPtr GetModelPtr -// #define FN_RegUserMsg RegUserMsg -// #define FN_AnimationAutomove AnimationAutomove -// #define FN_GetBonePosition GetBonePosition -// #define FN_FunctionFromName FunctionFromName -// #define FN_NameForFunction NameForFunction -// #define FN_ClientPrintf ClientPrintf -// #define FN_ServerPrint ServerPrint -// #define FN_Cmd_Args Cmd_Args -// #define FN_Cmd_Argv Cmd_Argv -// #define FN_Cmd_Argc Cmd_Argc -// #define FN_GetAttachment GetAttachment -// #define FN_CRC32_Init CRC32_Init -// #define FN_CRC32_ProcessBuffer CRC32_ProcessBuffer -// #define FN_CRC32_ProcessByte CRC32_ProcessByte -// #define FN_CRC32_Final CRC32_Final -// #define FN_RandomLong RandomLong -// #define FN_RandomFloat RandomFloat -// #define FN_SetView SetView -// #define FN_Time Time -// #define FN_CrosshairAngle CrosshairAngle -// #define FN_LoadFileForMe LoadFileForMe -// #define FN_FreeFile FreeFile -// #define FN_EndSection EndSection -// #define FN_CompareFileTime CompareFileTime -// #define FN_GetGameDir GetGameDir -// #define FN_Cvar_RegisterVariable Cvar_RegisterVariable -// #define FN_FadeClientVolume FadeClientVolume -// #define FN_SetClientMaxspeed SetClientMaxspeed -// #define FN_CreateFakeClient CreateFakeClient -// #define FN_RunPlayerMove RunPlayerMove -// #define FN_NumberOfEntities NumberOfEntities -// #define FN_GetInfoKeyBuffer GetInfoKeyBuffer -// #define FN_InfoKeyValue InfoKeyValue -// #define FN_SetKeyValue SetKeyValue -// #define FN_SetClientKeyValue SetClientKeyValue -// #define FN_IsMapValid IsMapValid -// #define FN_StaticDecal StaticDecal -// #define FN_PrecacheGeneric PrecacheGeneric -// #define FN_GetPlayerUserId GetPlayerUserId -// #define FN_BuildSoundMsg BuildSoundMsg -// #define FN_IsDedicatedServer IsDedicatedServer -// #define FN_CVarGetPointer CVarGetPointer -// #define FN_GetPlayerWONId GetPlayerWONId -// #define FN_Info_RemoveKey Info_RemoveKey -// #define FN_GetPhysicsKeyValue GetPhysicsKeyValue -// #define FN_SetPhysicsKeyValue SetPhysicsKeyValue -// #define FN_GetPhysicsInfoString GetPhysicsInfoString -// #define FN_PrecacheEvent PrecacheEvent -// #define FN_PlaybackEvent PlaybackEvent -// #define FN_SetFatPVS SetFatPVS -// #define FN_SetFatPAS SetFatPAS -// #define FN_CheckVisibility CheckVisibility -// #define FN_DeltaSetField DeltaSetField -// #define FN_DeltaUnsetField DeltaUnsetField -// #define FN_DeltaAddEncoder DeltaAddEncoder -// #define FN_GetCurrentPlayer GetCurrentPlayer -// #define FN_CanSkipPlayer CanSkipPlayer -// #define FN_DeltaFindField DeltaFindField -// #define FN_DeltaSetFieldByIndex DeltaSetFieldByIndex -// #define FN_DeltaUnsetFieldByIndex DeltaUnsetFieldByIndex -// #define FN_SetGroupMask SetGroupMask -// #define FN_engCreateInstancedBaseline engCreateInstancedBaseline -// #define FN_Cvar_DirectSet Cvar_DirectSet -// #define FN_ForceUnmodified ForceUnmodified -// #define FN_GetPlayerStats GetPlayerStats -// #define FN_AddServerCommand AddServerCommand -// #define FN_Voice_GetClientListening Voice_GetClientListening -// #define FN_Voice_SetClientListening Voice_SetClientListening -// #define FN_GetPlayerAuthId GetPlayerAuthId - -// - GetEngineAPI_Post functions -// #define FN_PrecacheModel_Post PrecacheModel_Post -// #define FN_PrecacheSound_Post PrecacheSound_Post -// #define FN_SetModel_Post SetModel_Post -// #define FN_ModelIndex_Post ModelIndex_Post -// #define FN_ModelFrames_Post ModelFrames_Post -// #define FN_SetSize_Post SetSize_Post -// #define FN_ChangeLevel_Post ChangeLevel_Post -// #define FN_GetSpawnParms_Post GetSpawnParms_Post -// #define FN_SaveSpawnParms_Post SaveSpawnParms_Post -// #define FN_VecToYaw_Post VecToYaw_Post -// #define FN_VecToAngles_Post VecToAngles_Post -// #define FN_MoveToOrigin_Post MoveToOrigin_Post -// #define FN_ChangeYaw_Post ChangeYaw_Post -// #define FN_ChangePitch_Post ChangePitch_Post -// #define FN_FindEntityByString_Post FindEntityByString_Post -// #define FN_GetEntityIllum_Post GetEntityIllum_Post -// #define FN_FindEntityInSphere_Post FindEntityInSphere_Post -// #define FN_FindClientInPVS_Post FindClientInPVS_Post -// #define FN_EntitiesInPVS_Post EntitiesInPVS_Post -// #define FN_MakeVectors_Post MakeVectors_Post -// #define FN_AngleVectors_Post AngleVectors_Post -// #define FN_CreateEntity_Post CreateEntity_Post -// #define FN_RemoveEntity_Post RemoveEntity_Post -// #define FN_CreateNamedEntity_Post CreateNamedEntity_Post -// #define FN_MakeStatic_Post MakeStatic_Post -// #define FN_EntIsOnFloor_Post EntIsOnFloor_Post -// #define FN_DropToFloor_Post DropToFloor_Post -// #define FN_WalkMove_Post WalkMove_Post -// #define FN_SetOrigin_Post SetOrigin_Post -// #define FN_EmitSound_Post EmitSound_Post -// #define FN_EmitAmbientSound_Post EmitAmbientSound_Post -// #define FN_TraceLine_Post TraceLine_Post -// #define FN_TraceToss_Post TraceToss_Post -// #define FN_TraceMonsterHull_Post TraceMonsterHull_Post -// #define FN_TraceHull_Post TraceHull_Post -// #define FN_TraceModel_Post TraceModel_Post -// #define FN_TraceTexture_Post TraceTexture_Post -// #define FN_TraceSphere_Post TraceSphere_Post -// #define FN_GetAimVector_Post GetAimVector_Post -// #define FN_ServerCommand_Post ServerCommand_Post -// #define FN_ServerExecute_Post ServerExecute_Post -// #define FN_engClientCommand_Post engClientCommand_Post -// #define FN_ParticleEffect_Post ParticleEffect_Post -// #define FN_LightStyle_Post LightStyle_Post -// #define FN_DecalIndex_Post DecalIndex_Post -// #define FN_PointContents_Post PointContents_Post -// #define FN_MessageBegin_Post MessageBegin_Post -// #define FN_MessageEnd_Post MessageEnd_Post -// #define FN_WriteByte_Post WriteByte_Post -// #define FN_WriteChar_Post WriteChar_Post -// #define FN_WriteShort_Post WriteShort_Post -// #define FN_WriteLong_Post WriteLong_Post -// #define FN_WriteAngle_Post WriteAngle_Post -// #define FN_WriteCoord_Post WriteCoord_Post -// #define FN_WriteString_Post WriteString_Post -// #define FN_WriteEntity_Post WriteEntity_Post -// #define FN_CVarRegister_Post CVarRegister_Post -// #define FN_CVarGetFloat_Post CVarGetFloat_Post -// #define FN_CVarGetString_Post CVarGetString_Post -// #define FN_CVarSetFloat_Post CVarSetFloat_Post -// #define FN_CVarSetString_Post CVarSetString_Post -// #define FN_AlertMessage_Post AlertMessage_Post -// #define FN_EngineFprintf_Post EngineFprintf_Post -// #define FN_PvAllocEntPrivateData_Post PvAllocEntPrivateData_Post -// #define FN_PvEntPrivateData_Post PvEntPrivateData_Post -// #define FN_FreeEntPrivateData_Post FreeEntPrivateData_Post -// #define FN_SzFromIndex_Post SzFromIndex_Post -// #define FN_AllocString_Post AllocString_Post -// #define FN_GetVarsOfEnt_Post GetVarsOfEnt_Post -// #define FN_PEntityOfEntOffset_Post PEntityOfEntOffset_Post -// #define FN_EntOffsetOfPEntity_Post EntOffsetOfPEntity_Post -// #define FN_IndexOfEdict_Post IndexOfEdict_Post -// #define FN_PEntityOfEntIndex_Post PEntityOfEntIndex_Post -// #define FN_FindEntityByVars_Post FindEntityByVars_Post -// #define FN_GetModelPtr_Post GetModelPtr_Post -// #define FN_RegUserMsg_Post RegUserMsg_Post -// #define FN_AnimationAutomove_Post AnimationAutomove_Post -// #define FN_GetBonePosition_Post GetBonePosition_Post -// #define FN_FunctionFromName_Post FunctionFromName_Post -// #define FN_NameForFunction_Post NameForFunction_Post -// #define FN_ClientPrintf_Post ClientPrintf_Post -// #define FN_ServerPrint_Post ServerPrint_Post -// #define FN_Cmd_Args_Post Cmd_Args_Post -// #define FN_Cmd_Argv_Post Cmd_Argv_Post -// #define FN_Cmd_Argc_Post Cmd_Argc_Post -// #define FN_GetAttachment_Post GetAttachment_Post -// #define FN_CRC32_Init_Post CRC32_Init_Post -// #define FN_CRC32_ProcessBuffer_Post CRC32_ProcessBuffer_Post -// #define FN_CRC32_ProcessByte_Post CRC32_ProcessByte_Post -// #define FN_CRC32_Final_Post CRC32_Final_Post -// #define FN_RandomLong_Post RandomLong_Post -// #define FN_RandomFloat_Post RandomFloat_Post -// #define FN_SetView_Post SetView_Post -// #define FN_Time_Post Time_Post -// #define FN_CrosshairAngle_Post CrosshairAngle_Post -// #define FN_LoadFileForMe_Post LoadFileForMe_Post -// #define FN_FreeFile_Post FreeFile_Post -// #define FN_EndSection_Post EndSection_Post -// #define FN_CompareFileTime_Post CompareFileTime_Post -// #define FN_GetGameDir_Post GetGameDir_Post -// #define FN_Cvar_RegisterVariable_Post Cvar_RegisterVariable_Post -// #define FN_FadeClientVolume_Post FadeClientVolume_Post -// #define FN_SetClientMaxspeed_Post SetClientMaxspeed_Post -// #define FN_CreateFakeClient_Post CreateFakeClient_Post -// #define FN_RunPlayerMove_Post RunPlayerMove_Post -// #define FN_NumberOfEntities_Post NumberOfEntities_Post -// #define FN_GetInfoKeyBuffer_Post GetInfoKeyBuffer_Post -// #define FN_InfoKeyValue_Post InfoKeyValue_Post -// #define FN_SetKeyValue_Post SetKeyValue_Post -// #define FN_SetClientKeyValue_Post SetClientKeyValue_Post -// #define FN_IsMapValid_Post IsMapValid_Post -// #define FN_StaticDecal_Post StaticDecal_Post -// #define FN_PrecacheGeneric_Post PrecacheGeneric_Post -// #define FN_GetPlayerUserId_Post GetPlayerUserId_Post -// #define FN_BuildSoundMsg_Post BuildSoundMsg_Post -// #define FN_IsDedicatedServer_Post IsDedicatedServer_Post -// #define FN_CVarGetPointer_Post CVarGetPointer_Post -// #define FN_GetPlayerWONId_Post GetPlayerWONId_Post -// #define FN_Info_RemoveKey_Post Info_RemoveKey_Post -// #define FN_GetPhysicsKeyValue_Post GetPhysicsKeyValue_Post -// #define FN_SetPhysicsKeyValue_Post SetPhysicsKeyValue_Post -// #define FN_GetPhysicsInfoString_Post GetPhysicsInfoString_Post -// #define FN_PrecacheEvent_Post PrecacheEvent_Post -// #define FN_PlaybackEvent_Post PlaybackEvent_Post -// #define FN_SetFatPVS_Post SetFatPVS_Post -// #define FN_SetFatPAS_Post SetFatPAS_Post -// #define FN_CheckVisibility_Post CheckVisibility_Post -// #define FN_DeltaSetField_Post DeltaSetField_Post -// #define FN_DeltaUnsetField_Post DeltaUnsetField_Post -// #define FN_DeltaAddEncoder_Post DeltaAddEncoder_Post -// #define FN_GetCurrentPlayer_Post GetCurrentPlayer_Post -// #define FN_CanSkipPlayer_Post CanSkipPlayer_Post -// #define FN_DeltaFindField_Post DeltaFindField_Post -// #define FN_DeltaSetFieldByIndex_Post DeltaSetFieldByIndex_Post -// #define FN_DeltaUnsetFieldByIndex_Post DeltaUnsetFieldByIndex_Post -// #define FN_SetGroupMask_Post SetGroupMask_Post -// #define FN_engCreateInstancedBaseline_Post engCreateInstancedBaseline_Post -// #define FN_Cvar_DirectSet_Post Cvar_DirectSet_Post -// #define FN_ForceUnmodified_Post ForceUnmodified_Post -// #define FN_GetPlayerStats_Post GetPlayerStats_Post -// #define FN_AddServerCommand_Post AddServerCommand_Post -// #define FN_Voice_GetClientListening_Post Voice_GetClientListening_Post -// #define FN_Voice_SetClientListening_Post Voice_SetClientListening_Post -// #define FN_GetPlayerAuthId_Post GetPlayerAuthId_Post - -// #define FN_OnFreeEntPrivateData OnFreeEntPrivateData -// #define FN_GameShutdown GameShutdown -// #define FN_ShouldCollide ShouldCollide - -// #define FN_OnFreeEntPrivateData_Post OnFreeEntPrivateData_Post -// #define FN_GameShutdown_Post GameShutdown_Post -// #define FN_ShouldCollide_Post ShouldCollide_Post - - -#endif // USE_METAMOD - -#endif // __MODULECONFIG_H__ - diff --git a/dlls/arrayx/Array.cpp b/dlls/arrayx/Array.cpp deleted file mode 100644 index 293a4f69..00000000 --- a/dlls/arrayx/Array.cpp +++ /dev/null @@ -1,34 +0,0 @@ -#include "amxxmodule.h" -#include "ComboArray.h" - -extern AMX_NATIVE_INFO bintrie_exports[]; -extern AMX_NATIVE_INFO bintrie_usage_exports[]; -extern ComboArray MasterTrie; - -extern AMX_NATIVE_INFO list_exports[]; -extern AMX_NATIVE_INFO list_creation_exports[]; -extern ComboArray MasterList; - -extern AMX_NATIVE_INFO map_exports[]; -extern AMX_NATIVE_INFO map_creation_exports[]; -extern ComboArray MasterMap; - - -void OnAmxxAttach( void ) -{ - MF_AddNatives(bintrie_exports); - MF_AddNatives(bintrie_usage_exports); - - MF_AddNatives(list_exports); - MF_AddNatives(list_creation_exports); - - MF_AddNatives(map_exports); - MF_AddNatives(map_creation_exports); -} - -void OnAmxxDetach( void ) -{ - JudyClearMasterTrie(&MasterTrie); - JudyClearMasterList(&MasterList); - JudyClearMasterMap(&MasterMap); -} \ No newline at end of file diff --git a/dlls/arrayx/Array.dep b/dlls/arrayx/Array.dep deleted file mode 100644 index ccb224a6..00000000 --- a/dlls/arrayx/Array.dep +++ /dev/null @@ -1,175 +0,0 @@ -# Microsoft Developer Studio Generated Dependency File, included by Array.mak - -.\Array.cpp : \ - "..\..\..\..\..\..\program files\microsoft visual studio\vc98\include\basetsd.h"\ - ".\amxxmodule.h"\ - ".\Capsule.h"\ - ".\CArray.h"\ - ".\CBaseList.h"\ - ".\CBaseMap.h"\ - ".\CBinTrie.h"\ - ".\ComboArray.h"\ - ".\Judy.h"\ - ".\JudyEx.h"\ - ".\JudyExtra.h"\ - ".\JudyIncludes.h"\ - ".\JudyVar.h"\ - ".\JudyVec.h"\ - ".\moduleconfig.h"\ - ".\osdefs.h"\ - - -.\BinTrieNatives.cpp : \ - "..\..\..\..\..\..\program files\microsoft visual studio\vc98\include\basetsd.h"\ - ".\amxxmodule.h"\ - ".\BinTrieNativeFunctions.h"\ - ".\Capsule.h"\ - ".\CArray.h"\ - ".\CBaseList.h"\ - ".\CBaseMap.h"\ - ".\CBinTrie.h"\ - ".\ComboArray.h"\ - ".\GenericNatives.h"\ - ".\Judy.h"\ - ".\JudyEx.h"\ - ".\JudyExtra.h"\ - ".\JudyIncludes.h"\ - ".\JudyVar.h"\ - ".\JudyVec.h"\ - ".\moduleconfig.h"\ - ".\NativeIncludes.h"\ - ".\osdefs.h"\ - - -.\Capsule.cpp : \ - "..\..\..\..\..\..\program files\microsoft visual studio\vc98\include\basetsd.h"\ - ".\amxxmodule.h"\ - ".\Capsule.h"\ - ".\Judy.h"\ - ".\JudyEx.h"\ - ".\JudyIncludes.h"\ - ".\JudyVar.h"\ - ".\JudyVec.h"\ - ".\moduleconfig.h"\ - ".\osdefs.h"\ - - -.\CArray.cpp : \ - "..\..\..\..\..\..\program files\microsoft visual studio\vc98\include\basetsd.h"\ - ".\amxxmodule.h"\ - ".\Capsule.h"\ - ".\CArray.h"\ - ".\CBaseList.h"\ - ".\CBaseMap.h"\ - ".\Judy.h"\ - ".\JudyEx.h"\ - ".\JudyExtra.h"\ - ".\JudyIncludes.h"\ - ".\JudyVar.h"\ - ".\JudyVec.h"\ - ".\moduleconfig.h"\ - ".\osdefs.h"\ - - -.\CBinTrie.cpp : \ - "..\..\..\..\..\..\program files\microsoft visual studio\vc98\include\basetsd.h"\ - ".\amxxmodule.h"\ - ".\Capsule.h"\ - ".\CBaseList.h"\ - ".\CBaseMap.h"\ - ".\CBinTrie.h"\ - ".\Judy.h"\ - ".\JudyEx.h"\ - ".\JudyExtra.h"\ - ".\JudyIncludes.h"\ - ".\JudyVar.h"\ - ".\JudyVec.h"\ - ".\moduleconfig.h"\ - ".\osdefs.h"\ - - -.\CKeytable.cpp : \ - "..\..\..\..\..\..\program files\microsoft visual studio\vc98\include\basetsd.h"\ - ".\amxxmodule.h"\ - ".\Capsule.h"\ - ".\CBaseList.h"\ - ".\CBaseMap.h"\ - ".\CKeytable.h"\ - ".\Judy.h"\ - ".\JudyEx.h"\ - ".\JudyExtra.h"\ - ".\JudyIncludes.h"\ - ".\JudyVar.h"\ - ".\JudyVec.h"\ - ".\moduleconfig.h"\ - ".\osdefs.h"\ - - -.\JudyExtra.cpp : \ - "..\..\..\..\..\..\program files\microsoft visual studio\vc98\include\basetsd.h"\ - ".\amxxmodule.h"\ - ".\Capsule.h"\ - ".\CBaseList.h"\ - ".\CBaseMap.h"\ - ".\CBinTrie.h"\ - ".\Judy.h"\ - ".\JudyEx.h"\ - ".\JudyExtra.h"\ - ".\JudyIncludes.h"\ - ".\JudyVar.h"\ - ".\JudyVec.h"\ - ".\moduleconfig.h"\ - ".\osdefs.h"\ - - -.\ListNatives.cpp : \ - "..\..\..\..\..\..\program files\microsoft visual studio\vc98\include\basetsd.h"\ - ".\amxxmodule.h"\ - ".\Capsule.h"\ - ".\CArray.h"\ - ".\CBaseList.h"\ - ".\CBaseMap.h"\ - ".\CBinTrie.h"\ - ".\ComboArray.h"\ - ".\GenericNatives.h"\ - ".\Judy.h"\ - ".\JudyEx.h"\ - ".\JudyExtra.h"\ - ".\JudyIncludes.h"\ - ".\JudyVar.h"\ - ".\JudyVec.h"\ - ".\ListNativeFunctions.h"\ - ".\moduleconfig.h"\ - ".\NativeIncludes.h"\ - ".\osdefs.h"\ - - -.\MapNatives.cpp : \ - "..\..\..\..\..\..\program files\microsoft visual studio\vc98\include\basetsd.h"\ - ".\amxxmodule.h"\ - ".\Capsule.h"\ - ".\CArray.h"\ - ".\CBaseList.h"\ - ".\CBaseMap.h"\ - ".\CBinTrie.h"\ - ".\CHashtable.h"\ - ".\CKeytable.h"\ - ".\ComboArray.h"\ - ".\ComboTable.h"\ - ".\GenericNatives.h"\ - ".\Judy.h"\ - ".\JudyEx.h"\ - ".\JudyExtra.h"\ - ".\JudyIncludes.h"\ - ".\JudyVar.h"\ - ".\JudyVec.h"\ - ".\MapNativeFunctions.h"\ - ".\moduleconfig.h"\ - ".\NativeIncludes.h"\ - ".\osdefs.h"\ - - -.\amxxmodule.cpp : \ - ".\amxxmodule.h"\ - ".\moduleconfig.h"\ - diff --git a/dlls/arrayx/Array.dsp b/dlls/arrayx/Array.dsp deleted file mode 100644 index 5fdfc06e..00000000 --- a/dlls/arrayx/Array.dsp +++ /dev/null @@ -1,237 +0,0 @@ -# Microsoft Developer Studio Project File - Name="Array" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 - -CFG=Array - Win32 Debug -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "Array.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "Array.mak" CFG="Array - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "Array - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") -!MESSAGE "Array - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -MTL=midl.exe -RSC=rc.exe - -!IF "$(CFG)" == "Array - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "Release" -# PROP Intermediate_Dir "Release" -# PROP Target_Dir "" -# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "ARRAY_EXPORTS" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "ARRAY_EXPORTS" /FR /YX /FD /c -# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 -# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 - -!ELSEIF "$(CFG)" == "Array - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "Debug" -# PROP Intermediate_Dir "Debug" -# PROP Target_Dir "" -# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "ARRAY_EXPORTS" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "ARRAY_EXPORTS" /YX /FD /GZ /c -# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 -# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept - -!ENDIF - -# Begin Target - -# Name "Array - Win32 Release" -# Name "Array - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=.\Array.cpp -# End Source File -# Begin Source File - -SOURCE=.\BinTrieNatives.cpp -# End Source File -# Begin Source File - -SOURCE=.\Capsule.cpp -# End Source File -# Begin Source File - -SOURCE=.\CArray.cpp -# End Source File -# Begin Source File - -SOURCE=.\CBinTrie.cpp -# End Source File -# Begin Source File - -SOURCE=.\CKeytable.cpp -# End Source File -# Begin Source File - -SOURCE=.\JudyExtra.cpp -# End Source File -# Begin Source File - -SOURCE=.\ListNatives.cpp -# End Source File -# Begin Source File - -SOURCE=.\MapNatives.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=.\Capsule.h -# End Source File -# Begin Source File - -SOURCE=.\CArray.h -# End Source File -# Begin Source File - -SOURCE=.\CBaseList.h -# End Source File -# Begin Source File - -SOURCE=.\CBaseMap.h -# End Source File -# Begin Source File - -SOURCE=.\CBinTrie.h -# End Source File -# Begin Source File - -SOURCE=.\CHashtable.h -# End Source File -# Begin Source File - -SOURCE=.\CKeytable.h -# End Source File -# Begin Source File - -SOURCE=.\ComboArray.h -# End Source File -# Begin Source File - -SOURCE=.\ComboTable.h -# End Source File -# Begin Source File - -SOURCE=.\JudyIncludes.h -# End Source File -# End Group -# Begin Group "Resource Files" - -# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" -# Begin Source File - -SOURCE=.\amxxmodule.cpp -# End Source File -# Begin Source File - -SOURCE=.\amxxmodule.h -# End Source File -# Begin Source File - -SOURCE=.\BinTrieNativeFunctions.h -# End Source File -# Begin Source File - -SOURCE=.\GenericNatives.h -# End Source File -# Begin Source File - -SOURCE=.\Judy.h -# End Source File -# Begin Source File - -SOURCE=.\JudyEx.h -# End Source File -# Begin Source File - -SOURCE=.\JudyExtra.h -# End Source File -# Begin Source File - -SOURCE=.\JudyVar.h -# End Source File -# Begin Source File - -SOURCE=.\JudyVec.h -# End Source File -# Begin Source File - -SOURCE=.\ListNativeFunctions.h -# End Source File -# Begin Source File - -SOURCE=.\MapNativeFunctions.h -# End Source File -# Begin Source File - -SOURCE=.\moduleconfig.h -# End Source File -# Begin Source File - -SOURCE=.\NativeIncludes.h -# End Source File -# Begin Source File - -SOURCE=.\osdefs.h -# End Source File -# Begin Source File - -SOURCE=.\Judy.lib -# End Source File -# End Group -# End Target -# End Project diff --git a/dlls/arrayx/Array.dsw b/dlls/arrayx/Array.dsw deleted file mode 100644 index b670e501..00000000 --- a/dlls/arrayx/Array.dsw +++ /dev/null @@ -1,29 +0,0 @@ -Microsoft Developer Studio Workspace File, Format Version 6.00 -# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! - -############################################################################### - -Project: "Array"=".\Array.dsp" - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - diff --git a/dlls/arrayx/Array.ncb b/dlls/arrayx/Array.ncb deleted file mode 100644 index efeb85a123717350317e1b75286e13f04bbda804..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 279552 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 diff --git a/dlls/arrayx/Array.plg b/dlls/arrayx/Array.plg deleted file mode 100644 index a1fdb334..00000000 --- a/dlls/arrayx/Array.plg +++ /dev/null @@ -1,110 +0,0 @@ - - -
-

Build Log

-

---------------------Configuration: Array - Win32 Release-------------------- -

-

Command Lines

-Creating temporary file "C:\DOCUME~1\Edward\LOCALS~1\Temp\RSPED.tmp" with contents -[ -/nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "ARRAY_EXPORTS" /FR"Release/" /Fp"Release/Array.pch" /YX /Fo"Release/" /Fd"Release/" /FD /c -"C:\Array\Array.cpp" -"C:\Array\BinTrieNatives.cpp" -"C:\Array\Capsule.cpp" -"C:\Array\CArray.cpp" -"C:\Array\CBinTrie.cpp" -"C:\Array\CKeytable.cpp" -"C:\Array\JudyExtra.cpp" -"C:\Array\ListNatives.cpp" -"C:\Array\MapNatives.cpp" -"C:\Array\amxxmodule.cpp" -] -Creating command line "cl.exe @C:\DOCUME~1\Edward\LOCALS~1\Temp\RSPED.tmp" -Creating temporary file "C:\DOCUME~1\Edward\LOCALS~1\Temp\RSPEE.tmp" with contents -[ -kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /incremental:no /pdb:"Release/Array.pdb" /machine:I386 /out:"Release/Array.dll" /implib:"Release/Array.lib" -.\Release\Array.obj -.\Release\BinTrieNatives.obj -.\Release\Capsule.obj -.\Release\CArray.obj -.\Release\CBinTrie.obj -.\Release\CKeytable.obj -.\Release\JudyExtra.obj -.\Release\ListNatives.obj -.\Release\MapNatives.obj -.\Release\amxxmodule.obj -.\Judy.lib -] -Creating command line "link.exe @C:\DOCUME~1\Edward\LOCALS~1\Temp\RSPEE.tmp" -

Output Window

-Compiling... -Array.cpp -BinTrieNatives.cpp -Capsule.cpp -CArray.cpp -CBinTrie.cpp -CKeytable.cpp -JudyExtra.cpp -C:\Array\JudyExtra.cpp(10) : warning C4101: 'e' : unreferenced local variable -C:\Array\JudyExtra.cpp(15) : warning C4101: 'e' : unreferenced local variable -C:\Array\JudyExtra.cpp(20) : warning C4101: 'e' : unreferenced local variable -C:\Array\JudyExtra.cpp(23) : warning C4101: 'e' : unreferenced local variable -C:\Array\JudyExtra.cpp(34) : warning C4101: 'e' : unreferenced local variable -C:\Array\JudyExtra.cpp(41) : warning C4101: 'e' : unreferenced local variable -C:\Array\JudyExtra.cpp(66) : warning C4101: 'e' : unreferenced local variable -C:\Array\JudyExtra.cpp(102) : warning C4101: 'e' : unreferenced local variable -C:\Array\JudyExtra.cpp(107) : warning C4101: 'e' : unreferenced local variable -C:\Array\JudyExtra.cpp(112) : warning C4101: 'e' : unreferenced local variable -C:\Array\JudyExtra.cpp(115) : warning C4101: 'e' : unreferenced local variable -C:\Array\JudyExtra.cpp(127) : warning C4101: 'e' : unreferenced local variable -C:\Array\JudyExtra.cpp(132) : warning C4101: 'e' : unreferenced local variable -C:\Array\JudyExtra.cpp(137) : warning C4101: 'e' : unreferenced local variable -C:\Array\JudyExtra.cpp(140) : warning C4101: 'e' : unreferenced local variable -C:\Array\JudyExtra.cpp(160) : warning C4101: 'e' : unreferenced local variable -C:\Array\JudyExtra.cpp(164) : warning C4101: 'e' : unreferenced local variable -C:\Array\JudyExtra.cpp(167) : warning C4101: 'e' : unreferenced local variable -C:\Array\JudyExtra.cpp(190) : warning C4101: 'e' : unreferenced local variable -C:\Array\JudyExtra.cpp(205) : warning C4101: 'e' : unreferenced local variable -C:\Array\JudyExtra.cpp(210) : warning C4101: 'e' : unreferenced local variable -C:\Array\JudyExtra.cpp(215) : warning C4101: 'e' : unreferenced local variable -C:\Array\JudyExtra.cpp(218) : warning C4101: 'e' : unreferenced local variable -C:\Array\JudyExtra.cpp(230) : warning C4101: 'e' : unreferenced local variable -C:\Array\JudyExtra.cpp(235) : warning C4101: 'e' : unreferenced local variable -C:\Array\JudyExtra.cpp(240) : warning C4101: 'e' : unreferenced local variable -C:\Array\JudyExtra.cpp(243) : warning C4101: 'e' : unreferenced local variable -C:\Array\JudyExtra.cpp(258) : warning C4101: 'e' : unreferenced local variable -C:\Array\JudyExtra.cpp(266) : warning C4101: 'e' : unreferenced local variable -C:\Array\JudyExtra.cpp(274) : warning C4101: 'e' : unreferenced local variable -C:\Array\JudyExtra.cpp(277) : warning C4101: 'e' : unreferenced local variable -C:\Array\JudyExtra.cpp(305) : warning C4101: 'e' : unreferenced local variable -ListNatives.cpp -MapNatives.cpp -amxxmodule.cpp -Linking... - Creating library Release/Array.lib and object Release/Array.exp -LINK : warning LNK4098: defaultlib "LIBC" conflicts with use of other libs; use /NODEFAULTLIB:library -Creating temporary file "C:\DOCUME~1\Edward\LOCALS~1\Temp\RSPF2.tmp" with contents -[ -/nologo /o"Release/Array.bsc" -.\Release\Array.sbr -.\Release\BinTrieNatives.sbr -.\Release\Capsule.sbr -.\Release\CArray.sbr -.\Release\CBinTrie.sbr -.\Release\CKeytable.sbr -.\Release\JudyExtra.sbr -.\Release\ListNatives.sbr -.\Release\MapNatives.sbr -.\Release\amxxmodule.sbr] -Creating command line "bscmake.exe @C:\DOCUME~1\Edward\LOCALS~1\Temp\RSPF2.tmp" -Creating browse info file... -

Output Window

- - - -

Results

-Array.dll - 0 error(s), 33 warning(s) -
- - diff --git a/dlls/arrayx/BinTrieNativeFunctions.h b/dlls/arrayx/BinTrieNativeFunctions.h deleted file mode 100644 index 0b258f4a..00000000 --- a/dlls/arrayx/BinTrieNativeFunctions.h +++ /dev/null @@ -1,78 +0,0 @@ -#ifndef _bintrie_NATIVE_FUNC_INC_H -#define _bintrie_NATIVE_FUNC_INC_H - -#define JUDY_GLUE_FUNC( x , y ) x ## y - -#define JUDY_GLUE_STR( x, y ) #x#y - -#define JUDY_MASTER_EDIT_FUNCTIONS -#define JUDY_MASTER_CLEAR_FUNC JUDY_GLUE_FUNC( bintrie , _clear ) -#define JUDY_MASTER_CLEAR_STR JUDY_GLUE_STR ( bintrie , _clear ) - -#define JUDY_MASTER_DELETE_FUNC JUDY_GLUE_FUNC( bintrie , _delete ) -#define JUDY_MASTER_DELETE_STR JUDY_GLUE_STR ( bintrie , _delete ) - -#define JUDY_MASTER_IO_FUNCTIONS - -#define JUDY_MASTER_SAVE_FUNC JUDY_GLUE_FUNC( bintrie , _save ) -#define JUDY_MASTER_SAVE_STR JUDY_GLUE_STR ( bintrie , _save ) -#define JUDY_SAVE_FUNC(bin,file) JudySaveBinTrie(bin , file ) - -#define JUDY_MASTER_LOAD_FUNC JUDY_GLUE_FUNC( bintrie , _load ) -#define JUDY_MASTER_LOAD_STR JUDY_GLUE_STR ( bintrie , _load ) -#define JUDY_LOAD_FUNC(bin, file) JudyLoadBinTrie(bin , file ) - -#define JUDY_MASTER_AMOUNT_FUNCTIONS -#define JUDY_MASTER_COUNT_FUNC JUDY_GLUE_FUNC( bintrie , _count ) -#define JUDY_MASTER_COUNT_STR JUDY_GLUE_STR ( bintrie , _count ) - -#define JUDY_MASTER_BYCOUNT_FUNC JUDY_GLUE_FUNC( bintrie , _bycount ) -#define JUDY_MASTER_BYCOUNT_STR JUDY_GLUE_STR ( bintrie , _bycount ) - -#define JUDY_SLAVE_AMOUNT_FUNCTIONS - -#define JUDY_SLAVE_COUNT_FUNC JUDY_GLUE_FUNC( bintrie , _size ) -#define JUDY_SLAVE_COUNT_STR JUDY_GLUE_STR ( bintrie , _size ) - -#define JUDY_SLAVE_BYCOUNT_FUNC JUDY_GLUE_FUNC( bintrie , _get_nth ) -#define JUDY_SLAVE_BYCOUNT_STR JUDY_GLUE_STR ( bintrie , _get_nth ) - -#define JUDY_SLAVE_EDIT_FUNCTIONS - -#define JUDY_SLAVE_MEMORY_FUNC JUDY_GLUE_FUNC( bintrie , _memory ) -#define JUDY_SLAVE_MEMORY_STR JUDY_GLUE_STR ( bintrie , _memory ) - -#define JUDY_SLAVE_ISFILLED_FUNC JUDY_GLUE_FUNC( bintrie , _isfilled ) -#define JUDY_SLAVE_ISFILLED_STR JUDY_GLUE_STR ( bintrie , _isfilled ) - -#define JUDY_SLAVE_ISEMPTY_FUNC JUDY_GLUE_FUNC( bintrie , _isempty ) -#define JUDY_SLAVE_ISEMPTY_STR JUDY_GLUE_STR ( bintrie , _isempty ) - -#define NO_JUDY_SLAVE_REMOVE_FUNC - -#define JUDY_SLAVE_SEARCH_FUNCTIONS -#define JUDY_SLAVE_FIRST_FUNC JUDY_GLUE_FUNC( bintrie , _first ) -#define JUDY_SLAVE_LAST_FUNC JUDY_GLUE_FUNC( bintrie , _last ) - -#define JUDY_SLAVE_FIRST_STR JUDY_GLUE_STR ( bintrie , _first ) -#define JUDY_SLAVE_LAST_STR JUDY_GLUE_STR ( bintrie , _last ) - -#define JUDY_SLAVE_NEXT_FUNC JUDY_GLUE_FUNC( bintrie , _next ) -#define JUDY_SLAVE_PREV_FUNC JUDY_GLUE_FUNC( bintrie , _prev ) - -#define JUDY_SLAVE_NEXT_STR JUDY_GLUE_STR ( bintrie , _next ) -#define JUDY_SLAVE_PREV_STR JUDY_GLUE_STR ( bintrie , _prev ) - -#define JUDY_SLAVE_SEARCH_EMPTY_FUNCTIONS -#define JUDY_SLAVE_FIRSTEMPTY_FUNC JUDY_GLUE_FUNC( bintrie , _firstempty ) -#define JUDY_SLAVE_LASTEMPTY_FUNC JUDY_GLUE_FUNC( bintrie , _lastempty ) - -#define JUDY_SLAVE_FIRSTEMPTY_STR JUDY_GLUE_STR ( bintrie , _firstempty ) -#define JUDY_SLAVE_LASTEMPTY_STR JUDY_GLUE_STR ( bintrie , _lastempty ) - -#define JUDY_SLAVE_NEXTEMPTY_FUNC JUDY_GLUE_FUNC( bintrie , _nextempty ) -#define JUDY_SLAVE_PREVEMPTY_FUNC JUDY_GLUE_FUNC( bintrie , _prevempty ) - -#define JUDY_SLAVE_NEXTEMPTY_STR JUDY_GLUE_STR ( bintrie , _nextempty ) -#define JUDY_SLAVE_PREVEMPTY_STR JUDY_GLUE_STR ( bintrie , _prevempty ) -#endif \ No newline at end of file diff --git a/dlls/arrayx/BinTrieNatives.cpp b/dlls/arrayx/BinTrieNatives.cpp deleted file mode 100644 index 9de5504b..00000000 --- a/dlls/arrayx/BinTrieNatives.cpp +++ /dev/null @@ -1,69 +0,0 @@ -#include "CBinTrie.h" - -#define KEY_TYPE cell -#define DYNAMIC_UNIT_TYPE BinTrie -#define STORAGE_TYPE cell -#define MASTER_NAME MasterTrie -#define EXPORT_NAME bintrie_exports - -#define SEARCH_ERROR_OFFSET 0 - -#define GET_KEY(params, num) params[num] -#define SET_KEY(stuff, parameter) stuff - -#include "BinTrieNativeFunctions.h" -#include "NativeIncludes.h" - -static cell AMX_NATIVE_CALL bintrie_create(AMX *amx,cell *params) -{ - DTYPE* Unit; - M_ITYPE Index = params[1]; - - JUDY_CREATE_INDEX(MNAME,Unit,BinTrie,Index); - return Index; -} - -static cell AMX_NATIVE_CALL bintrie_set(AMX *amx,cell *params) -{ - DTYPE* Unit = NULL; - - JUDY_GET_INDEX(MNAME,Unit, params[1]); - ITYPE Indice = JUDY_GET_KEY(params,2); - bool Value = (params[3] != NULL); - - try { return Unit->Set(Indice, Value ); } - JUDY_ERROR_CATCH("Judy Error: (No error possible) - Slave Set Function "); -} - -static cell AMX_NATIVE_CALL bintrie_get(AMX *amx,cell *params) -{ - DTYPE* Unit = NULL; - - JUDY_GET_INDEX(MNAME,Unit, params[1]); - ITYPE Indice = JUDY_GET_KEY(params,2); - - try { return Unit->Get(Indice ); } - JUDY_ERROR_CATCH("Judy Error: (No error possible) - Slave Get Function "); -} - -static cell AMX_NATIVE_CALL bintrie_remove(AMX *amx,cell *params) -{ - DTYPE* Unit = NULL; - - JUDY_GET_INDEX(MNAME,Unit, params[1]); - ITYPE Indice = JUDY_GET_KEY(params,2); - - try { return Unit->Delete(Indice ); } - JUDY_ERROR_CATCH("Judy Error: (No error possible) - Slave Delete Function "); -} - - -AMX_NATIVE_INFO bintrie_usage_exports[] = -{ - { "bintrie_create", bintrie_create }, - { "bintrie_set", bintrie_set }, - { "bintrie_get", bintrie_get }, - { "bintrie_remove", bintrie_remove }, - - { NULL, NULL } -}; \ No newline at end of file diff --git a/dlls/arrayx/CArray.cpp b/dlls/arrayx/CArray.cpp deleted file mode 100644 index 2285e4d3..00000000 --- a/dlls/arrayx/CArray.cpp +++ /dev/null @@ -1,87 +0,0 @@ -#include "CArray.h" - -void Array::ThrowSearchError(char* type) -{ - char value[50]; - sprintf(value,"Function attempted to search %s: Judy returned NULL value", type); - - throw JudyEx(value,false); -} - -void Array::ThrowIndexError( cell index, bool disable_check ) -{ - if(disable_check == true) return; - - char error[50]; - sprintf(error,"Index %i is not set.",index); - - throw JudyEx(error,true); -} - -cell Array::First( cell Start) -{ - PPvoid_t success = JudyLFirst(Table, reinterpret_cast(&Start), PJE0); - if (success == NULL) ThrowSearchError("Type:First"); - - return Start; -} - -cell Array::FirstEmpty( cell Start) -{ - cell success = JudyLFirstEmpty(Table, reinterpret_cast(&Start), PJE0); - if (success == NULL) ThrowSearchError("Type:FirstEmpty"); - return Start; -} - -cell Array::Next( cell Start) -{ - PPvoid_t success = JudyLNext(Table, reinterpret_cast(&Start), PJE0); - if (success == NULL) ThrowSearchError("Type:Next"); - - return Start; -} - -cell Array::NextEmpty( cell Start) -{ - cell success = JudyLNextEmpty(Table, reinterpret_cast(&Start), PJE0); - if (success == NULL) ThrowSearchError("Type:NextEmpty"); - return Start; -} - -cell Array::Prev( cell Start) -{ - PPvoid_t success = JudyLPrev(Table, reinterpret_cast(&Start), PJE0); - if (success == NULL) ThrowSearchError("Type:Prev"); - - return Start; -} - -cell Array::PrevEmpty( cell Start) -{ - cell success = JudyLPrevEmpty(Table, reinterpret_cast(&Start), PJE0); - if (success == NULL) ThrowSearchError("Type:PrevEmpty"); - return Start; -} - -cell Array::Last( cell Start) -{ - PPvoid_t success = JudyLLast(Table, reinterpret_cast(&Start), PJE0); - if (success == NULL) ThrowSearchError("Type:Last"); - - return Start; -} - -cell Array::LastEmpty( cell Start) -{ - cell success = JudyLLastEmpty(Table, reinterpret_cast(&Start), PJE0); - if (success == NULL) ThrowSearchError("Type:LastEmpty"); - return Start; -} - -cell Array::ByCount(cell n, cell Start) -{ - PPvoid_t success = JudyLByCount(Table, n, reinterpret_cast(&Start), PJE0); - if (success == NULL) ThrowSearchError("Type:Nth"); - - return Start; -} \ No newline at end of file diff --git a/dlls/arrayx/CArray.h b/dlls/arrayx/CArray.h deleted file mode 100644 index 7dcaa9b8..00000000 --- a/dlls/arrayx/CArray.h +++ /dev/null @@ -1,74 +0,0 @@ -#ifndef _ARRAYCLASS_H -#define _ARRAYCLASS_H - -#include "JudyIncludes.h" -#include "CBaseList.h" -#include "JudyExtra.h" -//#include - -class Array: public CBaseList -{ -private: - Pvoid_t Table; - - void ThrowIndexError( cell index, bool disable_check = false ); - void ThrowSearchError(char* msg); - -public: - Array() { Table = NULL; } - ~Array() { Clear(); } - void Remove() { delete this; } - - Word_t Clear() { JudyClearList(this); return JudyLFreeArray(&Table, PJE0); } - Word_t MemoryUsed() { return JudyLMemUsed(Table); } - - int Delete(cell Key) { return JudyLDel(&Table, Key, PJE0 ); } - - void Set(cell Index, Pvoid_t value, bool disable_check) - { - PPvoid_t PValue = JudyLIns(&Table, Index,PJE0); - *PValue = value; - } - - Pvoid_t Get(cell Index, bool disable_check = false) - { - PPvoid_t PValue = JudyLGet(Table, Index, PJE0); - if(PValue == NULL) { ThrowIndexError(Index, disable_check); return NULL; } - - return *PValue; - } - - template - void Set(cell Index, Type value) - { - PPvoid_t PValue = JudyLIns(&Table, Index,PJE0); - *PValue = reinterpret_cast(value); - } - - template - Type Get(cell Index, Type example, bool disable_check = false) - { - PPvoid_t PValue = JudyLGet(Table, Index, PJE0); - if(PValue == NULL) { ThrowIndexError(Index, disable_check); return (Type)NULL; } - - return (Type)(*PValue); - } - - cell First(cell Start = 0); - cell Next(cell Start = 0); - cell Prev(cell Start = -1); - cell Last(cell Start = -1); - - cell FirstEmpty(cell Start = 0); - cell NextEmpty(cell Start = 0); - cell PrevEmpty(cell Start = -1); - cell LastEmpty(cell Start = -1); - - cell ByCount(cell n, cell Start = 0); - cell Count(cell Start = 0, cell Stop = -1) { return JudyLCount(Table, Start, Stop, PJE0); } - - bool IsFilled(cell Index) { return ( (Get(Index, true ) != NULL) ? true : false); } - bool IsEmpty(cell Index) { return ( (Get(Index, true ) == NULL) ? true : false); } -}; - -#endif \ No newline at end of file diff --git a/dlls/arrayx/CBaseList.h b/dlls/arrayx/CBaseList.h deleted file mode 100644 index d0aedb5f..00000000 --- a/dlls/arrayx/CBaseList.h +++ /dev/null @@ -1,36 +0,0 @@ -#ifndef _BASE_ARRAYCLASS_H -#define _BASE_ARRAYCLASS_H - -#include "JudyIncludes.h" - -class CBaseList -{ -public: - virtual Word_t Clear() =0; - virtual Word_t MemoryUsed() =0; - - virtual int Delete(cell Key) =0; - virtual void Remove() =0; - - virtual void Set(cell Index, Pvoid_t value, bool disable_check = false) =0; - - virtual Pvoid_t Get(cell Index, bool disable_check = false) =0; - - virtual cell First(cell Start = 0) =0; - virtual cell Next(cell Start = 0) =0; - virtual cell Prev(cell Start = -1) =0; - virtual cell Last(cell Start = -1) =0; - - virtual cell FirstEmpty(cell Start = 0) =0; - virtual cell NextEmpty(cell Start = 0) =0; - virtual cell PrevEmpty(cell Start = -1) =0; - virtual cell LastEmpty(cell Start = -1) =0; - - virtual cell ByCount(cell n, cell Start = 0) =0; - virtual cell Count(cell Start = 0, cell Stop = -1) =0; - - virtual bool IsFilled(cell Index) =0; - virtual bool IsEmpty(cell Index) =0; -}; - -#endif diff --git a/dlls/arrayx/CBaseMap.h b/dlls/arrayx/CBaseMap.h deleted file mode 100644 index 73f75815..00000000 --- a/dlls/arrayx/CBaseMap.h +++ /dev/null @@ -1,29 +0,0 @@ -#ifndef _BASE_MAPCLASS_H -#define _BASE_MAPCLASS_H - -#include "JudyIncludes.h" - -class CBaseMap -{ -public: - virtual Word_t Clear() =0; - virtual Word_t MemoryUsed() =0; - - virtual int Delete(char* Key) =0; - virtual void Remove() =0; - - virtual void Set(char* Index, Pvoid_t value, bool disable_check = false) =0; - - virtual Pvoid_t Get(char* Index, bool disable_check = false) =0; - - virtual char* First(char* Start = "") =0; - virtual char* Next(char* Start) =0; - virtual char* Prev(char* Start) =0; - virtual char* Last(char* Start) =0; - - virtual bool IsFilled(char* Index) =0; - virtual bool IsEmpty(char* Index) =0; -}; - -#endif - diff --git a/dlls/arrayx/CBinTrie.cpp b/dlls/arrayx/CBinTrie.cpp deleted file mode 100644 index 33e712c8..00000000 --- a/dlls/arrayx/CBinTrie.cpp +++ /dev/null @@ -1,76 +0,0 @@ -#include "CBinTrie.h" - -void BinTrie::ThrowSearchError(char* type) -{ - char value[50]; - sprintf(value,"Function attempted to search %s: Judy returned NULL value", type); - - throw JudyEx (value,false); -} - -cell BinTrie::First( cell Start) -{ - cell success = Judy1First(Table, reinterpret_cast(&Start), PJE0); - if (success == NULL) ThrowSearchError("Type:First"); - return Start; -} - -cell BinTrie::FirstEmpty( cell Start) -{ - cell success = Judy1FirstEmpty(Table, reinterpret_cast(&Start), PJE0); - if (success == NULL) ThrowSearchError("Type:FirstEmpty"); - return Start; -} - -cell BinTrie::Next( cell Start) -{ - cell success = Judy1Next(Table, reinterpret_cast(&Start), PJE0); - if (success == NULL) ThrowSearchError("Type:Next"); - - return Start; -} - -cell BinTrie::NextEmpty( cell Start) -{ - cell success = Judy1NextEmpty(Table, reinterpret_cast(&Start), PJE0); - if (success == NULL) ThrowSearchError("Type:NextEmpty"); - return Start; -} - -cell BinTrie::Prev( cell Start) -{ - cell success = Judy1Prev(Table, reinterpret_cast(&Start), PJE0); - if (success == NULL) ThrowSearchError("Type:Prev"); - - return Start; -} - -cell BinTrie::PrevEmpty( cell Start) -{ - cell success = Judy1PrevEmpty(Table, reinterpret_cast(&Start), PJE0); - if (success == NULL) ThrowSearchError("Type:PrevEmpty"); - return Start; -} - -cell BinTrie::Last( cell Start) -{ - cell success = Judy1Last(Table, reinterpret_cast(&Start), PJE0); - if (success == NULL) ThrowSearchError("Type:Last"); - - return Start; -} - -cell BinTrie::LastEmpty( cell Start) -{ - cell success = Judy1LastEmpty(Table, reinterpret_cast(&Start), PJE0); - if (success == NULL) ThrowSearchError("Type:LastEmpty"); - return Start; -} - -cell BinTrie::ByCount(cell n, cell Start) -{ - cell success = Judy1ByCount(Table, n, reinterpret_cast(&Start), PJE0); - if (success == NULL) ThrowSearchError("Type:Nth"); - - return Start; -} \ No newline at end of file diff --git a/dlls/arrayx/CBinTrie.h b/dlls/arrayx/CBinTrie.h deleted file mode 100644 index 98853976..00000000 --- a/dlls/arrayx/CBinTrie.h +++ /dev/null @@ -1,54 +0,0 @@ -#ifndef _BINTRIECLASS_H -#define _BINTRIECLASS_H - -#include "JudyIncludes.h" -#include "JudyExtra.h" -//#include - -class BinTrie -{ -private: - Pvoid_t Table; - - void ThrowSearchError(char* msg); - -public: - BinTrie() { Table = NULL; } - ~BinTrie() { Clear(); } - void Remove() { delete this; } - - Word_t Clear() { JudyClearBinTrie(this); return Judy1FreeArray(&Table, PJE0); } - Word_t MemoryUsed() { return Judy1MemUsed(Table); } - - cell Delete(cell Key) { return Judy1Unset(&Table, Key, PJE0 ); } - - cell Set(cell Index, bool val) - { - if(val == false) return Delete(Index); - else return Judy1Set(&Table, Index,PJE0); - } - - cell Get(cell Index) - { - cell PValue = Judy1Test(Table, Index, PJE0); - return PValue; - } - - cell First(cell Start = 0); - cell Next(cell Start = 0); - cell Prev(cell Start = -1); - cell Last(cell Start = -1); - - cell FirstEmpty(cell Start = 0); - cell NextEmpty(cell Start = 0); - cell PrevEmpty(cell Start = -1); - cell LastEmpty(cell Start = -1); - - cell ByCount(cell n, cell Start); - cell Count(cell Start = 0, cell Stop = -1) { return Judy1Count(Table, Start, Stop, PJE0); } - - bool IsFilled(cell Index) { return ( (Get(Index )) ? true : false); } - bool IsEmpty(cell Index) { return ( (Get(Index )) ? true : false); } -}; - -#endif \ No newline at end of file diff --git a/dlls/arrayx/CHashtable.h b/dlls/arrayx/CHashtable.h deleted file mode 100644 index 4a13e6fd..00000000 --- a/dlls/arrayx/CHashtable.h +++ /dev/null @@ -1,82 +0,0 @@ -#ifndef _HASHCLASS_INCLUDED -#define _HASHCLASS_INCLUDED - -#include "JudyIncludes.h" -#include "CBaseMap.h" -//#include - -class Hashtable: public CBaseMap -{ -private: - Pvoid_t Table; - -public: - Hashtable() { Table = NULL; } - ~Hashtable() { Clear(); } - void Remove() { delete this; } - - Word_t Clear() { return JudyHSFreeArray(&Table, PJE0); } - Word_t MemoryUsed() { return JudyLMemUsed(Table); } - - int Delete(char* Key) { return JudyHSDel(&Table, Key, strlen(Key), PJE0 ); } - - void Set(char* Index, Pvoid_t value, bool disable_check) - { - int Len = strlen(Index) + 1; - PPvoid_t PValue = JudyHSIns(&Table, Index, Len, PJE0); - *PValue = value; - } - - Pvoid_t Get(char* Index, bool disable_check = false) - { - PPvoid_t PValue = JudyHSGet(Table, Index, strlen(Index)+1); - if(PValue == NULL) { ThrowIndexError(Index, disable_check); return NULL; } - - return *PValue; - } - - template - void Set(char* Index, Type value) - { - int Len = strlen(Index) + 1; - PPvoid_t PValue = JudyHSIns(&Table, Index, Len, PJE0); - *PValue = reinterpret_cast(value); - } - - template - Type Get(char* Index, Type example, bool disable_check = false) - { - PPvoid_t PValue = JudyHSGet(Table, Index, strlen(Index)+1); - if(PValue == NULL) { ThrowIndexError(Index, disable_check); return (Type)NULL; } - - return (Type)(*PValue); - } - - char* First( char* Start = "") { ThrowSearchError(); return (char*)NULL; } - char* Next( char* Start = "") { ThrowSearchError(); return (char*)NULL; } - char* Prev( char* Start) { ThrowSearchError(); return (char*)NULL; } - char* Last( char* Start) { ThrowSearchError(); return (char*)NULL; } - - bool IsFilled(char* Index) { return ( (Get(Index,(PPvoid_t)(NULL), true ) != NULL) ? true : false);} - bool IsEmpty(char* Index) { return ( (Get(Index,(PPvoid_t)(NULL), true ) == NULL) ? true : false);} - -protected: - void ThrowIndexError( char* index, bool disable_check = false ) - { - if(disable_check == true) return; - - char value[100]; - sprintf(value,"Function attempted to read non existant index %s", index ); - - throw JudyEx(value, true); - } - void ThrowSearchError( void ) - { - char value[50]; - sprintf(value,"Function attempted to search HashTable!: Invalid action!"); - - throw JudyEx(value,true); - } -}; - -#endif \ No newline at end of file diff --git a/dlls/arrayx/CKeytable.cpp b/dlls/arrayx/CKeytable.cpp deleted file mode 100644 index 43f70c17..00000000 --- a/dlls/arrayx/CKeytable.cpp +++ /dev/null @@ -1,66 +0,0 @@ -#include "CKeytable.h" - -void Keytable::ThrowIndexError( char* index, bool disable_check = false ) -{ - if(disable_check == true) return; - - char error[50]; - sprintf(error,"Index %s is not set.",index); - - throw JudyEx(error,true); -} - -void Keytable::ThrowSearchError(char* type) -{ - char value[50]; - sprintf(value,"Function attempted to search %s: Judy returned NULL value", type); - - throw JudyEx(value,false); -} - -char* Keytable::First( char* Start) -{ - PPvoid_t index = JudySLFirst(Table, Start, PJE0); - if (index == NULL) - { - sprintf(Start,"dne"); - ThrowSearchError("Type:First"); - } - - return Start; -} - -char* Keytable::Next( char* Start) -{ - PPvoid_t index = JudySLNext(Table, Start, PJE0); - if (index == NULL) - { - sprintf(Start,"dne"); - ThrowSearchError("Type:Next"); - } - return Start; -} - -char* Keytable::Prev( char* Start) -{ - PPvoid_t index = JudySLPrev(Table, Start, PJE0); - if (index == NULL) - { - sprintf(Start,"dne"); - ThrowSearchError("Type:Prev"); - } - - return Start; -} - -char* Keytable::Last( char* Start) -{ - PPvoid_t index = JudySLLast(Table, Start, PJE0); - if (index == NULL) - { - sprintf(Start,"dne"); - ThrowSearchError("Type:Last"); - } - - return Start; -} \ No newline at end of file diff --git a/dlls/arrayx/CKeytable.h b/dlls/arrayx/CKeytable.h deleted file mode 100644 index 390b4ae1..00000000 --- a/dlls/arrayx/CKeytable.h +++ /dev/null @@ -1,66 +0,0 @@ -#ifndef _KEYCLASS_INCLUDED -#define _KEYCLASS_INCLUDED - -#include "JudyIncludes.h" -#include "CBaseMap.h" -#include "JudyExtra.h" -//#include - -class Keytable: public CBaseMap -{ -private: - Pvoid_t Table; - - void ThrowSearchError(char* type); - void ThrowIndexError( char* index, bool disable_check); - -public: - Keytable() { Table = NULL; } - ~Keytable() { Clear(); } - void Remove() { delete this; } - - Word_t Clear() { JudyClearMap(this); return JudySLFreeArray(&Table, PJE0); } - Word_t MemoryUsed() { return JudyLMemUsed(Table); } - - int Delete(char* Key) { return JudySLDel(&Table, Key, PJE0 ); } - - void Set(char* Index, Pvoid_t value, bool disable_check) - { - PPvoid_t PValue = JudySLIns(&Table, Index,PJE0); - *PValue = value; - } - - Pvoid_t Get(char* Index, bool disable_check = false) - { - PPvoid_t PValue = JudySLGet(Table, Index, PJE0); - if(PValue == NULL) { ThrowIndexError(Index, disable_check); return NULL; } - - return *PValue; - } - - template - void Set(char* Index, Type value) - { - PPvoid_t PValue = JudySLIns(&Table, Index,PJE0); - *PValue = reinterpret_cast(value); - } - - template - Type Get(char* Index, Type example, bool disable_check = false) - { - PPvoid_t PValue = JudySLGet(Table, Index, PJE0); - if(PValue == NULL) { ThrowIndexError(Index, disable_check); return (Type)NULL; } - - return (Type)*PValue; - } - - char* First(char* Start = ""); - char* Next(char* Start = ""); - char* Prev(char* Start = ""); - char* Last(char* Start = ""); - - bool IsFilled(char* Index) { return ( (Get(Index,(PPvoid_t)(NULL), true ) != NULL) ? true : false); } - bool IsEmpty(char* Index) { return ( (Get(Index,(PPvoid_t)(NULL), true ) == NULL) ? true : false); } -}; - -#endif \ No newline at end of file diff --git a/dlls/arrayx/Capsule.cpp b/dlls/arrayx/Capsule.cpp deleted file mode 100644 index 4137201f..00000000 --- a/dlls/arrayx/Capsule.cpp +++ /dev/null @@ -1,261 +0,0 @@ -#include "Capsule.h" - -const char* capsule_types[] = -{ - "-NO VALUE-", - "BOOLEAN", - "INTEGER", - "FLOAT", - "VECTOR", - "STRING" -}; - -void Capsule::ThrowTypeError(cell get_type) -{ - char ValStr[15]; - GetAsStr(ValStr); - - char value[100]; - sprintf(value,"Function attempted to read NON-%s value, actual type is: %s, actual value is: %s", capsule_types[get_type], capsule_types[type], ValStr ); - - throw JudyEx(value, true); -} - -bool Capsule::CheckEmpty(bool clear) -{ - bool empty = ( data == NULL ); - - if(empty != true && clear == true) Clear(); - return empty; -} - -void Capsule::Clear() -{ - //This function intelligently creates a pointer x, - //which will be of correct type and then deletes it. - - switch (type) - { - case capsule_type_flo: - { - REAL *real_val = reinterpret_cast(data); - delete real_val; - - break; - } - case capsule_type_vec: - { - JudyVec *vector_val = reinterpret_cast(data); - delete vector_val; - - break; - } - case capsule_type_str: - { - char *char_val = reinterpret_cast(data); - delete char_val; - - break; - } - } - - data = NULL; //Null the address as well. (Used for ints too.) -} - -bool Capsule::GetBool( void ) -{ - if (type != capsule_type_bool) ThrowTypeError(capsule_type_bool); - - return (data != NULL); -} - -void Capsule::SetBool(bool Value) -{ - CheckEmpty(true); - type = capsule_type_bool; - if(Value == true) data = reinterpret_cast(1); -}; - -cell Capsule::GetInt( void ) -{ - if (type != capsule_type_int) ThrowTypeError(capsule_type_int); - - return reinterpret_cast(data); -} - -void Capsule::SetInt(cell Value) -{ - CheckEmpty(true); - type = capsule_type_int; - data = reinterpret_cast(Value); -}; - -REAL Capsule::GetFlo( void ) -{ - if (type != capsule_type_flo) ThrowTypeError(capsule_type_flo); - - return *reinterpret_cast(data); -} - -void Capsule::SetFlo(REAL Value) -{ - CheckEmpty(true); - type = capsule_type_flo; - data = new REAL(Value); -}; - -const JudyVec* Capsule::GetVec( void ) -{ - if (type != capsule_type_vec) ThrowTypeError(capsule_type_vec); - - return reinterpret_cast(data); -} - -void Capsule::SetVec(JudyVec* Value) -{ - CheckEmpty(true); - type = capsule_type_vec; - data = reinterpret_cast(Value); -} - -const char* Capsule::GetStr( void ) -{ - if (type != capsule_type_str) ThrowTypeError(capsule_type_str); - - return reinterpret_cast(data); -} - -void Capsule::SetStr(char* Value) -{ - CheckEmpty(true); - type = capsule_type_str; - - char *string_val = new char[strlen(Value)+1]; - strcpy(string_val,Value); - - data = reinterpret_cast(string_val); -} - -void Capsule::GetAsStr(char* value) -{ - switch (type) - { - case capsule_type_bool: - sprintf(value, "%i",(cell)GetBool()); - break; - case capsule_type_int: - sprintf(value, "%d", GetInt() ); - break; - case capsule_type_flo: - sprintf(value, "%f", GetFlo() ); - break; - case capsule_type_vec: - sprintf(value, "{%f,%f,%f}", GetVec()->first, GetVec()->second, GetVec()->third); - break; - case capsule_type_str: - sprintf(value, "\"%s\"", GetStr() ); - break; - default: - sprintf(value, "-NO VALUE-"); - } -} - -void Capsule::Save(FILE* capsuleDB) -{ - fwrite(&type,sizeof(char),1,capsuleDB); - - switch(type) - { - case capsule_type_none: { break; } - case capsule_type_bool: { bool var = GetBool(); fwrite(&var, sizeof(bool), 1, capsuleDB); break; } - case capsule_type_int: { cell var = GetInt(); fwrite(&var, sizeof(cell), 1, capsuleDB); break; } - case capsule_type_flo: { fwrite(reinterpret_cast(GetData()), sizeof(REAL), 1, capsuleDB); break; } - case capsule_type_str: - { - const char* str = GetStr(); - size_t len = strlen(str); - fwrite(&len,sizeof(size_t), 1, capsuleDB); - fwrite(&str, sizeof(char), len, capsuleDB); - - break; - } - case capsule_type_vec: - { - const JudyVec* buffer = GetVec(); - fwrite(buffer, sizeof(JudyVec), 1, capsuleDB); - - break; - } - default: - { - char value[20]; - sprintf(value,"Invalid type found!"); - - throw JudyEx(value, true); - break; - } - }; -} - -void Capsule::Load(FILE* capsuleDB) -{ - fread(&type, sizeof(char), 1, capsuleDB); - - switch(type) - { - case capsule_type_none: { CheckEmpty(true); break; } - case capsule_type_bool: - { - bool value = false; - fread(&value, sizeof(bool), 1, capsuleDB); - SetBool(value); - - break; - } - case capsule_type_int: - { - cell value = NULL; - fread(&value, sizeof(cell), 1, capsuleDB); - SetInt(value); - - break; - } - case capsule_type_flo: - { - REAL value = NULL; - fread(&value, sizeof(REAL), 1, capsuleDB); - SetFlo(value); - - break; - } - case capsule_type_str: - { - size_t length; - fread(&length, sizeof(size_t), 1, capsuleDB); - - char* value = new char[length+1]; - fgets(value, length+1, capsuleDB); - - SetStr(value); - delete(value); - - break; - } - case capsule_type_vec: - { - JudyVec* value = new JudyVec(NULL,NULL,NULL); - fread(value, sizeof(JudyVec), 1, capsuleDB); - - SetVec(value); - - break; - } - default: - { - char value[20]; - sprintf(value,"Invalid type found: %i",(int)type); - - throw JudyEx(value, true); - } - }; -} \ No newline at end of file diff --git a/dlls/arrayx/Capsule.h b/dlls/arrayx/Capsule.h deleted file mode 100644 index 69d0fc14..00000000 --- a/dlls/arrayx/Capsule.h +++ /dev/null @@ -1,65 +0,0 @@ -#ifndef _JUDYCAP_INCLUDED -#define _JUDYCAP_INCLUDED - -#include "JudyIncludes.h" - -enum -{ - capsule_type_none, - capsule_type_bool, - capsule_type_int, - capsule_type_flo, - capsule_type_vec, - capsule_type_str -}; - -extern const char* capsule_types[]; - -class Capsule -{ -private: - Pvoid_t data; - char type; - -protected: - void Clear( void ); - void ThrowTypeError(cell get_type); - -public: - Capsule() { data = NULL; type = capsule_type_none;} - ~Capsule() { Clear(); } - void Remove() { delete this; } - - Capsule(bool set) { SetBool(set); } - Capsule(cell set) { SetInt(set); } - Capsule(REAL set) { SetFlo(set); } - Capsule(JudyVec* set) { SetVec(set); } - Capsule(char* set) { SetStr(set); } - - bool GetBool( void ); - void SetBool(bool set); - - cell GetInt( void ); - void SetInt(cell set); - - REAL GetFlo( void ); - void SetFlo(REAL set); - - const JudyVec* GetVec( void ); - void SetVec(JudyVec* set); - - const char* GetStr( void ); - void SetStr(char* set); - - void GetAsStr(char* value); - - void Load(FILE* db); - void Save(FILE* db); - - bool CheckEmpty(bool clear); - - Pvoid_t GetData( void ) { return data; } - char GetType( void ) { return type; } -}; - -#endif \ No newline at end of file diff --git a/dlls/arrayx/ComboArray.h b/dlls/arrayx/ComboArray.h deleted file mode 100644 index 6dc70032..00000000 --- a/dlls/arrayx/ComboArray.h +++ /dev/null @@ -1,80 +0,0 @@ -#ifndef _COMBOARRAY_INCLUDED -#define _COMBOARRAY_INCLUDED - -#include "CBinTrie.h" -#include "CArray.h" -#include "CBaseList.h" - -class ComboArray: public CBaseList -{ -private: - BinTrie MasterBin; - Array MasterArray; - -public: - ComboArray() { } - ~ComboArray() { Clear(); } - void Remove() { delete this; } - - Word_t Clear() { return (MasterBin.Clear() + MasterArray.Clear() ); } - Word_t MemoryUsed() { return (MasterBin.MemoryUsed() + MasterArray.MemoryUsed() ); } - - int Delete(cell Key) { return (MasterBin.Delete(Key) + MasterArray.Delete(Key) ); } - - void Set(cell Index, Pvoid_t value, bool disable_check) - { - MasterBin.Set(Index, true); - MasterArray.Set(Index, value, disable_check); - } - - Pvoid_t Get(cell Index, bool disable_check = false) - { - if(MasterBin.Get(Index) == NULL) { ThrowIndexError(Index, disable_check); return NULL; } - - return MasterArray.Get(Index); - } - - template - void Set(cell Index, Type value) - { - MasterBin.Set(Index, true); - MasterArray.Set(Index, value); - } - - template - Type Get(cell Index, Type example, bool disable_check = false) - { - if(MasterBin.Get(Index) == NULL) { ThrowIndexError(Index, disable_check); return (Type)NULL; } - - return MasterArray.Get(Index,example); - } - - cell First(cell Start = 0) { return MasterBin.First(Start); } - cell Next(cell Start = 0) { return MasterBin.Next(Start); } - cell Prev(cell Start = -1) { return MasterBin.Prev(Start); } - cell Last(cell Start = -1) { return MasterBin.Last(Start); } - - cell FirstEmpty(cell Start = 0) { return MasterBin.FirstEmpty(Start); } - cell NextEmpty(cell Start = 0) { return MasterBin.NextEmpty(Start); } - cell PrevEmpty(cell Start = -1) { return MasterBin.PrevEmpty(Start); } - cell LastEmpty(cell Start = -1) { return MasterBin.LastEmpty(Start); } - - cell ByCount(cell n, cell Start = 0) { return MasterBin.ByCount(n, Start); } - cell Count(cell Start = 0, cell Stop = -1) { return MasterBin.Count(Start, Stop); } - - bool IsFilled(cell Index) { return ( (MasterBin.Get(Index) != NULL) ? true : false); } - bool IsEmpty(cell Index) { return ( (MasterBin.Get(Index) == NULL) ? true : false); } - -protected: - void ThrowIndexError(cell Index, bool disable_check = false) - { - if(disable_check == true) return; - - char error[50]; - sprintf(error,"Index %i is not set.",Index); - - throw JudyEx(error,true); - } -}; - -#endif \ No newline at end of file diff --git a/dlls/arrayx/ComboTable.h b/dlls/arrayx/ComboTable.h deleted file mode 100644 index 48883c43..00000000 --- a/dlls/arrayx/ComboTable.h +++ /dev/null @@ -1,68 +0,0 @@ -#ifndef _COMBOTABLE_INCLUDED -#define _COMBOTABLE_INCLUDED - -#include "CKeytable.h" -#include "CHashtable.h" -#include "CBaseMap.h" - -class ComboTable: public CBaseMap -{ -private: - Keytable MasterKey; - Hashtable MasterHash; - -public: - ComboTable() { } - ~ComboTable() { Clear(); } - void Remove() { delete this; } - - Word_t Clear() { return (MasterHash.Clear() + MasterKey.Clear() ); } - Word_t MemoryUsed() { return (MasterKey.MemoryUsed() + MasterHash.MemoryUsed() ); } - - int Delete(char* Key) { return (MasterKey.Delete(Key) + MasterHash.Delete(Key) ); } - - bool IsFilled(char* Index) { return ( (MasterHash.Get(Index,(PPvoid_t)(NULL), true ) != NULL) ? true : false);} - bool IsEmpty(char* Index) { return ( (MasterHash.Get(Index,(PPvoid_t)(NULL), true ) == NULL) ? true : false);} - - void Set(char* Index, Pvoid_t value, bool disable_check) - { - MasterKey.Set(Index, value); - MasterHash.Set(Index, value); - } - - Pvoid_t Get(char* Index, bool disable_check = false) - { - return MasterHash.Get(Index, disable_check); - } - - template - void Set(char* Index, Type value) - { - MasterKey.Set(Index, value); - MasterHash.Set(Index, value); - } - - template - Type Get(char* Index, Type example, bool disable_check = false) - { - return MasterHash.Get(Index, example, disable_check); - } - - char* First( char* Start = "") { return MasterKey.First(Start);} - char* Next( char* Start = "") { return MasterKey.Next(Start);} - char* Prev( char* Start = "") { return MasterKey.Prev(Start); } - char* Last( char* Start = "") { return MasterKey.Last(Start);} - -protected: - void ThrowIndexError( char* index, bool disable_check = false ) - { - if(disable_check == true) return; - - char value[100]; - sprintf(value,"Function attempted to read non existant index %s", index ); - - throw JudyEx(value, true); - } -}; - -#endif diff --git a/dlls/arrayx/GenericNatives.h b/dlls/arrayx/GenericNatives.h deleted file mode 100644 index 60f7f4f9..00000000 --- a/dlls/arrayx/GenericNatives.h +++ /dev/null @@ -1,862 +0,0 @@ -#ifndef _GENERIC_INC_H -#define _GENERIC_INC_H - -// Master table -ComboArray MNAME; - -///* MASTER FUNCTIONS */// - -///* Start Master Edit Funcs */// -#ifdef JUDY_MASTER_EDIT_FUNCTIONS - - #ifdef JUDY_MASTER_DELETE_FUNC - - // generic_delete(id) - static cell AMX_NATIVE_CALL JUDY_MASTER_DELETE_FUNC(AMX *amx,cell *params) - { - DTYPE* Unit = NULL; - JUDY_GET_INDEX(MNAME,Unit, params[1] ); - - Unit->Remove(); - - try { return MNAME.Delete( params[1] ); } - JUDY_ERROR_CATCH("Judy Error: (No error possible) - Delete function "); - } - - #else - - #error Must Have Delete func: JUDY_MASTER_DELETE_FUNC not defined! - - #endif - - #ifdef JUDY_MASTER_CLEAR_FUNC - - // generic_clear(id) - static cell AMX_NATIVE_CALL JUDY_MASTER_CLEAR_FUNC(AMX *amx,cell *params) - { - DTYPE* Unit = NULL; - JUDY_GET_INDEX(MNAME,Unit, params[1] ); - - try { return Unit->Clear(); } - JUDY_ERROR_CATCH("Judy Error: (Search error likely) - Clear function "); - } - - #else - - #error Must Have Clear func: JUDY_MASTER_CLEAR_FUNC not defined! - - #endif - -///* End Master Edit Funcs */// -#endif - -///* Start Master IO Funcs */// -#ifdef JUDY_MASTER_IO_FUNCTIONS - - #ifdef JUDY_MASTER_SAVE_FUNC - - // generic_save(id,file[]) - static cell AMX_NATIVE_CALL JUDY_MASTER_SAVE_FUNC(AMX *amx,cell *params) - { - DTYPE* Unit = NULL; - JUDY_GET_INDEX(MNAME,Unit, params[1]); - - return JUDY_SAVE_FUNC(Unit, JUDY_BUILD_PATH(amx,params[2]) ); - } - - #else - - #error Must Have Save func: JUDY_MASTER_SAVE_FUNC not defined properly! - - #endif - - #ifdef JUDY_MASTER_LOAD_FUNC - - // generic_load(file[],id) - static cell AMX_NATIVE_CALL JUDY_MASTER_LOAD_FUNC(AMX *amx,cell *params) - { - DTYPE* Unit = NULL; - JUDY_GET_INDEX(MNAME,Unit, params[2]); - - return JUDY_LOAD_FUNC(Unit, JUDY_BUILD_PATH(amx,params[1]) ); - } - - #else - - #error Must Have Load func: JUDY_MASTER_LOAD_FUNC not defined! - - #endif - -///* End Master IO Funcs */// -#endif - -///* Start Master Amount Funcs */// -#ifdef JUDY_MASTER_AMOUNT_FUNCTIONS - - #ifdef JUDY_MASTER_COUNT_FUNC - - // generic_count(start = 0, stop = -1) - static cell AMX_NATIVE_CALL JUDY_MASTER_COUNT_FUNC(AMX *amx,cell *params) - { - try { return MNAME.Count(params[1],params[2] ); } - JUDY_ERROR_CATCH("Judy Error: (Search error likely) - Count Function "); - } - - #else - - #error Must Have Count func: JUDY_MASTER_COUNT_FUNC not defined! - - #endif - - #ifdef JUDY_MASTER_BYCOUNT_FUNC - - // generic_bycount(nth, start = -1) - static cell AMX_NATIVE_CALL JUDY_MASTER_BYCOUNT_FUNC(AMX *amx,cell *params) - { - try { return MNAME.ByCount(params[1],params[2] ); } - JUDY_ERROR_CATCH("Judy Error: (Search error likely) - ByCount Function "); - } - - #else - - #error Must Have ByCount func: JUDY_MASTER_BYCOUNT_FUNC not defined! - - #endif - -///* End Master Amount Funcs */// -#endif - -///* SLAVE FUNCTIONS */// - -///* Start Slave Amount Funcs */// -#ifdef JUDY_SLAVE_AMOUNT_FUNCTIONS - - #ifdef JUDY_SLAVE_COUNT_FUNC - - // generic_size(id, start = 0, stop = -1) - static cell AMX_NATIVE_CALL JUDY_SLAVE_COUNT_FUNC(AMX *amx,cell *params) - { - DTYPE* Unit = NULL; - JUDY_GET_INDEX(MNAME,Unit, params[1]); - - try { return Unit->Count(JUDY_GET_KEY(params,2),JUDY_GET_KEY(params, 3) ); } - JUDY_ERROR_CATCH("Judy Error: (Search error likely) - Slave Count Function "); - } - - #else - - #error Must Have Count func: JUDY_SLAVE_COUNT_FUNC not defined! - - #endif - - #ifdef JUDY_SLAVE_BYCOUNT_FUNC - - // generic_get_nth(id, nth, start = -1) - static cell AMX_NATIVE_CALL JUDY_SLAVE_BYCOUNT_FUNC(AMX *amx,cell *params) - { - DTYPE* Unit = NULL; - JUDY_GET_INDEX(MNAME,Unit, params[1]); - - try { return Unit->ByCount(JUDY_GET_KEY(params,2),JUDY_GET_KEY(params, 3) ); } - JUDY_ERROR_CATCH("Judy Error: (Search error likely) - Slave ByCount Function "); - } - - #else - - #error Must Have ByCount func: JUDY_SLAVE_BYCOUNT_FUNC not defined! - - #endif - -///* End Slave Amount Funcs */// -#endif - -///* Start Slave Edit Funcs */// -#ifdef JUDY_SLAVE_EDIT_FUNCTIONS - - #ifdef JUDY_SLAVE_MEMORY_FUNC - - // generic_memory(id) - static cell AMX_NATIVE_CALL JUDY_SLAVE_MEMORY_FUNC(AMX *amx,cell *params) - { - DTYPE* Unit = NULL; - JUDY_GET_INDEX(MNAME,Unit, params[1]); - - try { return Unit->MemoryUsed(); } - JUDY_ERROR_CATCH("Judy Error: (Search error likely) - Slave ByCount Function "); - } - - #else - - #error Must Have Memory func: JUDY_SLAVE_MEMORY_FUNC not defined! - - #endif - - #ifdef JUDY_SLAVE_ISFILLED_FUNC - - // generic_isfilled(id, index) - static cell AMX_NATIVE_CALL JUDY_SLAVE_ISFILLED_FUNC(AMX *amx,cell *params) - { - DTYPE* Unit = NULL; - JUDY_GET_INDEX(MNAME,Unit, params[1]); - - try { return Unit->IsFilled(JUDY_GET_KEY(params,2) ); } - JUDY_ERROR_CATCH("Judy Error: (No error possible) - Slave IsFilled Function "); - } - - #else - - #error Must Have IsFilled func: JUDY_SLAVE_ISFILLED_FUNC not defined! - - #endif - - #ifdef JUDY_SLAVE_ISEMPTY_FUNC - - // generic_isempty(id, index) - static cell AMX_NATIVE_CALL JUDY_SLAVE_ISEMPTY_FUNC(AMX *amx,cell *params) - { - DTYPE* Unit = NULL; - JUDY_GET_INDEX(MNAME,Unit, params[1]); - - try { return Unit->IsEmpty(JUDY_GET_KEY(params,2) ); } - JUDY_ERROR_CATCH("Judy Error: (No error possible) - Slave IsEmpty Function "); - } - - #else - - #error Must Have IsEmpty func: JUDY_SLAVE_ISEMPTY_FUNC not defined! - - #endif - - #ifdef JUDY_SLAVE_REMOVE_FUNC - - // generic_remove(id, index) - static cell AMX_NATIVE_CALL JUDY_SLAVE_REMOVE_FUNC(AMX *amx,cell *params) - { - DTYPE* Unit = NULL; - STYPE* Storage; - - JUDY_GET_INDEX(MNAME,Unit, params[1]); - ITYPE Indice = JUDY_GET_KEY(params,2); - - Storage = reinterpret_cast( Unit->Get(Indice, true ) ); - Storage->Remove(); - - try { return Unit->Delete(Indice); } - JUDY_ERROR_CATCH("Judy Error: (No Error Possible) - Delete function "); - } - #else - - #ifdef NO_JUDY_SLAVE_REMOVE_FUNC - #else - - #error Must Have Delete func: JUDY_SLAVE_REMOVE_FUNC not defined! - - #endif - - #endif -///* End Required Slave Edit Funcs */// - -///* Start Slave Bool Funcs */// -#ifdef JUDY_SLAVE_EDIT_BOOL - - #ifdef JUDY_SLAVE_SET_BOOL_FUNC - // generic_set_bool(id, index, Bool:val) - static cell AMX_NATIVE_CALL JUDY_SLAVE_SET_BOOL_FUNC(AMX *amx,cell *params) - { - DTYPE* Unit = NULL; - STYPE* Storage; - - JUDY_GET_INDEX(MNAME,Unit, params[1]); - ITYPE Indice = JUDY_GET_KEY(params,2); - bool Value = (params[3] != NULL); - - Storage = reinterpret_cast( Unit->Get(Indice, true ) ); - - if(Storage == NULL) Storage = new STYPE(Value); - else Storage->SetBool(Value); - - JUDY_SET_INDEX_P(Unit,Storage,Indice); - } - - #else - - #error Must Have Set func: JUDY_SLAVE_SET_BOOL_FUNC not defined! - - #endif - - #ifdef JUDY_SLAVE_GET_BOOL_FUNC - - // Bool:generic_get_bool(id, index, disable_check = 0) - static cell AMX_NATIVE_CALL JUDY_SLAVE_GET_BOOL_FUNC(AMX *amx,cell *params) - { - DTYPE* Unit = NULL; - STYPE* Storage; - - JUDY_GET_INDEX(MNAME,Unit, params[1]); - ITYPE Indice = JUDY_GET_KEY(params,2); - bool disable_check = (params[3] != NULL); - - try { Storage = reinterpret_cast( Unit->Get(Indice, disable_check ) ); } - JUDY_ERROR_CATCH("Judy Error: (Retrieve unset value) - Slave Get Function "); - - if(Storage == NULL) return 0; - - return Storage->GetBool(); - } - - #else - - #error Must Have Get func: JUDY_SLAVE_GET_BOOL_FUNC not defined! - - #endif - -///* End Slave Bool Funcs */// -#endif - -///* Start Slave Int Funcs */// -#ifdef JUDY_SLAVE_EDIT_INT - - #ifdef JUDY_SLAVE_SET_INT_FUNC - - // generic_set_bool(id, index, val) - static cell AMX_NATIVE_CALL JUDY_SLAVE_SET_INT_FUNC(AMX *amx,cell *params) - { - DTYPE* Unit = NULL; - STYPE* Storage; - - JUDY_GET_INDEX(MNAME,Unit, params[1]); - ITYPE Indice = JUDY_GET_KEY(params,2); - cell Value = params[3]; - - Storage = reinterpret_cast( Unit->Get(Indice, true ) ); - - if(Storage == NULL) Storage = new STYPE(Value); - else Storage->SetInt(Value); - - JUDY_SET_INDEX_P(Unit,Storage,Indice); - } - - #else - - #error Must Have Set func: JUDY_SLAVE_SET_INT_FUNC not defined! - - #endif - - #ifdef JUDY_SLAVE_GET_INT_FUNC - - // generic_get_int(id, index, disable_check = 0) - static cell AMX_NATIVE_CALL JUDY_SLAVE_GET_INT_FUNC(AMX *amx,cell *params) - { - DTYPE* Unit = NULL; - STYPE* Storage; - - JUDY_GET_INDEX(MNAME,Unit, params[1]); - ITYPE Indice = JUDY_GET_KEY(params,2); - bool disable_check = (params[3] != NULL); - - try { Storage = reinterpret_cast( Unit->Get(Indice, disable_check ) ); } - JUDY_ERROR_CATCH("Judy Error: (Retrieve unset value) - Slave Get Function "); - - if(Storage == NULL) return 0; - - return Storage->GetInt(); - } - - #else - - #error Must Have Get func: JUDY_SLAVE_GET_INT_FUNC not defined! - - #endif - -///* End Slave Int Funcs */// -#endif - -///* Start Slave Float Funcs */// -#ifdef JUDY_SLAVE_EDIT_FLO - - #ifdef JUDY_SLAVE_SET_FLO_FUNC - - // generic_set_float(id, index, Float:val) - static cell AMX_NATIVE_CALL JUDY_SLAVE_SET_FLO_FUNC(AMX *amx,cell *params) - { - DTYPE* Unit = NULL; - STYPE* Storage; - - JUDY_GET_INDEX(MNAME,Unit, params[1]); - ITYPE Indice = JUDY_GET_KEY(params,2); - REAL Value = amx_ctof(params[3]); - - Storage = reinterpret_cast( Unit->Get(Indice, true ) ); - - if(Storage == NULL) Storage = new STYPE(Value); - else Storage->SetFlo(Value); - - JUDY_SET_INDEX_P(Unit,Storage,Indice); - } - - #else - - #error Must Have Set func: JUDY_SLAVE_SET_FLO_FUNC not defined! - - #endif - - #ifdef JUDY_SLAVE_GET_FLO_FUNC - - // Float:generic_get_float(id, index, disable_check = 0) - static cell AMX_NATIVE_CALL JUDY_SLAVE_GET_FLO_FUNC(AMX *amx,cell *params) - { - DTYPE* Unit = NULL; - STYPE* Storage; - - JUDY_GET_INDEX(MNAME,Unit, params[1]); - ITYPE Indice = JUDY_GET_KEY(params,2); - bool disable_check = (params[3] != NULL); - - try { Storage = reinterpret_cast( Unit->Get(Indice, disable_check ) ); } - JUDY_ERROR_CATCH("Judy Error: (Retrieve unset value) - Slave Get Function "); - - if(Storage == NULL) return 0; - - return amx_ftoc(Storage->GetFlo() ); - } - - #else - - #error Must Have Get func: JUDY_SLAVE_GET_FLO_FUNC not defined! - - #endif - -///* End Slave Float Funcs */// -#endif - -///* Start Slave String Funcs */// -#ifdef JUDY_SLAVE_EDIT_STR - - #ifdef JUDY_SLAVE_SET_STR_FUNC - - // generic_set_string(id, index, val[]) - static cell AMX_NATIVE_CALL JUDY_SLAVE_SET_STR_FUNC(AMX *amx,cell *params) - { - DTYPE* Unit = NULL; - STYPE* Storage; - - JUDY_GET_INDEX(MNAME,Unit, params[1]); - ITYPE Indice = JUDY_GET_KEY(params,2); - char* Value = MF_GetAmxString(amx,params[3],3,NULL); - - Storage = reinterpret_cast( Unit->Get(Indice, true ) ); - - if(Storage == NULL) Storage = new STYPE(Value); - else Storage->SetStr(Value); - - JUDY_SET_INDEX_P(Unit,Storage,Indice); - } - - #else - - #error Must Have Set func: JUDY_SLAVE_SET_STR_FUNC not defined! - - #endif - - #ifdef JUDY_SLAVE_GET_STR_FUNC - - // generic_get_string(id, index, val[], len, disable_check = 0) - static cell AMX_NATIVE_CALL JUDY_SLAVE_GET_STR_FUNC(AMX *amx,cell *params) - { - DTYPE* Unit = NULL; - STYPE* Storage; - - JUDY_GET_INDEX(MNAME,Unit, params[1]); - ITYPE Indice = JUDY_GET_KEY(params,2); - bool disable_check = (params[5] != NULL); - - try { Storage = reinterpret_cast( Unit->Get(Indice, disable_check ) ); } - JUDY_ERROR_CATCH("Judy Error: (Retrieve unset value) - Slave Get Function "); - - if(Storage == NULL) return 0; - - return MF_SetAmxString(amx,params[3], Storage->GetStr(), params[4] ); - } - - #else - - #error Must Have Get func: JUDY_SLAVE_GET_STR_FUNC not defined! - - #endif - -///* End Slave String Funcs */// -#endif - -///* Start Slave Vector Funcs */// -#ifdef JUDY_SLAVE_EDIT_VEC - - #ifdef JUDY_SLAVE_SET_VEC_FUNC - - // generic_set_vec(id, index, Float:val[3]) - static cell AMX_NATIVE_CALL JUDY_SLAVE_SET_VEC_FUNC(AMX *amx,cell *params) - { - DTYPE* Unit = NULL; - STYPE* Storage; - - JUDY_GET_INDEX(MNAME,Unit, params[1]); - ITYPE Indice = JUDY_GET_KEY(params,2); - - cell *input_vec = MF_GetAmxAddr(amx, params[3]); - JudyVec *Value = new JudyVec( - amx_ctof(input_vec[0]), - amx_ctof(input_vec[1]), - amx_ctof(input_vec[2]) - ); - - Storage = reinterpret_cast( Unit->Get(Indice, true ) ); - - if(Storage == NULL) Storage = new STYPE(Value); - else Storage->SetVec(Value); - - JUDY_SET_INDEX_P(Unit,Storage,Indice); - } - - #else - - #error Must Have Set func: JUDY_SLAVE_SET_VEC_FUNC not defined! - - #endif - - #ifdef JUDY_SLAVE_GET_FLO_FUNC - - // generic_get_vec(id,index,Float:vec[3], disable_check = 0) - static cell AMX_NATIVE_CALL JUDY_SLAVE_GET_VEC_FUNC(AMX *amx,cell *params) - { - DTYPE* Unit = NULL; - STYPE* Storage; - - JUDY_GET_INDEX(MNAME,Unit, params[1]); - ITYPE Indice = JUDY_GET_KEY(params,2); - cell *vAmx = MF_GetAmxAddr(amx, params[3]); - bool disable_check = (params[4] != NULL); - - try { Storage = reinterpret_cast( Unit->Get(Indice, disable_check ) ); } - JUDY_ERROR_CATCH("Judy Error: (Retrieve unset value) - Slave Get Function "); - - if(Storage == NULL) - { - vAmx[0] = amx_ftoc(0); - vAmx[1] = amx_ftoc(0); - vAmx[2] = amx_ftoc(0); - return 0; - } - - JudyVec* Vec = const_cast( Storage->GetVec() ); - - REAL One, Two, Three; - Vec->Get(One, Two, Three); - - vAmx[0] = amx_ftoc(One); - vAmx[1] = amx_ftoc(Two); - vAmx[2] = amx_ftoc(Three); - - return 1; - } - - #else - - #error Must Have Get func: JUDY_SLAVE_GET_VEC_FUNC not defined! - - #endif - -///* End Slave VEC Funcs */// -#endif - -///* End Slave Edit Funcs */// -#endif - -///* Start Slave Search Funcs -#ifdef JUDY_SLAVE_SEARCH_FUNCTIONS - - #ifdef JUDY_SLAVE_FIRST_FUNC - // generic_first(id, index,...) - static cell AMX_NATIVE_CALL JUDY_SLAVE_FIRST_FUNC(AMX *amx,cell *params) - { - DTYPE* Unit = NULL; - JUDY_GET_INDEX(MNAME,Unit, params[1]); - - ITYPE Indice = JUDY_GET_KEY(params,2); - cell* success = MF_GetAmxAddr(amx, params[3 + SE_OFFSET]); - - *success = 1; - try { return JUDY_SET_KEY(Unit->First(Indice),3); } - JUDY_SEARCH_ERROR_CATCH("Judy Error (Search failed) - Slave Search Function", *success); - } - - #else - - #error Must Have Search func: JUDY_SLAVE_FIRST_FUNC not defined! - - #endif - - #ifdef JUDY_SLAVE_NEXT_FUNC - // generic_next(id, index,...) - static cell AMX_NATIVE_CALL JUDY_SLAVE_NEXT_FUNC(AMX *amx,cell *params) - { - DTYPE* Unit = NULL; - JUDY_GET_INDEX(MNAME,Unit, params[1]); - - ITYPE Indice = JUDY_GET_KEY(params,2); - cell* success = MF_GetAmxAddr(amx, params[3 + SE_OFFSET]); - - *success = 1; - try { return JUDY_SET_KEY(Unit->Next(Indice),3); } - JUDY_SEARCH_ERROR_CATCH("Judy Error (Search failed) - Slave Search Function", *success); - } - - #else - - #error Must Have Search func: JUDY_SLAVE_NEXT_FUNC not defined! - - #endif - - #ifdef JUDY_SLAVE_PREV_FUNC - // generic_prev(id, index,...) - static cell AMX_NATIVE_CALL JUDY_SLAVE_PREV_FUNC(AMX *amx,cell *params) - { - DTYPE* Unit = NULL; - - - JUDY_GET_INDEX(MNAME,Unit, params[1]); - ITYPE Indice = JUDY_GET_KEY(params,2); - cell* success = MF_GetAmxAddr(amx, params[3 + SE_OFFSET]); - - *success = 1; - try { return JUDY_SET_KEY(Unit->Prev(Indice),3); } - JUDY_SEARCH_ERROR_CATCH("Judy Error (Search failed) - Slave Search Function", *success); - } - - #else - - #error Must Have Search func: JUDY_SLAVE_PREV_FUNC not defined! - - #endif - - #ifdef JUDY_SLAVE_LAST_FUNC - // generic_first(id, index,...) - static cell AMX_NATIVE_CALL JUDY_SLAVE_LAST_FUNC(AMX *amx,cell *params) - { - DTYPE* Unit = NULL; - - - JUDY_GET_INDEX(MNAME,Unit, params[1]); - ITYPE Indice = JUDY_GET_KEY(params,2); - cell* success = MF_GetAmxAddr(amx, params[3 + SE_OFFSET]); - - *success = 1; - try { return JUDY_SET_KEY(Unit->Last(Indice),3); } - JUDY_SEARCH_ERROR_CATCH("Judy Error (Search failed) - Slave Search Function", *success); - } - - #else - - #error Must Have Search func: JUDY_SLAVE_LAST_FUNC not defined! - - #endif - -///* End Slave Search Funcs */// -#endif - - -///* Start Slave Empty Search Funcs -#ifdef JUDY_SLAVE_SEARCH_EMPTY_FUNCTIONS - - #ifdef JUDY_SLAVE_FIRSTEMPTY_FUNC - // generic_firstempty(id, index,...) - static cell AMX_NATIVE_CALL JUDY_SLAVE_FIRSTEMPTY_FUNC(AMX *amx,cell *params) - { - DTYPE* Unit = NULL; - - - JUDY_GET_INDEX(MNAME,Unit, params[1]); - ITYPE Indice = JUDY_GET_KEY(params,2); - cell* success = MF_GetAmxAddr(amx, params[3 + SE_OFFSET]); - - *success = 1; - try { return JUDY_SET_KEY(Unit->FirstEmpty(Indice),3); } - JUDY_SEARCH_ERROR_CATCH("Judy Error (Search failed) - Slave Search Function", *success); - } - - #else - - #error Must Have Search func: JUDY_SLAVE_FIRSTEMPTY_FUNC not defined! - - #endif - - #ifdef JUDY_SLAVE_NEXTEMPTY_FUNC - // generic_next(id, index,...) - static cell AMX_NATIVE_CALL JUDY_SLAVE_NEXTEMPTY_FUNC(AMX *amx,cell *params) - { - DTYPE* Unit = NULL; - - - JUDY_GET_INDEX(MNAME,Unit, params[1]); - ITYPE Indice = JUDY_GET_KEY(params,2); - cell* success = MF_GetAmxAddr(amx, params[3 + SE_OFFSET]); - - *success = 1; - try { return JUDY_SET_KEY(Unit->NextEmpty(Indice),3); } - JUDY_SEARCH_ERROR_CATCH("Judy Error (Search failed) - Slave Search Function", *success); - } - - #else - - #error Must Have Search func: JUDY_SLAVE_NEXTEMPTY_FUNC not defined! - - #endif - - #ifdef JUDY_SLAVE_PREVEMPTY_FUNC - // generic_prev(id, index,...) - static cell AMX_NATIVE_CALL JUDY_SLAVE_PREVEMPTY_FUNC(AMX *amx,cell *params) - { - DTYPE* Unit = NULL; - - - JUDY_GET_INDEX(MNAME,Unit, params[1]); - ITYPE Indice = JUDY_GET_KEY(params,2); - cell* success = MF_GetAmxAddr(amx, params[3 + SE_OFFSET]); - - *success = 1; - try { return JUDY_SET_KEY(Unit->PrevEmpty(Indice),3); } - JUDY_SEARCH_ERROR_CATCH("Judy Error (Search failed) - Slave Search Function", *success); - } - - #else - - #error Must Have Search func: JUDY_SLAVE_PREVEMPTY_FUNC not defined! - - #endif - - #ifdef JUDY_SLAVE_LASTEMPTY_FUNC - // generic_first(id, index,...) - static cell AMX_NATIVE_CALL JUDY_SLAVE_LASTEMPTY_FUNC(AMX *amx,cell *params) - { - DTYPE* Unit = NULL; - - - JUDY_GET_INDEX(MNAME,Unit, params[1]); - ITYPE Indice = JUDY_GET_KEY(params,2); - cell* success = MF_GetAmxAddr(amx, params[3 + SE_OFFSET]); - - *success = 1; - try { return JUDY_SET_KEY(Unit->LastEmpty(Indice),3); } - JUDY_SEARCH_ERROR_CATCH("Judy Error (Search failed) - Slave Search Function",*success); - } - - #else - - #error Must Have Search func: JUDY_SLAVE_LASTEMPTY_FUNC not defined! - - #endif - -///* End Slave Search Empty Funcs */// -#endif - -AMX_NATIVE_INFO EXPORT_NAME[] = -{ - -#ifdef JUDY_MASTER_EDIT_FUNCTIONS - - { JUDY_MASTER_CLEAR_STR , JUDY_MASTER_CLEAR_FUNC }, - { JUDY_MASTER_DELETE_STR , JUDY_MASTER_DELETE_FUNC }, - -#endif - -#ifdef JUDY_MASTER_IO_FUNCTIONS - - { JUDY_MASTER_SAVE_STR , JUDY_MASTER_SAVE_FUNC }, - { JUDY_MASTER_LOAD_STR , JUDY_MASTER_LOAD_FUNC }, - -#endif - -#ifdef JUDY_MASTER_AMOUNT_FUNCTIONS - - { JUDY_MASTER_COUNT_STR , JUDY_MASTER_COUNT_FUNC }, - { JUDY_MASTER_BYCOUNT_STR , JUDY_MASTER_BYCOUNT_FUNC }, - -#endif - -#ifdef JUDY_SLAVE_AMOUNT_FUNCTIONS - - { JUDY_SLAVE_COUNT_STR , JUDY_SLAVE_COUNT_FUNC }, - { JUDY_SLAVE_BYCOUNT_STR , JUDY_SLAVE_BYCOUNT_FUNC }, - -#endif - -#ifdef JUDY_SLAVE_EDIT_FUNCTIONS - - { JUDY_SLAVE_MEMORY_STR , JUDY_SLAVE_MEMORY_FUNC }, - { JUDY_SLAVE_ISFILLED_STR , JUDY_SLAVE_ISFILLED_FUNC }, - { JUDY_SLAVE_ISEMPTY_STR , JUDY_SLAVE_ISEMPTY_FUNC }, - -#ifndef NO_JUDY_SLAVE_REMOVE_FUNC - { JUDY_SLAVE_REMOVE_STR , JUDY_SLAVE_REMOVE_FUNC }, -#endif - -#ifdef JUDY_SLAVE_EDIT_BOOL - - { JUDY_SLAVE_GET_BOOL_STR , JUDY_SLAVE_GET_BOOL_FUNC }, - { JUDY_SLAVE_SET_BOOL_STR , JUDY_SLAVE_SET_BOOL_FUNC }, - -#endif - -#ifdef JUDY_SLAVE_EDIT_INT - - { JUDY_SLAVE_GET_INT_STR , JUDY_SLAVE_GET_INT_FUNC }, - { JUDY_SLAVE_SET_INT_STR , JUDY_SLAVE_SET_INT_FUNC }, - -#endif - -#ifdef JUDY_SLAVE_EDIT_FLO - - { JUDY_SLAVE_GET_FLO_STR , JUDY_SLAVE_GET_FLO_FUNC }, - { JUDY_SLAVE_SET_FLO_STR , JUDY_SLAVE_SET_FLO_FUNC }, - -#endif - -#ifdef JUDY_SLAVE_EDIT_STR - - { JUDY_SLAVE_GET_STR_STR , JUDY_SLAVE_GET_STR_FUNC }, - { JUDY_SLAVE_SET_STR_STR , JUDY_SLAVE_SET_STR_FUNC }, - -#endif - -#ifdef JUDY_SLAVE_EDIT_VEC - - { JUDY_SLAVE_GET_VEC_STR , JUDY_SLAVE_GET_VEC_FUNC }, - { JUDY_SLAVE_SET_VEC_STR , JUDY_SLAVE_SET_VEC_FUNC }, - -#endif - -// End all edit functions -#endif - -#ifdef JUDY_SLAVE_SEARCH_FUNCTIONS - - { JUDY_SLAVE_FIRST_STR , JUDY_SLAVE_FIRST_FUNC }, - { JUDY_SLAVE_LAST_STR , JUDY_SLAVE_LAST_FUNC }, - - { JUDY_SLAVE_NEXT_STR , JUDY_SLAVE_NEXT_FUNC }, - { JUDY_SLAVE_PREV_STR , JUDY_SLAVE_PREV_FUNC }, - -#endif - -#ifdef JUDY_SLAVE_SEARCH_EMPTY_FUNCTIONS - - { JUDY_SLAVE_FIRSTEMPTY_STR , JUDY_SLAVE_FIRSTEMPTY_FUNC }, - { JUDY_SLAVE_LASTEMPTY_STR , JUDY_SLAVE_LASTEMPTY_FUNC }, - - { JUDY_SLAVE_NEXTEMPTY_STR , JUDY_SLAVE_NEXTEMPTY_FUNC }, - { JUDY_SLAVE_PREVEMPTY_STR , JUDY_SLAVE_PREVEMPTY_FUNC }, - -#endif - - { NULL, NULL } -}; - -#endif \ No newline at end of file diff --git a/dlls/arrayx/Judy.a b/dlls/arrayx/Judy.a deleted file mode 100644 index f828b9db10b73f9a3920c7647c40bc974e70f36c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1164254 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 oXP+8~RQUJ~}B*AL+p}J@^U_{;3DA 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
BOy2X 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 diff --git a/dlls/arrayx/Judy.h b/dlls/arrayx/Judy.h deleted file mode 100644 index 7f495a72..00000000 --- a/dlls/arrayx/Judy.h +++ /dev/null @@ -1,742 +0,0 @@ -#ifndef _JUDY_INCLUDED -#define _JUDY_INCLUDED -// _________________ -// -// Copyright (C) 2000 - 2002 Hewlett-Packard Company -// -// This program is free software; you can redistribute it and/or modify it -// under the term of the GNU Lesser General Public License as published by the -// Free Software Foundation; either version 2 of the License, or (at your -// option) any later version. -// -// This program is distributed in the hope that it will be useful, but WITHOUT -// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License -// for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with this program; if not, write to the Free Software Foundation, -// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// _________________ - -// @(#) $Revision$ $Source$ -// -// HEADER FILE FOR EXPORTED FEATURES IN JUDY LIBRARY, libJudy.* -// -// See the manual entries for details. -// -// Note: This header file uses old-style comments on #-directive lines and -// avoids "()" on macro names in comments for compatibility with older cc -Aa -// and some tools on some platforms. - - -// PLATFORM-SPECIFIC - -#ifdef JU_WIN /* =============================================== */ - -typedef __int8 int8_t; -//typedef __int16 int16_t; -//typedef __int32 int32_t; -typedef __int64 int64_t; - -typedef char uint8_t; -//typedef unsigned __int16 uint16_t; -//typedef unsigned __int32 uint32_t; -typedef unsigned __int64 uint64_t; - -#else /* ================ ! JU_WIN ============================= */ - -// ISO C99: 7.8 Format conversion of integer types -#include /* if this FAILS, try #include */ - -// ISO C99: 7.18 Integer types uint*_t -#include - -#endif /* ================ ! JU_WIN ============================= */ - -// ISO C99 Standard: 7.20 General utilities -#include - -// ISO C99 Standard: 7.10/5.2.4.2.1 Sizes of integer types -#include - -#ifdef __cplusplus /* support use by C++ code */ -extern "C" { -#endif - - -// **************************************************************************** -// DECLARE SOME BASE TYPES IN CASE THEY ARE MISSING: -// -// These base types include "const" where appropriate, but only where of -// interest to the caller. For example, a caller cares that a variable passed -// by reference will not be modified, such as, "const void * Pindex", but not -// that the called function internally does not modify the pointer itself, such -// as, "void * const Pindex". -// -// Note that its OK to pass a Pvoid_t to a Pcvoid_t; the latter is the same, -// only constant. Callers need to do this so they can also pass & Pvoid_t to -// PPvoid_t (non-constant). - -#ifndef _PCVOID_T -#define _PCVOID_T -typedef const void * Pcvoid_t; -#endif - -#ifndef _PVOID_T -#define _PVOID_T -typedef void * Pvoid_t; -typedef void ** PPvoid_t; -#endif - -#ifndef _WORD_T -#define _WORD_T -typedef unsigned int Word_t, * PWord_t; // expect 32-bit or 64-bit words. -#endif - -#ifndef NULL -#define NULL 0 -#endif - - -// **************************************************************************** -// SUPPORT FOR ERROR HANDLING: -// -// Judy error numbers: -// -// Note: These are an enum so theres a related typedef, but the numbers are -// spelled out so you can map a number back to its name. - -typedef enum // uint8_t -- but C does not support this type of enum. -{ - -// Note: JU_ERRNO_NONE and JU_ERRNO_FULL are not real errors. They specify -// conditions which are otherwise impossible return values from 32-bit -// Judy1Count, which has 2^32 + 1 valid returns (0..2^32) plus one error -// return. These pseudo-errors support the return values that cannot otherwise -// be unambiguously represented in a 32-bit word, and will never occur on a -// 64-bit system. - - JU_ERRNO_NONE = 0, - JU_ERRNO_FULL = 1, - JU_ERRNO_NFMAX = JU_ERRNO_FULL, - -// JU_ERRNO_NOMEM comes from malloc(3C) when Judy cannot obtain needed memory. -// The system errno value is also set to ENOMEM. This error can be recoverable -// if the calling application frees other memory. -// -// TBD: Currently there is no guarantee the Judy array has no memory leaks -// upon JU_ERRNO_NOMEM. - - JU_ERRNO_NOMEM = 2, - -// Problems with parameters from the calling program: -// -// JU_ERRNO_NULLPPARRAY means PPArray was null; perhaps PArray was passed where -// &PArray was intended. Similarly, JU_ERRNO_NULLPINDEX means PIndex was null; -// perhaps &Index was intended. Also, JU_ERRNO_NONNULLPARRAY, -// JU_ERRNO_NULLPVALUE, and JU_ERRNO_UNSORTED, all added later (hence with -// higher numbers), mean: A non-null array was passed in where a null pointer -// was required; PValue was null; and unsorted indexes were detected. - - JU_ERRNO_NULLPPARRAY = 3, // see above. - JU_ERRNO_NONNULLPARRAY = 10, // see above. - JU_ERRNO_NULLPINDEX = 4, // see above. - JU_ERRNO_NULLPVALUE = 11, // see above. - JU_ERRNO_NOTJUDY1 = 5, // PArray is not to a Judy1 array. - JU_ERRNO_NOTJUDYL = 6, // PArray is not to a JudyL array. - JU_ERRNO_NOTJUDYSL = 7, // PArray is not to a JudySL array. - JU_ERRNO_UNSORTED = 12, // see above. - -// Errors below this point are not recoverable; further tries to access the -// Judy array might result in EFAULT and a core dump: -// -// JU_ERRNO_OVERRUN occurs when Judy detects, upon reallocation, that a block -// of memory in its own freelist was modified since being freed. - - JU_ERRNO_OVERRUN = 8, - -// JU_ERRNO_CORRUPT occurs when Judy detects an impossible value in a Judy data -// structure: -// -// Note: The Judy data structure contains some redundant elements that support -// this type of checking. - - JU_ERRNO_CORRUPT = 9 - -// Warning: At least some C or C++ compilers do not tolerate a trailing comma -// above here. At least we know of one case, in aCC; see JAGad58928. - -} JU_Errno_t; - - -// Judy errno structure: -// -// WARNING: For compatibility with possible future changes, the fields of this -// struct should not be referenced directly. Instead use the macros supplied -// below. - -// This structure should be declared on the stack in a threaded process. - -typedef struct J_UDY_ERROR_STRUCT -{ - JU_Errno_t je_Errno; // one of the enums above. - int je_ErrID; // often an internal source line number. - Word_t je_reserved[4]; // for future backward compatibility. - -} JError_t, * PJError_t; - - -// Related macros: -// -// Fields from error struct: - -#define JU_ERRNO(PJError) ((PJError)->je_Errno) -#define JU_ERRID(PJError) ((PJError)->je_ErrID) - -// For checking return values from various Judy functions: -// -// Note: Define JERR as -1, not as the seemingly more portable (Word_t) -// (~0UL), to avoid a compiler "overflow in implicit constant conversion" -// warning. - -#define JERR (-1) /* functions returning int or Word_t */ -#define PJERR ((Pvoid_t) (~0UL)) /* mainly for use here, see below */ -#define PPJERR ((PPvoid_t) (~0UL)) /* functions that return PPvoid_t */ - -// Convenience macro for when detailed error information (PJError_t) is not -// desired by the caller; a purposely short name: - -#define PJE0 ((PJError_t) NULL) - - -// **************************************************************************** -// JUDY FUNCTIONS: -// -// P_JE is a shorthand for use below: - -#define P_JE PJError_t PJError - -// **************************************************************************** -// JUDY1 FUNCTIONS: - -extern int j__udy1Test( Pvoid_t Pjpm, Word_t Index); -extern int Judy1Test( Pcvoid_t PArray, Word_t Index, P_JE); -extern int Judy1Set( PPvoid_t PPArray, Word_t Index, P_JE); -extern int Judy1SetArray( PPvoid_t PPArray, Word_t Count, - const Word_t * const PIndex, - P_JE); -extern int Judy1Unset( PPvoid_t PPArray, Word_t Index, P_JE); -extern Word_t Judy1Count( Pcvoid_t PArray, Word_t Index1, - Word_t Index2, P_JE); -extern int Judy1ByCount( Pcvoid_t PArray, Word_t Count, - Word_t * PIndex, P_JE); -extern Word_t Judy1FreeArray( PPvoid_t PPArray, P_JE); -extern Word_t Judy1MemUsed( Pcvoid_t PArray); -extern Word_t Judy1MemActive( Pcvoid_t PArray); -extern int Judy1First( Pcvoid_t PArray, Word_t * PIndex, P_JE); -extern int Judy1Next( Pcvoid_t PArray, Word_t * PIndex, P_JE); -extern int j__udy1Next( Pvoid_t Pjpm, Word_t * PIndex); -extern int Judy1Last( Pcvoid_t PArray, Word_t * PIndex, P_JE); -extern int Judy1Prev( Pcvoid_t PArray, Word_t * PIndex, P_JE); -extern int Judy1FirstEmpty( Pcvoid_t PArray, Word_t * PIndex, P_JE); -extern int Judy1NextEmpty( Pcvoid_t PArray, Word_t * PIndex, P_JE); -extern int Judy1LastEmpty( Pcvoid_t PArray, Word_t * PIndex, P_JE); -extern int Judy1PrevEmpty( Pcvoid_t PArray, Word_t * PIndex, P_JE); - -extern PPvoid_t j__udyLGet( Pvoid_t Pjpm, Word_t Index); -extern PPvoid_t JudyLGet( Pcvoid_t PArray, Word_t Index, P_JE); -extern PPvoid_t JudyLIns( PPvoid_t PPArray, Word_t Index, P_JE); -extern int JudyLInsArray( PPvoid_t PPArray, Word_t Count, - const Word_t * const PIndex, - const Word_t * const PValue, - -// **************************************************************************** -// JUDYL FUNCTIONS: - P_JE); -extern int JudyLDel( PPvoid_t PPArray, Word_t Index, P_JE); -extern Word_t JudyLCount( Pcvoid_t PArray, Word_t Index1, - Word_t Index2, P_JE); -extern PPvoid_t JudyLByCount( Pcvoid_t PArray, Word_t Count, - Word_t * PIndex, P_JE); -extern Word_t JudyLFreeArray( PPvoid_t PPArray, P_JE); -extern Word_t JudyLMemUsed( Pcvoid_t PArray); -extern Word_t JudyLMemActive( Pcvoid_t PArray); -extern PPvoid_t JudyLFirst( Pcvoid_t PArray, Word_t * PIndex, P_JE); -extern PPvoid_t JudyLNext( Pcvoid_t PArray, Word_t * PIndex, P_JE); -extern PPvoid_t j__udyLNext( Pvoid_t Pjpm, Word_t * PIndex); -extern PPvoid_t JudyLLast( Pcvoid_t PArray, Word_t * PIndex, P_JE); -extern PPvoid_t JudyLPrev( Pcvoid_t PArray, Word_t * PIndex, P_JE); -extern int JudyLFirstEmpty( Pcvoid_t PArray, Word_t * PIndex, P_JE); -extern int JudyLNextEmpty( Pcvoid_t PArray, Word_t * PIndex, P_JE); -extern int JudyLLastEmpty( Pcvoid_t PArray, Word_t * PIndex, P_JE); -extern int JudyLPrevEmpty( Pcvoid_t PArray, Word_t * PIndex, P_JE); - -// **************************************************************************** -// JUDYSL FUNCTIONS: - -extern PPvoid_t JudySLGet( Pcvoid_t, const uint8_t * Index, P_JE); -extern PPvoid_t JudySLIns( PPvoid_t, const uint8_t * Index, P_JE); -extern int JudySLDel( PPvoid_t, const uint8_t * Index, P_JE); -extern Word_t JudySLFreeArray( PPvoid_t, P_JE); -extern PPvoid_t JudySLFirst( Pcvoid_t, uint8_t * Index, P_JE); -extern PPvoid_t JudySLNext( Pcvoid_t, uint8_t * Index, P_JE); -extern PPvoid_t JudySLLast( Pcvoid_t, uint8_t * Index, P_JE); -extern PPvoid_t JudySLPrev( Pcvoid_t, uint8_t * Index, P_JE); - -// **************************************************************************** -// JUDYHSL FUNCTIONS: - -extern PPvoid_t JudyHSGet( Pcvoid_t, void *, Word_t); -extern PPvoid_t JudyHSIns( PPvoid_t, void *, Word_t, P_JE); -extern int JudyHSDel( PPvoid_t, void *, Word_t, P_JE); -extern Word_t JudyHSFreeArray( PPvoid_t, P_JE); - -extern const char *Judy1MallocSizes; -extern const char *JudyLMallocSizes; - -// **************************************************************************** -// JUDY memory interface to malloc() FUNCTIONS: - -extern Word_t JudyMalloc(Word_t); // words reqd => words allocd. -extern Word_t JudyMallocVirtual(Word_t); // words reqd => words allocd. -extern void JudyFree(Pvoid_t, Word_t); // free, size in words. -extern void JudyFreeVirtual(Pvoid_t, Word_t); // free, size in words. - -#define JLAP_INVALID 0x1 /* flag to mark pointer "not a Judy array" */ - -// **************************************************************************** -// MACRO EQUIVALENTS FOR JUDY FUNCTIONS: -// -// The following macros, such as J1T, are shorthands for calling Judy functions -// with parameter address-of and detailed error checking included. Since they -// are macros, the error checking code is replicated each time the macro is -// used, but it runs fast in the normal case of no error. -// -// If the caller does not like the way the default JUDYERROR macro handles -// errors (such as an exit(1) call when out of memory), they may define their -// own before the "#include ". A routine such as HandleJudyError -// could do checking on specific error numbers and print a different message -// dependent on the error. The following is one example: -// -// Note: the back-slashes are removed because some compilers will not accept -// them in comments. -// -// void HandleJudyError(uint8_t *, int, uint8_t *, int, int); -// #define JUDYERROR(CallerFile, CallerLine, JudyFunc, JudyErrno, JudyErrID) -// { -// HandleJudyError(CallerFile, CallerLine, JudyFunc, JudyErrno, JudyErrID); -// } -// -// The routine HandleJudyError could do checking on specific error numbers and -// print a different message dependent on the error. -// -// The macro receives five parameters that are: -// -// 1. CallerFile: Source filename where a Judy call returned a serious error. -// 2. CallerLine: Line number in that source file. -// 3. JudyFunc: Name of Judy function reporting the error. -// 4. JudyErrno: One of the JU_ERRNO* values enumerated above. -// 5. JudyErrID: The je_ErrID field described above. - -#ifndef JUDYERROR_NOTEST -#ifndef JUDYERROR /* supply a default error macro */ -#include - -#define JUDYERROR(CallerFile, CallerLine, JudyFunc, JudyErrno, JudyErrID) \ - { \ - (void) fprintf(stderr, "File '%s', line %d: %s(), " \ - "JU_ERRNO_* == %d, ID == %d\n", \ - CallerFile, CallerLine, \ - JudyFunc, JudyErrno, JudyErrID); \ - exit(1); \ - } - -#endif /* JUDYERROR */ -#endif /* JUDYERROR_NOTEST */ - -// If the JUDYERROR macro is not desired at all, then the following eliminates -// it. However, the return code from each Judy function (that is, the first -// parameter of each macro) must be checked by the caller to assure that an -// error did not occur. -// -// Example: -// -// #define JUDYERROR_NOTEST 1 -// #include -// -// or use this cc option at compile time: -// -// cc -DJUDYERROR_NOTEST ... -// -// Example code: -// -// J1S(Rc, PArray, Index); -// if (Rc == JERR) goto ...error -// -// or: -// -// JLI(PValue, PArray, Index); -// if (PValue == PJERR) goto ...error - - -// Internal shorthand macros for writing the J1S, etc. macros: - -#ifdef JUDYERROR_NOTEST /* ============================================ */ - -// "Judy Set Error": - -#define J_SE(FuncName,Errno) ((void) 0) - -// Note: In each J_*() case below, the digit is the number of key parameters -// to the Judy*() call. Just assign the Func result to the callers Rc value -// without a cast because none is required, and this keeps the API simpler. -// However, a family of different J_*() macros is needed to support the -// different numbers of key parameters (0,1,2) and the Func return type. -// -// In the names below, "I" = integer result; "P" = pointer result. Note, the -// Funcs for J_*P() return PPvoid_t, but cast this to a Pvoid_t for flexible, -// error-free assignment, and then compare to PJERR. - -#define J_0I(Rc,PArray,Func,FuncName) \ - { (Rc) = Func(PArray, PJE0); } - -#define J_1I(Rc,PArray,Index,Func,FuncName) \ - { (Rc) = Func(PArray, Index, PJE0); } - -#define J_1P(PV,PArray,Index,Func,FuncName) \ - { (PV) = (Pvoid_t) Func(PArray, Index, PJE0); } - -#define J_2I(Rc,PArray,Index,Arg2,Func,FuncName) \ - { (Rc) = Func(PArray, Index, Arg2, PJE0); } - -#define J_2C(Rc,PArray,Index1,Index2,Func,FuncName) \ - { (Rc) = Func(PArray, Index1, Index2, PJE0); } - -#define J_2P(PV,PArray,Index,Arg2,Func,FuncName) \ - { (PV) = (Pvoid_t) Func(PArray, Index, Arg2, PJE0); } - -// Variations for Judy*Set/InsArray functions: - -#define J_2AI(Rc,PArray,Count,PIndex,Func,FuncName) \ - { (Rc) = Func(PArray, Count, PIndex, PJE0); } -#define J_3AI(Rc,PArray,Count,PIndex,PValue,Func,FuncName) \ - { (Rc) = Func(PArray, Count, PIndex, PValue, PJE0); } - -#else /* ================ ! JUDYERROR_NOTEST ============================= */ - -#define J_E(FuncName,PJE) \ - JUDYERROR(__FILE__, __LINE__, FuncName, JU_ERRNO(PJE), JU_ERRID(PJE)) - -#define J_SE(FuncName,Errno) \ - { \ - JError_t J_Error; \ - JU_ERRNO(&J_Error) = (Errno); \ - JU_ERRID(&J_Error) = __LINE__; \ - J_E(FuncName, &J_Error); \ - } - -// Note: In each J_*() case below, the digit is the number of key parameters -// to the Judy*() call. Just assign the Func result to the callers Rc value -// without a cast because none is required, and this keeps the API simpler. -// However, a family of different J_*() macros is needed to support the -// different numbers of key parameters (0,1,2) and the Func return type. -// -// In the names below, "I" = integer result; "P" = pointer result. Note, the -// Funcs for J_*P() return PPvoid_t, but cast this to a Pvoid_t for flexible, -// error-free assignment, and then compare to PJERR. - -#define J_0I(Rc,PArray,Func,FuncName) \ - { \ - JError_t J_Error; \ - if (((Rc) = Func(PArray, &J_Error)) == JERR) \ - J_E(FuncName, &J_Error); \ - } - -#define J_1I(Rc,PArray,Index,Func,FuncName) \ - { \ - JError_t J_Error; \ - if (((Rc) = Func(PArray, Index, &J_Error)) == JERR) \ - J_E(FuncName, &J_Error); \ - } - -#define J_1P(Rc,PArray,Index,Func,FuncName) \ - { \ - JError_t J_Error; \ - if (((Rc) = (Pvoid_t) Func(PArray, Index, &J_Error)) == PJERR) \ - J_E(FuncName, &J_Error); \ - } - -#define J_2I(Rc,PArray,Index,Arg2,Func,FuncName) \ - { \ - JError_t J_Error; \ - if (((Rc) = Func(PArray, Index, Arg2, &J_Error)) == JERR) \ - J_E(FuncName, &J_Error); \ - } - -// Variation for Judy*Count functions, which return 0, not JERR, for error (and -// also for other non-error cases): -// -// Note: JU_ERRNO_NFMAX should only apply to 32-bit Judy1, but this header -// file lacks the necessary ifdefs to make it go away otherwise, so always -// check against it. - -#define J_2C(Rc,PArray,Index1,Index2,Func,FuncName) \ - { \ - JError_t J_Error; \ - if ((((Rc) = Func(PArray, Index1, Index2, &J_Error)) == 0) \ - && (JU_ERRNO(&J_Error) > JU_ERRNO_NFMAX)) \ - { \ - J_E(FuncName, &J_Error); \ - } \ - } - -#define J_2P(PV,PArray,Index,Arg2,Func,FuncName) \ - { \ - JError_t J_Error; \ - if (((PV) = (Pvoid_t) Func(PArray, Index, Arg2, &J_Error)) \ - == PJERR) J_E(FuncName, &J_Error); \ - } - -// Variations for Judy*Set/InsArray functions: - -#define J_2AI(Rc,PArray,Count,PIndex,Func,FuncName) \ - { \ - JError_t J_Error; \ - if (((Rc) = Func(PArray, Count, PIndex, &J_Error)) == JERR) \ - J_E(FuncName, &J_Error); \ - } - -#define J_3AI(Rc,PArray,Count,PIndex,PValue,Func,FuncName) \ - { \ - JError_t J_Error; \ - if (((Rc) = Func(PArray, Count, PIndex, PValue, &J_Error)) \ - == JERR) J_E(FuncName, &J_Error); \ - } - -#endif /* ================ ! JUDYERROR_NOTEST ============================= */ - -// Some of the macros are special cases that use inlined shortcuts for speed -// with root-level leaves: - -// This is a slower version with current processors, but in the future... -#ifdef notdef -#define J1T(Rc,PArray,Index) \ -{ \ - PWord_t P_L = (PWord_t)(PArray); \ - (Rc) = 0; \ - if (P_L) /* cannot be a NULL pointer */ \ - { \ - if (P_L[0] < 31) /* is a LeafL */ \ - { \ - Word_t _pop1 = P_L[0] + 1; \ - PWord_t P_LE = P_L + _pop1; \ - Word_t _index = 0; \ - int ii = 0; \ - P_L++; \ - while (_pop1 > 4) \ - { \ - _pop1 /=2; \ - _index = P_L[_pop1]; \ - if ((Index) > _index) P_L += _pop1 + 1; \ - } \ - while (P_L <= P_LE) \ - { \ - ii++; \ - _index = P_L[0]; \ - if (_index >= (Index)) break; \ - P_L++; \ - } \ - if (_index == (Index)) (Rc) = 1; \ - } \ - else \ - { \ - (Rc) = j__udy1Test((Pvoid_t)P_L, (Index)); \ - } \ - } \ -} -#endif // notdef - -#define J1T(Rc,PArray,Index) \ -{ \ - PWord_t P_L = (PWord_t)(PArray); \ - (Rc) = 0; \ - if (P_L) /* cannot be a NULL pointer */ \ - { \ - if (P_L[0] < 31) /* is a LeafL */ \ - { \ - Word_t _pop1 = P_L[0] + 1; \ - Word_t _EIndex = P_L[_pop1]; \ - if (_pop1 >= 16) \ - { \ - if ((Index) > P_L[_pop1/2]) P_L += _pop1/2; \ - } \ - if ((Index) <= _EIndex) \ - { \ - while((Index) > *(++P_L)); \ - if (*P_L == (Index)) (Rc) = 1; \ - } \ - } \ - else \ - { \ - (Rc) = j__udy1Test((Pvoid_t)P_L, Index); \ - } \ - } \ -} - -#define J1S( Rc, PArray, Index) \ - J_1I(Rc, (&(PArray)), Index, Judy1Set, "Judy1Set") -#define J1SA(Rc, PArray, Count, PIndex) \ - J_2AI(Rc,(&(PArray)), Count, PIndex, Judy1SetArray, "Judy1SetArray") -#define J1U( Rc, PArray, Index) \ - J_1I(Rc, (&(PArray)), Index, Judy1Unset, "Judy1Unset") -#define J1F( Rc, PArray, Index) \ - J_1I(Rc, PArray, &(Index), Judy1First, "Judy1First") -#define J1N( Rc, PArray, Index) \ - J_1I(Rc, PArray, &(Index), Judy1Next, "Judy1Next") -#define J1L( Rc, PArray, Index) \ - J_1I(Rc, PArray, &(Index), Judy1Last, "Judy1Last") -#define J1P( Rc, PArray, Index) \ - J_1I(Rc, PArray, &(Index), Judy1Prev, "Judy1Prev") -#define J1FE(Rc, PArray, Index) \ - J_1I(Rc, PArray, &(Index), Judy1FirstEmpty, "Judy1FirstEmpty") -#define J1NE(Rc, PArray, Index) \ - J_1I(Rc, PArray, &(Index), Judy1NextEmpty, "Judy1NextEmpty") -#define J1LE(Rc, PArray, Index) \ - J_1I(Rc, PArray, &(Index), Judy1LastEmpty, "Judy1LastEmpty") -#define J1PE(Rc, PArray, Index) \ - J_1I(Rc, PArray, &(Index), Judy1PrevEmpty, "Judy1PrevEmpty") -#define J1C( Rc, PArray, Index1, Index2) \ - J_2C(Rc, PArray, Index1, Index2, Judy1Count, "Judy1Count") -#define J1BC(Rc, PArray, Count, Index) \ - J_2I(Rc, PArray, Count, &(Index), Judy1ByCount, "Judy1ByCount") -#define J1FA(Rc, PArray) \ - J_0I(Rc, (&(PArray)), Judy1FreeArray, "Judy1FreeArray") -#define J1MU(Rc, PArray) \ - (Rc) = Judy1MemUsed(PArray) - -#define JLG(PV,PArray,Index) \ -{ \ - extern const uint8_t j__L_LeafWOffset[]; \ - PWord_t P_L = (PWord_t)(PArray); \ - (PV) = (Pvoid_t) NULL; \ - if (P_L) /* cannot be a NULL pointer */ \ - { \ - if (P_L[0] < 31) /* is a LeafL */ \ - { \ - Word_t _pop1 = P_L[0] + 1; \ - Word_t _EIndex = P_L[_pop1]; \ - Word_t _off = j__L_LeafWOffset[_pop1] - 1; \ - if (_pop1 >= 16) \ - { \ - if ((Index) > P_L[_pop1/2]) P_L += _pop1/2; \ - } \ - if ((Index) <= _EIndex) \ - { \ - while((Index) > *(++P_L)); \ - if (*P_L == (Index)) (PV) = (Pvoid_t)(P_L+_off);\ - } \ - } \ - else \ - { \ - (PV) = (Pvoid_t)j__udyLGet((Pvoid_t)P_L, Index); \ - } \ - } \ -} - -#define JLI( PV, PArray, Index) \ - J_1P(PV, (&(PArray)), Index, JudyLIns, "JudyLIns") - -#define JLIA(Rc, PArray, Count, PIndex, PValue) \ - J_3AI(Rc,(&(PArray)), Count, PIndex, PValue, JudyLInsArray, \ - "JudyLInsArray") -#define JLD( Rc, PArray, Index) \ - J_1I(Rc, (&(PArray)), Index, JudyLDel, "JudyLDel") - -#define JLF( PV, PArray, Index) \ - J_1P(PV, PArray, &(Index), JudyLFirst, "JudyLFirst") - -#define JLN(PV,PArray,Index) \ -{ \ - extern const uint8_t j__L_LeafWOffset[]; \ - PWord_t P_L = (PWord_t) (PArray); \ - \ - (PV) = (Pvoid_t) NULL; \ - \ - if (P_L) /* cannot be a NULL pointer */ \ - { \ - if (P_L[0] < 31) /* is a LeafL */ \ - { \ - Word_t _pop1 = P_L[0] + 1; \ - Word_t _off = j__L_LeafWOffset[_pop1] -1; \ - if ((Index) < P_L[_pop1]) \ - { \ - while(1) \ - { \ - if ((Index) < *(++P_L)) \ - { \ - (Index) = *P_L; \ - (PV) = (Pvoid_t) (P_L + _off); \ - break; \ - } \ - } \ - } \ - } \ - else \ - { \ - (PV) = (Pvoid_t)JudyLNext((Pvoid_t) PArray, &(Index), PJE0); \ - } \ - } \ -} - -#define JLL( PV, PArray, Index) \ - J_1P(PV, PArray, &(Index), JudyLLast, "JudyLLast") -#define JLP( PV, PArray, Index) \ - J_1P(PV, PArray, &(Index), JudyLPrev, "JudyLPrev") -#define JLFE(Rc, PArray, Index) \ - J_1I(Rc, PArray, &(Index), JudyLFirstEmpty, "JudyLFirstEmpty") -#define JLNE(Rc, PArray, Index) \ - J_1I(Rc, PArray, &(Index), JudyLNextEmpty, "JudyLNextEmpty") -#define JLLE(Rc, PArray, Index) \ - J_1I(Rc, PArray, &(Index), JudyLLastEmpty, "JudyLLastEmpty") -#define JLPE(Rc, PArray, Index) \ - J_1I(Rc, PArray, &(Index), JudyLPrevEmpty, "JudyLPrevEmpty") -#define JLC( Rc, PArray, Index1, Index2) \ - J_2C(Rc, PArray, Index1, Index2, JudyLCount, "JudyLCount") -#define JLBC(PV, PArray, Count, Index) \ - J_2P(PV, PArray, Count, &(Index), JudyLByCount, "JudyLByCount") -#define JLFA(Rc, PArray) \ - J_0I(Rc, (&(PArray)), JudyLFreeArray, "JudyLFreeArray") -#define JLMU(Rc, PArray) \ - (Rc) = JudyLMemUsed(PArray) - -#define JHSI(PV, PArray, PIndex, Count) \ - J_2P(PV, (&(PArray)), PIndex, Count, JudyHSIns, "JudyHSIns") -#define JHSG(PV, PArray, PIndex, Count) \ - (PV) = (Pvoid_t) JudyHSGet(PArray, PIndex, Count) -#define JHSD(Rc, PArray, PIndex, Count) \ - J_2I(Rc, (&(PArray)), PIndex, Count, JudyHSDel, "JudyHSDel") -#define JHSFA(Rc, PArray) \ - J_0I(Rc, (&(PArray)), JudyHSFreeArray, "JudyHSFreeArray") - -#define JSLG( PV, PArray, Index) \ - J_1P( PV, PArray, Index, JudySLGet, "JudySLGet") -#define JSLI( PV, PArray, Index) \ - J_1P( PV, (&(PArray)), Index, JudySLIns, "JudySLIns") -#define JSLD( Rc, PArray, Index) \ - J_1I( Rc, (&(PArray)), Index, JudySLDel, "JudySLDel") -#define JSLF( PV, PArray, Index) \ - J_1P( PV, PArray, Index, JudySLFirst, "JudySLFirst") -#define JSLN( PV, PArray, Index) \ - J_1P( PV, PArray, Index, JudySLNext, "JudySLNext") -#define JSLL( PV, PArray, Index) \ - J_1P( PV, PArray, Index, JudySLLast, "JudySLLast") -#define JSLP( PV, PArray, Index) \ - J_1P( PV, PArray, Index, JudySLPrev, "JudySLPrev") -#define JSLFA(Rc, PArray) \ - J_0I( Rc, (&(PArray)), JudySLFreeArray, "JudySLFreeArray") - -#ifdef __cplusplus -} -#endif -#endif /* ! _JUDY_INCLUDED */ diff --git a/dlls/arrayx/Judy.lib b/dlls/arrayx/Judy.lib deleted file mode 100644 index 77a8964d7e95f1a4cc55b9893053ad20e674965c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 256910 zcmeFa3w)hbmG}ST(loSzrWl|MD1~y9Ytxio2ufQxTxyOK%K>CisJ+M?Y!krOMp{pc zIXR6~rHJ$5f6Du!GBfoZoWWOM=-6PP1*@h|v}m0PwK_Q@VwlNDa5D7&{jL36Pfl-K z9OwP`v`N;po_%}PUVH7e*Is))$DT89@%-yPIO@#t$*aD;e)8n0QyQjEOX4T`x09w% zndHE0M|qxikLMk=H2E|AHqYDJ&)nIbH?MmCe-@GU?r(VBBUgD|*PEXAd#e49SG=rF`Jd06=2hG^%KdzPsaFyI$q#uI#XnzN;8g@a56<=~^t1kdC4aUzc@>4@ z<3HETZdvf@i{_rc@Fvd(FIc>A;mpO0=Y2XrT)40~0585}i38_0g*oOnU2y&4C4Lfa zlG*1rh1use#j-cei?V!p;hkajIg1zG?p<@kHP_IrC~H%C-c2{%I)Co<|6?Hy;Azt} zvlh?0W&U-uX3v>(>us0add01a7X(k57S3B#f61anOVn;lYnYPhCJjqBsbso_Vd)x5 zrn|f(_KIP-uZX8p7c}X`Q#aq%?33N@9j%*0pZKGQUQOwRH)obCT;M0v>u+D^ zC{bUvRI?Ft*{%8$ z(ZTK%+=@3yfhf54=c|sf*CJ+bpF>&DF*qE=6#DRhS zBPRsv_ap@Bjb)33fFUOp2?0YE3jsq869V<|fgR3632a2^cv@cw)F;PiQV7)hBRUiU z0V1M&u@DGS_(GsQ6ao?n>J>L+1YLgp;^vllH#vkG`f)gTe8AfLv?;z~f9#r~Ketlh; zx9g5FuV;Cgch%ix-WQ%O^FI4xnYZ8p zepk7-?knJ)F8AK-Dfd2HSK-Z=R^g4CU*VN6tnlu;slq$$GZo&byDGe;pRe$S@)h2K zuU2@oAFS~H*ZK;tX?ulte4#>15brea6z?SdooK(0@+Nr4dB=L=y<@!hdGGa(_WsN} z(mS1hW&Xb-yu-Xhy|MhO^~QLIcn2F?>5cLZ@~XX&UX?e((wBS5e@A)2ze;cTzvI2p z-ti^=o$Q_J|9iiuf2Go#=$*hjob3M_M@gmry~jJ;|5xYfU#T>sd8Z1mhBthV|IenF zBzFa@EKb||@D=yPg?#DZY~>`TB!`J)cyJ%7jB(LlJS#X=-0~F9CDANXH2svGGxsu% z4t(j+lo+B-zC2Jfqcur{7B|LN@BVV^53JfSHT^%e#M4w;q&*E=o%za2TsaArXMwWpCz-{v zw-^=8ntrB8L2-zylDoTKfX378)DJecC(o*)QIlQfT*jG#9lm7uK3VsP1=djq_WbRQ-Hpk)HFeXl71!y9%3JUq`eG5fSGFsF3plM96tQBF1?ECgQvh z6LMaN2{|voM9Yi-6Y`>uh}PVD;?1UF-V6{?{lz+BkRp1~lDydz$CgeTQKpC$&1{BY zBSu}9A}Yt-7nKkvttDuRQPxL9FXkg6x;jLRtPT-T)$Svr>Na9kH*xw5Q;Kbi*XX6# zwn@n11%)At7Ziq!78GX|Dcbw8n%7U9G$pW_Yg)c&?$z$k8Ml7o22bGJCd15a3NcMr z`)`L4GlsNT{jzzVxM|^%Vr)2XmwHf)3+Mk*4~lWV7EuE2l#O8z=E>N1@dd^Bct@3Z zW?D}Pd@-s7MZ_H?v)kIVxB%=>!%_2{ji&fPd}IxKCacgeWa)Bz)iF$6@At16bz)d` zurvA;BPAq<;gXzCZ(I}_W{OjzF&CqTGmT${9uy}Y&NO~vJt$6G%rt(|P(vM-zL;tJ z3?-Sye>S|^g9q9dD6ZlBg~fgBr!LvY!Lvjk2gss6_R+DU7bt!Z%PfSm~3mmH)h3JpnRr3d-gG7 zvdaah`t#M<&azy(C!gujUCruTx(~QvL;L4Q;AMNta;aU})}GqM@5`rqwid{qPt`V7 zw%>k8aNkkco+E3zwlUpz$Ehm+smh#^8Ls;F^4?zMDsN2Hw$$X)yST9|gT3z|)1};g zq{r&oSe;7^W?KinmXQq`3NKcu*#ln7!P(YYuUV+43{_h>=I(>a)cS#3YI{Dty&_$k zOK;nh+M!Z<56Wk@XP+v|Wwz&2+Z$8cn(OlE9XCFE3~1h}ykc`My`%T%;Bx8id}c6T zo=bIwRO$+-li^jc#dLF7sqa_9p|fr=HAC3&@^+lJ=`3AI+y8&2uLTJ_g+IYghlMtHcQuk+D?-vEr z_wPQw!zh>;fC*<+bas!UrQ*dQdPJ!5&hFYGR9RPlgw~FhF#oHMeP6WL+hv06WD{ggB1|+Pa7wnd&TBsUaWUu0XPX)7 zb(_j{lTX!cno;=^dL_Ggcj0fXcdEr>1Acc%lK28JH4x*m0iVbE@~J*L)Of5PIKg8* z+15Veu|Dw_lC{?7F?VkaBQ9vn^oz#^jK@f3IG@J`#A6bG60`%BWk@_$3y%%Ncx))! zI^?ySpHJ5@R`swtc!*Hf!`&?>85NFfcs3+~Na;xM&prv(f$`;no}~wodil(bicBqn zaZ{=rq(o(EhY7YFh{MM8c0^^S`^M*w0nPhYS8UB?x)GI`?p$UU#nYF&Xw*A@za_1mgzKKRqDV;N`vez}J7s03khWxi04Bm=SG6ZvpDXh~^%eK}a%~m4n8A91< zUdtW%bWOH%WM`o~U?fJc;|iZ2op0 zM>XvjWTFb+1;(r?qi1tvKn1HlQ|k-UF)Pj@YuJpO<}jWe|EA4*{ecvyv946vzR2(; zY=2>jHK5itU{lH-(+N(-cAJdtE+u1oBx4zrCU%{SO`x2NjiZpU;jL>|DAISh>UOBQ z%#Pj1uW{6Lev3Z*?8fqD3obmbf$k=Ffs4oWsdc#Yu?)?y)QbQWK@+ z^#t9GGCkmC037sqg?{=kpW0R-y#$4KyWWHuAid2N0Ne7JZH<{OW`NZ88#f#STKyyO zvz-|rwcV+Dno+lGO7$skwslKDh18bVjJn02Q8$_ryTxYI&A^Enbwjpwqs^!rHKU?S z2U?rEx9M>U!?Q87Su^SulPx4OoIj&(3AMHjq_8Y~f!4MqU?Zr|*IR{*uyu{bM4yd` z*s241Xf`Qp4(8QT^5|;VKtkm~-kdU+m&UAIZB(eOynSXQOv0(0(dJ4GCdX33M4C6H z_I{WKW~X~CGu^ONKSqpLTu`ZDdxu}ph{qVeUO1VatPxb5eYp%xp&>qJ1rutF4ArFF zL}t&kG76O{(&pmN#N}9g7D+RU_-bwSaJAM@NwwBcNwrp}m|DxUN{@vDtuJ7)bYEty0fjjY@qGZKJP>t#TqsnR8N>98m;9de*C`@KM|u##AW(xLD!sP% zNc4tFJ2HdND=vhch6xkMiXr89%!*eH8bn9@KUTicDxazONJpxNZW+pt4Rtz={UcqS z(m;k1b@rjud(Bh$y}Nm$YDXb7@emQeAG68s7E>m^MO_TiigbT2J<$6%%HPLVVeucJUO23tLifdYcRyZR3kO*&+mQ+S{Q1D)`1asHG?iPFNE8)Tl8G8mr zcosm0ou#T_q#%!*?}9wXhj{>c4=<6{r%{@B!ET3p$>aP!oS!;x3H*DQ;k2A`I6P%| zqMttpl69`idj;qagDywGcj>+cbgrHl|YjX`cVi?fms~Ynt^6n-U`^^0|wm+yFKrdW&ZBme23HT8S`(w`L;8zUohpw!@S+3sYsaJ8MwHI)inv0_$CRWx+cK}_a`y+7(x=5dOCh_3`1Qo zt>lm^=bD=r-aP;2+x)7=8y0hLP&I#*&h?oAAvG>_xAxnmnGgJ|l^m3FOPD6W+!1}LA6V;ZKDMq@oHXA& zVyG(>!%S+JPA*BnsGKRJ868VgKYa@A8A4P=Y0iR%g(L#Mw4WodoNY|ABoy2xqb?~vB7G0BX?5$Sy1EKNet!ue@P5| znvY`|rbAW9;i#^I%RKK+!;JT7_&zZ13NU93!%QEBNr4%2s7ltjn9H5{_FXjBPEg^9 z&}4@QN*pE{e!M7#kz?c@N^laEyy`ZYTe#?{Q2rlRpQz=Zm`Qbmkhb2PDP8q*iMe$}#X@8})rZ>(Z$DtuCz%^E$HJ-{3mbnVub z_bx=4ZojCkE!~enVfjv`V$AX2(^y9Zs~F3f5B zh684mu1F77JV%}eY#uFl(sj9{^-4Uur8h(&8IQ*Cyal^e#ayjmviU_)e@y*8$f8n%l=bMiLP zAY9pX>&}+nLFd!wxMU zV!9q<@W5)Z7;C22asvj!?1qt@J>i-jTXeTQ3fd!Pl!$c9_<�Z$UvnZM;;o@sjBd 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 Imp - -class JudyEx -{ -private: - char* ex_message; - bool fatal; - -public: - - JudyEx() { ex_message = NULL; fatal = true; } - JudyEx(char* set, bool isfatal) - { - ex_message = new char[strlen(set) + 1]; - strcpy(ex_message, set); - - fatal = isfatal; - } - - JudyEx(const JudyEx ©) - { - ex_message = new char[strlen(copy.ex_message) + 1]; - strcpy(ex_message, copy.ex_message); - - fatal = copy.fatal; - } - - ~JudyEx() { delete ex_message; } - - void Destroy() { delete ex_message; } - - void SetIsFatal(bool isfatal) { fatal = isfatal; } - bool IsFatal( void ) { return fatal; } - - char* SetErrorMessage(char* set) - { - ex_message = new char[strlen(set) + 1]; - strcpy(ex_message, set); - } - - char* ErrorMessage( void ) - { - return ex_message; - } -}; - -#endif \ No newline at end of file diff --git a/dlls/arrayx/JudyExtra.cpp b/dlls/arrayx/JudyExtra.cpp deleted file mode 100644 index caf4df23..00000000 --- a/dlls/arrayx/JudyExtra.cpp +++ /dev/null @@ -1,313 +0,0 @@ -#include "JudyExtra.h" -#include "CBinTrie.h" - -bool JudyClearMasterTrie(CBaseList* master) -{ - cell master_iten = NULL; - BinTrie* Storage = NULL; - - try { master_iten = master->First(); } - catch(JudyEx& e) { return false; } - - while( true ) - { - try { Storage = reinterpret_cast(master->Get(master_iten) ); } - catch(JudyEx& e) { break; } - - Storage->Remove(); - - try { master->Delete(master_iten); } - catch(JudyEx& e) { return false; } - - try { master_iten = master->Next(master_iten); } - catch(JudyEx& e) { break; } - } - - return true; -}; - -bool JudyClearBinTrie(BinTrie* trie) -{ - Word_t trie_iten = NULL; - - try { trie_iten = trie->First(); } - catch(JudyEx& e) { return false; } - - while( true ) - { - trie->Delete(trie_iten); - - try { trie_iten = trie->Next(trie_iten); } - catch(JudyEx& e) { break; } - } - return true; -}; - -bool JudySaveBinTrie(BinTrie* trie, char* file) -{ - Word_t trie_iten = NULL; - - try { trie_iten = trie->First(); } - catch(JudyEx e) { return false; } - - FILE *trieDB = fopen(file,"wb"); - if (!trieDB) return false; - - bool value = false; - - while( true ) - { - fwrite(&trie_iten, sizeof(Word_t), 1, trieDB); - - value = (trie->Get(trie_iten) != NULL); - fwrite(&value, sizeof(bool), 1, trieDB); - - try { trie_iten = trie->Next(trie_iten); } - catch(JudyEx& e) { break; } - } - - fclose(trieDB); - return true; -}; - -bool JudyLoadBinTrie(BinTrie* trie, char* file) -{ - FILE *trieDB = fopen(file, "ab+"); - if (!trieDB) return false; - - Word_t trie_iten = NULL; - - bool value = false; - - while(!feof(trieDB)) - { - fread(&trie_iten, sizeof(Word_t), 1, trieDB); - if (feof(trieDB) || ferror(trieDB)) break; - - fread(&value, sizeof(bool), 1, trieDB); - - trie->Set(trie_iten,value); - } - - fclose(trieDB); - return true; -} - -bool JudyClearMasterList(CBaseList* master) -{ - cell master_iten = NULL; - CBaseList* Storage = NULL; - - try { master_iten = master->First(); } - catch(JudyEx& e) { return false; } - - while( true ) - { - try { Storage = reinterpret_cast(master->Get(master_iten) ); } - catch(JudyEx& e) { break; } - - Storage->Remove(); - - try { master->Delete(master_iten); } - catch(JudyEx& e) { return false; } - - try { master_iten = master->Next(master_iten); } - catch(JudyEx& e) { break; } - } - - return true; -}; - -bool JudyClearList(CBaseList* list) -{ - Word_t list_iten = NULL; - Capsule* Storage = NULL; - - try { list_iten = list->First(); } - catch(JudyEx& e) { return false; } - - while( true ) - { - try { Storage = reinterpret_cast(list->Get(list_iten) ); } - catch(JudyEx& e) { break; } - - Storage->Remove(); - - try { list->Delete(list_iten); } - catch(JudyEx& e) { break; } - - try { list_iten = list->Next(list_iten); } - catch(JudyEx& e) { break; } - } - return true; -}; - -bool JudySaveList(CBaseList* list, char* file) -{ - Capsule* Storage = NULL; - Word_t list_iten = NULL; - bool no_error = true; - - try { list_iten = list->First(); } - catch(JudyEx e) { return false; } - - FILE* listDB = fopen(file,"wb"); - if (!listDB) return false; - - while( true ) - { - try { Storage = reinterpret_cast(list->Get(list_iten) ); } - catch(JudyEx& e) { no_error = false; break; } - - fwrite(&list_iten, sizeof(Word_t), 1, listDB); - try { Storage->Save(listDB); } - catch(JudyEx& e) { no_error = false; break; } - - try { list_iten = list->Next(list_iten); } - catch(JudyEx& e) { break; } - } - - fclose(listDB); - return no_error; -}; - -bool JudyLoadList(CBaseList* list, char* file) -{ - FILE *listDB = fopen(file, "ab+"); - if (!listDB) return false; - - Capsule* Storage = NULL; - Word_t list_iten = NULL; - bool no_error = true; - - while(!feof(listDB)) - { - fread(&list_iten, sizeof(Word_t), 1, listDB); - if (feof(listDB) || ferror(listDB)) break; - - Storage = new Capsule; - try { Storage->Load(listDB); } - catch(JudyEx& e) { no_error = false; break; } - - list->Set(list_iten,Storage); - } - - fclose(listDB); - return no_error; -} - -bool JudyClearMasterMap(CBaseList* master) -{ - cell master_iten = NULL; - CBaseMap* Storage = NULL; - - try { master_iten = master->First(); } - catch(JudyEx& e) { return false; } - - while( true ) - { - try { Storage = reinterpret_cast(master->Get(master_iten) ); } - catch(JudyEx& e) { break; } - - Storage->Remove(); - - try { master->Delete(master_iten); } - catch(JudyEx& e) { return false; } - - try { master_iten = master->Next(master_iten); } - catch(JudyEx& e) { break; } - } - - return true; -}; - -bool JudyClearMap(CBaseMap* map) -{ - char* map_iten = NULL; - Capsule* Storage = NULL; - - try { map_iten = map->First(); } - catch(JudyEx& e) { return false; } - - while( true ) - { - try { Storage = reinterpret_cast(map->Get(map_iten) ); } - catch(JudyEx& e) { break; } - - Storage->Remove(); - - try { map->Delete(map_iten); } - catch(JudyEx& e) { return false; } - - try { map_iten = map->Next(map_iten); } - catch(JudyEx& e) { break; } - } - - return true; -}; - - -bool JudySaveMap(CBaseMap* map, char* file) -{ - Capsule* Storage = NULL; - char* map_iten = NULL; - size_t key_len = NULL; - bool no_error = true; - - try { map_iten = map->First(); } - catch(JudyEx& e) { return false; } - - FILE *mapDB = fopen(file,"wb"); - if (!mapDB) return false; - - while( true ) - { - try { Storage = reinterpret_cast(map->Get(map_iten) ); } - catch(JudyEx& e) { return false; } - - key_len = strlen(map_iten); - - fwrite(&key_len, sizeof(size_t), 1, mapDB); - fwrite(&map_iten, sizeof(char), strlen(map_iten), mapDB); - - try { Storage->Save(mapDB); } - catch(JudyEx& e) { no_error = false; break; } - - try { map_iten = map->Next(map_iten); } - catch(JudyEx& e) { break; } - } - - fclose(mapDB); - return no_error; -}; - -bool JudyLoadMap(CBaseMap* map, char* file) -{ - FILE *mapDB = fopen(file, "ab+"); - if (!mapDB) return false; - - Capsule* Storage = NULL; - char* map_iten = NULL; - size_t key_len = NULL; - bool no_error = true; - - while(!feof(mapDB)) - { - fread(&key_len,sizeof(size_t),1,mapDB); - - map_iten = new char[key_len+1]; - fgets(map_iten, key_len+1, mapDB); - - if (feof(mapDB) || ferror(mapDB)) break; - - Storage = new Capsule; - try { Storage->Load(mapDB); } - catch(JudyEx& e) { no_error = false; break; } - - map->Set(map_iten,Storage); - delete map_iten; - } - - fclose(mapDB); - return no_error; -} \ No newline at end of file diff --git a/dlls/arrayx/JudyExtra.h b/dlls/arrayx/JudyExtra.h deleted file mode 100644 index 6b8541b6..00000000 --- a/dlls/arrayx/JudyExtra.h +++ /dev/null @@ -1,24 +0,0 @@ -#ifndef _JUDYARRAY_SHARED_INCLUDED -#define _JUDYARRAY_SHARED_INCLUDED - -#include "CBaseList.h" -#include "CBaseMap.h" - -class BinTrie; - -extern bool JudyClearMasterTrie(CBaseList* master); -extern bool JudyClearBinTrie(BinTrie* trie); -extern bool JudySaveBinTrie(BinTrie* trie, char* file); -extern bool JudyLoadBinTrie(BinTrie* trie, char* file); - -extern bool JudyClearMasterList(CBaseList* master); -extern bool JudyClearList(CBaseList* list); -extern bool JudySaveList(CBaseList* list, char* file); -extern bool JudyLoadList(CBaseList* list, char* file); - -extern bool JudyClearMasterMap(CBaseList* master); -extern bool JudyClearMap(CBaseMap* map); -extern bool JudySaveMap(CBaseMap* array, char* file); -extern bool JudyLoadMap(CBaseMap* array, char* file); - -#endif \ No newline at end of file diff --git a/dlls/arrayx/JudyIncludes.h b/dlls/arrayx/JudyIncludes.h deleted file mode 100644 index 5d4b009e..00000000 --- a/dlls/arrayx/JudyIncludes.h +++ /dev/null @@ -1,43 +0,0 @@ -#ifndef _JUDYINC_INCLUDED -#define _JUDYINC_INCLUDED - -#include "osdefs.h" -//#include - -#ifndef __linux__ -#define JU_WIN -#endif - -#ifdef __WIN32__ -#define JU_WIN -#endif - -#define JUDYERROR_NOTEST 1 -#include "Judy.h" - -#ifdef __GNUC__ -#include -#include -#include -#endif - -#ifdef __linux__ -#include -#else -#define WINDOWS_LEAN_AND_MEAN -#include -#include -#endif - -#include -#include - -#include "amxxmodule.h" - -#include "JudyVar.h" -#include "JudyVec.h" -#include "JudyEx.h" - -#include "Capsule.h" - -#endif diff --git a/dlls/arrayx/JudyVar.h b/dlls/arrayx/JudyVar.h deleted file mode 100644 index a05a2113..00000000 --- a/dlls/arrayx/JudyVar.h +++ /dev/null @@ -1,70 +0,0 @@ -#ifndef _JUDYVAR_H -#define _JUDYVAR_H - -#if defined HAVE_STDINT_H - //#include -#else - #if defined __LCC__ || defined __DMC__ || defined LINUX - #if defined HAVE_INTTYPES_H - #include - #else - #include - #endif - #elif !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L - /* The ISO C99 defines the int16_t and int_32t types. If the compiler got - * here, these types are probably undefined. - */ - #if defined __MACH__ - #include - typedef unsigned short int uint16_t; - typedef unsigned long int uint32_t; - #elif defined __FreeBSD__ - #include - #else - typedef short int int16_t; - typedef unsigned short int uint16_t; - #if defined SN_TARGET_PS2 - typedef int int32_t; - typedef unsigned int uint32_t; - #else - typedef long int int32_t; - typedef unsigned long int uint32_t; - #endif - #if defined __WIN32__ || defined _WIN32 || defined WIN32 - typedef __int64 int64_t; - typedef unsigned __int64 uint64_t; - #define HAVE_I64 - #elif defined __GNUC__ - typedef long long int64_t; - typedef unsigned long long uint64_t; - #define HAVE_I64 - #endif - #endif - #endif -#endif - -#if defined _LP64 || defined WIN64 || defined _WIN64 - #if !defined __64BIT__ - #define __64BIT__ - #endif -#endif - -#if !defined PAWN_CELL_SIZE - #define PAWN_CELL_SIZE 32 /* by default, use 32-bit cells */ -#endif -#if PAWN_CELL_SIZE==16 - typedef uint16_t ucell; - typedef int16_t cell; -#elif PAWN_CELL_SIZE==32 - typedef uint32_t ucell; - typedef int32_t cell; -#define REAL float -#elif PAWN_CELL_SIZE==64 - typedef uint64_t ucell; - typedef int64_t cell; -#define REAL double -#else - #error Unsupported cell size (PAWN_CELL_SIZE) -#endif - -#endif \ No newline at end of file diff --git a/dlls/arrayx/JudyVec.h b/dlls/arrayx/JudyVec.h deleted file mode 100644 index 07511682..00000000 --- a/dlls/arrayx/JudyVec.h +++ /dev/null @@ -1,20 +0,0 @@ -#ifndef _JUDYVEC_INCLUDED -#define _JUDYVEC_INCLUDED - -#include "JudyIncludes.h" - -class JudyVec -{ -public: - REAL first; - REAL second; - REAL third; - - JudyVec(REAL one, REAL two, REAL three) { Set(one, two, three); } - ~JudyVec() {} - - void Get(REAL& one, REAL& two, REAL& three) { one = first; two = second; three = third; } - void Set(REAL one, REAL two, REAL three) { first = one; second = two; third = three; } -}; - -#endif \ No newline at end of file diff --git a/dlls/arrayx/ListNativeFunctions.h b/dlls/arrayx/ListNativeFunctions.h deleted file mode 100644 index 90289463..00000000 --- a/dlls/arrayx/ListNativeFunctions.h +++ /dev/null @@ -1,114 +0,0 @@ -#ifndef _LIST_NATIVE_FUNC_INC_H -#define _LIST_NATIVE_FUNC_INC_H - -#define JUDY_GLUE_FUNC( x , y ) x ## y - -#define JUDY_GLUE_STR( x, y ) #x#y - -#define JUDY_MASTER_EDIT_FUNCTIONS -#define JUDY_MASTER_CLEAR_FUNC JUDY_GLUE_FUNC( list , _clear ) -#define JUDY_MASTER_CLEAR_STR JUDY_GLUE_STR ( list , _clear ) - -#define JUDY_MASTER_DELETE_FUNC JUDY_GLUE_FUNC( list , _delete ) -#define JUDY_MASTER_DELETE_STR JUDY_GLUE_STR ( list , _delete ) - -#define JUDY_MASTER_IO_FUNCTIONS - -#define JUDY_MASTER_SAVE_FUNC JUDY_GLUE_FUNC( list , _save ) -#define JUDY_MASTER_SAVE_STR JUDY_GLUE_STR ( list , _save ) -#define JUDY_SAVE_FUNC(list, file) JudySaveList ( list , file ) - -#define JUDY_MASTER_LOAD_FUNC JUDY_GLUE_FUNC( list , _load ) -#define JUDY_MASTER_LOAD_STR JUDY_GLUE_STR ( list , _load ) -#define JUDY_LOAD_FUNC(list, file) JudyLoadList ( list , file ) - -#define JUDY_MASTER_AMOUNT_FUNCTIONS -#define JUDY_MASTER_COUNT_FUNC JUDY_GLUE_FUNC( list , _count ) -#define JUDY_MASTER_COUNT_STR JUDY_GLUE_STR ( list , _count ) - -#define JUDY_MASTER_BYCOUNT_FUNC JUDY_GLUE_FUNC( list , _bycount ) -#define JUDY_MASTER_BYCOUNT_STR JUDY_GLUE_STR ( list , _bycount ) - -#define JUDY_SLAVE_AMOUNT_FUNCTIONS - -#define JUDY_SLAVE_COUNT_FUNC JUDY_GLUE_FUNC( list , _size ) -#define JUDY_SLAVE_COUNT_STR JUDY_GLUE_STR ( list , _size ) - -#define JUDY_SLAVE_BYCOUNT_FUNC JUDY_GLUE_FUNC( list , _get_nth ) -#define JUDY_SLAVE_BYCOUNT_STR JUDY_GLUE_STR ( list , _get_nth ) - -#define JUDY_SLAVE_EDIT_FUNCTIONS - -#define JUDY_SLAVE_MEMORY_FUNC JUDY_GLUE_FUNC( list , _memory ) -#define JUDY_SLAVE_MEMORY_STR JUDY_GLUE_STR ( list , _memory ) - -#define JUDY_SLAVE_ISFILLED_FUNC JUDY_GLUE_FUNC( list , _isfilled ) -#define JUDY_SLAVE_ISFILLED_STR JUDY_GLUE_STR ( list , _isfilled ) - -#define JUDY_SLAVE_ISEMPTY_FUNC JUDY_GLUE_FUNC( list , _isempty ) -#define JUDY_SLAVE_ISEMPTY_STR JUDY_GLUE_STR ( list , _isempty ) - -#define JUDY_SLAVE_REMOVE_FUNC JUDY_GLUE_FUNC( list , _remove ) -#define JUDY_SLAVE_REMOVE_STR JUDY_GLUE_STR ( list , _remove ) - -#define JUDY_SLAVE_EDIT_BOOL -#define JUDY_SLAVE_GET_BOOL_FUNC JUDY_GLUE_FUNC( list , _get_bool ) -#define JUDY_SLAVE_SET_BOOL_FUNC JUDY_GLUE_FUNC( list , _set_bool ) - -#define JUDY_SLAVE_GET_BOOL_STR JUDY_GLUE_STR ( list , _get_bool ) -#define JUDY_SLAVE_SET_BOOL_STR JUDY_GLUE_STR ( list , _set_bool ) - -#define JUDY_SLAVE_EDIT_INT -#define JUDY_SLAVE_GET_INT_FUNC JUDY_GLUE_FUNC( list , _get_int ) -#define JUDY_SLAVE_SET_INT_FUNC JUDY_GLUE_FUNC( list , _set_int ) - -#define JUDY_SLAVE_GET_INT_STR JUDY_GLUE_STR ( list , _get_int ) -#define JUDY_SLAVE_SET_INT_STR JUDY_GLUE_STR ( list , _set_int ) - -#define JUDY_SLAVE_EDIT_FLO -#define JUDY_SLAVE_GET_FLO_FUNC JUDY_GLUE_FUNC( list , _get_float ) -#define JUDY_SLAVE_SET_FLO_FUNC JUDY_GLUE_FUNC( list , _set_float ) - -#define JUDY_SLAVE_GET_FLO_STR JUDY_GLUE_STR ( list , _get_float ) -#define JUDY_SLAVE_SET_FLO_STR JUDY_GLUE_STR ( list , _set_float ) - -#define JUDY_SLAVE_EDIT_STR -#define JUDY_SLAVE_GET_STR_FUNC JUDY_GLUE_FUNC( list , _get_string ) -#define JUDY_SLAVE_SET_STR_FUNC JUDY_GLUE_FUNC( list , _set_string ) - -#define JUDY_SLAVE_GET_STR_STR JUDY_GLUE_STR ( list , _get_string ) -#define JUDY_SLAVE_SET_STR_STR JUDY_GLUE_STR ( list , _set_string ) - -#define JUDY_SLAVE_EDIT_VEC -#define JUDY_SLAVE_GET_VEC_FUNC JUDY_GLUE_FUNC( list , _get_vector ) -#define JUDY_SLAVE_SET_VEC_FUNC JUDY_GLUE_FUNC( list , _set_vector ) - -#define JUDY_SLAVE_GET_VEC_STR JUDY_GLUE_STR ( list , _get_vector ) -#define JUDY_SLAVE_SET_VEC_STR JUDY_GLUE_STR ( list , _set_vector ) - -#define JUDY_SLAVE_SEARCH_FUNCTIONS -#define JUDY_SLAVE_FIRST_FUNC JUDY_GLUE_FUNC( list , _first ) -#define JUDY_SLAVE_LAST_FUNC JUDY_GLUE_FUNC( list , _last ) - -#define JUDY_SLAVE_FIRST_STR JUDY_GLUE_STR ( list , _first ) -#define JUDY_SLAVE_LAST_STR JUDY_GLUE_STR ( list , _last ) - -#define JUDY_SLAVE_NEXT_FUNC JUDY_GLUE_FUNC( list , _next ) -#define JUDY_SLAVE_PREV_FUNC JUDY_GLUE_FUNC( list , _prev ) - -#define JUDY_SLAVE_NEXT_STR JUDY_GLUE_STR ( list , _next ) -#define JUDY_SLAVE_PREV_STR JUDY_GLUE_STR ( list , _prev ) - -#define JUDY_SLAVE_SEARCH_EMPTY_FUNCTIONS -#define JUDY_SLAVE_FIRSTEMPTY_FUNC JUDY_GLUE_FUNC( list , _firstempty ) -#define JUDY_SLAVE_LASTEMPTY_FUNC JUDY_GLUE_FUNC( list , _lastempty ) - -#define JUDY_SLAVE_FIRSTEMPTY_STR JUDY_GLUE_STR ( list , _firstempty ) -#define JUDY_SLAVE_LASTEMPTY_STR JUDY_GLUE_STR ( list , _lastempty ) - -#define JUDY_SLAVE_NEXTEMPTY_FUNC JUDY_GLUE_FUNC( list , _nextempty ) -#define JUDY_SLAVE_PREVEMPTY_FUNC JUDY_GLUE_FUNC( list , _prevempty ) - -#define JUDY_SLAVE_NEXTEMPTY_STR JUDY_GLUE_STR ( list , _nextempty ) -#define JUDY_SLAVE_PREVEMPTY_STR JUDY_GLUE_STR ( list , _prevempty ) -#endif \ No newline at end of file diff --git a/dlls/arrayx/ListNatives.cpp b/dlls/arrayx/ListNatives.cpp deleted file mode 100644 index 8e50be6d..00000000 --- a/dlls/arrayx/ListNatives.cpp +++ /dev/null @@ -1,43 +0,0 @@ -#include "CBaseList.h" -#include "CArray.h" -#include "ComboArray.h" - -#define KEY_TYPE cell -#define DYNAMIC_UNIT_TYPE CBaseList -#define STORAGE_TYPE Capsule -#define MASTER_NAME MasterList -#define EXPORT_NAME list_exports - -#define SEARCH_ERROR_OFFSET 0 - -#define GET_KEY(params, num) params[num] -#define SET_KEY(stuff, parameter) stuff - -#include "ListNativeFunctions.h" -#include "NativeIncludes.h" - -static cell AMX_NATIVE_CALL array_create(AMX *amx,cell *params) -{ - DTYPE* Unit; - M_ITYPE Index = params[1]; - - JUDY_CREATE_INDEX(MNAME,Unit,Array,Index); - return Index; -} - -static cell AMX_NATIVE_CALL comboarray_create(AMX *amx,cell *params) -{ - DTYPE* Unit; - M_ITYPE Index = params[1]; - - JUDY_CREATE_INDEX(MNAME,Unit,ComboArray,Index); - return Index; -} - -AMX_NATIVE_INFO list_creation_exports[] = -{ - { "array_create", array_create }, - { "comboarray_create", comboarray_create }, - - { NULL, NULL } -}; \ No newline at end of file diff --git a/dlls/arrayx/MapNativeFunctions.h b/dlls/arrayx/MapNativeFunctions.h deleted file mode 100644 index fdd28bdd..00000000 --- a/dlls/arrayx/MapNativeFunctions.h +++ /dev/null @@ -1,94 +0,0 @@ -#ifndef _MAP_NATIVE_FUNC_INC_H -#define _MAP_NATIVE_FUNC_INC_H - -#define JUDY_GLUE_FUNC( x , y ) x ## y - -#define JUDY_GLUE_STR( x, y ) #x#y - -#define JUDY_MASTER_EDIT_FUNCTIONS -#define JUDY_MASTER_CLEAR_FUNC JUDY_GLUE_FUNC( map , _clear ) -#define JUDY_MASTER_CLEAR_STR JUDY_GLUE_STR ( map , _clear ) - -#define JUDY_MASTER_DELETE_FUNC JUDY_GLUE_FUNC( map , _delete ) -#define JUDY_MASTER_DELETE_STR JUDY_GLUE_STR ( map , _delete ) - -#define JUDY_MASTER_IO_FUNCTIONS - -#define JUDY_MASTER_SAVE_FUNC JUDY_GLUE_FUNC( map , _save ) -#define JUDY_MASTER_SAVE_STR JUDY_GLUE_STR ( map , _save ) -#define JUDY_SAVE_FUNC(map, file) JudySaveMap ( map , file ) - -#define JUDY_MASTER_LOAD_FUNC JUDY_GLUE_FUNC( map , _load ) -#define JUDY_MASTER_LOAD_STR JUDY_GLUE_STR ( map , _load ) -#define JUDY_LOAD_FUNC(map, file) JudyLoadMap ( map , file ) - -#define JUDY_MASTER_AMOUNT_FUNCTIONS -#define JUDY_MASTER_COUNT_FUNC JUDY_GLUE_FUNC( map , _count ) -#define JUDY_MASTER_COUNT_STR JUDY_GLUE_STR ( map , _count ) - -#define JUDY_MASTER_BYCOUNT_FUNC JUDY_GLUE_FUNC( map , _bycount ) -#define JUDY_MASTER_BYCOUNT_STR JUDY_GLUE_STR ( map , _bycount ) - -#define JUDY_SLAVE_EDIT_FUNCTIONS - -#define JUDY_SLAVE_MEMORY_FUNC JUDY_GLUE_FUNC( map , _memory ) -#define JUDY_SLAVE_MEMORY_STR JUDY_GLUE_STR ( map , _memory ) - -#define JUDY_SLAVE_ISFILLED_FUNC JUDY_GLUE_FUNC( map , _isfilled ) -#define JUDY_SLAVE_ISFILLED_STR JUDY_GLUE_STR ( map , _isfilled ) - -#define JUDY_SLAVE_ISEMPTY_FUNC JUDY_GLUE_FUNC( map , _isempty ) -#define JUDY_SLAVE_ISEMPTY_STR JUDY_GLUE_STR ( map , _isempty ) - -#define JUDY_SLAVE_REMOVE_FUNC JUDY_GLUE_FUNC( map , _remove ) -#define JUDY_SLAVE_REMOVE_STR JUDY_GLUE_STR ( map , _remove ) - -#define JUDY_SLAVE_EDIT_BOOL -#define JUDY_SLAVE_GET_BOOL_FUNC JUDY_GLUE_FUNC( map , _get_bool ) -#define JUDY_SLAVE_SET_BOOL_FUNC JUDY_GLUE_FUNC( map , _set_bool ) - -#define JUDY_SLAVE_GET_BOOL_STR JUDY_GLUE_STR ( map , _get_bool ) -#define JUDY_SLAVE_SET_BOOL_STR JUDY_GLUE_STR ( map , _set_bool ) - -#define JUDY_SLAVE_EDIT_INT -#define JUDY_SLAVE_GET_INT_FUNC JUDY_GLUE_FUNC( map , _get_int ) -#define JUDY_SLAVE_SET_INT_FUNC JUDY_GLUE_FUNC( map , _set_int ) - -#define JUDY_SLAVE_GET_INT_STR JUDY_GLUE_STR ( map , _get_int ) -#define JUDY_SLAVE_SET_INT_STR JUDY_GLUE_STR ( map , _set_int ) - -#define JUDY_SLAVE_EDIT_FLO -#define JUDY_SLAVE_GET_FLO_FUNC JUDY_GLUE_FUNC( map , _get_float ) -#define JUDY_SLAVE_SET_FLO_FUNC JUDY_GLUE_FUNC( map , _set_float ) - -#define JUDY_SLAVE_GET_FLO_STR JUDY_GLUE_STR ( map , _get_float ) -#define JUDY_SLAVE_SET_FLO_STR JUDY_GLUE_STR ( map , _set_float ) - -#define JUDY_SLAVE_EDIT_STR -#define JUDY_SLAVE_GET_STR_FUNC JUDY_GLUE_FUNC( map , _get_string ) -#define JUDY_SLAVE_SET_STR_FUNC JUDY_GLUE_FUNC( map , _set_string ) - -#define JUDY_SLAVE_GET_STR_STR JUDY_GLUE_STR ( map , _get_string ) -#define JUDY_SLAVE_SET_STR_STR JUDY_GLUE_STR ( map , _set_string ) - -#define JUDY_SLAVE_EDIT_VEC -#define JUDY_SLAVE_GET_VEC_FUNC JUDY_GLUE_FUNC( map , _get_vector ) -#define JUDY_SLAVE_SET_VEC_FUNC JUDY_GLUE_FUNC( map , _set_vector ) - -#define JUDY_SLAVE_GET_VEC_STR JUDY_GLUE_STR ( map , _get_vector ) -#define JUDY_SLAVE_SET_VEC_STR JUDY_GLUE_STR ( map , _set_vector ) - -#define JUDY_SLAVE_SEARCH_FUNCTIONS -#define JUDY_SLAVE_FIRST_FUNC JUDY_GLUE_FUNC( map , _first ) -#define JUDY_SLAVE_LAST_FUNC JUDY_GLUE_FUNC( map , _last ) - -#define JUDY_SLAVE_FIRST_STR JUDY_GLUE_STR ( map , _first ) -#define JUDY_SLAVE_LAST_STR JUDY_GLUE_STR ( map , _last ) - -#define JUDY_SLAVE_NEXT_FUNC JUDY_GLUE_FUNC( map , _next ) -#define JUDY_SLAVE_PREV_FUNC JUDY_GLUE_FUNC( map , _prev ) - -#define JUDY_SLAVE_NEXT_STR JUDY_GLUE_STR ( map , _next ) -#define JUDY_SLAVE_PREV_STR JUDY_GLUE_STR ( map , _prev ) - -#endif \ No newline at end of file diff --git a/dlls/arrayx/MapNatives.cpp b/dlls/arrayx/MapNatives.cpp deleted file mode 100644 index 38de80e6..00000000 --- a/dlls/arrayx/MapNatives.cpp +++ /dev/null @@ -1,54 +0,0 @@ -#include "CBaseMap.h" -#include "CKeytable.h" -#include "ComboTable.h" -#include "CHashtable.h" - -#define KEY_TYPE char* -#define DYNAMIC_UNIT_TYPE CBaseMap -#define STORAGE_TYPE Capsule -#define MASTER_NAME MasterMap -#define EXPORT_NAME map_exports - -#define SEARCH_ERROR_OFFSET 2 - -#define GET_KEY(params, num) MF_GetAmxString(amx,params[num],num,NULL) -#define SET_KEY(str, num) MF_SetAmxString(amx,params[num],str,params[num + 1]) - -#include "MapNativeFunctions.h" -#include "NativeIncludes.h" - -static cell AMX_NATIVE_CALL keytable_create(AMX *amx,cell *params) -{ - DTYPE* Unit = NULL; - M_ITYPE Index = NULL; - - JUDY_CREATE_INDEX(MNAME,Unit,Keytable,Index); - return Index; -} - -static cell AMX_NATIVE_CALL combotable_create(AMX *amx,cell *params) -{ - DTYPE* Unit = NULL; - M_ITYPE Index = NULL; - - JUDY_CREATE_INDEX(MNAME,Unit,ComboTable,Index); - return Index; -} - -static cell AMX_NATIVE_CALL hashtable_create(AMX *amx,cell *params) -{ - DTYPE* Unit; - M_ITYPE Index = params[1]; - - JUDY_CREATE_INDEX(MNAME,Unit,Hashtable,Index); - return Index; -} - -AMX_NATIVE_INFO map_creation_exports[] = -{ - { "keytable_create", keytable_create }, - { "combotable_create", combotable_create }, - { "hashtable_create", hashtable_create }, - - { NULL, NULL } -}; \ No newline at end of file diff --git a/dlls/arrayx/NativeIncludes.h b/dlls/arrayx/NativeIncludes.h deleted file mode 100644 index dc5def17..00000000 --- a/dlls/arrayx/NativeIncludes.h +++ /dev/null @@ -1,130 +0,0 @@ -#ifndef _NATIVE_INC_H -#define _NATIVE_INC_H - -#include "ComboArray.h" - -#ifndef SEARCH_ERROR_OFFSET -#define SEARCH_ERROR_OFFSET 0 -#endif - -#define SE_OFFSET SEARCH_ERROR_OFFSET - -#ifndef STORAGE_TYPE -#error No storage type declared -#endif - -#define STYPE STORAGE_TYPE - -#ifndef KEY_TYPE -#error No key type declared -#endif - -#define ITYPE KEY_TYPE - -#ifndef DYNAMIC_UNIT_TYPE -#error No Dynamic type declared -#endif - -#define DTYPE DYNAMIC_UNIT_TYPE - -#ifndef MASTER_NAME -#error No master name declared -#endif - -#define MNAME MASTER_NAME -#define M_ITYPE cell - -#ifndef GET_KEY -#error No method of getting keys has been declared -#endif - -#ifndef EXPORT_NAME -#define EXPORT_NAME MNAME_exports -#endif - -#define SE_OFFSET SEARCH_ERROR_OFFSET - -#define JUDY_GET_KEY GET_KEY - -#ifndef SET_KEY -#error No method of setting keys has been declared -#endif - -#define JUDY_SET_KEY SET_KEY - -#ifndef JUDY_ERROR_CATCH -#define JUDY_ERROR_CATCH(x_str) \ - catch(JudyEx& e) \ - { \ - if(e.IsFatal() )\ - {\ - MF_LogError(amx,AMX_ERR_NATIVE, "%s || Judy Error: %s", x_str, e.ErrorMessage());\ - return NULL;\ - };\ - return NULL;\ - }\ - catch(...) { MF_LogError(amx,AMX_ERR_NATIVE,"Unknown error occured, please post a bug report at www.amxmodx.org/forums"); return NULL; } -#endif - -#ifndef JUDY_SEARCH_ERROR_CATCH -#define JUDY_SEARCH_ERROR_CATCH(x_str, success) \ - catch(JudyEx& e) \ - { \ - if(e.IsFatal() )\ - {\ - MF_LogError(amx,AMX_ERR_NATIVE, "%s || Judy Error: %s", x_str, e.ErrorMessage());\ - return NULL;\ - };\ - return (success = 0);\ - }\ - catch(...) { MF_LogError(amx,AMX_ERR_NATIVE,"Unknown error occured, please post a bug report at www.amxmodx.org/forums"); return NULL; } -#endif - -#ifndef JUDY_CREATE_INDEX -#define JUDY_CREATE_INDEX(master, slave, slave_type, index)\ -\ - if( index == NULL )\ - {\ - try { index = master.FirstEmpty(); }\ - JUDY_ERROR_CATCH("Unable to create new unit (out of memory)");\ -\ - slave = new slave_type;\ - master.Set(index,slave);\ - } \ - else if(master.IsEmpty(index) )\ - {\ - slave = new slave_type;\ - master.Set(index,slave);\ - }\ - else slave = master.Get(index, slave ); - -#endif - -#ifndef JUDY_GET_INDEX -#define JUDY_GET_INDEX(master,slave, where) \ - try { slave = master.Get(where,slave); } \ - JUDY_ERROR_CATCH("Unable to access old unit (invalid index)"); -#endif - -#ifndef JUDY_SET_INDEX -#define JUDY_SET_INDEX(master,slave, where) \ - try { master.Set(where,slave); } \ - JUDY_ERROR_CATCH("Unknown Error occured (No error possible) - Set Function");\ - return 1; -#endif - -#ifndef JUDY_SET_INDEX_P -#define JUDY_SET_INDEX_P(master,slave, where) \ - try { master->Set(where,slave); } \ - JUDY_ERROR_CATCH("Unknown Error occured (No error possible) - Set Function");\ - return 1; -#endif - -inline char* JUDY_BUILD_PATH(AMX *amx, cell param, int buffer = 0) -{ - char *file = MF_GetAmxString(amx, param, 0, NULL); - return MF_BuildPathname("%s", file); -} - -#include "GenericNatives.h" -#endif \ No newline at end of file diff --git a/dlls/arrayx/SDK/CBaseList.h b/dlls/arrayx/SDK/CBaseList.h deleted file mode 100644 index a9ce4646..00000000 --- a/dlls/arrayx/SDK/CBaseList.h +++ /dev/null @@ -1,35 +0,0 @@ -#ifndef _BASE_ARRAYCLASS_H -#define _BASE_ARRAYCLASS_H - -#include "JudyIncludes.h" - -class CBaseList -{ -public: - virtual Word_t Clear() =0; - virtual Word_t MemoryUsed() =0; - - virtual int Delete(cell Key) =0; - - virtual void Set(cell Index, Pvoid_t value, bool disable_check = false) =0; - - virtual Pvoid_t Get(cell Index, bool disable_check = false) =0; - - virtual cell First(cell Start = 0) =0; - virtual cell Next(cell Start = 0) =0; - virtual cell Prev(cell Start = -1) =0; - virtual cell Last(cell Start = -1) =0; - - virtual cell FirstEmpty(cell Start = 0) =0; - virtual cell NextEmpty(cell Start = 0) =0; - virtual cell PrevEmpty(cell Start = -1) =0; - virtual cell LastEmpty(cell Start = -1) =0; - - virtual cell ByCount(cell n, cell Start = 0) =0; - virtual cell Count(cell Start = 0, cell Stop = -1) =0; - - virtual bool IsFilled(cell Index) =0; - virtual bool IsEmpty(cell Index) =0; -}; - -#endif diff --git a/dlls/arrayx/SDK/CBaseMap.h b/dlls/arrayx/SDK/CBaseMap.h deleted file mode 100644 index ef0b6a5c..00000000 --- a/dlls/arrayx/SDK/CBaseMap.h +++ /dev/null @@ -1,28 +0,0 @@ -#ifndef _BASE_MAPCLASS_H -#define _BASE_MAPCLASS_H - -#include "JudyIncludes.h" - -class CBaseMap -{ -public: - virtual Word_t Clear() =0; - virtual Word_t MemoryUsed() =0; - - virtual int Delete(char* Key) =0; - - virtual void Set(char* Index, Pvoid_t value, bool disable_check = false) =0; - - virtual Pvoid_t Get(char* Index, bool disable_check = false) =0; - - virtual char* First(char* Start = "") =0; - virtual char* Next(char* Start) =0; - virtual char* Prev(char* Start) =0; - virtual char* Last(char* Start) =0; - - virtual bool IsFilled(char* Index) =0; - virtual bool IsEmpty(char* Index) =0; -}; - -#endif - diff --git a/dlls/arrayx/SDK/CBinTrie.h b/dlls/arrayx/SDK/CBinTrie.h deleted file mode 100644 index a1d9e3fc..00000000 --- a/dlls/arrayx/SDK/CBinTrie.h +++ /dev/null @@ -1,52 +0,0 @@ -#ifndef _BINTRIECLASS_H -#define _BINTRIECLASS_H - -#include "JudyIncludes.h" -//#include - -class BinTrie -{ -private: - Pvoid_t Table; - - void ThrowSearchError(char* msg); - -public: - BinTrie() { Table = NULL; } - ~BinTrie() { Judy1FreeArray(&Table, PJE0); } - - Word_t Clear() { return Judy1FreeArray(&Table, PJE0); } - Word_t MemoryUsed() { return Judy1MemUsed(Table); } - - cell Delete(cell Key) { return Judy1Unset(&Table, Key, PJE0 ); } - - cell Set(cell Index, bool val) - { - if(val == false) return Delete(Index); - else return Judy1Set(&Table, Index,PJE0); - } - - cell Get(cell Index) - { - cell PValue = Judy1Test(Table, Index, PJE0); - return PValue; - } - - cell First(cell Start = 0); - cell Next(cell Start = 0); - cell Prev(cell Start = -1); - cell Last(cell Start = -1); - - cell FirstEmpty(cell Start = 0); - cell NextEmpty(cell Start = 0); - cell PrevEmpty(cell Start = -1); - cell LastEmpty(cell Start = -1); - - cell ByCount(cell n, cell Start); - cell Count(cell Start = 0, cell Stop = -1) { return Judy1Count(Table, Start, Stop, PJE0); } - - bool IsFilled(cell Index) { return ( (Get(Index )) ? true : false); } - bool IsEmpty(cell Index) { return ( (Get(Index )) ? true : false); } -}; - -#endif \ No newline at end of file diff --git a/dlls/arrayx/SDK/Capsule.cpp b/dlls/arrayx/SDK/Capsule.cpp deleted file mode 100644 index c58eff52..00000000 --- a/dlls/arrayx/SDK/Capsule.cpp +++ /dev/null @@ -1,261 +0,0 @@ -#include "Capsule.h" - -const char* capsule_types[] = -{ - "-NO VALUE-", - "BOOLEAN", - "INTEGER", - "FLOAT", - "VECTOR", - "STRING" -}; - -void Capsule::ThrowTypeError(cell get_type) -{ - char ValStr[15]; - GetAsStr(ValStr); - - char value[100]; - sprintf(value,"Function attempted to read NON-%s value, actual type is: %s, actual value is: %s", capsule_types[get_type], capsule_types[type], ValStr ); - - throw JudyEx(value, true); -} - -bool Capsule::CheckEmpty(bool clear) -{ - bool empty = ( data == NULL ); - - if(empty != true && clear == true) Clear(); - return empty; -} - -void Capsule::Clear() -{ - //This function intelligently creates a pointer x, - //which will be of correct type and then deletes it. - - switch (type) - { - case capsule_type_flo: - { - REAL *real_val = reinterpret_cast(data); - delete real_val; - - break; - } - case capsule_type_vec: - { - JudyVec *vector_val = reinterpret_cast(data); - delete vector_val; - - break; - } - case capsule_type_str: - { - char *char_val = reinterpret_cast(data); - delete char_val; - - break; - } - } - - data = NULL; //Null the address as well. (Used for ints too.) -} - -bool Capsule::GetBool( void ) -{ - if (type != capsule_type_bool) ThrowTypeError(capsule_type_bool); - - return reinterpret_cast(data); -} - -void Capsule::SetBool(bool Value) -{ - CheckEmpty(true); - type = capsule_type_bool; - data = reinterpret_cast(Value); -}; - -cell Capsule::GetInt( void ) -{ - if (type != capsule_type_int) ThrowTypeError(capsule_type_int); - - return reinterpret_cast(data); -} - -void Capsule::SetInt(cell Value) -{ - CheckEmpty(true); - type = capsule_type_int; - data = reinterpret_cast(Value); -}; - -REAL Capsule::GetFlo( void ) -{ - if (type != capsule_type_flo) ThrowTypeError(capsule_type_flo); - - return *reinterpret_cast(data); -} - -void Capsule::SetFlo(REAL Value) -{ - CheckEmpty(true); - type = capsule_type_flo; - data = new REAL(Value); -}; - -const JudyVec* Capsule::GetVec( void ) -{ - if (type != capsule_type_vec) ThrowTypeError(capsule_type_vec); - - return reinterpret_cast(data); -} - -void Capsule::SetVec(JudyVec* Value) -{ - CheckEmpty(true); - type = capsule_type_vec; - data = reinterpret_cast(Value); -} - -const char* Capsule::GetStr( void ) -{ - if (type != capsule_type_str) ThrowTypeError(capsule_type_str); - - return reinterpret_cast(data); -} - -void Capsule::SetStr(char* Value) -{ - CheckEmpty(true); - type = capsule_type_str; - - char *string_val = new char[strlen(Value)+1]; - strcpy(string_val,Value); - - data = reinterpret_cast(string_val); -} - -void Capsule::GetAsStr(char* value) -{ - switch (type) - { - case capsule_type_bool: - sprintf(value, "%i",(cell)GetBool()); - break; - case capsule_type_int: - sprintf(value, "%d", GetInt() ); - break; - case capsule_type_flo: - sprintf(value, "%f", GetFlo() ); - break; - case capsule_type_vec: - sprintf(value, "{%f,%f,%f}", GetVec()->first, GetVec()->second, GetVec()->third); - break; - case capsule_type_str: - sprintf(value, "\"%s\"", GetStr() ); - break; - default: - sprintf(value, "-NO VALUE-"); - } -} - -void Capsule::Save(FILE* capsuleDB) -{ - fwrite(&type,sizeof(char),1,capsuleDB); - - switch(type) - { - case capsule_type_none: { break; } - case capsule_type_bool: { bool var = GetBool(); fwrite(&var, sizeof(bool), 1, capsuleDB); break; } - case capsule_type_int: { cell var = GetInt(); fwrite(&var, sizeof(cell), 1, capsuleDB); break; } - case capsule_type_flo: { fwrite(reinterpret_cast(GetData()), sizeof(REAL), 1, capsuleDB); break; } - case capsule_type_str: - { - const char* str = GetStr(); - size_t len = strlen(str); - fwrite(&len,sizeof(size_t), 1, capsuleDB); - fwrite(&str, sizeof(char), len, capsuleDB); - - break; - } - case capsule_type_vec: - { - const JudyVec* buffer = GetVec(); - fwrite(buffer, sizeof(JudyVec), 1, capsuleDB); - - break; - } - default: - { - char value[20]; - sprintf(value,"Invalid type found!"); - - throw JudyEx(value, true); - break; - } - }; -} - -void Capsule::Load(FILE* capsuleDB) -{ - fread(&type, sizeof(char), 1, capsuleDB); - - switch(type) - { - case capsule_type_none: { CheckEmpty(true); break; } - case capsule_type_bool: - { - bool value = false; - fread(&value, sizeof(bool), 1, capsuleDB); - SetBool(value); - - break; - } - case capsule_type_int: - { - cell value = NULL; - fread(&value, sizeof(cell), 1, capsuleDB); - SetInt(value); - - break; - } - case capsule_type_flo: - { - REAL value = NULL; - fread(&value, sizeof(REAL), 1, capsuleDB); - SetFlo(value); - - break; - } - case capsule_type_str: - { - size_t length; - fread(&length, sizeof(size_t), 1, capsuleDB); - - char* value = new char[length+1]; - fgets(value, length+1, capsuleDB); - - SetStr(value); - delete(value); - - break; - } - case capsule_type_vec: - { - JudyVec* value = new JudyVec(NULL,NULL,NULL); - fread(value, sizeof(JudyVec), 1, capsuleDB); - - SetVec(value); - - break; - } - default: - { - char value[20]; - sprintf(value,"Invalid type found: %i",(int)type); - - throw JudyEx(value, true); - } - }; -} \ No newline at end of file diff --git a/dlls/arrayx/SDK/Capsule.h b/dlls/arrayx/SDK/Capsule.h deleted file mode 100644 index 9241ab9b..00000000 --- a/dlls/arrayx/SDK/Capsule.h +++ /dev/null @@ -1,64 +0,0 @@ -#ifndef _JUDYCAP_INCLUDED -#define _JUDYCAP_INCLUDED - -#include "JudyIncludes.h" - -enum -{ - capsule_type_none, - capsule_type_bool, - capsule_type_int, - capsule_type_flo, - capsule_type_vec, - capsule_type_str -}; - -extern const char* capsule_types[]; - -class Capsule -{ -private: - Pvoid_t data; - char type; - -protected: - void Clear( void ); - void ThrowTypeError(cell get_type); - -public: - Capsule() { data = NULL; type = capsule_type_none;} - ~Capsule() { Clear(); } - - Capsule(bool set) { SetBool(set); } - Capsule(cell set) { SetInt(set); } - Capsule(REAL set) { SetFlo(set); } - Capsule(JudyVec* set) { SetVec(set); } - Capsule(char* set) { SetStr(set); } - - bool GetBool( void ); - void SetBool(bool set); - - cell GetInt( void ); - void SetInt(cell set); - - REAL GetFlo( void ); - void SetFlo(REAL set); - - const JudyVec* GetVec( void ); - void SetVec(JudyVec* set); - - const char* GetStr( void ); - void SetStr(char* set); - - void GetAsStr(char* value); - - void Load(FILE* db); - void Save(FILE* db); - - bool CheckEmpty(bool clear); - - Pvoid_t GetData( void ) { return data; } - char GetType( void ) { return type; } -}; - -#endif \ No newline at end of file diff --git a/dlls/arrayx/SDK/GenericNatives.h b/dlls/arrayx/SDK/GenericNatives.h deleted file mode 100644 index afc1685b..00000000 --- a/dlls/arrayx/SDK/GenericNatives.h +++ /dev/null @@ -1,845 +0,0 @@ -#ifndef _GENERIC_INC_H -#define _GENERIC_INC_H - -// Master table -ComboArray MNAME; - -///* MASTER FUNCTIONS */// - -///* Start Master Edit Funcs */// -#ifdef JUDY_MASTER_EDIT_FUNCTIONS - - #ifdef JUDY_MASTER_DELETE_FUNC - - // generic_delete(id) - static cell AMX_NATIVE_CALL JUDY_MASTER_DELETE_FUNC(AMX *amx,cell *params) - { - try { return MNAME.Delete( params[1] ); } - JUDY_ERROR_CATCH("Judy Error: (No error possible) - Delete function "); - } - - #else - - #error Must Have Delete func: JUDY_MASTER_DELETE_FUNC not defined! - - #endif - - #ifdef JUDY_MASTER_CLEAR_FUNC - - // generic_clear(id) - static cell AMX_NATIVE_CALL JUDY_MASTER_CLEAR_FUNC(AMX *amx,cell *params) - { - DTYPE* Unit = NULL; - JUDY_GET_INDEX(MNAME,Unit, params[1] ); - - try { return Unit->Clear(); } - JUDY_ERROR_CATCH("Judy Error: (Search error likely) - Clear function "); - } - - #else - - #error Must Have Clear func: JUDY_MASTER_CLEAR_FUNC not defined! - - #endif - -///* End Master Edit Funcs */// -#endif - -///* Start Master IO Funcs */// -#ifdef JUDY_MASTER_IO_FUNCTIONS - - #ifdef JUDY_MASTER_SAVE_FUNC - - // generic_save(id,file[]) - static cell AMX_NATIVE_CALL JUDY_MASTER_SAVE_FUNC(AMX *amx,cell *params) - { - DTYPE* Unit = NULL; - JUDY_GET_INDEX(MNAME,Unit, params[1]); - - return JUDY_SAVE_FUNC(Unit, JUDY_BUILD_PATH(amx,params[2]) ); - } - - #else - - #error Must Have Save func: JUDY_MASTER_SAVE_FUNC not defined properly! - - #endif - - #ifdef JUDY_MASTER_LOAD_FUNC - - // generic_load(file[],id) - static cell AMX_NATIVE_CALL JUDY_MASTER_LOAD_FUNC(AMX *amx,cell *params) - { - DTYPE* Unit = NULL; - JUDY_GET_INDEX(MNAME,Unit, params[2]); - - return JUDY_LOAD_FUNC(Unit, JUDY_BUILD_PATH(amx,params[1]) ); - } - - #else - - #error Must Have Load func: JUDY_MASTER_LOAD_FUNC not defined! - - #endif - -///* End Master IO Funcs */// -#endif - -///* Start Master Amount Funcs */// -#ifdef JUDY_MASTER_AMOUNT_FUNCTIONS - - #ifdef JUDY_MASTER_COUNT_FUNC - - // generic_count(start = 0, stop = -1) - static cell AMX_NATIVE_CALL JUDY_MASTER_COUNT_FUNC(AMX *amx,cell *params) - { - try { return MNAME.Count(params[1],params[2] ); } - JUDY_ERROR_CATCH("Judy Error: (Search error likely) - Count Function "); - } - - #else - - #error Must Have Count func: JUDY_MASTER_COUNT_FUNC not defined! - - #endif - - #ifdef JUDY_MASTER_BYCOUNT_FUNC - - // generic_bycount(nth, start = -1) - static cell AMX_NATIVE_CALL JUDY_MASTER_BYCOUNT_FUNC(AMX *amx,cell *params) - { - try { return MNAME.ByCount(params[1],params[2] ); } - JUDY_ERROR_CATCH("Judy Error: (Search error likely) - ByCount Function "); - } - - #else - - #error Must Have ByCount func: JUDY_MASTER_BYCOUNT_FUNC not defined! - - #endif - -///* End Master Amount Funcs */// -#endif - -///* SLAVE FUNCTIONS */// - -///* Start Slave Amount Funcs */// -#ifdef JUDY_SLAVE_AMOUNT_FUNCTIONS - - #ifdef JUDY_SLAVE_COUNT_FUNC - - // generic_size(id, start = 0, stop = -1) - static cell AMX_NATIVE_CALL JUDY_SLAVE_COUNT_FUNC(AMX *amx,cell *params) - { - DTYPE* Unit = NULL; - JUDY_GET_INDEX(MNAME,Unit, params[1]); - - try { return Unit->Count(JUDY_GET_KEY(params,2),JUDY_GET_KEY(params, 3) ); } - JUDY_ERROR_CATCH("Judy Error: (Search error likely) - Slave Count Function "); - } - - #else - - #error Must Have Count func: JUDY_SLAVE_COUNT_FUNC not defined! - - #endif - - #ifdef JUDY_SLAVE_BYCOUNT_FUNC - - // generic_get_nth(id, nth, start = -1) - static cell AMX_NATIVE_CALL JUDY_SLAVE_BYCOUNT_FUNC(AMX *amx,cell *params) - { - DTYPE* Unit = NULL; - JUDY_GET_INDEX(MNAME,Unit, params[1]); - - try { return Unit->ByCount(JUDY_GET_KEY(params,2),JUDY_GET_KEY(params, 3) ); } - JUDY_ERROR_CATCH("Judy Error: (Search error likely) - Slave ByCount Function "); - } - - #else - - #error Must Have ByCount func: JUDY_SLAVE_BYCOUNT_FUNC not defined! - - #endif - -///* End Slave Amount Funcs */// -#endif - -///* Start Slave Edit Funcs */// -#ifdef JUDY_SLAVE_EDIT_FUNCTIONS - - #ifdef JUDY_SLAVE_MEMORY_FUNC - - // generic_memory(id) - static cell AMX_NATIVE_CALL JUDY_SLAVE_MEMORY_FUNC(AMX *amx,cell *params) - { - DTYPE* Unit = NULL; - JUDY_GET_INDEX(MNAME,Unit, params[1]); - - try { return Unit->MemoryUsed(); } - JUDY_ERROR_CATCH("Judy Error: (Search error likely) - Slave ByCount Function "); - } - - #else - - #error Must Have Memory func: JUDY_SLAVE_MEMORY_FUNC not defined! - - #endif - - #ifdef JUDY_SLAVE_ISFILLED_FUNC - - // generic_isfilled(id, index) - static cell AMX_NATIVE_CALL JUDY_SLAVE_ISFILLED_FUNC(AMX *amx,cell *params) - { - DTYPE* Unit = NULL; - JUDY_GET_INDEX(MNAME,Unit, params[1]); - - try { return Unit->IsFilled(JUDY_GET_KEY(params,2) ); } - JUDY_ERROR_CATCH("Judy Error: (No error possible) - Slave IsFilled Function "); - } - - #else - - #error Must Have IsFilled func: JUDY_SLAVE_ISFILLED_FUNC not defined! - - #endif - - #ifdef JUDY_SLAVE_ISEMPTY_FUNC - - // generic_isempty(id, index) - static cell AMX_NATIVE_CALL JUDY_SLAVE_ISEMPTY_FUNC(AMX *amx,cell *params) - { - DTYPE* Unit = NULL; - JUDY_GET_INDEX(MNAME,Unit, params[1]); - - try { return Unit->IsEmpty(JUDY_GET_KEY(params,2) ); } - JUDY_ERROR_CATCH("Judy Error: (No error possible) - Slave IsEmpty Function "); - } - - #else - - #error Must Have IsEmpty func: JUDY_SLAVE_ISEMPTY_FUNC not defined! - - #endif - - #ifdef JUDY_SLAVE_REMOVE_FUNC - - // generic_remove(id, index) - static cell AMX_NATIVE_CALL JUDY_SLAVE_REMOVE_FUNC(AMX *amx,cell *params) - { - DTYPE* Unit = NULL; - JUDY_GET_INDEX(MNAME,Unit, params[1]); - - try { return Unit->Delete(JUDY_GET_KEY(params,2) ); } - JUDY_ERROR_CATCH("Judy Error: (No error possible) - Slave Delete Function "); - } - - #else - - #error Must Have Delete func: JUDY_SLAVE_DELETE_FUNC not defined! - - #endif -///* End Required Slave Edit Funcs */// - -///* Start Slave Bool Funcs */// -#ifdef JUDY_SLAVE_EDIT_BOOL - - #ifdef JUDY_SLAVE_SET_BOOL_FUNC - // generic_set_bool(id, index, Bool:val) - static cell AMX_NATIVE_CALL JUDY_SLAVE_SET_BOOL_FUNC(AMX *amx,cell *params) - { - DTYPE* Unit = NULL; - STYPE* Storage; - - JUDY_GET_INDEX(MNAME,Unit, params[1]); - ITYPE Indice = JUDY_GET_KEY(params,2); - bool Value = (params[3] != NULL); - - Storage = reinterpret_cast( Unit->Get(Indice, true ) ); - - if(Storage == NULL) Storage = new STYPE(Value); - else Storage->SetBool(Value); - - JUDY_SET_INDEX_P(Unit,Storage,Indice); - } - - #else - - #error Must Have Set func: JUDY_SLAVE_SET_BOOL_FUNC not defined! - - #endif - - #ifdef JUDY_SLAVE_GET_BOOL_FUNC - - // Bool:generic_get_bool(id, index, disable_check = 0) - static cell AMX_NATIVE_CALL JUDY_SLAVE_GET_BOOL_FUNC(AMX *amx,cell *params) - { - DTYPE* Unit = NULL; - STYPE* Storage; - - JUDY_GET_INDEX(MNAME,Unit, params[1]); - ITYPE Indice = JUDY_GET_KEY(params,2); - bool disable_check = (params[3] != NULL); - - try { Storage = reinterpret_cast( Unit->Get(Indice, disable_check ) ); } - JUDY_ERROR_CATCH("Judy Error: (Retrieve unset value) - Slave Get Function "); - - if(Storage == NULL) return 0; - - return Storage->GetBool(); - } - - #else - - #error Must Have Get func: JUDY_SLAVE_GET_BOOL_FUNC not defined! - - #endif - -///* End Slave Bool Funcs */// -#endif - -///* Start Slave Int Funcs */// -#ifdef JUDY_SLAVE_EDIT_INT - - #ifdef JUDY_SLAVE_SET_INT_FUNC - - // generic_set_bool(id, index, val) - static cell AMX_NATIVE_CALL JUDY_SLAVE_SET_INT_FUNC(AMX *amx,cell *params) - { - DTYPE* Unit = NULL; - STYPE* Storage; - - JUDY_GET_INDEX(MNAME,Unit, params[1]); - ITYPE Indice = JUDY_GET_KEY(params,2); - cell Value = params[3]; - - Storage = reinterpret_cast( Unit->Get(Indice, true ) ); - - if(Storage == NULL) Storage = new STYPE(Value); - else Storage->SetInt(Value); - - JUDY_SET_INDEX_P(Unit,Storage,Indice); - } - - #else - - #error Must Have Set func: JUDY_SLAVE_SET_INT_FUNC not defined! - - #endif - - #ifdef JUDY_SLAVE_GET_INT_FUNC - - // generic_get_int(id, index, disable_check = 0) - static cell AMX_NATIVE_CALL JUDY_SLAVE_GET_INT_FUNC(AMX *amx,cell *params) - { - DTYPE* Unit = NULL; - STYPE* Storage; - - JUDY_GET_INDEX(MNAME,Unit, params[1]); - ITYPE Indice = JUDY_GET_KEY(params,2); - bool disable_check = (params[3] != NULL); - - try { Storage = reinterpret_cast( Unit->Get(Indice, disable_check ) ); } - JUDY_ERROR_CATCH("Judy Error: (Retrieve unset value) - Slave Get Function "); - - if(Storage == NULL) return 0; - - return Storage->GetInt(); - } - - #else - - #error Must Have Get func: JUDY_SLAVE_GET_INT_FUNC not defined! - - #endif - -///* End Slave Int Funcs */// -#endif - -///* Start Slave Float Funcs */// -#ifdef JUDY_SLAVE_EDIT_FLO - - #ifdef JUDY_SLAVE_SET_FLO_FUNC - - // generic_set_float(id, index, Float:val) - static cell AMX_NATIVE_CALL JUDY_SLAVE_SET_FLO_FUNC(AMX *amx,cell *params) - { - DTYPE* Unit = NULL; - STYPE* Storage; - - JUDY_GET_INDEX(MNAME,Unit, params[1]); - ITYPE Indice = JUDY_GET_KEY(params,2); - REAL Value = amx_ctof(params[3]); - - Storage = reinterpret_cast( Unit->Get(Indice, true ) ); - - if(Storage == NULL) Storage = new STYPE(Value); - else Storage->SetFlo(Value); - - JUDY_SET_INDEX_P(Unit,Storage,Indice); - } - - #else - - #error Must Have Set func: JUDY_SLAVE_SET_FLO_FUNC not defined! - - #endif - - #ifdef JUDY_SLAVE_GET_FLO_FUNC - - // Float:generic_get_float(id, index, disable_check = 0) - static cell AMX_NATIVE_CALL JUDY_SLAVE_GET_FLO_FUNC(AMX *amx,cell *params) - { - DTYPE* Unit = NULL; - STYPE* Storage; - - JUDY_GET_INDEX(MNAME,Unit, params[1]); - ITYPE Indice = JUDY_GET_KEY(params,2); - bool disable_check = (params[3] != NULL); - - try { Storage = reinterpret_cast( Unit->Get(Indice, disable_check ) ); } - JUDY_ERROR_CATCH("Judy Error: (Retrieve unset value) - Slave Get Function "); - - if(Storage == NULL) return 0; - - return amx_ftoc(Storage->GetFlo() ); - } - - #else - - #error Must Have Get func: JUDY_SLAVE_GET_FLO_FUNC not defined! - - #endif - -///* End Slave Float Funcs */// -#endif - -///* Start Slave String Funcs */// -#ifdef JUDY_SLAVE_EDIT_STR - - #ifdef JUDY_SLAVE_SET_STR_FUNC - - // generic_set_string(id, index, val[]) - static cell AMX_NATIVE_CALL JUDY_SLAVE_SET_STR_FUNC(AMX *amx,cell *params) - { - DTYPE* Unit = NULL; - STYPE* Storage; - - JUDY_GET_INDEX(MNAME,Unit, params[1]); - ITYPE Indice = JUDY_GET_KEY(params,2); - char* Value = MF_GetAmxString(amx,params[3],3,NULL); - - Storage = reinterpret_cast( Unit->Get(Indice, true ) ); - - if(Storage == NULL) Storage = new STYPE(Value); - else Storage->SetStr(Value); - - JUDY_SET_INDEX_P(Unit,Storage,Indice); - } - - #else - - #error Must Have Set func: JUDY_SLAVE_SET_STR_FUNC not defined! - - #endif - - #ifdef JUDY_SLAVE_GET_STR_FUNC - - // generic_get_string(id, index, val[], len, disable_check = 0) - static cell AMX_NATIVE_CALL JUDY_SLAVE_GET_STR_FUNC(AMX *amx,cell *params) - { - DTYPE* Unit = NULL; - STYPE* Storage; - - JUDY_GET_INDEX(MNAME,Unit, params[1]); - ITYPE Indice = JUDY_GET_KEY(params,2); - bool disable_check = (params[5] != NULL); - - try { Storage = reinterpret_cast( Unit->Get(Indice, disable_check ) ); } - JUDY_ERROR_CATCH("Judy Error: (Retrieve unset value) - Slave Get Function "); - - if(Storage == NULL) return 0; - - return MF_SetAmxString(amx,params[3], Storage->GetStr(), params[4] ); - } - - #else - - #error Must Have Get func: JUDY_SLAVE_GET_STR_FUNC not defined! - - #endif - -///* End Slave String Funcs */// -#endif - -///* Start Slave Vector Funcs */// -#ifdef JUDY_SLAVE_EDIT_VEC - - #ifdef JUDY_SLAVE_SET_VEC_FUNC - - // generic_set_vec(id, index, Float:val[3]) - static cell AMX_NATIVE_CALL JUDY_SLAVE_SET_VEC_FUNC(AMX *amx,cell *params) - { - DTYPE* Unit = NULL; - STYPE* Storage; - - JUDY_GET_INDEX(MNAME,Unit, params[1]); - ITYPE Indice = JUDY_GET_KEY(params,2); - - cell *input_vec = MF_GetAmxAddr(amx, params[3]); - JudyVec *Value = new JudyVec( - amx_ctof(input_vec[0]), - amx_ctof(input_vec[1]), - amx_ctof(input_vec[2]) - ); - - Storage = reinterpret_cast( Unit->Get(Indice, true ) ); - - if(Storage == NULL) Storage = new STYPE(Value); - else Storage->SetVec(Value); - - JUDY_SET_INDEX_P(Unit,Storage,Indice); - } - - #else - - #error Must Have Set func: JUDY_SLAVE_SET_VEC_FUNC not defined! - - #endif - - #ifdef JUDY_SLAVE_GET_FLO_FUNC - - // generic_get_vec(id,index,Float:vec[3], disable_check = 0) - static cell AMX_NATIVE_CALL JUDY_SLAVE_GET_VEC_FUNC(AMX *amx,cell *params) - { - DTYPE* Unit = NULL; - STYPE* Storage; - - JUDY_GET_INDEX(MNAME,Unit, params[1]); - ITYPE Indice = JUDY_GET_KEY(params,2); - cell *vAmx = MF_GetAmxAddr(amx, params[3]); - bool disable_check = (params[4] != NULL); - - try { Storage = reinterpret_cast( Unit->Get(Indice, disable_check ) ); } - JUDY_ERROR_CATCH("Judy Error: (Retrieve unset value) - Slave Get Function "); - - if(Storage == NULL) - { - vAmx[0] = amx_ftoc(0); - vAmx[1] = amx_ftoc(0); - vAmx[2] = amx_ftoc(0); - return 0; - } - - JudyVec* Vec = const_cast( Storage->GetVec() ); - - REAL One, Two, Three; - Vec->Get(One, Two, Three); - - vAmx[0] = amx_ftoc(One); - vAmx[1] = amx_ftoc(Two); - vAmx[2] = amx_ftoc(Three); - - return 1; - } - - #else - - #error Must Have Get func: JUDY_SLAVE_GET_VEC_FUNC not defined! - - #endif - -///* End Slave VEC Funcs */// -#endif - -///* End Slave Edit Funcs */// -#endif - -///* Start Slave Search Funcs -#ifdef JUDY_SLAVE_SEARCH_FUNCTIONS - - #ifdef JUDY_SLAVE_FIRST_FUNC - // generic_first(id, index,...) - static cell AMX_NATIVE_CALL JUDY_SLAVE_FIRST_FUNC(AMX *amx,cell *params) - { - DTYPE* Unit = NULL; - - JUDY_GET_INDEX(MNAME,Unit, params[1]); - ITYPE Indice = JUDY_GET_KEY(params,2); - cell* success = MF_GetAmxAddr(amx, params[3 + SE_OFFSET]); - - *success = 1; - try { return JUDY_SET_KEY(Unit->First(Indice),3); } - JUDY_SEARCH_ERROR_CATCH("Judy Error (Search failed) - Slave Search Function", *success); - } - - #else - - #error Must Have Search func: JUDY_SLAVE_FIRST_FUNC not defined! - - #endif - - #ifdef JUDY_SLAVE_NEXT_FUNC - // generic_next(id, index,...) - static cell AMX_NATIVE_CALL JUDY_SLAVE_NEXT_FUNC(AMX *amx,cell *params) - { - DTYPE* Unit = NULL; - - - JUDY_GET_INDEX(MNAME,Unit, params[1]); - ITYPE Indice = JUDY_GET_KEY(params,2); - cell* success = MF_GetAmxAddr(amx, params[3 + SE_OFFSET]); - - *success = 1; - try { return JUDY_SET_KEY(Unit->Next(Indice),3); } - JUDY_SEARCH_ERROR_CATCH("Judy Error (Search failed) - Slave Search Function", *success); - } - - #else - - #error Must Have Search func: JUDY_SLAVE_NEXT_FUNC not defined! - - #endif - - #ifdef JUDY_SLAVE_PREV_FUNC - // generic_prev(id, index,...) - static cell AMX_NATIVE_CALL JUDY_SLAVE_PREV_FUNC(AMX *amx,cell *params) - { - DTYPE* Unit = NULL; - - - JUDY_GET_INDEX(MNAME,Unit, params[1]); - ITYPE Indice = JUDY_GET_KEY(params,2); - cell* success = MF_GetAmxAddr(amx, params[3 + SE_OFFSET]); - - *success = 1; - try { return JUDY_SET_KEY(Unit->Prev(Indice),3); } - JUDY_SEARCH_ERROR_CATCH("Judy Error (Search failed) - Slave Search Function", *success); - } - - #else - - #error Must Have Search func: JUDY_SLAVE_PREV_FUNC not defined! - - #endif - - #ifdef JUDY_SLAVE_LAST_FUNC - // generic_first(id, index,...) - static cell AMX_NATIVE_CALL JUDY_SLAVE_LAST_FUNC(AMX *amx,cell *params) - { - DTYPE* Unit = NULL; - - - JUDY_GET_INDEX(MNAME,Unit, params[1]); - ITYPE Indice = JUDY_GET_KEY(params,2); - cell* success = MF_GetAmxAddr(amx, params[3 + SE_OFFSET]); - - *success = 1; - try { return JUDY_SET_KEY(Unit->Last(Indice),3); } - JUDY_SEARCH_ERROR_CATCH("Judy Error (Search failed) - Slave Search Function", *success); - } - - #else - - #error Must Have Search func: JUDY_SLAVE_LAST_FUNC not defined! - - #endif - -///* End Slave Search Funcs */// -#endif - - -///* Start Slave Empty Search Funcs -#ifdef JUDY_SLAVE_SEARCH_EMPTY_FUNCTIONS - - #ifdef JUDY_SLAVE_FIRSTEMPTY_FUNC - // generic_firstempty(id, index,...) - static cell AMX_NATIVE_CALL JUDY_SLAVE_FIRSTEMPTY_FUNC(AMX *amx,cell *params) - { - DTYPE* Unit = NULL; - - - JUDY_GET_INDEX(MNAME,Unit, params[1]); - ITYPE Indice = JUDY_GET_KEY(params,2); - cell* success = MF_GetAmxAddr(amx, params[3 + SE_OFFSET]); - - *success = 1; - try { return JUDY_SET_KEY(Unit->FirstEmpty(Indice),3); } - JUDY_SEARCH_ERROR_CATCH("Judy Error (Search failed) - Slave Search Function", *success); - } - - #else - - #error Must Have Search func: JUDY_SLAVE_FIRSTEMPTY_FUNC not defined! - - #endif - - #ifdef JUDY_SLAVE_NEXTEMPTY_FUNC - // generic_next(id, index,...) - static cell AMX_NATIVE_CALL JUDY_SLAVE_NEXTEMPTY_FUNC(AMX *amx,cell *params) - { - DTYPE* Unit = NULL; - - - JUDY_GET_INDEX(MNAME,Unit, params[1]); - ITYPE Indice = JUDY_GET_KEY(params,2); - cell* success = MF_GetAmxAddr(amx, params[3 + SE_OFFSET]); - - *success = 1; - try { return JUDY_SET_KEY(Unit->NextEmpty(Indice),3); } - JUDY_SEARCH_ERROR_CATCH("Judy Error (Search failed) - Slave Search Function", *success); - } - - #else - - #error Must Have Search func: JUDY_SLAVE_NEXTEMPTY_FUNC not defined! - - #endif - - #ifdef JUDY_SLAVE_PREVEMPTY_FUNC - // generic_prev(id, index,...) - static cell AMX_NATIVE_CALL JUDY_SLAVE_PREVEMPTY_FUNC(AMX *amx,cell *params) - { - DTYPE* Unit = NULL; - - - JUDY_GET_INDEX(MNAME,Unit, params[1]); - ITYPE Indice = JUDY_GET_KEY(params,2); - cell* success = MF_GetAmxAddr(amx, params[3 + SE_OFFSET]); - - *success = 1; - try { return JUDY_SET_KEY(Unit->PrevEmpty(Indice),3); } - JUDY_SEARCH_ERROR_CATCH("Judy Error (Search failed) - Slave Search Function", *success); - } - - #else - - #error Must Have Search func: JUDY_SLAVE_PREVEMPTY_FUNC not defined! - - #endif - - #ifdef JUDY_SLAVE_LASTEMPTY_FUNC - // generic_first(id, index,...) - static cell AMX_NATIVE_CALL JUDY_SLAVE_LASTEMPTY_FUNC(AMX *amx,cell *params) - { - DTYPE* Unit = NULL; - - - JUDY_GET_INDEX(MNAME,Unit, params[1]); - ITYPE Indice = JUDY_GET_KEY(params,2); - cell* success = MF_GetAmxAddr(amx, params[3 + SE_OFFSET]); - - *success = 1; - try { return JUDY_SET_KEY(Unit->LastEmpty(Indice),3); } - JUDY_SEARCH_ERROR_CATCH("Judy Error (Search failed) - Slave Search Function",*success); - } - - #else - - #error Must Have Search func: JUDY_SLAVE_LASTEMPTY_FUNC not defined! - - #endif - -///* End Slave Search Empty Funcs */// -#endif - -AMX_NATIVE_INFO EXPORT_NAME[] = -{ - -#ifdef JUDY_MASTER_EDIT_FUNCTIONS - - { JUDY_MASTER_CLEAR_STR , JUDY_MASTER_CLEAR_FUNC }, - { JUDY_MASTER_DELETE_STR , JUDY_MASTER_DELETE_FUNC }, - -#endif - -#ifdef JUDY_MASTER_IO_FUNCTIONS - - { JUDY_MASTER_SAVE_STR , JUDY_MASTER_SAVE_FUNC }, - { JUDY_MASTER_LOAD_STR , JUDY_MASTER_LOAD_FUNC }, - -#endif - -#ifdef JUDY_MASTER_AMOUNT_FUNCTIONS - - { JUDY_MASTER_COUNT_STR , JUDY_MASTER_COUNT_FUNC }, - { JUDY_MASTER_BYCOUNT_STR , JUDY_MASTER_BYCOUNT_FUNC }, - -#endif - -#ifdef JUDY_SLAVE_AMOUNT_FUNCTIONS - - { JUDY_SLAVE_COUNT_STR , JUDY_SLAVE_COUNT_FUNC }, - { JUDY_SLAVE_BYCOUNT_STR , JUDY_SLAVE_BYCOUNT_FUNC }, - -#endif - -#ifdef JUDY_SLAVE_EDIT_FUNCTIONS - - { JUDY_SLAVE_MEMORY_STR , JUDY_SLAVE_MEMORY_FUNC }, - { JUDY_SLAVE_ISFILLED_STR , JUDY_SLAVE_ISFILLED_FUNC }, - { JUDY_SLAVE_ISEMPTY_STR , JUDY_SLAVE_ISEMPTY_FUNC }, - { JUDY_SLAVE_REMOVE_STR , JUDY_SLAVE_REMOVE_FUNC }, - -#ifdef JUDY_SLAVE_EDIT_BOOL - - { JUDY_SLAVE_GET_BOOL_STR , JUDY_SLAVE_GET_BOOL_FUNC }, - { JUDY_SLAVE_SET_BOOL_STR , JUDY_SLAVE_SET_BOOL_FUNC }, - -#endif - -#ifdef JUDY_SLAVE_EDIT_INT - - { JUDY_SLAVE_GET_INT_STR , JUDY_SLAVE_GET_INT_FUNC }, - { JUDY_SLAVE_SET_INT_STR , JUDY_SLAVE_SET_INT_FUNC }, - -#endif - -#ifdef JUDY_SLAVE_EDIT_FLO - - { JUDY_SLAVE_GET_FLO_STR , JUDY_SLAVE_GET_FLO_FUNC }, - { JUDY_SLAVE_SET_FLO_STR , JUDY_SLAVE_SET_FLO_FUNC }, - -#endif - -#ifdef JUDY_SLAVE_EDIT_STR - - { JUDY_SLAVE_GET_STR_STR , JUDY_SLAVE_GET_STR_FUNC }, - { JUDY_SLAVE_SET_STR_STR , JUDY_SLAVE_SET_STR_FUNC }, - -#endif - -#ifdef JUDY_SLAVE_EDIT_VEC - - { JUDY_SLAVE_GET_VEC_STR , JUDY_SLAVE_GET_VEC_FUNC }, - { JUDY_SLAVE_SET_VEC_STR , JUDY_SLAVE_SET_VEC_FUNC }, - -#endif - -// End all edit functions -#endif - -#ifdef JUDY_SLAVE_SEARCH_FUNCTIONS - - { JUDY_SLAVE_FIRST_STR , JUDY_SLAVE_FIRST_FUNC }, - { JUDY_SLAVE_LAST_STR , JUDY_SLAVE_LAST_FUNC }, - - { JUDY_SLAVE_NEXT_STR , JUDY_SLAVE_NEXT_FUNC }, - { JUDY_SLAVE_PREV_STR , JUDY_SLAVE_PREV_FUNC }, - -#endif - -#ifdef JUDY_SLAVE_SEARCH_EMPTY_FUNCTIONS - - { JUDY_SLAVE_FIRSTEMPTY_STR , JUDY_SLAVE_FIRSTEMPTY_FUNC }, - { JUDY_SLAVE_LASTEMPTY_STR , JUDY_SLAVE_LASTEMPTY_FUNC }, - - { JUDY_SLAVE_NEXTEMPTY_STR , JUDY_SLAVE_NEXTEMPTY_FUNC }, - { JUDY_SLAVE_PREVEMPTY_STR , JUDY_SLAVE_PREVEMPTY_FUNC }, - -#endif - - { NULL, NULL } -}; - -#endif \ No newline at end of file diff --git a/dlls/arrayx/SDK/NativeFunctions.h b/dlls/arrayx/SDK/NativeFunctions.h deleted file mode 100644 index 9dcce6dc..00000000 --- a/dlls/arrayx/SDK/NativeFunctions.h +++ /dev/null @@ -1,58 +0,0 @@ -#ifndef _NATIVE_FUNC_INC_H -#define _NATIVE_FUNC_INC_H - -#define JUDY_GLUE_FUNC( x , y ) x ## y - -#define JUDY_MASTER_FUNCTIONS -#define JUDY_MASTER_CREATE_FUNC JUDY_GLUE_FUNC( array , _create ) -#define JUDY_MASTER_CLEAR_FUNC JUDY_GLUE_FUNC( array , _clear ) -#define JUDY_MASTER_DELETE_FUNC JUDY_GLUE_FUNC( array , _delete ) - -#define JUDY_MASTER_IO_FUNCTIONS -#define JUDY_MASTER_SAVE_FUNC JUDY_GLUE_FUNC( array , _save ) -#define JUDY_MASTER_LOAD_FUNC JUDY_GLUE_FUNC( array , _load ) - -#define JUDY_MASTER_AMOUNT_FUNCTIONS -#define JUDY_MASTER_COUNT_FUNC JUDY_GLUE_FUNC( array , _count ) -#define JUDY_MASTER_BYCOUNT_FUNC JUDY_GLUE_FUNC( array , _bycount ) -#define JUDY_MASTER_MEMORY_FUNC JUDY_GLUE_FUNC( array , _memory ) - -#define JUDY_SLAVE_AMOUNT_FUNCTIONS -#define JUDY_SLAVE_COUNT_FUNC JUDY_GLUE_FUNC( array , _size ) -#define JUDY_SLAVE_BYCOUNT_FUNC JUDY_GLUE_FUNC( array , _get_nth ) - -#define JUDY_SLAVE_EDIT_FUNCTIONS -#define JUDY_SLAVE_GET_BOOL_FUNC JUDY_GLUE_FUNC( array , _get_bool ) -#define JUDY_SLAVE_SET_BOOL_FUNC JUDY_GLUE_FUNC( array , _set_bool ) - -#define JUDY_SLAVE_GET_INT_FUNC JUDY_GLUE_FUNC( array , _get_int ) -#define JUDY_SLAVE_SET_INT_FUNC JUDY_GLUE_FUNC( array , _set_int ) - -#define JUDY_SLAVE_GET_FLO_FUNC JUDY_GLUE_FUNC( array , _get_float ) -#define JUDY_SLAVE_SET_FLO_FUNC JUDY_GLUE_FUNC( array , _set_float ) - -#define JUDY_SLAVE_GET_STR_FUNC JUDY_GLUE_FUNC( array , _get_string ) -#define JUDY_SLAVE_SET_STR_FUNC JUDY_GLUE_FUNC( array , _set_string ) - -#define JUDY_SLAVE_GET_VEC_FUNC JUDY_GLUE_FUNC( array , _get_vector ) -#define JUDY_SLAVE_SET_VEC_FUNC JUDY_GLUE_FUNC( array , _set_vector ) - -#define JUDY_SLAVE_ISFILLED_FUNC JUDY_GLUE_FUNC( array , _isfilled ) -#define JUDY_SLAVE_ISEMPTY_FUNC JUDY_GLUE_FUNC( array , _isempty ) - -#define JUDY_SLAVE_REMOVE_FUNC JUDY_GLUE_FUNC( array , _remove ) - -#define JUDY_SLAVE_SEARCH_FUNCTIONS -#define JUDY_SLAVE_GET_FIRST_FUNC JUDY_GLUE_FUNC( array , _first ) -#define JUDY_SLAVE_SET_LAST_FUNC JUDY_GLUE_FUNC( array , _last ) - -#define JUDY_SLAVE_GET_NEXT_FUNC JUDY_GLUE_FUNC( array , _next ) -#define JUDY_SLAVE_SET_PREV_FUNC JUDY_GLUE_FUNC( array , _prev ) - -#define JUDY_SLAVE_SEARCH_EMPTY_FUNCTIONS -#define JUDY_SLAVE_GET_FIRSTEMPTY_FUNC JUDY_GLUE_FUNC( array , _firstempty ) -#define JUDY_SLAVE_SET_LASTEMPTY_FUNC JUDY_GLUE_FUNC( array , _lastempty ) - -#define JUDY_SLAVE_GET_NEXTEMPTY_FUNC JUDY_GLUE_FUNC( array , _nextempty ) -#define JUDY_SLAVE_SET_PREVEMPTY_FUNC JUDY_GLUE_FUNC( array , _prevempty ) -#endif \ No newline at end of file diff --git a/dlls/arrayx/amxxmodule.cpp b/dlls/arrayx/amxxmodule.cpp deleted file mode 100644 index 1441e450..00000000 --- a/dlls/arrayx/amxxmodule.cpp +++ /dev/null @@ -1,3090 +0,0 @@ -/* AMX Mod X -* -* by the AMX Mod X Development Team -* originally developed by OLO -* -* Parts Copyright (C) 2001-2003 Will Day -* -* This program is free software; you can redistribute it and/or modify it -* under the terms of the GNU General Public License as published by the -* Free Software Foundation; either version 2 of the License, or (at -* your option) any later version. -* -* This program is distributed in the hope that it will be useful, but -* WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -* General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software Foundation, -* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -* -* In addition, as a special exception, the author gives permission to -* link the code of this program with the Half-Life Game Engine ("HL -* Engine") and Modified Game Libraries ("MODs") developed by Valve, -* L.L.C ("Valve"). You must obey the GNU General Public License in all -* respects for all of the code used other than the HL Engine and MODs -* from Valve. If you modify this file, you may extend this exception -* to your version of the file, but you are not obligated to do so. If -* you do not wish to do so, delete this exception statement from your -* version. -* -* Description: AMX Mod X Module Interface Functions -*/ - -#include -#include -#include -#include -#include -#include "amxxmodule.h" - -/************* METAMOD SUPPORT *************/ -#ifdef USE_METAMOD - -enginefuncs_t g_engfuncs; -globalvars_t *gpGlobals; - -DLL_FUNCTIONS *g_pFunctionTable; -DLL_FUNCTIONS *g_pFunctionTable_Post; -enginefuncs_t *g_pengfuncsTable; -enginefuncs_t *g_pengfuncsTable_Post; -NEW_DLL_FUNCTIONS *g_pNewFunctionsTable; -NEW_DLL_FUNCTIONS *g_pNewFunctionsTable_Post; - -// GetEntityAPI2 functions -static DLL_FUNCTIONS g_EntityAPI_Table = -{ -#ifdef FN_GameDLLInit - FN_GameDLLInit, -#else - NULL, -#endif -#ifdef FN_DispatchSpawn - FN_DispatchSpawn, -#else - NULL, -#endif -#ifdef FN_DispatchThink - FN_DispatchThink, -#else - NULL, -#endif -#ifdef FN_DispatchUse - FN_DispatchUse, -#else - NULL, -#endif -#ifdef FN_DispatchTouch - FN_DispatchTouch, -#else - NULL, -#endif -#ifdef FN_DispatchBlocked - FN_DispatchBlocked, -#else - NULL, -#endif -#ifdef FN_DispatchKeyValue - FN_DispatchKeyValue, -#else - NULL, -#endif -#ifdef FN_DispatchSave - FN_DispatchSave, -#else - NULL, -#endif -#ifdef FN_DispatchRestore - FN_DispatchRestore, -#else - NULL, -#endif -#ifdef FN_DispatchObjectCollsionBox - FN_DispatchObjectCollsionBox, -#else - NULL, -#endif -#ifdef FN_SaveWriteFields - FN_SaveWriteFields, -#else - NULL, -#endif -#ifdef FN_SaveReadFields - FN_SaveReadFields, -#else - NULL, -#endif -#ifdef FN_SaveGlobalState - FN_SaveGlobalState, -#else - NULL, -#endif -#ifdef FN_RestoreGlobalState - FN_RestoreGlobalState, -#else - NULL, -#endif -#ifdef FN_ResetGlobalState - FN_ResetGlobalState, -#else - NULL, -#endif -#ifdef FN_ClientConnect - FN_ClientConnect, -#else - NULL, -#endif -#ifdef FN_ClientDisconnect - FN_ClientDisconnect, -#else - NULL, -#endif -#ifdef FN_ClientKill - FN_ClientKill, -#else - NULL, -#endif -#ifdef FN_ClientPutInServer - FN_ClientPutInServer, -#else - NULL, -#endif -#ifdef FN_ClientCommand - FN_ClientCommand, -#else - NULL, -#endif -#ifdef FN_ClientUserInfoChanged - FN_ClientUserInfoChanged, -#else - NULL, -#endif -#ifdef FN_ServerActivate - FN_ServerActivate, -#else - NULL, -#endif -#ifdef FN_ServerDeactivate - FN_ServerDeactivate, -#else - NULL, -#endif -#ifdef FN_PlayerPreThink - FN_PlayerPreThink, -#else - NULL, -#endif -#ifdef FN_PlayerPostThink - FN_PlayerPostThink, -#else - NULL, -#endif -#ifdef FN_StartFrame - FN_StartFrame, -#else - NULL, -#endif -#ifdef FN_ParmsNewLevel - FN_ParmsNewLevel, -#else - NULL, -#endif -#ifdef FN_ParmsChangeLevel - FN_ParmsChangeLevel, -#else - NULL, -#endif -#ifdef FN_GetGameDescription - FN_GetGameDescription, -#else - NULL, -#endif -#ifdef FN_PlayerCustomization - FN_PlayerCustomization, -#else - NULL, -#endif -#ifdef FN_SpectatorConnect - FN_SpectatorConnect, -#else - NULL, -#endif -#ifdef FN_SpectatorDisconnect - FN_SpectatorDisconnect, -#else - NULL, -#endif -#ifdef FN_SpectatorThink - FN_SpectatorThink, -#else - NULL, -#endif -#ifdef FN_Sys_Error - FN_Sys_Error, -#else - NULL, -#endif -#ifdef FN_PM_Move - FN_PM_Move, -#else - NULL, -#endif -#ifdef FN_PM_Init - FN_PM_Init, -#else - NULL, -#endif -#ifdef FN_PM_FindTextureType - FN_PM_FindTextureType, -#else - NULL, -#endif -#ifdef FN_SetupVisibility - FN_SetupVisibility, -#else - NULL, -#endif -#ifdef FN_UpdateClientData - FN_UpdateClientData, -#else - NULL, -#endif -#ifdef FN_AddToFullPack - FN_AddToFullPack, -#else - NULL, -#endif -#ifdef FN_CreateBaseline - FN_CreateBaseline, -#else - NULL, -#endif -#ifdef FN_RegisterEncoders - FN_RegisterEncoders, -#else - NULL, -#endif -#ifdef FN_GetWeaponData - FN_GetWeaponData, -#else - NULL, -#endif -#ifdef FN_CmdStart - FN_CmdStart, -#else - NULL, -#endif -#ifdef FN_CmdEnd - FN_CmdEnd, -#else - NULL, -#endif -#ifdef FN_ConnectionlessPacket - FN_ConnectionlessPacket, -#else - NULL, -#endif -#ifdef FN_GetHullBounds - FN_GetHullBounds, -#else - NULL, -#endif -#ifdef FN_CreateInstancedBaselines - FN_CreateInstancedBaselines, -#else - NULL, -#endif -#ifdef FN_InconsistentFile - FN_InconsistentFile, -#else - NULL, -#endif -#ifdef FN_AllowLagCompensation - FN_AllowLagCompensation -#else - NULL -#endif -}; // g_EntityAPI2_Table - -// GetEntityAPI2_Post functions -static DLL_FUNCTIONS g_EntityAPI_Post_Table = -{ -#ifdef FN_GameDLLInit_Post - FN_GameDLLInit_Post, -#else - NULL, -#endif -#ifdef FN_DispatchSpawn_Post - FN_DispatchSpawn_Post, -#else - NULL, -#endif -#ifdef FN_DispatchThink_Post - FN_DispatchThink_Post, -#else - NULL, -#endif -#ifdef FN_DispatchUse_Post - FN_DispatchUse_Post, -#else - NULL, -#endif -#ifdef FN_DispatchTouch_Post - FN_DispatchTouch_Post, -#else - NULL, -#endif -#ifdef FN_DispatchBlocked_Post - FN_DispatchBlocked_Post, -#else - NULL, -#endif -#ifdef FN_DispatchKeyValue_Post - FN_DispatchKeyValue_Post, -#else - NULL, -#endif -#ifdef FN_DispatchSave_Post - FN_DispatchSave_Post, -#else - NULL, -#endif -#ifdef FN_DispatchRestore_Post - FN_DispatchRestore_Post, -#else - NULL, -#endif -#ifdef FN_DispatchObjectCollsionBox_Post - FN_DispatchObjectCollsionBox_Post, -#else - NULL, -#endif -#ifdef FN_SaveWriteFields_Post - FN_SaveWriteFields_Post, -#else - NULL, -#endif -#ifdef FN_SaveReadFields_Post - FN_SaveReadFields_Post, -#else - NULL, -#endif -#ifdef FN_SaveGlobalState_Post - FN_SaveGlobalState_Post, -#else - NULL, -#endif -#ifdef FN_RestoreGlobalState_Post - FN_RestoreGlobalState_Post, -#else - NULL, -#endif -#ifdef FN_ResetGlobalState_Post - FN_ResetGlobalState_Post, -#else - NULL, -#endif -#ifdef FN_ClientConnect_Post - FN_ClientConnect_Post, -#else - NULL, -#endif -#ifdef FN_ClientDisconnect_Post - FN_ClientDisconnect_Post, -#else - NULL, -#endif -#ifdef FN_ClientKill_Post - FN_ClientKill_Post, -#else - NULL, -#endif -#ifdef FN_ClientPutInServer_Post - FN_ClientPutInServer_Post, -#else - NULL, -#endif -#ifdef FN_ClientCommand_Post - FN_ClientCommand_Post, -#else - NULL, -#endif -#ifdef FN_ClientUserInfoChanged_Post - FN_ClientUserInfoChanged_Post, -#else - NULL, -#endif -#ifdef FN_ServerActivate_Post - FN_ServerActivate_Post, -#else - NULL, -#endif -#ifdef FN_ServerDeactivate_Post - FN_ServerDeactivate_Post, -#else - NULL, -#endif -#ifdef FN_PlayerPreThink_Post - FN_PlayerPreThink_Post, -#else - NULL, -#endif -#ifdef FN_PlayerPostThink_Post - FN_PlayerPostThink_Post, -#else - NULL, -#endif -#ifdef FN_StartFrame_Post - FN_StartFrame_Post, -#else - NULL, -#endif -#ifdef FN_ParmsNewLevel_Post - FN_ParmsNewLevel_Post, -#else - NULL, -#endif -#ifdef FN_ParmsChangeLevel_Post - FN_ParmsChangeLevel_Post, -#else - NULL, -#endif -#ifdef FN_GetGameDescription_Post - FN_GetGameDescription_Post, -#else - NULL, -#endif -#ifdef FN_PlayerCustomization_Post - FN_PlayerCustomization_Post, -#else - NULL, -#endif -#ifdef FN_SpectatorConnect_Post - FN_SpectatorConnect_Post, -#else - NULL, -#endif -#ifdef FN_SpectatorDisconnect_Post - FN_SpectatorDisconnect_Post, -#else - NULL, -#endif -#ifdef FN_SpectatorThink_Post - FN_SpectatorThink_Post, -#else - NULL, -#endif -#ifdef FN_Sys_Error_Post - FN_Sys_Error_Post, -#else - NULL, -#endif -#ifdef FN_PM_Move_Post - FN_PM_Move_Post, -#else - NULL, -#endif -#ifdef FN_PM_Init_Post - FN_PM_Init_Post, -#else - NULL, -#endif -#ifdef FN_PM_FindTextureType_Post - FN_PM_FindTextureType_Post, -#else - NULL, -#endif -#ifdef FN_SetupVisibility_Post - FN_SetupVisibility_Post, -#else - NULL, -#endif -#ifdef FN_UpdateClientData_Post - FN_UpdateClientData_Post, -#else - NULL, -#endif -#ifdef FN_AddToFullPack_Post - FN_AddToFullPack_Post, -#else - NULL, -#endif -#ifdef FN_CreateBaseline_Post - FN_CreateBaseline_Post, -#else - NULL, -#endif -#ifdef FN_RegisterEncoders_Post - FN_RegisterEncoders_Post, -#else - NULL, -#endif -#ifdef FN_GetWeaponData_Post - FN_GetWeaponData_Post, -#else - NULL, -#endif -#ifdef FN_CmdStart_Post - FN_CmdStart_Post, -#else - NULL, -#endif -#ifdef FN_CmdEnd_Post - FN_CmdEnd_Post, -#else - NULL, -#endif -#ifdef FN_ConnectionlessPacket_Post - FN_ConnectionlessPacket_Post, -#else - NULL, -#endif -#ifdef FN_GetHullBounds_Post - FN_GetHullBounds_Post, -#else - NULL, -#endif -#ifdef FN_CreateInstancedBaselines_Post - FN_CreateInstancedBaselines_Post, -#else - NULL, -#endif -#ifdef FN_InconsistentFile_Post - FN_InconsistentFile_Post, -#else - NULL, -#endif -#ifdef FN_AllowLagCompensation - FN_AllowLagCompensation, -#else - NULL, -#endif -}; // g_EntityAPI2_Table - -static enginefuncs_t g_EngineFuncs_Table = -{ -#ifdef FN_PrecacheModel - FN_PrecacheModel, -#else - NULL, -#endif -#ifdef FN_PrecacheSound - FN_PrecacheSound, -#else - NULL, -#endif -#ifdef FN_SetModel - FN_SetModel, -#else - NULL, -#endif -#ifdef FN_ModelIndex - FN_ModelIndex, -#else - NULL, -#endif -#ifdef FN_ModelFrames - FN_ModelFrames, -#else - NULL, -#endif -#ifdef FN_SetSize - FN_SetSize, -#else - NULL, -#endif -#ifdef FN_ChangeLevel - FN_ChangeLevel, -#else - NULL, -#endif -#ifdef FN_GetSpawnParms - FN_GetSpawnParms, -#else - NULL, -#endif -#ifdef FN_SaveSpawnParms - FN_SaveSpawnParms, -#else - NULL, -#endif -#ifdef FN_VecToYaw - FN_VecToYaw, -#else - NULL, -#endif -#ifdef FN_VecToAngles - FN_VecToAngles, -#else - NULL, -#endif -#ifdef FN_MoveToOrigin - FN_MoveToOrigin, -#else - NULL, -#endif -#ifdef FN_ChangeYaw - FN_ChangeYaw, -#else - NULL, -#endif -#ifdef FN_ChangePitch - FN_ChangePitch, -#else - NULL, -#endif -#ifdef FN_FindEntityByString - FN_FindEntityByString, -#else - NULL, -#endif -#ifdef FN_GetEntityIllum - FN_GetEntityIllum, -#else - NULL, -#endif -#ifdef FN_FindEntityInSphere - FN_FindEntityInSphere, -#else - NULL, -#endif -#ifdef FN_FindClientInPVS - FN_FindClientInPVS, -#else - NULL, -#endif -#ifdef FN_EntitiesInPVS - FN_EntitiesInPVS, -#else - NULL, -#endif -#ifdef FN_MakeVectors - FN_MakeVectors, -#else - NULL, -#endif -#ifdef FN_AngleVectors - FN_AngleVectors, -#else - NULL, -#endif -#ifdef FN_CreateEntity - FN_CreateEntity, -#else - NULL, -#endif -#ifdef FN_RemoveEntity - FN_RemoveEntity, -#else - NULL, -#endif -#ifdef FN_CreateNamedEntity - FN_CreateNamedEntity, -#else - NULL, -#endif -#ifdef FN_MakeStatic - FN_MakeStatic, -#else - NULL, -#endif -#ifdef FN_EntIsOnFloor - FN_EntIsOnFloor, -#else - NULL, -#endif -#ifdef FN_DropToFloor - FN_DropToFloor, -#else - NULL, -#endif -#ifdef FN_WalkMove - FN_WalkMove, -#else - NULL, -#endif -#ifdef FN_SetOrigin - FN_SetOrigin, -#else - NULL, -#endif -#ifdef FN_EmitSound - FN_EmitSound, -#else - NULL, -#endif -#ifdef FN_EmitAmbientSound - FN_EmitAmbientSound, -#else - NULL, -#endif -#ifdef FN_TraceLine - FN_TraceLine, -#else - NULL, -#endif -#ifdef FN_TraceToss - FN_TraceToss, -#else - NULL, -#endif -#ifdef FN_TraceMonsterHull - FN_TraceMonsterHull, -#else - NULL, -#endif -#ifdef FN_TraceHull - FN_TraceHull, -#else - NULL, -#endif -#ifdef FN_TraceModel - FN_TraceModel, -#else - NULL, -#endif -#ifdef FN_TraceTexture - FN_TraceTexture, -#else - NULL, -#endif -#ifdef FN_TraceSphere - FN_TraceSphere, -#else - NULL, -#endif -#ifdef FN_GetAimVector - FN_GetAimVector, -#else - NULL, -#endif -#ifdef FN_ServerCommand - FN_ServerCommand, -#else - NULL, -#endif -#ifdef FN_ServerExecute - FN_ServerExecute, -#else - NULL, -#endif -#ifdef FN_engClientCommand - FN_engClientCommand, -#else - NULL, -#endif -#ifdef FN_ParticleEffect - FN_ParticleEffect, -#else - NULL, -#endif -#ifdef FN_LightStyle - FN_LightStyle, -#else - NULL, -#endif -#ifdef FN_DecalIndex - FN_DecalIndex, -#else - NULL, -#endif -#ifdef FN_PointContents - FN_PointContents, -#else - NULL, -#endif -#ifdef FN_MessageBegin - FN_MessageBegin, -#else - NULL, -#endif -#ifdef FN_MessageEnd - FN_MessageEnd, -#else - NULL, -#endif -#ifdef FN_WriteByte - FN_WriteByte, -#else - NULL, -#endif -#ifdef FN_WriteChar - FN_WriteChar, -#else - NULL, -#endif -#ifdef FN_WriteShort - FN_WriteShort, -#else - NULL, -#endif -#ifdef FN_WriteLong - FN_WriteLong, -#else - NULL, -#endif -#ifdef FN_WriteAngle - FN_WriteAngle, -#else - NULL, -#endif -#ifdef FN_WriteCoord - FN_WriteCoord, -#else - NULL, -#endif -#ifdef FN_WriteString - FN_WriteString, -#else - NULL, -#endif -#ifdef FN_WriteEntity - FN_WriteEntity, -#else - NULL, -#endif -#ifdef FN_CVarRegister - FN_CVarRegister, -#else - NULL, -#endif -#ifdef FN_CVarGetFloat - FN_CVarGetFloat, -#else - NULL, -#endif -#ifdef FN_CVarGetString - FN_CVarGetString, -#else - NULL, -#endif -#ifdef FN_CVarSetFloat - FN_CVarSetFloat, -#else - NULL, -#endif -#ifdef FN_CVarSetString - FN_CVarSetString, -#else - NULL, -#endif -#ifdef FN_AlertMessage - FN_AlertMessage, -#else - NULL, -#endif -#ifdef FN_EngineFprintf - FN_EngineFprintf, -#else - NULL, -#endif -#ifdef FN_PvAllocEntPrivateData - FN_PvAllocEntPrivateData, -#else - NULL, -#endif -#ifdef FN_PvEntPrivateData - FN_PvEntPrivateData, -#else - NULL, -#endif -#ifdef FN_FreeEntPrivateData - FN_FreeEntPrivateData, -#else - NULL, -#endif -#ifdef FN_SzFromIndex - FN_SzFromIndex, -#else - NULL, -#endif -#ifdef FN_AllocString - FN_AllocString, -#else - NULL, -#endif -#ifdef FN_GetVarsOfEnt - FN_GetVarsOfEnt, -#else - NULL, -#endif -#ifdef FN_PEntityOfEntOffset - FN_PEntityOfEntOffset, -#else - NULL, -#endif -#ifdef FN_EntOffsetOfPEntity - FN_EntOffsetOfPEntity, -#else - NULL, -#endif -#ifdef FN_IndexOfEdict - FN_IndexOfEdict, -#else - NULL, -#endif -#ifdef FN_PEntityOfEntIndex - FN_PEntityOfEntIndex, -#else - NULL, -#endif -#ifdef FN_FindEntityByVars - FN_FindEntityByVars, -#else - NULL, -#endif -#ifdef FN_GetModelPtr - FN_GetModelPtr, -#else - NULL, -#endif -#ifdef FN_RegUserMsg - FN_RegUserMsg, -#else - NULL, -#endif -#ifdef FN_AnimationAutomove - FN_AnimationAutomove, -#else - NULL, -#endif -#ifdef FN_GetBonePosition - FN_GetBonePosition, -#else - NULL, -#endif -#ifdef FN_FunctionFromName - FN_FunctionFromName, -#else - NULL, -#endif -#ifdef FN_NameForFunction - FN_NameForFunction, -#else - NULL, -#endif -#ifdef FN_ClientPrintf - FN_ClientPrintf, -#else - NULL, -#endif -#ifdef FN_ServerPrint - FN_ServerPrint, -#else - NULL, -#endif -#ifdef FN_Cmd_Args - FN_Cmd_Args, -#else - NULL, -#endif -#ifdef FN_Cmd_Argv - FN_Cmd_Argv, -#else - NULL, -#endif -#ifdef FN_Cmd_Argc - FN_Cmd_Argc, -#else - NULL, -#endif -#ifdef FN_GetAttachment - FN_GetAttachment, -#else - NULL, -#endif -#ifdef FN_CRC32_Init - FN_CRC32_Init, -#else - NULL, -#endif -#ifdef FN_CRC32_ProcessBuffer - FN_CRC32_ProcessBuffer, -#else - NULL, -#endif -#ifdef FN_CRC32_ProcessByte - FN_CRC32_ProcessByte, -#else - NULL, -#endif -#ifdef FN_CRC32_Final - FN_CRC32_Final, -#else - NULL, -#endif -#ifdef FN_RandomLong - FN_RandomLong, -#else - NULL, -#endif -#ifdef FN_RandomFloat - FN_RandomFloat, -#else - NULL, -#endif -#ifdef FN_SetView - FN_SetView, -#else - NULL, -#endif -#ifdef FN_Time - FN_Time, -#else - NULL, -#endif -#ifdef FN_CrosshairAngle - FN_CrosshairAngle, -#else - NULL, -#endif -#ifdef FN_LoadFileForMe - FN_LoadFileForMe, -#else - NULL, -#endif -#ifdef FN_FreeFile - FN_FreeFile, -#else - NULL, -#endif -#ifdef FN_EndSection - FN_EndSection, -#else - NULL, -#endif -#ifdef FN_CompareFileTime - FN_CompareFileTime, -#else - NULL, -#endif -#ifdef FN_GetGameDir - FN_GetGameDir, -#else - NULL, -#endif -#ifdef FN_Cvar_RegisterVariable - FN_Cvar_RegisterVariable, -#else - NULL, -#endif -#ifdef FN_FadeClientVolume - FN_FadeClientVolume, -#else - NULL, -#endif -#ifdef FN_SetClientMaxspeed - FN_SetClientMaxspeed, -#else - NULL, -#endif -#ifdef FN_CreateFakeClient - FN_CreateFakeClient, -#else - NULL, -#endif -#ifdef FN_RunPlayerMove - FN_RunPlayerMove, -#else - NULL, -#endif -#ifdef FN_NumberOfEntities - FN_NumberOfEntities, -#else - NULL, -#endif -#ifdef FN_GetInfoKeyBuffer - FN_GetInfoKeyBuffer, -#else - NULL, -#endif -#ifdef FN_InfoKeyValue - FN_InfoKeyValue, -#else - NULL, -#endif -#ifdef FN_SetKeyValue - FN_SetKeyValue, -#else - NULL, -#endif -#ifdef FN_SetClientKeyValue - FN_SetClientKeyValue, -#else - NULL, -#endif -#ifdef FN_IsMapValid - FN_IsMapValid, -#else - NULL, -#endif -#ifdef FN_StaticDecal - FN_StaticDecal, -#else - NULL, -#endif -#ifdef FN_PrecacheGeneric - FN_PrecacheGeneric, -#else - NULL, -#endif -#ifdef FN_GetPlayerUserId - FN_GetPlayerUserId, -#else - NULL, -#endif -#ifdef FN_BuildSoundMsg - FN_BuildSoundMsg, -#else - NULL, -#endif -#ifdef FN_IsDedicatedServer - FN_IsDedicatedServer, -#else - NULL, -#endif -#ifdef FN_CVarGetPointer - FN_CVarGetPointer, -#else - NULL, -#endif -#ifdef FN_GetPlayerWONId - FN_GetPlayerWONId, -#else - NULL, -#endif -#ifdef FN_Info_RemoveKey - FN_Info_RemoveKey, -#else - NULL, -#endif -#ifdef FN_GetPhysicsKeyValue - FN_GetPhysicsKeyValue, -#else - NULL, -#endif -#ifdef FN_SetPhysicsKeyValue - FN_SetPhysicsKeyValue, -#else - NULL, -#endif -#ifdef FN_GetPhysicsInfoString - FN_GetPhysicsInfoString, -#else - NULL, -#endif -#ifdef FN_PrecacheEvent - FN_PrecacheEvent, -#else - NULL, -#endif -#ifdef FN_PlaybackEvent - FN_PlaybackEvent, -#else - NULL, -#endif -#ifdef FN_SetFatPVS - FN_SetFatPVS, -#else - NULL, -#endif -#ifdef FN_SetFatPAS - FN_SetFatPAS, -#else - NULL, -#endif -#ifdef FN_CheckVisibility - FN_CheckVisibility, -#else - NULL, -#endif -#ifdef FN_DeltaSetField - FN_DeltaSetField, -#else - NULL, -#endif -#ifdef FN_DeltaUnsetField - FN_DeltaUnsetField, -#else - NULL, -#endif -#ifdef FN_DeltaAddEncoder - FN_DeltaAddEncoder, -#else - NULL, -#endif -#ifdef FN_GetCurrentPlayer - FN_GetCurrentPlayer, -#else - NULL, -#endif -#ifdef FN_CanSkipPlayer - FN_CanSkipPlayer, -#else - NULL, -#endif -#ifdef FN_DeltaFindField - FN_DeltaFindField, -#else - NULL, -#endif -#ifdef FN_DeltaSetFieldByIndex - FN_DeltaSetFieldByIndex, -#else - NULL, -#endif -#ifdef FN_DeltaUnsetFieldByIndex - FN_DeltaUnsetFieldByIndex, -#else - NULL, -#endif -#ifdef FN_SetGroupMask - FN_SetGroupMask, -#else - NULL, -#endif -#ifdef FN_engCreateInstancedBaseline - FN_engCreateInstancedBaseline, -#else - NULL, -#endif -#ifdef FN_Cvar_DirectSet - FN_Cvar_DirectSet, -#else - NULL, -#endif -#ifdef FN_ForceUnmodified - FN_ForceUnmodified, -#else - NULL, -#endif -#ifdef FN_GetPlayerStats - FN_GetPlayerStats, -#else - NULL, -#endif -#ifdef FN_AddServerCommand - FN_AddServerCommand, -#else - NULL, -#endif -#ifdef FN_Voice_GetClientListening - FN_Voice_GetClientListening, -#else - NULL, -#endif -#ifdef FN_Voice_SetClientListening - FN_Voice_SetClientListening, -#else - NULL, -#endif -#ifdef FN_GetPlayerAuthId - FN_GetPlayerAuthId -#else - NULL -#endif -}; // g_EngineFuncs_Table - - -static enginefuncs_t g_EngineFuncs_Post_Table = -{ -#ifdef FN_PrecacheModel_Post - FN_PrecacheModel_Post, -#else - NULL, -#endif -#ifdef FN_PrecacheSound_Post - FN_PrecacheSound_Post, -#else - NULL, -#endif -#ifdef FN_SetModel_Post - FN_SetModel_Post, -#else - NULL, -#endif -#ifdef FN_ModelIndex_Post - FN_ModelIndex_Post, -#else - NULL, -#endif -#ifdef FN_ModelFrames_Post - FN_ModelFrames_Post, -#else - NULL, -#endif -#ifdef FN_SetSize_Post - FN_SetSize_Post, -#else - NULL, -#endif -#ifdef FN_ChangeLevel_Post - FN_ChangeLevel_Post, -#else - NULL, -#endif -#ifdef FN_GetSpawnParms_Post - FN_GetSpawnParms_Post, -#else - NULL, -#endif -#ifdef FN_SaveSpawnParms_Post - FN_SaveSpawnParms_Post, -#else - NULL, -#endif -#ifdef FN_VecToYaw_Post - FN_VecToYaw_Post, -#else - NULL, -#endif -#ifdef FN_VecToAngles_Post - FN_VecToAngles_Post, -#else - NULL, -#endif -#ifdef FN_MoveToOrigin_Post - FN_MoveToOrigin_Post, -#else - NULL, -#endif -#ifdef FN_ChangeYaw_Post - FN_ChangeYaw_Post, -#else - NULL, -#endif -#ifdef FN_ChangePitch_Post - FN_ChangePitch_Post, -#else - NULL, -#endif -#ifdef FN_FindEntityByString_Post - FN_FindEntityByString_Post, -#else - NULL, -#endif -#ifdef FN_GetEntityIllum_Post - FN_GetEntityIllum_Post, -#else - NULL, -#endif -#ifdef FN_FindEntityInSphere_Post - FN_FindEntityInSphere_Post, -#else - NULL, -#endif -#ifdef FN_FindClientInPVS_Post - FN_FindClientInPVS_Post, -#else - NULL, -#endif -#ifdef FN_EntitiesInPVS_Post - FN_EntitiesInPVS_Post, -#else - NULL, -#endif -#ifdef FN_MakeVectors_Post - FN_MakeVectors_Post, -#else - NULL, -#endif -#ifdef FN_AngleVectors_Post - FN_AngleVectors_Post, -#else - NULL, -#endif -#ifdef FN_CreateEntity_Post - FN_CreateEntity_Post, -#else - NULL, -#endif -#ifdef FN_RemoveEntity_Post - FN_RemoveEntity_Post, -#else - NULL, -#endif -#ifdef FN_CreateNamedEntity_Post - FN_CreateNamedEntity_Post, -#else - NULL, -#endif -#ifdef FN_MakeStatic_Post - FN_MakeStatic_Post, -#else - NULL, -#endif -#ifdef FN_EntIsOnFloor_Post - FN_EntIsOnFloor_Post, -#else - NULL, -#endif -#ifdef FN_DropToFloor_Post - FN_DropToFloor_Post, -#else - NULL, -#endif -#ifdef FN_WalkMove_Post - FN_WalkMove_Post, -#else - NULL, -#endif -#ifdef FN_SetOrigin_Post - FN_SetOrigin_Post, -#else - NULL, -#endif -#ifdef FN_EmitSound_Post - FN_EmitSound_Post, -#else - NULL, -#endif -#ifdef FN_EmitAmbientSound_Post - FN_EmitAmbientSound_Post, -#else - NULL, -#endif -#ifdef FN_TraceLine_Post - FN_TraceLine_Post, -#else - NULL, -#endif -#ifdef FN_TraceToss_Post - FN_TraceToss_Post, -#else - NULL, -#endif -#ifdef FN_TraceMonsterHull_Post - FN_TraceMonsterHull_Post, -#else - NULL, -#endif -#ifdef FN_TraceHull_Post - FN_TraceHull_Post, -#else - NULL, -#endif -#ifdef FN_TraceModel_Post - FN_TraceModel_Post, -#else - NULL, -#endif -#ifdef FN_TraceTexture_Post - FN_TraceTexture_Post, -#else - NULL, -#endif -#ifdef FN_TraceSphere_Post - FN_TraceSphere_Post, -#else - NULL, -#endif -#ifdef FN_GetAimVector_Post - FN_GetAimVector_Post, -#else - NULL, -#endif -#ifdef FN_ServerCommand_Post - FN_ServerCommand_Post, -#else - NULL, -#endif -#ifdef FN_ServerExecute_Post - FN_ServerExecute_Post, -#else - NULL, -#endif -#ifdef FN_engClientCommand_Post - FN_engClientCommand_Post, -#else - NULL, -#endif -#ifdef FN_ParticleEffect_Post - FN_ParticleEffect_Post, -#else - NULL, -#endif -#ifdef FN_LightStyle_Post - FN_LightStyle_Post, -#else - NULL, -#endif -#ifdef FN_DecalIndex_Post - FN_DecalIndex_Post, -#else - NULL, -#endif -#ifdef FN_PointContents_Post - FN_PointContents_Post, -#else - NULL, -#endif -#ifdef FN_MessageBegin_Post - FN_MessageBegin_Post, -#else - NULL, -#endif -#ifdef FN_MessageEnd_Post - FN_MessageEnd_Post, -#else - NULL, -#endif -#ifdef FN_WriteByte_Post - FN_WriteByte_Post, -#else - NULL, -#endif -#ifdef FN_WriteChar_Post - FN_WriteChar_Post, -#else - NULL, -#endif -#ifdef FN_WriteShort_Post - FN_WriteShort_Post, -#else - NULL, -#endif -#ifdef FN_WriteLong_Post - FN_WriteLong_Post, -#else - NULL, -#endif -#ifdef FN_WriteAngle_Post - FN_WriteAngle_Post, -#else - NULL, -#endif -#ifdef FN_WriteCoord_Post - FN_WriteCoord_Post, -#else - NULL, -#endif -#ifdef FN_WriteString_Post - FN_WriteString_Post, -#else - NULL, -#endif -#ifdef FN_WriteEntity_Post - FN_WriteEntity_Post, -#else - NULL, -#endif -#ifdef FN_CVarRegister_Post - FN_CVarRegister_Post, -#else - NULL, -#endif -#ifdef FN_CVarGetFloat_Post - FN_CVarGetFloat_Post, -#else - NULL, -#endif -#ifdef FN_CVarGetString_Post - FN_CVarGetString_Post, -#else - NULL, -#endif -#ifdef FN_CVarSetFloat_Post - FN_CVarSetFloat_Post, -#else - NULL, -#endif -#ifdef FN_CVarSetString_Post - FN_CVarSetString_Post, -#else - NULL, -#endif -#ifdef FN_AlertMessage_Post - FN_AlertMessage_Post, -#else - NULL, -#endif -#ifdef FN_EngineFprintf_Post - FN_EngineFprintf_Post, -#else - NULL, -#endif -#ifdef FN_PvAllocEntPrivateData_Post - FN_PvAllocEntPrivateData_Post, -#else - NULL, -#endif -#ifdef FN_PvEntPrivateData_Post - FN_PvEntPrivateData_Post, -#else - NULL, -#endif -#ifdef FN_FreeEntPrivateData_Post - FN_FreeEntPrivateData_Post, -#else - NULL, -#endif -#ifdef FN_SzFromIndex_Post - FN_SzFromIndex_Post, -#else - NULL, -#endif -#ifdef FN_AllocString_Post - FN_AllocString_Post, -#else - NULL, -#endif -#ifdef FN_GetVarsOfEnt_Post - FN_GetVarsOfEnt_Post, -#else - NULL, -#endif -#ifdef FN_PEntityOfEntOffset_Post - FN_PEntityOfEntOffset_Post, -#else - NULL, -#endif -#ifdef FN_EntOffsetOfPEntity_Post - FN_EntOffsetOfPEntity_Post, -#else - NULL, -#endif -#ifdef FN_IndexOfEdict_Post - FN_IndexOfEdict_Post, -#else - NULL, -#endif -#ifdef FN_PEntityOfEntIndex_Post - FN_PEntityOfEntIndex_Post, -#else - NULL, -#endif -#ifdef FN_FindEntityByVars_Post - FN_FindEntityByVars_Post, -#else - NULL, -#endif -#ifdef FN_GetModelPtr_Post - FN_GetModelPtr_Post, -#else - NULL, -#endif -#ifdef FN_RegUserMsg_Post - FN_RegUserMsg_Post, -#else - NULL, -#endif -#ifdef FN_AnimationAutomove_Post - FN_AnimationAutomove_Post, -#else - NULL, -#endif -#ifdef FN_GetBonePosition_Post - FN_GetBonePosition_Post, -#else - NULL, -#endif -#ifdef FN_FunctionFromName_Post - FN_FunctionFromName_Post, -#else - NULL, -#endif -#ifdef FN_NameForFunction_Post - FN_NameForFunction_Post, -#else - NULL, -#endif -#ifdef FN_ClientPrintf_Post - FN_ClientPrintf_Post, -#else - NULL, -#endif -#ifdef FN_ServerPrint_Post - FN_ServerPrint_Post, -#else - NULL, -#endif -#ifdef FN_Cmd_Args_Post - FN_Cmd_Args_Post, -#else - NULL, -#endif -#ifdef FN_Cmd_Argv_Post - FN_Cmd_Argv_Post, -#else - NULL, -#endif -#ifdef FN_Cmd_Argc_Post - FN_Cmd_Argc_Post, -#else - NULL, -#endif -#ifdef FN_GetAttachment_Post - FN_GetAttachment_Post, -#else - NULL, -#endif -#ifdef FN_CRC32_Init_Post - FN_CRC32_Init_Post, -#else - NULL, -#endif -#ifdef FN_CRC32_ProcessBuffer_Post - FN_CRC32_ProcessBuffer_Post, -#else - NULL, -#endif -#ifdef FN_CRC32_ProcessByte_Post - FN_CRC32_ProcessByte_Post, -#else - NULL, -#endif -#ifdef FN_CRC32_Final_Post - FN_CRC32_Final_Post, -#else - NULL, -#endif -#ifdef FN_RandomLong_Post - FN_RandomLong_Post, -#else - NULL, -#endif -#ifdef FN_RandomFloat_Post - FN_RandomFloat_Post, -#else - NULL, -#endif -#ifdef FN_SetView_Post - FN_SetView_Post, -#else - NULL, -#endif -#ifdef FN_Time_Post - FN_Time_Post, -#else - NULL, -#endif -#ifdef FN_CrosshairAngle_Post - FN_CrosshairAngle_Post, -#else - NULL, -#endif -#ifdef FN_LoadFileForMe_Post - FN_LoadFileForMe_Post, -#else - NULL, -#endif -#ifdef FN_FreeFile_Post - FN_FreeFile_Post, -#else - NULL, -#endif -#ifdef FN_EndSection_Post - FN_EndSection_Post, -#else - NULL, -#endif -#ifdef FN_CompareFileTime_Post - FN_CompareFileTime_Post, -#else - NULL, -#endif -#ifdef FN_GetGameDir_Post - FN_GetGameDir_Post, -#else - NULL, -#endif -#ifdef FN_Cvar_RegisterVariable_Post - FN_Cvar_RegisterVariable_Post, -#else - NULL, -#endif -#ifdef FN_FadeClientVolume_Post - FN_FadeClientVolume_Post, -#else - NULL, -#endif -#ifdef FN_SetClientMaxspeed_Post - FN_SetClientMaxspeed_Post, -#else - NULL, -#endif -#ifdef FN_CreateFakeClient_Post - FN_CreateFakeClient_Post, -#else - NULL, -#endif -#ifdef FN_RunPlayerMove_Post - FN_RunPlayerMove_Post, -#else - NULL, -#endif -#ifdef FN_NumberOfEntities_Post - FN_NumberOfEntities_Post, -#else - NULL, -#endif -#ifdef FN_GetInfoKeyBuffer_Post - FN_GetInfoKeyBuffer_Post, -#else - NULL, -#endif -#ifdef FN_InfoKeyValue_Post - FN_InfoKeyValue_Post, -#else - NULL, -#endif -#ifdef FN_SetKeyValue_Post - FN_SetKeyValue_Post, -#else - NULL, -#endif -#ifdef FN_SetClientKeyValue_Post - FN_SetClientKeyValue_Post, -#else - NULL, -#endif -#ifdef FN_IsMapValid_Post - FN_IsMapValid_Post, -#else - NULL, -#endif -#ifdef FN_StaticDecal_Post - FN_StaticDecal_Post, -#else - NULL, -#endif -#ifdef FN_PrecacheGeneric_Post - FN_PrecacheGeneric_Post, -#else - NULL, -#endif -#ifdef FN_GetPlayerUserId_Post - FN_GetPlayerUserId_Post, -#else - NULL, -#endif -#ifdef FN_BuildSoundMsg_Post - FN_BuildSoundMsg_Post, -#else - NULL, -#endif -#ifdef FN_IsDedicatedServer_Post - FN_IsDedicatedServer_Post, -#else - NULL, -#endif -#ifdef FN_CVarGetPointer_Post - FN_CVarGetPointer_Post, -#else - NULL, -#endif -#ifdef FN_GetPlayerWONId_Post - FN_GetPlayerWONId_Post, -#else - NULL, -#endif -#ifdef FN_Info_RemoveKey_Post - FN_Info_RemoveKey_Post, -#else - NULL, -#endif -#ifdef FN_GetPhysicsKeyValue_Post - FN_GetPhysicsKeyValue_Post, -#else - NULL, -#endif -#ifdef FN_SetPhysicsKeyValue_Post - FN_SetPhysicsKeyValue_Post, -#else - NULL, -#endif -#ifdef FN_GetPhysicsInfoString_Post - FN_GetPhysicsInfoString_Post, -#else - NULL, -#endif -#ifdef FN_PrecacheEvent_Post - FN_PrecacheEvent_Post, -#else - NULL, -#endif -#ifdef FN_PlaybackEvent_Post - FN_PlaybackEvent_Post, -#else - NULL, -#endif -#ifdef FN_SetFatPVS_Post - FN_SetFatPVS_Post, -#else - NULL, -#endif -#ifdef FN_SetFatPAS_Post - FN_SetFatPAS_Post, -#else - NULL, -#endif -#ifdef FN_CheckVisibility_Post - FN_CheckVisibility_Post, -#else - NULL, -#endif -#ifdef FN_DeltaSetField_Post - FN_DeltaSetField_Post, -#else - NULL, -#endif -#ifdef FN_DeltaUnsetField_Post - FN_DeltaUnsetField_Post, -#else - NULL, -#endif -#ifdef FN_DeltaAddEncoder_Post - FN_DeltaAddEncoder_Post, -#else - NULL, -#endif -#ifdef FN_GetCurrentPlayer_Post - FN_GetCurrentPlayer_Post, -#else - NULL, -#endif -#ifdef FN_CanSkipPlayer_Post - FN_CanSkipPlayer_Post, -#else - NULL, -#endif -#ifdef FN_DeltaFindField_Post - FN_DeltaFindField_Post, -#else - NULL, -#endif -#ifdef FN_DeltaSetFieldByIndex_Post - FN_DeltaSetFieldByIndex_Post, -#else - NULL, -#endif -#ifdef FN_DeltaUnsetFieldByIndex_Post - FN_DeltaUnsetFieldByIndex_Post, -#else - NULL, -#endif -#ifdef FN_SetGroupMask_Post - FN_SetGroupMask_Post, -#else - NULL, -#endif -#ifdef FN_engCreateInstancedBaseline_Post - FN_engCreateInstancedBaseline_Post, -#else - NULL, -#endif -#ifdef FN_Cvar_DirectSet_Post - FN_Cvar_DirectSet_Post, -#else - NULL, -#endif -#ifdef FN_ForceUnmodified_Post - FN_ForceUnmodified_Post, -#else - NULL, -#endif -#ifdef FN_GetPlayerStats_Post - FN_GetPlayerStats_Post, -#else - NULL, -#endif -#ifdef FN_AddServerCommand_Post - FN_AddServerCommand_Post, -#else - NULL, -#endif -#ifdef FN_Voice_GetClientListening_Post - FN_Voice_GetClientListening_Post, -#else - NULL, -#endif -#ifdef FN_Voice_SetClientListening_Post - FN_Voice_SetClientListening_Post, -#else - NULL, -#endif -#ifdef FN_GetPlayerAuthId_Post - FN_GetPlayerAuthId_Post -#else - NULL -#endif -}; // g_EngineFuncs_Post_Table - - -static NEW_DLL_FUNCTIONS g_NewFuncs_Table = -{ -#ifdef FN_OnFreeEntPrivateData - FN_OnFreeEntPrivateData, -#else - NULL, -#endif -#ifdef FN_GameShutdown - FN_GameShutdown, -#else - NULL, -#endif -#ifdef FN_ShouldCollide - ShouldCollide, -#else - NULL, -#endif -}; - - -static NEW_DLL_FUNCTIONS g_NewFuncs_Post_Table = -{ -#ifdef FN_OnFreeEntPrivateData_Post - FN_OnFreeEntPrivateData_Post, -#else - NULL, -#endif -#ifdef FN_GameShutdown_Post - FN_GameShutdown_Post, -#else - NULL, -#endif -#ifdef FN_ShouldCollide_Post - ShouldCollide_Post, -#else - NULL, -#endif -}; - -// Global variables from metamod. These variable names are referenced by -// various macros. -meta_globals_t *gpMetaGlobals; // metamod globals -gamedll_funcs_t *gpGamedllFuncs; // gameDLL function tables -mutil_funcs_t *gpMetaUtilFuncs; // metamod utility functions - - -plugin_info_t Plugin_info = { - META_INTERFACE_VERSION, - MODULE_NAME, - MODULE_VERSION, - MODULE_DATE, - MODULE_AUTHOR, - MODULE_URL, - MODULE_LOGTAG, - PT_ANYTIME, - PT_ANYTIME -}; - -/* -C_DLLEXPORT int GetEntityAPI(DLL_FUNCTIONS *pFunctionTable, int interfaceVersion) -{ - LOG_DEVELOPER(PLID, "called: GetEntityAPI; version=%d", interfaceVersion); - if(!pFunctionTable) { - LOG_ERROR(PLID, "GetEntityAPI called with null pFunctionTable"); - return(FALSE); - } - else if(interfaceVersion != INTERFACE_VERSION) { - LOG_ERROR(PLID, "GetEntityAPI version mismatch; requested=%d ours=%d", interfaceVersion, INTERFACE_VERSION); - return(FALSE); - } - memcpy(pFunctionTable, &g_EntityAPI_Table, sizeof( DLL_FUNCTIONS ) ); - - return (TRUE); -} - -C_DLLEXPORT int GetEntityAPI_Post(DLL_FUNCTIONS *pFunctionTable, int interfaceVersion) -{ - LOG_DEVELOPER(PLID, "called: GetEntityAPI_Post; version=%d", interfaceVersion); - if(!pFunctionTable) { - LOG_ERROR(PLID, "GetEntityAPI_Post called with null pFunctionTable"); - return(FALSE); - } - else if(interfaceVersion != INTERFACE_VERSION) { - LOG_ERROR(PLID, "GetEntityAPI_Post version mismatch; requested=%d ours=%d", interfaceVersion, INTERFACE_VERSION); - return(FALSE); - } - memcpy(pFunctionTable, &g_EntityAPI_Post_Table, sizeof( DLL_FUNCTIONS ) ); - - return(TRUE); -} -*/ - -C_DLLEXPORT int GetEntityAPI2(DLL_FUNCTIONS *pFunctionTable, int *interfaceVersion) -{ - LOG_DEVELOPER(PLID, "called: GetEntityAPI2; version=%d", *interfaceVersion); - if(!pFunctionTable) { - LOG_ERROR(PLID, "GetEntityAPI2 called with null pFunctionTable"); - return(FALSE); - } - else if(*interfaceVersion != INTERFACE_VERSION) { - LOG_ERROR(PLID, - "GetEntityAPI2 version mismatch; requested=%d ours=%d", - *interfaceVersion, INTERFACE_VERSION); - //! Tell engine what version we had, so it can figure out who is - //! out of date. - *interfaceVersion = INTERFACE_VERSION; - return(FALSE); - } - memcpy(pFunctionTable, &g_EntityAPI_Table, sizeof(DLL_FUNCTIONS)); - g_pFunctionTable=pFunctionTable; - return(TRUE); -} - -C_DLLEXPORT int GetEntityAPI2_Post(DLL_FUNCTIONS *pFunctionTable, int *interfaceVersion) -{ - LOG_DEVELOPER(PLID, "called: GetEntityAPI2_Post; version=%d", *interfaceVersion); - if(!pFunctionTable) { - LOG_ERROR(PLID, "GetEntityAPI2_Post called with null pFunctionTable"); - return(FALSE); - } - else if(*interfaceVersion != INTERFACE_VERSION) { - LOG_ERROR(PLID, "GetEntityAPI2_Post version mismatch; requested=%d ours=%d", *interfaceVersion, INTERFACE_VERSION); - //! Tell engine what version we had, so it can figure out who is out of date. - *interfaceVersion = INTERFACE_VERSION; - return(FALSE); - } - memcpy( pFunctionTable, &g_EntityAPI_Post_Table, sizeof( DLL_FUNCTIONS ) ); - g_pFunctionTable_Post=pFunctionTable; - return(TRUE); -} - -C_DLLEXPORT int GetEngineFunctions(enginefuncs_t *pengfuncsFromEngine, int *interfaceVersion) -{ - LOG_DEVELOPER(PLID, "called: GetEngineFunctions; version=%d", - *interfaceVersion); - if(!pengfuncsFromEngine) { - LOG_ERROR(PLID, - "GetEngineFunctions called with null pengfuncsFromEngine"); - return(FALSE); - } - else if(*interfaceVersion != ENGINE_INTERFACE_VERSION) { - LOG_ERROR(PLID, - "GetEngineFunctions version mismatch; requested=%d ours=%d", - *interfaceVersion, ENGINE_INTERFACE_VERSION); - // Tell metamod what version we had, so it can figure out who is - // out of date. - *interfaceVersion = ENGINE_INTERFACE_VERSION; - return(FALSE); - } - memcpy(pengfuncsFromEngine, &g_EngineFuncs_Table, sizeof(enginefuncs_t)); - g_pengfuncsTable=pengfuncsFromEngine; - return TRUE; -} - -C_DLLEXPORT int GetEngineFunctions_Post(enginefuncs_t *pengfuncsFromEngine, int *interfaceVersion) -{ - LOG_DEVELOPER(PLID, "called: GetEngineFunctions_Post; version=%d", *interfaceVersion); - if(!pengfuncsFromEngine) { - LOG_ERROR(PLID, "GetEngineFunctions_Post called with null pengfuncsFromEngine"); - return(FALSE); - } - else if(*interfaceVersion != ENGINE_INTERFACE_VERSION) { - LOG_ERROR(PLID, "GetEngineFunctions_Post version mismatch; requested=%d ours=%d", *interfaceVersion, ENGINE_INTERFACE_VERSION); - // Tell metamod what version we had, so it can figure out who is out of date. - *interfaceVersion = ENGINE_INTERFACE_VERSION; - return(FALSE); - } - memcpy(pengfuncsFromEngine, &g_EngineFuncs_Post_Table, sizeof(enginefuncs_t)); - g_pengfuncsTable_Post=pengfuncsFromEngine; - return TRUE; - -} - -C_DLLEXPORT int GetNewDLLFunctions(NEW_DLL_FUNCTIONS *pNewFunctionTable, - int *interfaceVersion) -{ - LOG_DEVELOPER(PLID, "called: GetNewDLLFunctions; version=%d", - *interfaceVersion); - if(!pNewFunctionTable) { - LOG_ERROR(PLID, - "GetNewDLLFunctions called with null pNewFunctionTable"); - return(FALSE); - } - else if(*interfaceVersion != NEW_DLL_FUNCTIONS_VERSION) { - LOG_ERROR(PLID, - "GetNewDLLFunctions version mismatch; requested=%d ours=%d", - *interfaceVersion, NEW_DLL_FUNCTIONS_VERSION); - //! Tell engine what version we had, so it can figure out who is - //! out of date. - *interfaceVersion = NEW_DLL_FUNCTIONS_VERSION; - return(FALSE); - } - memcpy(pNewFunctionTable, &g_NewFuncs_Table, sizeof(NEW_DLL_FUNCTIONS)); - g_pNewFunctionsTable=pNewFunctionTable; - return TRUE; -} - -C_DLLEXPORT int GetNewDLLFunctions_Post( NEW_DLL_FUNCTIONS *pNewFunctionTable, int *interfaceVersion ) -{ - LOG_DEVELOPER(PLID, "called: GetNewDLLFunctions_Post; version=%d", *interfaceVersion); - if(!pNewFunctionTable) { - LOG_ERROR(PLID, "GetNewDLLFunctions_Post called with null pNewFunctionTable"); - return(FALSE); - } - else if(*interfaceVersion != NEW_DLL_FUNCTIONS_VERSION) { - LOG_ERROR(PLID, "GetNewDLLFunctions_Post version mismatch; requested=%d ours=%d", *interfaceVersion, NEW_DLL_FUNCTIONS_VERSION); - //! Tell engine what version we had, so it can figure out who is out of date. - *interfaceVersion = NEW_DLL_FUNCTIONS_VERSION; - return(FALSE); - } - memcpy(pNewFunctionTable, &g_NewFuncs_Post_Table, sizeof(NEW_DLL_FUNCTIONS)); - g_pNewFunctionsTable_Post=pNewFunctionTable; - return TRUE; -} - - -static META_FUNCTIONS g_MetaFunctions_Table = -{ - NULL, - NULL, - GetEntityAPI2, - GetEntityAPI2_Post, - GetNewDLLFunctions, - GetNewDLLFunctions_Post, - GetEngineFunctions, - GetEngineFunctions_Post -}; - -C_DLLEXPORT int Meta_Query(char *ifvers, plugin_info_t **pPlugInfo, mutil_funcs_t *pMetaUtilFuncs) -{ - if ((int) CVAR_GET_FLOAT("developer") != 0) - UTIL_LogPrintf("[%s] dev: called: Meta_Query; version=%s, ours=%s\n", - Plugin_info.logtag, ifvers, Plugin_info.ifvers); - - // Check for valid pMetaUtilFuncs before we continue. - if(!pMetaUtilFuncs) { - UTIL_LogPrintf("[%s] ERROR: Meta_Query called with null pMetaUtilFuncs\n", Plugin_info.logtag); - return(FALSE); - } - - gpMetaUtilFuncs = pMetaUtilFuncs; - - *pPlugInfo = &Plugin_info; - - // Check for interface version compatibility. - if(!FStrEq(ifvers, Plugin_info.ifvers)) { - int mmajor=0, mminor=0, pmajor=0, pminor=0; - LOG_MESSAGE(PLID, "WARNING: meta-interface version mismatch; requested=%s ours=%s", - Plugin_info.logtag, ifvers); - // If plugin has later interface version, it's incompatible (update - // metamod). - sscanf(ifvers, "%d:%d", &mmajor, &mminor); - sscanf(META_INTERFACE_VERSION, "%d:%d", &pmajor, &pminor); - if(pmajor > mmajor || (pmajor==mmajor && pminor > mminor)) { - LOG_ERROR(PLID, "metamod version is too old for this module; update metamod"); - return(FALSE); - } - // If plugin has older major interface version, it's incompatible - // (update plugin). - else if(pmajor < mmajor) { - LOG_ERROR(PLID, "metamod version is incompatible with this module; please find a newer version of this module"); - return(FALSE); - } - // Minor interface is older, but this is guaranteed to be backwards - // compatible, so we warn, but we still accept it. - else if(pmajor==mmajor && pminor < mminor) - LOG_MESSAGE(PLID, "WARNING: metamod version is newer than expected; consider finding a newer version of this module"); - else - LOG_ERROR(PLID, "unexpected version comparison; metavers=%s, mmajor=%d, mminor=%d; plugvers=%s, pmajor=%d, pminor=%d", ifvers, mmajor, mminor, META_INTERFACE_VERSION, pmajor, pminor); - } - -#ifdef FN_META_QUERY - return FN_META_QUERY(); -#endif // FN_META_QUERY - - return 1; -} - - -C_DLLEXPORT int Meta_Attach(PLUG_LOADTIME now, META_FUNCTIONS *pFunctionTable, meta_globals_t *pMGlobals, gamedll_funcs_t *pGamedllFuncs) -{ - if(now > Plugin_info.loadable) { - LOG_ERROR(PLID, "Can't load module right now"); - return(FALSE); - } - if(!pMGlobals) { - LOG_ERROR(PLID, "Meta_Attach called with null pMGlobals"); - return(FALSE); - } - gpMetaGlobals=pMGlobals; - if(!pFunctionTable) { - LOG_ERROR(PLID, "Meta_Attach called with null pFunctionTable"); - return(FALSE); - } - - memcpy(pFunctionTable, &g_MetaFunctions_Table, sizeof(META_FUNCTIONS)); - gpGamedllFuncs=pGamedllFuncs; - - // Let's go. - -#ifdef FN_META_ATTACH - FN_META_ATTACH(); -#endif // FN_META_ATTACH - - return TRUE; -} - -C_DLLEXPORT int Meta_Detach(PLUG_LOADTIME now, PL_UNLOAD_REASON reason) -{ - if(now > Plugin_info.unloadable && reason != PNL_CMD_FORCED) { - LOG_ERROR(PLID, "Can't unload plugin right now"); - return(FALSE); - } - -#ifdef FN_META_DETACH - return FN_META_DETACH(); -#endif // FN_META_DETACH - return TRUE; -} - - - -#ifdef __linux__ -// linux prototype -C_DLLEXPORT void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals ) { - -#else -#ifdef _MSC_VER -// MSVC: Simulate __stdcall calling convention -C_DLLEXPORT __declspec(naked) void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals ) -{ - __asm // Prolog - { - // Save ebp - push ebp - // Set stack frame pointer - mov ebp, esp - // Allocate space for local variables - // The MSVC compiler gives us the needed size in __LOCAL_SIZE. - sub esp, __LOCAL_SIZE - // Push registers - push ebx - push esi - push edi - } -#else // _MSC_VER -#ifdef __GNUC__ -// GCC can also work with this -C_DLLEXPORT void __stdcall GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals ) -{ -#else // __GNUC__ -// compiler not known -#error There is no support (yet) for your compiler. Please use MSVC or GCC compilers or contact the AMX Mod X dev team. -#endif // __GNUC__ -#endif // _MSC_VER -#endif // __linux__ - - // ** Function core <-- - memcpy(&g_engfuncs, pengfuncsFromEngine, sizeof(enginefuncs_t)); - gpGlobals = pGlobals; - // NOTE! Have to call logging function _after_ copying into g_engfuncs, so - // that g_engfuncs.pfnAlertMessage() can be resolved properly, heh. :) - UTIL_LogPrintf("[%s] dev: called: GiveFnptrsToDll\n", Plugin_info.logtag); - // --> ** Function core - -#ifdef _MSC_VER - // Epilog - if (sizeof(int*) == 8) - { // 64 bit - __asm - { - // Pop registers - pop edi - pop esi - pop ebx - // Restore stack frame pointer - mov esp, ebp - // Restore ebp - pop ebp - // 2 * sizeof(int*) = 16 on 64 bit - ret 16 - } - } - else - { // 32 bit - __asm - { - // Pop registers - pop edi - pop esi - pop ebx - // Restore stack frame pointer - mov esp, ebp - // Restore ebp - pop ebp - // 2 * sizeof(int*) = 8 on 32 bit - ret 8 - } - } -#endif // #ifdef _MSC_VER -} - -#endif // #ifdef USE_METAMOD - -/************* AMXX Stuff *************/ - -// *** Globals *** -// Module info -static amxx_module_info_s g_ModuleInfo = -{ - MODULE_NAME, - MODULE_AUTHOR, - MODULE_VERSION, -#ifdef MODULE_RELOAD_ON_MAPCHANGE - 1, -#else // MODULE_RELOAD_ON_MAPCHANGE - 0, -#endif // MODULE_RELOAD_ON_MAPCHANGE - MODULE_LOGTAG -}; - -// Storage for the requested functions -PFN_ADD_NATIVES g_fn_AddNatives; -PFN_BUILD_PATHNAME g_fn_BuildPathname; -PFN_BUILD_PATHNAME_R g_fn_BuildPathnameR; -PFN_GET_AMXADDR g_fn_GetAmxAddr; -PFN_PRINT_SRVCONSOLE g_fn_PrintSrvConsole; -PFN_GET_MODNAME g_fn_GetModname; -PFN_GET_AMXSCRIPTNAME g_fn_GetAmxScriptName; -PFN_GET_AMXSCRIPT g_fn_GetAmxScript; -PFN_FIND_AMXSCRIPT_BYAMX g_fn_FindAmxScriptByAmx; -PFN_FIND_AMXSCRIPT_BYNAME g_fn_FindAmxScriptByName; -PFN_SET_AMXSTRING g_fn_SetAmxString; -PFN_GET_AMXSTRING g_fn_GetAmxString; -PFN_GET_AMXSTRINGLEN g_fn_GetAmxStringLen; -PFN_FORMAT_AMXSTRING g_fn_FormatAmxString; -PFN_COPY_AMXMEMORY g_fn_CopyAmxMemory; -PFN_LOG g_fn_Log; -PFN_LOG_ERROR g_fn_LogErrorFunc; -PFN_RAISE_AMXERROR g_fn_RaiseAmxError; -PFN_REGISTER_FORWARD g_fn_RegisterForward; -PFN_EXECUTE_FORWARD g_fn_ExecuteForward; -PFN_PREPARE_CELLARRAY g_fn_PrepareCellArray; -PFN_PREPARE_CHARARRAY g_fn_PrepareCharArray; -PFN_PREPARE_CELLARRAY_A g_fn_PrepareCellArrayA; -PFN_PREPARE_CHARARRAY_A g_fn_PrepareCharArrayA; -PFN_IS_PLAYER_VALID g_fn_IsPlayerValid; -PFN_GET_PLAYER_NAME g_fn_GetPlayerName; -PFN_GET_PLAYER_IP g_fn_GetPlayerIP; -PFN_IS_PLAYER_INGAME g_fn_IsPlayerIngame; -PFN_IS_PLAYER_BOT g_fn_IsPlayerBot; -PFN_IS_PLAYER_AUTHORIZED g_fn_IsPlayerAuthorized; -PFN_GET_PLAYER_TIME g_fn_GetPlayerTime; -PFN_GET_PLAYER_PLAYTIME g_fn_GetPlayerPlayTime; -PFN_GET_PLAYER_CURWEAPON g_fn_GetPlayerCurweapon; -PFN_GET_PLAYER_TEAM g_fn_GetPlayerTeam; -PFN_GET_PLAYER_TEAMID g_fn_GetPlayerTeamID; -PFN_GET_PLAYER_DEATHS g_fn_GetPlayerDeaths; -PFN_GET_PLAYER_MENU g_fn_GetPlayerMenu; -PFN_GET_PLAYER_KEYS g_fn_GetPlayerKeys; -PFN_IS_PLAYER_ALIVE g_fn_IsPlayerAlive; -PFN_GET_PLAYER_FRAGS g_fn_GetPlayerFrags; -PFN_IS_PLAYER_CONNECTING g_fn_IsPlayerConnecting; -PFN_IS_PLAYER_HLTV g_fn_IsPlayerHLTV; -PFN_GET_PLAYER_ARMOR g_fn_GetPlayerArmor; -PFN_GET_PLAYER_HEALTH g_fn_GetPlayerHealth; -#ifdef MEMORY_TEST -PFN_ALLOCATOR g_fn_Allocator; -PFN_REALLOCATOR g_fn_Reallocator; -PFN_DEALLOCATOR g_fn_Deallocator; -#endif -PFN_AMX_EXEC g_fn_AmxExec; -PFN_AMX_EXECV g_fn_AmxExecv; -PFN_AMX_ALLOT g_fn_AmxAllot; -PFN_AMX_FINDPUBLIC g_fn_AmxFindPublic; -PFN_LOAD_AMXSCRIPT g_fn_LoadAmxScript; -PFN_UNLOAD_AMXSCRIPT g_fn_UnloadAmxScript; -PFN_REAL_TO_CELL g_fn_RealToCell; -PFN_CELL_TO_REAL g_fn_CellToReal; -PFN_REGISTER_SPFORWARD g_fn_RegisterSPForward; -PFN_REGISTER_SPFORWARD_BYNAME g_fn_RegisterSPForwardByName; -PFN_UNREGISTER_SPFORWARD g_fn_UnregisterSPForward; -PFN_MERGEDEFINITION_FILE g_fn_MergeDefinition_File; -PFN_AMX_FINDNATIVE g_fn_AmxFindNative; -PFN_GETPLAYERFLAGS g_fn_GetPlayerFlags; -PFN_GET_PLAYER_EDICT g_fn_GetPlayerEdict; -PFN_FORMAT g_fn_Format; -PFN_REGISTERFUNCTION g_fn_RegisterFunction; -PFN_REQ_FNPTR g_fn_RequestFunction; -PFN_AMX_PUSH g_fn_AmxPush; -PFN_SET_TEAM_INFO g_fn_SetTeamInfo; -PFN_PLAYER_PROP_ADDR g_fn_PlayerPropAddr; -PFN_REG_AUTH_FUNC g_fn_RegAuthFunc; -PFN_UNREG_AUTH_FUNC g_fn_UnregAuthFunc; - -// *** Exports *** -C_DLLEXPORT int AMXX_Query(int *interfaceVersion, amxx_module_info_s *moduleInfo) -{ - // check parameters - if (!interfaceVersion || !moduleInfo) - return AMXX_PARAM; - - // check interface version - if (*interfaceVersion != AMXX_INTERFACE_VERSION) - { - // Tell amxx core our interface version - *interfaceVersion = AMXX_INTERFACE_VERSION; - return AMXX_IFVERS; - } - - // copy module info - memcpy(moduleInfo, &g_ModuleInfo, sizeof(amxx_module_info_s)); - -#ifdef FN_AMXX_QUERY - FN_AMXX_QUERY(); -#endif // FN_AMXX_QUERY - // Everything ok :) - return AMXX_OK; -} - -// request function -#define REQFUNC(name, fptr, type) if ((fptr = (type)reqFnptrFunc(name)) == 0) return AMXX_FUNC_NOT_PRESENT -// request optional function -#define REQFUNC_OPT(name, fptr, type) fptr = (type)reqFnptrFunc(name) - -C_DLLEXPORT int AMXX_Attach(PFN_REQ_FNPTR reqFnptrFunc) -{ - // Check pointer - if (!reqFnptrFunc) - return AMXX_PARAM; - - g_fn_RequestFunction = reqFnptrFunc; - - // Req all known functions - // Misc - REQFUNC("BuildPathname", g_fn_BuildPathname, PFN_BUILD_PATHNAME); - REQFUNC("BuildPathnameR", g_fn_BuildPathnameR, PFN_BUILD_PATHNAME_R); - REQFUNC("PrintSrvConsole", g_fn_PrintSrvConsole, PFN_PRINT_SRVCONSOLE); - REQFUNC("GetModname", g_fn_GetModname, PFN_GET_MODNAME); - REQFUNC("Log", g_fn_Log, PFN_LOG); - REQFUNC("LogError", g_fn_LogErrorFunc, PFN_LOG_ERROR); - REQFUNC("MergeDefinitionFile", g_fn_MergeDefinition_File, PFN_MERGEDEFINITION_FILE); - REQFUNC("Format", g_fn_Format, PFN_FORMAT); - REQFUNC("RegisterFunction", g_fn_RegisterFunction, PFN_REGISTERFUNCTION); - - // Amx scripts - REQFUNC("GetAmxScript", g_fn_GetAmxScript, PFN_GET_AMXSCRIPT); - REQFUNC("FindAmxScriptByAmx", g_fn_FindAmxScriptByAmx, PFN_FIND_AMXSCRIPT_BYAMX); - REQFUNC("FindAmxScriptByName", g_fn_FindAmxScriptByName, PFN_FIND_AMXSCRIPT_BYNAME); - REQFUNC("LoadAmxScript", g_fn_LoadAmxScript, PFN_LOAD_AMXSCRIPT); - REQFUNC("UnloadAmxScript", g_fn_UnloadAmxScript, PFN_UNLOAD_AMXSCRIPT); - REQFUNC("GetAmxScriptName", g_fn_GetAmxScriptName, PFN_GET_AMXSCRIPTNAME); - - // String / mem in amx scripts support - REQFUNC("SetAmxString", g_fn_SetAmxString, PFN_SET_AMXSTRING); - REQFUNC("GetAmxString", g_fn_GetAmxString, PFN_GET_AMXSTRING); - REQFUNC("GetAmxStringLen", g_fn_GetAmxStringLen, PFN_GET_AMXSTRINGLEN); - REQFUNC("FormatAmxString", g_fn_FormatAmxString, PFN_FORMAT_AMXSTRING); - REQFUNC("CopyAmxMemory", g_fn_CopyAmxMemory, PFN_COPY_AMXMEMORY); - REQFUNC("GetAmxAddr", g_fn_GetAmxAddr, PFN_GET_AMXADDR); - - REQFUNC("amx_Exec", g_fn_AmxExec, PFN_AMX_EXEC); - REQFUNC("amx_Execv", g_fn_AmxExecv, PFN_AMX_EXECV); - REQFUNC("amx_FindPublic", g_fn_AmxFindPublic, PFN_AMX_FINDPUBLIC); - REQFUNC("amx_Allot", g_fn_AmxAllot, PFN_AMX_ALLOT); - REQFUNC("amx_FindNative", g_fn_AmxFindNative, PFN_AMX_FINDNATIVE); - - // Natives / Forwards - REQFUNC("AddNatives", g_fn_AddNatives, PFN_ADD_NATIVES); - REQFUNC("RaiseAmxError", g_fn_RaiseAmxError, PFN_RAISE_AMXERROR); - REQFUNC("RegisterForward", g_fn_RegisterForward, PFN_REGISTER_FORWARD); - REQFUNC("RegisterSPForward", g_fn_RegisterSPForward, PFN_REGISTER_SPFORWARD); - REQFUNC("RegisterSPForwardByName", g_fn_RegisterSPForwardByName, PFN_REGISTER_SPFORWARD_BYNAME); - REQFUNC("UnregisterSPForward", g_fn_UnregisterSPForward, PFN_UNREGISTER_SPFORWARD); - REQFUNC("ExecuteForward", g_fn_ExecuteForward, PFN_EXECUTE_FORWARD); - REQFUNC("PrepareCellArray", g_fn_PrepareCellArray, PFN_PREPARE_CELLARRAY); - REQFUNC("PrepareCharArray", g_fn_PrepareCharArray, PFN_PREPARE_CHARARRAY); - REQFUNC("PrepareCellArrayA", g_fn_PrepareCellArrayA, PFN_PREPARE_CELLARRAY_A); - REQFUNC("PrepareCharArrayA", g_fn_PrepareCharArrayA, PFN_PREPARE_CHARARRAY_A); - // Player - REQFUNC("IsPlayerValid", g_fn_IsPlayerValid, PFN_IS_PLAYER_VALID); - REQFUNC("GetPlayerName", g_fn_GetPlayerName, PFN_GET_PLAYER_NAME); - REQFUNC("GetPlayerIP", g_fn_GetPlayerIP, PFN_GET_PLAYER_IP); - REQFUNC("IsPlayerInGame", g_fn_IsPlayerIngame, PFN_IS_PLAYER_INGAME); - REQFUNC("IsPlayerBot", g_fn_IsPlayerBot, PFN_IS_PLAYER_BOT); - REQFUNC("IsPlayerAuthorized", g_fn_IsPlayerAuthorized, PFN_IS_PLAYER_AUTHORIZED); - REQFUNC("GetPlayerTime", g_fn_GetPlayerTime, PFN_GET_PLAYER_TIME); - REQFUNC("GetPlayerPlayTime", g_fn_GetPlayerPlayTime, PFN_GET_PLAYER_PLAYTIME); - REQFUNC("GetPlayerCurweapon", g_fn_GetPlayerCurweapon, PFN_GET_PLAYER_CURWEAPON); - REQFUNC("GetPlayerTeamID", g_fn_GetPlayerTeamID, PFN_GET_PLAYER_TEAMID); - REQFUNC("GetPlayerTeam",g_fn_GetPlayerTeam, PFN_GET_PLAYER_TEAM); - REQFUNC("GetPlayerDeaths", g_fn_GetPlayerDeaths, PFN_GET_PLAYER_DEATHS); - REQFUNC("GetPlayerMenu", g_fn_GetPlayerMenu, PFN_GET_PLAYER_MENU); - REQFUNC("GetPlayerKeys", g_fn_GetPlayerKeys, PFN_GET_PLAYER_KEYS); - REQFUNC("IsPlayerAlive", g_fn_IsPlayerAlive, PFN_IS_PLAYER_ALIVE); - REQFUNC("GetPlayerFrags", g_fn_GetPlayerFrags, PFN_GET_PLAYER_FRAGS); - REQFUNC("IsPlayerConnecting", g_fn_IsPlayerConnecting, PFN_IS_PLAYER_CONNECTING); - REQFUNC("IsPlayerHLTV", g_fn_IsPlayerHLTV, PFN_IS_PLAYER_HLTV); - REQFUNC("GetPlayerArmor", g_fn_GetPlayerArmor, PFN_GET_PLAYER_ARMOR); - REQFUNC("GetPlayerHealth", g_fn_GetPlayerHealth, PFN_GET_PLAYER_HEALTH); - REQFUNC("GetPlayerFlags", g_fn_GetPlayerFlags, PFN_GETPLAYERFLAGS); - REQFUNC("GetPlayerEdict", g_fn_GetPlayerEdict, PFN_GET_PLAYER_EDICT); - REQFUNC("amx_Push", g_fn_AmxPush, PFN_AMX_PUSH); - REQFUNC("SetPlayerTeamInfo", g_fn_SetTeamInfo, PFN_SET_TEAM_INFO); - REQFUNC("PlayerPropAddr", g_fn_PlayerPropAddr, PFN_PLAYER_PROP_ADDR); - REQFUNC("RegAuthFunc", g_fn_RegAuthFunc, PFN_REG_AUTH_FUNC); - REQFUNC("UnregAuthFunc", g_fn_UnregAuthFunc, PFN_UNREG_AUTH_FUNC); - -#ifdef MEMORY_TEST - // Memory - REQFUNC_OPT("Allocator", g_fn_Allocator, PFN_ALLOCATOR); - REQFUNC_OPT("Reallocator", g_fn_Reallocator, PFN_REALLOCATOR); - REQFUNC_OPT("Deallocator", g_fn_Deallocator, PFN_DEALLOCATOR); -#endif - - REQFUNC("CellToReal", g_fn_CellToReal, PFN_CELL_TO_REAL); - REQFUNC("RealToCell", g_fn_RealToCell, PFN_REAL_TO_CELL); - -#ifdef FN_AMXX_ATTACH - FN_AMXX_ATTACH(); -#endif // FN_AMXX_ATACH - - return AMXX_OK; -} - -C_DLLEXPORT int AMXX_Detach() -{ -#ifdef FN_AMXX_DETACH - FN_AMXX_DETACH(); -#endif // FN_AMXX_DETACH - - return AMXX_OK; -} - -C_DLLEXPORT int AMXX_PluginsLoaded() -{ -#ifdef FN_AMXX_PLUGINSLOADED - FN_AMXX_PLUGINSLOADED(); -#endif // FN_AMXX_PLUGINSLOADED - return AMXX_OK; -} - -// Advanced MF functions -void MF_Log(const char *fmt, ...) -{ - // :TODO: Overflow possible here - char msg[3072]; - va_list arglst; - va_start(arglst, fmt); - vsprintf(msg, fmt, arglst); - va_end(arglst); - - g_fn_Log("[%s] %s", MODULE_LOGTAG, msg); -} - -void MF_LogError(AMX *amx, int err, const char *fmt, ...) -{ - // :TODO: Overflow possible here - char msg[3072]; - va_list arglst; - va_start(arglst, fmt); - vsprintf(msg, fmt, arglst); - va_end(arglst); - - g_fn_LogErrorFunc(amx, err, "[%s] %s", MODULE_LOGTAG, msg); -} - - -#ifdef _DEBUG -// validate macros -// Makes sure compiler reports errors when macros are invalid -void ValidateMacros_DontCallThis_Smiley() -{ - MF_BuildPathname("str", "str", 0); - MF_BuildPathnameR(NULL, 0, "%d", 0); - MF_FormatAmxString(NULL, 0, 0, NULL); - MF_GetAmxAddr(NULL, 0); - MF_PrintSrvConsole("str", "str", 0); - MF_GetModname(); - MF_GetScriptName(0); - MF_GetScriptAmx(0); - MF_FindScriptByAmx(NULL); - MF_FindScriptByName("str"); - MF_SetAmxString(NULL, 0, "str", 0); - MF_GetAmxString(NULL, 0, 0, 0); - MF_GetAmxStringLen(NULL); - MF_CopyAmxMemory(NULL, NULL, 0); - MF_Log("str", "str", 0); - MF_LogError(NULL, 0, NULL); - MF_RaiseAmxError(NULL, 0); - MF_RegisterForward("str", (ForwardExecType)0, 0, 0, 0); - MF_ExecuteForward(0, 0, 0); - MF_PrepareCellArray(NULL, 0); - MF_PrepareCharArray(NULL, 0); - MF_PrepareCellArrayA(NULL, 0, true); - MF_PrepareCharArrayA(NULL, 0, true); - MF_IsPlayerValid(0); - MF_GetPlayerName(0); - MF_GetPlayerIP(0); - MF_IsPlayerIngame(0); - MF_IsPlayerBot(0); - MF_IsPlayerAuthorized(0); - MF_GetPlayerTime(0); - MF_GetPlayerPlayTime(0); - MF_GetPlayerCurweapon(0); - MF_GetPlayerTeamID(0); - MF_GetPlayerTeam(0); - MF_GetPlayerDeaths(0); - MF_GetPlayerMenu(0); - MF_GetPlayerKeys(0); - MF_IsPlayerAlive(0); - MF_GetPlayerFrags(0); - MF_IsPlayerConnecting(0); - MF_IsPlayerHLTV(0); - MF_GetPlayerArmor(0); - MF_GetPlayerHealth(0); - MF_AmxExec(0, 0, 0); - MF_AmxExecv(0, 0, 0, 0, 0); - MF_AmxFindPublic(0, 0, 0); - MF_AmxAllot(0, 0, 0, 0); - MF_LoadAmxScript(0, 0, 0, 0, 0); - MF_UnloadAmxScript(0, 0); - MF_RegisterSPForward(0, 0, 0, 0, 0, 0); - MF_RegisterSPForwardByName(0, 0, 0, 0, 0, 0); - MF_UnregisterSPForward(0); - MF_GetPlayerFrags(0); - MF_GetPlayerEdict(0); - MF_Format("", 4, "str"); - MF_RegisterFunction(NULL, ""); - MF_SetPlayerTeamInfo(0, 0, ""); - MF_PlayerPropAddr(0, 0); - MF_RegAuthFunc(NULL); - MF_UnregAuthFunc(NULL); -} -#endif - -#ifdef MEMORY_TEST - -/************* MEMORY *************/ -// undef all defined macros -#undef new -#undef delete -#undef malloc -#undef calloc -#undef realloc -#undef free - -const unsigned int m_alloc_unknown = 0; -const unsigned int m_alloc_new = 1; -const unsigned int m_alloc_new_array = 2; -const unsigned int m_alloc_malloc = 3; -const unsigned int m_alloc_calloc = 4; -const unsigned int m_alloc_realloc = 5; -const unsigned int m_alloc_delete = 6; -const unsigned int m_alloc_delete_array = 7; -const unsigned int m_alloc_free = 8; - -const char *g_Mem_CurrentFilename = "??"; -int g_Mem_CurrentLine = 0; -const char *g_Mem_CurrentFunc = "??"; - -const char *Mem_MakeSourceFile(const char *sourceFile) -{ - static char buffer[512]; - static size_t pos = 0; - if (!pos) - { - // init - buffer[0] = '['; - strcpy(buffer + 1, MODULE_NAME); - pos = strlen(MODULE_NAME) + 1; - buffer[pos++] = ']'; - } - - // convert from absolute path to [modulename]filename - const char *ptr = strrchr(sourceFile, '\\'); - if (ptr) - ptr++; - else - { - ptr = strrchr(sourceFile, '/'); - if (ptr) - ptr++; - else - ptr = sourceFile; - } - strcpy(buffer + pos, ptr); - return buffer; -} - -void Mem_SetOwner(const char *filename, int line, const char *function) -{ - g_Mem_CurrentFilename = filename; - g_Mem_CurrentLine = line; - g_Mem_CurrentFunc = function; -} - -void Mem_ResetGlobals() -{ - Mem_SetOwner("??", 0, "??"); -} - -// raw (re/de)allocators -void * Mem_Allocator(const char *sourceFile, const unsigned int sourceLine, const char *sourceFunc, - const unsigned int allocationType, const size_t reportedSize) -{ - if (g_fn_Allocator) - return g_fn_Allocator(Mem_MakeSourceFile(sourceFile), sourceLine, sourceFunc, allocationType, reportedSize); - else - return malloc(reportedSize); -} - -void * Mem_Reallocator(const char *sourceFile, const unsigned int sourceLine, const char *sourceFunc, - const unsigned int reallocationType, const size_t reportedSize, void *reportedAddress) -{ - if (g_fn_Reallocator) - return g_fn_Reallocator(Mem_MakeSourceFile(sourceFile), sourceLine, sourceFunc, reallocationType, reportedSize, reportedAddress); - else - return realloc(reportedAddress, reportedSize); -} - -void Mem_Deallocator(const char *sourceFile, const unsigned int sourceLine, const char *sourceFunc, - const unsigned int deallocationType, void *reportedAddress) -{ - // If you you get user breakpoint here, something failed :) - // - invalid pointer - // - alloc type mismatch ( for example - // char *a = new char[5]; delete char; - // ) - // - The allocation unit is damaged (for example - // char *a = new char[5]; a[6] = 8; - // ) - // - break on dealloc flag set (somehow) - - if (g_fn_Deallocator) - g_fn_Deallocator(Mem_MakeSourceFile(sourceFile), sourceLine, sourceFunc, deallocationType, reportedAddress); - else - free(reportedAddress); -} - -// new and delete operators -void *operator new(size_t reportedSize) -{ - if (reportedSize == 0) - reportedSize = 1; - void *ptr = Mem_Allocator(g_Mem_CurrentFilename, g_Mem_CurrentLine, g_Mem_CurrentFunc, m_alloc_new, reportedSize); - // :TODO: Handler support ? - if (ptr) - return ptr; - - // allocation failed - return NULL; -} - -void *operator new[](size_t reportedSize) -{ - if (reportedSize == 0) - reportedSize = 1; - void *ptr = Mem_Allocator(g_Mem_CurrentFilename, g_Mem_CurrentLine, g_Mem_CurrentFunc, m_alloc_new_array, reportedSize); - // :TODO: Handler support ? - if (ptr) - return ptr; - - // allocation failed - return NULL; -} - -// Microsoft memory tracking operators -void *operator new(size_t reportedSize, const char *sourceFile, int sourceLine) -{ - if (reportedSize == 0) - reportedSize = 1; - void *ptr = Mem_Allocator(g_Mem_CurrentFilename, g_Mem_CurrentLine, g_Mem_CurrentFunc, m_alloc_new, reportedSize); - // :TODO: Handler support ? - if (ptr) - return ptr; - - // allocation failed - return NULL; -} -void *operator new[](size_t reportedSize, const char *sourceFile, int sourceLine) -{ - if (reportedSize == 0) - reportedSize = 1; - void *ptr = Mem_Allocator(g_Mem_CurrentFilename, g_Mem_CurrentLine, g_Mem_CurrentFunc, m_alloc_new_array, reportedSize); - // :TODO: Handler support ? - if (ptr) - return ptr; - - // allocation failed - return NULL; -} - -void operator delete(void *reportedAddress) -{ - if (!reportedAddress) - return; - - Mem_Deallocator(g_Mem_CurrentFilename, g_Mem_CurrentLine, g_Mem_CurrentFunc, m_alloc_delete, reportedAddress); -} - -void operator delete[](void *reportedAddress) -{ - if (!reportedAddress) - return; - - Mem_Deallocator(g_Mem_CurrentFilename, g_Mem_CurrentLine, g_Mem_CurrentFunc, m_alloc_delete_array, reportedAddress); -} - -#else - -#if !defined NO_ALLOC_OVERRIDES && !defined MEMORY_TEST && !defined WIN32 -void * operator new(size_t size) { - return(calloc(1, size)); -} - -void * operator new[](size_t size) { - return(calloc(1, size)); -} - -void operator delete(void * ptr) { - if(ptr) - free(ptr); -} - -void operator delete[](void * ptr) { - if(ptr) - free(ptr); -} -#endif - -#endif //MEMORY_TEST - -/************* stuff from dlls/util.cpp *************/ -// must come here because cbase.h declares it's own operator new - -#ifdef USE_METAMOD - -// Selected portions of dlls/util.cpp from SDK 2.1. -// Functions copied from there as needed... -// And modified to avoid buffer overflows (argh). - -/*** -* -* Copyright (c) 1999, 2000 Valve LLC. All rights reserved. -* -* This product contains software technology licensed from Id -* Software, Inc. ("Id Technology"). Id Technology (c) 1996 Id Software, Inc. -* All Rights Reserved. -* -* Use, distribution, and modification of this source code and/or resulting -* object code is restricted to non-commercial enhancements to products from -* Valve LLC. All other use, distribution, or modification is prohibited -* without written permission from Valve LLC. -* -****/ -/* - -===== util.cpp ======================================================== - - Utility code. Really not optional after all. - -*/ - -#include -#include "sdk_util.h" -#include - -#include // for strncpy(), etc - -#include "osdep.h" // win32 vsnprintf, etc - -char* UTIL_VarArgs( char *format, ... ) -{ - va_list argptr; - static char string[1024]; - - va_start (argptr, format); - vsnprintf (string, sizeof(string), format, argptr); - va_end (argptr); - - return string; -} - - -//========================================================= -// UTIL_LogPrintf - Prints a logged message to console. -// Preceded by LOG: ( timestamp ) < message > -//========================================================= -void UTIL_LogPrintf( char *fmt, ... ) -{ - va_list argptr; - static char string[1024]; - - va_start ( argptr, fmt ); - vsnprintf ( string, sizeof(string), fmt, argptr ); - va_end ( argptr ); - - // Print to server console - ALERT( at_logged, "%s", string ); -} - - -void UTIL_HudMessage(CBaseEntity *pEntity, const hudtextparms_t &textparms, - const char *pMessage) -{ - if ( !pEntity ) - return; - - MESSAGE_BEGIN( MSG_ONE, SVC_TEMPENTITY, NULL, ENT(pEntity->pev) ); - WRITE_BYTE( TE_TEXTMESSAGE ); - WRITE_BYTE( textparms.channel & 0xFF ); - - WRITE_SHORT( FixedSigned16( textparms.x, 1<<13 ) ); - WRITE_SHORT( FixedSigned16( textparms.y, 1<<13 ) ); - WRITE_BYTE( textparms.effect ); - - WRITE_BYTE( textparms.r1 ); - WRITE_BYTE( textparms.g1 ); - WRITE_BYTE( textparms.b1 ); - WRITE_BYTE( textparms.a1 ); - - WRITE_BYTE( textparms.r2 ); - WRITE_BYTE( textparms.g2 ); - WRITE_BYTE( textparms.b2 ); - WRITE_BYTE( textparms.a2 ); - - WRITE_SHORT( FixedUnsigned16( textparms.fadeinTime, 1<<8 ) ); - WRITE_SHORT( FixedUnsigned16( textparms.fadeoutTime, 1<<8 ) ); - WRITE_SHORT( FixedUnsigned16( textparms.holdTime, 1<<8 ) ); - - if ( textparms.effect == 2 ) - WRITE_SHORT( FixedUnsigned16( textparms.fxTime, 1<<8 ) ); - - if ( strlen( pMessage ) < 512 ) - { - WRITE_STRING( pMessage ); - } - else - { - char tmp[512]; - strncpy( tmp, pMessage, 511 ); - tmp[511] = 0; - WRITE_STRING( tmp ); - } - MESSAGE_END(); -} - -short FixedSigned16( float value, float scale ) -{ - int output; - - output = (int) (value * scale); - - if ( output > 32767 ) - output = 32767; - - if ( output < -32768 ) - output = -32768; - - return (short)output; -} - -unsigned short FixedUnsigned16( float value, float scale ) -{ - int output; - - output = (int) (value * scale); - if ( output < 0 ) - output = 0; - if ( output > 0xFFFF ) - output = 0xFFFF; - - return (unsigned short)output; -} -#endif // USE_METAMOD diff --git a/dlls/arrayx/amxxmodule.h b/dlls/arrayx/amxxmodule.h deleted file mode 100644 index 63f0b2ac..00000000 --- a/dlls/arrayx/amxxmodule.h +++ /dev/null @@ -1,2286 +0,0 @@ -/* - * AMX Mod X Module Interface Functions - * This file may be freely used -*/ - -// prevent double include -#ifndef __AMXXMODULE_H__ -#define __AMXXMODULE_H__ - -// config -#include "moduleconfig.h" - -// metamod include files -#ifdef USE_METAMOD -#include -#include -#include "osdep.h" -#endif // #ifdef USE_METAMOD - -// DLL Export -#undef DLLEXPORT -#ifndef __linux__ -#define DLLEXPORT __declspec(dllexport) -#else -#define DLLEXPORT -#define LINUX -#endif - -#ifndef _SIZE_T_DEFINED -typedef unsigned int size_t; -#define _SIZE_T_DEFINED -#endif - -#undef C_DLLEXPORT -#define C_DLLEXPORT extern "C" DLLEXPORT - -// ***** AMXX stuff ***** - -// module interface version was 1 -// 2 - added logtag to struct (amxx1.1-rc1) -// 3 - added new tagAMX structure (amxx1.5) -#define AMXX_INTERFACE_VERSION 3 - -// amxx module info -struct amxx_module_info_s -{ - const char *name; - const char *author; - const char *version; - int reload; // reload on mapchange when nonzero - const char *logtag; // added in version 2 -}; - -// return values from functions called by amxx -#define AMXX_OK 0 /* no error */ -#define AMXX_IFVERS 1 /* interface version */ -#define AMXX_PARAM 2 /* Invalid parameter */ -#define AMXX_FUNC_NOT_PRESENT 3 /* Function not present */ - -// *** Small stuff *** -// The next section is copied from the amx.h file -// Copyright (c) ITB CompuPhase, 1997-2005 - -#if defined HAVE_STDINT_H - #include -#else - #if defined __LCC__ || defined __DMC__ || defined LINUX - #if defined HAVE_INTTYPES_H - #include - #else - #include - #endif - #elif !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L - /* The ISO C99 defines the int16_t and int_32t types. If the compiler got - * here, these types are probably undefined. - */ - #if defined __MACH__ - #include - typedef unsigned short int uint16_t; - typedef unsigned long int uint32_t; - #elif defined __FreeBSD__ - #include - #else - typedef short int int16_t; - typedef unsigned short int uint16_t; - #if defined SN_TARGET_PS2 - typedef int int32_t; - typedef unsigned int uint32_t; - #else - typedef long int int32_t; - typedef unsigned long int uint32_t; - #endif - #if defined __WIN32__ || defined _WIN32 || defined WIN32 - typedef __int64 int64_t; - typedef unsigned __int64 uint64_t; - #define HAVE_I64 - #elif defined __GNUC__ - typedef long long int64_t; - typedef unsigned long long uint64_t; - #define HAVE_I64 - #endif - #endif - #endif - #define HAVE_STDINT_H -#endif -#if defined _LP64 || defined WIN64 || defined _WIN64 - #if !defined __64BIT__ - #define __64BIT__ - #endif -#endif - -/* calling convention for native functions */ -#if !defined AMX_NATIVE_CALL - #define AMX_NATIVE_CALL -#endif -/* calling convention for all interface functions and callback functions */ -#if !defined AMXAPI - #if defined STDECL - #define AMXAPI __stdcall - #elif defined CDECL - #define AMXAPI __cdecl - #else - #define AMXAPI - #endif -#endif -#if !defined AMXEXPORT - #define AMXEXPORT -#endif - -#if !defined PAWN_CELL_SIZE - #define PAWN_CELL_SIZE 32 /* by default, use 32-bit cells */ -#endif -#if PAWN_CELL_SIZE==16 - typedef uint16_t ucell; - typedef int16_t cell; -#elif PAWN_CELL_SIZE==32 - typedef uint32_t ucell; - typedef int32_t cell; -#define REAL float -#elif PAWN_CELL_SIZE==64 - typedef uint64_t ucell; - typedef int64_t cell; -#define REAL double -#else - #error Unsupported cell size (PAWN_CELL_SIZE) -#endif - -#define UNPACKEDMAX ((1 << (sizeof(cell)-1)*8) - 1) -#define UNLIMITED (~1u >> 1) - -struct tagAMX; -typedef cell (AMX_NATIVE_CALL *AMX_NATIVE)(struct tagAMX *amx, cell *params); -typedef int (AMXAPI *AMX_CALLBACK)(struct tagAMX *amx, cell index, - cell *result, cell *params); -typedef int (AMXAPI *AMX_DEBUG)(struct tagAMX *amx); -#if !defined _FAR - #define _FAR -#endif - -#if defined _MSC_VER - #pragma warning(disable:4103) /* disable warning message 4103 that complains - * about pragma pack in a header file */ - #pragma warning(disable:4100) /* "'%$S' : unreferenced formal parameter" */ -#endif - - -/* Some compilers do not support the #pragma align, which should be fine. Some - * compilers give a warning on unknown #pragmas, which is not so fine... - */ -#if (defined SN_TARGET_PS2 || defined __GNUC__) && !defined AMX_NO_ALIGN - #define AMX_NO_ALIGN -#endif - -#if defined __GNUC__ - #define PACKED __attribute__((packed)) -#else - #define PACKED -#endif - -#if !defined AMX_NO_ALIGN - #if defined LINUX || defined __FreeBSD__ - #pragma pack(1) /* structures must be packed (byte-aligned) */ - #elif defined MACOS && defined __MWERKS__ - #pragma options align=mac68k - #else - #pragma pack(push) - #pragma pack(1) /* structures must be packed (byte-aligned) */ - #if defined __TURBOC__ - #pragma option -a- /* "pack" pragma for older Borland compilers */ - #endif - #endif -#endif - -typedef struct { - const char _FAR *name PACKED; - AMX_NATIVE func PACKED; -} AMX_NATIVE_INFO; - -#define AMX_USERNUM 4 - -/* The AMX structure is the internal structure for many functions. Not all - * fields are valid at all times; many fields are cached in local variables. - */ -typedef struct tagAMX { - unsigned char _FAR *base PACKED; /* points to the AMX header plus the code, optionally also the data */ - unsigned char _FAR *data PACKED; /* points to separate data+stack+heap, may be NULL */ - AMX_CALLBACK callback PACKED; - AMX_DEBUG debug PACKED; /* debug callback */ - /* for external functions a few registers must be accessible from the outside */ - cell cip PACKED; /* instruction pointer: relative to base + amxhdr->cod */ - cell frm PACKED; /* stack frame base: relative to base + amxhdr->dat */ - cell hea PACKED; /* top of the heap: relative to base + amxhdr->dat */ - cell hlw PACKED; /* bottom of the heap: relative to base + amxhdr->dat */ - cell stk PACKED; /* stack pointer: relative to base + amxhdr->dat */ - cell stp PACKED; /* top of the stack: relative to base + amxhdr->dat */ - int flags PACKED; /* current status, see amx_Flags() */ - /* user data */ - long usertags[AMX_USERNUM] PACKED; - //okay userdata[3] in AMX Mod X is for the CPlugin * pointer - //we're also gonna set userdata[2] to a special debug structure - void _FAR *userdata[AMX_USERNUM] PACKED; - /* native functions can raise an error */ - int error PACKED; - /* passing parameters requires a "count" field */ - int paramcount; - /* the sleep opcode needs to store the full AMX status */ - cell pri PACKED; - cell alt PACKED; - cell reset_stk PACKED; - cell reset_hea PACKED; - cell sysreq_d PACKED; /* relocated address/value for the SYSREQ.D opcode */ - /* support variables for the JIT */ - int reloc_size PACKED; /* required temporary buffer for relocations */ - long code_size PACKED; /* estimated memory footprint of the native code */ -} PACKED AMX; - -enum { - AMX_ERR_NONE, - /* reserve the first 15 error codes for exit codes of the abstract machine */ - AMX_ERR_EXIT, /* forced exit */ - AMX_ERR_ASSERT, /* assertion failed */ - AMX_ERR_STACKERR, /* stack/heap collision */ - AMX_ERR_BOUNDS, /* index out of bounds */ - AMX_ERR_MEMACCESS, /* invalid memory access */ - AMX_ERR_INVINSTR, /* invalid instruction */ - AMX_ERR_STACKLOW, /* stack underflow */ - AMX_ERR_HEAPLOW, /* heap underflow */ - AMX_ERR_CALLBACK, /* no callback, or invalid callback */ - AMX_ERR_NATIVE, /* native function failed */ - AMX_ERR_DIVIDE, /* divide by zero */ - AMX_ERR_SLEEP, /* go into sleepmode - code can be restarted */ - AMX_ERR_INVSTATE, /* invalid state for this access */ - - AMX_ERR_MEMORY = 16, /* out of memory */ - AMX_ERR_FORMAT, /* invalid file format */ - AMX_ERR_VERSION, /* file is for a newer version of the AMX */ - AMX_ERR_NOTFOUND, /* function not found */ - AMX_ERR_INDEX, /* invalid index parameter (bad entry point) */ - AMX_ERR_DEBUG, /* debugger cannot run */ - AMX_ERR_INIT, /* AMX not initialized (or doubly initialized) */ - AMX_ERR_USERDATA, /* unable to set user data field (table full) */ - AMX_ERR_INIT_JIT, /* cannot initialize the JIT */ - AMX_ERR_PARAMS, /* parameter error */ - AMX_ERR_DOMAIN, /* domain error, expression result does not fit in range */ -}; - -#if !defined AMX_NO_ALIGN - #if defined __linux__ - #pragma pack() /* reset default packing */ - #else - #pragma pack(pop) /* reset previous packing */ - #endif -#endif - - -// ***** declare functions ***** - -#ifdef USE_METAMOD -void UTIL_LogPrintf( char *fmt, ... ); -void UTIL_HudMessage(CBaseEntity *pEntity, const hudtextparms_t &textparms, const char *pMessage); -short FixedSigned16( float value, float scale ); -unsigned short FixedUnsigned16( float value, float scale ); - -#ifdef FN_META_QUERY -void FN_META_QUERY(void); -#endif // FN_META_QUERY - -#ifdef FN_META_ATTACH -void FN_META_ATTACH(void); -#endif // FN_META_ATTACH - -#ifdef FN_META_DETACH -void FN_META_DETACH(void); -#endif // FN_META_DETACH - - - - - -#ifdef FN_GameDLLInit -void FN_GameDLLInit(void); -#endif // FN_GameDLLInit - -#ifdef FN_DispatchSpawn -int FN_DispatchSpawn(edict_t *pent); -#endif // FN_DispatchSpawn - -#ifdef FN_DispatchThink -void FN_DispatchThink(edict_t *pent); -#endif // FN_DispatchThink - -#ifdef FN_DispatchUse -void FN_DispatchUse(edict_t *pentUser, edict_t *pentOther); -#endif // FN_DispatchUse - -#ifdef FN_DispatchTouch -void FN_DispatchTouch(edict_t *pentTouched, edict_t *pentOther); -#endif // FN_DispatchTouch - -#ifdef FN_DispatchBlocked -void FN_DispatchBlocked(edict_t *pentBlocked, edict_t *pentOther); -#endif // FN_DispatchBlocked - -#ifdef FN_DispatchKeyValue -void FN_DispatchKeyValue(edict_t *pentKeyvalue, KeyValueData *pkvd); -#endif // FN_DispatchKeyValue - -#ifdef FN_DispatchSave -void FN_DispatchSave(edict_t *pent, SAVERESTOREDATA *pSaveData); -#endif // FN_DispatchSave - -#ifdef FN_DispatchRestore -int FN_DispatchRestore(edict_t *pent, SAVERESTOREDATA *pSaveData, int globalEntity); -#endif // FN_DispatchRestore - -#ifdef FN_DispatchObjectCollsionBox -void FN_DispatchObjectCollsionBox(edict_t *pent); -#endif // FN_DispatchObjectCollsionBox - -#ifdef FN_SaveWriteFields -void FN_SaveWriteFields(SAVERESTOREDATA *pSaveData, const char *pname, void *pBaseData, TYPEDESCRIPTION *pFields, int fieldCount); -#endif // FN_SaveWriteFields - -#ifdef FN_SaveReadFields -void FN_SaveReadFields(SAVERESTOREDATA *pSaveData, const char *pname, void *pBaseData, TYPEDESCRIPTION *pFields, int fieldCount); -#endif // FN_SaveReadFields - -#ifdef FN_SaveGlobalState -void FN_SaveGlobalState(SAVERESTOREDATA *pSaveData); -#endif // FN_SaveGlobalState - -#ifdef FN_RestoreGlobalState -void FN_RestoreGlobalState(SAVERESTOREDATA *pSaveData); -#endif // FN_RestoreGlobalState - -#ifdef FN_ResetGlobalState -void FN_ResetGlobalState(void); -#endif // FN_ResetGlobalState - -#ifdef FN_ClientConnect -BOOL FN_ClientConnect(edict_t *pEntity, const char *pszName, const char *pszAddress, char szRejectReason[ 128 ]); -#endif // FN_ClientConnect - -#ifdef FN_ClientDisconnect -void FN_ClientDisconnect(edict_t *pEntity); -#endif // FN_ClientDisconnect - -#ifdef FN_ClientKill -void FN_ClientKill(edict_t *pEntity); -#endif // FN_ClientKill - -#ifdef FN_ClientPutInServer -void FN_ClientPutInServer(edict_t *pEntity); -#endif // FN_ClientPutInServer - -#ifdef FN_ClientCommand -void FN_ClientCommand(edict_t *pEntity); -#endif // FN_ClientCommand - -#ifdef FN_ClientUserInfoChanged -void FN_ClientUserInfoChanged(edict_t *pEntity, char *infobuffer); -#endif // FN_ClientUserInfoChanged - -#ifdef FN_ServerActivate -void FN_ServerActivate(edict_t *pEdictList, int edictCount, int clientMax); -#endif // FN_ServerActivate - -#ifdef FN_ServerDeactivate -void FN_ServerDeactivate(void); -#endif // FN_ServerDeactivate - -#ifdef FN_PlayerPreThink -void FN_PlayerPreThink(edict_t *pEntity); -#endif // FN_PlayerPreThink - -#ifdef FN_PlayerPostThink -void FN_PlayerPostThink(edict_t *pEntity); -#endif // FN_PlayerPostThink - -#ifdef FN_StartFrame -void FN_StartFrame(void); -#endif // FN_StartFrame - -#ifdef FN_ParmsNewLevel -void FN_ParmsNewLevel(void); -#endif // FN_ParmsNewLevel - -#ifdef FN_ParmsChangeLevel -void FN_ParmsChangeLevel(void); -#endif // FN_ParmsChangeLevel - -#ifdef FN_GetGameDescription -const char *FN_GetGameDescription(void); -#endif // FN_GetGameDescription - -#ifdef FN_PlayerCustomization -void FN_PlayerCustomization(edict_t *pEntity, customization_t *pCust); -#endif // FN_PlayerCustomization - -#ifdef FN_SpectatorConnect -void FN_SpectatorConnect(edict_t *pEntity); -#endif // FN_SpectatorConnect - -#ifdef FN_SpectatorDisconnect -void FN_SpectatorDisconnect(edict_t *pEntity); -#endif // FN_SpectatorDisconnect - -#ifdef FN_SpectatorThink -void FN_SpectatorThink(edict_t *pEntity); -#endif // FN_SpectatorThink - -#ifdef FN_Sys_Error -void FN_Sys_Error(const char *error_string); -#endif // FN_Sys_Error - -#ifdef FN_PM_Move -void FN_PM_Move(struct playermove_s *ppmove, int server); -#endif // FN_PM_Move - -#ifdef FN_PM_Init -void FN_PM_Init(struct playermove_s *ppmove); -#endif // FN_PM_Init - -#ifdef FN_PM_FindTextureType -char FN_PM_FindTextureType(char *name); -#endif // FN_PM_FindTextureType - -#ifdef FN_SetupVisibility -void FN_SetupVisibility(edict_t *pViewEntity, edict_t *pClient, unsigned char **pvs, unsigned char **pas); -#endif // FN_SetupVisibility - -#ifdef FN_UpdateClientData -void FN_UpdateClientData(const struct edict_s *ent, int sendweapons, struct clientdata_s *cd); -#endif // FN_UpdateClientData - -#ifdef FN_AddToFullPack -int FN_AddToFullPack(struct entity_state_s *state, int e, edict_t *ent, edict_t *host, int hostflags, int player, unsigned char *pSet); -#endif // FN_AddToFullPack - -#ifdef FN_CreateBaseline -void FN_CreateBaseline(int player, int eindex, struct entity_state_s *baseline, struct edict_s *entity, int playermodelindex, vec3_t player_mins, vec3_t player_maxs); -#endif // FN_CreateBaseline - -#ifdef FN_RegisterEncoders -void FN_RegisterEncoders(void); -#endif // FN_RegisterEncoders - -#ifdef FN_GetWeaponData -int FN_GetWeaponData(struct edict_s *player, struct weapon_data_s *info); -#endif // FN_GetWeaponData - -#ifdef FN_CmdStart -void FN_CmdStart(const edict_t *player, const struct usercmd_s *cmd, unsigned int random_seed); -#endif // FN_CmdStart - -#ifdef FN_CmdEnd -void FN_CmdEnd(const edict_t *player); -#endif // FN_CmdEnd - -#ifdef FN_ConnectionlessPacket -int FN_ConnectionlessPacket(const struct netadr_s *net_from, const char *args, char *response_buffer, int *response_buffer_size); -#endif // FN_ConnectionlessPacket - -#ifdef FN_GetHullBounds -int FN_GetHullBounds(int hullnumber, float *mins, float *maxs); -#endif // FN_GetHullBounds - -#ifdef FN_CreateInstancedBaselines -void FN_CreateInstancedBaselines(void); -#endif // FN_CreateInstancedBaselines - -#ifdef FN_InconsistentFile -int FN_InconsistentFile(const edict_t *player, const char *filename, char *disconnect_message); -#endif // FN_InconsistentFile - -#ifdef FN_AllowLagCompensation -int FN_AllowLagCompensation(void); -#endif // FN_AllowLagCompensation - - - - -#ifdef FN_GameDLLInit_Post -void FN_GameDLLInit_Post(void); -#endif // FN_GameDLLInit_Post - -#ifdef FN_DispatchSpawn_Post -int FN_DispatchSpawn_Post(edict_t *pent); -#endif // FN_DispatchSpawn_Post - -#ifdef FN_DispatchThink_Post -void FN_DispatchThink_Post(edict_t *pent); -#endif // FN_DispatchThink_Post - -#ifdef FN_DispatchUse_Post -void FN_DispatchUse_Post(edict_t *pentUser, edict_t *pentOther); -#endif // FN_DispatchUse_Post - -#ifdef FN_DispatchTouch_Post -void FN_DispatchTouch_Post(edict_t *pentTouched, edict_t *pentOther); -#endif // FN_DispatchTouch_Post - -#ifdef FN_DispatchBlocked_Post -void FN_DispatchBlocked_Post(edict_t *pentBlocked, edict_t *pentOther); -#endif // FN_DispatchBlocked_Post - -#ifdef FN_DispatchKeyValue_Post -void FN_DispatchKeyValue_Post(edict_t *pentKeyvalue, KeyValueData *pkvd); -#endif // FN_DispatchKeyValue_Post - -#ifdef FN_DispatchSave_Post -void FN_DispatchSave_Post(edict_t *pent, SAVERESTOREDATA *pSaveData); -#endif // FN_DispatchSave_Post - -#ifdef FN_DispatchRestore_Post -int FN_DispatchRestore_Post(edict_t *pent, SAVERESTOREDATA *pSaveData, int globalEntity); -#endif // FN_DispatchRestore_Post - -#ifdef FN_DispatchObjectCollsionBox_Post -void FN_DispatchObjectCollsionBox_Post(edict_t *pent); -#endif // FN_DispatchObjectCollsionBox_Post - -#ifdef FN_SaveWriteFields_Post -void FN_SaveWriteFields_Post(SAVERESTOREDATA *pSaveData, const char *pname, void *pBaseData, TYPEDESCRIPTION *pFields, int fieldCount); -#endif // FN_SaveWriteFields_Post - -#ifdef FN_SaveReadFields_Post -void FN_SaveReadFields_Post(SAVERESTOREDATA *pSaveData, const char *pname, void *pBaseData, TYPEDESCRIPTION *pFields, int fieldCount); -#endif // FN_SaveReadFields_Post - -#ifdef FN_SaveGlobalState_Post -void FN_SaveGlobalState_Post(SAVERESTOREDATA *pSaveData); -#endif // FN_SaveGlobalState_Post - -#ifdef FN_RestoreGlobalState_Post -void FN_RestoreGlobalState_Post(SAVERESTOREDATA *pSaveData); -#endif // FN_RestoreGlobalState_Post - -#ifdef FN_ResetGlobalState_Post -void FN_ResetGlobalState_Post(void); -#endif // FN_ResetGlobalState_Post - -#ifdef FN_ClientConnect_Post -BOOL FN_ClientConnect_Post(edict_t *pEntity, const char *pszName, const char *pszAddress, char szRejectReason[ 128 ]); -#endif // FN_ClientConnect_Post - -#ifdef FN_ClientDisconnect_Post -void FN_ClientDisconnect_Post(edict_t *pEntity); -#endif // FN_ClientDisconnect_Post - -#ifdef FN_ClientKill_Post -void FN_ClientKill_Post(edict_t *pEntity); -#endif // FN_ClientKill_Post - -#ifdef FN_ClientPutInServer_Post -void FN_ClientPutInServer_Post(edict_t *pEntity); -#endif // FN_ClientPutInServer_Post - -#ifdef FN_ClientCommand_Post -void FN_ClientCommand_Post(edict_t *pEntity); -#endif // FN_ClientCommand_Post - -#ifdef FN_ClientUserInfoChanged_Post -void FN_ClientUserInfoChanged_Post(edict_t *pEntity, char *infobuffer); -#endif // FN_ClientUserInfoChanged_Post - -#ifdef FN_ServerActivate_Post -void FN_ServerActivate_Post(edict_t *pEdictList, int edictCount, int clientMax); -#endif // FN_ServerActivate_Post - -#ifdef FN_ServerDeactivate_Post -void FN_ServerDeactivate_Post(void); -#endif // FN_ServerDeactivate_Post - -#ifdef FN_PlayerPreThink_Post -void FN_PlayerPreThink_Post(edict_t *pEntity); -#endif // FN_PlayerPreThink_Post - -#ifdef FN_PlayerPostThink_Post -void FN_PlayerPostThink_Post(edict_t *pEntity); -#endif // FN_PlayerPostThink_Post - -#ifdef FN_StartFrame_Post -void FN_StartFrame_Post(void); -#endif // FN_StartFrame_Post - -#ifdef FN_ParmsNewLevel_Post -void FN_ParmsNewLevel_Post(void); -#endif // FN_ParmsNewLevel_Post - -#ifdef FN_ParmsChangeLevel_Post -void FN_ParmsChangeLevel_Post(void); -#endif // FN_ParmsChangeLevel_Post - -#ifdef FN_GetGameDescription_Post -const char *FN_GetGameDescription_Post(void); -#endif // FN_GetGameDescription_Post - -#ifdef FN_PlayerCustomization_Post -void FN_PlayerCustomization_Post(edict_t *pEntity, customization_t *pCust); -#endif // FN_PlayerCustomization_Post - -#ifdef FN_SpectatorConnect_Post -void FN_SpectatorConnect_Post(edict_t *pEntity); -#endif // FN_SpectatorConnect_Post - -#ifdef FN_SpectatorDisconnect_Post -void FN_SpectatorDisconnect_Post(edict_t *pEntity); -#endif // FN_SpectatorDisconnect_Post - -#ifdef FN_SpectatorThink_Post -void FN_SpectatorThink_Post(edict_t *pEntity); -#endif // FN_SpectatorThink_Post - -#ifdef FN_Sys_Error_Post -void FN_Sys_Error_Post(const char *error_string); -#endif // FN_Sys_Error_Post - -#ifdef FN_PM_Move_Post -void FN_PM_Move_Post(struct playermove_s *ppmove, int server); -#endif // FN_PM_Move_Post - -#ifdef FN_PM_Init_Post -void FN_PM_Init_Post(struct playermove_s *ppmove); -#endif // FN_PM_Init_Post - -#ifdef FN_PM_FindTextureType_Post -char FN_PM_FindTextureType_Post(char *name); -#endif // FN_PM_FindTextureType_Post - -#ifdef FN_SetupVisibility_Post -void FN_SetupVisibility_Post(edict_t *pViewEntity, edict_t *pClient, unsigned char **pvs, unsigned char **pas); -#endif // FN_SetupVisibility_Post - -#ifdef FN_UpdateClientData_Post -void FN_UpdateClientData_Post(const struct edict_s *ent, int sendweapons, struct clientdata_s *cd); -#endif // FN_UpdateClientData_Post - -#ifdef FN_AddToFullPack_Post -int FN_AddToFullPack_Post(struct entity_state_s *state, int e, edict_t *ent, edict_t *host, int hostflags, int player, unsigned char *pSet); -#endif // FN_AddToFullPack_Post - -#ifdef FN_CreateBaseline_Post -void FN_CreateBaseline_Post(int player, int eindex, struct entity_state_s *baseline, struct edict_s *entity, int playermodelindex, vec3_t player_mins, vec3_t player_maxs); -#endif // FN_CreateBaseline_Post - -#ifdef FN_RegisterEncoders_Post -void FN_RegisterEncoders_Post(void); -#endif // FN_RegisterEncoders_Post - -#ifdef FN_GetWeaponData_Post -int FN_GetWeaponData_Post(struct edict_s *player, struct weapon_data_s *info); -#endif // FN_GetWeaponData_Post - -#ifdef FN_CmdStart_Post -void FN_CmdStart_Post(const edict_t *player, const struct usercmd_s *cmd, unsigned int random_seed); -#endif // FN_CmdStart_Post - -#ifdef FN_CmdEnd_Post -void FN_CmdEnd_Post(const edict_t *player); -#endif // FN_CmdEnd_Post - -#ifdef FN_ConnectionlessPacket_Post -int FN_ConnectionlessPacket_Post(const struct netadr_s *net_from, const char *args, char *response_buffer, int *response_buffer_size); -#endif // FN_ConnectionlessPacket_Post - -#ifdef FN_GetHullBounds_Post -int FN_GetHullBounds_Post(int hullnumber, float *mins, float *maxs); -#endif // FN_GetHullBounds_Post - -#ifdef FN_CreateInstancedBaselines_Post -void FN_CreateInstancedBaselines_Post(void); -#endif // FN_CreateInstancedBaselines_Post - -#ifdef FN_InconsistentFile_Post -int FN_InconsistentFile_Post(const edict_t *player, const char *filename, char *disconnect_message); -#endif // FN_InconsistentFile_Post - -#ifdef FN_AllowLagCompensation_Post -int FN_AllowLagCompensation_Post(void); -#endif // FN_AllowLagCompensation_Post - - - -#ifdef FN_PrecacheModel -int FN_PrecacheModel(char *s); -#endif // FN_PrecacheModel - -#ifdef FN_PrecacheSound -int FN_PrecacheSound(char *s); -#endif // FN_PrecacheSound - -#ifdef FN_SetModel -void FN_SetModel(edict_t *e, const char *m); -#endif // FN_SetModel - -#ifdef FN_ModelIndex -int FN_ModelIndex(const char *m); -#endif // FN_ModelIndex - -#ifdef FN_ModelFrames -int FN_ModelFrames(int modelIndex); -#endif // FN_ModelFrames - -#ifdef FN_SetSize -void FN_SetSize(edict_t *e, const float *rgflMin, const float *rgflMax); -#endif // FN_SetSize - -#ifdef FN_ChangeLevel -void FN_ChangeLevel(char *s1, char *s2); -#endif // FN_ChangeLevel - -#ifdef FN_GetSpawnParms -void FN_GetSpawnParms(edict_t *ent); -#endif // FN_GetSpawnParms - -#ifdef FN_SaveSpawnParms -void FN_SaveSpawnParms(edict_t *ent); -#endif // FN_SaveSpawnParms - -#ifdef FN_VecToYaw -float FN_VecToYaw(const float *rgflVector); -#endif // FN_VecToYaw - -#ifdef FN_VecToAngles -void FN_VecToAngles(const float *rgflVectorIn, float *rgflVectorOut); -#endif // FN_VecToAngles - -#ifdef FN_MoveToOrigin -void FN_MoveToOrigin(edict_t *ent, const float *pflGoal, float dist, int iMoveType); -#endif // FN_MoveToOrigin - -#ifdef FN_ChangeYaw -void FN_ChangeYaw(edict_t *ent); -#endif // FN_ChangeYaw - -#ifdef FN_ChangePitch -void FN_ChangePitch(edict_t *ent); -#endif // FN_ChangePitch - -#ifdef FN_FindEntityByString -edict_t *FN_FindEntityByString(edict_t *pEdictStartSearchAfter, const char *pszField, const char *pszValue); -#endif // FN_FindEntityByString - -#ifdef FN_GetEntityIllum -int FN_GetEntityIllum(edict_t *pEnt); -#endif // FN_GetEntityIllum - -#ifdef FN_FindEntityInSphere -edict_t *FN_FindEntityInSphere(edict_t *pEdictStartSearchAfter, const float *org, float rad); -#endif // FN_FindEntityInSphere - -#ifdef FN_FindClientInPVS -edict_t *FN_FindClientInPVS(edict_t *pEdict); -#endif // FN_FindClientInPVS - -#ifdef FN_EntitiesInPVS -edict_t *FN_EntitiesInPVS(edict_t *pplayer); -#endif // FN_EntitiesInPVS - -#ifdef FN_MakeVectors -void FN_MakeVectors(const float *rgflVector); -#endif // FN_MakeVectors - -#ifdef FN_AngleVectors -void FN_AngleVectors(const float *rgflVector, float *forward, float *right, float *up); -#endif // FN_AngleVectors - -#ifdef FN_CreateEntity -edict_t *FN_CreateEntity(void); -#endif // FN_CreateEntity - -#ifdef FN_RemoveEntity -void FN_RemoveEntity(edict_t *e); -#endif // FN_RemoveEntity - -#ifdef FN_CreateNamedEntity -edict_t *FN_CreateNamedEntity(int className); -#endif // FN_CreateNamedEntity - -#ifdef FN_MakeStatic -void FN_MakeStatic(edict_t *ent); -#endif // FN_MakeStatic - -#ifdef FN_EntIsOnFloor -int FN_EntIsOnFloor(edict_t *ent); -#endif // FN_EntIsOnFloor - -#ifdef FN_DropToFloor -int FN_DropToFloor(edict_t *ent); -#endif // FN_DropToFloor - -#ifdef FN_WalkMove -int FN_WalkMove(edict_t *ent, float yaw, float dist, int iMode); -#endif // FN_WalkMove - -#ifdef FN_SetOrigin -void FN_SetOrigin(edict_t *e, const float *rgflOrigin); -#endif // FN_SetOrigin - -#ifdef FN_EmitSound -void FN_EmitSound(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch); -#endif // FN_EmitSound - -#ifdef FN_EmitAmbientSound -void FN_EmitAmbientSound(edict_t *entity, float *pos, const char *samp, float vol, float attenuation, int fFlags, int pitch); -#endif // FN_EmitAmbientSound - -#ifdef FN_TraceLine -void FN_TraceLine(const float *v1, const float *v2, int fNoMonsters, edict_t *pentToSkip, TraceResult *ptr); -#endif // FN_TraceLine - -#ifdef FN_TraceToss -void FN_TraceToss(edict_t *pent, edict_t *pentToIgnore, TraceResult *ptr); -#endif // FN_TraceToss - -#ifdef FN_TraceMonsterHull -int FN_TraceMonsterHull(edict_t *pEdict, const float *v1, const float *v2, int fNoMonsters, edict_t *pentToSkip, TraceResult *ptr); -#endif // FN_TraceMonsterHull - -#ifdef FN_TraceHull -void FN_TraceHull(const float *v1, const float *v2, int fNoMonsters, int hullNumber, edict_t *pentToSkip, TraceResult *ptr); -#endif // FN_TraceHull - -#ifdef FN_TraceModel -void FN_TraceModel(const float *v1, const float *v2, int hullNumber, edict_t *pent, TraceResult *ptr); -#endif // FN_TraceModel - -#ifdef FN_TraceTexture -const char *FN_TraceTexture(edict_t *pTextureEntity, const float *v1, const float *v2 ); -#endif // FN_TraceTexture - -#ifdef FN_TraceSphere -void FN_TraceSphere(const float *v1, const float *v2, int fNoMonsters, float radius, edict_t *pentToSkip, TraceResult *ptr); -#endif // FN_TraceSphere - -#ifdef FN_GetAimVector -void FN_GetAimVector(edict_t *ent, float speed, float *rgflReturn); -#endif // FN_GetAimVector - -#ifdef FN_ServerCommand -void FN_ServerCommand(char *str); -#endif // FN_ServerCommand - -#ifdef FN_ServerExecute -void FN_ServerExecute(void); -#endif // FN_ServerExecute - -#ifdef FN_engClientCommand -void FN_engClientCommand(edict_t *pEdict, char *szFmt, ...); -#endif // FN_engClientCommand - -#ifdef FN_ParticleEffect -void FN_ParticleEffect(const float *org, const float *dir, float color, float count); -#endif // FN_ParticleEffect - -#ifdef FN_LightStyle -void FN_LightStyle(int style, char *val); -#endif // FN_LightStyle - -#ifdef FN_DecalIndex -int FN_DecalIndex(const char *name); -#endif // FN_DecalIndex - -#ifdef FN_PointContents -int FN_PointContents(const float *rgflVector); -#endif // FN_PointContents - -#ifdef FN_MessageBegin -void FN_MessageBegin(int msg_dest, int msg_type, const float *pOrigin, edict_t *ed); -#endif // FN_MessageBegin - -#ifdef FN_MessageEnd -void FN_MessageEnd(void); -#endif // FN_MessageEnd - -#ifdef FN_WriteByte -void FN_WriteByte(int iValue); -#endif // FN_WriteByte - -#ifdef FN_WriteChar -void FN_WriteChar(int iValue); -#endif // FN_WriteChar - -#ifdef FN_WriteShort -void FN_WriteShort(int iValue); -#endif // FN_WriteShort - -#ifdef FN_WriteLong -void FN_WriteLong(int iValue); -#endif // FN_WriteLong - -#ifdef FN_WriteAngle -void FN_WriteAngle(float flValue); -#endif // FN_WriteAngle - -#ifdef FN_WriteCoord -void FN_WriteCoord(float flValue); -#endif // FN_WriteCoord - -#ifdef FN_WriteString -void FN_WriteString(const char *sz); -#endif // FN_WriteString - -#ifdef FN_WriteEntity -void FN_WriteEntity(int iValue); -#endif // FN_WriteEntity - -#ifdef FN_CVarRegister -void FN_CVarRegister(cvar_t *pCvar); -#endif // FN_CVarRegister - -#ifdef FN_CVarGetFloat -float FN_CVarGetFloat(const char *szVarName); -#endif // FN_CVarGetFloat - -#ifdef FN_CVarGetString -const char *FN_CVarGetString(const char *szVarName); -#endif // FN_CVarGetString - -#ifdef FN_CVarSetFloat -void FN_CVarSetFloat(const char *szVarName, float flValue); -#endif // FN_CVarSetFloat - -#ifdef FN_CVarSetString -void FN_CVarSetString(const char *szVarName, const char *szValue); -#endif // FN_CVarSetString - -#ifdef FN_AlertMessage -void FN_AlertMessage(ALERT_TYPE atype, char *szFmt, ...); -#endif // FN_AlertMessage - -#ifdef FN_EngineFprintf -void FN_EngineFprintf(FILE *pfile, char *szFmt, ...); -#endif // FN_EngineFprintf - -#ifdef FN_PvAllocEntPrivateData -void *FN_PvAllocEntPrivateData(edict_t *pEdict, int32 cb); -#endif // FN_PvAllocEntPrivateData - -#ifdef FN_PvEntPrivateData -void *FN_PvEntPrivateData(edict_t *pEdict); -#endif // FN_PvEntPrivateData - -#ifdef FN_FreeEntPrivateData -void FN_FreeEntPrivateData(edict_t *pEdict); -#endif // FN_FreeEntPrivateData - -#ifdef FN_SzFromIndex -const char *FN_SzFromIndex(int iString); -#endif // FN_SzFromIndex - -#ifdef FN_AllocString -int FN_AllocString(const char *szValue); -#endif // FN_AllocString - -#ifdef FN_GetVarsOfEnt -struct entvars_s *FN_GetVarsOfEnt(edict_t *pEdict); -#endif // FN_GetVarsOfEnt - -#ifdef FN_PEntityOfEntOffset -edict_t *FN_PEntityOfEntOffset(int iEntOffset); -#endif // FN_PEntityOfEntOffset - -#ifdef FN_EntOffsetOfPEntity -int FN_EntOffsetOfPEntity(const edict_t *pEdict); -#endif // FN_EntOffsetOfPEntity - -#ifdef FN_IndexOfEdict -int FN_IndexOfEdict(const edict_t *pEdict); -#endif // FN_IndexOfEdict - -#ifdef FN_PEntityOfEntIndex -edict_t *FN_PEntityOfEntIndex(int iEntIndex); -#endif // FN_PEntityOfEntIndex - -#ifdef FN_FindEntityByVars -edict_t *FN_FindEntityByVars(struct entvars_s *pvars); -#endif // FN_FindEntityByVars - -#ifdef FN_GetModelPtr -void *FN_GetModelPtr(edict_t *pEdict); -#endif // FN_GetModelPtr - -#ifdef FN_RegUserMsg -int FN_RegUserMsg(const char *pszName, int iSize); -#endif // FN_RegUserMsg - -#ifdef FN_AnimationAutomove -void FN_AnimationAutomove(const edict_t *pEdict, float flTime); -#endif // FN_AnimationAutomove - -#ifdef FN_GetBonePosition -void FN_GetBonePosition(const edict_t *pEdict, int iBone, float *rgflOrigin, float *rgflAngles); -#endif // FN_GetBonePosition - -#ifdef FN_FunctionFromName -unsigned long FN_FunctionFromName(const char *pName); -#endif // FN_FunctionFromName - -#ifdef FN_NameForFunction -const char *FN_NameForFunction(unsigned long function); -#endif // FN_NameForFunction - -#ifdef FN_ClientPrintf -void FN_ClientPrintf(edict_t *pEdict, PRINT_TYPE ptype, const char *szMsg); -#endif // FN_ClientPrintf - -#ifdef FN_ServerPrint -void FN_ServerPrint(const char *szMsg); -#endif // FN_ServerPrint - -#ifdef FN_Cmd_Args -const char *FN_Cmd_Args(void); -#endif // FN_Cmd_Args - -#ifdef FN_Cmd_Argv -const char *FN_Cmd_Argv(int argc); -#endif // FN_Cmd_Argv - -#ifdef FN_Cmd_Argc -int FN_Cmd_Argc(void); -#endif // FN_Cmd_Argc - -#ifdef FN_GetAttachment -void FN_GetAttachment(const edict_t *pEdict, int iAttachment, float *rgflOrigin, float *rgflAngles ); -#endif // FN_GetAttachment - -#ifdef FN_CRC32_Init -void FN_CRC32_Init(CRC32_t *pulCRC); -#endif // FN_CRC32_Init - -#ifdef FN_CRC32_ProcessBuffer -void FN_CRC32_ProcessBuffer(CRC32_t *pulCRC, void *p, int len); -#endif // FN_CRC32_ProcessBuffer - -#ifdef FN_CRC32_ProcessByte -void FN_CRC32_ProcessByte(CRC32_t *pulCRC, unsigned char ch); -#endif // FN_CRC32_ProcessByte - -#ifdef FN_CRC32_Final -CRC32_t FN_CRC32_Final(CRC32_t pulCRC); -#endif // FN_CRC32_Final - -#ifdef FN_RandomLong -long FN_RandomLong(long lLow, long lHigh); -#endif // FN_RandomLong - -#ifdef FN_RandomFloat -float FN_RandomFloat(float flLow, float flHigh); -#endif // FN_RandomFloat - -#ifdef FN_SetView -void FN_SetView(const edict_t *pClient, const edict_t *pViewent); -#endif // FN_SetView - -#ifdef FN_Time -float FN_Time(void); -#endif // FN_Time - -#ifdef FN_CrosshairAngle -void FN_CrosshairAngle(const edict_t *pClient, float pitch, float yaw); -#endif // FN_CrosshairAngle - -#ifdef FN_LoadFileForMe -byte *FN_LoadFileForMe(char *filename, int *pLength); -#endif // FN_LoadFileForMe - -#ifdef FN_FreeFile -void FN_FreeFile(void *buffer); -#endif // FN_FreeFile - -#ifdef FN_EndSection -void FN_EndSection(const char *pszSectionName); -#endif // FN_EndSection - -#ifdef FN_CompareFileTime -int FN_CompareFileTime(char *filename1, char *filename2, int *iCompare); -#endif // FN_CompareFileTime - -#ifdef FN_GetGameDir -void FN_GetGameDir(char *szGetGameDir); -#endif // FN_GetGameDir - -#ifdef FN_Cvar_RegisterVariable -void FN_Cvar_RegisterVariable(cvar_t *variable); -#endif // FN_Cvar_RegisterVariable - -#ifdef FN_FadeClientVolume -void FN_FadeClientVolume(const edict_t *pEdict, int fadePercent, int fadeOutSeconds, int holdTime, int fadeInSeconds); -#endif // FN_FadeClientVolume - -#ifdef FN_SetClientMaxspeed -void FN_SetClientMaxspeed(const edict_t *pEdict, float fNewMaxspeed); -#endif // FN_SetClientMaxspeed - -#ifdef FN_CreateFakeClient -edict_t *FN_CreateFakeClient(const char *netname); -#endif // FN_CreateFakeClient - -#ifdef FN_RunPlayerMove -void FN_RunPlayerMove(edict_t *fakeclient, const float *viewangles, float forwardmove, float sidemove, float upmove, unsigned short buttons, byte impulse, byte msec); -#endif // FN_RunPlayerMove - -#ifdef FN_NumberOfEntities -int FN_NumberOfEntities(void); -#endif // FN_NumberOfEntities - -#ifdef FN_GetInfoKeyBuffer -char *FN_GetInfoKeyBuffer(edict_t *e); -#endif // FN_GetInfoKeyBuffer - -#ifdef FN_InfoKeyValue -char *FN_InfoKeyValue(char *infobuffer, char *key); -#endif // FN_InfoKeyValue - -#ifdef FN_SetKeyValue -void FN_SetKeyValue(char *infobuffer, char *key, char *value); -#endif // FN_SetKeyValue - -#ifdef FN_SetClientKeyValue -void FN_SetClientKeyValue(int clientIndex, char *infobuffer, char *key, char *value); -#endif // FN_SetClientKeyValue - -#ifdef FN_IsMapValid -int FN_IsMapValid(char *filename); -#endif // FN_IsMapValid - -#ifdef FN_StaticDecal -void FN_StaticDecal(const float *origin, int decalIndex, int entityIndex, int modelIndex); -#endif // FN_StaticDecal - -#ifdef FN_PrecacheGeneric -int FN_PrecacheGeneric(char *s); -#endif // FN_PrecacheGeneric - -#ifdef FN_GetPlayerUserId -int FN_GetPlayerUserId(edict_t *e ); -#endif // FN_GetPlayerUserId - -#ifdef FN_BuildSoundMsg -void FN_BuildSoundMsg(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed); -#endif // FN_BuildSoundMsg - -#ifdef FN_IsDedicatedServer -int FN_IsDedicatedServer(void); -#endif // FN_IsDedicatedServer - -#ifdef FN_CVarGetPointer -cvar_t *FN_CVarGetPointer(const char *szVarName); -#endif // FN_CVarGetPointer - -#ifdef FN_GetPlayerWONId -unsigned int FN_GetPlayerWONId(edict_t *e); -#endif // FN_GetPlayerWONId - -#ifdef FN_Info_RemoveKey -void FN_Info_RemoveKey( char *s, const char *key); -#endif // FN_Info_RemoveKey - -#ifdef FN_GetPhysicsKeyValue -const char *FN_GetPhysicsKeyValue(const edict_t *pClient, const char *key); -#endif // FN_GetPhysicsKeyValue - -#ifdef FN_SetPhysicsKeyValue -void FN_SetPhysicsKeyValue(const edict_t *pClient, const char *key, const char *value); -#endif // FN_SetPhysicsKeyValue - -#ifdef FN_GetPhysicsInfoString -const char *FN_GetPhysicsInfoString( const edict_t *pClient); -#endif // FN_GetPhysicsInfoString - -#ifdef FN_PrecacheEvent -unsigned short FN_PrecacheEvent(int type, const char *psz); -#endif // FN_PrecacheEvent - -#ifdef FN_PlaybackEvent -void FN_PlaybackEvent(int flags, const edict_t *pInvoker, unsigned short eventindex, float delay, float *origin, float *angles, float fparam1, float fparam2, int iparam1, int iparam2, int bparam1, int bparam2); -#endif // FN_PlaybackEvent - -#ifdef FN_SetFatPVS -unsigned char *FN_SetFatPVS(float *org); -#endif // FN_SetFatPVS - -#ifdef FN_SetFatPAS -unsigned char *FN_SetFatPAS(float *org); -#endif // FN_SetFatPAS - -#ifdef FN_CheckVisibility -int FN_CheckVisibility(const edict_t *entity, unsigned char *pset); -#endif // FN_CheckVisibility - -#ifdef FN_DeltaSetField -void FN_DeltaSetField(struct delta_s *pFields, const char *fieldname); -#endif // FN_DeltaSetField - -#ifdef FN_DeltaUnsetField -void FN_DeltaUnsetField(struct delta_s *pFields, const char *fieldname); -#endif // FN_DeltaUnsetField - -#ifdef FN_DeltaAddEncoder -void FN_DeltaAddEncoder(char *name, void (*conditionalencode)( struct delta_s *pFields, const unsigned char *from, const unsigned char *to ) ); -#endif // FN_DeltaAddEncoder - -#ifdef FN_GetCurrentPlayer -int FN_GetCurrentPlayer(void); -#endif // FN_GetCurrentPlayer - -#ifdef FN_CanSkipPlayer -int FN_CanSkipPlayer(const edict_t *player); -#endif // FN_CanSkipPlayer - -#ifdef FN_DeltaFindField -int FN_DeltaFindField(struct delta_s *pFields, const char *fieldname); -#endif // FN_DeltaFindField - -#ifdef FN_DeltaSetFieldByIndex -void FN_DeltaSetFieldByIndex(struct delta_s *pFields, int fieldNumber); -#endif // FN_DeltaSetFieldByIndex - -#ifdef FN_DeltaUnsetFieldByIndex -void FN_DeltaUnsetFieldByIndex(struct delta_s *pFields, int fieldNumber); -#endif // FN_DeltaUnsetFieldByIndex - -#ifdef FN_SetGroupMask -void FN_SetGroupMask(int mask, int op); -#endif // FN_SetGroupMask - -#ifdef FN_engCreateInstancedBaseline -int FN_engCreateInstancedBaseline(int classname, struct entity_state_s *baseline); -#endif // FN_engCreateInstancedBaseline - -#ifdef FN_Cvar_DirectSet -void FN_Cvar_DirectSet(struct cvar_s *var, char *value); -#endif // FN_Cvar_DirectSet - -#ifdef FN_ForceUnmodified -void FN_ForceUnmodified(FORCE_TYPE type, float *mins, float *maxs, const char *filename); -#endif // FN_ForceUnmodified - -#ifdef FN_GetPlayerStats -void FN_GetPlayerStats(const edict_t *pClient, int *ping, int *packet_loss); -#endif // FN_GetPlayerStats - -#ifdef FN_AddServerCommand -void FN_AddServerCommand(char *cmd_name, void (*function) (void)); -#endif // FN_AddServerCommand - -#ifdef FN_Voice_GetClientListening -qboolean FN_Voice_GetClientListening(int iReceiver, int iSender); -#endif // FN_Voice_GetClientListening - -#ifdef FN_Voice_SetClientListening -qboolean FN_Voice_SetClientListening(int iReceiver, int iSender, qboolean bListen); -#endif // FN_Voice_SetClientListening - -#ifdef FN_GetPlayerAuthId -const char *FN_GetPlayerAuthId(edict_t *e); -#endif // FN_GetPlayerAuthId - - - - - - -#ifdef FN_PrecacheModel_Post -int FN_PrecacheModel_Post(char *s); -#endif // FN_PrecacheModel_Post - -#ifdef FN_PrecacheSound_Post -int FN_PrecacheSound_Post(char *s); -#endif // FN_PrecacheSound_Post - -#ifdef FN_SetModel_Post -void FN_SetModel_Post(edict_t *e, const char *m); -#endif // FN_SetModel_Post - -#ifdef FN_ModelIndex_Post -int FN_ModelIndex_Post(const char *m); -#endif // FN_ModelIndex_Post - -#ifdef FN_ModelFrames_Post -int FN_ModelFrames_Post(int modelIndex); -#endif // FN_ModelFrames_Post - -#ifdef FN_SetSize_Post -void FN_SetSize_Post(edict_t *e, const float *rgflMin, const float *rgflMax); -#endif // FN_SetSize_Post - -#ifdef FN_ChangeLevel_Post -void FN_ChangeLevel_Post(char *s1, char *s2); -#endif // FN_ChangeLevel_Post - -#ifdef FN_GetSpawnParms_Post -void FN_GetSpawnParms_Post(edict_t *ent); -#endif // FN_GetSpawnParms_Post - -#ifdef FN_SaveSpawnParms_Post -void FN_SaveSpawnParms_Post(edict_t *ent); -#endif // FN_SaveSpawnParms_Post - -#ifdef FN_VecToYaw_Post -float FN_VecToYaw_Post(const float *rgflVector); -#endif // FN_VecToYaw_Post - -#ifdef FN_VecToAngles_Post -void FN_VecToAngles_Post(const float *rgflVectorIn, float *rgflVectorOut); -#endif // FN_VecToAngles_Post - -#ifdef FN_MoveToOrigin_Post -void FN_MoveToOrigin_Post(edict_t *ent, const float *pflGoal, float dist, int iMoveType); -#endif // FN_MoveToOrigin_Post - -#ifdef FN_ChangeYaw_Post -void FN_ChangeYaw_Post(edict_t *ent); -#endif // FN_ChangeYaw_Post - -#ifdef FN_ChangePitch_Post -void FN_ChangePitch_Post(edict_t *ent); -#endif // FN_ChangePitch_Post - -#ifdef FN_FindEntityByString_Post -edict_t *FN_FindEntityByString_Post(edict_t *pEdictStartSearchAfter, const char *pszField, const char *pszValue); -#endif // FN_FindEntityByString_Post - -#ifdef FN_GetEntityIllum_Post -int FN_GetEntityIllum_Post(edict_t *pEnt); -#endif // FN_GetEntityIllum_Post - -#ifdef FN_FindEntityInSphere_Post -edict_t *FN_FindEntityInSphere_Post(edict_t *pEdictStartSearchAfter, const float *org, float rad); -#endif // FN_FindEntityInSphere_Post - -#ifdef FN_FindClientInPVS_Post -edict_t *FN_FindClientInPVS_Post(edict_t *pEdict); -#endif // FN_FindClientInPVS_Post - -#ifdef FN_EntitiesInPVS_Post -edict_t *FN_EntitiesInPVS_Post(edict_t *pplayer); -#endif // FN_EntitiesInPVS_Post - -#ifdef FN_MakeVectors_Post -void FN_MakeVectors_Post(const float *rgflVector); -#endif // FN_MakeVectors_Post - -#ifdef FN_AngleVectors_Post -void FN_AngleVectors_Post(const float *rgflVector, float *forward, float *right, float *up); -#endif // FN_AngleVectors_Post - -#ifdef FN_CreateEntity_Post -edict_t *FN_CreateEntity_Post(void); -#endif // FN_CreateEntity_Post - -#ifdef FN_RemoveEntity_Post -void FN_RemoveEntity_Post(edict_t *e); -#endif // FN_RemoveEntity_Post - -#ifdef FN_CreateNamedEntity_Post -edict_t *FN_CreateNamedEntity_Post(int className); -#endif // FN_CreateNamedEntity_Post - -#ifdef FN_MakeStatic_Post -void FN_MakeStatic_Post(edict_t *ent); -#endif // FN_MakeStatic_Post - -#ifdef FN_EntIsOnFloor_Post -int FN_EntIsOnFloor_Post(edict_t *ent); -#endif // FN_EntIsOnFloor_Post - -#ifdef FN_DropToFloor_Post -int FN_DropToFloor_Post(edict_t *ent); -#endif // FN_DropToFloor_Post - -#ifdef FN_WalkMove_Post -int FN_WalkMove_Post(edict_t *ent, float yaw, float dist, int iMode); -#endif // FN_WalkMove_Post - -#ifdef FN_SetOrigin_Post -void FN_SetOrigin_Post(edict_t *e, const float *rgflOrigin); -#endif // FN_SetOrigin_Post - -#ifdef FN_EmitSound_Post -void FN_EmitSound_Post(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch); -#endif // FN_EmitSound_Post - -#ifdef FN_EmitAmbientSound_Post -void FN_EmitAmbientSound_Post(edict_t *entity, float *pos, const char *samp, float vol, float attenuation, int fFlags, int pitch); -#endif // FN_EmitAmbientSound_Post - -#ifdef FN_TraceLine_Post -void FN_TraceLine_Post(const float *v1, const float *v2, int fNoMonsters, edict_t *pentToSkip, TraceResult *ptr); -#endif // FN_TraceLine_Post - -#ifdef FN_TraceToss_Post -void FN_TraceToss_Post(edict_t *pent, edict_t *pentToIgnore, TraceResult *ptr); -#endif // FN_TraceToss_Post - -#ifdef FN_TraceMonsterHull_Post -int FN_TraceMonsterHull_Post(edict_t *pEdict, const float *v1, const float *v2, int fNoMonsters, edict_t *pentToSkip, TraceResult *ptr); -#endif // FN_TraceMonsterHull_Post - -#ifdef FN_TraceHull_Post -void FN_TraceHull_Post(const float *v1, const float *v2, int fNoMonsters, int hullNumber, edict_t *pentToSkip, TraceResult *ptr); -#endif // FN_TraceHull_Post - -#ifdef FN_TraceModel_Post -void FN_TraceModel_Post(const float *v1, const float *v2, int hullNumber, edict_t *pent, TraceResult *ptr); -#endif // FN_TraceModel_Post - -#ifdef FN_TraceTexture_Post -const char *FN_TraceTexture_Post(edict_t *pTextureEntity, const float *v1, const float *v2 ); -#endif // FN_TraceTexture_Post - -#ifdef FN_TraceSphere_Post -void FN_TraceSphere_Post(const float *v1, const float *v2, int fNoMonsters, float radius, edict_t *pentToSkip, TraceResult *ptr); -#endif // FN_TraceSphere_Post - -#ifdef FN_GetAimVector_Post -void FN_GetAimVector_Post(edict_t *ent, float speed, float *rgflReturn); -#endif // FN_GetAimVector_Post - -#ifdef FN_ServerCommand_Post -void FN_ServerCommand_Post(char *str); -#endif // FN_ServerCommand_Post - -#ifdef FN_ServerExecute_Post -void FN_ServerExecute_Post(void); -#endif // FN_ServerExecute_Post - -#ifdef FN_engClientCommand_Post -void FN_engClientCommand_Post(edict_t *pEdict, char *szFmt, ...); -#endif // FN_engClientCommand_Post - -#ifdef FN_ParticleEffect_Post -void FN_ParticleEffect_Post(const float *org, const float *dir, float color, float count); -#endif // FN_ParticleEffect_Post - -#ifdef FN_LightStyle_Post -void FN_LightStyle_Post(int style, char *val); -#endif // FN_LightStyle_Post - -#ifdef FN_DecalIndex_Post -int FN_DecalIndex_Post(const char *name); -#endif // FN_DecalIndex_Post - -#ifdef FN_PointContents_Post -int FN_PointContents_Post(const float *rgflVector); -#endif // FN_PointContents_Post - -#ifdef FN_MessageBegin_Post -void FN_MessageBegin_Post(int msg_dest, int msg_type, const float *pOrigin, edict_t *ed); -#endif // FN_MessageBegin_Post - -#ifdef FN_MessageEnd_Post -void FN_MessageEnd_Post(void); -#endif // FN_MessageEnd_Post - -#ifdef FN_WriteByte_Post -void FN_WriteByte_Post(int iValue); -#endif // FN_WriteByte_Post - -#ifdef FN_WriteChar_Post -void FN_WriteChar_Post(int iValue); -#endif // FN_WriteChar_Post - -#ifdef FN_WriteShort_Post -void FN_WriteShort_Post(int iValue); -#endif // FN_WriteShort_Post - -#ifdef FN_WriteLong_Post -void FN_WriteLong_Post(int iValue); -#endif // FN_WriteLong_Post - -#ifdef FN_WriteAngle_Post -void FN_WriteAngle_Post(float flValue); -#endif // FN_WriteAngle_Post - -#ifdef FN_WriteCoord_Post -void FN_WriteCoord_Post(float flValue); -#endif // FN_WriteCoord_Post - -#ifdef FN_WriteString_Post -void FN_WriteString_Post(const char *sz); -#endif // FN_WriteString_Post - -#ifdef FN_WriteEntity_Post -void FN_WriteEntity_Post(int iValue); -#endif // FN_WriteEntity_Post - -#ifdef FN_CVarRegister_Post -void FN_CVarRegister_Post(cvar_t *pCvar); -#endif // FN_CVarRegister_Post - -#ifdef FN_CVarGetFloat_Post -float FN_CVarGetFloat_Post(const char *szVarName); -#endif // FN_CVarGetFloat_Post - -#ifdef FN_CVarGetString_Post -const char *FN_CVarGetString_Post(const char *szVarName); -#endif // FN_CVarGetString_Post - -#ifdef FN_CVarSetFloat_Post -void FN_CVarSetFloat_Post(const char *szVarName, float flValue); -#endif // FN_CVarSetFloat_Post - -#ifdef FN_CVarSetString_Post -void FN_CVarSetString_Post(const char *szVarName, const char *szValue); -#endif // FN_CVarSetString_Post - -#ifdef FN_AlertMessage_Post -void FN_AlertMessage_Post(ALERT_TYPE atype, char *szFmt, ...); -#endif // FN_AlertMessage_Post - -#ifdef FN_EngineFprintf_Post -void FN_EngineFprintf_Post(FILE *pfile, char *szFmt, ...); -#endif // FN_EngineFprintf_Post - -#ifdef FN_PvAllocEntPrivateData_Post -void *FN_PvAllocEntPrivateData_Post(edict_t *pEdict, long cb); -#endif // FN_PvAllocEntPrivateData_Post - -#ifdef FN_PvEntPrivateData_Post -void *FN_PvEntPrivateData_Post(edict_t *pEdict); -#endif // FN_PvEntPrivateData_Post - -#ifdef FN_FreeEntPrivateData_Post -void FN_FreeEntPrivateData_Post(edict_t *pEdict); -#endif // FN_FreeEntPrivateData_Post - -#ifdef FN_SzFromIndex_Post -const char *FN_SzFromIndex_Post(int iString); -#endif // FN_SzFromIndex_Post - -#ifdef FN_AllocString_Post -int FN_AllocString_Post(const char *szValue); -#endif // FN_AllocString_Post - -#ifdef FN_GetVarsOfEnt_Post -struct entvars_s *FN_GetVarsOfEnt_Post(edict_t *pEdict); -#endif // FN_GetVarsOfEnt_Post - -#ifdef FN_PEntityOfEntOffset_Post -edict_t *FN_PEntityOfEntOffset_Post(int iEntOffset); -#endif // FN_PEntityOfEntOffset_Post - -#ifdef FN_EntOffsetOfPEntity_Post -int FN_EntOffsetOfPEntity_Post(const edict_t *pEdict); -#endif // FN_EntOffsetOfPEntity_Post - -#ifdef FN_IndexOfEdict_Post -int FN_IndexOfEdict_Post(const edict_t *pEdict); -#endif // FN_IndexOfEdict_Post - -#ifdef FN_PEntityOfEntIndex_Post -edict_t *FN_PEntityOfEntIndex_Post(int iEntIndex); -#endif // FN_PEntityOfEntIndex_Post - -#ifdef FN_FindEntityByVars_Post -edict_t *FN_FindEntityByVars_Post(struct entvars_s *pvars); -#endif // FN_FindEntityByVars_Post - -#ifdef FN_GetModelPtr_Post -void *FN_GetModelPtr_Post(edict_t *pEdict); -#endif // FN_GetModelPtr_Post - -#ifdef FN_RegUserMsg_Post -int FN_RegUserMsg_Post(const char *pszName, int iSize); -#endif // FN_RegUserMsg_Post - -#ifdef FN_AnimationAutomove_Post -void FN_AnimationAutomove_Post(const edict_t *pEdict, float flTime); -#endif // FN_AnimationAutomove_Post - -#ifdef FN_GetBonePosition_Post -void FN_GetBonePosition_Post(const edict_t *pEdict, int iBone, float *rgflOrigin, float *rgflAngles); -#endif // FN_GetBonePosition_Post - -#ifdef FN_FunctionFromName_Post -unsigned long FN_FunctionFromName_Post(const char *pName); -#endif // FN_FunctionFromName_Post - -#ifdef FN_NameForFunction_Post -const char *FN_NameForFunction_Post(unsigned long function); -#endif // FN_NameForFunction_Post - -#ifdef FN_ClientPrintf_Post -void FN_ClientPrintf_Post(edict_t *pEdict, PRINT_TYPE ptype, const char *szMsg); -#endif // FN_ClientPrintf_Post - -#ifdef FN_ServerPrint_Post -void FN_ServerPrint_Post(const char *szMsg); -#endif // FN_ServerPrint_Post - -#ifdef FN_Cmd_Args_Post -const char *FN_Cmd_Args_Post(void); -#endif // FN_Cmd_Args_Post - -#ifdef FN_Cmd_Argv_Post -const char *FN_Cmd_Argv_Post(int argc); -#endif // FN_Cmd_Argv_Post - -#ifdef FN_Cmd_Argc_Post -int FN_Cmd_Argc_Post(void); -#endif // FN_Cmd_Argc_Post - -#ifdef FN_GetAttachment_Post -void FN_GetAttachment_Post(const edict_t *pEdict, int iAttachment, float *rgflOrigin, float *rgflAngles ); -#endif // FN_GetAttachment_Post - -#ifdef FN_CRC32_Init_Post -void FN_CRC32_Init_Post(CRC32_t *pulCRC); -#endif // FN_CRC32_Init_Post - -#ifdef FN_CRC32_ProcessBuffer_Post -void FN_CRC32_ProcessBuffer_Post(CRC32_t *pulCRC, void *p, int len); -#endif // FN_CRC32_ProcessBuffer_Post - -#ifdef FN_CRC32_ProcessByte_Post -void FN_CRC32_ProcessByte_Post(CRC32_t *pulCRC, unsigned char ch); -#endif // FN_CRC32_ProcessByte_Post - -#ifdef FN_CRC32_Final_Post -CRC32_t FN_CRC32_Final_Post(CRC32_t pulCRC); -#endif // FN_CRC32_Final_Post - -#ifdef FN_RandomLong_Post -long FN_RandomLong_Post(long lLow, long lHigh); -#endif // FN_RandomLong_Post - -#ifdef FN_RandomFloat_Post -float FN_RandomFloat_Post(float flLow, float flHigh); -#endif // FN_RandomFloat_Post - -#ifdef FN_SetView_Post -void FN_SetView_Post(const edict_t *pClient, const edict_t *pViewent); -#endif // FN_SetView_Post - -#ifdef FN_Time_Post -float FN_Time_Post(void); -#endif // FN_Time_Post - -#ifdef FN_CrosshairAngle_Post -void FN_CrosshairAngle_Post(const edict_t *pClient, float pitch, float yaw); -#endif // FN_CrosshairAngle_Post - -#ifdef FN_LoadFileForMe_Post -byte *FN_LoadFileForMe_Post(char *filename, int *pLength); -#endif // FN_LoadFileForMe_Post - -#ifdef FN_FreeFile_Post -void FN_FreeFile_Post(void *buffer); -#endif // FN_FreeFile_Post - -#ifdef FN_EndSection_Post -void FN_EndSection_Post(const char *pszSectionName); -#endif // FN_EndSection_Post - -#ifdef FN_CompareFileTime_Post -int FN_CompareFileTime_Post(char *filename1, char *filename2, int *iCompare); -#endif // FN_CompareFileTime_Post - -#ifdef FN_GetGameDir_Post -void FN_GetGameDir_Post(char *szGetGameDir); -#endif // FN_GetGameDir_Post - -#ifdef FN_Cvar_RegisterVariable_Post -void FN_Cvar_RegisterVariable_Post(cvar_t *variable); -#endif // FN_Cvar_RegisterVariable_Post - -#ifdef FN_FadeClientVolume_Post -void FN_FadeClientVolume_Post(const edict_t *pEdict, int fadePercent, int fadeOutSeconds, int holdTime, int fadeInSeconds); -#endif // FN_FadeClientVolume_Post - -#ifdef FN_SetClientMaxspeed_Post -void FN_SetClientMaxspeed_Post(const edict_t *pEdict, float fNewMaxspeed); -#endif // FN_SetClientMaxspeed_Post - -#ifdef FN_CreateFakeClient_Post -edict_t *FN_CreateFakeClient_Post(const char *netname); -#endif // FN_CreateFakeClient_Post - -#ifdef FN_RunPlayerMove_Post -void FN_RunPlayerMove_Post(edict_t *fakeclient, const float *viewangles, float forwardmove, float sidemove, float upmove, unsigned short buttons, byte impulse, byte msec); -#endif // FN_RunPlayerMove_Post - -#ifdef FN_NumberOfEntities_Post -int FN_NumberOfEntities_Post(void); -#endif // FN_NumberOfEntities_Post - -#ifdef FN_GetInfoKeyBuffer_Post -char *FN_GetInfoKeyBuffer_Post(edict_t *e); -#endif // FN_GetInfoKeyBuffer_Post - -#ifdef FN_InfoKeyValue_Post -char *FN_InfoKeyValue_Post(char *infobuffer, char *key); -#endif // FN_InfoKeyValue_Post - -#ifdef FN_SetKeyValue_Post -void FN_SetKeyValue_Post(char *infobuffer, char *key, char *value); -#endif // FN_SetKeyValue_Post - -#ifdef FN_SetClientKeyValue_Post -void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, char *key, char *value); -#endif // FN_SetClientKeyValue_Post - -#ifdef FN_IsMapValid_Post -int FN_IsMapValid_Post(char *filename); -#endif // FN_IsMapValid_Post - -#ifdef FN_StaticDecal_Post -void FN_StaticDecal_Post(const float *origin, int decalIndex, int entityIndex, int modelIndex); -#endif // FN_StaticDecal_Post - -#ifdef FN_PrecacheGeneric_Post -int FN_PrecacheGeneric_Post(char *s); -#endif // FN_PrecacheGeneric_Post - -#ifdef FN_GetPlayerUserId_Post -int FN_GetPlayerUserId_Post(edict_t *e ); -#endif // FN_GetPlayerUserId_Post - -#ifdef FN_BuildSoundMsg_Post -void FN_BuildSoundMsg_Post(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed); -#endif // FN_BuildSoundMsg_Post - -#ifdef FN_IsDedicatedServer_Post -int FN_IsDedicatedServer_Post(void); -#endif // FN_IsDedicatedServer_Post - -#ifdef FN_CVarGetPointer_Post -cvar_t *FN_CVarGetPointer_Post(const char *szVarName); -#endif // FN_CVarGetPointer_Post - -#ifdef FN_GetPlayerWONId_Post -unsigned int FN_GetPlayerWONId_Post(edict_t *e); -#endif // FN_GetPlayerWONId_Post - -#ifdef FN_Info_RemoveKey_Post -void FN_Info_RemoveKey_Post( char *s, const char *key); -#endif // FN_Info_RemoveKey_Post - -#ifdef FN_GetPhysicsKeyValue_Post -const char *FN_GetPhysicsKeyValue_Post(const edict_t *pClient, const char *key); -#endif // FN_GetPhysicsKeyValue_Post - -#ifdef FN_SetPhysicsKeyValue_Post -void FN_SetPhysicsKeyValue_Post(const edict_t *pClient, const char *key, const char *value); -#endif // FN_SetPhysicsKeyValue_Post - -#ifdef FN_GetPhysicsInfoString_Post -const char *FN_GetPhysicsInfoString_Post( const edict_t *pClient); -#endif // FN_GetPhysicsInfoString_Post - -#ifdef FN_PrecacheEvent_Post -unsigned short FN_PrecacheEvent_Post(int type, const char *psz); -#endif // FN_PrecacheEvent_Post - -#ifdef FN_PlaybackEvent_Post -void FN_PlaybackEvent_Post(int flags, const edict_t *pInvoker, unsigned short eventindex, float delay, float *origin, float *angles, float fparam1, float fparam2, int iparam1, int iparam2, int bparam1, int bparam2); -#endif // FN_PlaybackEvent_Post - -#ifdef FN_SetFatPVS_Post -unsigned char *FN_SetFatPVS_Post(float *org); -#endif // FN_SetFatPVS_Post - -#ifdef FN_SetFatPAS_Post -unsigned char *FN_SetFatPAS_Post(float *org); -#endif // FN_SetFatPAS_Post - -#ifdef FN_CheckVisibility_Post -int FN_CheckVisibility_Post(const edict_t *entity, unsigned char *pset); -#endif // FN_CheckVisibility_Post - -#ifdef FN_DeltaSetField_Post -void FN_DeltaSetField_Post(struct delta_s *pFields, const char *fieldname); -#endif // FN_DeltaSetField_Post - -#ifdef FN_DeltaUnsetField_Post -void FN_DeltaUnsetField_Post(struct delta_s *pFields, const char *fieldname); -#endif // FN_DeltaUnsetField_Post - -#ifdef FN_DeltaAddEncoder_Post -void FN_DeltaAddEncoder_Post(char *name, void (*conditionalencode)( struct delta_s *pFields, const unsigned char *from, const unsigned char *to ) ); -#endif // FN_DeltaAddEncoder_Post - -#ifdef FN_GetCurrentPlayer_Post -int FN_GetCurrentPlayer_Post(void); -#endif // FN_GetCurrentPlayer_Post - -#ifdef FN_CanSkipPlayer_Post -int FN_CanSkipPlayer_Post(const edict_t *player); -#endif // FN_CanSkipPlayer_Post - -#ifdef FN_DeltaFindField_Post -int FN_DeltaFindField_Post(struct delta_s *pFields, const char *fieldname); -#endif // FN_DeltaFindField_Post - -#ifdef FN_DeltaSetFieldByIndex_Post -void FN_DeltaSetFieldByIndex_Post(struct delta_s *pFields, int fieldNumber); -#endif // FN_DeltaSetFieldByIndex_Post - -#ifdef FN_DeltaUnsetFieldByIndex_Post -void FN_DeltaUnsetFieldByIndex_Post(struct delta_s *pFields, int fieldNumber); -#endif // FN_DeltaUnsetFieldByIndex_Post - -#ifdef FN_SetGroupMask_Post -void FN_SetGroupMask_Post(int mask, int op); -#endif // FN_SetGroupMask_Post - -#ifdef FN_engCreateInstancedBaseline_Post -int FN_engCreateInstancedBaseline_Post(int classname, struct entity_state_s *baseline); -#endif // FN_engCreateInstancedBaseline_Post - -#ifdef FN_Cvar_DirectSet_Post -void FN_Cvar_DirectSet_Post(struct cvar_s *var, char *value); -#endif // FN_Cvar_DirectSet_Post - -#ifdef FN_ForceUnmodified_Post -void FN_ForceUnmodified_Post(FORCE_TYPE type, float *mins, float *maxs, const char *filename); -#endif // FN_ForceUnmodified_Post - -#ifdef FN_GetPlayerStats_Post -void FN_GetPlayerStats_Post(const edict_t *pClient, int *ping, int *packet_loss); -#endif // FN_GetPlayerStats_Post - -#ifdef FN_AddServerCommand_Post -void FN_AddServerCommand_Post(char *cmd_name, void (*function)(void)); -#endif // FN_AddServerCommand_Post - -#ifdef FN_Voice_GetClientListening_Post -qboolean FN_Voice_GetClientListening_Post(int iReceiver, int iSender); -#endif // FN_Voice_GetClientListening_Post - -#ifdef FN_Voice_SetClientListening_Post -qboolean FN_Voice_SetClientListening_Post(int iReceiver, int iSender, qboolean bListen); -#endif // FN_Voice_SetClientListening_Post - -#ifdef FN_GetPlayerAuthId_Post -const char *FN_GetPlayerAuthId_Post(edict_t *e); -#endif // FN_GetPlayerAuthId - - - - -#ifdef FN_OnFreeEntPrivateData -void FN_OnFreeEntPrivateData(edict_t *pEnt); -#endif // FN_OnFreeEntPrivateData - -#ifdef FN_GameShutdown -void FN_GameShutdown(void); -#endif // FN_GameShutdown - -#ifdef FN_ShouldCollide -int FN_ShouldCollide(edict_t *pentTouched, edict_t *pentOther); -#endif // FN_ShouldCollide - - - - - -#ifdef FN_OnFreeEntPrivateData_Post -void FN_OnFreeEntPrivateData_Post(edict_t *pEnt); -#endif // FN_OnFreeEntPrivateData_Post - -#ifdef FN_GameShutdown_Post -void FN_GameShutdown_Post(void); -#endif // FN_GameShutdown_Post - -#ifdef FN_ShouldCollide_Post -int FN_ShouldCollide_Post(edict_t *pentTouched, edict_t *pentOther); -#endif // FN_ShouldCollide_Post - -#endif // USE_METAMOD - - -#ifdef FN_AMXX_QUERY -void FN_AMXX_QUERY(void); -#endif // FN_AMXX_QUERY - -#ifdef FN_AMXX_ATTACH -void FN_AMXX_ATTACH(void); -#endif // FN_AMXX_ATTACH - -#ifdef FN_AMXX_DETACH -void FN_AMXX_DETACH(void); -#endif // FN_AMXX_DETACH - -#ifdef FN_AMXX_PLUGINSLOADED -void FN_AMXX_PLUGINSLOADED(void); -#endif // FN_AMXX_PLUGINSLOADED - -// *** Types *** -typedef void* (*PFN_REQ_FNPTR)(const char * /*name*/); - -// ***** Module funcs stuff ***** -enum ForwardExecType -{ - ET_IGNORE = 0, // Ignore return vaue - ET_STOP, // Stop on PLUGIN_HANDLED - ET_STOP2, // Stop on PLUGIN_HANDLED, continue on other values, return biggest return value - ET_CONTINUE, // Continue; return biggest return value -}; - -enum ForwardParam -{ - FP_DONE = -1, // specify this as the last argument - // only tells the function that there are no more arguments - FP_CELL, // normal cell - FP_FLOAT, // float; used as normal cell though - FP_STRING, // string - FP_STRINGEX, // string; will be updated to the last function's value - FP_ARRAY, // array; use the return value of prepareArray. -}; - -enum PlayerProp -{ - Player_Name, //String - Player_Ip, //String - Player_Team, //String - Player_Ingame, //bool - Player_Authorized, //bool - Player_Vgui, //bool - Player_Time, //float - Player_Playtime, //float - Player_MenuExpire, //float - Player_Weapons, //struct{int,int}[32] - Player_CurrentWeapon, //int - Player_TeamID, //int - Player_Deaths, //int - Player_Aiming, //int - Player_Menu, //int - Player_Keys, //int - Player_Flags, //int[32] - Player_Newmenu, //int - Player_NewmenuPage, //int -}; - -typedef void (*AUTHORIZEFUNC)(int player, const char *authstring); - -typedef int (*PFN_ADD_NATIVES) (const AMX_NATIVE_INFO * /*list*/); -typedef char * (*PFN_BUILD_PATHNAME) (const char * /*format*/, ...); -typedef char * (*PFN_BUILD_PATHNAME_R) (char * /*buffer*/, size_t /* maxlen */, const char * /* format */, ...); -typedef cell * (*PFN_GET_AMXADDR) (AMX * /*amx*/, cell /*offset*/); -typedef void (*PFN_PRINT_SRVCONSOLE) (char * /*format*/, ...); -typedef const char * (*PFN_GET_MODNAME) (void); -typedef const char * (*PFN_GET_AMXSCRIPTNAME) (int /*id*/); -typedef AMX * (*PFN_GET_AMXSCRIPT) (int /*id*/); -typedef int (*PFN_FIND_AMXSCRIPT_BYAMX) (const AMX * /*amx*/); -typedef int (*PFN_FIND_AMXSCRIPT_BYNAME) (const char * /*name*/); -typedef int (*PFN_SET_AMXSTRING) (AMX * /*amx*/, cell /*amx_addr*/, const char * /* source */, int /* max */); -typedef char * (*PFN_GET_AMXSTRING) (AMX * /*amx*/, cell /*amx_addr*/, int /*bufferId*/, int * /*pLen*/); -typedef int (*PFN_GET_AMXSTRINGLEN) (const cell *ptr); -typedef char * (*PFN_FORMAT_AMXSTRING) (AMX * /*amx*/, cell * /*params*/, int /*startParam*/, int * /*pLen*/); -typedef void (*PFN_COPY_AMXMEMORY) (cell * /*dest*/, const cell * /*src*/, int /*len*/); -typedef void (*PFN_LOG) (const char * /*fmt*/, ...); -typedef void (*PFN_LOG_ERROR) (AMX * /*amx*/, int /*err*/, const char * /*fmt*/, ...); -typedef int (*PFN_RAISE_AMXERROR) (AMX * /*amx*/, int /*error*/); -typedef int (*PFN_REGISTER_FORWARD) (const char * /*funcname*/, ForwardExecType /*exectype*/, ... /*paramtypes terminated by PF_DONE*/); -typedef int (*PFN_EXECUTE_FORWARD) (int /*id*/, ... /*params*/); -typedef cell (*PFN_PREPARE_CELLARRAY) (cell * /*ptr*/, unsigned int /*size*/); -typedef cell (*PFN_PREPARE_CHARARRAY) (char * /*ptr*/, unsigned int /*size*/); -typedef cell (*PFN_PREPARE_CELLARRAY_A) (cell * /*ptr*/, unsigned int /*size*/, bool /*copyBack*/); -typedef cell (*PFN_PREPARE_CHARARRAY_A) (char * /*ptr*/, unsigned int /*size*/, bool /*copyBack*/); -typedef int (*PFN_IS_PLAYER_VALID) (int /*id*/); -typedef const char * (*PFN_GET_PLAYER_NAME) (int /*id*/); -typedef const char * (*PFN_GET_PLAYER_IP) (int /*id*/); -typedef int (*PFN_IS_PLAYER_INGAME) (int /*id*/); -typedef int (*PFN_IS_PLAYER_BOT) (int /*id*/); -typedef int (*PFN_IS_PLAYER_AUTHORIZED) (int /*id*/); -typedef float (*PFN_GET_PLAYER_TIME) (int /*id*/); -typedef float (*PFN_GET_PLAYER_PLAYTIME) (int /*id*/); -typedef int (*PFN_GETPLAYERFLAGS) (int /* id*/); -typedef int (*PFN_GET_PLAYER_CURWEAPON) (int /*id*/); -typedef const char * (*PFN_GET_PLAYER_TEAM) (int /*id*/); -typedef int (*PFN_GET_PLAYER_TEAMID) (int /*id*/); -typedef int (*PFN_GET_PLAYER_DEATHS) (int /*id*/); -typedef int (*PFN_GET_PLAYER_MENU) (int /*id*/); -typedef int (*PFN_GET_PLAYER_KEYS) (int /*id*/); -typedef int (*PFN_IS_PLAYER_ALIVE) (int /*id*/); -typedef int (*PFN_GET_PLAYER_FRAGS) (int /*id*/); -typedef int (*PFN_IS_PLAYER_CONNECTING) (int /*id*/); -typedef int (*PFN_IS_PLAYER_HLTV) (int /*id*/); -typedef int (*PFN_GET_PLAYER_ARMOR) (int /*id*/); -typedef int (*PFN_GET_PLAYER_HEALTH) (int /*id*/); -#ifdef USE_METAMOD -typedef edict_t * (*PFN_GET_PLAYER_EDICT) (int /*id*/); -#else -typedef void * (*PFN_GET_PLAYER_EDICT) (int /*id*/); -#endif -typedef void * (*PFN_PLAYER_PROP_ADDR) (int /*id*/, int /*prop*/); - -#ifdef MEMORY_TEST -typedef void * (*PFN_ALLOCATOR) (const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/, - const unsigned int /*type*/, const size_t /*size*/); -typedef void * (*PFN_REALLOCATOR) (const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/, - const unsigned int /*type*/, const size_t /*size*/, void* /*addr*/ ); -typedef void (*PFN_DEALLOCATOR) (const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/, - const unsigned int /*type*/, const void* /*addr*/ ); -#endif -typedef int (*PFN_AMX_EXEC) (AMX* /*amx*/, cell* /*return val*/, int /*index*/); -typedef int (*PFN_AMX_EXECV) (AMX* /*amx*/, cell* /*return val*/, int /*index*/, int /*numparams*/, cell[] /*params*/); -typedef int (*PFN_AMX_ALLOT) (AMX* /*amx*/, int /*length*/, cell* /*amx_addr*/, cell** /*phys_addr*/); -typedef int (*PFN_AMX_FINDPUBLIC) (AMX* /*amx*/, char* /*func name*/, int* /*index*/); -typedef int (*PFN_AMX_FINDNATIVE) (AMX* /*amx*/, char* /*func name*/, int* /*index*/); -typedef int (*PFN_LOAD_AMXSCRIPT) (AMX* /*amx*/, void** /*code*/, const char* /*path*/, char[64] /*error info*/, int /* debug */); -typedef int (*PFN_UNLOAD_AMXSCRIPT) (AMX* /*amx*/,void** /*code*/); -typedef cell (*PFN_REAL_TO_CELL) (REAL /*x*/); -typedef REAL (*PFN_CELL_TO_REAL) (cell /*x*/); -typedef int (*PFN_REGISTER_SPFORWARD) (AMX * /*amx*/, int /*func*/, ... /*params*/); -typedef int (*PFN_REGISTER_SPFORWARD_BYNAME) (AMX * /*amx*/, const char * /*funcName*/, ... /*params*/); -typedef void (*PFN_UNREGISTER_SPFORWARD) (int /*id*/); -typedef void (*PFN_MERGEDEFINITION_FILE) (const char * /*filename*/); -typedef const char * (*PFN_FORMAT) (const char * /*fmt*/, ... /*params*/); -typedef void (*PFN_REGISTERFUNCTION) (void * /*pfn*/, const char * /*desc*/); -typedef int (*PFN_AMX_PUSH) (AMX * /*amx*/, cell /*value*/); -typedef int (*PFN_SET_TEAM_INFO) (int /*player */, int /*teamid */, const char * /*name */); -typedef void (*PFN_REG_AUTH_FUNC) (AUTHORIZEFUNC); -typedef void (*PFN_UNREG_AUTH_FUNC) (AUTHORIZEFUNC); - -extern PFN_ADD_NATIVES g_fn_AddNatives; -extern PFN_BUILD_PATHNAME g_fn_BuildPathname; -extern PFN_BUILD_PATHNAME_R g_fn_BuildPathnameR; -extern PFN_GET_AMXADDR g_fn_GetAmxAddr; -extern PFN_PRINT_SRVCONSOLE g_fn_PrintSrvConsole; -extern PFN_GET_MODNAME g_fn_GetModname; -extern PFN_GET_AMXSCRIPTNAME g_fn_GetAmxScriptName; -extern PFN_GET_AMXSCRIPT g_fn_GetAmxScript; -extern PFN_FIND_AMXSCRIPT_BYAMX g_fn_FindAmxScriptByAmx; -extern PFN_FIND_AMXSCRIPT_BYNAME g_fn_FindAmxScriptByName; -extern PFN_SET_AMXSTRING g_fn_SetAmxString; -extern PFN_GET_AMXSTRING g_fn_GetAmxString; -extern PFN_GET_AMXSTRINGLEN g_fn_GetAmxStringLen; -extern PFN_FORMAT_AMXSTRING g_fn_FormatAmxString; -extern PFN_COPY_AMXMEMORY g_fn_CopyAmxMemory; -extern PFN_LOG g_fn_Log; -extern PFN_LOG_ERROR g_fn_LogErrorFunc; -extern PFN_RAISE_AMXERROR g_fn_RaiseAmxError; -extern PFN_REGISTER_FORWARD g_fn_RegisterForward; -extern PFN_EXECUTE_FORWARD g_fn_ExecuteForward; -extern PFN_PREPARE_CELLARRAY g_fn_PrepareCellArray; -extern PFN_PREPARE_CHARARRAY g_fn_PrepareCharArray; -extern PFN_PREPARE_CELLARRAY_A g_fn_PrepareCellArrayA; -extern PFN_PREPARE_CHARARRAY_A g_fn_PrepareCharArrayA; -extern PFN_IS_PLAYER_VALID g_fn_IsPlayerValid; -extern PFN_GET_PLAYER_NAME g_fn_GetPlayerName; -extern PFN_GET_PLAYER_IP g_fn_GetPlayerIP; -extern PFN_IS_PLAYER_INGAME g_fn_IsPlayerIngame; -extern PFN_IS_PLAYER_BOT g_fn_IsPlayerBot; -extern PFN_IS_PLAYER_AUTHORIZED g_fn_IsPlayerAuthorized; -extern PFN_GET_PLAYER_TIME g_fn_GetPlayerTime; -extern PFN_GET_PLAYER_PLAYTIME g_fn_GetPlayerPlayTime; -extern PFN_GET_PLAYER_CURWEAPON g_fn_GetPlayerCurweapon; -extern PFN_GET_PLAYER_TEAMID g_fn_GetPlayerTeamID; -extern PFN_GET_PLAYER_DEATHS g_fn_GetPlayerDeaths; -extern PFN_GET_PLAYER_MENU g_fn_GetPlayerMenu; -extern PFN_GET_PLAYER_KEYS g_fn_GetPlayerKeys; -extern PFN_IS_PLAYER_ALIVE g_fn_IsPlayerAlive; -extern PFN_GET_PLAYER_FRAGS g_fn_GetPlayerFrags; -extern PFN_IS_PLAYER_CONNECTING g_fn_IsPlayerConnecting; -extern PFN_IS_PLAYER_HLTV g_fn_IsPlayerHLTV; -extern PFN_GET_PLAYER_ARMOR g_fn_GetPlayerArmor; -extern PFN_GET_PLAYER_HEALTH g_fn_GetPlayerHealth; -extern PFN_AMX_EXEC g_fn_AmxExec; -extern PFN_AMX_ALLOT g_fn_AmxAllot; -extern PFN_AMX_FINDPUBLIC g_fn_AmxFindPublic; -extern PFN_LOAD_AMXSCRIPT g_fn_LoadAmxScript; -extern PFN_UNLOAD_AMXSCRIPT g_fn_UnloadAmxScript; -extern PFN_REAL_TO_CELL g_fn_RealToCell; -extern PFN_CELL_TO_REAL g_fn_CellToReal; -extern PFN_REGISTER_SPFORWARD g_fn_RegisterSPForward; -extern PFN_REGISTER_SPFORWARD_BYNAME g_fn_RegisterSPForwardByName; -extern PFN_UNREGISTER_SPFORWARD g_fn_UnregisterSPForward; -extern PFN_MERGEDEFINITION_FILE g_fn_MergeDefinition_File; -extern PFN_AMX_FINDNATIVE g_fn_AmxFindNative; -extern PFN_GETPLAYERFLAGS g_fn_GetPlayerFlags; -extern PFN_GET_PLAYER_EDICT g_fn_GetPlayerEdict; -extern PFN_FORMAT g_fn_Format; -extern PFN_GET_PLAYER_TEAM g_fn_GetPlayerTeam; -extern PFN_REGISTERFUNCTION g_fn_RegisterFunction; -extern PFN_REQ_FNPTR g_fn_RequestFunction; -extern PFN_AMX_PUSH g_fn_AmxPush; -extern PFN_SET_TEAM_INFO g_fn_SetTeamInfo; -extern PFN_PLAYER_PROP_ADDR g_fn_PlayerPropAddr; -extern PFN_REG_AUTH_FUNC g_fn_RegAuthFunc; -extern PFN_UNREG_AUTH_FUNC g_fn_UnregAuthFunc; - -#ifdef MAY_NEVER_BE_DEFINED -// Function prototypes for intellisense and similar systems -// They understand #if 0 so we use #ifdef MAY_NEVER_BE_DEFINED -int MF_AddNatives (const AMX_NATIVE_INFO *list) { } -char * MF_BuildPathname (const char * format, ...) { } -char * MF_BuildPathnameR (char *buffer, size_t maxlen, const char *fmt, ...) { } -cell * MF_GetAmxAddr (AMX * amx, cell offset) { } -void MF_PrintSrvConsole (char * format, ...) { } -const char * MF_GetModname (void) { } -const char * MF_GetScriptName (int id) { } -AMX * MF_GetScriptAmx (int id) { } -int MF_FindScriptByAmx (const AMX * amx) { } -int MF_FindScriptByAmx (const char * name) { } -int MF_SetAmxString (AMX * amx, cell amx_addr, const char * source , int max ) { } -char * MF_GetAmxString (AMX * amx, cell amx_addr, int bufferId, int * pLen) { } -int MF_GetAmxStringLen (const cell *ptr) { } -char * MF_FormatAmxString (AMX * amx, cell * params, int startParam, int * pLen) { } -void MF_CopyAmxMemory (cell * dest, const cell * src, int len) { } -void MF_Log (const char * fmt, ...) { } -void MF_LogError (AMX * amx, int err, const char *fmt, ...) { } -int MF_RaiseAmxError (AMX * amx, int error) { } -int MF_RegisterForward (const char * funcname, ForwardExecType exectype, ...) { } -int MF_ExecuteForward (int id, ...) { } -cell MF_PrepareCellArray (cell * ptr, unsigned int size) { } -cell MF_PrepareCharArray (char * ptr, unsigned int size) { } -cell MF_PrepareCellArrayA (cell * ptr, unsigned int size, bool copyBack) { } -cell MF_PrepareCharArrayA (char * ptr, unsigned int size, bool copyBack) { } -int MF_IsPlayerValid (int id) { } -const char * MF_GetPlayerName (int id) { } -const char * MF_GetPlayerIP (int id) { } -int MF_IsPlayerIngame (int id) { } -int MF_IsPlayerBot (int id) { } -int MF_IsPlayerAuthorized (int id) { } -float MF_GetPlayerTime (int id) { } -float MF_GetPlayerPlayTime (int id) { } -int MF_GetPlayerCurweapon (int id) { } -const char * MF_GetPlayerTeam (int id) { } -int MF_GetPlayerTeamID (int id) { } -int MF_GetPlayerDeaths (int id) { } -int MF_GetPlayerMenu (int id) { } -int MF_GetPlayerKeys (int id) { } -int MF_IsPlayerAlive (int id) { } -int MF_GetPlayerFrags (int id) { } -int MF_IsPlayerConnecting (int id) { } -int MF_IsPlayerHLTV (int id) { } -int MF_GetPlayerArmor (int id) { } -int MF_GetPlayerHealth (int id) { } -REAL amx_ctof (cell x) { } -cell amx_ftoc (float x) { } -int MF_RegisterSPForwardByName (AMX * amx, const char *str, ...) { } -int MF_RegisterSPForward (AMX * amx, int func, ...) { } -void MF_UnregisterSPForward (int id) { } -int MF_GetPlayerFlags (int id) { } -edict_t* MF_GetPlayerEdict (int id) { } -const char * MF_Format (const char *fmt, ...) { } -void MF_RegisterFunction (void *pfn, const char *description) { } -void * MF_RequestFunction (const char *description) { } -int MF_AmxPush (AMX *amx, cell *params) { } -int MF_AmxExec (AMX *amx, cell *retval, int idx) { } -int MF_SetPlayerTeamInfo (int id, int teamid, const char *teamname) { } -void * MF_PlayerPropAddr (int id, int prop) { } -void MF_RegAuthFunc (AUTHORIZEFUNC fn) { } -void MF_UnregAuthFunc (AUTHORIZEFUNC fn) { } -#endif // MAY_NEVER_BE_DEFINED - -#define MF_AddNatives g_fn_AddNatives -#define MF_BuildPathname g_fn_BuildPathname -#define MF_BuildPathnameR g_fn_BuildPathnameR -#define MF_FormatAmxString g_fn_FormatAmxString -#define MF_GetAmxAddr g_fn_GetAmxAddr -#define MF_PrintSrvConsole g_fn_PrintSrvConsole -#define MF_GetModname g_fn_GetModname -#define MF_GetScriptName g_fn_GetAmxScriptName -#define MF_GetScriptAmx g_fn_GetAmxScript -#define MF_FindScriptByAmx g_fn_FindAmxScriptByAmx -#define MF_FindScriptByName g_fn_FindAmxScriptByName -#define MF_SetAmxString g_fn_SetAmxString -#define MF_GetAmxString g_fn_GetAmxString -#define MF_GetAmxStringLen g_fn_GetAmxStringLen -#define MF_CopyAmxMemory g_fn_CopyAmxMemory -void MF_Log(const char *fmt, ...); -void MF_LogError(AMX *amx, int err, const char *fmt, ...); -#define MF_RaiseAmxError g_fn_RaiseAmxError -#define MF_RegisterForward g_fn_RegisterForward -#define MF_ExecuteForward g_fn_ExecuteForward -#define MF_PrepareCellArray g_fn_PrepareCellArray -#define MF_PrepareCharArray g_fn_PrepareCharArray -#define MF_PrepareCellArrayA g_fn_PrepareCellArrayA -#define MF_PrepareCharArrayA g_fn_PrepareCharArrayA -#define MF_IsPlayerValid g_fn_IsPlayerValid -#define MF_GetPlayerName g_fn_GetPlayerName -#define MF_GetPlayerIP g_fn_GetPlayerIP -#define MF_IsPlayerIngame g_fn_IsPlayerIngame -#define MF_IsPlayerBot g_fn_IsPlayerBot -#define MF_IsPlayerAuthorized g_fn_IsPlayerAuthorized -#define MF_GetPlayerTime g_fn_GetPlayerTime -#define MF_GetPlayerPlayTime g_fn_GetPlayerPlayTime -#define MF_GetPlayerCurweapon g_fn_GetPlayerCurweapon -#define MF_GetPlayerTeam g_fn_GetPlayerTeam -#define MF_GetPlayerTeamID g_fn_GetPlayerTeamID -#define MF_GetPlayerDeaths g_fn_GetPlayerDeaths -#define MF_GetPlayerMenu g_fn_GetPlayerMenu -#define MF_GetPlayerKeys g_fn_GetPlayerKeys -#define MF_IsPlayerAlive g_fn_IsPlayerAlive -#define MF_GetPlayerFrags g_fn_GetPlayerFrags -#define MF_IsPlayerConnecting g_fn_IsPlayerConnecting -#define MF_IsPlayerHLTV g_fn_IsPlayerHLTV -#define MF_GetPlayerArmor g_fn_GetPlayerArmor -#define MF_GetPlayerHealth g_fn_GetPlayerHealth -#define MF_AmxExec g_fn_AmxExec -#define MF_AmxExecv g_fn_AmxExecv -#define MF_AmxFindPublic g_fn_AmxFindPublic -#define MF_AmxAllot g_fn_AmxAllot -#define MF_AmxFindNative g_fn_AmxFindNative -#define MF_LoadAmxScript g_fn_LoadAmxScript -#define MF_UnloadAmxScript g_fn_UnloadAmxScript -#define MF_MergeDefinitionFile g_fn_MergeDefinition_File -#define amx_ctof g_fn_CellToReal -#define amx_ftoc g_fn_RealToCell -#define MF_RegisterSPForwardByName g_fn_RegisterSPForwardByName -#define MF_RegisterSPForward g_fn_RegisterSPForward -#define MF_UnregisterSPForward g_fn_UnregisterSPForward -#define MF_GetPlayerFlags g_fn_GetPlayerFlags -#define MF_GetPlayerEdict g_fn_GetPlayerEdict -#define MF_Format g_fn_Format -#define MF_RegisterFunction g_fn_RegisterFunction -#define MF_RequestFunction g_fn_RequestFunction -#define MF_AmxPush g_fn_AmxPush -#define MF_SetPlayerTeamInfo g_fn_SetTeamInfo -#define MF_PlayerPropAddr g_fn_PlayerPropAddr -#define MF_RegAuthFunc g_fn_RegAuthFunc -#define MF_UnregAuthFunc g_fn_UnregAuthFunc - -#ifdef MEMORY_TEST -/*** Memory ***/ -void *operator new(size_t reportedSize); -void *operator new[](size_t reportedSize); -void *operator new(size_t reportedSize, const char *sourceFile, int sourceLine); -void *operator new[](size_t reportedSize, const char *sourceFile, int sourceLine); -void operator delete(void *reportedAddress); -void operator delete[](void *reportedAddress); - -// Allocation types -extern const unsigned int m_alloc_unknown; -extern const unsigned int m_alloc_new; -extern const unsigned int m_alloc_new_array; -extern const unsigned int m_alloc_malloc; -extern const unsigned int m_alloc_calloc; -extern const unsigned int m_alloc_realloc; -extern const unsigned int m_alloc_delete; -extern const unsigned int m_alloc_delete_array; -extern const unsigned int m_alloc_free; - -// To be called before new / delete -void Mem_SetOwner(const char *filename, int line, const char *function); -// Actual allocator -void * Mem_Allocator(const char *sourceFile, const unsigned int sourceLine, const char *sourceFunc, - const unsigned int allocationType, const size_t reportedSize); -void * Mem_Reallocator(const char *sourceFile, const unsigned int sourceLine, const char *sourceFunc, - const unsigned int reallocationType, const size_t reportedSize, void *reportedAddress); -void Mem_Deallocator(const char *sourceFile, const unsigned int sourceLine, const char *sourceFunc, - const unsigned int deallocationType, void *reportedAddress); - -// memory macros -#ifndef __FUNCTION__ -#define __FUNCTION__ "??" -#endif - -// call Mem_SetOwner, followed by the actual new operator -#define new (Mem_SetOwner(__FILE__,__LINE__,__FUNCTION__),false) ? NULL : new -// call Mem_SetOwner, followed by the actual delete operator -#define delete (Mem_SetOwner(__FILE__,__LINE__,__FUNCTION__),false) ? Mem_SetOwner("",0,"") : delete -#define malloc(sz) Mem_Allocator (__FILE__,__LINE__,__FUNCTION__,m_alloc_malloc,sz) -#define calloc(sz) Mem_Allocator (__FILE__,__LINE__,__FUNCTION__,m_alloc_calloc,sz) -#define realloc(ptr,sz) Mem_Reallocator(__FILE__,__LINE__,__FUNCTION__,m_alloc_realloc,sz,ptr) -#define free(ptr) Mem_Deallocator(__FILE__,__LINE__,__FUNCTION__,m_alloc_free,ptr) - -#endif //MEMORY_TEST - -#endif // #ifndef __AMXXMODULE_H__ diff --git a/dlls/arrayx/libstdc++.a b/dlls/arrayx/libstdc++.a deleted file mode 100644 index 168dd72d28d187a4532b58f073e9c7761d6ac19f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1140874 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ℜ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 (Ag?RvY7%uX|P07H|L%6K`Wdpl# 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 Qyy}D4C}<~sX?|$^1;BeBivR!s diff --git a/dlls/arrayx/makefile b/dlls/arrayx/makefile deleted file mode 100644 index a65a8d9e..00000000 --- a/dlls/arrayx/makefile +++ /dev/null @@ -1,58 +0,0 @@ -#(C)2004-2005 AMX Mod X Development Team -# Makefile written by David "BAILOPAN" Anderson - -### EDIT BELOW FOR OTHER PROJECTS ### - -OPT_FLAGS = -funroll-loops -s -pipe -fomit-frame-pointer-fexceptions -DEBUG_FLAGS = -g -ggdb3 -CPP = gcc -NAME = array_amxx - -OBJECTS = amxxmodule.cpp Array.cpp BinTrieNatives.cpp Capsule.cpp CArray.cpp CBinTrie.cpp CKeytable.cpp JudyExtra.cpp ListNatives.cpp MapNatives.cpp - -LINK = Judy.a libstdc++.a - -ifeq "$(DEBUG)" "true" - BIN_DIR = Debug - CFLAGS = $(DEBUG_FLAGS) -else - BIN_DIR = Release - CFLAGS = $(OPT_FLAGS) -endif - -CFLAGS += -DNDEBUG -fPIC -Wno-deprecated -DHAVE_STDINT_H -fexceptions -fno-rtti - -ifeq "$(AMD64)" "true" - BINARY = $(NAME)_amd64.so - CFLAGS += -DPAWN_CELL_SIZE=64 -DHAVE_I64 -m64 -else - BINARY = $(NAME)_i386.so - CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32 - OPT_FLAGS += -march=i586 -endif - -OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o) - -$(BIN_DIR)/%.o: %.cpp - $(CPP) $(INCLUDE) $(CFLAGS) -o $@ -c $< - -all: - mkdir -p $(BIN_DIR) - $(MAKE) engine - -amd64: - $(MAKE) all AMD64=true - -engine: $(OBJ_LINUX) - $(CPP) $(INCLUDE) $(CFLAGS) $(OBJ_LINUX) $(LINK) -shared -lm -o$(BIN_DIR)/$(BINARY) - -debug: - $(MAKE) all DEBUG=true - -default: all - -clean: - rm -rf Release/*.o - rm -rf Release/$(BINARY) - rm -rf Debug/*.o - rm -rf Debug/$(BINARY) \ No newline at end of file diff --git a/dlls/arrayx/moduleconfig.h b/dlls/arrayx/moduleconfig.h deleted file mode 100644 index cc25d269..00000000 --- a/dlls/arrayx/moduleconfig.h +++ /dev/null @@ -1,463 +0,0 @@ -// Configuration - -#ifndef __MODULECONFIG_H__ -#define __MODULECONFIG_H__ - -// Module info -#define MODULE_NAME "Array" -#define MODULE_VERSION "1.7" -#define MODULE_AUTHOR "Twilight Suzuka" -#define MODULE_URL "www.amxmodx.org" -#define MODULE_LOGTAG "ARRAY" -// If you want the module not to be reloaded on mapchange, remove / comment out the next line -#define MODULE_RELOAD_ON_MAPCHANGE - -#ifdef __DATE__ -#define MODULE_DATE __DATE__ -#else // __DATE__ -#define MODULE_DATE "Unknown" -#endif // __DATE__ - -// metamod plugin? -//#define USE_METAMOD - -// - AMXX Init functions -// Also consider using FN_META_* -// AMXX query -//#define FN_AMXX_QUERY OnAmxxQuery -// AMXX attach -// Do native functions init here (MF_AddNatives) -#define FN_AMXX_ATTACH OnAmxxAttach -// AMXX dettach -#define FN_AMXX_DETTACH OnAmxxDettach -// All plugins loaded -// Do forward functions init here (MF_RegisterForward) -// #define FN_AMXX_PLUGINSLOADED OnPluginsLoaded - -/**** METAMOD ****/ -// If your module doesn't use metamod, you may close the file now :) -#ifdef USE_METAMOD -// ---- -// Hook Functions -// Uncomment these to be called -// You can also change the function name - -// - Metamod init functions -// Also consider using FN_AMXX_* -// Meta query -//#define FN_META_QUERY OnMetaQuery -// Meta attach -//#define FN_META_ATTACH OnMetaAttach -// Meta dettach -//#define FN_META_DETTACH OnMetaDettach - -// (wd) are Will Day's notes -// - GetEntityAPI2 functions -// #define FN_GameDLLInit GameDLLInit /* pfnGameInit() */ -// #define FN_DispatchSpawn DispatchSpawn /* pfnSpawn() */ -// #define FN_DispatchThink DispatchThink /* pfnThink() */ -// #define FN_DispatchUse DispatchUse /* pfnUse() */ -// #define FN_DispatchTouch DispatchTouch /* pfnTouch() */ -// #define FN_DispatchBlocked DispatchBlocked /* pfnBlocked() */ -// #define FN_DispatchKeyValue DispatchKeyValue /* pfnKeyValue() */ -// #define FN_DispatchSave DispatchSave /* pfnSave() */ -// #define FN_DispatchRestore DispatchRestore /* pfnRestore() */ -// #define FN_DispatchObjectCollsionBox DispatchObjectCollsionBox /* pfnSetAbsBox() */ -// #define FN_SaveWriteFields SaveWriteFields /* pfnSaveWriteFields() */ -// #define FN_SaveReadFields SaveReadFields /* pfnSaveReadFields() */ -// #define FN_SaveGlobalState SaveGlobalState /* pfnSaveGlobalState() */ -// #define FN_RestoreGlobalState RestoreGlobalState /* pfnRestoreGlobalState() */ -// #define FN_ResetGlobalState ResetGlobalState /* pfnResetGlobalState() */ -// #define FN_ClientConnect ClientConnect /* pfnClientConnect() (wd) Client has connected */ -// #define FN_ClientDisconnect ClientDisconnect /* pfnClientDisconnect() (wd) Player has left the game */ -// #define FN_ClientKill ClientKill /* pfnClientKill() (wd) Player has typed "kill" */ -// #define FN_ClientPutInServer ClientPutInServer /* pfnClientPutInServer() (wd) Client is entering the game */ -// #define FN_ClientCommand ClientCommand /* pfnClientCommand() (wd) Player has sent a command (typed or from a bind) */ -// #define FN_ClientUserInfoChanged ClientUserInfoChanged /* pfnClientUserInfoChanged() (wd) Client has updated their setinfo structure */ -// #define FN_ServerActivate ServerActivate /* pfnServerActivate() (wd) Server is starting a new map */ -// #define FN_ServerDeactivate ServerDeactivate /* pfnServerDeactivate() (wd) Server is leaving the map (shutdown or changelevel); SDK2 */ -// #define FN_PlayerPreThink PlayerPreThink /* pfnPlayerPreThink() */ -// #define FN_PlayerPostThink PlayerPostThink /* pfnPlayerPostThink() */ -// #define FN_StartFrame StartFrame /* pfnStartFrame() */ -// #define FN_ParmsNewLevel ParmsNewLevel /* pfnParmsNewLevel() */ -// #define FN_ParmsChangeLevel ParmsChangeLevel /* pfnParmsChangeLevel() */ -// #define FN_GetGameDescription GetGameDescription /* pfnGetGameDescription() Returns string describing current .dll. E.g. "TeamFotrress 2" "Half-Life" */ -// #define FN_PlayerCustomization PlayerCustomization /* pfnPlayerCustomization() Notifies .dll of new customization for player. */ -// #define FN_SpectatorConnect SpectatorConnect /* pfnSpectatorConnect() Called when spectator joins server */ -// #define FN_SpectatorDisconnect SpectatorDisconnect /* pfnSpectatorDisconnect() Called when spectator leaves the server */ -// #define FN_SpectatorThink SpectatorThink /* pfnSpectatorThink() Called when spectator sends a command packet (usercmd_t) */ -// #define FN_Sys_Error Sys_Error /* pfnSys_Error() Notify game .dll that engine is going to shut down. Allows mod authors to set a breakpoint. SDK2 */ -// #define FN_PM_Move PM_Move /* pfnPM_Move() (wd) SDK2 */ -// #define FN_PM_Init PM_Init /* pfnPM_Init() Server version of player movement initialization; (wd) SDK2 */ -// #define FN_PM_FindTextureType PM_FindTextureType /* pfnPM_FindTextureType() (wd) SDK2 */ -// #define FN_SetupVisibility SetupVisibility /* pfnSetupVisibility() Set up PVS and PAS for networking for this client; (wd) SDK2 */ -// #define FN_UpdateClientData UpdateClientData /* pfnUpdateClientData() Set up data sent only to specific client; (wd) SDK2 */ -// #define FN_AddToFullPack AddToFullPack /* pfnAddToFullPack() (wd) SDK2 */ -// #define FN_CreateBaseline CreateBaseline /* pfnCreateBaseline() Tweak entity baseline for network encoding allows setup of player baselines too.; (wd) SDK2 */ -// #define FN_RegisterEncoders RegisterEncoders /* pfnRegisterEncoders() Callbacks for network encoding; (wd) SDK2 */ -// #define FN_GetWeaponData GetWeaponData /* pfnGetWeaponData() (wd) SDK2 */ -// #define FN_CmdStart CmdStart /* pfnCmdStart() (wd) SDK2 */ -// #define FN_CmdEnd CmdEnd /* pfnCmdEnd() (wd) SDK2 */ -// #define FN_ConnectionlessPacket ConnectionlessPacket /* pfnConnectionlessPacket() (wd) SDK2 */ -// #define FN_GetHullBounds GetHullBounds /* pfnGetHullBounds() (wd) SDK2 */ -// #define FN_CreateInstancedBaselines CreateInstancedBaselines /* pfnCreateInstancedBaselines() (wd) SDK2 */ -// #define FN_InconsistentFile InconsistentFile /* pfnInconsistentFile() (wd) SDK2 */ -// #define FN_AllowLagCompensation AllowLagCompensation /* pfnAllowLagCompensation() (wd) SDK2 */ - -// - GetEntityAPI2_Post functions -// #define FN_GameDLLInit_Post GameDLLInit_Post -// #define FN_DispatchSpawn_Post DispatchSpawn_Post -// #define FN_DispatchThink_Post DispatchThink_Post -// #define FN_DispatchUse_Post DispatchUse_Post -// #define FN_DispatchTouch_Post DispatchTouch_Post -// #define FN_DispatchBlocked_Post DispatchBlocked_Post -// #define FN_DispatchKeyValue_Post DispatchKeyValue_Post -// #define FN_DispatchSave_Post DispatchSave_Post -// #define FN_DispatchRestore_Post DispatchRestore_Post -// #define FN_DispatchObjectCollsionBox_Post DispatchObjectCollsionBox_Post -// #define FN_SaveWriteFields_Post SaveWriteFields_Post -// #define FN_SaveReadFields_Post SaveReadFields_Post -// #define FN_SaveGlobalState_Post SaveGlobalState_Post -// #define FN_RestoreGlobalState_Post RestoreGlobalState_Post -// #define FN_ResetGlobalState_Post ResetGlobalState_Post -// #define FN_ClientConnect_Post ClientConnect_Post -// #define FN_ClientDisconnect_Post ClientDisconnect_Post -// #define FN_ClientKill_Post ClientKill_Post -// #define FN_ClientPutInServer_Post ClientPutInServer_Post -// #define FN_ClientCommand_Post ClientCommand_Post -// #define FN_ClientUserInfoChanged_Post ClientUserInfoChanged_Post -// #define FN_ServerActivate_Post ServerActivate_Post -// #define FN_ServerDeactivate_Post ServerDeactivate_Post -// #define FN_PlayerPreThink_Post PlayerPreThink_Post -// #define FN_PlayerPostThink_Post PlayerPostThink_Post -// #define FN_StartFrame_Post StartFrame_Post -// #define FN_ParmsNewLevel_Post ParmsNewLevel_Post -// #define FN_ParmsChangeLevel_Post ParmsChangeLevel_Post -// #define FN_GetGameDescription_Post GetGameDescription_Post -// #define FN_PlayerCustomization_Post PlayerCustomization_Post -// #define FN_SpectatorConnect_Post SpectatorConnect_Post -// #define FN_SpectatorDisconnect_Post SpectatorDisconnect_Post -// #define FN_SpectatorThink_Post SpectatorThink_Post -// #define FN_Sys_Error_Post Sys_Error_Post -// #define FN_PM_Move_Post PM_Move_Post -// #define FN_PM_Init_Post PM_Init_Post -// #define FN_PM_FindTextureType_Post PM_FindTextureType_Post -// #define FN_SetupVisibility_Post SetupVisibility_Post -// #define FN_UpdateClientData_Post UpdateClientData_Post -// #define FN_AddToFullPack_Post AddToFullPack_Post -// #define FN_CreateBaseline_Post CreateBaseline_Post -// #define FN_RegisterEncoders_Post RegisterEncoders_Post -// #define FN_GetWeaponData_Post GetWeaponData_Post -// #define FN_CmdStart_Post CmdStart_Post -// #define FN_CmdEnd_Post CmdEnd_Post -// #define FN_ConnectionlessPacket_Post ConnectionlessPacket_Post -// #define FN_GetHullBounds_Post GetHullBounds_Post -// #define FN_CreateInstancedBaselines_Post CreateInstancedBaselines_Post -// #define FN_InconsistentFile_Post InconsistentFile_Post -// #define FN_AllowLagCompensation_Post AllowLagCompensation_Post - -// - GetEngineAPI functions -// #define FN_PrecacheModel PrecacheModel -// #define FN_PrecacheSound PrecacheSound -// #define FN_SetModel SetModel -// #define FN_ModelIndex ModelIndex -// #define FN_ModelFrames ModelFrames -// #define FN_SetSize SetSize -// #define FN_ChangeLevel ChangeLevel -// #define FN_GetSpawnParms GetSpawnParms -// #define FN_SaveSpawnParms SaveSpawnParms -// #define FN_VecToYaw VecToYaw -// #define FN_VecToAngles VecToAngles -// #define FN_MoveToOrigin MoveToOrigin -// #define FN_ChangeYaw ChangeYaw -// #define FN_ChangePitch ChangePitch -// #define FN_FindEntityByString FindEntityByString -// #define FN_GetEntityIllum GetEntityIllum -// #define FN_FindEntityInSphere FindEntityInSphere -// #define FN_FindClientInPVS FindClientInPVS -// #define FN_EntitiesInPVS EntitiesInPVS -// #define FN_MakeVectors MakeVectors -// #define FN_AngleVectors AngleVectors -// #define FN_CreateEntity CreateEntity -// #define FN_RemoveEntity RemoveEntity -// #define FN_CreateNamedEntity CreateNamedEntity -// #define FN_MakeStatic MakeStatic -// #define FN_EntIsOnFloor EntIsOnFloor -// #define FN_DropToFloor DropToFloor -// #define FN_WalkMove WalkMove -// #define FN_SetOrigin SetOrigin -// #define FN_EmitSound EmitSound -// #define FN_EmitAmbientSound EmitAmbientSound -// #define FN_TraceLine TraceLine -// #define FN_TraceToss TraceToss -// #define FN_TraceMonsterHull TraceMonsterHull -// #define FN_TraceHull TraceHull -// #define FN_TraceModel TraceModel -// #define FN_TraceTexture TraceTexture -// #define FN_TraceSphere TraceSphere -// #define FN_GetAimVector GetAimVector -// #define FN_ServerCommand ServerCommand -// #define FN_ServerExecute ServerExecute -// #define FN_engClientCommand engClientCommand -// #define FN_ParticleEffect ParticleEffect -// #define FN_LightStyle LightStyle -// #define FN_DecalIndex DecalIndex -// #define FN_PointContents PointContents -// #define FN_MessageBegin MessageBegin -// #define FN_MessageEnd MessageEnd -// #define FN_WriteByte WriteByte -// #define FN_WriteChar WriteChar -// #define FN_WriteShort WriteShort -// #define FN_WriteLong WriteLong -// #define FN_WriteAngle WriteAngle -// #define FN_WriteCoord WriteCoord -// #define FN_WriteString WriteString -// #define FN_WriteEntity WriteEntity -// #define FN_CVarRegister CVarRegister -// #define FN_CVarGetFloat CVarGetFloat -// #define FN_CVarGetString CVarGetString -// #define FN_CVarSetFloat CVarSetFloat -// #define FN_CVarSetString CVarSetString -// #define FN_AlertMessage AlertMessage -// #define FN_EngineFprintf EngineFprintf -// #define FN_PvAllocEntPrivateData PvAllocEntPrivateData -// #define FN_PvEntPrivateData PvEntPrivateData -// #define FN_FreeEntPrivateData FreeEntPrivateData -// #define FN_SzFromIndex SzFromIndex -// #define FN_AllocString AllocString -// #define FN_GetVarsOfEnt GetVarsOfEnt -// #define FN_PEntityOfEntOffset PEntityOfEntOffset -// #define FN_EntOffsetOfPEntity EntOffsetOfPEntity -// #define FN_IndexOfEdict IndexOfEdict -// #define FN_PEntityOfEntIndex PEntityOfEntIndex -// #define FN_FindEntityByVars FindEntityByVars -// #define FN_GetModelPtr GetModelPtr -// #define FN_RegUserMsg RegUserMsg -// #define FN_AnimationAutomove AnimationAutomove -// #define FN_GetBonePosition GetBonePosition -// #define FN_FunctionFromName FunctionFromName -// #define FN_NameForFunction NameForFunction -// #define FN_ClientPrintf ClientPrintf -// #define FN_ServerPrint ServerPrint -// #define FN_Cmd_Args Cmd_Args -// #define FN_Cmd_Argv Cmd_Argv -// #define FN_Cmd_Argc Cmd_Argc -// #define FN_GetAttachment GetAttachment -// #define FN_CRC32_Init CRC32_Init -// #define FN_CRC32_ProcessBuffer CRC32_ProcessBuffer -// #define FN_CRC32_ProcessByte CRC32_ProcessByte -// #define FN_CRC32_Final CRC32_Final -// #define FN_RandomLong RandomLong -// #define FN_RandomFloat RandomFloat -// #define FN_SetView SetView -// #define FN_Time Time -// #define FN_CrosshairAngle CrosshairAngle -// #define FN_LoadFileForMe LoadFileForMe -// #define FN_FreeFile FreeFile -// #define FN_EndSection EndSection -// #define FN_CompareFileTime CompareFileTime -// #define FN_GetGameDir GetGameDir -// #define FN_Cvar_RegisterVariable Cvar_RegisterVariable -// #define FN_FadeClientVolume FadeClientVolume -// #define FN_SetClientMaxspeed SetClientMaxspeed -// #define FN_CreateFakeClient CreateFakeClient -// #define FN_RunPlayerMove RunPlayerMove -// #define FN_NumberOfEntities NumberOfEntities -// #define FN_GetInfoKeyBuffer GetInfoKeyBuffer -// #define FN_InfoKeyValue InfoKeyValue -// #define FN_SetKeyValue SetKeyValue -// #define FN_SetClientKeyValue SetClientKeyValue -// #define FN_IsMapValid IsMapValid -// #define FN_StaticDecal StaticDecal -// #define FN_PrecacheGeneric PrecacheGeneric -// #define FN_GetPlayerUserId GetPlayerUserId -// #define FN_BuildSoundMsg BuildSoundMsg -// #define FN_IsDedicatedServer IsDedicatedServer -// #define FN_CVarGetPointer CVarGetPointer -// #define FN_GetPlayerWONId GetPlayerWONId -// #define FN_Info_RemoveKey Info_RemoveKey -// #define FN_GetPhysicsKeyValue GetPhysicsKeyValue -// #define FN_SetPhysicsKeyValue SetPhysicsKeyValue -// #define FN_GetPhysicsInfoString GetPhysicsInfoString -// #define FN_PrecacheEvent PrecacheEvent -// #define FN_PlaybackEvent PlaybackEvent -// #define FN_SetFatPVS SetFatPVS -// #define FN_SetFatPAS SetFatPAS -// #define FN_CheckVisibility CheckVisibility -// #define FN_DeltaSetField DeltaSetField -// #define FN_DeltaUnsetField DeltaUnsetField -// #define FN_DeltaAddEncoder DeltaAddEncoder -// #define FN_GetCurrentPlayer GetCurrentPlayer -// #define FN_CanSkipPlayer CanSkipPlayer -// #define FN_DeltaFindField DeltaFindField -// #define FN_DeltaSetFieldByIndex DeltaSetFieldByIndex -// #define FN_DeltaUnsetFieldByIndex DeltaUnsetFieldByIndex -// #define FN_SetGroupMask SetGroupMask -// #define FN_engCreateInstancedBaseline engCreateInstancedBaseline -// #define FN_Cvar_DirectSet Cvar_DirectSet -// #define FN_ForceUnmodified ForceUnmodified -// #define FN_GetPlayerStats GetPlayerStats -// #define FN_AddServerCommand AddServerCommand -// #define FN_Voice_GetClientListening Voice_GetClientListening -// #define FN_Voice_SetClientListening Voice_SetClientListening -// #define FN_GetPlayerAuthId GetPlayerAuthId - -// - GetEngineAPI_Post functions -// #define FN_PrecacheModel_Post PrecacheModel_Post -// #define FN_PrecacheSound_Post PrecacheSound_Post -// #define FN_SetModel_Post SetModel_Post -// #define FN_ModelIndex_Post ModelIndex_Post -// #define FN_ModelFrames_Post ModelFrames_Post -// #define FN_SetSize_Post SetSize_Post -// #define FN_ChangeLevel_Post ChangeLevel_Post -// #define FN_GetSpawnParms_Post GetSpawnParms_Post -// #define FN_SaveSpawnParms_Post SaveSpawnParms_Post -// #define FN_VecToYaw_Post VecToYaw_Post -// #define FN_VecToAngles_Post VecToAngles_Post -// #define FN_MoveToOrigin_Post MoveToOrigin_Post -// #define FN_ChangeYaw_Post ChangeYaw_Post -// #define FN_ChangePitch_Post ChangePitch_Post -// #define FN_FindEntityByString_Post FindEntityByString_Post -// #define FN_GetEntityIllum_Post GetEntityIllum_Post -// #define FN_FindEntityInSphere_Post FindEntityInSphere_Post -// #define FN_FindClientInPVS_Post FindClientInPVS_Post -// #define FN_EntitiesInPVS_Post EntitiesInPVS_Post -// #define FN_MakeVectors_Post MakeVectors_Post -// #define FN_AngleVectors_Post AngleVectors_Post -// #define FN_CreateEntity_Post CreateEntity_Post -// #define FN_RemoveEntity_Post RemoveEntity_Post -// #define FN_CreateNamedEntity_Post CreateNamedEntity_Post -// #define FN_MakeStatic_Post MakeStatic_Post -// #define FN_EntIsOnFloor_Post EntIsOnFloor_Post -// #define FN_DropToFloor_Post DropToFloor_Post -// #define FN_WalkMove_Post WalkMove_Post -// #define FN_SetOrigin_Post SetOrigin_Post -// #define FN_EmitSound_Post EmitSound_Post -// #define FN_EmitAmbientSound_Post EmitAmbientSound_Post -// #define FN_TraceLine_Post TraceLine_Post -// #define FN_TraceToss_Post TraceToss_Post -// #define FN_TraceMonsterHull_Post TraceMonsterHull_Post -// #define FN_TraceHull_Post TraceHull_Post -// #define FN_TraceModel_Post TraceModel_Post -// #define FN_TraceTexture_Post TraceTexture_Post -// #define FN_TraceSphere_Post TraceSphere_Post -// #define FN_GetAimVector_Post GetAimVector_Post -// #define FN_ServerCommand_Post ServerCommand_Post -// #define FN_ServerExecute_Post ServerExecute_Post -// #define FN_engClientCommand_Post engClientCommand_Post -// #define FN_ParticleEffect_Post ParticleEffect_Post -// #define FN_LightStyle_Post LightStyle_Post -// #define FN_DecalIndex_Post DecalIndex_Post -// #define FN_PointContents_Post PointContents_Post -// #define FN_MessageBegin_Post MessageBegin_Post -// #define FN_MessageEnd_Post MessageEnd_Post -// #define FN_WriteByte_Post WriteByte_Post -// #define FN_WriteChar_Post WriteChar_Post -// #define FN_WriteShort_Post WriteShort_Post -// #define FN_WriteLong_Post WriteLong_Post -// #define FN_WriteAngle_Post WriteAngle_Post -// #define FN_WriteCoord_Post WriteCoord_Post -// #define FN_WriteString_Post WriteString_Post -// #define FN_WriteEntity_Post WriteEntity_Post -// #define FN_CVarRegister_Post CVarRegister_Post -// #define FN_CVarGetFloat_Post CVarGetFloat_Post -// #define FN_CVarGetString_Post CVarGetString_Post -// #define FN_CVarSetFloat_Post CVarSetFloat_Post -// #define FN_CVarSetString_Post CVarSetString_Post -// #define FN_AlertMessage_Post AlertMessage_Post -// #define FN_EngineFprintf_Post EngineFprintf_Post -// #define FN_PvAllocEntPrivateData_Post PvAllocEntPrivateData_Post -// #define FN_PvEntPrivateData_Post PvEntPrivateData_Post -// #define FN_FreeEntPrivateData_Post FreeEntPrivateData_Post -// #define FN_SzFromIndex_Post SzFromIndex_Post -// #define FN_AllocString_Post AllocString_Post -// #define FN_GetVarsOfEnt_Post GetVarsOfEnt_Post -// #define FN_PEntityOfEntOffset_Post PEntityOfEntOffset_Post -// #define FN_EntOffsetOfPEntity_Post EntOffsetOfPEntity_Post -// #define FN_IndexOfEdict_Post IndexOfEdict_Post -// #define FN_PEntityOfEntIndex_Post PEntityOfEntIndex_Post -// #define FN_FindEntityByVars_Post FindEntityByVars_Post -// #define FN_GetModelPtr_Post GetModelPtr_Post -// #define FN_RegUserMsg_Post RegUserMsg_Post -// #define FN_AnimationAutomove_Post AnimationAutomove_Post -// #define FN_GetBonePosition_Post GetBonePosition_Post -// #define FN_FunctionFromName_Post FunctionFromName_Post -// #define FN_NameForFunction_Post NameForFunction_Post -// #define FN_ClientPrintf_Post ClientPrintf_Post -// #define FN_ServerPrint_Post ServerPrint_Post -// #define FN_Cmd_Args_Post Cmd_Args_Post -// #define FN_Cmd_Argv_Post Cmd_Argv_Post -// #define FN_Cmd_Argc_Post Cmd_Argc_Post -// #define FN_GetAttachment_Post GetAttachment_Post -// #define FN_CRC32_Init_Post CRC32_Init_Post -// #define FN_CRC32_ProcessBuffer_Post CRC32_ProcessBuffer_Post -// #define FN_CRC32_ProcessByte_Post CRC32_ProcessByte_Post -// #define FN_CRC32_Final_Post CRC32_Final_Post -// #define FN_RandomLong_Post RandomLong_Post -// #define FN_RandomFloat_Post RandomFloat_Post -// #define FN_SetView_Post SetView_Post -// #define FN_Time_Post Time_Post -// #define FN_CrosshairAngle_Post CrosshairAngle_Post -// #define FN_LoadFileForMe_Post LoadFileForMe_Post -// #define FN_FreeFile_Post FreeFile_Post -// #define FN_EndSection_Post EndSection_Post -// #define FN_CompareFileTime_Post CompareFileTime_Post -// #define FN_GetGameDir_Post GetGameDir_Post -// #define FN_Cvar_RegisterVariable_Post Cvar_RegisterVariable_Post -// #define FN_FadeClientVolume_Post FadeClientVolume_Post -// #define FN_SetClientMaxspeed_Post SetClientMaxspeed_Post -// #define FN_CreateFakeClient_Post CreateFakeClient_Post -// #define FN_RunPlayerMove_Post RunPlayerMove_Post -// #define FN_NumberOfEntities_Post NumberOfEntities_Post -// #define FN_GetInfoKeyBuffer_Post GetInfoKeyBuffer_Post -// #define FN_InfoKeyValue_Post InfoKeyValue_Post -// #define FN_SetKeyValue_Post SetKeyValue_Post -// #define FN_SetClientKeyValue_Post SetClientKeyValue_Post -// #define FN_IsMapValid_Post IsMapValid_Post -// #define FN_StaticDecal_Post StaticDecal_Post -// #define FN_PrecacheGeneric_Post PrecacheGeneric_Post -// #define FN_GetPlayerUserId_Post GetPlayerUserId_Post -// #define FN_BuildSoundMsg_Post BuildSoundMsg_Post -// #define FN_IsDedicatedServer_Post IsDedicatedServer_Post -// #define FN_CVarGetPointer_Post CVarGetPointer_Post -// #define FN_GetPlayerWONId_Post GetPlayerWONId_Post -// #define FN_Info_RemoveKey_Post Info_RemoveKey_Post -// #define FN_GetPhysicsKeyValue_Post GetPhysicsKeyValue_Post -// #define FN_SetPhysicsKeyValue_Post SetPhysicsKeyValue_Post -// #define FN_GetPhysicsInfoString_Post GetPhysicsInfoString_Post -// #define FN_PrecacheEvent_Post PrecacheEvent_Post -// #define FN_PlaybackEvent_Post PlaybackEvent_Post -// #define FN_SetFatPVS_Post SetFatPVS_Post -// #define FN_SetFatPAS_Post SetFatPAS_Post -// #define FN_CheckVisibility_Post CheckVisibility_Post -// #define FN_DeltaSetField_Post DeltaSetField_Post -// #define FN_DeltaUnsetField_Post DeltaUnsetField_Post -// #define FN_DeltaAddEncoder_Post DeltaAddEncoder_Post -// #define FN_GetCurrentPlayer_Post GetCurrentPlayer_Post -// #define FN_CanSkipPlayer_Post CanSkipPlayer_Post -// #define FN_DeltaFindField_Post DeltaFindField_Post -// #define FN_DeltaSetFieldByIndex_Post DeltaSetFieldByIndex_Post -// #define FN_DeltaUnsetFieldByIndex_Post DeltaUnsetFieldByIndex_Post -// #define FN_SetGroupMask_Post SetGroupMask_Post -// #define FN_engCreateInstancedBaseline_Post engCreateInstancedBaseline_Post -// #define FN_Cvar_DirectSet_Post Cvar_DirectSet_Post -// #define FN_ForceUnmodified_Post ForceUnmodified_Post -// #define FN_GetPlayerStats_Post GetPlayerStats_Post -// #define FN_AddServerCommand_Post AddServerCommand_Post -// #define FN_Voice_GetClientListening_Post Voice_GetClientListening_Post -// #define FN_Voice_SetClientListening_Post Voice_SetClientListening_Post -// #define FN_GetPlayerAuthId_Post GetPlayerAuthId_Post - -// #define FN_OnFreeEntPrivateData OnFreeEntPrivateData -// #define FN_GameShutdown GameShutdown -// #define FN_ShouldCollide ShouldCollide - -// #define FN_OnFreeEntPrivateData_Post OnFreeEntPrivateData_Post -// #define FN_GameShutdown_Post GameShutdown_Post -// #define FN_ShouldCollide_Post ShouldCollide_Post - - -#endif // USE_METAMOD - -#endif // __MODULECONFIG_H__ - diff --git a/dlls/arrayx/osdefs.h b/dlls/arrayx/osdefs.h deleted file mode 100644 index 60d61e68..00000000 --- a/dlls/arrayx/osdefs.h +++ /dev/null @@ -1,60 +0,0 @@ -/* __MSDOS__ set when compiling for DOS (not Windows) - * _Windows set when compiling for any version of Microsoft Windows - * __WIN32__ set when compiling for Windows95 or WindowsNT (32 bit mode) - * __32BIT__ set when compiling in 32-bit "flat" mode (DOS or Windows) - * - * Copyright 1998-2002, ITB CompuPhase, The Netherlands. - * info@compuphase.com. - */ - -#ifndef _OSDEFS_H -#define _OSDEFS_H - -/* Every compiler uses different "default" macros to indicate the mode - * it is in. Throughout the source, we use the Borland C++ macros, so - * the macros of Watcom C/C++ and Microsoft Visual C/C++ are mapped to - * those of Borland C++. - */ -#if defined(__WATCOMC__) -# if defined(__WINDOWS__) || defined(__NT__) -# define _Windows 1 -# endif -# ifdef __386__ -# define __32BIT__ 1 -# endif -# if defined(_Windows) && defined(__32BIT__) -# define __WIN32__ 1 -# endif -#elif defined(_MSC_VER) -# if defined(_WINDOWS) || defined(_WIN32) -# define _Windows 1 -# endif -# ifdef _WIN32 -# define __WIN32__ 1 -# define __32BIT__ 1 -# endif -#endif - -#if defined __linux__ - #include -#endif - -/* Linux NOW has these */ -#if !defined BIG_ENDIAN - #define BIG_ENDIAN 4321 -#endif -#if !defined LITTLE_ENDIAN - #define LITTLE_ENDIAN 1234 -#endif - -/* educated guess, BYTE_ORDER is undefined, i386 is common => little endian */ -#if !defined BYTE_ORDER - #if defined UCLINUX - #define BYTE_ORDER BIG_ENDIAN - #else - #define BYTE_ORDER LITTLE_ENDIAN - #endif -#endif - -#endif /* _OSDEFS_H */ - diff --git a/dlls/metamapx/JBRandom.h b/dlls/metamapx/JBRandom.h deleted file mode 100755 index a36c42d7..00000000 --- a/dlls/metamapx/JBRandom.h +++ /dev/null @@ -1,47 +0,0 @@ -#ifndef INCLUDED_JBRANDOM -#define INCLUDED_JBRANDOM - -#include -#include - -class JBRandom -{ -public: - JBRandom(); - ~JBRandom(); - - static int JBRandomize(int lowestNumber,int highestNumber) - { - if (!init) - { - init = true; - srand(time(0)); - } - - int answer = (rand() % ((highestNumber + 1) - lowestNumber)) + lowestNumber; - - return answer; - }; - - static bool JBProbabilityPercent(short probability) // probability should be 1(%) to 100 (ie, percent) - { - if (!init) - { - init = true; - srand(time(0)); - } - - if (rand() % 100 + 1 <= probability) - return true; - else - return false; - }; - -private: - static bool init; - -}; - -bool JBRandom::init = false; - -#endif diff --git a/dlls/metamapx/amxxmodule.cpp b/dlls/metamapx/amxxmodule.cpp deleted file mode 100755 index b021ab49..00000000 --- a/dlls/metamapx/amxxmodule.cpp +++ /dev/null @@ -1,2990 +0,0 @@ -/* AMX Mod X -* -* by the AMX Mod X Development Team -* originally developed by OLO -* -* Parts Copyright (C) 2001-2003 Will Day -* -* This program is free software; you can redistribute it and/or modify it -* under the terms of the GNU General Public License as published by the -* Free Software Foundation; either version 2 of the License, or (at -* your option) any later version. -* -* This program is distributed in the hope that it will be useful, but -* WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -* General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software Foundation, -* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -* -* In addition, as a special exception, the author gives permission to -* link the code of this program with the Half-Life Game Engine ("HL -* Engine") and Modified Game Libraries ("MODs") developed by Valve, -* L.L.C ("Valve"). You must obey the GNU General Public License in all -* respects for all of the code used other than the HL Engine and MODs -* from Valve. If you modify this file, you may extend this exception -* to your version of the file, but you are not obligated to do so. If -* you do not wish to do so, delete this exception statement from your -* version. -* -* Description: AMX Mod X Module Interface Functions -*/ - -#include -#include -#include -#include -#include -#include "amxxmodule.h" - -/************* METAMOD SUPPORT *************/ -#ifdef USE_METAMOD - -enginefuncs_t g_engfuncs; -globalvars_t *gpGlobals; - -// GetEntityAPI2 functions -static DLL_FUNCTIONS g_EntityAPI_Table = -{ -#ifdef FN_GameDLLInit - FN_GameDLLInit, -#else - NULL, -#endif -#ifdef FN_DispatchSpawn - FN_DispatchSpawn, -#else - NULL, -#endif -#ifdef FN_DispatchThink - FN_DispatchThink, -#else - NULL, -#endif -#ifdef FN_DispatchUse - FN_DispatchUse, -#else - NULL, -#endif -#ifdef FN_DispatchTouch - FN_DispatchTouch, -#else - NULL, -#endif -#ifdef FN_DispatchBlocked - FN_DispatchBlocked, -#else - NULL, -#endif -#ifdef FN_DispatchKeyValue - FN_DispatchKeyValue, -#else - NULL, -#endif -#ifdef FN_DispatchSave - FN_DispatchSave, -#else - NULL, -#endif -#ifdef FN_DispatchRestore - FN_DispatchRestore, -#else - NULL, -#endif -#ifdef FN_DispatchObjectCollsionBox - FN_DispatchObjectCollsionBox, -#else - NULL, -#endif -#ifdef FN_SaveWriteFields - FN_SaveWriteFields, -#else - NULL, -#endif -#ifdef FN_SaveReadFields - FN_SaveReadFields, -#else - NULL, -#endif -#ifdef FN_SaveGlobalState - FN_SaveGlobalState, -#else - NULL, -#endif -#ifdef FN_RestoreGlobalState - FN_RestoreGlobalState, -#else - NULL, -#endif -#ifdef FN_ResetGlobalState - FN_ResetGlobalState, -#else - NULL, -#endif -#ifdef FN_ClientConnect - FN_ClientConnect, -#else - NULL, -#endif -#ifdef FN_ClientDisconnect - FN_ClientDisconnect, -#else - NULL, -#endif -#ifdef FN_ClientKill - FN_ClientKill, -#else - NULL, -#endif -#ifdef FN_ClientPutInServer - FN_ClientPutInServer, -#else - NULL, -#endif -#ifdef FN_ClientCommand - FN_ClientCommand, -#else - NULL, -#endif -#ifdef FN_ClientUserInfoChanged - FN_ClientUserInfoChanged, -#else - NULL, -#endif -#ifdef FN_ServerActivate - FN_ServerActivate, -#else - NULL, -#endif -#ifdef FN_ServerDeactivate - FN_ServerDeactivate, -#else - NULL, -#endif -#ifdef FN_PlayerPreThink - FN_PlayerPreThink, -#else - NULL, -#endif -#ifdef FN_PlayerPostThink - FN_PlayerPostThink, -#else - NULL, -#endif -#ifdef FN_StartFrame - FN_StartFrame, -#else - NULL, -#endif -#ifdef FN_ParmsNewLevel - FN_ParmsNewLevel, -#else - NULL, -#endif -#ifdef FN_ParmsChangeLevel - FN_ParmsChangeLevel, -#else - NULL, -#endif -#ifdef FN_GetGameDescription - FN_GetGameDescription, -#else - NULL, -#endif -#ifdef FN_PlayerCustomization - FN_PlayerCustomization, -#else - NULL, -#endif -#ifdef FN_SpectatorConnect - FN_SpectatorConnect, -#else - NULL, -#endif -#ifdef FN_SpectatorDisconnect - FN_SpectatorDisconnect, -#else - NULL, -#endif -#ifdef FN_SpectatorThink - FN_SpectatorThink, -#else - NULL, -#endif -#ifdef FN_Sys_Error - FN_Sys_Error, -#else - NULL, -#endif -#ifdef FN_PM_Move - FN_PM_Move, -#else - NULL, -#endif -#ifdef FN_PM_Init - FN_PM_Init, -#else - NULL, -#endif -#ifdef FN_PM_FindTextureType - FN_PM_FindTextureType, -#else - NULL, -#endif -#ifdef FN_SetupVisibility - FN_SetupVisibility, -#else - NULL, -#endif -#ifdef FN_UpdateClientData - FN_UpdateClientData, -#else - NULL, -#endif -#ifdef FN_AddToFullPack - FN_AddToFullPack, -#else - NULL, -#endif -#ifdef FN_CreateBaseline - FN_CreateBaseline, -#else - NULL, -#endif -#ifdef FN_RegisterEncoders - FN_RegisterEncoders, -#else - NULL, -#endif -#ifdef FN_GetWeaponData - FN_GetWeaponData, -#else - NULL, -#endif -#ifdef FN_CmdStart - FN_CmdStart, -#else - NULL, -#endif -#ifdef FN_CmdEnd - FN_CmdEnd, -#else - NULL, -#endif -#ifdef FN_ConnectionlessPacket - FN_ConnectionlessPacket, -#else - NULL, -#endif -#ifdef FN_GetHullBounds - FN_GetHullBounds, -#else - NULL, -#endif -#ifdef FN_CreateInstancedBaselines - FN_CreateInstancedBaselines, -#else - NULL, -#endif -#ifdef FN_InconsistentFile - FN_InconsistentFile, -#else - NULL, -#endif -#ifdef FN_AllowLagCompensation - FN_AllowLagCompensation -#else - NULL -#endif -}; // g_EntityAPI2_Table - -// GetEntityAPI2_Post functions -static DLL_FUNCTIONS g_EntityAPI_Post_Table = -{ -#ifdef FN_GameDLLInit_Post - FN_GameDLLInit_Post, -#else - NULL, -#endif -#ifdef FN_DispatchSpawn_Post - FN_DispatchSpawn_Post, -#else - NULL, -#endif -#ifdef FN_DispatchThink_Post - FN_DispatchThink_Post, -#else - NULL, -#endif -#ifdef FN_DispatchUse_Post - FN_DispatchUse_Post, -#else - NULL, -#endif -#ifdef FN_DispatchTouch_Post - FN_DispatchTouch_Post, -#else - NULL, -#endif -#ifdef FN_DispatchBlocked_Post - FN_DispatchBlocked_Post, -#else - NULL, -#endif -#ifdef FN_DispatchKeyValue_Post - FN_DispatchKeyValue_Post, -#else - NULL, -#endif -#ifdef FN_DispatchSave_Post - FN_DispatchSave_Post, -#else - NULL, -#endif -#ifdef FN_DispatchRestore_Post - FN_DispatchRestore_Post, -#else - NULL, -#endif -#ifdef FN_DispatchObjectCollsionBox_Post - FN_DispatchObjectCollsionBox_Post, -#else - NULL, -#endif -#ifdef FN_SaveWriteFields_Post - FN_SaveWriteFields_Post, -#else - NULL, -#endif -#ifdef FN_SaveReadFields_Post - FN_SaveReadFields_Post, -#else - NULL, -#endif -#ifdef FN_SaveGlobalState_Post - FN_SaveGlobalState_Post, -#else - NULL, -#endif -#ifdef FN_RestoreGlobalState_Post - FN_RestoreGlobalState_Post, -#else - NULL, -#endif -#ifdef FN_ResetGlobalState_Post - FN_ResetGlobalState_Post, -#else - NULL, -#endif -#ifdef FN_ClientConnect_Post - FN_ClientConnect_Post, -#else - NULL, -#endif -#ifdef FN_ClientDisconnect_Post - FN_ClientDisconnect_Post, -#else - NULL, -#endif -#ifdef FN_ClientKill_Post - FN_ClientKill_Post, -#else - NULL, -#endif -#ifdef FN_ClientPutInServer_Post - FN_ClientPutInServer_Post, -#else - NULL, -#endif -#ifdef FN_ClientCommand_Post - FN_ClientCommand_Post, -#else - NULL, -#endif -#ifdef FN_ClientUserInfoChanged_Post - FN_ClientUserInfoChanged_Post, -#else - NULL, -#endif -#ifdef FN_ServerActivate_Post - FN_ServerActivate_Post, -#else - NULL, -#endif -#ifdef FN_ServerDeactivate_Post - FN_ServerDeactivate_Post, -#else - NULL, -#endif -#ifdef FN_PlayerPreThink_Post - FN_PlayerPreThink_Post, -#else - NULL, -#endif -#ifdef FN_PlayerPostThink_Post - FN_PlayerPostThink_Post, -#else - NULL, -#endif -#ifdef FN_StartFrame_Post - FN_StartFrame_Post, -#else - NULL, -#endif -#ifdef FN_ParmsNewLevel_Post - FN_ParmsNewLevel_Post, -#else - NULL, -#endif -#ifdef FN_ParmsChangeLevel_Post - FN_ParmsChangeLevel_Post, -#else - NULL, -#endif -#ifdef FN_GetGameDescription_Post - FN_GetGameDescription_Post, -#else - NULL, -#endif -#ifdef FN_PlayerCustomization_Post - FN_PlayerCustomization_Post, -#else - NULL, -#endif -#ifdef FN_SpectatorConnect_Post - FN_SpectatorConnect_Post, -#else - NULL, -#endif -#ifdef FN_SpectatorDisconnect_Post - FN_SpectatorDisconnect_Post, -#else - NULL, -#endif -#ifdef FN_SpectatorThink_Post - FN_SpectatorThink_Post, -#else - NULL, -#endif -#ifdef FN_Sys_Error_Post - FN_Sys_Error_Post, -#else - NULL, -#endif -#ifdef FN_PM_Move_Post - FN_PM_Move_Post, -#else - NULL, -#endif -#ifdef FN_PM_Init_Post - FN_PM_Init_Post, -#else - NULL, -#endif -#ifdef FN_PM_FindTextureType_Post - FN_PM_FindTextureType_Post, -#else - NULL, -#endif -#ifdef FN_SetupVisibility_Post - FN_SetupVisibility_Post, -#else - NULL, -#endif -#ifdef FN_UpdateClientData_Post - FN_UpdateClientData_Post, -#else - NULL, -#endif -#ifdef FN_AddToFullPack_Post - FN_AddToFullPack_Post, -#else - NULL, -#endif -#ifdef FN_CreateBaseline_Post - FN_CreateBaseline_Post, -#else - NULL, -#endif -#ifdef FN_RegisterEncoders_Post - FN_RegisterEncoders_Post, -#else - NULL, -#endif -#ifdef FN_GetWeaponData_Post - FN_GetWeaponData_Post, -#else - NULL, -#endif -#ifdef FN_CmdStart_Post - FN_CmdStart_Post, -#else - NULL, -#endif -#ifdef FN_CmdEnd_Post - FN_CmdEnd_Post, -#else - NULL, -#endif -#ifdef FN_ConnectionlessPacket_Post - FN_ConnectionlessPacket_Post, -#else - NULL, -#endif -#ifdef FN_GetHullBounds_Post - FN_GetHullBounds_Post, -#else - NULL, -#endif -#ifdef FN_CreateInstancedBaselines_Post - FN_CreateInstancedBaselines_Post, -#else - NULL, -#endif -#ifdef FN_InconsistentFile_Post - FN_InconsistentFile_Post, -#else - NULL, -#endif -#ifdef FN_AllowLagCompensation - FN_AllowLagCompensation, -#else - NULL, -#endif -}; // g_EntityAPI2_Table - -static enginefuncs_t g_EngineFuncs_Table = -{ -#ifdef FN_PrecacheModel - FN_PrecacheModel, -#else - NULL, -#endif -#ifdef FN_PrecacheSound - FN_PrecacheSound, -#else - NULL, -#endif -#ifdef FN_SetModel - FN_SetModel, -#else - NULL, -#endif -#ifdef FN_ModelIndex - FN_ModelIndex, -#else - NULL, -#endif -#ifdef FN_ModelFrames - FN_ModelFrames, -#else - NULL, -#endif -#ifdef FN_SetSize - FN_SetSize, -#else - NULL, -#endif -#ifdef FN_ChangeLevel - FN_ChangeLevel, -#else - NULL, -#endif -#ifdef FN_GetSpawnParms - FN_GetSpawnParms, -#else - NULL, -#endif -#ifdef FN_SaveSpawnParms - FN_SaveSpawnParms, -#else - NULL, -#endif -#ifdef FN_VecToYaw - FN_VecToYaw, -#else - NULL, -#endif -#ifdef FN_VecToAngles - FN_VecToAngles, -#else - NULL, -#endif -#ifdef FN_MoveToOrigin - FN_MoveToOrigin, -#else - NULL, -#endif -#ifdef FN_ChangeYaw - FN_ChangeYaw, -#else - NULL, -#endif -#ifdef FN_ChangePitch - FN_ChangePitch, -#else - NULL, -#endif -#ifdef FN_FindEntityByString - FN_FindEntityByString, -#else - NULL, -#endif -#ifdef FN_GetEntityIllum - FN_GetEntityIllum, -#else - NULL, -#endif -#ifdef FN_FindEntityInSphere - FN_FindEntityInSphere, -#else - NULL, -#endif -#ifdef FN_FindClientInPVS - FN_FindClientInPVS, -#else - NULL, -#endif -#ifdef FN_EntitiesInPVS - FN_EntitiesInPVS, -#else - NULL, -#endif -#ifdef FN_MakeVectors - FN_MakeVectors, -#else - NULL, -#endif -#ifdef FN_AngleVectors - FN_AngleVectors, -#else - NULL, -#endif -#ifdef FN_CreateEntity - FN_CreateEntity, -#else - NULL, -#endif -#ifdef FN_RemoveEntity - FN_RemoveEntity, -#else - NULL, -#endif -#ifdef FN_CreateNamedEntity - FN_CreateNamedEntity, -#else - NULL, -#endif -#ifdef FN_MakeStatic - FN_MakeStatic, -#else - NULL, -#endif -#ifdef FN_EntIsOnFloor - FN_EntIsOnFloor, -#else - NULL, -#endif -#ifdef FN_DropToFloor - FN_DropToFloor, -#else - NULL, -#endif -#ifdef FN_WalkMove - FN_WalkMove, -#else - NULL, -#endif -#ifdef FN_SetOrigin - FN_SetOrigin, -#else - NULL, -#endif -#ifdef FN_EmitSound - FN_EmitSound, -#else - NULL, -#endif -#ifdef FN_EmitAmbientSound - FN_EmitAmbientSound, -#else - NULL, -#endif -#ifdef FN_TraceLine - FN_TraceLine, -#else - NULL, -#endif -#ifdef FN_TraceToss - FN_TraceToss, -#else - NULL, -#endif -#ifdef FN_TraceMonsterHull - FN_TraceMonsterHull, -#else - NULL, -#endif -#ifdef FN_TraceHull - FN_TraceHull, -#else - NULL, -#endif -#ifdef FN_TraceModel - FN_TraceModel, -#else - NULL, -#endif -#ifdef FN_TraceTexture - FN_TraceTexture, -#else - NULL, -#endif -#ifdef FN_TraceSphere - FN_TraceSphere, -#else - NULL, -#endif -#ifdef FN_GetAimVector - FN_GetAimVector, -#else - NULL, -#endif -#ifdef FN_ServerCommand - FN_ServerCommand, -#else - NULL, -#endif -#ifdef FN_ServerExecute - FN_ServerExecute, -#else - NULL, -#endif -#ifdef FN_engClientCommand - FN_engClientCommand, -#else - NULL, -#endif -#ifdef FN_ParticleEffect - FN_ParticleEffect, -#else - NULL, -#endif -#ifdef FN_LightStyle - FN_LightStyle, -#else - NULL, -#endif -#ifdef FN_DecalIndex - FN_DecalIndex, -#else - NULL, -#endif -#ifdef FN_PointContents - FN_PointContents, -#else - NULL, -#endif -#ifdef FN_MessageBegin - FN_MessageBegin, -#else - NULL, -#endif -#ifdef FN_MessageEnd - FN_MessageEnd, -#else - NULL, -#endif -#ifdef FN_WriteByte - FN_WriteByte, -#else - NULL, -#endif -#ifdef FN_WriteChar - FN_WriteChar, -#else - NULL, -#endif -#ifdef FN_WriteShort - FN_WriteShort, -#else - NULL, -#endif -#ifdef FN_WriteLong - FN_WriteLong, -#else - NULL, -#endif -#ifdef FN_WriteAngle - FN_WriteAngle, -#else - NULL, -#endif -#ifdef FN_WriteCoord - FN_WriteCoord, -#else - NULL, -#endif -#ifdef FN_WriteString - FN_WriteString, -#else - NULL, -#endif -#ifdef FN_WriteEntity - FN_WriteEntity, -#else - NULL, -#endif -#ifdef FN_CVarRegister - FN_CVarRegister, -#else - NULL, -#endif -#ifdef FN_CVarGetFloat - FN_CVarGetFloat, -#else - NULL, -#endif -#ifdef FN_CVarGetString - FN_CVarGetString, -#else - NULL, -#endif -#ifdef FN_CVarSetFloat - FN_CVarSetFloat, -#else - NULL, -#endif -#ifdef FN_CVarSetString - FN_CVarSetString, -#else - NULL, -#endif -#ifdef FN_AlertMessage - FN_AlertMessage, -#else - NULL, -#endif -#ifdef FN_EngineFprintf - FN_EngineFprintf, -#else - NULL, -#endif -#ifdef FN_PvAllocEntPrivateData - FN_PvAllocEntPrivateData, -#else - NULL, -#endif -#ifdef FN_PvEntPrivateData - FN_PvEntPrivateData, -#else - NULL, -#endif -#ifdef FN_FreeEntPrivateData - FN_FreeEntPrivateData, -#else - NULL, -#endif -#ifdef FN_SzFromIndex - FN_SzFromIndex, -#else - NULL, -#endif -#ifdef FN_AllocString - FN_AllocString, -#else - NULL, -#endif -#ifdef FN_GetVarsOfEnt - FN_GetVarsOfEnt, -#else - NULL, -#endif -#ifdef FN_PEntityOfEntOffset - FN_PEntityOfEntOffset, -#else - NULL, -#endif -#ifdef FN_EntOffsetOfPEntity - FN_EntOffsetOfPEntity, -#else - NULL, -#endif -#ifdef FN_IndexOfEdict - FN_IndexOfEdict, -#else - NULL, -#endif -#ifdef FN_PEntityOfEntIndex - FN_PEntityOfEntIndex, -#else - NULL, -#endif -#ifdef FN_FindEntityByVars - FN_FindEntityByVars, -#else - NULL, -#endif -#ifdef FN_GetModelPtr - FN_GetModelPtr, -#else - NULL, -#endif -#ifdef FN_RegUserMsg - FN_RegUserMsg, -#else - NULL, -#endif -#ifdef FN_AnimationAutomove - FN_AnimationAutomove, -#else - NULL, -#endif -#ifdef FN_GetBonePosition - FN_GetBonePosition, -#else - NULL, -#endif -#ifdef FN_FunctionFromName - FN_FunctionFromName, -#else - NULL, -#endif -#ifdef FN_NameForFunction - FN_NameForFunction, -#else - NULL, -#endif -#ifdef FN_ClientPrintf - FN_ClientPrintf, -#else - NULL, -#endif -#ifdef FN_ServerPrint - FN_ServerPrint, -#else - NULL, -#endif -#ifdef FN_Cmd_Args - FN_Cmd_Args, -#else - NULL, -#endif -#ifdef FN_Cmd_Argv - FN_Cmd_Argv, -#else - NULL, -#endif -#ifdef FN_Cmd_Argc - FN_Cmd_Argc, -#else - NULL, -#endif -#ifdef FN_GetAttachment - FN_GetAttachment, -#else - NULL, -#endif -#ifdef FN_CRC32_Init - FN_CRC32_Init, -#else - NULL, -#endif -#ifdef FN_CRC32_ProcessBuffer - FN_CRC32_ProcessBuffer, -#else - NULL, -#endif -#ifdef FN_CRC32_ProcessByte - FN_CRC32_ProcessByte, -#else - NULL, -#endif -#ifdef FN_CRC32_Final - FN_CRC32_Final, -#else - NULL, -#endif -#ifdef FN_RandomLong - FN_RandomLong, -#else - NULL, -#endif -#ifdef FN_RandomFloat - FN_RandomFloat, -#else - NULL, -#endif -#ifdef FN_SetView - FN_SetView, -#else - NULL, -#endif -#ifdef FN_Time - FN_Time, -#else - NULL, -#endif -#ifdef FN_CrosshairAngle - FN_CrosshairAngle, -#else - NULL, -#endif -#ifdef FN_LoadFileForMe - FN_LoadFileForMe, -#else - NULL, -#endif -#ifdef FN_FreeFile - FN_FreeFile, -#else - NULL, -#endif -#ifdef FN_EndSection - FN_EndSection, -#else - NULL, -#endif -#ifdef FN_CompareFileTime - FN_CompareFileTime, -#else - NULL, -#endif -#ifdef FN_GetGameDir - FN_GetGameDir, -#else - NULL, -#endif -#ifdef FN_Cvar_RegisterVariable - FN_Cvar_RegisterVariable, -#else - NULL, -#endif -#ifdef FN_FadeClientVolume - FN_FadeClientVolume, -#else - NULL, -#endif -#ifdef FN_SetClientMaxspeed - FN_SetClientMaxspeed, -#else - NULL, -#endif -#ifdef FN_CreateFakeClient - FN_CreateFakeClient, -#else - NULL, -#endif -#ifdef FN_RunPlayerMove - FN_RunPlayerMove, -#else - NULL, -#endif -#ifdef FN_NumberOfEntities - FN_NumberOfEntities, -#else - NULL, -#endif -#ifdef FN_GetInfoKeyBuffer - FN_GetInfoKeyBuffer, -#else - NULL, -#endif -#ifdef FN_InfoKeyValue - FN_InfoKeyValue, -#else - NULL, -#endif -#ifdef FN_SetKeyValue - FN_SetKeyValue, -#else - NULL, -#endif -#ifdef FN_SetClientKeyValue - FN_SetClientKeyValue, -#else - NULL, -#endif -#ifdef FN_IsMapValid - FN_IsMapValid, -#else - NULL, -#endif -#ifdef FN_StaticDecal - FN_StaticDecal, -#else - NULL, -#endif -#ifdef FN_PrecacheGeneric - FN_PrecacheGeneric, -#else - NULL, -#endif -#ifdef FN_GetPlayerUserId - FN_GetPlayerUserId, -#else - NULL, -#endif -#ifdef FN_BuildSoundMsg - FN_BuildSoundMsg, -#else - NULL, -#endif -#ifdef FN_IsDedicatedServer - FN_IsDedicatedServer, -#else - NULL, -#endif -#ifdef FN_CVarGetPointer - FN_CVarGetPointer, -#else - NULL, -#endif -#ifdef FN_GetPlayerWONId - FN_GetPlayerWONId, -#else - NULL, -#endif -#ifdef FN_Info_RemoveKey - FN_Info_RemoveKey, -#else - NULL, -#endif -#ifdef FN_GetPhysicsKeyValue - FN_GetPhysicsKeyValue, -#else - NULL, -#endif -#ifdef FN_SetPhysicsKeyValue - FN_SetPhysicsKeyValue, -#else - NULL, -#endif -#ifdef FN_GetPhysicsInfoString - FN_GetPhysicsInfoString, -#else - NULL, -#endif -#ifdef FN_PrecacheEvent - FN_PrecacheEvent, -#else - NULL, -#endif -#ifdef FN_PlaybackEvent - FN_PlaybackEvent, -#else - NULL, -#endif -#ifdef FN_SetFatPVS - FN_SetFatPVS, -#else - NULL, -#endif -#ifdef FN_SetFatPAS - FN_SetFatPAS, -#else - NULL, -#endif -#ifdef FN_CheckVisibility - FN_CheckVisibility, -#else - NULL, -#endif -#ifdef FN_DeltaSetField - FN_DeltaSetField, -#else - NULL, -#endif -#ifdef FN_DeltaUnsetField - FN_DeltaUnsetField, -#else - NULL, -#endif -#ifdef FN_DeltaAddEncoder - FN_DeltaAddEncoder, -#else - NULL, -#endif -#ifdef FN_GetCurrentPlayer - FN_GetCurrentPlayer, -#else - NULL, -#endif -#ifdef FN_CanSkipPlayer - FN_CanSkipPlayer, -#else - NULL, -#endif -#ifdef FN_DeltaFindField - FN_DeltaFindField, -#else - NULL, -#endif -#ifdef FN_DeltaSetFieldByIndex - FN_DeltaSetFieldByIndex, -#else - NULL, -#endif -#ifdef FN_DeltaUnsetFieldByIndex - FN_DeltaUnsetFieldByIndex, -#else - NULL, -#endif -#ifdef FN_SetGroupMask - FN_SetGroupMask, -#else - NULL, -#endif -#ifdef FN_engCreateInstancedBaseline - FN_engCreateInstancedBaseline, -#else - NULL, -#endif -#ifdef FN_Cvar_DirectSet - FN_Cvar_DirectSet, -#else - NULL, -#endif -#ifdef FN_ForceUnmodified - FN_ForceUnmodified, -#else - NULL, -#endif -#ifdef FN_GetPlayerStats - FN_GetPlayerStats, -#else - NULL, -#endif -#ifdef FN_AddServerCommand - FN_AddServerCommand, -#else - NULL, -#endif -#ifdef FN_Voice_GetClientListening - FN_Voice_GetClientListening, -#else - NULL, -#endif -#ifdef FN_Voice_SetClientListening - FN_Voice_SetClientListening, -#else - NULL, -#endif -#ifdef FN_GetPlayerAuthId - FN_GetPlayerAuthId -#else - NULL -#endif -}; // g_EngineFuncs_Table - - -static enginefuncs_t g_EngineFuncs_Post_Table = -{ -#ifdef FN_PrecacheModel_Post - FN_PrecacheModel_Post, -#else - NULL, -#endif -#ifdef FN_PrecacheSound_Post - FN_PrecacheSound_Post, -#else - NULL, -#endif -#ifdef FN_SetModel_Post - FN_SetModel_Post, -#else - NULL, -#endif -#ifdef FN_ModelIndex_Post - FN_ModelIndex_Post, -#else - NULL, -#endif -#ifdef FN_ModelFrames_Post - FN_ModelFrames_Post, -#else - NULL, -#endif -#ifdef FN_SetSize_Post - FN_SetSize_Post, -#else - NULL, -#endif -#ifdef FN_ChangeLevel_Post - FN_ChangeLevel_Post, -#else - NULL, -#endif -#ifdef FN_GetSpawnParms_Post - FN_GetSpawnParms_Post, -#else - NULL, -#endif -#ifdef FN_SaveSpawnParms_Post - FN_SaveSpawnParms_Post, -#else - NULL, -#endif -#ifdef FN_VecToYaw_Post - FN_VecToYaw_Post, -#else - NULL, -#endif -#ifdef FN_VecToAngles_Post - FN_VecToAngles_Post, -#else - NULL, -#endif -#ifdef FN_MoveToOrigin_Post - FN_MoveToOrigin_Post, -#else - NULL, -#endif -#ifdef FN_ChangeYaw_Post - FN_ChangeYaw_Post, -#else - NULL, -#endif -#ifdef FN_ChangePitch_Post - FN_ChangePitch_Post, -#else - NULL, -#endif -#ifdef FN_FindEntityByString_Post - FN_FindEntityByString_Post, -#else - NULL, -#endif -#ifdef FN_GetEntityIllum_Post - FN_GetEntityIllum_Post, -#else - NULL, -#endif -#ifdef FN_FindEntityInSphere_Post - FN_FindEntityInSphere_Post, -#else - NULL, -#endif -#ifdef FN_FindClientInPVS_Post - FN_FindClientInPVS_Post, -#else - NULL, -#endif -#ifdef FN_EntitiesInPVS_Post - FN_EntitiesInPVS_Post, -#else - NULL, -#endif -#ifdef FN_MakeVectors_Post - FN_MakeVectors_Post, -#else - NULL, -#endif -#ifdef FN_AngleVectors_Post - FN_AngleVectors_Post, -#else - NULL, -#endif -#ifdef FN_CreateEntity_Post - FN_CreateEntity_Post, -#else - NULL, -#endif -#ifdef FN_RemoveEntity_Post - FN_RemoveEntity_Post, -#else - NULL, -#endif -#ifdef FN_CreateNamedEntity_Post - FN_CreateNamedEntity_Post, -#else - NULL, -#endif -#ifdef FN_MakeStatic_Post - FN_MakeStatic_Post, -#else - NULL, -#endif -#ifdef FN_EntIsOnFloor_Post - FN_EntIsOnFloor_Post, -#else - NULL, -#endif -#ifdef FN_DropToFloor_Post - FN_DropToFloor_Post, -#else - NULL, -#endif -#ifdef FN_WalkMove_Post - FN_WalkMove_Post, -#else - NULL, -#endif -#ifdef FN_SetOrigin_Post - FN_SetOrigin_Post, -#else - NULL, -#endif -#ifdef FN_EmitSound_Post - FN_EmitSound_Post, -#else - NULL, -#endif -#ifdef FN_EmitAmbientSound_Post - FN_EmitAmbientSound_Post, -#else - NULL, -#endif -#ifdef FN_TraceLine_Post - FN_TraceLine_Post, -#else - NULL, -#endif -#ifdef FN_TraceToss_Post - FN_TraceToss_Post, -#else - NULL, -#endif -#ifdef FN_TraceMonsterHull_Post - FN_TraceMonsterHull_Post, -#else - NULL, -#endif -#ifdef FN_TraceHull_Post - FN_TraceHull_Post, -#else - NULL, -#endif -#ifdef FN_TraceModel_Post - FN_TraceModel_Post, -#else - NULL, -#endif -#ifdef FN_TraceTexture_Post - FN_TraceTexture_Post, -#else - NULL, -#endif -#ifdef FN_TraceSphere_Post - FN_TraceSphere_Post, -#else - NULL, -#endif -#ifdef FN_GetAimVector_Post - FN_GetAimVector_Post, -#else - NULL, -#endif -#ifdef FN_ServerCommand_Post - FN_ServerCommand_Post, -#else - NULL, -#endif -#ifdef FN_ServerExecute_Post - FN_ServerExecute_Post, -#else - NULL, -#endif -#ifdef FN_engClientCommand_Post - FN_engClientCommand_Post, -#else - NULL, -#endif -#ifdef FN_ParticleEffect_Post - FN_ParticleEffect_Post, -#else - NULL, -#endif -#ifdef FN_LightStyle_Post - FN_LightStyle_Post, -#else - NULL, -#endif -#ifdef FN_DecalIndex_Post - FN_DecalIndex_Post, -#else - NULL, -#endif -#ifdef FN_PointContents_Post - FN_PointContents_Post, -#else - NULL, -#endif -#ifdef FN_MessageBegin_Post - FN_MessageBegin_Post, -#else - NULL, -#endif -#ifdef FN_MessageEnd_Post - FN_MessageEnd_Post, -#else - NULL, -#endif -#ifdef FN_WriteByte_Post - FN_WriteByte_Post, -#else - NULL, -#endif -#ifdef FN_WriteChar_Post - FN_WriteChar_Post, -#else - NULL, -#endif -#ifdef FN_WriteShort_Post - FN_WriteShort_Post, -#else - NULL, -#endif -#ifdef FN_WriteLong_Post - FN_WriteLong_Post, -#else - NULL, -#endif -#ifdef FN_WriteAngle_Post - FN_WriteAngle_Post, -#else - NULL, -#endif -#ifdef FN_WriteCoord_Post - FN_WriteCoord_Post, -#else - NULL, -#endif -#ifdef FN_WriteString_Post - FN_WriteString_Post, -#else - NULL, -#endif -#ifdef FN_WriteEntity_Post - FN_WriteEntity_Post, -#else - NULL, -#endif -#ifdef FN_CVarRegister_Post - FN_CVarRegister_Post, -#else - NULL, -#endif -#ifdef FN_CVarGetFloat_Post - FN_CVarGetFloat_Post, -#else - NULL, -#endif -#ifdef FN_CVarGetString_Post - FN_CVarGetString_Post, -#else - NULL, -#endif -#ifdef FN_CVarSetFloat_Post - FN_CVarSetFloat_Post, -#else - NULL, -#endif -#ifdef FN_CVarSetString_Post - FN_CVarSetString_Post, -#else - NULL, -#endif -#ifdef FN_AlertMessage_Post - FN_AlertMessage_Post, -#else - NULL, -#endif -#ifdef FN_EngineFprintf_Post - FN_EngineFprintf_Post, -#else - NULL, -#endif -#ifdef FN_PvAllocEntPrivateData_Post - FN_PvAllocEntPrivateData_Post, -#else - NULL, -#endif -#ifdef FN_PvEntPrivateData_Post - FN_PvEntPrivateData_Post, -#else - NULL, -#endif -#ifdef FN_FreeEntPrivateData_Post - FN_FreeEntPrivateData_Post, -#else - NULL, -#endif -#ifdef FN_SzFromIndex_Post - FN_SzFromIndex_Post, -#else - NULL, -#endif -#ifdef FN_AllocString_Post - FN_AllocString_Post, -#else - NULL, -#endif -#ifdef FN_GetVarsOfEnt_Post - FN_GetVarsOfEnt_Post, -#else - NULL, -#endif -#ifdef FN_PEntityOfEntOffset_Post - FN_PEntityOfEntOffset_Post, -#else - NULL, -#endif -#ifdef FN_EntOffsetOfPEntity_Post - FN_EntOffsetOfPEntity_Post, -#else - NULL, -#endif -#ifdef FN_IndexOfEdict_Post - FN_IndexOfEdict_Post, -#else - NULL, -#endif -#ifdef FN_PEntityOfEntIndex_Post - FN_PEntityOfEntIndex_Post, -#else - NULL, -#endif -#ifdef FN_FindEntityByVars_Post - FN_FindEntityByVars_Post, -#else - NULL, -#endif -#ifdef FN_GetModelPtr_Post - FN_GetModelPtr_Post, -#else - NULL, -#endif -#ifdef FN_RegUserMsg_Post - FN_RegUserMsg_Post, -#else - NULL, -#endif -#ifdef FN_AnimationAutomove_Post - FN_AnimationAutomove_Post, -#else - NULL, -#endif -#ifdef FN_GetBonePosition_Post - FN_GetBonePosition_Post, -#else - NULL, -#endif -#ifdef FN_FunctionFromName_Post - FN_FunctionFromName_Post, -#else - NULL, -#endif -#ifdef FN_NameForFunction_Post - FN_NameForFunction_Post, -#else - NULL, -#endif -#ifdef FN_ClientPrintf_Post - FN_ClientPrintf_Post, -#else - NULL, -#endif -#ifdef FN_ServerPrint_Post - FN_ServerPrint_Post, -#else - NULL, -#endif -#ifdef FN_Cmd_Args_Post - FN_Cmd_Args_Post, -#else - NULL, -#endif -#ifdef FN_Cmd_Argv_Post - FN_Cmd_Argv_Post, -#else - NULL, -#endif -#ifdef FN_Cmd_Argc_Post - FN_Cmd_Argc_Post, -#else - NULL, -#endif -#ifdef FN_GetAttachment_Post - FN_GetAttachment_Post, -#else - NULL, -#endif -#ifdef FN_CRC32_Init_Post - FN_CRC32_Init_Post, -#else - NULL, -#endif -#ifdef FN_CRC32_ProcessBuffer_Post - FN_CRC32_ProcessBuffer_Post, -#else - NULL, -#endif -#ifdef FN_CRC32_ProcessByte_Post - FN_CRC32_ProcessByte_Post, -#else - NULL, -#endif -#ifdef FN_CRC32_Final_Post - FN_CRC32_Final_Post, -#else - NULL, -#endif -#ifdef FN_RandomLong_Post - FN_RandomLong_Post, -#else - NULL, -#endif -#ifdef FN_RandomFloat_Post - FN_RandomFloat_Post, -#else - NULL, -#endif -#ifdef FN_SetView_Post - FN_SetView_Post, -#else - NULL, -#endif -#ifdef FN_Time_Post - FN_Time_Post, -#else - NULL, -#endif -#ifdef FN_CrosshairAngle_Post - FN_CrosshairAngle_Post, -#else - NULL, -#endif -#ifdef FN_LoadFileForMe_Post - FN_LoadFileForMe_Post, -#else - NULL, -#endif -#ifdef FN_FreeFile_Post - FN_FreeFile_Post, -#else - NULL, -#endif -#ifdef FN_EndSection_Post - FN_EndSection_Post, -#else - NULL, -#endif -#ifdef FN_CompareFileTime_Post - FN_CompareFileTime_Post, -#else - NULL, -#endif -#ifdef FN_GetGameDir_Post - FN_GetGameDir_Post, -#else - NULL, -#endif -#ifdef FN_Cvar_RegisterVariable_Post - FN_Cvar_RegisterVariable_Post, -#else - NULL, -#endif -#ifdef FN_FadeClientVolume_Post - FN_FadeClientVolume_Post, -#else - NULL, -#endif -#ifdef FN_SetClientMaxspeed_Post - FN_SetClientMaxspeed_Post, -#else - NULL, -#endif -#ifdef FN_CreateFakeClient_Post - FN_CreateFakeClient_Post, -#else - NULL, -#endif -#ifdef FN_RunPlayerMove_Post - FN_RunPlayerMove_Post, -#else - NULL, -#endif -#ifdef FN_NumberOfEntities_Post - FN_NumberOfEntities_Post, -#else - NULL, -#endif -#ifdef FN_GetInfoKeyBuffer_Post - FN_GetInfoKeyBuffer_Post, -#else - NULL, -#endif -#ifdef FN_InfoKeyValue_Post - FN_InfoKeyValue_Post, -#else - NULL, -#endif -#ifdef FN_SetKeyValue_Post - FN_SetKeyValue_Post, -#else - NULL, -#endif -#ifdef FN_SetClientKeyValue_Post - FN_SetClientKeyValue_Post, -#else - NULL, -#endif -#ifdef FN_IsMapValid_Post - FN_IsMapValid_Post, -#else - NULL, -#endif -#ifdef FN_StaticDecal_Post - FN_StaticDecal_Post, -#else - NULL, -#endif -#ifdef FN_PrecacheGeneric_Post - FN_PrecacheGeneric_Post, -#else - NULL, -#endif -#ifdef FN_GetPlayerUserId_Post - FN_GetPlayerUserId_Post, -#else - NULL, -#endif -#ifdef FN_BuildSoundMsg_Post - FN_BuildSoundMsg_Post, -#else - NULL, -#endif -#ifdef FN_IsDedicatedServer_Post - FN_IsDedicatedServer_Post, -#else - NULL, -#endif -#ifdef FN_CVarGetPointer_Post - FN_CVarGetPointer_Post, -#else - NULL, -#endif -#ifdef FN_GetPlayerWONId_Post - FN_GetPlayerWONId_Post, -#else - NULL, -#endif -#ifdef FN_Info_RemoveKey_Post - FN_Info_RemoveKey_Post, -#else - NULL, -#endif -#ifdef FN_GetPhysicsKeyValue_Post - FN_GetPhysicsKeyValue_Post, -#else - NULL, -#endif -#ifdef FN_SetPhysicsKeyValue_Post - FN_SetPhysicsKeyValue_Post, -#else - NULL, -#endif -#ifdef FN_GetPhysicsInfoString_Post - FN_GetPhysicsInfoString_Post, -#else - NULL, -#endif -#ifdef FN_PrecacheEvent_Post - FN_PrecacheEvent_Post, -#else - NULL, -#endif -#ifdef FN_PlaybackEvent_Post - FN_PlaybackEvent_Post, -#else - NULL, -#endif -#ifdef FN_SetFatPVS_Post - FN_SetFatPVS_Post, -#else - NULL, -#endif -#ifdef FN_SetFatPAS_Post - FN_SetFatPAS_Post, -#else - NULL, -#endif -#ifdef FN_CheckVisibility_Post - FN_CheckVisibility_Post, -#else - NULL, -#endif -#ifdef FN_DeltaSetField_Post - FN_DeltaSetField_Post, -#else - NULL, -#endif -#ifdef FN_DeltaUnsetField_Post - FN_DeltaUnsetField_Post, -#else - NULL, -#endif -#ifdef FN_DeltaAddEncoder_Post - FN_DeltaAddEncoder_Post, -#else - NULL, -#endif -#ifdef FN_GetCurrentPlayer_Post - FN_GetCurrentPlayer_Post, -#else - NULL, -#endif -#ifdef FN_CanSkipPlayer_Post - FN_CanSkipPlayer_Post, -#else - NULL, -#endif -#ifdef FN_DeltaFindField_Post - FN_DeltaFindField_Post, -#else - NULL, -#endif -#ifdef FN_DeltaSetFieldByIndex_Post - FN_DeltaSetFieldByIndex_Post, -#else - NULL, -#endif -#ifdef FN_DeltaUnsetFieldByIndex_Post - FN_DeltaUnsetFieldByIndex_Post, -#else - NULL, -#endif -#ifdef FN_SetGroupMask_Post - FN_SetGroupMask_Post, -#else - NULL, -#endif -#ifdef FN_engCreateInstancedBaseline_Post - FN_engCreateInstancedBaseline_Post, -#else - NULL, -#endif -#ifdef FN_Cvar_DirectSet_Post - FN_Cvar_DirectSet_Post, -#else - NULL, -#endif -#ifdef FN_ForceUnmodified_Post - FN_ForceUnmodified_Post, -#else - NULL, -#endif -#ifdef FN_GetPlayerStats_Post - FN_GetPlayerStats_Post, -#else - NULL, -#endif -#ifdef FN_AddServerCommand_Post - FN_AddServerCommand_Post, -#else - NULL, -#endif -#ifdef FN_Voice_GetClientListening_Post - FN_Voice_GetClientListening_Post, -#else - NULL, -#endif -#ifdef FN_Voice_SetClientListening_Post - FN_Voice_SetClientListening_Post, -#else - NULL, -#endif -#ifdef FN_GetPlayerAuthId_Post - FN_GetPlayerAuthId_Post -#else - NULL -#endif -}; // g_EngineFuncs_Post_Table - - -static NEW_DLL_FUNCTIONS g_NewFuncs_Table = -{ -#ifdef FN_OnFreeEntPrivateData - FN_OnFreeEntPrivateData, -#else - NULL, -#endif -#ifdef FN_GameShutdown - FN_GameShutdown, -#else - NULL, -#endif -#ifdef FN_ShouldCollide - ShouldCollide, -#else - NULL, -#endif -}; - - -static NEW_DLL_FUNCTIONS g_NewFuncs_Post_Table = -{ -#ifdef FN_OnFreeEntPrivateData_Post - FN_OnFreeEntPrivateData_Post, -#else - NULL, -#endif -#ifdef FN_GameShutdown_Post - FN_GameShutdown_Post, -#else - NULL, -#endif -#ifdef FN_ShouldCollide_Post - ShouldCollide_Post, -#else - NULL, -#endif -}; - -// Global variables from metamod. These variable names are referenced by -// various macros. -meta_globals_t *gpMetaGlobals; // metamod globals -gamedll_funcs_t *gpGamedllFuncs; // gameDLL function tables -mutil_funcs_t *gpMetaUtilFuncs; // metamod utility functions - - -plugin_info_t Plugin_info = { - META_INTERFACE_VERSION, - MODULE_NAME, - MODULE_VERSION, - MODULE_DATE, - MODULE_AUTHOR, - MODULE_URL, - MODULE_LOGTAG, - PT_ANYTIME, - PT_ANYTIME -}; - -/* -C_DLLEXPORT int GetEntityAPI(DLL_FUNCTIONS *pFunctionTable, int interfaceVersion) -{ - LOG_DEVELOPER(PLID, "called: GetEntityAPI; version=%d", interfaceVersion); - if(!pFunctionTable) { - LOG_ERROR(PLID, "GetEntityAPI called with null pFunctionTable"); - return(FALSE); - } - else if(interfaceVersion != INTERFACE_VERSION) { - LOG_ERROR(PLID, "GetEntityAPI version mismatch; requested=%d ours=%d", interfaceVersion, INTERFACE_VERSION); - return(FALSE); - } - memcpy(pFunctionTable, &g_EntityAPI_Table, sizeof( DLL_FUNCTIONS ) ); - - return (TRUE); -} - -C_DLLEXPORT int GetEntityAPI_Post(DLL_FUNCTIONS *pFunctionTable, int interfaceVersion) -{ - LOG_DEVELOPER(PLID, "called: GetEntityAPI_Post; version=%d", interfaceVersion); - if(!pFunctionTable) { - LOG_ERROR(PLID, "GetEntityAPI_Post called with null pFunctionTable"); - return(FALSE); - } - else if(interfaceVersion != INTERFACE_VERSION) { - LOG_ERROR(PLID, "GetEntityAPI_Post version mismatch; requested=%d ours=%d", interfaceVersion, INTERFACE_VERSION); - return(FALSE); - } - memcpy(pFunctionTable, &g_EntityAPI_Post_Table, sizeof( DLL_FUNCTIONS ) ); - - return(TRUE); -} -*/ - -C_DLLEXPORT int GetEntityAPI2(DLL_FUNCTIONS *pFunctionTable, int *interfaceVersion) -{ - LOG_DEVELOPER(PLID, "called: GetEntityAPI2; version=%d", *interfaceVersion); - if(!pFunctionTable) { - LOG_ERROR(PLID, "GetEntityAPI2 called with null pFunctionTable"); - return(FALSE); - } - else if(*interfaceVersion != INTERFACE_VERSION) { - LOG_ERROR(PLID, - "GetEntityAPI2 version mismatch; requested=%d ours=%d", - *interfaceVersion, INTERFACE_VERSION); - //! Tell engine what version we had, so it can figure out who is - //! out of date. - *interfaceVersion = INTERFACE_VERSION; - return(FALSE); - } - memcpy(pFunctionTable, &g_EntityAPI_Table, sizeof(DLL_FUNCTIONS)); - return(TRUE); -} - -C_DLLEXPORT int GetEntityAPI2_Post(DLL_FUNCTIONS *pFunctionTable, int *interfaceVersion) -{ - LOG_DEVELOPER(PLID, "called: GetEntityAPI2_Post; version=%d", *interfaceVersion); - if(!pFunctionTable) { - LOG_ERROR(PLID, "GetEntityAPI2_Post called with null pFunctionTable"); - return(FALSE); - } - else if(*interfaceVersion != INTERFACE_VERSION) { - LOG_ERROR(PLID, "GetEntityAPI2_Post version mismatch; requested=%d ours=%d", *interfaceVersion, INTERFACE_VERSION); - //! Tell engine what version we had, so it can figure out who is out of date. - *interfaceVersion = INTERFACE_VERSION; - return(FALSE); - } - memcpy( pFunctionTable, &g_EntityAPI_Post_Table, sizeof( DLL_FUNCTIONS ) ); - - return(TRUE); -} - -C_DLLEXPORT int GetEngineFunctions(enginefuncs_t *pengfuncsFromEngine, int *interfaceVersion) -{ - LOG_DEVELOPER(PLID, "called: GetEngineFunctions; version=%d", - *interfaceVersion); - if(!pengfuncsFromEngine) { - LOG_ERROR(PLID, - "GetEngineFunctions called with null pengfuncsFromEngine"); - return(FALSE); - } - else if(*interfaceVersion != ENGINE_INTERFACE_VERSION) { - LOG_ERROR(PLID, - "GetEngineFunctions version mismatch; requested=%d ours=%d", - *interfaceVersion, ENGINE_INTERFACE_VERSION); - // Tell metamod what version we had, so it can figure out who is - // out of date. - *interfaceVersion = ENGINE_INTERFACE_VERSION; - return(FALSE); - } - memcpy(pengfuncsFromEngine, &g_EngineFuncs_Table, sizeof(enginefuncs_t)); - return TRUE; -} - -C_DLLEXPORT int GetEngineFunctions_Post(enginefuncs_t *pengfuncsFromEngine, int *interfaceVersion) -{ - LOG_DEVELOPER(PLID, "called: GetEngineFunctions_Post; version=%d", *interfaceVersion); - if(!pengfuncsFromEngine) { - LOG_ERROR(PLID, "GetEngineFunctions_Post called with null pengfuncsFromEngine"); - return(FALSE); - } - else if(*interfaceVersion != ENGINE_INTERFACE_VERSION) { - LOG_ERROR(PLID, "GetEngineFunctions_Post version mismatch; requested=%d ours=%d", *interfaceVersion, ENGINE_INTERFACE_VERSION); - // Tell metamod what version we had, so it can figure out who is out of date. - *interfaceVersion = ENGINE_INTERFACE_VERSION; - return(FALSE); - } - memcpy(pengfuncsFromEngine, &g_EngineFuncs_Post_Table, sizeof(enginefuncs_t)); - return TRUE; - -} - -C_DLLEXPORT int GetNewDLLFunctions(NEW_DLL_FUNCTIONS *pNewFunctionTable, - int *interfaceVersion) -{ - LOG_DEVELOPER(PLID, "called: GetNewDLLFunctions; version=%d", - *interfaceVersion); - if(!pNewFunctionTable) { - LOG_ERROR(PLID, - "GetNewDLLFunctions called with null pNewFunctionTable"); - return(FALSE); - } - else if(*interfaceVersion != NEW_DLL_FUNCTIONS_VERSION) { - LOG_ERROR(PLID, - "GetNewDLLFunctions version mismatch; requested=%d ours=%d", - *interfaceVersion, NEW_DLL_FUNCTIONS_VERSION); - //! Tell engine what version we had, so it can figure out who is - //! out of date. - *interfaceVersion = NEW_DLL_FUNCTIONS_VERSION; - return(FALSE); - } - memcpy(pNewFunctionTable, &g_NewFuncs_Table, sizeof(NEW_DLL_FUNCTIONS)); - return TRUE; -} - -C_DLLEXPORT int GetNewDLLFunctions_Post( NEW_DLL_FUNCTIONS *pNewFunctionTable, int *interfaceVersion ) -{ - LOG_DEVELOPER(PLID, "called: GetNewDLLFunctions_Post; version=%d", *interfaceVersion); - if(!pNewFunctionTable) { - LOG_ERROR(PLID, "GetNewDLLFunctions_Post called with null pNewFunctionTable"); - return(FALSE); - } - else if(*interfaceVersion != NEW_DLL_FUNCTIONS_VERSION) { - LOG_ERROR(PLID, "GetNewDLLFunctions_Post version mismatch; requested=%d ours=%d", *interfaceVersion, NEW_DLL_FUNCTIONS_VERSION); - //! Tell engine what version we had, so it can figure out who is out of date. - *interfaceVersion = NEW_DLL_FUNCTIONS_VERSION; - return(FALSE); - } - memcpy(pNewFunctionTable, &g_NewFuncs_Post_Table, sizeof(NEW_DLL_FUNCTIONS)); - return TRUE; -} - - -static META_FUNCTIONS g_MetaFunctions_Table = -{ - NULL, - NULL, - GetEntityAPI2, - GetEntityAPI2_Post, - GetNewDLLFunctions, - GetNewDLLFunctions_Post, - GetEngineFunctions, - GetEngineFunctions_Post -}; - -C_DLLEXPORT int Meta_Query(char *ifvers, plugin_info_t **pPlugInfo, mutil_funcs_t *pMetaUtilFuncs) -{ - if ((int) CVAR_GET_FLOAT("developer") != 0) - UTIL_LogPrintf("[%s] dev: called: Meta_Query; version=%s, ours=%s\n", - Plugin_info.logtag, ifvers, Plugin_info.ifvers); - - // Check for valid pMetaUtilFuncs before we continue. - if(!pMetaUtilFuncs) { - UTIL_LogPrintf("[%s] ERROR: Meta_Query called with null pMetaUtilFuncs\n", Plugin_info.logtag); - return(FALSE); - } - - gpMetaUtilFuncs = pMetaUtilFuncs; - - *pPlugInfo = &Plugin_info; - - // Check for interface version compatibility. - if(!FStrEq(ifvers, Plugin_info.ifvers)) { - int mmajor=0, mminor=0, pmajor=0, pminor=0; - LOG_MESSAGE(PLID, "WARNING: meta-interface version mismatch; requested=%s ours=%s", - Plugin_info.logtag, ifvers); - // If plugin has later interface version, it's incompatible (update - // metamod). - sscanf(ifvers, "%d:%d", &mmajor, &mminor); - sscanf(META_INTERFACE_VERSION, "%d:%d", &pmajor, &pminor); - if(pmajor > mmajor || (pmajor==mmajor && pminor > mminor)) { - LOG_ERROR(PLID, "metamod version is too old for this module; update metamod"); - return(FALSE); - } - // If plugin has older major interface version, it's incompatible - // (update plugin). - else if(pmajor < mmajor) { - LOG_ERROR(PLID, "metamod version is incompatible with this module; please find a newer version of this module"); - return(FALSE); - } - // Minor interface is older, but this is guaranteed to be backwards - // compatible, so we warn, but we still accept it. - else if(pmajor==mmajor && pminor < mminor) - LOG_MESSAGE(PLID, "WARNING: metamod version is newer than expected; consider finding a newer version of this module"); - else - LOG_ERROR(PLID, "unexpected version comparison; metavers=%s, mmajor=%d, mminor=%d; plugvers=%s, pmajor=%d, pminor=%d", ifvers, mmajor, mminor, META_INTERFACE_VERSION, pmajor, pminor); - } - -#ifdef FN_META_QUERY - return FN_META_QUERY(); -#endif // FN_META_QUERY - - return 1; -} - - -C_DLLEXPORT int Meta_Attach(PLUG_LOADTIME now, META_FUNCTIONS *pFunctionTable, meta_globals_t *pMGlobals, gamedll_funcs_t *pGamedllFuncs) -{ - if(now > Plugin_info.loadable) { - LOG_ERROR(PLID, "Can't load module right now"); - return(FALSE); - } - if(!pMGlobals) { - LOG_ERROR(PLID, "Meta_Attach called with null pMGlobals"); - return(FALSE); - } - gpMetaGlobals=pMGlobals; - if(!pFunctionTable) { - LOG_ERROR(PLID, "Meta_Attach called with null pFunctionTable"); - return(FALSE); - } - - memcpy(pFunctionTable, &g_MetaFunctions_Table, sizeof(META_FUNCTIONS)); - gpGamedllFuncs=pGamedllFuncs; - - // Let's go. - -#ifdef FN_META_ATTACH - FN_META_ATTACH(); -#endif // FN_META_ATTACH - - return TRUE; -} - -C_DLLEXPORT int Meta_Detach(PLUG_LOADTIME now, PL_UNLOAD_REASON reason) -{ - if(now > Plugin_info.unloadable && reason != PNL_CMD_FORCED) { - LOG_ERROR(PLID, "Can't unload plugin right now"); - return(FALSE); - } - -#ifdef FN_META_DETACH - return FN_META_DETACH(); -#endif // FN_META_DETACH - return TRUE; -} - - - -#ifdef __linux__ -// linux prototype -C_DLLEXPORT void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals ) { - -#else -#ifdef _MSC_VER -// MSVC: Simulate __stdcall calling convention -C_DLLEXPORT __declspec(naked) void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals ) -{ - __asm // Prolog - { - // Save ebp - push ebp - // Set stack frame pointer - mov ebp, esp - // Allocate space for local variables - // The MSVC compiler gives us the needed size in __LOCAL_SIZE. - sub esp, __LOCAL_SIZE - // Push registers - push ebx - push esi - push edi - } -#else // _MSC_VER -#ifdef __GNUC__ -// GCC can also work with this -C_DLLEXPORT void __stdcall GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals ) -{ -#else // __GNUC__ -// compiler not known -#error There is no support (yet) for your compiler. Please use MSVC or GCC compilers or contact the AMX Mod X dev team. -#endif // __GNUC__ -#endif // _MSC_VER -#endif // __linux__ - - // ** Function core <-- - memcpy(&g_engfuncs, pengfuncsFromEngine, sizeof(enginefuncs_t)); - gpGlobals = pGlobals; - // NOTE! Have to call logging function _after_ copying into g_engfuncs, so - // that g_engfuncs.pfnAlertMessage() can be resolved properly, heh. :) - UTIL_LogPrintf("[%s] dev: called: GiveFnptrsToDll\n", Plugin_info.logtag); - // --> ** Function core - -#ifdef _MSC_VER - // Epilog - if (sizeof(int*) == 8) - { // 64 bit - __asm - { - // Pop registers - pop edi - pop esi - pop ebx - // Restore stack frame pointer - mov esp, ebp - // Restore ebp - pop ebp - // 2 * sizeof(int*) = 16 on 64 bit - ret 16 - } - } - else - { // 32 bit - __asm - { - // Pop registers - pop edi - pop esi - pop ebx - // Restore stack frame pointer - mov esp, ebp - // Restore ebp - pop ebp - // 2 * sizeof(int*) = 8 on 32 bit - ret 8 - } - } -#endif // #ifdef _MSC_VER -} - -#endif // #ifdef USE_METAMOD - -/************* AMXX Stuff *************/ - -// *** Types *** -typedef void* (*PFN_REQ_FNPTR)(const char * /*name*/); - -// *** Globals *** -// Module info -static amxx_module_info_s g_ModuleInfo = -{ - MODULE_NAME, - MODULE_AUTHOR, - MODULE_VERSION, -#ifdef MODULE_RELOAD_ON_MAPCHANGE - 1 -#else // MODULE_RELOAD_ON_MAPCHANGE - 0 -#endif // MODULE_RELOAD_ON_MAPCHANGE -}; - -// Storage for the requested functions -PFN_ADD_NATIVES g_fn_AddNatives; -PFN_BUILD_PATHNAME g_fn_BuildPathname; -PFN_GET_AMXADDR g_fn_GetAmxAddr; -PFN_PRINT_SRVCONSOLE g_fn_PrintSrvConsole; -PFN_GET_MODNAME g_fn_GetModname; -PFN_GET_AMXSCRIPTNAME g_fn_GetAmxScriptName; -PFN_GET_AMXSCRIPT g_fn_GetAmxScript; -PFN_FIND_AMXSCRIPT_BYAMX g_fn_FindAmxScriptByAmx; -PFN_FIND_AMXSCRIPT_BYNAME g_fn_FindAmxScriptByName; -PFN_SET_AMXSTRING g_fn_SetAmxString; -PFN_GET_AMXSTRING g_fn_GetAmxString; -PFN_GET_AMXSTRINGLEN g_fn_GetAmxStringLen; -PFN_FORMAT_AMXSTRING g_fn_FormatAmxString; -PFN_COPY_AMXMEMORY g_fn_CopyAmxMemory; -PFN_LOG g_fn_Log; -PFN_RAISE_AMXERROR g_fn_RaiseAmxError; -PFN_REGISTER_FORWARD g_fn_RegisterForward; -PFN_EXECUTE_FORWARD g_fn_ExecuteForward; -PFN_PREPARE_CELLARRAY g_fn_PrepareCellArray; -PFN_PREPARE_CHARARRAY g_fn_PrepareCharArray; -PFN_IS_PLAYER_VALID g_fn_IsPlayerValid; -PFN_GET_PLAYER_NAME g_fn_GetPlayerName; -PFN_GET_PLAYER_IP g_fn_GetPlayerIP; -PFN_IS_PLAYER_INGAME g_fn_IsPlayerIngame; -PFN_IS_PLAYER_BOT g_fn_IsPlayerBot; -PFN_IS_PLAYER_AUTHORIZED g_fn_IsPlayerAuthorized; -PFN_GET_PLAYER_TIME g_fn_GetPlayerTime; -PFN_GET_PLAYER_PLAYTIME g_fn_GetPlayerPlayTime; -PFN_GET_PLAYER_CURWEAPON g_fn_GetPlayerCurweapon; -PFN_GET_PLAYER_TEAMID g_fn_GetPlayerTeamID; -PFN_GET_PLAYER_DEATHS g_fn_GetPlayerDeaths; -PFN_GET_PLAYER_MENU g_fn_GetPlayerMenu; -PFN_GET_PLAYER_KEYS g_fn_GetPlayerKeys; -PFN_IS_PLAYER_ALIVE g_fn_IsPlayerAlive; -PFN_GET_PLAYER_FRAGS g_fn_GetPlayerFrags; -PFN_IS_PLAYER_CONNECTING g_fn_IsPlayerConnecting; -PFN_IS_PLAYER_HLTV g_fn_IsPlayerHLTV; -PFN_GET_PLAYER_ARMOR g_fn_GetPlayerArmor; -PFN_GET_PLAYER_HEALTH g_fn_GetPlayerHealth; -PFN_ALLOCATOR g_fn_Allocator; -PFN_REALLOCATOR g_fn_Reallocator; -PFN_DEALLOCATOR g_fn_Deallocator; -PFN_AMX_EXEC g_fn_AmxExec; -PFN_AMX_EXECV g_fn_AmxExecv; -PFN_AMX_ALLOT g_fn_AmxAllot; -PFN_AMX_FINDPUBLIC g_fn_AmxFindPublic; -PFN_LOAD_AMXSCRIPT g_fn_LoadAmxScript; -PFN_UNLOAD_AMXSCRIPT g_fn_UnloadAmxScript; -PFN_REAL_TO_CELL g_fn_RealToCell; -PFN_CELL_TO_REAL g_fn_CellToReal; -PFN_REGISTER_SPFORWARD g_fn_RegisterSPForward; -PFN_REGISTER_SPFORWARD_BYNAME g_fn_RegisterSPForwardByName; -PFN_UNREGISTER_SPFORWARD g_fn_UnregisterSPForward; - -// *** Exports *** -C_DLLEXPORT int AMXX_Query(int *interfaceVersion, amxx_module_info_s *moduleInfo) -{ - // check parameters - if (!interfaceVersion || !moduleInfo) - return AMXX_PARAM; - - // check interface version - if (*interfaceVersion != AMXX_INTERFACE_VERSION) - { - // Tell amxx core our interface version - *interfaceVersion = AMXX_INTERFACE_VERSION; - return AMXX_IFVERS; - } - - // copy module info - memcpy(moduleInfo, &g_ModuleInfo, sizeof(amxx_module_info_s)); - -#ifdef FN_AMXX_QUERY - FN_AMXX_QUERY(); -#endif // FN_AMXX_QUERY - // Everything ok :) - return AMXX_OK; -} - -// request function -#define REQFUNC(name, fptr, type) if ((fptr = (type)reqFnptrFunc(name)) == 0) return AMXX_FUNC_NOT_PRESENT -// request optional function -#define REQFUNC_OPT(name, fptr, type) fptr = (type)reqFnptrFunc(name) - -C_DLLEXPORT int AMXX_Attach(PFN_REQ_FNPTR reqFnptrFunc) -{ - // Check pointer - if (!reqFnptrFunc) - return AMXX_PARAM; - - // Req all known functions - // Misc - REQFUNC("BuildPathname", g_fn_BuildPathname, PFN_BUILD_PATHNAME); - REQFUNC("PrintSrvConsole", g_fn_PrintSrvConsole, PFN_PRINT_SRVCONSOLE); - REQFUNC("GetModname", g_fn_GetModname, PFN_GET_MODNAME); - REQFUNC("Log", g_fn_Log, PFN_LOG); - - // Amx scripts - REQFUNC("GetAmxScript", g_fn_GetAmxScript, PFN_GET_AMXSCRIPT); - REQFUNC("FindAmxScriptByAmx", g_fn_FindAmxScriptByAmx, PFN_FIND_AMXSCRIPT_BYAMX); - REQFUNC("FindAmxScriptByName", g_fn_FindAmxScriptByName, PFN_FIND_AMXSCRIPT_BYNAME); - REQFUNC("LoadAmxScript", g_fn_LoadAmxScript, PFN_LOAD_AMXSCRIPT); - REQFUNC("UnloadAmxScript", g_fn_UnloadAmxScript, PFN_UNLOAD_AMXSCRIPT); - - // String / mem in amx scripts support - REQFUNC("SetAmxString", g_fn_SetAmxString, PFN_SET_AMXSTRING); - REQFUNC("GetAmxString", g_fn_GetAmxString, PFN_GET_AMXSTRING); - REQFUNC("GetAmxStringLen", g_fn_GetAmxStringLen, PFN_GET_AMXSTRINGLEN); - REQFUNC("FormatAmxString", g_fn_FormatAmxString, PFN_FORMAT_AMXSTRING); - REQFUNC("CopyAmxMemory", g_fn_CopyAmxMemory, PFN_COPY_AMXMEMORY); - REQFUNC("GetAmxAddr", g_fn_GetAmxAddr, PFN_GET_AMXADDR); - - REQFUNC("amx_Exec", g_fn_AmxExec, PFN_AMX_EXEC); - REQFUNC("amx_Execv", g_fn_AmxExecv, PFN_AMX_EXECV); - REQFUNC("amx_FindPublic", g_fn_AmxFindPublic, PFN_AMX_FINDPUBLIC); - REQFUNC("amx_Allot", g_fn_AmxAllot, PFN_AMX_ALLOT); - - // Natives / Forwards - REQFUNC("AddNatives", g_fn_AddNatives, PFN_ADD_NATIVES); - REQFUNC("RaiseAmxError", g_fn_RaiseAmxError, PFN_RAISE_AMXERROR); - REQFUNC("RegisterForward", g_fn_RegisterForward, PFN_REGISTER_FORWARD); - REQFUNC("RegisterSPForward", g_fn_RegisterSPForward, PFN_REGISTER_SPFORWARD); - REQFUNC("RegisterSPForwardByName", g_fn_RegisterSPForwardByName, PFN_REGISTER_SPFORWARD_BYNAME); - REQFUNC("UnregisterSPForward", g_fn_UnregisterSPForward, PFN_UNREGISTER_SPFORWARD); - REQFUNC("ExecuteForward", g_fn_ExecuteForward, PFN_EXECUTE_FORWARD); - REQFUNC("PrepareCellArray", g_fn_PrepareCellArray, PFN_PREPARE_CELLARRAY); - REQFUNC("PrepareCharArray", g_fn_PrepareCharArray, PFN_PREPARE_CHARARRAY); - - // Player - REQFUNC("IsPlayerValid", g_fn_IsPlayerValid, PFN_IS_PLAYER_VALID); - REQFUNC("GetPlayerName", g_fn_GetPlayerName, PFN_GET_PLAYER_NAME); - REQFUNC("GetPlayerIP", g_fn_GetPlayerIP, PFN_GET_PLAYER_IP); - REQFUNC("IsPlayerInGame", g_fn_IsPlayerIngame, PFN_IS_PLAYER_INGAME); - REQFUNC("IsPlayerBot", g_fn_IsPlayerBot, PFN_IS_PLAYER_BOT); - REQFUNC("IsPlayerAuthorized", g_fn_IsPlayerAuthorized, PFN_IS_PLAYER_AUTHORIZED); - REQFUNC("GetPlayerTime", g_fn_GetPlayerTime, PFN_GET_PLAYER_TIME); - REQFUNC("GetPlayerPlayTime", g_fn_GetPlayerPlayTime, PFN_GET_PLAYER_PLAYTIME); - REQFUNC("GetPlayerCurweapon", g_fn_GetPlayerCurweapon, PFN_GET_PLAYER_CURWEAPON); - REQFUNC("GetPlayerTeamID", g_fn_GetPlayerTeamID, PFN_GET_PLAYER_TEAMID); - REQFUNC("GetPlayerDeaths", g_fn_GetPlayerDeaths, PFN_GET_PLAYER_DEATHS); - REQFUNC("GetPlayerMenu", g_fn_GetPlayerMenu, PFN_GET_PLAYER_MENU); - REQFUNC("GetPlayerKeys", g_fn_GetPlayerKeys, PFN_GET_PLAYER_KEYS); - REQFUNC("IsPlayerAlive", g_fn_IsPlayerAlive, PFN_IS_PLAYER_ALIVE); - REQFUNC("GetPlayerFrags", g_fn_GetPlayerFrags, PFN_GET_PLAYER_FRAGS); - REQFUNC("IsPlayerConnecting", g_fn_IsPlayerConnecting, PFN_IS_PLAYER_CONNECTING); - REQFUNC("IsPlayerHLTV", g_fn_IsPlayerHLTV, PFN_IS_PLAYER_HLTV); - REQFUNC("GetPlayerArmor", g_fn_GetPlayerArmor, PFN_GET_PLAYER_ARMOR); - REQFUNC("GetPlayerHealth", g_fn_GetPlayerHealth, PFN_GET_PLAYER_HEALTH); - - // Memory - REQFUNC_OPT("Allocator", g_fn_Allocator, PFN_ALLOCATOR); - REQFUNC_OPT("Reallocator", g_fn_Reallocator, PFN_REALLOCATOR); - REQFUNC_OPT("Deallocator", g_fn_Deallocator, PFN_DEALLOCATOR); - - REQFUNC("CellToReal", g_fn_CellToReal, PFN_CELL_TO_REAL); - REQFUNC("RealToCell", g_fn_RealToCell, PFN_REAL_TO_CELL); - -#ifdef FN_AMXX_ATTACH - FN_AMXX_ATTACH(); -#endif // FN_AMXX_ATACH - - return AMXX_OK; -} - -C_DLLEXPORT int AMXX_Detach() -{ -#ifdef FN_AMXX_DETACH - FN_AMXX_DETACH(); -#endif // FN_AMXX_DETACH - - return AMXX_OK; -} - -C_DLLEXPORT int AMXX_PluginsLoaded() -{ -#ifdef FN_AMXX_PLUGINSLOADED - FN_AMXX_PLUGINSLOADED(); -#endif // FN_AMXX_PLUGINSLOADED - return AMXX_OK; -} - -// Advanced MF functions -void MF_Log(const char *fmt, ...) -{ - // :TODO: Overflow possible here - char msg[3072]; - va_list arglst; - va_start(arglst, fmt); - vsprintf(msg, fmt, arglst); - va_end(arglst); - - g_fn_Log("[%s] %s", MODULE_NAME, msg); -} - - -#ifdef _DEBUG -// validate macros -// Makes sure compiler reports errors when macros are invalid -void ValidateMacros_DontCallThis_Smiley() -{ - MF_BuildPathname("str", "str", 0); - MF_FormatAmxString(NULL, 0, 0, NULL); - MF_GetAmxAddr(NULL, 0); - MF_PrintSrvConsole("str", "str", 0); - MF_GetModname(); - MF_GetScriptName(0); - MF_GetScriptAmx(0); - MF_FindScriptByAmx(NULL); - MF_FindScriptByName("str"); - MF_SetAmxString(NULL, 0, "str", 0); - MF_GetAmxString(NULL, 0, 0, 0); - MF_GetAmxStringLen(NULL); - MF_CopyAmxMemory(NULL, NULL, 0); - MF_Log("str", "str", 0); - MF_RaiseAmxError(NULL, 0); - MF_RegisterForward("str", (ForwardExecType)0, 0, 0, 0); - MF_ExecuteForward(0, 0, 0); - MF_PrepareCellArray(NULL, 0); - MF_PrepareCharArray(NULL, 0); - MF_IsPlayerValid(0); - MF_GetPlayerName(0); - MF_GetPlayerIP(0); - MF_IsPlayerIngame(0); - MF_IsPlayerBot(0); - MF_IsPlayerAuthorized(0); - MF_GetPlayerTime(0); - MF_GetPlayerPlayTime(0); - MF_GetPlayerCurweapon(0); - MF_GetPlayerTeamID(0); - MF_GetPlayerDeaths(0); - MF_GetPlayerMenu(0); - MF_GetPlayerKeys(0); - MF_IsPlayerAlive(0); - MF_GetPlayerFrags(0); - MF_IsPlayerConnecting(0); - MF_IsPlayerHLTV(0); - MF_GetPlayerArmor(0); - MF_GetPlayerHealth(0); - MF_AmxExec(0, 0, 0, 0); - MF_AmxExecv(0, 0, 0, 0, 0); - MF_AmxFindPublic(0, 0, 0); - MF_AmxAllot(0, 0, 0, 0); - MF_LoadAmxScript(0, 0, 0, 0); - MF_UnloadAmxScript(0, 0); - MF_RegisterSPForward(0, 0, 0, 0, 0, 0); - MF_RegisterSPForwardByName(0, 0, 0, 0, 0, 0); - MF_UnregisterSPForward(0); -} -#endif - -/************* MEMORY *************/ -// undef all defined macros -#undef new -#undef delete -#undef malloc -#undef calloc -#undef realloc -#undef free - -const unsigned int m_alloc_unknown = 0; -const unsigned int m_alloc_new = 1; -const unsigned int m_alloc_new_array = 2; -const unsigned int m_alloc_malloc = 3; -const unsigned int m_alloc_calloc = 4; -const unsigned int m_alloc_realloc = 5; -const unsigned int m_alloc_delete = 6; -const unsigned int m_alloc_delete_array = 7; -const unsigned int m_alloc_free = 8; - -const char *g_Mem_CurrentFilename = "??"; -int g_Mem_CurrentLine = 0; -const char *g_Mem_CurrentFunc = "??"; - -const char *Mem_MakeSourceFile(const char *sourceFile) -{ - static char buffer[512]; - static size_t pos = 0; - if (!pos) - { - // init - buffer[0] = '['; - strcpy(buffer + 1, MODULE_NAME); - pos = strlen(MODULE_NAME) + 1; - buffer[pos++] = ']'; - } - - // convert from absolute path to [modulename]filename - const char *ptr = strrchr(sourceFile, '\\'); - if (ptr) - ptr++; - else - { - ptr = strrchr(sourceFile, '/'); - if (ptr) - ptr++; - else - ptr = sourceFile; - } - strcpy(buffer + pos, ptr); - return buffer; -} - -void Mem_SetOwner(const char *filename, int line, const char *function) -{ - g_Mem_CurrentFilename = filename; - g_Mem_CurrentLine = line; - g_Mem_CurrentFunc = function; -} - -void Mem_ResetGlobals() -{ - Mem_SetOwner("??", 0, "??"); -} - -// raw (re/de)allocators -void * Mem_Allocator(const char *sourceFile, const unsigned int sourceLine, const char *sourceFunc, - const unsigned int allocationType, const size_t reportedSize) -{ - if (g_fn_Allocator) - return g_fn_Allocator(Mem_MakeSourceFile(sourceFile), sourceLine, sourceFunc, allocationType, reportedSize); - else - return malloc(reportedSize); -} - -void * Mem_Reallocator(const char *sourceFile, const unsigned int sourceLine, const char *sourceFunc, - const unsigned int reallocationType, const size_t reportedSize, void *reportedAddress) -{ - if (g_fn_Reallocator) - return g_fn_Reallocator(Mem_MakeSourceFile(sourceFile), sourceLine, sourceFunc, reallocationType, reportedSize, reportedAddress); - else - return realloc(reportedAddress, reportedSize); -} - -void Mem_Deallocator(const char *sourceFile, const unsigned int sourceLine, const char *sourceFunc, - const unsigned int deallocationType, void *reportedAddress) -{ - // If you you get user breakpoint here, something failed :) - // - invalid pointer - // - alloc type mismatch ( for example - // char *a = new char[5]; delete char; - // ) - // - The allocation unit is damaged (for example - // char *a = new char[5]; a[6] = 8; - // ) - // - break on dealloc flag set (somehow) - - if (g_fn_Deallocator) - g_fn_Deallocator(Mem_MakeSourceFile(sourceFile), sourceLine, sourceFunc, deallocationType, reportedAddress); - else - free(reportedAddress); -} - -// new and delete operators -void *operator new(size_t reportedSize) -{ - if (reportedSize == 0) - reportedSize = 1; - void *ptr = Mem_Allocator(g_Mem_CurrentFilename, g_Mem_CurrentLine, g_Mem_CurrentFunc, m_alloc_new, reportedSize); - // :TODO: Handler support ? - if (ptr) - return ptr; - - // allocation failed - throw std::bad_alloc(); -} - -void *operator new[](size_t reportedSize) -{ - if (reportedSize == 0) - reportedSize = 1; - void *ptr = Mem_Allocator(g_Mem_CurrentFilename, g_Mem_CurrentLine, g_Mem_CurrentFunc, m_alloc_new_array, reportedSize); - // :TODO: Handler support ? - if (ptr) - return ptr; - - // allocation failed - throw std::bad_alloc(); -} - -// Microsoft memory tracking operators -void *operator new(size_t reportedSize, const char *sourceFile, int sourceLine) -{ - if (reportedSize == 0) - reportedSize = 1; - void *ptr = Mem_Allocator(g_Mem_CurrentFilename, g_Mem_CurrentLine, g_Mem_CurrentFunc, m_alloc_new, reportedSize); - // :TODO: Handler support ? - if (ptr) - return ptr; - - // allocation failed - throw std::bad_alloc(); -} -void *operator new[](size_t reportedSize, const char *sourceFile, int sourceLine) -{ - if (reportedSize == 0) - reportedSize = 1; - void *ptr = Mem_Allocator(g_Mem_CurrentFilename, g_Mem_CurrentLine, g_Mem_CurrentFunc, m_alloc_new_array, reportedSize); - // :TODO: Handler support ? - if (ptr) - return ptr; - - // allocation failed - throw std::bad_alloc(); -} - -void operator delete(void *reportedAddress) -{ - if (!reportedAddress) - return; - - Mem_Deallocator(g_Mem_CurrentFilename, g_Mem_CurrentLine, g_Mem_CurrentFunc, m_alloc_delete, reportedAddress); -} - -void operator delete[](void *reportedAddress) -{ - if (!reportedAddress) - return; - - Mem_Deallocator(g_Mem_CurrentFilename, g_Mem_CurrentLine, g_Mem_CurrentFunc, m_alloc_delete_array, reportedAddress); -} - -/************* stuff from dlls/util.cpp *************/ -// must come here because cbase.h declares it's own operator new - -#ifdef USE_METAMOD - -// Selected portions of dlls/util.cpp from SDK 2.1. -// Functions copied from there as needed... -// And modified to avoid buffer overflows (argh). - -/*** -* -* Copyright (c) 1999, 2000 Valve LLC. All rights reserved. -* -* This product contains software technology licensed from Id -* Software, Inc. ("Id Technology"). Id Technology (c) 1996 Id Software, Inc. -* All Rights Reserved. -* -* Use, distribution, and modification of this source code and/or resulting -* object code is restricted to non-commercial enhancements to products from -* Valve LLC. All other use, distribution, or modification is prohibited -* without written permission from Valve LLC. -* -****/ -/* - -===== util.cpp ======================================================== - - Utility code. Really not optional after all. - -*/ - -#include -#include "sdk_util.h" -#include - -#include // for strncpy(), etc - -#include "osdep.h" // win32 vsnprintf, etc - -char* UTIL_VarArgs( char *format, ... ) -{ - va_list argptr; - static char string[1024]; - - va_start (argptr, format); - vsnprintf (string, sizeof(string), format, argptr); - va_end (argptr); - - return string; -} - - -//========================================================= -// UTIL_LogPrintf - Prints a logged message to console. -// Preceded by LOG: ( timestamp ) < message > -//========================================================= -void UTIL_LogPrintf( char *fmt, ... ) -{ - va_list argptr; - static char string[1024]; - - va_start ( argptr, fmt ); - vsnprintf ( string, sizeof(string), fmt, argptr ); - va_end ( argptr ); - - // Print to server console - ALERT( at_logged, "%s", string ); -} - - -void UTIL_HudMessage(CBaseEntity *pEntity, const hudtextparms_t &textparms, - const char *pMessage) -{ - if ( !pEntity ) - return; - - MESSAGE_BEGIN( MSG_ONE, SVC_TEMPENTITY, NULL, ENT(pEntity->pev) ); - WRITE_BYTE( TE_TEXTMESSAGE ); - WRITE_BYTE( textparms.channel & 0xFF ); - - WRITE_SHORT( FixedSigned16( textparms.x, 1<<13 ) ); - WRITE_SHORT( FixedSigned16( textparms.y, 1<<13 ) ); - WRITE_BYTE( textparms.effect ); - - WRITE_BYTE( textparms.r1 ); - WRITE_BYTE( textparms.g1 ); - WRITE_BYTE( textparms.b1 ); - WRITE_BYTE( textparms.a1 ); - - WRITE_BYTE( textparms.r2 ); - WRITE_BYTE( textparms.g2 ); - WRITE_BYTE( textparms.b2 ); - WRITE_BYTE( textparms.a2 ); - - WRITE_SHORT( FixedUnsigned16( textparms.fadeinTime, 1<<8 ) ); - WRITE_SHORT( FixedUnsigned16( textparms.fadeoutTime, 1<<8 ) ); - WRITE_SHORT( FixedUnsigned16( textparms.holdTime, 1<<8 ) ); - - if ( textparms.effect == 2 ) - WRITE_SHORT( FixedUnsigned16( textparms.fxTime, 1<<8 ) ); - - if ( strlen( pMessage ) < 512 ) - { - WRITE_STRING( pMessage ); - } - else - { - char tmp[512]; - strncpy( tmp, pMessage, 511 ); - tmp[511] = 0; - WRITE_STRING( tmp ); - } - MESSAGE_END(); -} - -short FixedSigned16( float value, float scale ) -{ - int output; - - output = (int) (value * scale); - - if ( output > 32767 ) - output = 32767; - - if ( output < -32768 ) - output = -32768; - - return (short)output; -} - -unsigned short FixedUnsigned16( float value, float scale ) -{ - int output; - - output = (int) (value * scale); - if ( output < 0 ) - output = 0; - if ( output > 0xFFFF ) - output = 0xFFFF; - - return (unsigned short)output; -} -#endif // USE_METAMOD diff --git a/dlls/metamapx/amxxmodule.h b/dlls/metamapx/amxxmodule.h deleted file mode 100755 index 0d41cab2..00000000 --- a/dlls/metamapx/amxxmodule.h +++ /dev/null @@ -1,2152 +0,0 @@ -/* - * AMX Mod X Module Interface Functions - * This file may be freely used -*/ - -// prevent double include -#ifndef __AMXXMODULE_H__ -#define __AMXXMODULE_H__ - -// config -#include "moduleconfig.h" - -// metamod include files -#ifdef USE_METAMOD -#include -#include -#include "osdep.h" -#endif // #ifdef USE_METAMOD - -// DLL Export -#undef DLLEXPORT -#ifndef __linux__ -#define DLLEXPORT __declspec(dllexport) -#else -#define DLLEXPORT -#define LINUX -#endif - -#undef C_DLLEXPORT -#define C_DLLEXPORT extern "C" DLLEXPORT - -// ***** AMXX stuff ***** - -// module interface version is 1 -#define AMXX_INTERFACE_VERSION 1 - -// amxx module info -struct amxx_module_info_s -{ - const char *name; - const char *author; - const char *version; - int reload; // reload on mapchange when nonzero -}; - - - -// return values from functions called by amxx -#define AMXX_OK 0 /* no error */ -#define AMXX_IFVERS 1 /* interface version */ -#define AMXX_PARAM 2 /* Invalid parameter */ -#define AMXX_FUNC_NOT_PRESENT 3 /* Function not present */ - -// *** Small stuff *** -// The next section is copied from the amx.h file -// Copyright (c) ITB CompuPhase, 1997-2004 - -#if defined __LCC__ || defined __DMC__ || defined __linux__ - #include -#elif !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L - /* The ISO C99 defines the int16_t and int_32t types. If the compiler got - * here, these types are probably undefined. - */ - #if defined __FreeBSD__ - #include - #else - typedef short int int16_t; - typedef unsigned short int uint16_t; - #if defined SN_TARGET_PS2 - typedef int int32_t; - typedef unsigned int uint32_t; - #else - typedef long int int32_t; - typedef unsigned long int uint32_t; - #endif - #if defined __WIN32__ || defined _WIN32 || defined WIN32 - typedef __int64 int64_t; - typedef unsigned __int64 uint64_t; - #define HAVE_I64 - #elif defined __GNUC__ - typedef long long int64_t; - typedef unsigned long long uint64_t; - #define HAVE_I64 - #endif - #endif -#endif - - -/* calling convention for native functions */ -#if !defined AMX_NATIVE_CALL - #define AMX_NATIVE_CALL -#endif -/* calling convention for all interface functions and callback functions */ -#if !defined AMXAPI - #if defined STDECL - #define AMXAPI __stdcall - #elif defined CDECL - #define AMXAPI __cdecl - #else - #define AMXAPI - #endif -#endif -#if !defined AMXEXPORT - #define AMXEXPORT -#endif - - - -#if !defined SMALL_CELL_SIZE - #define SMALL_CELL_SIZE 32 /* by default, use 32-bit cells */ -#endif -#if SMALL_CELL_SIZE==32 - typedef uint32_t ucell; - typedef int32_t cell; - typedef float REAL; -#elif SMALL_CELL_SIZE==64 - typedef uint64_t ucell; - typedef int64_t cell; - typedef double REAL; -#else - #error Unsupported cell size (SMALL_CELL_SIZE) -#endif - -#define UNPACKEDMAX ((1 << (sizeof(cell)-1)*8) - 1) - -struct tagAMX; -typedef cell (AMX_NATIVE_CALL *AMX_NATIVE)(struct tagAMX *amx, cell *params); -typedef int (AMXAPI *AMX_CALLBACK)(struct tagAMX *amx, cell index, - cell *result, cell *params); -typedef int (AMXAPI *AMX_DEBUG)(struct tagAMX *amx); -#if !defined _FAR - #define _FAR -#endif - -#if defined _MSC_VER - #pragma warning(disable:4103) /* disable warning message 4103 that complains - * about pragma pack in a header file */ - #pragma warning(disable:4100) /* "'%$S' : unreferenced formal parameter" */ -#endif - - -#if defined SN_TARGET_PS2 || defined __GNUC__ - #define AMX_NO_ALIGN -#endif - - -#if defined __GNUC__ - #define PACKED __attribute__((packed)) -#else - #define PACKED -#endif - - -#if !defined AMX_NO_ALIGN - #if defined __linux__ - #pragma pack(1) /* structures must be packed (byte-aligned) */ - #else - #pragma pack(push) - #pragma pack(1) /* structures must be packed (byte-aligned) */ - #if defined __TURBOC__ - #pragma option -a- /* "pack" pragma for older Borland compilers */ - #endif - #endif -#endif - -typedef struct { - const char _FAR *name PACKED; - AMX_NATIVE func PACKED; -} AMX_NATIVE_INFO; - -#define AMX_USERNUM 4 - -/* The AMX structure is the internal structure for many functions. Not all - * fields are valid at all times; many fields are cached in local variables. - */ -typedef struct tagAMX { - unsigned char _FAR *base PACKED; /* points to the AMX header ("amxhdr") plus the code, optionally also the data */ - unsigned char _FAR *data PACKED; /* points to separate data+stack+heap, may be NULL */ - AMX_CALLBACK callback PACKED; - AMX_DEBUG debug PACKED; /* debug callback */ - /* for external functions a few registers must be accessible from the outside */ - cell cip PACKED; /* instruction pointer: relative to base + amxhdr->cod */ - cell frm PACKED; /* stack frame base: relative to base + amxhdr->dat */ - cell hea PACKED; /* top of the heap: relative to base + amxhdr->dat */ - cell hlw PACKED; /* bottom of the heap: relative to base + amxhdr->dat */ - cell stk PACKED; /* stack pointer: relative to base + amxhdr->dat */ - cell stp PACKED; /* top of the stack: relative to base + amxhdr->dat */ - int flags PACKED; /* current status, see amx_Flags() */ - /* for assertions and debug hook */ - cell curline PACKED; - cell curfile PACKED; - int dbgcode PACKED; - cell dbgaddr PACKED; - cell dbgparam PACKED; - char _FAR *dbgname PACKED; - /* user data */ - long usertags[AMX_USERNUM] PACKED; - void _FAR *userdata[AMX_USERNUM] PACKED; - /* native functions can raise an error */ - int error PACKED; - /* the sleep opcode needs to store the full AMX status */ - cell pri PACKED; - cell alt PACKED; - cell reset_stk PACKED; - cell reset_hea PACKED; - cell sysreq_d PACKED; /* relocated address/value for the SYSREQ.D opcode */ - #if defined JIT - /* support variables for the JIT */ - int reloc_size PACKED; /* required temporary buffer for relocations */ - long code_size PACKED; /* estimated memory footprint of the native code */ - #endif -} AMX; - -enum { - AMX_ERR_NONE, - /* reserve the first 15 error codes for exit codes of the abstract machine */ - AMX_ERR_EXIT, /* forced exit */ - AMX_ERR_ASSERT, /* assertion failed */ - AMX_ERR_STACKERR, /* stack/heap collision */ - AMX_ERR_BOUNDS, /* index out of bounds */ - AMX_ERR_MEMACCESS, /* invalid memory access */ - AMX_ERR_INVINSTR, /* invalid instruction */ - AMX_ERR_STACKLOW, /* stack underflow */ - AMX_ERR_HEAPLOW, /* heap underflow */ - AMX_ERR_CALLBACK, /* no callback, or invalid callback */ - AMX_ERR_NATIVE, /* native function failed */ - AMX_ERR_DIVIDE, /* divide by zero */ - AMX_ERR_SLEEP, /* go into sleepmode - code can be restarted */ - - AMX_ERR_MEMORY = 16, /* out of memory */ - AMX_ERR_FORMAT, /* invalid file format */ - AMX_ERR_VERSION, /* file is for a newer version of the AMX */ - AMX_ERR_NOTFOUND, /* function not found */ - AMX_ERR_INDEX, /* invalid index parameter (bad entry point) */ - AMX_ERR_DEBUG, /* debugger cannot run */ - AMX_ERR_INIT, /* AMX not initialized (or doubly initialized) */ - AMX_ERR_USERDATA, /* unable to set user data field (table full) */ - AMX_ERR_INIT_JIT, /* cannot initialize the JIT */ - AMX_ERR_PARAMS, /* parameter error */ - AMX_ERR_DOMAIN, /* domain error, expression result does not fit in range */ -}; - - -// ***** declare functions ***** - -#ifdef USE_METAMOD -void UTIL_LogPrintf( char *fmt, ... ); -void UTIL_HudMessage(CBaseEntity *pEntity, const hudtextparms_t &textparms, const char *pMessage); -short FixedSigned16( float value, float scale ); -unsigned short FixedUnsigned16( float value, float scale ); - -#ifdef FN_META_QUERY -void FN_META_QUERY(void); -#endif // FN_META_QUERY - -#ifdef FN_META_ATTACH -void FN_META_ATTACH(void); -#endif // FN_META_ATTACH - -#ifdef FN_META_DETACH -void FN_META_DETACH(void); -#endif // FN_META_DETACH - - - - - -#ifdef FN_GameDLLInit -void FN_GameDLLInit(void); -#endif // FN_GameDLLInit - -#ifdef FN_DispatchSpawn -int FN_DispatchSpawn(edict_t *pent); -#endif // FN_DispatchSpawn - -#ifdef FN_DispatchThink -void FN_DispatchThink(edict_t *pent); -#endif // FN_DispatchThink - -#ifdef FN_DispatchUse -void FN_DispatchUse(edict_t *pentUser, edict_t *pentOther); -#endif // FN_DispatchUse - -#ifdef FN_DispatchTouch -void FN_DispatchTouch(edict_t *pentTouched, edict_t *pentOther); -#endif // FN_DispatchTouch - -#ifdef FN_DispatchBlocked -void FN_DispatchBlocked(edict_t *pentBlocked, edict_t *pentOther); -#endif // FN_DispatchBlocked - -#ifdef FN_DispatchKeyValue -void FN_DispatchKeyValue(edict_t *pentKeyvalue, KeyValueData *pkvd); -#endif // FN_DispatchKeyValue - -#ifdef FN_DispatchSave -void FN_DispatchSave(edict_t *pent, SAVERESTOREDATA *pSaveData); -#endif // FN_DispatchSave - -#ifdef FN_DispatchRestore -int FN_DispatchRestore(edict_t *pent, SAVERESTOREDATA *pSaveData, int globalEntity); -#endif // FN_DispatchRestore - -#ifdef FN_DispatchObjectCollsionBox -void FN_DispatchObjectCollsionBox(edict_t *pent); -#endif // FN_DispatchObjectCollsionBox - -#ifdef FN_SaveWriteFields -void FN_SaveWriteFields(SAVERESTOREDATA *pSaveData, const char *pname, void *pBaseData, TYPEDESCRIPTION *pFields, int fieldCount); -#endif // FN_SaveWriteFields - -#ifdef FN_SaveReadFields -void FN_SaveReadFields(SAVERESTOREDATA *pSaveData, const char *pname, void *pBaseData, TYPEDESCRIPTION *pFields, int fieldCount); -#endif // FN_SaveReadFields - -#ifdef FN_SaveGlobalState -void FN_SaveGlobalState(SAVERESTOREDATA *pSaveData); -#endif // FN_SaveGlobalState - -#ifdef FN_RestoreGlobalState -void FN_RestoreGlobalState(SAVERESTOREDATA *pSaveData); -#endif // FN_RestoreGlobalState - -#ifdef FN_ResetGlobalState -void FN_ResetGlobalState(void); -#endif // FN_ResetGlobalState - -#ifdef FN_ClientConnect -BOOL FN_ClientConnect(edict_t *pEntity, const char *pszName, const char *pszAddress, char szRejectReason[ 128 ]); -#endif // FN_ClientConnect - -#ifdef FN_ClientDisconnect -void FN_ClientDisconnect(edict_t *pEntity); -#endif // FN_ClientDisconnect - -#ifdef FN_ClientKill -void FN_ClientKill(edict_t *pEntity); -#endif // FN_ClientKill - -#ifdef FN_ClientPutInServer -void FN_ClientPutInServer(edict_t *pEntity); -#endif // FN_ClientPutInServer - -#ifdef FN_ClientCommand -void FN_ClientCommand(edict_t *pEntity); -#endif // FN_ClientCommand - -#ifdef FN_ClientUserInfoChanged -void FN_ClientUserInfoChanged(edict_t *pEntity, char *infobuffer); -#endif // FN_ClientUserInfoChanged - -#ifdef FN_ServerActivate -void FN_ServerActivate(edict_t *pEdictList, int edictCount, int clientMax); -#endif // FN_ServerActivate - -#ifdef FN_ServerDeactivate -void FN_ServerDeactivate(void); -#endif // FN_ServerDeactivate - -#ifdef FN_PlayerPreThink -void FN_PlayerPreThink(edict_t *pEntity); -#endif // FN_PlayerPreThink - -#ifdef FN_PlayerPostThink -void FN_PlayerPostThink(edict_t *pEntity); -#endif // FN_PlayerPostThink - -#ifdef FN_StartFrame -void FN_StartFrame(void); -#endif // FN_StartFrame - -#ifdef FN_ParmsNewLevel -void FN_ParmsNewLevel(void); -#endif // FN_ParmsNewLevel - -#ifdef FN_ParmsChangeLevel -void FN_ParmsChangeLevel(void); -#endif // FN_ParmsChangeLevel - -#ifdef FN_GetGameDescription -const char *FN_GetGameDescription(void); -#endif // FN_GetGameDescription - -#ifdef FN_PlayerCustomization -void FN_PlayerCustomization(edict_t *pEntity, customization_t *pCust); -#endif // FN_PlayerCustomization - -#ifdef FN_SpectatorConnect -void FN_SpectatorConnect(edict_t *pEntity); -#endif // FN_SpectatorConnect - -#ifdef FN_SpectatorDisconnect -void FN_SpectatorDisconnect(edict_t *pEntity); -#endif // FN_SpectatorDisconnect - -#ifdef FN_SpectatorThink -void FN_SpectatorThink(edict_t *pEntity); -#endif // FN_SpectatorThink - -#ifdef FN_Sys_Error -void FN_Sys_Error(const char *error_string); -#endif // FN_Sys_Error - -#ifdef FN_PM_Move -void FN_PM_Move(struct playermove_s *ppmove, int server); -#endif // FN_PM_Move - -#ifdef FN_PM_Init -void FN_PM_Init(struct playermove_s *ppmove); -#endif // FN_PM_Init - -#ifdef FN_PM_FindTextureType -char FN_PM_FindTextureType(char *name); -#endif // FN_PM_FindTextureType - -#ifdef FN_SetupVisibility -void FN_SetupVisibility(edict_t *pViewEntity, edict_t *pClient, unsigned char **pvs, unsigned char **pas); -#endif // FN_SetupVisibility - -#ifdef FN_UpdateClientData -void FN_UpdateClientData(const struct edict_s *ent, int sendweapons, struct clientdata_s *cd); -#endif // FN_UpdateClientData - -#ifdef FN_AddToFullPack -int FN_AddToFullPack(struct entity_state_s *state, int e, edict_t *ent, edict_t *host, int hostflags, int player, unsigned char *pSet); -#endif // FN_AddToFullPack - -#ifdef FN_CreateBaseline -void FN_CreateBaseline(int player, int eindex, struct entity_state_s *baseline, struct edict_s *entity, int playermodelindex, vec3_t player_mins, vec3_t player_maxs); -#endif // FN_CreateBaseline - -#ifdef FN_RegisterEncoders -void FN_RegisterEncoders(void); -#endif // FN_RegisterEncoders - -#ifdef FN_GetWeaponData -int FN_GetWeaponData(struct edict_s *player, struct weapon_data_s *info); -#endif // FN_GetWeaponData - -#ifdef FN_CmdStart -void FN_CmdStart(const edict_t *player, const struct usercmd_s *cmd, unsigned int random_seed); -#endif // FN_CmdStart - -#ifdef FN_CmdEnd -void FN_CmdEnd(const edict_t *player); -#endif // FN_CmdEnd - -#ifdef FN_ConnectionlessPacket -int FN_ConnectionlessPacket(const struct netadr_s *net_from, const char *args, char *response_buffer, int *response_buffer_size); -#endif // FN_ConnectionlessPacket - -#ifdef FN_GetHullBounds -int FN_GetHullBounds(int hullnumber, float *mins, float *maxs); -#endif // FN_GetHullBounds - -#ifdef FN_CreateInstancedBaselines -void FN_CreateInstancedBaselines(void); -#endif // FN_CreateInstancedBaselines - -#ifdef FN_InconsistentFile -int FN_InconsistentFile(const edict_t *player, const char *filename, char *disconnect_message); -#endif // FN_InconsistentFile - -#ifdef FN_AllowLagCompensation -int FN_AllowLagCompensation(void); -#endif // FN_AllowLagCompensation - - - - -#ifdef FN_GameDLLInit_Post -void FN_GameDLLInit_Post(void); -#endif // FN_GameDLLInit_Post - -#ifdef FN_DispatchSpawn_Post -int FN_DispatchSpawn_Post(edict_t *pent); -#endif // FN_DispatchSpawn_Post - -#ifdef FN_DispatchThink_Post -void FN_DispatchThink_Post(edict_t *pent); -#endif // FN_DispatchThink_Post - -#ifdef FN_DispatchUse_Post -void FN_DispatchUse_Post(edict_t *pentUser, edict_t *pentOther); -#endif // FN_DispatchUse_Post - -#ifdef FN_DispatchTouch_Post -void FN_DispatchTouch_Post(edict_t *pentTouched, edict_t *pentOther); -#endif // FN_DispatchTouch_Post - -#ifdef FN_DispatchBlocked_Post -void FN_DispatchBlocked_Post(edict_t *pentBlocked, edict_t *pentOther); -#endif // FN_DispatchBlocked_Post - -#ifdef FN_DispatchKeyValue_Post -void FN_DispatchKeyValue_Post(edict_t *pentKeyvalue, KeyValueData *pkvd); -#endif // FN_DispatchKeyValue_Post - -#ifdef FN_DispatchSave_Post -void FN_DispatchSave_Post(edict_t *pent, SAVERESTOREDATA *pSaveData); -#endif // FN_DispatchSave_Post - -#ifdef FN_DispatchRestore_Post -int FN_DispatchRestore_Post(edict_t *pent, SAVERESTOREDATA *pSaveData, int globalEntity); -#endif // FN_DispatchRestore_Post - -#ifdef FN_DispatchObjectCollsionBox_Post -void FN_DispatchObjectCollsionBox_Post(edict_t *pent); -#endif // FN_DispatchObjectCollsionBox_Post - -#ifdef FN_SaveWriteFields_Post -void FN_SaveWriteFields_Post(SAVERESTOREDATA *pSaveData, const char *pname, void *pBaseData, TYPEDESCRIPTION *pFields, int fieldCount); -#endif // FN_SaveWriteFields_Post - -#ifdef FN_SaveReadFields_Post -void FN_SaveReadFields_Post(SAVERESTOREDATA *pSaveData, const char *pname, void *pBaseData, TYPEDESCRIPTION *pFields, int fieldCount); -#endif // FN_SaveReadFields_Post - -#ifdef FN_SaveGlobalState_Post -void FN_SaveGlobalState_Post(SAVERESTOREDATA *pSaveData); -#endif // FN_SaveGlobalState_Post - -#ifdef FN_RestoreGlobalState_Post -void FN_RestoreGlobalState_Post(SAVERESTOREDATA *pSaveData); -#endif // FN_RestoreGlobalState_Post - -#ifdef FN_ResetGlobalState_Post -void FN_ResetGlobalState_Post(void); -#endif // FN_ResetGlobalState_Post - -#ifdef FN_ClientConnect_Post -BOOL FN_ClientConnect_Post(edict_t *pEntity, const char *pszName, const char *pszAddress, char szRejectReason[ 128 ]); -#endif // FN_ClientConnect_Post - -#ifdef FN_ClientDisconnect_Post -void FN_ClientDisconnect_Post(edict_t *pEntity); -#endif // FN_ClientDisconnect_Post - -#ifdef FN_ClientKill_Post -void FN_ClientKill_Post(edict_t *pEntity); -#endif // FN_ClientKill_Post - -#ifdef FN_ClientPutInServer_Post -void FN_ClientPutInServer_Post(edict_t *pEntity); -#endif // FN_ClientPutInServer_Post - -#ifdef FN_ClientCommand_Post -void FN_ClientCommand_Post(edict_t *pEntity); -#endif // FN_ClientCommand_Post - -#ifdef FN_ClientUserInfoChanged_Post -void FN_ClientUserInfoChanged_Post(edict_t *pEntity, char *infobuffer); -#endif // FN_ClientUserInfoChanged_Post - -#ifdef FN_ServerActivate_Post -void FN_ServerActivate_Post(edict_t *pEdictList, int edictCount, int clientMax); -#endif // FN_ServerActivate_Post - -#ifdef FN_ServerDeactivate_Post -void FN_ServerDeactivate_Post(void); -#endif // FN_ServerDeactivate_Post - -#ifdef FN_PlayerPreThink_Post -void FN_PlayerPreThink_Post(edict_t *pEntity); -#endif // FN_PlayerPreThink_Post - -#ifdef FN_PlayerPostThink_Post -void FN_PlayerPostThink_Post(edict_t *pEntity); -#endif // FN_PlayerPostThink_Post - -#ifdef FN_StartFrame_Post -void FN_StartFrame_Post(void); -#endif // FN_StartFrame_Post - -#ifdef FN_ParmsNewLevel_Post -void FN_ParmsNewLevel_Post(void); -#endif // FN_ParmsNewLevel_Post - -#ifdef FN_ParmsChangeLevel_Post -void FN_ParmsChangeLevel_Post(void); -#endif // FN_ParmsChangeLevel_Post - -#ifdef FN_GetGameDescription_Post -const char *FN_GetGameDescription_Post(void); -#endif // FN_GetGameDescription_Post - -#ifdef FN_PlayerCustomization_Post -void FN_PlayerCustomization_Post(edict_t *pEntity, customization_t *pCust); -#endif // FN_PlayerCustomization_Post - -#ifdef FN_SpectatorConnect_Post -void FN_SpectatorConnect_Post(edict_t *pEntity); -#endif // FN_SpectatorConnect_Post - -#ifdef FN_SpectatorDisconnect_Post -void FN_SpectatorDisconnect_Post(edict_t *pEntity); -#endif // FN_SpectatorDisconnect_Post - -#ifdef FN_SpectatorThink_Post -void FN_SpectatorThink_Post(edict_t *pEntity); -#endif // FN_SpectatorThink_Post - -#ifdef FN_Sys_Error_Post -void FN_Sys_Error_Post(const char *error_string); -#endif // FN_Sys_Error_Post - -#ifdef FN_PM_Move_Post -void FN_PM_Move_Post(struct playermove_s *ppmove, int server); -#endif // FN_PM_Move_Post - -#ifdef FN_PM_Init_Post -void FN_PM_Init_Post(struct playermove_s *ppmove); -#endif // FN_PM_Init_Post - -#ifdef FN_PM_FindTextureType_Post -char FN_PM_FindTextureType_Post(char *name); -#endif // FN_PM_FindTextureType_Post - -#ifdef FN_SetupVisibility_Post -void FN_SetupVisibility_Post(edict_t *pViewEntity, edict_t *pClient, unsigned char **pvs, unsigned char **pas); -#endif // FN_SetupVisibility_Post - -#ifdef FN_UpdateClientData_Post -void FN_UpdateClientData_Post(const struct edict_s *ent, int sendweapons, struct clientdata_s *cd); -#endif // FN_UpdateClientData_Post - -#ifdef FN_AddToFullPack_Post -int FN_AddToFullPack_Post(struct entity_state_s *state, int e, edict_t *ent, edict_t *host, int hostflags, int player, unsigned char *pSet); -#endif // FN_AddToFullPack_Post - -#ifdef FN_CreateBaseline_Post -void FN_CreateBaseline_Post(int player, int eindex, struct entity_state_s *baseline, struct edict_s *entity, int playermodelindex, vec3_t player_mins, vec3_t player_maxs); -#endif // FN_CreateBaseline_Post - -#ifdef FN_RegisterEncoders_Post -void FN_RegisterEncoders_Post(void); -#endif // FN_RegisterEncoders_Post - -#ifdef FN_GetWeaponData_Post -int FN_GetWeaponData_Post(struct edict_s *player, struct weapon_data_s *info); -#endif // FN_GetWeaponData_Post - -#ifdef FN_CmdStart_Post -void FN_CmdStart_Post(const edict_t *player, const struct usercmd_s *cmd, unsigned int random_seed); -#endif // FN_CmdStart_Post - -#ifdef FN_CmdEnd_Post -void FN_CmdEnd_Post(const edict_t *player); -#endif // FN_CmdEnd_Post - -#ifdef FN_ConnectionlessPacket_Post -int FN_ConnectionlessPacket_Post(const struct netadr_s *net_from, const char *args, char *response_buffer, int *response_buffer_size); -#endif // FN_ConnectionlessPacket_Post - -#ifdef FN_GetHullBounds_Post -int FN_GetHullBounds_Post(int hullnumber, float *mins, float *maxs); -#endif // FN_GetHullBounds_Post - -#ifdef FN_CreateInstancedBaselines_Post -void FN_CreateInstancedBaselines_Post(void); -#endif // FN_CreateInstancedBaselines_Post - -#ifdef FN_InconsistentFile_Post -int FN_InconsistentFile_Post(const edict_t *player, const char *filename, char *disconnect_message); -#endif // FN_InconsistentFile_Post - -#ifdef FN_AllowLagCompensation_Post -int FN_AllowLagCompensation_Post(void); -#endif // FN_AllowLagCompensation_Post - - - -#ifdef FN_PrecacheModel -int FN_PrecacheModel(char *s); -#endif // FN_PrecacheModel - -#ifdef FN_PrecacheSound -int FN_PrecacheSound(char *s); -#endif // FN_PrecacheSound - -#ifdef FN_SetModel -void FN_SetModel(edict_t *e, const char *m); -#endif // FN_SetModel - -#ifdef FN_ModelIndex -int FN_ModelIndex(const char *m); -#endif // FN_ModelIndex - -#ifdef FN_ModelFrames -int FN_ModelFrames(int modelIndex); -#endif // FN_ModelFrames - -#ifdef FN_SetSize -void FN_SetSize(edict_t *e, const float *rgflMin, const float *rgflMax); -#endif // FN_SetSize - -#ifdef FN_ChangeLevel -void FN_ChangeLevel(char *s1, char *s2); -#endif // FN_ChangeLevel - -#ifdef FN_GetSpawnParms -void FN_GetSpawnParms(edict_t *ent); -#endif // FN_GetSpawnParms - -#ifdef FN_SaveSpawnParms -void FN_SaveSpawnParms(edict_t *ent); -#endif // FN_SaveSpawnParms - -#ifdef FN_VecToYaw -float FN_VecToYaw(const float *rgflVector); -#endif // FN_VecToYaw - -#ifdef FN_VecToAngles -void FN_VecToAngles(const float *rgflVectorIn, float *rgflVectorOut); -#endif // FN_VecToAngles - -#ifdef FN_MoveToOrigin -void FN_MoveToOrigin(edict_t *ent, const float *pflGoal, float dist, int iMoveType); -#endif // FN_MoveToOrigin - -#ifdef FN_ChangeYaw -void FN_ChangeYaw(edict_t *ent); -#endif // FN_ChangeYaw - -#ifdef FN_ChangePitch -void FN_ChangePitch(edict_t *ent); -#endif // FN_ChangePitch - -#ifdef FN_FindEntityByString -edict_t *FN_FindEntityByString(edict_t *pEdictStartSearchAfter, const char *pszField, const char *pszValue); -#endif // FN_FindEntityByString - -#ifdef FN_GetEntityIllum -int FN_GetEntityIllum(edict_t *pEnt); -#endif // FN_GetEntityIllum - -#ifdef FN_FindEntityInSphere -edict_t *FN_FindEntityInSphere(edict_t *pEdictStartSearchAfter, const float *org, float rad); -#endif // FN_FindEntityInSphere - -#ifdef FN_FindClientInPVS -edict_t *FN_FindClientInPVS(edict_t *pEdict); -#endif // FN_FindClientInPVS - -#ifdef FN_EntitiesInPVS -edict_t *FN_EntitiesInPVS(edict_t *pplayer); -#endif // FN_EntitiesInPVS - -#ifdef FN_MakeVectors -void FN_MakeVectors(const float *rgflVector); -#endif // FN_MakeVectors - -#ifdef FN_AngleVectors -void FN_AngleVectors(const float *rgflVector, float *forward, float *right, float *up); -#endif // FN_AngleVectors - -#ifdef FN_CreateEntity -edict_t *FN_CreateEntity(void); -#endif // FN_CreateEntity - -#ifdef FN_RemoveEntity -void FN_RemoveEntity(edict_t *e); -#endif // FN_RemoveEntity - -#ifdef FN_CreateNamedEntity -edict_t *FN_CreateNamedEntity(int className); -#endif // FN_CreateNamedEntity - -#ifdef FN_MakeStatic -void FN_MakeStatic(edict_t *ent); -#endif // FN_MakeStatic - -#ifdef FN_EntIsOnFloor -int FN_EntIsOnFloor(edict_t *ent); -#endif // FN_EntIsOnFloor - -#ifdef FN_DropToFloor -int FN_DropToFloor(edict_t *ent); -#endif // FN_DropToFloor - -#ifdef FN_WalkMove -int FN_WalkMove(edict_t *ent, float yaw, float dist, int iMode); -#endif // FN_WalkMove - -#ifdef FN_SetOrigin -void FN_SetOrigin(edict_t *e, const float *rgflOrigin); -#endif // FN_SetOrigin - -#ifdef FN_EmitSound -void FN_EmitSound(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch); -#endif // FN_EmitSound - -#ifdef FN_EmitAmbientSound -void FN_EmitAmbientSound(edict_t *entity, float *pos, const char *samp, float vol, float attenuation, int fFlags, int pitch); -#endif // FN_EmitAmbientSound - -#ifdef FN_TraceLine -void FN_TraceLine(const float *v1, const float *v2, int fNoMonsters, edict_t *pentToSkip, TraceResult *ptr); -#endif // FN_TraceLine - -#ifdef FN_TraceToss -void FN_TraceToss(edict_t *pent, edict_t *pentToIgnore, TraceResult *ptr); -#endif // FN_TraceToss - -#ifdef FN_TraceMonsterHull -int FN_TraceMonsterHull(edict_t *pEdict, const float *v1, const float *v2, int fNoMonsters, edict_t *pentToSkip, TraceResult *ptr); -#endif // FN_TraceMonsterHull - -#ifdef FN_TraceHull -void FN_TraceHull(const float *v1, const float *v2, int fNoMonsters, int hullNumber, edict_t *pentToSkip, TraceResult *ptr); -#endif // FN_TraceHull - -#ifdef FN_TraceModel -void FN_TraceModel(const float *v1, const float *v2, int hullNumber, edict_t *pent, TraceResult *ptr); -#endif // FN_TraceModel - -#ifdef FN_TraceTexture -const char *FN_TraceTexture(edict_t *pTextureEntity, const float *v1, const float *v2 ); -#endif // FN_TraceTexture - -#ifdef FN_TraceSphere -void FN_TraceSphere(const float *v1, const float *v2, int fNoMonsters, float radius, edict_t *pentToSkip, TraceResult *ptr); -#endif // FN_TraceSphere - -#ifdef FN_GetAimVector -void FN_GetAimVector(edict_t *ent, float speed, float *rgflReturn); -#endif // FN_GetAimVector - -#ifdef FN_ServerCommand -void FN_ServerCommand(char *str); -#endif // FN_ServerCommand - -#ifdef FN_ServerExecute -void FN_ServerExecute(void); -#endif // FN_ServerExecute - -#ifdef FN_engClientCommand -void FN_engClientCommand(edict_t *pEdict, char *szFmt, ...); -#endif // FN_engClientCommand - -#ifdef FN_ParticleEffect -void FN_ParticleEffect(const float *org, const float *dir, float color, float count); -#endif // FN_ParticleEffect - -#ifdef FN_LightStyle -void FN_LightStyle(int style, char *val); -#endif // FN_LightStyle - -#ifdef FN_DecalIndex -int FN_DecalIndex(const char *name); -#endif // FN_DecalIndex - -#ifdef FN_PointContents -int FN_PointContents(const float *rgflVector); -#endif // FN_PointContents - -#ifdef FN_MessageBegin -void FN_MessageBegin(int msg_dest, int msg_type, const float *pOrigin, edict_t *ed); -#endif // FN_MessageBegin - -#ifdef FN_MessageEnd -void FN_MessageEnd(void); -#endif // FN_MessageEnd - -#ifdef FN_WriteByte -void FN_WriteByte(int iValue); -#endif // FN_WriteByte - -#ifdef FN_WriteChar -void FN_WriteChar(int iValue); -#endif // FN_WriteChar - -#ifdef FN_WriteShort -void FN_WriteShort(int iValue); -#endif // FN_WriteShort - -#ifdef FN_WriteLong -void FN_WriteLong(int iValue); -#endif // FN_WriteLong - -#ifdef FN_WriteAngle -void FN_WriteAngle(float flValue); -#endif // FN_WriteAngle - -#ifdef FN_WriteCoord -void FN_WriteCoord(float flValue); -#endif // FN_WriteCoord - -#ifdef FN_WriteString -void FN_WriteString(const char *sz); -#endif // FN_WriteString - -#ifdef FN_WriteEntity -void FN_WriteEntity(int iValue); -#endif // FN_WriteEntity - -#ifdef FN_CVarRegister -void FN_CVarRegister(cvar_t *pCvar); -#endif // FN_CVarRegister - -#ifdef FN_CVarGetFloat -float FN_CVarGetFloat(const char *szVarName); -#endif // FN_CVarGetFloat - -#ifdef FN_CVarGetString -const char *FN_CVarGetString(const char *szVarName); -#endif // FN_CVarGetString - -#ifdef FN_CVarSetFloat -void FN_CVarSetFloat(const char *szVarName, float flValue); -#endif // FN_CVarSetFloat - -#ifdef FN_CVarSetString -void FN_CVarSetString(const char *szVarName, const char *szValue); -#endif // FN_CVarSetString - -#ifdef FN_AlertMessage -void FN_AlertMessage(ALERT_TYPE atype, char *szFmt, ...); -#endif // FN_AlertMessage - -#ifdef FN_EngineFprintf -void FN_EngineFprintf(FILE *pfile, char *szFmt, ...); -#endif // FN_EngineFprintf - -#ifdef FN_PvAllocEntPrivateData -void *FN_PvAllocEntPrivateData(edict_t *pEdict, long cb); -#endif // FN_PvAllocEntPrivateData - -#ifdef FN_PvEntPrivateData -void *FN_PvEntPrivateData(edict_t *pEdict); -#endif // FN_PvEntPrivateData - -#ifdef FN_FreeEntPrivateData -void FN_FreeEntPrivateData(edict_t *pEdict); -#endif // FN_FreeEntPrivateData - -#ifdef FN_SzFromIndex -const char *FN_SzFromIndex(int iString); -#endif // FN_SzFromIndex - -#ifdef FN_AllocString -int FN_AllocString(const char *szValue); -#endif // FN_AllocString - -#ifdef FN_GetVarsOfEnt -struct entvars_s *FN_GetVarsOfEnt(edict_t *pEdict); -#endif // FN_GetVarsOfEnt - -#ifdef FN_PEntityOfEntOffset -edict_t *FN_PEntityOfEntOffset(int iEntOffset); -#endif // FN_PEntityOfEntOffset - -#ifdef FN_EntOffsetOfPEntity -int FN_EntOffsetOfPEntity(const edict_t *pEdict); -#endif // FN_EntOffsetOfPEntity - -#ifdef FN_IndexOfEdict -int FN_IndexOfEdict(const edict_t *pEdict); -#endif // FN_IndexOfEdict - -#ifdef FN_PEntityOfEntIndex -edict_t *FN_PEntityOfEntIndex(int iEntIndex); -#endif // FN_PEntityOfEntIndex - -#ifdef FN_FindEntityByVars -edict_t *FN_FindEntityByVars(struct entvars_s *pvars); -#endif // FN_FindEntityByVars - -#ifdef FN_GetModelPtr -void *FN_GetModelPtr(edict_t *pEdict); -#endif // FN_GetModelPtr - -#ifdef FN_RegUserMsg -int FN_RegUserMsg(const char *pszName, int iSize); -#endif // FN_RegUserMsg - -#ifdef FN_AnimationAutomove -void FN_AnimationAutomove(const edict_t *pEdict, float flTime); -#endif // FN_AnimationAutomove - -#ifdef FN_GetBonePosition -void FN_GetBonePosition(const edict_t *pEdict, int iBone, float *rgflOrigin, float *rgflAngles); -#endif // FN_GetBonePosition - -#ifdef FN_FunctionFromName -unsigned long FN_FunctionFromName(const char *pName); -#endif // FN_FunctionFromName - -#ifdef FN_NameForFunction -const char *FN_NameForFunction(unsigned long function); -#endif // FN_NameForFunction - -#ifdef FN_ClientPrintf -void FN_ClientPrintf(edict_t *pEdict, PRINT_TYPE ptype, const char *szMsg); -#endif // FN_ClientPrintf - -#ifdef FN_ServerPrint -void FN_ServerPrint(const char *szMsg); -#endif // FN_ServerPrint - -#ifdef FN_Cmd_Args -const char *FN_Cmd_Args(void); -#endif // FN_Cmd_Args - -#ifdef FN_Cmd_Argv -const char *FN_Cmd_Argv(int argc); -#endif // FN_Cmd_Argv - -#ifdef FN_Cmd_Argc -int FN_Cmd_Argc(void); -#endif // FN_Cmd_Argc - -#ifdef FN_GetAttachment -void FN_GetAttachment(const edict_t *pEdict, int iAttachment, float *rgflOrigin, float *rgflAngles ); -#endif // FN_GetAttachment - -#ifdef FN_CRC32_Init -void FN_CRC32_Init(CRC32_t *pulCRC); -#endif // FN_CRC32_Init - -#ifdef FN_CRC32_ProcessBuffer -void FN_CRC32_ProcessBuffer(CRC32_t *pulCRC, void *p, int len); -#endif // FN_CRC32_ProcessBuffer - -#ifdef FN_CRC32_ProcessByte -void FN_CRC32_ProcessByte(CRC32_t *pulCRC, unsigned char ch); -#endif // FN_CRC32_ProcessByte - -#ifdef FN_CRC32_Final -CRC32_t FN_CRC32_Final(CRC32_t pulCRC); -#endif // FN_CRC32_Final - -#ifdef FN_RandomLong -long FN_RandomLong(long lLow, long lHigh); -#endif // FN_RandomLong - -#ifdef FN_RandomFloat -float FN_RandomFloat(float flLow, float flHigh); -#endif // FN_RandomFloat - -#ifdef FN_SetView -void FN_SetView(const edict_t *pClient, const edict_t *pViewent); -#endif // FN_SetView - -#ifdef FN_Time -float FN_Time(void); -#endif // FN_Time - -#ifdef FN_CrosshairAngle -void FN_CrosshairAngle(const edict_t *pClient, float pitch, float yaw); -#endif // FN_CrosshairAngle - -#ifdef FN_LoadFileForMe -byte *FN_LoadFileForMe(char *filename, int *pLength); -#endif // FN_LoadFileForMe - -#ifdef FN_FreeFile -void FN_FreeFile(void *buffer); -#endif // FN_FreeFile - -#ifdef FN_EndSection -void FN_EndSection(const char *pszSectionName); -#endif // FN_EndSection - -#ifdef FN_CompareFileTime -int FN_CompareFileTime(char *filename1, char *filename2, int *iCompare); -#endif // FN_CompareFileTime - -#ifdef FN_GetGameDir -void FN_GetGameDir(char *szGetGameDir); -#endif // FN_GetGameDir - -#ifdef FN_Cvar_RegisterVariable -void FN_Cvar_RegisterVariable(cvar_t *variable); -#endif // FN_Cvar_RegisterVariable - -#ifdef FN_FadeClientVolume -void FN_FadeClientVolume(const edict_t *pEdict, int fadePercent, int fadeOutSeconds, int holdTime, int fadeInSeconds); -#endif // FN_FadeClientVolume - -#ifdef FN_SetClientMaxspeed -void FN_SetClientMaxspeed(const edict_t *pEdict, float fNewMaxspeed); -#endif // FN_SetClientMaxspeed - -#ifdef FN_CreateFakeClient -edict_t *FN_CreateFakeClient(const char *netname); -#endif // FN_CreateFakeClient - -#ifdef FN_RunPlayerMove -void FN_RunPlayerMove(edict_t *fakeclient, const float *viewangles, float forwardmove, float sidemove, float upmove, unsigned short buttons, byte impulse, byte msec); -#endif // FN_RunPlayerMove - -#ifdef FN_NumberOfEntities -int FN_NumberOfEntities(void); -#endif // FN_NumberOfEntities - -#ifdef FN_GetInfoKeyBuffer -char *FN_GetInfoKeyBuffer(edict_t *e); -#endif // FN_GetInfoKeyBuffer - -#ifdef FN_InfoKeyValue -char *FN_InfoKeyValue(char *infobuffer, char *key); -#endif // FN_InfoKeyValue - -#ifdef FN_SetKeyValue -void FN_SetKeyValue(char *infobuffer, char *key, char *value); -#endif // FN_SetKeyValue - -#ifdef FN_SetClientKeyValue -void FN_SetClientKeyValue(int clientIndex, char *infobuffer, char *key, char *value); -#endif // FN_SetClientKeyValue - -#ifdef FN_IsMapValid -int FN_IsMapValid(char *filename); -#endif // FN_IsMapValid - -#ifdef FN_StaticDecal -void FN_StaticDecal(const float *origin, int decalIndex, int entityIndex, int modelIndex); -#endif // FN_StaticDecal - -#ifdef FN_PrecacheGeneric -int FN_PrecacheGeneric(char *s); -#endif // FN_PrecacheGeneric - -#ifdef FN_GetPlayerUserId -int FN_GetPlayerUserId(edict_t *e ); -#endif // FN_GetPlayerUserId - -#ifdef FN_BuildSoundMsg -void FN_BuildSoundMsg(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed); -#endif // FN_BuildSoundMsg - -#ifdef FN_IsDedicatedServer -int FN_IsDedicatedServer(void); -#endif // FN_IsDedicatedServer - -#ifdef FN_CVarGetPointer -cvar_t *FN_CVarGetPointer(const char *szVarName); -#endif // FN_CVarGetPointer - -#ifdef FN_GetPlayerWONId -unsigned int FN_GetPlayerWONId(edict_t *e); -#endif // FN_GetPlayerWONId - -#ifdef FN_Info_RemoveKey -void FN_Info_RemoveKey( char *s, const char *key); -#endif // FN_Info_RemoveKey - -#ifdef FN_GetPhysicsKeyValue -const char *FN_GetPhysicsKeyValue(const edict_t *pClient, const char *key); -#endif // FN_GetPhysicsKeyValue - -#ifdef FN_SetPhysicsKeyValue -void FN_SetPhysicsKeyValue(const edict_t *pClient, const char *key, const char *value); -#endif // FN_SetPhysicsKeyValue - -#ifdef FN_GetPhysicsInfoString -const char *FN_GetPhysicsInfoString( const edict_t *pClient); -#endif // FN_GetPhysicsInfoString - -#ifdef FN_PrecacheEvent -unsigned short FN_PrecacheEvent(int type, const char *psz); -#endif // FN_PrecacheEvent - -#ifdef FN_PlaybackEvent -void FN_PlaybackEvent(int flags, const edict_t *pInvoker, unsigned short eventindex, float delay, float *origin, float *angles, float fparam1, float fparam2, int iparam1, int iparam2, int bparam1, int bparam2); -#endif // FN_PlaybackEvent - -#ifdef FN_SetFatPVS -unsigned char *FN_SetFatPVS(float *org); -#endif // FN_SetFatPVS - -#ifdef FN_SetFatPAS -unsigned char *FN_SetFatPAS(float *org); -#endif // FN_SetFatPAS - -#ifdef FN_CheckVisibility -int FN_CheckVisibility(const edict_t *entity, unsigned char *pset); -#endif // FN_CheckVisibility - -#ifdef FN_DeltaSetField -void FN_DeltaSetField(struct delta_s *pFields, const char *fieldname); -#endif // FN_DeltaSetField - -#ifdef FN_DeltaUnsetField -void FN_DeltaUnsetField(struct delta_s *pFields, const char *fieldname); -#endif // FN_DeltaUnsetField - -#ifdef FN_DeltaAddEncoder -void FN_DeltaAddEncoder(char *name, void (*conditionalencode)( struct delta_s *pFields, const unsigned char *from, const unsigned char *to ) ); -#endif // FN_DeltaAddEncoder - -#ifdef FN_GetCurrentPlayer -int FN_GetCurrentPlayer(void); -#endif // FN_GetCurrentPlayer - -#ifdef FN_CanSkipPlayer -int FN_CanSkipPlayer(const edict_t *player); -#endif // FN_CanSkipPlayer - -#ifdef FN_DeltaFindField -int FN_DeltaFindField(struct delta_s *pFields, const char *fieldname); -#endif // FN_DeltaFindField - -#ifdef FN_DeltaSetFieldByIndex -void FN_DeltaSetFieldByIndex(struct delta_s *pFields, int fieldNumber); -#endif // FN_DeltaSetFieldByIndex - -#ifdef FN_DeltaUnsetFieldByIndex -void FN_DeltaUnsetFieldByIndex(struct delta_s *pFields, int fieldNumber); -#endif // FN_DeltaUnsetFieldByIndex - -#ifdef FN_SetGroupMask -void FN_SetGroupMask(int mask, int op); -#endif // FN_SetGroupMask - -#ifdef FN_engCreateInstancedBaseline -int FN_engCreateInstancedBaseline(int classname, struct entity_state_s *baseline); -#endif // FN_engCreateInstancedBaseline - -#ifdef FN_Cvar_DirectSet -void FN_Cvar_DirectSet(struct cvar_s *var, char *value); -#endif // FN_Cvar_DirectSet - -#ifdef FN_ForceUnmodified -void FN_ForceUnmodified(FORCE_TYPE type, float *mins, float *maxs, const char *filename); -#endif // FN_ForceUnmodified - -#ifdef FN_GetPlayerStats -void FN_GetPlayerStats(const edict_t *pClient, int *ping, int *packet_loss); -#endif // FN_GetPlayerStats - -#ifdef FN_AddServerCommand -void FN_AddServerCommand(char *cmd_name, void (*function) (void)); -#endif // FN_AddServerCommand - -#ifdef FN_Voice_GetClientListening -qboolean FN_Voice_GetClientListening(int iReceiver, int iSender); -#endif // FN_Voice_GetClientListening - -#ifdef FN_Voice_SetClientListening -qboolean FN_Voice_SetClientListening(int iReceiver, int iSender, qboolean bListen); -#endif // FN_Voice_SetClientListening - -#ifdef FN_GetPlayerAuthId -const char *FN_GetPlayerAuthId(edict_t *e); -#endif // FN_GetPlayerAuthId - - - - - - -#ifdef FN_PrecacheModel_Post -int FN_PrecacheModel_Post(char *s); -#endif // FN_PrecacheModel_Post - -#ifdef FN_PrecacheSound_Post -int FN_PrecacheSound_Post(char *s); -#endif // FN_PrecacheSound_Post - -#ifdef FN_SetModel_Post -void FN_SetModel_Post(edict_t *e, const char *m); -#endif // FN_SetModel_Post - -#ifdef FN_ModelIndex_Post -int FN_ModelIndex_Post(const char *m); -#endif // FN_ModelIndex_Post - -#ifdef FN_ModelFrames_Post -int FN_ModelFrames_Post(int modelIndex); -#endif // FN_ModelFrames_Post - -#ifdef FN_SetSize_Post -void FN_SetSize_Post(edict_t *e, const float *rgflMin, const float *rgflMax); -#endif // FN_SetSize_Post - -#ifdef FN_ChangeLevel_Post -void FN_ChangeLevel_Post(char *s1, char *s2); -#endif // FN_ChangeLevel_Post - -#ifdef FN_GetSpawnParms_Post -void FN_GetSpawnParms_Post(edict_t *ent); -#endif // FN_GetSpawnParms_Post - -#ifdef FN_SaveSpawnParms_Post -void FN_SaveSpawnParms_Post(edict_t *ent); -#endif // FN_SaveSpawnParms_Post - -#ifdef FN_VecToYaw_Post -float FN_VecToYaw_Post(const float *rgflVector); -#endif // FN_VecToYaw_Post - -#ifdef FN_VecToAngles_Post -void FN_VecToAngles_Post(const float *rgflVectorIn, float *rgflVectorOut); -#endif // FN_VecToAngles_Post - -#ifdef FN_MoveToOrigin_Post -void FN_MoveToOrigin_Post(edict_t *ent, const float *pflGoal, float dist, int iMoveType); -#endif // FN_MoveToOrigin_Post - -#ifdef FN_ChangeYaw_Post -void FN_ChangeYaw_Post(edict_t *ent); -#endif // FN_ChangeYaw_Post - -#ifdef FN_ChangePitch_Post -void FN_ChangePitch_Post(edict_t *ent); -#endif // FN_ChangePitch_Post - -#ifdef FN_FindEntityByString_Post -edict_t *FN_FindEntityByString_Post(edict_t *pEdictStartSearchAfter, const char *pszField, const char *pszValue); -#endif // FN_FindEntityByString_Post - -#ifdef FN_GetEntityIllum_Post -int FN_GetEntityIllum_Post(edict_t *pEnt); -#endif // FN_GetEntityIllum_Post - -#ifdef FN_FindEntityInSphere_Post -edict_t *FN_FindEntityInSphere_Post(edict_t *pEdictStartSearchAfter, const float *org, float rad); -#endif // FN_FindEntityInSphere_Post - -#ifdef FN_FindClientInPVS_Post -edict_t *FN_FindClientInPVS_Post(edict_t *pEdict); -#endif // FN_FindClientInPVS_Post - -#ifdef FN_EntitiesInPVS_Post -edict_t *FN_EntitiesInPVS_Post(edict_t *pplayer); -#endif // FN_EntitiesInPVS_Post - -#ifdef FN_MakeVectors_Post -void FN_MakeVectors_Post(const float *rgflVector); -#endif // FN_MakeVectors_Post - -#ifdef FN_AngleVectors_Post -void FN_AngleVectors_Post(const float *rgflVector, float *forward, float *right, float *up); -#endif // FN_AngleVectors_Post - -#ifdef FN_CreateEntity_Post -edict_t *FN_CreateEntity_Post(void); -#endif // FN_CreateEntity_Post - -#ifdef FN_RemoveEntity_Post -void FN_RemoveEntity_Post(edict_t *e); -#endif // FN_RemoveEntity_Post - -#ifdef FN_CreateNamedEntity_Post -edict_t *FN_CreateNamedEntity_Post(int className); -#endif // FN_CreateNamedEntity_Post - -#ifdef FN_MakeStatic_Post -void FN_MakeStatic_Post(edict_t *ent); -#endif // FN_MakeStatic_Post - -#ifdef FN_EntIsOnFloor_Post -int FN_EntIsOnFloor_Post(edict_t *ent); -#endif // FN_EntIsOnFloor_Post - -#ifdef FN_DropToFloor_Post -int FN_DropToFloor_Post(edict_t *ent); -#endif // FN_DropToFloor_Post - -#ifdef FN_WalkMove_Post -int FN_WalkMove_Post(edict_t *ent, float yaw, float dist, int iMode); -#endif // FN_WalkMove_Post - -#ifdef FN_SetOrigin_Post -void FN_SetOrigin_Post(edict_t *e, const float *rgflOrigin); -#endif // FN_SetOrigin_Post - -#ifdef FN_EmitSound_Post -void FN_EmitSound_Post(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch); -#endif // FN_EmitSound_Post - -#ifdef FN_EmitAmbientSound_Post -void FN_EmitAmbientSound_Post(edict_t *entity, float *pos, const char *samp, float vol, float attenuation, int fFlags, int pitch); -#endif // FN_EmitAmbientSound_Post - -#ifdef FN_TraceLine_Post -void FN_TraceLine_Post(const float *v1, const float *v2, int fNoMonsters, edict_t *pentToSkip, TraceResult *ptr); -#endif // FN_TraceLine_Post - -#ifdef FN_TraceToss_Post -void FN_TraceToss_Post(edict_t *pent, edict_t *pentToIgnore, TraceResult *ptr); -#endif // FN_TraceToss_Post - -#ifdef FN_TraceMonsterHull_Post -int FN_TraceMonsterHull_Post(edict_t *pEdict, const float *v1, const float *v2, int fNoMonsters, edict_t *pentToSkip, TraceResult *ptr); -#endif // FN_TraceMonsterHull_Post - -#ifdef FN_TraceHull_Post -void FN_TraceHull_Post(const float *v1, const float *v2, int fNoMonsters, int hullNumber, edict_t *pentToSkip, TraceResult *ptr); -#endif // FN_TraceHull_Post - -#ifdef FN_TraceModel_Post -void FN_TraceModel_Post(const float *v1, const float *v2, int hullNumber, edict_t *pent, TraceResult *ptr); -#endif // FN_TraceModel_Post - -#ifdef FN_TraceTexture_Post -const char *FN_TraceTexture_Post(edict_t *pTextureEntity, const float *v1, const float *v2 ); -#endif // FN_TraceTexture_Post - -#ifdef FN_TraceSphere_Post -void FN_TraceSphere_Post(const float *v1, const float *v2, int fNoMonsters, float radius, edict_t *pentToSkip, TraceResult *ptr); -#endif // FN_TraceSphere_Post - -#ifdef FN_GetAimVector_Post -void FN_GetAimVector_Post(edict_t *ent, float speed, float *rgflReturn); -#endif // FN_GetAimVector_Post - -#ifdef FN_ServerCommand_Post -void FN_ServerCommand_Post(char *str); -#endif // FN_ServerCommand_Post - -#ifdef FN_ServerExecute_Post -void FN_ServerExecute_Post(void); -#endif // FN_ServerExecute_Post - -#ifdef FN_engClientCommand_Post -void FN_engClientCommand_Post(edict_t *pEdict, char *szFmt, ...); -#endif // FN_engClientCommand_Post - -#ifdef FN_ParticleEffect_Post -void FN_ParticleEffect_Post(const float *org, const float *dir, float color, float count); -#endif // FN_ParticleEffect_Post - -#ifdef FN_LightStyle_Post -void FN_LightStyle_Post(int style, char *val); -#endif // FN_LightStyle_Post - -#ifdef FN_DecalIndex_Post -int FN_DecalIndex_Post(const char *name); -#endif // FN_DecalIndex_Post - -#ifdef FN_PointContents_Post -int FN_PointContents_Post(const float *rgflVector); -#endif // FN_PointContents_Post - -#ifdef FN_MessageBegin_Post -void FN_MessageBegin_Post(int msg_dest, int msg_type, const float *pOrigin, edict_t *ed); -#endif // FN_MessageBegin_Post - -#ifdef FN_MessageEnd_Post -void FN_MessageEnd_Post(void); -#endif // FN_MessageEnd_Post - -#ifdef FN_WriteByte_Post -void FN_WriteByte_Post(int iValue); -#endif // FN_WriteByte_Post - -#ifdef FN_WriteChar_Post -void FN_WriteChar_Post(int iValue); -#endif // FN_WriteChar_Post - -#ifdef FN_WriteShort_Post -void FN_WriteShort_Post(int iValue); -#endif // FN_WriteShort_Post - -#ifdef FN_WriteLong_Post -void FN_WriteLong_Post(int iValue); -#endif // FN_WriteLong_Post - -#ifdef FN_WriteAngle_Post -void FN_WriteAngle_Post(float flValue); -#endif // FN_WriteAngle_Post - -#ifdef FN_WriteCoord_Post -void FN_WriteCoord_Post(float flValue); -#endif // FN_WriteCoord_Post - -#ifdef FN_WriteString_Post -void FN_WriteString_Post(const char *sz); -#endif // FN_WriteString_Post - -#ifdef FN_WriteEntity_Post -void FN_WriteEntity_Post(int iValue); -#endif // FN_WriteEntity_Post - -#ifdef FN_CVarRegister_Post -void FN_CVarRegister_Post(cvar_t *pCvar); -#endif // FN_CVarRegister_Post - -#ifdef FN_CVarGetFloat_Post -float FN_CVarGetFloat_Post(const char *szVarName); -#endif // FN_CVarGetFloat_Post - -#ifdef FN_CVarGetString_Post -const char *FN_CVarGetString_Post(const char *szVarName); -#endif // FN_CVarGetString_Post - -#ifdef FN_CVarSetFloat_Post -void FN_CVarSetFloat_Post(const char *szVarName, float flValue); -#endif // FN_CVarSetFloat_Post - -#ifdef FN_CVarSetString_Post -void FN_CVarSetString_Post(const char *szVarName, const char *szValue); -#endif // FN_CVarSetString_Post - -#ifdef FN_AlertMessage_Post -void FN_AlertMessage_Post(ALERT_TYPE atype, char *szFmt, ...); -#endif // FN_AlertMessage_Post - -#ifdef FN_EngineFprintf_Post -void FN_EngineFprintf_Post(FILE *pfile, char *szFmt, ...); -#endif // FN_EngineFprintf_Post - -#ifdef FN_PvAllocEntPrivateData_Post -void *FN_PvAllocEntPrivateData_Post(edict_t *pEdict, long cb); -#endif // FN_PvAllocEntPrivateData_Post - -#ifdef FN_PvEntPrivateData_Post -void *FN_PvEntPrivateData_Post(edict_t *pEdict); -#endif // FN_PvEntPrivateData_Post - -#ifdef FN_FreeEntPrivateData_Post -void FN_FreeEntPrivateData_Post(edict_t *pEdict); -#endif // FN_FreeEntPrivateData_Post - -#ifdef FN_SzFromIndex_Post -const char *FN_SzFromIndex_Post(int iString); -#endif // FN_SzFromIndex_Post - -#ifdef FN_AllocString_Post -int FN_AllocString_Post(const char *szValue); -#endif // FN_AllocString_Post - -#ifdef FN_GetVarsOfEnt_Post -struct entvars_s *FN_GetVarsOfEnt_Post(edict_t *pEdict); -#endif // FN_GetVarsOfEnt_Post - -#ifdef FN_PEntityOfEntOffset_Post -edict_t *FN_PEntityOfEntOffset_Post(int iEntOffset); -#endif // FN_PEntityOfEntOffset_Post - -#ifdef FN_EntOffsetOfPEntity_Post -int FN_EntOffsetOfPEntity_Post(const edict_t *pEdict); -#endif // FN_EntOffsetOfPEntity_Post - -#ifdef FN_IndexOfEdict_Post -int FN_IndexOfEdict_Post(const edict_t *pEdict); -#endif // FN_IndexOfEdict_Post - -#ifdef FN_PEntityOfEntIndex_Post -edict_t *FN_PEntityOfEntIndex_Post(int iEntIndex); -#endif // FN_PEntityOfEntIndex_Post - -#ifdef FN_FindEntityByVars_Post -edict_t *FN_FindEntityByVars_Post(struct entvars_s *pvars); -#endif // FN_FindEntityByVars_Post - -#ifdef FN_GetModelPtr_Post -void *FN_GetModelPtr_Post(edict_t *pEdict); -#endif // FN_GetModelPtr_Post - -#ifdef FN_RegUserMsg_Post -int FN_RegUserMsg_Post(const char *pszName, int iSize); -#endif // FN_RegUserMsg_Post - -#ifdef FN_AnimationAutomove_Post -void FN_AnimationAutomove_Post(const edict_t *pEdict, float flTime); -#endif // FN_AnimationAutomove_Post - -#ifdef FN_GetBonePosition_Post -void FN_GetBonePosition_Post(const edict_t *pEdict, int iBone, float *rgflOrigin, float *rgflAngles); -#endif // FN_GetBonePosition_Post - -#ifdef FN_FunctionFromName_Post -unsigned long FN_FunctionFromName_Post(const char *pName); -#endif // FN_FunctionFromName_Post - -#ifdef FN_NameForFunction_Post -const char *FN_NameForFunction_Post(unsigned long function); -#endif // FN_NameForFunction_Post - -#ifdef FN_ClientPrintf_Post -void FN_ClientPrintf_Post(edict_t *pEdict, PRINT_TYPE ptype, const char *szMsg); -#endif // FN_ClientPrintf_Post - -#ifdef FN_ServerPrint_Post -void FN_ServerPrint_Post(const char *szMsg); -#endif // FN_ServerPrint_Post - -#ifdef FN_Cmd_Args_Post -const char *FN_Cmd_Args_Post(void); -#endif // FN_Cmd_Args_Post - -#ifdef FN_Cmd_Argv_Post -const char *FN_Cmd_Argv_Post(int argc); -#endif // FN_Cmd_Argv_Post - -#ifdef FN_Cmd_Argc_Post -int FN_Cmd_Argc_Post(void); -#endif // FN_Cmd_Argc_Post - -#ifdef FN_GetAttachment_Post -void FN_GetAttachment_Post(const edict_t *pEdict, int iAttachment, float *rgflOrigin, float *rgflAngles ); -#endif // FN_GetAttachment_Post - -#ifdef FN_CRC32_Init_Post -void FN_CRC32_Init_Post(CRC32_t *pulCRC); -#endif // FN_CRC32_Init_Post - -#ifdef FN_CRC32_ProcessBuffer_Post -void FN_CRC32_ProcessBuffer_Post(CRC32_t *pulCRC, void *p, int len); -#endif // FN_CRC32_ProcessBuffer_Post - -#ifdef FN_CRC32_ProcessByte_Post -void FN_CRC32_ProcessByte_Post(CRC32_t *pulCRC, unsigned char ch); -#endif // FN_CRC32_ProcessByte_Post - -#ifdef FN_CRC32_Final_Post -CRC32_t FN_CRC32_Final_Post(CRC32_t pulCRC); -#endif // FN_CRC32_Final_Post - -#ifdef FN_RandomLong_Post -long FN_RandomLong_Post(long lLow, long lHigh); -#endif // FN_RandomLong_Post - -#ifdef FN_RandomFloat_Post -float FN_RandomFloat_Post(float flLow, float flHigh); -#endif // FN_RandomFloat_Post - -#ifdef FN_SetView_Post -void FN_SetView_Post(const edict_t *pClient, const edict_t *pViewent); -#endif // FN_SetView_Post - -#ifdef FN_Time_Post -float FN_Time_Post(void); -#endif // FN_Time_Post - -#ifdef FN_CrosshairAngle_Post -void FN_CrosshairAngle_Post(const edict_t *pClient, float pitch, float yaw); -#endif // FN_CrosshairAngle_Post - -#ifdef FN_LoadFileForMe_Post -byte *FN_LoadFileForMe_Post(char *filename, int *pLength); -#endif // FN_LoadFileForMe_Post - -#ifdef FN_FreeFile_Post -void FN_FreeFile_Post(void *buffer); -#endif // FN_FreeFile_Post - -#ifdef FN_EndSection_Post -void FN_EndSection_Post(const char *pszSectionName); -#endif // FN_EndSection_Post - -#ifdef FN_CompareFileTime_Post -int FN_CompareFileTime_Post(char *filename1, char *filename2, int *iCompare); -#endif // FN_CompareFileTime_Post - -#ifdef FN_GetGameDir_Post -void FN_GetGameDir_Post(char *szGetGameDir); -#endif // FN_GetGameDir_Post - -#ifdef FN_Cvar_RegisterVariable_Post -void FN_Cvar_RegisterVariable_Post(cvar_t *variable); -#endif // FN_Cvar_RegisterVariable_Post - -#ifdef FN_FadeClientVolume_Post -void FN_FadeClientVolume_Post(const edict_t *pEdict, int fadePercent, int fadeOutSeconds, int holdTime, int fadeInSeconds); -#endif // FN_FadeClientVolume_Post - -#ifdef FN_SetClientMaxspeed_Post -void FN_SetClientMaxspeed_Post(const edict_t *pEdict, float fNewMaxspeed); -#endif // FN_SetClientMaxspeed_Post - -#ifdef FN_CreateFakeClient_Post -edict_t *FN_CreateFakeClient_Post(const char *netname); -#endif // FN_CreateFakeClient_Post - -#ifdef FN_RunPlayerMove_Post -void FN_RunPlayerMove_Post(edict_t *fakeclient, const float *viewangles, float forwardmove, float sidemove, float upmove, unsigned short buttons, byte impulse, byte msec); -#endif // FN_RunPlayerMove_Post - -#ifdef FN_NumberOfEntities_Post -int FN_NumberOfEntities_Post(void); -#endif // FN_NumberOfEntities_Post - -#ifdef FN_GetInfoKeyBuffer_Post -char *FN_GetInfoKeyBuffer_Post(edict_t *e); -#endif // FN_GetInfoKeyBuffer_Post - -#ifdef FN_InfoKeyValue_Post -char *FN_InfoKeyValue_Post(char *infobuffer, char *key); -#endif // FN_InfoKeyValue_Post - -#ifdef FN_SetKeyValue_Post -void FN_SetKeyValue_Post(char *infobuffer, char *key, char *value); -#endif // FN_SetKeyValue_Post - -#ifdef FN_SetClientKeyValue_Post -void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, char *key, char *value); -#endif // FN_SetClientKeyValue_Post - -#ifdef FN_IsMapValid_Post -int FN_IsMapValid_Post(char *filename); -#endif // FN_IsMapValid_Post - -#ifdef FN_StaticDecal_Post -void FN_StaticDecal_Post(const float *origin, int decalIndex, int entityIndex, int modelIndex); -#endif // FN_StaticDecal_Post - -#ifdef FN_PrecacheGeneric_Post -int FN_PrecacheGeneric_Post(char *s); -#endif // FN_PrecacheGeneric_Post - -#ifdef FN_GetPlayerUserId_Post -int FN_GetPlayerUserId_Post(edict_t *e ); -#endif // FN_GetPlayerUserId_Post - -#ifdef FN_BuildSoundMsg_Post -void FN_BuildSoundMsg_Post(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed); -#endif // FN_BuildSoundMsg_Post - -#ifdef FN_IsDedicatedServer_Post -int FN_IsDedicatedServer_Post(void); -#endif // FN_IsDedicatedServer_Post - -#ifdef FN_CVarGetPointer_Post -cvar_t *FN_CVarGetPointer_Post(const char *szVarName); -#endif // FN_CVarGetPointer_Post - -#ifdef FN_GetPlayerWONId_Post -unsigned int FN_GetPlayerWONId_Post(edict_t *e); -#endif // FN_GetPlayerWONId_Post - -#ifdef FN_Info_RemoveKey_Post -void FN_Info_RemoveKey_Post( char *s, const char *key); -#endif // FN_Info_RemoveKey_Post - -#ifdef FN_GetPhysicsKeyValue_Post -const char *FN_GetPhysicsKeyValue_Post(const edict_t *pClient, const char *key); -#endif // FN_GetPhysicsKeyValue_Post - -#ifdef FN_SetPhysicsKeyValue_Post -void FN_SetPhysicsKeyValue_Post(const edict_t *pClient, const char *key, const char *value); -#endif // FN_SetPhysicsKeyValue_Post - -#ifdef FN_GetPhysicsInfoString_Post -const char *FN_GetPhysicsInfoString_Post( const edict_t *pClient); -#endif // FN_GetPhysicsInfoString_Post - -#ifdef FN_PrecacheEvent_Post -unsigned short FN_PrecacheEvent_Post(int type, const char *psz); -#endif // FN_PrecacheEvent_Post - -#ifdef FN_PlaybackEvent_Post -void FN_PlaybackEvent_Post(int flags, const edict_t *pInvoker, unsigned short eventindex, float delay, float *origin, float *angles, float fparam1, float fparam2, int iparam1, int iparam2, int bparam1, int bparam2); -#endif // FN_PlaybackEvent_Post - -#ifdef FN_SetFatPVS_Post -unsigned char *FN_SetFatPVS_Post(float *org); -#endif // FN_SetFatPVS_Post - -#ifdef FN_SetFatPAS_Post -unsigned char *FN_SetFatPAS_Post(float *org); -#endif // FN_SetFatPAS_Post - -#ifdef FN_CheckVisibility_Post -int FN_CheckVisibility_Post(const edict_t *entity, unsigned char *pset); -#endif // FN_CheckVisibility_Post - -#ifdef FN_DeltaSetField_Post -void FN_DeltaSetField_Post(struct delta_s *pFields, const char *fieldname); -#endif // FN_DeltaSetField_Post - -#ifdef FN_DeltaUnsetField_Post -void FN_DeltaUnsetField_Post(struct delta_s *pFields, const char *fieldname); -#endif // FN_DeltaUnsetField_Post - -#ifdef FN_DeltaAddEncoder_Post -void FN_DeltaAddEncoder_Post(char *name, void (*conditionalencode)( struct delta_s *pFields, const unsigned char *from, const unsigned char *to ) ); -#endif // FN_DeltaAddEncoder_Post - -#ifdef FN_GetCurrentPlayer_Post -int FN_GetCurrentPlayer_Post(void); -#endif // FN_GetCurrentPlayer_Post - -#ifdef FN_CanSkipPlayer_Post -int FN_CanSkipPlayer_Post(const edict_t *player); -#endif // FN_CanSkipPlayer_Post - -#ifdef FN_DeltaFindField_Post -int FN_DeltaFindField_Post(struct delta_s *pFields, const char *fieldname); -#endif // FN_DeltaFindField_Post - -#ifdef FN_DeltaSetFieldByIndex_Post -void FN_DeltaSetFieldByIndex_Post(struct delta_s *pFields, int fieldNumber); -#endif // FN_DeltaSetFieldByIndex_Post - -#ifdef FN_DeltaUnsetFieldByIndex_Post -void FN_DeltaUnsetFieldByIndex_Post(struct delta_s *pFields, int fieldNumber); -#endif // FN_DeltaUnsetFieldByIndex_Post - -#ifdef FN_SetGroupMask_Post -void FN_SetGroupMask_Post(int mask, int op); -#endif // FN_SetGroupMask_Post - -#ifdef FN_engCreateInstancedBaseline_Post -int FN_engCreateInstancedBaseline_Post(int classname, struct entity_state_s *baseline); -#endif // FN_engCreateInstancedBaseline_Post - -#ifdef FN_Cvar_DirectSet_Post -void FN_Cvar_DirectSet_Post(struct cvar_s *var, char *value); -#endif // FN_Cvar_DirectSet_Post - -#ifdef FN_ForceUnmodified_Post -void FN_ForceUnmodified_Post(FORCE_TYPE type, float *mins, float *maxs, const char *filename); -#endif // FN_ForceUnmodified_Post - -#ifdef FN_GetPlayerStats_Post -void FN_GetPlayerStats_Post(const edict_t *pClient, int *ping, int *packet_loss); -#endif // FN_GetPlayerStats_Post - -#ifdef FN_AddServerCommand_Post -void FN_AddServerCommand_Post(char *cmd_name, void (*function)(void)); -#endif // FN_AddServerCommand_Post - -#ifdef FN_Voice_GetClientListening_Post -qboolean FN_Voice_GetClientListening_Post(int iReceiver, int iSender); -#endif // FN_Voice_GetClientListening_Post - -#ifdef FN_Voice_SetClientListening_Post -qboolean FN_Voice_SetClientListening_Post(int iReceiver, int iSender, qboolean bListen); -#endif // FN_Voice_SetClientListening_Post - -#ifdef FN_GetPlayerAuthId_Post -const char *FN_GetPlayerAuthId_Post(edict_t *e); -#endif // FN_GetPlayerAuthId - - - - -#ifdef FN_OnFreeEntPrivateData -void FN_OnFreeEntPrivateData(edict_t *pEnt); -#endif // FN_OnFreeEntPrivateData - -#ifdef FN_GameShutdown -void FN_GameShutdown(void); -#endif // FN_GameShutdown - -#ifdef FN_ShouldCollide -int FN_ShouldCollide(edict_t *pentTouched, edict_t *pentOther); -#endif // FN_ShouldCollide - - - - - -#ifdef FN_OnFreeEntPrivateData_Post -void FN_OnFreeEntPrivateData_Post(edict_t *pEnt); -#endif // FN_OnFreeEntPrivateData_Post - -#ifdef FN_GameShutdown_Post -void FN_GameShutdown_Post(void); -#endif // FN_GameShutdown_Post - -#ifdef FN_ShouldCollide_Post -int FN_ShouldCollide_Post(edict_t *pentTouched, edict_t *pentOther); -#endif // FN_ShouldCollide_Post - -#endif // USE_METAMOD - - -#ifdef FN_AMXX_QUERY -void FN_AMXX_QUERY(void); -#endif // FN_AMXX_QUERY - -#ifdef FN_AMXX_ATTACH -void FN_AMXX_ATTACH(void); -#endif // FN_AMXX_ATTACH - -#ifdef FN_AMXX_DETACH -void FN_AMXX_DETACH(void); -#endif // FN_AMXX_DETACH - -#ifdef FN_AMXX_PLUGINSLOADED -void FN_AMXX_PLUGINSLOADED(void); -#endif // FN_AMXX_PLUGINSLOADED - -// ***** Module funcs stuff ***** -enum ForwardExecType -{ - ET_IGNORE = 0, // Ignore return vaue - ET_STOP, // Stop on PLUGIN_HANDLED - ET_STOP2, // Stop on PLUGIN_HANDLED, continue on other values, return biggest return value - ET_CONTINUE, // Continue; return biggest return value -}; - -enum ForwardParam -{ - FP_DONE = -1, // specify this as the last argument - // only tells the function that there are no more arguments - FP_CELL, // normal cell - FP_FLOAT, // float; used as normal cell though - FP_STRING, // string - FP_STRINGEX, // string; will be updated to the last function's value - FP_ARRAY, // array; use the return value of prepareArray. -}; - - -typedef int (*PFN_ADD_NATIVES) (const AMX_NATIVE_INFO * /*list*/); -typedef char * (*PFN_BUILD_PATHNAME) (const char * /*format*/, ...); -typedef cell * (*PFN_GET_AMXADDR) (AMX * /*amx*/, cell /*offset*/); -typedef void (*PFN_PRINT_SRVCONSOLE) (char * /*format*/, ...); -typedef const char * (*PFN_GET_MODNAME) (void); -typedef const char * (*PFN_GET_AMXSCRIPTNAME) (int /*id*/); -typedef AMX * (*PFN_GET_AMXSCRIPT) (int /*id*/); -typedef int (*PFN_FIND_AMXSCRIPT_BYAMX) (const AMX * /*amx*/); -typedef int (*PFN_FIND_AMXSCRIPT_BYNAME) (const char * /*name*/); -typedef int (*PFN_SET_AMXSTRING) (AMX * /*amx*/, cell /*amx_addr*/, const char * /* source */, int /* max */); -typedef char * (*PFN_GET_AMXSTRING) (AMX * /*amx*/, cell /*amx_addr*/, int /*bufferId*/, int * /*pLen*/); -typedef int (*PFN_GET_AMXSTRINGLEN) (const cell *ptr); -typedef char * (*PFN_FORMAT_AMXSTRING) (AMX * /*amx*/, cell * /*params*/, int /*startParam*/, int * /*pLen*/); -typedef void (*PFN_COPY_AMXMEMORY) (cell * /*dest*/, const cell * /*src*/, int /*len*/); -typedef void (*PFN_LOG) (const char * /*fmt*/, ...); -typedef int (*PFN_RAISE_AMXERROR) (AMX * /*amx*/, int /*error*/); -typedef int (*PFN_REGISTER_FORWARD) (const char * /*funcname*/, ForwardExecType /*exectype*/, ... /*paramtypes terminated by PF_DONE*/); -typedef int (*PFN_EXECUTE_FORWARD) (int /*id*/, ... /*params*/); -typedef cell (*PFN_PREPARE_CELLARRAY) (cell * /*ptr*/, unsigned int /*size*/); -typedef cell (*PFN_PREPARE_CHARARRAY) (char * /*ptr*/, unsigned int /*size*/); -typedef int (*PFN_IS_PLAYER_VALID) (int /*id*/); -typedef const char * (*PFN_GET_PLAYER_NAME) (int /*id*/); -typedef const char * (*PFN_GET_PLAYER_IP) (int /*id*/); -typedef int (*PFN_IS_PLAYER_INGAME) (int /*id*/); -typedef int (*PFN_IS_PLAYER_BOT) (int /*id*/); -typedef int (*PFN_IS_PLAYER_AUTHORIZED) (int /*id*/); -typedef float (*PFN_GET_PLAYER_TIME) (int /*id*/); -typedef float (*PFN_GET_PLAYER_PLAYTIME) (int /*id*/); -typedef int (*PFN_GET_PLAYER_CURWEAPON) (int /*id*/); -typedef int (*PFN_GET_PLAYER_TEAMID) (int /*id*/); -typedef int (*PFN_GET_PLAYER_DEATHS) (int /*id*/); -typedef int (*PFN_GET_PLAYER_MENU) (int /*id*/); -typedef int (*PFN_GET_PLAYER_KEYS) (int /*id*/); -typedef int (*PFN_IS_PLAYER_ALIVE) (int /*id*/); -typedef int (*PFN_GET_PLAYER_FRAGS) (int /*id*/); -typedef int (*PFN_IS_PLAYER_CONNECTING) (int /*id*/); -typedef int (*PFN_IS_PLAYER_HLTV) (int /*id*/); -typedef int (*PFN_GET_PLAYER_ARMOR) (int /*id*/); -typedef int (*PFN_GET_PLAYER_HEALTH) (int /*id*/); -typedef void * (*PFN_ALLOCATOR) (const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/, - const unsigned int /*type*/, const size_t /*size*/); -typedef void * (*PFN_REALLOCATOR) (const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/, - const unsigned int /*type*/, const size_t /*size*/, void* /*addr*/ ); -typedef void (*PFN_DEALLOCATOR) (const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/, - const unsigned int /*type*/, const void* /*addr*/ ); -typedef int (*PFN_AMX_EXEC) (AMX* /*amx*/, cell* /*return val*/, int /*index*/, int /*numparams*/, ... /*params*/); -typedef int (*PFN_AMX_EXECV) (AMX* /*amx*/, cell* /*return val*/, int /*index*/, int /*numparams*/, cell[] /*params*/); -typedef int (*PFN_AMX_ALLOT) (AMX* /*amx*/, int /*length*/, cell* /*amx_addr*/, cell** /*phys_addr*/); -typedef int (*PFN_AMX_FINDPUBLIC) (AMX* /*amx*/, char* /*func name*/, int* /*index*/); -typedef int (*PFN_LOAD_AMXSCRIPT) (AMX* /*amx*/, void** /*code*/, const char* /*path*/, char[64] /*error info*/); -typedef int (*PFN_UNLOAD_AMXSCRIPT) (AMX* /*amx*/,void** /*code*/); -typedef cell (*PFN_REAL_TO_CELL) (REAL /*x*/); -typedef REAL (*PFN_CELL_TO_REAL) (cell /*x*/); -typedef int (*PFN_REGISTER_SPFORWARD) (AMX * /*amx*/, int /*func*/, ... /*params*/); -typedef int (*PFN_REGISTER_SPFORWARD_BYNAME) (AMX * /*amx*/, const char * /*funcName*/, ... /*params*/); -typedef void (*PFN_UNREGISTER_SPFORWARD) (int /*id*/); - -extern PFN_ADD_NATIVES g_fn_AddNatives; -extern PFN_BUILD_PATHNAME g_fn_BuildPathname; -extern PFN_GET_AMXADDR g_fn_GetAmxAddr; -extern PFN_PRINT_SRVCONSOLE g_fn_PrintSrvConsole; -extern PFN_GET_MODNAME g_fn_GetModname; -extern PFN_GET_AMXSCRIPTNAME g_fn_GetAmxScriptName; -extern PFN_GET_AMXSCRIPT g_fn_GetAmxScript; -extern PFN_FIND_AMXSCRIPT_BYAMX g_fn_FindAmxScriptByAmx; -extern PFN_FIND_AMXSCRIPT_BYNAME g_fn_FindAmxScriptByName; -extern PFN_SET_AMXSTRING g_fn_SetAmxString; -extern PFN_GET_AMXSTRING g_fn_GetAmxString; -extern PFN_GET_AMXSTRINGLEN g_fn_GetAmxStringLen; -extern PFN_FORMAT_AMXSTRING g_fn_FormatAmxString; -extern PFN_COPY_AMXMEMORY g_fn_CopyAmxMemory; -extern PFN_LOG g_fn_Log; -extern PFN_RAISE_AMXERROR g_fn_RaiseAmxError; -extern PFN_REGISTER_FORWARD g_fn_RegisterForward; -extern PFN_EXECUTE_FORWARD g_fn_ExecuteForward; -extern PFN_PREPARE_CELLARRAY g_fn_PrepareCellArray; -extern PFN_PREPARE_CHARARRAY g_fn_PrepareCharArray; -extern PFN_IS_PLAYER_VALID g_fn_IsPlayerValid; -extern PFN_GET_PLAYER_NAME g_fn_GetPlayerName; -extern PFN_GET_PLAYER_IP g_fn_GetPlayerIP; -extern PFN_IS_PLAYER_INGAME g_fn_IsPlayerIngame; -extern PFN_IS_PLAYER_BOT g_fn_IsPlayerBot; -extern PFN_IS_PLAYER_AUTHORIZED g_fn_IsPlayerAuthorized; -extern PFN_GET_PLAYER_TIME g_fn_GetPlayerTime; -extern PFN_GET_PLAYER_PLAYTIME g_fn_GetPlayerPlayTime; -extern PFN_GET_PLAYER_CURWEAPON g_fn_GetPlayerCurweapon; -extern PFN_GET_PLAYER_TEAMID g_fn_GetPlayerTeamID; -extern PFN_GET_PLAYER_DEATHS g_fn_GetPlayerDeaths; -extern PFN_GET_PLAYER_MENU g_fn_GetPlayerMenu; -extern PFN_GET_PLAYER_KEYS g_fn_GetPlayerKeys; -extern PFN_IS_PLAYER_ALIVE g_fn_IsPlayerAlive; -extern PFN_GET_PLAYER_FRAGS g_fn_GetPlayerFrags; -extern PFN_IS_PLAYER_CONNECTING g_fn_IsPlayerConnecting; -extern PFN_IS_PLAYER_HLTV g_fn_IsPlayerHLTV; -extern PFN_GET_PLAYER_ARMOR g_fn_GetPlayerArmor; -extern PFN_GET_PLAYER_HEALTH g_fn_GetPlayerHealth; -extern PFN_AMX_EXEC g_fn_AmxExec; -extern PFN_AMX_EXECV g_fn_AmxExecv; -extern PFN_AMX_ALLOT g_fn_AmxAllot; -extern PFN_AMX_FINDPUBLIC g_fn_AmxFindPublic; -extern PFN_LOAD_AMXSCRIPT g_fn_LoadAmxScript; -extern PFN_UNLOAD_AMXSCRIPT g_fn_UnloadAmxScript; -extern PFN_REAL_TO_CELL g_fn_RealToCell; -extern PFN_CELL_TO_REAL g_fn_CellToReal; -extern PFN_REGISTER_SPFORWARD g_fn_RegisterSPForward; -extern PFN_REGISTER_SPFORWARD_BYNAME g_fn_RegisterSPForwardByName; -extern PFN_UNREGISTER_SPFORWARD g_fn_UnregisterSPForward; - -#ifdef MAY_NEVER_BE_DEFINED -// Function prototypes for intellisense and similar systems -// They understand #if 0 so we use #ifdef MAY_NEVER_BE_DEFINED -int MF_AddNatives (const AMX_NATIVE_INFO *list) { } -char * MF_BuildPathname (const char * format, ...) { } -cell * MF_GetAmxAddr (AMX * amx, cell offset) { } -void MF_PrintSrvConsole (char * format, ...) { } -const char * MF_GetModname (void) { } -const char * MF_GetScriptName (int id) { } -AMX * MF_GetScriptAmx (int id) { } -int MF_FindScriptByAmx (const AMX * amx) { } -int MF_FindScriptByAmx (const char * name) { } -int MF_SetAmxString (AMX * amx, cell amx_addr, const char * source , int max ) { } -char * MF_GetAmxString (AMX * amx, cell amx_addr, int bufferId, int * pLen) { } -int MF_GetAmxStringLen (const cell *ptr) { } -char * MF_FormatAmxString (AMX * amx, cell * params, int startParam, int * pLen) { } -void MF_CopyAmxMemory (cell * dest, const cell * src, int len) { } -void MF_Log (const char * fmt, ...) { } -int MF_RaiseAmxError (AMX * amx, int error) { } -int MF_RegisterForward (const char * funcname, ForwardExecType exectype, ...) { } -int MF_ExecuteForward (int id, ...) { } -cell MF_PrepareCellArray (cell * ptr, unsigned int size) { } -cell MF_PrepareCharArray (char * ptr, unsigned int size) { } -int MF_IsPlayerValid (int id) { } -const char * MF_GetPlayerName (int id) { } -const char * MF_GetPlayerIP (int id) { } -int MF_IsPlayerIngame (int id) { } -int MF_IsPlayerBot (int id) { } -int MF_IsPlayerAuthorized (int id) { } -float MF_GetPlayerTime (int id) { } -float MF_GetPlayerPlayTime (int id) { } -int MF_GetPlayerCurweapon (int id) { } -int MF_GetPlayerTeamID (int id) { } -int MF_GetPlayerDeaths (int id) { } -int MF_GetPlayerMenu (int id) { } -int MF_GetPlayerKeys (int id) { } -int MF_IsPlayerAlive (int id) { } -int MF_GetPlayerFrags (int id) { } -int MF_IsPlayerConnecting (int id) { } -int MF_IsPlayerHLTV (int id) { } -int MF_GetPlayerArmor (int id) { } -int MF_GetPlayerHealth (int id) { } -REAL amx_ctof (cell x) { } -cell amx_ftoc (float x) { } -int MF_RegisterSPForwardByName (AMX * amx, const char *str, ...) { } -int MF_RegisterSPForward (AMX * amx, int func, ...) { } -void MF_UnregisterSPForward (int id) { } -#endif // MAY_NEVER_BE_DEFINED - -#define MF_AddNatives g_fn_AddNatives -#define MF_BuildPathname g_fn_BuildPathname -#define MF_FormatAmxString g_fn_FormatAmxString -#define MF_GetAmxAddr g_fn_GetAmxAddr -#define MF_PrintSrvConsole g_fn_PrintSrvConsole -#define MF_GetModname g_fn_GetModname -#define MF_GetScriptName g_fn_GetAmxScriptName -#define MF_GetScriptAmx g_fn_GetAmxScript -#define MF_FindScriptByAmx g_fn_FindAmxScriptByAmx -#define MF_FindScriptByName g_fn_FindAmxScriptByName -#define MF_SetAmxString g_fn_SetAmxString -#define MF_GetAmxString g_fn_GetAmxString -#define MF_GetAmxStringLen g_fn_GetAmxStringLen -#define MF_CopyAmxMemory g_fn_CopyAmxMemory -void MF_Log(const char *fmt, ...); -#define MF_RaiseAmxError g_fn_RaiseAmxError -#define MF_RegisterForward g_fn_RegisterForward -#define MF_ExecuteForward g_fn_ExecuteForward -#define MF_PrepareCellArray g_fn_PrepareCellArray -#define MF_PrepareCharArray g_fn_PrepareCharArray -#define MF_IsPlayerValid g_fn_IsPlayerValid -#define MF_GetPlayerName g_fn_GetPlayerName -#define MF_GetPlayerIP g_fn_GetPlayerIP -#define MF_IsPlayerIngame g_fn_IsPlayerIngame -#define MF_IsPlayerBot g_fn_IsPlayerBot -#define MF_IsPlayerAuthorized g_fn_IsPlayerAuthorized -#define MF_GetPlayerTime g_fn_GetPlayerTime -#define MF_GetPlayerPlayTime g_fn_GetPlayerPlayTime -#define MF_GetPlayerCurweapon g_fn_GetPlayerCurweapon -#define MF_GetPlayerTeamID g_fn_GetPlayerTeamID -#define MF_GetPlayerDeaths g_fn_GetPlayerDeaths -#define MF_GetPlayerMenu g_fn_GetPlayerMenu -#define MF_GetPlayerKeys g_fn_GetPlayerKeys -#define MF_IsPlayerAlive g_fn_IsPlayerAlive -#define MF_GetPlayerFrags g_fn_GetPlayerFrags -#define MF_IsPlayerConnecting g_fn_IsPlayerConnecting -#define MF_IsPlayerHLTV g_fn_IsPlayerHLTV -#define MF_GetPlayerArmor g_fn_GetPlayerArmor -#define MF_GetPlayerHealth g_fn_GetPlayerHealth -#define MF_AmxExec g_fn_AmxExec -#define MF_AmxExecv g_fn_AmxExecv -#define MF_AmxFindPublic g_fn_AmxFindPublic -#define MF_AmxAllot g_fn_AmxAllot -#define MF_LoadAmxScript g_fn_LoadAmxScript -#define MF_UnloadAmxScript g_fn_UnloadAmxScript -#define amx_ctof g_fn_CellToReal -#define amx_ftoc g_fn_RealToCell -#define MF_RegisterSPForwardByName g_fn_RegisterSPForwardByName -#define MF_RegisterSPForward g_fn_RegisterSPForward -#define MF_UnregisterSPForward g_fn_UnregisterSPForward - -/*** Memory ***/ -void *operator new(size_t reportedSize); -void *operator new[](size_t reportedSize); -void *operator new(size_t reportedSize, const char *sourceFile, int sourceLine); -void *operator new[](size_t reportedSize, const char *sourceFile, int sourceLine); -void operator delete(void *reportedAddress); -void operator delete[](void *reportedAddress); - -// Allocation types -extern const unsigned int m_alloc_unknown; -extern const unsigned int m_alloc_new; -extern const unsigned int m_alloc_new_array; -extern const unsigned int m_alloc_malloc; -extern const unsigned int m_alloc_calloc; -extern const unsigned int m_alloc_realloc; -extern const unsigned int m_alloc_delete; -extern const unsigned int m_alloc_delete_array; -extern const unsigned int m_alloc_free; - -// To be called before new / delete -void Mem_SetOwner(const char *filename, int line, const char *function); -// Actual allocator -void * Mem_Allocator(const char *sourceFile, const unsigned int sourceLine, const char *sourceFunc, - const unsigned int allocationType, const size_t reportedSize); -void * Mem_Reallocator(const char *sourceFile, const unsigned int sourceLine, const char *sourceFunc, - const unsigned int reallocationType, const size_t reportedSize, void *reportedAddress); -void Mem_Deallocator(const char *sourceFile, const unsigned int sourceLine, const char *sourceFunc, - const unsigned int deallocationType, void *reportedAddress); - -// memory macros -#ifndef __FUNCTION__ -#define __FUNCTION__ "??" -#endif - -// call Mem_SetOwner, followed by the actual new operator -#define new (Mem_SetOwner(__FILE__,__LINE__,__FUNCTION__),false) ? NULL : new -// call Mem_SetOwner, followed by the actual delete operator -#define delete (Mem_SetOwner(__FILE__,__LINE__,__FUNCTION__),false) ? Mem_SetOwner("",0,"") : delete -#define malloc(sz) Mem_Allocator (__FILE__,__LINE__,__FUNCTION__,m_alloc_malloc,sz) -#define calloc(sz) Mem_Allocator (__FILE__,__LINE__,__FUNCTION__,m_alloc_calloc,sz) -#define realloc(ptr,sz) Mem_Reallocator(__FILE__,__LINE__,__FUNCTION__,m_alloc_realloc,sz,ptr) -#define free(ptr) Mem_Deallocator(__FILE__,__LINE__,__FUNCTION__,m_alloc_free,ptr) - -#endif // #ifndef __AMXXMODULE_H__ diff --git a/dlls/metamapx/metamap.cpp b/dlls/metamapx/metamap.cpp deleted file mode 100755 index 058bd498..00000000 --- a/dlls/metamapx/metamap.cpp +++ /dev/null @@ -1,460 +0,0 @@ -#include "metamap.h" - - -bool& VisitedAccess(unsigned int col, unsigned int lin, bool* visited) -{ - return visited[lin * COLUMNS + col]; -} - -cell* MatrixWrite(UINT col, UINT lin, cell* theMatrix) -{ - return &(theMatrix[lin * COLUMNS + col]); - //return &(crossword.at()); -} - -const cell* MatrixRead(UINT col, UINT lin, cell* theMatrix) -{ - return &(theMatrix[lin * COLUMNS + col]); - //return &(crossword.at()); -} - -void AddSpace(int column, int line, vector& spaces) -{ - spaces.push_back(CSpace(column, line)); -} - -void EmptyMatrix(cell* theMatrix) { - for (UINT i = 0; i < COLUMNS; i++) { - for (UINT j = 0; j < LINES; j++) { - *(MatrixWrite(i, j, theMatrix)) = SPACE_EMPTY; - } - } -} - -bool BoundaryAndWallCheck(const UINT column, const UINT line, bool* CRvisited, cell* theMatrix) -{ - if (column >= 0 && column < COLUMNS && line >= 0 && line < LINES) { - // That's boundaries, now walls, and visited! - if (*MatrixRead(column, line, theMatrix) == SPACE_EMPTY) //if (theMatrix[column][line] == SPACE_EMPTY) { - if (!(VisitedAccess(column, line, CRvisited)))//if (!CRvisited[column][line]) - return true; - /*else { - cout << "Visited" << column << ',' << line << '!'; - }*/ - } - - return false; -} - -int Difference(int i, int j) { - if (i > j) - return i - j; - else - return j - i; -} - -bool CheckReach(const UINT currentColumn, const UINT currentLine, const UINT targetColumn, const UINT targetLine, bool* CRvisited, cell* theMatrix) -{ - //cout << '>' << currentColumn << ',' << currentLine; - if (currentColumn < 0 || currentColumn >= COLUMNS || currentLine < 0 || currentLine >= LINES - || targetColumn < 0 || targetColumn >= COLUMNS || targetLine < 0 || targetLine >= LINES) { - MF_Log("Metamap: Out of range in CheckReach! currentColumn %d currentLine %d targetColumn %d targetLine %d"); - throw; - } - // This should happen when the spaces are directly next to each other. - if (currentColumn == targetColumn && Difference(currentLine, targetLine) == 1 - || currentLine == targetLine && Difference(currentColumn, targetColumn) == 1) { - //cout << "Returns yes here because " << currentColumn << "," << currentLine << " and " << targetColumn << "," << targetLine << " are next to each other."; - //cout << "=nextTo"; - return true; - } - else if (*MatrixRead(currentColumn, currentLine, theMatrix) == SPACE_WALL) //else if (theMatrix[currentColumn][currentLine] == SPACE_WALL) - return false; - - (VisitedAccess(currentColumn, currentLine, CRvisited)) = true; //CRvisited[currentColumn][currentLine] = true; - - // Spaces are now at least two manhattan units from each other. - // Try to go in the general direction of target (should be one or two possibilites here, depending on if we are on the same line/column or not) - bool goLeft = false, goUp = false, goRight = false, goDown = false; - - if (targetColumn < currentColumn) - goLeft = true; - else if (targetColumn > currentColumn) - goRight = true; - if (targetLine < currentLine) - goUp = true; - else if (targetLine > currentLine) - goDown = true; - - // Left - int leftColumn = currentColumn - 1; - int leftLine = currentLine; - - // Up - int upColumn = currentColumn; - int upLine = currentLine - 1; - - // Right - int rightColumn = currentColumn + 1; - int rightLine = currentLine; - - // Down - int downColumn = currentColumn; - int downLine = currentLine + 1; - - int nextColumn[4], nextLine[4]; - bool nextCheck[4]; - - if (goLeft) { - nextColumn[0] = leftColumn; - nextLine[0] = leftLine; - nextCheck[0] = BoundaryAndWallCheck(nextColumn[0], nextLine[0], CRvisited, theMatrix); - if (goUp) { - nextColumn[1] = upColumn; - nextLine[1] = upLine; - nextCheck[1] = BoundaryAndWallCheck(nextColumn[1], nextLine[1], CRvisited, theMatrix); - - nextColumn[2] = downColumn; - nextLine[2] = downLine; - nextCheck[2] = BoundaryAndWallCheck(nextColumn[2], nextLine[2], CRvisited, theMatrix); - - nextColumn[3] = rightColumn; - nextLine[3] = rightLine; - nextCheck[3] = BoundaryAndWallCheck(nextColumn[3], nextLine[3], CRvisited, theMatrix); - } - else { - nextColumn[1] = downColumn; - nextLine[1] = downLine; - nextCheck[1] = BoundaryAndWallCheck(nextColumn[1], nextLine[1], CRvisited, theMatrix); - - nextColumn[2] = upColumn; - nextLine[2] = upLine; - nextCheck[2] = BoundaryAndWallCheck(nextColumn[2], nextLine[2], CRvisited, theMatrix); - - nextColumn[3] = rightColumn; - nextLine[3] = rightLine; - nextCheck[3] = BoundaryAndWallCheck(nextColumn[3], nextLine[3], CRvisited, theMatrix); - } - } - else if (goRight) { - nextColumn[0] = rightColumn; - nextLine[0] = rightLine; - nextCheck[0] = BoundaryAndWallCheck(nextColumn[0], nextLine[0], CRvisited, theMatrix); - if (goUp) { - nextColumn[1] = upColumn; - nextLine[1] = upLine; - nextCheck[1] = BoundaryAndWallCheck(nextColumn[1], nextLine[1], CRvisited, theMatrix); - - nextColumn[2] = downColumn; - nextLine[2] = downLine; - nextCheck[2] = BoundaryAndWallCheck(nextColumn[2], nextLine[2], CRvisited, theMatrix); - - nextColumn[3] = leftColumn; - nextLine[3] = leftLine; - nextCheck[3] = BoundaryAndWallCheck(nextColumn[3], nextLine[3], CRvisited, theMatrix); - } - else { - nextColumn[1] = downColumn; - nextLine[1] = downLine; - nextCheck[1] = BoundaryAndWallCheck(nextColumn[1], nextLine[1], CRvisited, theMatrix); - - nextColumn[2] = upColumn; - nextLine[2] = upLine; - nextCheck[2] = BoundaryAndWallCheck(nextColumn[2], nextLine[2], CRvisited, theMatrix); - - nextColumn[3] = leftColumn; - nextLine[3] = leftLine; - nextCheck[3] = BoundaryAndWallCheck(nextColumn[3], nextLine[3], CRvisited, theMatrix); - } - } - else { - if (goUp) { - nextColumn[0] = upColumn; - nextLine[0] = upLine; - nextCheck[0] = BoundaryAndWallCheck(nextColumn[0], nextLine[0], CRvisited, theMatrix); - - nextColumn[1] = leftColumn; - nextLine[1] = leftLine; - nextCheck[1] = BoundaryAndWallCheck(nextColumn[1], nextLine[1], CRvisited, theMatrix); - - nextColumn[2] = rightColumn; - nextLine[2] = rightLine; - nextCheck[2] = BoundaryAndWallCheck(nextColumn[2], nextLine[2], CRvisited, theMatrix); - - nextColumn[3] = downColumn; - nextLine[3] = downLine; - nextCheck[3] = BoundaryAndWallCheck(nextColumn[3], nextLine[3], CRvisited, theMatrix); - } - else { - nextColumn[0] = downColumn; - nextLine[0] = downLine; - nextCheck[0] = BoundaryAndWallCheck(nextColumn[0], nextLine[0], CRvisited, theMatrix); - - nextColumn[1] = leftColumn; - nextLine[1] = leftLine; - nextCheck[1] = BoundaryAndWallCheck(nextColumn[1], nextLine[1], CRvisited, theMatrix); - - nextColumn[2] = rightColumn; - nextLine[2] = rightLine; - nextCheck[2] = BoundaryAndWallCheck(nextColumn[2], nextLine[2], CRvisited, theMatrix); - - nextColumn[3] = upColumn; - nextLine[3] = upLine; - nextCheck[3] = BoundaryAndWallCheck(nextColumn[3], nextLine[3], CRvisited, theMatrix); - } - } - - for (int i = 0; i < 4; i++) { - if (nextCheck[i] && CheckReach(nextColumn[i], nextLine[i], targetColumn, targetLine, CRvisited, theMatrix)) { - return true; - } - } - - return false; -} - -bool CheckReaches(const UINT column, const UINT line, cell* theMatrix) { - // can left, up, right and down still reach each other? if so, this move can be done. - // Can left reach up, can up reach right, and can right reach down = good move. - - bool checkSpaces[4]; - int columns[4]; // These CANNOT be UINT! Evaluted >0 with expected possibility of going below 0! - int lines[4]; // These CANNOT be UINT! Evaluted >0 with expected possibility of going below 0! - // Left - columns[0] = column - 1; - lines[0] = line; - // Boundary + wall check //checkSpaces[0] = columns[0] >= 0 ? (theMatrix[columns[0]][lines[0]] == SPACE_EMPTY ? true : false) : false; // Boundary + wall check - checkSpaces[0] = columns[0] >= 0 ? (*MatrixRead(columns[0], lines[0], theMatrix) == SPACE_EMPTY ? true : false) : false; - // Up - columns[1] = column; - lines[1] = line - 1; - //checkSpaces[1] = lines[1] >= 0 ? (theMatrix[columns[1]][lines[1]] == SPACE_EMPTY ? true : false) : false; // Boundary + wall check - checkSpaces[1] = lines[1] >= 0 ? (*MatrixRead(columns[1], lines[1], theMatrix) == SPACE_EMPTY ? true : false) : false; - // Right - columns[2] = column + 1; - lines[2] = line; - //checkSpaces[2] = columns[2] < COLUMNS ? (theMatrix[columns[2]][lines[2]] == SPACE_EMPTY ? true : false) : false; // Boundary + wall check - checkSpaces[2] = columns[2] < (int)COLUMNS ? (*MatrixRead(columns[2], lines[2], theMatrix) == SPACE_EMPTY ? true : false) : false; - // Down - columns[3] = column; - lines[3] = line + 1; - //checkSpaces[3] = lines[3] < LINES ? (theMatrix[columns[3]][lines[3]] == SPACE_EMPTY ? true : false) : false; // Boundary + wall check - checkSpaces[3] = lines[3] < (int)LINES ? (*MatrixRead(columns[3], lines[3], theMatrix) == SPACE_EMPTY ? true : false) : false; - - for (int j = 0, spacesToCheck = 0; j < 4; j++) { - if (checkSpaces[j]) - spacesToCheck++; - } - - if (spacesToCheck == 1) { - // If only one space to check, the other are already used by walls or out of bounds, so don't bother checking anything more, just return true! - return true; - } - else if (spacesToCheck == 0) { - // If this is ever 0, we probably made an error earlier? - //PrintMatrix(column, line); - //cout << "Should check around: " << column << ',' << line << " is " << ((theMatrix[column][line] == SPACE_EMPTY) ? "empty" : "a wall") << endl; - MF_Log("Metamap: Error - unreachable area may have been created earlier, quitting..."); - throw; - } - - //cout << "Should find " << spacesToCheck << " connections." << endl; - //int connectionsToFind - bool reaches; - int tested = 0; - int connections = 0; - //vector CRvisited; <-- burn in hell, STL! :-D - //CRvisited.resize(COLUMNS * LINES); - - bool* visited = new bool[COLUMNS * LINES]; - //EmptyMatrix(theMatrix, visited); - - //bool CRvisited[COLUMNS][LINES]; - for (UINT i = 0; i < 4; i++) { - if (!checkSpaces[i]) - continue; - - // We should be able to return true here, because if A can reach B, B can also reach A. :-) - //if (connections == 1 && spacesToCheck == 2) - //return true; - reaches = false; - tested = 0; - for (UINT j = i + 1; tested < 4; j++) { - if (j == 4) - j = 0; - tested++; // we have tested this direction - if (i == j || !checkSpaces[j]) - continue; - - //cout << "Can " << columns[i] << ',' << lines[i] << " reach " << columns[j] << ',' << lines[j] << '?'; - for (UINT l = 0; l < LINES; l++) { - for (UINT k = 0; k < COLUMNS; k++) { - (VisitedAccess(k, l, visited)) = false;//CRvisited[l][k] = false; - } - } - //MF_Log("i: %d, calls CheckReach(%d, %d, %d, %d, CRvisited, theMatrix)", i, columns[i], lines[i], columns[j], lines[j]); - if (CheckReach(columns[i], lines[i], columns[j], lines[j], visited, theMatrix)) { - //cout << " Yes, " << columns[i] << ',' << lines[i] << " reaches " << columns[j] << ',' << lines[j] << ", indexes " << i << " and " << j << '.' << endl; - reaches = true; - connections++; - break; // break, don't check this space anymore, go on check with the rest. - } - else { - // Really, if A cannot ever reach B, it does not matter if A can reach C! :-) - delete [] visited; - return false; - } - //cout << " No!" << endl; - } - - // If we can't reach any of the other spaces, return false here. - if (!reaches) { - //cout << columns[i] << ',' << lines[i] << " can't reach any other space! Returning false here..." << endl; - delete [] visited; - return false; - } - } - - delete [] visited; - return true; -} - -bool PlaceWalls2(const UINT WALLSTOPLACE, cell* theMatrix) -{ - if (WALLSTOPLACE > COLUMNS * LINES) { - MF_Log("Metamap: Too many walls!"); - return false; - } - - UINT wallsPlaced = 0; - // Find all empty spaces, add them to vector. - vector emptySpaces; - //int round = 0; - while (wallsPlaced < WALLSTOPLACE) { - //round++; - //cout << "Starting new round, we should place " << wallsToPlace << " but have so far only placed " << wallsPlaced << " walls." << endl; - //system("PAUSE"); - for (UINT i = 0, empties = 0; i < COLUMNS; i++) { - for (UINT j = 0; j < LINES; j++) { - if (*(MatrixRead(i, j, theMatrix)) == SPACE_EMPTY) { // if (theMatrix[i][j] == SPACE_EMPTY) { - AddSpace(i, j, emptySpaces); - empties++; - } - } - } - -#if defined _debug - MF_Log("Added %d empty spaces... %d elements in emptySpaces", empties, emptySpaces.size()); -#endif - - for (UINT column, line, element; wallsPlaced < WALLSTOPLACE && !emptySpaces.empty(); wallsPlaced++) { - element = JBRandom::JBRandomize(0, emptySpaces.size() - 1); - column = emptySpaces[element].column; - line = emptySpaces[element].line; - //MF_Log("element %d in column %d, line %d", element, column, line); - - *(MatrixWrite(column, line, theMatrix)) = SPACE_WALL;// theMatrix[column][line] = SPACE_WALL; - //PrintMatrix(column, line); - - // Is it possible to place a wall here without blocking anything? - - if (!CheckReaches(column, line, theMatrix)) { - //cout << "No!" << endl; - *(MatrixWrite(column, line, theMatrix)) = SPACE_EMPTY; //theMatrix[column][line] = SPACE_EMPTY; - wallsPlaced--; - //system("PAUSE"); - } - - emptySpaces.erase(&emptySpaces[element]); - //cout << emptySpaces.size() << endl; - //system("PAUSE"); - } - //cout << "One round ready..." << endl; - //PrintMatrix(); - //system("PAUSE"); - } - - return true; -} - -void CountWalls(cell* theMatrix) { - int walls = 0, empties = 0, others = 0; - for (UINT i = 0; i < LINES * COLUMNS; i++) { - if (theMatrix[i] == SPACE_EMPTY) - empties++; - else if (theMatrix[i] == SPACE_WALL) - walls++; - else - others++; - - } - MF_Log("Walls: %d empties: %d others: %d", walls, empties, others); -} - -static cell AMX_NATIVE_CALL metamap_getmap(AMX *amx, cell *params) // native metamap_getmap(matrix[], columns, lines, walls); = 4 params -{ -#if defined _DEBUG - MF_Log("metamap_getmap start"); -#endif - g_amx = amx; - // Get matrix - cell* theMatrix = MF_GetAmxAddr(amx, params[1]); - - // Get rest of the parameters - COLUMNS = params[2]; - LINES = params[3]; - const int WALLS = params[4]; - - if (COLUMNS <= 0) { - MF_Log("Too few columns! (%d)", COLUMNS); - MF_RaiseAmxError(g_amx, AMX_ERR_NATIVE); - return 0; - } - else if (LINES <= 0) { - MF_Log("Too few lines! (%d)", LINES); - MF_RaiseAmxError(g_amx, AMX_ERR_NATIVE); - return 0; - } - else if (WALLS <= 0) { - MF_Log("Too few walls! (%d)", WALLS); - MF_RaiseAmxError(g_amx, AMX_ERR_NATIVE); - return 0; - } - - try { - EmptyMatrix(theMatrix); - -#if defined _DEBUG - CountWalls(theMatrix); -#endif - if (!PlaceWalls2(WALLS, theMatrix)) { - MF_RaiseAmxError(g_amx, AMX_ERR_NATIVE); - return 0; - } -#if defined _DEBUG - MF_Log("After placing walls:"); - CountWalls(theMatrix); -#endif - } - catch (...) { - MF_Log("Metamap, main: Unhandled exception."); - MF_RaiseAmxError(g_amx, AMX_ERR_NATIVE); - return 0; - } - -#if defined _DEBUG - MF_Log("metamap_getmap end"); -#endif - return 1; -} -/******************************************************************************************/ -AMX_NATIVE_INFO metamap_Exports[] = { - {"metamap_getmap", metamap_getmap}, - /////////////////// <--- 19 chars max - {NULL, NULL} -}; - -void OnAmxxAttach() -{ - MF_AddNatives(metamap_Exports); -} diff --git a/dlls/metamapx/metamap.h b/dlls/metamapx/metamap.h deleted file mode 100755 index fd834d98..00000000 --- a/dlls/metamapx/metamap.h +++ /dev/null @@ -1,19 +0,0 @@ -#include -#include "JBRandom.h" -#include "amxxmodule.h" -using namespace std; - -enum SpaceContent {SPACE_EMPTY = 0, SPACE_WALL = 1}; -typedef unsigned int UINT; - -class CSpace -{ - public: - CSpace(UINT columnIn, UINT lineIn) {column = columnIn; line = lineIn;} - UINT column, line; -}; - - -// Globals -UINT COLUMNS, LINES; -AMX *g_amx; diff --git a/dlls/metamapx/metamap.inc b/dlls/metamapx/metamap.inc deleted file mode 100755 index 4e57d703..00000000 --- a/dlls/metamapx/metamap.inc +++ /dev/null @@ -1,9 +0,0 @@ -// METAMAP module - -#if !defined INCLUDED_METAMAP -#define INCLUDED_METAMAP - -// Matrix must be of size columns * lines! -native metamap_getmap(matrix[], columns, lines, walls); - -#endif // INCLUDED_METAMAP diff --git a/dlls/metamapx/metamap.vcproj b/dlls/metamapx/metamap.vcproj deleted file mode 100755 index 2955b690..00000000 --- a/dlls/metamapx/metamap.vcproj +++ /dev/null @@ -1,199 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dlls/metamapx/moduleconfig.h b/dlls/metamapx/moduleconfig.h deleted file mode 100755 index 6a09498e..00000000 --- a/dlls/metamapx/moduleconfig.h +++ /dev/null @@ -1,462 +0,0 @@ -// Configuration - -#ifndef __MODULECONFIG_H__ -#define __MODULECONFIG_H__ - -// Module info -#define MODULE_NAME "Metamap X" -#define MODULE_VERSION "0.1" -#define MODULE_AUTHOR "JGHG" -#define MODULE_URL "http://www.tcwonline.org/johnnygothisgun/" -#define MODULE_LOGTAG "METAMAPX" -// If you don't want the module to be reloaded on mapchange, comment out the next line -//#define MODULE_RELOAD_ON_MAPCHANGE - -#ifdef __DATE__ -#define MODULE_DATE __DATE__ -#else // __DATE__ -#define MODULE_DATE "Unknown" -#endif // __DATE__ - -// metamod plugin? -// #define USE_METAMOD - -// - AMXX Init functions -// Also consider using FN_META_* -// AMXX query -//#define FN_AMXX_QUERY OnAmxxQuery -// AMXX attach -// Do native functions init here (MF_AddNatives) -#define FN_AMXX_ATTACH OnAmxxAttach -// AMXX detach -//#define FN_AMXX_DETACH OnAmxxDetach -// All plugins loaded -// Do forward functions init here (MF_RegisterForward) -// #define FN_AMXX_PLUGINSLOADED OnPluginsLoaded - -/**** METAMOD ****/ -// If your module doesn't use metamod, you may close the file now :) -#ifdef USE_METAMOD -// ---- -// Hook Functions -// Uncomment these to be called -// You can also change the function name - -// - Metamod init functions -// Also consider using FN_AMXX_* -// Meta query -//#define FN_META_QUERY OnMetaQuery -// Meta attach -//#define FN_META_ATTACH OnMetaAttach -// Meta detach -//#define FN_META_DETACH OnMetaDetach - -// (wd) are Will Day's notes -// - GetEntityAPI2 functions -// #define FN_GameDLLInit GameDLLInit /* pfnGameInit() */ -// #define FN_DispatchSpawn DispatchSpawn /* pfnSpawn() */ -// #define FN_DispatchThink DispatchThink /* pfnThink() */ -// #define FN_DispatchUse DispatchUse /* pfnUse() */ -// #define FN_DispatchTouch DispatchTouch /* pfnTouch() */ -// #define FN_DispatchBlocked DispatchBlocked /* pfnBlocked() */ -// #define FN_DispatchKeyValue DispatchKeyValue /* pfnKeyValue() */ -// #define FN_DispatchSave DispatchSave /* pfnSave() */ -// #define FN_DispatchRestore DispatchRestore /* pfnRestore() */ -// #define FN_DispatchObjectCollsionBox DispatchObjectCollsionBox /* pfnSetAbsBox() */ -// #define FN_SaveWriteFields SaveWriteFields /* pfnSaveWriteFields() */ -// #define FN_SaveReadFields SaveReadFields /* pfnSaveReadFields() */ -// #define FN_SaveGlobalState SaveGlobalState /* pfnSaveGlobalState() */ -// #define FN_RestoreGlobalState RestoreGlobalState /* pfnRestoreGlobalState() */ -// #define FN_ResetGlobalState ResetGlobalState /* pfnResetGlobalState() */ -// #define FN_ClientConnect ClientConnect /* pfnClientConnect() (wd) Client has connected */ -// #define FN_ClientDisconnect ClientDisconnect /* pfnClientDisconnect() (wd) Player has left the game */ -// #define FN_ClientKill ClientKill /* pfnClientKill() (wd) Player has typed "kill" */ -// #define FN_ClientPutInServer ClientPutInServer /* pfnClientPutInServer() (wd) Client is entering the game */ -// #define FN_ClientCommand ClientCommand /* pfnClientCommand() (wd) Player has sent a command (typed or from a bind) */ -// #define FN_ClientUserInfoChanged ClientUserInfoChanged /* pfnClientUserInfoChanged() (wd) Client has updated their setinfo structure */ -// #define FN_ServerActivate ServerActivate /* pfnServerActivate() (wd) Server is starting a new map */ -// #define FN_ServerDeactivate ServerDeactivate /* pfnServerDeactivate() (wd) Server is leaving the map (shutdown or changelevel); SDK2 */ -// #define FN_PlayerPreThink PlayerPreThink /* pfnPlayerPreThink() */ -// #define FN_PlayerPostThink PlayerPostThink /* pfnPlayerPostThink() */ -// #define FN_StartFrame StartFrame /* pfnStartFrame() */ -// #define FN_ParmsNewLevel ParmsNewLevel /* pfnParmsNewLevel() */ -// #define FN_ParmsChangeLevel ParmsChangeLevel /* pfnParmsChangeLevel() */ -// #define FN_GetGameDescription GetGameDescription /* pfnGetGameDescription() Returns string describing current .dll. E.g. "TeamFotrress 2" "Half-Life" */ -// #define FN_PlayerCustomization PlayerCustomization /* pfnPlayerCustomization() Notifies .dll of new customization for player. */ -// #define FN_SpectatorConnect SpectatorConnect /* pfnSpectatorConnect() Called when spectator joins server */ -// #define FN_SpectatorDisconnect SpectatorDisconnect /* pfnSpectatorDisconnect() Called when spectator leaves the server */ -// #define FN_SpectatorThink SpectatorThink /* pfnSpectatorThink() Called when spectator sends a command packet (usercmd_t) */ -// #define FN_Sys_Error Sys_Error /* pfnSys_Error() Notify game .dll that engine is going to shut down. Allows mod authors to set a breakpoint. SDK2 */ -// #define FN_PM_Move PM_Move /* pfnPM_Move() (wd) SDK2 */ -// #define FN_PM_Init PM_Init /* pfnPM_Init() Server version of player movement initialization; (wd) SDK2 */ -// #define FN_PM_FindTextureType PM_FindTextureType /* pfnPM_FindTextureType() (wd) SDK2 */ -// #define FN_SetupVisibility SetupVisibility /* pfnSetupVisibility() Set up PVS and PAS for networking for this client; (wd) SDK2 */ -// #define FN_UpdateClientData UpdateClientData /* pfnUpdateClientData() Set up data sent only to specific client; (wd) SDK2 */ -// #define FN_AddToFullPack AddToFullPack /* pfnAddToFullPack() (wd) SDK2 */ -// #define FN_CreateBaseline CreateBaseline /* pfnCreateBaseline() Tweak entity baseline for network encoding allows setup of player baselines too.; (wd) SDK2 */ -// #define FN_RegisterEncoders RegisterEncoders /* pfnRegisterEncoders() Callbacks for network encoding; (wd) SDK2 */ -// #define FN_GetWeaponData GetWeaponData /* pfnGetWeaponData() (wd) SDK2 */ -// #define FN_CmdStart CmdStart /* pfnCmdStart() (wd) SDK2 */ -// #define FN_CmdEnd CmdEnd /* pfnCmdEnd() (wd) SDK2 */ -// #define FN_ConnectionlessPacket ConnectionlessPacket /* pfnConnectionlessPacket() (wd) SDK2 */ -// #define FN_GetHullBounds GetHullBounds /* pfnGetHullBounds() (wd) SDK2 */ -// #define FN_CreateInstancedBaselines CreateInstancedBaselines /* pfnCreateInstancedBaselines() (wd) SDK2 */ -// #define FN_InconsistentFile InconsistentFile /* pfnInconsistentFile() (wd) SDK2 */ -// #define FN_AllowLagCompensation AllowLagCompensation /* pfnAllowLagCompensation() (wd) SDK2 */ - -// - GetEntityAPI2_Post functions -// #define FN_GameDLLInit_Post GameDLLInit_Post -// #define FN_DispatchSpawn_Post DispatchSpawn_Post -// #define FN_DispatchThink_Post DispatchThink_Post -// #define FN_DispatchUse_Post DispatchUse_Post -// #define FN_DispatchTouch_Post DispatchTouch_Post -// #define FN_DispatchBlocked_Post DispatchBlocked_Post -// #define FN_DispatchKeyValue_Post DispatchKeyValue_Post -// #define FN_DispatchSave_Post DispatchSave_Post -// #define FN_DispatchRestore_Post DispatchRestore_Post -// #define FN_DispatchObjectCollsionBox_Post DispatchObjectCollsionBox_Post -// #define FN_SaveWriteFields_Post SaveWriteFields_Post -// #define FN_SaveReadFields_Post SaveReadFields_Post -// #define FN_SaveGlobalState_Post SaveGlobalState_Post -// #define FN_RestoreGlobalState_Post RestoreGlobalState_Post -// #define FN_ResetGlobalState_Post ResetGlobalState_Post -// #define FN_ClientConnect_Post ClientConnect_Post -// #define FN_ClientDisconnect_Post ClientDisconnect_Post -// #define FN_ClientKill_Post ClientKill_Post -// #define FN_ClientPutInServer_Post ClientPutInServer_Post -// #define FN_ClientCommand_Post ClientCommand_Post -// #define FN_ClientUserInfoChanged_Post ClientUserInfoChanged_Post -// #define FN_ServerActivate_Post ServerActivate_Post -// #define FN_ServerDeactivate_Post ServerDeactivate_Post -// #define FN_PlayerPreThink_Post PlayerPreThink_Post -// #define FN_PlayerPostThink_Post PlayerPostThink_Post -// #define FN_StartFrame_Post StartFrame_Post -// #define FN_ParmsNewLevel_Post ParmsNewLevel_Post -// #define FN_ParmsChangeLevel_Post ParmsChangeLevel_Post -// #define FN_GetGameDescription_Post GetGameDescription_Post -// #define FN_PlayerCustomization_Post PlayerCustomization_Post -// #define FN_SpectatorConnect_Post SpectatorConnect_Post -// #define FN_SpectatorDisconnect_Post SpectatorDisconnect_Post -// #define FN_SpectatorThink_Post SpectatorThink_Post -// #define FN_Sys_Error_Post Sys_Error_Post -// #define FN_PM_Move_Post PM_Move_Post -// #define FN_PM_Init_Post PM_Init_Post -// #define FN_PM_FindTextureType_Post PM_FindTextureType_Post -// #define FN_SetupVisibility_Post SetupVisibility_Post -// #define FN_UpdateClientData_Post UpdateClientData_Post -// #define FN_AddToFullPack_Post AddToFullPack_Post -// #define FN_CreateBaseline_Post CreateBaseline_Post -// #define FN_RegisterEncoders_Post RegisterEncoders_Post -// #define FN_GetWeaponData_Post GetWeaponData_Post -// #define FN_CmdStart_Post CmdStart_Post -// #define FN_CmdEnd_Post CmdEnd_Post -// #define FN_ConnectionlessPacket_Post ConnectionlessPacket_Post -// #define FN_GetHullBounds_Post GetHullBounds_Post -// #define FN_CreateInstancedBaselines_Post CreateInstancedBaselines_Post -// #define FN_InconsistentFile_Post InconsistentFile_Post -// #define FN_AllowLagCompensation_Post AllowLagCompensation_Post - -// - GetEngineAPI functions -// #define FN_PrecacheModel PrecacheModel -// #define FN_PrecacheSound PrecacheSound -// #define FN_SetModel SetModel -// #define FN_ModelIndex ModelIndex -// #define FN_ModelFrames ModelFrames -// #define FN_SetSize SetSize -// #define FN_ChangeLevel ChangeLevel -// #define FN_GetSpawnParms GetSpawnParms -// #define FN_SaveSpawnParms SaveSpawnParms -// #define FN_VecToYaw VecToYaw -// #define FN_VecToAngles VecToAngles -// #define FN_MoveToOrigin MoveToOrigin -// #define FN_ChangeYaw ChangeYaw -// #define FN_ChangePitch ChangePitch -// #define FN_FindEntityByString FindEntityByString -// #define FN_GetEntityIllum GetEntityIllum -// #define FN_FindEntityInSphere FindEntityInSphere -// #define FN_FindClientInPVS FindClientInPVS -// #define FN_EntitiesInPVS EntitiesInPVS -// #define FN_MakeVectors MakeVectors -// #define FN_AngleVectors AngleVectors -// #define FN_CreateEntity CreateEntity -// #define FN_RemoveEntity RemoveEntity -// #define FN_CreateNamedEntity CreateNamedEntity -// #define FN_MakeStatic MakeStatic -// #define FN_EntIsOnFloor EntIsOnFloor -// #define FN_DropToFloor DropToFloor -// #define FN_WalkMove WalkMove -// #define FN_SetOrigin SetOrigin -// #define FN_EmitSound EmitSound -// #define FN_EmitAmbientSound EmitAmbientSound -// #define FN_TraceLine TraceLine -// #define FN_TraceToss TraceToss -// #define FN_TraceMonsterHull TraceMonsterHull -// #define FN_TraceHull TraceHull -// #define FN_TraceModel TraceModel -// #define FN_TraceTexture TraceTexture -// #define FN_TraceSphere TraceSphere -// #define FN_GetAimVector GetAimVector -// #define FN_ServerCommand ServerCommand -// #define FN_ServerExecute ServerExecute -// #define FN_engClientCommand engClientCommand -// #define FN_ParticleEffect ParticleEffect -// #define FN_LightStyle LightStyle -// #define FN_DecalIndex DecalIndex -// #define FN_PointContents PointContents -// #define FN_MessageBegin MessageBegin -// #define FN_MessageEnd MessageEnd -// #define FN_WriteByte WriteByte -// #define FN_WriteChar WriteChar -// #define FN_WriteShort WriteShort -// #define FN_WriteLong WriteLong -// #define FN_WriteAngle WriteAngle -// #define FN_WriteCoord WriteCoord -// #define FN_WriteString WriteString -// #define FN_WriteEntity WriteEntity -// #define FN_CVarRegister CVarRegister -// #define FN_CVarGetFloat CVarGetFloat -// #define FN_CVarGetString CVarGetString -// #define FN_CVarSetFloat CVarSetFloat -// #define FN_CVarSetString CVarSetString -// #define FN_AlertMessage AlertMessage -// #define FN_EngineFprintf EngineFprintf -// #define FN_PvAllocEntPrivateData PvAllocEntPrivateData -// #define FN_PvEntPrivateData PvEntPrivateData -// #define FN_FreeEntPrivateData FreeEntPrivateData -// #define FN_SzFromIndex SzFromIndex -// #define FN_AllocString AllocString -// #define FN_GetVarsOfEnt GetVarsOfEnt -// #define FN_PEntityOfEntOffset PEntityOfEntOffset -// #define FN_EntOffsetOfPEntity EntOffsetOfPEntity -// #define FN_IndexOfEdict IndexOfEdict -// #define FN_PEntityOfEntIndex PEntityOfEntIndex -// #define FN_FindEntityByVars FindEntityByVars -// #define FN_GetModelPtr GetModelPtr -// #define FN_RegUserMsg RegUserMsg -// #define FN_AnimationAutomove AnimationAutomove -// #define FN_GetBonePosition GetBonePosition -// #define FN_FunctionFromName FunctionFromName -// #define FN_NameForFunction NameForFunction -// #define FN_ClientPrintf ClientPrintf -// #define FN_ServerPrint ServerPrint -// #define FN_Cmd_Args Cmd_Args -// #define FN_Cmd_Argv Cmd_Argv -// #define FN_Cmd_Argc Cmd_Argc -// #define FN_GetAttachment GetAttachment -// #define FN_CRC32_Init CRC32_Init -// #define FN_CRC32_ProcessBuffer CRC32_ProcessBuffer -// #define FN_CRC32_ProcessByte CRC32_ProcessByte -// #define FN_CRC32_Final CRC32_Final -// #define FN_RandomLong RandomLong -// #define FN_RandomFloat RandomFloat -// #define FN_SetView SetView -// #define FN_Time Time -// #define FN_CrosshairAngle CrosshairAngle -// #define FN_LoadFileForMe LoadFileForMe -// #define FN_FreeFile FreeFile -// #define FN_EndSection EndSection -// #define FN_CompareFileTime CompareFileTime -// #define FN_GetGameDir GetGameDir -// #define FN_Cvar_RegisterVariable Cvar_RegisterVariable -// #define FN_FadeClientVolume FadeClientVolume -// #define FN_SetClientMaxspeed SetClientMaxspeed -// #define FN_CreateFakeClient CreateFakeClient -// #define FN_RunPlayerMove RunPlayerMove -// #define FN_NumberOfEntities NumberOfEntities -// #define FN_GetInfoKeyBuffer GetInfoKeyBuffer -// #define FN_InfoKeyValue InfoKeyValue -// #define FN_SetKeyValue SetKeyValue -// #define FN_SetClientKeyValue SetClientKeyValue -// #define FN_IsMapValid IsMapValid -// #define FN_StaticDecal StaticDecal -// #define FN_PrecacheGeneric PrecacheGeneric -// #define FN_GetPlayerUserId GetPlayerUserId -// #define FN_BuildSoundMsg BuildSoundMsg -// #define FN_IsDedicatedServer IsDedicatedServer -// #define FN_CVarGetPointer CVarGetPointer -// #define FN_GetPlayerWONId GetPlayerWONId -// #define FN_Info_RemoveKey Info_RemoveKey -// #define FN_GetPhysicsKeyValue GetPhysicsKeyValue -// #define FN_SetPhysicsKeyValue SetPhysicsKeyValue -// #define FN_GetPhysicsInfoString GetPhysicsInfoString -// #define FN_PrecacheEvent PrecacheEvent -// #define FN_PlaybackEvent PlaybackEvent -// #define FN_SetFatPVS SetFatPVS -// #define FN_SetFatPAS SetFatPAS -// #define FN_CheckVisibility CheckVisibility -// #define FN_DeltaSetField DeltaSetField -// #define FN_DeltaUnsetField DeltaUnsetField -// #define FN_DeltaAddEncoder DeltaAddEncoder -// #define FN_GetCurrentPlayer GetCurrentPlayer -// #define FN_CanSkipPlayer CanSkipPlayer -// #define FN_DeltaFindField DeltaFindField -// #define FN_DeltaSetFieldByIndex DeltaSetFieldByIndex -// #define FN_DeltaUnsetFieldByIndex DeltaUnsetFieldByIndex -// #define FN_SetGroupMask SetGroupMask -// #define FN_engCreateInstancedBaseline engCreateInstancedBaseline -// #define FN_Cvar_DirectSet Cvar_DirectSet -// #define FN_ForceUnmodified ForceUnmodified -// #define FN_GetPlayerStats GetPlayerStats -// #define FN_AddServerCommand AddServerCommand -// #define FN_Voice_GetClientListening Voice_GetClientListening -// #define FN_Voice_SetClientListening Voice_SetClientListening -// #define FN_GetPlayerAuthId GetPlayerAuthId - -// - GetEngineAPI_Post functions -// #define FN_PrecacheModel_Post PrecacheModel_Post -// #define FN_PrecacheSound_Post PrecacheSound_Post -// #define FN_SetModel_Post SetModel_Post -// #define FN_ModelIndex_Post ModelIndex_Post -// #define FN_ModelFrames_Post ModelFrames_Post -// #define FN_SetSize_Post SetSize_Post -// #define FN_ChangeLevel_Post ChangeLevel_Post -// #define FN_GetSpawnParms_Post GetSpawnParms_Post -// #define FN_SaveSpawnParms_Post SaveSpawnParms_Post -// #define FN_VecToYaw_Post VecToYaw_Post -// #define FN_VecToAngles_Post VecToAngles_Post -// #define FN_MoveToOrigin_Post MoveToOrigin_Post -// #define FN_ChangeYaw_Post ChangeYaw_Post -// #define FN_ChangePitch_Post ChangePitch_Post -// #define FN_FindEntityByString_Post FindEntityByString_Post -// #define FN_GetEntityIllum_Post GetEntityIllum_Post -// #define FN_FindEntityInSphere_Post FindEntityInSphere_Post -// #define FN_FindClientInPVS_Post FindClientInPVS_Post -// #define FN_EntitiesInPVS_Post EntitiesInPVS_Post -// #define FN_MakeVectors_Post MakeVectors_Post -// #define FN_AngleVectors_Post AngleVectors_Post -// #define FN_CreateEntity_Post CreateEntity_Post -// #define FN_RemoveEntity_Post RemoveEntity_Post -// #define FN_CreateNamedEntity_Post CreateNamedEntity_Post -// #define FN_MakeStatic_Post MakeStatic_Post -// #define FN_EntIsOnFloor_Post EntIsOnFloor_Post -// #define FN_DropToFloor_Post DropToFloor_Post -// #define FN_WalkMove_Post WalkMove_Post -// #define FN_SetOrigin_Post SetOrigin_Post -// #define FN_EmitSound_Post EmitSound_Post -// #define FN_EmitAmbientSound_Post EmitAmbientSound_Post -// #define FN_TraceLine_Post TraceLine_Post -// #define FN_TraceToss_Post TraceToss_Post -// #define FN_TraceMonsterHull_Post TraceMonsterHull_Post -// #define FN_TraceHull_Post TraceHull_Post -// #define FN_TraceModel_Post TraceModel_Post -// #define FN_TraceTexture_Post TraceTexture_Post -// #define FN_TraceSphere_Post TraceSphere_Post -// #define FN_GetAimVector_Post GetAimVector_Post -// #define FN_ServerCommand_Post ServerCommand_Post -// #define FN_ServerExecute_Post ServerExecute_Post -// #define FN_engClientCommand_Post engClientCommand_Post -// #define FN_ParticleEffect_Post ParticleEffect_Post -// #define FN_LightStyle_Post LightStyle_Post -// #define FN_DecalIndex_Post DecalIndex_Post -// #define FN_PointContents_Post PointContents_Post -// #define FN_MessageBegin_Post MessageBegin_Post -// #define FN_MessageEnd_Post MessageEnd_Post -// #define FN_WriteByte_Post WriteByte_Post -// #define FN_WriteChar_Post WriteChar_Post -// #define FN_WriteShort_Post WriteShort_Post -// #define FN_WriteLong_Post WriteLong_Post -// #define FN_WriteAngle_Post WriteAngle_Post -// #define FN_WriteCoord_Post WriteCoord_Post -// #define FN_WriteString_Post WriteString_Post -// #define FN_WriteEntity_Post WriteEntity_Post -// #define FN_CVarRegister_Post CVarRegister_Post -// #define FN_CVarGetFloat_Post CVarGetFloat_Post -// #define FN_CVarGetString_Post CVarGetString_Post -// #define FN_CVarSetFloat_Post CVarSetFloat_Post -// #define FN_CVarSetString_Post CVarSetString_Post -// #define FN_AlertMessage_Post AlertMessage_Post -// #define FN_EngineFprintf_Post EngineFprintf_Post -// #define FN_PvAllocEntPrivateData_Post PvAllocEntPrivateData_Post -// #define FN_PvEntPrivateData_Post PvEntPrivateData_Post -// #define FN_FreeEntPrivateData_Post FreeEntPrivateData_Post -// #define FN_SzFromIndex_Post SzFromIndex_Post -// #define FN_AllocString_Post AllocString_Post -// #define FN_GetVarsOfEnt_Post GetVarsOfEnt_Post -// #define FN_PEntityOfEntOffset_Post PEntityOfEntOffset_Post -// #define FN_EntOffsetOfPEntity_Post EntOffsetOfPEntity_Post -// #define FN_IndexOfEdict_Post IndexOfEdict_Post -// #define FN_PEntityOfEntIndex_Post PEntityOfEntIndex_Post -// #define FN_FindEntityByVars_Post FindEntityByVars_Post -// #define FN_GetModelPtr_Post GetModelPtr_Post -// #define FN_RegUserMsg_Post RegUserMsg_Post -// #define FN_AnimationAutomove_Post AnimationAutomove_Post -// #define FN_GetBonePosition_Post GetBonePosition_Post -// #define FN_FunctionFromName_Post FunctionFromName_Post -// #define FN_NameForFunction_Post NameForFunction_Post -// #define FN_ClientPrintf_Post ClientPrintf_Post -// #define FN_ServerPrint_Post ServerPrint_Post -// #define FN_Cmd_Args_Post Cmd_Args_Post -// #define FN_Cmd_Argv_Post Cmd_Argv_Post -// #define FN_Cmd_Argc_Post Cmd_Argc_Post -// #define FN_GetAttachment_Post GetAttachment_Post -// #define FN_CRC32_Init_Post CRC32_Init_Post -// #define FN_CRC32_ProcessBuffer_Post CRC32_ProcessBuffer_Post -// #define FN_CRC32_ProcessByte_Post CRC32_ProcessByte_Post -// #define FN_CRC32_Final_Post CRC32_Final_Post -// #define FN_RandomLong_Post RandomLong_Post -// #define FN_RandomFloat_Post RandomFloat_Post -// #define FN_SetView_Post SetView_Post -// #define FN_Time_Post Time_Post -// #define FN_CrosshairAngle_Post CrosshairAngle_Post -// #define FN_LoadFileForMe_Post LoadFileForMe_Post -// #define FN_FreeFile_Post FreeFile_Post -// #define FN_EndSection_Post EndSection_Post -// #define FN_CompareFileTime_Post CompareFileTime_Post -// #define FN_GetGameDir_Post GetGameDir_Post -// #define FN_Cvar_RegisterVariable_Post Cvar_RegisterVariable_Post -// #define FN_FadeClientVolume_Post FadeClientVolume_Post -// #define FN_SetClientMaxspeed_Post SetClientMaxspeed_Post -// #define FN_CreateFakeClient_Post CreateFakeClient_Post -// #define FN_RunPlayerMove_Post RunPlayerMove_Post -// #define FN_NumberOfEntities_Post NumberOfEntities_Post -// #define FN_GetInfoKeyBuffer_Post GetInfoKeyBuffer_Post -// #define FN_InfoKeyValue_Post InfoKeyValue_Post -// #define FN_SetKeyValue_Post SetKeyValue_Post -// #define FN_SetClientKeyValue_Post SetClientKeyValue_Post -// #define FN_IsMapValid_Post IsMapValid_Post -// #define FN_StaticDecal_Post StaticDecal_Post -// #define FN_PrecacheGeneric_Post PrecacheGeneric_Post -// #define FN_GetPlayerUserId_Post GetPlayerUserId_Post -// #define FN_BuildSoundMsg_Post BuildSoundMsg_Post -// #define FN_IsDedicatedServer_Post IsDedicatedServer_Post -// #define FN_CVarGetPointer_Post CVarGetPointer_Post -// #define FN_GetPlayerWONId_Post GetPlayerWONId_Post -// #define FN_Info_RemoveKey_Post Info_RemoveKey_Post -// #define FN_GetPhysicsKeyValue_Post GetPhysicsKeyValue_Post -// #define FN_SetPhysicsKeyValue_Post SetPhysicsKeyValue_Post -// #define FN_GetPhysicsInfoString_Post GetPhysicsInfoString_Post -// #define FN_PrecacheEvent_Post PrecacheEvent_Post -// #define FN_PlaybackEvent_Post PlaybackEvent_Post -// #define FN_SetFatPVS_Post SetFatPVS_Post -// #define FN_SetFatPAS_Post SetFatPAS_Post -// #define FN_CheckVisibility_Post CheckVisibility_Post -// #define FN_DeltaSetField_Post DeltaSetField_Post -// #define FN_DeltaUnsetField_Post DeltaUnsetField_Post -// #define FN_DeltaAddEncoder_Post DeltaAddEncoder_Post -// #define FN_GetCurrentPlayer_Post GetCurrentPlayer_Post -// #define FN_CanSkipPlayer_Post CanSkipPlayer_Post -// #define FN_DeltaFindField_Post DeltaFindField_Post -// #define FN_DeltaSetFieldByIndex_Post DeltaSetFieldByIndex_Post -// #define FN_DeltaUnsetFieldByIndex_Post DeltaUnsetFieldByIndex_Post -// #define FN_SetGroupMask_Post SetGroupMask_Post -// #define FN_engCreateInstancedBaseline_Post engCreateInstancedBaseline_Post -// #define FN_Cvar_DirectSet_Post Cvar_DirectSet_Post -// #define FN_ForceUnmodified_Post ForceUnmodified_Post -// #define FN_GetPlayerStats_Post GetPlayerStats_Post -// #define FN_AddServerCommand_Post AddServerCommand_Post -// #define FN_Voice_GetClientListening_Post Voice_GetClientListening_Post -// #define FN_Voice_SetClientListening_Post Voice_SetClientListening_Post -// #define FN_GetPlayerAuthId_Post GetPlayerAuthId_Post - -// #define FN_OnFreeEntPrivateData OnFreeEntPrivateData -// #define FN_GameShutdown GameShutdown -// #define FN_ShouldCollide ShouldCollide - -// #define FN_OnFreeEntPrivateData_Post OnFreeEntPrivateData_Post -// #define FN_GameShutdown_Post GameShutdown_Post -// #define FN_ShouldCollide_Post ShouldCollide_Post - - -#endif // USE_METAMOD - -#endif // __MODULECONFIG_H__ \ No newline at end of file diff --git a/editor/editor2/AMX.ico b/editor/editor2/AMX.ico deleted file mode 100755 index a530d9e1fb707068597800a48509c382c18e110a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 766 zcmchVD-yym5Qeva!=o$lok1fqsN8~1&JkJB+aNI&9R`tuaEtP7(nmx^1;aM`%Kz^s z*{MjuSC$7+`Rqha_%m9fSG16X3D~-L5tewL9F`FE(sdoc5SI*tMkt?dVayN2)!O8i zoG~`MG!LOxN8V^;-z`?fHZ6qE%=sIF#UwaFFW`R44Oj+8LJrfrS*o>)BkH-DfNt?l z<6h)v1mK*YcVW#0;6Cf1upT)PY`hDEv4Hn-PWIl=lQR#sTO X>QXPcac*H}+Z#fDhyTdlub%S-tpUic diff --git a/editor/editor2/AMXX_Edit_v2.cfg b/editor/editor2/AMXX_Edit_v2.cfg deleted file mode 100755 index 662b86fe..00000000 --- a/editor/editor2/AMXX_Edit_v2.cfg +++ /dev/null @@ -1,38 +0,0 @@ --$A8 --$B- --$C+ --$D+ --$E- --$F- --$G+ --$H+ --$I+ --$J- --$K- --$L+ --$M- --$N+ --$O+ --$P+ --$Q- --$R- --$S- --$T- --$U- --$V+ --$W- --$X+ --$YD --$Z1 --cg --AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; --H+ --W+ --M --$M16384,1048576 --K$00400000 --LE"c:\programme\borland\delphi7\Projects\Bpl" --LN"c:\programme\borland\delphi7\Projects\Bpl" --w-UNSAFE_TYPE --w-UNSAFE_CODE --w-UNSAFE_CAST diff --git a/editor/editor2/AMXX_Edit_v2.dof b/editor/editor2/AMXX_Edit_v2.dof deleted file mode 100755 index b626f751..00000000 --- a/editor/editor2/AMXX_Edit_v2.dof +++ /dev/null @@ -1,136 +0,0 @@ -[FileVersion] -Version=7.0 -[Compiler] -A=8 -B=0 -C=1 -D=1 -E=0 -F=0 -G=1 -H=1 -I=1 -J=0 -K=0 -L=1 -M=0 -N=1 -O=1 -P=1 -Q=0 -R=0 -S=0 -T=0 -U=0 -V=1 -W=0 -X=1 -Y=1 -Z=1 -ShowHints=1 -ShowWarnings=1 -UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; -NamespacePrefix= -SymbolDeprecated=1 -SymbolLibrary=1 -SymbolPlatform=1 -UnitLibrary=1 -UnitPlatform=1 -UnitDeprecated=1 -HResultCompat=1 -HidingMember=1 -HiddenVirtual=1 -Garbage=1 -BoundsError=1 -ZeroNilCompat=1 -StringConstTruncated=1 -ForLoopVarVarPar=1 -TypedConstVarPar=1 -AsgToTypedConst=1 -CaseLabelRange=1 -ForVariable=1 -ConstructingAbstract=1 -ComparisonFalse=1 -ComparisonTrue=1 -ComparingSignedUnsigned=1 -CombiningSignedUnsigned=1 -UnsupportedConstruct=1 -FileOpen=1 -FileOpenUnitSrc=1 -BadGlobalSymbol=1 -DuplicateConstructorDestructor=1 -InvalidDirective=1 -PackageNoLink=1 -PackageThreadVar=1 -ImplicitImport=1 -HPPEMITIgnored=1 -NoRetVal=1 -UseBeforeDef=1 -ForLoopVarUndef=1 -UnitNameMismatch=1 -NoCFGFileFound=1 -MessageDirective=1 -ImplicitVariants=1 -UnicodeToLocale=1 -LocaleToUnicode=1 -ImagebaseMultiple=1 -SuspiciousTypecast=1 -PrivatePropAccessor=1 -UnsafeType=0 -UnsafeCode=0 -UnsafeCast=0 -[Linker] -MapFile=0 -OutputObjs=0 -ConsoleApp=1 -DebugInfo=0 -RemoteSymbols=0 -MinStackSize=16384 -MaxStackSize=1048576 -ImageBase=4194304 -ExeDescription= -[Directories] -OutputDir= -UnitOutputDir= -PackageDLLOutputDir= -PackageDCPOutputDir= -SearchPath= -Packages=vcl;rtl;vclx;vclie;xmlrtl;inetdbbde;inet;inetdbxpress;VclSmp;dbrtl;dbexpress;vcldb;dsnap;dbxcds;inetdb;bdertl;vcldbx;adortl;teeui;teedb;tee;ibxpress;visualclx;visualdbclx;vclactnband;vclshlctrls;IntrawebDB_50_70;Intraweb_50_70;Rave50CLX;Rave50VCL;dclOffice2k;JvStdCtrlsD7R;JvAppFrmD7R;JvCoreD7R;JvBandsD7R;JvBDED7R;JvDBD7R;JvDlgsD7R;JvCmpD7R;JvCryptD7R;JvCtrlsD7R;JvCustomD7R;JvDockingD7R;JvDotNetCtrlsD7R;JvEDID7R;qrpt;JvGlobusD7R;JvHMID7R;JvInspectorD7R;JvInterpreterD7R;JvJansD7R;JvManagedThreadsD7R;JvMMD7R;JvNetD7R;JvPageCompsD7R;JvPluginD7R;JvPrintPreviewD7R;JvSystemD7R;JvTimeFrameworkD7R;JvUIBD7R;JvValidatorsD7R;JvWizardD7R;JvXPCtrlsD7R;Indy70;FlatStyle_D5;CrossKylix;DJcl;DelphiX_for7 -Conditionals= -DebugSourceDirs= -UsePackages=0 -[Parameters] -RunParams= -HostApplication= -Launcher= -UseLauncher=0 -DebugCWD= -[Language] -ActiveLang= -ProjectLang= -RootDir= -[Version Info] -IncludeVerInfo=1 -AutoIncBuild=1 -MajorVer=2 -MinorVer=1 -Release=0 -Build=6 -Debug=0 -PreRelease=0 -Special=0 -Private=0 -DLL=0 -Locale=1031 -CodePage=1252 -[Version Info Keys] -CompanyName=AMX Mod X -FileDescription=Final -FileVersion=2.1.0.6 -InternalName= -LegalCopyright= -LegalTrademarks= -OriginalFilename= -ProductName=AMXX-Edit v2 -ProductVersion=2.1.0.0 -Comments= diff --git a/editor/editor2/AMXX_Edit_v2.dpr b/editor/editor2/AMXX_Edit_v2.dpr deleted file mode 100755 index 7129cba4..00000000 --- a/editor/editor2/AMXX_Edit_v2.dpr +++ /dev/null @@ -1,76 +0,0 @@ -program AMXX_Edit_v2; - -{ - AMXX-Edit v2 - - Editor for AMX Mod X scripts, coded by Basic-Master - © by AMX Mod X Development Team - - This application uses the following components: - - DelphiSci: delphisci.sourceforge.net (based on Scintilla library: scintilla.sourceforge.net) - FlatStyle by Maik Porkert (found on www.torry.net) - GlyFX Icons: www.glyfx.com (using GlyFX Icon Pack of Delphi 2005 PE) - Modified CorelButton (see CorelButton.pas, original by ConquerWare) - Indy 9 Socket Components: www.indyproject.org - [JEDI component library, only necersarry for Exception Dialog (jvcl.sourceforge.net)] - - AMXX-Edit v2 is published under GNU General Public License and comes - with ABSOLUTELY NO WARRANTY (see GPL.txt for more information) -} - - -//{$DEFINE EXCEPTION_DEBUG} // Remove comments only when you want to trace exceptions - -uses - Forms, - Windows, - Classes, - SysUtils, - UnitfrmMain in 'UnitfrmMain.pas' {frmMain}, - UnitfrmOptions in 'UnitfrmOptions.pas' {frmSettings}, - UnitfrmDebug in 'UnitfrmDebug.pas' {frmDebug}, - UnitFunc in 'UnitFunc.pas', - UnitfrmAbout in 'UnitfrmAbout.pas' {frmAbout}, - UnitfrmGoToLine in 'UnitfrmGoToLine.pas' {frmGoToLine}, - UnitfrmSaveDialog in 'UnitfrmSaveDialog.pas' {frmSaveDialog}, - UnitTextAnalyze in 'UnitTextAnalyze.pas', - UnitfrmMenuMaker in 'UnitfrmMenuMaker.pas' {frmMenuMaker}, - UnitAddMenu in 'UnitAddMenu.pas', - UnitfrmSelectMenu in 'UnitfrmSelectMenu.pas' {frmSelectMenu}, - UnitHowToMakePlayerMenu in 'UnitHowToMakePlayerMenu.pas' {frmHowToMakePlayerMenu}, - UnitfrmSockets in 'UnitfrmSockets.pas' {frmSocketTerminal}, - UnitReadThread in 'UnitReadThread.pas', - UnitfrmLoopGenerator in 'UnitfrmLoopGenerator.pas' {frmLoopGenerator}, - UnitfrmExceptionHandler in 'UnitfrmExceptionHandler.pas' {ExceptionDialog}; - -{$R *.res} - -var i: integer; -begin - if (FindWindow('TfrmMain', 'AMXX-Edit v2') <> 0) then begin // Don't allow 2 starts... - for i := 1 to ParamCount do begin - if FileExists(ParamStr(i)) then - SendOpen(ParamStr(i)); // ... and send open message to the other app - end; - ShowWindow(FindWindow('TfrmMain', 'AMXX-Edit v2'), SW_SHOW); - SetForegroundWindow(FindWindow('TfrmMain', 'AMXX-Edit v2')); - exit; - end; - Application.Initialize; - Application.Title := 'AMXX-Edit v2'; - Application.CreateForm(TfrmMain, frmMain); - Application.CreateForm(TfrmSettings, frmSettings); - Application.CreateForm(TfrmDebug, frmDebug); - Application.CreateForm(TfrmAbout, frmAbout); - Application.CreateForm(TfrmGoToLine, frmGoToLine); - Application.CreateForm(TfrmSaveDialog, frmSaveDialog); - Application.CreateForm(TfrmMenuMaker, frmMenuMaker); - Application.CreateForm(TfrmSelectMenu, frmSelectMenu); - Application.CreateForm(TfrmHowToMakePlayerMenu, frmHowToMakePlayerMenu); - Application.CreateForm(TfrmSocketTerminal, frmSocketTerminal); - Application.CreateForm(TfrmLoopGenerator, frmLoopGenerator); - Load; - Apply; - Application.Run; -end. diff --git a/editor/editor2/AMXX_Edit_v2.exe b/editor/editor2/AMXX_Edit_v2.exe deleted file mode 100755 index 6382cf168483b11c478b4665d9ec34cbfc61bed3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 626176 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ʣiXf$-X(!(IK% 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

&( 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ȱk2zK#u)-k&H}0cDFC^EuNK0j4OJ|uNoC=N(()Lyqh_=$D#_Gg#vngjmE zeLvVam{3CLAZiDtFx_y{uSmEu;@wfWs^DeDXvsd4x~QZvHs}=}E;J(9ab>U}m_}j` z!qS;-0ZOk;0Igj1*1Xy z{$;5d^v~4Gk=yEhlWQ=Z{(^P?p4^LY#f{*5U;RnA0{_-a=UjxJu_gPUD0Cru_a+)| zhb}#~8jhiZdAO@o>;HieUk8{U~13 zI=L)Amr`duM%w{GdM?7WV-OUy3oJb2v9{ggvZkRCw%y^|#Psa^(kj30W9_x|4Kp!R zzI|*|s}E$ijS_P4&w`c7)xUcc4C#i~llIfB0#Y|nuk<-eyY__Cybg{!ckUKgQ>;P$ z8KSXtI9ysw7Y;A)LoUN%^#CLL&aQ>?V%Qn^9B-fElOzfRxKAaMyc?466J>EPw6pjF z1WTzNaiZ2-H~hRw?s*jeZ>8fP1Uo>5OJKFTMtF^Oh%?8nirgq)&MQqD?HVsOdS2_^vGlFHO!TP!&pW02;uloEyo z01@mnZIsvZbyQLp{w6?sO1p$A#JKn>44}l$41mA>PKQZCaTa9Ikfu*p&XT&+FyNqMn57?o zZm}suKAX zo~}flz+uOO)|LxYLJiwtRqJx~M`v#<@(rS|>K8vjT~i^$7;LIA zjRSl5sg~!HZx?{>qCgmRWfb8sqt#Y^foG07xzIueU^dn7W|p5CpkFbTFemOQ==e}A zW<5HS3N*I}54^UG+Q=jAcfePqImUNzjEpFdjN>UQT4iNEgZOvKI~xOeCPv0*U{6^< zS)HFF3kysYt$?;lyuMds15LcTwNr=1iYW83HL#n_z#BvKmgE{X#m6zweM}3MKPT zhGMCQhP%Oh3rlWWTYdeAhceYhMu|HYKxGcc4K7rvP|$&6Z$AMH$AvT`-c( z*GhjsRVwNhGaEH0l;wF{;(MTt=L>(|t{|p%Aspzl)Ax*YNN@Itc*JK^=2-t!@qa9x zX*iT`8^&id3o~QJzMHYjHW-X0X2aOBGxo7&4K=n>%`o;bmZYc%rJ^WXC}RnwMUo|j zN~I_&m4BPphxhq*e|SDT$8#UYeP7pgp1(6o#C#4f)&{#5S>N%_?Kv-BwSK;){aC>J zn8?L!(9I)(te4x3knJ~uEeVRNSP!d{_5LtKn;Fsn1C9Bx`zH# zlxQcHv=(tZSYh_*cA3xQW7#3*vW0HdHxesG;JP?BcwHqU7*ZQZeib29=+%zO{gm^2 z<61tGHYW#C*LCeHC%TO15gCm5`iLIeY1RCbw3BADuaPy#SY({h3Wo(UUjA z#%FZTl%I5oy0sNJn`7!~E2}kwJd%Tm8c13=zJaxmC`de;+ry}HOi@fBC=Ya<7UrL2 zKh4jvU4z zHC+l2Y4jh3^m#cIn}s>s_3f5VuL%F)I~oTMiey(&b)>zy-d$ZYeleb-iqh|IYUxt) zGO;4ZB^{>)-9Fmt#e?;;LH7if&A|E0nCwP0de&27+#irQ?!F9F%!#!Myb8cd0d z@RW9&S)Kwnog3iIjGQN+gh2G)(;yEyh*q*AFMjd-7M;l5hxO&}*Z#f!I z+rapV{w{ORx!hwzrqfy0t3yi*xx9ae!4v-4bZ0`=1~axp;AW!sc1QkE?SN(?67YDjUv!#E6s##slA96Hq}J3brkG-YD>7 znQ*kTPRchDWFJLYs&>FSZOPHUIxR_|vk6fcAeHIr11r_7a}r6jfEb>U#_2p{z}5{;no{ zGa%sERoSzNLw)90zAJ2#?lHtfAechNorz+HjrbBz zsYAlzj>C@=2l2qcQwBjEQy>touDfy$e=C85!}<=pL`IWBVIh&iVRWA^X4_lgv?)h#foiLl7uNZ3G5xQHM*TnmGgTs zP43F*-8bf2olYKsYNP^kaQPFcqg2xk&QIJ1k1=jN`uYc8|WWj7W zXfqQCDK|L7$d(uMs*WjveYi|-*Vm&2D25t?ZglehupnaLPHpEyl&yvM398D zZS+AiiRP|FuGX>fcXXgETFhpS>8R==F2?j^$jA{F8DAt)<3p(3TC$hs-t;)hk6r!a z_Nv;a-Z1J`V*_sQe_pSm!kVQzy&hkaf95{qxgjp?k%K!+^E%!S5yBoII1#DwUDVr3 zegjgm7=bxB3o|%pM#*|}Owa?qA|nBA7n@K*l}mJ{=u={=g6-9lcv6tJ28L{*Fe}o7 zu+Z0-M#b%;O`V4GQ)IXVBPf&ivTo%Jruvi~2&SF)x9Mno47ZR;hSE$}(f(zb3ah1pU5M8E=DU)qF`2Hq#K~z|SJwvNLwncfoCic9eV?MT8cx2t7(G^dTQr zrc#HW7CdC!>_c23-j+SSCaEpW1GTjO@=hlh?z`K=u%Nto=GSL+H!GVjFdGiPK#t@k zdE>H#0$ML6*7EK6;fj=C1?GFJhj~xctx2EH*T#TzY{ZZf#iji8fTej_&2wDv zUI{C2t$;G%cOKb!ne;edCF43(}awCUiwOiK@hB5%& z@^)E~4O4Qe&550iz&%ey?_9`F92c-h?ssARUma3Z9KI@i!;?4F?XhRVQMo`4+#PMU zeLDuAU&mwwOP(>AHs3$x9*%wGmE0Mm>#q9Ad;J9nix-JmFG1Yo$rH;a{d8m)j>bZn zb3!Lq9SQg9wNQS~SH(|ac+`~>FQ_pBPv1}Wu0dXgM7owC13236%XBSST z6qsQ(+9(mLYK_~kCcoAeF^e|WS7&)Nm-X-+mlc}3|2ev}yS<4b-~OPI`_$gLySzR= z+R)`X-_!NLRMFHaK*1CLyzH6gn5FDLEpnzUoMRyEmMzeIxCG6a%`+eetPj)H`$C7 zr&2At0d88eHunB-s(Wq&OY0PkZ-5W#m z&A5B^@`4nzk<;)-vcELnkS^E$BSN9s_ALfu2*-}~b2mkQY%3QksBzxx`2RSQ^=ohy zo{vISX8)mc;-?9koZk*9Vv8VQ?M3IL*B7DR9}E#B2WSwg!$Yj8hM)Bu;j_y>UCW;B zXZ9*weX3=hP4q!rGft++^_9$7TUB|sAv z)=MaJFqD}vI`p8A?plm{<=Fw-nZo(+vNx;=qyeI}Q_5whBL*>ys=;{garDMdo896UiV6?Z$ zdqlQg&&C&W)~rKp%V){4YX>PG?V z_6KA>+q=ZUzOpv#>DHOh7IKu)xf7p4)@PCaac5?vGNElN#eBI|+!RI=Y z*3K7FfG!-AtWY8< z8WB3mTasmH>Mx}wolp|7iQg7|fFwy|w;cQrwuRLdzdqwl6(?MWQG+Ha`dQmuQU3+^ zCP^Ji!jRLU%aSbbw|)=MmbOEzPZwc|E9o-NRf!U}q&~7v`~id25%3()6_v~C^4pB* zQCEM`kE+)t!;WfF4jw-$B2v~KO-qPN zMxYzwb)YdwzWm;68nLuV>g0iu2eNv#N|w?Tf6y8N`=C-OVz+40wf!J?< zC%PKyE_Bfrp@nFSAaHFYxof-mDqx5^f>srp-?toGmuiTh@3DD*BeEL4mMH%0gnclVpOx z&E5qy9VQKeQYSCDt2g^P)f)@E-uwi#?nwWz{oAN`3t#dZCk8oHR~AJEaq^bVOA)@j zR^L(10M+f@OsB@*)j%h{>07jbZv#ci5ROzCYcFUC+mlB;Q1pED#W2X{l9s%aKv`(d z$lx-jQyjrrlt1~8>Cp%`-6Vub=>Nlk!%>C&oL)+IvkKyatF1_SVbH&9y`!3cEFxZI z3$}^T2r&D|o5-v-w5`r>e0>UD|Afn#{Z&i1d?`oepX!t`CM@rLwGloq7{JS2s4|NS z&mdiq{^c%n1Ct1#wO_oj=$x^|xwmTBf%v9hmc~`jJF4cXz!`>cD>=$O z|KHG8*&hknLj(;HY0aDBaPh1zh2qNM7^dXvIjttD65{a^o{qgZzEYwiHV0|EO@g~Z zt?R}oonPD?+jGif=L<^q;M6$^PQc@iwoZgaa?3A4CD5O@||y=B=M@G+?2kkC8_hPb1`*{x^Zfqkt*8xLFarDtP+1 ztbqnFC*Wg%7-`?h9TCzQAw?(*Htz+C?{hHPhg*A3=w*97LH`^vAg?`UQ4PV$_r|-J zoVBwjRJi+h0r>$WI_U4LLf*rUws6}DDE!aAe^Da8*Wk49-##EZI7{br7(f-MtM%Qi zvD1_mT)*yX81weRb%PU(y+59|1M!tF&<+e3<+u|1N$((it}Hj(E7zUE^PS%TY!#AA z;TF`LG&MQ!l39<$j?qqN3M4;Z2duW)?L-s_Wm|%e4|O^hW555z#_NG@-J=k>jKd3% zM-NWkK*ax7X9*l*2sD3)=pV>?xO-* z)(_~ck)HlUg<6QDNhAerq-Cph)jqHEGyb@yWVWVcc{b{R(Yl8TcxTZ7zY#DlUAB|@ z&U9UFTk7kKIO#3Nr1(?9+(FUOT1T}9#?Dy#X*ZV!vjePzN>Db&?9O~eJ)C(+4*BEMwa?!$FPw8Xe3*~;C8_!!x=$MGD*G?mmX5u$)og~gg%k(%mG z+J(4tEkL*4H?TQKC320+AN_=wC<9LV-jc>!d(-B%6yoPx%OkXHEQgj`_}p3B(Eh(b<+eYTOeZ7c~RZhD*r*=Nns6BvQ4v1 zR%{$3#JV4n!XSp6ajNT03MK@kEqGk{iKAHqzpUNJfSFr@tU%W6C|%jjhKw;9xvO$( z+)X?Eg)GBhlRoV`Q@lh@V&+L8nF(Ov1 ztLX^r^a?HmlvH=|?exMTt=B!24i!xY9?`PB=N5H`%S{$LEj?XWJPWjQE&?L4fJpw} z=snFx0s-Gs#7ytk7wK=s`()BNN38dNAhge%{|GUNGoYbkPv5FpiG<89tU2Ce!S(>J zUOW`hd^TcJP5?X-oxU^ zrVHpIasNY3*a$%h?$b=d;8!f?7#T15=SPYZT+zt_>)h{5E!1l5ieUhLV`T`vR)54p z=uv||+gqx>h@Izp?%m(W755+Ii844+pQ`l3M21#&I*g=#Qr`%O{cDd4QE}NFB+dzQ zVy(1A|5#X~bLCUp#{sh%->t4A7M9+q&k~-QuQdrLgNE`n$J{iPF_}YFF|WTLCFZ0X zw`h~Z81cVJ7#Nrms1s4S3GXwV_RLvOt}DeQFMR*xChvnTSq^*Sr^zeT zafA-wz%DSqg8jNzN|NSVG-&V19>&jy$sc~d8c%gx`eFM?G{-{>#Qx0sMp0$I4LueA zS<*jwA^?AP=bSSjO=91*7{u$rb8j@GL;tz@QX-l&+v4GQ#(EK6yS-=$l*RD}uN~d~ z&O2lu{fAA;-P2waiGR#Y76wAEKhc1>C;xa0qr73(-F^NV2Q4s|pFTV8;CgElj5RWP)~8Sjf{=SXYDsYv;J*3AOoyi0!lCOwMSp6#U6f{zS* zEo@PnVN+MhU4x6A@K6}q1Nl>NcRgjO0uz;{e^4QZVD{jJ>VMQ~Gv^=nIhZ8GMLaOn zjHMpR6xU4Lnu>mP_dR)Ah<(lwjNSgAzqJ90URLc)foH$jkwG3M=QaK!l>NK$|N-p4N4OKvl+f`a%Jl&bJ4PV--Mn_1e|z4Mw2GmM}-%u2ia`a zfGH&UctcS+WD%OYGT;@^rZ~B(q1Ks2xbu^9%;LR*S~~Jh&EAq-3(<&TAk7>gRaR6E z$-+5uY9g;gZ3gMwZT51cva#nBPuL+0AU-9#pn)OtlN{h|H(cbX&1u zs>(`K^?Qs0^&)&{dkC2h`}J4rkXBeS+o^cu^#z@4bHkAma-S6~*YXm^JH@q8>Jh9f@#ScR30COf z$*u?`)7edlE>~a!=26tP`5KG6F><&wcx?Ih>#G zl4D=L)C@W%CWjOFQWgh)Wa`-5CHcxD0cImf&PTnBoe9E6at71~^21f#jJut`maIw< z$6TX^TUkehEjv{;fRUS;C;IQ|Zno`;;ECoddK%JNTZB2*lG2|wCEsiT#!0bWuXXuP zGVrtuPsROuPoSpewqq~D14g~SdjP4Tfni@COF)+R0 zsJ4V#&q>D4)MV~{IpHl^)zez0f8!iN$C8JSnn}BPlEt4sic+317iWBNn~S?e=qWB$ z+oRfg8?Tcz(-ANAH@E|WA`CeVE!;;=$;_WK8FqR~xp-PgCj0>HTFh;+5VvSmrROM* zniFkX2A;`VIy0|iZ>=P_foG^5y4wYxcz^shb)G(@KEw6NlssB#LT*6f-%2!T{=5AB zWgYRZ+CXvAFkrSVrZF%_{Z)~o^LHKhO$J0K^}M5{p2hRnwkP^BA>g<{d~0;OwEl$rEe^ui7WwiFMYYv|m^-fyOSgoz&x;i)t`3X0!G|{NpJ|i#q`Un2 zWRGx^%e|9zsuX(_``C3y7-b}hlT?Hls<;*H#~JY7uQIkJMAWK5W(Wo-ZS{BIBA92Ls&g)u4t z=6m*~3$FPSbcSNK!*wRT@8+MV2#Fd2T?q);7M4}X*p#R6tu!|ot8h8Ptji%(1;AGs zkwyevRSJ?*iltN;tH|b4G_sBcduzBgk7!0LgwZ z9(W&`p)2KkW153zQ;nXns-KGo`L~TfK+{bp)>IZGc^IldGG6X{X6|b9mq|a``5Zxr zlUoE+snYRvgvsH|Z?ebqXh{FeHDrRYG7HXQGCE^Vd)(h;@H{h8SGenU!}RpOBFY)v zoAPjme{F92jx@pz#6S!1S0}Z$Wv-#eB>8(h@a+;`24NyMfpvc}{Uo~ONEgOzFn4RW z9R*wRz2oS}jrcI46p@Mj18>&S3frMZ>K>bzffkc@W|weED45b=A~q&boUR}ex9p?v zt7^^6^|5?ZYl}wS5xMG%{Nh%+f2^!<{)6W}A`ky7s0gjTXx)L6n20wKhl8scXN2j= zW`la*S2&3$D7N9YP+>4@^ix`jh?m|+2f5Tym?x$v=LON1U?4Ku$c>RT)u%2n@<`KU zC@u=spZ7cg3USX{7UD--yyESM*Lpg(c3tJQUXMBK9}pBeaHZFOBrxZX&NjA&O1{x} zst%<9wM*!H%<(;VQ18X&5QP4*jWlM@dz5sL>q!9wdS%Cy!Ck#~`Hw)1d zySPDWFa}Ip?&>}YMxR8ya+iZ*&>+K zo{#uaw+WD8Yx)JLJ*sFSK3@SoHyDXdbyzL7H8p`dOM!h)1!|>NF09K#f1S8wZEZ^i7T`COX=G+5bCkkJxz{o{RB{)aGPKVSSd7ZK zLo7CfXkb9J7rKBTjMx#4^z3CV&?*=NC~HzFOe{*0pDsVD$%Ey`NiBR#!A+sUVJ4ik z@Qo1WRw)5CM6+N!%38pH6=v=e5nkX1+XZ#|2{Qx#J=YbnXys9|4hH#iVlh8QPTW7R zQc5GynmIh&_3zmD4yjfcBt=nz0rs+$1B*5^SSnh!`bHNNN3_ss&+I?i9V?6ZWRohP z%CMIy+-HN^YX_NT8DP4(XK4H*JP>50;9M*ihq0T?R5Su!mCr*VrMQwUx~Vx~N#2+c zEMqy{v!>tu(s4n|IzLnzn3~oK^oW4xy%zcPJ|@7jwdKQmC?Pr8&OD#@uyQMcuGZI# zq<{PVT0V`A7qZT4s0V#7Y*-_Nw+ED0 z(CNF;k<^a}mbDns!*Mz(Fo&&D?1kUQw#CoQPMAKDcq#{^UHG}rFNMdAkefT>E__DM zy~75bc`k=4#aq0+GKebkcx!eiYbd=k3F~Q>D-&*^u&3%{8Y8{U_Tp^?y@%sDA>AFTI(+A3n;R0o`)JOHv*?K=!ti6!I-R>? z$j9_G*KVTpSLBV)bh@K@X)T>E&8QVNZM?MK#LiiwT0n_4fv0tnfN|2h%$ljr+aJZS z*Kg>yd`4~CwOoHEoP9V6@H#0;h`||t{1BGo?KYREWi}pZ9e@!>`t6!Q*W}ca*3=Y9 zXMD4p`R=r968e5m<)m5-CO#3qH zrObpkGz}OQ+c6D*b_eWJC7NvF581h`K{akWId4QPIB;0R?UD#q=brH*{wE1%h*t4K>!ijN+;X zH*2IvAXPv16JwoOl4lQ&ANCxDUn)2?z<#5Qs9i%xryxKTvoaY`EBvzkC7J1&rCd@( zdgf2K@NFRs7x{BgXoUKvOfibnvx;#QIV<%DflFc>j#talxhinMryu&)OFL10-}-TM zx$X5%@-pf{N|!7mCLF7gJ(M%*ELBn76f4=rxr8G0Xjj~jjN7ASCc*W&<|J4@Zm1m` zW-s&fj+^{hLJ}6T&#$#uyJu?Z>#Dh_j}S#b6um)Pllm+5OCEn>3Vvy);7Zrxz-y^O zFN>WbQ`~N^+>I)n=bwW;p$JTl(gw>k?O6H=`B2qP5_%T8N%+f1-)$&tsJj4noa#OkJo#CvR{Z zBpZ6xc)aKy$A0)68~7BcBE};({Z`CA@WKpuN$ZMFd%u5%1Bi}{y&1KAhkEY}hz7>Jl5>)!Ih+==0PVtdL=>z50m%v-Sm|{i zxrRCizu2nAr`M{Fj^_lfZz--X&raI~ZcDa-Rq3YZfa7C&VkoONYpmHkqES746K57h zG~thQwin+lo(#IhsKv=b`hs~tZ0(-s9nXxOr>Ho%1w9dv*BJL*9vtgk*o;_pay_4h6MZzg$<@bKHdIJoE}^nvNP!9Fp! zKw~iNL1n?{TDlKHW|%Pll+oUwp{=sT5@I_iXY9A_6-^*|n@_JPdUJ(Bdwc%i@IsFV z6LOE6C~sK-hJM88G1joO1u8aDLpCVAG}~BI$13oe|Bn9bYsq=V#4w42;_;ITsU#K~^vB*HRDs{h${tyBY)n zqG68;eFr>6?*T9BS-4pSpC&X0Th4V8@U>!O+UR4hB-sD`N)@s}2AQN8DyCmNDg#eP zS9M?;iCo&C)u(0O`!6n-r0V?6wE4tVjCe4>)=`W{F5?@Kx|I4zX2vLaD(E>rdcNSq z$WT48@$%Uq`)uU^Ft0U>bF}wv&Ze49f_opSb*@(H*h^uCOH> zKW^rFDZ)`-Rno~G|Dfx0%Kbvo#~Mof_dl(y3Tc*yWrn0bNM|1j{)B6KyegL8%R%02 z%?OLeU;=!t7%Yx+2dYuR_*9YyIUV#Awv=BMYtmXTcac4x|kGVzD$6#Qq2 zO3cqu|BL6Yk^fWM7!lHt-csF;S_}5PMd$lR7Y&syFleUA?&qaJ761oVfyP}Gi-Lt)Qi>SsO{dF$R^iuxj)0@EEWL)uB9d13MIZ889 zst1@Zt!=rwp*0Uvk_%bGKYON#Pbz;SF}@b{@I#^m=v}(kgY*f1V zN<3^i!lzby9qSO%4m{0Ma74KuTLHn(?}7b+3)R++770e9WX_N3!6c%Eg%nf5n`M$U zgg=o^(I443lyRKg#3Dco$5m4FE&G_56b<~#tfUu2Rg9aAT9bNbPPVcHoo+uYnIx+X z-*1S?%GMtqQyH>wnnq0fp^6MIxf2|V?L-VV;9FWvlhp=JDhn1!v4fiJkPaE~m9sAL z+nrKysU$x|yFo_C2VHR88?|LoP+@s0gmT zTC<|CsbD=23`~WTft?hUBx(yI_xzCxao3YgyaDpF%^9l8J*@&_8s9W@ic#qh1xJkP zr!m7eH*>Vby?;eD{i0VXLoR;@VE*dkgJ4IEZS`=mSec%`^{V6_G!YzInj_MS;U_w; z*F>1y!Gj(#t4FoI_1Qr!Uvxk0^B<%x5}wyP#Qj0~RIk){yU=bn47uO>HglO1`9f%>q| zsmO6$l)T4n7J`Wq2h0%km9*S|3UUQr<36c~Fd?t>0DG~vZ2!aD*AdyjRC%{$N-T!h zWE1JziZ088%c$@6JLgSj^tCgFF2IKy$V|EFh$vG);^B>N+z~&V=R5$md76Ge^{+!8 zcP#eluL2mLZS{@ZZ_vUOIe#IUpW{PYIwJZ2u>AsOePZa>lt~9X0G1S=Y7ad`@w^%V zYhx0`MnTg*{&4^cYCA9_Kn;2;f=?y`RWZ;Eij*Y{GnDdNK}3>3YTW-LaYOWTcFt!R z&w?Ce_-KxJ{W>)NxZ=UNkfKjw-m-fh$Ts>}YETzGSXG+`1#5$T7N5+VXYY!4y1`ey z1y)A-3xdXLphPW6DU+^-8Pn5WoF}F$oR8dl-<_R5=99u{Za$m?K znRA4a+ax!W2L3A#4{m!jYPf+);;J=0`Mx16Bg<6Tt06ept^Yo%J~1DsIL4^alCW%r zD{v;?n^LvJ+X8CdUww6X31I2QILG8493RIRFzAfsas?wgBYDvv-x-GQw@m9sD;QA4 zHxcy;L}o71`$jhbD|8h9&-llWA65EJ&VEL2HH3dVj)VVA07L28| zr4nG8&@6gmQfwcAORuAjO4$V~CC&LHf_+N=@qgeARzK+du>JShCo;T4b8c;q>S;S9 zX=<;MWWCuQnvr80@2wioF1rzIV#y5Pae;&_SgzmU-Pw%)4mSP6P+K~oQn*bG_GI(3 z?w|nSz3GFkW)WP6895wpn;)y{Z=CmBTr|%R89;5WFTt~zqdoKE*YXNn^wY?M1lEV^ z2|l|r3Gc!TgvsVX_(*_4hkVYvtMt=jqDDu}e#JMiM!eSa6_EugTNHlcy(SP#h*H-P z$oco1wlRnp%>+xXm#wChMgc&>jywCN$hoYpQRSGT487#MvsMO*7;8k$TIld7KnQ}E!Lm|mMX?z?>!#a&qCjovc!LW7-K7>uj^bytVLcuJ}YP*~|d7o@`WCvEW)qWNuW z(n9)$s|UsZE+vzDo8sSFB(jl8NjLB0BSy(yaGBL8%B^}xGzDu0va1G|$?d0QVpM4Rr7yGDPZ+OQPgs*1mWQ>^MZTbTUaS$}6bhI`2{t#!D=`$ey$!jE5}f z*k^VX3L?{^<<}AZr0C;wNQh9~BRp&cXGgvY=?InNn@UbPMDLko{{6-^0ZxMd5x|wP}0=z>{ zvP4kc8q_I}alPq9$>=-q`H9yS+OLrE_nyQB#_*(74}SG~P5fa89oiS?ngbC7=47%n zsdk>nPXkkMdm9A-ZcRBJCn=CZTRO(L9w>ELe&#SO#8_pv(B<3n#M`*2ds~lGigQPq z$KCXym$cTHgM*j-Ryi1Tl~QfUT!-zTp2#nmdt4T_lM4<{*cy}ZUbdtn)%6eoM}oAr z9;({OK&~6NQjCp=#_SKN_V5^@VaoQNqlr+AxZd_e(UONox~oTb0aVL>NwscXq+Vy& zr!Vy*OX)DAV3$kYCG;4x$r|UEZ@!g@3NJfhtPYW$<#Rj^fnUJz=D6b^;}_LB)w=NZ zA*(Z5E|%**4w}ryi=BFLbv0fLkwNnAFeE-HS-)l(0B$&bMLV*ZUI2~38@_viR8=?q z*Q$Lv{tRR=u+~58Gk{m1?DMpvzVP;9kam_5wH|j$LQEYNLESAC0!IKwbHDyuc9hR% z7O%*&WWGM{Gk-+jyyySC93s_nuimzfvuK=F|1q6-*XO?Tl9LZa1&n`ClJ!nr zamM9xtg_qPzo)Z8X5X+3?U1T=+)R$$`AG~$C9G5^S8XIJNE!24t$7$T=;E;9UD$K{ zeP!!X&`2`KlnuY$zkJ4ukP1ck|#&HgV0P(dpnKCC97*m7=J4D zVAj-yahF}8(kVq3ze#+ZtMU)q>$*_RdbXOdh&O+zSWTf9b!kSnalIEUJG({(XVet@ zh~==IAUJ7DK32{QHhQ9i7*+Z^uF=c>)Y@G~72XJWR$TtD_Y>2`?@1)HP2W?6fux=K zJBHFgo@0|H>kN0te$9*XTO-BQ)6^Gn-sR>oLvNkorO@KB_6d1TCh1?FXvgr@Emf-(Qo4qgn=*K;HWa07e|#dxrBZ?$l6aR#z#NSEfgdd8DqH@}+-n90cLVlg z93~b`0Qeodx9COPtE zeAjlBDOzxnlvESr5_g6ePtcdqJ+SidhDoaynxnQ4Q;Tbf^M6WIAj+U4B(8l!sW?M? zwe~W4U&fwU-Ak)qM&C*p7GLi<&Kz%I<%k7!cRFqO8YCtclwaHE2cAk0Y#ut&LkQ%p zNM`4&v!0KArmKBaGUl@Cpv}ya4P_N+3)VQmTM}+LzIU0m33`;&a0M+O08w59lUVWg z3W(DA~DcqxpU7h@P-ZjoH*6t4J3_;;UY8`QE1WFt5lEjST`)sPzmS0@yj5M)ix+4Oe5O_# zoo-CI4HUi{bC}aX^9$2rESo}_o7@I(X4NnC|AQ+*TU4}}##YvFGeq{;7<*05q#X1~ zT!Tb2*l8E|d&ecz;g3G#pxQFoYZ&Q}o4XyI>!}P9^n&(Wc9?9 zm17p~PQW}95+kEW33K{r7`_Q2_nb)9cAK$M=u(z1PrZjASrdh6gQ&=lUeU$5Q0~;} z=6ERNWO#CExR%Rvms1KSc(z48X4z3}vOY3@P8Xa;8!=6OpG1VGeeK-Hd5?9mk4e~y zkP1y#`PCkd3V~3hLH>O|WT?t>rvIP{*zGG5zFG+k;s0<@<+gZ6#K~w>R7XOkS5-m; z8iQwxwE`7p^966}_xBuRr2asGlz&*Yt@rh-JbQklv-(Cq)Qw%KwB;{h2-g~-9Co5* z?RDl?!Aw5dy}iLXsHm>ntTdQUE|gZySAELJLrwL2-Dc1Zm+eDlY7}VEkdyL-Z85Hu zKMZ=Q(fpins9&@Tn{NdTJs=Yi3J(#+RB6MlOolWrq#UA3Be9e@)4Pf&3jR=9gZkk= zRM9c`C?ZfQ!68_UCW;yuXs8rr)i95&sS}nooNt9AlB}UeBYcL?wcDpu$)ex&tj*ctf5))8;!1?Ea6k*wi5);*dpaW1z z$JyWL@t<1s^HAg=AfHdx$6ajn1=~KsA-mtgtn`JG68BGCgTDxnpkl-u^~e)ZT6mD0N^beA9~4j zcmLn+6mvWHdG4>wm;W+^#cv}e6Hir_FUedY*lI|0BCq=#V1=HCG*J3%ul!dSr|}6wi>0Vtbc~G`JH^^Yq>KNF{GW6FiK;=>xBDbK?z(W zA^#qv9y)k{g==4UG1dOFaXuGfhjC9y&M1p%k5q)mjr0lYzGvj3LAk|lX4zN~>~ZpE zFJBk@ViQOV3rOdwG>xsM{(PZ7d3e1&XFE4ogB93z8&Y&8LD(hT@A(|FtiGxStQjk| zqh){S6Y!Fz0wd2s**Zhr&*j=StcUDQ&jNH@$t_s2^1!XTp}k&-`#g=OZwYKen9Bjv7BGR01j+kkD-Dx10>QD8Nw z{87!4WaO*;*lfi%{I6<=ev!5ryp8S*5@CFd(ZV^He*1e9u7&%tTjPNyCRg5F-MLru zPIB3-5z+)BjL%)1xag;kyj1&#(9D=8-ZbH$wJt;Rkyn;3&PP=ft|~!0GFzlywEpKG zr~jb;TJCM=9UJ2Hs@9B}sOTbTW+pVgqIu%&jhIbLrA!;Yvn}r30qS(Z4mSJTdldP>*PRo98UxD}?1bAr9FQ!?$x33<&PfMr`{&dE0R zJ4^(7htYR)9x-Ef^Yls848NDR++KwG$G&}}WEG<4lM$5Em6iVjk$X;E{ zCWr8sEg@)KPCV#(98IpM1{yH#+3M`v_(?xvI!peg%S$B|E)KqTz)3;v;awH&o>gYo zJ`poT!vybpw5j0AbuYRSK(d|ODDy=AyWKsEvOn&-50a-0$9o}BJmtAcL#f zH<5uj2lpZWZem%P~>sArYR^<>T-8Fn0h@x!AJ##B&A`i*^;1_l0XyL?xj zpz7rzA%{ay1UNf8NcU|BRLR9PH7yOP%{cHPCw^v|ub0PZAlGK(5}~x12%0$h7#lUSSK9q-E4IjqE3hh z2;sZG8F6RGBBvsn^doEu2PG6p|*qr)g?eOQB}&IEj68xYgNiH>02iC zy|I4yIt%*H^d$MM=|&djLa<6FcuHf%Y^7vHSgQ3Qk(5PEX&gMGhW;SO0Vj@pSoB@* zwG-ER@Tb+>4!oyEGS;L1DI_OY`bK@K&N1Cei^0bKm`%^1%*oJQAGBqRlZ47a7J!M? z;fqnG_S^D0^;s&YQs8N)C1$twryehn%xy~FPU&fgtzJ5>7RC7Ws(}~zF=@&%vV;J5w zIzmrXg!V*-`mZz2NK?5}V-+*17BsNpR!xM$ZY}B zjA>Jko^$*OWc$rj54sAJ+e{Fjb=#=%Ae)*2k+!=NU7&xZw|CNqFF{Eo{O&qG(}=s7 zf8H$*nX%$3&Nz!E7(SzEE>}-lO=9xIs`t3DEjsIwboP+$#vC zA(nsOx~@O`Q%!(k1jXqY0yrCv%U zQ#77u!fCfgBlLYYCl^=C_|yK^Az6BArvlspc1fz&S8T_xlAe?11ad%gD0E+y4rpoF z*-h{aH!SLP!ru$CPljJHKna7n!ue4!^($Jh405sV_1j$68bMHlO@jjQOIdsAp1rZ_ z>NpOhQ{Y6nqam82i%NMi@@ZRGij7nM>?Tbj-?okTQ>t=qNV_R=qkgkiypnZe@UpU>2uRRhc^F_n_<_fJewc>@@boH{p)IhH>G|n!RVZPd37RsyS+(40Jzhh!4r7 zNJy~v+~Ks;B!17AbkkQ$Xa32&X8!Px(!WGk&u+6JKBWF-2(zUw3>Kq1p@{s9Z-Xa?x6y&BmNQ?tWjn zjoG^nd5CO&(`?J)2}DAA%?4W}dXA_$h}*qsEWP`FCs|2zX2x8Cei;@1UI_l&NyK3hRuUmw5Ur>6Gf zDG(mY33m`egp!>E)toOmy@O1f*m}KwmA!*4Bwz9yv-vN_e&W`PF4v%V1VPcz-1-G% z)3nHRpP3>9kCkbW@U-Y--u;0*>t^E16W6HgeO}^p$q4Lu3+o>%U=E%}u@)2`cll8y z1^tKU`wQ5sKPXm1P;soR$Y~Vl)_XKnboFu8PHzqgs9!!1XXPRzV;DCO%@itEw2xoN z7@id{e;sqg$L(*Xk|y%YXny3ENZuIO>Kj|heMhR=^<_c}-$d{skfh29ewlW_Lp&IOzG^DUkndGMAGZax+p&S520yT8mlZ(qvynN%9W2v-;9n|WLoZgu0tmO^7F36&r|>mD+IFV85) z8P0bz7vX|RO8{M>e7leCUx<<^p2WQUeoJRlsPHFG&ypk{>Gc*cMKM2uBCGf$`8nKt zD&U}>X|s?ZU@%?N5#AF0P2=Q&Qq={s1ZTOySbjS|Abo<7Kj7&ihI>E@! z`qD!Kpij~0&h(2gng-b0$*&Q<#al%*?0mv&B%O@8+8}3B4!i$i8xEWr>D|6pvJFNMJ z8!WaUw*lv_CfAV|7KxYCD7dcl*+nv(Dy~pGCJO)g|JFd-O$fKb(q zGu})wFW_JPM6v+qq2je5w#Vv)(#wW?s&uhjetR=92uDj`~e7# zvGPLYfimyAmC}bz^O(xDqh))fC0XAW*&>;buo+{2bYP2Wy_s(e&XQ$HySoc953#ay zfO}v`(4oQ=Wm`!gUeIo0Wet0IVVzf|Ch z7LehlapH-{^pKdYo(_oL31_3F!aLx6X{TuOi@k2N(Ek?ZrU%?1S@qKlSX z6nMg=UCuO((g;vf7=e-?s`wUA;`p6hkz>NDX%QB1S8T3%G*Dc2Hd13}X6&{I5|th2 zda)cJ0_b~;0ICK&b8!!HC<00wGO!4z0*8C%SM}b|)mAYi|EmP;cPj9w{_CzPu*@4Z z0iq2<5I~xVdUWRB=8Yo=u-)0owmKd6Cyqjms{?A-NhI7NM;P+7q||D!I<99g>TA-X z;`~)2M2u}qfdFA-5fe5+s^7URh&3yHX0)vU;95k*_{~CMUF+R8_=R-Y_gt^Q-2k=7 zD7*qVo}yh>Lu!<|nEhb*Mp{OyI|7Y33d&MTHdUl+vEenUPlRRpg{^N`E;q&RU=TH; z*%EQWWmLxq1;kNkwda#p(nv_P!*c3V(aw!5dE4X!+5!y{zp>_7Jv$A>EAw|dERWn) z_b;;(Qc}CJl*9{gj7N-usyJ|bg(G}cQ%#U|!Zcgl^ZOT}k+!&!IFTP#TW@A_0hJ>( zF*$H^WzXu%KlLpRq@xB6oxv(itd|=12^dNnT&|-2+yuf7q7Y!*4h+P2J@$|)i=K$Y zqV8$qNWnJA-o?Jv|4|FQ;qJYjA-_d;#Ek7kceQ9%bmII)>!sj}aFuwt*=U-fjK&uX zB6;hrC73U-Bf;0};>uf(T<`8N$7Dzk!tm*27P$angxS2DCDU`XEHyNlm}As&+P@be zWEM_voiEI|(y*WA9y|yw7q2n;Z(}hpPPFs_2657@$^hpGl0VyjhxA5%%|x@>k&K$r zDyi5U{pT2>tj7M*X8=H$$bE0uHWs|aVUOWWAGgXs2VFd5o=$}NS{_$E(+8R3Une98 zK}afTT||Eey17)zrTy}+-avjm(13U0S?`@;hqX@f7Atm^*m>zcA4uMcTDyrK$e9xe? zfj)P{#SJB$DkIT~B!~{cP3(5Rh+E`O$n7tw@h`m5GmubEP5{GTe1sfP^}&Spqu3(D zb~?H`!6oq(>PuxZKo(@;VutFec3=Ha)^}5IqQpat4oFGJUxR0u@ z;fI|3O);Iwe@;%Sf!n_YayLfw@T!zZnY`L`Lsk9lG6=K~I-jZp)qJ^~b=&!?i9D0N z7rwj}`rgna(Qg-)8 zhB=llTDNzi7|N_we)pi|@ux<3KuZngjiAmoRpdso^M92zk+yyk@QQc~%W0>kE>q<- zXt3ZgLhRIZw60EIcQT)ho=S$3wgDPb^p?{Xi<;IGclT?&V^W=&4z89pXQLWB|A!dM zPy--WHJ_V#OY4Hk%US^IONfjB_oBc$q9N`9MNR*lN^j7b#ICI@{@>v<#Nf!XI+yz9 zLDh2#ms1M3G-!L}czTxL6Rd!)A^H>e!yTG*NLR%>xn3@Er6tb${HhfIBl#tJy_QTG z2)mbY|FqvWDh%-vAtyYC@@pc47lgRnr*SH;Y5*;p2pNygyLN7=#l<|+fc~o;#aw%w zWNVaVi$$zVUxUVUY9{!ro1ioax&r{?+Hez5zw-Ftfp~x4)I<4q2c3l2uTm=T_>WSPnmPKlddD5GNt4(e>YRQ`_wB{CE3HmJ<`j=he=x zEFd$hWF^hg30Ac+QC?C}WtnH7Kx@@NMNz)y7&jRup*mZmt-Az%rLvwT^#{|t$29$t z&FKpV`=?@;wK5*ZiBI}zZ>w%@6+TNBE<5+buIPbVlt)G^<*eC-TZ0FH7tO_uTI2dLCh2qZp_SWTynaJqFWDrOt^By3wIt)Y#m1Fs8BB=e1zu`5{zUB zFTQ&ve2`1Aw=o77hQv6Iosk}kpD#&(Xc;>i&UC!IMv)u`n6m}S8oCKP#;{q+IS5_p zT)2OI^YGCw*{p!c&OmrfG+tpM21~b%?tB$hZ^KD{71g7==zO-pc6xxO)%()4B&O~- z8gfBY52nE22xJ?8In)6S05Q`@N%i!D5)E~W$ir+F233`xl9iprrzSd5Q?z4^ibV9} zIi8TfssgAfq9s$8uHIX~nC)D+MH33+^g0VJeDSQ)X}4PRdsQR_fPwwPdR1GtlfrCY zJ`v6l1p!KRxlIIY;T7XvwNHk(_*<0yxeDPp$?(aAzgUZ#AEzzO1a9>vG=FBERTVa;k+SOSUUR+^ zEiiP2gPIE=c)EPb67SZqMSyeFTGCR*C~z>0TI}Buh~KS&k*wnf3xm3o-w1S+gb&a(4$c<4GvhTBO|3FmceFs z#IC%&lV5(A=Bkq@1ZZ)>Xx(~4GmI8YAs2~{!92+o`F`~L7kPVG`=b>A7O)xe4Lqk9}6 zQ{D>`9?aejZRa@Gc2(~j<_J>0D({&r4F4TN=ujEZ_uRoH6xWb63y&j)b7!826%FNx zogn&o?-aeunVW8tM%wLM`IVlRXa@cBto-~fT0{x~hcA|$EH>nak6{91vw3M40{Gi#o zRJ4vezYKjc?IYm$SduBj`RLsFHP;QLZ?ixQ_g{+ES|d7U77|C4JBN8vutLexTAeh_ zbXibJ2}C>3h=_jXYn2ms8O^w*x{~VIRm>6Yo35 z!xJQcU(*WU=GZ{ywx@GU`DBFXBTB3V#w#a*CrAKezDfm6uES>g1TzZ^3hiHzITlxJ zvBJM3ZnOz8#UqDkp=F)?=b<7eKA4vO>KS5ZD@h>ZuKT}-N0Dhknh`n31$gV&;T6bn zz1?#}-t&@T;rbU?X{-~@LTty3O)Yq?Pv0#*B{MvxW?^71Xa@jw5H>~ij%Enu`LVT` zEcq8avA2gz`HsKJm(VFqg`B~O#<+T=jDd|juIG%ji5gNCqB(YVT|mkBnDG&8%cO~R zAEh+$k&j%TAj$OFIM6On)=|H8JifvVbsC?ehl^ZcjzfPX2K6l(xPAEK<4fUO%0?$e z7tY;~6o6kdv8v=+y$tfDzcw&=ct7jkXpl$g&7o}7ij`qS6=6*8fvU>Jd>#%gBq}#5 zAi>QfUp%3_9NTuOiz{^i_Ca;$7eD``A#J`Qe-%v?zI2XEOqWcm*%ajCW;#t0gn3U$ z5tF6bd_B-!S0xW49(C0Akx18Nn`3%>{3yT5-}ZTDdU3jAxo&4nteXJs87(w|^Tq`{e*b{y--mZ`Nz zCC+~Co-GN$Kfxk0(GHJ1k8goY%-a4~sw~hQvxx=>gO`;XSi!wvx`#A(N8b)3fhL}< z=VioN77g8yS(!ySfd$0d#kfo%gy9cJGq!A3x53Sr#)`ZHa7K2Q0otdcYPN6xmXPJw z^@km&Q@+|}`as>;KUe`RiH^eubSbl7un3F_?3D6YNS8ZD;~jh6u2lB@g$N+(0VlwW zCv7a8rme|(b@s;f>^e7?SNI`LNXm`8p5QMHM6LKKWr3gn&xoZ`-^eE)A6mnMQx+)V$##WDE1H|LJ^grtLYqJ6+WtjA}Ym+wzy0bpk_0E|ziocMyE zQ@1vs-=bCQd&gnYl&2pM;4EJ||E)`)ryjz&31<;8pR&|x-J&garGsZd%)$S`PC0qL zV;)2*j8T=IX^aj?f0lgZ2cC8_liDQs=e)7*259tzf;V@aq!cggWfGfy^oiu$Fo*p% z!;dFFBryVMBJGiPHJ@lc$bC#R%ar<+#zi@skH>8t#YNlmBqIC~ zA%LlAWc&Y2bI0>?w1nK7cT;V=m`GIKO?BA=gE5O1Ddyw$e$lQm;ou3dnV5+n^*T0G zw?q?e7UlfgdMCb;0?2{Y-<5coFaZJjqWHc>yo(o_m7Bg|%uAKyiX?o5R2z-_Al8$v zmuC2ziDS-bMD?sfkjfFcQkGBaAL+t@yu$Hr55bWVo@W79TKS^*^sx1^NA=uW#qSG7 zs!8)ZjwO&kAn9y!4yiorVfBJL84SC$wrDE|m0;7V4=_HtfI;lGnj{36@Q4JTh{znq z^28&-{=jLJR8&T%6YN+R5H11#@m~9_2*g9~?)hVf>w@U>2KG$}q!iVe@_!S4+tMVpJNf*gjbln9hk(-j zjvpiG^Dsr2vbd)H+eo0XR|{suXY=ONQG=`mHO+qUDlgZu4(Q~$M2-k(K{|w!0}0Qi zq!h!DKp*ENvn)UuU5{$W2Z@=D&3Bli>1*~}f) z6K{l@uHP{m*b|ceRX|U;ZT60i1u@a-S5Sh-+W(<5i1k*-k&%NdS2f2p2XbqYWu}%T z-jdWf4-~r-m?!UDcO}!x(T@$LvcJFf#*ZZj)s+b6DC-Bew{ft-rR0E!-An(QckG?e z)}A6`TZ+%wy~^rlW&D1)4GEZql0+C7BFe$)D0fJ?((e^7Q_TFg1fw7%44vx}>0Gs9 zd4?+YbUGLcUl*BZ%bko>PmI~ZOX@i}@dOBpY+Q4|Nyw8Lg{-HC9uf16x(9;L-fD{U zbq|f9bj|yf)mOUd9^GOIpb)tlz4H@SQzYAtDK1boTj!(_5SF8H&1NZ6qd4v(7eJe% zt39FIcHhG)bF_^M->)&!aEGg0eP$Nx)@mMmH;wOAnu9q#bRYF3}!ezo6kL4#(M*dL4 zHcJBd`6?pdZ5lFSH%{t`2>zpvyLs;Mn-F=^QPKU`2qmhAd@eH74bJMj*DT7s%^az_!-Jb357sT}roWNNlT>*MGD%eNIu@SaH6iR9}Bo#Jgwqa_*~O@8|h)>Gs5{okV!X1_I7hn4{*|EYwG4o$Jh=A${K z)LwuVyd)B+IGOP<56dTm3Fia>zp4f3-Ku+3U7T6&)PG7Ts%2k6NJ*D!EuiswTF9qa zF{fSS1Mr9msE%Ti4>H5Ot2Mj%TKo$PpbXvH`xIBZF|lK)Le&%8nyI#=|7XPGqT9?(PR*=7827IiJyB zec>mtQfuqLEbpJ(@eaXGhxKR9j2EFonv{cZvk*Q#r=eG<`Sl!b+fL9c216~PMzfyc zKPc^V<*g>*(dE0n)4DvO$5=t`V(^Zju#r=>F2p+61C_6KZjH3}y}fE)?E~0O1Qpsp zZwSyqvoIu0;WkJ?2+$V;xl_?+{1kRW6|a;x&Zklb!g{p?QZj7F$(OOf1)HLcbmq)S zpY&xCNK)+ zEVx0-k(0!F1{)YdtU#PFVtEasCdeK{^s4r(My|1}Sn$gWyEn?c_!w^(wV@lScd7s} z5zBCZe1_*tfTfNtGnOy%7RZ{Fe+IFp_)zOXQs5np#_$I~pFmZVsI`+qh-HmyJPrZg zQB+LAlyL!c*#%q~Z!b57k~p8|c3) zk&283%*RC6mGXNf%%U!XC~knMOmi!9+!LZ_#r(?2YvI-}70 z!ofg$4Y{L%A&u)GU?TBBKd53wZx+1wA)jM5??r5)Lbe5d}}tbf+NV z>E;ecp10b=o;+(7A(p+R3PQR9k-DWVrEn>tN>*s5uQB)0}wv+mdYrR32n`eenpSUjl zc*Xs&5jwQW?0;{iRJwW_2%JpKBCMhc;HOXBVTvehIC5?=8&1B* zRuMZfVPMCM@JKzgg*}3kU)h+c1sE)H|9^nZkQCbdKsE!YsoLnChfN6S{>@;8bf!2rG%K%zZtU*cW zyumf_!BAz5-NlayS|QEf=0op=i^6tHqwCu(Rm$W8_OF3=r`wv#3-L-s8MLMIWnu}c z!Pyxr2@CNCEZ05H=uxmGsU|Q?e5o^{|7$SU@S#-B4|=hT3s_I}IS&^Nc|2(#@*;!T zzcOCjNVkIsCXji23>hKi*aqJZu)(7ITN_+z6C_R$6h`uKo1Dg_0`3FM zp|#a1RZ?~hluMk2XJZ^-qNZqP7wF5ik!7Q3>8OXKI4z}Ua9`~8UMSC1#$n5etq~h( zZEvQxz@H46^`eNp#A5Z=yxbRr1kI+PhcRP&`~WRrJey0#(>7{60<&B=K~ZQDBzPU1iLr{bSwI0RpNG;rg+;#fKK z2rDCntZ22Sh^X+(&8w-9d&=$hxnguVxtn=mXHB*$$LFVQWC{q{dt$;y2%>1&r;#8e z^EIy9?WRP)coP=-#8h0u-T4uZP zWyGGwq0joId<;zTFL`mISdAwj(1>atD$AKuZKFf_J3m=GN4S76ticY-5>oW=5wrJt zA`c@AW(XQ)s`9k$bxP`2{l*hcb#f-(=4)Z0-bLQDd5$b9R8g9Z2Z6N3IU1B>SO1#2 ziHfBY!9KOgKV^Gqcd#`7dujzv!D8~)nc@$=E@x?NR;f-3^ZsU6-wQbN9#pz5sdhr` z5;a7{e^=ObAZsOUFC4=lTyfHOhZ<`O9R}x55|WL@1OaVDR2Ym1uEH(SV-ly{G<9h~ zOoAl=67?r=ZA!yLy?~z8)y9b-|2fV;*a>1?+&_%fV{{CB#|OwC>OPrMF7CKmLy>N< z)mzOh?90{?X;&BvP2t^xlLucgu`(Rw!JPs2J5)jiBx}R+D)2+G%}yEx5d+KaI{YosdWY~kbG|X$mXR1Kml%_< zH+&v0j)l)hLPBB<4A4hlVtsgQKjA?{-0QJ!7!r5Qb9p{}HNEr8eR-QwiRmLF zoK5EC^yPbrpP)O6bHzH0cF^na=pc*@co+~4_iV6ogMYinVKxUB1!e=oLIjVa+%IJV zZ?tUr-nuMq^kU4uRdzPa$9wh9`>w;j!6uTV_MM~G%dLbBJqLTFJ?l5Bb?cgkn-G zuxQ=7?cHRJQK1TK8B!qF@Czx1S}Q;NJl0YZ?;5@1)g`pfpZB~Sj@6f5&MFQ*HZ`#N z!+hIuao|BA-G4v(vjppfke2{WgtQ(JRpV5>`jhUFVJqObd0rw9*e7wx>gU!~=E2}0 zT9K#8`nR_}#$LxFGV7Ic8QYanv6{>`;wFSSS3|?&5W~^E9BCI&v4q@gxnk6 z2~j*om#W(LCKD2SX}KK^B)nw?eDjct#uIAWv> z!uYZ!7kEcS&;fRVBjX``cox9Y{qWjBTqFdz2$E_uZXADW)pZ~No;CcXT2Kf~Q11Wv zlvp~dEY4Osqza^CX<&18DTgoDns#HKTw=s>%N2wD-#H3%yu>;#d=|4)1BrNi{3K45 z?t1B~|Lia98mRK7D4MKZ$3&UEqhb|f7d~RjY%rPP7rpg4vnhJ2ss3Z3tr-vb2-+&{ z*sVsDG`dMFfTdt#-iLD#e`DNApH#R=SvDW5v8vxPN^C#{!xFdf8WsCTI>nEqNNW3WTu(yl z@Lp5edqp!@M;ih!PS%xWkMH}#nBg~)kaY!56wChk^G8iU5BCSEWGj;%=ys8mpbj|H zf+W?82+d$i_GPRRV-c7+<&0{KUQQrJA{==M-{Zp%a;ksClOpc0T;ScZ`Efoqg&%ah zABHr)F*&IN*KpnTueR6Lj z(=YK4S|7P@fH5?*a?nm1Q(`Z!6?#^TUJg!8J}!3i+Vd_2Hsmq~$F#wgZ4OtI^vof% zQXpuyW%l)rOdAhjDoiSj<3uz#Z-Zr7`V1=tuL>&VzxEv+{VYN79d#-zF|W~YCW(k~ zF#eY$pO0oLqfA4yYdhtOqJiMyd7u>Ml%%s0OjC;Ea{OIMd_MQ2&yqsys?RM3BAV(x z=fL8|mpER+^f)=qhLPSHQK`hZZwqIvBV}^=GYasMW>=eM&7V5jge4@D%sT^pe$ViK znwiS$t*;YdKQM6W5R3XuI2w;~KFOVr6LmIvkPQ~SFHdksnF~=SWHdYjnM*EdzFQfQ1CQfJR0ZI)30`SQI z7PKwygn6+v5mC2B!fM7SNh+U^+%dFoMIr36+#q)gP(1x|KZI?h6b}AP&A!)s_`e^J zcO3#2g_wSG`P>$9fh$Y9MP2bwXO!AxPFNP3d| z%4xJ@nah#Q!pp;Xk!$2;bnnI-7NcpxlGb!`Fp2Dh2K{T!kl0R4h`mZSd^VH0TF5V6 z!GahM10yqkVA{tXw07ON&$qx{>Zz3eDF-bA3%(Z`unJ8tYW-Rs6+q2lQcOiA>6Tue#1iafk*s@ zRkMyVhECOY=*Rp=$`9dXup4a5b1SZ*b?uWh18TQ(-SQKS2fL;_=y!m17T@+UJ45~{2st_xk$YzF2g461 zYlKp}3uwhxKC|5E_rqq1r={R`^{CC-qApgP!b}X(R&C~w{<3FxqPc{3G*+vZR=CR( z6Mif&(is6iIJBnNRgU~r6pnGwlp7{{3k7b>$O&-RIwz#22Wcio_J}M=P;Yjwv^n#O z&)9Jx4A%b+$A9-EoXQow>o+F$G#0Hfo)sTQx$DyyZ=kYql?ti6&UCKg80!kNr|_*U zjctwzJ4V^9t=o=vlG0z}o;@~D;G;v*)kd*@c9Cqa9hCLAWrVC%@cR!Dhe*cT9MNH6 z_Q3Kl)Cgko2lG;EG5fPAG=}T+fuk)&QF|Pf6Qnorzo+{!bbr`t173q?TBNt59j0@Q zAiFA|7g!`>=0$iI7IyIkL_+xzSMZwKz0@RlvIa4b$yCbaKNbc`Hz^0t=}_P~2-k_X zQM_VE>Up@6(pIL`1k6tPj>s-EQz|2>IYwzqTJpl}+Xs8m7WT2mTUGgz^?;-3E0!P0 z(jtSTmz_c|jJ81z!rZFQbLT|T1j+A+Ob~Q8_8T3+Q;-1?c{Z;+a4BjDwYD$3EJI!q z&3H;F4^Gc|^J_550MpJsYSR-;7Rcbv#e)LJ|gsno8>4|$Y>%o8hun%VW z5OUh4cC9i(&-*p_t<~I37FdmB9ME5T0Xd|xW38ql*~yic1={hXrJ}5KY1n&{S%}IV z$^o!bgt(`tyw`n7IkDfi*i>hzqm5Or_Dca#lM zamIb*1*65=vUZDR+sdqy91<}Kq@82`Oy&h`24)nSD!t)`GFjI zFBZJ!9y82s6Z(Xae|_ZXa)#@K9h#A$=0#L?%_8Km;{uBLH1ePiF91HcCJ zb2@;7@VF{au>oPe30R2Gzamq35|u6W#J`X~ygCyNP-ES}X1`F_fnuFH+bv;NHNL`! z+fIT{pShoUkUd9%pPs;N4~6-PfWQ!ss;jclZ4J7^{R?1;3`FK@;k%1~f!9`2?01&# z!bvh1o|++vA7%q9b>9K9cQ7KWp|@HOzV-STWt8sp7K zCHClFsOea~>GJAaL@&y_$n|7>QOI4&&X=Hc5ozzFUgG@MFE*v!;B?tq6B|gzOAb*K z_t#LpSPL=yI}iA1u7`uCr4VcfgRNKQYEA7X>4Jehu};q6T74PxV5@8C#vcQ=G@!F> zqC;^@H3&J)=i)EXeyRh*G<%96BeQ16ngNfdObTZ9&_&CF%&dBqpus{xAbv!E`J)q} ziN&W9?T@e0l->k^*OK`W;Vevow^!X3-DO4bhoawEtJ)%ED)(`p;KE@NiaIA%AWyvj2L;Xiokb&iy zpV?cIcdo+Qb6*X8f^M%mI1LU_=RgsIg8P1mW$L+1%hF}x#gxIrqOE21&JVCxB>Nr3`b`_2K^(K)mB}K)}5i(d)0~|mSm~^ zepHcZ@6<}rd3H9t$r;U=<`*f#Kp{Z2>fDWyp)>!Rn_K_BQWFrxQN9vl98*h(lD6wn z7OtuYwIa@QH3y|v4NI)& zN?%=)nob20eCDvMQ!${^Gmq2s3{#K;Pck(z!NpO^5x70o>xnxvPk`t0#qci<41L>h z$Lck9UQb)o&c!Uzb-oe`qRqe#UHli9I`OR39;7D9P0P)GdqNVT2^OB)5WNJe=(~FN z5)y&?y*x;^C`tG#Mxp%U9ya&e$*^4N`^y<)S zVgxX^eYM}XVQs5dfD><@($o4r*(M!zXV@DNwo$?cd?Nc*;C@OXa$@)Xj*0yztfLm3 zfDxkm;V!rq;v@%I#~4=4s*z@jCeeqr3tE?8?$Wp84RD%$Bm)O1t+J0#%JF>&s6?7^ z1O>8^tr5OPWcTbQJ$lxr=I4DaX$yXA`XobT6k|{6;}<4TB_=EBM{qOwl`sl66E%nSu!TaiS-C z#)LkVS*lD0{E#6eL_XlU3m4s`SrcfG#K&?H7o*XctKS@mxAX^r<&TfcU6lJ4yD9x-6u&ES6xw$oHUFznbdrqmZ7s0{DDw10 zkOlstOH6ss5%&lS07mVrmT0b6b@V~Pcn*OO$Z zuK3dfMk#wk?P1N7%V3zOf4d^K;e@!paVP(6f_m$VcrAR#W(8o^df~J`Rtb1T7wANg zuAS7##U-M$?Hm;?6O=6#a$_2qE!G1Ig@193nVR>`mQ=^CE}M8EuBlJBvW9VJKS?)t zQLpRAbVLWO^hFS0fWh2hI8Qk#+=J}?R=9xZH=VW9tfU&_?BunoaOT!?aiMel3%zYC zs)Oh4w-;zdpVa@c>WJi$v(>>V5&_fM*p`+yhn-hI`$KOn@qL{ zJ+JyoKy_Nvox1>KbD5?FEoC(5-0FuZBt8K&wzhI#BTLEM;ta3}8;sTsgm{&D>9-1q zzEuq$Dk;ry5ikZepe=1)S+A^0jGO!T{Fh)LaTfQxa*wD<4Q^njy&8Usi!v!}^x0WW zd0$t{z&uxu*P#YjzVQH|7Up!?5>Esl^&r`{o#D~Leh`*I7d3gI#4WT58a15j^kFu0 z*kC1`XYr9t`P==f@28;V+hr_HgJ<>6{ggjj zNuhjo{w&>0<2ZcS58~vLax*(!O*k29eQJ`h-TRg#7=I-Q%LO3>34nt1`iBdmDvt_+ z8_{mUUsn?JwlY;sQXX%b0-pz)C5#~v*_x;oQ#;?zNXo3~+MAgCpu9EXzd%}!X#VKSrK;di z288x85)>RaiTINP<))7rUZwh}eq7|UXGZ@zw`T^WM2&i>GUNh{7fI?eQ=3ljv!QWa znZA;$xTwmEm76i4X3?YFp{8uEbWVf0M>h88{CglNX#8?#a|CoC;IZ~xav=a{OZekZ!6aW8E)JWPPL5m?2})=i4@8)rWJ!P!`027FVJ z)v;AG+v1n{muso;@iw`?&N++J6pYxhgS%lGE8M4Mi!vU59P_Wu+Us-4jXG6M4U?F* zHcFuQEx33;+#uODL;=0rx!1X`D9&@FWio+lZDXa=!hI>Q5}S9#ArCVykokN9=HFYV{Z8!sBDYJ+J$AHa)UG~$j9K53+rhVp>fY|1^UqE3 z88!jBN%EsprejclH8Wo8sm2rl4Wb3@LwVthE_{YDebaA(8nHp*-52FyemLjQuAd+5gG!ZTh) zFWHNdc2`gfq~O63N}}X_*+COrZ(FBIaF%9E4d)IGpubn33k%!084J$9hzZKi5H>gm z2f|X3s0!&#NTxD#JeY2vug>NwUM3V&J+x39LHAe2$YcM{(3!_W*}Y+WHnSNsgE7XI z83u!~W?yRTGxmKa`z|U%DPtRB%UD7vl(m$RwNl1Tt0;RCe$h)&uS(n7&tK=y^ZA_T zJkNRV>sfjv8lNoNPZ5vqUG9K zm|L{G!=o<%Ni-#p&U#*M432QOzfRTRdtL>comw)9g|D(@9^!oLx3677zX6*7R?R{G zY!A`cUu6LWWNeiFM_(u??u1dNeAXUZ4UheBplh-rE_Fe=$X0%e=+k1WM;o-!3_0=D zvGpiEUFf9xODRsPVoaK`y<>=EdTxpgy6V7v?e`9*7a1Yl#I>>ErI;hq7p?4T-nDba zfWUmI?lTc9dE=q984;)JCssAtt7MtIq~|Q2 zdVf@%D-<+JrMfr?!NcD9!agHG=eLD_$@owrD#Rp(*^afJ&5LzK98Ft`*HH7KlQEDsX!ic*7Yp@5)V&A`_KPvTyH>7!S6H9 zMq+%n_HC_TCol6UWz{d;Lgo@g+Cipr=|8IcR>7Crmo2xLx2}dCZ*RzG9zJ>AvIz~TtXPUq{l*w&p3Er6@ z=VoZE=a)4%?AxXdYs8PUBGum6SfjQU2wd0THa~WM0R0B@Q&P-;50&{<%Rma9%XHFn zJEx+UWx9+t_Y#?%4Nb~p`*>>TU|;A?q1Fia7{ygKVbYnP+Ze@WNXxout2_+;nvIS?dc8JReSi??9m{ZPVtjzk6@@uzJus;=Tb<<@az5gkVWlx1j7=X>@*N1MO!Nwef4TAl^{c(x#_jEPsiA*BqWa}` z=mMHH4*Ca9UgZl3Ov|(M)ZxpdfQk=wz#II2h9!KLAJ-?N%i;kDO&bN~)noTfGQG}! z%siz)C*_@E=jQ%MkYH!H^1c4N)letrs44{jMUyNXDcxK)ogvtp`bsou0e<>1(Ypq|Hu#kaep*Oyq>KBXDns$yeu`ZFfU+um*8mS2i>!lId{ zB6MJ}^`t3gesM$0Z-vLKqf5T%kH5#sUB|!97RE}NH;&M*s$CFkbc#WL^3+B1Q zsYovFFHw9mpI`Z=$=)p6eu6X=+r{jDCjN71vBl~?sh%vGh5wESsIs(16F~-8B>!dW zN!hO5r~h>`2f4LYap?~s?y;0tCP?whAsFTdQJ1BA;eY-q(v~NIWxCnE?C&o-rWv84;%GT6LSGjycp;KF~!6)zd_6-oeM@=<8 zz@p5X-$$-gGu^PEi$&n03N$7;$C>usg)4tT#j)D@77CNYaM-)DqR(`PWq03XlmDF% zOnq8-nLGSOw#V#T_7UYRWkbQcA)O)*d%Zb;8{t#l2}&yx>zG%Sm$^su5EUuApWm*-RRzCxEf9YX|DHvsxN5q7*7U4L=I`0dN+ zX?{p%L|_^xgAebWn9zi{VuEn?KCYgA2E4MZC>St)QNit%goIgBD^gdVFVwlw**vds z=E=?abBAX0evL&H`KS);cs@`l_(Q~dr7NCq9$=E5EkVJiK9cT^LZyfh(f0arbosgL zg-4Tc0<_MKj$Dx2BPUNjY4~NHlU@`rt6A^7-22%v6ka$VcZA6uPNm1%c*S45Q`mS9i4`KHv1OUwcH>aH9In`(LYR1Irc@ z^8#Gh_B>w~QoE0c5KYnDvam-v9<(OPiq!!!;t4|9=TE}ISCrwvumG)jss7=N{$~jR zNt8RGiTXnhpWMN#7UvzDUXVDD3h>mclD9EXPg_jQndeK@4?Y zy3i-}6iXj(Da9xgGQ27gCQ~Y~f#c|<*h;>Zl@GV}bl(TwyS;0S>w7R!U?dS{&k*ug zc-r?pB&9NYZ|aPIcyVcD4xg$v_pFhrAV*GNtcV!rWG1oN^Xu+}xpA&YP`;3c@9EPY zIXKw^JlwQgy~-SE0>}jGrS)?r*FYq;P5v1#Khzd zyjr{MtlSAzmK`_xNGq1GYzNONGPJOSYZekp6*8WdANYFoeL!s7ZM;&6(p+lUrWN(e zC-E+RZzT%CS0-ywnQWuOha#DIKp)JU`3C~{P9&h@=S;q>%r4x@w5{HN^%-r$DFm1X zC(YV_Wc@_w-@UNx$wU{2TaZ82`h%-*WjJLi!!#uTD!heMkzvFebY~Yr?@3{CfY9h3 zr7xR1NYu}p4I1{p7fSb%l$7`;(+Br1t_FrLwhx-|ZTgaly%*+IzpIlS7r?)AQyC}B z!I4$NRB8zBQ^&_3e=x6hIYc(lN*w;aP!bjvDOyAI(_`uF&mAUR@|}6WvmBn{o3yMz zTXJdna&TSv6}sG&MLy-LSl5dO{fh66dx7xW1|@)duGcqt_6i&3Q{mi$q=jhOmdC;h*n;a|du4Gv%)Y(VHF zaZrV$`_&^haLk z1w6?yKD+VOUj|hGs%9ao#`s{^HxThFA1117Ct~tFg|(^}?zFn$`Jx0pHTCzbCGr4c znIQi%(bKa*>I1yp`XMcHdbtWMxnW>vN)PCk^N>s`QAO}F@O$ba#kA(n`%KI0T|fA! zf!VjtghW!*;`SQFP}BzPTMqrg2Ey-7tCzzSExxPF_*=;QdFu67I1?OFve2ryP4)Tp z%Q2?)>MyY3$3T8hV4X+&_+Y^CFCP~M5acHCAsw0XKH9T0#?I6)a~+;IafpR60UG-A z?D`9Chpe1I$d61M?eb!2Z+l!CHtc$85?LPFH`S&b*N>kc|9cN?wff46`(S?J?tFu_ zNyBJoC-up4%W4hH_%OK$T(eQPRYtjl0A2)rg}2R$mqiFPcmm&yjojnw6rn6*h)NS_$~QgKAvut{4+F(f=@BI^Zo zaA`X1Nz0&^=Ezk1@J8VKz#36nV8#vSCG0!q22y?_u#EO0OX}{Zga zw%We}ofc~=MHvLiLe1Xax~oLf3`{)eZEf30W|%Y%z`E%`{Kl3B>b_j%$5K`?}JknjnCDmzy;^-iW1HNY|89RTIr4Re#{+?2n<0(utg zY71jmIO;*bfgjAQw|SWpy%40_)>#C6)dmi4E-4>T5HswhE>@CPYaR);&qT(Kcr5s- z2dJkvU?2s9a;5pnvSoFV)d1-;Q4z>C=3Sd*X1a@9pj=GA%W!K?+M7E1J79=LnNYgK z{pwE57;x^d5`uHPND!C9ds^#QcZYNRaUS10NN(T!qZGR+Nb97nT#Na;|KMjoxP9cIy+lT z!Mpm|7lNNpH9idd(0NpE=+e9$8_GNV%lZP_5-3ao2~O~k{_R(tGh&(q6SZY$9`#5J zky~=1(iGUc_Sq*4!&E0bZ3=wl03|uZ8h%9XI6SA$ zbKb^k2rBlnOCOJhrN_gvT?pc=nzy{N4#n$Vqu$vnFr`2mTKVsI(GcShg0AVB2^@c= zx7EaVBKJVVwu^@#q&M0|U%q{TZdfgD6Wwz54V!n$Yx2X50Mt0Gh+mrGxukX!!H<2$ zRn|+{%K&{#nSE+OY|?w;v~8-M8}IAUNT=n%q5ET9uuv)?^TR7c z-Xn$W3H3qcG;udMi&P(*x4LEy81cvHiF%gTo?RJ^=NM@NSFS39&2D`9Px+TegjMbq zQ1c6QYirBsMUHKet>OIaY%ve_W!N8(a=;-SH(cb5MUpt-^x@3_bc#SR=SF#jL7BzGtV|PNt&>1%!O#%EAp*pt_{A>*IqeA_x7Q@gjPc zBpqX7ZDc08kDiiW!e&wxh&psr?&sbV7?&;G%kS#xm^q04?~+|$JQPNv&({}bi~#Tj zCsml4*u672QYhloM-e=zUd^M6Lixvgdrj{$j`bge0`Bw%#oPm=Kt%?5_q=Dhu_ZB`&QRym5i?7nAIj1D{zlY z0QOwt&cA%+v;UvFp%L*}YHA+q+!K$LTpj%M9j5yRDUyi>h;ZPiDMjc< ztpu5eJ~@9!Ku_|=Cn<=4mW}{j&=#jTd9=`+91YiU!q_!<`le2eCq&@)p2-<3hs3#!YHuiLA0Q$&;T+To!Q8I=&7_&i_98m?z zES~=ek&$jAiT(rS{viIqZaV&Abe*=|$lL$}3>XkS1``$_@OeS-vQ}Kn*>7lJ;O4w> zdkeZ^_rX+z5%7%K#wFNR{%`%B|9!b2-Jc`MOin#kb|m@YN>A4_9jI+8I@9$MFYUyu zg<0?Dx+7Dp5O+?Ks~(i!0&x4{!AWEiIY>ot^PRU08Ya}VeLKZx@WUD#N;Zr(e+A95 zjJAu8s)PQfosL1{%I?u}Yx7)x?K!L&`q`1?NX{D!sk^;7I4d{SlNYGgw!qAMcs z8PKVd$;8t#8~O3a8LP*XP5p7pCVqjcc)lda3Dh}}>fUMIao9%PaW%JucX^=FwGf-%1HzKAz$+3)YN6LrgM9FrkZh^n*sDydfIp>I&Smlli&{6dK+e%8zumIp`4L1v(Y| zvnNC6(T{_(^r%Jcc?S*bkC`hoU6&mAy|vegoR(@XCsD4y$d^Yh<-i+#b|^z+e!p8DBQi$-ay&dQxA2 zD8^KEDQekZ!N3b)CpR&iiFkCP^3`#jG2V1pLt^Qwh zlQV2Tz-skAo^P9{p4V1OkhEv;lU^@X$&jwL$m0RtJ7GOxRo?bvJ36Vp7kjij zyVZ{!;B8Mdt)h)w#)f3vyTTux`ULpj>>hP1{GozTNd&aGQoO2+6NQ^B$dc=6==m%& zsCp8nJw*QHl)vWmIflA>UB&8ic&Pub%5!L4-l)ahPZTAd?(PZfX&EhBM{kDC7YGqz z$B0MUWu@YF;r5IjxfAo*XFnC3{KWBM3>u~zZFw-BI;c&Q-w65z`zpYF@|Pf#>b>bX znvIQlzhw#2Hd68@-``W-3{X8KxRyPk)~nWEXX?L6q@rC9VarYf$6$)%Oy7RihDxWY zUcRJ0Vta$}rYgb*$MQLk#d<5IV{S92_|YiLXVY%mD`x=#hZTKt=Ke3J5N4 zMTQRlM36)i!H-=5rnHb~p3HUTe{&;L3MBaWOBtx9@ZFA*b^#dE_=WEu36 zwj*Y8fB%8))muHR}B}G{2J6?*Ga1PrE_*iGgwl$L*wlNEnZgTC)6J(*lX4ERB1dw{OL$2 z7V7vJ5W_w6!&q7>81^_@YWl4&Jx})?(J$er69T_0_eLa&0 zHe5Jk&1#7mmeV|iyf1%`0sxrJ7zHcPl~yPwrmn6L*)CH7l+nAjEIqs6QbhuA%gpzH zQEkcoidIT=z+`DL-984(!H8zc)O5)#NflKliiuJ?be%<_G{OOz08P!K9-~bfT0rg7 zWxjGcx^$^T6jxkt8l)#L+^eidLI_!p)bVpjGC%au0U31$5{9d$Xqpj?mBDIY(TuH` z9B9B_QkZyav--v9A!Jay9>elwrH|WfU9vbL_|Ene2_m#mabaqnvJNUT{Zl?2h}4ze zFLar)49il5V|*15DhG2@Ee&747#&Y}!2<5;pGxh^7LnF007CP$2jrUGTcOYVZ<}x* zYVoi$QsVcu9{;DaC?AQrtDDAfRR5^ptyc+yvx#zV#ltmk7v`$#Ee?iwYjASpVEQ4v zV+q>OtkNZ=L;$Zulr@@Nt$TCIbHaU$Z$LolyjOw=^TE*q^}I2?jsO!Ugxa^KpSU(M zjvDc}Qf+T>QC;)5b4-m5`HRT#nEJMmo#QdHg?V;4C&}RW$D+z*r6a>cvDTM8O3!g1 zUf*q-OD+;OIghdbl!;oD-44rLX;r7O)brhO(gJUcFb+s$7V2v_;V}9E^A6|RrW+B>tt!O=E*_$4n>Y6oeP3W7$_8^J}$r0 zdgqpu^91vby@4c(Vfzz4HGA8Bp_LMNIrVYNoo2RUL++zpWL&U0=H|}TM2q_9EH3EA zci~dFE#m$s$0FVkD1X>{DAzOgm-$v|z71?9;pxaCe=9J#PJtHD^204=0 zcOyZ@H_$u!e6i_DsDgXZqf2)RGSy#(8J)>LGYB?+GB3cP9DYlzd%tMU#RJiu=c&OY zK#-GDk)ou&Y6!bFCI0cO{hY(A46J5r&Ds4D_L6C;X#WUcVNKfdU&&GJbg1+?`Y7p8 zd!YK8dg(!>uSHtxIe{t%HCdJ({@-U3uD?J~jy)aE4nIlXOG0l_dmsp;!cj5-&C_|AUV9MdyNd@7UWS#-^W+?o{@L6r8V}1bgt^tBUlBh$J~xo2kM1B^meyxeN^xmyJwj{env6o zp>1^Sw4DJps@C(BB#2QX2#qK&UPk9`;W0pRP~!;cQ)J zI;d($s;%Z_*2?IceQdEQ)=`gz`Di&hxGKBd&jHO$*r8YYg z=&JNH>RK=q0+7+DB%w!tY66&?kdyYwEX@Q3D=LRyQb(c-T)xAvhLhPg7DhQ7CP~J^ z$}>}-_GO#*c(~*7%psQ4SOLQ9q^|aa$QwXBN_!{7ExI=}BJJAP_L3*qJ+2~$>U*^! zGX{vTT2K$9*2le)%i56|Q{0!$GaZm#tf%TFy5(*F68%Z(Y<$>gnZw}6@1d&MVlSwz9Z>E0zlPFKD{N{t4 zI3og>f-`bbU?=`6)M-Vg%*$RY+})7R;A7UboQ;ywv z96IAjU3oU2I>NkD!<7-x=qn>%-`jNAeL{6?&gg`OZns^gpT|+Ho?@}hN)detd4am8 z(Zg89Y(Kb->|3zX|Acau5FW9n1Gt@-nBZIKrn>tj+@^t{SVHF9YX}e(11fSRO9`SOUALd zflK9;#Q!vxA4%}#zc|@hG%PBf?{4Hor`^=}c63Jf-&glLsu?egbcB&>*tka!un1iA zfkWlVC%nIQ5&y7HO+|-^bTrCy55fI8Ic?I$O?BgpkBY4lmYj3<4w?jl2a*X_Io~98B^F;8Hibb8K*x6Xg#5>-#*Hou8 z*gL9;^!V4CDIT#|8hE=IgLkbGJzZszW<^0hZ{KpJ0ReorKe`gz)(L-WUHcC%zKDAi zLlj9n$bI0Qd#r8plvB~ZxC#*Ep3xY>`&1?1yiRbTVeee?yfOxWegVWf{;~p|1zm^* zEA|VD-@ZFfB*KJ;MHPN_`Qu;ohwuEb!PTujLVmB8{PSYY(X;*>!oYlOPC1qy67F|r z=`h^#wC5vv{`)7eFySJWDq~+D*i~;r3Na+^$*`>0Ab@U4&F3-@b{#oc z|5s~S*T{5uLEBcqJvB!1KYEwXD=G6D?y?PYe0s$>TSi)~oA0PJGkA(hTai^@P`NaOm{x@u~>5`*`(_IqrF^ z84A?cCfxVU;Aqa;EmY8$fbyJaY8%?cUuF9k>iR)Xp4Jk0JSyb1xf;iNt2{^6L;viwmo5R+7Ae6Bt#xMc_Y6Rh(fBa@US{hM#%WXcPg-7Q8jT{OEVD_C|SXu=vg zKdAijGd<3H-dDoRFV1$`q3}(Ka!x^%D9uvdv+K(K4n$DD@^`weYl(H%3DpC_G<*tX z@#4rOiPKVpn4(3g{K~S8peX(&RNB^r?_I%xt&`#g{Dl?~u~D3PgF~5UC!LD3B#+et zZg`6Z^Oz6*r?j6tQt{`UxjD`6H{0;nDQ_b2yn4xl2(x&=IsgE*VXK=*Nt7xcsgs2M zeE#l}4fH|=)i>*6ouQxr9Fu>BCefenFzx8339=coUZ#Xb;ml}gd!JKuR|}|7C9;Zj zEKpa#A9Lx*phR??+XW?hZ{isVTF~%n?^ zv4LF0jWVuNvv+wWIYi)pylf|H-4Vkx;56#~>0IaH1%$Iy*^oMO=v!mNS;NcBzlGcB zPbkREkev9CR6U67>F@-@Rig^Dadyx(Zu6zq&_}P8e+0nvv@QSL4h+SYq#w3Nxaisv z*V@D#b4N|+L41`0{AW*DuMuZKB@T<(30I~iuX8$%=~yKd0_o{Y(TTCU)mdD@Ag@Dv~VZ-H6o z#paLOsQdg9;a`)sDx06qoN39uHi89Fm1kKz*PAnSo`@HWEV4&&h`^zsU_Y#AYT>#y ziu2aOy|PwKL=Y`JL~gwv{wWWS*A$h|>R=zCxb-MHD~H(DggbwJh4Mgpnmd_^of7Js zhL$?p`LyTiJUO6Z9cf)6Dk4*W{34+OYr5455TOnrJ3|?@=b?J62nG|1UC<4t?U!;5 zAEKTQ?AfPmBj71jV2u(I9&rrS4mxead);eR4Qk#WkMWg85rnD&G47BOf}Het@;bwx zMzXKK04lNfC~qzaScU$wE{{AuEeWWT7vZJHN_IOBoSiZ9p`X+x09phK7AlFxYJ!qz zCw{Td7Ri~gTT=comA2LOEIus)!FDB_+Z;g}!|;%00$rEdiFKz;{sq;=1{rbs%W_-h8>Xl52d2H=L8fC-mnpPDf zrkcUQm>y$hGw4N(Y3`=1-WA3adTdsl)n0Rw4Bh+GlIzo%Y899di!aCogNA9(Mj8nPdH7CXJ}5~S1O$!<#Fi%GnSr~fua^jKHKaCj@j50uCsi&- ziL^JZ{EcbkZ{1*xm015>J5(<(!SvTEW$g>5Z(wjiwfn(`HG~a*9!j`&;AiSTnNMr3 z>Cqw8_S2jCyBTFiNU~yXwOhEu^x&I}m{yvz<5e`Q)=VTs?*M%~!9G1TRQ_56ml1H& zI3?XT^(MWW-8|XR{a$pV3+g(S)pq2-?gPw$pZm{8QLv98Y~WBt+;3?%D)0Kwx3k6l zRoES7*P&Vn2*#(?t{AOj)(&9 znSZocA#~&qwts`^pQ0bzbFv8La916{AN_&Ucf_KSfxx1y&kUZ*F-~o*HCx^KK*Rc} zs&#bL`wJX340XyC;2(WE(%T%`zt<;EK5Gue2Y8z#f15Z`_N+$-(#t(uK8ofFblGHx z67dQ5ao%DtXpR#;uqRz&XCg6ypL!IL`b7^gtornMEwbuKl9twPjLw9y;q0x1n3Zn| z5yw)s6@266P8xNevJ<(e=b;O4adM3R{g-n|+^Qf_Sp$goSgMm!g_#`F`uDG}Xm0{J zqBjzOeIFzZPyw8zmHp$$gj8+vR<++%KKg6USUIbHk}xoKxR#k1g!u2*GYU2;&4;ZB zk-LQGXzlvQJJL!)l)oI8qyBpXwecfgaB|Infz-zgyNF~++u)HWfAvQS%xm|D_0wwr z=0lDnobEu0fJ-#qwWo}%Tkz4O(}?gj&sV>`%W)O6Iw4*?$0L&Z{;Hqe7#z9n)pMxs zXHcIIwV*9W?Vm>I5UvD9&K2Q)5iDWG*F|SqkrKb7zgLoXlRILinXxbEk)Pp2FCkYr zH~+O-6HLPzZ1vz^kQ=it|6@JplmPMa2Z{0EIn6hqoA-`#R zmfq}4moJefni0X0{3My`E_-rd76(mhdMislv`wt?%gImtZ_Zi<4X%6&V48ZTmXOdN z+Rnfz0DbEwMI}B3l$i1(Z@mVaS0$qqD)Bnx@GjyMopcyxr`J&Cq|TzDO*J(6Xi(Zw zC`|;>oy<(<9yI`9{(71tevobB;^N68=3cGo+%bceH#^VGJK|J~Xr+g9M1D6$F-#t~ zwoDzHI#%4Jw7P9G!8d_BPMZWy08LE22T2}g@UcGAzS|}tbaS4P*qXY&1xQQW@haKO z_IfqlZ(VDhkR%FEmQ6f;q18mKnzIA8^PDL;dZjjpzHggH7&7`L{Ame%;qH%mx&HV=xU|y{VqhSlCCm?-E} z)6=t@f3f7{UPg&kR)b!z!PhmeiW#?eJb++pn%0wtL3}HR>Hp)HEVY#ZFHo=ubd-J` zpPMvl)=Ua4!j(M~F~uZp9LqiQOn5l+JD9Ionpq(7M=Z~adG_>Dn1&KVQeOjq%K+eT zxC~n)OGVH~`a{M}^+S5%(L9BKG}Y|NXj1e6-$BH7hIw>~+DD zus52g_EH&}0OFp>#05rK8bi?{z||`DuDv1{<9Xq_*rLp?G`Gu+jET)*rtXum)+~F` zrmOM9u8X@+iaL!VCMuM1IltuV(?;N4r=l5W-h?S-57W4&6-Fp@1lERg0bq?|xM}yO zg?8Q@li)jCceN+kd|f)n!?)wtMi_$Y5i(+U^~$@XXzbE$kz5T_1C4c7?366Ys0kQ$ z7g#cJNHG{^6bT7QNt+}sc|xYPpdq*fITf}!zd!#{ZiERe;fMm#nCpV=PYu@SOJA>Ckch)n^&7lju;)C5MVc#rG)#%k&Wk1tJUa5 zUfm0}j1UMSqC{2H$yLoER9)BZ&!F06$znTB= z84h7;x?t2*-qT7|S!Wax+wxpSEC}ooQaeu}JQAqcD>yh~g?cd+3k&{}@gM?T3M2slw=fLnYCk3+i`tnfxVvMe*uj_s6f_NqL9y z<{oY<{Fry+4mLH;Ti0Uvt&?-E@rxSWcvs8mi|56q28 zxl-4&1XIME#Z&s^az-k|P?JIuG99`f?S;<>L#5odPmDf^1AjooySw$>{1xESBYql1 z56bLAglIG=Ii>FaWzB<(~jR^ z9b-H5ot>F)@;d{+B{+SgPpTIDk$PZYIG#xHdzGXs;J_*Gh3T>M>Q=G+B9X2mLSI6boko0qCRNK%>Nr_QFQZv^-CB5y%+v@LU!tI4rTKV)qqGcFZ1k zlZVEF`e@n&zW`j%Y?nfbE$35cCDRd1((>2)6AtbT`%&^!MuRVSKtbKQIT!e8~UBs#+YxtvPMhvT)2iHTS%m6xNYzY_|W@%imU=85!zzlQ!0gF$l*BVF{{1gg{wH}6kAD|_{!ZTqo# z&RhW~hvjm9Td+O`B2w9x{=ZUN+Cq#1x!{UzqKMV}P(6J1-_k-UK9P&?quPPIFhG2~ ztK4>g8h*8tk@m)7)_3gXnddNDjRTl{4`us8{-dsrg%NY9$inq#GgS**2mPWh9dedf zqoH8LQq;J3;iA+Xm2#ls?go)-O?GpMM_~rG?hX5m=i+qCHZ$~2q}M7}Ac68pdcFCK z4we}QXkMYT+9Cvw`=2mexi}!`#+|6FVY@rFPLF2!l%Ca%-te0S;*u03H#De;?}9|SKFg1K`8AXRu?owXSn`ANF-wogPa+8w z3k*91*h@odTPy%}3Hc5&CwE=5K)R@xJ?0v44D!|KC6Y&*0rRR*#BLVudc2N#0OESV z!W9xWTW9pIB;#3IaB9jWkp^flFd>*kJA*DX(W zIheNXdFHLWpEi}9D$IP~cPuMQjwVQ`FDvcC=^p)x7P4(cDV%e`0HdCe3uFB`YKq^u z%7E8(31;7}-FLU8kZx7hmo$98JPxU#Se|Fw>JcAsZz|&P zCF|s_tIAoSnkr%VMA5;#0=W!lZ56CHINO(bF!Pc*#n(-pe>tHh6N7K95Qq_#tYjsb zGHMRW5j*1b$6H}&CaUt-wxlyqb$E;=P5aUMA(}gfbR}d+Uxk0)@Mtlt#*U#^S{j^m zJ;J|ykOV@@VFl5Vs69b$5G#fLvNgS%f;;@X_U1TQ5*lj@Ts`)hXOuTo?sDdDTvb!f zkje99Rgs~2^fK8SBttjo5r{@=45r$I)v|wQhU_5yA z*{l1g0U88;TABEK$QD{`(pX2m&7t|x5nS(P8{Z2&fN~>3B2;gWw|+G$s{Gs|Zib>K zPMF)|f)9ivug*r|Mq=5gya!ZWBG?5!02ct?#3T-v=9s%qG529aK78W6+;T2sDW>v5 z1@_jxw?^kmd2&CTV=(`lzm&OMn(9#=OwN@W{3IAsA}Pdo%$n+WZ}MKmO-~^s^PKFO z#R-q<1B;{im3Or^w*R1b_I9rnBfO(D`N&Fw)g6%yUHZGG!vc0MuFe!z1DaeaUog!S z=oN^x)PEXE{3ACY-UhOCWf?kP^T|k8`+qf#RU)Z$;ij3)QNpyG%vZkvVBvSyvjjez z7rHAlA#iX!KUGi&6nrrXXkt`{xbKcztQ3+J9ya%x(E`>!()vLXd}jrSvC@BQtSAUr zlAIAyF7}aE)j_+tYdP^YN&`e&r})^(%M%BBjV5Z@dNkjhh?lvGv21QIeF@uan9**1!GW`H<1wnT$&8d z_zd{ZN?ZlMl~vhwCqa_HU_I?ub)^efs33wHRggb0L68b!4d)lDG8o+QV94GE-7?8|~62XL;qyEqc;gnYT#bf?kG{CpG=Vt3<`r z7)Ji8P@?Qhi@mz}ZN&EJ!qKdT&xI}!G4E5M)>dk5$uc%QpgOZrL~^=VJP5R+=lUkg zcZu1yEvMlqxvMje+AK;?M(Shti04XZcBlVj(GsL$2Wk033AqL_+Xv;RoYE`4D4s0; zJZkt`%t|48I2Y=g6CI(C?_kTu9Q{sE?vMk@aFsvn79QPy&&Y>9dys4DyJgPGLQk+6~W2dlshR>m#< z=|zz{LvG}&mW>V%4d%6(TDc>mX`T_*dbaz!fLcdjAJ+E({GI&oBOwXL+}@U$ZtUH> ziqx~G${Vw2-`_TA=non!<_0{Ncu{Lvzd` zzN>ML)G4FP2W^85Vkt)viimInIEgYFFqoJ7fvPeFmX=!Un==!A7Yg~CdpXZ`O~wbq z#}u(D{sS%u2@}kR7aXB~ut!U;`RU0$5bO(O2UN?(oo1#c#O@y{l1V>Lt;A0avu9+0 zf8=t#qL~h(Jx?^awDVdD_>&aR+qZ|wof^=F$l1EnzXQTGWkumS+5d<%K;=E-^G4Jg zon!}Rd7zq%2gr16{(g@Zh;b@6HzOWuHOON)rCj@ULfDCJp?djIcbPlD28I%PQ9L6-gzGpn2US3b0Rd8Qr#4JrTsPOs=iLY#630~ zaLM839e3|^3F)!1+aUq1qskHAJcp9CuH&VEL!j5OHc|j(Bv_=qXINgyZPY?#E67zF z*}WJQJDrkOQIbxSErtmiX|YF!G&V_8MJ}prALs(3SdHf^ZaMndM|I9)@qJtJckAsQ z#!IN}h&7wrec7mQ*Z`Xo{B8G(1Pa!Kt|@kp)YJXED%ehJ$=^VMO6VZnQixyNq_8@m|`a>hh~!b2#e$50cXOp35hWd zs3r7SwqrUwD$yZW5^6nIA(?2PXx8BOWHwZ?S?a1yrZN5SR@Y8gW&+rP6&MVe&+T$i zF18vym9EZ3J}RPl!7Ji9lIQs50~(Y=OrBW@HzREv^>5Ph>(5X|%M3*V0!T_xpZbgL z3cogdR4D@&a<&Z;%yHlAky{pd;0~<>hD5IyrW<5c)NLg2% zC3E6GBhH&c2SUjW1P2hI0V!-2DtGp9OGLE^H=70S5L{v?8urnnilkCKLF*a0hHf{T zoJaccf$BGwQAQ9NH8pcEyPedX{S%22(Lp)tre zXRLo5mduGXaX0G(1|>j(wHpn0^)dv%K~%*KNLMP!Xc0Aj?+9IN0m>a!;BwP9^0@p6 z>4e~0L}^Wa!_)sWbnfv?{eK+a{l3{4=DsnPF>G?D%zf^6=2nPYB9d#VHgnlrGS^fp z%C%JFT2XT+Dy5KAioPl;-Sz9@=dW}AI+w@eJRax${(RoA=M&bpuR`FtCKWRHs#S(C z{~~#*7(64S~Yc;@D5dG6nwzc!E?j!B1@wb#KC=mj@xVp?F~ zN=$>3zOlEIOh?g3wwpvreFyX}Gx=NGpSXWNGcGw{F5g2|(cQur0Cfk<57t)5nv#7G zH_<<0rx{JO`%EvS$#IhkqM0IqezYZ&=H!;J$y4m}S9&uPlm^sEO(!cG+RPynb9X45 z;Q5+15!%8PF6t8gcO67yQz2(XQsSp~XmD12fwbjr((knKlc9Ji65Rvk8%ek*98w6uRC4 zD!6n%8G?t#(HF4!~w?C3iIsf8{AzkIc(PN1EmG`h` zDeqys0G^zevoW&v>L%7|Vh1KlcUvGb4^Y`t^193t>(?^aU8_znzdVEik;&5>k@;(Xlx%)|N0-ulgGhd7mq1R@5S$~$)n(1X*6$t?=t=2p?4@_UR8Z17 zZ+A>e)2%YJ7AAkfS*wYT{cjsx3jL^b3 z-Eq(RU+=(^+by3^Ip8@<9s40X`wI(f&z@Up%&z3_abx^=ooyxOdK4>s+qM>BjWrUlEGN&k53ShsBMBq*veI{`2ryPGG6$+ehDuxcXWXBQr0|TVE>U|jz ztie=?ZM~W-7se$)`_!x#Yc)4zW69Tu)R)h_DQyIh!6I;knsfSwF8o4?88t`2fKI#Aj~y(@u32qRk$UU9{_4~6-E zr0`E&(AzZH{r1Adtjm-382S$Zz%-z8-p+FrrzvaQ!ZoQm@$*jGR(9whq;S^l zUV@uVw@Ov76-^M=umh#lt`0C9=H5A+50Y3q@n9Zr;gAl|wj4=68wqShWxL270*zf6 zJGA@C**u*Z&aD);^MBHSwAlGGz!acu9SMO*nE9<~>Oy>wxzT(8zt+i}DdhHg9Ntd^ zocz>?gW)Nn15SLP{=INN(04CiBm{U0X%U0g+27qDJ^yH!rkKecb*THvYzl8ISbbaP zU_**eTrnivOsLo~@j>OFp3AkT`j1QfHcM+rb+A>H)N27KXa3D z)j7Y=yC*0T{#DV?72Xlhzi5G+NIes zSnCnZ!pG_jaAk38f}HM$#v6A%RGV1)#XC=vUnd0yIkH?6@`J?9Qb5>79jnQD$w@ch zqbewYV;S z(ztH2G((4KRzzKBPGiblOK3S5?}-0wCHQDRPqg9&(lIH`7u=wd(gi7XAa;AePch6p zAGsf&sx1V}DuL7s$JB7Q4z>{~eNLdz6{*_eU|a;E#lBnx)5z=JwepjH^z?#&g2nR> zwt>cN?o?Y|GcFz0lHA;NY^a-`+$+{BPlI1cQeal|Za=!NFG*w+cO1)RkOfKCY;qO> zC%+ZPW(#lKGB&U(F{J?aAn(c}pgElH4emKfd(3Kw^rr!@?5gafYF7XoFkz2xeJy_K zxY-2q``8^Vz)8ykG%2+cpH7MM9w62mdNX?3@T#~|#n@vCYGtAT$J9EW;q9!88iO_$ zW<882s;@5h)74mw)}wLzW$}abrNt)_e4-dO=oEl#Q8g4dB}DY6olRcj&MD?drf$Ar zqI3{>0Kmp|o(Lb*>s6q*hr}J*48SI~H}# z?>Djq5;&cqr(jm#&*(t(z}7G=#boJ5Q#&W${xF6ORnL@J;&B2~CF zM5=p?_`b!8eA{|a0hHsU$F`F!Gye^+0e^DaPX+V1rZu^#3?>Wq@a7q+gmd=n;_ZR6 zxXQ)=%#+Oe%~1qelV}oF{>QL8>x&!Z$%}#4ePOMbpNg%iK+U1V_s&;B6aoMf14m7CwW__)-`My&5aJU8I&u_B|}ZOmfyZWl_SimHp}&(#c~IM{{z zQarQ0qN_J!)oQNq`>N1u;aZq)-e};}_H$NXVig<8zsoI8#;8OTe13$y{PKygtP)i5 z{F~vapfmDMbxOxdjT)Zgjw*Os;{qept3Ni2)clUG8%_u10^15TT_HYW2^pihNEhU5 zkLg$zh)53oRu?AO>xKL+2ZcNXshs`9dwTR{#pA;A+7C2Y7Dt-b<9cShr_DG%%A!)O z+qJ(RGc977Sjei2)NZ8Wv$D@|>Ct1!EC_{(G{GO|J706Ci`*xVXchJB`XA5fmaDkt zeJ{W6zeLnafifE6*T(%UY9mgWVZJ`@4$gb|@}3I4VFG_4U^lR#FBeJexmE1rN>X$s6mo7qd=K2QQ=n$hpzy0By+^E zqkv-PXfts$kC|hIh^Q1M@=D>$H?6H)?)V`hrP0`HR5 zH1yvkRo=ca2guch0cRKCEh7|Y9Z_F?L`wIbtNcVzS>k{;AgJ5$7kixh1DrPI%=i7ENK`dDFvvp(bl3%GKI23^q{avGWyX>wo&KUA+uUXxqUkvcZOa6NXT z6)JYB-0(Y_CM(lDrgWR4|HEqsc;dxOUz^C)nk>hpf-jgp{FD5-$l`76Boz{~y z7@GK<%;*3*U}~5}-*fa8x|_zNCMKv{zn)_IM?O+t`Gnga;pmm32U-`;LS7hR zT7egzFWV&L-LNM2-+ZjxI%dX!DfWV1H8k)r>rgU!+E^o9U)3)^WcPo5ZDVH&Wt11f z_L6B1HNotivvyp}3yGQ`UQh14U>CbT5g#Lj9SBJseO7%oeGp(SimE|3C}~tSq+CIb zlfnD5zTaEU4$zrh`=%k3e-@3ARXwd7PpEe*z zU%DgAN$v4nY7E=S={xv!*v6-rE7Ed&yharoFym{(g!BhZ#u=Y_jr?Uituh~H@<(tk zaX;IKG*)gsA+o*d8ria@`SRm~+*9xydkdsnCqg}v3i2i)kJCjqDLX#eW{xUk#GJWT z6tc0clbyELan_%2Ia}ld7JIE_L8aDXU3C1}wn5k)Jk=7BLUH%#S2xM>+cu+sIl3^C zMztZ6SYE{HdI*t-It9%BSWq?VCGnv|Hi@|A^9Q_!C)l(rwJH(pwtWR|?y!;#Pao0& z$M~X$vg~3jkMSdiv%gUakzcmZ-dIk2MXN_g$t1 z+`b*kftMWr+J@7%{<#nbn1`TE!dlyi_GgI)2_+6z)`z4LLofFuvIFy!0&1moD^+vb zXNHO|TI;ehI1^rS*Tw^FX?^M8ch*9l7evKLC5>wQ$}M%!qCVj3Dk+R(LuC}gDCZUN zoqun$uRh<>(0wt5YkEQ%2hI(E+`^w=Po`tv2@DG?c|f zf|L60Z-%x4jeswtJ+EF~ z+wqo!UN?`9%285^too?jr3;c^=~RaTm$(M)uy(g8qDHjbyT}ootnP<3S?0x}gmF)a z#^Nj7I%K8ILO9LOw46Q5KYcU~tYs(TZDe#cJVrer2@Nv{C4L2pa47Tx=)hpE!x;>U zVXjpVep!rnb;GGkIqn@2awJqsJgWtm%pV#c^l?Q{ij6c!)b+>)uHZC3O4dEB{L9!) zD~sY;iAZsLoF)mToL%DL*D>zrOZ?rPOB^9v3b-Yar^gq4f2uAKKLSShkxM2B$q9~a zO59#p?pr)EuU9rW6@GN;)U59Qp>)r5;QKB*hI;;x>oLUb$RdnmD%fES|44b@mFlPc zKzAF&6eVAAd$8s&d{BNb2xh@yr2-ug?Vk1b1(0f4L7{F_kcr_lfWzsdpQ#}So*$zo z6tYAV^dUoDFK^M_#IBMRH)H zMTUQvF|j;oZ5L!CE_{b zv3cT~CDs!7+ymybCvLlJTG*5l9YZBr#DjlLI2f!1aFsY}?dcT`R@Bjz$HN|CLfLip z#qCyQ(+7P5AA^{K(g!;-AdA*v{YHF^ItdE-&{6OY@0-WZj@{kFAA>4I<%vC)#-tWs zzDrOuI1axg%F~nX zT`1X_{-vL%Z6f(MP@CXe@kK^j(-S(mc?Yw12KY;`O#_{s^9jIf0eh#feMIifP`FMJ zNYjcHbc$?AR~ouL*`2U8?f3w}Uv8x4!$4oc^_NnUt|y(y8w4=rG=D9E=4=^PDr~|j zw#z|_6eO-V(dZo?X`B1@j07}#c>H08uU+ANf79ZWr^;&r6P%lKFUh(8V$p%FITPtypT+PL(W$&{)ad zHtEi#xR3_kvV?0-ypyHtRc1CE8kgjSDH9(N{@HwPzny9Mt9{5rHCj3h|H_uIFV zNq1_wcQR$hDpKn-o*%)BgA}(0TCl@y$C3FY-Fk>p=3ZYzX0(%OZaZ2`O28oMF0u|G z8;rup8y?Teye2{aIrVMv9G}a<4&yud31Q>1D;5j#-=0olLL5FgN{qI*e^gJE$F)eF z>+5*ViZ{{HF}zY+Eb4OJ+)EHuXLEnUTnA9Ef*q|6R!a`>iiS3WWlksHzZN#HujAC4 zR6mB0zDYkihF|qaz0&YJCf+Fb>n}051xWkC3p2l8E%Ez(XlHmM%xBHEfPxzGc2=N9 zO(9yba*@T+YE{h9zh=jl9;>S=jRnLpBg{V4N4F~`MF2~RN3|KMqEBizB{6p3&R&6C zE4xQRVEb4+qXiJtZ8#ks`vI7sPwwcO$t#b6M@w^2Sm$+pwGbX>jcckUeYXJ+>U9PO za9@|o3M4UnO&<_TnZNhVr^ZVYRHA33c3TSvgPUE}ES@zpzj(Bfn(T{S;k}jQeQp3? zL#VR@7IF%^jZfZBN|m4hhI|UoeH?|>83csxdTbLGC$01AHQ7{{Rw*fR2pcl<(0m<~ z3-DNVZ^aBO_*q=!J1yQHa5sG6#0g!KSQ?IzKA3c**@$U|D?lPHg93yKrP?Ro`A0ak z%H+P=1=g64IM{Qn3;tzRc!uKLw=Y~>{)-!F2JqTcQx{pk!kv`$AH&Di`bj=iFB*hA zAP;KeRaSjSr75tN!h2)~PE`$01KPx!DjW#9;6cki?^Gc|>*{xai*L}si3)dOtL+sf z=^DRS0(rar3xecAaIwqf7_^+_eNUt-_9{{hTUv=3Z@=;lVUy!oaOZ(TkUcd&+fA~P zJSN_Kh*(=tB6yrJgn13F@?A^<7&2$$jVV#O+acY9`%;%A{aH7#m>b3>Gt7)#XOz z>|hukC)P^PQ1N2UaZQg5%}dNmqF2;L6tk{ zkpipZdBp4*K@a9t3FzkcG-u+nXZD6n`IZV@h*KxKC)4DU2<>GmEI-V0Y3&_xi%}v5iiXv9gM&36JSKG(BB~lB zVk4xf#xl>^;|jz-((RUCV0~?W%SgikK-~<{@Bz=fGzM@*Wtx%g36ix7uf32jk#w(CR5%+PUt@lOmRTwjXsrVjk z#Y)RgMQ2hv*;tF7I6xlR{SR&(lsn+Sb=cC@rqFdAnK{0vy?>u#Fa1dC+l7dTKN=cF z=tU9;utC3vqf#jtYyrj6J0`pp+nx}%EC*4TuwTv3eMwz=)A5irdZ_p75Qq}*5`1iM zZ}`h{-I|g8Fnn56)l)#2GQ9AJ?e(3am^_%Ik1a53N6A3v==3MZItHMa@QOpL@VhjyYv)fBt z&2;wy7E4*xFsTgQ`=JDXIduJ_%K9$Lf|5wjaM6Q5>e}5x;2yDZwfY00{C{6^G+7#s z((t-|(LXrNf%*cyS;3TU2Ww;43S}OvrfSG^kb<+z!;t%b>wO?NB;0*}Cq&Q8E(0iZ zF)lsrkD@mh&|G3GosgM_wxvn{;kJ&`r4fKeyo`RlSCS+)_wyHPc;7^0A2tClStLMZEu$kh zPS=HER%=y?=rt>KT5waEGgUkBg18d*SM(petk61!rbmQgPa;F4K9dKRFEI3^(La*y z+MRU5f%&=d0ov7;^wiEe7!S3{_P4CRk*9@e)2Yuae1%&(O^cBOdFDZUd4nYhho(O} z{Ukb&Rb0O~aV=R>R!L0f1T`;3f}iBw8Dv1@mye+Y}3`$$@NmD1_R1C;*(jEZcEF8-~~gpB}=vA-Wgdyib+E;UYxP#|eXL6`OgPOV_?FrA{bzfEdlK$<$ndWin0<%!{pB@8 zb7PD=h0f;PpVn%bQZZd2nk)hyKbB6EJzQ5b@LQn>$DwyX&n4 zC)fI7s%T+goh%W5A2_ZeZ&xeVEPBbi1iT_a@u$y0Y^`ktku#diBv)OWrCNt~D=jHOVl4t1uR}Y4Ho` z8Bu%1ItNQQ1$P^Kt#`VovoTN$RT!l9*^cL;%){F+kiyxivJaDajiuikcCbD;*^{Xf5Gg@kkCOcp(-wYD-k9wDpXV-(UR<1P!Q<2y zx8clpcZVHOc06?9vq9mtn%}auMq_p{vfNo%y%_-Lq>}8+thGR3_FQ90lJLIm#f~b+ zo%eLwvclngxmCq^ul0;R=KqjvW9&|ps(x0esNzE6{twhi=v{9k#Qe?p z7a~K_@(YfH;lcMQS}ZYEpUczxdk@x@0r<$N+lhJnKy(65Q}bMun9WeN4FDgzgOohB zi?MSD7R5vu>@=3k+_QVfPBX)uOaru$@u$+#C=(M?vz-Q!3^#Z816ZcPj`H&IAG{q* zjFGX)#6)SishI(TsnIhrVX&jnAVkqo_1{*sD_09H^-sm{0z*5(1eRBjJtu`z6u&;Z zcpqLN4i_`Y{}e}G!{+*j$*>$ZhL zMlIP_<%gl%_P)Hy;tYz|>(mfdOz@uY0WFY~?aEmTNLReNK(kl9CNBqkHmTJs%2S^i zo}gi*@6F0W;4mxjrvsDt9i{Q3Y&9t2q=Ia-TzTawX4GnTuAHB#)oc%CXve{$WPX1L zs2Y!yUIBENXlQBRf-FL3&Fzs*(s>N&CQpY?QI_4*FxeV^Yox5SiTvbnAxFtMz+UdB zn}rB(%RlWFeyf+PHpj3)z+)IR0v{j-ls z*p<4^)k*OR^YK2i-e`>-w3G|b7^zZY!exqn#hxP-+<0uj+cncL_;i@{u&UaBZ8gIi z-`?{m&Cp|C<9CCEHXWjpmpQK1B9EYQ#Y;;pjKVi!%TjkOH9(f&wltwrU)p7U30fF; zVz&xD$L~m3@@DmldZtabJiaiuL6$V~y_1%t`dTq$=bYslpib4wqmM1FhWFnK20waU=Zo=}Z8x>cj^R6(@h%iFuvD_3#=8nsz4|QaUtY30C;ob_d zbX^Uzq$DS0qBd~pJWL`Ja-7Q?y$34C`_kB+baeL5|kexSsIcb$?aff1i#mh|l(eK67scwN%V%6ep+v zl$nmXfXC%G)!hy%PJV0kVcnBNJa!3&$ydjp3}R`aJ_i7nP6p>|ph%|ng4x^uW2p>U zFA49hz16g6PC-gg{mHVl2E@xpHcAg$y~4Z_cbnW-KP9-`f3Ct78YiXjo6ZN*peON4 z&#r}aHCHoRenocMwY?bSYXc8x=T}Uk^+ynR2R)+&hf~dgdtPSvow@mOv1a{JN9F_+1oN#A3%z4Z&A9|~EDX7e)o!E3&e zp0>G0w#$QId$)S>qB24%&Xa0>1aPFiMqBBOEOYdb|eHczVE890s)tME!&X z?S1m5)|Ebs_byX8mu?h)q8>hnj;PGLaW8u8;r_lR{!)pz$NcGp#!g=&X2?-*GsT=Eg z{N8oY_!D@T93^~I02q8RlaeNlD2%LeiLqb(5YH%0y5()81aH=_@~klSlzI{L)Gq8| z1I^#7u=o=V>H2n}+vki_xLtE1bLq|_w#O@r0Mis$0bnmecT18rxPOf3&<=y^_^Hx`%`wP5$md)*!%g1#!oL=#uEcY?eNXBA8rBaOZu)tVyI=8a zr}7SqBQeV<4il!S+kEg!*gDE*|GLFy(G!k^Yjmni$(ckh$70P-=e|!{ZL_`dmA7J- z7xH16OMXlDjna@OFRbvEh;zc3H#ZeG6BDUv@KW59!=^sMX6qKfK8u#c^wfv*;U*e^ zi;Jm}@3Uo$wSHd>LJM}YoO%jDOxKi^T=<|AO^|VPTyYOIjV+9EL4QhkeXM}afq4=N#_tmd4#7bJp z4KJiVnPRr*cxxp+V<`w7pK^*=!`)i{z*Hwxy~WYhK3k;Pp)V3ZbSTytMWV4(m8d#5 zOfkkdV4kv{zvUWVeVHuq^N2Q{$O#6}E>IyD|ADsv>VWBa=cz{T zhM8&1J@s||?_;pVA&lcc;cDu{#SWwT5|t!hB-_MxBmkhO6?X$!wM10Wgnt{1kG_b1 z^8m1q&0bwWvKq+;WS#SJEVOgRAkXr`RzE`lKP~!1eUCol4 z^@_z#+7x}W`;fR!WY5iTG&+1~r_mXTwOwo1aHAx5I?Uzhv)*o*aCXpQ@hd*&<608< z;|}VgT5?~A9|^2e`_R8a#(hh?{eTN(&#!$0`&)xn`j*|;rd5LB8~;v3mhBrJUmQLK zFv}cYoWdYKsi9DZ)TXd*$-^VPQ`o(Tj(b9^$!SXX$b*Ql$M}<)rZD!l%C5J~z{qwm zZe*$tIu4!sJDiN)K^<9?lN?QY+!V5X`(gQ!VL8d}+=+TQ*42^a;q5Euqo)9r@b40O=SDg^uTF_X;ax2wNMm&m6gHIHn?@PJj0}VRqt0NEBa2?CweoIRw)S>ofE+!| zRp;?TO7s)zM3l1PciA|6>JTy+i;OCb>bwpjgU5}iMJ~6Z-^~c|(WAChVC?p)r$!59r)WvEvEugWI)r5i|toCDC|eYp)qf^79Lv)@^wB*QxYIA`{m04e4e zBBfPn4X4g!P#waIn*Lf<+w7mV)5nO{juO^Mu`2GS6HD2~oyEq9w)Mg2D=-JSXG7ah4>aZ3Zt^&~bG}XZjGqc$(>Qj4o!s@`d(h`{kuRl6W>mgT8b=fikin zq2kvAoE8$viBg8t954N9I!K2S7^Esce99{Hd&3(=wI7~u#tkce*>ym(P8&Oa)>fX6 zR!o_Ll&&D6&_)2XYfIzXAf5PC^~cgPqf7oyKi?P54tjfbtonQXZ4uUDm93RFq2o%(rM6B_X_Z^J9+6Z z4dAIS9*)IM?*{uXrYKw7yRJNrOMNW?i;TRqN~hD!Rz$Yj2hkuKM`z2j>mPhC9ukfH zP@t|QjgOW0U2qt+QX-xcDjBGGi%!_JiYgojCBUG&sp74Hl>Fj-mkJ2Hl-M|oak()s zHH1G}>D&!FB2rbGE;FA^yo>ebQCgkhJuQ9>U{&g6ZXxTnUK?Lb*IGA!H~8y}w!4v* zte(d12u*KEvP?|I129Th0!j~Zarf-YM7X!z273B-K%txa>MA<7nypz|c9-wH+ zZtp4e*70WBj;4FoN*#{GUxG#Oxj{l&P$&@xikC%u>*!i(oFZh5c+65!^1KnvT{9F# z7E-kPPS{0=xAa5hC_K%XIS2Gyn7hnOf#C#Ro*87pEOpQ#32cv~>>dIjQGxZZ-FFVm zK44IWa%6Y9ak|-5-Y>(dwkLvA*Ym)mFK5@D4wQYGTalZVpyKGG4yFfCgUxdtft&Di zghG!eHyIkvDRQ$YH9i3s$gkh>kXL~Ykac%`1h@hvCkPF%xLpPfl*lzXjET9wX+_LK zC0XR5a6#k#h!{0nkOg|P5Jk4>u6r}YLmH^Zo04yl4_V! zq~#1a6Pk{6Jtd}gPyRmE_tnk#0Ph*`niDn~`{FzQ?ZGg}s&r1DE4jS33C*CW0+`f% zr3?ULeK5H>7m&M`ARd!r0c6r3^l){DtCh}c|LXvdWDX7u==LcW_|sWZ!{&Co$96O# zLhM5MYQA}4TBoi;i<}%@PufU=YTEAaQ;Lsh-0oc!DSg)sWsJd^{uA7WgqyqZf-XF0 z3+WjH(Q=;nuMWDXd+L>`<11-V+=cvGKUNeS&QJh;Qj1Ah(U#A6 zA;%~U`2IvvvB2?vR26OWOve|Brczo8t(vq*RD|@aMA>EV@BmDU(np^rq#d&a)<`@! zTPq6H(eBuDI~S9XOCCAK%5OU@+7E0d0+aSQB6Mwlb6g*r;kqWN8~>J*^!g_yzRW2! z;`|8n#>l&S$T>EnHm>2{adQ{>`srBv>+unvpzRB#f#rsy4n%W`N z9-J&=kn&V?zBvbyD0dFw$uQzc5+HeA@jDs+cG89%k!YL~LRgK|eTj?+G^PH!r3I^H zt!Ct#MN#}-0%I()l_ZECI_UIj71?BBGK9?#aAZLFq){|07?R6Rx%RKm9epD9Innt> zJ?hceVOCGLR6G4Vc4wq@2HL%aBjbOkiD8Xp;(Dq57bfzIeEN>SNLQD_LA~b@Ym(x{qFZk)G>u3o)+`B^X)7TQIWrql<$kivS z6g!yiCgyycVg14tIdCT=Pp)KnRR?PtIxj!ZzPebF5?(!ujRf79ADm)rp%qUUdB~$2 z>i)y)p=M%aplED@8F@mZ&kZ+}{!uz9fb~7VZVu$bb$+^tu(NI$|Er0Ij(yYT0LZ99 z^_!@IoDhAsE3L|vtk1CEPmxg;k&%=Y0`iHTp^ZBp<#E6WfEn3DNmwEYNZm}al9$o= z(9`OZxikcDQ(o*&xz>u?zWNYn;92CC#TN-lK=>=+=7| zVSZ=#?F(eD`rGODA}qcGvShj_V21XYS7w!#4qhCiR3jZ-7UGyEYhr`~s z_TNpMORCI_6p>%=`|iJYdt4h2a=b?+4LpfEmJc+{pk?daS>utlO>9%{ErOwOp%=am z7843ksmt^3l{c>>+v=5>R|2fn{6BL$RaGoGx!d#oy&U7rCD(XT3%NOLo2nCi7<2ED znfj1Ye#9wFs7d&~i%GPZg})omu08_L&^xu1?uibpvGBIqjBdFWowv4;JbO*OZBqUi z#^e^+Ydq*@cE(k*y1Gh|1YWzz>X_7(q2WQI3{OeSJjKZf4!zw=7khu=W`qwvHkT5O z{wCS7yK1^AyKuo@2Q=}Tx+}|mXRCgU$}NZ34hQl=M1#n5)0N@DyrwN<)9SElY~9Yi znxu&Mh=-nz`y_4ZORfF^)mE5}J59-irRhUwN4K0-5(V%rN4rr+OF|L|cJur*LYgL% zl_hixp>53D)e_PaSmd1c6O(=&qYkob<`C7t6(5@}UVh&7N(*LRcFg!q8y?jwOKClF zW7hx&1K!#b5W*B4>}JcYrQY=zLMa~43Dt+lOevYZ>%&i5B)LA{gdSm)D3Zjee)rrd zUDTdGA!?fUOifKYsd`I5E=%qXAXZvzU4ZbN`8jv7jevjJ??^ew`AikuKME^uc;s{$ zX*N&upIg)PBH>(ck+LL`jnSfHkE5x7b+^yU-Nmv6j>?Z+`t71_R=+t@TL0W$Qof## z(Ncdc*yC9Ni$^IQt0gQ@+X}^wtOPCNHlSa=8q>uyaY$YP>j!;z80Ugm$W{x(=BXW> zj*CV}V{6Xsy!P;~Z-InACq+?+-1E?nlPp=DbwKBC5b`_(uz=#S5*#qSaQ$}k5)01( zxDY8pgnjOou-NY^^1{y@hfg*YV5b_zP5-{u&&>TNQK;|tpy&Fpo4qJVgR&Hcyw zX_h|Lu9dRFSXV(XP%hF{M+NZFSF&qFD8&sO-dXZM_`PIWer5Op&2nEG`pwRg6twV4 zbl}PEzCSZu7K>0vs~3$qGA#WSR7^~~QrMHo8n=^Rx|*izt30@{mnZWSt-e>2)inO` zUx9>!*BV%m8~XX6{!wOzgSo$V3sQe6H^fnz#lW9^Y{uPlhxfmVR875)LOAPWyIn}O z;W8=#x*Blc(@SMWD#j?>oD+}|@|B^4%^3%Wt@#6|iPW9Dk|(YO_|gjZFlrV5qI0kv zIhCkL)<8R=*ibJFs`K?E+&L5=gXr_UcJ00Dwg4Ml!1^10hsz93!+I3>Fa@5>QOp_Y zn11*$R{_OD&dosZI|h<~jCV--omz%ROcZz!wa+d7b2NVay+w zo_*8z&^-OK_DNl%zfPHVBUNybRr?}NK+)cHek*G0ZHF)@?-DsKnH2*J)TF>dw`H5*}j@`X} zj_r+jtp#m`4`2|sX5{Y`8;WBlmqG%P)Qjq`QG+dhrUV>NeHXJ7)R;t$mn{0W72+~& zGOo{{DW?)yB*Nk;Z;kcC^WPWY@!9Hnm1z-5LFnG5YL1t|{fq7>eL~L%e{4PZ6LCV8 zg?dyAJGo_|TOV+N9aHE;vTz3NY7lJ05xhOGf>h5Dtqj_m=2cr*sp@h$#bjP7Gi~3i z`g}$PA-l9J$z62E8+O%{F=9$V*)kFtYh;?=n8mPyZA}w~muZ%4{y}RFaZ#RZ)R2nAI+J zY_{t*FVi^CGc6+noplT8_A09|kdKnhoV+!jgR+Q^NBc$vRz>-Sgrua<69cPaVj?4- zaX6)=Z_c)z3=;^vAW5Y~sD0M|Yfc19);uJg9vnO_{?H-x%giH!B&5Tdd0{hAF=SiC zM?K_F(W0HRuK^5Mf7%IYynE^QlTFg}vol`4uK^t#5K!bS^N0lUXp+noSj|w!G*UfI zDYiHe#3`u?)JCq)UWiohGnD~Pxo5)ac#uR)o(5Qh^{2_E5!<^yS4giANiH8nrkBQA zWM7k6Pa<;|H+kQ>nu6A9ci(s1Bd@;ba5N<g8zRN7 zZ*SSocAqh>ElEQmhdu`38Yl?O*KFwW<8$P`!Bd}1qB7;Z2;-m1w8K^jUTCi{## z!Ea1%rakVNrs{8B6&|osgMa7zr8Ur%Px(!)F-6-|FG5NVE4!!AX}OPUk?Vczx?*7` zk|^B4j#uwcOOzIJk4HO>cXduU?ud3YagtXHu=PK%c>sS9luU_a7Zy{VkBQq!56`U+Nud*ftB&#%g%|yvSE~jKHy%VM05sZ zO?dPz)KLyG+!exqG;C&ifsde&L+%H6&3LNHEZ!eBaG}&gcd`MWk+GjWk+j&b?QkO$ zsdcKn!}MRm64u*Me9&n;;Gn`pdYnt(zi|l(P#Cdb>Q~sVu#D%T7e`Vh9-ajhjH2jP zvEV^cXfZ735Fv!$TfSm;>|kBwr6mVQI_G~z!bjjo{|k{M7Efj4`?gNFL%@YG$`7wy z(UZc~?B4qDAycIjME8T@aIzRk zh0?ZB`G@?fMZ7%20E_Hs&(@Tbtg&$;*Q4)dKo<_|xu{bpbM!98s|yDH1Sb1o(jJ57 zM@}3ncnYb6-`i2_7U1eQ@0DfyjO1j5_?m-Oyu>{<7Z#w|J;hMUPMxI)t zrer)z&hzUmi_G5$VOxOa7Sx zD{S`(2^w)C85p%l+iODfH)mm12zw2Z3As1)(N8m#cA2f^>I@D#5XZIMeoI$vc{l@- zVWr~m!BgR~JGab87PT$a^P|%K9@U30(e2JhW`vLr?OFLR0TZ5(=>pq19SJ0*Poy1b z8)IXFgHG=SK%B|wRc{@jlr_ip?LzeH+ec6R%(C9{WqBhO)A%4MlcMb(TL0g|jd%JT z?{g$~-IKWXfQq$@fgU&zrS$l{PBtsU)hM;s+NL>S2t}>8S*6t0cMh8?gPmVh$z{va zLdUbdSAV7>q9LQTMODobcLN4#!!7AA44YDhi=@2t|sZ6lp3_l%}H6 zq^Jl2LO?~7C@83?s93IC{4+bV`^?OibH1~)v-7?JHlMpNwEzn@q{Bd(2FL8-Ae=7X zBC&T1*qHvWv)9e`*!DqC=$PVX`9)+P2v>5l7c^Khe#@FtV?6;f>#IHSc1RkjmI!Lcy<^=l9BbKB#Bx@|}5Sfrk{2e9&InuJ&!AkA0GwNkt6H#gB< zD1A_K>>O_>*vf7TPXg5AUDDg8x*;we>PQqfoPA->t4S4kODaM5I6k&cHKphwvCb^r zIA?@&0Jiz(4Rr);DKYs8dHziLUA+XnO;aIMsUJUAM&;YCr{~6XID96Y-U> z@g|0+`%U?m!?z7ww`!9m2X=LKVh67 z4^BXEU7g92Jg%!XZXbE?`iE^#Aom-+XUCj{Ev&e|2C|65YhXP{3ZE*sN5>QsWkSZQ zpUhv!-j!Bghkl^^o;@pKcy>LR?d8=J{_!l)_%B5MDt~r2$7lKFAMfKVvC&1=w%lom zGlTRepizOnv#5Hecwd%h%hnO9vEars`3T4ML#1p{iCm+MOOYF~55(=%4>-&jk&o^h zXvA{dh~||{6h=K&oEFk_uisX`P<$JFL0L8~MZ7slzT4Qt1dTWjxVrGA;)gQ=kuLC) zsxCRXL8a(hDPjo9C%pc{^?Y}y|A*9J`tpe5NYN_!c&Ljn?$z~pE%mu5FEAr z!$`q_;;gIOMtJQC&qK5|2;Hjm9!WRkwzvbRJz&Oly8VBkQyPv(~^+gvzlq8 z2lGdmv=M%CL$rh)oUIVPAM%&uEZpJb+_ox&l{{I}d>{t6P%x3vka+(JaP|p>T=*J} zRT1tnnnKDwJf0ovXqtEB6uS0NI4?^q+a9*zxfdnr&*66au_jlpK;7WR!)s3k{es!wqN=jf6)_zgM0gWcS0DS1Jf8SB4oWPT-4WL~BxLz^mm zhQ0>tg}gbJ_@+VQ`cgA@m_qk|7qd?+_I@B{d*3XHJKwWGGfq63aH@lwCVWHYO}9ob zFj&Dmqop=X8dD$1Vfn1GrwS=@qJOlIyzrCE8CKi7CxKeTlhtwLB;#N$lsRR0!b9p} z5Ft(h8lp3XOlzn$SH07jEj$vMaTXD5r?KYtonnXyI$c$0mW~O`37J zRz#@Tx`nsbyjQox-u#~WGIz<>IM)?t` zCxxoH?~n~u6agah*wa0(M+OX8IMjpSKH1@0b6JAMt^H{jg%B67e)hVqd>qXAvOCEbS^fjRsk3|$jsC58;R+U?us=@vGyNJP``dG)Enu%Ac3vB|EG zg`DIFqP&K4tLq0mrZez+uJGLG+av|=Qq>lUOWv?{>RurzD7_rw zu;p=DuIwIUiFH?L3#T3s$aJ0$wwB$Hl z=?V)i75u46_O<4ApqT)dVIgZ_bklGOe3kmri#oz3d!jYxOw9asi>k2OObaO%Dl?#B0dx2gGwF5A|h= zFR2c{*g-0Tpl|)$t=_#THqrUgb^?9tpC$$J}!)=C|N2gP1ehQ zAM{!&Q@|{uy!)M6;Q=tfi9@)BQ})`SKX;?x>rd}j?Ex=ePLHW0))8gXfO90IDpH+O zo=vY1e(Uh438*aGHpaB0WoGD$7Ym-cf*$ns_Lbr#X`tmykNV%}{kGLWi5koVnO%9J z-L2&rVu2UTRk)TXJ0+#mO*HUoH0I*d7G_xba}T&0p$h`voUlf|N5TKjPF@8wVq5N^ z7jqeN5+<;ao@-`Z=cBOchi042kk4$ru}0bsS79~fUDfpHtD{szj#Cw2&asT zE#%k$n`hXm4tVEW{P`^Q7=WbW7`K#3C4H2*!6rvk)DB-2gn$&rf8p<6@3~NdEjpf? zfxG(T%oE6e2}!;TUXZoV_oXXTpK)#_58{Oef0C(E|M2Fp4NjrZkvsY)pcS8JTJX0P z>ehX6VNv2o_%(Ft%Wrs2I3XT%&!7JMATrp}0}>&r@FthHBl6LF{PxL|lb7Sr)(7da;8h<3Pf~%=*jJ_Z zGCfDnBaYl6hp0bvZLmaU`rej=@^DC@DY3ZczGqV2b`r;`e^a^J3GKI4wI9~oY)Sr+?_R~Fy+&WMQ97ho`k&I5Tb19%5HpDc>r5{h~~ zYHf3bvtM0>b@sMqzuTGdFRNCuvIaH_%XdaDQjZ^>wN#d&Y29SD1p{McW~CjvwQfEO z%+(mA?HclAR7Fe3=)h3!Nec<-lF$zdzYJZLF^%-;75Q1Cv%F?j-Acw0&m2GVohmy8 zi=*&@2~(vCH^k31B}(u$B7`LY3Vyqo1ZG*z*JTw8m8&9VU`4bst(oZ?IV;U)J*@`5 z-jGG$G*>HL%23(o^is>N*t7OZd|Xbll_jJ)H=X-IOMh<|1LV?*3`{( zG&aq0cq|JDB5@qx%Z}y0=#H_3Xhpop)H^D`I>&DT&PoxYjzakdLlV1r(9FxuMR!j- zeKs;Nd>Gxp*$>QGYZJG}^MczHiY7Uex%94aLzLj-6#fb-=J#6;Z|Y)d65cPEQf{~I zJUZUhc`LvHlFk_inmS)rpDeX5*&$T^O2MSv|MBoCV4exEu*6+0#Sfc3(_f zYc-UB4tj1XbPqBNgKyb^%5yR2+wL9D!;8d&Ph^XNa=i;23(D?t-adb3msaaqC!3#< zekwvoLi6)NfG6y9!E%Mn^H!2`9jxe?peyXj5tGeyrCdVJJA}V0^WCg-sQkT!cJNvcI@@Mi^BxqL>mM6)aRAE{gx_uRT2X3!tAk($DPh2^nhEh2h zSmhM3fH#ipyK#B+2UId)T)mm76%1moA+1G~@Bv(DKf!>53+dgsjCaYg3TY$BTW1bJ zzPtm)XvI>t!$ki42fkDOX#vak)t&$s8lIlWIA`~G5wjN*Woo)%(0{H%17RTmQd#Vd z6K`?PC=`x#3*PAD(niyLOb;!AAF3YL1@^fts0eO@PY6gPf#Nmfy)MZd*AaB!$h(d* z;>IKsi!BKW=cq!dMJ0NPlsNay=;ry)MFm3RL6O^?cHREhtE(yXm$$W<{La?*{F~2m zq%M_XIl~B?1Dc^Q$EXFG$gmK- zA{%VJaMaaOa=a#-(P91i=o!lZpmkk5QMbTZ&mH_&m`|lA6mJg|wl%QvRLH8!NxY4h zvWxuW#{!M7LY|Fx(X=n;|!4vr|saqTC8f+d2=AhT7O*Yv}U~%-Z?IpHcIis z%F;aP+~xYW?wlRjnSsX(YPd{3*2Q+ObFh(EKPmogzHhIxMb_l+=oBRAH!HLv2YfGj za~fXhh56nWpD~)=y(JN>!yA&0eiQec3LA+Rruz||BGObvqypsO&v$5-<94y4VplKk-6E4qQ&CSCPClH7@DW z6E;VD^s8voD>*8Sp+_4pxVNNk%pOJ3C zYTY1-#Bum!Nyg6_hj2?}*$`4op(t1xs`S+axR`e$@#6Re(VPseAKZnb)#tu>yNXFV z-zTIcsy4W|{+gtbFXaM@oB@}lK4ZuRr5%75X0)wW-MWJUJ@FjgF#}chchOPdVu_vD zqHMM0J1*Hj4N}XtgD$d-A`tuiV=? zumSJe@!!ZRh`K)y(wz`~Rd%ka0G@@ky3`D-Rub6OI39TQH2Oy6Hb=Ic_a|pQQ#!Ko zt|?}4x&h@(wTQpV&NV;WxlXvJW2OL!EU~`Ch`xVq^j`Z@tZTq+n$ardj;u@}iLM|! zXSz2?YnnLgl^?7H^jyqw2 zl69fGa&G04-fpun_t6WAyc&7gb7e=Hx3dO=Ud?G^dHZ5+1g$sak-y?DLx;Qz6o850 zau3hDN%09EB`-O^10`0X>}5{`sF|T-EQ~JKC}b4~3C3n|evtw8WWA}8XuKhok5}!> zE6;~2t`oRCujj0@mmJeg9!(J&#bYwNlD8j#r?6v>=mWN7rI|@al#E$S@myu8I96Dw zEsvxq>(Te{JjYqVJaJ?l)1>m%eMuQT;*U3Y)QdWi7?mGqB!I{VZ2!p>!Tke_tm0=vzLrk|GxVO4jIVSgKn2oCmo+`i#-I zC8!#{VJ8S!Q(6og^xO&B>Yn4YXip(`t^l3it0ec>rN7S`+bjI~SCX6}N$i@>BBJRLK zmd%M+eR!xs2Z_ndqi+bscp27O6#jh17th7-4cnMQy!-7L7dU8b$2S}N<-c!mY)zraNkhZ=RG_BP%P-vHUCF3@e@&*V=#;GDQe1*E9Dh-S;Vf_jQlZ=BIU7ddgj z?Fh<4Z6#Q6xCrkevkrT1Hl_i(HO+NT|Gu(1|L@ zmQao;$zr?+c$8_C`*JsK7ja(>An2jf9DSRvs?_X~m8Do~x+7?wZ0NnM7P&P-D=mg^ zO+Pe`d3xygw$tLk;VdSf)&pq!@6`lp_8VX#yAL#qD0g<*ZFC2@?50@fGfJ`rqH3*E zE+^t&AG4U?I;{(0^<3V4A&tg>F2;x$z5+{Fdw691&`sM1-A!@7dw!eZ?fDGLotH4O z&#edU^c&i5!SHH91~T*v&d*&Mu`y0|bh*r^a@vKxxAw&|lw zKK-2~9>1I4voUQ{Mlx8qTCzq;^Qh*nhTOp?oOvfY!83@@x1+vsB-yASmjIVIRp!MN z_{Z>JQ^w2;&s~*xgG760tp}Dn8Do%KI=;AcGAG(ZrDX4{ng@_BA2E;FFk?+$1NE?0 zM)^PALriWlWdB=f=+3pNf%fFh2sE;$7${`4BZbX$?NBq6ziMo#f@Yx-B^rZdkVVKy@J#9J9#ql69*NhCar{l6lHlFQpc-6!x zl>*PvH9@zS+|kL6gl%P4NNdRG!?H-4d9kb_P8U_PA5YQk&?VB3QA6J=QfQuW%^AqI zo=>Y-lws#Y*>AEVb?XnnkiAi+!sRdQBtKn(Z%N!ZFbQ_(zH;x*PiEwfZ218vB~Elu z-_)X@2H`!p*9aoos*Yy>pBkojt3K{{GbN(MwTX*3fbFrTBk4a0<_{U^sW#{~3a`W>4F$IN1|Cr*EsDDg!%&C7&Y+QW8 zKPEBh^gkx~%-MfTN-F&yizc1&91&Lc_uz9UhH{q@{VrRKLVjQ7I(37Z^-q~g9i`P@KpY_Q+3rT@?oa6W z*Q$;>*#qDo0*F6HZ*oIpp$fdv7X%|NI&Tb8VRT0u4g~+jYEvM7u!I@w(X|%#qJAV> z=~!N(B-GK^#Osv!M@}Lx!r$KylwD|b97?h$TD&qWg$I{?XDU<|V}1K>)0Mw^`xS8L zrmmeBITa?z_qFO^;6;-?ByByjnj3AC~P;%S13^Kk@=Eye}c$9f%iP#w_@#>1N{ z(mrsYJ>b=l96D_VoL`W@1jA{D5oe9nn0u=CIY3jo99&^~3;f6P4c(=|!WKN&Z4m)_ z))uWNz)rT23G&FxqZZt_mgaHXp=!J;fmpWedA^E&&0976;nxD+G{=$Erl-*G&%M^Y z8Q&lYGzk3W(%o>eFi4ru^xVrw*;lX8_7h&hKeTZ3qq8W_BKW>-=4@u!<-McSN_U(J z0^m;c4uWbf_OIrf4s=$d6>UHkc*g>&s_Ea8z>O16grKKP!@#xSmP$EdBMlo^N|vPL zOsf?@OQDX}#Picy!p*P@yV#;A?xd!_#TZQaPytMEFdKQA9GU+vGBW%n+nMiqG*7`% z#VDvMD7lHsbYq%axXbt;WFZ{)kO|Xj{@Zb(WF_lC<&nOqF^e@59B8jtz-lrh&)dM) zzWlqSjW9o`+8tx@=1>skUM*kF@-Qvg&B~8Dp{{*5 zJhf&L@jJcLfv~R^m)xsG2O+Fu`~6TI_XQ0b*Tm{Uyz_qJv+*Sq3o_hN&qcgzF$V`M z9-!2mK}&1DY=?})`i+i7U0waf?rI6>59N%J5e4)Ped) z862lVQ{mU5a~FkDGmbjF%{n)vq1=9M@%<%6{X{nD0e>vo{hQl-zLAgV(#IjpN|!f3 zvblUfD;CLzOK&5?V4!4jK+7Q9C@W$>q(UQ z94x>9d>BUd4?Z7U3J5%mAcxT-!v8S%{0lsXK_^d^t42`8mG=_UHxIC$F*loWSLGa; zp4+IhJV*`!D4Se{2*L%{TUI!$ltne%rsrXtFPof&)j_b*FJUckZ%f1q7wLv!-im2c zchT?Xqs_)fKlu385#0JVK!Fa}Rh3(kx%UUyLR?ao&v-b$G0$WeO`w{jyr+>=kTye0 zXfZV$lq;W^k#03xsS~`tjn#cKWpO8b!Tw`&B%eZy$CIB87kxqoiVh70B%6f=7li#L zk!ZQf+?E2dU-^DAd0bZ+5=XKHCpEp!JD74s;>SGhkxV{RH5c_OExeZ$d?zsc;nG~b z3*9Pgs~M`BoRNz~*NJtmcgLQG4?oGz`I5WhQh^S^xK!-jJuzc)PDe3l&XCgR(v@Q( z@}28O7^dCY>$>qcm^J^sl_{kqI)AplYHNnrTK=o5hAi{?p7(3@B4>`Gu?VWv9jRyVP}`_2_@&w-o^6G2eb-AfhDVmCC*P2_i9Q_T!7 zbxnkZlH=xK|7m%W_aK^vZvtC5$y9GhW+n4F?;N$f?crmHS^K$TA=)mt3eU!IkJkEE zbxg)xRY{X*YR(*qpP#&RUn@JaB4J7rAATqH?I>rw6h07}w3q zIJ>;t)}Wo+HpOwkEm&5{p#pt&>x8hS{3C8@nb)-Gt)%Nx-;sYp3-~oR4Z{TY6F|?BslJ&{ij&9CguU^33;yCq#b68IJ#uaRgqW<;u^0xrC`1 zEPKPU_v-Reg| zX^7O?dG+e$mSi+4*X@BkA2oHE!$z6>XkkF$WIDJu<%<&WuT-~WFsI7CY>PH8f}bbH z7Zbc{IIPma32D1?BkX+Zqi65I*LWYc2HS{7@>kp}>|AOM&d_+n0pXK@wFaNpunkH! zBXVPZj|opg11X3L1?z0w^9w|Q z+pyM|y{vr~LPNKdw8=!W#nRJPe;Op0R(i1 zN5&BFf?in)eYat+z(NhZ)Ou6lPvg$)4g>?7fuC`8duf!l2(eSL&p6P+)_~ zi5o!0OW}`WV-YRgtcG=6mhnzGd~5rZ`u?_C;I#3Sau00VU}{^^K5-rY_B3J}onb7Q zCON#XSpdN1yyO&7N^kti?}>5M%vpN(dhX;S$2bfrmc)=II0G$5<$WE+uu}JRYNLCR z*d~y#FXUzCwWyxl}D8@E6SeZ)GjF*e~r@5I8 zD%r6ng|7Jk1?VRliaHRQ*?}Zr=m^QZ{=`UHv;b`V`)#V9@XPC@%nebdFT(#;9fBI; zaC)YhU-nT)06bHoj?<*^1IBf-eqewhnj+z~xsXt3(|wd~n);$dqvScH^aiqf&+TYH2?Df{`=%BiU4=+xYj~C#uaY!54EA z1MuAnX4)_!cf#y+s^99<*3^;bH?o~M9e}CvPsU3gH5`5S-<_Z0AKQ|-ZwU#uV|*vV z=XsdYoaN?nRHf@fKa2SFl@MAz{jy0QWLG{1bUqmFQsyx;)$4Lvp1^1v2~&PF9TxQY zOll%tp_y74(S+qVocO-p+q`f$Mt78M8dzL;q#^(af1?&d4DU>F_jL7R)1e^-VL^g| zT&OaG3Z@^MB6Ys5n*PcNb*01GovL)K-Jn;Ba#8Vax8quqTYuiM2ee@$>V35slJeix z=d4VwpwIyc&{UL5dM0BiE?ZJ;g0asZ)DI3fpECjCffp$9d&lf=K7sP&oW5AS6JTsH zxkx54#WK0}#>j*SmVfXQ&l2}x)M~2?~A?b12|; zSwXm>gfPVZ%$hiLzr0(muUvR>hGolU*(4 zqWY;!78|4HrG9liL`OqFQ`sm6U8c3BOVpuo*&Z`!6F5{}Fmy38j!7dBP0WagMf0`% z{0hQL=Z30(cd4<-;8Fo{nrUez#v~9q`K@h?ZCpoBR( zqCzfxS#})x!6%_y?A#B}X~Wn`m+BglV@%xg`8tSN9I@mA$$0vy!NvOUplV`dhw?SC zxhOQEtE-!*mHm43`s9s1iKWb8N$sK!GT4!R!LES=BP9r8uwd@hO|(%dzxw znRM7SYlV5(@pFS0b#TOV*3bp`#dJZ~0^c3#N|Keo zq?dX!z6w|#yGB>KSFa4u?`x#19H@%51?i;etHU+mJfY?BA2bsj2wKaB4<%dshmNj+ ziy97bL|ae4>BwRpT>2ohKj0~zpnWBAEm&23kaUg%IEvQ+(V`uqdC-8G- z3&G-Jc)?mPt=wf4%nWAYfyMoC5tiWf2h%#fmtirM|xu zGz?4dPC6wZ8E~pcAgv}McCup#2Fihb*&&v}zO`%ko@30bAIgC;olPxQV>P`y(ljE_ zf|tG1;N}Sy23Pp2A)k&b}l5=Xiu9ro``5?+^31V1ZLFpF?RziXseL7=|7QnlvyCSouXFNn3EazkD7b23(^V(Ng!!aXT>Ns3=Bfri zf9KZzZp3#HD#)@1-wZNDa%@>7`hjs@%D-gh(iBRwnnhX^v%$xRO6gr&0$dwR+M|RZ zUhsoCG0&!KbIfGL?q4ThOq6#d^RS7f3eLOM>--}8pUFOCo^#fpZL;9__)XWzt*mA< zKLI3{ZLe=xZh4gLncTq~rZ=}O!s511n~bFf$asE8CFvLe4bC=zKznGRRerfMc9@wt zrDm}TT=mIuKLd>q4}yqP`cP<&@Xm`(Xe*So#ju>a$pnL|vKMzP_jb}$&C*PO+#u?MQIr^c4l2C+o+fe)A6m#8`QjNo{PGECtc5)w&7@8gEKk6P|20K;XFd@fgtAPH z8*&DXPI@4v4P)6s5*bSCcHrCM4}>_ksTMp_L~~AvGn4(+M>+e+0e(RYe1AgPa{QvD zS7{v+I{2FSmH`InR=he#AX+qU33+_A^?VO?s;gYwNY?R*dbqR%mHnlmWF*@C!_gS< zSN!;~L&+k`E$b~tG+zfKtv=wntxUD01V(3Fl|SVJR*2$439_Ubza<5qrwRbDj#~5j z!8C^kSE~51|HyF=S6GYN$wj2fN`=Eq!KCb4@GmyU44E2GF$X(DO=D1yAl`6R$fUbh z)(YWbE2SYse$E@jOGsh7`QI5aTdqo13eX zhAtPqsIFfdo!y-Dl*tr>u>yRBLLw?G@j?xmhD6L1EDk~26lRj-1W4mdPz4$oCmud5 z3!pXJ2$l&LQp!uLo|LJxOpdL{1xY*r#uFt7*Q2Z-LaKwZ$X~7HfZd&6dZ`w2I0jJi zk2_U-2cx)7kp~ztUJP-Z?BQ;#xnP+rqVmK_TGu`}yn*_o-E*#U?wn~INyY?;qsKc1 zN7?J><7oih)|>dk-n0{;j{TQO#&T>qL2-3?1#}|}Y|%k9pH@_&3O2QBD`T6QFDK_( z^kU29M!BfZXsRUAE}nIY1O>OT)aO5EBhLH;T+3+PU$<6JQ*o>O#j7Flnm_2*?mK9l z5FW72J>~NZMqkrHII>J+Hlfw784nDlwN}_hcW2_e?^re5(eC_QtvXhC&+Z zn4jlEZZestatnJKdV@c63mn}#9&w-u0G$Q-P3v!|3~wKsfrZHg1C2icKWV&%806_T z%vkKXjx#m(D3karQGtrX8$0G-kZ#X*AaD1Xf|43rV`dOVxl|`NMrAd?NZ1=ac>26| zc(2TvaS>wxHm$KU+UUPXiq*0F#s2Db(7C9tqoM)cCdbV;sVYX`O;)eu4^v}RV~8LV z#$kqeduLJ2$tvnCwB!BaxZw)#&7VeE9~Rvo!8WM?Vf$B300FuT`C5wKgln-SeG4v0 zrxb*X>insDW7UlFSQ7CrxTD4;zUaMv)xthlrNiot{STjOh0N^C5`eYo2ee~mde8X% zvisoek3Ob0PfgT&g#_EW!4t>3W7e-jQi-+}ej|dnUi}HsZ()zFE7_S7-urYrS~nsf zkQImVP||e#{G((1V>AAaNMwQv(b(Q-%-2!$mfU$6YODT?0|4{rmQDJry`I+&jg5bw zAB0`;+<75J``QmWqRfiu?dPd*{?IL}G_=0IX1P>6)~Y-w8U}eb=k2IWm-_QkZ@v4n zrSen?KB!w(8gn&R?n3yxknYuyg5ir$)g4LOpv|vuyPciXBPo`4xyGg^4s3u#Rp62KLq!AmLLi_Po_c=3y+9nExWYc9O zKKBRk#Dun|24Y@t4B^C>-h6Z0^83#nE*^e)oh1;qkb8dKNMn0PF_mx5=r4P`$>!iJ zH3LgSOM^yeFsVR(;+rl=Ay?tXZs4E216mqY_%-i*32;tsc4g+Jc(oFo~@e52C z`EtfxrCv9Z$$0e*Mg$dbem;ZAYmq6n3L#k#U!~OM(rsA2Ju-SM*&0}@jah`eTBgK; z2c9$wYW-y~M8&ch3InE9*B4vC~6N4_xkAML#*KtE=lnw`kFf#}PHx86k{KmxT~xz+1pTYS@!Rh~P$d)uYIPyyHYX#T>s{iQz!rH-xroBa zX7(S>Z8YR$s^q3a{OYI|d1wXDPv@!^bBh{NUrs>vsdxW2uj~-mJ2t5+`(n%F<%-hR z3B}hs&~*h>sbXbD?gbz7yLOn*^w5c7?bVGrbp&?%T>J3c(3k8&g{>{pF1+T1+V0Mq z9Z|Iy)(v*cjm6s9=d5YN$6`xiOYKtzqGB;I%V4@we$|)nkIUg+Px}FAyqKOjDyDC^ zZ|-R!+IMb_(mj z%!u(*U;cJ&gBTlsi5wjNN#ya_r`7F1iFEb(2S6jli-Gg~4x=1pIQPfaz?d)n;7t<^ zW9?7rjkhxyciFK@UmaFNa`|pBBV58Uat(!|T*55rA+;|QGiGN{MK?trKk%O|wgBp9 znXnBh9AUL*yiJyN$Y5h{oe?@qRkr}Q!#bVZ@kT(Hz?@~EtHd5heIkQ@AzmZn1(L|g zu(}z1$@`BYXU4&}J{dbu5B9Q)i$f#hA{9)BfMzkjc>{TKn7KIj{n!ny65tUk^4h*( zijKAi-F`%Q3!N@8n4AdPMPq0rAnXprEo@nc>}@5~y7(z95ooggH9?bXx>(1On4czf zAPazN*xmKgMwv(j^-m5@ZXG2`+Yat89;~e}w$r+9HHMa*F# zwo~@(32kw@ex-smU%-lxs*AY`;kNIxaUJFiv_Q%hG|bq4xlZ-NT6hS&=|MUbj&=3d zMeL1A(o_Ov!nIIroQwC@LO$m&mIY5dr-VHamk3~3-c&`USUXjL36_2@P9DGi=1NvU zlv0`Xr)RH5z7q|^Jf9QYW5Qt?>R_gK<@XImoCmOm>02eF&cUHr!vumrvadx3WgEJl zb@VVWat2ihJ$jtDLTi_Zex)T%=WU0_LoJ)%;KmKehabQlTi#YTZoZ@)Qe;BsR5@>t zb)TQ~IGHD@H@8!N$o;F9prwrdH-J`lUrA~XaadML4heX`ptdM;R#Q?rmsigrcVM3Gutn$hv$4>2o z){g#;F+qUZGyViYI|TMKVQO(PcVqhZ#G&!>m;hz~-J-rk-t@5qx%Zf#Ikta$2*C}5 zeFx{c?Lg2s>8G*QxLd@?z9A91bVoA>dX=rC5J>H zf0zn1PrOleV!Mx8flaY5dwE;bo>&5>orff<@#8K|jbzw7xX<4OvfR4!H@5iV!jnbAm!OGUC(17>ko!yhqi5f<(0O123IvpdWzn zGK|El7A`D8P&?cT3JJSfN>RPgYKNY2LMPj<3{g(zzQecKv3qklHrY8p8GJ=`B@VBg zY*9ClzM_liQ^VNIa^pli;;GybHd&=)nk@-Rz8WP!?}-&=E<^mhI=c}9$f;1!j&cWh z7%AMGCctXbj3F^#qc94X*O@tM7%|oS&YWx<5!vuMA59QL(_LLTH-Q_RMpavv!_=eM zH;V-+g=5&Emkpd;uri{j=i&%9QsRtQ*%2X~%;{UvR7JB(kH&PSiz+lH@@2-2Oqq&- zV8?O|3!-iz2^`EWpQigb%vr4UMbp`y~r==?@%U065hBw1GA3r}Y=Ux(0pc zo^JlC4;=fW1k^#owT>;14ra*@<^XpYvg?$&>&`SWU72%_W^3}Nev>e0 zDjH)_1gqS|ZNucR>9c;==cUU{rc;ymqvjJFyIx3nZbCWyzhTPcIkh8dfjG~Rd-=w?<~sY9G2FABOT3F1{48h$tZ z{4!-IEO2hAzsYl*)+|oz65}!cCUJ8;!5?%s=U-beh1f!PeP!u-MLR= zTxXLHoLvv%7IKH};m-uXGCQi_C;r&DYQj6dM1}`JEIDBfOQowx>3x1ytcch+xhS36 zPtu(ld2CwF5ZDme0g%gm;`s}!LC1^+2`bG+y=23+bfUG2_JsIQTs4%xXj8Zhv7@7` zV>dz!B01RrZY#W+3Kc8}{R#a^RbqRW!F0XR1+T<2;1=)VpQA1S+OpsHW$Rs?#PZap z)iNNsYkpxIgQ%~+L#AMe)Y)n9^jJGyJPCH4Kqj`qfPzdQ3_sGK!o(AzdT{T^=+;EgT!PGtiEr^;64FzA&J8fNWHbF zsEg3BM^O$_5owfsIOY^J8XVAldMM2qEc;u^IeVVg-&=v}AB6u-LR!c--9;M>0~_i2 zGWYiHftzl!D1XF=#L_dEfn{r`6}??{B~eNmkF>NZxE}~ZIPCoMAYeS%ZAJ+TsO45& zyd^2t#<|W@QgkO{bbrQ_nkqry$@w{UA%b##U@+!CXhO*u{_tGn95g)84RZ1uXhFlt z4yu%ji*49lJIHx26)RyGE60iF<4j@x`0ePA42^Ywb8I^W3@RjD+$@5^6_u1#HV?Ch zO4k~iYhU$epa2*gsimUby^;L|rlXYhOA(No@@n(d;ci9X?JH%K5cZ~ zuJ_G!j09JY@?U>Q$l;{_LS$@GO2*-7+vGO3UcI9~`}LxX6iiZ@EU|l-Cy6U53P)bl z9ySPtg-15-W!n|%>n0)g{{V8pnbKQzu*qDjApl?eNq%3(xL;LvBcPXOU- zzlTi%B>1QbI^akaM?@*20GZEsO%XGFdYAly-kZr+U;W|S?rrwM-RH1->!A(JKtluR zkZ0*pkwJgV%E#SPV{1-CwcT=&vaSgFPnt)KGz*u4bD!4LQq@E5JW&4Irr4inqjVrG z-B!a|9hXjSQ;sALNa*fHdF@Y2LSw=eB0e0d9w`F?l%yqi)nb4=U~c-R7KyWMPkFMK z%|5fkv8=4sGc5^{hAi`X)Uu?Z%gSeO(tSdgm7Srx@rP}>DDS&^^^HjNm$-Q;|1sRi z3%Mj0B(ion!)G}XQ z4`pns`r$dTd8N}+l{w>`cr(j2mRZ^G8fhLPR65WnwAvG@j61ykq*l!gY0<;F>D+t? zPyk_?v>?q7fz~psUa$?FJ3C!iS5U*@^>1R+b(U@>IyEIooy=0E(ZR7e3 zXOc_Q)C0Ng_uw$2v^f&jfTceu{j&P13=iH&prHxE2F5J&WE3pL9E+{5MM+yIGQNM#wcL z(1Qr+hjRPw|4brQZ>;i{1JQKtdK z8Q6diZB21&EIGj;{TP_V`sNMJg!(8g6Oiki2>xaK7u1ax%m6_&`z=Y>3kJ91_WP+% z@A#A9g$z00&2#eJb$H5a+HRLZ6#x}f(H~YhvrepIZB@@5d$^?WFtdD0W!ToUa&YFl zn-=a|cWhaE`$BK4W&=v6I;EEx8n_acTLVF%&okB%Q?xpQZ7QOaC_x7F$6rq_oOgBY z+@r14DN{AC1>5XW?y_}?nJVX(G(MfIOqD4lD*eH?9v)do7q`QXAv8koW&k2;0{643 zTTzJcId|c|D5uVKlnRaBXIlG0 z-Bpgc%Ak%Bi`liUZvFVb|5J3{aY?mp90x%_K|}??4T^iA;V3N;RB+?UJy2B4y*0IP zZ$opHR$8t~%dOdP=6D*KTA5i{*^{NE`8I4k`67SZ*L}YHfHU}NzWkyj8Y}+^kyS|6<=_*&Om~*|Y6UwJ{EyKm0w~|F_Jw)+2y<REn)#L~93%8zinFPm5N z{&6*g1W5GmaqnuGo%ssiTyM=B;-PI^cYXT<>kzHnQR1UMAcOMIOZhf}GlRJ&LJ`Pz zs<+LKEOt_MnhXMAOBlf^^6~JLtmAg9X!fb?Ri4%n2r3>(;;rd3Lc)^pKPEQ=s$*9T z4OsCbs1E)O-NY8S`aGH$ktopCB_S^4g50!-`3J-hndH%M$2!TWkb9*pRG4LqN@iL= z1r|awhNG@DcjZ3}O2CSvL^74uC2eC)|CgBoc8iV^JIG8;;6z8wYB!f#N)d$3muBUW zbfw^7hO50DT1*~HTdrpM@^%eUl;M65iFgpxLhUvn8fkl7=GZ5GhSnU(3J4LpW3lt2 z_K}vD?d}f6h%Nu47iBA_CS{J0ilx27yb*^s{1{?UtbF80q;10;AuE1H)6%OD9O0am zuoKopS0L>>RM`-{aJnt~O(dWh0s&cwXFhVlXZFQ9s(5?fEjjn~jvTd3#_{!F;f(8) zsEX{+Xl?|xQ^Ji-&5d{&UOb}igjF!?CB2KeL}`QgC)Ur^9xYcmK&U z1Yb8WeY-1=^Wn+rn{bcZ;o*xa-1r*dN4&}UWEemaC?fk;2nqgW%rt_l{3* zg%KwU@)Xb^jcOPI;;CeaF3|ufrjT>~A#f}1BS{BGnD33hND>!am=hR>S)xx|qRTI3 zhkNGx6=VyG71t!6`Y+i74sR-|k(C0qA6O||0swqD>$LMY69pvGzka#jJ^K8*ElF+l zGeMU(u6tqiiR@85L|`(QS0Ub|{APG`l=j_H1fL)okOw|M3V1K+Q+@1k4?-PNn&|J}K#rk}5jPcpQA$<>i9K)DPjh7un2bq@K

~9Sd6AmOq;=`c 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

(9eFx>j;~`5V&-%^xX@tk~ve^ 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%0AnYrbMZAb?AnWoTNBwL$t&K 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

{k|5NZ;r$tA; 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 z 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 diff --git a/editor/editor2/CorelButton.dcr b/editor/editor2/CorelButton.dcr deleted file mode 100755 index ef31d5d3df06ddf8f2054d0af14286ad9ad0b788..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 480 zcmZQzU|>)H;{X347|28c9gGYN7C@2z|Cty<7@QgW8G;yG8GIO=7(#*k5Fp 0; - IsDefault := (itemState and ODS_FOCUS) <> 0; - end; - - GetCursorPos(CursorPos); - BtnRect.TopLeft := Parent.ClientToScreen(Point(Left, Top)); - BtnRect.BottomRight := Parent.ClientToScreen(Point(Left + Width, - Top + Height)); - FIsMouseOver := PtInRect(BtnRect, CursorPos); - -// Flags := DFCS_BUTTONPUSH or DFCS_ADJUSTRECT; -// if IsDown then Flags := Flags or DFCS_PUSHED; -// if DrawItemStruct.itemState and ODS_DISABLED <> 0 then -// Flags := Flags or DFCS_INACTIVE; - - FCanvas.Brush.Color := clBtnFace; - - if {(csDesigning in ComponentState) OR} (IsDefault) or (FCanSelect) and (IsFocused) then begin - - FCanvas.Pen.Color := clWindowText; - FCanvas.Pen.Width := 1; - FCanvas.Brush.Style := bsSolid; - FCanvas.Rectangle(R.Left, R.Top, R.Right, R.Bottom); - - InflateRect(R, -1, -1); - - end; - - FCanvas.FillRect(R); - - if (csDesigning in ComponentState) OR (FIsMouseOver) then begin - - FCanvas.Pen.Color := clWindowText; - FCanvas.MoveTo(R.Right-1, R.Top); - FCanvas.LineTo(R.Right-1, R.Bottom-1); - FCanvas.LineTo(R.Left-1, R.Bottom-1); - - FCanvas.Pen.Color := clBtnHighlight; - FCanvas.MoveTo(R.Left, R.Bottom-2); - FCanvas.LineTo(R.Left, R.Top); - FCanvas.LineTo(R.Right-1, R.Top); - - FCanvas.Pen.Color := clBtnShadow; - FCanvas.MoveTo(R.Right-2, R.Top+1); - FCanvas.LineTo(R.Right-2, R.Bottom-2); - FCanvas.LineTo(R.Left, R.Bottom-2); - - end else begin - - FCanvas.Pen.Color := clBtnHighlight; - FCanvas.Pen.Width := 1; - FCanvas.MoveTo(R.Left, R.Bottom-2); - FCanvas.LineTo(R.Left, R.Top); - FCanvas.LineTo(R.Right-1, R.Top); - - FCanvas.Pen.Color := clBtnShadow; - FCanvas.LineTo(R.Right-1, R.Bottom-1); - FCanvas.LineTo(R.Left-1, R.Bottom-1); - - end; - - if {(csDesigning in ComponentState) OR} (IsDown) then begin - - FCanvas.Brush.Color := clBtnFace; - FCanvas.FillRect(R); - - FCanvas.Pen.Color := clBtnShadow; - FCanvas.Pen.Width := 1; - FCanvas.MoveTo(R.Left, R.Bottom-2); - FCanvas.LineTo(R.Left, R.Top); - FCanvas.LineTo(R.Right-1, R.Top); - - FCanvas.Pen.Color := clBtnHighlight; - FCanvas.LineTo(R.Right-1, R.Bottom-1); - FCanvas.LineTo(R.Left-1, R.Bottom-1); - - end; - - if {(csDesigning in ComponentState) OR} (IsFocused) and (IsDefault) and (FCanSelect) then begin - - InflateRect(R, -3, -3); - FCanvas.Pen.Color := clWindowFrame; - FCanvas.Brush.Color := clBtnFace; - DrawFocusRect(FCanvas.Handle, R); - - end; - - if (IsDown) then - OffsetRect(R, 1, 1); - - { Draw caption of button } - with FCanvas do begin - FCanvas.Font := Self.Font; - Brush.Style := bsClear; - Font.Color := clBtnText; - if Enabled or ((DrawItemStruct.itemState and ODS_DISABLED) = 0) then begin - DrawText(Handle, PChar(Caption), Length(Caption), R, DT_CENTER or - DT_VCENTER or DT_SINGLELINE); - end else begin - OffsetRect(R, 1, 1); - Font.Color := clBtnHighlight; - DrawText(Handle, PChar(Caption), Length(Caption), R, DT_CENTER or - DT_VCENTER or DT_SINGLELINE); - OffsetRect(R, -1, -1); - Font.Color := clBtnShadow; - DrawText(Handle, PChar(Caption), Length(Caption), R, DT_CENTER or - DT_VCENTER or DT_SINGLELINE); - end; - end; - - finally - FCanvas.Handle := 0; - end; -end; - -procedure TCorelButton.CMFontChanged(var Message: TMessage); -begin - inherited; - Invalidate; -end; - -procedure TCorelButton.CMEnabledChanged(var Message: TMessage); -begin - inherited; - Invalidate; -end; - -procedure TCorelButton.WMLButtonDblClk(var Message: TWMLButtonDblClk); -begin - Perform(WM_LBUTTONDOWN, Message.Keys, Longint(Message.Pos)); -end; - -procedure TCorelButton.SetButtonStyle(ADefault: Boolean); -begin - - if ADefault <> IsFocused then begin - IsFocused := ADefault; - Refresh; - end; -end; - -procedure TCorelButton.CreateParams(var Params: TCreateParams); -begin - inherited CreateParams(Params); - Params.Style := Params.Style OR BS_OWNERDRAW; -end; - - -procedure Register; -begin - RegisterComponents('Standard', [TCorelButton]); -end; - -procedure TCorelButton.SetCanSelect(const Value: Boolean); -begin - FCanSelect := Value; - Repaint; -end; - -end. diff --git a/editor/editor2/Grey.ico b/editor/editor2/Grey.ico deleted file mode 100755 index 5305fa7160f05bf6ee0b9c836a8b0fb679b8b676..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2238 zcmZQzU<5)11qL9=!LWjZfkBLcfk6X^fkF%pKnxNGfd&>Zg+cuP|DS;Ygc<%b95`?Q eLw;0XGz3ONV0eZA%P1HPfzc2cu^}+fr5XT502*Nc diff --git a/editor/editor2/Logo.jpg b/editor/editor2/Logo.jpg deleted file mode 100755 index dd5f935e6d7373d11204f51f9c8bdf477e02af7c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 38159 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 YXb6my5MUk!qaiRF0wXpA2D+RB07s1!ApigX diff --git a/editor/editor2/SciLexer.dll b/editor/editor2/SciLexer.dll deleted file mode 100755 index dfa9e1dc849771b8fca804b06e8551ea2d881db1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 487424 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

mSLR4B?ZHv^le$3P_CQO`+J2o< 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īljow_YI+f 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 z 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 bZDbc%QJ%$4u)18wxfmYs|Nr}ceg*y;21nPv diff --git a/editor/editor2/UnitAddMenu.pas b/editor/editor2/UnitAddMenu.pas deleted file mode 100755 index 8dc4e60c..00000000 --- a/editor/editor2/UnitAddMenu.pas +++ /dev/null @@ -1,436 +0,0 @@ -unit UnitAddMenu; - -interface - -uses SysUtils, Classes, Graphics, Dialogs, Windows; - -function AddMenu: Boolean; -function AddPlayerMenu: Boolean; -function GetFirst(eStart: String; eSearchMain: Boolean): Integer; -function GetLast(eStart: String; eSearchMain: Boolean): Integer; -function AddIfDoesntExist(eInclude: String): Boolean; - -implementation - -uses UnitfrmMenuMaker, UnitfrmMain, UnitTextAnalyze, UnitFunc; - -{ Normal Menu } - -function AddMenu: Boolean; -var eColoredMenu, DefinedKeys: String; - i: integer; - eStr: TStringList; -begin - Result := GetFirst('public Show' + frmMenuMaker.txtMenuName.Text, True) = -1; - if not Result then - exit; - - eStr := TStringList.Create; - { Transform text } - eColoredMenu := frmMenuMaker.GetColoredMenu; - if frmMenuMaker.chkAppendOnlyMenuText.Checked then begin - frmMain.sciEditor.Lines.Add('// Created menu: ' + eColoredMenu); - exit; - end; - { Add functions } - eStr.Add(Format('public Show%s(id) {', [frmMenuMaker.txtMenuName.Text])); - eStr.Add(' show_menu(id, Keys' + frmMenuMaker.txtMenuName.Text + ', "' + eColoredMenu + '", -1, "' + frmMenuMaker.txtMenuName.Text + '")'); - if frmMenuMaker.chkAddComment.Checked then - eStr[eStr.Count -1] := eStr[eStr.Count -1] + ' // Display menu'; - eStr.Add('}'); - eStr.Add(''); - eStr.Add('public Pressed' + frmMenuMaker.txtMenuName.Text + '(id, key) {'); - if frmMenuMaker.chkAddComment.Checked then begin - eStr.Add(' /* Menu:'); - for i := 0 to frmMenuMaker.rtfEditor.Lines.Count -1 do - eStr.Add(' * ' + frmMenuMaker.rtfEditor.Lines[i]); - eStr.Add(' */'); - eStr.Add(''); - end; - eStr.Add(' switch (key) {'); - DefinedKeys := ''; - for i := 1 to Length(frmMenuMaker.txtKeys.Text) do begin - if frmMenuMaker.txtKeys.Text[i] = '0' then begin - DefinedKeys := DefinedKeys + '|(1<<9)'; - if frmMenuMaker.chkAddComment.Checked then - eStr.Add(' case 9: { // 0') - else - eStr.Add(' case 9: {'); - eStr.Add(' '); - eStr.Add(' }'); - end - else begin - DefinedKeys := DefinedKeys + '|(1<<' + IntToStr(StrToInt(frmMenuMaker.txtKeys.Text[i]) -1) + ')'; - if frmMenuMaker.chkAddComment.Checked then - eStr.Add(' case ' + IntToStr(StrToInt(frmMenuMaker.txtKeys.Text[i]) -1) + ': { // ' + frmMenuMaker.txtKeys.Text[i]) - else - eStr.Add(' case ' + IntToStr(StrToInt(frmMenuMaker.txtKeys.Text[i]) -1) + ': {'); - eStr.Add(' '); - eStr.Add(' }'); - end; - end; - Delete(DefinedKeys, 1, 1); - if frmMenuMaker.chkAddComment.Checked then - DefinedKeys := DefinedKeys + ' // Keys: ' + frmMenuMaker.txtKeys.Text; - eStr.Add(' }'); - eStr.Add('}'); - // Insert - AddIfDoesntExist('amxmodx'); - i := GetFirst('#define', True) +2; - if i = 1 then - i := GetFirst('#include', True) +2; - if i = 1 then - i := 0; - - frmMain.sciEditor.Lines.Insert(i, Format('#define Keys%s %s', [frmMenuMaker.txtMenuName.Text, DefinedKeys])); - frmMain.sciEditor.Lines.Text := frmMain.sciEditor.Lines.Text + #13 + eStr.Text; - if frmMenuMaker.chkRegisterMenuCommand.Checked then begin - i := GetFirst('register_plugin', True) +2; - if i = 1 then - i := GetFirst('public plugin_init()', True) +2; - if i = 1 then begin - eStr.Clear; - eStr.Add('public plugin_init() {'); - eStr.Add(' register_menucmd(register_menuid("' + frmMenuMaker.txtMenuName.Text + '"), Keys' + frmMenuMaker.txtMenuName.Text + ', "Pressed' + frmMenuMaker.txtMenuName.Text + '")'); - eStr.Add('}'); - frmMain.sciEditor.Lines.Insert(GetFirst('#define', True) +2, ''); - frmMain.sciEditor.Lines.Insert(GetFirst('#define', True) +3, eStr.Text); - end - else - frmMain.sciEditor.Lines.Insert(i, ' register_menucmd(register_menuid("' + frmMenuMaker.txtMenuName.Text + '"), Keys' + frmMenuMaker.txtMenuName.Text + ', "Pressed' + frmMenuMaker.txtMenuName.Text + '")'); - end; - frmMain.SetModified; - eStr.Free; - UpdateList(frmMain.sciEditor.Lines.Text); -end; - -{ Player Menu } - -function AddPlayerMenu: Boolean; -function PrepareItem(eItem: String; eDisabled: Boolean): String; // Remove colors etc. -begin - eItem := StringReplace(eItem, '\w', '', [rfReplaceAll, rfIgnoreCase]); - eItem := StringReplace(eItem, '\y', '', [rfReplaceAll, rfIgnoreCase]); - eItem := StringReplace(eItem, '\r', '', [rfReplaceAll, rfIgnoreCase]); - eItem := StringReplace(eItem, '\d', '', [rfReplaceAll, rfIgnoreCase]); - eItem := StringReplace(eItem, '%n', '%i', [rfIgnoreCase]); - eItem := StringReplace(eItem, '%v', '%s', [rfIgnoreCase]); - if eDisabled then - eItem := '\d' + eItem - else - eItem := '\w' + eItem; - Result := eItem + '^n'; -end; - -var i: integer; - eStr: TStringList; - ePlayersFrom, ePlayersTo: Integer; // Players - ePlayerFormat: String; - eNext, eExit: Integer; // Next and Back/Exit - eNextText, eBackText, eExitText: String; - eCurLineIndex: Integer; // Current .. - eCurLine: String; // .. line - DefinedKeys: String; // Action Keys -begin - Result := GetFirst('public Show' + frmMenuMaker.txtMenu.Text, True) = -1; - if not Result then begin - MessageBox(frmMenuMaker.Handle, 'Menu already exists. Please choose another name.', 'Warning', MB_ICONWARNING); - exit; - end; - - { - Kick player - - $players(1,8,%n. %v) - $next(9,9. Next) - - $exitorback(0, 0. Exit, 0. Back) - } - - eCurLine := frmMenuMaker.rtfEditor.Lines[0]; - eCurLineIndex := 0; - eNext := -1; - eExit := -1; - eStr := TStringList.Create; - // Prepare Values - try - { Players } - eCurLineIndex := GetFirst('$players', False); - eCurLine := frmMenuMaker.rtfEditor.Lines[eCurLineIndex]; - ePlayersFrom := StrToInt(Between(LowerCase(Trim(eCurLine)), '$players(', ',')); - ePlayersTo := StrToInt(Between(Trim(LowerCase(eCurLine)), ',', ',')); - while CountChars(eCurLine, ',') > 1 do - Delete(eCurLine, 1, 1); - ePlayerFormat := Between(LowerCase(eCurLine), ',', ')'); - { Next } - if GetFirst('$next', False) <> -1 then begin - eCurLineIndex := GetFirst('$next', False); - eCurLine := frmMenuMaker.rtfEditor.Lines[eCurLineIndex]; - eNext := StrToInt(Trim(Between(eCurLine, '(', ','))); - eNextText := Between(eCurLine, ',', ')'); - end; - { Exit or Back } - if GetFirst('$exitorback', False) <> -1 then begin - eCurLineIndex := GetFirst('$exitorback', False); - eCurLine := frmMenuMaker.rtfEditor.Lines[eCurLineIndex]; - eExit := StrToInt(Trim(Between(eCurLine, '(', ','))); - eExitText := Between(eCurLine, ',', ','); - while CountChars(eCurLine, ',') > 1 do - Delete(eCurLine, 1, 1); - eBackText := Between(eCurLine, ',', ')'); - end; - except - MessageBox(frmMenuMaker.Handle, PChar(Format('Syntax error at line %s: ' + #13 + '%s', [IntToStr(eCurLineIndex +1), frmMenuMaker.rtfEditor.Lines[eCurLineIndex]])), 'Error', MB_ICONERROR); - Result := False; - exit; - end; - // Check Keys - { Players } - if (ePlayersFrom < 0) or (ePlayersFrom > ePlayersTo) then begin - MessageBox(frmMenuMaker.Handle, 'Invalid start key (players)', 'Warning', MB_ICONWARNING); - Result := False; - exit; - end; - if (ePlayersTo < 0) or (ePlayersTo > 9) then begin - MessageBox(frmMenuMaker.Handle, 'Invalid stop key (players)', 'Warning', MB_ICONWARNING); - Result := False; - exit; - end; - { Next, Exit and Custom keys} - eCurLine := ''; - for i := ePlayersFrom to ePlayersTo do - eCurLine := eCurLine + IntToStr(i); - - if Pos(IntToStr(eNext), eCurLine) > 0 then begin - MessageBox(frmMenuMaker.Handle, PChar(Format('"Next" key already in use (%s). Delete it or choose another one and try again.', [IntToStr(eNext)])), 'Warning', MB_ICONWARNING); - Result := False; - exit; - end; - if Pos(IntToStr(eExit), eCurLine) > 0 then begin - MessageBox(frmMenuMaker.Handle, PChar(Format('"Exit" key already in use (%s). Delete it or choose another one and try again.', [IntToStr(eExit)])), 'Warning', MB_ICONWARNING); - Result := False; - exit; - end; - eCurLine := eCurLine + IntToStr(eNext); - eCurLine := eCurLine + IntToStr(eExit); - // Insert Code - try - { Includes } - AddIfDoesntExist('amxmodx'); - AddIfDoesntExist('amxmisc'); - { Define Keys } - DefinedKeys := ''; - if Length(eCurLine) <> 0 then begin - for i := 1 to Length(eCurLine) do begin - if eCurLine[i] = '0' then - DefinedKeys := DefinedKeys + '|(1<<9)' - else begin - eCurLine[i] := IntToStr(StrToInt(eCurLine[i]) -1)[1]; - DefinedKeys := DefinedKeys + '|(1<<' + eCurLine[i] + ')'; - end; - end; - Delete(DefinedKeys, 1, 1); - end; - i := GetLast('#define', True) +2; - if i = 1 then - i := GetLast('#include', True) +2; - if i = 1 then - i := 0; - frmMain.sciEditor.Lines.Insert(i, Format('#define Keys%s %s', [frmMenuMaker.txtMenu.Text, DefinedKeys])); - frmMain.sciEditor.Lines.Insert(i +1, 'new MenuPos' + frmMenuMaker.txtMenu.Text); - frmMain.sciEditor.Lines.Insert(i +2, 'new MenuPlayers' + frmMenuMAker.txtMenu.Text + '[32]'); - { Register } - i := GetFirst('register_plugin', True) +2; - if i = 1 then - i := GetFirst('public plugin_init()', True) +2; - if i = 1 then begin - eStr.Clear; - eStr.Add('public plugin_init() {'); - eStr.Add(' register_menucmd(register_menuid("' + frmMenuMaker.txtMenu.Text + '"), Keys' + frmMenuMaker.txtMenu.Text + ', "Pressed' + frmMenuMaker.txtMenu.Text + '")'); - eStr.Add('}'); - frmMain.sciEditor.Lines.Insert(GetFirst('#define', True) +2, ''); - frmMain.sciEditor.Lines.Insert(GetFirst('#define', True) +3, eStr.Text); - end - else - frmMain.sciEditor.Lines.Insert(i, ' register_menucmd(register_menuid("' + frmMenuMaker.txtMenu.Text + '"), Keys' + frmMenuMaker.txtMenu.Text + ', "Pressed' + frmMenuMaker.txtMenu.Text + '")'); - { Show Menu Functions (thx to xeroblood for code example) } - eStr.Clear; - eStr.Add('public Show' + frmMenuMaker.txtMenu.Text + '(id) {'); - eStr.Add(' ShowMenu' + frmMenuMaker.txtMenu.Text + '(id, MenuPos' + frmMenuMaker.txtMenu.Text + ' = 0)'); - eStr.Add(' return PLUGIN_HANDLED'); - eStr.Add('}'); - eStr.Add(''); - eStr.Add('public ShowMenu' + frmMenuMaker.txtMenu.Text + '(id, position) {'); - if frmMenuMaker.chkComments.Checked then - eStr.Add(' // Menu stuff //'); - eStr.Add(' if (position < 0) { return 0; }'); - eStr.Add(' '); - eStr.Add(' new i, k'); - eStr.Add(' new MenuBody[255]'); - eStr.Add(' new CurrentKey = ' + IntToStr(ePlayersFrom -1)); - eStr.Add(' new Start = position * ' + IntToStr(ePlayersTo - ePlayersFrom)); - eStr.Add(' new Num'); - eStr.Add(' new UserName[32]'); - eStr.Add(' '); - eStr.Add(' get_players(MenuPlayers' + frmMenuMaker.txtMenu.Text + ', Num)'); - eStr.Add(' if (Start >= Num) { Start = position = MenuPos' + frmMenuMaker.txtMenu.Text + ' = 0; }'); - eCurLine := frmMenuMaker.GetColoredMenu; - eCurLine := Copy(eCurLine, 1, Pos('$players', eCurLine) -3); - Insert('\R%d/%d^n\w', eCurLine, Pos('^n', eCurLine)); - eStr.Add(' new Len = format(MenuBody, 255, "' + eCurLine + '", position+1, (Num / ' + IntToStr(ePlayersTo - ePlayersFrom) + ' + ((Num % ' + IntToStr(ePlayersTo - ePlayersFrom) + ') ? 1 : 0 )) )'); - eStr.Add(' new End = Start + ' + IntToStr(ePlayersTo - ePlayersFrom)); - if eExit = 0 then - eStr.Add(' new Keys = (1<<9)') - else - eStr.Add(' new Keys = (1<<' + IntToStr(eExit -1) + ')'); - eStr.Add(' if (End > Num) { End = Num; }'); - eStr.Add(' '); - eStr.Add(' for(i=Start;i 0 then - eStr.Add(' case ' + IntToStr(eNext -1) + ': ShowMenu' + frmMenuMaker.txtMenu.Text + '(id, ++MenuPos' + frmMenuMaker.txtMenu.Text + ') // More Option') - else - eStr.Add(' case 9: ShowMenu' + frmMenuMaker.txtMenu.Text + '(id, ++MenuPos' + frmMenuMaker.txtMenu.Text + ') // More Option'); - - if eExit <> 0 then - eStr.Add(' case ' + IntToStr(eExit -1) + ': ShowMenu' + frmMenuMaker.txtMenu.Text + '(id, --MenuPos' + frmMenuMaker.txtMenu.Text + ') // Back Option') - else - eStr.Add(' case 9: ShowMenu' + frmMenuMaker.txtMenu.Text + '(id, --MenuPos' + frmMenuMaker.txtMenu.Text + ') // Back Option'); - end - else begin - if eNext <> 0 then - eStr.Add(' case ' + IntToStr(eNext -1) + ': ShowMenu' + frmMenuMaker.txtMenu.Text + '(id, ++MenuPos' + frmMenuMaker.txtMenu.Text + ')') - else - eStr.Add(' case 9: ShowMenu' + frmMenuMaker.txtMenu.Text + '(id, ++MenuPos' + frmMenuMaker.txtMenu.Text + ')'); - if eExit <> 0 then - eStr.Add(' case ' + IntToStr(eExit -1) + ': ShowMenu' + frmMenuMaker.txtMenu.Text + '(id, --MenuPos' + frmMenuMaker.txtMenu.Text + ')') - else - eStr.Add(' case 9: ShowMenu' + frmMenuMaker.txtMenu.Text + '(id, --MenuPos' + frmMenuMaker.txtMenu.Text + ')'); - end; - eStr.Add(' default: {'); - if frmMenuMaker.chkComments.Checked then - eStr.Add(' // Get User ID and Username'); - eStr.Add(' new PlayerID = MenuPlayers' + frmMenuMaker.txtMenu.Text + '[MenuPos' + frmMenuMaker.txtMenu.Text + ' * ' + IntToStr(ePlayersTo - ePlayersFrom) + ' + key]'); - eStr.Add(' new UserName[32]'); - eStr.Add(' get_user_name(PlayerID, UserName, 31)'); - if frmMenuMaker.chkComments.Checked then - eStr.Add(' // Do actions here') - else - eStr.Add(' '); - eStr.Add(' }'); - eStr.Add(' }'); - eStr.Add(' return PLUGIN_HANDLED'); - eStr.Add('}'); - frmMain.sciEditor.Lines.Text := frmMain.sciEditor.Lines.Text + #13 + eStr.Text; - except - MessageBox(frmMenuMaker.Handle, PChar('An error occured while inserting code!'), 'Warning', MB_ICONWARNING); - end; - frmMain.SetModified; - eStr.Free; -end; - -{ Functions } - -function GetFirst(eStart: String; eSearchMain: Boolean): Integer; -var i: integer; -begin - eStart := LowerCase(Trim(eStart)); - Result := -1; - if eSearchMain then begin - for i := 0 to frmMain.sciEditor.Lines.Count -1 do begin - if Pos(eStart, LowerCase(Trim(frmMain.sciEditor.Lines[i]))) = 1 then begin - Result := i; - exit; - end; - end; - end - else begin - for i := 0 to frmMenuMaker.rtfEditor.Lines.Count -1 do begin - if Pos(eStart, LowerCase(Trim(frmMenuMaker.rtfEditor.Lines[i]))) = 1 then begin - Result := i; - exit; - end; - end; - end; -end; - -function GetLast(eStart: String; eSearchMain: Boolean): Integer; -var i: integer; -begin - eStart := LowerCase(Trim(eStart)); - Result := -1; - if eSearchMain then begin - for i := 0 to frmMain.sciEditor.Lines.Count -1 do begin - if Pos(eStart, LowerCase(Trim(frmMain.sciEditor.Lines[i]))) = 1 then - Result := i; - end; - end - else begin - for i := 0 to frmMenuMaker.rtfEditor.Lines.Count -1 do begin - if Pos(eStart, LowerCase(Trim(frmMenuMaker.rtfEditor.Lines[i]))) = 1 then - Result := i; - end; - end; -end; - -function AddIfDoesntExist(eInclude: String): Boolean; -var i: integer; - eLine: String; -begin - Result := True; - eInclude := RemoveSpaces(LowerCase(eInclude)); - for i := 0 to frmMain.sciEditor.Lines.Count -1 do begin - eLine := LowerCase(RemoveSpaces(frmMain.sciEditor.Lines[i])); - eLine := StringReplace(eLine, '<', '', [rfReplaceAll]); - eLine := StringReplace(eLine, '>', '', [rfReplaceAll]); - eLine := StringReplace(eLine, '"', '', [rfReplaceAll]); - if eLine = '#include' + eInclude then begin - Result := False; - exit; - end; - end; - - i := GetLast('#include', True); - if i = -1 then - i := 0; - - frmMain.sciEditor.Lines.Insert(i, '#include <' + eInclude + '>'); -end; - -end. diff --git a/editor/editor2/UnitFunc.pas b/editor/editor2/UnitFunc.pas deleted file mode 100755 index d9b8c98e..00000000 --- a/editor/editor2/UnitFunc.pas +++ /dev/null @@ -1,656 +0,0 @@ -unit UnitFunc; - -interface - -uses SysUtils, Classes, IniFiles, Graphics, ScintillaLanguageManager, - Windows, Messages, SciLexerMod, tlhelp32, Controls, Forms, SciDocuments; - -procedure Delay(eTime: Integer); -function CountChars(eIn: String; eChar: Char): Integer; -function Between(eText, eFirst, eSecond: String): String; -procedure SendOpen(eFile: String); -procedure Load; -procedure Save; -procedure Apply; -function GetConsoleOutput(const Command: String): Boolean; -procedure KillIt(dwProcID: DWORD); -function GetProcID(sProcName: String): Integer; -procedure DoCompile; -function ShowSaveDialog(Caption, SaveCaption, CloseCaption: String): Boolean; -procedure AppendFileExt; -function RemoveSpaces(eInput: String): String; - -var eErrorLine: Integer; - eHints, eWarnings, eErrors: Integer; - -implementation - -uses UnitfrmMain, UnitfrmOptions, UnitfrmAbout, - UnitfrmDebug, UnitfrmSaveDialog; - -procedure Delay(eTime: Integer); -var i: integer; -begin - for i := 1 to eTime do begin - Sleep(1); - Application.ProcessMessages; - end; -end; - -function CountChars(eIn: String; eChar: Char): Integer; -var i: integer; -begin - Result := 0; - if Length(eIn) <> 0 then begin - for i := 1 to Length(eIn) do begin - if eIn[i] = eChar then - Inc(Result, 1); - end; - end; -end; - -function Between(eText, eFirst, eSecond: String): String; -var eTemp: String; -begin -if (Pos(eFirst, eText) = 0) or (Pos(eSecond, eText) = 0) then - Result := '' -else begin - eTemp := eText; - Delete(eTemp, 1, Pos(eFirst, eText) + Length(eFirst) - 1); - Delete(eTemp, Pos(eSecond, eTemp), Length(eTemp)); - Result := eTemp; -end; -end; - -procedure SendOpen(eFile: String); -var HTargetWnd: HWND; - ACopyDataStruct: TCopyDataStruct; -begin - with ACopyDataStruct do - begin - dwData := 0; - cbData := Length(eFile) + 1; - lpData := PChar(eFile); - end; - - HTargetWnd := FindWindow('TfrmMain', 'AMXX-Edit v2'); - - if HTargetWnd <> 0 then - SendMessage(HTargetWnd, WM_COPYDATA, 0, LongInt(@ACopyDataStruct)); -end; - -procedure Load; -var eFile: TIniFile; -begin - if not FileExists(ExtractFilePath(ParamStr(0)) + 'Config.ini') then - exit; - - eFile := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'Config.ini'); - with frmSettings do begin - { Editor } - cboFoldingStyle.ItemIndex := eFile.ReadInteger('Editor', 'FoldingStyle', 0); - chkAutoComplete.Checked := eFile.ReadBool('Editor', 'Auto-Complete', True); - chkHints.Checked := eFile.ReadBool('Editor', 'Hints', True); - chkHighlighting.Checked := eFile.ReadBool('Editor', 'Highlighting', True); - chkAutoIndent.Checked := eFile.ReadBool('Editor', 'AutoIndent', True); - chkBrackets.Checked := eFile.ReadBool('Editor', 'HighlightBrackets', True); - { Directories } - txtAMXXPath.Text := eFile.ReadString('Directories', 'AMXX', ''); - txtHalfLife.Text := eFile.ReadString('Directories', 'Half-Life', ''); - txtSave.Text := eFile.ReadString('Directories', 'SaveTarget', ''); - { Colors } - cboComments.Selected := eFile.ReadInteger('Colors', 'Comments', clGreen); - cboDirectives.Selected := eFile.ReadInteger('Colors', 'Directives', clTeal); - cboOperators.Selected := eFile.ReadInteger('Colors', 'Operators', clNavy); - cboStrings.Selected := eFile.ReadInteger('Colors', 'Strings', clBlue); - cboKeywords.Selected := eFile.ReadInteger('Colors', 'Keywords', clRed); - cboActiveLine.Selected := eFile.ReadInteger('Colors', 'ActiveLine', $00FFE6E6); - { FTP } - txtHost.Text := eFile.ReadString('FTP', 'Host', ''); - txtPort.Text := IntToStr(eFile.ReadInteger('FTP', 'Port', 21)); - txtUser.Text := eFile.ReadString('FTP', 'Username', ''); - txtPassword.Text := eFile.ReadString('FTP', 'Password', ''); - txtStandardDir.Text := eFile.ReadString('FTP', 'DefaultDir', '\'); - { View } - cboCodeExplorer.ItemIndex := eFile.ReadInteger('View', 'ShowCodeExplorer', 0); - chkStatusbar.Checked := eFile.ReadBool('View', 'Statusbar', True); - { Char completer } - frmSettings.chkAutoCloseBrackets.Checked := eFile.ReadBool('CharCompleter', 'AutoCloseBrackets', False); - frmSettings.chkAutoCloseQuotes.Checked := eFile.ReadBool('CharCompleter', 'AutoCloseQuotes', False); - { Compiler Output } - if eFile.ReadBool('View', 'CompileOutputInWindow', True) then - frmSettings.optWindow.Checked := True - else - frmSettings.optList.Checked := True; - { Misc } - chkReload.Checked := eFile.ReadBool('Misc', 'AutoReload', True); - chkAutoAddPlugins.Checked := eFile.ReadBool('Misc', 'AutoAdd', True); - end; - eFile.Free; -end; - -procedure Save; -var eFile: TIniFile; -begin - eFile := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'Config.ini'); - with frmSettings do begin - { Editor } - eFile.WriteInteger('Editor', 'FoldingStyle', cboFoldingStyle.ItemIndex); - eFile.WriteBool('Editor', 'Auto-Complete', chkAutoComplete.Checked); - eFile.WriteBool('Editor', 'Hints', chkHints.Checked); - eFile.WriteBool('Editor', 'Highlighting', chkHighlighting.Checked); - eFile.WriteBool('Editor', 'AutoIndent', chkAutoIndent.Checked); - eFile.WriteBool('Editor', 'HighlightBrackets', chkBrackets.Checked); - { Directories } - eFile.WriteString('Directories', 'AMXX', txtAMXXPath.Text); - eFile.WriteString('Directories', 'Half-Life', txtHalfLife.Text); - eFile.WriteString('Directories', 'SaveTarget', txtSave.Text); - { Colors } - eFile.WriteInteger('Colors', 'Comments', cboComments.Selected); - eFile.WriteInteger('Colors', 'Directives', cboDirectives.Selected); - eFile.WriteInteger('Colors', 'Operators', cboOperators.Selected); - eFile.WriteInteger('Colors', 'Strings', cboStrings.Selected); - eFile.WriteInteger('Colors', 'Keywords', cboKeywords.Selected); - eFile.WriteInteger('Colors', 'ActiveLine', cboActiveLine.Selected); - { FTP } - eFile.WriteString('FTP', 'Host', txtHost.Text); - eFile.WriteString('FTP', 'Port', txtPort.Text); - eFile.WriteString('FTP', 'Username', txtUser.Text); - eFile.WriteString('FTP', 'Password', txtPassword.Text); - eFile.WriteString('FTP', 'DefaultDir', txtStandardDir.Text); - { View } - eFile.WriteInteger('View', 'ShowCodeExplorer', cboCodeExplorer.ItemIndex); - eFile.WriteBool('View', 'Statusbar', chkStatusbar.Checked); - { Char completer } - eFile.WriteBool('CharCompleter', 'AutoCloseBrackets', frmSettings.chkAutoCloseBrackets.Checked); - eFile.WriteBool('CharCompleter', 'AutoCloseQuotes', frmSettings.chkAutoCloseQuotes.Checked); - { Compiler Output } - eFile.WriteBool('View', 'CompileOutputInWindow', frmSettings.optWindow.Checked); - { Misc } - eFile.WriteBool('Misc', 'AutoReload', chkReload.Checked); - eFile.WriteBool('Misc', 'AutoAdd', chkAutoAddPlugins.Checked); - end; - eFile.Free; -end; - -procedure Apply; -function PathComplete(eInput: String): String; -var eBackup: String; -begin - if Trim(eInput) = '' then - exit; - - eBackup := eInput; - while Length(eInput) > 1 do - Delete(eInput, 1, 1); - if eInput <> '\' then - Result := eBackup + '\' - else - Result := eBackup; -end; - -begin - with frmMain do begin - { Folding } - case frmSettings.cboFoldingStyle.ItemIndex of - 0: sciEditor.FoldMarkerType := sciMarkArrows; - 1: sciEditor.FoldMarkerType := sciMarkBox; - 2: sciEditor.FoldMarkerType := sciMarkCircle; - 3: sciEditor.FoldMarkerType := sciMarkPlusMinus; - end; - if frmSettings.cboFoldingStyle.ItemIndex = 4 then - sciEditor.Folding := sciEditor.Folding - [foldFold] - else - sciEditor.Folding := sciEditor.Folding + [foldFold]; - { Auto Complete } - sacComplete.Disabled := not frmSettings.chkAutoComplete.Checked; - { Hints } - cltEditor.Disabled := not frmSettings.chkHints.Checked; - { Colors } - with sciEditor.LanguageManager.LanguageList.Find('SMALL').Styles do begin - TSciStyle(Items[0]).ForeColor := frmSettings.cboComments.Selected; - TSciStyle(Items[1]).ForeColor := frmSettings.cboDirectives.Selected; - TSciStyle(Items[2]).ForeColor := frmSettings.cboOperators.Selected; - TSciStyle(Items[3]).ForeColor := frmSettings.cboStrings.Selected; - TSciStyle(Items[4]).ForeColor := frmSettings.cboKeywords.Selected; - TSciStyle(Items[5]).ForeColor := frmSettings.cboComments.Selected; - TSciStyle(Items[6]).ForeColor := TSciStyle(Items[2]).ForeColor; - TSciStyle(Items[7]).ForeColor := frmSettings.cboComments.Selected; - TSciStyle(Items[8]).ForeColor := frmSettings.cboComments.Selected; - end; - frmMain.sciEditor.Caret.LineBackColor := frmSettings.cboActiveLine.Selected; - - if frmSettings.chkHighlighting.Checked then - frmMain.sciEditor.LanguageManager.SelectedLanguage := 'SMALL' - else - frmMain.sciEditor.LanguageManager.SelectedLanguage := 'null'; - { Check directories } - frmSettings.txtAMXXPath.Text := PathComplete(frmSettings.txtAMXXPath.Text); - frmSettings.txtSave.Text := PathComplete(frmSettings.txtSave.Text); - { View } - case frmSettings.cboCodeExplorer.ItemIndex of - 0: begin - frmMain.splFunctions.Visible := True; - frmMain.pnlFunctions.Visible := True; - frmMain.pnlFunctions.Width := 150; - frmMain.pnlSpacerLeft.Cursor := crDefault; - end; - 1: begin - frmMain.splFunctions.Visible := False; - frmMain.pnlFunctions.Visible := True; - frmMain.pnlFunctions.Width := 5; - frmMain.pnlSpacerLeft.Cursor := crHSplit; - end; - 2: begin - frmMain.pnlFunctions.Visible := False; - frmMain.splFunctions.Visible := False; - frmMain.pnlSpacerLeft.Cursor := crDefault; - end; - end; - frmMain.sbInfo.Visible := frmSettings.chkStatusbar.Checked; - frmMain.sciEditor.BraceHilite := frmSettings.chkBrackets.Checked; - { Char completer } - frmMain.sciEditor.AutoCloseBraces := frmSettings.chkAutoCloseBrackets.Checked; - frmMain.sciEditor.AutoCloseQuotes := frmSettings.chkAutoCloseQuotes.Checked; - end; -end; - -procedure DoAdd(eStream: TMemoryStream); -var eStr: TStringList; - i: integer; - eErrLine: Integer; - eType, eBackup, eTemp: String; -begin - eStr := TStringList.Create; - eStr.LoadFromStream(eStream); - - eHints := 0; - eWarnings := 0; - eErrors := 0; - eType := ''; - eErrorLine := -1; - - for i := 2 to eStr.Count -1 do begin - try - if eStr[i] <> '' then begin - if (Pos(': fatal error', eStr[i]) <> 0) or (Pos(': error', eStr[i]) <> 0) or (Pos(': warning', eStr[i]) <> 0) or (Pos(': hint', eStr[i]) <> 0) then begin - eBackup := eStr[i]; - if (Pos(': fatal error', eStr[i]) <> 0) or (Pos(': error', eStr[i]) <> 0) then begin - Inc(eErrors, 1); - eType := 'Error'; - end - else if Pos(': warning', eStr[i]) <> 0 then begin - Inc(eWarnings, 1); - eType := 'Warning'; - end - else if Pos(': hint', eStr[i]) <> 0 then begin - Inc(eHints, 1); - eType := 'Hint'; - end; - - eErrLine := -1; - while (Pos('(', eStr[i]) <> 1) and (Length(eStr[i]) > 0) do - eStr[i] := Copy(eStr[i], 2, Length(eStr[i])); - try - eTemp := Copy(eStr[i], 2, Pos(')', eStr[i]) -2); - if Pos(#32, eTemp) <> 0 then - eTemp := Copy(eTemp, 1, Pos(#32, eTemp) -1); - eErrLine := StrToInt(eTemp); - if (eErrorLine = -1) and (eType = 'Error') then - eErrorLine := eErrLine; - except - if (eErrorLine = -1) and (eType = 'Error') then - eErrorLine := frmMain.sciEditor.Lines.Count -1; - end; - eStr[i] := Copy(eStr[i], 3, Length(eStr[i])); - while (Pos(':', eStr[i]) > 3) and (Length(eStr[i]) > 0) do - eStr[i] := Copy(eStr[i], 2, Length(eStr[i])); - eStr[i] := Copy(eStr[i], 4, Length(eStr[i])); - eStr[i] := Copy(eStr[i], Pos(':', eStr[i]) +2, Length(eStr[i])); - if Pos(': fatal error', eBackup) <> 0 then - eStr[i] := 'Fatal error: ' + eStr[i] - else if eStr[i] = '' then - eStr[i] := eBackup - else - eStr[i] := eType + ': ' + eStr[i] + ' on line ' + IntToStr(eErrLine); - if frmSettings.optWindow.Checked then begin - frmDebug.lblErrors.Caption := ' Errors: ' + IntToStr(eErrors); - frmDebug.lblWarnings.Caption := ' Warnings: ' + IntToStr(eWarnings); - frmDebug.lblHints.Caption := ' Hints: ' + IntToStr(eHints); - end; - end - else if (eStr[i] = 'Done.') or (Pos(' Error', eStr[i]) <> 0) or (Pos(' Warning', eStr[i]) <> 0) or (Pos(' Hint', eStr[i]) <> 0) then begin - if frmSettings.optWindow.Checked then begin - if eErrors <> 0 then - frmDebug.lblStatus.Caption := ' Done. There are errors.' - else if eWarnings <> 0 then - frmDebug.lblStatus.Caption := ' Done. There are warnings.' - else if eHints <> 0 then - frmDebug.lblStatus.Caption := ' Done. There are hints.' - else - frmDebug.lblStatus.Caption := ' Done.'; - frmDebug.lblStatus.Font.Style := [fsBold]; - end - else begin - if eErrors <> 0 then - frmMain.lvDebug.Items.Add.Caption := 'Done. There are errors.' - else if eWarnings <> 0 then - frmMain.lvDebug.Items.Add.Caption := 'Done. There are warnings.' - else if eHints <> 0 then - frmMain.lvDebug.Items.Add.Caption := 'Done. There are hints.' - else - frmMain.lvDebug.Items.Add.Caption := 'Done.'; - - if eErrorLine <> -1 then - frmMain.ShowErrorLine; - eStr.Free; - exit; - end; - end; - - if frmSettings.optWindow.Checked then begin - frmDebug.lstOutput.Items.Add(eStr[i]); - frmDebug.lstOutput.ItemIndex := frmDebug.lstOutput.Items.Count -1; - frmDebug.Repaint; - end - else begin - frmMain.lvDebug.Items.Add.Caption := eStr[i]; - frmMain.lvDebug.ItemIndex := frmDebug.lstOutput.Items.Count -1; - frmMain.Repaint; - end; - end; - except - // nothing - end; - end; - eStr.Free; -end; - -function GetConsoleOutput(const Command: String): Boolean; -var - StartupInfo: TStartupInfo; - ProcessInfo: TProcessInformation; - SecurityAttr: TSecurityAttributes; - PipeOutputRead: THandle; - PipeOutputWrite: THandle; - PipeErrorsRead: THandle; - PipeErrorsWrite: THandle; - Succeed: Boolean; - Buffer: array [0..255] of Char; - NumberOfBytesRead: DWORD; - Stream: TMemoryStream; -begin - frmDebug.Compiling := True; - FillChar(ProcessInfo, SizeOf(TProcessInformation), 0); - - FillChar(SecurityAttr, SizeOf(TSecurityAttributes), 0); - SecurityAttr.nLength := SizeOf(SecurityAttr); - SecurityAttr.bInheritHandle := True; - SecurityAttr.lpSecurityDescriptor := nil; - - CreatePipe(PipeOutputRead, PipeOutputWrite, @SecurityAttr, 0); - CreatePipe(PipeErrorsRead, PipeErrorsWrite, @SecurityAttr, 0); - - FillChar(StartupInfo, SizeOf(TStartupInfo), 0); - StartupInfo.cb:=SizeOf(StartupInfo); - StartupInfo.hStdInput := 0; - StartupInfo.hStdOutput := PipeOutputWrite; - StartupInfo.hStdError := PipeErrorsWrite; - StartupInfo.wShowWindow := SW_HIDE; - StartupInfo.dwFlags := STARTF_USESHOWWINDOW or STARTF_USESTDHANDLES; - - if CreateProcess(nil, PChar(command), nil, nil, true, - CREATE_DEFAULT_ERROR_MODE or CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS, nil, nil, - StartupInfo, ProcessInfo) then begin - Result := True; - CloseHandle(PipeOutputWrite); - CloseHandle(PipeErrorsWrite); - - Stream := TMemoryStream.Create; - try - while True do begin - Succeed := ReadFile(PipeOutputRead, Buffer, 255, NumberOfBytesRead, nil); - if not Succeed then Break; - Stream.Write(Buffer, NumberOfBytesRead); - end; - Stream.Position := 0; - DoAdd(Stream); - finally - Stream.Free; - end; - CloseHandle(PipeOutputRead); - - try - while True do - begin - Succeed := ReadFile(PipeErrorsRead, Buffer, 255, NumberOfBytesRead, nil); - if not Succeed then Break; - end; - finally - end; - CloseHandle(PipeErrorsRead); - - WaitForSingleObject(ProcessInfo.hProcess, INFINITE); - CloseHandle(ProcessInfo.hProcess); - end - else - begin - Result := False; - CloseHandle(PipeOutputRead); - CloseHandle(PipeOutputWrite); - CloseHandle(PipeErrorsRead); - CloseHandle(PipeErrorsWrite); - end; - frmDebug.Compiling := False; -end; - - -procedure KillIt(dwProcID: DWORD); -var - hProcess : Cardinal; -begin - hProcess := OpenProcess(SYNCHRONIZE or PROCESS_TERMINATE, False, dwProcID); - TerminateProcess(hProcess, 0); -end; - -function GetProcID(sProcName: String): Integer; -var - hProcSnap: THandle; - pe32: TProcessEntry32; -begin - result := -1; - hProcSnap := CreateToolHelp32SnapShot(TH32CS_SNAPPROCESS, 0); - if hProcSnap = INVALID_HANDLE_VALUE then exit; - - pe32.dwSize := SizeOf(ProcessEntry32); - - if Process32First(hProcSnap, pe32) = true then - while Process32Next(hProcSnap, pe32) = true do - begin - if pos(sProcName, pe32.szExeFile) <> 0 then - result := pe32.th32ProcessID; - end; -end; - -procedure DoCompile; -var eStr: TStringList; - i: integer; - eFound: Boolean; -begin - if (FileExists(frmSettings.txtAMXXPath.Text + 'scripting\amxxsc.exe')) and (FileExists(frmSettings.txtAMXXPath.Text + 'configs\plugins.ini')) then begin - if frmMain.dtcEditor.ActiveDocument.IsUntitled then begin - if DirectoryExists(frmSettings.txtSave.Text) then - frmMain.sdSave.InitialDir := frmSettings.txtSave.Text; - - if frmMain.sdSave.Execute then begin - try - AppendFileExt; - frmMain.dtcEditor.ActiveDocument.Modified := False; - frmMain.dtcEditor.ActiveDocument.FileName := frmMain.sdSave.FileName; - frmMain.sciEditor.SaveToFile(frmMain.dtcEditor.ActiveDocument.FileName); - except - // :F - end; - end - else - exit; - end - else - frmMain.acSave.Execute; - Screen.Cursor := crHourGlass; - if frmSettings.chkAutoAddPlugins.Checked then begin - eStr := TStringList.Create; - eStr.LoadFromFile(frmSettings.txtAMXXPath.Text + 'configs\plugins.ini'); - eFound := False; - for i := 0 to eStr.Count -1 do begin - if Pos(ChangeFileExt(ExtractFileName(frmMain.dtcEditor.ActiveDocument.FileName), '.amxx'), TrimLeft(eStr[i])) = 1 then - eFound := True; - end; - if not eFound then begin - eStr.Add(ChangeFileExt(ExtractFileName(frmMain.dtcEditor.ActiveDocument.FileName), '.amxx')); - eStr.SaveToFile(frmSettings.txtAMXXPath.Text + 'configs\plugins.ini'); - end; - eStr.Free; - end; - try - frmMain.atbToolBar.RecreateControls; - except - // :F - end; - - if frmSettings.optWindow.Checked then begin - frmDebug.lblFile.Caption := ' File: ' + ExtractFileName(frmMain.dtcEditor.ActiveDocument.FileName); - frmDebug.lblStatus.Font.Style := []; - frmDebug.lblStatus.Caption := ' Status: Compiling...'; - frmDebug.lblHints.Caption := ' Hints: 0'; - frmDebug.lblWarnings.Caption := ' Warnings: 0'; - frmDebug.lblErrors.Caption := ' Errors: 0'; - frmDebug.lstOutput.Items.Text := 'Compiler Output:'; - frmDebug.Show; - frmDebug.Repaint; - end - else begin - frmMain.lvDebug.Clear; - frmMain.lvDebug.Items.Add.Caption := 'Compiling ' + ExtractFileName(frmMain.dtcEditor.ActiveDocument.FileName) + '...'; - frmMain.lvDebug.Visible := True; - frmMain.Repaint; - end; - GetConsoleOutput(frmSettings.txtAMXXPath.Text + 'scripting\amxxsc.exe ' + - '"' + frmMain.dtcEditor.ActiveDocument.FileName + '" ' + - '"-o' + frmSettings.txtAMXXPath.Text + 'plugins\' + ChangeFileExt(ExtractFileName(frmMain.dtcEditor.ActiveDocument.FileName), '.amxx') + '"'); - Screen.Cursor := crDefault; - end - else - MessageBox(frmMain.Handle, 'Couldn''t find amxxsc.exe or plugins.ini. Check your settings and try again.', 'Error', MB_ICONERROR); -end; - -function ShowSaveDialog(Caption, SaveCaption, CloseCaption: String): Boolean; -function TabByName(eName: String): TSciDoc; -var i: integer; -begin - Result := nil; - for i := 0 to frmMain.dtcEditor.Count -1 do begin - if frmMain.dtcEditor.Tabs[i] = eName then - Result := frmMain.dtcEditor.Document[i]; - end; -end; - -var i: integer; - eStr: TStringList; -begin - eStr := TStringList.Create; - frmSaveDialog.Caption := Caption; - frmSaveDialog.SaveCaption := SaveCaption; - frmSaveDialog.CloseCaption := CloseCaption; - frmSaveDialog.cmdSave.Caption := CloseCaption; - frmSaveDialog.lstFiles.Clear; - for i := 0 to frmMain.dtcEditor.Tabs.Count -1 do begin - if (frmMain.dtcEditor.Document[i].Modified) then - frmSaveDialog.lstFiles.Items.Add(frmMain.dtcEditor.Tabs[i]) - else if (frmMain.dtcEditor.Document[i].IsUntitled) then - frmSaveDialog.lstFiles.Items.Add(frmMain.dtcEditor.Tabs[i]); - end; - - if (frmMain.dtcEditor.Tabs.Count = 1) and (frmMain.sciEditor.Lines.Text = '') then - frmSaveDialog.lstFiles.Clear; - - if frmSaveDialog.lstFiles.Items.Count = 0 then begin - Result := True; - if frmSettings.chkReload.Checked then begin - for i := 0 to frmMain.dtcEditor.Tabs.Count -1 do begin - if not frmMain.dtcEditor.Document[i].IsUntitled then - eStr.Add(frmMain.dtcEditor.Document[i].FileName); - end; - eStr.SaveToFile(ExtractFilePath(ParamStr(0)) + 'Files.ini'); - end; - eStr.Free; - exit; - end; - - for i := 0 to frmSaveDialog.lstFiles.Items.Count -1 do begin - if Pos('&', frmSaveDialog.lstFiles.Items[i]) = 1 then - frmSaveDialog.lstFiles.Items[i] := Copy(frmSaveDialog.lstFiles.Items[i], 2, Length(frmSaveDialog.lstFiles.Items[i])); - end; - - if frmSaveDialog.ShowModal = mrOk then begin - for i := 0 to frmSaveDialog.lstFiles.Items.Count -1 do begin - if frmSaveDialog.lstFiles.Checked[i] then begin - if (TabByName(frmSaveDialog.lstFiles.Items[i]).IsUntitled) then begin - frmMain.sdSave.Title := Format('Save %s (Tab %s)', [TabByName(frmSaveDialog.lstFiles.Items[i]).FileName, IntToStr(TabByName(frmSaveDialog.lstFiles.Items[i]).Index +1)]); - if frmMain.sdSave.Execute then begin - AppendFileExt; - frmMain.dtcEditor.Activate(TabByName(frmSaveDialog.lstFiles.Items[i]).Index); - frmMain.sciEditor.SaveToFile(frmMain.sdSave.FileName); - frmMain.dtcEditor.ActiveDocument.FileName := frmMain.sdSave.FileName; - frmMain.SetSaved; - frmMain.sbInfo.Panels[1].Text := ''; - end - else begin - frmMain.sdSave.Title := 'Save...'; - eStr.Free; - Result := False; - exit; - end; - frmMain.sdSave.Title := 'Save...'; - end - else begin - frmMain.dtcEditor.Activate(TabByName(frmSaveDialog.lstFiles.Items[i]).Index); - frmMain.sciEditor.SaveToFile(TabByName(frmSaveDialog.lstFiles.Items[i]).FileName); - frmMain.dtcEditor.ActiveDocument.Modified := False; - frmMain.SetSaved; - frmMain.sbInfo.Panels[1].Text := ''; - end; - end; - end; - for i := 0 to frmMain.dtcEditor.Tabs.Count -1 do begin - if (not frmMain.dtcEditor.Document[i].IsUntitled) and (not frmMain.dtcEditor.Document[i].Modified) then - eStr.Add(frmMain.dtcEditor.Document[i].FileName); - end; - - if frmSettings.chkReload.Checked then - eStr.SaveToFile(ExtractFilePath(ParamStr(0)) + 'Files.ini'); - Result := True; - end - else - Result := False; - eStr.Free; -end; - -procedure AppendFileExt; -var eExt: String; -begin - eExt := LowerCase(ExtractFileExt(frmMain.sdSave.FileName)); - if (frmMain.sdSave.FilterIndex = 1) and (eExt <> '.sma') then - frmMain.sdSave.FileName := frmMain.sdSave.FileName + '.sma' - else if (frmMain.sdSave.FilterIndex = 2) and (eExt <> '.inc') then - frmMain.sdSave.FileName := frmMain.sdSave.FileName + '.inc'; -end; - -function RemoveSpaces(eInput: String): String; -begin - eInput := StringReplace(eInput, ' ', '', [rfReplaceAll]); - eInput := StringReplace(eInput, ' ', '', [rfReplaceAll]); - Result := eInput; -end; - -end. diff --git a/editor/editor2/UnitHowToMakePlayerMenu.dfm b/editor/editor2/UnitHowToMakePlayerMenu.dfm deleted file mode 100755 index f3b48a98ac44282c9576e3129c9dd3451e33742f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1123 zcmaJ=O>fgc5ZyS9^Vx!g)E?k4hgM2Z6+wYZZ;6{ID4&X5Do(JmC-JK5-Dtg`$%Vhb zonOPB;tXp$X$eL699Ax@y5eezcU%MK6a+V&gh!FdfGl9#G7#x%RV@3wtwopm zSnEomn@&hojJo*bs?%*<54=xKuQhc$UM0(>JvE=-FcFxYaILFpB4e?BmeXiNBeZRg zhBBgAW4b_<9F2M4q_d8bwMwOlj9Ict@n|Vsvjqyr%#7-A!q&*+399$P53SFYglbE2 zNNjIFXUI!@##3ce(JVXB%(4sFhTn+2tG}1)#ed|wB&6UCF_Kli*4|1>Wu*QS_;?Fk z$nAjXo;&s|9!Y_ZbUhp}fpOE-iit&>vtPb$f)h#^Cw?VHfo7T`)Uml}LZA7!TNfK( zzq@FHiyDHBpb_)8i5Tvf4&gL2I|e2|hb)GvROvo$&cW4knZ9iA z$1pUL(ht-uJL8x_`Ppp&Rd@+!0_vut0aOHV_66)(QeV%`xM9D2lg&3W?xZDcYR13C zO$@8ptP7{YWD+9TRWs&LP3tHIdR3X)qRiQ!aUQmR^rV z2&s9FRLI*at)(dVQ84ajf6xz-Uc=YSG^@Y!?BxC!tZ~11g>$;%x?CN~fbuEECa`i3 v47svHg^L`0UHXfxV#qpc8Z9|yR}$_Kx{nEKZfO2i%zE}1?FU9{kCFTaDv)C| diff --git a/editor/editor2/UnitHowToMakePlayerMenu.pas b/editor/editor2/UnitHowToMakePlayerMenu.pas deleted file mode 100755 index 7a5ad600..00000000 --- a/editor/editor2/UnitHowToMakePlayerMenu.pas +++ /dev/null @@ -1,24 +0,0 @@ -unit UnitHowToMakePlayerMenu; - -interface - -uses - SysUtils, Windows, Messages, Classes, Graphics, Controls, - StdCtrls, ExtCtrls, Forms, CorelButton; - -type - TfrmHowToMakePlayerMenu = class(TForm) - lblHowTo: TLabel; - txtTutorial: TMemo; - cmdOK: TCorelButton; - cmdExample: TCorelButton; - end; - -var - frmHowToMakePlayerMenu: TfrmHowToMakePlayerMenu; - -implementation - -{$R *.DFM} - -end. diff --git a/editor/editor2/UnitReadThread.pas b/editor/editor2/UnitReadThread.pas deleted file mode 100755 index d3170b12..00000000 --- a/editor/editor2/UnitReadThread.pas +++ /dev/null @@ -1,60 +0,0 @@ -unit UnitReadThread; - -interface - -uses - Classes, SysUtils, Graphics; - -type - TReadThread = class(TThread) - public - ReadTCP: Boolean; - protected - Read: String; - procedure Execute; override; - procedure AddRead; - end; - -implementation - -uses UnitfrmSockets; - -{ TReadThread } - -procedure TReadThread.AddRead; -begin - frmSocketTerminal.OnRead(Read); -end; - -procedure TReadThread.Execute; -begin - if ReadTCP then begin - frmSocketTerminal.IdTCPClient.ReadTimeout := 50; - repeat - try - Read := frmSocketTerminal.IdTCPClient.ReadLn; - Synchronize(AddRead); - except - // nothing - end; - until (Terminated) or (not frmSocketTerminal.IdTCPClient.Connected); - end - else begin - frmSocketTerminal.IdUDPClient.ReceiveTimeout := 50; - repeat - try - Read := frmSocketTerminal.IdUDPClient.ReceiveString; - if Read <> '' then - Synchronize(AddRead); - except - // nothing - end; - until (Terminated) or (not frmSocketTerminal.IdUDPClient.Active); - end; - Free; - Read := 'fu@u'; - Synchronize(AddRead); -end; - -end. - \ No newline at end of file diff --git a/editor/editor2/UnitTextAnalyze.pas b/editor/editor2/UnitTextAnalyze.pas deleted file mode 100755 index e69e884f..00000000 --- a/editor/editor2/UnitTextAnalyze.pas +++ /dev/null @@ -1,205 +0,0 @@ -unit UnitTextAnalyze; // Unit for analyzing code for code explorer, auto - // complete and call tips - -interface - -uses SysUtils, Classes, ComCtrls, Windows, Forms, Messages, ScintillaLanguageManager; - -procedure UpdateList(Code: String); -procedure AddAutoComplete(eAdd: String; AddCallTip: Boolean); - -var eExpand1, eExpand2, eExpand3, eExpand4, eExpand5: Boolean; - -implementation - -uses UnitfrmMain, UnitFunc; - -procedure UpdateList(Code: String); -var i, k: integer; - eStr, eStr2: TStringList; - eEndVariables: Boolean; - eParent1, eParent2, eParent3, eParent4, eParent5: TTreeNode; - eBracketsOpen, eStartLine: Integer; - eTemp: String; -begin - eStr := TStringList.Create; - eStr2 := TStringList.Create; - eStr.Text := Code; - - frmMain.sacComplete.AStrings.Text := frmMain.StdAutoComplete; - frmMain.cltEditor.ApiStrings.Text := frmMain.StdCallTips; - frmMain.trvFunctions.Items.BeginUpdate; - for i := 0 to 4 do - frmMain.trvFunctions.Items[i].DeleteChildren; - - for i := eStr.Count -1 downto 0 do begin - eStr[i] := TrimLeft(eStr[i]); - if (Pos('//', eStr[i]) > 0) then - eStr[i] := Copy(eStr[i], 1, Pos('//', eStr[i]) -2); - if (Pos('/*', eStr[i]) > 0) then - eStr[i] := Copy(eStr[i], 1, Pos('/*', eStr[i]) -2); - if (Pos('*', eStr[i]) = 1) then - eStr.Delete(i); - if (Pos('*/', eStr[i]) > 0) then - eStr[i] := Copy(eStr[i], 1, Pos('*/', eStr[i]) -2); - end; - - eEndVariables := False; - eBracketsOpen := -1; - eStartLine := -1; - eParent1 := frmMain.trvFunctions.Items[3]; - eParent2 := frmMain.trvFunctions.Items[1]; - eParent3 := frmMain.trvFunctions.Items[4]; - eParent4 := frmMain.trvFunctions.Items[0]; - eParent5 := frmMain.trvFunctions.Items[2]; - for i := 0 to eStr.Count -1 do begin - // Included: - if Pos('#include', LowerCase(eStr[i])) = 1 then begin - if (ExtractFileExt(Between(eStr[i], '<', '>')) = '') and (ExtractFileExt(Between(eStr[i], '"', '"')) = '') then begin - if Pos('<', eStr[i]) > 0 then - frmMain.trvFunctions.Items.AddChild(eParent1, Between(eStr[i], '<', '>') + '.inc') - else - frmMain.trvFunctions.Items.AddChild(eParent1, Between(eStr[i], '"', '"') + '.inc'); - end - else begin - if Pos('<', eStr[i]) > 0 then - frmMain.trvFunctions.Items.AddChild(eParent1, Between(eStr[i], '<', '>')) - else - frmMain.trvFunctions.Items.AddChild(eParent1, Between(eStr[i], '"', '"')); - end; - end; - // Defined - if Pos('#define', LowerCase(eStr[i])) = 1 then begin - eStr[i] := Copy(eStr[i], 8, Length(eStr[i])); - if Pos(#32, eStr[i]) <> 0 then begin - frmMain.trvFunctions.Items.AddChild(eParent2, Copy(TrimLeft(eStr[i]), 1, Pos(#32, TrimLeft(eStr[i])) -1)); - AddAutoComplete(Copy(TrimLeft(eStr[i]), 1, Pos(#32, TrimLeft(eStr[i])) -1), False); - end - else begin - frmMain.trvFunctions.Items.AddChild(eParent2, TrimLeft(eStr[i])); - AddAutoComplete(TrimLeft(eStr[i]), False); - end; - end; - // Variables and constants - if not eEndVariables then begin - if Pos('new', LowerCase(eStr[i])) = 1 then begin - if Pos(',', eStr[i]) > 0 then begin - eStr2.Text := StringReplace(Trim(Copy(eStr[i], 4, Length(eStr[i]))), ',', #13, [rfReplaceAll]); - for k := 0 to eStr2.Count -1 do begin - if Pos('=', eStr[i]) = 0 then - frmMain.trvFunctions.Items.AddChild(eParent3, Trim(eStr2[k])) - else - frmMain.trvFunctions.Items.AddChild(eParent4, Trim(eStr2[k])); - AddAutoComplete(Trim(eStr2[k]), False); - end; - end - else if Pos('{', Trim(eStr[i])) = Length(Trim(eStr[i])) then begin - if Pos('=', eStr[i]) = 0 then - frmMain.trvFunctions.Items.AddChild(eParent3, TrimLeft(Copy(eStr[i], 4, Length(eStr[i]))) + ' Array }') - else - frmMain.trvFunctions.Items.AddChild(eParent4, TrimLeft(Copy(eStr[i], 4, Length(eStr[i]))) + ' Array }'); - AddAutoComplete(Trim(Copy(eStr[i], 1, Pos('{', eStr[i]) -1)), False); - end - else begin - if Pos('=', eStr[i]) = 0 then - frmMain.trvFunctions.Items.AddChild(eParent3, TrimLeft(Copy(eStr[i], 4, Length(eStr[i])))) - else - frmMain.trvFunctions.Items.AddChild(eParent4, TrimLeft(Copy(eStr[i], 4, Length(eStr[i])))); - AddAutoComplete(TrimLeft(Copy(eStr[i], 4, Length(eStr[i]))), False); - end; - end; - end; - // Functions - if (Pos('forward', LowerCase(eStr[i])) = 1) or (Pos('public', LowerCase(eStr[i])) = 1) or (Pos('native', LowerCase(eStr[i])) = 1) or (Pos('stock', LowerCase(eStr[i])) = 1) then begin - eBracketsOpen := 0; - eEndVariables := True; - if ((Pos('{', eStr[i]) = 0)) or (Pos('{', eStr[i]) <> 0) and (Pos('}', eStr[i]) <> 0) then begin - eTemp := Copy(eStr[i], 1, Pos(#32, eStr[i])); - frmMain.FunctionType.Add(eTemp); - frmMain.trvFunctions.Items.AddChild(eParent5, Copy(eStr[i], Pos(#32, eStr[i]) +1, Length(eStr[i]))); - AddAutoComplete(Copy(eStr[i], Pos(#32, eStr[i]) +1, Length(eStr[i])), True); - end; - end; - if Pos('{', eStr[i]) <> 0 then begin - if eStartLine = -1 then - eStartLine := i; - Inc(eBracketsOpen, 1); - end; - if Pos('}', eStr[i]) <> 0 then begin - Inc(eBracketsOpen, -1); - if (eBracketsOpen = 0) then begin - eStr[eStartLine] := StringReplace(eStr[eStartLine], '{', '', [rfReplaceAll]); - eStr[eStartLine] := TrimRight(eStr[eStartLine]); - if (Pos(#32, eStr[eStartLine]) <> 0) and (Pos(#32, eStr[eStartLine]) < Pos('(', eStr[eStartLine])) then - eTemp := Copy(eStr[eStartLine], 1, Pos(#32, eStr[eStartLine])) - else - eTemp := ''; - frmMain.FunctionType.Add(eTemp); - frmMain.trvFunctions.Items.AddChild(eParent5, Copy(eStr[eStartLine], Pos(#32, eStr[eStartLine]) +1, Length(eStr[eStartLine]))); - AddAutoComplete(Copy(eStr[eStartLine], Pos(#32, eStr[eStartLine]) +1, Length(eStr[eStartLine])), True); - eStartLine := -1; - eBracketsOpen := -2; - end; - end; - end; - - for i := frmMain.trvFunctions.Items.Count -1 downto 0 do begin - if Assigned(frmMain.trvFunctions.Items[i].Parent) then begin - frmMain.trvFunctions.Items[i].ImageIndex := 20; - frmMain.trvFunctions.Items[i].SelectedIndex := 20; - end - else begin - frmMain.trvFunctions.Items[i].ImageIndex := 18; - frmMain.trvFunctions.Items[i].SelectedIndex := 18; - end; - - if frmMain.trvFunctions.Items[i].Text = '' then // Remove empty items - frmMain.trvFunctions.Items.Delete(frmMain.trvFunctions.Items[i]); - end; - eStr.Free; - eStr2.Free; - frmMain.trvFunctions.Items.AlphaSort(True); - frmMain.trvFunctions.FullExpand; - if not eExpand1 then - eParent1.Collapse(False); - if not eExpand2 then - eParent2.Collapse(False); - if not eExpand3 then - eParent3.Collapse(False); - if not eExpand4 then - eParent4.Collapse(False); - if not eExpand5 then - eParent5.Collapse(False); - frmMain.trvFunctions.Perform(WM_VSCROLL, SB_TOP, 0); - frmMain.trvFunctions.Items.EndUpdate; - Application.ProcessMessages; -end; - -procedure AddAutoComplete(eAdd: String; AddCallTip: Boolean); -function AlreadyAdded: Boolean; -var i: integer; - eTemp: String; -begin - Result := False; - eTemp := Trim(eAdd); - for i := 0 to frmMain.sacComplete.AStrings.Count -1 do begin - if Trim(frmMain.sacComplete.AStrings[i]) = eAdd then - Result := True; - if Trim(frmMain.sacComplete.AStrings[i] + '()') = eAdd then - Result := True; - end; -end; - -begin - if not AlreadyAdded then begin - if Pos('(', eAdd) <> 0 then - frmMain.sacComplete.AStrings.Add(Copy(eAdd, 1, Pos('(', eAdd) -1)) - else - frmMain.sacComplete.AStrings.Add(eAdd); - - if AddCallTip then - frmMain.cltEditor.ApiStrings.Add(eAdd); - end; -end; - -end. diff --git a/editor/editor2/UnitfrmAbout.dfm b/editor/editor2/UnitfrmAbout.dfm deleted file mode 100755 index 6aacc7f3aba845fb8f55dc25355cd162d5a62de5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 226172 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

jnM0LgUytXzBi1+dct`3yx32cTZ=Da|-0D2J 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

(gEY_#-_`T~Z1G^iI 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¿ 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�T-`QN)FglL(ZkMq( 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 frX-_Rr)|_MmKO|5Uh)Bf diff --git a/editor/editor2/UnitfrmAbout.pas b/editor/editor2/UnitfrmAbout.pas deleted file mode 100755 index 7ed1859a..00000000 --- a/editor/editor2/UnitfrmAbout.pas +++ /dev/null @@ -1,32 +0,0 @@ -unit UnitfrmAbout; - -interface - -uses - SysUtils, Windows, Messages, Classes, Graphics, Controls, - StdCtrls, ExtCtrls, Forms, ShellAPI, TFlatSpeedButtonUnit; - -type - TfrmAbout = class(TForm) - pnlInfo: TPanel; - imgAMXX: TImage; - lblCopyright: TLabel; - lblComments: TLabel; - lblCoder: TLabel; - FlatSpeedButton1: TFlatSpeedButton; - procedure imgAMXXClick(Sender: TObject); - end; - -var - frmAbout: TfrmAbout; - -implementation - -{$R *.DFM} - -procedure TfrmAbout.imgAMXXClick(Sender: TObject); -begin - ShellExecute(Handle, 'open', 'http://www.amxmodx.org/', nil, nil, SW_SHOW); -end; - -end. diff --git a/editor/editor2/UnitfrmDebug.dfm b/editor/editor2/UnitfrmDebug.dfm deleted file mode 100755 index a2274a45c9140c8d611cbcb2660c6b1db7e10be1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1504 zcmb`Hv2NQi5Qb^Vwq)69lb{{CdCX*F4gwUhWY+EvV&bpS%sxf?7}kk)H&GQGH&2Y2r5;(9p=9DQ481`)j_ zY{ee~c#{3%Lc18hd&TJ^j-lHP@P@}&3k%pjQr9BZ;Qjk_De<$?}7p0jn3Lieye0AY=vOOiE=R#j7hWKri42%4--*moPq872fSe ze|&yEET=DqekPMl+5rxWrVM2HOsyb#um)w>;)E3R0yCga!e}Yh$nCZ%q6{hCPHwbS~Rn`tvC|t}Up#B4Xt|y=h+)cHjec-xUv0u5d3)yj_UKuqzn3GhF`BRUk mQU|o=WPYnY54Es4mlERY1G6_W9iMq2)qy_RRjd9|jr{}DG27+< diff --git a/editor/editor2/UnitfrmDebug.pas b/editor/editor2/UnitfrmDebug.pas deleted file mode 100755 index dfbf5b91..00000000 --- a/editor/editor2/UnitfrmDebug.pas +++ /dev/null @@ -1,91 +0,0 @@ -unit UnitfrmDebug; - -interface - -uses - SysUtils, Windows, Messages, Classes, Graphics, Controls, - StdCtrls, ExtCtrls, Forms; - -type - TfrmDebug = class(TForm) - cmdMore: TButton; - pnlCompile: TPanel; - lblFile: TStaticText; - lblStatus: TStaticText; - lblHints: TStaticText; - lblWarnings: TStaticText; - lblErrors: TStaticText; - cmdCancelOkay: TButton; - bvlDelimeter: TBevel; - lstOutput: TListBox; - procedure cmdMoreClick(Sender: TObject); - procedure cmdCancelOkayClick(Sender: TObject); - procedure lstOutputDblClick(Sender: TObject); - private - FCompiling: Boolean; - procedure SetCompiling(const Value: Boolean); - public - property Compiling: Boolean read FCompiling write SetCompiling; - end; - -var - frmDebug: TfrmDebug; - -const DEFAULT_HEIGHT = 165; - MAX_HEIGHT = 277; - -implementation - -uses UnitfrmMain, UnitFunc, UnitfrmOptions; - -{$R *.DFM} - -procedure TfrmDebug.cmdMoreClick(Sender: TObject); -begin - if Height = DEFAULT_HEIGHT then begin - Height := MAX_HEIGHT; - cmdMore.Caption := '<< Compiler Output'; - end - else begin - Height := DEFAULT_HEIGHT; - cmdMore.Caption := 'Compiler Output >>'; - end; -end; - -procedure TfrmDebug.SetCompiling(const Value: Boolean); -begin - FCompiling := Value; - if Value then - cmdCancelOkay.Caption := 'Cancel' - else - cmdCancelOkay.Caption := 'Close'; -end; - -procedure TfrmDebug.cmdCancelOkayClick(Sender: TObject); -var i: integer; -begin - if Compiling then begin - i := GetProcId('amxxsc.exe'); - if i <> -1 then - KillIt(i); - Compiling := False; - end - else begin - Hide; - frmMain.Show; - end; -end; - -procedure TfrmDebug.lstOutputDblClick(Sender: TObject); -begin - if lstOutput.ItemIndex <> -1 then begin - if Pos('Warning', lstOutput.Items[lstOutput.ItemIndex]) = 1 then - MessageBox(Handle, PChar(lstOutput.Items[lstOutput.ItemIndex]), 'Warning', MB_ICONWARNING) - else if Pos('Error', lstOutput.Items[lstOutput.ItemIndex]) = 1 then - MessageBox(Handle, PChar(lstOutput.Items[lstOutput.ItemIndex]), 'Error', MB_ICONERROR) - else - MessageBox(Handle, PChar(lstOutput.Items[lstOutput.ItemIndex]), 'Information', MB_ICONINFORMATION) - end; -end; - -end. diff --git a/editor/editor2/UnitfrmExceptionHandler.dfm b/editor/editor2/UnitfrmExceptionHandler.dfm deleted file mode 100755 index 663db55d..00000000 --- a/editor/editor2/UnitfrmExceptionHandler.dfm +++ /dev/null @@ -1,99 +0,0 @@ -object ExceptionDialog: TExceptionDialog - Left = 363 - Top = 284 - ActiveControl = OkBtn - AutoScroll = False - BorderIcons = [biSystemMenu] - Caption = 'Exception-Handler ONLY FOR DESIGN' - ClientHeight = 255 - ClientWidth = 432 - Color = clBtnFace - Constraints.MinWidth = 200 - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'MS Sans Serif' - Font.Style = [] - KeyPreview = True - OldCreateOrder = False - Position = poScreenCenter - ShowHint = True - OnCreate = FormCreate - OnDestroy = FormDestroy - OnKeyDown = FormKeyDown - OnPaint = FormPaint - OnResize = FormResize - OnShow = FormShow - DesignSize = ( - 432 - 255) - PixelsPerInch = 96 - TextHeight = 13 - object Bevel1: TBevel - Left = 3 - Top = 91 - Width = 428 - Height = 9 - Anchors = [akLeft, akTop, akRight] - Shape = bsTopLine - end - object OkBtn: TButton - Left = 352 - Top = 4 - Width = 75 - Height = 25 - Anchors = [akTop, akRight] - Caption = '&OK' - Default = True - ModalResult = 1 - TabOrder = 1 - end - object DetailsMemo: TMemo - Left = 4 - Top = 101 - Width = 424 - Height = 150 - Anchors = [akLeft, akTop, akRight, akBottom] - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'Courier New' - Font.Style = [] - ParentColor = True - ParentFont = False - ReadOnly = True - ScrollBars = ssBoth - TabOrder = 3 - WantReturns = False - WordWrap = False - end - object DetailsBtn: TButton - Left = 352 - Top = 60 - Width = 75 - Height = 25 - Hint = 'Show or hide additional information|' - Anchors = [akTop, akRight] - Caption = '&Details' - Enabled = False - TabOrder = 2 - OnClick = DetailsBtnClick - end - object TextLabel: TMemo - Left = 56 - Top = 8 - Width = 281 - Height = 75 - Hint = 'Use Ctrl+C to copy the report to the clipboard' - Anchors = [akLeft, akTop, akRight] - BorderStyle = bsNone - Ctl3D = True - Lines.Strings = ( - 'TextLabel') - ParentColor = True - ParentCtl3D = False - ReadOnly = True - TabOrder = 0 - WantReturns = False - end -end diff --git a/editor/editor2/UnitfrmExceptionHandler.pas b/editor/editor2/UnitfrmExceptionHandler.pas deleted file mode 100755 index 150b294b..00000000 --- a/editor/editor2/UnitfrmExceptionHandler.pas +++ /dev/null @@ -1,742 +0,0 @@ -{**************************************************************************************************} -{ } -{ Project JEDI Code Library (JCL) } -{ } -{ The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); } -{ you may not use this file except in compliance with the License. You may obtain a copy of the } -{ License at http://www.mozilla.org/MPL/ } -{ } -{ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF } -{ ANY KIND, either express or implied. See the License for the specific language governing rights } -{ and limitations under the License. } -{ } -{ The Original Code is ExceptDlg.pas. } -{ } -{ The Initial Developer of the Original Code is documented in the accompanying } -{ help file JCL.chm. Portions created by these individuals are Copyright (C) of these individuals. } -{ } -{**************************************************************************************************} -{ } -{ Sample Application exception dialog replacement } -{ } -{ Last modified: April 1, 2003 } -{ } -{**************************************************************************************************} - -unit UnitfrmExceptionHandler; - -{$I jcl.inc} - -interface - -uses - Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, - StdCtrls, ExtCtrls, JclDebug; - -const - UM_CREATEDETAILS = WM_USER + $100; - - ReportToLogEnabled = $00000001; // TExceptionDialog.Tag property - DisableTextScrollbar = $00000002; // TExceptionDialog.Tag property - -type - TSimpleExceptionLog = class (TObject) - private - FLogFileHandle: THandle; - FLogFileName: string; - FLogWasEmpty: Boolean; - function GetLogOpen: Boolean; - protected - function CreateDefaultFileName: string; - public - constructor Create(const ALogFileName: string = ''); - destructor Destroy; override; - procedure CloseLog; - procedure OpenLog; - procedure Write(const Text: string; Indent: Integer = 0); overload; - procedure Write(Strings: TStrings; Indent: Integer = 0); overload; - procedure WriteStamp(SeparatorLen: Integer = 0); - property LogFileName: string read FLogFileName; - property LogOpen: Boolean read GetLogOpen; - end; - - TExcDialogSystemInfo = (siStackList, siOsInfo, siModuleList, siActiveControls); - TExcDialogSystemInfos = set of TExcDialogSystemInfo; - - TExceptionDialog = class(TForm) - OkBtn: TButton; - DetailsMemo: TMemo; - DetailsBtn: TButton; - Bevel1: TBevel; - TextLabel: TMemo; - procedure FormPaint(Sender: TObject); - procedure FormCreate(Sender: TObject); - procedure FormShow(Sender: TObject); - procedure DetailsBtnClick(Sender: TObject); - procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); - procedure FormDestroy(Sender: TObject); - procedure FormResize(Sender: TObject); - private - FDetailsVisible: Boolean; - FIsMainThead: Boolean; - FLastActiveControl: TWinControl; - FNonDetailsHeight: Integer; - FFullHeight: Integer; - FSimpleLog: TSimpleExceptionLog; - procedure CreateDetails; - function GetReportAsText: string; - procedure ReportToLog; - procedure SetDetailsVisible(const Value: Boolean); - procedure UMCreateDetails(var Message: TMessage); message UM_CREATEDETAILS; - protected - procedure AfterCreateDetails; dynamic; - procedure BeforeCreateDetails; dynamic; - procedure CreateDetailInfo; dynamic; - procedure CreateReport(const SystemInfo: TExcDialogSystemInfos); - function ReportMaxColumns: Integer; virtual; - function ReportNewBlockDelimiterChar: Char; virtual; - procedure NextDetailBlock; - procedure UpdateTextLabelScrollbars; - public - procedure CopyReportToClipboard; - class procedure ExceptionHandler(Sender: TObject; E: Exception); - class procedure ExceptionThreadHandler(Thread: TJclDebugThread); - class procedure ShowException(E: Exception; Thread: TJclDebugThread); - property DetailsVisible: Boolean read FDetailsVisible write SetDetailsVisible; - property ReportAsText: string read GetReportAsText; - property SimpleLog: TSimpleExceptionLog read FSimpleLog; - end; - - TExceptionDialogClass = class of TExceptionDialog; - -var - ExceptionDialogClass: TExceptionDialogClass = TExceptionDialog; - -implementation - -{$R *.DFM} - -uses - ClipBrd, Math, - JclBase, JclFileUtils, JclHookExcept, JclPeImage, JclStrings, JclSysInfo, JclSysUtils; - -resourcestring - RsAppError = '%s - application error'; - RsExceptionClass = 'Exception class: %s'; - RsExceptionAddr = 'Exception address: %p'; - RsStackList = 'Stack list, generated %s'; - RsModulesList = 'List of loaded modules:'; - RsOSVersion = 'System : %s %s, Version: %d.%d, Build: %x, "%s"'; - RsProcessor = 'Processor: %s, %s, %d MHz %s%s'; - RsScreenRes = 'Display : %dx%d pixels, %d bpp'; - RsActiveControl = 'Active Controls hierarchy:'; - RsThread = 'Thread: %s'; - RsMissingVersionInfo = '(no version info)'; - -var - ExceptionDialog: TExceptionDialog; - -//================================================================================================== -// Helper routines -//================================================================================================== - -function GetBPP: Integer; -var - DC: HDC; -begin - DC := GetDC(0); - Result := GetDeviceCaps(DC, BITSPIXEL) * GetDeviceCaps(DC, PLANES); - ReleaseDC(0, DC); -end; - -//-------------------------------------------------------------------------------------------------- - -function SortModulesListByAddressCompare(List: TStringList; Index1, Index2: Integer): Integer; -begin - Result := Integer(List.Objects[Index1]) - Integer(List.Objects[Index2]); -end; - -//================================================================================================== -// TApplication.HandleException method code hooking for exceptions from DLLs -//================================================================================================== - -// We need to catch the last line of TApplication.HandleException method: -// [...] -// end else -// SysUtils.ShowException(ExceptObject, ExceptAddr); -// end; - -procedure HookShowException(ExceptObject: TObject; ExceptAddr: Pointer); -begin - if JclValidateModuleAddress(ExceptAddr) and (ExceptObject.InstanceSize >= Exception.InstanceSize) then - TExceptionDialog.ExceptionHandler(nil, Exception(ExceptObject)) - else - SysUtils.ShowException(ExceptObject, ExceptAddr); -end; - -//-------------------------------------------------------------------------------------------------- - -function HookTApplicationHandleException: Boolean; -const - CallOffset = $86; - CallOffsetDebug = $94; -type - PCALLInstruction = ^TCALLInstruction; - TCALLInstruction = packed record - Call: Byte; - Address: Integer; - end; -var - TApplicationHandleExceptionAddr, SysUtilsShowExceptionAddr: Pointer; - CALLInstruction: TCALLInstruction; - CallAddress: Pointer; - NW: DWORD; - - function CheckAddressForOffset(Offset: Cardinal): Boolean; - begin - try - CallAddress := Pointer(Cardinal(TApplicationHandleExceptionAddr) + Offset); - CALLInstruction.Call := $E8; - Result := PCALLInstruction(CallAddress)^.Call = CALLInstruction.Call; - if Result then - begin - if IsCompiledWithPackages then - Result := PeMapImgResolvePackageThunk(Pointer(Integer(CallAddress) + Integer(PCALLInstruction(CallAddress)^.Address) + SizeOf(CALLInstruction))) = SysUtilsShowExceptionAddr - else - Result := PCALLInstruction(CallAddress)^.Address = Integer(SysUtilsShowExceptionAddr) - Integer(CallAddress) - SizeOf(CALLInstruction); - end; - except - Result := False; - end; - end; - -begin - TApplicationHandleExceptionAddr := PeMapImgResolvePackageThunk(@TApplication.HandleException); - SysUtilsShowExceptionAddr := PeMapImgResolvePackageThunk(@SysUtils.ShowException); - Result := CheckAddressForOffset(CallOffset) or CheckAddressForOffset(CallOffsetDebug); - if Result then - begin - CALLInstruction.Address := Integer(@HookShowException) - Integer(CallAddress) - SizeOf(CALLInstruction); - Result := WriteProcessMemory(GetCurrentProcess, CallAddress, @CALLInstruction, SizeOf(CALLInstruction), NW); - if Result then - FlushInstructionCache(GetCurrentProcess, CallAddress, SizeOf(CALLInstruction)); - end; -end; - -//================================================================================================== -// TSimpleExceptionLog -//================================================================================================== - -procedure TSimpleExceptionLog.CloseLog; -begin - if LogOpen then - begin - CloseHandle(FLogFileHandle); - FLogFileHandle := INVALID_HANDLE_VALUE; - FLogWasEmpty := False; - end; -end; - -//-------------------------------------------------------------------------------------------------- - -constructor TSimpleExceptionLog.Create(const ALogFileName: string); -begin - if ALogFileName = '' then - FLogFileName := CreateDefaultFileName - else - FLogFileName := ALogFileName; - FLogFileHandle := INVALID_HANDLE_VALUE; -end; - -//-------------------------------------------------------------------------------------------------- - -function TSimpleExceptionLog.CreateDefaultFileName: string; -begin - Result := PathExtractFileDirFixed(ParamStr(0)) + PathExtractFileNameNoExt(ParamStr(0)) + '_Err.log'; -end; - -//-------------------------------------------------------------------------------------------------- - -destructor TSimpleExceptionLog.Destroy; -begin - CloseLog; - inherited; -end; - -//-------------------------------------------------------------------------------------------------- - -function TSimpleExceptionLog.GetLogOpen: Boolean; -begin - Result := FLogFileHandle <> INVALID_HANDLE_VALUE; -end; - -//-------------------------------------------------------------------------------------------------- - -procedure TSimpleExceptionLog.OpenLog; -begin - if not LogOpen then - begin - FLogFileHandle := CreateFile(PChar(FLogFileName), GENERIC_WRITE, FILE_SHARE_READ, nil, - OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0); - if LogOpen then - FLogWasEmpty := SetFilePointer(FLogFileHandle, 0, nil, FILE_END) = 0; - end - else - FLogWasEmpty := False; -end; - -//-------------------------------------------------------------------------------------------------- - -procedure TSimpleExceptionLog.Write(const Text: string; Indent: Integer); -var - S: string; - SL: TStringList; - I: Integer; -begin - if LogOpen then - begin - SL := TStringList.Create; - try - SL.Text := Text; - for I := 0 to SL.Count - 1 do - begin - S := StringOfChar(' ', Indent) + StrEnsureSuffix(AnsiCrLf, TrimRight(SL[I])); - FileWrite(Integer(FLogFileHandle), Pointer(S)^, Length(S)); - end; - finally - SL.Free; - end; - end; -end; - -//-------------------------------------------------------------------------------------------------- - -procedure TSimpleExceptionLog.Write(Strings: TStrings; Indent: Integer); -var - I: Integer; -begin - for I := 0 to Strings.Count - 1 do - Write(Strings[I], Indent); -end; - -//-------------------------------------------------------------------------------------------------- - -procedure TSimpleExceptionLog.WriteStamp(SeparatorLen: Integer); -begin - if SeparatorLen = 0 then - SeparatorLen := 100; - SeparatorLen := Max(SeparatorLen, 20); - OpenLog; - if not FLogWasEmpty then - Write(AnsiCrLf); - Write(StrRepeat('=', SeparatorLen)); - Write(Format('= %-*s =', [SeparatorLen - 4, DateTimeToStr(Now)])); - Write(StrRepeat('=', SeparatorLen)); -end; - -//================================================================================================== -// Exception dialog -//================================================================================================== - -var - ExceptionShowing: Boolean; - -{ TExceptionDialog } - -procedure TExceptionDialog.AfterCreateDetails; -begin -end; - -//-------------------------------------------------------------------------------------------------- - -procedure TExceptionDialog.BeforeCreateDetails; -begin -end; - -//-------------------------------------------------------------------------------------------------- - -procedure TExceptionDialog.CopyReportToClipboard; -begin - ClipBoard.AsText := ReportAsText; -end; - -//-------------------------------------------------------------------------------------------------- - -procedure TExceptionDialog.CreateDetailInfo; -begin - CreateReport([siStackList, siOsInfo, siModuleList, siActiveControls]); -end; - -//-------------------------------------------------------------------------------------------------- - -procedure TExceptionDialog.CreateDetails; -begin - Screen.Cursor := crHourGlass; - DetailsMemo.Lines.BeginUpdate; - try - CreateDetailInfo; - ReportToLog; - DetailsMemo.SelStart := 0; - SendMessage(DetailsMemo.Handle, EM_SCROLLCARET, 0, 0); - AfterCreateDetails; - finally - DetailsMemo.Lines.EndUpdate; - OkBtn.Enabled := True; - DetailsBtn.Enabled := True; - OkBtn.SetFocus; - Screen.Cursor := crDefault; - end; -end; - -//-------------------------------------------------------------------------------------------------- - -procedure TExceptionDialog.CreateReport(const SystemInfo: TExcDialogSystemInfos); -const - MMXText: array[Boolean] of PChar = ('', 'MMX'); - FDIVText: array[Boolean] of PChar = (' [FDIV Bug]', ''); -var - SL: TStringList; - I: Integer; - ModuleName: TFileName; - CpuInfo: TCpuInfo; - C: TWinControl; - NtHeaders: PImageNtHeaders; - ModuleBase: Cardinal; - ImageBaseStr: string; - StackList: TJclStackInfoList; -begin - SL := TStringList.Create; - try - // Stack list - if siStackList in SystemInfo then - begin - StackList := JclLastExceptStackList; - if Assigned(StackList) then - begin - DetailsMemo.Lines.Add(Format(RsStackList, [DateTimeToStr(StackList.TimeStamp)])); - StackList.AddToStrings(DetailsMemo.Lines, False, True, True); - NextDetailBlock; - end; - end; - // System and OS information - if siOsInfo in SystemInfo then - begin - DetailsMemo.Lines.Add(Format(RsOSVersion, [GetWindowsVersionString, NtProductTypeString, - Win32MajorVersion, Win32MinorVersion, Win32BuildNumber, Win32CSDVersion])); - GetCpuInfo(CpuInfo); - with CpuInfo do - DetailsMemo.Lines.Add(Format(RsProcessor, [Manufacturer, CpuName, - RoundFrequency(FrequencyInfo.NormFreq), - MMXText[MMX], FDIVText[IsFDIVOK]])); - DetailsMemo.Lines.Add(Format(RsScreenRes, [Screen.Width, Screen.Height, GetBPP])); - NextDetailBlock; - end; - // Modules list - if (siModuleList in SystemInfo) and LoadedModulesList(SL, GetCurrentProcessId) then - begin - DetailsMemo.Lines.Add(RsModulesList); - SL.CustomSort(SortModulesListByAddressCompare); - for I := 0 to SL.Count - 1 do - begin - ModuleName := SL[I]; - ModuleBase := Cardinal(SL.Objects[I]); - DetailsMemo.Lines.Add(Format('[%.8x] %s', [ModuleBase, ModuleName])); - NtHeaders := PeMapImgNtHeaders(Pointer(ModuleBase)); - if (NtHeaders <> nil) and (NtHeaders^.OptionalHeader.ImageBase <> ModuleBase) then - ImageBaseStr := Format('<%.8x> ', [NtHeaders^.OptionalHeader.ImageBase]) - else - ImageBaseStr := StrRepeat(' ', 11); - if VersionResourceAvailable(ModuleName) then - with TJclFileVersionInfo.Create(ModuleName) do - try - DetailsMemo.Lines.Add(ImageBaseStr + BinFileVersion + ' - ' + FileVersion); - if FileDescription <> '' then - DetailsMemo.Lines.Add(StrRepeat(' ', 11) + FileDescription); - finally - Free; - end - else - DetailsMemo.Lines.Add(ImageBaseStr + RsMissingVersionInfo); - end; - NextDetailBlock; - end; - // Active controls - if (siActiveControls in SystemInfo) and (FLastActiveControl <> nil) then - begin - DetailsMemo.Lines.Add(RsActiveControl); - C := FLastActiveControl; - while C <> nil do - begin - DetailsMemo.Lines.Add(Format('%s "%s"', [C.ClassName, C.Name])); - C := C.Parent; - end; - NextDetailBlock; - end; - finally - SL.Free; - end; -end; - -//-------------------------------------------------------------------------------------------------- - -procedure TExceptionDialog.DetailsBtnClick(Sender: TObject); -begin - DetailsVisible := not DetailsVisible; -end; - -//-------------------------------------------------------------------------------------------------- - -class procedure TExceptionDialog.ExceptionHandler(Sender: TObject; E: Exception); -begin - if ExceptionShowing then - Application.ShowException(E) - else - begin - ExceptionShowing := True; - try - ShowException(E, nil); - finally - ExceptionShowing := False; - end; - end; -end; - -//-------------------------------------------------------------------------------------------------- - -class procedure TExceptionDialog.ExceptionThreadHandler(Thread: TJclDebugThread); -begin - if ExceptionShowing then - Application.ShowException(Thread.SyncException) - else - begin - ExceptionShowing := True; - try - ShowException(Thread.SyncException, Thread); - finally - ExceptionShowing := False; - end; - end; -end; - -//-------------------------------------------------------------------------------------------------- - -procedure TExceptionDialog.FormCreate(Sender: TObject); -begin - FSimpleLog := TSimpleExceptionLog.Create; - FFullHeight := ClientHeight; - DetailsVisible := False; - Caption := Format(RsAppError, [Application.Title]); -end; - -//-------------------------------------------------------------------------------------------------- - -procedure TExceptionDialog.FormDestroy(Sender: TObject); -begin - FreeAndNil(FSimpleLog); -end; - -//-------------------------------------------------------------------------------------------------- - -procedure TExceptionDialog.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); -begin - if (Key = Ord('C')) and (ssCtrl in Shift) then - begin - CopyReportToClipboard; - MessageBeep(MB_OK); - end; -end; - -//-------------------------------------------------------------------------------------------------- - -procedure TExceptionDialog.FormPaint(Sender: TObject); -begin - DrawIcon(Canvas.Handle, TextLabel.Left - GetSystemMetrics(SM_CXICON) - 15, - TextLabel.Top, LoadIcon(0, IDI_ERROR)); -end; - -//-------------------------------------------------------------------------------------------------- - -procedure TExceptionDialog.FormResize(Sender: TObject); -begin - UpdateTextLabelScrollbars; -end; - -//-------------------------------------------------------------------------------------------------- - -procedure TExceptionDialog.FormShow(Sender: TObject); -begin - BeforeCreateDetails; - MessageBeep(MB_ICONERROR); - if FIsMainThead and (GetWindowThreadProcessId(Handle, nil) = MainThreadID) then - PostMessage(Handle, UM_CREATEDETAILS, 0, 0) - else - CreateDetails; -end; - -//-------------------------------------------------------------------------------------------------- - -function TExceptionDialog.GetReportAsText: string; -begin - Result := StrEnsureSuffix(AnsiCrLf, TextLabel.Text) + AnsiCrLf + DetailsMemo.Text; -end; - -//-------------------------------------------------------------------------------------------------- - -procedure TExceptionDialog.NextDetailBlock; -begin - DetailsMemo.Lines.Add(StrRepeat(ReportNewBlockDelimiterChar, ReportMaxColumns)); -end; - -//-------------------------------------------------------------------------------------------------- - -function TExceptionDialog.ReportMaxColumns: Integer; -begin - Result := 100; -end; - -//-------------------------------------------------------------------------------------------------- - -function TExceptionDialog.ReportNewBlockDelimiterChar: Char; -begin - Result := '-'; -end; - -//-------------------------------------------------------------------------------------------------- - -procedure TExceptionDialog.ReportToLog; -begin - if Tag and ReportToLogEnabled <> 0 then - begin - FSimpleLog.WriteStamp(ReportMaxColumns); - try - FSimpleLog.Write(ReportAsText); - finally - FSimpleLog.CloseLog; - end; - end; -end; - -//-------------------------------------------------------------------------------------------------- - -procedure TExceptionDialog.SetDetailsVisible(const Value: Boolean); -var - DetailsCaption: string; -begin - FDetailsVisible := Value; - DetailsCaption := Trim(StrRemoveChars(DetailsBtn.Caption, ['<', '>'])); - if Value then - begin - Constraints.MinHeight := FNonDetailsHeight + 100; - Constraints.MaxHeight := Screen.Height; - DetailsCaption := '<< ' + DetailsCaption; - ClientHeight := FFullHeight; - DetailsMemo.Height := FFullHeight - DetailsMemo.Top - 3; - end - else - begin - FFullHeight := ClientHeight; - DetailsCaption := DetailsCaption + ' >>'; - if FNonDetailsHeight = 0 then - begin - ClientHeight := Bevel1.Top; - FNonDetailsHeight := Height; - end - else - Height := FNonDetailsHeight; - Constraints.MinHeight := FNonDetailsHeight; - Constraints.MaxHeight := FNonDetailsHeight - end; - DetailsBtn.Caption := DetailsCaption; - DetailsMemo.Enabled := Value; -end; - -//-------------------------------------------------------------------------------------------------- - -class procedure TExceptionDialog.ShowException(E: Exception; Thread: TJclDebugThread); -begin - if ExceptionDialog = nil then - ExceptionDialog := ExceptionDialogClass.Create(Application); - try - with ExceptionDialog do - begin - FIsMainThead := (GetCurrentThreadId = MainThreadID); - FLastActiveControl := Screen.ActiveControl; - TextLabel.Text := AdjustLineBreaks(StrEnsureSuffix('.', E.Message)); - UpdateTextLabelScrollbars; - DetailsMemo.Lines.Add(Format(RsExceptionClass, [E.ClassName])); - if Thread = nil then - DetailsMemo.Lines.Add(Format(RsExceptionAddr, [ExceptAddr])) - else - DetailsMemo.Lines.Add(Format(RsThread, [Thread.ThreadInfo])); - NextDetailBlock; - ShowModal; - end; - finally - FreeAndNil(ExceptionDialog); - end; -end; - -//-------------------------------------------------------------------------------------------------- - -procedure TExceptionDialog.UMCreateDetails(var Message: TMessage); -begin - Update; - CreateDetails; -end; - -//-------------------------------------------------------------------------------------------------- - -procedure TExceptionDialog.UpdateTextLabelScrollbars; -begin - if Tag and DisableTextScrollbar = 0 then - begin - Canvas.Font := TextLabel.Font; - if TextLabel.Lines.Count * Canvas.TextHeight('Wg') > TextLabel.ClientHeight then - TextLabel.ScrollBars := ssVertical - else - TextLabel.ScrollBars := ssNone; - end; -end; - -//================================================================================================== -// Exception handler initialization code -//================================================================================================== - -procedure InitializeHandler; -begin - JclStackTrackingOptions := JclStackTrackingOptions + [stRawMode]; - {$IFNDEF HOOK_DLL_EXCEPTIONS} - JclStackTrackingOptions := JclStackTrackingOptions + [stStaticModuleList]; - {$ENDIF HOOK_DLL_EXCEPTIONS} - JclDebugThreadList.OnSyncException := TExceptionDialog.ExceptionThreadHandler; - JclStartExceptionTracking; - {$IFDEF HOOK_DLL_EXCEPTIONS} - if HookTApplicationHandleException then - JclTrackExceptionsFromLibraries; - {$ENDIF HOOK_DLL_EXCEPTIONS} - Application.OnException := TExceptionDialog.ExceptionHandler; -end; - -//-------------------------------------------------------------------------------------------------- - -procedure UnInitializeHandler; -begin - Application.OnException := nil; - JclDebugThreadList.OnSyncException := nil; - JclUnhookExceptions; - JclStopExceptionTracking; -end; - -//-------------------------------------------------------------------------------------------------- - -initialization - {$IFDEF EXCEPTION_DEBUG} - InitializeHandler; - {$ENDIF} - -finalization - {$IFDEF EXCEPTION_DEBUG} - UnInitializeHandler; - {$ENDIF} - -end. diff --git a/editor/editor2/UnitfrmGoToLine.dfm b/editor/editor2/UnitfrmGoToLine.dfm deleted file mode 100755 index 376a63148f8bc00d87f04ccc2cfe0c546d302449..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 843 zcmb`Fzmw8H6vvkU`9XlY8Lg~RSvVs@V`JeA7YH!qE*V${J6)2;CA#cpHp?AoX>09_ zo&S)3j8fdNTv_qawY|*h9M79y}02b2C zlsl3;w5UB847x5&fyo)9_leZr+0}KO#xiMsLv5E+E(|N8HgxOtZL7$-ghfCr{qcX%*Q=8DEsqIZLcXU`(-5+h^GTe_)BatOeqNjY wayD%#gC(ttwX#DZ3gRkdnV4+U frmMain.sciEditor.Lines.Count) then - raise Exception.Create('Invalid Line') - else - ModalResult := mrOK; - except - MessageBox(Handle, 'Invalid value. Check the entered line and press OK again.', 'Error', MB_ICONERROR); - end; -end; - -procedure TfrmGoToLine.txtLineKeyPress(Sender: TObject; var Key: Char); -begin - if Key = #13 then begin - cmdOk.Click; - Key := #0; - end; -end; - -end. diff --git a/editor/editor2/UnitfrmLoopGenerator.dfm b/editor/editor2/UnitfrmLoopGenerator.dfm deleted file mode 100755 index 2b0833911038a3a8d352940eff467ad2be4fed91..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1782 zcmbVNyK>V&6kSV>WLb{wOejJ{I*LrdX($*{*ovKGFpWJ<|p_LYFMovRvrUMI(x77-gD16_wJuM@&}_gL)Z0o`v?6|*LO##)Ba^3k8 zihsnXL&j#iK!Ibyc>DT6bqGg7|A};;&Gd?H_ZSa>kHsYcvo@LU#F(&S)4?+lGio%G zWa~w?hC^bYVh`fuNa#P1o&G;`pb*B-K!sQz00w zv6(oGVgiaWt(p*~RhLw++P;xpY!y`1)yJC&VWty7Z~~!K^YKKX(vT^Cjs=@p2pPVI zDUg*JCF+jDXs8gEE3KuK^rw}))bn}|&Vab5vKP~uoDJDIa0nMQDl+pBPh@5?`A6ow zhpjyE@}h?V%1eYS#YkU5TM-v26-Bs=^ihWNNr80LQbtG!Et$dgFqcB8P?;IarLW;~ zhn-V%?M9(2g3wKY3@Oln@iLTACeL=>+CrY1{8Wjv;7co{s7oniJkhS4?&$s+=(z?> zsew%S4)YjKZa2|~9OXiQ)%^Q)OvCjvOin>6k;&RhQ(hB+UNPqXM9oqe$|qZ@*=!jU z-hOctmK;dF*$tAZx?&7l>Xjod6PH;+gFMy!98pas)6nDX&Rx7wSN`!h%;)B636Qjo zIxIW6CF8P}TPe&zj~@iOl7g - Keywords = <> - AssignmentOperator = '=' - EndOfStatementOperator = ';' - CommentBoxStart = '/*' - CommentBoxEnd = '*/' - CommentBoxMiddle = '*' - CommentBlock = '//' - CommentAtLineStart = True - CommentStreamStart = '/*' - CommentStreamEnd = '*/' - NumStyleBits = 5 - end - item - Name = 'SMALL' - Lexer = 'cppnocase' - Styles = < - item - FontSize = 0 - FontStyles = [] - ForeColor = clGreen - CharCase = CASE_MIXED - Name = 'Comment' - StyleNumber = 1 - end - item - FontSize = 0 - FontStyles = [] - ForeColor = clTeal - CharCase = CASE_MIXED - Name = 'Directives' - StyleNumber = 9 - end - item - FontSize = 0 - FontStyles = [] - ForeColor = clNavy - CharCase = CASE_MIXED - Name = 'Operators' - StyleNumber = 10 - end - item - FontSize = 0 - FontStyles = [] - ForeColor = clBlue - CharCase = CASE_MIXED - Name = 'Strings' - StyleNumber = 6 - end - item - FontSize = 0 - FontStyles = [] - ForeColor = clRed - CharCase = CASE_MIXED - Name = 'General' - StyleNumber = 16 - end - item - FontSize = 0 - FontStyles = [] - ForeColor = clGreen - CharCase = CASE_MIXED - Name = 'Comment 1' - StyleNumber = 2 - end - item - FontSize = 0 - FontStyles = [fsBold, fsUnderline] - ForeColor = clNavy - CharCase = CASE_MIXED - Name = 'Brackets' - StyleNumber = 34 - end - item - FontSize = 0 - FontStyles = [] - CharCase = CASE_MIXED - Name = 'Comment 2' - StyleNumber = 1 - end - item - FontSize = 0 - FontStyles = [] - CharCase = CASE_MIXED - Name = 'Comment 3' - StyleNumber = 3 - end> - Keywords = < - item - KeywordListNumber = 1 - Name = 'Keywords' - Keywords.Strings = ( - '_jghg_enums' - 'tfc_clearmodel' - 'tfc_getbammo' - 'tfc_setbammo' - 'tfc_setmodel' - 'AddMenuItem' - 'AttachView' - 'CreateEntity' - 'DF_Blocked' - 'DF_ClientCommand' - 'DF_ClientConnect' - 'DF_ClientDisconnect' - 'DF_ClientKill' - 'DF_ClientPutInServer' - 'DF_ClientUserInfoChanged' - 'DF_CreateInstancedBaseline' - 'DF_GameInit' - 'DF_GetGameDescription' - 'DF_GetHullBounds' - 'DF_MetaFunc_CallGameEntity' - 'DF_PM_FindTextureType' - 'DF_ParmsChangeLevel' - 'DF_ParmsNewLevel' - 'DF_PlayerPostThink' - 'DF_PlayerPreThink' - 'DF_RegisterEncoders' - 'DF_ServerDeactivate' - 'DF_SetAbsBox' - 'DF_Spawn' - 'DF_SpectatorConnect' - 'DF_SpectatorDisconnect' - 'DF_SpectatorThink' - 'DF_StartFrame' - 'DF_Sys_Error' - 'DF_Think' - 'DF_Touch' - 'DF_Use' - 'DF_pfnAllowLagCompensation' - 'DispatchKeyValue' - 'DispatchSpawn' - 'EF_AllocString' - 'EF_AngleVectors' - 'EF_AnimationAutomove' - 'EF_BuildSoundMSG' - 'EF_CanSkipPlayer' - 'EF_ChangeLevel' - 'EF_ChangePitch' - 'EF_ChangeYaw' - 'EF_CheckVisibility' - 'EF_CreateEntity' - 'EF_CreateFakeClient' - 'EF_CreateNamedEntity' - 'EF_CrosshairAngle' - 'EF_DecalIndex' - 'EF_DropToFloor' - 'EF_EmitAmbientSound' - 'EF_EmitSound' - 'EF_EntIsOnFloor' - 'EF_EntitiesInPVS' - 'EF_FadeClientVolume' - 'EF_FindClientInPVS' - 'EF_FindEntityByString' - 'EF_FindEntityInSphere' - 'EF_FreeEntPrivateData' - 'EF_GetAimVector' - 'EF_GetAttachment' - 'EF_GetBonePosition' - 'EF_GetClientListening' - 'EF_GetCurrentPlayer' - 'EF_GetEntityIllum' - 'EF_GetPhysicsInfoString' - 'EF_GetPhysicsKeyValue' - 'EF_InfoKeyValue' - 'EF_LightStyle' - 'EF_MakeStatic' - 'EF_MakeVectors' - 'EF_MessageBegin' - 'EF_ModelFrames' - 'EF_ModelIndex' - 'EF_MoveToOrigin' - 'EF_NumberOfEntities' - 'EF_ParticleEffect' - 'EF_PlaybackEvent' - 'EF_PointContents' - 'EF_PrecacheEvent' - 'EF_PrecacheGeneric' - 'EF_PrecacheModel' - 'EF_PrecacheSound' - 'EF_RegUserMsg' - 'EF_RemoveEntity' - 'EF_RunPlayerMove' - 'EF_SetClientKeyValue' - 'EF_SetClientListening' - 'EF_SetClientMaxspeed' - 'EF_SetGroupMask' - 'EF_SetKeyValue' - 'EF_SetModel' - 'EF_SetOrigin' - 'EF_SetPhysicsKeyValue' - 'EF_SetSize' - 'EF_SetView' - 'EF_StaticDecal' - 'EF_SzFromIndex' - 'EF_Time' - 'EF_TraceHull' - 'EF_TraceLine' - 'EF_TraceModel' - 'EF_TraceMonsterHull' - 'EF_TraceSphere' - 'EF_TraceTexture' - 'EF_TraceToss' - 'EF_VecToAngles' - 'EF_VecToYaw' - 'EF_WalkMove' - 'EF_WriteAngle' - 'EF_WriteCoord' - 'ENT_SetModel' - 'ENT_SetOrigin' - 'Entvars_Get_Byte' - 'Entvars_Get_Edict' - 'Entvars_Get_Float' - 'Entvars_Get_Int' - 'Entvars_Get_String' - 'Entvars_Get_Vector' - 'Entvars_Set_Byte' - 'Entvars_Set_Edict' - 'Entvars_Set_Float' - 'Entvars_Set_Int' - 'Entvars_Set_String' - 'Entvars_Set_Vector' - 'FVecIVec' - 'FakeTouch' - 'FindEntity' - 'GetMessageBlock' - 'HLTime' - 'IVecFVec' - 'MessageBlock' - 'PointContents' - 'RadiusDamage' - 'RemoveEntity' - 'ServerFrame' - 'SetSpeak' - 'SetView' - 'TraceLn' - 'TraceNormal' - 'VecDist' - 'VecLength' - 'VecToAngles' - 'VelocityByAim' - 'ViewContents' - 'access' - 'add' - 'angle_vector' - 'attach_view' - 'bomb_defused' - 'bomb_defusing' - 'bomb_explode' - 'bomb_planted' - 'bomb_planting' - 'build_path' - 'call_think' - 'callfunc_begin' - 'callfunc_end' - 'callfunc_push_float' - 'callfunc_push_floatrf' - 'callfunc_push_int' - 'callfunc_push_intrf' - 'callfunc_push_str' - 'change_task' - 'clamp' - 'client_PostThink' - 'client_PreThink' - 'client_authorized' - 'client_built' - 'client_changeclass' - 'client_changeteam' - 'client_cmd' - 'client_command' - 'client_connect' - 'client_damage' - 'client_damage' - 'client_damage' - 'client_damage' - 'client_death' - 'client_death' - 'client_death' - 'client_death' - 'client_disconnect' - 'client_impulse' - 'client_infochanged' - 'client_kill' - 'client_print' - 'client_putinserver' - 'client_score' - 'client_spawn' - 'cmd_access' - 'cmd_target' - 'colored_menus' - 'console_cmd' - 'console_print' - 'const' - 'AMXX_VERSION_STR[]="1' - 'contain' - 'containi' - 'copy' - 'copy_keyvalue' - 'copyc' - 'create_entity' - 'cs_get_hostage_foll' - 'cs_get_hostage_id' - 'cs_get_no_knives' - 'cs_get_user_bpammo' - 'cs_get_user_buyzone' - 'cs_get_user_deaths' - 'cs_get_user_defuse' - 'cs_get_user_driving' - 'cs_get_user_hasprim' - 'cs_get_user_model' - 'cs_get_user_money' - 'cs_get_user_nvg' - 'cs_get_user_plant' - 'cs_get_user_stationary' - 'cs_get_user_team' - 'cs_get_user_tked' - 'cs_get_user_vip' - 'cs_get_weapon_ammo' - 'cs_get_weapon_burst' - 'cs_get_weapon_id' - 'cs_get_weapon_silen' - 'cs_reset_user_model' - 'cs_set_hostage_foll' - 'cs_set_no_knives' - 'cs_set_user_bpammo' - 'cs_set_user_deaths' - 'cs_set_user_defuse' - 'cs_set_user_model' - 'cs_set_user_money' - 'cs_set_user_nvg' - 'cs_set_user_plant' - 'cs_set_user_team' - 'cs_set_user_tked' - 'cs_set_user_vip' - 'cs_set_weapon_ammo' - 'cs_set_weapon_burst' - 'cs_set_weapon_silen' - 'cstrike_running' - 'current_num_ents' - 'custom_weapon_add' - 'custom_weapon_add' - 'custom_weapon_add' - 'custom_weapon_add' - 'custom_weapon_dmg' - 'custom_weapon_dmg' - 'custom_weapon_dmg' - 'custom_weapon_dmg' - 'custom_weapon_shot' - 'custom_weapon_shot' - 'custom_weapon_shot' - 'custom_weapon_shot' - 'cvar_exists' - 'date' - 'dbi_close' - 'dbi_connect' - 'dbi_error' - 'dbi_field' - 'dbi_free_result' - 'dbi_nextrow' - 'dbi_num_rows' - 'dbi_query' - 'dbi_result' - 'dbi_type' - 'delete_file' - 'dllfunc' - 'dod_get_map_info' - 'dod_get_next_class' - 'dod_get_pl_deaths' - 'dod_get_pl_teamname' - 'dod_get_pronestate' - 'dod_get_team_score' - 'dod_get_user_ammo' - 'dod_get_user_class' - 'dod_get_user_kills' - 'dod_get_user_score' - 'dod_get_user_weapon' - 'dod_is_deployed' - 'dod_is_randomclass' - 'dod_make_deathmsg' - 'dod_set_fuse' - 'dod_set_pl_deaths' - 'dod_set_pl_teamname' - 'dod_set_stamina' - 'dod_set_user_ammo' - 'dod_set_user_class' - 'dod_set_user_kills' - 'dod_set_user_score' - 'dod_set_user_team' - 'dod_user_kill' - 'dod_wpnlog_to_id' - 'dod_wpnlog_to_name' - 'drop_to_floor' - 'emit_sound' - 'engclient_cmd' - 'engclient_print' - 'engfunc' - 'entity_count' - 'entity_get_byte' - 'entity_get_edict' - 'entity_get_float' - 'entity_get_int' - 'entity_get_string' - 'entity_get_vector' - 'entity_range' - 'entity_set_byte' - 'entity_set_edict' - 'entity_set_float' - 'entity_set_int' - 'entity_set_model' - 'entity_set_origin' - 'entity_set_size' - 'entity_set_string' - 'entity_set_vector' - 'equal' - 'equali' - 'fake_touch' - 'fakedamage' - 'fclose' - 'feof' - 'fflush' - 'fgetc' - 'fgetf' - 'fgeti' - 'fgetl' - 'fgets' - 'file_exists' - 'file_size' - 'filesize' - 'find_ent' - 'find_ent_by_class' - 'find_ent_by_model' - 'find_ent_by_owner' - 'find_ent_by_target' - 'find_ent_by_tname' - 'find_ent_in_sphere' - 'find_ent_sphere' - 'find_entity' - 'find_player' - 'find_plugin_bydesc' - 'find_plugin_byfile' - 'find_sphere_class' - 'float' - 'floatabs' - 'floatacos' - 'floatadd' - 'floatasin' - 'floatatan' - 'floatatan2' - 'floatcmp' - 'floatcos' - 'floatdiv' - 'floatfract' - 'floatlog' - 'floatmul' - 'floatpower' - 'floatround' - 'floatsin' - 'floatsqroot' - 'floatstr' - 'floatsub' - 'floattan' - 'fopen' - 'force_unmodified' - 'force_use' - 'format' - 'format_args' - 'format_time' - 'forward_return' - 'fputc' - 'fputf' - 'fputi' - 'fputl' - 'fputs' - 'fread' - 'fscanf' - 'fseek' - 'ftell' - 'funcidx' - 'fwrite' - 'geoip_code2' - 'geoip_code3' - 'geoip_country' - 'get_basedir' - 'get_brush_entity_origin' - 'get_build' - 'get_class' - 'get_clcmd' - 'get_clcmdsnum' - 'get_client_listen' - 'get_concmd' - 'get_concmdsnum' - 'get_configsdir' - 'get_customdir' - 'get_cvar_flags' - 'get_cvar_float' - 'get_cvar_num' - 'get_cvar_string' - 'get_datadir' - 'get_decal_index' - 'get_distance' - 'get_entity_distance' - 'get_entity_flags' - 'get_entity_origin' - 'get_entity_velocity' - 'get_entity_visibility' - 'get_filename' - 'get_flags' - 'get_gametime' - 'get_global_edict' - 'get_global_float' - 'get_global_int' - 'get_global_string' - 'get_global_vector' - 'get_grenade' - 'get_grenade_id' - 'get_grenade_index' - 'get_hostage_id' - 'get_info_keybuffer' - 'get_keyvalue' - 'get_lang' - 'get_langsnum' - 'get_localinfo' - 'get_logfile' - 'get_mapname' - 'get_mask' - 'get_max_entities' - 'get_maxplayers' - 'get_maxspeed' - 'get_modname' - 'get_module' - 'get_modulesnum' - 'get_msg_arg_float' - 'get_msg_arg_int' - 'get_msg_arg_string' - 'get_msg_args' - 'get_msg_argtype' - 'get_msg_block' - 'get_msg_origin' - 'get_owner' - 'get_pdata' - 'get_pdata_char' - 'get_pdata_float' - 'get_pdata_int' - 'get_pdata_short' - 'get_players' - 'get_playersnum' - 'get_plugin' - 'get_pluginsnum' - 'get_private_f' - 'get_private_i' - 'get_range' - 'get_res' - 'get_spawn' - 'get_speak' - 'get_special' - 'get_speed' - 'get_speedchange' - 'get_srvcmd' - 'get_srvcmdsnum' - 'get_stats' - 'get_stats' - 'get_stats' - 'get_stats' - 'get_stats2' - 'get_statsnum' - 'get_statsnum' - 'get_statsnum' - 'get_statsnum' - 'get_string' - 'get_systime' - 'get_time' - 'get_timeleft' - 'get_tr' - 'get_user_aiming' - 'get_user_ammo' - 'get_user_armor' - 'get_user_astats' - 'get_user_astats' - 'get_user_astats' - 'get_user_astats' - 'get_user_attacker' - 'get_user_authid' - 'get_user_button' - 'get_user_deaths' - 'get_user_flags' - 'get_user_frags' - 'get_user_godmode' - 'get_user_gravity' - 'get_user_health' - 'get_user_hitzones' - 'get_user_index' - 'get_user_info' - 'get_user_ip' - 'get_user_lstats' - 'get_user_maxspeed' - 'get_user_menu' - 'get_user_money' - 'get_user_msgid' - 'get_user_msgname' - 'get_user_name' - 'get_user_noclip' - 'get_user_oldbutton' - 'get_user_origin' - 'get_user_ping' - 'get_user_rstats' - 'get_user_rstats' - 'get_user_rstats' - 'get_user_rstats' - 'get_user_stats' - 'get_user_stats' - 'get_user_stats' - 'get_user_stats' - 'get_user_stats2' - 'get_user_team' - 'get_user_time' - 'get_user_userid' - 'get_user_velocity' - 'get_user_vstats' - 'get_user_vstats' - 'get_user_vstats' - 'get_user_vstats' - 'get_user_weapon' - 'get_user_weapons' - 'get_user_wlstats' - 'get_user_wlstats' - 'get_user_wrstats' - 'get_user_wrstats' - 'get_user_wrstats' - 'get_user_wrstats' - 'get_user_wstats' - 'get_user_wstats' - 'get_user_wstats' - 'get_user_wstats' - 'get_usercmd' - 'get_vaultdata' - 'get_weaponname' - 'get_xvar_float' - 'get_xvar_id' - 'get_xvar_num' - 'getarg' - 'getkey_float' - 'getkey_int' - 'getkey_string' - 'give_item' - 'globals_get_edict' - 'globals_get_float' - 'globals_get_int' - 'globals_get_string' - 'globals_get_vector' - 'gpglobals_v' - 'gpgobals_time' - 'grenade_throw' - 'grenade_throw' - 'halflife_time' - 'has_weapon' - 'heapspace' - 'in_list_float' - 'in_list_int' - 'in_list_string' - 'inconsistent_file' - 'is_combat' - 'is_dedicated_server' - 'is_ent_valid' - 'is_entity' - 'is_jit_enabled' - 'is_linux_server' - 'is_map_valid' - 'is_module_loaded' - 'is_plugin_loaded' - 'is_running' - 'is_user_admin' - 'is_user_alive' - 'is_user_bot' - 'is_user_connected' - 'is_user_connecting' - 'is_user_hltv' - 'is_valid_ent' - 'isalnum' - 'isalpha' - 'isdigit' - 'isspace' - 'jghg2_set_size' - 'jghg2_think' - 'jghg_find_ent_owner' - 'keytable_clear' - 'keytable_count' - 'keytable_delete' - 'keytable_getkey' - 'keytable_getval' - 'keytable_next' - 'keytable_reset' - 'lang_exists' - 'list_clear' - 'list_clear_float' - 'list_clear_int' - 'list_clear_string' - 'list_delete' - 'list_delete_float' - 'list_delete_int' - 'list_delete_string' - 'list_get' - 'list_get_float' - 'list_get_int' - 'list_get_string' - 'list_getf' - 'list_next' - 'list_next_float' - 'list_next_int' - 'list_next_string' - 'list_pop' - 'list_pop_float' - 'list_pop_int' - 'list_pop_string' - 'list_push_float' - 'list_push_int' - 'list_push_string' - 'list_reset' - 'list_reset_float' - 'list_reset_int' - 'list_reset_string' - 'list_size' - 'list_size_float' - 'list_size_int' - 'list_size_string' - 'list_store_float' - 'list_store_int' - 'list_store_string' - 'log_amx' - 'log_message' - 'log_to_file' - 'make_deathmsg' - 'make_string' - 'max' - 'md5' - 'md5_file' - 'message_begin' - 'message_end' - 'min' - 'msg_args' - 'msg_data' - 'msg_data_type' - 'msg_dest' - 'msg_loc' - 'msg_name' - 'msg_set_f' - 'msg_set_i' - 'msg_set_s' - 'msg_strdata' - 'msg_type' - 'mysql_close' - 'mysql_connect' - 'mysql_error' - 'mysql_getfield' - 'mysql_nextrow' - 'mysql_query' - 'new_float_list' - 'new_int_list' - 'new_keytable' - 'new_list' - 'new_string_list' - 'ns2amx_getammo' - 'ns2amx_getenergy' - 'ns2amx_gethives' - 'ns2amx_getjpfuel' - 'ns2amx_giveitem' - 'ns2amx_inrange' - 'ns2amx_isdigesting' - 'ns2amx_moveto' - 'ns2amx_nspopup' - 'ns2amx_setammo' - 'ns2amx_setenergy' - 'ns2amx_setjpfuel' - 'ns2amx_setres' - 'ns2amx_version' - 'ns_get_build' - 'ns_get_class' - 'ns_get_deaths' - 'ns_get_energy' - 'ns_get_exp' - 'ns_get_hive_trait' - 'ns_get_jpfuel' - 'ns_get_mask' - 'ns_get_maxspeed' - 'ns_get_points' - 'ns_get_res' - 'ns_get_score' - 'ns_get_spawn' - 'ns_get_speedchange' - 'ns_get_struct_owner' - 'ns_get_weap_clip' - 'ns_get_weap_dmg' - 'ns_get_weap_range' - 'ns_get_weap_reserve' - 'ns_give_item' - 'ns_has_weapon' - 'ns_is_combat' - 'ns_popup' - 'ns_set_deaths' - 'ns_set_energy' - 'ns_set_exp' - 'ns_set_fov' - 'ns_set_hive_trait' - 'ns_set_jpfuel' - 'ns_set_mask' - 'ns_set_player_body' - 'ns_set_player_model' - 'ns_set_player_skin' - 'ns_set_points' - 'ns_set_res' - 'ns_set_score' - 'ns_set_speedchange' - 'ns_set_struct_owner' - 'ns_set_weap_clip' - 'ns_set_weap_dmg' - 'ns_set_weap_range' - 'ns_set_weap_reserve' - 'num_to_str' - 'num_to_word' - 'numargs' - 'number_of_entities' - 'numtostr' - 'parse' - 'parse_loguser' - 'parse_time' - 'pause' - 'pev' - 'pev_f' - 'pev_i' - 'pfn_keyvalue' - 'pfn_playbackevent' - 'pfn_spawn' - 'pfn_think' - 'pfn_touch' - 'playback_event' - 'plugin_cfg' - 'plugin_end' - 'plugin_flags' - 'plugin_init' - 'plugin_log' - 'plugin_modules' - 'plugin_pause' - 'plugin_precache' - 'plugin_unpause' - 'point_contents' - 'power' - 'precache_event' - 'precache_generic' - 'precache_model' - 'precache_sound' - 'radius_damage' - 'random' - 'random_float' - 'random_num' - 'read_argc' - 'read_args' - 'read_argv' - 'read_data' - 'read_datanum' - 'read_dir' - 'read_file' - 'read_flags' - 'read_logargc' - 'read_logargv' - 'read_logdata' - 'regex_free' - 'regex_match' - 'regex_substr' - 'register_changelvl' - 'register_clcmd' - 'register_clientkill' - 'register_concmd' - 'register_cvar' - 'register_dictionary' - 'register_event' - 'register_forward' - 'register_impulse' - 'register_logevent' - 'register_menu' - 'register_menucmd' - 'register_menuid' - 'register_message' - 'register_msgblock' - 'register_msgedit' - 'register_playback' - 'register_plugin' - 'register_srvcmd' - 'register_statsfwd' - 'register_statsfwd' - 'register_statsfwd' - 'register_think' - 'register_touch' - 'remove_cvar_flags' - 'remove_entity' - 'remove_entity_name' - 'remove_quotes' - 'remove_task' - 'remove_user_flags' - 'remove_vaultdata' - 'replace' - 'require_module' - 'reset_user_wstats' - 'reset_user_wstats' - 'reset_user_wstats' - 'reset_user_wstats' - 'rewind' - 'server_changelevel' - 'server_cmd' - 'server_exec' - 'server_frame' - 'server_print' - 'set_client_listen' - 'set_cvar_flags' - 'set_cvar_float' - 'set_cvar_num' - 'set_cvar_string' - 'set_entity_flags' - 'set_entity_origin' - 'set_entity_velocity' - 'set_entity_visibility' - 'set_hudmessage' - 'set_kvhandled' - 'set_lights' - 'set_localinfo' - 'set_mask' - 'set_msg_arg_float' - 'set_msg_arg_int' - 'set_msg_arg_string' - 'set_msg_block' - 'set_pdata' - 'set_pdata_char' - 'set_pdata_float' - 'set_pdata_int' - 'set_pdata_short' - 'set_pev' - 'set_pev_f' - 'set_pev_i' - 'set_player_body' - 'set_player_model' - 'set_player_skin' - 'set_private_f' - 'set_private_i' - 'set_rendering' - 'set_size' - 'set_speak' - 'set_speedchange' - 'set_task' - 'set_tr' - 'set_user_armor' - 'set_user_deaths' - 'set_user_flags' - 'set_user_footsteps' - 'set_user_frags' - 'set_user_godmode' - 'set_user_gravity' - 'set_user_health' - 'set_user_hitzones' - 'set_user_info' - 'set_user_maxspeed' - 'set_user_money' - 'set_user_noclip' - 'set_user_origin' - 'set_user_rendering' - 'set_user_velocity' - 'set_usercmd' - 'set_vaultdata' - 'set_view' - 'set_xvar_float' - 'set_xvar_num' - 'setarg' - 'setc' - 'show_activity' - 'show_hudmessage' - 'show_menu' - 'show_motd' - 'socket_change' - 'socket_close' - 'socket_open' - 'socket_recv' - 'socket_send' - 'spawn' - 'sqroot' - 'store_float' - 'store_int' - 'store_string' - 'str_to_num' - 'strbreak' - 'string' - 'strip_user_weapons' - 'strlen' - 'strpack' - 'strtok' - 'strtolower' - 'strtonum' - 'strtoupper' - 'strunpack' - 'supercede' - 'swapchars' - 'take_damage' - 'task_exists' - 'tfc_getweaponbammo' - 'tfc_isgrenade' - 'tfc_setpddata' - 'tfc_setweaponbammo' - 'tfc_userkill' - 'tickcount' - 'time' - 'tolower' - 'toupper' - 'trace_hull' - 'trace_line' - 'trace_normal' - 'traceresult' - 'trim' - 'ts_createpwup' - 'ts_getkillingstreak' - 'ts_getusercash' - 'ts_getuseritems' - 'ts_getuserkillflags' - 'ts_getuserlastfrag' - 'ts_getuserpwup' - 'ts_getuserspace' - 'ts_getuserwpn' - 'ts_givepwup' - 'ts_giveweapon' - 'ts_setpddata' - 'ts_wpnlogtoid' - 'ts_wpnlogtoname' - 'ucfirst' - 'unlink' - 'unpause' - 'use' - 'user_has_weapon' - 'user_kill' - 'user_silentkill' - 'user_slap' - 'user_spawn' - 'vaultdata_exists' - 'vector_distance' - 'vector_length' - 'vector_to_angle' - 'velocity_by_aim' - 'vexd_pfntouch' - 'write_angle' - 'write_byte' - 'write_char' - 'write_coord' - 'write_entity' - 'write_file' - 'write_long' - 'write_short' - 'write_string' - 'xmod_get_maxweapons' - 'xmod_get_maxweapons' - 'xmod_get_maxweapons' - 'xmod_get_maxweapons' - 'xmod_get_stats_size' - 'xmod_get_stats_size' - 'xmod_get_stats_size' - 'xmod_get_stats_size' - 'xmod_get_wpnlogname' - 'xmod_get_wpnlogname' - 'xmod_get_wpnlogname' - 'xmod_get_wpnlogname' - 'xmod_get_wpnname' - 'xmod_get_wpnname' - 'xmod_get_wpnname' - 'xmod_get_wpnname' - 'xmod_is_custom_wpn' - 'xmod_is_custom_wpn' - 'xmod_is_custom_wpn' - 'xmod_is_melee_wpn' - 'xmod_is_melee_wpn' - 'xmod_is_melee_wpn' - 'xmod_is_melee_wpn' - 'xvar_exists' - 'ADMIN_ADMIN' - 'ADMIN_ALL' - 'ADMIN_BAN' - 'ADMIN_CFG' - 'ADMIN_CHAT' - 'ADMIN_CVAR' - 'ADMIN_IMMUNITY' - 'ADMIN_KICK' - 'ADMIN_LEVEL_A' - 'ADMIN_LEVEL_B' - 'ADMIN_LEVEL_C' - 'ADMIN_LEVEL_D' - 'ADMIN_LEVEL_E' - 'ADMIN_LEVEL_F' - 'ADMIN_LEVEL_G' - 'ADMIN_LEVEL_H' - 'ADMIN_MAP' - 'ADMIN_MENU' - 'ADMIN_PASSWORD' - 'ADMIN_RCON' - 'ADMIN_RESERVATION' - 'ADMIN_SLAY' - 'ADMIN_USER' - 'ADMIN_VOTE' - 'ALLIES' - 'AMXX_VERSION' - 'AMX_FLAG_BIGENDIAN' - 'AMX_FLAG_BROWSE' - 'AMX_FLAG_COMPACT' - 'AMX_FLAG_DEBUG' - 'AMX_FLAG_LINEOPS' - 'AMX_FLAG_NOCHECKS' - 'AMX_FLAG_RELOC' - 'ATTN_IDLE' - 'ATTN_NONE' - 'ATTN_STATIC' - 'AXIS' - 'BLOCK_NOT' - 'BLOCK_ONCE' - 'BLOCK_SET' - 'CAMERA_3RDPERSON' - 'CAMERA_NONE' - 'CAMERA_TOPDOWN' - 'CAMERA_UPLEFT' - 'CHAN_AUTO' - 'CHAN_ITEM' - 'CHAN_NETWORKVOICE_BASE' - 'CHAN_NETWORKVOICE_END' - 'CHAN_STATIC' - 'CHAN_STREAM' - 'CHAN_WEAPON' - 'CONTENTS_TRANSLUCENT' - 'CSW_AK47' - 'CSW_AUG' - 'CSW_AWP' - 'CSW_C4' - 'CSW_DEAGLE' - 'CSW_ELITE' - 'CSW_FAMAS' - 'CSW_FIVESEVEN' - 'CSW_FLASHBANG' - 'CSW_G3SG1' - 'CSW_GALI' - 'CSW_GALIL' - 'CSW_GLOCK18' - 'CSW_HEGRENADE' - 'CSW_KNIFE' - 'CSW_M249' - 'CSW_M3' - 'CSW_M4A1' - 'CSW_MAC10' - 'CSW_MP5NAVY' - 'CSW_P228' - 'CSW_P90' - 'CSW_SCOUT' - 'CSW_SG550' - 'CSW_SG552' - 'CSW_SMOKEGRENADE' - 'CSW_TMP' - 'CSW_UMP45' - 'CSW_USP' - 'CSW_XM1014' - 'DMG_ACID' - 'DMG_ALWAYSGIB' - 'DMG_BLAST' - 'DMG_BULLET' - 'DMG_BURN' - 'DMG_CLUB' - 'DMG_CRUSH' - 'DMG_DROWN' - 'DMG_DROWNRECOVER' - 'DMG_ENERGYBEAM' - 'DMG_FALL' - 'DMG_FREEZE' - 'DMG_GENERIC' - 'DMG_MORTAR' - 'DMG_NERVEGAS' - 'DMG_NEVERGIB' - 'DMG_PARALYZE' - 'DMG_POISON' - 'DMG_RADIATION' - 'DMG_SHOCK' - 'DMG_SLASH' - 'DMG_SLOWBURN' - 'DMG_SLOWFREEZE' - 'DMG_SONIC' - 'DMG_TIMEBASED' - 'DODMAX_WEAPONS' - 'EF_INVLIGHT' - 'EF_LIGHT' - 'EF_NODRAW' - 'EF_NOINTERP' - 'FCVAR_CLIENTDLL' - 'FCVAR_EXTDLL' - 'FCVAR_PRINTABLEONLY' - 'FCVAR_PROTECTED' - 'FCVAR_SPONLY' - 'FCVAR_UNLOGGED' - 'FLAG_AUTHID' - 'FLAG_IP' - 'FLAG_KICK' - 'FLAG_NOPASS' - 'FLAG_TAG' - 'FL_ALWAYSTHINK' - 'FL_BASEVELOCITY' - 'FL_CUSTOMENTITY' - 'FL_DORMANT' - 'FL_DUCKING' - 'FL_FAKECLIENT' - 'FL_FLOAT' - 'FL_FROZEN' - 'FL_GRAPHED' - 'FL_IMMUNE_LAVA' - 'FL_IMMUNE_WATER' - 'FL_KILLME' - 'FL_MONSTERCLIP' - 'FL_ONTRAIN' - 'FL_PROXY' - 'FL_SPECTATOR' - 'FL_WORLDBRUSH' - 'FMRES_HANDLED' - 'FMRES_IGNORED' - 'FMRES_OVERRIDE' - 'FMRES_SUPERCEDE' - 'FMV_CELL' - 'FMV_FLOAT' - 'FT_NEW' - 'FT_OLD' - 'FUSE_RESET' - 'FUSE_SET' - 'HIT_CHEST' - 'HIT_GENERIC' - 'HIT_HEAD' - 'HIT_LEFTARM' - 'HIT_LEFTLEG' - 'HIT_RIGHTARM' - 'HIT_RIGHTLEG' - 'HIT_STOMACH' - 'HIW_AK47' - 'HIW_AKS74U' - 'HIW_BERETTA' - 'HIW_FLASHBANG' - 'HIW_GLOCK' - 'HIW_M11' - 'HIW_M11SD' - 'HIW_M16A2' - 'HIW_M4A1' - 'HIW_MP5A4' - 'HIW_MP5SD5' - 'HIW_NATOGREN' - 'HIW_PSG1' - 'HIW_REMINGTON' - 'HIW_SPAS12' - 'HIW_TANGOGREN' - 'HIW_ZASTAVA' - 'HULL_HEAD' - 'HULL_HUMAN' - 'HULL_LARGE' - 'HULL_POINT' - 'IN_ALT1' - 'IN_ATTACK' - 'IN_ATTACK2' - 'IN_BACK' - 'IN_CANCEL' - 'IN_DUCK' - 'IN_FORWARD' - 'IN_JUMP' - 'IN_LEFT' - 'IN_MOVELEFT' - 'IN_MOVERIGHT' - 'IN_RELOAD' - 'IN_RIGHT' - 'IN_RUN' - 'IN_SCORE' - 'IN_USE' - 'LANG_PLAYER' - 'LANG_SERVER' - 'MENU_KEY_0' - 'MENU_KEY_1' - 'MENU_KEY_2' - 'MENU_KEY_3' - 'MENU_KEY_4' - 'MENU_KEY_5' - 'MENU_KEY_6' - 'MENU_KEY_7' - 'MENU_KEY_8' - 'MENU_KEY_9' - 'MOVETYPE_ANGLECLIP' - 'MOVETYPE_ANGLENOCLIP' - 'MOVETYPE_BOUNCEMISSILE' - 'MOVETYPE_FOLLOW' - 'MSG_ONE_UNRELIABLE' - 'MSG_PAS' - 'MSG_PAS_R' - 'MSG_PVS' - 'MSG_PVS_R' - 'NS_CONST_INC' - 'NS_INC' - 'PITCH_HIGH' - 'PITCH_LOW' - 'PLUGIN_CONTINUE' - 'PLUGIN_HANDLED' - 'PLUGIN_HANDLED_MAIN' - 'SEEK_CUR' - 'SEEK_END' - 'SEEK_SET' - 'SOCKET_TCP' - 'SOCKET_UDP' - 'SPEAK_ALL' - 'SPEAK_LISTENALL' - 'SPEAK_MUTED' - 'SPEAK_NORMAL' - 'STAMINA_RESET' - 'STAMINA_SET' - 'SVC_ADDANGLE' - 'SVC_CDTRACK' - 'SVC_INTERMISSION' - 'SVC_NEWUSERMSG' - 'SVC_ROOMTYPE' - 'SVC_TEMPENTITY' - 'SVC_WEAPONANIM' - 'TFCMAX_WEAPONS' - 'TSA_FLASHLIGHT' - 'TSA_LASERSIGHT' - 'TSA_SCOPE' - 'TSA_SILENCER' - 'TSITEM_KUNGFU' - 'TSITEM_SUPERJUMP' - 'TSKF_DOUBLEKILL' - 'TSKF_ISSPEC' - 'TSKF_KILLEDSPEC' - 'TSKF_SLIDINGKILL' - 'TSKF_STUNTKILL' - 'TSMAX_WEAPONS' - 'TSPWUP_ARMOR' - 'TSPWUP_DFIRERATE' - 'TSPWUP_GRENADE' - 'TSPWUP_HEALTH' - 'TSPWUP_INFAMMO' - 'TSPWUP_KUNGFU' - 'TSPWUP_RANDOM' - 'TSPWUP_SLOWMO' - 'TSPWUP_SLOWPAUSE' - 'TSPWUP_SUPERJUMP' - 'VOL_NORM' - 'XS_AMX' - 'XS_AMXX' - 'XS__LIBRELEASE' - 'assert' - 'break' - 'case' - 'char' - 'const' - 'continue' - 'default' - 'defined' - 'do' - 'else' - 'enum' - 'exit' - 'for' - 'forward' - 'goto' - 'if' - 'native' - 'new' - 'operator' - 'public' - 'return' - 'sizeof' - 'sleep' - 'static' - 'stock' - 'switch' - 'while') - end> - AssignmentOperator = '=' - EndOfStatementOperator = ';' - CommentBoxStart = '/*' - CommentBoxEnd = '*/' - CommentBoxMiddle = '*' - CommentBlock = '//' - CommentAtLineStart = True - CommentStreamStart = '/*' - CommentStreamEnd = '*/' - NumStyleBits = 5 - end - item - Name = 'container' - Lexer = 'container' - Styles = <> - Keywords = <> - AssignmentOperator = '=' - EndOfStatementOperator = ';' - CommentBoxStart = '/*' - CommentBoxEnd = '*/' - CommentBoxMiddle = '*' - CommentBlock = '//' - CommentAtLineStart = True - CommentStreamStart = '/*' - CommentStreamEnd = '*/' - NumStyleBits = 5 - end> - LanguageManager.SelectedLanguage = 'null' - FoldDrawFlags = [sciBelowIfNotExpanded] - KeyCommands = < - item - Command = 2300 - ShortCut = 40 - end - item - Command = 2301 - ShortCut = 8232 - end - item - Command = 2342 - ShortCut = 16424 - end - item - Command = 2426 - ShortCut = 41000 - end - item - Command = 2302 - ShortCut = 38 - end - item - Command = 2303 - ShortCut = 8230 - end - item - Command = 2343 - ShortCut = 16422 - end - item - Command = 2427 - ShortCut = 40998 - end - item - Command = 2415 - ShortCut = 49190 - end - item - Command = 2416 - ShortCut = 57382 - end - item - Command = 2413 - ShortCut = 49192 - end - item - Command = 2414 - ShortCut = 57384 - end - item - Command = 2304 - ShortCut = 37 - end - item - Command = 2305 - ShortCut = 8229 - end - item - Command = 2308 - ShortCut = 16421 - end - item - Command = 2309 - ShortCut = 24613 - end - item - Command = 2428 - ShortCut = 40997 - end - item - Command = 2306 - ShortCut = 39 - end - item - Command = 2307 - ShortCut = 8231 - end - item - Command = 2310 - ShortCut = 16423 - end - item - Command = 2311 - ShortCut = 24615 - end - item - Command = 2429 - ShortCut = 40999 - end - item - Command = 2390 - ShortCut = 49189 - end - item - Command = 2391 - ShortCut = 57381 - end - item - Command = 2392 - ShortCut = 49191 - end - item - Command = 2393 - ShortCut = 57383 - end - item - Command = 2331 - ShortCut = 36 - end - item - Command = 2332 - ShortCut = 8228 - end - item - Command = 2316 - ShortCut = 16420 - end - item - Command = 2317 - ShortCut = 24612 - end - item - Command = 2345 - ShortCut = 32804 - end - item - Command = 2431 - ShortCut = 40996 - end - item - Command = 2314 - ShortCut = 35 - end - item - Command = 2315 - ShortCut = 8227 - end - item - Command = 2318 - ShortCut = 16419 - end - item - Command = 2319 - ShortCut = 24611 - end - item - Command = 2347 - ShortCut = 32803 - end - item - Command = 2432 - ShortCut = 40995 - end - item - Command = 2320 - ShortCut = 33 - end - item - Command = 2321 - ShortCut = 8225 - end - item - Command = 2433 - ShortCut = 40993 - end - item - Command = 2322 - ShortCut = 34 - end - item - Command = 2323 - ShortCut = 8226 - end - item - Command = 2434 - ShortCut = 40994 - end - item - Command = 2180 - ShortCut = 46 - end - item - Command = 2177 - ShortCut = 8238 - end - item - Command = 2336 - ShortCut = 16430 - end - item - Command = 2396 - ShortCut = 24622 - end - item - Command = 2324 - ShortCut = 45 - end - item - Command = 2179 - ShortCut = 8237 - end - item - Command = 2178 - ShortCut = 16429 - end - item - Command = 2325 - ShortCut = 27 - end - item - Command = 2326 - ShortCut = 8 - end - item - Command = 2326 - ShortCut = 8200 - end - item - Command = 2335 - ShortCut = 16392 - end - item - Command = 2176 - ShortCut = 32776 - end - item - Command = 2395 - ShortCut = 24584 - end - item - Command = 2176 - ShortCut = 16474 - end - item - Command = 2011 - ShortCut = 16473 - end - item - Command = 2177 - ShortCut = 16472 - end - item - Command = 2178 - ShortCut = 16451 - end - item - Command = 2179 - ShortCut = 16470 - end - item - Command = 2013 - ShortCut = 16449 - end - item - Command = 2327 - ShortCut = 9 - end - item - Command = 2328 - ShortCut = 8201 - end - item - Command = 2329 - ShortCut = 13 - end - item - Command = 2329 - ShortCut = 8205 - end - item - Command = 2333 - ShortCut = 16491 - end - item - Command = 2334 - ShortCut = 16493 - end - item - Command = 2373 - ShortCut = 16495 - end - item - Command = 2337 - ShortCut = 16460 - end - item - Command = 2338 - ShortCut = 24652 - end - item - Command = 2455 - ShortCut = 24660 - end - item - Command = 2339 - ShortCut = 16468 - end - item - Command = 2404 - ShortCut = 16452 - end - item - Command = 2340 - ShortCut = 16469 - end - item - Command = 2341 - ShortCut = 24661 - end> - end - end - object sbInfo: TStatusBar - Left = 0 - Top = 594 - Width = 862 - Height = 19 - AutoHint = True - Panels = < - item - Text = 'Unitled.sma' - Width = 700 - end - item - Alignment = taCenter - Width = 50 - end - item - Alignment = taCenter - Text = 'Ln 1 Ch 1' - Width = 50 - end> - end - object pnlFunctions: TPanel - Left = 712 - Top = 50 - Width = 150 - Height = 446 - Align = alRight - BevelOuter = bvNone - TabOrder = 4 - object pnlSpacerTop: TPanel - Left = 0 - Top = 0 - Width = 150 - Height = 21 - Align = alTop - BevelOuter = bvNone - TabOrder = 0 - end - object trvFunctions: TTreeView - Left = 0 - Top = 21 - Width = 143 - Height = 423 - Align = alClient - Images = ilMenu - Indent = 19 - ParentShowHint = False - ShowHint = True - SortType = stText - TabOrder = 1 - OnClick = trvFunctionsClick - OnCollapsed = trvFunctionsCollapsed - OnDblClick = trvFunctionsDblClick - OnEdited = trvFunctionsEdited - OnEditing = trvFunctionsEditing - OnEnter = lvDebugEnter - OnExpanded = trvFunctionsExpanded - OnKeyDown = trvFunctionsKeyDown - Items.Data = { - 05000000220000001200000012000000FFFFFFFFFFFFFFFF0000000000000000 - 09436F6E7374616E7473200000001200000012000000FFFFFFFFFFFFFFFF0000 - 00000000000007446566696E6564220000001200000012000000FFFFFFFFFFFF - FFFF00000000000000000946756E6374696F6E73210000001200000012000000 - FFFFFFFFFFFFFFFF000000000000000008496E636C7564656422000000120000 - 0012000000FFFFFFFFFFFFFFFF0000000000000000095661726961626C6573} - end - object pnlSpacerLeft: TPanel - Left = 143 - Top = 21 - Width = 7 - Height = 423 - Align = alRight - BevelOuter = bvNone - TabOrder = 2 - OnClick = pnlSpacerLeftClick - end - object pnlSpacerBottom: TPanel - Left = 0 - Top = 444 - Width = 150 - Height = 2 - Align = alBottom - BevelOuter = bvNone - TabOrder = 3 - end - end - object lvDebug: TListView - Left = 0 - Top = 496 - Width = 862 - Height = 98 - Align = alBottom - Columns = < - item - Width = 858 - end> - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Tahoma' - Font.Style = [] - FlatScrollBars = True - ReadOnly = True - RowSelect = True - ParentFont = False - ShowColumnHeaders = False - TabOrder = 5 - ViewStyle = vsReport - Visible = False - OnDblClick = lvDebugDblClick - OnEnter = lvDebugEnter - OnMouseDown = lvDebugMouseDown - end - object ilMenu: TImageList - Left = 826 - Top = 4 - Bitmap = { - 494C01011C001D00040010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 - 0000000000003600000028000000400000008000000001002000000000000080 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000CD6C0B00D27010009835000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000006529130067291300672913006729130067291300672913000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000CC6802000000000000000000000000009C3B0C009C3B0C009C3B0C009C3B - 0C009C3B0C000000000000000000000000000000000000000000000000000000 - 00000000000000000000CD6C0B00E7D7A5009835000000000000000000000000 - 0000000000000000000000000000000000001583200015832000158320001583 - 2000158320001583200015832000158320001583200015832000158320001583 - 2000000000000000000000000000000000000000000000000000000000006829 - 130067291300BB4B0000BB4B0000BB4B0000BB4B0000BB4B0000BB4B00006729 - 1300672913000000000000000000000000000000000000000000000000000000 - 0000CC680200CC680200CC680200CD6904009C3B0C00F89A9400EBA15E00DA84 - 2C009C3B0C000000000000000000000000000000000000000000000000000000 - 00000000000000000000CD6C0B00E7D7A5009835000000000000000000000000 - 0000000000000000000000000000000000001583200015832000158320001583 - 2000158320001583200015832000158320001583200015832000158320001583 - 200000000000000000000000000000000000000000000000000083350B00B547 - 0100BB4A0000BB4A0000BB4A0000BB4A0000BB4A0000BB4B0000BB4B0000BB4B - 0000B54701006729130000000000000000000000000000000000000000000000 - 0000CC6802000000000000000000000000009B3A0C009C3B0C009C3A0C009B3A - 0C009C3B0C000000000000000000000000000000000000000000000000000000 - 00000000000000000000CD6C0B00E7D7A5009835000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000080340C00B5470000B848 - 0000B6470000B6470000B6470000B6470000B8480000BA490000BB4B0000BB4B - 0000BB4B0000B547010067291300000000000000000000000000000000000000 - 0000CC6802000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000CD6C0B00E7D7A5009835000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000001B63 - AA00000000000000000000000000006600000066000000660000006600000066 - 00000066000000000000000000000000000000000000A7430400B6470000B346 - 0100B0450100BC550A00BF6F2C00D3844D00D3844D00C26D2700BA490000BB4B - 0000BB4B0000BB4B000068291300000000000000000000000000000000000000 - 0000CC6802000000000000000000000000009C3B0C009C3B0C009C3B0C009C3B - 0C009C3B0C000000000000000000000000000000000000000000000000000000 - 00000000000000000000CD6C0B00E7D7A5009835000000000000000000000000 - 00000000000000000000000000000000000000000000000000001B63AA001B63 - AA000000000000000000000000000066000036B0650026A144001A942C00158B - 210000660000000000000000000000000000913A0800BB4C0100BB4D0200BB4D - 0200D3844D00FBFBFB00FBFBFB00FBFBFB00FBFBFB00E3B48700B6470000BA49 - 0000BB4B0000BB4B0000BB4B0000652913000000000000000000000000000000 - 0000CC680200CC680200CC680200CC6802009C3B0C00F89A9400EBA15E00DA84 - 2C009C3B0C000000000000000000000000000000000000000000000000000000 - 00000000000000000000CD6C0B00E7D7A5009835000000000000000000000000 - 000000000000000000000000000000000000000000001B63AA005FBBBF005FBB - BF001B63AA001B63AA0000000000006600000066000000660000006600000066 - 000000660000000000000000000000000000973E0800BC550A00BC550A00BC58 - 0D00FBFBFB00E2AE7D00BE611700BC580D00BC500500AF450200B2460100B848 - 0000BB4A0000BB4B0000BB4B0000682913000000000000000000000000000000 - 0000CC6802000000000000000000000000009B3A0C009C3B0C009C3A0C009B3A - 0C009C3B0C000000000000000000000000000000000000000000000000000000 - 00000000000000000000CD6C0B00E7D7A5009835000000000000000000000000 - 0000000000000000000000000000000000001B63AA00B6D8EA007FCAC4005FBB - BF005FBBBF001B63AA0000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000973E0800C26A2100BF651C00BF63 - 1900FBFBFB00C26D2700BD5E1400BC550A00B2460100E3B48700B0450100B647 - 0000BB4A0000BB4B0000BB4B0000682913000000000000000000000000000000 - 0000CC6802000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000CD6C0B00E7D7A5009835000000000000000000000000 - 000000000000000000000000000000000000000000001B63AA00C0D6E3005FBB - BF001B63AA001B63AA0000000000006600000066000000660000006600000066 - 000000660000006600000066000000660000973E0800D48A4C00BF6F2C00C06E - 2900FBFBFB00DEA16900C26A2100BE611700BC550A00FBFBFB00E2AE7D00B547 - 0000BB4A0000BB4B0000BB4B0000682913000000000000000000000000000000 - 0000CC6802000000000000000000000000009C3B0C009C3B0C009C3B0C009C3B - 0C009C3B0C000000000000000000000000000000000000000000000000000000 - 00000000000000000000CD6C0B00E7D7A5009835000000000000000000000000 - 00000000000000000000000000000000000000000000000000001B63AA001B63 - AA000000000000000000000000000066000036B0650036B0650032AE5C0032AE - 5C0026A14400209A3700168E2400056E0800953C0700DEA16900DB9B6100D384 - 4D00EBC5A000FBFBFB00F3DEC900F2DBC400F5E7D900FBFBFB00FBFBFB00E9C0 - 9900BB4A0000BB4B0000BB4B0000682913000000000000000000000000000000 - 0000CC680200CC680200CC680200CC6802009C3B0C00F89A9400EBA15E00DA84 - 2C009C3B0C000000000000000000000000000000000000000000000000000000 - 00000000000000000000993F0800A28D75006C29070000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000001B63 - AA00000000000000000000000000006600000066000000660000006600000066 - 000000660000006600000066000000660000953C0700DD9E6500EBC5A000DB9B - 6100D8935600E3B18200EDCAA800EBC5A000F1D6BC00FBFBFB00FBFBFB00E6BB - 9100BB4A0000BB4B0000BB4B0000652913000000000000000000000000000000 - 0000CC6802000000000000000000000000009B3A0C009C3B0C009C3A0C009B3A - 0C009C3B0C000000000000000000000000000000000000000000000000000000 - 0000000000000166990001669900016699000166990001669900000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000000000009A3F0800EECDAD00EECD - AD00E0A87300D8935600D3844D00BF6F2C00C1671F00FBFBFB00E1AC7900BB4B - 0000BB4A0000BB4B0000682913000000000000000000000000009C3B0C009C3B - 0C009C3B0C009C3B0C009C3B0C00000000000000000000000000000000000000 - 0000000000000000000000000000000000009835000098350000983500009835 - 00009835000001669900CBE0F9001798C6001798C600016699006C2907009835 - 0000983500009835000098350000983500001583200015832000158320001583 - 2000158320001583200015832000158320001583200015832000158320001583 - 20000000000000000000000000000000000000000000953C0700DFA46D00F3DE - C900F0D4B900E0A87300D3884C00BF6F2C00C26A2100E1AA7600BC580D00BC4E - 0300BB4B0000B5470100622814000000000000000000000000009C3B0C00F89A - 9400EBA15E00DA842C009C3B0C00000000000000000000000000000000000000 - 000000000000000000000000000000000000D2701000E7D7A500E7D7A500E7D7 - A500E7D7A50001669900CFF0F800CBE0F9001798C60001669900A28D7500E7D7 - A500E7D7A500E7D7A500E7D7A500D27010001583200015832000158320001583 - 2000158320001583200015832000158320001583200015832000158320001583 - 2000000000000000000000000000000000000000000000000000953C0700DFA4 - 6D00F1D6BC00F3DEC900EBC5A000DFA67000D8935600D48A4C00BF6F2C00BC54 - 0800B5470100742F0F00000000000000000000000000000000009B3A0C009C3B - 0C009C3A0C009B3A0C009C3B0C00000000000000000000000000000000000000 - 000000000000000000000000000000000000CD6C0B00CD6C0B00CD6C0B00CD6C - 0B00CD6C0B0001669900E7F0F300CFF0F800CBE0F90001669900993F0800CD6C - 0B00CD6C0B00CD6C0B00CD6C0B00CD6C0B000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000000000000000000000000000973E - 0800A0410600E1AA7600E6BB9100E6BB9100E1AA7600D48A4C00BF6319009D40 - 07006E2C11000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000166990001669900016699000166990001669900000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000009A3F08009D4007009D4007009D4007009D40070084350B000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000A70D800000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000064707A00BCA2A3000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000000000000000000000000000A367 - 6900A3676900A3676900A3676900A3676900A3676900A3676900A3676900A367 - 6900A3676900A367690000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000076DD400197EE400076DD400076DD4001583200015832000158320001583 - 2000158320001583200015832000158320001583200015832000158320001583 - 2000000000000000000000000000000000006D8EC9001D55F30060758800C6A4 - 9F00000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000000000000000000000000000B18C - 8400F1D7B900EECFAD00EECBA100EEC99600ECC58E00EAC18B00EAC18B00EAC1 - 8B00EDC79100A36769000000000000000000000000000000000018CEF60019CB - F70000000000000000000000000000000000000000000000000000000000076D - D4002A94F3002BACF900076DD400000000001583200015832000158320001583 - 2000158320001583200015832000158320001583200015832000158320001583 - 2000000000000000000000000000000000006FB6F3006FB6F3001D55F3006075 - 8800C6A49F000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000000000000000000000000000B190 - 8900F2D8BC00F0D4B600EDCDA800EECBA100EDC79100EBC38C00E9BF8800E9BF - 8800EBC38C00A3676900000000000000000000000000000000000000000018CE - F60019CBF7000000000000000000076DD400076DD400076DD400076DD4002790 - F0002CA4F900076DD40000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000000000006FB6F3006FB6F3001D55 - F30060758800CBA69D0000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000000000000000000000000000B292 - 8B00F4DEC600F2D8BC00F0D4B600EECFAD00EECBA100EEC99600EBC38C00E9BF - 8800EBC38C00A367690000000000000000000000000000000000000000000000 - 000000000000000000000A70D8000E73DB002790F0004FCBF3004FCBF300238B - EE00076DD40000000000000000000000000000000000000000002066AB000000 - 0000000000000000000000000000006600000066000000660000006600000066 - 00000066000000000000000000000000000000000000000000006FB6F3006FB6 - F3001D55F30060758800BCA2A300000000000000000000000000000000000000 - 000000000000000000000000000000000000000000000000000000000000B19D - 9700F9EDDF00F7E5D000F4DEC600F2D8BC00F0D4B600EECFAD00EECBA100EBC3 - 8C00ECC58E00A367690000000000000000000000000000000000000000000000 - 00000000000010635D001176DE002CA4F9001F86E9002E9EF8002BACF9002E9E - F800076DD40000000000000000000000000000000000000000002066AB002066 - AB000000000000000000000000000066000044B65D0030AB47001E9E2F001593 - 2300006600000000000000000000000000000000000000000000000000006FB6 - F3006FB6F3006A93D500656F77000000000089878900C6A49F00D3B4A800CDA6 - 9D0000000000000000000000000000000000000000000000000000000000AFA1 - 9C00FAF2E800F8E8D600F7E5D000F4DEC600F2D8BC00F0D4B600EDCDA800EDC7 - 9100EDC79100A367690000000000000000000000000000000000000000000000 - 00000B8813001A9A2A0010635D002790F0004FCBF300197EE4001F86E9002D98 - F600076DD4000000000000000000000000002066AB002066AB004393D8004393 - D8002066AB000000000000000000006600000066000000660000006600000066 - 0000006600000000000000000000000000000000000000000000000000000000 - 00006FB6F3009EBBE10089878900BCA2A300EDE7D300FAF4D400FAF4D400FAF4 - D400E2DACC00D2AEA2000000000000000000000000000000000000000000E2AC - 9A00FCF8F300FAF2E800F8E8D600F7E5D000F4DEC600F2D8BC00F0D4B600EECB - A100EEC99600A367690000000000000000000000000000000000000000000674 - 080012911E004EB47A002EBB520010635D001F86E9002E9EF8001176DE001C82 - E700076DD4000000000000000000000000002066AB00A9C8B40092C79F004393 - D8004393D8002066AB0000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000D5B9AD00D5B9AD00FCEFC500FAF4D4009EBBE10066A3E700EDE7 - D300F9F5DB00F6F2D9008987890000000000000000000000000000000000E2AC - 9A00FDFCFB00FBF5EF00FAF2E800F8E8D600F7E5D000F4DEC600F2D8BC00EDCD - A800EECBA100A367690000000000000000000000000000000000000000000A79 - 0D0033C25D001FA3340037C2660012911E0011635C00197EE4002D98F6000E73 - DB00076DD4000000000000000000000000002066AB002066AB004393D80074C1 - 86002066AB000000000000000000006600000066000000660000006600000066 - 0000006600000066000000660000006600000000000000000000000000000000 - 000000000000C6A49F00FCE6C200FCE6C200FCF4CB0088B9EC000734FB00DDD5 - CC00F9F5DB00F9F5DB00D8CCC50000000000000000000000000000000000E2AC - 9A00FDFCFB00FDFCFB00FCF8F300FAF2E800F8E8D600F7E5D000F4DEC600F1D7 - B900EDCCA500A367690000000000000000000000000000000000000000000A79 - 0D0033C25D001C9D2E000B881300057F08000279030011635C001176DE00076D - D4000000000000000000000000000000000000000000000000002066AB002066 - AB000000000000000000000000000066000050B9670044B65D0044B65D0039B0 - 510029A63F001E9E2F001797260007700B000000000000000000000000000000 - 000000000000D5B9AD00FCECC100B6A9B3006998D8003849F5000734FB0066A3 - E7007FB9F000E8DFCE00F3EED600C6A49F00000000000000000000000000E3B2 - 9600FDFCFB00FDFCFB00FDFCFB00FCF8F300FAF2E800F8E8D600F7E5D000EED0 - B200B29B9300A367690000000000000000000000000000000000000000000A79 - 0D002AB749001C9D2E0006810B00037B0500027903000279030011635C000000 - 00000000000000000000000000000000000000000000000000002066AB000000 - 0000000000000000000000000000006600000066000000660000006600000066 - 0000006600000066000000660000006600000000000000000000000000000000 - 000000000000D7BFB200FCECC1006C91D0000734FB000734FB000734FB000734 - FB000734FB009EBBE100FAF4D400C6A49F00000000000000000000000000E3B2 - 9600FDFCFB00FDFCFB00FDFCFB00FDFCFB00FBF5EF00FAF2E800F4DEC600A370 - 6F00A3706F00A367690000000000000000000000000000000000000000001291 - 1E000E8B170009851000037B0500037B0500016E0100016C01000000000018CE - F60019CBF7000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000D7BFB200FCECC100CEA79D00B6A9B30064A1E2000734FB0096BB - E600DAD1CB00F6F2D900F6F2D900C6A49F00000000000000000000000000EDCC - A500FDFCFB00FDFCFB00FDFCFB00FDFCFB00FDFCFB00FDFCFB00C4BDBC00E9BF - 8800BF774F0000000000000000000000000000000000000000001C9D2E0033C2 - 5D00067408000169020001690200016902000169020000000000000000000000 - 000018CEF60019CBF70000000000000000001583200015832000158320001583 - 2000158320001583200015832000158320001583200015832000158320001583 - 2000000000000000000000000000000000000000000000000000000000000000 - 000000000000CBA69D00FCEFC500FCECC100FCE6C2006F88C1000734FB00DAD1 - CB00FAF4D400F9F5DB00E2DACC0000000000000000000000000000000000E5BB - 8E00FBF5EF00FBF5EF00FBF5EF00FBF5EF00FBF5EF00FBF5EF00C4BDBC00B585 - 74000000000000000000000000000000000000000000137C160033C25D000985 - 1000016902000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000001583200015832000158320001583 - 2000158320001583200015832000158320001583200015832000158320001583 - 2000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000D7BFB200F9F5DB00F9F5DB00D3B4A800BCA2A300D7BF - B200FCE6C200FCF4CB00BCA2A30000000000000000000000000000000000EECF - AD00EED0B200EED0B200EED0B200EED0B200EED0B200EED0B200EED0B2000000 - 000000000000000000000000000000000000026B0300036F0500027702000169 - 0200000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000D7BFB200F6F2D900FCECC100FCECC100FCEC - C100FCDBC700D0ABA00000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000015952200026B0300000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000CBA69D00D0ABA000D7BFB200D5B9 - AD00000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000000000000078DBE00078DBE00078D - BE00078DBE00078DBE00078DBE00078DBE00078DBE00078DBE00078DBE00078D - BE00078DBE00078DBE00000000000000000000000000078DBE00078DBE00078D - BE00078DBE00078DBE00078DBE00078DBE00078DBE00078DBE00078DBE00078D - BE00078DBE00000000000000000000000000000000000000000000000000189D - C60048BDDE0060C6E10051C1E0003CB9DC004DBFDF0000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000095636300505C5200505C5200000000000000 - 000000000000000000000000000000000000078DBE0062CBF200078DBE00A4F6 - FD0066CEF50066CEF50066CEF50066CEF50066CEF50066CEF50066CEF50066CE - F5003AAFDA00ABF2FC00078DBE0000000000078DBE0025A0CD005FC8EE0083E1 - FB0066CDF40066CDF40066CDF40066CDF40066CDF40066CDF40066CDF40066CD - F4003AAED8001495C400000000000000000000000000000000001EA2CA0022A5 - CE007ED2EC00A2E1F90098DCF80091DBF7007BD1EB0075CFE80048BDDE000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000009863630098636300505C5200A9A2A600505C5200505C - 520000000000000000000000000000000000078DBE006BD2F700078DBE00A9F3 - FC006FD4F8006FD4F8006FD4F8006FD4F8006FD4F8006FD4F8006FD4F8006FD4 - F8003AAFDA00BEECF400078DBE0000000000078DBE004CBBE30031A8D30095EC - FB006ED4F9006ED4F9006ED4F9006ED4F9006ED4F9006ED4F9006ED4F9006ED4 - F9003FB1DB00C8F6FB00078DBE0000000000000000000000000022A5CE002DAD - D40086D6F000A2E1F90091DBF70082D3ED0059C5E10091DBF70098DCF80075CF - E800000000000000000000000000000000000000000000000000000000000000 - 00000000000098636300A8737400CF747500505C5200DDC8C900D5C8CA00A89F - A100505C5200505C52000000000000000000078DBE0072D6FA00078DBE00ABF2 - FC0079DCFA0079DCFA0079DCFA0079DCFA0079DCFA007ADDFB0079DCFA0079DC - FA0045B6DF00BEECF400078DBE0000000000078DBE0072D6F900078DBE00ACF8 - FD007ADBFA007ADBFA007ADBFA007ADBFA007ADBFA007ADBFA007ADBFA007ADB - FA0043B5DD00C8F6FB00078DBE000000000000000000000000002DADD40037B7 - DB0094DCF700B3E9FB00A2E1F90060C6E100169AC4006ECBE50094DCF70098DC - F80034B1D7000000000000000000000000000000000000000000000000000000 - 000098636300A8737400D0949500CD7D7E00505C5200C4C1C500D5C8CA00DDC8 - C900D5C8CA00BBBDC200505C5200505C5200078DBE007ADDFB00078DBE00B4F3 - FC0084E4FB0084E4FB0084E4FB0084E4FB0084E4FB0084E4FB0084E4FB0084E4 - FB0045B6DF00C3F0F700078DBE0000000000078DBE007CDDFA001495C40095EC - FB0092EAFB0086E3FB0083E1FB0083E1FB0086E3FB0083E1FB0083E1FB0086E3 - FB0049B8E000C8F6FB001495C40000000000000000000000000036B5DA0041BA - DD00B1E5F900B8EBFB00B6EBFB0082D3ED001496C00065C8E20094DCF70094DC - F70034B1D7000000000000000000000000000000000000000000000000009863 - 6300B47C7D00E5A6A600C98E9000B8878C009F696A00505C5200505C5200BBBD - C200D5C8CA00D5C8CA00ADB3BC006E676700078DBE0081E2FB00078DBE00BEF4 - FC008EECFC008EECFC008EECFC008EECFC008EECFC008EECFC008EECFC008EEC - FC004CBCE400BEF4FC00078DBE0000000000078DBE0083E1FB0043B5DD0059C4 - EA00ACF8FD008FE9FB008FE9FB008FE9FB008FE9FB008FE9FB008FE9FB008FE9 - FB004CBBE300C8F6FB00C8F6FB00078DBE0000000000000000003CB9DC0048BD - DE00B8EBFA00B8EBFB00B8EBFB00B3E9FB0060C6E10082D3ED009CDEF80094DC - F70034B1D700000000000000000000000000000000000000000098636300B47C - 7D00F6B9B900DA9D9E00BC848800C2888900C2888900D0797B0099636300505C - 5200505C5200BBBDC200A8A7AD006E676700078DBE008BEAFC00078DBE00D2F7 - FC00C8F6FC00C8F6FC00C8F6FC00C8F6FC00C8F6FC00C8F6FC00C8F6FC00C8F6 - FC00BADADF00D2F7FC00078DBE0000000000078DBE008CE7FB0078DAFA0025A0 - CD00E5F8FA00C8F6FB00C8F6FB00C8F6FB00C8F6FB00C8F6FB00C8F6FB00C8F6 - FB0095ECFB00E5F8FA00CFF6FA00078DBE00000000000000000034B3D80048BD - DE0060C6E10065C8E20065C8E20060C6E1006ECBE50086D6F000A2E1F900A2E1 - F90034B1D7000000000000000000000000000000000098636300BC848800F1C5 - C500E5A6A600A8737400C2888900D69A9B00D69A9B00C8808300D1787900CD6D - 6E0099636300505C5200505C52006E676700078DBE0094F1FD00078DBE00078D - BE00078DBE00078DBE00078DBE00078DBE00078DBE00078DBE00078DBE00078D - BE00078DBE00078DBE00078DBE0000000000078DBE0096F0FC0096F0FC001495 - C400078DBE00078DBE00078DBE00078DBE00078DBE00078DBE00078DBE00078D - BE00078DBE00078DBE00078DBE00078DBE00000000000000000034B1D70059C5 - E10041BADD0048BDDE0048BDDE0037B7DB004DBFDF0075CFE8009CDEF80086D6 - F00028A8CF000000000000000000000000000000000098636300F1C5C500F0AF - AE00A8737400C98E9000E5A6A600AAAFB70017C5F20087A1B300D1787900CD6F - 7000CD6D6E00CE6676009963630098636300078DBE009BF4FD009BF4FD009BF4 - FD009BF4FD009BF4FD009BF4FD009BF4FD009BF4FD009BF4FD009BF4FD009BF4 - FD00078CBD00000000000000000000000000078DBE009CF5FD009AF4FD009AF4 - FD009CF5FD009DF6FD009AF4FD009CF5FD009AF4FD009CF5FD009AF4FD009AF4 - FD00088DBE00000000000000000000000000000000000000000034B1D70060C6 - E100169AC4003CB9DC008FDCF60059C5E10036B5DA00189DC6002CABD10051C1 - E00022A5CE000000000000000000000000000000000098636300F3B2B200A873 - 7400C98E9000F5B7B700B0B6BE0017C5F20017C5F200A9A2A600CF7C7D00CF74 - 7500CD6D6E00CE6676009863630000000000078DBE00D2F7FC00A0F6FD00A0F6 - FD00A0F6FD00A2F7FD00A2F7FD00A0F6FD00A2F7FD00A2F7FD00A0F6FD00A2F7 - FD00078CBD00000000000000000000000000078DBE00E5F8FA00A1F9FE00A1F9 - FE00A1F9FE00A1F9FE00A1F9FE00A1F9FE00A1F9FE00A1F9FE00A1F9FE00A1F9 - FE00088DBE000000000000000000000000000000000000000000000000001196 - C0001196C0002DADD4008FDCF6008FDCF60048BDDE001196C000169AC40022A5 - CE00000000000000000000000000000000000000000098636300B8878C00DA9D - 9E00F1C5C500F4BFC00017C5F20017C5F20078A7BD0017C5F200C98E9000D178 - 7900CD6D6E0098636300000000000000000000000000078DBE00D2F7FC00A4F6 - FD00A4F6FD00A4F6FD00078DBE00078DBE00078DBE00078DBE00078DBE00078D - BE000000000000000000000000000000000000000000078DBE00E5F8FA00A4F9 - FE00A4F9FE00A4F9FE00078DBE00078DBE00078DBE00078DBE00078DBE00078D - BE00000000000000000000000000000000000000000000000000000000000000 - 0000169AC400169AC400000000003CB9DC0022A5CE001196C0001196C0000000 - 000000000000000000000000000000000000000000009F696A0098636300F6B9 - B900F1C5C500F3C2C200F5B6B500B0B6BE0017C5F200A8A7AD00C2888900D079 - 7B00986363000000000000000000000000000000000000000000078DBE00078D - BE00078DBE00078DBE0000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000078DBE00078D - BE00078DBE00078DBE0000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000051C1E000189DC6000000000000000000000000001196C0001196C0000000 - 00000000000000000000000000000000000000000000248531003CAD59009863 - 630098636300F6B9B900F6BDBD00F3B2B200E8A9A900DA9D9E00C88083009863 - 6300000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000028A8CF007BD1EB002CABD100000000001496C000189DC600000000000000 - 000000000000000000000000000000000000248531003FBF62003FBF620034A8 - 4D002D9B42007B61610098636300DD9FA000E8A9A900C98E9000986363000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000048BDDE007BD1EB006ECBE50048BDDE00169AC400000000000000 - 00000000000000000000000000000000000024853100248531003FBF62003AB6 - 5800248531000000000000000000986363009863630098636300000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000248531002485 - 3100000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000066676900BE988E000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000000000000000000000000000159F - C90046B9DA0062C1DE0055C1DE003DB5DA004BBEDC0000000000000000000000 - 000000000000000000000000000000000000509AD3004596E7006C757E00C49C - 9100000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000854302008340 - 0000733900006B35000068340000683400006834000068340000683400006834 - 0000683400005D2F030000000000000000000000000000000000854100008541 - 0000763A00006B350000673301006B3500006B3500006B3500006B3500006B35 - 00006B3500005B2E03000000000000000000000000000000000016A4CD0016A4 - CD007DD4EE009EE1F90097E0F80092E0F7007DD4EE0072CDE80046B9DA000000 - 0000000000000000000000000000000000004FA7EA004FA7EA004596E7006C75 - 7E00C49C91000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000000000000AB540000D0670000BC5D - 0000BC5D0000B5590000B0570000AE550000AE550000AE550000AE550000AE55 - 0000B5590000964A00005D2F03000000000000000000AA540000CF660000CF66 - 0000B6590000B5590000AF560000AD550000AF560000AF560000AF560000AF56 - 0000B4590000964A00005B2E03000000000000000000000000001BA8D10027AF - D70081D7F000A1E3F90092E0F70081D7F00059C1DE008FE0F6009BE0F80076CF - E90000000000000000000000000000000000000000004FA7EA004FA7EA004596 - E7006C757E00C49C910000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000000000000D0670000E7730100DA6E - 0300D46A0100D0670000D0670000BC5D0000BC5D0000BC5D0000BC5D0000BC5D - 0000BC5D0000B5590000683400000000000000000000CF660000E7740300DC6D - 0100D66A0000D0670000CF660000B6590000B6590000B6590000B6590000B659 - 0000CF660000B45900006B35000000000000000000000000000027AFD70030B2 - D90095E0F700AFE8F900A6E5FA0062C1DE00179BC3006FCBE60095E0F7009BE0 - F80033B3DA0000000000000000000000000000000000000000004FA7EA004FA7 - EA004596E7006C757E00B8948A00000000000000000000000000000000000000 - 00000000000000000000000000000000000000000000D1680100EB760400E372 - 0300DA6E0300EC862100E9974600F0A35800E9974600E8934000BA5C0000BA5C - 0000BC5D0000AE550000683400000000000000000000D1670100EA760500E271 - 0200DC6D0100D4690000E6934100E69A4F00E69A4F00E6974900D7611900B659 - 0000B6590000AF5600006B35000000000000000000000000000030B2D9004BBE - DC00ACE4F800AFE8F900AFE8F9006CC9E4001895BC0062C1DE0095E0F70095E0 - F70033B3DA000000000000000000000000000000000000000000000000004FA7 - EA004FA7EA004596E700676A6C0000000000B08D8700C6A09300C6A09300BD98 - 8E000000000000000000000000000000000000000000D46A0100EE7F1300ED7A - 0A00F0A35800FCF8F500FCF8F500FCF8F500FCF8F500F8CA9E00BC5D0000BA5C - 0000BC5D0000AE550000683400000000000000000000D66A0000EA7E1400ED7A - 0800E7740300DF6F0100F8C99C00FCFAF800FCFAF800FCFAF800FCFAF800E69A - 4F00B6590000AF5600006B35000000000000000000000000000037B4DA004BBE - DC00AFE8F900AFE8F900AFE8F900AFE8F90062C1DE0076CFE90097E0F80095E0 - F70033B3DA000000000000000000000000000000000000000000000000000000 - 00004FA7EA00F1DBEA00C49C9100BB968C00F5E1B900FEFDE500FEFDE500FDF9 - D900DEBE9E00B38D8600000000000000000000000000D46A0100EC8D3100EE82 - 1800FCF8F500F7C08B00ED841D00EE821800DA641600D5690400BC5D0000BC5D - 0000BC5D0000AE550000683400000000000000000000D66A0000E98C3100EB81 - 1900ED7A0800E7740300E5730300EA7E1400D7611900D7611900F4BF8C00FCFA - F800B6590000AF5600006B35000000000000000000000000000030B2D9004BBE - DC0062C1DE006CC9E40066C6E20066C6E2006FCBE60084DAF2009EE1F900A1E3 - F90033B3DA000000000000000000000000000000000000000000000000000000 - 00000000000000000000CDA89600F7E7C000FDF9D900FDFBDC00FDFBDC00FEFD - E500FDFDEA00F1DBEA00B08D87000000000000000000D46A0100F2A55B00ED8A - 2900FCF8F500ED841D00E9750300E3720300DF700300F8CA9E00D0670000D067 - 0000BC5D0000B0570000683400000000000000000000D66A0000EDA45C00EA8A - 2C00EA7E1400ED7A0800F8C99C00E2710200DF6F0100D66A0000D4670A00FCFA - F800CF660000B15700006B3500000000000000000000000000002BB1D80076CF - E9001895BC001897BE0081D7F0004BBEDC0027AFD7001BA8D1002BB1D80079D2 - EC0037B4DA000000000000000000000000000000000000000000000000000000 - 00000000000000000000C6A09300F5DBAE00FBF4D300FDFBDC00FEFDE500FDFD - EA00FDFDEA00FDFDEA00CDA896000000000000000000D46A0100F6B37200EB90 - 3700FCF8F500F5AA6200EC780600EB760400E7730100FCF8F500F8C59400D168 - 0100D0670000B85B0000733900000000000000000000D66A0000F4B27200E890 - 3900EB811900F8C89900FCFAF800EA760500E5730300DF6F0100E89E5500FCFA - F800CF660000B6590000723800000000000000000000000000000000000030B2 - D9004BBEDC0076CFE90097E0F80089DDF40051C0DE00159FC9001597BF0016A4 - CD0016A4CD000000000000000000000000000000000000000000000000000000 - 000000000000C6A09300F5DDB000E6C59E00F9EECB00FEFDE000FEFDE500FDFD - EA00FDFDEA00FDFDEA00F9EECB00B8948A0000000000D46A0100F6B97E00E893 - 4000F8CA9E00FCF8F500FBE3CB00FBE3CB00FBEBDA00FCF8F500FCF8F500F9D5 - B100D66B0200BC5D0000834000000000000000000000D66A0000F5B97D00E693 - 4100FADCBE00FCFAF800FCFAF800FBE8D500FAE1C700FAE1C700FCFAF800F4BF - 8C00D96C0000CF66000085410000000000000000000000000000000000000000 - 0000000000000000000055C1DE004BBEDC004BBEDC00179BC3001597BF0016A4 - CD0016A4CD000000000000000000000000000000000000000000000000000000 - 000000000000C6A09300F5DDB000D9B89B00F5DBAE00FDF9D900FEFDE000FEFD - E500FEFDE500FEFDE000F9EECB00BB968C0000000000D46A0100F7BE8700ED9C - 4C00EB903700F6B37200F8CA9E00F8CA9E00FADEC300FCF8F500FCF8F500F9D0 - A800E3720300D0670000914800000000000000000000D66A0000F4BC8500E89E - 5500F9D8B700FCFAF800FCFAF800FAE1C700F8C99C00F8C99C00EDA45C00E271 - 0200E2710200CF66000090470000000000000000000000000000000000000000 - 00000000000000000000000000000000000000000000179BC3001597BF000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000BB968C00F7E7C000E6C59E00E9CAA200F5E1B900FDF9D900FEFD - E000FDFBDC00FEFDE000F5E1B900B48E870000000000D46A0100F8C59400F5AA - 6200E9923C00EB903700ED882500ED841D00EE821800FCF8F500F7C08B00EB76 - 0400E9750300D46A01009D4D00000000000000000000D66A0000F8C79600EEA7 - 6100E8903900F8CCA100FCFAF800EA831D00EB811900ED7A0800EC780600EA76 - 0500EA760500D66A00009E4E0000000000000000000000000000000000000000 - 00001895BC001895BC00000000000000000000000000179BC3001895BC000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000DEBE9E00FEFDE500F5E1B900E9CAA200F3D5A600F7E7 - C000FBF4D300FDF9D900B69087000000000000000000D46A0100F8C79800F8C3 - 8E00F7B67800F6B06C00F2A55B00ED9C4C00EB903700F7C08B00ED7A0A00EC78 - 0600EC780600DF700300AB5400000000000000000000D66A0000F8C89900F5C2 - 9000F5B97D00F1AC6800F9D3AE00E6974900E98C3100EB811900ED7A0800EC78 - 0600EC780600E2710200AA540000000000000000000000000000000000000000 - 000030B2D900159FC900000000000000000000000000159FC9001895BC000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000B38D8600F1DBEA00FDFDEA00F3D5A600E6C59E00F2D2 - A300F7E7C000D5B39900B69087000000000000000000D46A0100F7B67800F8CA - 9E00F8CA9E00F8C59400F7BC8300F6B06C00ED9C4C00ED882500EE7D0E00EC78 - 0600EC780600E9750300B55900000000000000000000D66A0000F5B97D00F8C9 - 9C00F8CCA100F8C79600F4BC8500F4B27200E6974900EA882800ED7A0800ED7A - 0800ED7A0800E7740300B5590000000000000000000000000000000000000000 - 000046B9DA0072CDE800000000000000000000000000179BC3001597BF000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000B08D8700CDA89600F5E1B900F5DEB300ECCD - A300B6908700B690870000000000000000000000000000000000DA641600EC8D - 3100EC8D3100EC8D3100ED8A2900EC862100DA641600D8670C00D66B0200D66B - 0200D66B0200D067000000000000000000000000000000000000EA7E1400E98C - 3100E98C3100E98C3100EA8A2C00EA852200EA7E1400D4670A00D96C0000D66A - 0000D66A0000CF66000000000000000000000000000000000000000000000000 - 00000000000059C1DE0079D2EC0046B9DA003DB5DA001BA8D100000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000000000000BA958B00BB968C00B691 - 8800000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000055C1DE0055C1DE0046B9DA0000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000006E3931006E382F0082422500824225006E382F006E3931000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000001079F000313AA000319B0000319B0000313AA000108A1000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000868483008684830000000000000000008684830086848300000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000001EA1CD002CAAD3001585B000000000000000 - 000000000000000000000000000000000000000000000000000000000000723A - 2D007F402600AF591100C2610600CB660100CB660100C4620400B15A10008242 - 25006E3931000000000000000000000000000000000000000000000000000106 - 9F000319B0000530C2000733C6000733C6000733C6000733C6000531C2000420 - B60001069F000000000000000000000000000000000000000000000000008684 - 8300C0BAB800B8B3B300868483008684830086848300EDEBE900868483008684 - 83008684830000000000000000000000000000000000000000000000000027A5 - CF0023A4CE001585B0001E98C2002CABD3002CABD300178AB5001587B1002CAB - D30029A7D10000000000000000000000000000000000000000007C3F2800A855 - 1400D0690300D0690300CE680200CA650100CD670100CD670100D0690300D069 - 0300A85514006E393100000000000000000000000000000000000108A100042C - C0000733C6000733C6000531C2000531C2000531C2000531C2000733C6000733 - C600042CC000020CA5000000000000000000000000000000000086848300E3E2 - E100B8B3B300B8B3B300B8B3B300505050004F4F4F0086848300CECCCC00E9E7 - E600C8C7C70086848300868483008684830000000000000000000000000027A5 - CF002CABD3002CABD3001DA0CC0020D0F8004AD7F70027A5CF005EC1DC0064C1 - DA0027A5CF000000000000000000000000000000000082422500AF591100D069 - 0300CA650100CF711500E7BF9500DD8C3A00C7620300CA650100CB660100CB66 - 0100D0690300A85514006E393100000000000000000001069F000225CC000C38 - D3000531C3000223C900042EC1000531C2000531C2000530C200042ABE00042E - C1000733C600042EC10001069F00000000000000000086848300E0DEDE00D8D5 - D500A9A4A300A9A4A300A9A4A300595858001616160012121200181818001212 - 120093888500CBCAC900868483000000000000000000178CB6001E98C2004FC2 - E1007FDFF5004FC2E1003ACBEF001DD1FA003CD5F8005DD9F60074C1D600AEE2 - ED0091E3F500178AB500000000000000000000000000974D1C00D0690300CE68 - 0200CA650100CF6E0F00F8E5D200FCF2E900DE924500C7620300CA650100CB66 - 0100CB660100D06903008242250000000000000000000219B9000836ED00022C - DE00133BD8005070F1001C3FC800042CC000042CC0000A34C7005070F1001C3F - C800042EC1000733C6000420B6000000000086848300D8D5D500D8D5D500A9A4 - A300E0DEDE00DAD8D800CDCBCB00C5BDB900B8B3B300A9A3A100777676001212 - 120014141400131313008684830093888500000000005EC1DC002CABD3004FC2 - E10096E4F5008BE2F5005DD9F60027D0F7001DD1FA0056D9F70076DEF5007FDF - F5003ACBEF002CABD30027A5CF0000000000A8551400BF600800D06D0B00D072 - 1700CF701300D2751900F6E0C900FEFDFD00FDF6F000E3A56700CA650100C964 - 0200CB660100D0690300B35B0E006E39310001069F00022EE6000635F200022D - E3005070F100FBFBFE00B8C6FB000B35CA00042EC100A1B3F700FBFBFE005070 - F100042ABE000733C6000531C2000108A10086848300D8D5D500A9A4A300F4F1 - ED00F6F3EF00F6F3EF00E9E7E600E9E7E600E5E4E300DAD8D800CCCBCB00C0BA - B800A9A3A10072717100938885008E868300000000001B91BC0023A4CE004FC2 - E1007FDFF50091E3F50070DCF5005EC1DC004FC2E1002DCFF4001DD1FA001DD1 - FA001DD1FA0020D0F8002CABD30000000000AF591100D2751900D67E2600D984 - 2D00D9842D00D9842D00F7E2CC00FEFDFD00FEFDFD00FEFDFD00E7BF9500CF6E - 0F00C9640200CE680200C46204006E393100020FAB000333F6000333F6000230 - EE000836ED0096A2FA00FBFBFE00B2C1FA00A7B9F700FBFBFE00A7B9F7001C3F - C800042EC1000531C2000733C6000313AA0086848300A9A4A300F6F3EF00F6F3 - EF00F6F3EF00E0DEDE00ADA9A900B1ACAC00C5BDB900D1CFCE00E0DEDE00E3E2 - E100D4D2D100C8C7C700AAA5A50085838300000000001A8FBA002CABD30045C7 - E9006BDBF60089BECD00979696009796960097969600979696004FC2E1001DD1 - FA001DD1FA001DD1FA001D9EC90000000000B55D0E00DD8A3700DE924500DD8F - 4000DD8F4000DE924500F8E5D200FEFDFD00FEFDFD00FEFDFD00FEFDFD00F5D8 - BC00D0721700CA650100CD6701006E382F000219B9001A44E7000635F2000434 - F5000230F000022EE60096A5FA00FBFBFE00FBFBFE00A7B9F7000632C500042C - C0000531C2000531C2000733C6000319B000000000008684830086848300F2EF - EC00C0BAB80093888500A9A3A100ADA9A900ACA7A700B1ACAC00ADA9A900B1AC - AC00CAC9C900DDDBDB00D1CFCE0086848300000000001B91BC002CABD3002CAB - D3005DD9F60097969600E2DFE300B0B4B700ACA3A200BEB2B2009796960056D9 - F7009DE3F200AEE2ED001E98C20000000000B85E0C00E4A25F00E3A56700E49F - 5900E49F5900E49F5900F9E9D900FEFDFD00FEFDFD00FEFDFD00FEFDFD00F1CD - A900CF711500CA650100CD670100723A2D00031DBE004467F7001F49EB000333 - F6000231F3000231F200A4B6F700FBFBFE00FBFBFE00B8C6FB000C36CE00042C - C0000531C2000531C2000733C6000319B0000000000000000000000000008684 - 8300C99B9700BF9B8B009F8D8500908684008280800093888500A9A4A300BBB6 - B500D8D5D500D1CFCE00868483000000000000000000178CB6001EA1CD002CAB - D30045C7E90097969600E2DFE300B0B4B700ACA3A200BEB2B200979696007FDF - F500AEE2ED0089BECD0027A5CF0000000000B15A1000E3A56700F0CBA500E3A5 - 6700E3A56700E3A56700FAECDD00FEFDFD00FEFDFD00FEFDFD00EDBE8D00C762 - 0300C9640200CE680200C46204006E3931000215B3005070F1004A6CF6000333 - F6000635F200A1B3F700FBFBFE00A4B6F70096A5FA00FBFBFE00B8C6FB001C3F - C800042EC1000632C5000733C6000313AA000000000000000000000000000000 - 0000C99B9800FBE4C900F9DAB700F0D4B600C69C9100C69C9100C99B98009A8B - 85008684830086848300000000000000000000000000000000001585B00021A3 - CE003ACBEF0097969600E2DFE300B0B4B700ACA3A200BEB2B2009796960067DA - F60064C1DA001585B0000000000000000000B55D0E00E0974D00F6DCC300F1CD - A900EEBE8D00EEBE8D00FBEEE100FEFDFD00FCF2E900E3A56700CF6A0400CA65 - 0100CB660100D0690300B15A10006E39310001069F004A6AEE0096A5FA001F49 - EB004C6EF500FBFBFE00A7B9F7000333F6000230EC0096A2FA00FBFBFE005070 - F1000226D0000B35CA000530C20001069F000000000000000000000000000000 - 0000C99B9800FBE4C900F9DBB900F9DAB700F9DAB700F6D8B600C99B98000000 - 0000000000000000000000000000000000000000000000000000000000001589 - B4001A8FBA0097969600E2DFE300B0B4B700ACA3A200BEB2B200979696001E98 - C2001B91BC0000000000000000000000000000000000CF711500F1CDA900FBEE - E100F3D4B300EEBF8E00FCF2E900FBEFE300E4A25F00D57A2000D2751900CB66 - 0100CA650100D06903007F40260000000000000000001C3FC8009EAFF90096A2 - FA002850EF004C6EF5000635F2000231F3000231F3000635F2004C6DF1000C38 - E500032CDB000C38D3000420B60000000000000000000000000000000000C99B - 9800FCECD900FCE7CF00F9E0C300F9DBB900F9DAB700C99B9800000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000097969600E2DFE300BAAFAE00AAA1A100BEB2B200979696000000 - 00000000000000000000000000000000000000000000B85E0C00DE924500F7E2 - CC00FBF1E600F4D6B700F5D8BC00E3A56700DC893500D9842D00D2751900D06B - 0700D0690300A252160070392E00000000000000000001069F004462E100B8C6 - FB009EAFF9003B60F8000635F2000333F6000333F6000333F6000231F2000836 - ED000836ED000225CC0001069F0000000000000000000000000000000000C99B - 9800FAEFE200FCECD900FBE5CC00F9E0C300F9DAB700C99B9800000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000097969600B0B4B700A6A0A00098969600A8A0A000979696000000 - 0000000000000000000000000000000000000000000000000000B35B0E00DE92 - 4500F4D6B700FBEEE100F7E2CC00F0CBA500EDBE8D00E3A56700E29C5400D57A - 2000A45315007C3F280000000000000000000000000000000000010AA4004462 - E100A7B9F700C0CCFB0096A5FA005070F1005070F1004A6CF6003B60F8001A44 - E700032AD8000108A10000000000000000000000000000000000C99B9800F6F3 - EF00F6F3EF00FAEFE200FCEAD600FCE7CF00F3D6B700C99B9800000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000097969600E0E0E300BEB2B200A6A0A000B0A5A400979696000000 - 000000000000000000000000000000000000000000000000000000000000B35B - 0E00CF711500DAA16700EABE9200F0CBA500EEC29400E0A46700D67E2600974D - 1C007C3F28000000000000000000000000000000000000000000000000000106 - 9F001C3FC8005070F100999FFA0096A2FA00A096FB005070F1001F49EB00041F - C10001069F000000000000000000000000000000000000000000C99B9800C99B - 9800C99B9800F8F2EA00FCECD900FCE7CF00C99B980000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000097969600E2DFE300E2DFE300B9B3B400A39E9E00979696000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000AF591100B55D0E00B15A1000A8551400AC581200A45315000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000001069F000219B9000321C600041FC1000215B30001069F000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000C99B9800C99B9800C99B98000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000097969600979696009796960097969600000000000000 - 0000000000000000000000000000000000000000000000000000B7818200B781 - 8200B7818200B7818200B7818200B7818200B7818200B7818200B7818200B781 - 8200B7818200B7818200B78182000000000000000000078DBE00078DBE00078D - BE00078DBE00078DBE00078DBE00078DBE00078DBE00078DBE00078DBE00078D - BE00078DBE00078DBE0000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000C8A79D00F8EA - D900F4E0C800F2DABD00F2D8B300F2D4AA00F1D3A600EFCFA200EFCFA200EFCF - A200EFCFA200F0D1A100B781820000000000078DBE001A9DAA005EC7EB0084E1 - FA0066CDF20066CDF20066CDF20066CDF20066CDF20066CDF20066CDF20066CD - F20046B8D400078DBE0000000000000000000000000000000000006600000066 - 0000AAAC9C00AAAC9C00AAAC9C00AAAC9C00AAAC9C00AAAC9C00AAAC9C000066 - 000000660000000000000000000000000000000000000000000097433F009743 - 3F00C2999900C2999900C2999900C2999900C2999900C2999900C29999009230 - 2F0097433F000000000000000000000000000000000000000000C8A79D00F8EA - D900F5E4CF00F3DEC500F2D9B900F2D8B300F2D4AA00F0D1A100EECEA200EECE - A200EECEA200F0D1A100B781820000000000078DBE004BBBDD0046B8D4009BF1 - FC0072D6F80072D6F8006DD2F60072D6F80072D6F80072D6F80072D6F8006DD2 - F60048B9D90080DEF900078DBE00000000000000000000660000009800000098 - 0000E5E1E5000066000000660000E7E6E700E5E4E600E5E1E500CCCCCC000066 - 0000007D00000066000000000000000000000000000097433F00CD666600C663 - 6300E4E0E400922B2B00922B2B00E6E5E700E5E3E500E4E0E400CECACC00922B - 2B009E43410097433F0000000000000000000000000000000000C9A99E00FAF1 - E800F7E7D500F5E4CF00F3DEC500F2DABD00F2D8B300F2D4AA00F0D1A100EECE - A200EECEA200F0D1A100B781820000000000078DBE0072D6F800078DBE00ACF7 - FC007BDCFA007BDCFA007BDCFA007BDCFA007BDCFA007BDCFA007BDCFA007BDC - FA0048B9D900ACF7FC00078DBE00000000000000000000660000009800000098 - 0000E5E1E5000066000000660000E5E1E500E7E6E700E5E1E500CDCCCD000066 - 0000007D00000066000000000000000000000000000097433F00CD656600C162 - 6200E5E3E500922B2B00922B2B00E4E0E400E6E5E700E4E0E400CECBCC00922B - 2B009E43410097433F0000000000000000000000000000000000CAAEA300FBF5 - EF00F8EAD900F7E7D500F5E4CF00F3DEC500F2D9B900F2D8B300F2D4AA00F0D1 - A100EECEA200F0D1A100B781820000000000078DBE007BDCFA001396B60099F0 - FC0092EBFB0086E3FB0086E3FB0086E3FB0086E3FB0086E3FB0086E3FB0086E3 - FB0048B9D900B1F7FC00078DBE00000000000000000000660000009800000098 - 0000E5E4E6000066000000660000E4DCE500E7E6E700E5E4E600CDCCCD000066 - 0000007D00000066000000000000000000000000000097433F00CD656600C162 - 6200E5E3E500922B2B00922B2B00E4E0E400E6E5E700E6E5E700CECBCC00922B - 2B009E43410097433F0000000000000000000000000000000000CEACA800FDFA - F600FAF1E800F8EAD900F7E7D500F3E1CC00F3DEC500F2DABD00F2D8B300F2D4 - AA00F0D1A100F0D1A100B781820000000000078DBE0086E3FB0048B9D90058C3 - E700ACF7FC008FE9FB008FE9FB008FE9FB008FE9FB008FE9FB008FE9FB000C84 - 18004BBBDD00B6F7FD0066CDF200078DBE000000000000660000009800000098 - 0000E7E6E700E7E6E700E5E1E500E4DCE500E5E1E500E5E1E500CDCCCD000066 - 0000007D00000066000000000000000000000000000097433F00CD656600C162 - 6200E6E5E700E6E5E700E4E0E400E4E0E400E4E0E400E4E0E400CECBCC00922B - 2B009E43410097433F0000000000000000000000000000000000D0A9AB00FEFC - FB00FBF5EF00FAF1E800F8EAD900F7E7D500F4E0C800F3DEC500F2D9B900F2D8 - B300F2D4AA00F1D3A600B781820000000000078DBE008CE7FB0077DAF9001A9D - AA00D8F7FB00CAF6FD00CAF6FD00CAF6FD00CAF6FD00CAF6FD000C84180035BC - 73000C841800D8F7FB00D6F6FB00078DBE000000000000660000009800000098 - 0000009800000098000000980000009800000098000000980000009800000098 - 0000009800000066000000000000000000000000000097433F00CD656600C663 - 6300C8676700C6717000C6717000C86A6A00C4636300C86C6C00CA666600C463 - 6300CD65660097433F0000000000000000000000000000000000E6BDAF00FEFC - FB00FDFAF600FBF5EF00F9EDDE00F8EAD900F7E7D500F5E4CF00F3DEC500F2D9 - B900F2D8B300F2D6AF00B781820000000000078DBE0095EEFC0095EEFC001396 - B600078DBE00078DBE00078DBE00078DBE00078DBE000C84180046CC80004BCC - 98003DC374000C841800078DBE00078DBE00000000000066000000980000B4C6 - B000B4C6B000B4C6B000B4C6B000B4C6B000B4C6B000B4C6B000B4C6B000B4C6 - B000009800000066000000000000000000000000000097433F00B8646400C47C - 7B00C89E9E00CAA8A800CAA8A800CAA8A800C9A0A000C9A0A000CAA8A800CAA8 - A800CC66660097433F0000000000000000000000000000000000E6BDAF00FEFC - FB00FEFCFB00FCF8F400FBF5EF00F9EDDE00F8EAD900F7E7D500F3E1CC00F2DC - C100F2D9B900F2D8B300B781820000000000078DBE009EF4FD009FF6FD009FF6 - FD009EF4FD009FF6FD009FF6FD009EF4FD000C84180046CC800049CD890049CD - 89004BCC98003DC374000C84180000000000000000000066000000980000F8F8 - F800F8F8F800F8F8F800F8F8F800F8F8F800F8F8F800F8F8F800F8F8F800F8F8 - F800009800000066000000000000000000000000000097433F00CC666600F8F8 - F800F8F8F800F8F8F800F8F8F800F8F8F800F8F8F800F8F8F800F8F8F800F8F8 - F800CC66660097433F0000000000000000000000000000000000E6BDAF00FEFC - FB00FEFCFB00FEFCFB00FCF8F400FBF5EF00F9EDDE00F8EAD900F7E7D500F4E0 - C800F4E0C800F2D9B900B781820000000000078DBE00D8F7FB00A2F7FD00A2F7 - FD00A2F7FD00A2F7FD00A2F7FD000C8418000C8418000C8418000C84180049CD - 890046CC80000C8418000C8418000C841800000000000066000000980000F8F8 - F800F8F8F800F8F8F800F8F8F800F8F8F800F8F8F800F8F8F800F8F8F800F8F8 - F800009800000066000000000000000000000000000097433F00CC666600F8F8 - F800F8F8F800F8F8F800F8F8F800F8F8F800F8F8F800F8F8F800F8F8F800F8F8 - F800CC66660097433F0000000000000000000000000000000000E7C4AD00FEFC - FB00FEFCFB00FEFCFB00FEFCFB00FCF8F400FBF5EF00F9EDDE00F9EDDE00F8EA - D900F2DCC100CCAFA600B78182000000000000000000078DBE00D8F7FB00A5F7 - FC00A5F7FC00A5F7FC00078DBB0048B9D90048B9D90048B9D9000C84180046CC - 800035BC73000C8418000000000000000000000000000066000000980000F8F8 - F800CDCCCD00CDCCCD00CDCCCD00CDCCCD00CDCCCD00CDCCCD00CDCCCD00F8F8 - F800009800000066000000000000000000000000000097433F00CC666600F8F8 - F800CDCBCC00CDCBCC00CDCBCC00CDCBCC00CDCBCC00CDCBCC00CDCBCC00F8F8 - F800CC66660097433F0000000000000000000000000000000000E7C4AD00FEFC - FB00FEFCFB00FEFCFB00FEFCFB00FEFCFB00FCF8F400FBF5EF00F3E1CC00C6A1 - 9600C0958800BA8F8600B7818200000000000000000000000000078DBE00078D - BE00078DBE00078DBE00000000000000000000000000000000000C8418003FC6 - 79000C841800000000000000000000000000000000000066000000980000F8F8 - F800F8F8F800F8F8F800F8F8F800F8F8F800F8F8F800F8F8F800F8F8F800F8F8 - F800009800000066000000000000000000000000000097433F00CC666600F8F8 - F800F8F8F800F8F8F800F8F8F800F8F8F800F8F8F800F8F8F800F8F8F800F8F8 - F800CC66660097433F0000000000000000000000000000000000EACAAC00FEFC - FB00FEFCFB00FEFCFB00FEFCFB00FEFCFB00FEFCFB00FEFBF900F3DEC500C188 - 7500DF9D5600DF9D5600C58B7200000000000000000000000000000000000000 - 000000000000000000000000000000000000000000000C84180030B8720030B8 - 72000C841800000000000000000000000000000000000066000000980000F8F8 - F800CDCCCD00CDCCCD00CDCCCD00CDCCCD00CDCCCD00CDCCCD00CDCCCD00F8F8 - F800009800000066000000000000000000000000000097433F00CC666600F8F8 - F800CDCBCC00CDCBCC00CDCBCC00CDCBCC00CDCBCC00CDCBCC00CDCBCC00F8F8 - F800CC66660097433F0000000000000000000000000000000000EACAAC00FEFC - FB00FEFCFB00FEFCFB00FEFCFB00FEFCFB00FEFCFB00FEFCFB00F3E1CC00C39A - 8D00EECEA200CD906A0000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000000000000C84180030B872000C84 - 180000000000000000000000000000000000000000000066000000980000F8F8 - F800F8F8F800F8F8F800F8F8F800F8F8F800F8F8F800F8F8F800F8F8F800F8F8 - F800009800000066000000000000000000000000000097433F00CC666600F8F8 - F800F8F8F800F8F8F800F8F8F800F8F8F800F8F8F800F8F8F800F8F8F800F8F8 - F800CC66660097433F0000000000000000000000000000000000EACAAC00FCF8 - F400FCF8F400FCF8F400FCF8F400FBF5EF00FBF5EF00FBF5EF00F3E1CC00C197 - 8900C39A8D000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000C8418000C8418000C8418000C8418000000 - 000000000000000000000000000000000000000000000000000000660000F8F8 - F800F8F8F800F8F8F800F8F8F800F8F8F800F8F8F800F8F8F800F8F8F800F8F8 - F80000660000000000000000000000000000000000000000000097433F00F8F8 - F800F8F8F800F8F8F800F8F8F800F8F8F800F8F8F800F8F8F800F8F8F800F8F8 - F80097433F000000000000000000000000000000000000000000E9C8AB00EACA - AC00EACAAC00EACAAC00EACAAC00EACAAC00EACAAC00EACAAC00E6BDAF00BD85 - 7900000000000000000000000000000000000000000000000000000000000000 - 0000000000000C8418000C8418000C8418000C84180000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000A5787300A5787300A5787300A5787300A5787300A5787300A578 - 7300A5787300A57873008C5D5C00000000000000000000000000000000000000 - 00000000000000000000A4410800A4410700A23F080000000000000000000000 - 000000000000000000000000000000000000000000000000000000669A000066 - 9A0000669A00A37F7700A37F7700A37F7700A37F7700A37F7700A37F7700A37F - 7700A37F7700A37F77008F626100000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000632DE000632DE000000000000000000000000000000 - 000000000000A97B7500FCE3CA00FDE1C500FDDFC100FCDAB900FCDAB900F9D4 - B000F9D4B000F5CCA6008C5D5C00000000000000000000000000000000000000 - 000000000000A23F0800A4410800A23F0800A441080000000000000000000000 - 0000000000000000000000000000000000000000000000669A004BC3E4004BC3 - E4004BC3E400B3847600F7ECDE00FAF1E700F8EEE100F7ECDE00F7ECDE00F7EC - DE00F7ECDE00F7ECDE008F62610000000000000000000632DE000632DE000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000632DE000632DE00000000000000000000000000000000000000 - 000000000000AD7E7500FAE6D400E5A55600E5A55600E5A55600E5A55600E5A5 - 5600E5A55600F9D4B0008C5D5C00000000000000000000000000000000000000 - 000000000000A44107000000000000000000A23F0800A23F080000000000A23F - 0800A44107000000000000000000000000000000000000669A004AC5E6004BC3 - E4004BC3E400B3847600F5E7D800E3A55B00E4A55900E4A55900E4A55900E4A5 - 5900E4A55900F5E3D1008F62610000000000000000000632DE000632DE000632 - DE00000000000000000000000000000000000000000000000000000000000000 - 00000632DE000632DE0000000000000000000000000000000000000000000000 - 000000000000B5867A00FBEEE200F9E9D900FBE4CF00FCE3CA00FDE1C500FCDD - BD00FCDAB900F9D4B0008C5D5C00000000000000000000000000000000000000 - 000000000000A44107000000000000000000A23F080000000000A23F0800A23F - 0800A23F0800A441080000000000000000000000000000669A004CC7E9004AC5 - E6004BC3E400B9877500F7ECDE00F5E4D200EFDCC900EFDCC900EFDCC900EBD8 - C600EFDCC900F5E4D2008F62610000000000000000000632DE000632DD000632 - DE000632DE000000000000000000000000000000000000000000000000000632 - DE000632DE00000000000000000000000000A5787300A5787300A5787300A578 - 7300A5787300BA8C7D00FBF1E700E5A55600E5A55600E5A55600E5A55600E5A5 - 5600E5A55600FCDAB9008C5D5C00000000000000000000000000000000000000 - 000000000000A4410800A23F0800A23F0800A23F080000000000A23F08000000 - 000000000000A441070000000000000000000000000000669A0057CDED0050C9 - EA004AC5E600B9877500F9EFE400E3A55B00E4A55900E4A55900E4A55900E4A5 - 5900E4A55900F5E5D5008F6261000000000000000000000000000433ED000632 - DE000632DE000632DE00000000000000000000000000000000000632DE000632 - DE0000000000000000000000000000000000A97B7500FCE3CA00FDE1C500FDDF - C100FCDAB900BD918400FDF5ED00FBF1E700FBEEE200F9E9D900FAE6D400FCE3 - CA00FDE1C500FDDFC1008C5D5C00000000000000000000000000000000000000 - 00000000000000000000A23F0800A4410700A4410800A23F0800A44108000000 - 000000000000A23F080000000000000000000000000000669A005DD1EF0057CD - ED0053CBEB00C18C7200FAF2E900F7ECDE00F5E4D200F5E4D200F5E3D100F3E1 - CD00F5E4D200F5E9DB008F626100000000000000000000000000000000000000 - 00000632DE000632DE000632DD00000000000632DD000632DE000632DE000000 - 000000000000000000000000000000000000AD7E7500FAE6D400E5A55600E5A5 - 5600E5A55600BD918400FEF9F300E5A55600E5A55600E5A55600E5A55600E5A5 - 5600E5A55600FCE3CA008C5D5C00000000000000000000000000000000000000 - 00000000000000000000000000009E420E0091471E00A23F0800A4410700A441 - 0800A4410800A23F080000000000000000000000000000669A0065D6F20061D4 - F1005BD0EE00C6906F00FAF4EE00E3A55B00E4A55900E4A55900E4A55900E4A5 - 5900E4A55900F9EEE2008F626100000000000000000000000000000000000000 - 0000000000000632DD000533E7000533E7000533E9000632DD00000000000000 - 000000000000000000000000000000000000B5867A00FBEEE200F9E9D900FBE4 - CF00FCE3CA00DEAB8400FEFBF900FEF9F500FDF7F000FCF4EA00FBF1E700FBEE - E200F9E9D900FAE5D1008C5D5C00000000000000000000000000000000000000 - 0000000000000000000000000000917E75008E7B71007C4E3500A23F0800A23F - 0800A23F08000000000000000000000000000000000000669A006DDBF50069D9 - F40061D4F100C6906F00FBF8F400FBF6F200F9F0E600F9EFE400F8EEE100F9EE - E200F9F0E600F5E9DB008F626100000000000000000000000000000000000000 - 000000000000000000000632E4000632E4000433EF0000000000000000000000 - 000000000000000000000000000000000000BA8C7D00FBF1E700E5A55600E5A5 - 5600E5A55600DEAB8400FEFBF900FEFBF900FEF9F500FEF9F300FDF5ED00F9E9 - D900ECC5A200BD9184008C5D5C00000000000000000000000000000000000000 - 000000000000000000008E7C72009C918D008E7C72008E7C7200000000000000 - 0000000000000000000000000000000000000000000000669A0075DFF80071DD - F60069D9F400D5A58900FBF8F400FCFAF900FCFAF900FCFAF900FCFAF900B384 - 7600B3847600B3847600B3847600000000000000000000000000000000000000 - 0000000000000632DD000433ED000533E9000433EF000434F400000000000000 - 000000000000000000000000000000000000BD918400FDF5ED00FBF1E700FBEE - E200F9E9D900E2B18A00FEFBF900FEFBF900FEFBF900FEFBF800FEF9F300B281 - 7600B2817600B2817600B07F7500000000000000000000000000000000000000 - 0000000000008E7C7200C8BEBD008E7C72009D9591008E7C7200000000000000 - 0000000000000000000000000000000000000000000000669A007CE2F90078E1 - F90071DDF600D5A58900FCFAF800FCFAF900FCFAF900FCFAF900FCFAF900B384 - 7600DDA57200E2A45B0000000000000000000000000000000000000000000000 - 00000434F4000433EF000533EB0000000000000000000434F4000335F8000000 - 000000000000000000000000000000000000BD918400FEF9F300E5A55600E5A5 - 5600E5A55600E5B68E00FEFBF900FEFBF900FEFBF900FEFBF900FEFBF800B281 - 7600E5AE7000E4A3530000000000000000000000000000000000000000000000 - 00008E7C7200D3CBCB008E7C72009D959100C6BBB9008E7C7200000000000000 - 0000000000000000000000000000000000000000000000669A007EE3F9007CE2 - F90078E1F900D5A58900D9A68200D9A68200D9A68200D9A68200D9A68200B384 - 7600C6AE9A0000669A0000000000000000000000000000000000000000000335 - F8000433EF000334F800000000000000000000000000000000000335F8000335 - F80000000000000000000000000000000000DEAB8400FEFBF900FEF9F500FDF7 - F000FCF4EA00E5B68E00DEAB8400DEAB8400DEAB8400DEAB8400DEAB8400B281 - 7600E8AB5E000000000000000000000000000000000000000000000000008E7C - 7200D3CBCB008E7C7200000000008E7C7200D3CBCB008E7C7200000000000000 - 0000000000000000000000000000000000000000000000669A0088E5F9007EE3 - F9007EE3F9007EE3F90078E1F90075DFF8006DDBF50065D6F2005DD1EF0057CD - ED0053CBEB0000669A00000000000000000000000000000000000335F8000335 - F8000335F8000000000000000000000000000000000000000000000000000335 - F8000335F800000000000000000000000000DEAB8400FEFBF900FEFBF900FEF9 - F500FEF9F300FDF5ED00F9E9D900ECC5A200BD9184008C5D5C00000000000000 - 0000000000000000000000000000000000000000000000000000000000008E7C - 72008E7C720000000000000000008E7C7200D3CBCB008E7C7200000000000000 - 0000000000000000000000000000000000000000000000669A0088E5F90088E5 - F9007372720073727200737272007372720073727200737272007372720061D4 - F1005BD0EE0000669A000000000000000000000000000335F8000335F8000335 - F800000000000000000000000000000000000000000000000000000000000000 - 0000000000000335F8000000000000000000E2B18A00FEFBF900FEFBF900FEFB - F900FEFBF800FEF9F300B2817600B2817600B2817600B07F7500000000000000 - 0000000000000000000000000000000000000000000000000000000000008E7C - 72000000000000000000000000008E7C7200D3CBCB008E7C7200000000000000 - 0000000000000000000000000000000000000000000000669A0088E5F90088E5 - F90073727200D1C5BA00D1C5BA00D1C5BA00D1C5BA00C9BFB6007372720069D9 - F40061D4F10000669A0000000000000000000335F8000335F8000335F8000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000E5B68E00FEFBF900FEFBF900FEFB - F900FEFBF900FEFBF800B2817600E5AE7000E4A3530000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000008E7C72008E7C720000000000000000000000 - 000000000000000000000000000000000000000000000000000000669A000066 - 9A0073727200EBD8C600FAFAF900FCF9F700FCF9F700D1C5BA00737272000066 - 9A0000669A000000000000000000000000000335F8000335F800000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000E5B68E00DEAB8400DEAB8400DEAB - 8400DEAB8400DEAB8400B2817600E8AB5E000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000008E7C72000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000007372720073727200737272007372720073727200000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000424D3E000000000000003E000000 - 2800000040000000800000000100010000000000000400000000000000000000 - 000000000000000000000000FFFFFF0000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000FFFFFC7FFFFFF81FF707FC7F000FE007 - F007FC7F000FC003F707FC7FFFFF8001F7FFFC7FEE078001F707FC7FCE070000 - F007FC7F82070000F707FC7F03FF0000F7FFFC7F82000000F707FC7FCE000000 - F007FC7FEE000000F707F83FFFFF8001C1FF0000000F8001C1FF0000000FC003 - C1FF0000FFFFE007FFFFF83FFFFFF81FFFFFFFFDFFFF9FFFE003FFF0000F0FFF - E003CFE1000F07FFE003E603FFFF83FFE003FC07DE07C1FFE003F807CE07E10F - E003F0070607F003E003E00703FFF801E003E0070600F801E003E00FCE00F800 - E003E01FDE00F800E003E027FFFFF800E007C073000FF801E00F87FF000FFC01 - E01F0FFFFFFFFE03FFFF3FFFFFFFFF0FFFFFFFFF80038007E07FFE3F00010003 - C01FFC0F00010001C00FF80300010001C007F00000010001C007E00000010000 - C007C00000010000C007800000010000C007800000070007C007800100070007 - E00F8003800F800FF21F8007C3FFC3FFF39F800FFFFFFFFFF13F001FFFFFFFFF - F83F063FFFFFFFFFFFFFCFFFFFFFFFFF9FFFFFFFFFFFE07F0FFFC003C003C01F - 07FF80018001C00F83FF80018001C007C1FF80018001C007E10F80018001C007 - F00380018001C007FC0180018001C007FC0180018001E007F80080018001FC07 - F80080018001FF9FF80080018001F39FFC0180018001F39FFC0180018001F39F - FE03C003C003F83FFF8FFFFFFFFFFC7FF81FF81FF33FFE3FE007E007E007E007 - C003C003C000E007800180018001800380018001000080010000000000008001 - 0000000000008001000000008000800100000000E001800100000000F003C003 - 00000000F01FE00780018001E03FF81F80018001E03FF81FC003C003C03FF81F - E007E007C07FF81FF81FF81FF8FFFC3FC0018003FFFFFFFFC0010003C007C007 - C001000180038003C001000180038003C001000180038003C001000080038003 - C001000080038003C001000080038003C001000180038003C001000080038003 - C001800380038003C001C3C780038003C001FF8780038003C003FF8F80038003 - C007FE1FC007C007C00FF87FFFFFFFFFF801FC7FC001FFFCF801F87F80019FF9 - F801FB2780018FF3F801FB43800187E70001F85B8001C3CF0001FC1B8001F11F - 0001FE038001F83F0001FE078001FC7F0001FC3F8001F83F0001F83F8003F19F - 0003F03F8003E3CF0007E23F8003C7E7003FE63F80038FFB003FEE3F80031FFF - 007FFE7FC0073FFF00FFFEFFF83FFFFF00000000000000000000000000000000 - 000000000000} - end - object amMenu: TActionManager - ActionBars = < - item - Items = < - item - Items = < - item - Action = acNew - Caption = '&New' - ImageIndex = 30 - ShortCut = 16462 - end - item - Caption = '-' - end - item - Action = acSave - Caption = '&Save' - ImageIndex = 21 - ShortCut = 16467 - end - item - Action = acSaveAs - Caption = 'S&ave As...' - ImageIndex = 22 - end - item - Caption = '-' - end - item - Action = acOpen - Caption = '&Open' - ImageIndex = 16 - ShortCut = 16463 - end - item - Caption = '-' - end - item - Action = acClose - Caption = '&Close' - ImageIndex = 3 - ShortCut = 16430 - end - item - Action = acCloseAllFiles - Caption = 'C&lose all files' - ImageIndex = 4 - ShortCut = 24622 - end - item - Caption = '-' - end - item - Caption = '-' - end - item - Action = acExit - Caption = '&Exit' - ImageIndex = 9 - ShortCut = 16465 - end> - Caption = '&File' - end - item - Items = < - item - Action = acUndo - Caption = '&Undo' - ImageIndex = 2 - ShortCut = 16474 - end - item - Action = acRedo - Caption = '&Redo' - ImageIndex = 13 - ShortCut = 24666 - end - item - Caption = '-' - end - item - Action = acCut - Caption = '&Cut' - ImageIndex = 6 - ShortCut = 16472 - end - item - Action = acCopy - Caption = 'C&opy' - ImageIndex = 5 - ShortCut = 16451 - end - item - Action = acPaste - Caption = '&Paste' - ImageIndex = 18 - ShortCut = 16470 - end> - Caption = '&Edit' - end - item - Items = < - item - Action = acSearch - Caption = '&Search' - ImageIndex = 25 - ShortCut = 16454 - end - item - Action = acFindNext - Caption = '&Find Next...' - ImageIndex = 26 - ShortCut = 114 - end - item - Caption = '-' - end - item - Action = acReplace - Caption = '&Replace' - ImageIndex = 28 - ShortCut = 16466 - end> - Caption = '&Search' - end - item - Items = < - item - Action = acCompile - Caption = '&Compile' - ImageIndex = 19 - ShortCut = 120 - end - item - Action = acCompileAndUpload - Caption = 'C&ompile and upload' - ShortCut = 8312 - end - item - Caption = '-' - end> - Caption = '&Compile' - end - item - Items = < - item - Action = acDoc - Caption = '&AMX Mod X Documentation' - ImageIndex = 12 - ShortCut = 112 - end - item - Action = acForum - ImageIndex = 12 - ShortCut = 8304 - end - item - Caption = '-' - end - item - Action = acAbout - Caption = 'A&bout...' - ImageIndex = 14 - end> - Caption = '&Help' - end> - end - item - Items = < - item - Action = acNew - Caption = '&New' - ImageIndex = 4 - ShowCaption = False - ShortCut = 16462 - end - item - Action = acOpen - Caption = '&Open' - ImageIndex = 5 - ShowCaption = False - ShortCut = 16463 - end - item - Action = acSave - Caption = '&Save' - ImageIndex = 6 - ShowCaption = False - ShortCut = 16467 - end - item - Caption = '-' - end - item - Action = acSearch - Caption = 'S&earch' - ImageIndex = 12 - ShowCaption = False - ShortCut = 16454 - end - item - Caption = '-' - end - item - Action = acCompile - Caption = '&Compile' - ImageIndex = 8 - ShowCaption = False - ShortCut = 120 - end> - ActionBar = atbToolBar - end - item - Items = < - item - Items = < - item - Action = acNew - Caption = '&New' - ImageIndex = 4 - ShortCut = 16462 - end - item - Caption = '-' - end - item - Action = acSave - Caption = '&Save' - ImageIndex = 6 - ShortCut = 16467 - end - item - Action = acSaveAs - Caption = 'S&ave As...' - ImageIndex = 7 - end - item - Action = acSaveAll - Caption = 'Sa&ve All Files' - ShortCut = 24659 - end - item - Caption = '-' - end - item - Action = acOpen - Caption = '&Open' - ImageIndex = 5 - ShortCut = 16463 - end - item - Caption = '-' - end - item - Action = acClose - Caption = '&Close' - ShortCut = 16430 - end - item - Action = acCloseAllFiles - Caption = 'C&lose all files' - ShortCut = 24622 - end - item - Caption = '-' - end - item - Action = acExit - Caption = '&Exit' - ImageIndex = 3 - ShortCut = 16465 - end> - Caption = '&File' - end - item - Items = < - item - Caption = '-' - end - item - Action = acUndo - Caption = '&Undo' - ImageIndex = 14 - ShortCut = 16474 - end - item - Action = acRedo - Caption = '&Redo' - ImageIndex = 13 - ShortCut = 24666 - end - item - Caption = '-' - end - item - Action = acCut - Caption = '&Cut' - ImageIndex = 1 - ShortCut = 16472 - end - item - Action = acCopy - Caption = 'C&opy' - ImageIndex = 0 - ShortCut = 16451 - end - item - Action = acPaste - Caption = '&Paste' - ImageIndex = 2 - ShortCut = 16470 - end - item - Caption = '-' - end - item - Action = acSelectAll - Caption = '&Select all' - ShortCut = 16449 - end> - Caption = '&Edit' - end - item - Items = < - item - Action = acSearch - Caption = '&Search' - ImageIndex = 12 - ShortCut = 16454 - end - item - Action = acFindNext - Caption = '&Find Next...' - ImageIndex = 23 - ShortCut = 114 - end - item - Caption = '-' - end - item - Action = acReplace - Caption = '&Replace' - ImageIndex = 28 - ShortCut = 16466 - end - item - Caption = '-' - end - item - Action = acGoTo - Caption = '&Go to line...' - ShortCut = 16455 - end> - Caption = '&Search' - end - item - Items = < - item - Action = acCompile - Caption = '&Compile' - ImageIndex = 8 - ShortCut = 120 - end - item - Caption = '-' - end - item - Action = acCompileAndStart - Caption = 'C&ompile and start Half-Life' - end - item - Action = acCompileAndUpload - Caption = 'Co&mpile and upload' - ImageIndex = 21 - ShortCut = 8312 - end> - Caption = '&Compile' - end - item - Items = < - item - Action = acOptions - Caption = '&Options' - ImageIndex = 11 - end> - Caption = 'Se&ttings' - end - item - Items = < - item - Action = acIdenter - Caption = '&Identer' - ImageIndex = 22 - ShortCut = 16457 - end - item - Action = acUnidenter - Caption = '&Unidenter' - ImageIndex = 26 - ShortCut = 24649 - end - item - Caption = '-' - end - item - Action = acLoopGenerator - Caption = '&Loop Generator' - ImageIndex = 27 - end - item - Caption = '-' - end - item - Action = acMenuMaker - Caption = '&Menu Maker' - ImageIndex = 24 - ShortCut = 16461 - end - item - Action = acPMM - Caption = '&Player Menu Maker' - ImageIndex = 24 - ShortCut = 16464 - end - item - Caption = '-' - end - item - Action = acSocketTerminal - Caption = '&Socket Terminal' - ImageIndex = 25 - end - item - Caption = '-' - end - item - Action = acRemoveMissingPlugins - Caption = '&Remove missing plugins from plugins.ini' - end> - Caption = 'T&ools' - end - item - Items = < - item - Action = acDoc - Caption = '&AMX Mod X Documentation' - ShortCut = 112 - end - item - Action = acForum - Caption = 'A&MX Mod X Scripting Forum' - ShortCut = 8304 - end - item - Caption = '-' - end - item - Action = acAbout - Caption = 'A&bout...' - end> - Caption = '&Help' - end> - ActionBar = mmbMenu - end> - Images = ilMenu - OnExecute = amMenuExecute - Left = 826 - Top = 34 - StyleName = 'XP Style' - object acNew: TAction - Category = 'File' - Caption = 'New' - ImageIndex = 4 - ShortCut = 16462 - OnExecute = acNewExecute - end - object acSave: TAction - Category = 'File' - Caption = 'Save' - ImageIndex = 6 - ShortCut = 16467 - OnExecute = acSaveExecute - end - object acSaveAs: TAction - Category = 'File' - Caption = 'Save As...' - ImageIndex = 7 - OnExecute = acSaveAsExecute - end - object acSaveAll: TAction - Category = 'File' - Caption = 'Save All Files' - ShortCut = 24659 - OnExecute = acSaveAllExecute - end - object acOpen: TAction - Category = 'File' - Caption = 'Open' - ImageIndex = 5 - ShortCut = 16463 - OnExecute = acOpenExecute - end - object acClose: TAction - Category = 'File' - Caption = 'Close' - Enabled = False - ShortCut = 16430 - OnExecute = acCloseExecute - end - object acCloseAllFiles: TAction - Category = 'File' - Caption = 'Close all files' - Enabled = False - ShortCut = 24622 - OnExecute = acCloseAllFilesExecute - end - object acExit: TAction - Category = 'File' - Caption = 'Exit' - ImageIndex = 3 - ShortCut = 16465 - OnExecute = acExitExecute - end - object acUndo: TAction - Category = 'Edit' - Caption = 'Undo' - ImageIndex = 14 - ShortCut = 16474 - OnExecute = acUndoExecute - end - object acRedo: TAction - Category = 'Edit' - Caption = 'Redo' - ImageIndex = 13 - ShortCut = 24666 - OnExecute = acRedoExecute - end - object acCut: TAction - Category = 'Edit' - Caption = 'Cut' - ImageIndex = 1 - ShortCut = 16472 - OnExecute = acCutExecute - end - object acCopy: TAction - Category = 'Edit' - Caption = 'Copy' - ImageIndex = 0 - ShortCut = 16451 - OnExecute = acCopyExecute - end - object acPaste: TAction - Category = 'Edit' - Caption = 'Paste' - ImageIndex = 2 - ShortCut = 16470 - OnExecute = acPasteExecute - end - object acSelectAll: TAction - Category = 'Edit' - Caption = 'Select all' - ShortCut = 16449 - OnExecute = acSelectAllExecute - end - object acSearch: TAction - Category = 'Search' - Caption = 'Search' - ImageIndex = 12 - ShortCut = 16454 - OnExecute = acSearchExecute - end - object acFindNext: TAction - Category = 'Search' - Caption = 'Find Next...' - ImageIndex = 23 - ShortCut = 114 - OnExecute = acFindNextExecute - end - object acReplace: TAction - Category = 'Search' - Caption = 'Replace' - ImageIndex = 28 - ShortCut = 16466 - OnExecute = acReplaceExecute - end - object acCompile: TAction - Category = 'Compile' - Caption = 'Compile' - ImageIndex = 8 - ShortCut = 120 - OnExecute = acCompileExecute - end - object acCompileAndStart: TAction - Category = 'Compile' - Caption = 'Compile and start CS' - OnExecute = acCompileAndStartExecute - end - object acCompileAndUpload: TAction - Category = 'Compile' - Caption = 'Compile and upload' - ImageIndex = 21 - ShortCut = 8312 - OnExecute = acCompileAndUploadExecute - end - object acDoc: TAction - Category = 'Help' - Caption = 'AMX Mod X Documentation' - ShortCut = 112 - OnExecute = acDocExecute - end - object acForum: TAction - Category = 'Help' - Caption = 'AMX Mod X Scripting Forum' - ShortCut = 8304 - OnExecute = acForumExecute - end - object acAbout: TAction - Category = 'Help' - Caption = 'About...' - OnExecute = acAboutExecute - end - object acOptions: TAction - Category = 'Settings' - Caption = 'Options' - ImageIndex = 11 - OnExecute = acOptionsExecute - end - object acGoTo: TAction - Category = 'Search' - Caption = 'Go to line...' - ShortCut = 16455 - OnExecute = acGoToExecute - end - object acEdit: TAction - Caption = 'Edit' - ShortCut = 113 - OnExecute = acEditExecute - end - object acIdenter: TAction - Category = 'Tools' - Caption = 'Identer' - ImageIndex = 22 - ShortCut = 16457 - OnExecute = acIdenterExecute - end - object acUnidenter: TAction - Category = 'Tools' - Caption = 'Unidenter' - ImageIndex = 26 - ShortCut = 24649 - OnExecute = acUnidenterExecute - end - object acLoopGenerator: TAction - Category = 'Tools' - Caption = 'Loop Generator' - ImageIndex = 27 - OnExecute = acLoopGeneratorExecute - end - object acMenuMaker: TAction - Category = 'Tools' - Caption = 'Menu Maker' - ImageIndex = 24 - ShortCut = 16461 - OnExecute = acMenuMakerExecute - end - object acPMM: TAction - Category = 'Tools' - Caption = 'Player Menu Maker' - ImageIndex = 24 - ShortCut = 16464 - OnExecute = acPMMExecute - end - object acSocketTerminal: TAction - Category = 'Tools' - Caption = 'Socket Terminal' - ImageIndex = 25 - OnExecute = acSocketTerminalExecute - end - object acRemoveMissingPlugins: TAction - Category = 'Tools' - Caption = 'Remove missing plugins from plugins.ini' - OnExecute = acRemoveMissingPluginsExecute - end - end - object sacComplete: TSciAutoComplete - NumStartChars = 1 - AStrings.Strings = ( - '' - 'access' - 'add' - 'ADMIN_ADMIN' - 'ADMIN_ALL' - 'ADMIN_BAN' - 'ADMIN_CFG' - 'ADMIN_CHAT' - 'ADMIN_CVAR' - 'ADMIN_IMMUNITY' - 'ADMIN_KICK' - 'ADMIN_LEVEL_A' - 'ADMIN_LEVEL_B' - 'ADMIN_LEVEL_C' - 'ADMIN_LEVEL_D' - 'ADMIN_LEVEL_E' - 'ADMIN_LEVEL_F' - 'ADMIN_LEVEL_G' - 'ADMIN_LEVEL_H' - 'ADMIN_MAP' - 'ADMIN_MENU' - 'ADMIN_PASSWORD' - 'ADMIN_RCON' - 'ADMIN_RESERVATION' - 'ADMIN_SLAY' - 'ADMIN_USER' - 'ADMIN_VOTE' - 'ALLIES' - 'AMX_FLAG_BIGENDIAN' - 'AMX_FLAG_BROWSE' - 'AMX_FLAG_COMPACT' - 'AMX_FLAG_DEBUG' - 'AMX_FLAG_LINEOPS' - 'AMX_FLAG_NOCHECKS' - 'AMX_FLAG_RELOC' - 'AMXX_VERSION' - 'AMXX_VERSION_STR[]="1' - 'anglevector' - 'assert' - 'attach_view' - 'ATTN_IDLE' - 'ATTN_NONE' - 'ATTN_STATIC' - 'AXIS' - 'BLOCK_NOT' - 'BLOCK_ONCE' - 'BLOCK_SET' - 'bomb_defused' - 'bomb_defusing' - 'bomb_explode' - 'bomb_planted' - 'bomb_planting' - 'break' - 'build_path' - 'call_think' - 'callfunc_begin' - 'callfunc_end' - 'callfunc_push_float' - 'callfunc_push_floatrf' - 'callfunc_push_int' - 'callfunc_push_intrf' - 'callfunc_push_str' - 'CAMERA_3RDPERSON' - 'CAMERA_NONE' - 'CAMERA_TOPDOWN' - 'CAMERA_UPLEFT' - 'case' - 'CHAN_AUTO' - 'CHAN_ITEM' - 'CHAN_NETWORKVOICE_BASE' - 'CHAN_NETWORKVOICE_END' - 'CHAN_STATIC' - 'CHAN_STREAM' - 'CHAN_WEAPON' - 'change_task' - 'char' - 'clamp' - 'client_authorized' - 'client_built' - 'client_changeclass' - 'client_changeteam' - 'client_cmd' - 'client_command' - 'client_connect' - 'client_damage' - 'client_death' - 'client_disconnect' - 'client_impulse' - 'client_infochanged' - 'client_kill' - 'client_PostThink' - 'client_PreThink' - 'client_print' - 'client_putinserver' - 'client_score' - 'client_spawn' - 'cmd_access' - 'cmd_target' - 'colored_menus' - 'console_cmd' - 'console_print' - 'const' - 'contain' - 'containi' - 'CONTENTS_TRANSLUCENT' - 'continue' - 'copy' - 'copy_keyvalue' - 'copyc' - 'create_entity' - 'CreateEntity' - 'cs_get_hostage_foll' - 'cs_get_hostage_id' - 'cs_get_no_knives' - 'cs_get_user_bpammo' - 'cs_get_user_buyzone' - 'cs_get_user_deaths' - 'cs_get_user_defuse' - 'cs_get_user_driving' - 'cs_get_user_hasprim' - 'cs_get_user_model' - 'cs_get_user_money' - 'cs_get_user_nvg' - 'cs_get_user_plant' - 'cs_get_user_stationary' - 'cs_get_user_team' - 'cs_get_user_tked' - 'cs_get_user_vip' - 'cs_get_weapon_ammo' - 'cs_get_weapon_burst' - 'cs_get_weapon_id' - 'cs_get_weapon_silen' - 'cs_reset_user_model' - 'cs_set_hostage_foll' - 'cs_set_no_knives' - 'cs_set_user_bpammo' - 'cs_set_user_deaths' - 'cs_set_user_defuse' - 'cs_set_user_model' - 'cs_set_user_money' - 'cs_set_user_nvg' - 'cs_set_user_plant' - 'cs_set_user_team' - 'cs_set_user_tked' - 'cs_set_user_vip' - 'cs_set_weapon_ammo' - 'cs_set_weapon_burst' - 'cs_set_weapon_silen' - 'cstrike_running' - 'CSW_AK47' - 'CSW_AUG' - 'CSW_AWP' - 'CSW_C4' - 'CSW_DEAGLE' - 'CSW_ELITE' - 'CSW_FAMAS' - 'CSW_FIVESEVEN' - 'CSW_FLASHBANG' - 'CSW_G3SG1' - 'CSW_GALI' - 'CSW_GALIL' - 'CSW_GLOCK18' - 'CSW_HEGRENADE' - 'CSW_KNIFE' - 'CSW_M249' - 'CSW_M3' - 'CSW_M4A1' - 'CSW_MAC10' - 'CSW_MP5NAVY' - 'CSW_P228' - 'CSW_P90' - 'CSW_SCOUT' - 'CSW_SG550' - 'CSW_SG552' - 'CSW_SMOKEGRENADE' - 'CSW_TMP' - 'CSW_UMP45' - 'CSW_USP' - 'CSW_XM1014' - 'current_num_ents' - 'custom_weapon_add' - 'custom_weapon_dmg' - 'custom_weapon_shot' - 'cvar_exists' - 'date' - 'dbi_close' - 'dbi_connect' - 'dbi_error' - 'dbi_field' - 'dbi_free_result' - 'dbi_nextrow' - 'dbi_num_rows' - 'dbi_query' - 'dbi_result' - 'dbi_type' - 'default' - 'define' - 'defined' - 'delete_file' - 'DF_Blocked' - 'DF_ClientCommand' - 'DF_ClientConnect' - 'DF_ClientDisconnect' - 'DF_ClientKill' - 'DF_ClientPutInServer' - 'DF_ClientUserInfoChanged' - 'DF_CreateInstancedBaseline' - 'DF_GameInit' - 'DF_GetGameDescription' - 'DF_GetHullBounds' - 'DF_MetaFunc_CallGameEntity' - 'DF_ParmsChangeLevel' - 'DF_ParmsNewLevel' - 'DF_pfnAllowLagCompensation' - 'DF_PlayerPostThink' - 'DF_PlayerPreThink' - 'DF_PM_FindTextureType' - 'DF_RegisterEncoders' - 'DF_ServerDeactivate' - 'DF_SetAbsBox' - 'DF_Spawn' - 'DF_SpectatorConnect' - 'DF_SpectatorDisconnect' - 'DF_SpectatorThink' - 'DF_StartFrame' - 'DF_Sys_Error' - 'DF_Think' - 'DF_Touch' - 'DF_Use' - 'DispatchKeyValue' - 'DispatchSpawn' - 'dllfunc' - 'DMG_ACID' - 'DMG_ALWAYSGIB' - 'DMG_BLAST' - 'DMG_BULLET' - 'DMG_BURN' - 'DMG_CLUB' - 'DMG_CRUSH' - 'DMG_DROWN' - 'DMG_DROWNRECOVER' - 'DMG_ENERGYBEAM' - 'DMG_FALL' - 'DMG_FREEZE' - 'DMG_GENERIC' - 'DMG_MORTAR' - 'DMG_NERVEGAS' - 'DMG_NEVERGIB' - 'DMG_PARALYZE' - 'DMG_POISON' - 'DMG_RADIATION' - 'DMG_SHOCK' - 'DMG_SLASH' - 'DMG_SLOWBURN' - 'DMG_SLOWFREEZE' - 'DMG_SONIC' - 'DMG_TIMEBASED' - 'do' - 'dod_get_map_info' - 'dod_get_next_class' - 'dod_get_pl_deaths' - 'dod_get_pl_teamname' - 'dod_get_pronestate' - 'dod_get_team_score' - 'dod_get_user_ammo' - 'dod_get_user_class' - 'dod_get_user_kills' - 'dod_get_user_score' - 'dod_get_user_weapon' - 'dod_is_deployed' - 'dod_is_randomclass' - 'dod_make_deathmsg' - 'dod_set_fuse' - 'dod_set_pl_deaths' - 'dod_set_pl_teamname' - 'dod_set_stamina' - 'dod_set_user_ammo' - 'dod_set_user_class' - 'dod_set_user_kills' - 'dod_set_user_score' - 'dod_set_user_team' - 'dod_user_kill' - 'dod_wpnlog_to_id' - 'dod_wpnlog_to_name' - 'DODMAX_WEAPONS' - 'drop_to_floor' - 'EF_AllocString' - 'EF_AngleVectors' - 'EF_AnimationAutomove' - 'EF_BuildSoundMSG' - 'EF_CanSkipPlayer' - 'EF_ChangeLevel' - 'EF_ChangePitch' - 'EF_ChangeYaw' - 'EF_CheckVisibility' - 'EF_CreateEntity' - 'EF_CreateFakeClient' - 'EF_CreateNamedEntity' - 'EF_CrosshairAngle' - 'EF_DecalIndex' - 'EF_DropToFloor' - 'EF_EmitAmbientSound' - 'EF_EmitSound' - 'EF_EntIsOnFloor' - 'EF_EntitiesInPVS' - 'EF_FadeClientVolume' - 'EF_FindClientInPVS' - 'EF_FindEntityByString' - 'EF_FindEntityInSphere' - 'EF_FreeEntPrivateData' - 'EF_GetAimVector' - 'EF_GetAttachment' - 'EF_GetBonePosition' - 'EF_GetClientListening' - 'EF_GetCurrentPlayer' - 'EF_GetEntityIllum' - 'EF_GetPhysicsInfoString' - 'EF_GetPhysicsKeyValue' - 'EF_InfoKeyValue' - 'EF_INVLIGHT' - 'EF_LIGHT' - 'EF_LightStyle' - 'EF_MakeStatic' - 'EF_MakeVectors' - 'EF_MessageBegin' - 'EF_ModelFrames' - 'EF_ModelIndex' - 'EF_MoveToOrigin' - 'EF_NODRAW' - 'EF_NOINTERP' - 'EF_NumberOfEntities' - 'EF_ParticleEffect' - 'EF_PlaybackEvent' - 'EF_PointContents' - 'EF_PrecacheEvent' - 'EF_PrecacheGeneric' - 'EF_PrecacheModel' - 'EF_PrecacheSound' - 'EF_RegUserMsg' - 'EF_RemoveEntity' - 'EF_RunPlayerMove' - 'EF_SetClientKeyValue' - 'EF_SetClientListening' - 'EF_SetClientMaxspeed' - 'EF_SetGroupMask' - 'EF_SetKeyValue' - 'EF_SetModel' - 'EF_SetOrigin' - 'EF_SetPhysicsKeyValue' - 'EF_SetSize' - 'EF_SetView' - 'EF_StaticDecal' - 'EF_SzFromIndex' - 'EF_Time' - 'EF_TraceHull' - 'EF_TraceLine' - 'EF_TraceModel' - 'EF_TraceMonsterHull' - 'EF_TraceSphere' - 'EF_TraceTexture' - 'EF_TraceToss' - 'EF_VecToAngles' - 'EF_VecToYaw' - 'EF_WalkMove' - 'EF_WriteAngle' - 'EF_WriteCoord' - 'else' - 'emit_sound' - 'endif' - 'engclient_cmd' - 'engclient_print' - 'engfunc' - 'ENT_SetModel' - 'ENT_SetOrigin' - 'entity_count' - 'entity_get_byte' - 'entity_get_edict' - 'entity_get_float' - 'entity_get_int' - 'entity_get_string' - 'entity_get_vector' - 'entity_range' - 'entity_set_byte' - 'entity_set_edict' - 'entity_set_float' - 'entity_set_int' - 'entity_set_model' - 'entity_set_origin' - 'entity_set_size' - 'entity_set_string' - 'entity_set_vector' - 'Entvars_Get_Byte' - 'Entvars_Get_Edict' - 'Entvars_Get_Float' - 'Entvars_Get_Int' - 'Entvars_Get_String' - 'Entvars_Get_Vector' - 'Entvars_Set_Byte' - 'Entvars_Set_Edict' - 'Entvars_Set_Float' - 'Entvars_Set_Int' - 'Entvars_Set_String' - 'Entvars_Set_Vector' - 'enum' - 'equal' - 'equali' - 'exit' - 'fake_touch' - 'fakedamage' - 'FakeTouch' - 'fclose' - 'FCVAR_CLIENTDLL' - 'FCVAR_EXTDLL' - 'FCVAR_PRINTABLEONLY' - 'FCVAR_PROTECTED' - 'FCVAR_SPONLY' - 'FCVAR_UNLOGGED' - 'feof' - 'fflush' - 'fgetc' - 'fgetf' - 'fgeti' - 'fgetl' - 'fgets' - 'file_exists' - 'file_size' - 'filesize' - 'find_ent' - 'find_ent_by_class' - 'find_ent_by_model' - 'find_ent_by_owner' - 'find_ent_by_target' - 'find_ent_by_tname' - 'find_ent_in_sphere' - 'find_ent_sphere' - 'find_entity' - 'find_player' - 'find_plugin_bydesc' - 'find_plugin_byfile' - 'find_sphere_class' - 'FindEntity' - 'FL_ALWAYSTHINK' - 'FL_BASEVELOCITY' - 'FL_CUSTOMENTITY' - 'FL_DORMANT' - 'FL_DUCKING' - 'FL_FAKECLIENT' - 'FL_FLOAT' - 'FL_FROZEN' - 'FL_GRAPHED' - 'FL_IMMUNE_LAVA' - 'FL_IMMUNE_WATER' - 'FL_KILLME' - 'FL_MONSTERCLIP' - 'FL_ONTRAIN' - 'FL_PROXY' - 'FL_SPECTATOR' - 'FL_WORLDBRUSH' - 'FLAG_AUTHID' - 'FLAG_IP' - 'FLAG_KICK' - 'FLAG_NOPASS' - 'FLAG_TAG' - 'float' - 'floatabs' - 'floatacos' - 'floatadd' - 'floatasin' - 'floatatan' - 'floatatan2' - 'floatcmp' - 'floatcos' - 'floatdiv' - 'floatfract' - 'floatlog' - 'floatmul' - 'floatpower' - 'floatround' - 'floatsin' - 'floatsqroot' - 'floatstr' - 'floatsub' - 'floattan' - 'FMRES_HANDLED' - 'FMRES_IGNORED' - 'FMRES_OVERRIDE' - 'FMRES_SUPERCEDE' - 'FMV_CELL' - 'FMV_FLOAT' - 'fopen' - 'for' - 'force_unmodified' - 'force_use' - 'format' - 'format_args' - 'format_time' - 'forward' - 'forward_return' - 'fputc' - 'fputf' - 'fputi' - 'fputl' - 'fputs' - 'fread' - 'fscanf' - 'fseek' - 'FT_NEW' - 'FT_OLD' - 'ftell' - 'funcidx' - 'FUSE_RESET' - 'FUSE_SET' - 'FVecIVec' - 'fwrite' - 'geoip_code2' - 'geoip_code3' - 'geoip_country' - 'get_basedir' - 'get_brush_entity_origin' - 'get_build' - 'get_class' - 'get_clcmd' - 'get_clcmdsnum' - 'get_client_listen' - 'get_concmd' - 'get_concmdsnum' - 'get_configsdir' - 'get_customdir' - 'get_cvar_flags' - 'get_cvar_float' - 'get_cvar_num' - 'get_cvar_string' - 'get_datadir' - 'get_decal_index' - 'get_distance' - 'get_entity_distance' - 'get_entity_flags' - 'get_entity_origin' - 'get_entity_velocity' - 'get_entity_visibility' - 'get_filename' - 'get_flags' - 'get_gametime' - 'get_global_edict' - 'get_global_float' - 'get_global_int' - 'get_global_string' - 'get_global_vector' - 'get_grenade' - 'get_grenade_id' - 'get_grenade_index' - 'get_hostage_id' - 'get_info_keybuffer' - 'get_keyvalue' - 'get_lang' - 'get_langsnum' - 'get_localinfo' - 'get_logfile' - 'get_mapname' - 'get_mask' - 'get_max_entities' - 'get_maxplayers' - 'get_maxspeed' - 'get_modname' - 'get_module' - 'get_modulesnum' - 'get_msg_arg_float' - 'get_msg_arg_int' - 'get_msg_arg_string' - 'get_msg_args' - 'get_msg_argtype' - 'get_msg_block' - 'get_msg_origin' - 'get_owner' - 'get_pdata' - 'get_pdata_char' - 'get_pdata_float' - 'get_pdata_int' - 'get_pdata_short' - 'get_players' - 'get_playersnum' - 'get_plugin' - 'get_pluginsnum' - 'get_private_f' - 'get_private_i' - 'get_range' - 'get_res' - 'get_spawn' - 'get_speak' - 'get_special' - 'get_speed' - 'get_speedchange' - 'get_srvcmd' - 'get_srvcmdsnum' - 'get_stats' - 'get_stats2' - 'get_statsnum' - 'get_string' - 'get_systime' - 'get_time' - 'get_timeleft' - 'get_tr' - 'get_user_aiming' - 'get_user_ammo' - 'get_user_armor' - 'get_user_astats' - 'get_user_attacker' - 'get_user_authid' - 'get_user_button' - 'get_user_deaths' - 'get_user_flags' - 'get_user_frags' - 'get_user_godmode' - 'get_user_gravity' - 'get_user_health' - 'get_user_hitzones' - 'get_user_index' - 'get_user_info' - 'get_user_ip' - 'get_user_lstats' - 'get_user_maxspeed' - 'get_user_menu' - 'get_user_money' - 'get_user_msgid' - 'get_user_msgname' - 'get_user_name' - 'get_user_noclip' - 'get_user_oldbutton' - 'get_user_origin' - 'get_user_ping' - 'get_user_rstats' - 'get_user_stats' - 'get_user_stats2' - 'get_user_team' - 'get_user_time' - 'get_user_userid' - 'get_user_velocity' - 'get_user_vstats' - 'get_user_weapon' - 'get_user_weapons' - 'get_user_wlstats' - 'get_user_wrstats' - 'get_user_wstats' - 'get_usercmd' - 'get_vaultdata' - 'get_weaponname' - 'get_xvar_float' - 'get_xvar_id' - 'get_xvar_num' - 'getarg' - 'getkey_float' - 'getkey_int' - 'getkey_string' - 'GetMessageBlock' - 'give_item' - 'globals_get_edict' - 'globals_get_float' - 'globals_get_int' - 'globals_get_string' - 'globals_get_vector' - 'goto' - 'gpglobals_v' - 'gpgobals_time' - 'grenade_throw' - 'halflife_time' - 'has_weapon' - 'heapspace' - 'HIT_CHEST' - 'HIT_GENERIC' - 'HIT_HEAD' - 'HIT_LEFTARM' - 'HIT_LEFTLEG' - 'HIT_RIGHTARM' - 'HIT_RIGHTLEG' - 'HIT_STOMACH' - 'HIW_AK47' - 'HIW_AKS74U' - 'HIW_BERETTA' - 'HIW_FLASHBANG' - 'HIW_GLOCK' - 'HIW_M11' - 'HIW_M11SD' - 'HIW_M16A2' - 'HIW_M4A1' - 'HIW_MP5A4' - 'HIW_MP5SD5' - 'HIW_NATOGREN' - 'HIW_PSG1' - 'HIW_REMINGTON' - 'HIW_SPAS12' - 'HIW_TANGOGREN' - 'HIW_ZASTAVA' - 'HLTime' - 'HULL_HEAD' - 'HULL_HUMAN' - 'HULL_LARGE' - 'HULL_POINT' - 'if' - 'IN_ALT1' - 'IN_ATTACK' - 'IN_ATTACK2' - 'IN_BACK' - 'IN_CANCEL' - 'IN_DUCK' - 'IN_FORWARD' - 'IN_JUMP' - 'IN_LEFT' - 'in_list_float' - 'in_list_int' - 'in_list_string' - 'IN_MOVELEFT' - 'IN_MOVERIGHT' - 'IN_RELOAD' - 'IN_RIGHT' - 'IN_RUN' - 'IN_SCORE' - 'IN_USE' - 'include' - 'inconsistent_file' - 'is_combat' - 'is_dedicated_server' - 'is_ent_valid' - 'is_entity' - 'is_jit_enabled' - 'is_linux_server' - 'is_map_valid' - 'is_module_loaded' - 'is_plugin_loaded' - 'is_running' - 'is_user_admin' - 'is_user_alive' - 'is_user_bot' - 'is_user_connected' - 'is_user_connecting' - 'is_user_hltv' - 'is_valid_ent' - 'isalnum' - 'isalpha' - 'isdigit' - 'isspace' - 'IVecFVec' - 'jghg_find_ent_owner' - 'jghg2_set_size' - 'jghg2_think' - 'keytable_clear' - 'keytable_count' - 'keytable_delete' - 'keytable_getkey' - 'keytable_getval' - 'keytable_next' - 'keytable_reset' - 'lang_exists' - 'LANG_PLAYER' - 'LANG_SERVER' - 'list_clear' - 'list_clear_float' - 'list_clear_int' - 'list_clear_string' - 'list_delete' - 'list_delete_float' - 'list_delete_int' - 'list_delete_string' - 'list_get' - 'list_get_float' - 'list_get_int' - 'list_get_string' - 'list_getf' - 'list_next' - 'list_next_float' - 'list_next_int' - 'list_next_string' - 'list_pop' - 'list_pop_float' - 'list_pop_int' - 'list_pop_string' - 'list_push_float' - 'list_push_int' - 'list_push_string' - 'list_reset' - 'list_reset_float' - 'list_reset_int' - 'list_reset_string' - 'list_size' - 'list_size_float' - 'list_size_int' - 'list_size_string' - 'list_store_float' - 'list_store_int' - 'list_store_string' - 'log_amx' - 'log_message' - 'log_to_file' - 'make_deathmsg' - 'make_string' - 'max' - 'md5' - 'md5_file' - 'MENU_KEY_0' - 'MENU_KEY_1' - 'MENU_KEY_2' - 'MENU_KEY_3' - 'MENU_KEY_4' - 'MENU_KEY_5' - 'MENU_KEY_6' - 'MENU_KEY_7' - 'MENU_KEY_8' - 'MENU_KEY_9' - 'message_begin' - 'message_end' - 'MessageBlock' - 'min' - 'MOVETYPE_ANGLECLIP' - 'MOVETYPE_ANGLENOCLIP' - 'MOVETYPE_BOUNCEMISSILE' - 'MOVETYPE_FOLLOW' - 'msg_args' - 'msg_data' - 'msg_data_type' - 'msg_dest' - 'msg_loc' - 'msg_name' - 'MSG_ONE_UNRELIABLE' - 'MSG_PAS' - 'MSG_PAS_R' - 'MSG_PVS' - 'MSG_PVS_R' - 'msg_set_f' - 'msg_set_i' - 'msg_set_s' - 'msg_strdata' - 'msg_type' - 'mysql_close' - 'mysql_connect' - 'mysql_error' - 'mysql_getfield' - 'mysql_nextrow' - 'mysql_query' - 'native' - 'new' - 'new_float_list' - 'new_int_list' - 'new_keytable' - 'new_list' - 'new_string_list' - 'NS_CONST_INC' - 'ns_get_build' - 'ns_get_class' - 'ns_get_deaths' - 'ns_get_energy' - 'ns_get_exp' - 'ns_get_hive_trait' - 'ns_get_jpfuel' - 'ns_get_mask' - 'ns_get_maxspeed' - 'ns_get_points' - 'ns_get_res' - 'ns_get_score' - 'ns_get_spawn' - 'ns_get_speedchange' - 'ns_get_struct_owner' - 'ns_get_weap_clip' - 'ns_get_weap_dmg' - 'ns_get_weap_range' - 'ns_get_weap_reserve' - 'ns_give_item' - 'ns_has_weapon' - 'NS_INC' - 'ns_is_combat' - 'ns_popup' - 'ns_set_deaths' - 'ns_set_energy' - 'ns_set_exp' - 'ns_set_fov' - 'ns_set_hive_trait' - 'ns_set_jpfuel' - 'ns_set_mask' - 'ns_set_player_body' - 'ns_set_player_model' - 'ns_set_player_skin' - 'ns_set_points' - 'ns_set_res' - 'ns_set_score' - 'ns_set_speedchange' - 'ns_set_struct_owner' - 'ns_set_weap_clip' - 'ns_set_weap_dmg' - 'ns_set_weap_range' - 'ns_set_weap_reserve' - 'ns2amx_getammo' - 'ns2amx_getenergy' - 'ns2amx_gethives' - 'ns2amx_getjpfuel' - 'ns2amx_giveitem' - 'ns2amx_inrange' - 'ns2amx_isdigesting' - 'ns2amx_moveto' - 'ns2amx_nspopup' - 'ns2amx_setammo' - 'ns2amx_setenergy' - 'ns2amx_setjpfuel' - 'ns2amx_setres' - 'ns2amx_version' - 'num_to_str' - 'num_to_word' - 'numargs' - 'number_of_entities' - 'numtostr' - 'operator' - 'parse' - 'parse_loguser' - 'parse_time' - 'pause' - 'pev' - 'pev_f' - 'pev_i' - 'pfn_keyvalue' - 'pfn_playbackevent' - 'pfn_spawn' - 'pfn_think' - 'pfn_touch' - 'PITCH_HIGH' - 'PITCH_LOW' - 'playback_event' - 'plugin_cfg' - 'PLUGIN_CONTINUE' - 'plugin_end' - 'plugin_flags' - 'PLUGIN_HANDLED' - 'PLUGIN_HANDLED_MAIN' - 'plugin_init' - 'plugin_log' - 'plugin_modules' - 'plugin_pause' - 'plugin_precache' - 'plugin_unpause' - 'point_contents' - 'PointContents' - 'power' - 'precache_event' - 'precache_generic' - 'precache_model' - 'precache_sound' - 'public' - 'radius_damage' - 'RadiusDamage' - 'random' - 'random_float' - 'random_num' - 'read_argc' - 'read_args' - 'read_argv' - 'read_data' - 'read_datanum' - 'read_dir' - 'read_file' - 'read_flags' - 'read_logargc' - 'read_logargv' - 'read_logdata' - 'regex_free' - 'regex_match' - 'regex_substr' - 'register_changelvl' - 'register_clcmd' - 'register_clientkill' - 'register_concmd' - 'register_cvar' - 'register_dictionary' - 'register_event' - 'register_forward' - 'register_impulse' - 'register_logevent' - 'register_menu' - 'register_menucmd' - 'register_menuid' - 'register_message' - 'register_msgblock' - 'register_msgedit' - 'register_playback' - 'register_plugin' - 'register_srvcmd' - 'register_statsfwd' - 'register_think' - 'register_touch' - 'remove_cvar_flags' - 'remove_entity' - 'remove_entity_name' - 'remove_quotes' - 'remove_task' - 'remove_user_flags' - 'remove_vaultdata' - 'RemoveEntity' - 'replace' - 'require_module' - 'reset_user_wstats' - 'return' - 'rewind' - 'SEEK_CUR' - 'SEEK_END' - 'SEEK_SET' - 'server_changelevel' - 'server_cmd' - 'server_exec' - 'server_frame' - 'server_print' - 'ServerFrame' - 'set_client_listen' - 'set_cvar_flags' - 'set_cvar_float' - 'set_cvar_num' - 'set_cvar_string' - 'set_entity_flags' - 'set_entity_origin' - 'set_entity_velocity' - 'set_entity_visibility' - 'set_hudmessage' - 'set_kvhandled' - 'set_lights' - 'set_localinfo' - 'set_mask' - 'set_msg_arg_float' - 'set_msg_arg_int' - 'set_msg_arg_string' - 'set_msg_block' - 'set_pdata' - 'set_pdata_char' - 'set_pdata_float' - 'set_pdata_int' - 'set_pdata_short' - 'set_pev' - 'set_pev_f' - 'set_pev_i' - 'set_player_body' - 'set_player_model' - 'set_player_skin' - 'set_private_f' - 'set_private_i' - 'set_rendering' - 'set_size' - 'set_speak' - 'set_speedchange' - 'set_task' - 'set_tr' - 'set_user_armor' - 'set_user_deaths' - 'set_user_flags' - 'set_user_footsteps' - 'set_user_frags' - 'set_user_godmode' - 'set_user_gravity' - 'set_user_health' - 'set_user_hitzones' - 'set_user_info' - 'set_user_maxspeed' - 'set_user_money' - 'set_user_noclip' - 'set_user_origin' - 'set_user_rendering' - 'set_user_velocity' - 'set_usercmd' - 'set_vaultdata' - 'set_view' - 'set_xvar_float' - 'set_xvar_num' - 'setarg' - 'setc' - 'SetSpeak' - 'SetView' - 'show_activity' - 'show_hudmessage' - 'show_menu' - 'show_motd' - 'sizeof' - 'sleep' - 'socket_change' - 'socket_close' - 'socket_open' - 'socket_recv' - 'socket_send' - 'SOCKET_TCP' - 'SOCKET_UDP' - 'spawn' - 'SPEAK_ALL' - 'SPEAK_LISTENALL' - 'SPEAK_MUTED' - 'SPEAK_NORMAL' - 'sqroot' - 'STAMINA_RESET' - 'STAMINA_SET' - 'static' - 'stock' - 'store_float' - 'store_int' - 'store_string' - 'str_to_num' - 'strbreak' - 'string' - 'strip_user_weapons' - 'strlen' - 'strpack' - 'strtok' - 'strtolower' - 'strtonum' - 'strtoupper' - 'strunpack' - 'supercede' - 'SVC_ADDANGLE' - 'SVC_CDTRACK' - 'SVC_INTERMISSION' - 'SVC_NEWUSERMSG' - 'SVC_ROOMTYPE' - 'SVC_TEMPENTITY' - 'SVC_WEAPONANIM' - 'swapchars' - 'switch' - 'take_damage' - 'task_exists' - 'tfc_clearmodel' - 'tfc_getbammo' - 'tfc_getweaponbammo' - 'tfc_isgrenade' - 'tfc_setbammo' - 'tfc_setmodel' - 'tfc_setpddata' - 'tfc_setweaponbammo' - 'tfc_userkill' - 'TFCMAX_WEAPONS' - 'tickcount' - 'time' - 'tolower' - 'toupper' - 'trace_hull' - 'trace_line' - 'trace_normal' - 'TraceLn' - 'TraceNormal' - 'traceresult' - 'trim' - 'ts_createpwup' - 'ts_getkillingstreak' - 'ts_getusercash' - 'ts_getuseritems' - 'ts_getuserkillflags' - 'ts_getuserlastfrag' - 'ts_getuserpwup' - 'ts_getuserspace' - 'ts_getuserwpn' - 'ts_givepwup' - 'ts_giveweapon' - 'ts_setpddata' - 'ts_wpnlogtoid' - 'ts_wpnlogtoname' - 'TSA_FLASHLIGHT' - 'TSA_LASERSIGHT' - 'TSA_SCOPE' - 'TSA_SILENCER' - 'TSITEM_KUNGFU' - 'TSITEM_SUPERJUMP' - 'TSKF_DOUBLEKILL' - 'TSKF_ISSPEC' - 'TSKF_KILLEDSPEC' - 'TSKF_SLIDINGKILL' - 'TSKF_STUNTKILL' - 'TSMAX_WEAPONS' - 'TSPWUP_ARMOR' - 'TSPWUP_DFIRERATE' - 'TSPWUP_GRENADE' - 'TSPWUP_HEALTH' - 'TSPWUP_INFAMMO' - 'TSPWUP_KUNGFU' - 'TSPWUP_RANDOM' - 'TSPWUP_SLOWMO' - 'TSPWUP_SLOWPAUSE' - 'TSPWUP_SUPERJUMP' - 'ucfirst' - 'unlink' - 'unpause' - 'use' - 'user_has_weapon' - 'user_kill' - 'user_silentkill' - 'user_slap' - 'user_spawn' - 'vaultdata_exists' - 'VecDist' - 'VecLength' - 'VecToAngles' - 'vector_distance' - 'vector_length' - 'vector_to_angle' - 'velocity_by_aim' - 'VelocityByAim' - 'vexd_pfntouch' - 'ViewContents' - 'VOL_NORM' - 'write_angle' - 'write_byte' - 'write_char' - 'write_coord' - 'write_entity' - 'write_file' - 'write_long' - 'write_shortwrite_string' - 'xmod_get_maxweapons' - 'xmod_get_stats_size' - 'xmod_get_wpnlogname' - 'xmod_get_wpnname' - 'xmod_is_custom_wpn' - 'xmod_is_melee_wpn' - 'XS__LIBRELEASE' - 'XS_AMX' - 'XS_AMXX' - 'xvar_exists - BLA blubb XD') - IgnoreCase = True - ChooseSingle = False - AutoHide = True - DropRestOfWord = False - CancelAtStart = False - CompleteWord = False - CompleteWordOnlyOne = True - Editor = sciEditor - WordCharacters = '_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789' - MaxWidth = 0 - MaxHeight = 5 - Left = 794 - Top = 4 - end - object cltEditor: TSciCallTips - ApiStrings.Strings = ( - 'access(id, level)' - 'add(dest[], len, const src[], [ max ]) ' - 'anglevector(Float:vector[3], FRU, Float:vReturn[3]) ' - 'attach_view(player, target) ' - 'call_think(entity) ' - 'callfunc_begin(const function[], [ const plugin[] ]) ' - 'callfunc_begin_i(func, [ plugin ]) ' - 'callfunc_end()' - 'callfunc_push_float(Float: value) ' - 'callfunc_push_floatrf(Float: value)' - 'callfunc_push_int(value)' - 'callfunc_push_intrf(&value) ' - 'callfunc_push_str (value[]) ' - 'change_task(id = 0, Float:newTime=1.0, outside = 0)' - 'clamp(value, min=cellmin, max=cellmax)' - 'client_authorized(id)' - 'client_built(index, structure, type, impulse) ' - 'client_changeclass(id, newclass, oldclass)' - 'client_changeteam(index, newteam, oldteam)' - 'client_cmd(index, const command[], {Float,...})' - 'client_command(id)' - 'client_connect(id)' - 'client_damage(attacker, victim, damage, wpnindex, hitplace, TA)' - 'client_death(killer, victim, wpnindex, hitplace, TK)' - 'client_disconnect(id) ' - 'client_impulse(id, impulse) ' - 'client_infochanged(id)' - 'client_kill(id)' - 'client_PostThink(id) ' - 'client_PreThink(id) ' - 'client_print(index, type, const message[], ...)' - 'client_putinserver(id) ' - 'client_spawn(index)' - 'cmd_access(id, level, cid, num) ' - 'cmd_target(id, const arg[], flags = 1) ' - 'colored_menus()' - 'console_cmd(id, const cmd[], ...)' - 'console_print(id, const message[], ...)' - 'contain(const source[], const string[])' - 'containi(const source[], const string[])' - 'copy(dest[], len, const src[])' - - 'copy_keyvalue(Classname[], sizeA, Keyname[], sizeB, Value[], siz' + - 'ec)' - 'copyc(dest[], len, const src[], ch)' - 'create_entity(Classname[])' - 'cs_get_hostage_foll(index)' - 'cs_get_hostage_id(index) ' - 'cs_get_no_knives()' - 'cs_get_user_bpammo(index, weapon)' - 'cs_get_user_buyzone(index)' - 'cs_get_user_deaths(index)' - 'cs_get_user_defuse(index)' - 'cs_get_user_driving(index)' - 'cs_get_user_hasprim(index)' - 'cs_get_user_model(index, model[], len)' - 'cs_get_user_money(index)' - 'cs_get_user_nvg(index)' - 'cs_get_user_plant(index)' - 'cs_get_user_stationary(index)' - 'cs_get_user_team(index)' - 'cs_get_user_tked(index)' - 'cs_get_user_vip(index)' - 'cs_get_weapon_ammo(index)' - 'cs_get_weapon_burst(index)' - 'cs_get_weapon_id(index)' - 'cs_get_weapon_silen(index)' - 'cs_reset_user_model(index)' - 'cs_set_hostage_foll(index, [ entity ])' - 'cs_set_no_knives([ noknives = 0 ])' - 'cs_set_user_bpammo(index, weapon, amount)' - 'cs_set_user_deaths(index, deaths)' - - 'cs_set_user_defuse(index, [ defusekit = 1, r = 0, g = 160, b = 0' + - ', icon[] = "defuser", flash = 0 ])' - 'cs_set_user_model(index, const model[])' - 'cs_set_user_money(index , money, [ flash = 1])' - 'cs_set_user_nvg(index, [ nvgoggles = 1])' - 'cs_set_user_plant(index, [ plant = 1, showbombicon = 1 ])' - - 'cs_set_user_team(index, CsTeams:team, [ CsInternalModel: model =' + - ' CS_DONTCHANGE ])' - 'cs_set_user_tked(index, [ tk = 1, subtract = 1 ])' - 'cs_set_user_vip(index, [ vip = 1])' - 'cs_set_weapon_ammo(index, newammo)' - 'cs_set_weapon_burst(index, [ burstmode = 1 ])' - 'cs_set_weapon_silen(index, [ silence = 1 ])' - 'cstrike_running()' - 'custom_weapon_add(name[], melee=0,logname[])' - 'custom_weapon_dmg(weapon, attacker, victim, damage, hitplace=0)' - 'custom_weapon_shot(weapon,player)' - 'cvar_exists(const cvar[])' - 'date([ &year, &month, &day ])' - 'dbi_close(&Sql:sql)' - - 'dbi_connect(host[], user[], pass[], dbname[], [ error[] = "", ma' + - 'xLength = 0 ])' - 'dbi_error(Sql:sql, error[], maxLength)' - 'dbi_field(Result:result, fieldnum, [ ... ])' - 'dbi_free_result(&Result:result)' - 'dbi_nextrow(Result:result)' - 'dbi_num_rows(result)' - 'dbi_query(Sql:sql, query[], [ ... ])' - 'dbi_result(Result:result, field[], [ ... ])' - 'dbi_type(type[], maxLength)' - 'delete_file(const file[]) ' - 'DispatchKeyValue(entity, key[], value[])' - 'DispatchSpawn(entity)' - 'dllfunc(type, [ ... ])' - 'dod_get_map_info(info)' - 'dod_get_next_class(index)' - 'dod_get_pl_deaths(index)' - 'dod_get_pl_teamname(index, szName[], len)' - 'dod_get_pronestate(player)' - 'dod_get_team_score(teamId)' - 'dod_get_user_ammo(index, wid)' - 'dod_get_user_class(index)' - 'dod_get_user_kills(index)' - 'dod_get_user_score(index)' - 'dod_get_user_team(player)' - 'dod_get_user_weapon(index, &clip, &ammo)' - 'dod_is_deployed(index)' - 'dod_is_randomclass(index)' - - 'dod_set_fuse(index, set = FUSE_SET, Float:newFuse = 5.0, Type = ' + - 'FT_NEW)' - 'dod_set_pl_deaths(index, value, [ refresh = 1 ])' - 'dod_set_pl_teamname(index, szName[])' - - 'dod_set_stamina(player, set = STAMINA_SET, minvalue = 0, maxvalu' + - 'e = 100)' - 'dod_set_user_ammo(index, wid, value)' - 'dod_set_user_class(index, classId)' - 'dod_set_user_kills(index, value, [ refresh = 1 ])' - 'dod_set_user_score(index, value, [ refresh = 1 ])' - 'dod_set_user_team(index, teamId, [ refresh = 1 ])' - 'dod_user_kill(player)' - 'dod_wpnlog_to_id(logname[])' - 'dod_wpnlog_to_name(logname[], name[], len)' - 'drop_to_floor(entity)' - - 'emit_sound(index, channel, sample[], Float:vol, Float:att,flags,' + - ' pitch)' - 'engclient_cmd(index,const command[],arg1[]=)' - 'engclient_print(index, type, const message[], ...)' - 'engfunc(function or type, [ ... ])' - 'entity_count()' - 'entity_get_byte(entity, key)' - 'entity_get_edict(entity, key)' - 'entity_get_float(entity, key)' - 'entity_get_int(entity, key)' - 'entity_get_string(entity, key, Result[], maxLength)' - 'entity_get_vector(entity, key, Float:Vector[3])' - 'entity_range(ida, idb)' - 'entity_set_byte(entity, key, value)' - 'entity_set_edict(entity, key, edict)' - 'entity_set_float(entity, key, Float:value)' - 'entity_set_int(entity, key, value)' - 'entity_set_model(entity, Model[])' - 'entity_set_origin(entity, Float:NewOrigin[3])' - 'entity_set_size(index, Float:mins[3], Float:maxs[3])' - 'entity_set_string(entity, key, const String[])' - 'entity_set_vector(entity, key, Float:NewVector[3])' - 'equal(const a[], const b[], [ c ])' - 'equali(const a[], const b[], [ c ])' - 'fake_touch(Toucher, Touched)' - 'fakedamage(victim, Classname[], Float:damage, damagetype)' - 'fclose(file)' - 'feof(file)' - 'fflush(file)' - 'fgetc(file)' - 'fgetf(file)' - 'fgeti(file)' - 'fgetl(file)' - 'fgets(file)' - 'file_exists(const file[])' - 'file_size(const file[], [ flag ])' - 'find_ent_by_class(StartEntity, Classname[])' - 'find_ent_by_model(StartEntity, Classname[], Model[])' - - 'find_ent_by_owner(StartIndex, Classname[], OwnerEntity, [ type ]' + - ')' - 'find_ent_by_target(StartEntity, Classname[])' - 'find_ent_by_tname(StartEntity, Classname[])' - 'find_ent_in_sphere(StartEntity, Float:origin[3], Float:radius)' - 'find_player(const flags[], ...)' - 'find_plugin_bydesc(pdesc[], [ bool:ignorecase=true ])' - 'find_plugin_byfile( pname[], [ bool:ignorecase=true ])' - - 'find_sphere_class( aroundent, _lookforclassname[], Float:radius,' + - ' entlist[], maxents, Float:origin[3] = {0.0, 0.0, 0.0})' - 'float(value)' - 'floatabs(Float:value)' - 'floatacos(Float:angle, radix)' - 'floatadd(Float:oper1, Float:oper2)' - 'floatasin(Float:angle, radix)' - 'floatatan(Float:angle, radix)' - 'floatatan2(Float:x, Float:y, radix)' - 'floatcmp(Float:fOne, Float:fTwo)' - 'floatcos(Float:value, [ mode ])' - 'floatdiv(Float:dividend, Float:divisor)' - 'floatfract(Float:value)' - 'floatlog(Float:value, [ Float:base ])' - 'floatmul(Float:oper1, Float:oper2)' - 'floatpower(Float:value, Float:exponent)' - 'floatround(Float:value, [ method ])' - 'floatsin(Float:value, [ mode ])' - 'floatsqroot(Float:value)' - 'floatstr(const string[])' - 'floatsub(Float:oper1, Float:oper2)' - 'floattan(Float:value, [ mode ])' - 'fopen(filename[], mode[])' - - 'force_unmodified(force_type, mins[3] , maxs[3], const filename[]' + - ')' - 'force_use(user, used)' - 'format(output[], len, const format[], ...)' - 'format_args(output[], len, [ pos ])' - 'format_time(output[],len, const format[],time = -1)' - 'forward_return(type, [ ... ])' - 'fputc(file, num)' - 'fputf(file, Float:num)' - 'fputi(file, num)' - 'fputl(file, num)' - 'fputs(file, num)' - 'fread(file, ret[], len)' - 'fseek(file, pos, type)' - 'ftell(file)' - 'funcidx(const name[])' - 'FVecIVec(Float:FVec[3], IVec[3])' - 'fwrite(file, const str[], ...)' - 'geoip_code2( ip[], ccode[3])' - 'geoip_code3(ip[], ccode[4])' - 'geoip_country( ip[], result[], [ len = 45 ])' - 'get_basedir(name[], len)' - 'get_brush_entity_origin(entity, Float:Origin[3])' - 'get_class(index)' - 'get_clcmd(index, command[], len1, &flags, info[], len2, flag)' - 'get_clcmdsnum(flag)' - 'get_client_listen(receiver, sender)' - 'get_concmd(index,cmd[],len1,&flags, info[],len2, flag, id = -1)' - 'get_concmdsnum(flag,id = -1)' - 'get_configsdir(name[], len)' - 'get_cvar_flags(const cvar[])' - 'get_cvar_float(const cvarname[])' - 'get_cvar_num(const cvarname[])' - 'get_cvar_string(const cvarname[],output[],iLen)' - 'get_datadir(name[], len)' - 'get_decal_index(const szDecalName[])' - 'get_distance(origin1[3],origin2[3])' - 'get_entity_distance(ent1, ent2)' - 'get_entity_flags(entity)' - 'get_entity_visibility(entity)' - 'get_flags(flags, output[], len)' - 'get_func_id(const funcName[], [ pluginId ])' - 'get_gametime()' - 'get_global_edict(variable)' - 'get_global_float(variable)' - 'get_global_int(variable)' - 'get_global_string(variable, szString[], maxLength)' - 'get_global_vector(variable, Float:vector[3])' - 'get_grenade(player)' - 'get_grenade_id(player, model[], len, grandeid=0)' - 'get_info_keybuffer(entity, buffer[], length)' - 'get_keyvalue(entity, szKey[], value[], maxLength)' - 'get_localinfo(const info[], output[], len)' - 'get_mapname(name[],len)' - 'get_mask(index, mask)' - 'get_maxplayers()' - 'get_maxspeed(index)' - 'get_modname(name[], len)' - - 'get_module(id, name[], nameLen, author[], authorLen, version[], ' + - 'versionLen, &status)' - 'get_modulesnum()' - 'get_msg_arg_float(argn)' - 'get_msg_arg_int(argn)' - 'get_msg_arg_string(argn, szReturn[], length)' - 'get_msg_args()' - 'get_msg_argtype(argn)' - 'get_msg_block(msgId)' - 'get_msg_origin(Float:Origin[3])' - 'get_offset_char(id, offset, [ linux = 5])' - 'get_offset_float(id, offset, [ linux = 5])' - 'get_offset_int(id, offset, [ linux = 5])' - 'get_offset_short(id, offset, [ linux = 5])' - 'get_pdata_float(index, offset, [ linuxdiff = 5 ])' - 'get_pdata_int(index, offset, [ linuxdiff = 5 ])' - - 'get_players(players[32], &num, const flags = "", const team = ""' + - ')' - 'get_playersnum([ flag ])' - - 'get_plugin(index,filename[],len1,name[],len2,version[],len3,auth' + - 'or[],len4,status[],len5)' - 'get_pluginsnum()' - 'get_res(index)' - 'get_spawn(type, number = 0, Float:ret[3])' - 'get_speak(player)' - 'get_special(index, mask)' - 'get_speed(entity)' - 'get_speedchange(index)' - 'get_srvcmd(index,server_cmd[],len1,&flags, info[],len2, flag)' - 'get_srvcmdsnum(flag)' - 'get_stats(index, stats[8], bodyhits[8], name[], len)' - 'get_stats(player, stats[8], bodyhits[8], name[], len)' - 'get_stats(player, stats[9], bodyhits[8], name[], len)' - 'get_statsnum()' - 'get_systime(offset = 0)' - 'get_time(const format[],output[],len)' - 'get_timeleft()' - 'get_tr(TraceResult:tr_member, [ ... ])' - 'get_user_aiming(index, &id, &body, [ distance ])' - 'get_user_ammo(index, weapon, &clip, &ammo)' - 'get_user_armor(index)' - - 'get_user_astats(index, wpnindex, stats[8], bodyhits[8], [ wpnnam' + - 'e = "", len = 0])' - - 'get_user_astats(index, wpnindex, stats[8], bodyhits[8], [ wpnnam' + - 'e[] = "", len = 0 ])' - - 'get_user_astats(player, wpnindex, stats[9], bodyhits[8], [ wpnna' + - 'me, maxLength ])' - 'get_user_attacker(index, [ &weapon, &hitzone ])' - 'get_user_authid(index, authid[], len)' - 'get_user_button(player)' - 'get_user_deaths(index)' - 'get_user_flags(index,id=0)' - 'get_user_frags(id)' - 'get_user_godmode(index)' - 'get_user_gravity(index)' - 'get_user_health(id)' - 'get_user_hitzones(index, target)' - 'get_user_index(const name[])' - 'get_user_info(index, const info[], output[], len)' - 'get_user_ip(index, ip[], len, [ without_port ])' - 'get_user_lstats(player, stats[9], bodyhits[8])' - 'get_user_maxspeed(index)' - 'get_user_menu(index,&id,&keys)' - 'get_user_msgid(const name[])' - 'get_user_name(index, name[], len)' - 'get_user_noclip(index)' - 'get_user_oldbutton(player)' - 'get_user_origin(index, origin[3], [ mode ])' - 'get_user_ping(index, &ping, &loss)' - 'get_user_rstats(index, stats[8], bodyhits[8])' - 'get_user_rstats(player, stats[9], bodyhits[8])' - 'get_user_stats(index, stats[8], bodyhits[8])' - 'get_user_stats(index, stats[9], bodyhits[8])' - 'get_user_team(index, [ team[], len ])' - 'get_user_time(index, [ flag ])' - 'get_user_userid(index)' - 'get_user_velocity(entity, Float:Vector[3])' - - 'get_user_vstats(index, victim, stats[8], bodyhits[8], [ wpnname[' + - '] = "", len = 0 ])' - - 'get_user_vstats(player, victim, stats[9], bodyhits[8], [ wpnname' + - '[], maxLen ])' - 'get_user_weapon(index, &clip, &ammo)' - 'get_user_weapons(index, weapons[32], &num)' - 'get_user_wlstats(index, wpnindex, stats[8], bodyhits[8])' - 'get_user_wlstats(player, wpnindex, stats[9], bodyhits[8])' - 'get_user_wrstats(index, wpnindex, stats[8], bodyhits[8])' - 'get_user_wrstats(player, wpnindex, stats[9], bodyhits[8])' - 'get_user_wstats(index, wpnindex, stats[8], bodyhits[8])' - 'get_user_wstats(player, wpnindex, stats[9], bodyhits[8])' - 'get_usercmd(type, [ ... ])' - 'get_vaultdata(const key[], [ data[], len ])' - 'get_weaponname(id, weapon[], len)' - 'get_xvar_float(id)' - 'get_xvar_id(const name[])' - 'get_xvar_num(id)' - 'getarg(arg, [ index ])' - 'getkey_float(keytable, key[])' - 'getkey_int(keytable, key[])' - 'getkey_string(keytable, const key[], value[], maxLength)' - 'give_item(index, const item[])' - 'grenade_throw(index, greindex, wId)' - 'grenade_throw(index,greindex,wId)' - 'halflife_time()' - 'has_weapon(index, weapon, [ setweapon = -1])' - 'heapspace()' - 'in_list_float(list, Float:num)' - 'in_list_int(list, num)' - 'in_list_string(list, const str[])' - 'inconsistent_file(id,const filename[], reason[64] )' - 'is_combat()' - 'is_dedicated_server()' - 'is_linux_server()' - 'is_map_valid(const mapname[])' - 'is_module_loaded(const name[])' - 'is_plugin_loaded(const name[])' - 'is_running(const mod[])' - 'is_user_admin(id)' - 'is_user_alive(index)' - 'is_user_bot(index)' - 'is_user_connected(index)' - 'is_user_connecting(index)' - 'is_user_hltv(index)' - 'is_valid_ent(entity)' - 'isalnum(ch)' - 'isalpha(ch)' - 'isdigit(ch)' - 'isspace(ch)' - 'IVecFVec(IVec[3], Float:FVec[3])' - 'jit_enabled()' - 'keytable_clear(keytable)' - 'keytable_count(keytable)' - 'keytable_delete(keytable)' - 'keytable_getkey(keytable, key[], maxLength)' - 'keytable_getval(keytable, val[], maxLength)' - 'keytable_next(keytable)' - 'keytable_reset(keytable)' - 'list_clear_float(list)' - 'list_clear_int(list)' - 'list_clear_string(list)' - 'list_delete_float(list)' - 'list_delete_int(list)' - 'list_delete_string(list)' - 'list_get_float(list, [ position = -1 ])' - 'list_get_int(list, [ position = -1 ])' - 'list_get_string(list, position, value[], maxLength)' - 'list_next_float(list)' - 'list_next_int(list)' - 'list_next_string(list)' - 'list_pop_float(list)' - 'list_pop_int(list)' - 'list_pop_string(list)' - 'list_push_float(list, Float:value)' - 'list_push_int(list, value)' - 'list_push_string(list, position, value[])' - 'list_reset_float(list)' - 'list_reset_int(list)' - 'list_reset_string(list)' - 'list_size_float(list)' - 'list_size_int(list)' - 'list_size_string(list)' - 'list_store_float(list, position, Float:value)' - 'list_store_int(list, position, value)' - 'list_store_string(list, position, value[])' - 'log_amx(const string[], [ ... ])' - 'log_message(const message[], [ ... ])' - 'log_to_file(const file[], const message[], [ ... ])' - 'main(val1, val2)' - 'max(val1, val2)' - 'md5(const szString[], md5buffer[34])' - 'md5_file(const file[], md5buffer[34])' - 'message_begin(dest, msg_type, origin[3]={0,0,0},player=0)' - 'message_end()' - 'new_float_list()' - 'new_int_list()' - 'new_keytable()' - 'new_list_float()' - 'new_list_int()' - 'new_list_string()' - 'new_string_list()' - 'ns_get_build(classname[], [ builtOnly = 1 ], [ Number = 0 ])' - 'ns_get_class(index)' - 'ns_get_deaths(index)' - 'ns_get_energy(index)' - 'ns_get_ent(classname[], value)' - 'ns_get_exp(index)' - 'ns_get_hive_trait(idHive)' - 'ns_get_jpfuel(index)' - 'ns_get_mask(index, mask)' - 'ns_get_maxspeed(index)' - 'ns_get_points(index)' - 'ns_get_res(index)' - 'ns_get_score(index)' - 'ns_get_spawn(team, [ number = 0 ], Float:ret[3])' - 'ns_get_speedchange(index)' - 'ns_get_struct_owner(idStructure)' - 'ns_get_weap_clip(weapon)' - 'ns_get_weap_dmg(weapon)' - 'ns_get_weap_range(weapon)' - 'ns_get_weap_reserve(index, weapon)' - 'ns_give_item(index, const className[])' - 'ns_has_weapon(index, NSWeapon:weapon, [ setweapon = -1 ])' - 'ns_is_combat()' - 'ns_popup(index, szMsg[180], ah)' - 'ns_set_deaths(index, numdeaths)' - 'ns_set_energy(index, Float:energy)' - 'ns_set_exp(index, Float:exp)' - 'ns_set_fov(index, [ Float:fov = 0.0 ])' - 'ns_set_hive_trait(idHive, trait)' - 'ns_set_jpfuel(index, Float:fuel)' - 'ns_set_mask(index, mask, value)' - - 'ns_set_menu(player, r, g, b, x, y, effects, Float:fadeintime, Fl' + - 'oat:fadeouttime, channel1, channel2)' - 'ns_set_player_body(index, [ body = -1 ])' - 'ns_set_player_model(index, [ model[] = "" ])' - 'ns_set_player_skin(index, [ skin = -1 ])' - 'ns_set_points(index, points)' - 'ns_set_res(index, Float:res)' - 'ns_set_score(index, score)' - 'ns_set_speedchange(index, [ speedchange = 0 ])' - 'ns_set_struct_owner(idStructure, indexOwner)' - 'ns_set_weap_clip(weapon, clipsize)' - 'ns_set_weap_dmg(weapon, Float:damage)' - 'ns_set_weap_range(weapon, Float:range)' - 'ns_set_weap_reserve(index, weapon, ammo)' - 'ns_show_menu(player, command[], text[], keys, time)' - 'ns_spawn_player(player, [ class=1, health=100, armor=25 ])' - 'ns2amx_getammo(index, weapon)' - 'ns2amx_getenergy(index)' - 'ns2amx_gethives()' - 'ns2amx_getjpfuel(index)' - 'ns2amx_giveitem(index, classname[])' - 'ns2amx_isdigesting(index)' - 'ns2amx_nspopup(index, message[190])' - 'ns2amx_setammo(index, weapon, value)' - 'ns2amx_setjpfuel(index, value)' - 'ns2amx_setres(index, value)' - 'num_to_str(num, string[], len)' - 'num_to_word(num, output[], len)' - 'numargs()' - 'parse(const text[], ...)' - - 'parse_loguser(const text[], name[], nameLen, [ &userid, authid[]' + - ', authidLen, team[], teamLen ])' - 'parse_time(const input[],const format[], time = -1)' - 'pause(flag[], const param1[]="",const param2[]="")' - 'pev(index, value, [ ... ])' - 'pfn_spawn(entid)' - 'pfn_think(entid)' - 'pfn_touch(ptr, ptd)' - 'pfn_use(user, used)' - - 'playback_event(flags, invoker, eventindex, Float:delat, Float:or' + - 'igin[3], Float:angles[3], Float:fparam1, Float:fparam2, iparam1,' + - ' iparam2, bparam1, bparam2)' - - 'PlaybackEvent(flags, entid, eventid, Float:delay, Float:Origin[3' + - '], Float:Angles[3], Float:fparam1, Float:fparam2, iparam1, ipara' + - 'm2, bparam2)' - 'plugin_cfg()' - 'plugin_end()' - 'plugin_init()' - 'plugin_log()' - 'plugin_modules()' - 'plugin_pause()' - 'plugin_precache()' - 'plugin_unpause()' - 'PointContents(Float:Origin[3])' - 'precache_event(type, name[], [ ... ])' - 'precache_generic(szFile[])' - 'precache_model(const name[])' - 'precache_sound(const name[])' - - 'RadiusDamage(Float:ExplodeAt[3], DamageMultiplier, RadiusMultipl' + - 'ier)' - 'random(max)' - 'random_float(Float:a,Float:b)' - 'random_num(a,b)' - 'read_argc()' - 'read_args(output[], len)' - 'read_argv(id, output[], len)' - 'read_data(value, [ ... ])' - 'read_datanum()' - 'read_dir(const dirname[], pos, output[], len, &outLen)' - 'read_file(const file[], line, text[], len, &txtLen)' - 'read_flags(const flags[])' - 'read_logargc(Returns the number of log arguments.)' - 'read_logargv(id, output[], len)' - 'read_logdata(output[], len)' - 'regex_free(&Regex:id)' - - 'regex_match(const string[], const pattern[], &ret, error[], maxL' + - 'en)' - 'regex_substr(Regex:id, str_id, buffer[], maxLen)' - - 'register_clcmd(const client_cmd[],const function[],flags=-1, inf' + - 'o[]="")' - - 'register_concmd(const cmd[],const function[],flags=-1, info[]=""' + - ')' - - 'register_cvar(const name[],const string[],flags = 0,Float:fvalue' + - ' = 0.0)' - 'register_dictionary(const file[])' - - 'register_event(const event[], const function[], const flags[], [' + - ' cond=[], ... ])' - 'register_forward(forwardType, callback[], [ post = 0 ])' - 'register_impulse(impulse, function[])' - 'register_logevent(const function[], argsnum, ...)' - 'register_menu(title[], keys, function[], outside=0)' - 'register_menucmd(menuid,keys, const function[])' - 'register_menuid(const menu[], outside=0)' - 'register_message(msgId, function[])' - - 'register_plugin(const plugin_name[], const version[], const auth' + - 'or[])' - - 'register_srvcmd(const server_cmd[],const function[],flags=-1, in' + - 'fo[]="")' - 'register_statsfwd(forward_index)' - 'register_think(Classname[], function[])' - 'register_touch(Toucher[], Touched[], function[])' - 'remove_cvar_flags(const cvar[],flags = -1)' - 'remove_entity(entity)' - 'remove_entity_name(Name[])' - 'remove_quotes(text[])' - 'remove_task(id = 0, outside = 0)' - 'remove_user_flags(index,flags=-1,id=0)' - 'remove_vaultdata(const key[])' - 'replace(text[], len, const what[], const with[])' - 'require_module(const name[])' - 'reset_user_wstats(index)' - 'reset_user_wstats(player)' - 'rewind(file)' - 'server_changelevel(map[])' - 'server_cmd(const command[],{Float,_}:...)' - 'server_exec()' - 'server_frame()' - 'server_print(const message[], [ ... ])' - 'set_client_listen(receiver, sender, listen)' - 'set_cvar_flags(const cvar[],flags)' - 'set_cvar_float(const cvar[],Float:value)' - 'set_cvar_num(const cvarname[],value)' - 'set_cvar_string(const cvar[],const value[]))' - 'set_entity_flags(entity, flag, onoff)' - 'set_entity_visibility(entity, [ visible = 1 ])' - - 'set_hudmessage(red=200, green=100, blue=0, Float:x=-1.0, Float:y' + - '=0.35, effects=0, Float:fxtime=6.0, Float:holdtime=12.0, Float:f' + - 'adeintime=0.1, Float:fadeouttime=0.2, channel=4)' - 'set_lights(const Lighting[])' - 'set_localinfo(const info[], const value[])' - 'set_mask(index, mask, value)' - 'set_msg_arg_float(argn, argtype, Float:fValue)' - 'set_msg_arg_int(argn, argtype, iValue)' - 'set_msg_arg_string(argn, szString[])' - 'set_msg_block(msgId, flag)' - 'set_offset_char(id, offset, value, [ linux = 5 ])' - 'set_offset_float(id, offset, Float:value, [ linux = 5 ])' - 'set_offset_int(id, offset, value, [ linux = 5 ])' - 'set_offset_short(id, offset, value, [ linux = 5 ])' - 'set_pdata_float(index, offset, Float:value, [ linuxdiff = -5 ])' - 'set_pdata_int(index, offset, value, [ linuxdiff = -5 ])' - 'set_pev(index, value, [ ... ])' - 'set_player_body(index, [ body = -1 ])' - 'set_player_model(index, [ model = "" ])' - 'set_player_skin(index, [ skin = -1 ])' - - 'set_rendering(index, fx=kRenderFxNone, r=255,g=255,b=255, render' + - '=kRenderNormal,amount=16)' - 'set_speak(player, speakFlags)' - 'set_speedchange(index, speed)' - - 'set_task(Float:time,const function[],id = 0,parameter[]="",len =' + - ' 0,flags[]="", repeat = 0)' - 'set_tr(TraceResult:tr_member, [ ... ])' - 'set_user_armor(index, armor)' - 'set_user_deaths(index, newDeaths)' - 'set_user_flags(index,flags=-1,id=0)' - 'set_user_footsteps(id, [ set = 1 ])' - 'set_user_frags(index, newFrags)' - 'set_user_godmode(index, [ godmode = 0 ])' - 'set_user_gravity(index, [ Float:gravity = 1.0 ])' - 'set_user_health(index, health)' - 'set_user_hitzones([ index = 0, target = 0, body = 255 [)' - 'set_user_info(index, const info[], const value[])' - 'set_user_maxspeed(index, [ Float:speed = - 1.0 ])' - 'set_user_noclip(index, [ noclip = 0 ])' - 'set_user_origin(index, origin[3])' - - 'set_user_rendering(index, [ fx = kRenderFxNone, r = 255, g = 255' + - ', b = 255, render = kRenderNormal, amount = 16 ])' - 'set_user_velocity(entity, Float:Vector[3])' - 'set_usercmd(type, [ ... ])' - 'set_vaultdata(const key[], [ const data[] ])' - 'set_view(player, viewtype)' - 'set_xvar_float(id, Float:value = 0.0)' - 'set_xvar_num(id, value = 0 )' - 'setarg(arg, index=0, value)' - 'setc(src[], len, ch)' - 'show_hudmessage(index, message[], ...)' - 'show_menu(index, keys, const menu[], time = -1, title[] = "")' - 'show_motd(player, const message[], [ const header[] ])' - 'socket_change(socket, [ timeout = 100000 ])' - 'socket_close(socket)' - 'socket_open(hostname[], port, protocol, &error)' - 'socket_recv(socket, data[], maxLength)' - 'socket_send(socket, data[], length)' - 'spawn(index)' - 'str_to_num(const string[])' - 'strbreak(const text[], left[], leftLen, right[], rightLen)' - 'strip_user_weapons(index)' - 'strlen(const string[])' - 'strpack(dest[], const source[])' - 'strtolower(string[])' - 'strtoupper(string[])' - 'strunpack(dest[], const source[])' - 'swapchars(c)' - 'takedamage(victim, inflictor, attacker, Float:damage, type)' - 'task_exists(id = 0, outside = 0)' - 'tfc_clearmodel(index)' - 'tfc_getbammo(index, ammo)' - 'tfc_getgrenadename(weapon, name[], len)' - 'tfc_getweaponbammo(player, weapon)' - 'tfc_getwpnlogname(weapon, name[], len)' - 'tfc_getwpnname(weapon, name[], len)' - 'tfc_isgrenade(weapon)' - 'tfc_ismelee(weapon)' - 'tfc_setbammo(index, ammo, value)' - 'tfc_setmodel(index, const Model[], const Skin[])' - - 'tfc_setpddata(timer, sentrygun, shells, bullets, cells, rockets,' + - ' nade1, nade2)' - 'tfc_setweaponbammo(player, weapon, value)' - 'tfc_userkill(index)' - 'tickcount([ &granularity ])' - 'time([ &hour, &minute, &second ])' - 'tolower(c)' - 'toupper(c)' - - 'trace_hull(Float:origin[3], hull, [ ignoredent=0, ignoremonsters' + - '=0 ])' - - 'trace_line(IgnoreEnt, Float:Start[3], Float:End[3], Float:vRetur' + - 'n[3])' - 'traceresult(type, [ ... ])' - 'trim(text[])' - 'ts_createpwup(pwup)' - 'ts_getkillingstreak(index)' - 'ts_getusercash(index)' - 'ts_getuseritems(index)' - 'ts_getuserkillflags(killer)' - 'ts_getuserlastfrag(index)' - 'ts_getuserpwup(index, &Value)' - 'ts_getuserspace(index)' - 'ts_getuserwpn(index, &ammo, &clip, &mode, &extra)' - 'ts_givepwup(index, pwupent)' - 'ts_giveweapon(index, weapon, clips, extra)' - 'ts_setpdata(knifeoffset)' - 'ts_wpnlogtoid(logname[])' - 'ts_wpnlogtoname(logname[], name[], len)' - 'ucfirst(string[])' - 'unlink(const filename[], ...)' - 'unpause(flag[], const param1[]="",const param2[]="")' - 'user_has_weapon(index, weapon, [ setweapon ])' - 'user_kill(index, [ flag ])' - 'user_silentkill(player)' - 'user_slap(index, power, [ rnddir ])' - 'vaultdata_exists(const key[])' - 'vector_distance(Float:Vector1[3], Float:Vector2[3])' - 'vector_length(Float:Vector[3])' - 'vector_to_angle(Float:vector[3], Float:vReturn[3])' - 'VelocityByAim(entity, velocity, Float:RetValue[3])' - 'ViewContents(player)' - 'write_angle(x)' - 'write_byte(x)' - 'write_char(x)' - 'write_coord(x)' - 'write_entity(x)' - 'write_file(const file[], const text[], [ line ])' - 'write_long(x)' - 'write_short(x)' - 'write_string(x)' - 'xmod_get_maxweapons()' - 'xmod_get_stats_size()' - 'xmod_get_wpnlogname(wpnindex, name[], len)' - 'xmod_get_wpnname(wpnindex, name[], len)' - 'xmod_is_custom_wpn(wpnindex)' - 'xmod_is_melee_wpn(wpnindex)' - 'xvar_exists(const name[])' - 'zdod_get_next_class(player)' - 'zdod_get_pl_deaths(player)' - 'zdod_is_randomclass(player)' - - 'zdod_set_fuse(player, [ set=FUSE_SET, float:newFuse=5.0, type=FT' + - '_NEW ])' - 'zdod_set_pl_deaths(player, value, [ refresh=1 ])' - 'zdod_set_pl_teamname(player, szName[])' - - 'zdod_set_stamina(player, [ set=STAMINA_SET, minvalue=0, maxvalue' + - '=100 ])' - 'zdod_set_user_class(player, classId)' - 'zdod_set_user_score(player, value, [ refresh=1 ])' - 'zdod_set_user_team(player, teamId, [ refresh=1 ])') - EndDefinition = ')' - Editor = sciEditor - ParametersEnd = ')' - ParametersSeparators = ',' - ParametersStart = '(' - WordCharacters = '_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789' - IgnoreCase = True - Left = 794 - Top = 34 - end - object srpSearch: TSciSearchReplace - SearchForSelWord = False - Editor = sciEditor - Left = 762 - Top = 34 - end - object odOpen: TOpenDialog - Filter = - 'SMA-Files (*.sma)|*.sma|INC-Files (*.inc)|*.inc|All files (*.*)|' + - '*.*' - Options = [ofHideReadOnly, ofPathMustExist, ofFileMustExist, ofEnableSizing] - Title = 'Open...' - Left = 730 - Top = 4 - end - object sdSave: TSaveDialog - Filter = - 'SMA-Files (*.sma)|*.sma|INC-Files (*.inc)|*.inc|All files (*.*)|' + - '*.*' - Title = 'Save...' - Left = 730 - Top = 34 - end - object ppmEditor: TPopupMenu - Left = 762 - Top = 4 - object mnuClose: TMenuItem - Caption = 'Close' - Enabled = False - OnClick = mnuCloseClick - end - end - object IdFTP: TIdFTP - MaxLineAction = maException - ProxySettings.ProxyType = fpcmNone - ProxySettings.Port = 0 - Left = 698 - Top = 4 - end - object ppmCopy: TPopupMenu - Left = 698 - Top = 34 - object mnuCopyItem: TMenuItem - Caption = 'Copy Item' - OnClick = mnuCopyItemClick - end - object mnuCopyAll: TMenuItem - Caption = 'Copy all' - OnClick = mnuCopyAllClick - end - end -end diff --git a/editor/editor2/UnitfrmMain.pas b/editor/editor2/UnitfrmMain.pas deleted file mode 100755 index 206dcab6..00000000 --- a/editor/editor2/UnitfrmMain.pas +++ /dev/null @@ -1,1251 +0,0 @@ -unit UnitfrmMain; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - ToolWin, ActnMan, ActnCtrls, ActnMenus, ActnList, - ImgList, ComCtrls, SciDocuments, SciLexer, ClipBrd, - SciLexerMod, SciAutoComplete, SciCallTips, SciLexerOptionsDlg, - SciSearchReplace, StdCtrls, Tabs, Menus, ShellAPI, ScintillaLanguageManager, - SciLexerMemo, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, - IdFTP, ExtCtrls, TFlatHintUnit, Dialogs, XPStyleActnCtrls, CorelButton; - -type - TfrmMain = class(TForm) - atbToolBar: TActionToolBar; - ilMenu: TImageList; - amMenu: TActionManager; - acNew: TAction; - acSave: TAction; - acSaveAs: TAction; - acOpen: TAction; - acClose: TAction; - acCloseAllFiles: TAction; - acExit: TAction; - acUndo: TAction; - acRedo: TAction; - acCut: TAction; - acCopy: TAction; - acPaste: TAction; - acSearch: TAction; - acFindNext: TAction; - acReplace: TAction; - acCompile: TAction; - acCompileAndUpload: TAction; - acDoc: TAction; - acForum: TAction; - acAbout: TAction; - mmbMenu: TActionMainMenuBar; - acCompileAndStart: TAction; - acOptions: TAction; - sciEditor: TScintilla; - dtcEditor: TSciDocumentTabControl; - sacComplete: TSciAutoComplete; - cltEditor: TSciCallTips; - srpSearch: TSciSearchReplace; - odOpen: TOpenDialog; - sdSave: TSaveDialog; - ppmEditor: TPopupMenu; - mnuClose: TMenuItem; - acGoTo: TAction; - IdFTP: TIdFTP; - sbInfo: TStatusBar; - acSaveAll: TAction; - pnlFunctions: TPanel; - pnlSpacerTop: TPanel; - trvFunctions: TTreeView; - pnlSpacerLeft: TPanel; - splFunctions: TSplitter; - pnlSpacerBottom: TPanel; - acEdit: TAction; - lvDebug: TListView; - acIdenter: TAction; - acMenuMaker: TAction; - acPMM: TAction; - acRemoveMissingPlugins: TAction; - acSocketTerminal: TAction; - acSelectAll: TAction; - acUnidenter: TAction; - acLoopGenerator: TAction; - ppmCopy: TPopupMenu; - mnuCopyItem: TMenuItem; - mnuCopyAll: TMenuItem; - procedure FormCreate(Sender: TObject); - procedure acNewExecute(Sender: TObject); - procedure acOpenExecute(Sender: TObject); - procedure acSaveExecute(Sender: TObject); - procedure acSaveAsExecute(Sender: TObject); - procedure acCloseExecute(Sender: TObject); - procedure dtcEditorChange(Sender: TObject); - procedure acOptionsExecute(Sender: TObject); - procedure acExitExecute(Sender: TObject); - procedure acUndoExecute(Sender: TObject); - procedure acRedoExecute(Sender: TObject); - procedure acCutExecute(Sender: TObject); - procedure acCopyExecute(Sender: TObject); - procedure acPasteExecute(Sender: TObject); - procedure acSearchExecute(Sender: TObject); - procedure acFindNextExecute(Sender: TObject); - procedure acReplaceExecute(Sender: TObject); - procedure acCloseAllFilesExecute(Sender: TObject); - procedure dtcEditorMouseUp(Sender: TObject; Button: TMouseButton; - Shift: TShiftState; X, Y: Integer); - procedure mnuCloseClick(Sender: TObject); - procedure acDocExecute(Sender: TObject); - procedure acForumExecute(Sender: TObject); - procedure acAboutExecute(Sender: TObject); - procedure acCompileExecute(Sender: TObject); - procedure sciEditorMouseDown(Sender: TObject; Button: TMouseButton; - Shift: TShiftState; X, Y: Integer); - procedure sciEditorKeyDown(Sender: TObject; var Key: Word; - Shift: TShiftState); - procedure sciEditorKeyPress(Sender: TObject; var Key: Char); - procedure FormActivate(Sender: TObject); - procedure acGoToExecute(Sender: TObject); - procedure acCompileAndUploadExecute(Sender: TObject); - procedure acCompileAndStartExecute(Sender: TObject); - procedure FormClose(Sender: TObject; var Action: TCloseAction); - procedure amMenuExecute(Action: TBasicAction; var Handled: Boolean); - procedure FormShow(Sender: TObject); - procedure sciEditorMouseUp(Sender: TObject; Button: TMouseButton; - Shift: TShiftState; X, Y: Integer); - procedure sciEditorMouseMove(Sender: TObject; Shift: TShiftState; X, - Y: Integer); - procedure FormConstrainedResize(Sender: TObject; var MinWidth, - MinHeight, MaxWidth, MaxHeight: Integer); - procedure acSaveAllExecute(Sender: TObject); - procedure sciEditorKeyUp(Sender: TObject; var Key: Word; - Shift: TShiftState); - procedure dtcEditorChanging(Sender: TObject; var AllowChange: Boolean); - procedure trvFunctionsEditing(Sender: TObject; Node: TTreeNode; - var AllowEdit: Boolean); - procedure trvFunctionsDblClick(Sender: TObject); - procedure trvFunctionsCollapsed(Sender: TObject; Node: TTreeNode); - procedure trvFunctionsExpanded(Sender: TObject; Node: TTreeNode); - procedure trvFunctionsEdited(Sender: TObject; Node: TTreeNode; - var S: String); - procedure trvFunctionsKeyDown(Sender: TObject; var Key: Word; - Shift: TShiftState); - procedure trvFunctionsClick(Sender: TObject); - procedure acEditExecute(Sender: TObject); - procedure pnlSpacerLeftClick(Sender: TObject); - procedure lvDebugEnter(Sender: TObject); - procedure lvDebugDblClick(Sender: TObject); - procedure acIdenterExecute(Sender: TObject); - procedure acMenuMakerExecute(Sender: TObject); - procedure acPMMExecute(Sender: TObject); - procedure acRemoveMissingPluginsExecute(Sender: TObject); - procedure acSocketTerminalExecute(Sender: TObject); - procedure FormDestroy(Sender: TObject); - procedure acSelectAllExecute(Sender: TObject); - procedure acUnidenterExecute(Sender: TObject); - procedure acLoopGeneratorExecute(Sender: TObject); - procedure sciEditorModified(Sender: TObject; const position, - modificationType: Integer; text: PAnsiChar; const length, linesAdded, - line, foldLevelNow, foldLevelPrev: Integer); - procedure lvDebugMouseDown(Sender: TObject; Button: TMouseButton; - Shift: TShiftState; X, Y: Integer); - procedure mnuCopyItemClick(Sender: TObject); - procedure mnuCopyAllClick(Sender: TObject); - private - eSelectedTab: Integer; - eCurrentLine: Integer; - procedure WMCopyData(var Msg: TWMCopyData); message WM_COPYDATA; - public - StdAutoComplete: String; // Save this because we add special functions - StdCallTips: String; // etc. dynamically for each file - FunctionType: TStringList; - CurrItem: TListItem; - function StrLength(eStr: String): Integer; - procedure OnExceptionHandler(Sender: TObject; E: Exception); - procedure DeleteNode(Node: TTreeNode); - procedure RenameNode(Node: TTreeNode; New: String); - procedure SetModified; - procedure SetSaved; - procedure ShowErrorLine; - end; - -var - frmMain: TfrmMain; - -implementation - -uses UnitfrmOptions, UnitfrmDebug, UnitFunc, - UnitfrmAbout, UnitfrmGoToLine, UnitTextAnalyze, UnitfrmMenuMaker, - UnitfrmSockets, UnitfrmLoopGenerator; - -{$R *.dfm} - -procedure TfrmMain.FormCreate(Sender: TObject); -begin - eErrorLine := -1; - Caption := 'AMXX-Edit v2'; - StdAutoComplete := sacComplete.AStrings.Text; - StdCallTips := cltEditor.ApiStrings.Text; - Application.OnException := OnExceptionHandler; - FunctionType := TStringList.Create; - DoubleBuffered := True; -end; - -procedure TfrmMain.acNewExecute(Sender: TObject); -begin - dtcEditor.NewDocument; - acClose.Enabled := True; - mnuClose.Enabled := True; - acCloseAllFiles.Enabled := True; -end; - -procedure TfrmMain.acOpenExecute(Sender: TObject); -begin - if DirectoryExists(frmSettings.txtSave.Text) then - odOpen.InitialDir := frmSettings.txtSave.Text; - - try - if odOpen.Execute then begin - dtcEditor.Open(odOpen.FileName); - SetSaved; - UpdateList(sciEditor.Lines.Text); - end; - atbToolbar.RecreateControls; - except - // :F - end; -end; - -procedure TfrmMain.acSaveExecute(Sender: TObject); -begin - try - if dtcEditor.ActiveDocument.IsUntitled then - acSaveAs.Execute - else begin - dtcEditor.Editor.SaveToFile(dtcEditor.ActiveDocument.FileName); - Delay(100); - SetSaved; - end; - atbToolbar.RecreateControls; - except - // :F - end; -end; - -procedure TfrmMain.acSaveAsExecute(Sender: TObject); -begin - if DirectoryExists(frmSettings.txtSave.Text) then - sdSave.InitialDir := frmSettings.txtSave.Text; - - if sdSave.Execute then begin - AppendFileExt; - dtcEditor.ActiveDocument.FileName := sdSave.FileName; - sciEditor.SaveToFile(dtcEditor.ActiveDocument.FileName); - SetSaved; - end; -end; - -procedure TfrmMain.acCloseExecute(Sender: TObject); -begin - if dtcEditor.ActiveDocument.Modified then begin - case MessageBox(Handle, PChar('Do you want to save "' + ExtractFileName(dtcEditor.ActiveDocument.FileName) + '" before closing?'), 'Question', MB_ICONQUESTION + MB_YESNOCANCEL) of - mrYes: acSave.Execute; - mrCancel: exit; - end; - end; - dtcEditor.Close(dtcEditor.ActiveDocument.Index, False); - acClose.Enabled := (dtcEditor.Tabs.Count <> 1) or (not dtcEditor.ActiveDocument.IsUntitled); - mnuClose.Enabled := acClose.Enabled; - acCloseAllFiles.Enabled := (dtcEditor.Tabs.Count <> 1) or (dtcEditor.Tabs.Count <> 1) or (not dtcEditor.ActiveDocument.IsUntitled); -end; - -procedure TfrmMain.dtcEditorChange(Sender: TObject); -begin - if frmSettings.chkHighlighting.Checked then - sciEditor.LanguageManager.SelectedLanguage := 'SMALL' - else - sciEditor.LanguageManager.SelectedLanguage := 'null'; - - if sbInfo.Panels[0].Width > Canvas.TextWidth(dtcEditor.ActiveDocument.FileName) then - sbInfo.Panels[0].Text := dtcEditor.ActiveDocument.FileName - else - sbInfo.Panels[0].Text := ExtractFileName(dtcEditor.ActiveDocument.FileName); - - if dtcEditor.ActiveDocument.Modified then - sbInfo.Panels[1].Text := 'Modified' - else - sbInfo.Panels[1].Text := ''; - UpdateList(sciEditor.Lines.Text); - eCurrentLine := sciEditor.GetCurrentLineNumber; -end; - -procedure TfrmMain.acOptionsExecute(Sender: TObject); -begin - Load; - if frmSettings.ShowModal = mrOk then begin - Apply; - Save; - end; -end; - -procedure TfrmMain.acExitExecute(Sender: TObject); -begin - Close; -end; - -procedure TfrmMain.acUndoExecute(Sender: TObject); -begin - sciEditor.Undo; -end; - -procedure TfrmMain.acRedoExecute(Sender: TObject); -begin - sciEditor.Redo; -end; - -procedure TfrmMain.acCutExecute(Sender: TObject); -begin - sciEditor.Cut; -end; - -procedure TfrmMain.acCopyExecute(Sender: TObject); -begin - sciEditor.Copy; -end; - -procedure TfrmMain.acPasteExecute(Sender: TObject); -begin - sciEditor.Paste; -end; - -procedure TfrmMain.acSearchExecute(Sender: TObject); -begin - try - srpSearch.ShowSearchReplaceDialog(False); - atbToolBar.RecreateControls; - except - // :F - end; -end; - -procedure TfrmMain.acFindNextExecute(Sender: TObject); -begin - srpSearch.DoSearchReplaceText(False, False); -end; - -procedure TfrmMain.acReplaceExecute(Sender: TObject); -begin - srpSearch.ShowSearchReplaceDialog(True); -end; - -procedure TfrmMain.acCloseAllFilesExecute(Sender: TObject); -var i: integer; -begin - if ShowSaveDialog('Close all files', 'Save files', 'Close') then begin - for i := dtcEditor.Tabs.Count -1 downto 0 do - dtcEditor.Close(i, False); - acClose.Enabled := False; - mnuClose.Enabled := False; - acCloseAllFiles.Enabled := False; - DeleteFile(ExtractFilePath(ParamStr(0)) + 'Files.ini'); - end; -end; - -procedure TfrmMain.dtcEditorMouseUp(Sender: TObject; Button: TMouseButton; - Shift: TShiftState; X, Y: Integer); -begin - eSelectedTab := dtcEditor.IndexOfTabAt(X, Y); - if (eSelectedTab <> -1) and (Y < 20) and (Y > 0) and (Button = mbRight) then - ppmEditor.Popup(Mouse.CursorPos.X, Mouse.CursorPos.Y); -end; - -procedure TfrmMain.mnuCloseClick(Sender: TObject); -begin - if dtcEditor.ActiveDocument.Modified then begin - case MessageBox(Handle, PChar('Do you want to save "' + ExtractFileName(dtcEditor.Document[eSelectedTab].FileName) + '" before closing?'), 'Question', MB_ICONQUESTION + MB_YESNOCANCEL) of - mrYes: begin - if dtcEditor.ActiveDocument.IsUntitled then begin - if DirectoryExists(frmSettings.txtSave.Text) then - sdSave.InitialDir := frmSettings.txtSave.Text; - - if sdSave.Execute then begin - AppendFileExt; - dtcEditor.Document[eSelectedTab].FileName := sdSave.FileName; - dtcEditor.Document[eSelectedTab].Modified := False; - sciEditor.SaveToFile(dtcEditor.Document[eSelectedTab].FileName); - if eSelectedTab = dtcEditor.ActiveDocument.Index then - sbInfo.Panels[1].Text := '' - end; - end - else begin - dtcEditor.Editor.SaveToFile(dtcEditor.ActiveDocument.FileName); - dtcEditor.ActiveDocument.Modified := False; - if eSelectedTab = dtcEditor.ActiveDocument.Index then - sbInfo.Panels[1].Text := ''; - end; - end; - mrCancel: exit; - end; - end; - - dtcEditor.Close(eSelectedTab, False); - acClose.Enabled := (dtcEditor.Tabs.Count <> 1) or (not dtcEditor.ActiveDocument.IsUntitled); - mnuClose.Enabled := acClose.Enabled; - acCloseAllFiles.Enabled := (dtcEditor.Tabs.Count <> 1) or (not dtcEditor.ActiveDocument.IsUntitled); -end; - -procedure TfrmMain.acDocExecute(Sender: TObject); -begin - ShellExecute(Handle, 'open', 'http://www.amxmodx.org/doc/', nil, nil, SW_SHOW); -end; - -procedure TfrmMain.acForumExecute(Sender: TObject); -begin - ShellExecute(Handle, 'open', 'http://www.amxmodx.org/forums/viewforum.php?f=8', nil, nil, SW_SHOW); -end; - -procedure TfrmMain.acAboutExecute(Sender: TObject); -begin - frmAbout.ShowModal; -end; - -procedure TfrmMain.acCompileExecute(Sender: TObject); -begin - DoCompile; -end; - -procedure TfrmMain.sciEditorMouseDown(Sender: TObject; - Button: TMouseButton; Shift: TShiftState; X, Y: Integer); -begin - sbInfo.Panels.Items[2].Text := Format('Ln %s Ch %s', [IntToStr(sciEditor.GetCurrentLineNumber +1), IntToStr(sciEditor.GetCaretInLine +1)]); - sciEditor.ReadOnly := False; - eCurrentLine := sciEditor.GetCurrentLineNumber; - if sciEditor.LineFromPosition(sciEditor.SelStart) <> eErrorLine then begin - sciEditor.Caret.LineBackColor := frmSettings.cboActiveLine.Selected; - sciEditor.Caret.ForeColor := clDefault; - sciEditor.Colors.SelBack := clHighlight; - end; -end; - -procedure TfrmMain.sciEditorKeyDown(Sender: TObject; var Key: Word; - Shift: TShiftState); -begin - sbInfo.Panels.Items[2].Text := Format('Ln %s Ch %s', [IntToStr(sciEditor.GetCurrentLineNumber +1), IntToStr(sciEditor.GetCaretInLine +1)]); -end; - -procedure TfrmMain.sciEditorKeyPress(Sender: TObject; var Key: Char); -var eStr: String; -begin - if (Key = #13) and (Trim(sciEditor.Lines[sciEditor.GetCurrentLineNumber]) = '') and (frmSettings.chkAutoIndent.Checked) then begin - if sciEditor.GetCurrentLineNumber <> 0 then begin - eStr := Trim(sciEditor.Lines[sciEditor.GetCurrentLineNumber -1]); - Delete(eStr, 1, Length(eStr) -1); - if eStr = '{' then - sciEditor.SelText := ' '; - end; - end; - if (Key = '}') and (Trim(sciEditor.Lines[sciEditor.GetCurrentLineNumber]) = '') then begin // YES thats only for bail ;) - sciEditor.Lines[sciEditor.GetCurrentLineNumber] := Copy(sciEditor.Lines[sciEditor.GetCurrentLineNumber], 1, Length(sciEditor.Lines[sciEditor.GetCurrentLineNumber]) -1); // remove last indent.. - sciEditor.SelStart := sciEditor.SelStart + Length(sciEditor.Lines[sciEditor.GetCurrentLineNumber]); // and jump to last position - end; -end; - -procedure TfrmMain.FormActivate(Sender: TObject); -begin - sciEditor.Font.Name := 'Courier New'; // otherwise the font MAY reset (don't know why) - if eErrorLine <> -1 then - ShowErrorLine; -end; - -procedure TfrmMain.acGoToExecute(Sender: TObject); -begin - frmGoToLine.txtLine.SelectAll; - if frmGoToLine.ShowModal = mrOk then - sciEditor.GotoLineEnsureVisible(StrToInt(frmGoToLine.txtLine.Text) -1); -end; - -procedure TfrmMain.acCompileAndUploadExecute(Sender: TObject); -begin - DoCompile; - - if eErrors = 0 then begin - if frmSettings.optWindow.Checked then begin - frmDebug.lblStatus.Font.Style := []; - frmDebug.lblStatus.Caption := ' Uploading file...'; - frmDebug.lstOutput.Items.Add(''); - frmDebug.lstOutput.Items.Add('Connecting to FTP server...'); - frmDebug.lstOutput.ItemIndex := frmDebug.lstOutput.Items.Count -1; - end - else begin - lvDebug.Items.Add.Caption := 'Connecting to FTP server...'; - lvDebug.ItemIndex := lvDebug.Items.Count -1; - end; - IdFTP.Host := frmSettings.txtHost.Text; - IdFTP.Port := StrToInt(frmSettings.txtPort.Text); - IdFTP.Username := frmSettings.txtUser.Text; - IdFTP.Password := frmSettings.txtPassword.Text; - try - try - IdFTP.Connect; - finally - if frmSettings.optWindow.Checked then begin - frmDebug.lstOutput.Items.Add('Connected, uploading file...'); - frmDebug.lstOutput.ItemIndex := frmDebug.lstOutput.Items.Count -1; - end - else begin - lvDebug.Items.Add.Caption := 'Connected, uploading file...'; - lvDebug.ItemIndex := lvDebug.Items.Count -1; - end; - IdFTP.ChangeDir(frmSettings.txtStandardDir.Text); - IdFTP.Put(frmSettings.txtAMXXPath.Text + 'plugins\' + ChangeFileExt(ExtractFileName(frmMain.dtcEditor.ActiveDocument.FileName), '.amxx'), ChangeFileExt(ExtractFileName(frmMain.dtcEditor.ActiveDocument.FileName), '.amxx')); - if frmSettings.optWindow.Checked then begin - frmDebug.lstOutput.Items.Add('Done.'); - frmDebug.lstOutput.ItemIndex := frmDebug.lstOutput.Items.Count -1; - frmDebug.lblStatus.Font.Style := [fsBold]; - frmDebug.lblStatus.Caption := ' Done.'; - end - else begin - lvDebug.Items.Add.Caption := 'Done.'; - lvDebug.ItemIndex := lvDebug.Items.Count -1; - end; - IdFTP.Disconnect; - end; - except - if frmSettings.optWindow.Checked then begin - frmDebug.lblStatus.Caption := ' Error: Couldn''t connect to server.'; - frmDebug.lstOutput.Items.Add('Error: Couldn''t connect to server.'); - frmDebug.lstOutput.Items.Add('Check your settings and try again.'); - frmDebug.lstOutput.ItemIndex := frmDebug.lstOutput.Items.Count -1; - end - else begin - lvDebug.Items.Add.Caption := 'Error: Coudln''t connect to server.'; - lvDebug.Items.Add.Caption := 'Check your settings and try again.'; - lvDebug.ItemIndex := lvDebug.Items.Count -1; - end; - end; - end; -end; - -procedure TfrmMain.acCompileAndStartExecute(Sender: TObject); -begin - if FileExists(frmSettings.txtHalfLife.Text) then begin - if FileExists(frmSettings.txtAMXXPath.Text + 'plugins\' + ChangeFileExt(ExtractFileName(frmMain.dtcEditor.ActiveDocument.FileName), '.amxx')) then - DeleteFile(frmSettings.txtAMXXPath.Text + 'plugins\' + ChangeFileExt(ExtractFileName(frmMain.dtcEditor.ActiveDocument.FileName), '.amxx')); - DoCompile; - if FileExists(frmSettings.txtAMXXPath.Text + 'plugins\' + ChangeFileExt(ExtractFileName(frmMain.dtcEditor.ActiveDocument.FileName), '.amxx')) then begin - if frmSettings.optWindow.Checked then - frmDebug.lblStatus.Caption := ' Done: Starting Half-Life' - else - lvDebug.Items.Add.Caption := 'Starting Half-Life...'; - ShellExecute(Handle, 'open', PChar(frmSettings.txtHalfLife.Text), '', PChar(ExtractFilePath(frmSettings.txtHalfLife.Text)), SW_SHOW); - end; - end - else - MessageBox(Handle, 'Couldn''t find Half-Life exe. Check your settings and try again.', 'Error', MB_ICONERROR); -end; - -procedure TfrmMain.WMCopyData(var Msg: TWMCopyData); -var - sText: array[0..1500] of Char; -begin - try - StrLCopy(sText, Msg.CopyDataStruct.lpData, Msg.CopyDataStruct.cbData); - dtcEditor.Open(sText); - SetSaved; - UpdateList(sciEditor.Lines.Text); - except - // :F - end; -end; - -procedure TfrmMain.FormClose(Sender: TObject; var Action: TCloseAction); -begin - if not ShowSaveDialog('Save files before close', 'Save and close', 'Close') then - Action := caNone; -end; - -procedure TfrmMain.amMenuExecute(Action: TBasicAction; - var Handled: Boolean); -begin - sciEditor.Caret.LineBackColor := frmSettings.cboActiveLine.Selected; - sciEditor.Caret.ForeColor := clDefault; - sciEditor.Colors.SelBack := clHighlight; - if lvDebug.Visible then - lvDebug.Visible := False; -end; - -procedure TfrmMain.FormShow(Sender: TObject); -var eStr: TStringList; - i: integer; -begin - if Tag = 0 then begin - Tag := 1; - if frmSettings.chkReload.Checked then begin - eStr := TStringList.Create; - if FileExists(ExtractFilePath(ParamStr(0)) + 'Files.ini') then begin - eStr.LoadFromFile(ExtractFilePath(ParamStr(0)) + 'Files.ini'); - with frmMain do begin - for i := 0 to eStr.Count -1 do begin - if FileExists(eStr[i]) then begin - dtcEditor.Open(eStr[i]); - SetSaved; - end; - end; - acClose.Enabled := True; - mnuClose.Enabled := True; - acCloseAllFiles.Enabled := True; - end; - end; - eStr.Free; - UpdateList(sciEditor.Lines.Text); - end; - - for i := 1 to ParamCount do begin - if FileExists(ParamStr(i)) then begin - dtcEditor.Open(ParamStr(i)); - SetSaved; - end; - end; - UpdateList(sciEditor.Lines.Text); - acClose.Enabled := True; - mnuClose.Enabled := True; - acCloseAllFiles.Enabled := True; - end; -end; - -procedure TfrmMain.sciEditorMouseUp(Sender: TObject; Button: TMouseButton; - Shift: TShiftState; X, Y: Integer); -begin - sbInfo.Panels.Items[2].Text := Format('Ln %s Ch %s', [IntToStr(sciEditor.GetCurrentLineNumber +1), IntToStr(sciEditor.GetCaretInLine +1)]); -end; - -procedure TfrmMain.sciEditorMouseMove(Sender: TObject; Shift: TShiftState; - X, Y: Integer); -begin - sbInfo.Panels.Items[2].Text := Format('Ln %s Ch %s', [IntToStr(sciEditor.GetCurrentLineNumber +1), IntToStr(sciEditor.GetCaretInLine +1)]); -end; - -procedure TfrmMain.FormConstrainedResize(Sender: TObject; var MinWidth, - MinHeight, MaxWidth, MaxHeight: Integer); -begin - sbInfo.Panels[0].Width := sbInfo.Width - 162; - if sbInfo.Panels[0].Width > Canvas.TextWidth(dtcEditor.ActiveDocument.FileName) then - sbInfo.Panels[0].Text := dtcEditor.ActiveDocument.FileName - else - sbInfo.Panels[0].Text := ExtractFileName(dtcEditor.ActiveDocument.FileName); - lvDebug.Column[0].Width := lvDebug.Width - 20; -end; - -procedure TfrmMain.acSaveAllExecute(Sender: TObject); -begin - if ShowSaveDialog('Save all files', 'Save files', 'Close') then - DeleteFile(ExtractFilePath(ParamStr(0)) + 'Files.ini'); -end; - -procedure TfrmMain.sciEditorKeyUp(Sender: TObject; var Key: Word; - Shift: TShiftState); -begin - if sciEditor.Caret.LineBackColor = clMaroon then begin - sciEditor.SelLength := Length(sciEditor.Lines[eErrorLine -1]); - sciEditor.Caret.LineBackColor := frmSettings.cboActiveLine.Selected; - sciEditor.Caret.ForeColor := clDefault; - sciEditor.Colors.SelBack := clHighlight; - end; - sciEditor.ReadOnly := False; - if (Key = 13) then begin // Return - if lvDebug.Visible then - lvDebug.Hide; - SetModified; - end - else if (Key = 9) and (not (ssCtrl in Shift)) then // Tab - SetModified - else if (Key >= 65) and (Key <= 90) and (not (ssCtrl in Shift)) then // a..z - SetModified - else if Chr(Key) = '}' then begin - if sciEditor.GetCurrentLineNumber <> 0 then begin // if we are on line 0 we would access line -1 otherwise - if (Trim(sciEditor.Lines[sciEditor.GetCurrentLineNumber]) = '') and (frmSettings.chkAutoIndent.Checked) then // if the prevorious line isn't empty, the line contains only spaces and the auto-identer is enabled then... - sciEditor.Lines[sciEditor.GetCurrentLineNumber] := Copy(sciEditor.Lines[sciEditor.GetCurrentLineNumber], 1, Length(sciEditor.Lines[sciEditor.GetCurrentLineNumber]) -1); // remove the last char - end; - end; - - - if (sciEditor.GetCurrentLineNumber <> eCurrentLine) or (RemoveSpaces(sciEditor.Lines[sciEditor.GetCurrentLineNumber]) = '') then begin - UpdateList(sciEditor.Lines.Text); - eCurrentLine := sciEditor.GetCurrentLineNumber; - end; -end; - -procedure TfrmMain.dtcEditorChanging(Sender: TObject; - var AllowChange: Boolean); -begin - if sciEditor.Caret.LineBackColor = clMaroon then begin - sciEditor.SelLength := Length(sciEditor.Lines[eErrorLine -1]); - sciEditor.Caret.LineBackColor := frmSettings.cboActiveLine.Selected; - sciEditor.Caret.ForeColor := clDefault; - sciEditor.Colors.SelBack := clHighlight; - end; - sciEditor.ReadOnly := False; - lvDebug.Hide; -end; - -procedure TfrmMain.trvFunctionsEditing(Sender: TObject; Node: TTreeNode; - var AllowEdit: Boolean); -begin - AllowEdit := Assigned(Node.Parent); -end; - -procedure TfrmMain.trvFunctionsDblClick(Sender: TObject); -function CheckAndSelect(ePath: String): Boolean; -var i: integer; -begin - Result := False; - ePath := LowerCase(ePath); - for i := 0 to dtcEditor.Tabs.Count -1 do begin - if LowerCase(dtcEditor.Document[i].FileName) = ePath then begin - dtcEditor.Activate(i); - Result := True; - exit; - end; - end; -end; - -var Node: TTreeNode; - i: integer; -begin - Node := trvFunctions.Selected; - if not Assigned(Node) then - exit; - if not Assigned(Node.Parent) then - exit; - - if Node.Parent.Text = 'Included' then begin - if FileExists(frmSettings.txtAMXXPath.Text + 'scripting\include\' + Node.Text) then begin - if CheckAndSelect(frmSettings.txtAMXXPath.Text + 'scripting\include\' + Node.Text) then - exit; - dtcEditor.Open(frmSettings.txtAMXXPath.Text + 'scripting\include\' + Node.Text); - SetSaved; - UpdateList(sciEditor.Lines.Text); - end - else if FileExists(frmSettings.txtAMXXPath.Text + 'scripting\' + Node.Text) then begin - if CheckAndSelect(frmSettings.txtAMXXPath.Text + 'scripting\' + Node.Text) then - exit; - dtcEditor.Open(frmSettings.txtAMXXPath.Text + 'scripting\' + Node.Text); - SetSaved; - UpdateList(sciEditor.Lines.Text); - end - else if (FileExists(ExtractFilePath(dtcEditor.ActiveDocument.FileName) + Node.Text)) and (not dtcEditor.ActiveDocument.IsUntitled) then begin - if CheckAndSelect(ExtractFilePath(dtcEditor.ActiveDocument.FileName) + Node.Text) then - exit; - dtcEditor.Open(ExtractFilePath(dtcEditor.ActiveDocument.FileName) + Node.Text); - SetSaved; - UpdateList(sciEditor.Lines.Text); - end - else - MessageBox(Handle, PChar('Couldn''t find "' + Node.Text + '". Maybe you''re still working on it on another (not saved) document or you entered an invalid value.'), 'Information', MB_ICONINFORMATION); - end; - if Node.Parent.Text = 'Defined' then begin - for i := 0 to sciEditor.Lines.Count -1 do begin - if Pos('#define ' + Node.Text, TrimLeft(sciEditor.Lines[i])) = 1 then begin - sciEditor.SetFocus; - sciEditor.GotoLine(i); - exit; - end; - end; - end; - if (Node.Parent.Text = 'Variables') or (Node.Parent.Text = 'Constants') then begin - for i := 0 to sciEditor.Lines.Count -1 do begin - if Pos('new ' + Node.Text, TrimLeft(sciEditor.Lines[i])) = 1 then begin - sciEditor.SetFocus; - sciEditor.GotoLine(i); - exit; - end; - end; - end; - if (Node.Parent.Text = 'Functions') then begin - for i := 0 to sciEditor.Lines.Count -1 do begin - if Pos(FunctionType[Node.Index] + Node.Text, TrimLeft(sciEditor.Lines[i])) = 1 then begin - sciEditor.SetFocus; - sciEditor.GotoLine(i); - exit; - end; - end; - end; -end; - -procedure TfrmMain.OnExceptionHandler(Sender: TObject; E: Exception); -begin - // nothing :F -end; - -procedure TfrmMain.trvFunctionsCollapsed(Sender: TObject; Node: TTreeNode); -begin - Node.ImageIndex := 18; - Node.SelectedIndex := 18; -end; - -procedure TfrmMain.trvFunctionsExpanded(Sender: TObject; Node: TTreeNode); -begin - Node.ImageIndex := 19; - Node.SelectedIndex := 19; -end; - -procedure TfrmMain.trvFunctionsEdited(Sender: TObject; Node: TTreeNode; - var S: String); -begin - if S = '' then begin - DeleteNode(Node); - trvFunctions.Items.Delete(Node); - SetModified; - end - else - RenameNode(Node, S); -end; - -procedure TfrmMain.DeleteNode(Node: TTreeNode); -procedure DeleteLine(eFormat: String); -var i: Integer; -begin - eFormat := Trim(Format(eFormat, [Node.Text])); - for i := 0 to sciEditor.Lines.Count -1 do begin - if Pos(eFormat, Trim(sciEditor.Lines[i])) = 1 then begin - sciEditor.Lines.Delete(i); - exit; - end; - end; -end; - -var i, a, b, c: integer; - eStr: TStringList; -begin - if Node.Parent.Text = 'Included' then - DeleteLine('#include <%s>'); - if Node.Parent.Text = 'Defined' then - DeleteLine('#define %s'); - if Node.Parent.Text = 'Variables' then - DeleteLine('new %s'); - if Node.Parent.Text = 'Constants' then - DeleteLine('new %s'); - if Node.Parent.Text = 'Functions' then begin - eStr := TStringList.Create; - eStr.Text := sciEditor.Lines.Text; - for i := 0 to eStr.Count -1 do begin - if Pos(Node.Text, TrimLeft(eStr[i])) = 1 then begin - if CountChars(eStr[i], '{') <> CountChars(eStr[i], '}') then begin - b := 0; // open brackets - for a := i to eStr.Count -1 do begin - // Remove strings because they could include brackets - while CountChars(eStr[a], '"') > 1 do - eStr[a] := StringReplace(eStr[a], '"' + Between(eStr[i], '"', '"') + '"', '', [rfReplaceAll]); - if (Pos('/*', eStr[a]) = 1) or (Pos('*', eStr[a]) = 1) or (Pos('*/', eStr[a]) = 1) then - eStr[a] := ''; - if Pos('//', eStr[a]) <> 0 then - eStr[a] := Copy(eStr[a], 1, Pos('//', eStr[a]) -2); - // Find end of the function - b := b + CountChars(eStr[a], '{'); - b := b - CountChars(eStr[a], '}'); - if b = 0 then begin - // Delete function - for c := i + a + 1 downto i do - sciEditor.Lines.Delete(c); - SetModified; - exit; - end; - end; - end - else begin - sciEditor.Lines.Delete(i); - SetModified; - end; - end; - end; - eStr.Free; - end; -end; - -procedure TfrmMain.SetModified; -begin - sciEditor.Caret.LineBackColor := frmSettings.cboActiveLine.Selected; - sciEditor.Caret.ForeColor := clDefault; - sciEditor.Colors.SelBack := clHighlight; - sbInfo.Panels[1].Text := 'Modified'; - dtcEditor.ActiveDocument.Modified := True; - acClose.Enabled := True; - mnuClose.Enabled := True; - acCloseAllFiles.Enabled := True; -end; - -procedure TfrmMain.trvFunctionsKeyDown(Sender: TObject; var Key: Word; - Shift: TShiftState); -begin - if (Key = 46) and (Assigned(trvFunctions.Selected)) and (not trvFunctions.IsEditing) then begin - DeleteNode(trvFunctions.Selected); - trvFunctions.Items.Delete(trvFunctions.Selected); - end; -end; - -procedure TfrmMain.trvFunctionsClick(Sender: TObject); -var i: integer; -begin - for i := 0 to trvFunctions.Items.Count -1 do begin - if not Assigned(trvFunctions.Items[i].Parent) then begin - if trvFunctions.Items[i].Text = 'Included' then - eExpand1 := trvFunctions.Items[i].Expanded; - if trvFunctions.Items[i].Text = 'Defined' then - eExpand2 := trvFunctions.Items[i].Expanded; - if trvFunctions.Items[i].Text = 'Variables' then - eExpand3 := trvFunctions.Items[i].Expanded; - if trvFunctions.Items[i].Text = 'Constants' then - eExpand4 := trvFunctions.Items[i].Expanded; - if trvFunctions.Items[i].Text = 'Functions' then - eExpand5 := trvFunctions.Items[i].Expanded; - end; - end; -end; - -procedure TfrmMain.RenameNode(Node: TTreeNode; New: String); -procedure ChangeLineTo(eOldFormat, eNewFormat: String); -var i: integer; -begin - eOldFormat := Format(eOldFormat, [Node.Text]); - eNewFormat := Format(eNewFormat, [New]); - for i := 0 to sciEditor.Lines.Count -1 do begin - if Pos(Trim(eOldFormat), Trim(sciEditor.Lines[i])) = 1 then begin - sciEditor.Lines[i] := eNewFormat; - exit; - end; - end; -end; -begin - if Node.Parent.Text = 'Included' then - ChangeLineTo('#include <%s>', '#include <%s>'); - if Node.Parent.Text = 'Defined' then - ChangeLineTo('#define %s', '#define %s'); - if Node.Parent.Text = 'Variables' then - ChangeLineTo('new %s', 'new %s'); - if Node.Parent.Text = 'Constants' then - ChangeLineTo('new %s', 'new %s'); - if Node.Parent.Text = 'Functions' then - ChangeLineTo('%s', '%s'); - SetModified; -end; - -procedure TfrmMain.acEditExecute(Sender: TObject); -begin - if (trvFunctions.Focused) and (Assigned(trvFunctions.Selected)) then begin - if Assigned(trvFunctions.Selected.Parent) then - trvFunctions.Selected.EditText; - end; -end; - -procedure TfrmMain.pnlSpacerLeftClick(Sender: TObject); -var i: integer; -begin - if frmSettings.cboCodeExplorer.ItemIndex = 1 then begin - if pnlFunctions.Width <> 150 then begin - for i := 1 to 30 do begin - Delay(5); - pnlFunctions.Width := i * 5; - end; - end - else begin - for i := 30 downto 1 do begin - Delay(5); - pnlFunctions.Width := i * 5; - end; - end; - end; -end; - -procedure TfrmMain.ShowErrorLine; -begin - BringToFront; - SetFocus; - sciEditor.SetFocus; - sciEditor.GotoLineEnsureVisible(eErrorLine -1); - sciEditor.SelLength := Length(sciEditor.Lines[eErrorLine -1]); - sciEditor.ReadOnly := True; - sciEditor.Colors.SelBack := clMaroon; - sciEditor.Caret.LineBackColor := clMaroon; - sciEditor.Caret.ForeColor := clWhite; - eErrorLine := -1; -end; - -procedure TfrmMain.lvDebugEnter(Sender: TObject); -begin - if sciEditor.Caret.LineBackColor = clMaroon then begin - sciEditor.SelLength := Length(sciEditor.Lines[eErrorLine -1]); - sciEditor.Caret.LineBackColor := frmSettings.cboActiveLine.Selected; - sciEditor.Caret.ForeColor := clDefault; - sciEditor.Colors.SelBack := clHighlight; - end; - sciEditor.ReadOnly := False; -end; - -procedure TfrmMain.lvDebugDblClick(Sender: TObject); -var eStr: String; -begin - if Assigned(lvDebug.Selected) then begin - eStr := lvDebug.Selected.Caption; - while Pos(#32, eStr) <> 0 do - Delete(eStr, 1, 1); - try - StrToInt(eStr); - finally - eErrorLine := StrToInt(eStr); - ShowErrorLine; - end; - end; -end; - -procedure TfrmMain.acIdenterExecute(Sender: TObject); -function GetMatchingBrace(eString: String): Integer; -var a, b,c : integer; -begin - Result := 0; - if Length(eString) < 1 then exit; - - b := 0; - c := 0; - - for a := 1 to Length(eString) do begin - if eString[a] = '(' then begin - b := b +1; - c := 1; - end - else if eString[a] = ')' then begin - b := b -1; - c := 1; - end; - - if (b = 0) and (c = 1) then begin - Result := a; - exit; - end; - end; -end; - -var eStr: TStringList; - i, k: integer; - eIdent, eTempIdent: Integer; - eString: String; -begin - Screen.Cursor := crHourGlass; - sciEditor.Enabled := False; - eStr := TStringList.Create; - eIdent := 0; - eTempIdent := 0; - for i := 0 to sciEditor.Lines.Count -1 do begin - eStr.Add(TrimLeft(sciEditor.Lines[i])); - // Remove strings and comments virtually because they could include brackets - Caption := Format('AMXX-Edit v2 - Preparing (%s of %s lines)', [IntToStr(i+1), IntToStr(sciEditor.Lines.Count)]); - while CountChars(eStr[i], '"') > 1 do - eStr[i] := StringReplace(eStr[i], '"' + Between(eStr[i], '"', '"') + '"', '', [rfReplaceAll]); - if (Pos('/*', eStr[i]) = 1) or (Pos('*', eStr[i]) = 1) or (Pos('*/', eStr[i]) = 1) then - eStr[i] := ''; - if Pos('//', eStr[i]) <> 0 then - eStr[i] := Copy(eStr[i], 1, Pos('//', eStr[i]) -2); - end; - - for i := 0 to eStr.Count -1 do begin - if CountChars(eStr[i], '{') <> CountChars(eStr[i], '}') then - eIdent := eIdent - CountChars(eStr[i], '}'); - - sciEditor.Lines[i] := TrimLeft(sciEditor.Lines[i]); - - for k := 1 to eIdent + eTempIdent do - sciEditor.Lines[i] := ' ' + sciEditor.Lines[i]; - if eTempIdent <> 0 then - eTempIdent := eTempIdent -1; - - if (Pos('if', eStr[i]) = 1) and (Pos('{', eStr[i]) = 0) and (Length(eStr[i]) > 3) then begin - eString := eStr[i]; - Delete(eString, 1, 2); - if eString[1] <> Trim(eString)[1] then begin - eString := Trim(eString); - if GetMatchingBrace(eString) = Length(eString) then - eTempIdent := eTempIdent +1; - end; - end - else if (Pos('else', eStr[i]) = 1) and (Pos('{', eStr[i]) = 0) and (Length(eStr[i]) > 3) then begin - eString := eStr[i]; - Delete(eString, 1, 2); - if eString[1] <> Trim(eString)[1] then begin - eString := Trim(eString); - if GetMatchingBrace(eString) = Length(eString) then - eTempIdent := eTempIdent +1; - end; - end; - - if CountChars(eStr[i], '{') <> CountChars(eStr[i], '}') then - eIdent := eIdent + CountChars(eStr[i], '{'); - - Caption := Format('AMXX-Edit v2 - Setting indents (%s of %s lines)', [IntToStr(i+1), IntToStr(sciEditor.Lines.Count)]); - end; - Sleep(350); - SetModified; - Caption := 'AMXX-Edit v2'; - - sciEditor.Enabled := True; - Screen.Cursor := crDefault; -end; - -procedure TfrmMain.SetSaved; -begin - dtcEditor.ActiveDocument.Modified := False; - sbInfo.Panels[1].Text := ''; - acClose.Enabled := True; - mnuClose.Enabled := True; - acCloseAllFiles.Enabled := True; -end; - -procedure TfrmMain.acMenuMakerExecute(Sender: TObject); -begin - with frmMenuMaker do begin - DefaultMenu := True; - nbkPages.PageIndex := 0; - cmdCancel.Caption := 'Cancel'; - cmdNext.Caption := '&Next >'; - Reset; - ShowModal; - end; - if sbInfo.Panels[0].Width > Canvas.TextWidth(dtcEditor.ActiveDocument.FileName) then - sbInfo.Panels[0].Text := dtcEditor.ActiveDocument.FileName - else - sbInfo.Panels[0].Text := ExtractFileName(dtcEditor.ActiveDocument.FileName); -end; - -procedure TfrmMain.acPMMExecute(Sender: TObject); -begin - with frmMenuMaker do begin - DefaultMenu := False; - nbkPages.PageIndex := 0; - cmdCancel.Caption := 'Cancel'; - cmdNext.Caption := '&Next >'; - Reset; - ShowModal; - end; - if sbInfo.Panels[0].Width > Canvas.TextWidth(dtcEditor.ActiveDocument.FileName) then - sbInfo.Panels[0].Text := dtcEditor.ActiveDocument.FileName - else - sbInfo.Panels[0].Text := ExtractFileName(dtcEditor.ActiveDocument.FileName); -end; - -procedure TfrmMain.acRemoveMissingPluginsExecute(Sender: TObject); -var eStr: TStringList; - i, eRemoved: Integer; - ePlugin: String; -begin - eStr := TStringList.Create; - if FileExists(frmSettings.txtAMXXPath.Text + 'configs\plugins.ini') then begin - eStr.LoadFromFile(frmSettings.txtAMXXPath.Text + 'configs\plugins.ini'); - eRemoved := 0; - for i := eStr.Count -1 downto 0 do begin // 0 to eStr.Count -1 won't work - if (Copy(eStr[i], 1, 1) <> ';') and (Copy(eStr[i], 1, 2) <> '//') then begin - ePlugin := frmSettings.txtAMXXPath.Text + 'plugins\' + eStr[i]; - if Pos(';', ePlugin) > 0 then - ePlugin := Copy(ePlugin, 1, Pos(';', ePlugin) -1); - if Pos('//', ePlugin) > 0 then - ePlugin := Copy(ePlugin, 1, Pos('//', ePlugin) -1); - ePlugin := Trim(ePlugin); - if not FileExists(ePlugin) then begin - eStr.Delete(i); - Inc(eRemoved, 1); - end; - end; - end; - eStr.SaveToFile(frmSettings.txtAMXXPath.Text + 'configs\plugins.ini'); - if eRemoved = 0 then - MessageBox(Handle, 'Done! No plugin has been removed.', 'Information', MB_ICONINFORMATION) - else - MessageBox(Handle, PChar('Done! Removed ' + IntToStr(eRemoved) + ' missing plugins.'), 'Information', MB_ICONINFORMATION); - end - else - MessageBox(Handle, 'Couldn''t find plugins.ini. Check your settings and try again.', 'Warning', MB_ICONWARNING); - eStr.Free; -end; - -procedure TfrmMain.acSocketTerminalExecute(Sender: TObject); -begin - frmSocketTerminal.Show; -end; - -procedure TfrmMain.FormDestroy(Sender: TObject); -begin - FunctionType.Free; -end; - -procedure TfrmMain.acSelectAllExecute(Sender: TObject); -begin - sciEditor.SelectAll; -end; - -procedure TfrmMain.acUnidenterExecute(Sender: TObject); -var i: integer; -begin - Screen.Cursor := crHourGlass; - for i := 0 to sciEditor.Lines.Count -1 do begin - Caption := Format('AMXX-Edit v2 - Removing indents (%s of %s lines)', [IntToStr(i +1), IntToStr(sciEditor.Lines.Count)]); - sciEditor.Lines[i] := TrimLeft(sciEditor.Lines[i]); - end; - SetModified; - Screen.Cursor := crDefault; -end; - -procedure TfrmMain.acLoopGeneratorExecute(Sender: TObject); -begin - frmLoopGenerator.optWhile.Checked := True; - frmLoopGenerator.txtWhileCondition.Clear; - frmLoopGenerator.txtVariable.Text := 'i=0'; - frmLoopGenerator.txtForCondition.Text := 'i<10'; - frmLoopGenerator.txtForAction.Text := 'i++'; - if frmLoopGenerator.ShowModal = mrOk then begin - if frmLoopGenerator.optWhile.Checked then - sciEditor.SelText := 'while (' + frmLoopGenerator.txtWhileCondition.Text + ') { /* Add code here */ }' - else - sciEditor.SelText := 'for (' + frmLoopGenerator.txtVariable.Text + ', ' + frmLoopGenerator.txtForCondition.Text + ', ' + frmLoopGenerator.txtForAction.Text + ') { /* Add code here */ }'; - end; -end; - -procedure TfrmMain.sciEditorModified(Sender: TObject; const position, - modificationType: Integer; text: PAnsiChar; const length, linesAdded, - line, foldLevelNow, foldLevelPrev: Integer); -var i: integer; - eStr: String; -begin - eStr := sciEditor.Lines.Text; - if StrLength(eStr) <> 0 then begin - for i := StrLength(eStr) -1 downto 1 do begin - if Ord(eStr[i]) < 9 then - Delete(eStr, i, 1); - end; - end; - sciEditor.Lines.Text := eStr; -end; - -function TfrmMain.StrLength(eStr: String): Integer; -begin - Result := Length(eStr); -end; - -procedure TfrmMain.lvDebugMouseDown(Sender: TObject; Button: TMouseButton; - Shift: TShiftState; X, Y: Integer); -begin - if (Button = mbRight) and (Assigned(lvDebug.GetItemAt(X, Y))) then begin - CurrItem := lvDebug.GetItemAt(X, Y); - ppmCopy.Popup(Mouse.CursorPos.X, Mouse.CursorPos.Y); - end; -end; - -procedure TfrmMain.mnuCopyItemClick(Sender: TObject); -begin - Clipboard.SetTextBuf(PChar(CurrItem.Caption)); -end; - -procedure TfrmMain.mnuCopyAllClick(Sender: TObject); -var i: Integer; - eStr: String; -begin - eStr := ''; - for i := lvDebug.Items.Count -1 downto 0 do - eStr := lvDebug.Items[i].Caption + #13#10 + eStr; - Clipboard.SetTextBuf(PChar(eStr)); -end; - -end. diff --git a/editor/editor2/UnitfrmMenuMaker.dfm b/editor/editor2/UnitfrmMenuMaker.dfm deleted file mode 100755 index 7e68ae2cbe8dc6b9d03bb1c4a7c222e6521000f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23424 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 diff --git a/editor/editor2/UnitfrmMenuMaker.pas b/editor/editor2/UnitfrmMenuMaker.pas deleted file mode 100755 index 609c4b6e..00000000 --- a/editor/editor2/UnitfrmMenuMaker.pas +++ /dev/null @@ -1,461 +0,0 @@ -unit UnitfrmMenuMaker; - -interface - -uses - SysUtils, Windows, Messages, Classes, Graphics, Controls, - StdCtrls, ExtCtrls, Forms, TFlatMemoUnit, XPStyleActnCtrls, ActnList, - ActnMan, ToolWin, ActnCtrls, ComCtrls, CorelButton, ImgList, - TFlatEditUnit, TFlatCheckBoxUnit; - -type - TfrmMenuMaker = class(TForm) - pnlButtons: TPanel; - cmdCancel: TCorelButton; - ilButtons: TImageList; - amButtons: TActionManager; - acPaste: TAction; - acCopy: TAction; - acCut: TAction; - acClear: TAction; - acMenu: TAction; - acGrey: TAction; - acRed: TAction; - acWhite: TAction; - acYellow: TAction; - cmdNext: TCorelButton; - nbkPages: TNotebook; - atbButtons: TActionToolBar; - rtfEditor: TRichEdit; - pnlSettings: TPanel; - chkRegisterMenuCommand: TFlatCheckBox; - chkAddComment: TFlatCheckBox; - txtKeys: TFlatEdit; - lblKeys: TLabel; - bvlSpace: TBevel; - lblSettings: TLabel; - lblName: TLabel; - txtMenuName: TFlatEdit; - txtTime: TFlatEdit; - chkUseTime: TFlatCheckBox; - chkAppendOnlyMenuText: TFlatCheckBox; - lblNote: TLabel; - lblSettingsPlayers: TLabel; - pnlSettingsPlayers: TPanel; - lblMenu: TLabel; - txtMenu: TFlatEdit; - lblHelp: TLabel; - chkAlive: TFlatCheckBox; - bvlSpace2: TBevel; - chkRegister: TFlatCheckBox; - chkComments: TFlatCheckBox; - chkImmunity: TFlatCheckBox; - procedure acCopyExecute(Sender: TObject); - procedure acCutExecute(Sender: TObject); - procedure acPasteExecute(Sender: TObject); - procedure acClearExecute(Sender: TObject); - procedure acYellowExecute(Sender: TObject); - procedure acWhiteExecute(Sender: TObject); - procedure acRedExecute(Sender: TObject); - procedure acGreyExecute(Sender: TObject); - procedure txtKeysChange(Sender: TObject); - procedure cmdCancelClick(Sender: TObject); - procedure cmdNextClick(Sender: TObject); - procedure rtfEditorKeyDown(Sender: TObject; var Key: Word; - Shift: TShiftState); - procedure rtfEditorKeyUp(Sender: TObject; var Key: Word; - Shift: TShiftState); - procedure rtfEditorMouseDown(Sender: TObject; Button: TMouseButton; - Shift: TShiftState; X, Y: Integer); - procedure rtfEditorMouseUp(Sender: TObject; Button: TMouseButton; - Shift: TShiftState; X, Y: Integer); - procedure chkUseTimeClick(Sender: TObject); - procedure txtMenuNameKeyPress(Sender: TObject; var Key: Char); - procedure chkAppendOnlyMenuTextClick(Sender: TObject); - procedure txtTimeChange(Sender: TObject); - procedure rtfEditorChange(Sender: TObject); - procedure acMenuExecute(Sender: TObject); - procedure lblHelpMouseEnter(Sender: TObject); - procedure lblHelpMouseLeave(Sender: TObject); - procedure lblHelpClick(Sender: TObject); - private - Editing: Boolean; - FDefaultMenu: Boolean; - procedure SetDefaultMenu(const Value: Boolean); - public - property DefaultMenu: Boolean read FDefaultMenu write SetDefaultMenu; - function GetColoredMenu: String; - procedure SetButton(Action: TAction); - procedure UpdateCurColor; - procedure Reset; - end; - -var - frmMenuMaker: TfrmMenuMaker; - -implementation - -uses UnitAddMenu, UnitfrmSelectMenu, UnitfrmMain, UnitHowToMakePlayerMenu; - -{$R *.DFM} - -procedure TfrmMenuMaker.acCopyExecute(Sender: TObject); -begin - rtfEditor.CopyToClipboard; -end; - -procedure TfrmMenuMaker.acCutExecute(Sender: TObject); -begin - rtfEditor.CutToClipboard; -end; - -procedure TfrmMenuMaker.acPasteExecute(Sender: TObject); -begin - rtfEditor.PasteFromClipboard; -end; - -procedure TfrmMenuMaker.acClearExecute(Sender: TObject); -begin - rtfEditor.Clear; - rtfEditor.SelAttributes.Color := clWhite; - UpdateCurColor; -end; - -procedure TfrmMenuMaker.acYellowExecute(Sender: TObject); -begin - rtfEditor.SelAttributes.Color := clYellow; - SetButton(acYellow); -end; - -procedure TfrmMenuMaker.acWhiteExecute(Sender: TObject); -begin - rtfEditor.SelAttributes.Color := clWhite; - SetButton(acWhite); -end; - -procedure TfrmMenuMaker.acRedExecute(Sender: TObject); -begin - rtfEditor.SelAttributes.Color := clRed; - SetButton(acRed); -end; - -procedure TfrmMenuMaker.acGreyExecute(Sender: TObject); -begin - rtfEditor.SelAttributes.Color := clGray; - SetButton(acGrey); -end; - -procedure TfrmMenuMaker.SetButton(Action: TAction); -begin - if Action <> acYellow then - acYellow.Checked := False; - if Action <> acWhite then - acWhite.Checked := False; - if Action <> acRed then - acRed.Checked := False; - if Action <> acGrey then - acGrey.Checked := False; - Action.Checked := True; -end; - -procedure TfrmMenuMaker.txtKeysChange(Sender: TObject); -begin - try - StrToInt(Trim((Sender As TFlatEdit).Text)); - except - if Sender = txtKeys then begin - (Sender As TFlatEdit).Text := '1'; - SysUtils.Beep; - end - else - (Sender As TFlatEdit).Text := ''; - end; -end; - -procedure TfrmMenuMaker.cmdCancelClick(Sender: TObject); -begin - if nbkPages.PageIndex = 0 then - ModalResult := mrCancel - else begin - nbkPages.PageIndex := 0; - if not DefaultMenu then begin - lblNote.Visible := True; - lblHelp.Visible := True; - end; - cmdCancel.Caption := 'Cancel'; - cmdNext.Caption := '&Next >'; - end; -end; - -procedure TfrmMenuMaker.cmdNextClick(Sender: TObject); -function IsNumeric(eChar: Char): Boolean; -begin - Result := Pos(eChar, '0123456789') <> 0; -end; -var i: integer; - eColoredMenu: String; -begin - if Editing then begin - eColoredMenu := GetColoredMenu; - frmMain.sciEditor.Lines[frmSelectMenu.eLines[frmSelectMenu.GetItemIndex]] := StringReplace(frmMain.sciEditor.Lines[frmSelectMenu.eLines[frmSelectMenu.GetItemIndex]], '"' + frmSelectMenu.eMenuStr[frmSelectMenu.GetItemIndex] + '"', '"' + eColoredMenu + '"', []); - Editing := False; - ModalResult := mrOk; - end - else if nbkPages.PageIndex = 0 then begin // Editor - if DefaultMenu then begin - txtKeys.Text := '0'; - for i := 0 to rtfEditor.Lines.Count -1 do begin - if Length(rtfEditor.Lines[i]) <> 0 then begin - if IsNumeric(rtfEditor.Lines[i][1]) then - txtKeys.Text := txtKeys.Text + rtfEditor.Lines[i][1]; - end; - end; - if Length(txtKeys.Text) <> 1 then - txtKeys.Text := Copy(txtKeys.Text, 2, Length(txtKeys.Text)); - nbkPages.PageIndex := 1; - end - else begin - if Pos('$players', LowerCase(rtfEditor.Lines.Text)) = 0 then begin - MessageBox(Handle, 'You forgot to set the players.', 'Warning', MB_ICONWARNING); - exit; - end; - - if (Pos('$next', LowerCase(rtfEditor.Lines.Text)) = 0) and (Pos('$back', LowerCase(rtfEditor.Lines.Text)) = 0) then - MessageBox(Handle, 'You should set a "Next" and a "Back" key.', 'Warning', MB_ICONWARNING) - else if Pos('$next', LowerCase(rtfEditor.Lines.Text)) = 0 then - MessageBox(Handle, 'You should set a "Next"-key.', 'Warning', MB_ICONWARNING) - else if Pos('$exitorback', LowerCase(rtfEditor.Lines.Text)) = 0 then - MessageBox(Handle, 'You should set a "Back"-key.', 'Warning', MB_ICONWARNING); - - nbkPages.PageIndex := 2; - end; - cmdCancel.Caption := '< &Back'; - cmdNext.Caption := 'Finish'; - end - else if nbkPages.PageIndex = 1 then begin // Default finish - if (txtMenuName.Text = '') and (not chkAppendOnlyMenuText.Checked) then - MessageBox(Handle, 'Invalid menu name.', 'Warning', MB_ICONWARNING) - else begin - Screen.Cursor := crHourGlass; - if AddMenu then - ModalResult := mrOk - else - MessageBox(Handle, 'Menu already exists. Please choose another name.', 'Warning', MB_ICONWARNING); - Screen.Cursor := crDefault; - end; - end - else begin // Player finish - if (txtMenu.Text = '') then - MessageBox(Handle, 'Invalid menu name.', 'Warning', MB_ICONWARNING) - else begin - if AddPlayerMenu then - ModalResult := mrOk; - Screen.Cursor := crDefault; - end; - end; - lblNote.Visible := False; - lblHelp.Visible := False; -end; - -procedure TfrmMenuMaker.UpdateCurColor; -begin - case rtfEditor.SelAttributes.Color of - clYellow: SetButton(acYellow); - clWhite: SetButton(acWhite); - clRed: SetButton(acRed); - clGray: SetButton(acGrey); - end; - atbButtons.RecreateControls; -end; - -procedure TfrmMenuMaker.rtfEditorKeyDown(Sender: TObject; var Key: Word; - Shift: TShiftState); -begin - UpdateCurColor; -end; - -procedure TfrmMenuMaker.rtfEditorKeyUp(Sender: TObject; var Key: Word; - Shift: TShiftState); -begin - UpdateCurColor; -end; - -procedure TfrmMenuMaker.rtfEditorMouseDown(Sender: TObject; - Button: TMouseButton; Shift: TShiftState; X, Y: Integer); -begin - UpdateCurColor; -end; - -procedure TfrmMenuMaker.rtfEditorMouseUp(Sender: TObject; - Button: TMouseButton; Shift: TShiftState; X, Y: Integer); -begin - UpdateCurColor; -end; - -procedure TfrmMenuMaker.chkUseTimeClick(Sender: TObject); -begin - txtTime.Enabled := chkUseTime.Checked; - if not chkUseTime.Checked then - txtTime.Text := '-1'; -end; - -procedure TfrmMenuMaker.txtMenuNameKeyPress(Sender: TObject; - var Key: Char); -begin - if Key = #32 then - Key := #0; -end; - -procedure TfrmMenuMaker.chkAppendOnlyMenuTextClick(Sender: TObject); -begin - lblKeys.Enabled := not chkAppendOnlyMenuText.Checked; - txtKeys.Enabled := not chkAppendOnlyMenuText.Checked; - chkAddComment.Enabled := not chkAppendOnlyMenuText.Checked; - chkRegisterMenuCommand.Enabled := not chkAppendOnlyMenuText.Checked; - chkUseTime.Enabled := not chkAppendOnlyMenuText.Checked; - txtTime.Enabled := not chkAppendOnlyMenuText.Checked; - lblName.Enabled := not chkAppendOnlyMenuText.Checked; - txtMenuName.Enabled := not chkAppendOnlyMenuText.Checked; -end; - -procedure TfrmMenuMaker.txtTimeChange(Sender: TObject); -begin - try - if StrToInt(txtTime.Text) < -1 then begin - txtTime.Text := '-1'; - SysUtils.Beep; - end; - except - txtTime.Text := '1000'; - SysUtils.Beep; - end; -end; - -procedure TfrmMenuMaker.rtfEditorChange(Sender: TObject); -begin - cmdNext.Enabled := rtfEditor.Text <> ''; -end; - -procedure TfrmMenuMaker.SetDefaultMenu(const Value: Boolean); -begin - FDefaultMenu := Value; - lblNote.Visible := not Value; - lblHelp.Visible := not Value; - acMenu.Enabled := Value; - Editing := False; - if Value then - Caption := 'Menu Maker' - else - Caption := 'Player Menu Maker'; -end; - -procedure TfrmMenuMaker.acMenuExecute(Sender: TObject); -var eTemp: String; -begin - if frmSelectMenu.ShowModal = mrOk then begin - atbButtons.RecreateControls; - if frmSelectMenu.GetItemIndex = -1 then - frmSelectMenu.lstMenu.Selected[0] := True; - - DefaultMenu := True; - Editing := True; - rtfEditor.Clear; - rtfEditor.SelAttributes.Color := clWhite; - eTemp := frmSelectMenu.eMenuStr[frmSelectMenu.GetItemIndex]; - if eTemp <> '' then begin - while Length(eTemp) <> 0 do begin - if eTemp[1] = '\' then begin - if Length(eTemp) <> 1 then begin - case LowerCase(eTemp[2])[1] of - 'w': rtfEditor.SelAttributes.Color := clWhite; - 'r': rtfEditor.SelAttributes.Color := clRed; - 'd': rtfEditor.SelAttributes.Color := clGray; - 'y': rtfEditor.SelAttributes.Color := clYellow; - end; - end; - Delete(eTemp, 1, 2); - end - else if Copy(eTemp, 1, 2) = '^n' then begin - rtfEditor.SelText := #13#10; - Delete(eTemp, 1, 2); - end - else begin - rtfEditor.SelText := eTemp[1]; - Delete(eTemp, 1, 1); - end; - end; - end; - cmdNext.Caption := 'Finish edit'; - end - else - atbButtons.RecreateControls; -end; - -function TfrmMenuMaker.GetColoredMenu: String; -var i: integer; - eCurColor: TColor; -begin - eCurColor := clWhite; - Result := ''; - for i := 0 to Length(rtfEditor.Lines.Text) -1 do begin - rtfEditor.SelStart := i; - if rtfEditor.SelAttributes.Color <> eCurColor then begin - eCurColor := rtfEditor.SelAttributes.Color; - case eCurColor of - clWhite : Result := Result + '\w'; - clYellow: Result := Result + '\y'; - clRed : Result := Result + '\r'; - clGray : Result := Result + '\d'; - end; - end; - Result := Result + rtfEditor.Lines.Text[i+1]; - end; - rtfEditor.SelStart := 0; - Result := StringReplace(Result, #13, '^n', [rfReplaceAll]); - Result := StringReplace(Result, #10, '', [rfReplaceAll]); -end; - -procedure TfrmMenuMaker.Reset; -begin - rtfEditor.Clear; - rtfEditor.SelAttributes.Color := clWhite; - txtKeys.Text := '1'; - txtMenu.Clear; - txtMenuName.Clear; - UpdateCurColor; -end; - -procedure TfrmMenuMaker.lblHelpMouseEnter(Sender: TObject); -begin - lblHelp.Font.Color := clBlue; - lblHelp.Font.Style := [fsUnderline]; -end; - -procedure TfrmMenuMaker.lblHelpMouseLeave(Sender: TObject); -begin - lblHelp.Font.Color := clWindowText; - lblHelp.Font.Style := []; -end; - -procedure TfrmMenuMaker.lblHelpClick(Sender: TObject); -procedure Append(eText: String); -begin - rtfEditor.SelText := eText + #13#10; - rtfEditor.SelStart := Length(rtfEditor.Lines.Text); -end; - -begin - if frmHowToMakePlayerMenu.ShowModal = mrYes then begin - rtfEditor.Clear; - rtfEditor.SelAttributes.Color := clYellow; - Append('Kick player'); - Append(''); - rtfEditor.SelAttributes.Color := clWhite; - Append('$players(1,8,%n. %v)'); - Append('$next(9,9. Next)'); - Append(''); - Append('$exitorback(0,0. Exit,0. Back)'); - end; -end; - -end. diff --git a/editor/editor2/UnitfrmOptions.dfm b/editor/editor2/UnitfrmOptions.dfm deleted file mode 100755 index d6bf99ae7e4acc87356d4799513d10f63e9fa583..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8212 zcmc&(%Woq|8E<#n-G0Q*YbMKrR{@{G9sCn*t5GrLQA>3Z1<+p zWxC6Wy_(x<5jTX8I3R@J3Wyv30T=!PB=)vKBQ6{{aAElB)em!5Qw*kVTX@)gkk`XoTa&HjR87_1K(Xr#gst0z~M@>7WS%U=b}l1JVTLZ6=Z@r*UZ4^oQx@0xgej83s__tBW1B1tHe zZy2p3;&&p97(U`ARjXYZ2iyv$HK9E(!Z_@J&NymzgBd1q7e|jmZ*2ak&P6F9O~dXV zpaCWgG9cPo;Y-utt~8B`HqurkZ&cbO7==y+5%{1c9!^1!Q)NgBOx#)39G%?|4G8wD zFT*kayuvZ{E{Z@O?!BsgfaY|{bt6(Y!&vF>5yW~EjQ#B?V>GOKr+$af7)uQORTyp^ zl%(b6OdI}sOC0k)VBmn`p#0lkequDlyWSYV5sDXy@fE?daY%hcj&VFC%q$tkvXI_K z0|m_lnbPTH;q&wmS<`q= z-x;<3W6JP=(vxa9I1$kxW!ggKhLYJ#WIClPkPC2`hEeHr5+jF=#8#z^22%^b#N7lq z83O>NU&|skOU`GIAgr^7X@?EFY?*g3kZ%~6#8z4TCnY+5R=vSkg!@vCOAUizZ|2XV)X4Iqk2M+@~HzKg=2|~pUPCD?fOQMO;vrLGU55^dw6~h>0Ih! z{X}wkfmJn4kh0<4k)`4w2vq`5jI>oxit4OM5|`6#iUa^0Ykl$8Hk~!R0o4Z~Q6>-W zmh#hFbKF?n!9xU@K~Rc+9LFOMdG3bXNdT%4%=%45CjJ#~&|`o`6#0T8h8MdthC?5# z7cKZ=9y5HJ{0@nqOnt1RHN8P+8Z#ER30ijCuD_K-#3(Y@V}^zj&qgK?+aptAl+Ph2XUi z3a7PArZ{IFfALDqv$E##0MxNAPERL?Yr(VPLA~}<^W^g@wXU4Cjz`}mIqN#`EI)hp z+(@hwPp{Oriot8VD5YyqN+047O3XqpD)OiGC*6!Xx<@geTvbg=x_@wZribocMzic5 zbj3N+2|4XWmc=BX3;rDPd!cV^Lf^O@(eoH5e67!A5z=w=x@Nq7v)<9#+S+oCLYOkV z6K5?aN4&d0o7Lp2eME)_!BADRXR_^jsTyq*WGSsOol9Pey3|5DysiC`I=saRHo4v| zp5Yh!yNAy5);&;Z`6c_C%gI~DQItqmJ?LF2-1?PKv?^&C=kEC!`aE|in@RX92Iju# z8~8lJo7D!JF%G3JV&g1K)!A8pO9ZS#qX+FVC(KNp4LSITpK1%GJ1gVDqxnCDi1Mk0 zIAF-4m(&qipXpZEypa)5zI2wTr&%Ifnm5!j{6~Aqy1Lgkb#_>WbKRrFhv7ZI6>7ez)csVeYpy1P(1u9w zFxk7D8ahl#o;gwn#)Te(@%ti?$ruIJWDR*&MM6At(-0e}@@9>5cmxgd%zVD+uqvFkt%9l!OfVAxhc_&y;j?%2BO4g`o z)>?Az?m$tdk}4TV*V+W!*KxHDamC>aSufJdAYr}rv8)IKrP8rhDXj=An$U$|c`{`X zUaG#>JX-r*=|(wQ*^19bkxv;uO=)=sKMZ0|YVn(VU2==m_7Q``ou_{0d6=SNO*%`3iRk>;-j9tL2E|qrK5B@>%9oNh**EiKb}<(&6PCBk33GXGsX&xvFJa zjF4M8i}4*<9#;8<1l3xn5MJlVbv;gb0j`V;uJW04Ei3c;Q&?Q(HV!J+n?X_HYDVIZ z1!0QgY!=hiWSzV3LWIsFHnazSeti#?RI_-D{D8_OV~tLjT=Zs9t4fRYNy0mI-R<6( zo-63PLFk@~HL)XV3-+`1J>x~$q-NwgAeU#@tW@0#o)o>ez95tUX~utP5w^i?3n8cr z@Mqc>>(eWjT}c7vVYyH9dcG*C__t|Paq2FOq?Ohm^FjF~ZDyKUD*WR-`IA^JDoqLM zdn%z^6w>_Ll$x)ix+sqME=syN5*t;`;eJtmO@E(q;oC{Q*MYGkdtN_Ks(iP|sHsU@ zKj11AhLi@h>H;$Qu&iH8@8}Zu9nJLi%|?`};F_INRx+Yg*IX0r5bteyOSpKx8Zf`p zfVo*q2w=?fFCajti96cH8?~IJGQTLX&HHaJ3R=X9Zmhg7Bu8v!bnDD#01b{Tn7)XJ zCC!MJ2fK7P4P>z`(IQ*CTUQ&!1>}9Csz;jpZsb8&Tj(_FK)xuHU41@DBHF#GHdzZD zb`9#pF(wqL$jcX`q>iSF{kw5keI+xMa490g&nF1@KD z^+OGWH_E)XvUzlfr~}=ty4622iPTOG@9Qjj2^~|Mvo=H5(FNb#sic~_*)7_Kh$1HyMmS| z&#(>~>3Db-1|=kW7B2sHA-O{~t7-BK-gW diff --git a/editor/editor2/UnitfrmOptions.pas b/editor/editor2/UnitfrmOptions.pas deleted file mode 100755 index 06226c00..00000000 --- a/editor/editor2/UnitfrmOptions.pas +++ /dev/null @@ -1,156 +0,0 @@ -unit UnitfrmOptions; - -interface - -uses - SysUtils, Windows, Messages, Classes, Graphics, Controls, - StdCtrls, ExtCtrls, Forms, ComCtrls, TFlatEditUnit, - TFlatSpeedButtonUnit, TFlatCheckBoxUnit, TFlatComboBoxUnit, FileCtrl, - TFlatTabControlUnit, TFlatRadioButtonUnit, Dialogs; - -type - TfrmSettings = class(TForm) - lblSettings: TLabel; - cmdClose: TFlatSpeedButton; - odHalfLife: TOpenDialog; - ftcPages: TFlatTabControl; - nbkPages: TNotebook; - pnlHighlighter: TPanel; - lblComments: TLabel; - lblDirectives: TLabel; - lblOperators: TLabel; - lblStrings: TLabel; - lblKeywords: TLabel; - lblActiveLine: TLabel; - cboComments: TColorBox; - cboDirectives: TColorBox; - cboOperators: TColorBox; - cboStrings: TColorBox; - cboKeywords: TColorBox; - cboActiveLine: TColorBox; - pnlGeneralSettings: TPanel; - lblAMXX: TLabel; - cmdBrowseAMXX: TFlatSpeedButton; - cmdBrowseHalfLife: TFlatSpeedButton; - lblHalfLife: TLabel; - cmdBrowseSave: TFlatSpeedButton; - lblSave: TLabel; - txtAMXXPath: TFlatEdit; - txtHalfLife: TFlatEdit; - txtSave: TFlatEdit; - pnlGeneral: TPanel; - lblFoldingStyle: TLabel; - chkAutoComplete: TFlatCheckBox; - chkHighlighting: TFlatCheckBox; - cboFoldingStyle: TFlatComboBox; - chkHints: TFlatCheckBox; - chkAutoIndent: TFlatCheckBox; - chkBrackets: TFlatCheckBox; - lblHighlighter: TLabel; - lblEditor: TLabel; - lblDirectories: TLabel; - lblCompilerSettings: TLabel; - lblFTP: TLabel; - lblMisc: TLabel; - lblView: TLabel; - pnlCharCompleter: TPanel; - chkAutoCloseBrackets: TFlatCheckBox; - chkAutoCloseQuotes: TFlatCheckBox; - pnlCompilerSettings: TPanel; - optWindow: TFlatRadioButton; - optList: TFlatRadioButton; - pnlFTP: TPanel; - lblHost: TLabel; - lblPort: TLabel; - lblUser: TLabel; - lblPassword: TLabel; - lblStandardDir: TLabel; - cmdCheckFTP: TFlatSpeedButton; - txtHost: TFlatEdit; - txtPort: TFlatEdit; - txtUser: TFlatEdit; - txtPassword: TFlatEdit; - txtStandardDir: TFlatEdit; - pnlMisc: TPanel; - chkReload: TFlatCheckBox; - chkAutoAddPlugins: TFlatCheckBox; - pnlView: TPanel; - lblCodeExplorer: TLabel; - cboCodeExplorer: TFlatComboBox; - chkStatusbar: TFlatCheckBox; - lblCharCompleter: TLabel; - procedure cmdBrowseAMXXClick(Sender: TObject); - procedure cmdBrowseHalfLifeClick(Sender: TObject); - procedure cmdBrowseSaveClick(Sender: TObject); - procedure chkAutoAddPluginsMouseUp(Sender: TObject; - Button: TMouseButton; Shift: TShiftState; X, Y: Integer); - procedure ftcPagesTabChanged(Sender: TObject); - procedure cmdCheckFTPClick(Sender: TObject); - end; - -var - frmSettings: TfrmSettings; - -implementation - -uses UnitfrmMain; - -{$R *.DFM} - -procedure TfrmSettings.cmdBrowseAMXXClick(Sender: TObject); -var eDir: String; -begin - if SelectDirectory('Please select your AMXX directory:', 'C:', eDir) then - txtAMXXPath.Text := eDir; -end; - -procedure TfrmSettings.cmdBrowseHalfLifeClick(Sender: TObject); -begin - if odHalfLife.Execute then - txtHalfLife.Text := odHalfLife.FileName; -end; - -procedure TfrmSettings.cmdBrowseSaveClick(Sender: TObject); -var eDir: String; -begin - if SelectDirectory('Please select the directory where your files shall be saved:', 'C:', eDir) then - txtSave.Text := eDir; -end; - -procedure TfrmSettings.chkAutoAddPluginsMouseUp(Sender: TObject; - Button: TMouseButton; Shift: TShiftState; X, Y: Integer); -begin - if (chkAutoAddPlugins.Checked) and (Button = mbLeft) then - MessageBox(Handle, 'Notice: This function works only with plugins which are saved in $AMXXDIR$\scripting.', 'Information', MB_ICONINFORMATION); -end; - -procedure TfrmSettings.ftcPagesTabChanged(Sender: TObject); -begin - nbkPages.PageIndex := ftcPages.ActiveTab; -end; - -procedure TfrmSettings.cmdCheckFTPClick(Sender: TObject); -begin - try - with frmMain.IdFTP do begin - Host := txtHost.Text; - Port := StrToInt(txtPort.Text); - Username := txtUser.Text; - Password := txtPassword.Text; - try - Connect; - ChangeDir(txtStandardDir.Text); - MessageBox(Handle, 'Test successfully done!', 'Information', MB_ICONINFORMATION) - except - on E: Exception do - MessageBox(Handle, PChar(E.Message), 'Error', MB_ICONWARNING); - end; - if Connected then - Disconnect; - end; - except - MessageBox(Handle, 'Invalid FTP port.', 'Warning', MB_ICONWARNING); - end; -end; - -end. diff --git a/editor/editor2/UnitfrmSaveDialog.dfm b/editor/editor2/UnitfrmSaveDialog.dfm deleted file mode 100755 index 21895fd34b480b4c02139359dcf4d12ba9bb1a54..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 881 zcmb_av5wO~5Z&00?ZinqA*5^FQgFJ4hAwep63KV5;)N3xZ0yO|y3MZT-H=?3_yG!P zN*exv-=ai^y_4j0J;clE2n z^iq0Lu#9gp?4+k2w2JYoqpEAN2HVCY=WC*YYF-Zw<}?c`AQI+{3)hXgD4M~YLCKS} z0$@QsGgSS!*Z~zWR5O<5#)obrwHN6l8z(s_!4-KKHda+ehSfx5JZo!*56IsC-*#eP z7s{^n?dvCm&>0RXkx2=VjW$x&^65HjlG8*lRMuaRW-^ik(fL4;OzS|SCRD}dsa`!# zorh{1cVRV*-WAUXU4Yn7X|(d+;fu@!%u zoV8Ex=P|kd(aZCg0ukT~ppZ(RP^yp2zvml&OPKT}_eJgZ6+(R+@&Q5LN8PA8``60N0#2GCgyvop{Q`sZFd-kD%C_+B0h@BPnfq%vZGRUtA~jQ*?Q;&KGoKs{PEkz?+(v z;-11m2Ytb)Sik%pU9konhq6jE%nbIH12Rpqj3h7(X}5^yWkS`RcXzrIc_9IK)Ov0! zDK~v?J1-k^_ESCwrKNaqTUFT{fs^vQ68Emx-F2r)Rv!RW2J!F{&)Tx)oZhu{hgdP`#5T!P#}iw7xD=qe*kOr@hSiS diff --git a/editor/editor2/UnitfrmSelectMenu.pas b/editor/editor2/UnitfrmSelectMenu.pas deleted file mode 100755 index 2dd0af6b..00000000 --- a/editor/editor2/UnitfrmSelectMenu.pas +++ /dev/null @@ -1,80 +0,0 @@ -unit UnitfrmSelectMenu; - -interface - -uses - SysUtils, Windows, Messages, Classes, Graphics, Controls, - StdCtrls, ExtCtrls, Forms, CorelButton, TFlatListBoxUnit; - -type - TfrmSelectMenu = class(TForm) - cmdOK: TCorelButton; - cmdCancel: TCorelButton; - lblSelect: TLabel; - lstMenu: TFlatListBox; - procedure FormCreate(Sender: TObject); - procedure FormDestroy(Sender: TObject); - procedure FormShow(Sender: TObject); - public - eMenuStr: TStringList; - eLines: array of Integer; - function GetItemIndex: Integer; - end; - -var - frmSelectMenu: TfrmSelectMenu; - -implementation - -uses UnitfrmMenuMaker, UnitfrmMain, UnitAddMenu, UnitFunc, UnitTextAnalyze; - -{$R *.DFM} - -procedure TfrmSelectMenu.FormCreate(Sender: TObject); -begin - eMenuStr := TStringList.Create; -end; - -procedure TfrmSelectMenu.FormDestroy(Sender: TObject); -begin - eMenuStr.Free; -end; - -procedure TfrmSelectMenu.FormShow(Sender: TObject); -var i: integer; - eTemp: String; -begin - eMenuStr.Clear; - lstMenu.Items.Clear; - SetLength(eLines, 0); - for i := 0 to frmMain.sciEditor.Lines.Count -1 do begin - if Pos('show_menu', Trim(LowerCase(frmMain.sciEditor.Lines[i]))) = 1 then begin - SetLength(eLines, eMenuStr.Count +1); - eLines[eMenuStr.Count] := i; - eTemp := frmMain.sciEditor.Lines[i]; - if CountChars(frmMain.sciEditor.Lines[i], '"') >= 4 then begin - eMenuStr.Add(Between(eTemp, '"', '"')); - while CountChars(eTemp, '"') > 2 do - Delete(eTemp, 1, 1); - lstMenu.Items.Add(Between(eTemp, '"', '"')); - end - else begin - eMenuStr.Add(Between(eTemp, '"', '"')); - lstMenu.Items.Add(Format('Unknown Menu on line %s', [IntToStr(i)])); - end; - end; - end; - cmdOK.Enabled := lstMenu.Items.Count <> 0; -end; - -function TfrmSelectMenu.GetItemIndex: Integer; -var i: integer; -begin - Result := -1; - for i := 0 to lstMenu.Items.Count -1 do begin - if lstMenu.Selected[i] then - Result := i; - end; -end; - -end. diff --git a/editor/editor2/UnitfrmSockets.dfm b/editor/editor2/UnitfrmSockets.dfm deleted file mode 100755 index dcf0ee77..00000000 --- a/editor/editor2/UnitfrmSockets.dfm +++ /dev/null @@ -1,191 +0,0 @@ -object frmSocketTerminal: TfrmSocketTerminal - Left = 192 - Top = 110 - ActiveControl = rtfEnter - BorderStyle = bsDialog - Caption = 'Socket Terminal' - ClientHeight = 230 - ClientWidth = 324 - Color = clBtnFace - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'Tahoma' - Font.Style = [] - FormStyle = fsStayOnTop - OldCreateOrder = False - Position = poMainFormCenter - OnClose = FormClose - PixelsPerInch = 96 - TextHeight = 13 - object pnlSettings: TPanel - Left = 0 - Top = 141 - Width = 324 - Height = 89 - Align = alBottom - BevelOuter = bvNone - TabOrder = 2 - object lblStatusCaption: TLabel - Left = 2 - Top = 72 - Width = 35 - Height = 13 - Caption = 'Status:' - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'Tahoma' - Font.Style = [] - ParentFont = False - end - object lblStatus: TLabel - Left = 40 - Top = 72 - Width = 69 - Height = 13 - Caption = 'not connected' - Font.Charset = DEFAULT_CHARSET - Font.Color = clRed - Font.Height = -11 - Font.Name = 'Tahoma' - Font.Style = [] - ParentFont = False - end - object lblSettings: TLabel - Left = 4 - Top = 6 - Width = 43 - Height = 13 - Caption = 'Settings:' - end - object pnlSettings2: TPanel - Left = 4 - Top = 24 - Width = 311 - Height = 41 - BevelOuter = bvLowered - TabOrder = 0 - object lblHost: TLabel - Left = 4 - Top = 3 - Width = 26 - Height = 13 - Caption = 'Host:' - end - object lblPort: TLabel - Left = 130 - Top = 3 - Width = 24 - Height = 13 - Caption = 'Port:' - end - object txtHost: TFlatEdit - Left = 4 - Top = 17 - Width = 121 - Height = 19 - ColorFlat = clBtnFace - ParentColor = True - TabOrder = 0 - end - object txtPort: TFlatEdit - Left = 130 - Top = 17 - Width = 39 - Height = 19 - ColorFlat = clBtnFace - ParentColor = True - TabOrder = 1 - Text = '1' - OnChange = txtPortChange - end - object optUDP: TFlatRadioButton - Left = 176 - Top = 20 - Width = 39 - Height = 17 - Caption = 'UDP' - TabOrder = 3 - OnClick = optTCPClick - end - object optTCP: TFlatRadioButton - Left = 176 - Top = 4 - Width = 35 - Height = 15 - Caption = 'TCP' - Checked = True - TabOrder = 2 - TabStop = True - OnClick = optTCPClick - end - object cmdConnect: TFlatButton - Left = 224 - Top = 10 - Width = 77 - Height = 21 - ColorHighLight = 8623776 - ColorShadow = 8623776 - Caption = 'Connect' - TabOrder = 4 - OnClick = cmdConnectClick - end - end - end - object rtfEnter: TRichEdit - Left = 0 - Top = 121 - Width = 324 - Height = 20 - Align = alBottom - TabOrder = 1 - WantReturns = False - OnKeyPress = rtfEnterKeyPress - end - object rtfReceived: TRichEdit - Left = 0 - Top = 0 - Width = 324 - Height = 121 - Align = alClient - ScrollBars = ssVertical - TabOrder = 0 - end - object IdTCPClient: TIdTCPClient - MaxLineAction = maSplit - OnDisconnected = IdTCPClientDisconnected - OnConnected = IdTCPClientConnected - Port = 0 - Left = 4 - Top = 4 - end - object IdUDPClient: TIdUDPClient - OnStatus = IdUDPClientStatus - Port = 0 - Left = 4 - Top = 34 - end - object alCopyPaste: TActionList - Left = 4 - Top = 64 - object acCopy: TAction - Caption = 'Copy' - ShortCut = 16451 - OnExecute = acCopyExecute - end - object acPaste: TAction - Caption = 'Paste' - ShortCut = 16470 - OnExecute = acPasteExecute - end - object acUndo: TAction - Caption = 'Undo' - OnExecute = acUndoExecute - end - object acSelectAll: TAction - Caption = 'Select all' - OnExecute = acSelectAllExecute - end - end -end diff --git a/editor/editor2/UnitfrmSockets.pas b/editor/editor2/UnitfrmSockets.pas deleted file mode 100755 index 29f137e6..00000000 --- a/editor/editor2/UnitfrmSockets.pas +++ /dev/null @@ -1,259 +0,0 @@ -unit UnitfrmSockets; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, ExtCtrls, StdCtrls, ComCtrls, TFlatEditUnit, - TFlatRadioButtonUnit, TFlatButtonUnit, IdUDPBase, IdUDPClient, - IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, UnitReadThread, - ActnList; - -type - TfrmSocketTerminal = class(TForm) - pnlSettings: TPanel; - rtfEnter: TRichEdit; - rtfReceived: TRichEdit; - lblStatusCaption: TLabel; - lblStatus: TLabel; - lblSettings: TLabel; - pnlSettings2: TPanel; - lblHost: TLabel; - txtHost: TFlatEdit; - txtPort: TFlatEdit; - lblPort: TLabel; - optUDP: TFlatRadioButton; - optTCP: TFlatRadioButton; - cmdConnect: TFlatButton; - IdTCPClient: TIdTCPClient; - IdUDPClient: TIdUDPClient; - alCopyPaste: TActionList; - acCopy: TAction; - acPaste: TAction; - acUndo: TAction; - acSelectAll: TAction; - procedure txtPortChange(Sender: TObject); - procedure cmdConnectClick(Sender: TObject); - procedure optTCPClick(Sender: TObject); - procedure IdTCPClientConnected(Sender: TObject); - procedure IdTCPClientDisconnected(Sender: TObject); - procedure FormClose(Sender: TObject; var Action: TCloseAction); - procedure rtfEnterKeyPress(Sender: TObject; var Key: Char); - procedure IdUDPClientStatus(ASender: TObject; const AStatus: TIdStatus; - const AStatusText: String); - procedure acCopyExecute(Sender: TObject); - procedure acPasteExecute(Sender: TObject); - procedure acUndoExecute(Sender: TObject); - procedure acSelectAllExecute(Sender: TObject); - private - ReadThread: TReadThread; - public - procedure Append(eText: String; eColor: TColor = clBlack); - procedure SetStatus(eStatus: String; eColor: TColor); - procedure OnRead(eRead: String); - procedure EnableControls(eValue: Boolean); - end; - -var - frmSocketTerminal: TfrmSocketTerminal; - -implementation - -{$R *.dfm} - -procedure TfrmSocketTerminal.Append(eText: String; eColor: TColor); -begin - eText := Format('[%s] %s', [TimeToStr(Time), eText]); - rtfReceived.SelStart := Length(rtfReceived.Lines.Text); - rtfReceived.SelAttributes.Color := eColor; - rtfReceived.SelText := eText + #13#10; - rtfReceived.Perform(WM_VSCROLL, SB_BOTTOM, 0); -end; - -procedure TfrmSocketTerminal.OnRead(eRead: String); -begin - Append(eRead, clWindowText); -end; - -procedure TfrmSocketTerminal.SetStatus(eStatus: String; eColor: TColor); -begin - lblStatus.Caption := eStatus; - lblStatus.Font.Color := eColor; -end; - -procedure TfrmSocketTerminal.txtPortChange(Sender: TObject); -begin - try - StrToInt(txtPort.Text); - except - txtPort.Text := '1'; - end; -end; - -procedure TfrmSocketTerminal.cmdConnectClick(Sender: TObject); -begin - if Tag = 0 then begin - if optTCP.Checked then begin - IdTCPClient.Host := txtHost.Text; - IdTCPClient.Port := StrToInt(txtPort.Text); - EnableControls(False); - Append('Connecting to ' + txtHost.Text + ':' + txtPort.Text + '...', clHighlight); - try - IdTCPClient.Connect; - ReadThread := TReadThread.Create(True); - ReadThread.ReadTCP := True; - ReadThread.Resume; - except - on E: Exception do begin - MessageBox(Handle, PChar('Couldn''t connect to server:' + #13 + E.Message), 'Warning', MB_ICONWARNING); - EnableControls(True); - end; - end; - end - else begin - IdUDPClient.Host := txtHost.Text; - IdUDPClient.Port := StrToInt(txtPort.Text); - EnableControls(False); - try - IdUDPClient.Active := True; - ReadThread := TReadThread.Create(True); - ReadThread.ReadTCP := False; - ReadThread.Resume; - SetStatus('socket active', clGreen); - Append('Opened socket to ' + txtHost.Text + ':' + txtPort.Text + '!', clGreen); - except - on E: Exception do begin - MessageBox(Handle, PChar('Couldn''t activate socket:' + #13 + E.Message), 'Warning', MB_ICONWARNING); - EnableControls(True); - end; - end; - end; - end - else begin - if optTCP.Checked then begin - Screen.Cursor := crHourGlass; - IdTCPClient.Disconnect; - ReadThread.Terminate; - while Tag <> 0 do begin - Sleep(5); - Application.ProcessMessages; - end; - Screen.Cursor := crDefault; - end - else begin - Screen.Cursor := crHourGlass; - IdUDPClient.Active := False; - ReadThread.Terminate; - EnableControls(True); - SetStatus('socket inactive', clRed); - Append('Closed socket to ' + txtHost.Text + ':' + txtPort.Text + '!', clRed); - Screen.Cursor := crDefault; - end; - end; -end; - -procedure TfrmSocketTerminal.optTCPClick(Sender: TObject); -begin - if optTCP.Checked then begin - if not IdTCPClient.Connected then - SetStatus('not connected', clRed); - end - else begin - if not IdUDPClient.Active then - SetStatus('socket inactive', clRed); - end; -end; - -procedure TfrmSocketTerminal.EnableControls(eValue: Boolean); -begin - txtHost.Enabled := eValue; - txtPort.Enabled := eValue; - lblHost.Enabled := eValue; - lblPort.Enabled := eValue; - optTCP.Enabled := eValue; - optUDP.Enabled := eValue; - if eValue then begin - cmdConnect.Caption := 'Connect'; - Tag := 0; - end - else begin - cmdConnect.Caption := 'Disconnect'; - Tag := 1; - end; -end; - -procedure TfrmSocketTerminal.IdTCPClientConnected(Sender: TObject); -begin - Append('Established connection to ' + txtHost.Text + ':' + txtPort.Text, clGreen); - SetStatus('connected', clGreen); -end; - -procedure TfrmSocketTerminal.IdTCPClientDisconnected(Sender: TObject); -begin - Append('Disconnected from ' + txtHost.Text + ':' + txtPort.Text, clMaroon); - EnableControls(True); - SetStatus('not connected', clRed); -end; - -procedure TfrmSocketTerminal.FormClose(Sender: TObject; - var Action: TCloseAction); -begin - if Tag = 1 then - cmdConnect.Click; -end; - -procedure TfrmSocketTerminal.rtfEnterKeyPress(Sender: TObject; - var Key: Char); -begin - if Tag = 1 then begin - if (Key = #13) and (rtfEnter.Text <> '') then begin - if IdTCPClient.Connected then - IdTCPClient.WriteLn(rtfEnter.Text) - else - IdUDPClient.Send(rtfEnter.Text); - Append(rtfEnter.Text, clNavy); - rtfEnter.Clear; - Key := #0; - end; - end; -end; - -procedure TfrmSocketTerminal.IdUDPClientStatus(ASender: TObject; - const AStatus: TIdStatus; const AStatusText: String); -begin - Append(AStatusText, clGray); -end; - -procedure TfrmSocketTerminal.acCopyExecute(Sender: TObject); -begin - if (ActiveControl is TRichEdit) then - TRichEdit(ActiveControl).CopyToClipboard; - if (ActiveControl is TFlatEdit) then - TFlatEdit(ActiveControl).CopyToClipboard; -end; - -procedure TfrmSocketTerminal.acPasteExecute(Sender: TObject); -begin - if (ActiveControl is TRichEdit) then - TRichEdit(ActiveControl).PasteFromClipboard; - if (ActiveControl is TFlatEdit) then - TFlatEdit(ActiveControl).PasteFromClipboard; -end; - -procedure TfrmSocketTerminal.acUndoExecute(Sender: TObject); -begin - if (ActiveControl is TRichEdit) then - TRichEdit(ActiveControl).Undo; - if (ActiveControl is TFlatEdit) then - TFlatEdit(ActiveControl).Undo; -end; - -procedure TfrmSocketTerminal.acSelectAllExecute(Sender: TObject); -begin - if (ActiveControl is TRichEdit) then - TRichEdit(ActiveControl).SelectAll; - if (ActiveControl is TFlatEdit) then - TFlatEdit(ActiveControl).SelectAll; -end; - -end. diff --git a/editor/editor2/White.ico b/editor/editor2/White.ico deleted file mode 100755 index 286ba24e3d82366b3930925d3e15769442029291..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2238 zcmZQzU<5)11qL9=!LWjZfkBLcfk6X^fkF%pKnxNGfd&>Zg+cuP|DS;Ygh#<>2#kin VhzbG5Q7{?;qaiS2Ltvl_I{?^B3nBmj diff --git a/editor/editor2/Yellow.ico b/editor/editor2/Yellow.ico deleted file mode 100755 index f81cb4a501dda8a949b93be9989c4c9fce4bc384..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2238 zcmZQzU<5)11qL9=!LWjZfkBLcfk6X^fkF%pKnxNGfd&>Zg+cuP|DS;Ygh#<>2#kin VhzbFwQ7{?;qaiS2Ltvl_I{@0^4 - Copyright (C) - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -Also add information on how to contact you by electronic and paper mail. -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - , 1 April 1989 - Ty Coon, President of Vice -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Library General -Public License instead of this License.

h^quS1%U_@}lrAnvZvY!{ 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