Merge branch 'staffsync-bodge' into 'master'

Disable PR_ITEM_DEBRIS detections in staffsync

See merge request kart-krew-dev/ring-racers-internal!2909
This commit is contained in:
AJ Martinez 2025-09-28 00:38:57 +00:00
commit e3067e8a09

View file

@ -303,18 +303,39 @@ boolean G_ConsiderEndingDemoRead(void)
}
// Demo failed sync during a sync test! Log the failure to be reported later.
static void G_FailStaffSync(staffsync_reason_t reason, UINT32 extra)
static boolean G_FailStaffSync(staffsync_reason_t reason, UINT32 extra)
{
if (demo.attract != DEMO_ATTRACT_OFF) // Don't shout about RNG desyncs in titledemos
return false;
if (!staffsync)
return;
return true;
if (staffsync_results[staffsync_failed].reason != 0)
return;
return false;
if (reason == SYNC_RNG)
{
switch (extra)
{
case PR_ITEM_DEBRIS:
case PR_RANDOMAUDIENCE:
case PR_VOICES:
case PR_DECORATION:
case PR_RANDOMANIM:
CONS_Printf("[!] Ignored desync from RNG class %d\n", extra);
return false;
default:
break;
}
}
staffsync_results[staffsync_failed].map = gamemap;
memcpy(&staffsync_results[staffsync_failed].name, player_names[consoleplayer], sizeof(player_names[consoleplayer]));
staffsync_results[staffsync_failed].reason = reason;
staffsync_results[staffsync_failed].extra = extra;
return true;
}
void G_ReadDemoExtraData(void)
@ -485,14 +506,19 @@ void G_ReadDemoExtraData(void)
P_SetRandSeed(static_cast<pr_class_t>(i), rng);
if (demosynced)
{
if (G_FailStaffSync(SYNC_RNG, i))
{
CONS_Alert(CONS_WARNING, "Demo playback has desynced (RNG class %d)!\n", i);
G_FailStaffSync(SYNC_RNG, i);
}
storesynced = false;
}
}
else
{
storesynced = false;
}
}
}
demosynced = storesynced;
}
}