[Scummvm-cvs-logs] SF.net SVN: scummvm:[54455] scummvm/trunk/engines/sci

thebluegr at users.sourceforge.net thebluegr at users.sourceforge.net
Wed Nov 24 12:57:12 CET 2010


Revision: 54455
          http://scummvm.svn.sourceforge.net/scummvm/?rev=54455&view=rev
Author:   thebluegr
Date:     2010-11-24 11:57:11 +0000 (Wed, 24 Nov 2010)

Log Message:
-----------
SCI: Some slight changes to get the "find_callk" console command working in KQ5

- Ignore invalid object in KQ5 script 784
- Script 980 looks to be an unused leftover, as its object contain references to
classes placed in script 988, which is missing

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

Modified: scummvm/trunk/engines/sci/console.cpp
===================================================================
--- scummvm/trunk/engines/sci/console.cpp	2010-11-24 11:26:48 UTC (rev 54454)
+++ scummvm/trunk/engines/sci/console.cpp	2010-11-24 11:57:11 UTC (rev 54455)
@@ -2749,6 +2749,13 @@
 	SegManager *segMan = _engine->getEngineState()->_segMan;
 
 	while (itr != resources->end()) {
+		if (_engine->getGameId() == GID_KQ5 && itr->getNumber() == 980) {
+			// Ignore script 980 in KQ5. Seems to be a leftover, as it
+			// uses a superclass from script 988, which doesn't exist
+			itr++;
+			continue;
+		}
+
 		// Load script
 		scriptSegment = segMan->instantiateScript(itr->getNumber());
 		script = segMan->getScript(scriptSegment);

Modified: scummvm/trunk/engines/sci/engine/script.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/script.cpp	2010-11-24 11:26:48 UTC (rev 54454)
+++ scummvm/trunk/engines/sci/engine/script.cpp	2010-11-24 11:57:11 UTC (rev 54455)
@@ -596,10 +596,11 @@
 				obj->initSpecies(segMan, addr);
 
 				if (!obj->initBaseObject(segMan, addr)) {
-					if (_nr == 202 && g_sci->getGameId() == GID_KQ5) {
+					if ((_nr == 202 || _nr == 764) && g_sci->getGameId() == GID_KQ5) {
 						// WORKAROUND: Script 202 of KQ5 French and German 
 						// (perhaps Spanish too?) has an invalid object.
 						// This is non-fatal. Refer to bug #3035396.
+						// Same happens with script 764, it seems to contain junk towards its end
 					} else {
 						error("Failed to locate base object for object at %04X:%04X; skipping", PRINT_REG(addr));
 					}


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