From ad6118f7a7452119587085d50d3ceca345994bc7 Mon Sep 17 00:00:00 2001 From: toaster Date: Tue, 5 Mar 2024 16:31:39 +0000 Subject: [PATCH] Store scores in Grand Prix backup --- src/g_game.c | 2 +- src/k_rank.h | 1 + src/p_saveg.c | 16 ++++++++++++++++ 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/g_game.c b/src/g_game.c index 69699b24f..f2e73a8d4 100644 --- a/src/g_game.c +++ b/src/g_game.c @@ -4830,7 +4830,7 @@ void G_DirtyGameData(void) // Can be called by the startup code or the menu task. // -#define SAV_VERSIONMINOR 3 +#define SAV_VERSIONMINOR 4 void G_LoadGame(void) { diff --git a/src/k_rank.h b/src/k_rank.h index 8e3911e7d..ede1f5fa0 100644 --- a/src/k_rank.h +++ b/src/k_rank.h @@ -37,6 +37,7 @@ struct gpRank_level_t gpRank_level_perplayer_t perPlayer[MAXSPLITSCREENPLAYERS]; }; +// Please remember to update P_ArchiveMisc struct gpRank_t { UINT8 numPlayers; diff --git a/src/p_saveg.c b/src/p_saveg.c index 1720561e2..f83435774 100644 --- a/src/p_saveg.c +++ b/src/p_saveg.c @@ -6100,6 +6100,14 @@ static inline void P_ArchiveMisc(savebuffer_t *save) WRITEUINT8(save->p, (UINT8)rank->specialWon); + WRITEINT32(save->p, rank->scorePosition); + WRITEINT32(save->p, rank->scoreGPPoints); + WRITEINT32(save->p, rank->scoreLaps); + WRITEINT32(save->p, rank->scorePrisons); + WRITEINT32(save->p, rank->scoreRings); + WRITEINT32(save->p, rank->scoreContinues); + WRITEINT32(save->p, rank->scoreTotal); + WRITEUINT8(save->p, rank->numLevels); for (i = 0; i < rank->numLevels; i++) @@ -6331,6 +6339,14 @@ static boolean P_UnArchiveSPGame(savebuffer_t *save) rank->specialWon = (boolean)READUINT8(save->p); + rank->scorePosition = READINT32(save->p); + rank->scoreGPPoints = READINT32(save->p); + rank->scoreLaps = READINT32(save->p); + rank->scorePrisons = READINT32(save->p); + rank->scoreRings = READINT32(save->p); + rank->scoreContinues = READINT32(save->p); + rank->scoreTotal = READINT32(save->p); + rank->numLevels = READUINT8(save->p); if (rank->numLevels > roundqueue.size)