diff options
Diffstat (limited to 'engines/kyra/saveload.cpp')
| -rw-r--r-- | engines/kyra/saveload.cpp | 29 |
1 files changed, 14 insertions, 15 deletions
diff --git a/engines/kyra/saveload.cpp b/engines/kyra/saveload.cpp index cd5ef52b92..80182d949b 100644 --- a/engines/kyra/saveload.cpp +++ b/engines/kyra/saveload.cpp @@ -18,20 +18,17 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * - * $URL$ - * $Id$ - * */ -#include "common/endian.h" +#include "kyra/kyra_v1.h" +#include "kyra/util.h" + #include "common/savefile.h" #include "common/system.h" + #include "graphics/thumbnail.h" #include "graphics/surface.h" -#include "kyra/kyra_v1.h" -#include "kyra/util.h" - #define CURRENT_SAVE_VERSION 16 #define GF_FLOPPY (1 << 0) @@ -47,13 +44,13 @@ KyraEngine_v1::kReadSaveHeaderError KyraEngine_v1::readSaveHeader(Common::Seekab header.flags = 0; header.thumbnail = 0; - if (type == MKID_BE('KYRA') || type == MKID_BE('ARYK')) { // old Kyra1 header ID + if (type == MKTAG('K','Y','R','A') || type == MKTAG('A','R','Y','K')) { // old Kyra1 header ID header.gameID = GI_KYRA1; header.oldHeader = true; - } else if (type == MKID_BE('HOFS')) { // old Kyra2 header ID + } else if (type == MKTAG('H','O','F','S')) { // old Kyra2 header ID header.gameID = GI_KYRA2; header.oldHeader = true; - } else if (type == MKID_BE('WWSV')) { + } else if (type == MKTAG('W','W','S','V')) { header.gameID = in->readByte(); } else { // try checking for original save header @@ -71,12 +68,12 @@ KyraEngine_v1::kReadSaveHeaderError KyraEngine_v1::readSaveHeader(Common::Seekab type = in->readUint32BE(); header.version = in->readUint16LE(); - if (type == MKID_BE('MBL3') && header.version == 100) { + if (type == MKTAG('M','B','L','3') && header.version == 100) { saveOk = true; header.description = descriptionBuffer; header.gameID = GI_KYRA2; break; - } else if (type == MKID_BE('MBL4') && header.version == 102) { + } else if (type == MKTAG('M','B','L','4') && header.version == 102) { saveOk = true; header.description = descriptionBuffer; header.gameID = GI_KYRA3; @@ -94,7 +91,7 @@ KyraEngine_v1::kReadSaveHeaderError KyraEngine_v1::readSaveHeader(Common::Seekab } header.version = in->readUint32BE(); - if (header.version > CURRENT_SAVE_VERSION || (header.oldHeader && header.version > 8) || (type == MKID_BE('ARYK') && header.version > 3)) + if (header.version > CURRENT_SAVE_VERSION || (header.oldHeader && header.version > 8) || (type == MKTAG('A','R','Y','K') && header.version > 3)) return kRSHEInvalidVersion; // Versions prior to 9 are using a fixed length description field @@ -190,7 +187,7 @@ Common::WriteStream *KyraEngine_v1::openSaveForWriting(const char *filename, con } // Savegame version - out->writeUint32BE(MKID_BE('WWSV')); + out->writeUint32BE(MKTAG('W','W','S','V')); out->writeByte(_flags.gameID); out->writeUint32BE(CURRENT_SAVE_VERSION); out->write(saveName, strlen(saveName)+1); @@ -257,7 +254,9 @@ void KyraEngine_v1::checkAutosave() { } void KyraEngine_v1::loadGameStateCheck(int slot) { - if (loadGameState(slot) != Common::kNoError) { + // FIXME: Instead of throwing away the error returned by + // loadGameState, we should use it / augment it. + if (loadGameState(slot).getCode() != Common::kNoError) { const char *filename = getSavegameFilename(slot); Common::String errorMessage = "Could not load savegame: '"; errorMessage += filename; |
