[Scummvm-cvs-logs] SF.net SVN: scummvm:[42876] scummvm/branches/branch-1-0-0/engines/scumm

Kirben at users.sourceforge.net Kirben at users.sourceforge.net
Wed Jul 29 04:04:30 CEST 2009


Revision: 42876
          http://scummvm.svn.sourceforge.net/scummvm/?rev=42876&view=rev
Author:   Kirben
Date:     2009-07-29 02:04:30 +0000 (Wed, 29 Jul 2009)

Log Message:
-----------
Backport recent changes to save games in SCUMM engine, in order to retain compatbility.

Modified Paths:
--------------
    scummvm/branches/branch-1-0-0/engines/scumm/saveload.cpp
    scummvm/branches/branch-1-0-0/engines/scumm/saveload.h
    scummvm/branches/branch-1-0-0/engines/scumm/scumm.cpp
    scummvm/branches/branch-1-0-0/engines/scumm/scumm.h
    scummvm/branches/branch-1-0-0/engines/scumm/scumm_v0.h
    scummvm/branches/branch-1-0-0/engines/scumm/scumm_v2.h

Modified: scummvm/branches/branch-1-0-0/engines/scumm/saveload.cpp
===================================================================
--- scummvm/branches/branch-1-0-0/engines/scumm/saveload.cpp	2009-07-29 01:11:53 UTC (rev 42875)
+++ scummvm/branches/branch-1-0-0/engines/scumm/saveload.cpp	2009-07-29 02:04:30 UTC (rev 42876)
@@ -1382,11 +1382,31 @@
 }
 
 void ScummEngine_v0::saveOrLoad(Serializer *s) {
+	ScummEngine_v2::saveOrLoad(s);
+
+	const SaveLoadEntry v0Entrys[] = {
+		MKLINE(ScummEngine_v0, _currentMode, sleByte, VER(78)),
+		MKLINE(ScummEngine_v0, _currentLights, sleByte, VER(78)),
+		MKEND()
+	};
+ 	s->saveLoadEntries(this, v0Entrys);
+}
+
+
+void ScummEngine_v2::saveOrLoad(Serializer *s) {
 	ScummEngine::saveOrLoad(s);
 
-	// TODO: Save additional variables
-	// _currentMode
-	// _currentLights
+	const SaveLoadEntry v2Entrys[] = {
+		MKLINE(ScummEngine_v2, _inventoryOffset, sleUint16, VER(79)),
+		MKEND()
+	};
+	s->saveLoadEntries(this, v2Entrys);
+
+	// In old saves we didn't store _inventoryOffset -> reset it to
+	// a sane default when loading one of those.
+	if (s->getVersion() < 79 && s->isLoading()) {
+		_inventoryOffset = 0;
+	}
 }
 
 void ScummEngine_v5::saveOrLoad(Serializer *s) {

Modified: scummvm/branches/branch-1-0-0/engines/scumm/saveload.h
===================================================================
--- scummvm/branches/branch-1-0-0/engines/scumm/saveload.h	2009-07-29 01:11:53 UTC (rev 42875)
+++ scummvm/branches/branch-1-0-0/engines/scumm/saveload.h	2009-07-29 02:04:30 UTC (rev 42876)
@@ -50,7 +50,7 @@
  * only saves/loads those which are valid for the version of the savegame
  * which is being loaded/saved currently.
  */
-#define CURRENT_VER 77
+#define CURRENT_VER 79
 
 /**
  * An auxillary macro, used to specify savegame versions. We use this instead

Modified: scummvm/branches/branch-1-0-0/engines/scumm/scumm.cpp
===================================================================
--- scummvm/branches/branch-1-0-0/engines/scumm/scumm.cpp	2009-07-29 01:11:53 UTC (rev 42875)
+++ scummvm/branches/branch-1-0-0/engines/scumm/scumm.cpp	2009-07-29 02:04:30 UTC (rev 42876)
@@ -214,7 +214,6 @@
 	_roomResource = 0;
 	OF_OWNER_ROOM = 0;
 	_verbMouseOver = 0;
-	_inventoryOffset = 0;
 	_classData = NULL;
 	_actorToPrintStrFor = 0;
 	_sentenceNum = 0;
@@ -646,6 +645,8 @@
 ScummEngine_v2::ScummEngine_v2(OSystem *syst, const DetectorResult &dr)
 	: ScummEngine_v3old(syst, dr) {
 
+	_inventoryOffset = 0;
+
 	_activeInventory = 0;
 	_activeObject = 0;
 	_activeVerb = 0;

Modified: scummvm/branches/branch-1-0-0/engines/scumm/scumm.h
===================================================================
--- scummvm/branches/branch-1-0-0/engines/scumm/scumm.h	2009-07-29 01:11:53 UTC (rev 42875)
+++ scummvm/branches/branch-1-0-0/engines/scumm/scumm.h	2009-07-29 02:04:30 UTC (rev 42876)
@@ -884,7 +884,6 @@
 protected:
 	/* Should be in Verb class */
 	uint16 _verbMouseOver;
-	int _inventoryOffset;
 	int8 _userPut;
 	uint16 _userState;
 

Modified: scummvm/branches/branch-1-0-0/engines/scumm/scumm_v0.h
===================================================================
--- scummvm/branches/branch-1-0-0/engines/scumm/scumm_v0.h	2009-07-29 01:11:53 UTC (rev 42875)
+++ scummvm/branches/branch-1-0-0/engines/scumm/scumm_v0.h	2009-07-29 02:04:30 UTC (rev 42876)
@@ -35,7 +35,7 @@
  */
 class ScummEngine_v0 : public ScummEngine_v2 {
 protected:
-	int _currentMode;
+	byte _currentMode;
 
 public:
 	ScummEngine_v0(OSystem *syst, const DetectorResult &dr);

Modified: scummvm/branches/branch-1-0-0/engines/scumm/scumm_v2.h
===================================================================
--- scummvm/branches/branch-1-0-0/engines/scumm/scumm_v2.h	2009-07-29 01:11:53 UTC (rev 42875)
+++ scummvm/branches/branch-1-0-0/engines/scumm/scumm_v2.h	2009-07-29 02:04:30 UTC (rev 42876)
@@ -45,6 +45,7 @@
 	int8 _mouseOverBoxV2;
 
 	char _sentenceBuf[256];
+	uint16 _inventoryOffset;
 
 	int _activeInventory;
 	int _activeObject;
@@ -66,6 +67,8 @@
 	virtual void resetScummVars();
 	virtual void decodeParseString();
 
+	virtual void saveOrLoad(Serializer *s);
+
 	virtual void processKeyboard(Common::KeyState lastKeyHit);
 
 	virtual void readIndexFile();


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list