[Scummvm-cvs-logs] CVS: scummvm/scumm costume.cpp,1.101,1.102 intern.h,2.103,2.104 script_v2.cpp,2.174,2.175

Travis Howell kirben at users.sourceforge.net
Mon Aug 18 04:05:08 CEST 2003


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

Modified Files:
	costume.cpp intern.h script_v2.cpp 
Log Message:

Add support for flashlight in v1 maniac by converting older values.
Prevent warning about dummy function (Which has no purpose) in zak


Index: costume.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/costume.cpp,v
retrieving revision 1.101
retrieving revision 1.102
diff -u -d -r1.101 -r1.102
--- costume.cpp	18 Aug 2003 06:59:18 -0000	1.101
+++ costume.cpp	18 Aug 2003 10:46:42 -0000	1.102
@@ -344,17 +344,15 @@
 
 	byte palette[4] = { 0, 0, 0, 0 };
 
-	if (_vm->_gameId == GID_MANIAC) {
+	if (!(_vm->VAR(_vm->VAR_CURRENT_LIGHTS) & LIGHTMODE_actor_color)) {
+		palette[2] = 11;
+		palette[3] = 11;
+	} else if (_vm->_gameId == GID_MANIAC) {
 		palette[1] = v1_mm_actor_palatte_1[actor];
 		palette[2] = v1_mm_actor_palatte_2[actor];
 	} else {
-		if (!(_vm->VAR(_vm->VAR_CURRENT_LIGHTS) & LIGHTMODE_actor_color)) {
-			palette[2] = 11;
-			palette[3] = 11;
-		} else {
-			palette[1] = 8;
-			palette[2] = _palette[0];
-		}
+		palette[1] = 8;
+		palette[2] = _palette[0];
 	}
 
 	v1.skip_width >>= 3;
@@ -734,8 +732,7 @@
 	byte color;
 
 	if (_loaded._format == 0x57) {
-			_palette[0] = palette[0];
-
+		_palette[0] = palette[0];
 		return;
 	}
 

Index: intern.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/intern.h,v
retrieving revision 2.103
retrieving revision 2.104
diff -u -d -r2.103 -r2.104
--- intern.h	14 Aug 2003 11:40:50 -0000	2.103
+++ intern.h	18 Aug 2003 10:46:42 -0000	2.104
@@ -261,6 +261,7 @@
 	void o2_isGreaterEqual();
 	void o2_isLess();
 	void o2_isLessEqual();
+	void o2_lights();
 	void o2_loadRoomWithEgo();
 	void o2_setBoxFlags();
 	void o2_panCameraTo();

Index: script_v2.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v2.cpp,v
retrieving revision 2.174
retrieving revision 2.175
diff -u -d -r2.174 -r2.175
--- script_v2.cpp	18 Aug 2003 02:16:48 -0000	2.174
+++ script_v2.cpp	18 Aug 2003 10:46:42 -0000	2.175
@@ -173,7 +173,7 @@
 		OPCODE(o2_dummy),
 		OPCODE(o2_ifState04),
 		/* 70 */
-		OPCODE(o5_lights),
+		OPCODE(o2_lights),
 		OPCODE(o5_getActorCostume),
 		OPCODE(o5_loadRoom),
 		OPCODE(o2_roomOps),
@@ -333,7 +333,7 @@
 		OPCODE(o2_dummy),
 		OPCODE(o2_ifState04),
 		/* F0 */
-		OPCODE(o5_lights),
+		OPCODE(o2_lights),
 		OPCODE(o5_getActorCostume),
 		OPCODE(o5_loadRoom),
 		OPCODE(o2_roomOps),
@@ -1214,6 +1214,38 @@
 		o5_jumpRelative();
 }
 
+void Scumm_v2::o2_lights() {
+	warning("o2_lights");
+	int a, b, c;
+
+	a = getVarOrDirectByte(0x80);
+	b = fetchScriptByte();
+	c = fetchScriptByte();
+
+	if (c == 0) {
+		if (_gameId == GID_MANIAC && _version == 1) {
+			// Convert older light mode values into
+			// equivalent values.of later games
+			// 0 Darkness
+			// 1 Flashlight
+			// 2 Lighted area
+			if (a == 2)
+				VAR(VAR_CURRENT_LIGHTS) = 11; 
+			else if (a == 1) 
+				VAR(VAR_CURRENT_LIGHTS) = 4;
+			else if (a == 0)
+				VAR(VAR_CURRENT_LIGHTS) = 0;
+			else
+				warning("o2_lights: light mode  %d unknown", a);
+;		} else
+			VAR(VAR_CURRENT_LIGHTS) = a;
+	} else if (c == 1) {
+		_flashlight.xStrips = a;
+		_flashlight.yStrips = b;
+	}
+	_fullRedraw = 1;
+}
+
 void Scumm_v2::o2_loadRoomWithEgo() {
 	Actor *a;
 	int obj, room, x, y;
@@ -1500,7 +1532,9 @@
 }
 
 void Scumm_v2::o2_dummy() {
-	warning("o2_dummy invoked (opcode %d)", _opcode);
+	// Opcode 238 is used in Zak but has no purpose
+	if (!(_gameId == GID_ZAK && _opcode == 238))
+		warning("o2_dummy invoked (opcode %d)", _opcode);
 }
 
 void Scumm_v2::o2_switchCostumeSet() {





More information about the Scummvm-git-logs mailing list