diff options
author | Strangerke | 2013-10-04 17:30:16 +0200 |
---|---|---|
committer | Strangerke | 2013-10-04 17:30:16 +0200 |
commit | 650613f5cab24ad5975282255dbf4d41baef822d (patch) | |
tree | 9b686ad009a781a65fd807f5a8c8f81128b20453 /engines | |
parent | 19cc272763bd4094508c9ec4862403aef8626dae (diff) | |
download | scummvm-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.cpp | 10 | ||||
-rw-r--r-- | engines/avalanche/detection.cpp | 16 |
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(); } |