From 0b5124b8c4d120237b42c194ea81015bfac1bf58 Mon Sep 17 00:00:00 2001 From: toaster Date: Sun, 28 May 2023 19:00:06 +0100 Subject: [PATCH] G_SaveGameData: Remove the "writtengamedata" secondary counter Instead, subtract from the associated "numgamedata" variable and check if nonzero to continue. --- src/g_game.c | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/src/g_game.c b/src/g_game.c index aca6206a3..d70a319d6 100644 --- a/src/g_game.c +++ b/src/g_game.c @@ -5220,7 +5220,7 @@ void G_SaveGameData(void) } } - length += 4 + (numgamedatacups * (4+16)); + length += 4 + (numgamedatacups * (MAXCUPNAME+4)); if (P_SaveBufferAlloc(&save, length) == false) { @@ -5313,11 +5313,10 @@ void G_SaveGameData(void) // Main records WRITEUINT32(save.p, numgamedatamapheaders); // 4 + if (numgamedatamapheaders) { // numgamedatamapheaders * (MAXMAPLUMPNAME+1+4+4) - UINT32 writtengamedatamapheaders = 0; - for (i = 0; i < nummapheaders; i++) { if (!(mapheaderinfo[i]->records.mapvisited & MV_MAX)) @@ -5337,11 +5336,11 @@ void G_SaveGameData(void) WRITEUINT32(save.p, mapheaderinfo[i]->records.time); WRITEUINT32(save.p, mapheaderinfo[i]->records.lap); - if (++writtengamedatamapheaders >= numgamedatamapheaders) + if (--numgamedatamapheaders == 0) break; } - if (writtengamedatamapheaders < numgamedatamapheaders) + if (numgamedatamapheaders) { for (unloadedmap = unloadedmapheaders; unloadedmap; unloadedmap = unloadedmap->next) { @@ -5355,7 +5354,7 @@ void G_SaveGameData(void) WRITEUINT32(save.p, unloadedmap->records.time); WRITEUINT32(save.p, unloadedmap->records.lap); - if (++writtengamedatamapheaders >= numgamedatamapheaders) + if (--numgamedatamapheaders == 0) break; } } @@ -5364,10 +5363,9 @@ void G_SaveGameData(void) WRITEUINT32(save.p, numgamedatacups); // 4 + if (numgamedatacups) { - // (numgamedatacups * (4+16)) - - UINT32 writtengamedatacups = 0; + // numgamedatacups * (MAXCUPNAME+4) #define WRITECUPWINDATA(maybeunloadedcup) \ for (i = 0; i < KARTGP_MAX; i++) \ @@ -5389,11 +5387,11 @@ void G_SaveGameData(void) WRITECUPWINDATA(cup); - if (++writtengamedatacups >= numgamedatacups) + if (--numgamedatacups == 0) break; } - if (writtengamedatacups < numgamedatacups) + if (numgamedatacups) { for (unloadedcup = unloadedcupheaders; unloadedcup; unloadedcup = unloadedcup->next) { @@ -5404,7 +5402,7 @@ void G_SaveGameData(void) WRITECUPWINDATA(unloadedcup); - if (++writtengamedatacups >= numgamedatacups) + if (--numgamedatacups == 0) break; } }