[Scummvm-cvs-logs] CVS: scummvm/queen logic.cpp,1.151,1.152 logic.h,1.97,1.98

Gregory Montoir cyx at users.sourceforge.net
Fri Jan 2 06:18:12 CET 2004


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

Modified Files:
	logic.cpp logic.h 
Log Message:
minor rewrite of some asm funcs

Index: logic.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/logic.cpp,v
retrieving revision 1.151
retrieving revision 1.152
diff -u -d -r1.151 -r1.152
--- logic.cpp	30 Dec 2003 23:32:51 -0000	1.151
+++ logic.cpp	2 Jan 2004 14:17:42 -0000	1.152
@@ -47,6 +47,7 @@
 	_joe.scale = 100;
 	memset(_gameState, 0, sizeof(_gameState));
 	memset(_talkSelected, 0, sizeof(_talkSelected));
+	_puzzleAttemptCount = 0;
 	initialise();
 	if (_vm->resource()->isDemo()) {
 		_preChangeRoom = &Logic::preChangeRoom_Demo;
@@ -2184,7 +2185,10 @@
 	for (i = 0; i < 3; i++) {
 		WRITE_BE_UINT16(ptr, 0); ptr += 2;
 	}
-	
+	// TOADD:
+	//	Logic::_puzzleAttemptCount
+	//	Logic::_objectDescription
+
 	if ((ptr - saveData) != SAVEGAME_SIZE) {
 		delete[] saveData;
 		return false;
@@ -2661,8 +2665,9 @@
 
 void Logic::asmShrinkRobot() {
 	int i;
+	BobSlot *robot = _vm->graphics()->bob(6);
 	for (i = 100; i >= 35; i -= 5) {
-		_vm->graphics()->bob(6)->scale = i;
+		robot->scale = i;
 		update();
 	}
 }
@@ -2673,18 +2678,20 @@
 	for (i = 0; i < 40; ++i) {
 		update();
 	}
-	debug(0, "Game completed");
+	debug(0, "Game completed.");
 	OSystem::instance()->quit();
 }
 
 
 void Logic::asmPutCameraOnDino() {
 	_vm->graphics()->cameraBob(-1);
-	while (_vm->display()->horizontalScroll() < 320) {
-		_vm->display()->horizontalScroll(_vm->display()->horizontalScroll() + 16);
-		if (_vm->display()->horizontalScroll() > 320) {
-			_vm->display()->horizontalScroll(320);
+	int16 scrollx = _vm->display()->horizontalScroll();
+	while (scrollx < 320) {
+		scrollx += 16;
+		if (scrollx > 320) {
+			scrollx = 320;
 		}
+		_vm->display()->horizontalScroll(scrollx);
 		update();
 	}
 	_vm->graphics()->cameraBob(1);
@@ -2736,11 +2743,13 @@
 
 void Logic::asmPanRightFromJoe() {
 	_vm->graphics()->cameraBob(-1);
-	while (_vm->display()->horizontalScroll() < 320) {
-		_vm->display()->horizontalScroll(_vm->display()->horizontalScroll() + 16);
-		if (_vm->display()->horizontalScroll() > 320) {
-			_vm->display()->horizontalScroll(320);
+	int16 scrollx = _vm->display()->horizontalScroll();
+	while (scrollx < 320) {
+		scrollx += 16;
+		if (scrollx > 320) {
+			scrollx = 320;
 		}
+		_vm->display()->horizontalScroll(scrollx);
 		update();
 	}
 }
@@ -2757,7 +2766,8 @@
 
 
 void Logic::asmSetManequinAreaOn() {
-	area(ROOM_FLODA_FRONTDESK, 7)->mapNeighbours = ABS(area(ROOM_FLODA_FRONTDESK, 7)->mapNeighbours);
+	Area *a = area(ROOM_FLODA_FRONTDESK, 7);
+	a->mapNeighbours = ABS(a->mapNeighbours);
 }
 
 
@@ -2769,20 +2779,24 @@
 		i = 320;
 	}
 	_vm->graphics()->cameraBob(-1);
-	if (i < _vm->display()->horizontalScroll()) {
-		while (_vm->display()->horizontalScroll() > i) {
-			_vm->display()->horizontalScroll(_vm->display()->horizontalScroll() - 16);
-			if (_vm->display()->horizontalScroll() < i) {
-				_vm->display()->horizontalScroll(i);
+	int16 scrollx = _vm->display()->horizontalScroll();
+	if (i < scrollx) {
+		while (scrollx > i) {
+			scrollx -= 16;
+			if (scrollx < i) {
+				scrollx = i;
 			}
+			_vm->display()->horizontalScroll(scrollx);
 			update();
 		}
 	} else {
-		while (_vm->display()->horizontalScroll() < i) {
-			_vm->display()->horizontalScroll(_vm->display()->horizontalScroll() + 16);
-			if (_vm->display()->horizontalScroll() > i ) {
-				_vm->display()->horizontalScroll(i);
+		while (scrollx < i) {
+			scrollx += 16;
+			if (scrollx > i) {
+				scrollx = i;
 			}
+			_vm->display()->horizontalScroll(scrollx);
+			update();
 		}
 		update();
 	}
@@ -2797,11 +2811,13 @@
 
 void Logic::asmPanLeft320To144() {
 	_vm->graphics()->cameraBob(-1);
-	while (_vm->display()->horizontalScroll() > 144) {
-		_vm->display()->horizontalScroll(_vm->display()->horizontalScroll() - 8);
-		if (_vm->display()->horizontalScroll() < 144) {
-			_vm->display()->horizontalScroll(144);
+	int16 scrollx = _vm->display()->horizontalScroll();
+	while (scrollx > 144) {
+		scrollx -= 8;
+		if (scrollx < 144) {
+			scrollx = 144;
 		}
+		_vm->display()->horizontalScroll(scrollx);
 		update();
 	}
 }
@@ -2811,8 +2827,10 @@
 	_vm->graphics()->cameraBob(-1);
 	BobSlot *bobAzura = _vm->graphics()->bob(5);
 	BobSlot *bobJoe = _vm->graphics()->bob(6);
-	while (_vm->display()->horizontalScroll() < 320) {
-		_vm->display()->horizontalScroll(_vm->display()->horizontalScroll() + 8);
+	int16 scrollx = _vm->display()->horizontalScroll();
+	while (scrollx < 320) {
+		scrollx += 8;
+		_vm->display()->horizontalScroll(scrollx);
 		if (bobJoe->x - bobAzura->x > 128) {
 			bobAzura->x += 10;
 			bobJoe->x += 6;
@@ -2960,10 +2978,10 @@
 
 
 void Logic::asmAttemptPuzzle() {
-	static short n = 0;
-	++n;
-	if (n & 4) {
+	++_puzzleAttemptCount;
+	if (_puzzleAttemptCount & 4) {
 		joeSpeak(226, true);
+		_puzzleAttemptCount = 0;
 	}
 }
 
@@ -3121,22 +3139,22 @@
 
 
 void Logic::asmEndDemo() {
-	debug(0, "Flight of the Amazon Queen, released January 95");
+	debug(0, "Flight of the Amazon Queen, released January 95.");
 	OSystem::instance()->quit();
 }
 
 
 void Logic::asmInterviewIntro() {
-	// put camera on zeppelin
+	// put camera on airship
 	_vm->graphics()->cameraBob(5);
-	BobSlot *bzep = _vm->graphics()->bob(5);
+	BobSlot *bas = _vm->graphics()->bob(5);
 
-	bzep->curPos(-30, 40);
+	bas->curPos(-30, 40);
 
-	bzep->move(700, 10, 3);
+	bas->move(700, 10, 3);
 	int scale = 450;
-	while (bzep->moving && !_vm->input()->cutawayQuit()) {
-		bzep->scale = 256 * 100 / scale;
+	while (bas->moving && !_vm->input()->cutawayQuit()) {
+		bas->scale = 256 * 100 / scale;
 		--scale;
 		if (scale < 256) {
 			scale = 256;
@@ -3144,21 +3162,21 @@
 		update();
 	}
 
-	bzep->scale = 90;
-	bzep->xflip = true;
+	bas->scale = 90;
+	bas->xflip = true;
 
-	bzep->move(560, 25, 4);
-	while (bzep->moving && !_vm->input()->cutawayQuit()) {
+	bas->move(560, 25, 4);
+	while (bas->moving && !_vm->input()->cutawayQuit()) {
 		update();
 	}
 
-	bzep->move(545, 65, 2);
-	while (bzep->moving && !_vm->input()->cutawayQuit()) {
+	bas->move(545, 65, 2);
+	while (bas->moving && !_vm->input()->cutawayQuit()) {
 		update();
 	}
 
-	bzep->move(540, 75, 2);
-	while (bzep->moving && !_vm->input()->cutawayQuit()) {
+	bas->move(540, 75, 2);
+	while (bas->moving && !_vm->input()->cutawayQuit()) {
 		update();
 	}
 

Index: logic.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/logic.h,v
retrieving revision 1.97
retrieving revision 1.98
diff -u -d -r1.97 -r1.98
--- logic.h	30 Dec 2003 21:06:22 -0000	1.97
+++ logic.h	2 Jan 2004 14:17:42 -0000	1.98
@@ -427,6 +427,8 @@
 	//! Inventory items
 	int16 _inventoryItem[4];
 
+	uint8 _puzzleAttemptCount;
+
 	//! scene counter
 	int _scene;
 





More information about the Scummvm-git-logs mailing list