[Scummvm-cvs-logs] SF.net SVN: scummvm: [25807] scummvm/trunk/engines/agos

kirben at users.sourceforge.net kirben at users.sourceforge.net
Fri Feb 23 11:18:15 CET 2007


Revision: 25807
          http://scummvm.svn.sourceforge.net/scummvm/?rev=25807&view=rev
Author:   kirben
Date:     2007-02-23 02:18:14 -0800 (Fri, 23 Feb 2007)

Log Message:
-----------
Fix bug #1600999 - SIMON2: Crash while talking to Bingo Bongo. A regression due to the work around for extra long strings been broken, when support for the Feeble Files was added in the past.

Modified Paths:
--------------
    scummvm/trunk/engines/agos/res.cpp
    scummvm/trunk/engines/agos/res_snd.cpp
    scummvm/trunk/engines/agos/script.cpp
    scummvm/trunk/engines/agos/script_e2.cpp

Modified: scummvm/trunk/engines/agos/res.cpp
===================================================================
--- scummvm/trunk/engines/agos/res.cpp	2007-02-23 02:35:01 UTC (rev 25806)
+++ scummvm/trunk/engines/agos/res.cpp	2007-02-23 10:18:14 UTC (rev 25807)
@@ -658,12 +658,13 @@
 	uint32 file, offs, srcSize, dstSize;
 	uint extraBuffer = 0;
 
-	if (getGameType() == GType_SIMON1 || getGameType() == GType_SIMON2) {
-		// !!! HACK !!!
+	if ((getGameType() == GType_SIMON1 || getGameType() == GType_SIMON2) &&
+		id == 2 && type == 2) {
+		// WORKAROUND: For the exta long strings in foreign languages
 		// Allocate more space for text to cope with foreign languages that use
 		// up more space than english. I hope 6400 bytes are enough. This number
 		// is base on: 2 (lines) * 320 (screen width) * 10 (textheight) -- olki
-		extraBuffer = (id == 5 ? 6400 : 0);
+		extraBuffer += 6400;
 	}
 
 	if (getFeatures() & GF_ZLIBCOMP) {

Modified: scummvm/trunk/engines/agos/res_snd.cpp
===================================================================
--- scummvm/trunk/engines/agos/res_snd.cpp	2007-02-23 02:35:01 UTC (rev 25806)
+++ scummvm/trunk/engines/agos/res_snd.cpp	2007-02-23 10:18:14 UTC (rev 25807)
@@ -191,6 +191,7 @@
 		} else if (getPlatform() == Common::kPlatformAmiga) {
 			loadModule(music);
 		} else if (getFeatures() & GF_TALKIE) {
+			// WORKAROUND: For a script bug in the CD versions
 			// We skip this music resource, as it was replaced by
 			// a sound effect, and the script was never updated.
 			if (music == 35)

Modified: scummvm/trunk/engines/agos/script.cpp
===================================================================
--- scummvm/trunk/engines/agos/script.cpp	2007-02-23 02:35:01 UTC (rev 25806)
+++ scummvm/trunk/engines/agos/script.cpp	2007-02-23 10:18:14 UTC (rev 25807)
@@ -614,7 +614,7 @@
 	uint vga_res = getVarOrWord();
 	uint mode = getVarOrByte();
 
-	// Work around a script bug in the Amiga AGA/CD32 versions
+	// WORKAROUND: For a script bug in the Amiga AGA/CD32 versions
 	// When selecting locations on the magical map, the script looks
 	// for vga_res 12701, but only vga_res 12700 exists.
 	if (getGameType() == GType_SIMON1 && getPlatform() == Common::kPlatformAmiga &&

Modified: scummvm/trunk/engines/agos/script_e2.cpp
===================================================================
--- scummvm/trunk/engines/agos/script_e2.cpp	2007-02-23 02:35:01 UTC (rev 25806)
+++ scummvm/trunk/engines/agos/script_e2.cpp	2007-02-23 10:18:14 UTC (rev 25807)
@@ -281,7 +281,7 @@
 	// 156: is bit set
 	uint bit = getVarWrapper();
 
-	// WORKAROUND: Fix for glitch in some versions
+	// WORKAROUND: For for script glitch in some versions
 	if (getGameType() == GType_SIMON1 && _subroutine == 2962 && bit == 63) {
 		bit = 50;
 	}


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