From bc950c18a281650481497c2054bad811504e3cd8 Mon Sep 17 00:00:00 2001 From: AJ Martinez Date: Thu, 19 Oct 2023 15:37:35 -0700 Subject: [PATCH 1/3] Persist player.lastsafelap after death --- src/g_game.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/g_game.c b/src/g_game.c index 72a580b47..b0de381c8 100644 --- a/src/g_game.c +++ b/src/g_game.c @@ -2066,6 +2066,7 @@ void G_PlayerReborn(INT32 player, boolean betweenmaps) INT32 kickstartaccel; INT32 checkpointId; boolean enteredGame; + UINT8 lastsafelap; roundconditions_t roundconditions; boolean saveroundconditions; @@ -2134,6 +2135,8 @@ void G_PlayerReborn(INT32 player, boolean betweenmaps) pflags = (players[player].pflags & (PF_WANTSTOJOIN|PF_KICKSTARTACCEL|PF_SHRINKME|PF_SHRINKACTIVE|PF_AUTOROULETTE)); + lastsafelap = players[player].lastsafelap; + // SRB2kart memcpy(&itemRoulette, &players[player].itemRoulette, sizeof (itemRoulette)); memcpy(&respawn, &players[player].respawn, sizeof (respawn)); @@ -2287,6 +2290,7 @@ void G_PlayerReborn(INT32 player, boolean betweenmaps) p->spectator = spectator; p->steering = steering; p->angleturn = playerangleturn; + p->lastsafelap = lastsafelap; // save player config truth reborn p->skincolor = skincolor; From 9a46eca0390015eb93ecb822d8094dce29a1e5dc Mon Sep 17 00:00:00 2001 From: AJ Martinez Date: Thu, 19 Oct 2023 16:22:30 -0700 Subject: [PATCH 2/3] Lastsafelap betweenmaps --- src/g_game.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/g_game.c b/src/g_game.c index b0de381c8..e0a722ac7 100644 --- a/src/g_game.c +++ b/src/g_game.c @@ -2135,7 +2135,10 @@ void G_PlayerReborn(INT32 player, boolean betweenmaps) pflags = (players[player].pflags & (PF_WANTSTOJOIN|PF_KICKSTARTACCEL|PF_SHRINKME|PF_SHRINKACTIVE|PF_AUTOROULETTE)); - lastsafelap = players[player].lastsafelap; + if (betweenmaps) + lastsafelap = 0; + else + lastsafelap = players[player].lastsafelap; // SRB2kart memcpy(&itemRoulette, &players[player].itemRoulette, sizeof (itemRoulette)); From d3a14d087df33507e99659195f81190cba0ce3b7 Mon Sep 17 00:00:00 2001 From: AJ Martinez Date: Thu, 19 Oct 2023 16:23:38 -0700 Subject: [PATCH 3/3] Ugliest function in the codebase free --- src/g_game.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/g_game.c b/src/g_game.c index e0a722ac7..460bd5aed 100644 --- a/src/g_game.c +++ b/src/g_game.c @@ -2135,11 +2135,6 @@ void G_PlayerReborn(INT32 player, boolean betweenmaps) pflags = (players[player].pflags & (PF_WANTSTOJOIN|PF_KICKSTARTACCEL|PF_SHRINKME|PF_SHRINKACTIVE|PF_AUTOROULETTE)); - if (betweenmaps) - lastsafelap = 0; - else - lastsafelap = players[player].lastsafelap; - // SRB2kart memcpy(&itemRoulette, &players[player].itemRoulette, sizeof (itemRoulette)); memcpy(&respawn, &players[player].respawn, sizeof (respawn)); @@ -2179,6 +2174,7 @@ void G_PlayerReborn(INT32 player, boolean betweenmaps) exiting = 0; khudfinish = 0; cheatchecknum = 0; + lastsafelap = 0; saveroundconditions = false; tallyactive = false; @@ -2225,6 +2221,8 @@ void G_PlayerReborn(INT32 player, boolean betweenmaps) memcpy(&roundconditions, &players[player].roundconditions, sizeof (roundconditions)); saveroundconditions = true; + lastsafelap = players[player].lastsafelap; + tallyactive = players[player].tally.active; if (tallyactive) {