[Scummvm-cvs-logs] scummvm master -> 662bbfaffe026fbb1f73d7f5b0c23bcd54aecd59

sev- sev at scummvm.org
Sun Jan 5 01:34:50 CET 2014


This automated email contains information about 4 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
65ebf472d7 FULLPIPE: Implement sceneHandler23_fromStool() and fromCalendar()
9f7bf5df3d FULLPIPE: Implement sceneHandler23_pushButton()
166b6edc2a FULLPIPE: Rename vars in scene23. This completes the scene
662bbfaffe FULLPIPE: Fix wrong indexes in Floaters.


Commit: 65ebf472d74c347135761f598d0c4b96bbcc2fa0
    https://github.com/scummvm/scummvm/commit/65ebf472d74c347135761f598d0c4b96bbcc2fa0
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-04T16:01:36-08:00

Commit Message:
FULLPIPE: Implement sceneHandler23_fromStool() and fromCalendar()

Changed paths:
    engines/fullpipe/constants.h
    engines/fullpipe/scenes/scene23.cpp



diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index a8d3de9..0d40f29 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -815,7 +815,9 @@ namespace Fullpipe {
 #define PIC_SC23_LADDERU 3411
 #define QU_GRFU_TURN_UD 1664
 #define QU_GRFU_TURN_UL 1662
+#define QU_SC23_FROMCALENDAR 1734
 #define QU_SC23_FROMCALENDAREXIT 1735
+#define QU_SC23_FROMSTOOL 3338
 #define QU_SC23_SHOWSTOOL 3335
 #define QU_SC23_STARTKISS 1822
 #define ST_CND_0 1704
diff --git a/engines/fullpipe/scenes/scene23.cpp b/engines/fullpipe/scenes/scene23.cpp
index ed51e26..e703588 100644
--- a/engines/fullpipe/scenes/scene23.cpp
+++ b/engines/fullpipe/scenes/scene23.cpp
@@ -330,18 +330,36 @@ void sceneHandler23_checkReachingTop() {
 
 void sceneHandler23_exitCalendar() {
 	if (!g_fp->_aniMan->_movement && g_fp->_aniMan->_statics->_staticsId == ST_MAN_STANDLADDER
-		&& !g_fp->_aniMan->getMessageQueue() && !(g_fp->_aniMan->_flags & 0x100) ) {
+		&& !g_fp->_aniMan->getMessageQueue() && !(g_fp->_aniMan->_flags & 0x100)) {
 		chainQueue(QU_SC23_FROMCALENDAREXIT, 1);
 		g_vars->scene23_var07 = 2;
 	}
 }
 
-void sceneHandler23_lowerFromCalendar(ExCommand *cmd) {
-	warning("STUB: sceneHandler23_lowerFromCalendar(cmd)");
+void sceneHandler23_fromCalendar(ExCommand *cmd) {
+	if (!g_fp->_aniMan->_movement && g_fp->_aniMan->_statics->_staticsId == ST_MAN_STANDLADDER
+		&& !g_fp->_aniMan->getMessageQueue() && !(g_fp->_aniMan->_flags & 0x100)) {
+		MessageQueue *mq = new MessageQueue(g_fp->_currentScene->getMessageQueueById(QU_SC23_FROMCALENDAR), 0, 0);
+
+		mq->addExCommandToEnd(cmd->createClone());
+		mq->setFlags(mq->getFlags() | 1);
+		mq->chain(0);
+
+		g_vars->scene23_var05 = 0;
+		g_vars->scene23_var07 = 0;
+	}
 }
 
 void sceneHandler23_fromStool(ExCommand *cmd) {
-	warning("STUB: sceneHandler23_fromStool(cmd)");
+	if (!g_fp->_aniMan->getMessageQueue() && !(g_fp->_aniMan->_flags & 0x100)) {
+		MessageQueue *mq = new MessageQueue(g_fp->_currentScene->getMessageQueueById(QU_SC23_FROMSTOOL), 0, 0);
+
+		mq->addExCommandToEnd(cmd->createClone());
+		mq->setFlags(mq->getFlags() | 1);
+		mq->chain(0);
+
+		cmd->_messageKind = 0;
+	}
 }
 
 int sceneHandler23(ExCommand *cmd) {
@@ -444,7 +462,7 @@ int sceneHandler23(ExCommand *cmd) {
 				}
 
 				if (cmd->_sceneClickY > 450) {
-					sceneHandler23_lowerFromCalendar(cmd);
+					sceneHandler23_fromCalendar(cmd);
 
 					cmd->_messageKind = 0;
 					break;


Commit: 9f7bf5df3dd64d44adf2d913275e5106c70fb75e
    https://github.com/scummvm/scummvm/commit/9f7bf5df3dd64d44adf2d913275e5106c70fb75e
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-04T16:17:40-08:00

Commit Message:
FULLPIPE: Implement sceneHandler23_pushButton()

Changed paths:
    engines/fullpipe/constants.h
    engines/fullpipe/scenes/scene23.cpp



diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index 0d40f29..9eb3147 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -805,6 +805,10 @@ namespace Fullpipe {
 #define MV_CND_7_8 1718
 #define MV_CND_8_9 1720
 #define MV_CND_9_0 1722
+#define MV_MAN23_PUSH1 1724
+#define MV_MAN23_PUSH2 1725
+#define MV_MAN23_PUSH3 1726
+#define MV_MAN23_PUSH4 1727
 #define PIC_SC23_BOXCLOSED 1728
 #define PIC_SC23_BOXOPEN 1723
 #define PIC_SC23_BTN1 1729
@@ -820,6 +824,7 @@ namespace Fullpipe {
 #define QU_SC23_FROMSTOOL 3338
 #define QU_SC23_SHOWSTOOL 3335
 #define QU_SC23_STARTKISS 1822
+#define QU_SC23_TOCALENDAR 1733
 #define ST_CND_0 1704
 #define ST_CND_1 1705
 #define ST_CND_2 1707
diff --git a/engines/fullpipe/scenes/scene23.cpp b/engines/fullpipe/scenes/scene23.cpp
index e703588..d4cbb5e 100644
--- a/engines/fullpipe/scenes/scene23.cpp
+++ b/engines/fullpipe/scenes/scene23.cpp
@@ -292,7 +292,65 @@ void sceneHandler23_spinWheel3() {
 }
 
 void sceneHandler23_pushButton(ExCommand *cmd) {
-	warning("STUB: sceneHandler23_pushButton(cmd)");
+	if (g_fp->_aniMan->isIdle() || !(g_fp->_aniMan->_flags & 0x100)) {
+		if (!g_vars->scene23_var05) {
+			if (g_fp->_aniMan->_ox != 405 || g_fp->_aniMan->_oy != 220) {
+				if (g_fp->_aniMan->_ox != 276 || g_fp->_aniMan->_oy != 438
+					|| g_fp->_aniMan->_movement || g_fp->_aniMan->_statics->_staticsId != ST_MAN_RIGHT) {
+					if (g_fp->_msgX == 276 && g_fp->_msgY == 438 )
+						return;
+
+					MessageQueue *mq = getCurrSceneSc2MotionController()->method34(g_fp->_aniMan, 276, 438, 1, ST_MAN_RIGHT);
+
+					if (mq) {
+						mq->addExCommandToEnd(cmd->createClone());;
+
+						postExCommand(g_fp->_aniMan->_id, 2, 276, 438, 0, -1);
+					}
+				} else {
+					MessageQueue *mq = new MessageQueue(g_fp->_currentScene->getMessageQueueById(QU_SC23_TOCALENDAR), 0, 0);
+
+					mq->addExCommandToEnd(cmd->createClone());;
+					mq->setFlags(mq->getFlags() | 1);
+					mq->chain(0);
+				}
+
+				if (!g_vars->scene23_var05)
+					return;
+			} else {
+				g_vars->scene23_var05 = 1;
+			}
+		}
+
+		if (!g_fp->_aniMan->_movement && g_fp->_aniMan->_statics->_staticsId == ST_MAN_STANDLADDER) {
+			int mv = 0;
+
+			switch (cmd->_messageNum) {
+			case MSG_SC23_CLICKBTN1:
+				mv = MV_MAN23_PUSH1;
+				break;
+
+			case MSG_SC23_CLICKBTN2:
+				mv = MV_MAN23_PUSH2;
+				break;
+
+			case MSG_SC23_CLICKBTN3:
+				mv = MV_MAN23_PUSH3;
+				break;
+
+			case MSG_SC23_CLICKBTN4:
+				mv = MV_MAN23_PUSH4;
+				break;
+
+			default:
+				return;
+			}
+
+			if (mv)
+				g_fp->_aniMan->startAnim(mv, 0, -1);
+
+		}
+	}
 }
 
 void sceneHandler23_sendClick(StaticANIObject *ani) {


Commit: 166b6edc2a5030b6e00e6e740071e42438436019
    https://github.com/scummvm/scummvm/commit/166b6edc2a5030b6e00e6e740071e42438436019
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-04T16:30:04-08:00

Commit Message:
FULLPIPE: Rename vars in scene23. This completes the scene

Changed paths:
    engines/fullpipe/scenes.cpp
    engines/fullpipe/scenes.h
    engines/fullpipe/scenes/scene23.cpp



diff --git a/engines/fullpipe/scenes.cpp b/engines/fullpipe/scenes.cpp
index d11a923..5864238 100644
--- a/engines/fullpipe/scenes.cpp
+++ b/engines/fullpipe/scenes.cpp
@@ -264,17 +264,13 @@ Vars::Vars() {
 	scene22_craneIsOut = true;
 	scene22_numBagFalls = 1;
 
-	scene23_var01 = 0;
-	scene23_var02 = 0;
-	scene23_var03 = 0;
-	scene23_var04 = 0;
 	scene23_calend0 = 0;
 	scene23_calend1 = 0;
 	scene23_calend2 = 0;
 	scene23_calend3 = 0;
-	scene23_var05 = 0;
-	scene23_var06 = 0;
-	scene23_var07 = 0;
+	scene23_topReached = false;
+	scene23_isOnStool = false;
+	scene23_someVar = 0;
 	scene23_giraffeTop = 0;
 	scene23_giraffee = 0;
 
diff --git a/engines/fullpipe/scenes.h b/engines/fullpipe/scenes.h
index b272608..4e341d3 100644
--- a/engines/fullpipe/scenes.h
+++ b/engines/fullpipe/scenes.h
@@ -378,17 +378,13 @@ public:
 	bool scene22_craneIsOut;
 	int scene22_numBagFalls;
 
-	int scene23_var01;
-	int scene23_var02;
-	int scene23_var03;
-	int scene23_var04;
 	StaticANIObject *scene23_calend0;
 	StaticANIObject *scene23_calend1;
 	StaticANIObject *scene23_calend2;
 	StaticANIObject *scene23_calend3;
-	int scene23_var05;
-	int scene23_var06;
-	int scene23_var07;
+	bool scene23_topReached;
+	bool scene23_isOnStool;
+	int scene23_someVar;
 	StaticANIObject *scene23_giraffeTop;
 	StaticANIObject *scene23_giraffee;
 
diff --git a/engines/fullpipe/scenes/scene23.cpp b/engines/fullpipe/scenes/scene23.cpp
index d4cbb5e..1f2587e 100644
--- a/engines/fullpipe/scenes/scene23.cpp
+++ b/engines/fullpipe/scenes/scene23.cpp
@@ -63,17 +63,13 @@ bool sceneHandler23_testCalendar() {
 }
 
 void scene23_initScene(Scene *sc) {
-	g_vars->scene23_var01 = 200;
-	g_vars->scene23_var02 = 200;
-	g_vars->scene23_var03 = 300;
-	g_vars->scene23_var04 = 300;
 	g_vars->scene23_calend0 = sc->getStaticANIObject1ById(ANI_CALENDWHEEL, 0);
 	g_vars->scene23_calend1 = sc->getStaticANIObject1ById(ANI_CALENDWHEEL, 1);
 	g_vars->scene23_calend2 = sc->getStaticANIObject1ById(ANI_CALENDWHEEL, 2);
 	g_vars->scene23_calend3 = sc->getStaticANIObject1ById(ANI_CALENDWHEEL, 3);
-	g_vars->scene23_var05 = 0;
-	g_vars->scene23_var06 = 0;
-	g_vars->scene23_var07 = 0;
+	g_vars->scene23_topReached = false;
+	g_vars->scene23_isOnStool = false;
+	g_vars->scene23_someVar = 0;
 	g_vars->scene23_giraffeTop = sc->getStaticANIObject1ById(ANI_GIRAFFE_TOP, -1);
 	g_vars->scene23_giraffee = sc->getStaticANIObject1ById(ANI_GIRAFFEE, -1);
 
@@ -165,7 +161,7 @@ int scene23_updateCursor() {
 	g_fp->updateCursorCommon();
 
 	if (g_fp->_objectIdAtCursor == PIC_SC23_LADDERU) {
-		if (g_vars->scene23_var05)
+		if (g_vars->scene23_topReached)
 			return g_fp->_cursorId;
 
 		g_fp->_cursorId = getGameLoaderInventory()->getSelectedItemId() ? PIC_CSR_GOU : PIC_CSR_ITN; // FIXME check
@@ -293,7 +289,7 @@ void sceneHandler23_spinWheel3() {
 
 void sceneHandler23_pushButton(ExCommand *cmd) {
 	if (g_fp->_aniMan->isIdle() || !(g_fp->_aniMan->_flags & 0x100)) {
-		if (!g_vars->scene23_var05) {
+		if (!g_vars->scene23_topReached) {
 			if (g_fp->_aniMan->_ox != 405 || g_fp->_aniMan->_oy != 220) {
 				if (g_fp->_aniMan->_ox != 276 || g_fp->_aniMan->_oy != 438
 					|| g_fp->_aniMan->_movement || g_fp->_aniMan->_statics->_staticsId != ST_MAN_RIGHT) {
@@ -315,10 +311,10 @@ void sceneHandler23_pushButton(ExCommand *cmd) {
 					mq->chain(0);
 				}
 
-				if (!g_vars->scene23_var05)
+				if (!g_vars->scene23_topReached)
 					return;
 			} else {
-				g_vars->scene23_var05 = 1;
+				g_vars->scene23_topReached = true;
 			}
 		}
 
@@ -381,16 +377,16 @@ void sceneHandler23_sendClick(StaticANIObject *ani) {
 void sceneHandler23_checkReachingTop() {
 	if (g_fp->_aniMan->_movement || g_fp->_aniMan->_statics->_staticsId != ST_MAN_STANDLADDER
 		|| g_fp->_aniMan->_ox != 405 || g_fp->_aniMan->_oy != 220)
-		g_vars->scene23_var05 = 0;
+		g_vars->scene23_topReached = false;
 	else
-		g_vars->scene23_var05 = 1;
+		g_vars->scene23_topReached = true;
 }
 
 void sceneHandler23_exitCalendar() {
 	if (!g_fp->_aniMan->_movement && g_fp->_aniMan->_statics->_staticsId == ST_MAN_STANDLADDER
 		&& !g_fp->_aniMan->getMessageQueue() && !(g_fp->_aniMan->_flags & 0x100)) {
 		chainQueue(QU_SC23_FROMCALENDAREXIT, 1);
-		g_vars->scene23_var07 = 2;
+		g_vars->scene23_someVar = 2;
 	}
 }
 
@@ -403,8 +399,8 @@ void sceneHandler23_fromCalendar(ExCommand *cmd) {
 		mq->setFlags(mq->getFlags() | 1);
 		mq->chain(0);
 
-		g_vars->scene23_var05 = 0;
-		g_vars->scene23_var07 = 0;
+		g_vars->scene23_topReached = false;
+		g_vars->scene23_someVar = 0;
 	}
 }
 
@@ -426,7 +422,7 @@ int sceneHandler23(ExCommand *cmd) {
 
 	switch (cmd->_messageNum) {
 	case MSG_SC23_FROMSTOOL:
-		g_vars->scene23_var06 = 0;
+		g_vars->scene23_isOnStool = false;
 
 		getCurrSceneSc2MotionController()->setEnabled();
 		getGameLoaderInteractionController()->enableFlag24();
@@ -440,7 +436,7 @@ int sceneHandler23(ExCommand *cmd) {
 		break;
 
 	case MSG_SC23_ONSTOOL:
-		g_vars->scene23_var06 = 1;
+		g_vars->scene23_isOnStool = true;
 
 		getCurrSceneSc2MotionController()->clearEnabled();
 		getGameLoaderInteractionController()->disableFlag24();
@@ -483,11 +479,11 @@ int sceneHandler23(ExCommand *cmd) {
 		if (g_fp->_aniMan2) {
 			int x = g_fp->_aniMan2->_ox;
 
-			if (x < g_fp->_sceneRect.left + g_vars->scene23_var01)
-				g_fp->_currentScene->_x = x - g_vars->scene23_var03 - g_fp->_sceneRect.left;
+			if (x < g_fp->_sceneRect.left + 200)
+				g_fp->_currentScene->_x = x - 300 - g_fp->_sceneRect.left;
 
-			if (x > g_fp->_sceneRect.right - g_vars->scene23_var01)
-				g_fp->_currentScene->_x = x + g_vars->scene23_var03 - g_fp->_sceneRect.right;
+			if (x > g_fp->_sceneRect.right - 200)
+				g_fp->_currentScene->_x = x + 300 - g_fp->_sceneRect.right;
 		}
 
 		g_fp->_floaters->update();
@@ -509,7 +505,7 @@ int sceneHandler23(ExCommand *cmd) {
 
 			sceneHandler23_checkReachingTop();
 
-			if (g_vars->scene23_var05) {
+			if (g_vars->scene23_topReached) {
 				picId = g_fp->_currentScene->getPictureObjectIdAtPos(cmd->_sceneClickX, cmd->_sceneClickY);
 
 				if (picId == PIC_SC23_LADDER) {
@@ -528,10 +524,10 @@ int sceneHandler23(ExCommand *cmd) {
 				break;
 			}
 
-			if (!g_vars->scene23_var06) {
+			if (!g_vars->scene23_isOnStool) {
 				picId = g_fp->_currentScene->getPictureObjectIdAtPos(cmd->_sceneClickX, cmd->_sceneClickY);
 
-				if (picId == PIC_SC23_LADDERU && !g_vars->scene23_var05) {
+				if (picId == PIC_SC23_LADDERU && !g_vars->scene23_topReached) {
 					sceneHandler23_pushButton(cmd);
 
 					cmd->_messageKind = 0;


Commit: 662bbfaffe026fbb1f73d7f5b0c23bcd54aecd59
    https://github.com/scummvm/scummvm/commit/662bbfaffe026fbb1f73d7f5b0c23bcd54aecd59
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-04T16:32:30-08:00

Commit Message:
FULLPIPE: Fix wrong indexes in Floaters.

Thanks to eriktorbjorn.

Changed paths:
    engines/fullpipe/floaters.cpp



diff --git a/engines/fullpipe/floaters.cpp b/engines/fullpipe/floaters.cpp
index 7ad634f..9e5ca7b 100644
--- a/engines/fullpipe/floaters.cpp
+++ b/engines/fullpipe/floaters.cpp
@@ -111,7 +111,7 @@ void Floaters::genFlies(Scene *sc, int x, int y, int priority, int flags) {
 	else
 		nummoves = ani->_movement->_dynamicPhases.size();
 
-	ani->_movement->setDynamicPhaseIndex(g_fp->_rnd->getRandomNumber(nummoves));
+	ani->_movement->setDynamicPhaseIndex(g_fp->_rnd->getRandomNumber(nummoves - 1));
 
 	FloaterArray2 *arr2 = new FloaterArray2;
 
@@ -190,7 +190,7 @@ void Floaters::update() {
 					_array2[i]->val3 = _array2[i]->val7;
 				} else {
 					if (_array2[i]->fflags & 2) {
-						int idx1 = g_fp->_rnd->getRandomNumber(_array1.size());
+						int idx1 = g_fp->_rnd->getRandomNumber(_array1.size() - 1);
 
 						_array2[i]->val2 = _array1[idx1]->val1;
 						_array2[i]->val3 = _array1[idx1]->val2;






More information about the Scummvm-git-logs mailing list