aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Horn2002-07-16 15:25:22 +0000
committerMax Horn2002-07-16 15:25:22 +0000
commit8951ea0cd15ffe440dde11acbd65133e3f1fef07 (patch)
tree05b315b8440ca0f2a1b6b8b6a1e0f33f09f65ad0
parentb019de6872027e1537d21e920b8d5b289c62d63a (diff)
downloadscummvm-rg350-8951ea0cd15ffe440dde11acbd65133e3f1fef07.tar.gz
scummvm-rg350-8951ea0cd15ffe440dde11acbd65133e3f1fef07.tar.bz2
scummvm-rg350-8951ea0cd15ffe440dde11acbd65133e3f1fef07.zip
endian fix for save games (including code for backward compatibility so that old BE games will still load)
svn-id: r4571
-rw-r--r--saveload.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/saveload.cpp b/saveload.cpp
index a0934917bb..9d93e97b70 100644
--- a/saveload.cpp
+++ b/saveload.cpp
@@ -62,7 +62,7 @@ bool Scumm::saveState(int slot, bool compat)
hdr.type = MKID('SCVM');
hdr.size = 0;
- hdr.ver = _current_version;
+ hdr.ver = TO_LE_32(_current_version);
out.fwrite(&hdr, sizeof(hdr), 1);
@@ -95,7 +95,10 @@ bool Scumm::loadState(int slot, bool compat)
return false;
}
- if (hdr.ver < VER_V7 || hdr.ver > _current_version) {
+ if (hdr.ver < VER_V7 || hdr.ver > _current_version)
+ hdr.ver = TO_LE_32(hdr.ver);
+ if (hdr.ver < VER_V7 || hdr.ver > _current_version)
+ {
warning("Invalid version of '%s'", filename);
out.fclose();
return false;
@@ -210,6 +213,8 @@ bool Scumm::getSavegameName(int slot, char *desc)
return false;
}
+ if (hdr.ver < VER_V7 || hdr.ver > _current_version)
+ hdr.ver = TO_LE_32(hdr.ver);
if (hdr.ver < VER_V7 || hdr.ver > _current_version) {
strcpy(desc, "Invalid version");
return false;