LagCompensation: add spawnflag (1 << 30) to disable lagcomp on an entity
This commit is contained in:
		
							parent
							
								
									ce2f9d58cc
								
							
						
					
					
						commit
						99f34ca3d6
					
				| @ -70,6 +70,8 @@ enum | |||||||
| 	SF_TRIGGER_ONLY_NPCS_IN_VEHICLES		= 0x800,	// *if* NPCs can fire this trigger, only NPCs in vehicles do so (respects player ally flag too) | 	SF_TRIGGER_ONLY_NPCS_IN_VEHICLES		= 0x800,	// *if* NPCs can fire this trigger, only NPCs in vehicles do so (respects player ally flag too) | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
|  | #define SF_LAGCOMP_DISABLE (1 << 30) | ||||||
|  | 
 | ||||||
| #define MAX_RECORDS 32 | #define MAX_RECORDS 32 | ||||||
| #define MAX_ENTITIES 256 | #define MAX_ENTITIES 256 | ||||||
| //#define DEBUG | //#define DEBUG | ||||||
| @ -447,6 +449,10 @@ bool CheckEntityForLagComp(int entity, const char[] classname, bool bRecursive=f | |||||||
| 	if(g_aLagCompensated[entity] != -1) | 	if(g_aLagCompensated[entity] != -1) | ||||||
| 		return false; | 		return false; | ||||||
| 
 | 
 | ||||||
|  | 	int SpawnFlags = GetEntData(entity, g_iSpawnFlags); | ||||||
|  | 	if(SpawnFlags & SF_LAGCOMP_DISABLE) | ||||||
|  | 		return false; | ||||||
|  | 
 | ||||||
| 	bool bTrigger = StrEqual(classname, "trigger_hurt", false) || | 	bool bTrigger = StrEqual(classname, "trigger_hurt", false) || | ||||||
| 					StrEqual(classname, "trigger_push", false) || | 					StrEqual(classname, "trigger_push", false) || | ||||||
| 					StrEqual(classname, "trigger_teleport", false); | 					StrEqual(classname, "trigger_teleport", false); | ||||||
| @ -509,8 +515,7 @@ bool CheckEntityForLagComp(int entity, const char[] classname, bool bRecursive=f | |||||||
| 	{ | 	{ | ||||||
| 		if(bTrigger) | 		if(bTrigger) | ||||||
| 		{ | 		{ | ||||||
| 			int Flags = GetEntData(entity, g_iSpawnFlags); | 			if(!(SpawnFlags & (SF_TRIGGER_ALLOW_PUSHABLES | SF_TRIGGER_ALLOW_PHYSICS | SF_TRIGGER_ALLOW_ALL | SF_TRIG_TOUCH_DEBRIS))) | ||||||
| 			if(!(Flags & (SF_TRIGGER_ALLOW_PUSHABLES | SF_TRIGGER_ALLOW_PHYSICS | SF_TRIGGER_ALLOW_ALL | SF_TRIG_TOUCH_DEBRIS))) |  | ||||||
| 				SetBit(g_aBlockTriggerMoved, entity); | 				SetBit(g_aBlockTriggerMoved, entity); | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user