2c4be26756
Added a few more calls (over 50% are done!)
140 lines
3.4 KiB
C++
Executable File
140 lines
3.4 KiB
C++
Executable File
#include "fakemeta_amxx.h"
|
|
|
|
edict_t *g_player_edicts[33]; // Used for INDEXENT() forward.
|
|
|
|
void OnAmxxAttach()
|
|
{
|
|
MF_AddNatives(engfunc_natives);
|
|
MF_AddNatives(dllfunc_natives);
|
|
MF_AddNatives(pev_natives);
|
|
MF_AddNatives(forward_natives);
|
|
}
|
|
|
|
// sawce: Do not null out the forward for ServerActivate. It's required for the INDEXENT() fix. (I don't think ServerActivate is planned on being forwarded anyway)
|
|
void ServerActivate(edict_t *pEdictList, int edictCount, int clientMax)
|
|
{
|
|
for(int i = 1; i <= gpGlobals->maxClients;i++)
|
|
g_player_edicts[i]=pEdictList + i;
|
|
RETURN_META(MRES_IGNORED);
|
|
}
|
|
#define RESETD(call) \
|
|
g_pFunctionTable->pfn##call = NULL; \
|
|
g_pFunctionTable_Post->pfn##call = NULL; \
|
|
Engine[FM_##call].clear(); \
|
|
EnginePost[FM_##call].clear();
|
|
|
|
#define RESETE(call) \
|
|
g_pengfuncsTable->pfn##call = NULL; \
|
|
g_pengfuncsTable_Post->pfn##call = NULL; \
|
|
Engine[FM_##call].clear(); \
|
|
EnginePost[FM_##call].clear();
|
|
|
|
void OnPluginsLoaded()
|
|
{
|
|
// 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);
|
|
|
|
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(GetHullBounds);
|
|
RESETD(CreateInstancedBaselines);
|
|
RESETD(AllowLagCompensation);
|
|
|
|
g_pFunctionTable->pfnServerActivate = ServerActivate;
|
|
} |