[Scummvm-cvs-logs] CVS: scummvm/scumm actor.cpp,1.402,1.403 charset.cpp,2.164,2.165 cursor.cpp,2.50,2.51 debugger.cpp,1.158,1.159 gfx.cpp,2.488,2.489 help.cpp,1.27,1.28 script.cpp,1.242,1.243 script_v5.cpp,1.306,1.307 scumm.cpp,1.703,1.704 scumm.h,1.672,1.673 sound.cpp,1.503,1.504 string.cpp,1.321,1.322 vars.cpp,1.165,1.166

Max Horn fingolfin at users.sourceforge.net
Mon Jan 23 12:11:01 CET 2006


Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3067

Modified Files:
	actor.cpp charset.cpp cursor.cpp debugger.cpp gfx.cpp help.cpp 
	script.cpp script_v5.cpp scumm.cpp scumm.h sound.cpp 
	string.cpp vars.cpp 
Log Message:
Removing GID_ZAK256 and GID_LOOM256

Index: actor.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/actor.cpp,v
retrieving revision 1.402
retrieving revision 1.403
diff -u -d -r1.402 -r1.403
--- actor.cpp	22 Jan 2006 20:46:48 -0000	1.402
+++ actor.cpp	23 Jan 2006 20:09:23 -0000	1.403
@@ -253,7 +253,7 @@
 	// not necessary here because we never call the function unless the
 	// actor is in the current room anyway.
 
-	if (!_ignoreBoxes || (_vm->_gameId == GID_LOOM || _vm->_gameId == GID_LOOM256)) {
+	if (!_ignoreBoxes || _vm->_gameId == GID_LOOM) {
 		specdir = _vm->_extraBoxFlags[_walkbox];
 		if (specdir) {
 			if (specdir & 0x8000) {
@@ -1384,7 +1384,7 @@
 	convertMessageToString(msg, _charsetBuffer, sizeof(_charsetBuffer));
 
 	// FIXME: Workaround for bugs #770039 and #770049
-	if (_gameId == GID_LOOM || _gameId == GID_LOOM256) {
+	if (_gameId == GID_LOOM) {
 		if (!*_charsetBuffer)
 			return;
 	}

Index: charset.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/charset.cpp,v
retrieving revision 2.164
retrieving revision 2.165
diff -u -d -r2.164 -r2.165
--- charset.cpp	18 Jan 2006 17:39:40 -0000	2.164
+++ charset.cpp	23 Jan 2006 20:09:23 -0000	2.165
@@ -1175,8 +1175,8 @@
 	bool useShadow = false;
 	_color = color;
 
-	// FM-TOWNS version of Loom uses old colour method as well
-	if ((_vm->_version >= 2) && (_vm->_features & GF_16COLOR || _vm->_gameId == GID_LOOM)) {
+	// FM-TOWNS version of Loom uses old color method as well
+	if ((_vm->_version >= 2) && (_vm->_features & GF_16COLOR || (_vm->_gameId == GID_LOOM && _vm->_version == 3))) {
 		useShadow = ((_color & 0xF0) != 0);
 		_color &= 0x0f;
 	} else if (_vm->_features & GF_OLD256) {

Index: cursor.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/cursor.cpp,v
retrieving revision 2.50
retrieving revision 2.51
diff -u -d -r2.50 -r2.51
--- cursor.cpp	18 Jan 2006 17:39:40 -0000	2.50
+++ cursor.cpp	23 Jan 2006 20:09:23 -0000	2.51
@@ -335,7 +335,7 @@
 
 void ScummEngine_v5::redefineBuiltinCursorFromChar(int index, int chr) {
 	// Cursor image in both Looms are based on images from charset.
-	if (_gameId != GID_LOOM && _gameId != GID_LOOM256) {
+	if (_gameId != GID_LOOM) {
 		// FIXME: Actually: is this opcode ever called by a non-Loom game?
 		// Which V3-V5 game besides Loom makes use of custom cursors, ever?
 		error("V3--V5 SO_CURSOR_IMAGE(%d,%d) called - tell Fingolfin where you saw this!", index, chr);
@@ -379,7 +379,7 @@
 
 void ScummEngine_v5::redefineBuiltinCursorHotspot(int index, int x, int y) {
 	// Cursor image in both Looms are based on images from charset.
-	if (_gameId != GID_LOOM && _gameId != GID_LOOM256) {
+	if (_gameId != GID_LOOM) {
 		// FIXME: Actually: is this opcode ever called by a non-Loom game?
 		// Which V3-V5 game besides Loom makes use of custom cursors, ever?
 		error("V3--V5 SO_CURSOR_HOTSPOT(%d,%d,%d) called - tell Fingolfin where you saw this!", index, x, y);

Index: debugger.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/debugger.cpp,v
retrieving revision 1.158
retrieving revision 1.159
diff -u -d -r1.158 -r1.159
--- debugger.cpp	21 Jan 2006 13:01:19 -0000	1.158
+++ debugger.cpp	23 Jan 2006 20:09:23 -0000	1.159
@@ -104,7 +104,7 @@
 	DCmd_Register("scripts", &ScummDebugger::Cmd_PrintScript);
 	DCmd_Register("importres", &ScummDebugger::Cmd_ImportRes);
 
-	if (_vm->_gameId == GID_LOOM || _vm->_gameId == GID_LOOM256)
+	if (_vm->_gameId == GID_LOOM)
 		DCmd_Register("drafts", &ScummDebugger::Cmd_PrintDraft);
 
 	DCmd_Register("loadgame", &ScummDebugger::Cmd_LoadGame);
@@ -824,7 +824,7 @@
 	const char *notes = "cdefgabC";
 	int i, base, draft;
 
-	if (_vm->_gameId != GID_LOOM && _vm->_gameId != GID_LOOM256) {
+	if (_vm->_gameId != GID_LOOM) {
 		DebugPrintf("Command only works with Loom/LoomCD\n");
 		return true;
 	}
@@ -850,7 +850,7 @@
 	// Possibly they store information on where and/or how the draft can
 	// be used. They appear to remain constant throughout the game.
 
-	base = (_vm->_gameId == GID_LOOM) ? 50 : 100;
+	base = (_vm->_version == 3) ? 50 : 100;
 
 	if (argc == 2) {
 		// We had to debug a problem at the end of the game that only

Index: gfx.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/gfx.cpp,v
retrieving revision 2.488
retrieving revision 2.489
diff -u -d -r2.488 -r2.489
--- gfx.cpp	18 Jan 2006 17:39:40 -0000	2.488
+++ gfx.cpp	23 Jan 2006 20:09:23 -0000	2.489
@@ -1105,7 +1105,7 @@
 		return;
 
 	// Calculate the area of the flashlight
-	if (_gameId == GID_ZAK256 || _version <= 2) {
+	if (_gameId == GID_ZAK || _gameId == GID_MANIAC) {
 		x = _mouse.x + vs->xstart;
 		y = _mouse.y - vs->topline;
 	} else {
@@ -1118,7 +1118,7 @@
 	_flashlight.x = x - _flashlight.w / 2 - _screenStartStrip * 8;
 	_flashlight.y = y - _flashlight.h / 2;
 
-	if (_gameId == GID_LOOM || _gameId == GID_LOOM256)
+	if (_gameId == GID_LOOM)
 		_flashlight.y -= 12;
 
 	// Clip the flashlight at the borders
@@ -3153,7 +3153,7 @@
 	// Speed up the effect for CD Loom since it uses it so often. I don't
 	// think the original had any delay at all, so on modern hardware it
 	// wasn't even noticeable.
-	if (_gameId == GID_LOOM256)
+	if (_gameId == GID_LOOM && (_version == 3))
 		blits_before_refresh *= 2;
 
 	for (i = 0; i < w * h; i++) {
@@ -3280,7 +3280,7 @@
 
 void ScummEngine::unkScreenEffect6() {
 	// CD Loom (but not EGA Loom!) uses a more fine-grained dissolve
-	if (_gameId == GID_LOOM256)
+	if (_gameId == GID_LOOM && (_version == 3))
 		dissolveEffect(1, 1);
 	else
 		dissolveEffect(8, 4);

Index: help.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/help.cpp,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -d -r1.27 -r1.28
--- help.cpp	18 Jan 2006 17:39:41 -0000	1.27
+++ help.cpp	23 Jan 2006 20:09:24 -0000	1.28
@@ -33,14 +33,12 @@
 	switch (gameId) {
 	case GID_MANIAC:
 	case GID_ZAK:
-	case GID_ZAK256:
 		return 4;
 		break;
 	case GID_INDY3:
 		return 6;
 		break;
 	case GID_LOOM:
-	case GID_LOOM256:
 	case GID_MONKEY_EGA:
 	case GID_MONKEY_VGA:
 	case GID_MONKEY:
@@ -113,13 +111,12 @@
 		ADD_TEXT("  or incorrect game behaviour.");
 		break;
 	case 3:
-		if (gameId == GID_LOOM || gameId == GID_LOOM256)
+		if (gameId == GID_LOOM)
 			title = "Spinning drafts on the keyboard:";
 		else
 			title = "Main game controls:";
 		switch (gameId) {
 		case GID_ZAK:
-		case GID_ZAK256:
 		case GID_MANIAC:
 			// HACK. I know use of g_scumm here is evil, however, 
 			// introducing new GID and putting it everywhere will
@@ -182,7 +179,6 @@
 			ADD_BIND("b", "To Henry / To Indy");
 			break;
 		case GID_LOOM:
-		case GID_LOOM256:
 			ADD_BIND("q, c", "play C minor on distaff");
 			ADD_BIND("w, d", "play D on distaff");
 			ADD_BIND("e, e", "play E on distaff");
@@ -260,10 +256,8 @@
 		}
 		break;
 	case 4:
-		switch (gameId) {
-		case GID_MANIAC:
-		case GID_ZAK:
-			title = "Other game controls:";
+		title = "Other game controls:";
+		if (version <= 2) {
 			ADD_TEXT("Inventory: (not yet implemented)");
 			ADD_BIND("u", "Scroll list up");
 			ADD_BIND("j", "Scroll list down");
@@ -283,10 +277,8 @@
 				ADD_BIND("F3", "Melissa");
 				ADD_BIND("F4", "Leslie");
 			}
-			break;
-		case GID_INDY3:
-		case GID_ZAK256:
-			title = "Other game controls:";
+		} else if (gameId == GID_INDY3 || gameId == GID_ZAK) {
+			// Indy3, or FM-TOWNS Zak
 			ADD_TEXT("Inventory:");
 			ADD_BIND("y", "Upper left item");
 			ADD_BIND("h", "Middle left item");
@@ -296,7 +288,7 @@
 			ADD_BIND("m", "Lower right item");
 			ADD_BIND("o", "Scroll list up");
 			ADD_BIND("l", "Scroll list down");
-			if (gameId == GID_ZAK256) {
+			if (gameId == GID_ZAK) {
 				ADD_LINE;
 				ADD_TEXT("Switching characters:");
 				ADD_BIND("F1", "Zak");
@@ -304,7 +296,6 @@
 				ADD_BIND("F3", "Melissa");
 				ADD_BIND("F4", "Leslie");
 			}
-			break;
 		}
 		break;
 	case 5:

Index: script.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script.cpp,v
retrieving revision 1.242
retrieving revision 1.243
diff -u -d -r1.242 -r1.243
--- script.cpp	22 Jan 2006 21:28:37 -0000	1.242
+++ script.cpp	23 Jan 2006 20:09:24 -0000	1.243
@@ -538,7 +538,7 @@
 			if (!_copyProtection) {
 				if (_gameId == GID_LOOM && (_platform == Common::kPlatformFMTowns) && var == 214 && bit == 15) {
 					return 0;
-				} else if (_gameId == GID_ZAK256 && var == 151 && bit == 8) {
+				} else if (_gameId == GID_ZAK && (_platform == Common::kPlatformFMTowns) && var == 151 && bit == 8) {
 					return 0;
 				}
 			}

Index: script_v5.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v5.cpp,v
retrieving revision 1.306
retrieving revision 1.307
diff -u -d -r1.306 -r1.307
--- script_v5.cpp	22 Jan 2006 20:46:51 -0000	1.306
+++ script_v5.cpp	23 Jan 2006 20:09:24 -0000	1.307
@@ -563,7 +563,7 @@
 	// understand the reasoning behind this, compare script 210 and 218 in
 	// room 20. Apparently they made a mistake when converting the absolute
 	// delays into relative ones.
-	if (_gameId == GID_LOOM256 && vm.slot[_currentScript].number == 210 && _currentRoom == 20 && _resultVarNumber == 0x4000) {
+	if (_gameId == GID_LOOM && _version == 4 && vm.slot[_currentScript].number == 210 && _currentRoom == 20 && _resultVarNumber == 0x4000) {
 		switch (a) {
 		// Fix for the Var[250] == 11 case
 		case 138:
@@ -1740,7 +1740,7 @@
 	case 6:			// SO_NUKE_SOUND
 	case 7:			// SO_NUKE_COSTUME
 	case 8:			// SO_NUKE_ROOM
-		if (_gameId == GID_ZAK256)
+		if (_gameId == GID_ZAK && (_platform == Common::kPlatformFMTowns))
 			error("o5_resourceRoutines %d should not occur in Zak256", op);
 		else
 			res.setResourceCounter(resType[op-5], resid, 0x7F);
@@ -2266,12 +2266,12 @@
 
 	// FIXME: Script 171 loads a complete room resource, instead of the actual script.
 	// Causing invalid opcode cases, see bug #1290485
-	if (_gameId == GID_ZAK256 && script == 171)
+	if (_gameId == GID_ZAK && (_platform == Common::kPlatformFMTowns) && script == 171)
 		return;
 
 	if (!_copyProtection) {
 		// Method used by original games to skip copy protection scheme
-		if (_gameId == GID_LOOM && _currentRoom == 69 && script == 201)
+		if (_gameId == GID_LOOM && _version == 3 && _currentRoom == 69 && script == 201)
 			script = 205;
 		else if ((_gameId == GID_MONKEY_VGA || _gameId == GID_MONKEY_EGA) && script == 152)
 			return;
@@ -2321,7 +2321,7 @@
 		b = getVarOrDirectByte(PARAM_2);
 		c = getVarOrDirectByte(PARAM_3);
 		ptr = getResourceAddress(rtString, a);
-		if (_gameId != GID_LOOM256) {	/* FIXME - LOOM256 */
+		if (!(_gameId == GID_LOOM && _version == 4)) {	/* FIXME - LOOM256 */
 			if (ptr == NULL)
 				error("String %d does not exist", a);
 			ptr[b] = c;
@@ -2433,7 +2433,7 @@
 					vs->curRect.top += 8;
 					break;
 				}
-			} else 	if (_gameId == GID_LOOM256) {
+			} else 	if (_gameId == GID_LOOM && _version == 4) {
 			// FIXME: hack loom notes into right spot
 				if ((verb >= 90) && (verb <= 97)) {	// Notes
 					switch (verb) {
@@ -2602,7 +2602,7 @@
 		return;
 	}
 
-	if (_gameId == GID_LOOM256 && nr == 1 && nr2 == 0 &&
+	if (_gameId == GID_LOOM && _version == 4 && nr == 1 && nr2 == 0 &&
 		dist == 255 && vm.slot[_currentScript].number == 98) {
 		// WORKAROUND bug #743615: LoomCD script 98 contains this:
 		//   walkActorToActor(1,0,255)
@@ -2736,7 +2736,7 @@
 				int offset = (uint16)getVarOrDirectWord(PARAM_1);
 				int delay = (uint16)getVarOrDirectWord(PARAM_2);
 
-				if (_gameId == GID_LOOM256) {
+				if (_gameId == GID_LOOM && _version == 4) {
 					if (offset == 0 && delay == 0) {
 						VAR(VAR_MUSIC_TIMER) = 0;
 						_sound->stopCD();
@@ -2762,7 +2762,7 @@
 			// WORKAROUND: This happens when Chaos introduces
 			// herself to bishop Mandible. Of all the places to put
 			// a typo...
-			if (_gameId == GID_LOOM256 && strcmp((const char *) _scriptPointer, "I am Choas.") == 0)
+			if (_gameId == GID_LOOM && strcmp((const char *) _scriptPointer, "I am Choas.") == 0)
 				printString(textSlot, (const byte *) "I am Chaos.");
 			else
 				printString(textSlot, _scriptPointer);

Index: scumm.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/scumm.cpp,v
retrieving revision 1.703
retrieving revision 1.704
diff -u -d -r1.703 -r1.704
--- scumm.cpp	23 Jan 2006 19:13:05 -0000	1.703
+++ scumm.cpp	23 Jan 2006 20:09:24 -0000	1.704
@@ -494,7 +494,7 @@
 	{"6f0be328c64d689bb606d22a389e1b0f", "Loom (Macintosh)", GID_LOOM, 3, 0, MDT_PCSPK,
 	 GF_SMALL_HEADER | GF_NO_SCALING | GF_16COLOR | GF_USE_KEY | GF_OLD_BUNDLE, Common::kPlatformMacintosh},
 
-	{"5d88b9d6a88e6f8e90cded9d01b7f082", "Loom (256 color CD version)", GID_LOOM256, 4, 0, MDT_NONE,
+	{"5d88b9d6a88e6f8e90cded9d01b7f082", "Loom (256 color CD version)", GID_LOOM, 4, 0, MDT_NONE,
 	 GF_SMALL_HEADER | GF_USE_KEY | GF_AUDIOTRACKS, Common::kPlatformPC},
 	{"c5d10e190d4b4d59114b824f2fdbd00e", "Loom (FM-TOWNS)", GID_LOOM, 3, 0, MDT_TOWNS,
 	 GF_SMALL_HEADER | GF_NO_SCALING | GF_OLD256 | GF_AUDIOTRACKS, Common::kPlatformFMTowns},
@@ -677,18 +677,18 @@
 	{"7020931d5a2be0a49d68e7a1882363e4", "Zak McKracken and the Alien Mindbenders (v1)", GID_ZAK, 1, 0, MDT_PCSPK,
 	 GF_SMALL_HEADER | GF_USE_KEY | GF_16COLOR | GF_OLD_BUNDLE | GF_NO_SCALING, Common::kPlatformPC},
 
-	{"2d4536a56e01da4b02eb021e7770afa2", "Zak McKracken and the Alien Mindbenders (FM-TOWNS)", GID_ZAK256, 3, 0, MDT_TOWNS,
+	{"2d4536a56e01da4b02eb021e7770afa2", "Zak McKracken and the Alien Mindbenders (FM-TOWNS)", GID_ZAK, 3, 0, MDT_TOWNS,
 	 GF_SMALL_HEADER | GF_NO_SCALING | GF_OLD256 | GF_AUDIOTRACKS, Common::kPlatformFMTowns},
-	{"ce3edc99cd4f478c5b37104d70c68ca5", "Zak McKracken and the Alien Mindbenders (FM-TOWNS Jp)", GID_ZAK256, 3, 0, MDT_TOWNS,
+	{"ce3edc99cd4f478c5b37104d70c68ca5", "Zak McKracken and the Alien Mindbenders (FM-TOWNS Jp)", GID_ZAK, 3, 0, MDT_TOWNS,
 	 GF_SMALL_HEADER | GF_NO_SCALING | GF_OLD256 | GF_AUDIOTRACKS, Common::kPlatformFMTowns},
-	{"1ca86e2cf9aaa2068738a1e5ba477e60", "Zak McKracken and the Alien Mindbenders (FM-TOWNS Jp)", GID_ZAK256, 3, 0, MDT_TOWNS,
+	{"1ca86e2cf9aaa2068738a1e5ba477e60", "Zak McKracken and the Alien Mindbenders (FM-TOWNS Jp)", GID_ZAK, 3, 0, MDT_TOWNS,
 	 GF_SMALL_HEADER | GF_NO_SCALING | GF_OLD256 | GF_AUDIOTRACKS, Common::kPlatformFMTowns},
 
-	{"2d388339d6050d8ccaa757b64633954e", "Indy/Loom Demo (FM-TOWNS)", GID_ZAK256, 3, 0, MDT_TOWNS,
+	{"2d388339d6050d8ccaa757b64633954e", "Indy/Loom Demo (FM-TOWNS)", GID_ZAK, 3, 0, MDT_TOWNS,
 	 GF_SMALL_HEADER | GF_NO_SCALING | GF_OLD256 | GF_AUDIOTRACKS, Common::kPlatformFMTowns},
-	{"77f5c9cc0986eb729c1a6b4c8823bbae", "Zak/Loom Demo (FM-TOWNS)", GID_ZAK256, 3, 0, MDT_TOWNS,
+	{"77f5c9cc0986eb729c1a6b4c8823bbae", "Zak/Loom Demo (FM-TOWNS)", GID_ZAK, 3, 0, MDT_TOWNS,
 	 GF_SMALL_HEADER | GF_NO_SCALING | GF_OLD256 | GF_AUDIOTRACKS, Common::kPlatformFMTowns},
-	{"3938ee1aa4433fca9d9308c9891172b1", "Indy/Zak Demo (FM-TOWNS)", GID_ZAK256, 3, 0, MDT_TOWNS,
+	{"3938ee1aa4433fca9d9308c9891172b1", "Indy/Zak Demo (FM-TOWNS)", GID_ZAK, 3, 0, MDT_TOWNS,
 	 GF_SMALL_HEADER | GF_NO_SCALING | GF_OLD256 | GF_AUDIOTRACKS, Common::kPlatformFMTowns},
 #endif
 	{NULL, NULL, 0, 0, MDT_NONE, 0, 0, Common::kPlatformUnknown}
@@ -2340,7 +2340,7 @@
 		VAR(VAR_TMR_1) += delta;
 		VAR(VAR_TMR_2) += delta;
 		VAR(VAR_TMR_3) += delta;
-		if (_gameId == GID_ZAK256 || _gameId == GID_INDY3) {
+		if (_gameId == GID_ZAK || _gameId == GID_INDY3) {
 			// All versions of Indy3 set three extra timers
 			// FM-TOWNS version of Zak sets three extra timers
 			VAR(39) += delta;
@@ -2487,7 +2487,7 @@
 		_charset->_hasMask = false;
 
 		// HACK as in game save stuff isn't supported currently
-		if (_gameId == GID_LOOM || _gameId == GID_LOOM256) {
+		if (_gameId == GID_LOOM) {
 			int args[16];
 			uint value;
 			memset(args, 0, sizeof(args));
@@ -2495,8 +2495,10 @@
 
 			if (_platform == Common::kPlatformMacintosh)
 				value = 105;
+			else if (_version == 4)	// 256 color CD version
+				value = 150;
 			else
- 				value = (_gameId == GID_LOOM256) ? 150 : 100;
+ 				value = 100;
 			byte restoreScript = (_platform == Common::kPlatformFMTowns) ? 17 : 18;
 			// if verbs should be shown restore them
 			if (VAR(value) == 2)

Index: scumm.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/scumm.h,v
retrieving revision 1.672
retrieving revision 1.673
diff -u -d -r1.672 -r1.673
--- scumm.h	22 Jan 2006 20:10:13 -0000	1.672
+++ scumm.h	23 Jan 2006 20:09:25 -0000	1.673
@@ -195,7 +195,6 @@
 	GID_INDY3,
 	GID_INDY4,
 	GID_LOOM,
-	GID_LOOM256,
 	GID_MANIAC,
 	GID_MONKEY_EGA,
 	GID_MONKEY_VGA,
@@ -205,7 +204,6 @@
 	GID_SAMNMAX,
 	GID_TENTACLE,
 	GID_ZAK,
-	GID_ZAK256,
 
 	GID_HEGAME,      // Generic name for all HE games with default behaviour
 	GID_PUTTDEMO,

Index: sound.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/sound.cpp,v
retrieving revision 1.503
retrieving revision 1.504
diff -u -d -r1.503 -r1.504
--- sound.cpp	21 Jan 2006 13:01:19 -0000	1.503
+++ sound.cpp	23 Jan 2006 20:09:25 -0000	1.504
@@ -1111,7 +1111,7 @@
 	// when Chaos first appears, and I have to use 101 for Monkey 1 or the
 	// intro music will be cut short.
 
-	if (_vm->_gameId == GID_LOOM256)
+	if (_vm->_gameId == GID_LOOM && _vm->_version == 4)
 		timer_interval = 100;
 	else
 		timer_interval = 101;
@@ -1766,7 +1766,7 @@
 		if (_gameId == GID_INDY3) {
 			// Note: since we fix ppqn at 480, ppqn/473 is almost 1
 			dw = 500000 * 256 / 473 * ppqn / ticks;
-		} else if (_gameId == GID_LOOM) {
+		} else if (_gameId == GID_LOOM && _version == 3) {
 			dw = 500000 * ppqn / 4 / ticks;
 		} else {
 			dw = 500000 * 256 / ticks;
@@ -2108,7 +2108,7 @@
 
 	debug(4, "readSoundResourceSmallHeader(%d)", idx);
 
-	if ((_gameId == GID_LOOM) && (_platform == Common::kPlatformPC) && VAR(VAR_SOUNDCARD) == 4) {
+	if ((_gameId == GID_LOOM) && (_version == 3) && (_platform == Common::kPlatformPC) && VAR(VAR_SOUNDCARD) == 4) {
 		// Roland resources in Loom are tagless
 		// So we add an RO tag to allow imuse to detect format
 		byte *ptr, *src_ptr;

Index: string.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/string.cpp,v
retrieving revision 1.321
retrieving revision 1.322
diff -u -d -r1.321 -r1.322
--- string.cpp	18 Jan 2006 17:39:47 -0000	1.321
+++ string.cpp	23 Jan 2006 20:09:25 -0000	1.322
@@ -410,7 +410,7 @@
 	if (!_haveMsg)
 		return;
 
-	if (!(_features & GF_NEW_CAMERA) && !(_gameId == GID_ZAK256 && getTalkingActor() == 0xFF)) {
+	if (!(_features & GF_NEW_CAMERA) && !(_gameId == GID_ZAK && (_platform == Common::kPlatformFMTowns) && getTalkingActor() == 0xFF)) {
 		if ((camera._dest.x / 8) != (camera._cur.x / 8) || camera._cur.x != camera._last.x)
 			return;
 	}
@@ -578,7 +578,7 @@
 					// HE games which use sprites for subtitles
 				} else if (_heversion >= 60 && !ConfMan.getBool("subtitles") && _sound->isSoundRunning(1)) {
 					// Special case for HE games
-				} else if ((_gameId == GID_LOOM256) && !ConfMan.getBool("subtitles") && (_sound->pollCD())) {
+				} else if ((_gameId == GID_LOOM) && !ConfMan.getBool("subtitles") && (_sound->pollCD())) {
 					// Special case for loomcd, since it only uses CD audio.for sound
 				} else if (!ConfMan.getBool("subtitles") && (!_haveActorSpeechMsg || _mixer->isSoundHandleActive(_sound->_talkChannelHandle))) {
 					// Subtitles are turned off, and there is a voice version

Index: vars.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/vars.cpp,v
retrieving revision 1.165
retrieving revision 1.166
diff -u -d -r1.165 -r1.166
--- vars.cpp	18 Jan 2006 17:39:47 -0000	1.165
+++ vars.cpp	23 Jan 2006 20:09:25 -0000	1.166
@@ -167,7 +167,7 @@
 	if (_version >= 4) {
 		VAR_V5_TALK_STRING_Y = 54;
 	}
-	if (_gameId == GID_LOOM256 || _version >= 5) {
+	if ((_gameId == GID_LOOM && _version == 4) || _version >= 5) {
 		VAR_NOSUBTITLES = 60;
 	}
 }
@@ -655,7 +655,7 @@
 			VAR(VAR_SOUNDCARD) = 3;
 			break;
 		default:
-			if ((_gameId == GID_MONKEY_EGA || _gameId == GID_MONKEY_VGA || _gameId == GID_LOOM)
+			if ((_gameId == GID_MONKEY_EGA || _gameId == GID_MONKEY_VGA || (_gameId == GID_LOOM && _version == 3))
 			   &&  (_platform == Common::kPlatformPC)) {
 				if (_gameId == GID_LOOM) {
 					char buf[50];
@@ -694,7 +694,7 @@
 			// Set screen size for the Macintosh version of Indy3/Loom
 			VAR(39) = 320;
 		}
-		if (_platform == Common::kPlatformPC && _gameId == GID_LOOM) {
+		if (_platform == Common::kPlatformPC && _gameId == GID_LOOM && _version == 3) {
 			// Set number of sound resources
 			VAR(39) = 80;
 		}





More information about the Scummvm-git-logs mailing list