[Scummvm-git-logs] scummvm master -> 464206bf73f0e36caa33accbfa8e11eacd619747

a-yyg 76591232+a-yyg at users.noreply.github.com
Mon Jul 5 11:26:55 UTC 2021


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
464206bf73 SAGA2: Add game save stub


Commit: 464206bf73f0e36caa33accbfa8e11eacd619747
    https://github.com/scummvm/scummvm/commit/464206bf73f0e36caa33accbfa8e11eacd619747
Author: a/ (yuri.kgpps at gmail.com)
Date: 2021-07-05T20:23:07+09:00

Commit Message:
SAGA2: Add game save stub

Changed paths:
    engines/saga2/loadsave.cpp
    engines/saga2/loadsave.h
    engines/saga2/savefile.cpp
    engines/saga2/savefile.h


diff --git a/engines/saga2/loadsave.cpp b/engines/saga2/loadsave.cpp
index f1a19021d1..de3f220eef 100644
--- a/engines/saga2/loadsave.cpp
+++ b/engines/saga2/loadsave.cpp
@@ -129,11 +129,29 @@ void initGameState(void) {
 //----------------------------------------------------------------------
 //	Save the current game state
 
-void saveGameState(int16 saveNo, char *saveName) {
+void writeSavegameHeader(Common::OutSaveFile *out, SaveFileHeader &header) {
+	out->writeUint32LE(header.gameID);
+	out->write(header.saveName, saveNameSize);
+	out->write(header.reserved, sizeof(header.reserved));
+}
+
+Common::Error saveGameState(int16 saveNo, char *saveName) {
 	pauseTimer();
 
-	SaveFileConstructor     saveGame(saveNo, saveName);
+	//SaveFileConstructor     saveGame(saveNo, saveName);
+	Common::OutSaveFile *out = g_vm->getSaveFileManager()->openForSaving(getSaveFileName(saveNo));
+	if (!out)
+		return Common::kCreatingFileFailed;
+
+	SaveFileHeader header;
+	memset(&header, 0, sizeof(header));
+	header.gameID = gameID;
+	Common::strlcpy(header.saveName, saveName, saveNameSize - 1);
 
+	warning("saveGameState: gameID: %s, saveName: %s", tag2str(header.gameID), header.saveName);
+	writeSavegameHeader(out, header);
+
+#if 0
 	saveGlobals(saveGame);
 	saveTimer(saveGame);
 	saveCalender(saveGame);
@@ -164,8 +182,15 @@ void saveGameState(int16 saveNo, char *saveName) {
 	saveUIState(saveGame);
 	savePaletteState(saveGame);
 	saveContainerNodes(saveGame);
+#endif
+
+	out->finalize();
+
+	delete out;
 
 	resumeTimer();
+
+	return Common::kNoError;
 }
 
 //----------------------------------------------------------------------
diff --git a/engines/saga2/loadsave.h b/engines/saga2/loadsave.h
index 4e52fd2297..d9f01805bf 100644
--- a/engines/saga2/loadsave.h
+++ b/engines/saga2/loadsave.h
@@ -33,7 +33,7 @@ namespace Saga2 {
 void initGameState(void);
 
 //  Save the current game state
-void saveGameState(int16 saveNo, char *saveName);
+Common::Error saveGameState(int16 saveNo, char *saveName);
 
 //  Load a previously saved game state
 void loadSavedGameState(int16 saveNo);
@@ -44,6 +44,7 @@ void cleanupGameState(void);
 void checkRestartGame(const char *exeName);
 void loadRestartGame(void);
 void getSaveFileName(int16 saveNo, char *fileName);
+Common::String getSaveFileName(int16 saveNo);
 
 } // end of namespace Saga2
 
diff --git a/engines/saga2/savefile.cpp b/engines/saga2/savefile.cpp
index b59fb89268..7fb8ffeae3 100644
--- a/engines/saga2/savefile.cpp
+++ b/engines/saga2/savefile.cpp
@@ -43,6 +43,10 @@ void getSaveFileName(int16 saveNo, char *fileName) {
 	sprintf(fileName, "%3.3d.SAV", saveNo);
 }
 
+Common::String getSaveFileName(int16 saveNo) {
+	return Common::String::format("%3.3d.SAV", saveNo);
+}
+
 /* ===================================================================== *
    SaveFileConstructor member functions
  * ===================================================================== */
diff --git a/engines/saga2/savefile.h b/engines/saga2/savefile.h
index 1b0db2d157..8c5fafe70d 100644
--- a/engines/saga2/savefile.h
+++ b/engines/saga2/savefile.h
@@ -27,6 +27,8 @@
 #ifndef SAGA2_SAVEFILE_H
 #define SAGA2_SAVEFILE_H
 
+#include "common/savefile.h"
+
 namespace Saga2 {
 
 /* ===================================================================== *
@@ -36,11 +38,7 @@ namespace Saga2 {
 const int16     saveNameSize = 40,
                 fileNameSize = 260;
 
-#ifdef FTA
 const ChunkID   gameID = MKTAG('F', 'T', 'A', '2');
-#else
-const ChunkID   gameID = MKTAG('D', 'I', 'N', 'O');
-#endif
 
 /* ===================================================================== *
    SaveFileHeader class




More information about the Scummvm-git-logs mailing list