diff --git a/src/g_game.c b/src/g_game.c index c860b24f0..18605d9fa 100644 --- a/src/g_game.c +++ b/src/g_game.c @@ -4835,7 +4835,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 c975682bc..e95837d97 100644 --- a/src/p_saveg.c +++ b/src/p_saveg.c @@ -6104,6 +6104,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++) @@ -6335,6 +6343,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)