[Scummvm-cvs-logs] SF.net SVN: scummvm: [25335] scummvm/trunk/engines/scumm/script_v5.cpp

fingolfin at users.sourceforge.net fingolfin at users.sourceforge.net
Fri Feb 2 14:54:00 CET 2007


Revision: 25335
          http://scummvm.svn.sourceforge.net/scummvm/?rev=25335&view=rev
Author:   fingolfin
Date:     2007-02-02 05:53:59 -0800 (Fri, 02 Feb 2007)

Log Message:
-----------
Workaround for bug #1621210 (FOA: Kerner counts incorrectly during end sequence)

Modified Paths:
--------------
    scummvm/trunk/engines/scumm/script_v5.cpp

Modified: scummvm/trunk/engines/scumm/script_v5.cpp
===================================================================
--- scummvm/trunk/engines/scumm/script_v5.cpp	2007-02-02 12:51:44 UTC (rev 25334)
+++ scummvm/trunk/engines/scumm/script_v5.cpp	2007-02-02 13:53:59 UTC (rev 25335)
@@ -2758,15 +2758,30 @@
 				}
 			}
 			break;
-		case 15:	// SO_TEXTSTRING
-			// WORKAROUND: This happens when Chaos introduces
-			// herself to bishop Mandible. Of all the places to put
-			// a typo...
-			if (_game.id == GID_LOOM && strcmp((const char *) _scriptPointer, "I am Choas.") == 0)
-				printString(textSlot, (const byte *) "I am Chaos.");
-			else
-				printString(textSlot, _scriptPointer);
-			_scriptPointer += resStrLen(_scriptPointer) + 1;
+		case 15:{	// SO_TEXTSTRING
+				const int len = resStrLen(_scriptPointer);
+	
+				if (_game.id == GID_LOOM && strcmp((const char *) _scriptPointer, "I am Choas.") == 0) {
+					// WORKAROUND: This happens when Chaos introduces
+					// herself to bishop Mandible. Of all the places to put
+					// a typo...
+					printString(textSlot, (const byte *) "I am Chaos.");
+				} else if (_game.id == GID_INDY4 && _roomResource == 23 && vm.slot[_currentScript].number == 167 &&
+						len == 24 && 0==memcmp(_scriptPointer+16, "pregod", 6)) {
+					// WORKAROUND for bug #1621210.
+					byte tmpBuf[25];
+					memcpy(tmpBuf, _scriptPointer, 25);
+					if (tmpBuf[22] == '8')
+						strcpy((char *)tmpBuf+16, "^18^");
+					else
+						strcpy((char *)tmpBuf+16, "^19^");
+					printf("evil workaround active");
+					printString(textSlot, tmpBuf);
+				} else {
+					printString(textSlot, _scriptPointer);
+				}
+				_scriptPointer += len + 1;
+			}
 
 
  			// In SCUMM V1-V3, there were no 'default' values for the text slot


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