amxmodx/modules/fakemeta/fakemeta_amxx.cpp

300 lines
7.2 KiB
C++
Raw Normal View History

// vim: set ts=4 sw=4 tw=99 noet:
//
// AMX Mod X, based on AMX Mod by Aleksander Naszko ("OLO").
// Copyright (C) The AMX Mod X Development Team.
//
// This software is licensed under the GNU General Public License, version 3 or higher.
// Additional exceptions apply. For full license details, see LICENSE.txt or visit:
// https://alliedmods.net/amxmodx-license
//
// Fakemeta Module
//
2004-07-28 03:14:07 +00:00
#include "fakemeta_amxx.h"
2007-05-02 23:11:49 +00:00
#include "sh_stack.h"
Add basic ReHLDS and ReGameDLL support (#417) * Add ReHLDS API files and its dependencies Note: This has been stolen from ReAPI AMXX module and modified/adjusted to match AMXX existing includes and to provide as less dependencies as possible as well * Add the necessary files to get ReHLDS interface * Split SV_DropClient into pre/post code * Init ReHLDS API and add SV_DropClient hook * Add Cvar_DirectSet hook and adjust code with helpers Note: we don't need to split code here. This is pretty much the naive and straight way, but fairly enough for our case. If it happens we got a lot more hooks, we may consider to use some class to manage better the things. * Move platform and interface stuff in their own files in public directory * Make sure to init cvar stuff after ReHLDS * Add ReGameDLL API files and its dependencies in cstrike module * Init ReHLDS in cstrike module and adjust code Note: About cs_uset_set_model(). ReHLDS API doesn't offer a way to know directly the precached models, so instead of looping through all the ressources, the models list is saved one time at map change into a hashmap. * Init ReGameDLL and adjust code * Fix linux compilation * Init ReGameDLL in fakemeta module and adjust code * Rename /reapi directory to /resdk to avoid confusion * Retrieve gamerules pointer through InstallGameRules in fakemeta module * Retrieve gamerules pointer through InstallGameRules in cstrike module Note: actually gamerules is not used if regamedll is enabled, but it could be used in future natives. * Fix a typo when ReGameDLL is not enabled * Fix missing interface check for ReHLDS. I'm pretty sure I was checking at the very first since I worked first on vanilla version of engine, looks like change has been lost.
2017-03-09 18:59:38 +00:00
#include <resdk/mod_regamedll_api.h>
2004-07-28 03:14:07 +00:00
IGameConfig *CommonConfig;
2015-10-09 09:01:12 +00:00
IGameConfig *GamerulesConfig;
IGameConfigManager *ConfigManager;
Add basic ReHLDS and ReGameDLL support (#417) * Add ReHLDS API files and its dependencies Note: This has been stolen from ReAPI AMXX module and modified/adjusted to match AMXX existing includes and to provide as less dependencies as possible as well * Add the necessary files to get ReHLDS interface * Split SV_DropClient into pre/post code * Init ReHLDS API and add SV_DropClient hook * Add Cvar_DirectSet hook and adjust code with helpers Note: we don't need to split code here. This is pretty much the naive and straight way, but fairly enough for our case. If it happens we got a lot more hooks, we may consider to use some class to manage better the things. * Move platform and interface stuff in their own files in public directory * Make sure to init cvar stuff after ReHLDS * Add ReGameDLL API files and its dependencies in cstrike module * Init ReHLDS in cstrike module and adjust code Note: About cs_uset_set_model(). ReHLDS API doesn't offer a way to know directly the precached models, so instead of looping through all the ressources, the models list is saved one time at map change into a hashmap. * Init ReGameDLL and adjust code * Fix linux compilation * Init ReGameDLL in fakemeta module and adjust code * Rename /reapi directory to /resdk to avoid confusion * Retrieve gamerules pointer through InstallGameRules in fakemeta module * Retrieve gamerules pointer through InstallGameRules in cstrike module Note: actually gamerules is not used if regamedll is enabled, but it could be used in future natives. * Fix a typo when ReGameDLL is not enabled * Fix missing interface check for ReHLDS. I'm pretty sure I was checking at the very first since I worked first on vanilla version of engine, looks like change has been lost.
2017-03-09 18:59:38 +00:00
bool HasRegameDll;
HLTypeConversion TypeConversion;
Add basic ReHLDS and ReGameDLL support (#417) * Add ReHLDS API files and its dependencies Note: This has been stolen from ReAPI AMXX module and modified/adjusted to match AMXX existing includes and to provide as less dependencies as possible as well * Add the necessary files to get ReHLDS interface * Split SV_DropClient into pre/post code * Init ReHLDS API and add SV_DropClient hook * Add Cvar_DirectSet hook and adjust code with helpers Note: we don't need to split code here. This is pretty much the naive and straight way, but fairly enough for our case. If it happens we got a lot more hooks, we may consider to use some class to manage better the things. * Move platform and interface stuff in their own files in public directory * Make sure to init cvar stuff after ReHLDS * Add ReGameDLL API files and its dependencies in cstrike module * Init ReHLDS in cstrike module and adjust code Note: About cs_uset_set_model(). ReHLDS API doesn't offer a way to know directly the precached models, so instead of looping through all the ressources, the models list is saved one time at map change into a hashmap. * Init ReGameDLL and adjust code * Fix linux compilation * Init ReGameDLL in fakemeta module and adjust code * Rename /reapi directory to /resdk to avoid confusion * Retrieve gamerules pointer through InstallGameRules in fakemeta module * Retrieve gamerules pointer through InstallGameRules in cstrike module Note: actually gamerules is not used if regamedll is enabled, but it could be used in future natives. * Fix a typo when ReGameDLL is not enabled * Fix missing interface check for ReHLDS. I'm pretty sure I was checking at the very first since I worked first on vanilla version of engine, looks like change has been lost.
2017-03-09 18:59:38 +00:00
void *GameRulesRH;
2015-11-09 22:33:25 +00:00
void **GameRulesAddress;
Add basic ReHLDS and ReGameDLL support (#417) * Add ReHLDS API files and its dependencies Note: This has been stolen from ReAPI AMXX module and modified/adjusted to match AMXX existing includes and to provide as less dependencies as possible as well * Add the necessary files to get ReHLDS interface * Split SV_DropClient into pre/post code * Init ReHLDS API and add SV_DropClient hook * Add Cvar_DirectSet hook and adjust code with helpers Note: we don't need to split code here. This is pretty much the naive and straight way, but fairly enough for our case. If it happens we got a lot more hooks, we may consider to use some class to manage better the things. * Move platform and interface stuff in their own files in public directory * Make sure to init cvar stuff after ReHLDS * Add ReGameDLL API files and its dependencies in cstrike module * Init ReHLDS in cstrike module and adjust code Note: About cs_uset_set_model(). ReHLDS API doesn't offer a way to know directly the precached models, so instead of looping through all the ressources, the models list is saved one time at map change into a hashmap. * Init ReGameDLL and adjust code * Fix linux compilation * Init ReGameDLL in fakemeta module and adjust code * Rename /reapi directory to /resdk to avoid confusion * Retrieve gamerules pointer through InstallGameRules in fakemeta module * Retrieve gamerules pointer through InstallGameRules in cstrike module Note: actually gamerules is not used if regamedll is enabled, but it could be used in future natives. * Fix a typo when ReGameDLL is not enabled * Fix missing interface check for ReHLDS. I'm pretty sure I was checking at the very first since I worked first on vanilla version of engine, looks like change has been lost.
2017-03-09 18:59:38 +00:00
CGameRules* InstallGameRules(IReGameHook_InstallGameRules *chain)
{
GameRulesRH = chain->callNext();
return static_cast<CGameRules*>(GameRulesRH);
}
2004-07-28 03:14:07 +00:00
void OnAmxxAttach()
{
2006-03-04 06:34:28 +00:00
initialze_offsets();
2006-03-14 16:55:06 +00:00
initialize_glb_offsets();
2015-11-09 22:33:25 +00:00
2004-07-28 03:14:07 +00:00
MF_AddNatives(engfunc_natives);
MF_AddNatives(dllfunc_natives);
2005-07-19 16:08:00 +00:00
MF_AddNatives(pev_natives);
MF_AddNatives(forward_natives);
2004-08-11 05:06:27 +00:00
MF_AddNatives(pdata_natives);
2004-09-14 23:39:22 +00:00
MF_AddNatives(tr_Natives);
2006-03-14 16:55:06 +00:00
MF_AddNatives(glb_natives);
2006-03-20 18:08:51 +00:00
MF_AddNatives(ext2_natives);
MF_AddNatives(misc_natives);
2015-11-09 22:33:25 +00:00
MF_AddNatives(pdata_entities_natives);
MF_AddNatives(pdata_gamerules_natives);
g_kvd_glb.kvd.szClassName = const_cast<char *>(g_kvd_glb.cls.chars());
g_kvd_glb.kvd.szKeyName = const_cast<char *>(g_kvd_glb.key.chars());
g_kvd_glb.kvd.szValue = const_cast<char *>(g_kvd_glb.val.chars());
g_kvd_glb.kvd.fHandled = 0;
ConfigManager = MF_GetConfigManager();
2015-10-09 09:01:12 +00:00
char error[256] = "";
if (!ConfigManager->LoadGameConfigFile("common.games", &CommonConfig, error, sizeof(error)) && error[0] != '\0')
{
2015-10-09 09:01:12 +00:00
MF_Log("get/set_ent_data* natives have been disabled because common.games gamedata could not be read: %s", error);
return;
}
*error = '\0';
if (!ConfigManager->LoadGameConfigFile("common.games/gamerules.games", &GamerulesConfig, error, sizeof(error)) && error[0] != '\0')
{
MF_Log("get/set_gamerules_* natives have been disabled because common.games/gamerules.games gamedata could not be read: %s", error);
return;
}
Add basic ReHLDS and ReGameDLL support (#417) * Add ReHLDS API files and its dependencies Note: This has been stolen from ReAPI AMXX module and modified/adjusted to match AMXX existing includes and to provide as less dependencies as possible as well * Add the necessary files to get ReHLDS interface * Split SV_DropClient into pre/post code * Init ReHLDS API and add SV_DropClient hook * Add Cvar_DirectSet hook and adjust code with helpers Note: we don't need to split code here. This is pretty much the naive and straight way, but fairly enough for our case. If it happens we got a lot more hooks, we may consider to use some class to manage better the things. * Move platform and interface stuff in their own files in public directory * Make sure to init cvar stuff after ReHLDS * Add ReGameDLL API files and its dependencies in cstrike module * Init ReHLDS in cstrike module and adjust code Note: About cs_uset_set_model(). ReHLDS API doesn't offer a way to know directly the precached models, so instead of looping through all the ressources, the models list is saved one time at map change into a hashmap. * Init ReGameDLL and adjust code * Fix linux compilation * Init ReGameDLL in fakemeta module and adjust code * Rename /reapi directory to /resdk to avoid confusion * Retrieve gamerules pointer through InstallGameRules in fakemeta module * Retrieve gamerules pointer through InstallGameRules in cstrike module Note: actually gamerules is not used if regamedll is enabled, but it could be used in future natives. * Fix a typo when ReGameDLL is not enabled * Fix missing interface check for ReHLDS. I'm pretty sure I was checking at the very first since I worked first on vanilla version of engine, looks like change has been lost.
2017-03-09 18:59:38 +00:00
if ((HasRegameDll = RegamedllApi_Init()))
2015-10-09 09:01:12 +00:00
{
Add basic ReHLDS and ReGameDLL support (#417) * Add ReHLDS API files and its dependencies Note: This has been stolen from ReAPI AMXX module and modified/adjusted to match AMXX existing includes and to provide as less dependencies as possible as well * Add the necessary files to get ReHLDS interface * Split SV_DropClient into pre/post code * Init ReHLDS API and add SV_DropClient hook * Add Cvar_DirectSet hook and adjust code with helpers Note: we don't need to split code here. This is pretty much the naive and straight way, but fairly enough for our case. If it happens we got a lot more hooks, we may consider to use some class to manage better the things. * Move platform and interface stuff in their own files in public directory * Make sure to init cvar stuff after ReHLDS * Add ReGameDLL API files and its dependencies in cstrike module * Init ReHLDS in cstrike module and adjust code Note: About cs_uset_set_model(). ReHLDS API doesn't offer a way to know directly the precached models, so instead of looping through all the ressources, the models list is saved one time at map change into a hashmap. * Init ReGameDLL and adjust code * Fix linux compilation * Init ReGameDLL in fakemeta module and adjust code * Rename /reapi directory to /resdk to avoid confusion * Retrieve gamerules pointer through InstallGameRules in fakemeta module * Retrieve gamerules pointer through InstallGameRules in cstrike module Note: actually gamerules is not used if regamedll is enabled, but it could be used in future natives. * Fix a typo when ReGameDLL is not enabled * Fix missing interface check for ReHLDS. I'm pretty sure I was checking at the very first since I worked first on vanilla version of engine, looks like change has been lost.
2017-03-09 18:59:38 +00:00
ReGameHookchains->InstallGameRules()->registerHook(InstallGameRules);
}
Add basic ReHLDS and ReGameDLL support (#417) * Add ReHLDS API files and its dependencies Note: This has been stolen from ReAPI AMXX module and modified/adjusted to match AMXX existing includes and to provide as less dependencies as possible as well * Add the necessary files to get ReHLDS interface * Split SV_DropClient into pre/post code * Init ReHLDS API and add SV_DropClient hook * Add Cvar_DirectSet hook and adjust code with helpers Note: we don't need to split code here. This is pretty much the naive and straight way, but fairly enough for our case. If it happens we got a lot more hooks, we may consider to use some class to manage better the things. * Move platform and interface stuff in their own files in public directory * Make sure to init cvar stuff after ReHLDS * Add ReGameDLL API files and its dependencies in cstrike module * Init ReHLDS in cstrike module and adjust code Note: About cs_uset_set_model(). ReHLDS API doesn't offer a way to know directly the precached models, so instead of looping through all the ressources, the models list is saved one time at map change into a hashmap. * Init ReGameDLL and adjust code * Fix linux compilation * Init ReGameDLL in fakemeta module and adjust code * Rename /reapi directory to /resdk to avoid confusion * Retrieve gamerules pointer through InstallGameRules in fakemeta module * Retrieve gamerules pointer through InstallGameRules in cstrike module Note: actually gamerules is not used if regamedll is enabled, but it could be used in future natives. * Fix a typo when ReGameDLL is not enabled * Fix missing interface check for ReHLDS. I'm pretty sure I was checking at the very first since I worked first on vanilla version of engine, looks like change has been lost.
2017-03-09 18:59:38 +00:00
else
{
void *address = nullptr;
if (!CommonConfig->GetAddress("g_pGameRules", &address) || !address)
{
MF_Log("get/set_gamerules_* natives have been disabled because g_pGameRules address could not be found. ");
return;
}
2015-11-09 22:33:25 +00:00
#if defined(KE_WINDOWS)
Add basic ReHLDS and ReGameDLL support (#417) * Add ReHLDS API files and its dependencies Note: This has been stolen from ReAPI AMXX module and modified/adjusted to match AMXX existing includes and to provide as less dependencies as possible as well * Add the necessary files to get ReHLDS interface * Split SV_DropClient into pre/post code * Init ReHLDS API and add SV_DropClient hook * Add Cvar_DirectSet hook and adjust code with helpers Note: we don't need to split code here. This is pretty much the naive and straight way, but fairly enough for our case. If it happens we got a lot more hooks, we may consider to use some class to manage better the things. * Move platform and interface stuff in their own files in public directory * Make sure to init cvar stuff after ReHLDS * Add ReGameDLL API files and its dependencies in cstrike module * Init ReHLDS in cstrike module and adjust code Note: About cs_uset_set_model(). ReHLDS API doesn't offer a way to know directly the precached models, so instead of looping through all the ressources, the models list is saved one time at map change into a hashmap. * Init ReGameDLL and adjust code * Fix linux compilation * Init ReGameDLL in fakemeta module and adjust code * Rename /reapi directory to /resdk to avoid confusion * Retrieve gamerules pointer through InstallGameRules in fakemeta module * Retrieve gamerules pointer through InstallGameRules in cstrike module Note: actually gamerules is not used if regamedll is enabled, but it could be used in future natives. * Fix a typo when ReGameDLL is not enabled * Fix missing interface check for ReHLDS. I'm pretty sure I was checking at the very first since I worked first on vanilla version of engine, looks like change has been lost.
2017-03-09 18:59:38 +00:00
GameRulesAddress = *reinterpret_cast<void***>(address);
2015-11-09 22:33:25 +00:00
#else
Add basic ReHLDS and ReGameDLL support (#417) * Add ReHLDS API files and its dependencies Note: This has been stolen from ReAPI AMXX module and modified/adjusted to match AMXX existing includes and to provide as less dependencies as possible as well * Add the necessary files to get ReHLDS interface * Split SV_DropClient into pre/post code * Init ReHLDS API and add SV_DropClient hook * Add Cvar_DirectSet hook and adjust code with helpers Note: we don't need to split code here. This is pretty much the naive and straight way, but fairly enough for our case. If it happens we got a lot more hooks, we may consider to use some class to manage better the things. * Move platform and interface stuff in their own files in public directory * Make sure to init cvar stuff after ReHLDS * Add ReGameDLL API files and its dependencies in cstrike module * Init ReHLDS in cstrike module and adjust code Note: About cs_uset_set_model(). ReHLDS API doesn't offer a way to know directly the precached models, so instead of looping through all the ressources, the models list is saved one time at map change into a hashmap. * Init ReGameDLL and adjust code * Fix linux compilation * Init ReGameDLL in fakemeta module and adjust code * Rename /reapi directory to /resdk to avoid confusion * Retrieve gamerules pointer through InstallGameRules in fakemeta module * Retrieve gamerules pointer through InstallGameRules in cstrike module Note: actually gamerules is not used if regamedll is enabled, but it could be used in future natives. * Fix a typo when ReGameDLL is not enabled * Fix missing interface check for ReHLDS. I'm pretty sure I was checking at the very first since I worked first on vanilla version of engine, looks like change has been lost.
2017-03-09 18:59:38 +00:00
GameRulesAddress = reinterpret_cast<void**>(address);
2015-11-09 22:33:25 +00:00
#endif
Add basic ReHLDS and ReGameDLL support (#417) * Add ReHLDS API files and its dependencies Note: This has been stolen from ReAPI AMXX module and modified/adjusted to match AMXX existing includes and to provide as less dependencies as possible as well * Add the necessary files to get ReHLDS interface * Split SV_DropClient into pre/post code * Init ReHLDS API and add SV_DropClient hook * Add Cvar_DirectSet hook and adjust code with helpers Note: we don't need to split code here. This is pretty much the naive and straight way, but fairly enough for our case. If it happens we got a lot more hooks, we may consider to use some class to manage better the things. * Move platform and interface stuff in their own files in public directory * Make sure to init cvar stuff after ReHLDS * Add ReGameDLL API files and its dependencies in cstrike module * Init ReHLDS in cstrike module and adjust code Note: About cs_uset_set_model(). ReHLDS API doesn't offer a way to know directly the precached models, so instead of looping through all the ressources, the models list is saved one time at map change into a hashmap. * Init ReGameDLL and adjust code * Fix linux compilation * Init ReGameDLL in fakemeta module and adjust code * Rename /reapi directory to /resdk to avoid confusion * Retrieve gamerules pointer through InstallGameRules in fakemeta module * Retrieve gamerules pointer through InstallGameRules in cstrike module Note: actually gamerules is not used if regamedll is enabled, but it could be used in future natives. * Fix a typo when ReGameDLL is not enabled * Fix missing interface check for ReHLDS. I'm pretty sure I was checking at the very first since I worked first on vanilla version of engine, looks like change has been lost.
2017-03-09 18:59:38 +00:00
}
}
void OnPluginsLoaded()
{
TypeConversion.init();
}
2006-03-20 18:08:51 +00:00
2007-05-02 23:11:49 +00:00
extern CStack<TraceResult *> g_FreeTRs;
extern ke::Vector<KVD_Wrapper *> g_KVDWs;
extern ke::Vector<KVD_Wrapper *> g_FreeKVDWs;
2007-05-02 23:11:49 +00:00
void OnAmxxDetach()
{
2015-10-09 09:01:12 +00:00
ConfigManager->CloseGameConfigFile(CommonConfig);
ConfigManager->CloseGameConfigFile(GamerulesConfig);
2007-05-02 23:11:49 +00:00
while (!g_FreeTRs.empty())
{
delete g_FreeTRs.front();
g_FreeTRs.pop();
}
while (!g_KVDWs.empty())
delete g_KVDWs.popCopy();
while (!g_FreeKVDWs.empty())
delete g_FreeKVDWs.popCopy();
2007-05-02 23:11:49 +00:00
}
void ServerActivate(edict_t *pEdictList, int edictCount, int clientMax)
{
g_pFunctionTable_Post->pfnServerDeactivate = FMH_ServerDeactivate_Post;
RETURN_META(MRES_IGNORED);
}
#define RESETD(tcall) \
g_pFunctionTable->pfn##tcall =0; \
g_pFunctionTable_Post->pfn##tcall =NULL; \
2004-08-22 17:56:58 +00:00
Engine[FM_##tcall].clear(); \
2007-01-28 05:01:38 +00:00
EnginePost[FM_##tcall].clear(); \
EngineAddrs[FM_##tcall] = NULL; \
EngineAddrsPost[FM_##tcall] = NULL;
#define RESETE(call) \
g_pengfuncsTable->pfn##call = NULL; \
g_pengfuncsTable_Post->pfn##call = NULL; \
Engine[FM_##call].clear(); \
2007-01-28 05:01:38 +00:00
EnginePost[FM_##call].clear(); \
EngineAddrs[FM_##call] = NULL; \
EngineAddrsPost[FM_##call] = NULL;
2006-02-05 08:06:50 +00:00
#define RESETN(call) \
g_pNewFunctionsTable->pfn##call = NULL; \
g_pNewFunctionsTable_Post->pfn##call = NULL; \
Engine[FM_##call].clear(); \
2007-01-28 05:01:38 +00:00
EnginePost[FM_##call].clear(); \
EngineAddrs[FM_##call] = NULL; \
EngineAddrsPost[FM_##call] = NULL;
2006-02-05 08:06:50 +00:00
void FMH_ServerDeactivate_Post()
{
Add basic ReHLDS and ReGameDLL support (#417) * Add ReHLDS API files and its dependencies Note: This has been stolen from ReAPI AMXX module and modified/adjusted to match AMXX existing includes and to provide as less dependencies as possible as well * Add the necessary files to get ReHLDS interface * Split SV_DropClient into pre/post code * Init ReHLDS API and add SV_DropClient hook * Add Cvar_DirectSet hook and adjust code with helpers Note: we don't need to split code here. This is pretty much the naive and straight way, but fairly enough for our case. If it happens we got a lot more hooks, we may consider to use some class to manage better the things. * Move platform and interface stuff in their own files in public directory * Make sure to init cvar stuff after ReHLDS * Add ReGameDLL API files and its dependencies in cstrike module * Init ReHLDS in cstrike module and adjust code Note: About cs_uset_set_model(). ReHLDS API doesn't offer a way to know directly the precached models, so instead of looping through all the ressources, the models list is saved one time at map change into a hashmap. * Init ReGameDLL and adjust code * Fix linux compilation * Init ReGameDLL in fakemeta module and adjust code * Rename /reapi directory to /resdk to avoid confusion * Retrieve gamerules pointer through InstallGameRules in fakemeta module * Retrieve gamerules pointer through InstallGameRules in cstrike module Note: actually gamerules is not used if regamedll is enabled, but it could be used in future natives. * Fix a typo when ReGameDLL is not enabled * Fix missing interface check for ReHLDS. I'm pretty sure I was checking at the very first since I worked first on vanilla version of engine, looks like change has been lost.
2017-03-09 18:59:38 +00:00
if (HasRegameDll)
{
GameRulesRH = nullptr;
}
// Reset all call lists here.
// NULL all function tables
RESETE(PrecacheModel);
RESETE(PrecacheSound);
RESETE(SetModel);
RESETE(ModelIndex);
RESETE(ModelFrames);
RESETE(SetSize);
RESETE(ChangeLevel);
RESETE(VecToYaw);
RESETE(VecToAngles);
RESETE(MoveToOrigin);
RESETE(ChangeYaw);
RESETE(ChangePitch);
RESETE(FindEntityByString);
RESETE(GetEntityIllum);
RESETE(FindEntityInSphere);
RESETE(FindClientInPVS);
RESETE(EntitiesInPVS);
RESETE(MakeVectors);
RESETE(AngleVectors);
RESETE(CreateEntity);
RESETE(RemoveEntity);
RESETE(CreateNamedEntity);
RESETE(MakeStatic);
RESETE(EntIsOnFloor);
RESETE(DropToFloor);
RESETE(WalkMove);
RESETE(SetOrigin);
RESETE(EmitSound);
RESETE(EmitAmbientSound);
RESETE(TraceLine);
RESETE(TraceToss);
RESETE(TraceMonsterHull);
RESETE(TraceHull);
RESETE(TraceModel);
RESETE(TraceTexture);
RESETE(TraceSphere);
RESETE(GetAimVector);
RESETE(ParticleEffect);
RESETE(LightStyle);
RESETE(DecalIndex);
RESETE(PointContents);
RESETE(FreeEntPrivateData);
RESETE(SzFromIndex);
RESETE(AllocString);
RESETE(RegUserMsg);
RESETE(AnimationAutomove);
RESETE(GetBonePosition);
RESETE(GetAttachment);
RESETE(SetView);
RESETE(Time);
RESETE(CrosshairAngle);
RESETE(FadeClientVolume);
RESETE(SetClientMaxspeed);
RESETE(CreateFakeClient);
RESETE(RunPlayerMove);
RESETE(NumberOfEntities);
RESETE(StaticDecal);
RESETE(PrecacheGeneric);
RESETE(BuildSoundMsg);
RESETE(GetPhysicsKeyValue);
RESETE(SetPhysicsKeyValue);
RESETE(GetPhysicsInfoString);
RESETE(PrecacheEvent);
RESETE(PlaybackEvent);
RESETE(CheckVisibility);
RESETE(GetCurrentPlayer);
RESETE(CanSkipPlayer);
RESETE(SetGroupMask);
RESETE(Voice_GetClientListening);
RESETE(Voice_SetClientListening);
RESETE(InfoKeyValue);
RESETE(SetKeyValue);
RESETE(SetClientKeyValue);
2004-08-11 05:06:27 +00:00
RESETE(MessageBegin);
RESETE(MessageEnd);
RESETE(WriteByte);
RESETE(WriteChar);
RESETE(WriteShort);
RESETE(WriteLong);
RESETE(WriteAngle);
RESETE(WriteCoord);
RESETE(WriteString);
RESETE(WriteEntity);
RESETE(CVarGetFloat);
RESETE(CVarGetString);
RESETE(CVarSetFloat);
RESETE(CVarSetString);
2006-02-05 08:06:50 +00:00
RESETE(AlertMessage);
RESETE(CreateInstancedBaseline);
RESETE(GetInfoKeyBuffer);
RESETE(ClientPrintf);
RESETE(GetPlayerAuthId);
RESETE(GetPlayerWONId);
RESETE(IsMapValid);
2007-04-30 18:32:40 +00:00
RESETE(ServerPrint);
RESETD(Spawn);
RESETD(Think);
RESETD(Use);
RESETD(Touch);
RESETD(Blocked);
RESETD(KeyValue);
RESETD(SetAbsBox);
RESETD(ClientConnect);
RESETD(ClientDisconnect);
RESETD(ClientKill);
RESETD(ClientPutInServer);
RESETD(ClientCommand);
RESETD(ServerDeactivate);
RESETD(PlayerPreThink);
RESETD(PlayerPostThink);
RESETD(StartFrame);
RESETD(ParmsNewLevel);
RESETD(ParmsChangeLevel);
RESETD(GetGameDescription);
RESETD(SpectatorConnect);
RESETD(SpectatorDisconnect);
RESETD(SpectatorThink);
RESETD(Sys_Error);
RESETD(PM_FindTextureType);
RESETD(RegisterEncoders);
RESETD(CreateInstancedBaselines);
RESETD(AllowLagCompensation);
RESETD(ClientUserInfoChanged);
RESETD(UpdateClientData);
RESETD(AddToFullPack);
RESETD(CmdStart);
RESETD(CmdEnd);
RESETD(CreateBaseline);
2006-02-05 08:06:50 +00:00
RESETN(OnFreeEntPrivateData);
RESETN(GameShutdown);
RESETN(ShouldCollide);
g_pFunctionTable->pfnServerActivate = ServerActivate;
2006-04-29 13:51:52 +00:00
RETURN_META(MRES_IGNORED);
}