[Scummvm-cvs-logs] CVS: scummvm/queen cutaway.cpp,1.137,1.138 defs.h,1.43,1.44 display.cpp,1.76,1.77 display.h,1.48,1.49 journal.cpp,1.40,1.41 journal.h,1.7,1.8 logic.cpp,1.213,1.214 logic.h,1.122,1.123 queen.cpp,1.105,1.106

Gregory Montoir cyx at users.sourceforge.net
Thu Dec 2 15:01:02 CET 2004


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

Modified Files:
	cutaway.cpp defs.h display.cpp display.h journal.cpp journal.h 
	logic.cpp logic.h queen.cpp 
Log Message:
simplified palette handling

Index: cutaway.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/cutaway.cpp,v
retrieving revision 1.137
retrieving revision 1.138
diff -u -d -r1.137 -r1.138
--- cutaway.cpp	23 Nov 2004 22:21:25 -0000	1.137
+++ cutaway.cpp	2 Dec 2004 22:59:56 -0000	1.138
@@ -881,12 +881,8 @@
 
 		if (_roomFade) {
 			_vm->update();
-			int end = 223;
-			if (Logic::isIntroRoom(_vm->logic()->currentRoom())) {
-				end = 255;
-			}
 			BobSlot *j = _vm->graphics()->bob(0);
-			_vm->display()->palFadeIn(0, end, _vm->logic()->currentRoom(), j->active, j->x, j->y);
+			_vm->display()->palFadeIn(_vm->logic()->currentRoom(), j->active, j->x, j->y);
 			_roomFade = false;
 		}
 

Index: defs.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/defs.h,v
retrieving revision 1.43
retrieving revision 1.44
diff -u -d -r1.43 -r1.44
--- defs.h	3 Oct 2004 21:34:37 -0000	1.43
+++ defs.h	2 Dec 2004 22:59:57 -0000	1.44
@@ -244,7 +244,9 @@
 
 	FAYE_HEAD                 =  37,
 	AZURA_HEAD                = 106,
-	FRANK_HEAD                = 107
+	FRANK_HEAD                = 107,
+	
+	ROOM_JOURNAL              = 200 // dummy value to keep Display methods happy
 };
 
 

Index: display.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/display.cpp,v
retrieving revision 1.76
retrieving revision 1.77
diff -u -d -r1.76 -r1.77
--- display.cpp	30 Nov 2004 21:01:24 -0000	1.76
+++ display.cpp	2 Dec 2004 22:59:57 -0000	1.77
@@ -98,7 +98,7 @@
 	delete[] _dynalum.lumBuf;
 	_dynalum.lumBuf = NULL;
 
-	if (!(Logic::isAltIntroRoom(roomNum) || Logic::isIntroRoom(roomNum))) {
+	if (!isPalFadingDisabled(roomNum)) {
 		char filename[20];
 		sprintf(filename, "%s.msk", roomName);
 		if (_vm->resource()->fileExists(filename)) {
@@ -119,12 +119,12 @@
 
 	if (x < 0) {
 		x = 0;
-	} else if (x >= _bdWidth) {
+	} else if (x > _bdWidth) {
 		x = _bdWidth;
 	}
 	if (y < 0) {
 		y = 0;
-	} else if (y >= ROOM_ZONE_HEIGHT - 1) {
+	} else if (y > ROOM_ZONE_HEIGHT - 1) {
 		y = ROOM_ZONE_HEIGHT - 1;
 	}
 
@@ -191,54 +191,42 @@
 	memcpy(_pal.screen + 144 * 3, _pal.panel, (256 - 144) * 3);
 }
 
-void Display::palFadeIn(int start, int end, uint16 roomNum, bool dynalum, int16 dynaX, int16 dynaY) {
-	debug(9, "Display::palFadeIn(%d, %d)", start, end);
-	memcpy(_pal.screen, _pal.room, 256 * 3);
-	if (!(Logic::isAltIntroRoom(roomNum) || Logic::isIntroRoom(roomNum))) {
+void Display::palFadeIn(uint16 roomNum, bool dynalum, int16 dynaX, int16 dynaY) {
+	debug(9, "Display::palFadeIn(%d)", roomNum);
+	int n = getNumColorsForRoom(roomNum);
+	memcpy(_pal.screen, _pal.room, n * 3);
+	if (!isPalFadingDisabled(roomNum)) {
 		if (dynalum) {
 			dynalumUpdate(dynaX, dynaY);
 		}
-		int n = end - start + 1;
 		uint8 tempPal[256 * 3];
-		int i;
-		for (i = 0; i <= FADE_SPEED; ++i) {
-			int j = n * 3;
-			uint8 *outPal = tempPal + start * 3;
-			const uint8 *inPal = _pal.screen + start * 3;
-			while (j--) {
-				*outPal = *inPal * i / FADE_SPEED;
-				++outPal;
-				++inPal;
+		for (int i = 0; i <= FADE_SPEED; ++i) {
+			for (int j = 0; j < n * 3; ++j) {
+				tempPal[j] = _pal.screen[j] * i / FADE_SPEED;
 			}
-			palSet(tempPal, start, end, true);
+			palSet(tempPal, 0, n - 1, true);
 		}
 	}
-	_pal.dirtyMin = start;
-	_pal.dirtyMax = end;
+	_pal.dirtyMin = 0;
+	_pal.dirtyMax = n - 1;
 	_pal.scrollable = true;
 }
 
-void Display::palFadeOut(int start, int end, uint16 roomNum) {
-	debug(9, "Display::palFadeOut(%d, %d, %d)", start, end, roomNum);
+void Display::palFadeOut(uint16 roomNum) {
+	debug(9, "Display::palFadeOut(%d)", roomNum);
 	_pal.scrollable = false;
-	int n = end - start + 1;
-	if (Logic::isAltIntroRoom(roomNum) || Logic::isIntroRoom(roomNum)) {
-		memset(_pal.screen + start * 3, 0, n * 3);
-		palSet(_pal.screen, start, end, true);
+	int n = getNumColorsForRoom(roomNum);
+	if (isPalFadingDisabled(roomNum)) {
+		memset(_pal.screen, 0, n * 3);
+		palSet(_pal.screen, 0, n - 1, true);
 	} else {
 		uint8 tempPal[256 * 3];
-		memcpy(tempPal + start * 3, _pal.screen + start * 3, n * 3);
-		int i;
-		for (i = FADE_SPEED; i >= 0; --i) {
-			int j = n * 3;
-			uint8 *outPal = _pal.screen + start * 3;
-			const uint8 *inPal = tempPal + start * 3;
-			while (j--) {
-				*outPal = *inPal * i / FADE_SPEED;
-				++outPal;
-				++inPal;
+		memcpy(tempPal, _pal.screen, n * 3);
+		for (int i = FADE_SPEED; i >= 0; --i) {
+			for (int j = 0; j < n * 3; ++j) {
+				_pal.screen[j] = tempPal[j] * i / FADE_SPEED;
 			}
-			palSet(_pal.screen, start, end, true);
+			palSet(_pal.screen, 0, n - 1, true);
 		}
 	}
 }
@@ -560,6 +548,19 @@
 	_pal.scrollable = true;
 }
 
+int Display::getNumColorsForRoom(uint16 room) const {
+	int n = 224;
+	if (room >= 114 && room <= 125) {
+		n = 256;
+	}
+	return n;
+}
+
+bool Display::isPalFadingDisabled(uint16 room) const {
+	// introduction rooms don't fade palette
+	return (room >= 90 && room <= 94) || (room >= 115 && room <= 125);
+}
+
 void Display::screenMode(int comPanel, bool inCutaway) {
 	debug(6, "Display::screenMode(%d, %d)", comPanel, inCutaway);
 
@@ -669,7 +670,11 @@
 	_bdWidth  = READ_LE_UINT16(pcxBuf + 12);
 	_bdHeight = READ_LE_UINT16(pcxBuf + 14);
 	readPCX(_backdropBuf, BACKDROP_W, pcxBuf + 128, _bdWidth, _bdHeight);
-	memcpy(_pal.room, pcxBuf + size - 768, Logic::isIntroRoom(room) ? 256 * 3 : 144 * 3);
+	int n = getNumColorsForRoom(room);
+	if (n != 256) {
+		n = 144;
+	}
+	memcpy(_pal.room, pcxBuf + size - 768, n * 3);
 	delete[] pcxBuf;
 
 	palCustomColors(room);

Index: display.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/display.h,v
retrieving revision 1.48
retrieving revision 1.49
diff -u -d -r1.48 -r1.49
--- display.h	30 Nov 2004 21:01:25 -0000	1.48
+++ display.h	2 Dec 2004 22:59:57 -0000	1.49
@@ -46,8 +46,8 @@
 	void palSetJoeDress();
 	void palSetJoeNormal();
 	void palSetPanel();
-	void palFadeIn(int start, int end, uint16 roomNum, bool dynalum = false, int16 dynaX = 0, int16 dynaY = 0);
-	void palFadeOut(int start, int end, uint16 roomNum);
+	void palFadeIn(uint16 roomNum, bool dynalum = false, int16 dynaX = 0, int16 dynaY = 0);
+	void palFadeOut(uint16 roomNum);
 	void palGreyPanel();
 	void palScroll(int start, int end);
 	void palCustomColors(uint16 roomNum);
@@ -57,6 +57,9 @@
 	void palCustomLightsOn(uint16 roomNum);
 	void palSetAllDirty() { _pal.dirtyMin = 0; _pal.dirtyMax = 255; }
 
+	int getNumColorsForRoom(uint16 room) const;
+	bool isPalFadingDisabled(uint16 room) const;
+
 	void screenMode(int comPanel, bool inCutaway);
 
 	void prepareUpdate();

Index: journal.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/journal.cpp,v
retrieving revision 1.40
retrieving revision 1.41
diff -u -d -r1.40 -r1.41
--- journal.cpp	10 Oct 2004 17:12:50 -0000	1.40
+++ journal.cpp	2 Dec 2004 22:59:57 -0000	1.41
@@ -51,11 +51,11 @@
 	memset(_saveDescriptions, 0, sizeof(_saveDescriptions));
 	_vm->findGameStateDescriptions(_saveDescriptions);
 	_panelTextCount = 0;
-	_vm->display()->palFadeOut(0, 255, JOURNAL_ROOM);
+	_vm->display()->palFadeOut(_vm->logic()->currentRoom());
 	prepare();
 	redraw();
 	update();
-	_vm->display()->palFadeIn(0, 255, JOURNAL_ROOM);
+	_vm->display()->palFadeIn(ROOM_JOURNAL);
 
 	_quitCleanly = true;
 	_quit = false;
@@ -123,7 +123,7 @@
 	_vm->grid()->setZone(GS_ROOM, ZN_VOICE_TOGGLE, 158 - 24, 155, 168, 164);
 	_vm->grid()->setZone(GS_ROOM, ZN_TEXT_TOGGLE, 125 - 16, 168, 135, 177);
 
-	_vm->display()->setupNewRoom("journal", JOURNAL_ROOM);
+	_vm->display()->setupNewRoom("journal", ROOM_JOURNAL);
 	_vm->bankMan()->load("journal.BBK", JOURNAL_BANK);
 	for (i = 1; i <= 20; ++i) {
 		int frameNum = JOURNAL_FRAMES + i;
@@ -141,7 +141,7 @@
 void Journal::restore() {
 	_vm->display()->fullscreen(false);
 	_vm->display()->forceFullRefresh();
-
+	
 	_vm->logic()->joePos(_prevJoeX, _prevJoeY);
 	_vm->logic()->joeCutFacing(_vm->logic()->joeFacing());
 
@@ -157,7 +157,7 @@
 }
 
 void Journal::update() {
-	_vm->graphics()->update(JOURNAL_ROOM);
+	_vm->graphics()->update(ROOM_JOURNAL);
 	if (_edit.enable) {
 		int16 x = 136 + _edit.posCursor;
 		int16 y = 9 + _currentSaveSlot * 13 + 8;
@@ -178,8 +178,7 @@
 }
 
 void Journal::drawSaveDescriptions() {
-	int i;
-	for (i = 0; i < SAVE_PER_PAGE; ++i) {
+	for (int i = 0; i < SAVE_PER_PAGE; ++i) {
 		int n = _currentSavePage * 10 + i;
 		char nb[4];
 		sprintf(nb, "%d", n + 1);
@@ -269,7 +268,7 @@
 		case ZN_REVIEW_ENTRY:
 			if (_saveDescriptions[currentSlot][0]) {
 				_vm->graphics()->clearBobs();
-				_vm->display()->palFadeOut(0, 223, JOURNAL_ROOM);
+				_vm->display()->palFadeOut(ROOM_JOURNAL);
 				_vm->music()->stopSong();
 				_vm->loadGameState(currentSlot);
 				_vm->display()->clearTexts(0, GAME_SCREEN_HEIGHT - 1);

Index: journal.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/journal.h,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- journal.h	12 Jan 2004 13:40:01 -0000	1.7
+++ journal.h	2 Dec 2004 22:59:57 -0000	1.8
@@ -36,8 +36,7 @@
   
 	enum {
 		JOURNAL_BANK   = 8,
-		JOURNAL_FRAMES = 40,
-		JOURNAL_ROOM   = 0 // dummy value to make Graphics methods happy
+		JOURNAL_FRAMES = 40
 	};
 
 	enum {

Index: logic.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/logic.cpp,v
retrieving revision 1.213
retrieving revision 1.214
diff -u -d -r1.213 -r1.214
--- logic.cpp	2 Dec 2004 21:24:27 -0000	1.213
+++ logic.cpp	2 Dec 2004 22:59:57 -0000	1.214
@@ -478,11 +478,7 @@
 	_vm->bankMan()->close(10);
 	_vm->bankMan()->close(12);
 
-	if (_currentRoom >= 114) {
-		_vm->display()->palFadeOut(0, 255, _currentRoom);
-	} else {
-		_vm->display()->palFadeOut(0, 223, _currentRoom);
-	}
+	_vm->display()->palFadeOut(_currentRoom);
 
 	// invalidates all persons animations
 	_vm->graphics()->clearPersonFrames();
@@ -544,8 +540,7 @@
 	if (mode != RDM_NOFADE_JOE) {
 		_vm->update();
 		BobSlot *joe = _vm->graphics()->bob(0);
-		int end = isIntroRoom(_currentRoom) ? 255 : 223;
-		_vm->display()->palFadeIn(0, end, _currentRoom, joe->active, joe->x, joe->y);
+		_vm->display()->palFadeIn(_currentRoom, joe->active, joe->x, joe->y);
 	}
 	if (mode != RDM_FADE_NOJOE && joeX() != 0 && joeY() != 0) {
 		int16 jx = joeX();
@@ -1218,7 +1213,7 @@
 	joe->animating = piton->animating = false;
 
 	_vm->update();
-	_vm->display()->palFadeIn(0, 223, ROOM_JUNGLE_PINNACLE, joe->active, joe->x, joe->y);
+	_vm->display()->palFadeIn(ROOM_JUNGLE_PINNACLE, joe->active, joe->x, joe->y);
 
 	_entryObj = 0;
 	uint16 prevObj = 0;
@@ -1291,7 +1286,7 @@
 	// camera follows Joe again
 	_vm->graphics()->putCameraOnBob(0);
 
-	_vm->display()->palFadeOut(0, 223, ROOM_JUNGLE_PINNACLE);
+	_vm->display()->palFadeOut(ROOM_JUNGLE_PINNACLE);
 }
 
 void Logic::update() {
@@ -1821,7 +1816,7 @@
 	for (i = 0; i < 50; ++i) {
 		_vm->update();
 	}
-	_vm->display()->palFadeOut(0, 255, currentRoom());
+	_vm->display()->palFadeOut(_currentRoom);
 }
 
 void Logic::asmWaitForCarPosition() {

Index: logic.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/logic.h,v
retrieving revision 1.122
retrieving revision 1.123
diff -u -d -r1.122 -r1.123
--- logic.h	23 Nov 2004 22:21:31 -0000	1.122
+++ logic.h	2 Dec 2004 22:59:57 -0000	1.123
@@ -72,9 +72,6 @@
 		_newRoom = room; 
 	}
 
-	static bool isAltIntroRoom(uint16 room) { return room >= 90 && room <= 94; }
-	static bool isIntroRoom(uint16 room) { return room >= 115 && room <= 125; }
-
 	ObjectData *objectData(int index) const;
 	uint16 roomData(int room) const { return _roomData[room]; }
 	GraphicData *graphicData(int index) const { return &_graphicData[index]; }

Index: queen.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/queen.cpp,v
retrieving revision 1.105
retrieving revision 1.106
diff -u -d -r1.105 -r1.106
--- queen.cpp	2 Dec 2004 21:24:27 -0000	1.105
+++ queen.cpp	2 Dec 2004 22:59:57 -0000	1.106
@@ -314,17 +314,14 @@
 			if (_logic->currentRoom() == _logic->newRoom()) {
 				_logic->newRoom(0);
 			}
+		} else if (_logic->joeWalk() == JWM_EXECUTE) {
+			_logic->joeWalk(JWM_NORMAL);
+			_command->executeCurrentAction();
 		} else {
-			if (_logic->joeWalk() == JWM_EXECUTE) {
-				_logic->joeWalk(JWM_NORMAL);
-				_command->executeCurrentAction();
-			} else {
-				_logic->joeWalk(JWM_NORMAL);
-				update(true);
-			}
+			_logic->joeWalk(JWM_NORMAL);
+			update(true);
 		}
 	}
-	
 	return 0;
 }
 





More information about the Scummvm-git-logs mailing list