[Scummvm-cvs-logs] CVS: scummvm/scumm script_v2.cpp,1.60,1.61

Max Horn fingolfin at users.sourceforge.net
Wed Dec 11 12:49:03 CET 2002


Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1:/tmp/cvs-serv17957/scumm

Modified Files:
	script_v2.cpp 
Log Message:
Patch #651882: Noir mode fix

Index: script_v2.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v2.cpp,v
retrieving revision 1.60
retrieving revision 1.61
diff -u -d -r1.60 -r1.61
--- script_v2.cpp	9 Dec 2002 02:14:17 -0000	1.60
+++ script_v2.cpp	11 Dec 2002 20:48:32 -0000	1.61
@@ -1579,16 +1579,18 @@
 		break;
 
 	case 213:										/* set palette */
-		// One case where this is used is to turn off Sam & Max film
-		// noir mode. Unfortunately it only restores color to the
-		// palette, it doesn't take palette manipulation (darkening,
-		// etc.) into account. So, for instance, if you turn on film
-		// noir mode in Sam & Max's office, turn off the light and turn
-		// off film noir mode, the room will no longer look dark.
-		//
-		// This bug is present in the original interpreter, so it may
-		// not be worth the trouble fixing it.
-		setPalette(pop());
+		a = pop();
+
+		// This opcode is used when turning off noir mode in Sam & Max,
+		// but since our implementation of this feature doesn't change
+		// the original palette there's no need to reload it. Doing it
+		// this way, we avoid some graphics glitches that the original
+		// interpreter had.
+
+		if (_gameId == GID_SAMNMAX && vm.slot[_currentScript].number == 64)
+			setDirtyColors(0, 255);
+		else
+			setPalette(a);
 		break;
 
 	default:





More information about the Scummvm-git-logs mailing list