diff --git a/extension.cpp b/extension.cpp index 809b592..6e6ef01 100644 --- a/extension.cpp +++ b/extension.cpp @@ -117,6 +117,7 @@ IForward *g_pOnRunThinkFunctionsPost = NULL; int g_SH_TriggerMoved = 0; int g_SH_TouchLinks = 0; +const int g_iMaxPlayers = 0; CTriggerMoved *g_CTriggerMoved = NULL; CTouchLinks *g_CTouchLinks = NULL; @@ -152,7 +153,7 @@ void (__fastcall *g_pPhysics_SimulateEntity)(CBaseEntity *pEntity) = NULL; void Physics_SimulateEntity_CustomLoop(CBaseEntity **ppList, int Count, float Startime) { - CBaseEntity *apPlayers[SM_MAXPLAYERS]; + CBaseEntity *apPlayers[g_iMaxPlayers]; int iPlayers = 0; // Remove players from list and put into apPlayers @@ -167,7 +168,7 @@ void Physics_SimulateEntity_CustomLoop(CBaseEntity **ppList, int Count, float St continue; int Entity = gamehelpers->IndexOfEdict(pEdict); - if(Entity >= 1 && Entity <= SM_MAXPLAYERS) + if(Entity >= 1 && Entity <= g_iMaxPlayers) { apPlayers[iPlayers++] = pEntity; ppList[i] = NULL; @@ -242,7 +243,7 @@ IterationRetval_t TriggerMoved_EnumElement(IHandleEntity *pHandleEntity) int index = hndl.GetEntryIndex(); // We only care about players - if(index > SM_MAXPLAYERS) + if(index > g_iMaxPlayers) { RETURN_META_VALUE(MRES_IGNORED, ITERATION_CONTINUE); } @@ -306,13 +307,13 @@ IterationRetval_t TouchLinks_EnumElement(IHandleEntity *pHandleEntity) int index = hndl.GetEntryIndex(); // Optimization: Players shouldn't touch other players - if(g_SolidEntityMoved <= SM_MAXPLAYERS && index <= SM_MAXPLAYERS) + if(g_SolidEntityMoved <= g_iMaxPlayers && index <= g_iMaxPlayers) { RETURN_META_VALUE(MRES_SUPERCEDE, ITERATION_CONTINUE); } // block solid from touching any clients here if bit is set - if(g_pBlockSolidTouchPlayers && index <= SM_MAXPLAYERS && CheckBit(g_pBlockSolidTouchPlayers, g_SolidEntityMoved)) + if(g_pBlockSolidTouchPlayers && index <= g_iMaxPlayers && CheckBit(g_pBlockSolidTouchPlayers, g_SolidEntityMoved)) { RETURN_META_VALUE(MRES_SUPERCEDE, ITERATION_CONTINUE); } @@ -361,6 +362,8 @@ bool PhysHooks::SDK_OnLoad(char *error, size_t maxlength, bool late) { srand((unsigned int)time(NULL)); + g_iMaxPlayers = playerhelpers->GetMaxClients(); + char conf_error[255] = ""; if(!gameconfs->LoadGameConfigFile("PhysHooks.games", &g_pGameConf, conf_error, sizeof(conf_error))) {