aboutsummaryrefslogtreecommitdiff
path: root/saga
diff options
context:
space:
mode:
authorEugene Sandulenko2005-10-16 17:19:52 +0000
committerEugene Sandulenko2005-10-16 17:19:52 +0000
commit1529b1ad0a8d6da3587c0975df4b336e9f3cc490 (patch)
tree13325dac6bcc54f174a51dfbf24105b671359c43 /saga
parent68c5fe52c2f92827f27bf9b68ffcd12ecd9ba61f (diff)
downloadscummvm-rg350-1529b1ad0a8d6da3587c0975df4b336e9f3cc490.tar.gz
scummvm-rg350-1529b1ad0a8d6da3587c0975df4b336e9f3cc490.tar.bz2
scummvm-rg350-1529b1ad0a8d6da3587c0975df4b336e9f3cc490.zip
Store game title in savefile. Lets us not guess which game save is made for
as it is not possible to tell that by md5. Bumbed savegame version. svn-id: r19113
Diffstat (limited to 'saga')
-rw-r--r--saga/saveload.cpp15
1 files changed, 14 insertions, 1 deletions
diff --git a/saga/saveload.cpp b/saga/saveload.cpp
index d348baf314..de00300a73 100644
--- a/saga/saveload.cpp
+++ b/saga/saveload.cpp
@@ -39,7 +39,7 @@
#include "saga/scene.h"
#include "saga/script.h"
-#define CURRENT_SAGA_VER 4
+#define CURRENT_SAGA_VER 5
namespace Saga {
@@ -158,8 +158,10 @@ void SagaEngine::fillSaveList() {
}
+#define TITLESIZE 80
void SagaEngine::save(const char *fileName, const char *saveName) {
Common::OutSaveFile *out;
+ char title[TITLESIZE];
if (!(out = _saveFileMan->openForSaving(fileName))) {
return;
@@ -172,6 +174,11 @@ void SagaEngine::save(const char *fileName, const char *saveName) {
out->write(&_saveHeader, sizeof(_saveHeader));
+ // Original game title
+ memset(title, 0, TITLESIZE);
+ strncpy(title, getGameDescription()->title, TITLESIZE);
+ out->write(title, TITLESIZE);
+
// Surrounding scene
out->writeSint32LE(_scene->getOutsetSceneNumber());
@@ -203,6 +210,7 @@ void SagaEngine::load(const char *fileName) {
int commonBufferSize;
int sceneNumber, insetSceneNumber;
int mapx, mapy;
+ char title[TITLESIZE];
if (!(in = _saveFileMan->openForLoading(fileName))) {
return;
@@ -220,6 +228,11 @@ void SagaEngine::load(const char *fileName) {
error("SagaEngine::load wrong format");
}
+ if (_saveHeader.version > 4) {
+ in->read(title, TITLESIZE);
+ debug(2, "Save is for: %s", title);
+ }
+
// Surrounding scene
sceneNumber = in->readSint32LE();