From 6533e7e69f6aa060ae8fb466d3e81677654d7131 Mon Sep 17 00:00:00 2001 From: toaster Date: Fri, 6 Oct 2023 22:18:08 +0100 Subject: [PATCH] Consistancy(void): Use TypeIsNetSynced instead of MT_OVERLAY-specific check In addition, don't use frame - I'm pretty sure this was something we've already violated to no ill effect. --- src/d_clisrv.c | 21 ++++++++++++--------- src/p_saveg.c | 2 +- src/p_saveg.h | 2 ++ 3 files changed, 15 insertions(+), 10 deletions(-) diff --git a/src/d_clisrv.c b/src/d_clisrv.c index e21da3b4d..bb94c3dab 100644 --- a/src/d_clisrv.c +++ b/src/d_clisrv.c @@ -5966,6 +5966,9 @@ static INT16 Consistancy(void) mo = (mobj_t *)th; + if (TypeIsNetSynced(mo->type) == false) + continue; + if (mo->flags & (MF_SPECIAL | MF_SOLID | MF_PUSHABLE | MF_BOSS | MF_MISSILE | MF_SPRING | MF_MONITOR | MF_FIRE | MF_ENEMY | MF_PAIN | MF_STICKY)) { ret -= mo->type; @@ -5979,7 +5982,7 @@ static INT16 Consistancy(void) ret -= mo->flags; ret += mo->flags2; ret -= mo->eflags; - if (mo->target) + if (mo->target && TypeIsNetSynced(mo->target->type)) { ret += mo->target->type; ret -= mo->target->x; @@ -5995,11 +5998,11 @@ static INT16 Consistancy(void) ret -= mo->target->state - states; ret += mo->target->tics; ret -= mo->target->sprite; - ret += mo->target->frame; + //ret += mo->target->frame; } else ret ^= 0x3333; - if (mo->tracer && mo->tracer->type != MT_OVERLAY) + if (mo->tracer && TypeIsNetSynced(mo->tracer->type)) { ret += mo->tracer->type; ret -= mo->tracer->x; @@ -6015,12 +6018,12 @@ static INT16 Consistancy(void) ret -= mo->tracer->state - states; ret += mo->tracer->tics; ret -= mo->tracer->sprite; - ret += mo->tracer->frame; + //ret += mo->tracer->frame; } else ret ^= 0xAAAA; // SRB2Kart: We use hnext & hprev very extensively - if (mo->hnext && mo->hnext->type != MT_OVERLAY) + if (mo->hnext && TypeIsNetSynced(mo->hnext->type)) { ret += mo->hnext->type; ret -= mo->hnext->x; @@ -6036,11 +6039,11 @@ static INT16 Consistancy(void) ret -= mo->hnext->state - states; ret += mo->hnext->tics; ret -= mo->hnext->sprite; - ret += mo->hnext->frame; + //ret += mo->hnext->frame; } else ret ^= 0x5555; - if (mo->hprev && mo->hprev->type != MT_OVERLAY) + if (mo->hprev && TypeIsNetSynced(mo->hprev->type)) { ret += mo->hprev->type; ret -= mo->hprev->x; @@ -6056,14 +6059,14 @@ static INT16 Consistancy(void) ret -= mo->hprev->state - states; ret += mo->hprev->tics; ret -= mo->hprev->sprite; - ret += mo->hprev->frame; + //ret += mo->hprev->frame; } else ret ^= 0xCCCC; ret -= mo->state - states; ret += mo->tics; ret -= mo->sprite; - ret += mo->frame; + //ret += mo->frame; } } } diff --git a/src/p_saveg.c b/src/p_saveg.c index 6c61e7f6a..f48fdaa3f 100644 --- a/src/p_saveg.c +++ b/src/p_saveg.c @@ -2624,7 +2624,7 @@ static UINT32 SaveSlope(const pslope_t *slope) return 0xFFFFFFFF; } -static boolean TypeIsNetSynced(mobjtype_t type) +boolean TypeIsNetSynced(mobjtype_t type) { // Ignore stationary hoops - these will be respawned from mapthings. if (type == MT_HOOP) diff --git a/src/p_saveg.h b/src/p_saveg.h index 66345367d..8657ee9d2 100644 --- a/src/p_saveg.h +++ b/src/p_saveg.h @@ -92,6 +92,8 @@ boolean P_SaveBufferFromFile(savebuffer_t *save, char const *name); void P_SaveBufferFree(savebuffer_t *save); size_t P_SaveBufferRemaining(const savebuffer_t *save); +boolean TypeIsNetSynced(mobjtype_t type); + #ifdef __cplusplus } // extern "C" #endif