[Scummvm-cvs-logs] CVS: scummvm/queen defs.h,1.34,1.35 display.cpp,1.32,1.33 logic.cpp,1.120,1.121 cutaway.cpp,1.83,1.84 xref.txt,1.42,1.43

Gregory Montoir cyx at users.sourceforge.net
Fri Dec 5 12:18:01 CET 2003


Update of /cvsroot/scummvm/scummvm/queen
In directory sc8-pr-cvs1:/tmp/cvs-serv21621

Modified Files:
	defs.h display.cpp logic.cpp cutaway.cpp xref.txt 
Log Message:
- fix Joe scaling issue when switching from room 51 to 47 (temple)
- add remaining fadein() call in cutaway, pinnacle room is ok now
- add 2 macros to 'clarify' some room tests
- some cleanup


Index: defs.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/defs.h,v
retrieving revision 1.34
retrieving revision 1.35
diff -u -d -r1.34 -r1.35
--- defs.h	4 Dec 2003 10:54:43 -0000	1.34
+++ defs.h	5 Dec 2003 20:16:31 -0000	1.35
@@ -256,6 +256,9 @@
 	FRANK_HEAD                = 107
 };
 
+#define IS_ALT_INTRO_ROOM(x) ((x) >= 90 && (x) <= 94)
+#define IS_CD_INTRO_ROOM(x) ((x) >= 115 && (x) <= 125)
+
 
 //! GameState vars
 enum {

Index: display.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/display.cpp,v
retrieving revision 1.32
retrieving revision 1.33
diff -u -d -r1.32 -r1.33
--- display.cpp	3 Dec 2003 14:09:37 -0000	1.32
+++ display.cpp	5 Dec 2003 20:16:32 -0000	1.33
@@ -146,8 +146,8 @@
 	memset(_dynalum.msk, 0, sizeof(_dynalum.msk));
 	memset(_dynalum.lum, 0, sizeof(_dynalum.lum));
 	_dynalum.valid = false;
-	// FIXME: are these tests really needed ?
-	if (roomNum < 90 || ((roomNum > 94) && (roomNum < 114))) {
+
+	if (!(IS_ALT_INTRO_ROOM(roomNum) || IS_CD_INTRO_ROOM(roomNum))) {
 		char filename[20];
 
 		sprintf(filename, "%s.msk", roomName);
@@ -259,7 +259,7 @@
 
 	debug(9, "Display::palFadeIn(%d, %d)", start, end);
 	memcpy(_pal.screen, _pal.room, 256 * 3);
-	if (roomNum < 90 || (roomNum > 94 && roomNum < 114)) {
+	if (!(IS_ALT_INTRO_ROOM(roomNum) || IS_CD_INTRO_ROOM(roomNum))) {
 		if (dynalum) {
 			dynalumUpdate(dynaX, dynaY);
 		}
@@ -279,7 +279,7 @@
 		}
 	}
 	_pal.dirtyMin = 0;
-	_pal.dirtyMax = 255; // (roomNum >= 114) ? 255 : 223; // FIXME: only for tests
+	_pal.dirtyMax = IS_CD_INTRO_ROOM(roomNum) ? 255 : 223;
 	_pal.scrollable = true;
 }
 
@@ -289,7 +289,7 @@
 	debug(9, "Display::palFadeOut(%d, %d)", start, end);
 	_pal.scrollable = false;
 	int n = end - start + 1;
-	if (!(roomNum < 90 || (roomNum > 94 && roomNum < 114))) {
+	if (IS_ALT_INTRO_ROOM(roomNum) || IS_CD_INTRO_ROOM(roomNum)) {
 		memset(_pal.screen + start * 3, 0, n * 3);
 		palSet(_pal.screen, start, end, true);
 	}
@@ -308,7 +308,6 @@
 			}
 			palSet(_pal.screen, start, end, true);
 		}
-
 	}
 }
 
@@ -337,7 +336,6 @@
 	uint8 g = *palEnd++;
 	uint8 b = *palEnd;
 
-	// scroll palette entries to the left
 	int n = (end - start) * 3;
 	while (n--) {
 		*palEnd = *(palEnd - 3);

Index: logic.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/logic.cpp,v
retrieving revision 1.120
retrieving revision 1.121
diff -u -d -r1.120 -r1.121
--- logic.cpp	5 Dec 2003 13:56:07 -0000	1.120
+++ logic.cpp	5 Dec 2003 20:16:32 -0000	1.121
@@ -1236,21 +1236,16 @@
 	if (mode != RDM_FADE_NOJOE) {
 		pod = joeSetupInRoom(mode != RDM_FADE_JOE_XY, scale);
 	}
-	// FIXME: for now, always display room even if mode tells us
-	// to not do so. This is necessary as actual Cutaway code 
-	// doesn't do any of the needed palFadeIn() calls. The only
-	// noticeable problem is the initial display of the pinnacle 
-	// room which is faded 2 times.
-//	if (mode != RDM_NOFADE_JOE) {
+	if (mode != RDM_NOFADE_JOE) {
 		update();
 		BobSlot *joe = _graphics->bob(0);
-		if (_currentRoom >= 114) {
+		if (IS_CD_INTRO_ROOM(_currentRoom)) {
 			_display->palFadeIn(0, 255, _currentRoom, joe->active, joe->x, joe->y);
 		}
 		else {
 			_display->palFadeIn(0, 223, _currentRoom, joe->active, joe->x, joe->y);
 		}
-//	}
+	}
 	if (pod != NULL) {
 		_walk->moveJoe(0, pod->x, pod->y, inCutaway);
 	}
@@ -1649,15 +1644,15 @@
 	debug(0, "Logic::joeSetupInRoom() - oldx=%d, oldy=%d scale=%d", oldx, oldy, scale);
 
 	if (scale > 0 && scale < 100) {
-		_joe.scale = scale;
+		joeScale(scale);
 	}
 	else {
 		uint16 a = zoneInArea(ZONE_ROOM, oldx, oldy);
 		if (a > 0) {
-			_joe.scale = currentRoomArea(a)->calcScale(oldy);
+			joeScale(currentRoomArea(a)->calcScale(oldy));
 		}
 		else {
-			_joe.scale = 100;
+			joeScale(100);
 		}
 	}
 
@@ -1685,7 +1680,7 @@
 	joePrevFacing(joeFacing());
 
 	BobSlot *pbs = _graphics->bob(0);
-	pbs->scale = _joe.scale;
+	pbs->scale = joeScale();
 
 	if (_currentRoom == 108) {
 		_graphics->cameraBob(-1);
@@ -1745,7 +1740,7 @@
 			update();
 		}
 		pbs->frameNum = frame + FRAMES_JOE_XTRA;
-		pbs->scale = _joe.scale;
+		pbs->scale = joeScale();
 		pbs->xflip = (joeFacing() == DIR_LEFT);
 		update();
 		joePrevFacing(joeFacing());
@@ -1788,10 +1783,10 @@
 		break;
 
 	case STATE_GRAB_MID:
-		if (_joe.facing == DIR_BACK) {
+		if (joeFacing() == DIR_BACK) {
 			frame = 6;
 		}
-		else if (_joe.facing == DIR_FRONT) {
+		else if (joeFacing() == DIR_FRONT) {
 			frame = 4;
 		}
 		else {
@@ -1800,7 +1795,7 @@
 		break;
 
 	case STATE_GRAB_DOWN:
-		if (_joe.facing == DIR_BACK) {
+		if (joeFacing() == DIR_BACK) {
 			frame = 9;
 		}
 		else {
@@ -1811,13 +1806,13 @@
 	case STATE_GRAB_UP:
 		// turn back
 		_graphics->bankUnpack(5, 29 + FRAMES_JOE_XTRA, 7);
-		bobJoe->xflip = (_joe.facing == DIR_LEFT);
-		bobJoe->scale = _joe.scale;
+		bobJoe->xflip = (joeFacing() == DIR_LEFT);
+		bobJoe->scale = joeScale();
 		update();
 		// grab up
 		_graphics->bankUnpack(7, 29 + FRAMES_JOE_XTRA, 7);
-		bobJoe->xflip = (_joe.facing == DIR_LEFT);
-		bobJoe->scale = _joe.scale;
+		bobJoe->xflip = (joeFacing() == DIR_LEFT);
+		bobJoe->scale = joeScale();
 		update();
 		// turn back
 		if (speed == 0) {
@@ -1831,8 +1826,8 @@
 
 	if (frame != 0) {
 		_graphics->bankUnpack(frame, 29 + FRAMES_JOE_XTRA, 7);
-		bobJoe->xflip = (_joe.facing == DIR_LEFT);
-		bobJoe->scale = _joe.scale;
+		bobJoe->xflip = (joeFacing() == DIR_LEFT);
+		bobJoe->scale = joeScale();
 		update();
 
 		// extra delay for grab down

Index: cutaway.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/cutaway.cpp,v
retrieving revision 1.83
retrieving revision 1.84
diff -u -d -r1.83 -r1.84
--- cutaway.cpp	5 Dec 2003 13:56:06 -0000	1.83
+++ cutaway.cpp	5 Dec 2003 20:16:32 -0000	1.84
@@ -990,7 +990,7 @@
 	}
 	else {
 		// We need to display Joe on screen
-		if (_roomFade == 1)
+		if (_roomFade)
 			mode = RDM_NOFADE_JOE;
 		else
 			mode = RDM_FADE_JOE_XY;
@@ -1538,19 +1538,17 @@
 		if (_input->cutawayQuit())
 			break;
 
-		// XXX
-#if 0
-		if(ROOMFADE==1)
-		{
-			update();
-			//CR 2 - CD-Rom
-			if(ROOM>=114)
-				fadein(0,255);
-			else
-				fadein(0,223);
-			ROOMFADE=0;
+		if (_roomFade) {
+			_logic->update();
+			int end = 223;
+			if (IS_CD_INTRO_ROOM(_logic->currentRoom())) {
+				end = 255;
+			}
+			BobSlot *j = _graphics->bob(0);
+			_logic->display()->palFadeIn(0, end, _logic->currentRoom(), j->active, j->x, j->y);
+			_roomFade = false;
 		}
-#endif 
+
 	} // for()
 
 	stop();
@@ -1787,7 +1785,7 @@
 
 		joeBob->x = joeX;
 		joeBob->y = joeY;
-		joeBob->scale = _logic->findScale(joeX, joeY);
+		_logic->joeScale(_logic->findScale(joeX, joeY));
 		_logic->joeFace();
 	}
 }

Index: xref.txt
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/xref.txt,v
retrieving revision 1.42
retrieving revision 1.43
diff -u -d -r1.42 -r1.43
--- xref.txt	30 Nov 2003 20:41:02 -0000	1.42
+++ xref.txt	5 Dec 2003 20:16:32 -0000	1.43
@@ -263,6 +263,7 @@
 ROOMTOT						Logic::_numRooms
 ROOM_DATA					Logic::_roomData
 ROOM_NAMEstr				Logic::_roomName
+SFACTOR						Logic::_joe.scale
 VERB_NAMEstr				Verb::_verbName
 WALK_OFF_DATA				Logic::_walkOffData
 WALK_OFF_MAX				Logic::_numWalkOffs
@@ -471,7 +472,6 @@
 CURRY
 OMAX,OMAXA
 TEMPA
-SFACTOR, // shrink factor, used to scale (down) the bobs
 BANK,BNUM
 DIFF // LOOK local var
 RET // P1_SET_CONDITIONS local var





More information about the Scummvm-git-logs mailing list