mirror of
				https://github.com/KartKrewDev/RingRacers.git
				synced 2025-10-30 08:01:28 +00:00 
			
		
		
		
	Add cv_scrambleremoved, disable scramble on P_RemoveMobj
Because Monitors and players leaving leak references, disable this crashing to be able to test other stuff at least.
This commit is contained in:
		
							parent
							
								
									ccd933556d
								
							
						
					
					
						commit
						a55ddef528
					
				
					 3 changed files with 16 additions and 4 deletions
				
			
		| 
						 | 
				
			
			@ -66,6 +66,10 @@ extern "C" {
 | 
			
		|||
 | 
			
		||||
#define P_GetPlayerViewHeight(player) (41*player->mo->height/48)
 | 
			
		||||
 | 
			
		||||
#ifdef PARANOIA
 | 
			
		||||
#define SCRAMBLE_REMOVED // Force debug build to crash when Removed mobj is accessed
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
typedef enum
 | 
			
		||||
{
 | 
			
		||||
	THINK_POLYOBJ,
 | 
			
		||||
| 
						 | 
				
			
			@ -282,6 +286,9 @@ extern mapthing_t *itemrespawnque[ITEMQUESIZE];
 | 
			
		|||
extern tic_t itemrespawntime[ITEMQUESIZE];
 | 
			
		||||
extern size_t iquehead, iquetail;
 | 
			
		||||
extern consvar_t cv_gravity, cv_movebob;
 | 
			
		||||
#ifdef SCRAMBLE_REMOVED
 | 
			
		||||
extern consvar_t cv_scrambleremoved;
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
void P_RespawnBattleBoxes(void);
 | 
			
		||||
mobjtype_t P_GetMobjtype(UINT16 mthingtype);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										10
									
								
								src/p_mobj.c
									
										
									
									
									
								
							
							
						
						
									
										10
									
								
								src/p_mobj.c
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -51,6 +51,8 @@
 | 
			
		|||
static CV_PossibleValue_t CV_BobSpeed[] = {{0, "MIN"}, {4*FRACUNIT, "MAX"}, {0, NULL}};
 | 
			
		||||
consvar_t cv_movebob = CVAR_INIT ("movebob", "1.0", CV_FLOAT|CV_SAVE, CV_BobSpeed, NULL);
 | 
			
		||||
 | 
			
		||||
consvar_t cv_scrambleremoved = CVAR_INIT ("scrambleremoved", "On", CV_NETVAR, CV_OnOff, NULL);
 | 
			
		||||
 | 
			
		||||
actioncache_t actioncachehead;
 | 
			
		||||
 | 
			
		||||
static mobj_t *overlaycap = NULL;
 | 
			
		||||
| 
						 | 
				
			
			@ -11059,9 +11061,6 @@ mapthing_t *itemrespawnque[ITEMQUESIZE];
 | 
			
		|||
tic_t itemrespawntime[ITEMQUESIZE];
 | 
			
		||||
size_t iquehead, iquetail;
 | 
			
		||||
 | 
			
		||||
#ifdef PARANOIA
 | 
			
		||||
#define SCRAMBLE_REMOVED // Force debug build to crash when Removed mobj is accessed
 | 
			
		||||
#endif
 | 
			
		||||
void P_RemoveMobj(mobj_t *mobj)
 | 
			
		||||
{
 | 
			
		||||
	I_Assert(mobj != NULL);
 | 
			
		||||
| 
						 | 
				
			
			@ -11197,7 +11196,10 @@ void P_RemoveMobj(mobj_t *mobj)
 | 
			
		|||
	// DBG: set everything in mobj_t to 0xFF instead of leaving it. debug memory error.
 | 
			
		||||
#ifdef SCRAMBLE_REMOVED
 | 
			
		||||
	// Invalidate mobj_t data to cause crashes if accessed!
 | 
			
		||||
	memset((UINT8 *)mobj + sizeof(thinker_t), 0xff, sizeof(mobj_t) - sizeof(thinker_t));
 | 
			
		||||
	if (cv_scrambleremoved.value)
 | 
			
		||||
	{
 | 
			
		||||
		memset((UINT8 *)mobj + sizeof(thinker_t), 0xff, sizeof(mobj_t) - sizeof(thinker_t));
 | 
			
		||||
	}
 | 
			
		||||
#endif
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1651,6 +1651,9 @@ void R_RegisterEngineStuff(void)
 | 
			
		|||
	CV_RegisterVar(&cv_maxportals);
 | 
			
		||||
 | 
			
		||||
	CV_RegisterVar(&cv_movebob);
 | 
			
		||||
#ifdef SCRAMBLE_REMOVED
 | 
			
		||||
	CV_RegisterVar(&cv_scrambleremoved);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	// Frame interpolation/uncapped
 | 
			
		||||
	CV_RegisterVar(&cv_fpscap);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue