[Scummvm-cvs-logs] SF.net SVN: scummvm:[45858] scummvm/trunk/engines/sci/engine/savegame.cpp

thebluegr at users.sourceforge.net thebluegr at users.sourceforge.net
Thu Nov 12 12:47:28 CET 2009


Revision: 45858
          http://scummvm.svn.sourceforge.net/scummvm/?rev=45858&view=rev
Author:   thebluegr
Date:     2009-11-12 11:47:28 +0000 (Thu, 12 Nov 2009)

Log Message:
-----------
Some more tweaks for skipping the menu data in savegames, when INCLUDE_OLDGFX isn't defined (it still problematic and goes out of sync)

Modified Paths:
--------------
    scummvm/trunk/engines/sci/engine/savegame.cpp

Modified: scummvm/trunk/engines/sci/engine/savegame.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/savegame.cpp	2009-11-12 10:32:29 UTC (rev 45857)
+++ scummvm/trunk/engines/sci/engine/savegame.cpp	2009-11-12 11:47:28 UTC (rev 45858)
@@ -307,25 +307,33 @@
 		assert(_menubar);
 	_menubar->saveLoadWithSerializer(s);
 #else
+	// FIXME: This code goes out of sync when loading. Find out why
+
 	// OBSOLETE: Saved menus. Skip all of the saved data
-	int menuLength = 0;
-	s.syncAsUint32LE(menuLength);
-	s.syncString(tmp);				// OBSOLETE: Used to be _title
-	s.skip(4, VER(12), VER(12));	// OBSOLETE: Used to be _titleWidth
-	s.skip(4, VER(12), VER(12));	// OBSOLETE: Used to be _width
+	int totalMenus = 0;
+	s.syncAsUint32LE(totalMenus);
 
 	// Now iterate through the obsolete saved menu data
-	for (int i = 0; i < menuLength; i++) {
-		s.skip(4, VER(12), VER(12));		// OBSOLETE: Used to be _type
-		s.syncString(tmp);					// OBSOLETE: Used to be _keytext
-		s.skip(4, VER(9), VER(9)); 			// OBSOLETE: Used to be keytext_size
+	for (int i = 0; i < totalMenus; i++) {
+		s.syncString(tmp);				// OBSOLETE: Used to be _title
+		s.skip(4, VER(12), VER(12));	// OBSOLETE: Used to be _titleWidth
+		s.skip(4, VER(12), VER(12));	// OBSOLETE: Used to be _width
 
-		s.skip(4, VER(12), VER(12));		// OBSOLETE: Used to be _flags
-		s.skip(64, VER(12), VER(12));		// OBSOLETE: Used to be MENU_SAID_SPEC_SIZE
-		s.skip(4, VER(12), VER(12));		// OBSOLETE: Used to be _saidPos
-		s.syncString(tmp);					// OBSOLETE: Used to be _text
-		s.skip(4, VER(12), VER(12));		// OBSOLETE: Used to be _textPos
-		s.skip(4 * 4, VER(12), VER(12));	// OBSOLETE: Used to be _modifiers, _key, _enabled and _tag
+		int menuLength = 0;
+		s.syncAsUint32LE(menuLength);
+
+		for (int j = 0; j < menuLength; j++) {
+			s.skip(4, VER(12), VER(12));		// OBSOLETE: Used to be _type
+			s.syncString(tmp);					// OBSOLETE: Used to be _keytext
+			s.skip(4, VER(9), VER(9)); 			// OBSOLETE: Used to be keytext_size
+
+			s.skip(4, VER(12), VER(12));		// OBSOLETE: Used to be _flags
+			s.skip(64, VER(12), VER(12));		// OBSOLETE: Used to be MENU_SAID_SPEC_SIZE
+			s.skip(4, VER(12), VER(12));		// OBSOLETE: Used to be _saidPos
+			s.syncString(tmp);					// OBSOLETE: Used to be _text
+			s.skip(4, VER(12), VER(12));		// OBSOLETE: Used to be _textPos
+			s.skip(4 * 4, VER(12), VER(12));	// OBSOLETE: Used to be _modifiers, _key, _enabled and _tag
+		}
 	}
 #endif
 


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