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

fingolfin at users.sourceforge.net fingolfin at users.sourceforge.net
Wed Nov 17 14:02:00 CET 2010


Revision: 54290
          http://scummvm.svn.sourceforge.net/scummvm/?rev=54290&view=rev
Author:   fingolfin
Date:     2010-11-17 13:01:58 +0000 (Wed, 17 Nov 2010)

Log Message:
-----------
SCI: Make class table size OB1 workaround slightly more readable

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

Modified: scummvm/trunk/engines/sci/engine/script.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/script.cpp	2010-11-17 12:33:55 UTC (rev 54289)
+++ scummvm/trunk/engines/sci/engine/script.cpp	2010-11-17 13:01:58 UTC (rev 54290)
@@ -537,14 +537,16 @@
 
 		if (isClass) {
 			// WORKAROUNDs for off-by-one script errors
-			if (g_sci->getGameId() == GID_LSL2 && g_sci->isDemo() && species == (int)segMan->classTableSize())
-				segMan->resizeClassTable(segMan->classTableSize() + 1);
-			if (g_sci->getGameId() == GID_LSL3 && !g_sci->isDemo() && _nr == 500 && species == (int)segMan->classTableSize())
-				segMan->resizeClassTable(segMan->classTableSize() + 1);
-			if (g_sci->getGameId() == GID_SQ3 && !g_sci->isDemo() && _nr == 93 && species == (int)segMan->classTableSize())
-				segMan->resizeClassTable(segMan->classTableSize() + 1);
-			if (g_sci->getGameId() == GID_SQ3 && !g_sci->isDemo() && _nr == 99 && species == (int)segMan->classTableSize())
-				segMan->resizeClassTable(segMan->classTableSize() + 1);
+			if (species == (int)segMan->classTableSize()) {
+				if (g_sci->getGameId() == GID_LSL2 && g_sci->isDemo())
+					segMan->resizeClassTable(species + 1);
+				else if (g_sci->getGameId() == GID_LSL3 && !g_sci->isDemo() && _nr == 500)
+					segMan->resizeClassTable(species + 1);
+				else if (g_sci->getGameId() == GID_SQ3 && !g_sci->isDemo() && _nr == 93)
+					segMan->resizeClassTable(species + 1);
+				else if (g_sci->getGameId() == GID_SQ3 && !g_sci->isDemo() && _nr == 99)
+					segMan->resizeClassTable(species + 1);
+			}
 
 			if (species < 0 || species >= (int)segMan->classTableSize())
 				error("Invalid species %d(0x%x) unknown max %d(0x%x) while instantiating script %d\n",


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