From 7fab92d73b6bfe40f3e3e5b59ac7add3ae3f89a0 Mon Sep 17 00:00:00 2001 From: toaster Date: Mon, 10 May 2021 14:21:13 +0100 Subject: [PATCH] Kickstartaccel demo fix An absolute dogshit clown-level code blunder from me, now corrected. --- src/g_demo.c | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/src/g_demo.c b/src/g_demo.c index 56f98cf73..a30d78878 100644 --- a/src/g_demo.c +++ b/src/g_demo.c @@ -347,6 +347,7 @@ void G_ReadDemoExtraData(void) players[p].pflags &= ~(PF_KICKSTARTACCEL); if (extradata & 1) players[p].pflags |= PF_KICKSTARTACCEL; + //CONS_Printf("weaponpref is %d for player %d\n", extradata, p); } p = READUINT8(demo_p); @@ -2656,7 +2657,7 @@ void G_DoPlayDemo(char *defdemoname) UINT32 randseed; char msg[1024]; - boolean spectator; + boolean spectator, kickstart; UINT8 slots[MAXPLAYERS], kartspeed[MAXPLAYERS], kartweight[MAXPLAYERS], numslots = 0; #if defined(SKIPERRORS) && !defined(DEVELOP) @@ -2925,16 +2926,8 @@ void G_DoPlayDemo(char *defdemoname) while (p != 0xFF) { - players[p].pflags &= ~PF_KICKSTARTACCEL; - if (p & DEMO_KICKSTART) + if ((spectator = (p & DEMO_SPECTATOR))) { - players[p].pflags |= PF_KICKSTARTACCEL; - p &= ~DEMO_KICKSTART; - } - spectator = false; - if (p & DEMO_SPECTATOR) - { - spectator = true; p &= ~DEMO_SPECTATOR; if (modeattacking) @@ -2949,6 +2942,10 @@ void G_DoPlayDemo(char *defdemoname) return; } } + + if ((kickstart = (p & DEMO_KICKSTART))) + p &= ~DEMO_KICKSTART; + slots[numslots] = p; numslots++; if (modeattacking && numslots > 1) @@ -2968,6 +2965,10 @@ void G_DoPlayDemo(char *defdemoname) playeringame[p] = true; players[p].spectator = spectator; + if (kickstart) + players[p].pflags |= PF_KICKSTARTACCEL; + else + players[p].pflags &= ~PF_KICKSTARTACCEL; // Name M_Memcpy(player_names[p],demo_p,16);