[Scummvm-git-logs] scummvm master -> b8c8432a4660c301594929fc6e2dc0d5eec1b37a
sev-
sev at scummvm.org
Thu Jul 15 23:19:21 UTC 2021
This automated email contains information about 3 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
0fcb6aa3e5 METAENGINE: Add optional offset parameter for extended saves
71443dbc7f SAGA2: Properly write offset to the extened save header
b8c8432a46 SAGA2: Use conventional save names
Commit: 0fcb6aa3e57122994318da1482ac9358e1ec8edc
https://github.com/scummvm/scummvm/commit/0fcb6aa3e57122994318da1482ac9358e1ec8edc
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2021-07-16T01:18:56+02:00
Commit Message:
METAENGINE: Add optional offset parameter for extended saves
Changed paths:
engines/metaengine.cpp
engines/metaengine.h
diff --git a/engines/metaengine.cpp b/engines/metaengine.cpp
index d9cf5898bb..1d7e02d049 100644
--- a/engines/metaengine.cpp
+++ b/engines/metaengine.cpp
@@ -176,10 +176,10 @@ void MetaEngine::appendExtendedSave(Common::OutSaveFile *saveFile, uint32 playti
}
void MetaEngine::appendExtendedSaveToStream(Common::WriteStream *saveFile, uint32 playtime,
- Common::String desc, bool isAutosave) {
+ Common::String desc, bool isAutosave, uint32 posoffset) {
ExtendedSavegameHeader header;
- uint headerPos = saveFile->pos();
+ uint headerPos = saveFile->pos() + posoffset;
strcpy(header.id, "SVMCR");
header.version = EXTENDED_SAVE_VERSION;
diff --git a/engines/metaengine.h b/engines/metaengine.h
index b79ddf3eec..8e7635b3f1 100644
--- a/engines/metaengine.h
+++ b/engines/metaengine.h
@@ -527,7 +527,7 @@ public:
/**
* Write the extended savegame header to the given WriteStream.
*/
- void appendExtendedSaveToStream(Common::WriteStream *saveFile, uint32 playtime, Common::String desc, bool isAutosave);
+ void appendExtendedSaveToStream(Common::WriteStream *saveFile, uint32 playtime, Common::String desc, bool isAutosave, uint32 offset = 0);
/**
* Parse the extended savegame header to retrieve the SaveStateDescriptor information.
Commit: 71443dbc7f9d512bdbf56d93bc61ad9d1cc314e2
https://github.com/scummvm/scummvm/commit/71443dbc7f9d512bdbf56d93bc61ad9d1cc314e2
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2021-07-16T01:18:56+02:00
Commit Message:
SAGA2: Properly write offset to the extened save header
Changed paths:
engines/saga2/saga2.cpp
diff --git a/engines/saga2/saga2.cpp b/engines/saga2/saga2.cpp
index 78d6ff6633..021356850b 100644
--- a/engines/saga2/saga2.cpp
+++ b/engines/saga2/saga2.cpp
@@ -140,7 +140,9 @@ Common::Error Saga2Engine::saveGameState(int slot, const Common::String &desc, b
outS->write("SCVM", 4);
CHUNK_BEGIN;
- getMetaEngine()->appendExtendedSaveToStream(out, g_vm->getTotalPlayTime() / 1000, desc, false);
+ uint32 pos = outS->pos() + 4;
+
+ getMetaEngine()->appendExtendedSaveToStream(out, g_vm->getTotalPlayTime() / 1000, desc, false, pos);
CHUNK_END;
outS->finalize();
Commit: b8c8432a4660c301594929fc6e2dc0d5eec1b37a
https://github.com/scummvm/scummvm/commit/b8c8432a4660c301594929fc6e2dc0d5eec1b37a
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2021-07-16T01:18:56+02:00
Commit Message:
SAGA2: Use conventional save names
Changed paths:
engines/saga2/metaengine.cpp
engines/saga2/saga2.cpp
engines/saga2/saga2.h
engines/saga2/saveload.cpp
engines/saga2/saveload.h
engines/saga2/uidialog.cpp
diff --git a/engines/saga2/metaengine.cpp b/engines/saga2/metaengine.cpp
index e033b10898..86ec894526 100644
--- a/engines/saga2/metaengine.cpp
+++ b/engines/saga2/metaengine.cpp
@@ -31,7 +31,6 @@ public:
Common::Error createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const override;
bool hasFeature(MetaEngineFeature f) const override;
- Common::String getSavegameFile(int saveGameIdx, const char *target) const override;
};
bool Saga2MetaEngine::hasFeature(MetaEngineFeature f) const {
@@ -51,16 +50,6 @@ Common::Error Saga2MetaEngine::createInstance(OSystem *syst, Engine **engine, co
return Common::kNoError;
}
-Common::String Saga2MetaEngine::getSavegameFile(int saveGameIdx, const char *target) const {
- if (saveGameIdx == kSavegameFilePattern) {
- // Pattern requested
- return Common::String::format("###.SAV");
- } else {
- // Specific filename requested
- return Common::String::format("%3.3d.SAV", saveGameIdx);
- }
-}
-
#if PLUGIN_ENABLED_DYNAMIC(SAGA2)
REGISTER_PLUGIN_DYNAMIC(SAGA2, PLUGIN_TYPE_ENGINE, Saga2MetaEngine);
#else
diff --git a/engines/saga2/saga2.cpp b/engines/saga2/saga2.cpp
index 021356850b..6f1a8fbcc0 100644
--- a/engines/saga2/saga2.cpp
+++ b/engines/saga2/saga2.cpp
@@ -129,10 +129,14 @@ Common::Error Saga2Engine::saveGameStream(Common::WriteStream *stream, bool isAu
return Common::kNoError;
}
+Common::String Saga2Engine::getSavegameFile(int slot) {
+ return getMetaEngine()->getSavegameFile(slot, _targetName.c_str());
+}
+
Common::Error Saga2Engine::saveGameState(int slot, const Common::String &desc, bool isAutosave) {
pauseTimer();
- Common::OutSaveFile *outS = getSaveFileManager()->openForSaving(getSaveFileName(slot), false);
+ Common::OutSaveFile *outS = getSaveFileManager()->openForSaving(getSavegameFile(slot), false);
if (!outS)
return Common::kCreatingFileFailed;
diff --git a/engines/saga2/saga2.h b/engines/saga2/saga2.h
index cc42b8ee7e..1201191b91 100644
--- a/engines/saga2/saga2.h
+++ b/engines/saga2/saga2.h
@@ -91,6 +91,9 @@ public:
Common::Error saveGameStream(Common::WriteStream *stream, bool isAutosave = false) override;
Common::Error saveGameState(int slot, const Common::String &desc, bool isAutosave) override;
Common::Error loadGameState(int slot) override;
+
+ Common::String getSavegameFile(int num);
+
void syncGameStream(Common::Serializer &s);
void loadExeResources();
diff --git a/engines/saga2/saveload.cpp b/engines/saga2/saveload.cpp
index ad1872a417..e55954e19a 100644
--- a/engines/saga2/saveload.cpp
+++ b/engines/saga2/saveload.cpp
@@ -67,10 +67,6 @@ void SaveFileHeader::write(Common::OutSaveFile *out) {
debugC(1, kDebugSaveload, "Writing game header: gameID = %s, saveName = %s", tag2str(gameID), saveName.c_str());
}
-Common::String getSaveFileName(int16 saveNo) {
- return Common::String::format("%3.3d.SAV", saveNo);
-}
-
/* ===================================================================== *
Functions
* ===================================================================== */
@@ -264,7 +260,7 @@ void loadSavedGameState(int16 saveNo) {
pauseTimer();
- Common::InSaveFile *in = g_vm->getSaveFileManager()->openForLoading(getSaveFileName(saveNo));
+ Common::InSaveFile *in = g_vm->getSaveFileManager()->openForLoading(g_vm->getSavegameFile(saveNo));
ChunkID id;
int32 chunkSize;
@@ -561,7 +557,7 @@ void cleanupGameState(void) {
void checkRestartGame(const char *exeName) {
#if 0
char saveRestart[260];
- getSaveFileName(999, saveRestart);
+ g_vm->getSavegameFile(999, saveRestart);
if (!fileExists(saveRestart) ||
(getFileDate(exeName) > getFileDate(saveRestart)))
saveGameState(999, saveRestart);
diff --git a/engines/saga2/saveload.h b/engines/saga2/saveload.h
index ea6bec28e5..0c65ab3bb0 100644
--- a/engines/saga2/saveload.h
+++ b/engines/saga2/saveload.h
@@ -71,8 +71,6 @@ 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/uidialog.cpp b/engines/saga2/uidialog.cpp
index 9365909ec0..ac8238ff38 100644
--- a/engines/saga2/uidialog.cpp
+++ b/engines/saga2/uidialog.cpp
@@ -84,13 +84,6 @@ extern BackWindow *mainWindow;
extern audioInterface *audio;
extern bool fullInitialized;
-/* ===================================================================== *
- External functions
- * ===================================================================== */
-
-void getSaveFileName(int16 saveNo, char *fileName);
-
-
/* ===================================================================== *
Dialog Controls
* ===================================================================== */
@@ -620,10 +613,11 @@ void destroyFileFields(char **strings) {
}
bool getSaveName(int8 saveNo, SaveFileHeader &header) {
- Common::InSaveFile *in = g_system->getSavefileManager()->openForLoading(getSaveFileName(saveNo));
+ Common::String fname = g_vm->getSavegameFile(saveNo);
+ Common::InSaveFile *in = g_system->getSavefileManager()->openForLoading(fname);
if (!in) {
- debugC(1, kDebugSaveload, "Unable to load save %d (%s)", saveNo, getSaveFileName(saveNo).c_str());
+ debugC(1, kDebugSaveload, "Unable to load save %d (%s)", saveNo, fname.c_str());
return false;
}
More information about the Scummvm-git-logs
mailing list