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