[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