mirror of
				https://github.com/KartKrewDev/RingRacers.git
				synced 2025-10-30 08:01:28 +00:00 
			
		
		
		
	Attempt to encode less for objects
- Don't encode radius, height, or scale if they are at mapobjectscale - Don't encode watertop if it is INT32_MAX (its actual initial spawn value)
This commit is contained in:
		
							parent
							
								
									aae9374b0a
								
							
						
					
					
						commit
						c4cca8c8b7
					
				
					 1 changed files with 9 additions and 7 deletions
				
			
		| 
						 | 
					@ -3142,9 +3142,9 @@ static void SaveMobjThinker(savebuffer_t *save, const thinker_t *th, const UINT8
 | 
				
			||||||
	// not the default but the most probable
 | 
						// not the default but the most probable
 | 
				
			||||||
	if (mobj->momx != 0 || mobj->momy != 0 || mobj->momz != 0 || mobj->pmomz != 0 || mobj->lastmomz != 0)
 | 
						if (mobj->momx != 0 || mobj->momy != 0 || mobj->momz != 0 || mobj->pmomz != 0 || mobj->lastmomz != 0)
 | 
				
			||||||
		diff |= MD_MOM;
 | 
							diff |= MD_MOM;
 | 
				
			||||||
	if (mobj->radius != mobj->info->radius)
 | 
						if (mobj->radius != FixedMul(mapobjectscale, mobj->info->radius))
 | 
				
			||||||
		diff |= MD_RADIUS;
 | 
							diff |= MD_RADIUS;
 | 
				
			||||||
	if (mobj->height != mobj->info->height)
 | 
						if (mobj->height != FixedMul(mapobjectscale, mobj->info->height))
 | 
				
			||||||
		diff |= MD_HEIGHT;
 | 
							diff |= MD_HEIGHT;
 | 
				
			||||||
	if (mobj->flags != mobj->info->flags)
 | 
						if (mobj->flags != mobj->info->flags)
 | 
				
			||||||
		diff |= MD_FLAGS;
 | 
							diff |= MD_FLAGS;
 | 
				
			||||||
| 
						 | 
					@ -3188,11 +3188,11 @@ static void SaveMobjThinker(savebuffer_t *save, const thinker_t *th, const UINT8
 | 
				
			||||||
		diff |= MD_MOVEFACTOR;
 | 
							diff |= MD_MOVEFACTOR;
 | 
				
			||||||
	if (mobj->fuse)
 | 
						if (mobj->fuse)
 | 
				
			||||||
		diff |= MD_FUSE;
 | 
							diff |= MD_FUSE;
 | 
				
			||||||
	if (mobj->watertop)
 | 
						if (mobj->watertop != INT32_MAX)
 | 
				
			||||||
		diff |= MD_WATERTOP;
 | 
							diff |= MD_WATERTOP;
 | 
				
			||||||
	if (mobj->waterbottom)
 | 
						if (mobj->waterbottom)
 | 
				
			||||||
		diff |= MD_WATERBOTTOM;
 | 
							diff |= MD_WATERBOTTOM;
 | 
				
			||||||
	if (mobj->scale != FRACUNIT)
 | 
						if (mobj->scale != mapobjectscale)
 | 
				
			||||||
		diff |= MD_SCALE;
 | 
							diff |= MD_SCALE;
 | 
				
			||||||
	if (mobj->destscale != mobj->scale)
 | 
						if (mobj->destscale != mobj->scale)
 | 
				
			||||||
		diff |= MD_DSCALE;
 | 
							diff |= MD_DSCALE;
 | 
				
			||||||
| 
						 | 
					@ -4595,11 +4595,11 @@ static thinker_t* LoadMobjThinker(savebuffer_t *save, actionf_p1 thinker)
 | 
				
			||||||
	if (diff & MD_RADIUS)
 | 
						if (diff & MD_RADIUS)
 | 
				
			||||||
		mobj->radius = READFIXED(save->p);
 | 
							mobj->radius = READFIXED(save->p);
 | 
				
			||||||
	else
 | 
						else
 | 
				
			||||||
		mobj->radius = mobj->info->radius;
 | 
							mobj->radius = FixedMul(mobj->info->radius, mapobjectscale);
 | 
				
			||||||
	if (diff & MD_HEIGHT)
 | 
						if (diff & MD_HEIGHT)
 | 
				
			||||||
		mobj->height = READFIXED(save->p);
 | 
							mobj->height = READFIXED(save->p);
 | 
				
			||||||
	else
 | 
						else
 | 
				
			||||||
		mobj->height = mobj->info->height;
 | 
							mobj->height = FixedMul(mobj->info->height, mapobjectscale);
 | 
				
			||||||
	if (diff & MD_FLAGS)
 | 
						if (diff & MD_FLAGS)
 | 
				
			||||||
		mobj->flags = READUINT32(save->p);
 | 
							mobj->flags = READUINT32(save->p);
 | 
				
			||||||
	else
 | 
						else
 | 
				
			||||||
| 
						 | 
					@ -4677,12 +4677,14 @@ static thinker_t* LoadMobjThinker(savebuffer_t *save, actionf_p1 thinker)
 | 
				
			||||||
		mobj->fuse = READINT32(save->p);
 | 
							mobj->fuse = READINT32(save->p);
 | 
				
			||||||
	if (diff & MD_WATERTOP)
 | 
						if (diff & MD_WATERTOP)
 | 
				
			||||||
		mobj->watertop = READFIXED(save->p);
 | 
							mobj->watertop = READFIXED(save->p);
 | 
				
			||||||
 | 
						else
 | 
				
			||||||
 | 
							mobj->watertop = INT32_MAX;
 | 
				
			||||||
	if (diff & MD_WATERBOTTOM)
 | 
						if (diff & MD_WATERBOTTOM)
 | 
				
			||||||
		mobj->waterbottom = READFIXED(save->p);
 | 
							mobj->waterbottom = READFIXED(save->p);
 | 
				
			||||||
	if (diff & MD_SCALE)
 | 
						if (diff & MD_SCALE)
 | 
				
			||||||
		mobj->scale = READFIXED(save->p);
 | 
							mobj->scale = READFIXED(save->p);
 | 
				
			||||||
	else
 | 
						else
 | 
				
			||||||
		mobj->scale = FRACUNIT;
 | 
							mobj->scale = mapobjectscale;
 | 
				
			||||||
	if (diff & MD_DSCALE)
 | 
						if (diff & MD_DSCALE)
 | 
				
			||||||
		mobj->destscale = READFIXED(save->p);
 | 
							mobj->destscale = READFIXED(save->p);
 | 
				
			||||||
	else
 | 
						else
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		
		Reference in a new issue