[Scummvm-cvs-logs] scummvm master -> 5c3b564e0b8fca3c1c4800aef9363f37805f4788

bluegr md5 at scummvm.org
Wed May 4 10:38:12 CEST 2011


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
5c3b564e0b TSAGE: Now initializing the save game version properly


Commit: 5c3b564e0b8fca3c1c4800aef9363f37805f4788
    https://github.com/scummvm/scummvm/commit/5c3b564e0b8fca3c1c4800aef9363f37805f4788
Author: md5 (md5 at scummvm.org)
Date: 2011-05-04T01:36:35-07:00

Commit Message:
TSAGE: Now initializing the save game version properly

Changed paths:
    engines/tsage/saveload.cpp
    engines/tsage/saveload.h



diff --git a/engines/tsage/saveload.cpp b/engines/tsage/saveload.cpp
index f495f5a..1ad7fa5 100644
--- a/engines/tsage/saveload.cpp
+++ b/engines/tsage/saveload.cpp
@@ -121,6 +121,7 @@ Common::Error Saver::save(int slot, const Common::String &saveName) {
 	// Set up the serialiser
 	Common::OutSaveFile *saveFile = g_system->getSavefileManager()->openForSaving(_vm->generateSaveName(slot));
 	Serialiser serialiser(NULL, saveFile);
+	serialiser.setSaveVersion(TSAGE_SAVEGAME_VERSION);
 
 	// Write out the savegame header
 	tSageSavegameHeader header;
@@ -171,6 +172,8 @@ Common::Error Saver::restore(int slot) {
 	readSavegameHeader(saveFile, header);
 	delete header.thumbnail;
 
+	serialiser.setSaveVersion(header.version);
+
 	// Load in data for objects that need to come at the start of the savegame
 	for (Common::List<SaveListener *>::iterator i = _listeners.begin(); i != _listeners.end(); ++i) {
 		(*i)->listenerSynchronise(serialiser);
diff --git a/engines/tsage/saveload.h b/engines/tsage/saveload.h
index b1b98ce..ec7cc7e 100644
--- a/engines/tsage/saveload.h
+++ b/engines/tsage/saveload.h
@@ -68,6 +68,12 @@ class Serialiser : public Common::Serializer {
 public:
 	Serialiser(Common::SeekableReadStream *in, Common::WriteStream *out) : Common::Serializer(in, out) {}
 
+	// HACK: TSAGE saved games contain a single byte for the savegame version,
+	// thus the normal syncVersion() Serializer member won't work here. In order
+	// to maintain compatibility with older game saves, this method is provided
+	// in order to set the savegame version from a byte
+	void setSaveVersion(byte version) { _version = version; }
+
 	void syncPointer(SavedObject **ptr, Common::Serializer::Version minVersion = 0,
 		Common::Serializer::Version maxVersion = kLastVersion);
 	void validate(const Common::String &s, Common::Serializer::Version minVersion = 0,






More information about the Scummvm-git-logs mailing list