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

thebluegr at users.sourceforge.net thebluegr at users.sourceforge.net
Wed Jan 5 00:11:19 CET 2011


Revision: 55122
          http://scummvm.svn.sourceforge.net/scummvm/?rev=55122&view=rev
Author:   thebluegr
Date:     2011-01-04 23:11:19 +0000 (Tue, 04 Jan 2011)

Log Message:
-----------
SCI: Fixed part of bug #3150767 - "KQ5 French crash on startup, only partial English text"

This is a regression from r54510

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

Modified: scummvm/trunk/engines/sci/engine/script.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/script.cpp	2011-01-04 21:45:09 UTC (rev 55121)
+++ scummvm/trunk/engines/sci/engine/script.cpp	2011-01-04 23:11:19 UTC (rev 55122)
@@ -588,8 +588,20 @@
 
 					if (pass == 2) {
 						if (!obj->initBaseObject(segMan, addr)) {
-							error("Failed to locate base object for object at %04X:%04X", PRINT_REG(addr));
-							//scriptObjRemove(addr);
+							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 bugs #3035396 and
+								// #3150767.
+								// Same happens with script 764, it seems to
+								// contain junk towards its end.
+								if (getSciVersion() < SCI_VERSION_1_1)
+									addr.offset += 8;
+
+								_objects.erase(addr.toUint16());
+							} else {
+								error("Failed to locate base object for object at %04X:%04X", 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