commit 2cdef9e50991905c1e1c6b61046525c97a8707e4
Author: Noseey <omega_1986@hotmail.com>
AuthorDate: Mon Mar 24 22:05:15 2025 +0100
Commit: Noseey <omega_1986@hotmail.com>
CommitDate: Mon Mar 24 22:05:15 2025 +0100
Heretic: Rework SV_Close and add it to DoLoadGame
---
src/heretic/doomdef.h | 3 ++-
src/heretic/g_game.c | 5 ++++-
src/heretic/p_saveg.c | 13 +++++++++++--
3 files changed, 17 insertions(+), 4 deletions(-)
diff --git a/src/heretic/doomdef.h b/src/heretic/doomdef.h
index 8139a7b3..8d5e13e5 100644
--- a/src/heretic/doomdef.h
+++ b/src/heretic/doomdef.h
@@ -679,7 +679,8 @@ void G_SaveGame(int slot, char *description);
char *SV_Filename(int slot);
void SV_Open(char *fileName);
void SV_OpenRead(char *fileName);
-void SV_Close(char *fileName);
+void SV_WriteSaveGameEOF(void);
+void SV_Close(void);
void SV_Write(void *buffer, int size);
void SV_WriteByte(byte val);
void SV_WriteWord(unsigned short val);
diff --git a/src/heretic/g_game.c b/src/heretic/g_game.c
index 030ed2ff..01bcc4ae 100644
--- a/src/heretic/g_game.c
+++ b/src/heretic/g_game.c
@@ -1714,6 +1714,8 @@ void G_DoLoadGame(void)
{ // Missing savegame termination marker
I_Error("Bad savegame");
}
+
+ SV_Close();
}
@@ -2270,7 +2272,8 @@ void G_DoSaveGame(void)
P_ArchiveWorld();
P_ArchiveThinkers();
P_ArchiveSpecials();
- SV_Close(filename);
+ SV_WriteSaveGameEOF();
+ SV_Close();
gameaction = ga_nothing;
savedescription[0] = 0;
diff --git a/src/heretic/p_saveg.c b/src/heretic/p_saveg.c
index d96ced3b..ad3bee19 100644
--- a/src/heretic/p_saveg.c
+++ b/src/heretic/p_saveg.c
@@ -75,14 +75,23 @@ void SV_OpenRead(char *filename)
//==========================================================================
//
-// SV_Close
+// SV_WriteSaveGameEOF
//
//==========================================================================
-void SV_Close(char *fileName)
+void SV_WriteSaveGameEOF(void)
{
SV_WriteByte(SAVE_GAME_TERMINATOR);
+}
+//==========================================================================
+//
+// SV_Close
+//
+//==========================================================================
+
+void SV_Close(void)
+{
// Enforce the same savegame size limit as in Vanilla Heretic
if (vanilla_savegame_limit && ftell(SaveGameFP) > SAVEGAMESIZE)