mirror of
https://git.do.srb2.org/KartKrew/Kart-Public.git
synced 2025-02-07 08:51:40 +00:00
Only do Mobj and RNG consistancy checking when actually in a level.
Mobjs are completely irrelevant outside of levels and the PRNG is not used in a synchronised way in anywhere except when in levels either
This commit is contained in:
parent
c8f61edea5
commit
0375ea4f0b
1 changed files with 65 additions and 62 deletions
127
src/d_clisrv.c
127
src/d_clisrv.c
|
@ -4341,7 +4341,7 @@ static INT16 Consistancy(void)
|
||||||
{
|
{
|
||||||
if (!playeringame[i])
|
if (!playeringame[i])
|
||||||
ret ^= 0xCCCC;
|
ret ^= 0xCCCC;
|
||||||
else if (!players[i].mo);
|
else if (!players[i].mo || gamestate != GS_LEVEL);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ret += players[i].mo->x;
|
ret += players[i].mo->x;
|
||||||
|
@ -4352,7 +4352,7 @@ static INT16 Consistancy(void)
|
||||||
}
|
}
|
||||||
// I give up
|
// I give up
|
||||||
// Coop desynching enemies is painful
|
// Coop desynching enemies is painful
|
||||||
if (!G_RaceGametype())
|
if (!G_RaceGametype() && gamestate == GS_LEVEL)
|
||||||
ret += P_GetRandSeed();
|
ret += P_GetRandSeed();
|
||||||
|
|
||||||
#ifdef MOBJCONSISTANCY
|
#ifdef MOBJCONSISTANCY
|
||||||
|
@ -4361,70 +4361,73 @@ static INT16 Consistancy(void)
|
||||||
DEBFILE(va("Consistancy = %u\n", ret));
|
DEBFILE(va("Consistancy = %u\n", ret));
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
for (th = thinkercap.next; th != &thinkercap; th = th->next)
|
if (gamestate == GS_LEVEL)
|
||||||
{
|
{
|
||||||
if (th->function.acp1 != (actionf_p1)P_MobjThinker)
|
for (th = thinkercap.next; th != &thinkercap; th = th->next)
|
||||||
continue;
|
|
||||||
|
|
||||||
mo = (mobj_t *)th;
|
|
||||||
|
|
||||||
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;
|
if (th->function.acp1 != (actionf_p1)P_MobjThinker)
|
||||||
ret += mo->x;
|
continue;
|
||||||
ret -= mo->y;
|
|
||||||
ret += mo->z;
|
mo = (mobj_t *)th;
|
||||||
ret -= mo->momx;
|
|
||||||
ret += mo->momy;
|
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->momz;
|
|
||||||
ret += mo->angle;
|
|
||||||
ret -= mo->flags;
|
|
||||||
ret += mo->flags2;
|
|
||||||
ret -= mo->eflags;
|
|
||||||
if (mo->target)
|
|
||||||
{
|
{
|
||||||
ret += mo->target->type;
|
ret -= mo->type;
|
||||||
ret -= mo->target->x;
|
ret += mo->x;
|
||||||
ret += mo->target->y;
|
ret -= mo->y;
|
||||||
ret -= mo->target->z;
|
ret += mo->z;
|
||||||
ret += mo->target->momx;
|
ret -= mo->momx;
|
||||||
ret -= mo->target->momy;
|
ret += mo->momy;
|
||||||
ret += mo->target->momz;
|
ret -= mo->momz;
|
||||||
ret -= mo->target->angle;
|
ret += mo->angle;
|
||||||
ret += mo->target->flags;
|
ret -= mo->flags;
|
||||||
ret -= mo->target->flags2;
|
ret += mo->flags2;
|
||||||
ret += mo->target->eflags;
|
ret -= mo->eflags;
|
||||||
ret -= mo->target->state - states;
|
if (mo->target)
|
||||||
ret += mo->target->tics;
|
{
|
||||||
ret -= mo->target->sprite;
|
ret += mo->target->type;
|
||||||
ret += mo->target->frame;
|
ret -= mo->target->x;
|
||||||
|
ret += mo->target->y;
|
||||||
|
ret -= mo->target->z;
|
||||||
|
ret += mo->target->momx;
|
||||||
|
ret -= mo->target->momy;
|
||||||
|
ret += mo->target->momz;
|
||||||
|
ret -= mo->target->angle;
|
||||||
|
ret += mo->target->flags;
|
||||||
|
ret -= mo->target->flags2;
|
||||||
|
ret += mo->target->eflags;
|
||||||
|
ret -= mo->target->state - states;
|
||||||
|
ret += mo->target->tics;
|
||||||
|
ret -= mo->target->sprite;
|
||||||
|
ret += mo->target->frame;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
ret ^= 0x3333;
|
||||||
|
if (mo->tracer && mo->tracer->type != MT_OVERLAY)
|
||||||
|
{
|
||||||
|
ret += mo->tracer->type;
|
||||||
|
ret -= mo->tracer->x;
|
||||||
|
ret += mo->tracer->y;
|
||||||
|
ret -= mo->tracer->z;
|
||||||
|
ret += mo->tracer->momx;
|
||||||
|
ret -= mo->tracer->momy;
|
||||||
|
ret += mo->tracer->momz;
|
||||||
|
ret -= mo->tracer->angle;
|
||||||
|
ret += mo->tracer->flags;
|
||||||
|
ret -= mo->tracer->flags2;
|
||||||
|
ret += mo->tracer->eflags;
|
||||||
|
ret -= mo->tracer->state - states;
|
||||||
|
ret += mo->tracer->tics;
|
||||||
|
ret -= mo->tracer->sprite;
|
||||||
|
ret += mo->tracer->frame;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
ret ^= 0xAAAA;
|
||||||
|
ret -= mo->state - states;
|
||||||
|
ret += mo->tics;
|
||||||
|
ret -= mo->sprite;
|
||||||
|
ret += mo->frame;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
ret ^= 0x3333;
|
|
||||||
if (mo->tracer && mo->tracer->type != MT_OVERLAY)
|
|
||||||
{
|
|
||||||
ret += mo->tracer->type;
|
|
||||||
ret -= mo->tracer->x;
|
|
||||||
ret += mo->tracer->y;
|
|
||||||
ret -= mo->tracer->z;
|
|
||||||
ret += mo->tracer->momx;
|
|
||||||
ret -= mo->tracer->momy;
|
|
||||||
ret += mo->tracer->momz;
|
|
||||||
ret -= mo->tracer->angle;
|
|
||||||
ret += mo->tracer->flags;
|
|
||||||
ret -= mo->tracer->flags2;
|
|
||||||
ret += mo->tracer->eflags;
|
|
||||||
ret -= mo->tracer->state - states;
|
|
||||||
ret += mo->tracer->tics;
|
|
||||||
ret -= mo->tracer->sprite;
|
|
||||||
ret += mo->tracer->frame;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
ret ^= 0xAAAA;
|
|
||||||
ret -= mo->state - states;
|
|
||||||
ret += mo->tics;
|
|
||||||
ret -= mo->sprite;
|
|
||||||
ret += mo->frame;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in a new issue