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