[Scummvm-cvs-logs] scummvm master -> a21bba04d041cce1fafedb265ded9d4f3e305e7e

sev- sev at scummvm.org
Thu Jan 2 23:12:32 CET 2014


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

Summary:
bf304184b8 FULLPIPE: Implement sceneHandler22_stoolLogic()
7d178a8647 FULLPIPE: Rename variables in scene22
a21bba04d0 FULLPIPE: Enable scene22. This completes the scene


Commit: bf304184b838bcd446cd3330a92c2d1ba2539b67
    https://github.com/scummvm/scummvm/commit/bf304184b838bcd446cd3330a92c2d1ba2539b67
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-02T13:53:36-08:00

Commit Message:
FULLPIPE: Implement sceneHandler22_stoolLogic()

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



diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index 96abc3a..af09d1d 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -756,8 +756,15 @@ namespace Fullpipe {
 #define QU_SC22_FALLSACK 1791
 #define QU_SC22_FALLSACK_GMA 2613
 #define QU_SC22_FROMSTOOL 1800
+#define QU_SC22_HANDLEDOWN 1804
+#define QU_SC22_PUTSTOOL 1803
 #define QU_SC22_SHOWSTOOL 1793
+#define QU_SC22_TOSTOOL 1801
+#define QU_SC22_TOSTOOL_R 3332
+#define QU_SC22_TRYBOX 5311
+#define QU_SC22_TRYHANDLE 1802
 #define QU_MSH_MOVE 1812
+#define rMV_MAN_TURN_SRL 1090
 #define ST_GRFM_AFTER 3472
 #define ST_GRFM_NORM 1983
 #define ST_MSH_SIT 1756
diff --git a/engines/fullpipe/scenes/scene22.cpp b/engines/fullpipe/scenes/scene22.cpp
index f4c6009..7a5ecb7 100644
--- a/engines/fullpipe/scenes/scene22.cpp
+++ b/engines/fullpipe/scenes/scene22.cpp
@@ -163,8 +163,134 @@ void sceneHandler22_fromStool(ExCommand *cmd) {
 	}
 }
 
-void sceneHandler22_sub02(ExCommand *cmd) {
-	warning("STUB: sceneHandler22_sub02(cmd)");
+void sceneHandler22_stoolLogic(ExCommand *cmd) {
+	StaticANIObject *ani;
+	MessageQueue *mq;
+	int xpos;
+	int manId;
+
+	if (g_fp->_aniMan->isIdle() && !(g_fp->_aniMan->_flags & 0x100)) {
+		if (cmd->_keyCode == ANI_INV_STOOL) {
+			if (abs(841 - g_fp->_aniMan->_ox) <= 1) {
+				if (abs(449 - g_fp->_aniMan->_oy) <= 1) {
+					chainQueue(QU_SC22_PUTSTOOL, 1);
+					g_vars->scene22_var08 = 1;
+
+					return;
+				}
+			}
+			goto LABEL_13;
+		}
+
+		if (cmd->_keyCode == ANI_INV_BOX) {
+			ani = g_fp->_currentScene->getStaticANIObject1ById(ANI_TABURETTE, -1);
+			if (!ani || !(ani->_flags & 4)) {
+				if (abs(841 - g_fp->_aniMan->_ox) <= 1) {
+					if (abs(449 - g_fp->_aniMan->_oy) <= 1) {
+						chainObjQueue(g_fp->_aniMan, QU_SC22_TRYBOX, 1);
+						return;
+					}
+				}
+			LABEL_13:
+				xpos = 841;
+				manId = ST_MAN_RIGHT;
+			LABEL_31:
+				mq = getCurrSceneSc2MotionController()->method34(g_fp->_aniMan, xpos, 449, 1, manId);
+
+				if (!mq)
+					return;
+
+				mq->addExCommandToEnd(new ExCommand(cmd));
+
+				postExCommand(g_fp->_aniMan->_id, 2, 841, 449, 0, -1);
+				return;
+			}
+		} else {
+			if (cmd->_keyCode)
+				return;
+			if (g_vars->scene22_var07) {
+				if (g_fp->_aniMan->_movement)
+					return;
+
+				chainQueue(QU_SC22_HANDLEDOWN, 1);
+				g_vars->scene22_var08 = 1;
+				return;
+			}
+
+			ani = g_fp->_currentScene->getStaticANIObject1ById(ANI_TABURETTE, -1);
+			if (ani && (ani->_flags & 4)) {
+				int x = g_fp->_aniMan->_ox;
+				int y = g_fp->_aniMan->_ox;
+
+				if (sqrt((double)((841 - x) * (841 - x) + (449 - y) * (449 - y)))
+					< sqrt((double)((1075 - x) * (1075 - x) + (449 - y) * (449 - y)))) {
+					if (abs(841 - x) <= 1) {
+						if (abs(449 - y) <= 1) {
+							chainQueue(QU_SC22_TOSTOOL, 1);
+							g_vars->scene22_var08 = 1;
+							return;
+						}
+					}
+					goto LABEL_13;
+				}
+
+				if (abs(1075 - x) > 1 || abs(449 - y) > 1) {
+					xpos = 1075;
+					manId = ST_MAN_RIGHT | 0x4000;
+					goto LABEL_31;
+				}
+
+				MGM mgm;
+				MGMInfo mgminfo;
+
+				mgm.addItem(ANI_MAN);
+				mgminfo.ani = g_fp->_aniMan;
+				mgminfo.staticsId2 = ST_MAN_RIGHT;
+				mgminfo.x1 = 934;
+				mgminfo.y1 = 391;
+				mgminfo.field_1C = 10;
+				mgminfo.staticsId1 = 0x4145;
+				mgminfo.x2 = 981;
+				mgminfo.y2 = 390;
+				mgminfo.field_10 = 1;
+				mgminfo.flags = 127;
+				mgminfo.movementId = rMV_MAN_TURN_SRL;
+
+				mq = mgm.genMovement(&mgminfo);
+
+				ExCommand *ex = mq->getExCommandByIndex(0);
+
+				mq->deleteExCommandByIndex(0, 0);
+
+				if (mq)
+					delete mq;
+
+				mq = new MessageQueue(g_fp->_currentScene->getMessageQueueById(QU_SC22_TOSTOOL_R), 0, 0);
+
+				mq->insertExCommandAt(2, ex);
+				mq->setFlags(mq->getFlags() | 1);
+				mq->chain(0);
+
+				g_vars->scene22_var08 = 1;
+			} else {
+				if (abs(1010 - g_fp->_aniMan->_ox) <= 1) {
+					if (abs(443 - g_fp->_aniMan->_oy) <= 1) {
+						chainQueue(QU_SC22_TRYHANDLE, 1);
+						return;
+					}
+				}
+
+				mq = getCurrSceneSc2MotionController()->method34(g_fp->_aniMan, 1010, 443, 1, ST_MAN_UP);
+
+				if (mq) {
+					mq->addExCommandToEnd(new ExCommand(cmd));
+
+					postExCommand(g_fp->_aniMan->_id, 2, 1010, 443, 0, -1);
+					return;
+				}
+			}
+		}
+	}
 }
 
 int sceneHandler22(ExCommand *cmd) {
@@ -213,7 +339,7 @@ int sceneHandler22(ExCommand *cmd) {
 			StaticANIObject *ani = g_fp->_currentScene->getStaticANIObjectAtPos(cmd->_sceneClickX, cmd->_sceneClickY);
 
 			if (ani && ani->_id == ANI_HANDLE_L) {
-				sceneHandler22_sub02(cmd);
+				sceneHandler22_stoolLogic(cmd);
 				return 0;
 			}
 
@@ -254,7 +380,7 @@ int sceneHandler22(ExCommand *cmd) {
 				g_fp->_currentScene->_x = g_fp->_sceneWidth - x;
 			}
 
-			if (x > g_fp->_sceneRect.right - g_vars->scene22_var01 )
+			if (x > g_fp->_sceneRect.right - g_vars->scene22_var01)
 				g_fp->_currentScene->_x = x + g_vars->scene22_var03 - g_fp->_sceneRect.right;
 
 			g_fp->_behaviorManager->updateBehaviors();


Commit: 7d178a86478c5bcf6bbeabf7347a4b0624f6466e
    https://github.com/scummvm/scummvm/commit/7d178a86478c5bcf6bbeabf7347a4b0624f6466e
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-02T14:06:37-08:00

Commit Message:
FULLPIPE: Rename variables in scene22

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



diff --git a/engines/fullpipe/scenes.cpp b/engines/fullpipe/scenes.cpp
index 483d3cf..11d32d4 100644
--- a/engines/fullpipe/scenes.cpp
+++ b/engines/fullpipe/scenes.cpp
@@ -257,17 +257,12 @@ Vars::Vars() {
 	scene21_wigglePos = 0.0;
 	scene21_wiggleTrigger = 0;
 
-	scene22_var01 = 200;
-	scene22_var02 = 200;
-	scene22_var03 = 300;
-	scene22_var04 = 300;
 	scene22_bag = 0;
 	scene22_giraffeMiddle = 0;
-	scene22_var07 = 0;
-	scene22_var08 = 0;
-	scene22_var09 = 0;
-	scene22_var10 = 1;
-	scene22_var11 = 1;
+	scene22_dudeIsOnStool = false;
+	scene22_interactionIsDisabled = false;
+	scene22_craneIsOut = true;
+	scene22_numBagFalls = 1;
 
 	scene24_jetIsOn = false;
 	scene24_flowIsLow = false;
diff --git a/engines/fullpipe/scenes.h b/engines/fullpipe/scenes.h
index 49c25ac..72103fd 100644
--- a/engines/fullpipe/scenes.h
+++ b/engines/fullpipe/scenes.h
@@ -361,17 +361,12 @@ public:
 	double scene21_wigglePos;
 	bool scene21_wiggleTrigger;
 
-	int scene22_var01;
-	int scene22_var02;
-	int scene22_var03;
-	int scene22_var04;
 	StaticANIObject *scene22_bag;
 	StaticANIObject *scene22_giraffeMiddle;
-	int scene22_var07;
-	int scene22_var08;
-	int scene22_var09;
-	int scene22_var10;
-	int scene22_var11;
+	bool scene22_dudeIsOnStool;
+	bool scene22_interactionIsDisabled;
+	bool scene22_craneIsOut;
+	int scene22_numBagFalls;
 
 	bool scene24_jetIsOn;
 	bool scene24_flowIsLow;
diff --git a/engines/fullpipe/scenes/scene22.cpp b/engines/fullpipe/scenes/scene22.cpp
index 7a5ecb7..5df2b6e 100644
--- a/engines/fullpipe/scenes/scene22.cpp
+++ b/engines/fullpipe/scenes/scene22.cpp
@@ -37,30 +37,25 @@
 namespace Fullpipe {
 
 void scene22_initScene(Scene *sc) {
-	g_vars->scene22_var01 = 200;
-	g_vars->scene22_var02 = 200;
-	g_vars->scene22_var03 = 300;
-	g_vars->scene22_var04 = 300;
 	g_vars->scene22_bag = sc->getStaticANIObject1ById(ANI_MESHOK, -1);
 
 	Scene *oldsc = g_fp->_currentScene;
 	g_fp->_currentScene = sc;
 
 	g_vars->scene22_giraffeMiddle = sc->getStaticANIObject1ById(ANI_GIRAFFE_MIDDLE, -1);
-	g_vars->scene22_var07 = 0;
-	g_vars->scene22_var08 = 0;
-	g_vars->scene22_var09 = 0;
-	g_vars->scene22_var10 = 1;
+	g_vars->scene22_dudeIsOnStool = false;
+	g_vars->scene22_interactionIsDisabled = false;
+	g_vars->scene22_craneIsOut = true;
 
 	if (g_fp->getObjectState(sO_Bag_22) == g_fp->getObjectEnumState(sO_Bag_22, sO_NotFallen))
-		g_vars->scene22_var11 = 0;
+		g_vars->scene22_numBagFalls = 0;
 	else if (g_fp->getObjectState(sO_Bag_22) == g_fp->getObjectEnumState(sO_Bag_22, sO_FallenOnce))
-		g_vars->scene22_var11 = 1;
+		g_vars->scene22_numBagFalls = 1;
 	else if ( g_fp->getObjectState(sO_Bag_22) == g_fp->getObjectEnumState(sO_Bag_22, sO_FallenTwice))
-		g_vars->scene22_var11 = 2;
+		g_vars->scene22_numBagFalls = 2;
 	else {
-		g_vars->scene22_var11 = 3;
-        g_vars->scene22_var10 = 0;
+		g_vars->scene22_numBagFalls = 3;
+        g_vars->scene22_craneIsOut = false;
 	}
 
 
@@ -87,7 +82,7 @@ int scene22_updateCursor() {
 		return g_fp->_cursorId;
 	}
 
-	if (g_vars->scene22_var07 || (sel != ANI_INV_STOOL && sel != ANI_INV_BOX))
+	if (g_vars->scene22_dudeIsOnStool || (sel != ANI_INV_STOOL && sel != ANI_INV_BOX))
 		; //empty
 	else
 		g_fp->_cursorId = PIC_CSR_ITN_INV;
@@ -96,7 +91,7 @@ int scene22_updateCursor() {
 }
 
 void scene22_setBagState() {
-	if (g_vars->scene22_var10) {
+	if (g_vars->scene22_craneIsOut) {
 		g_fp->_behaviorManager->setBehaviorEnabled(g_vars->scene22_bag, ST_MSH_SIT, QU_MSH_CRANEOUT, 1);
 		g_fp->_behaviorManager->setBehaviorEnabled(g_vars->scene22_bag, ST_MSH_SIT, QU_MSH_MOVE, 0);
 	} else {
@@ -116,13 +111,13 @@ void sceneHandler22and23_hideStool() {
 void sceneHandler22_handleDown() {
 	if (g_vars->scene22_bag->_statics->_staticsId == ST_MSH_SIT) {
 		chainQueue(QU_MSH_CRANEOUT, 1);
-		g_vars->scene22_var08 = 0;
+		g_vars->scene22_interactionIsDisabled = false;
 	} else {
-		++g_vars->scene22_var11;
+		++g_vars->scene22_numBagFalls;
 
 		int qid;
 
-		if (g_vars->scene22_var11 == 3) {
+		if (g_vars->scene22_numBagFalls == 3) {
 			chainQueue(QU_SC22_FALLSACK_GMA, 1);
 			qid = QU_SC22_FALLBROOM;
 		} else {
@@ -133,10 +128,10 @@ void sceneHandler22_handleDown() {
 
 		int state;
 
-		if (g_vars->scene22_var11) {
-			if (g_vars->scene22_var11 == 1) {
+		if (g_vars->scene22_numBagFalls) {
+			if (g_vars->scene22_numBagFalls == 1) {
 				state = g_fp->getObjectEnumState(sO_Bag_22, sO_FallenOnce);
-			} else if (g_vars->scene22_var11 == 2) {
+			} else if (g_vars->scene22_numBagFalls == 2) {
 				state = g_fp->getObjectEnumState(sO_Bag_22, sO_FallenTwice);
 			} else {
 				state = g_fp->getObjectEnumState(sO_Bag_22, sO_BrushHasFallen);
@@ -147,7 +142,8 @@ void sceneHandler22_handleDown() {
 
 		g_fp->setObjectState(sO_Bag_22, state);
 	}
-	g_vars->scene22_var10 = 1;
+
+	g_vars->scene22_craneIsOut = true;
 
 	g_fp->_behaviorManager->setBehaviorEnabled(g_vars->scene22_bag, ST_MSH_SIT, QU_MSH_CRANEOUT, 1);
 	g_fp->_behaviorManager->setBehaviorEnabled(g_vars->scene22_bag, ST_MSH_SIT, QU_MSH_MOVE, 0);
@@ -174,7 +170,7 @@ void sceneHandler22_stoolLogic(ExCommand *cmd) {
 			if (abs(841 - g_fp->_aniMan->_ox) <= 1) {
 				if (abs(449 - g_fp->_aniMan->_oy) <= 1) {
 					chainQueue(QU_SC22_PUTSTOOL, 1);
-					g_vars->scene22_var08 = 1;
+					g_vars->scene22_interactionIsDisabled = true;
 
 					return;
 				}
@@ -208,12 +204,14 @@ void sceneHandler22_stoolLogic(ExCommand *cmd) {
 		} else {
 			if (cmd->_keyCode)
 				return;
-			if (g_vars->scene22_var07) {
+
+			if (g_vars->scene22_dudeIsOnStool) {
 				if (g_fp->_aniMan->_movement)
 					return;
 
 				chainQueue(QU_SC22_HANDLEDOWN, 1);
-				g_vars->scene22_var08 = 1;
+
+				g_vars->scene22_interactionIsDisabled = true;
 				return;
 			}
 
@@ -227,7 +225,8 @@ void sceneHandler22_stoolLogic(ExCommand *cmd) {
 					if (abs(841 - x) <= 1) {
 						if (abs(449 - y) <= 1) {
 							chainQueue(QU_SC22_TOSTOOL, 1);
-							g_vars->scene22_var08 = 1;
+
+							g_vars->scene22_interactionIsDisabled = true;
 							return;
 						}
 					}
@@ -271,7 +270,7 @@ void sceneHandler22_stoolLogic(ExCommand *cmd) {
 				mq->setFlags(mq->getFlags() | 1);
 				mq->chain(0);
 
-				g_vars->scene22_var08 = 1;
+				g_vars->scene22_interactionIsDisabled = true;
 			} else {
 				if (abs(1010 - g_fp->_aniMan->_ox) <= 1) {
 					if (abs(443 - g_fp->_aniMan->_oy) <= 1) {
@@ -317,15 +316,15 @@ int sceneHandler22(ExCommand *cmd) {
 		break;
 
 	case MSG_SC22_FROMSTOOL:
-		g_vars->scene22_var07 = 0;
-		g_vars->scene22_var08 = 0;
+		g_vars->scene22_dudeIsOnStool = false;
+		g_vars->scene22_interactionIsDisabled = false;
 
 		getCurrSceneSc2MotionController()->setEnabled();
 		g_fp->_behaviorManager->setFlagByStaticAniObject(g_fp->_aniMan, 1);
 		break;
 
 	case MSG_SC22_ONSTOOL:
-		g_vars->scene22_var07 = 1;
+		g_vars->scene22_dudeIsOnStool = true;
 		getCurrSceneSc2MotionController()->clearEnabled();
 		g_fp->_behaviorManager->setFlagByStaticAniObject(g_fp->_aniMan, 0);
 		break;
@@ -335,7 +334,7 @@ int sceneHandler22(ExCommand *cmd) {
 		break;
 
 	case 29:
-		if (!g_vars->scene22_var08) {
+		if (!g_vars->scene22_interactionIsDisabled) {
 			StaticANIObject *ani = g_fp->_currentScene->getStaticANIObjectAtPos(cmd->_sceneClickX, cmd->_sceneClickY);
 
 			if (ani && ani->_id == ANI_HANDLE_L) {
@@ -343,7 +342,7 @@ int sceneHandler22(ExCommand *cmd) {
 				return 0;
 			}
 
-			if (!g_vars->scene22_var07) {
+			if (!g_vars->scene22_dudeIsOnStool) {
 				if (!ani || !canInteractAny(g_fp->_aniMan, ani, cmd->_keyCode)) {
 					int picId = g_fp->_currentScene->getPictureObjectIdAtPos(cmd->_sceneClickX, cmd->_sceneClickY);
 					PictureObject *pic = g_fp->_currentScene->getPictureObjectById(picId, 0);
@@ -374,14 +373,14 @@ int sceneHandler22(ExCommand *cmd) {
 			int x = g_fp->_aniMan2->_ox;
 
 			if (x <= g_fp->_sceneWidth - 460) {
-				if (x < g_fp->_sceneRect.left + g_vars->scene22_var01)
-					g_fp->_currentScene->_x = x - g_vars->scene22_var03 - g_fp->_sceneRect.left;
+				if (x < g_fp->_sceneRect.left + 200)
+					g_fp->_currentScene->_x = x - 300 - g_fp->_sceneRect.left;
 			} else {
 				g_fp->_currentScene->_x = g_fp->_sceneWidth - x;
 			}
 
-			if (x > g_fp->_sceneRect.right - g_vars->scene22_var01)
-				g_fp->_currentScene->_x = x + g_vars->scene22_var03 - g_fp->_sceneRect.right;
+			if (x > g_fp->_sceneRect.right - 200)
+				g_fp->_currentScene->_x = x + 300 - g_fp->_sceneRect.right;
 
 			g_fp->_behaviorManager->updateBehaviors();
 


Commit: a21bba04d041cce1fafedb265ded9d4f3e305e7e
    https://github.com/scummvm/scummvm/commit/a21bba04d041cce1fafedb265ded9d4f3e305e7e
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-02T14:11:41-08:00

Commit Message:
FULLPIPE: Enable scene22. This completes the scene

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



diff --git a/engines/fullpipe/scenes.cpp b/engines/fullpipe/scenes.cpp
index 11d32d4..34a8de6 100644
--- a/engines/fullpipe/scenes.cpp
+++ b/engines/fullpipe/scenes.cpp
@@ -682,7 +682,6 @@ bool FullpipeEngine::sceneSwitcher(EntranceInfo *entrance) {
 		_updateCursorCallback = scene21_updateCursor;
 		break;
 
-#if 0
 	case SC_22:
 		sceneVar = _gameLoader->_gameVar->getSubVarByName("SC_22");
 		scene->preloadMovements(sceneVar);
@@ -690,11 +689,12 @@ bool FullpipeEngine::sceneSwitcher(EntranceInfo *entrance) {
 		_behaviorManager->initBehavior(scene, sceneVar);
 		scene->initObjectCursors("SC_22");
 		setSceneMusicParameters(sceneVar);
-		scene22_sub_4228A0();
+		scene22_setBagState();
 		insertMessageHandler(sceneHandler22, 2, 2);
 		_updateCursorCallback = scene22_updateCursor;
 		break;
 
+#if 0
 	case SC_23:
 		sceneVar = _gameLoader->_gameVar->getSubVarByName("SC_23");
 		scene->preloadMovements(sceneVar);
diff --git a/engines/fullpipe/scenes.h b/engines/fullpipe/scenes.h
index 72103fd..7852d96 100644
--- a/engines/fullpipe/scenes.h
+++ b/engines/fullpipe/scenes.h
@@ -108,6 +108,11 @@ int scene21_updateCursor();
 void scene21_initScene(Scene *sc);
 int sceneHandler21(ExCommand *cmd);
 
+void scene22_initScene(Scene *sc);
+void scene22_setBagState();
+int sceneHandler22(ExCommand *cmd);
+int scene22_updateCursor();
+
 void scene24_initScene(Scene *sc);
 void scene24_setPoolState();
 int sceneHandler24(ExCommand *cmd);






More information about the Scummvm-git-logs mailing list