Support servers other than 64 slots... theoretically.
This commit is contained in:
parent
8b955e85a2
commit
32a6c75292
@ -117,6 +117,7 @@ IForward *g_pOnRunThinkFunctionsPost = NULL;
|
|||||||
|
|
||||||
int g_SH_TriggerMoved = 0;
|
int g_SH_TriggerMoved = 0;
|
||||||
int g_SH_TouchLinks = 0;
|
int g_SH_TouchLinks = 0;
|
||||||
|
const int g_iMaxPlayers = 0;
|
||||||
|
|
||||||
CTriggerMoved *g_CTriggerMoved = NULL;
|
CTriggerMoved *g_CTriggerMoved = NULL;
|
||||||
CTouchLinks *g_CTouchLinks = 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)
|
void Physics_SimulateEntity_CustomLoop(CBaseEntity **ppList, int Count, float Startime)
|
||||||
{
|
{
|
||||||
CBaseEntity *apPlayers[SM_MAXPLAYERS];
|
CBaseEntity *apPlayers[g_iMaxPlayers];
|
||||||
int iPlayers = 0;
|
int iPlayers = 0;
|
||||||
|
|
||||||
// Remove players from list and put into apPlayers
|
// Remove players from list and put into apPlayers
|
||||||
@ -167,7 +168,7 @@ void Physics_SimulateEntity_CustomLoop(CBaseEntity **ppList, int Count, float St
|
|||||||
continue;
|
continue;
|
||||||
|
|
||||||
int Entity = gamehelpers->IndexOfEdict(pEdict);
|
int Entity = gamehelpers->IndexOfEdict(pEdict);
|
||||||
if(Entity >= 1 && Entity <= SM_MAXPLAYERS)
|
if(Entity >= 1 && Entity <= g_iMaxPlayers)
|
||||||
{
|
{
|
||||||
apPlayers[iPlayers++] = pEntity;
|
apPlayers[iPlayers++] = pEntity;
|
||||||
ppList[i] = NULL;
|
ppList[i] = NULL;
|
||||||
@ -242,7 +243,7 @@ IterationRetval_t TriggerMoved_EnumElement(IHandleEntity *pHandleEntity)
|
|||||||
int index = hndl.GetEntryIndex();
|
int index = hndl.GetEntryIndex();
|
||||||
|
|
||||||
// We only care about players
|
// We only care about players
|
||||||
if(index > SM_MAXPLAYERS)
|
if(index > g_iMaxPlayers)
|
||||||
{
|
{
|
||||||
RETURN_META_VALUE(MRES_IGNORED, ITERATION_CONTINUE);
|
RETURN_META_VALUE(MRES_IGNORED, ITERATION_CONTINUE);
|
||||||
}
|
}
|
||||||
@ -306,13 +307,13 @@ IterationRetval_t TouchLinks_EnumElement(IHandleEntity *pHandleEntity)
|
|||||||
int index = hndl.GetEntryIndex();
|
int index = hndl.GetEntryIndex();
|
||||||
|
|
||||||
// Optimization: Players shouldn't touch other players
|
// 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);
|
RETURN_META_VALUE(MRES_SUPERCEDE, ITERATION_CONTINUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
// block solid from touching any clients here if bit is set
|
// 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);
|
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));
|
srand((unsigned int)time(NULL));
|
||||||
|
|
||||||
|
g_iMaxPlayers = playerhelpers->GetMaxClients();
|
||||||
|
|
||||||
char conf_error[255] = "";
|
char conf_error[255] = "";
|
||||||
if(!gameconfs->LoadGameConfigFile("PhysHooks.games", &g_pGameConf, conf_error, sizeof(conf_error)))
|
if(!gameconfs->LoadGameConfigFile("PhysHooks.games", &g_pGameConf, conf_error, sizeof(conf_error)))
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user