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

thebluegr at users.sourceforge.net thebluegr at users.sourceforge.net
Thu Jan 13 00:53:14 CET 2011


Revision: 55218
          http://scummvm.svn.sourceforge.net/scummvm/?rev=55218&view=rev
Author:   thebluegr
Date:     2011-01-12 23:53:14 +0000 (Wed, 12 Jan 2011)

Log Message:
-----------
SCI: Fixed bug #3155550 - "SQ4 Russian: Script error in Scate-o-rama"

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

Modified: scummvm/trunk/engines/sci/engine/workarounds.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/workarounds.cpp	2011-01-12 23:33:30 UTC (rev 55217)
+++ scummvm/trunk/engines/sci/engine/workarounds.cpp	2011-01-12 23:53:14 UTC (rev 55218)
@@ -505,11 +505,20 @@
 		do {
 			workaround = workaroundList;
 			while (workaround->methodName) {
+				bool objectNameMatches = (workaround->objectName == NULL) || 
+										 (workaround->objectName == g_sci->getSciLanguageString(searchObjectName.c_str(), K_LANG_ENGLISH));
+
+				// Special case: in the fanmade Russian translation of SQ4, all
+				// of the object names have been deleted or renamed to Russian,
+				// thus we disable checking of the object name. Fixes bug #3155550.
+				if (g_sci->getLanguage() == Common::RU_RUS && g_sci->getGameId() == GID_SQ4)
+					objectNameMatches = true;
+
 				if (workaround->gameId == gameId
 						&& ((workaround->scriptNr == -1) || (workaround->scriptNr == curScriptNr))
 						&& ((workaround->roomNr == -1) || (workaround->roomNr == curRoomNumber))
 						&& ((workaround->inheritanceLevel == -1) || (workaround->inheritanceLevel == inheritanceLevel))
-						&& ((workaround->objectName == NULL) || (workaround->objectName == g_sci->getSciLanguageString(searchObjectName.c_str(), K_LANG_ENGLISH)))
+						&& objectNameMatches
 						&& workaround->methodName == g_sci->getSciLanguageString(curMethodName.c_str(), K_LANG_ENGLISH)
 						&& workaround->localCallOffset == lastCall->debugLocalCallOffset
 						&& ((workaround->index == -1) || (workaround->index == index))) {


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