aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorStrangerke2013-10-04 17:30:16 +0200
committerStrangerke2013-10-04 17:30:16 +0200
commit650613f5cab24ad5975282255dbf4d41baef822d (patch)
tree9b686ad009a781a65fd807f5a8c8f81128b20453 /engines
parent19cc272763bd4094508c9ec4862403aef8626dae (diff)
downloadscummvm-rg350-650613f5cab24ad5975282255dbf4d41baef822d.tar.gz
scummvm-rg350-650613f5cab24ad5975282255dbf4d41baef822d.tar.bz2
scummvm-rg350-650613f5cab24ad5975282255dbf4d41baef822d.zip
AVALANCHE: Use MKTAG for signature. This breaks prior savegames.
Diffstat (limited to 'engines')
-rw-r--r--engines/avalanche/avalanche.cpp10
-rw-r--r--engines/avalanche/detection.cpp16
2 files changed, 9 insertions, 17 deletions
diff --git a/engines/avalanche/avalanche.cpp b/engines/avalanche/avalanche.cpp
index 29045d70a2..3d059b60e2 100644
--- a/engines/avalanche/avalanche.cpp
+++ b/engines/avalanche/avalanche.cpp
@@ -290,8 +290,7 @@ bool AvalancheEngine::saveGame(const int16 slot, const Common::String &desc) {
return false;
}
- const char *signature = "AVAL";
- f->write(signature, 4);
+ f->writeUint32LE(MKTAG('A', 'V', 'A', 'L'));
// Write version. We can't restore from obsolete versions.
f->writeByte(kSavegameVersion);
@@ -334,11 +333,8 @@ bool AvalancheEngine::loadGame(const int16 slot) {
if (!f)
return false;
- // Check for our signature.
- Common::String signature;
- for (int i = 0; i < 4; i++)
- signature += f->readByte();
- if (signature != "AVAL")
+ uint32 signature = f->readUint32LE();
+ if (signature != MKTAG('A', 'V', 'A', 'L'))
return false;
// Check version. We can't restore from obsolete versions.
diff --git a/engines/avalanche/detection.cpp b/engines/avalanche/detection.cpp
index 8afd8e58f4..6630ab801f 100644
--- a/engines/avalanche/detection.cpp
+++ b/engines/avalanche/detection.cpp
@@ -129,10 +129,8 @@ SaveStateList AvalancheMetaEngine::listSaves(const char *target) const {
Common::InSaveFile *file = saveFileMan->openForLoading(*filename);
if (file) {
// Check for our signature.
- Common::String signature;
- for (int i = 0; i < 4; i++)
- signature += file->readByte();
- if (signature != "AVAL") {
+ uint32 signature = file->readUint32LE();
+ if (signature != MKTAG('A', 'V', 'A', 'L')) {
warning("Savegame of incompatible type!");
delete file;
continue;
@@ -177,10 +175,8 @@ SaveStateDescriptor AvalancheMetaEngine::querySaveMetaInfos(const char *target,
if (f) {
// Check for our signature.
- Common::String signature;
- for (int i = 0; i < 4; i++)
- signature += f->readByte();
- if (signature != "AVAL") {
+ uint32 signature = f->readUint32LE();
+ if (signature != MKTAG('A', 'V', 'A', 'L')) {
warning("Savegame of incompatible type!");
delete f;
return SaveStateDescriptor();
@@ -188,8 +184,8 @@ SaveStateDescriptor AvalancheMetaEngine::querySaveMetaInfos(const char *target,
// Check version.
byte saveVersion = f->readByte();
- if (saveVersion != kSavegameVersion) {
- warning("Savegame of incompatible version!");
+ if (saveVersion > kSavegameVersion) {
+ warning("Savegame of a too recent version!");
delete f;
return SaveStateDescriptor();
}