[Scummvm-cvs-logs] scummvm master -> 675e6643f7c283f7d9c5320a49c15fd3a8893e4e

sev- sev at scummvm.org
Wed Dec 18 17:42:21 CET 2013


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

Summary:
fa94808e31 FULLPIPE: Implement sceneHandler06_sub05()
4bc2f258a4 FULLPIPE: Implement sceneHandler06_sub03()
4fb8e6e66e FULLPIPE: Implement sceneHandler06_sub08() and sceneHandler06_sub10()
29773ef1c0 FULLPIPE: Implement FullpipeEngine::drawArcadeOverlay()
db7b6b3352 FULLPIPE: Implement sceneHandler06_mumsyBallTake()
675e6643f7 FULLPIPE: Implement sceneHandler06_winArcade()


Commit: fa94808e31dbcb21175a63e896c1aff90f61caec
    https://github.com/scummvm/scummvm/commit/fa94808e31dbcb21175a63e896c1aff90f61caec
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2013-12-18T05:27:04-08:00

Commit Message:
FULLPIPE: Implement sceneHandler06_sub05()

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



diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index fd4f835..d449c01 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -268,6 +268,7 @@ namespace Fullpipe {
 #define QU_SC6_DROPS 2898
 #define QU_SC6_ENTERLIFT 1054
 #define QU_SC6_EXITLIFT 1055
+#define QU_SC6_FALLBALL 2690
 #define QU_SC6_SHOWHANDLE 1689
 #define QU_SC6_SHOWNEXTBALL 2689
 #define SC_1 301
diff --git a/engines/fullpipe/scenes/scene06.cpp b/engines/fullpipe/scenes/scene06.cpp
index 9dc4708..3b72030 100644
--- a/engines/fullpipe/scenes/scene06.cpp
+++ b/engines/fullpipe/scenes/scene06.cpp
@@ -226,8 +226,26 @@ void sceneHandler06_sub03() {
 	warning("STUB: sceneHandler06_sub03()");
 }
 
+void sceneHandler06_sub10() {
+	warning("STUB: sceneHandler06_sub10()");
+}
+
 void sceneHandler06_sub05() {
-	warning("STUB: sceneHandler06_sub05()");
+	g_vars->scene06_var04 = 475;
+
+	g_vars->scene06_var11->setOXY(g_vars->scene06_var03, g_vars->scene06_var04);
+
+	MessageQueue *mq = new MessageQueue(g_fullpipe->_currentScene->getMessageQueueById(QU_SC6_FALLBALL), 0, 1);
+
+	mq->replaceKeyCode(-1, g_vars->scene06_var11->_okeyCode);
+	mq->chain(0);
+
+	g_vars->scene06_balls.push_back(g_vars->scene06_var11);
+
+	g_vars->scene06_var11 = 0;
+
+	sceneHandler06_sub10();
+	sceneHandler06_sub03();
 }
 
 void sceneHandler06_sub09() {
@@ -253,11 +271,6 @@ void sceneHandler06_sub06() {
 	warning("STUB: sceneHandler06_sub06()");
 }
 
-void sceneHandler06_sub10() {
-	warning("STUB: sceneHandler06_sub10()");
-}
-
-
 void scene06_initScene(Scene *sc) {
 	g_vars->scene06_mumsy = sc->getStaticANIObject1ById(ANI_MAMASHA, -1);
 	g_vars->scene06_var06 = 0;


Commit: 4bc2f258a4b5b320a3176071bc2948b987ff00f9
    https://github.com/scummvm/scummvm/commit/4bc2f258a4b5b320a3176071bc2948b987ff00f9
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2013-12-18T05:41:05-08:00

Commit Message:
FULLPIPE: Implement sceneHandler06_sub03()

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



diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index d449c01..01ab47a 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -35,6 +35,7 @@ namespace Fullpipe {
 #define ANI_DOMINO_3 2732
 #define ANI_DADAYASHIK 306
 #define ANI_EGGEATER 334
+#define ANI_EGGIE 4929
 #define ANI_HAND 601
 #define ANI_HANDLE 622
 #define ANI_IN1MAN 5110
@@ -241,6 +242,8 @@ namespace Fullpipe {
 #define PIC_SCD_SEL 734
 #define QU_BALL_WALKL 4920
 #define QU_BALL_WALKR 4919
+#define QU_EGG6_GOL 4936
+#define QU_EGG6_GOR 4935
 #define QU_EGTR_MD2_SHOW 4698
 #define QU_EGTR_MD1_SHOW 4697
 #define QU_EGTR_SLIMSHOW 4883
diff --git a/engines/fullpipe/scenes/scene06.cpp b/engines/fullpipe/scenes/scene06.cpp
index 3b72030..f1a6e77 100644
--- a/engines/fullpipe/scenes/scene06.cpp
+++ b/engines/fullpipe/scenes/scene06.cpp
@@ -223,7 +223,18 @@ void sceneHandler06_throwBall() {
 }
 
 void sceneHandler06_sub03() {
-	warning("STUB: sceneHandler06_sub03()");
+	if (15 - g_vars->scene06_numBallsGiven >= 4 && !g_fullpipe->_rnd->getRandomNumber(9)) {
+		StaticANIObject *ani = g_fullpipe->_currentScene->getStaticANIObject1ById(ANI_EGGIE, -1);
+		if (!ani || !(ani->_flags & 4)) {
+			if (g_vars->scene06_var15)
+				chainQueue(QU_EGG6_GOR, 0);
+			else
+				chainQueue(QU_EGG6_GOL, 0);
+
+			g_vars->scene06_var14 = 0;
+			g_vars->scene06_var15 = (g_vars->scene06_var15 == 0);
+		}
+	}
 }
 
 void sceneHandler06_sub10() {


Commit: 4fb8e6e66e1c4c0af3cf226d59dc00f2ea44ed1e
    https://github.com/scummvm/scummvm/commit/4fb8e6e66e1c4c0af3cf226d59dc00f2ea44ed1e
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2013-12-18T05:51:24-08:00

Commit Message:
FULLPIPE: Implement sceneHandler06_sub08() and sceneHandler06_sub10()

Changed paths:
    engines/fullpipe/constants.h
    engines/fullpipe/fullpipe.h
    engines/fullpipe/input.cpp
    engines/fullpipe/scenes/scene06.cpp



diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index 01ab47a..b1f005d 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -172,6 +172,7 @@ namespace Fullpipe {
 #define MV_MAN_TOLADDER2 2841
 #define MV_MAN_TURN_LU 486
 #define MV_MAN_TURN_SUD 1089
+#define MV_MAN6_TAKEBALL 2691
 #define MV_MAN6_THROWBALL 2692
 #define MV_MANHDL_HANDLEDOWN 630
 #define MV_MANHDL_HANDLEUP 631
@@ -269,6 +270,7 @@ namespace Fullpipe {
 #define QU_SC5_MANBUMP 1167
 #define QU_SC5_MANFLY 1168
 #define QU_SC6_DROPS 2898
+#define QU_SC6_DROPS3 2955
 #define QU_SC6_ENTERLIFT 1054
 #define QU_SC6_EXITLIFT 1055
 #define QU_SC6_FALLBALL 2690
diff --git a/engines/fullpipe/fullpipe.h b/engines/fullpipe/fullpipe.h
index b326c45..aa42fd0 100644
--- a/engines/fullpipe/fullpipe.h
+++ b/engines/fullpipe/fullpipe.h
@@ -255,6 +255,7 @@ public:
 	void processArcade(ExCommand *ex);
 	void winArcade();
 	void setArcadeOverlay(int picId);
+	int drawArcadeOverlay(int adjust);
 
 	void getAllInventory();
 
diff --git a/engines/fullpipe/input.cpp b/engines/fullpipe/input.cpp
index d5431dd..e2c638e 100644
--- a/engines/fullpipe/input.cpp
+++ b/engines/fullpipe/input.cpp
@@ -311,5 +311,10 @@ void FullpipeEngine::setArcadeOverlay(int picId) {
 	_arcadeOverlayMidY = abs(point2.y - point.y) / 2;
 }
 
+int FullpipeEngine::drawArcadeOverlay(int adjust) {
+	warning("STUB: drawArcadeOverlay()");
+
+	return 1;
+}
 
 } // End of namespace Fullpipe
diff --git a/engines/fullpipe/scenes/scene06.cpp b/engines/fullpipe/scenes/scene06.cpp
index f1a6e77..7b76537 100644
--- a/engines/fullpipe/scenes/scene06.cpp
+++ b/engines/fullpipe/scenes/scene06.cpp
@@ -143,8 +143,33 @@ void sceneHandler06_installHandle() {
 	chainQueue(QU_SC6_SHOWHANDLE, 0);
 }
 
+int sceneHandler06_updateScreenCallback() {
+	int res;
+
+	res = g_fullpipe->drawArcadeOverlay(g_vars->scene06_var07);
+	if (!res )
+		g_fullpipe->_updateScreenCallback = 0;
+
+	return res;
+}
+
 void sceneHandler06_sub08() {
-	warning("STUB: sceneHandler06_sub08()");
+	if (g_vars->scene06_currentBall) {
+		g_vars->scene06_currentBall->hide();
+
+		g_fullpipe->_aniMan->startAnim(MV_MAN6_TAKEBALL, 0, -1);
+
+		g_vars->scene06_var10 = g_vars->scene06_currentBall;
+		g_vars->scene06_currentBall = 0;
+
+		if (getCurrSceneSc2MotionController()->_isEnabled)
+			g_fullpipe->_updateScreenCallback = sceneHandler06_updateScreenCallback;
+
+		getCurrSceneSc2MotionController()->clearEnabled();
+		getGameLoaderInteractionController()->disableFlag24();
+
+		g_vars->scene06_ballDrop->queueMessageQueue(0);
+	}
 }
 
 void sceneHandler06_takeBall() {
@@ -238,7 +263,10 @@ void sceneHandler06_sub03() {
 }
 
 void sceneHandler06_sub10() {
-	warning("STUB: sceneHandler06_sub10()");
+	if (g_vars->scene06_numBallsGiven >= 15 || g_vars->scene06_var13 >= 5 )
+		g_vars->scene06_ballDrop->hide();
+	else
+		chainQueue(QU_SC6_DROPS3, 0);
 }
 
 void sceneHandler06_sub05() {


Commit: 29773ef1c055ce898c89abcc0415b23d8e10e849
    https://github.com/scummvm/scummvm/commit/29773ef1c055ce898c89abcc0415b23d8e10e849
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2013-12-18T05:54:02-08:00

Commit Message:
FULLPIPE: Implement FullpipeEngine::drawArcadeOverlay()

Changed paths:
    engines/fullpipe/input.cpp



diff --git a/engines/fullpipe/input.cpp b/engines/fullpipe/input.cpp
index e2c638e..60b6f62 100644
--- a/engines/fullpipe/input.cpp
+++ b/engines/fullpipe/input.cpp
@@ -312,7 +312,30 @@ void FullpipeEngine::setArcadeOverlay(int picId) {
 }
 
 int FullpipeEngine::drawArcadeOverlay(int adjust) {
-	warning("STUB: drawArcadeOverlay()");
+	_arcadeOverlayHelper->drawAt(_sceneRect.left + _arcadeOverlayX, _sceneRect.top + _arcadeOverlayY);
+	_arcadeOverlay->drawAt(_sceneRect.left + _arcadeOverlayX + _arcadeOverlayMidX, _sceneRect.top + _arcadeOverlayY + _arcadeOverlayMidY);
+
+	if (adjust) {
+		if (_arcadeOverlayX > 745) {
+			_arcadeOverlayX -= 15;
+
+			if (_arcadeOverlayX < 745)
+				_arcadeOverlayX = 745;
+		}
+
+		return 1;
+	}
+
+	if (_arcadeOverlayX >= 800) {
+		return 0;
+	} else {
+		_arcadeOverlayX += 15;
+
+		if (_arcadeOverlayX <= 800)
+			return 1;
+
+		_arcadeOverlayX = 800;
+	}
 
 	return 1;
 }


Commit: db7b6b3352817990a7a25a6e253ea165074d47ec
    https://github.com/scummvm/scummvm/commit/db7b6b3352817990a7a25a6e253ea165074d47ec
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2013-12-18T08:38:08-08:00

Commit Message:
FULLPIPE: Implement sceneHandler06_mumsyBallTake()

Changed paths:
    engines/fullpipe/constants.h
    engines/fullpipe/init.cpp
    engines/fullpipe/objectnames.h
    engines/fullpipe/scenes.h
    engines/fullpipe/scenes/scene04.cpp
    engines/fullpipe/scenes/scene06.cpp



diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index b1f005d..d1e1820 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -176,6 +176,16 @@ namespace Fullpipe {
 #define MV_MAN6_THROWBALL 2692
 #define MV_MANHDL_HANDLEDOWN 630
 #define MV_MANHDL_HANDLEUP 631
+#define MV_MOM_CYCLEBK 3012
+#define MV_MOM_JUMPBK 662
+#define MV_MOM_JUMPFW 661
+#define MV_MOM_STARTBK 3010
+#define MV_MOM_STOPBK 3013
+#define MV_MOM_TAKE1 2885
+#define MV_MOM_TAKE2 2886
+#define MV_MOM_TAKE3 2887
+#define MV_MOM_TAKE4 2888
+#define MV_MOM_TAKE5 2889
 #define MV_OTM_BOXHANDLEDOWN 626
 #define MV_OTM_BOXHANDLEUP 627
 #define MV_OTM_HANDLEDOWN 620
@@ -259,7 +269,9 @@ namespace Fullpipe {
 #define QU_KOZAW_WALK 505
 #define QU_MOM_JUMPBK 671
 #define QU_MOM_JUMPFW 670
+#define QU_MOM_SITDOWN 685
 #define QU_MOM_STANDUP 2899
+#define QU_MOM_TOLIFT 2902
 #define QU_PNK_CLICK 550
 #define QU_SC3_ENTERLIFT 2779
 #define QU_SC3_EXITLIFT 2808
diff --git a/engines/fullpipe/init.cpp b/engines/fullpipe/init.cpp
index 34d8335..beac854 100644
--- a/engines/fullpipe/init.cpp
+++ b/engines/fullpipe/init.cpp
@@ -50,7 +50,7 @@ void FullpipeEngine::initObjectStates() {
 	setObjectState(sO_HareTheNooksiter, getObjectEnumState(sO_HareTheNooksiter, sO_WithHandle));
 	setObjectState(sO_Elephantine, getObjectEnumState(sO_Elephantine, sO_WithBoot));
 	setObjectState(sO_Fly_12, 0);
-	setObjectState(sO_ClockAxis, getObjectEnumState(sO_ClockAxis, sO_NotAvailable));
+	setObjectState(sO_ClockAxis, getObjectEnumState(sO_ClockAxis, sO_IsNotAvailable));
 	setObjectState(sO_ClockHandle, getObjectEnumState(sO_ClockHandle, sO_In_7));
 	setObjectState(sO_BigMumsy, getObjectEnumState(sO_BigMumsy, sO_IsSleeping));
 	setObjectState(sO_CoinSlot_1, getObjectEnumState(sO_CoinSlot_1, sO_Empty));
diff --git a/engines/fullpipe/objectnames.h b/engines/fullpipe/objectnames.h
index 2cea77c..b61a5c6 100644
--- a/engines/fullpipe/objectnames.h
+++ b/engines/fullpipe/objectnames.h
@@ -135,7 +135,7 @@ namespace Fullpipe {
 #define sO_NotGrown "\xcd\xe5 \xe2\xfb\xf0\xee\xf1"	// "Не вырос"
 #define sO_DidNotCrackEgg "\xcd\xe5 \xea\xee\xeb\xee\xeb \xff\xe9\xf6\xee"	// "Не колол яйцо"
 #define sO_NotFallen "\xcd\xe5 \xef\xe0\xe4\xe0\xeb"	// "Не падал"
-#define sO_NotAvailable "\xcd\xe5\xe4\xee\xf1\xf2\xf3\xef\xed\xe0"	// "Недоступна"
+#define sO_IsNotAvailable "\xcd\xe5\xe4\xee\xf1\xf2\xf3\xef\xed\xe0"	// "Недоступна"
 #define sO_CannotTake "\xcd\xe5\xeb\xfc\xe7\xff \xe2\xe7\xff\xf2\xfc"	// "Нельзя взять"
 #define sO_No "\xcd\xe5\xf2"	// "Нет"
 #define sO_LowerHatch_23 "\xcd\xe8\xe6\xed\xe8\xe9 \xeb\xfe\xea_23"	// "Нижний люк_23"
@@ -222,7 +222,7 @@ namespace Fullpipe {
 #define sO_NearPipe "\xd3 \xf2\xf0\xf3\xe1\xfb"	// "У трубы"
 #define sO_Janitors "\xd3\xe1\xee\xf0\xf9\xe8\xea\xe8"	// "Уборщики"
 #define sO_Janitress "\xd3\xe1\xee\xf0\xf9\xe8\xf6\xe0"	// "Уборщица"
-#define sO_Gone "\xd3\xe5\xf5\xe0\xeb\xe0"	// "Уехала"
+#define sO_IsGone "\xd3\xe5\xf5\xe0\xeb\xe0"	// "Уехала"
 #define sO_FallenOnce "\xd3\xef\xe0\xeb \xf0\xe0\xe7"	// "Упал раз"
 #define sO_FallenBrush "\xd3\xef\xe0\xeb\xe0 \xf9\xe5\xf2\xea\xe0"	// "Упала щетка"
 #define sO_NotBroken "\xd6\xe5\xeb\xe0"	// "Цела"
diff --git a/engines/fullpipe/scenes.h b/engines/fullpipe/scenes.h
index 15f5e7a..8f404d2 100644
--- a/engines/fullpipe/scenes.h
+++ b/engines/fullpipe/scenes.h
@@ -152,7 +152,7 @@ public:
 	int scene06_var02;
 	int scene06_var03;
 	int scene06_var04;
-	int scene06_var06;
+	StaticANIObject *scene06_var06;
 	StaticANIObject *scene06_invHandle;
 	StaticANIObject *scene06_liftButton;
 	StaticANIObject *scene06_ballDrop;
diff --git a/engines/fullpipe/scenes/scene04.cpp b/engines/fullpipe/scenes/scene04.cpp
index 8415aee..28b2d77 100644
--- a/engines/fullpipe/scenes/scene04.cpp
+++ b/engines/fullpipe/scenes/scene04.cpp
@@ -182,7 +182,7 @@ void scene04_initScene(Scene *sc) {
 	g_vars->scene04_bigBallCounter = 0;
 	g_vars->scene04_bigBallFromLeft = true;
 
-	if (g_fullpipe->getObjectState(sO_BigMumsy) != g_fullpipe->getObjectEnumState(sO_BigMumsy, sO_Gone))
+	if (g_fullpipe->getObjectState(sO_BigMumsy) != g_fullpipe->getObjectEnumState(sO_BigMumsy, sO_IsGone))
 		g_vars->scene04_mamasha->hide();
 
 	g_vars->scene04_speaker = sc->getStaticANIObject1ById(ANI_SPEAKER_4, -1);
diff --git a/engines/fullpipe/scenes/scene06.cpp b/engines/fullpipe/scenes/scene06.cpp
index 7b76537..5a63b6c 100644
--- a/engines/fullpipe/scenes/scene06.cpp
+++ b/engines/fullpipe/scenes/scene06.cpp
@@ -73,7 +73,6 @@ void sceneHandler06_setExits(Scene *sc) {
 }
 
 void sceneHandler06_winArcade() {
-	warning("STUB: sceneHandler06_winArcade()");
 }
 
 void sceneHandler06_enableDrops() {
@@ -93,8 +92,96 @@ void sceneHandler06_enableDrops() {
 	sceneHandler06_setExits(g_fullpipe->_currentScene);
 }
 
-void sceneHandler06_sub01() {
-	warning("STUB: sceneHandler06_sub01()");
+void sceneHandler06_mumsyBallTake() {
+	int momAni = 0;
+
+	switch (g_vars->scene06_var13) {
+    case 1:
+		momAni = MV_MOM_TAKE1;
+		break;
+    case 2:
+		momAni = MV_MOM_TAKE2;
+		break;
+    case 3:
+		momAni = MV_MOM_TAKE3;
+		break;
+    case 4:
+		momAni = MV_MOM_TAKE4;
+		break;
+    case 5:
+		momAni = MV_MOM_TAKE5;
+		break;
+	}
+
+	MessageQueue *mq = new MessageQueue(g_fullpipe->_globalMessageQueueList->compact());
+
+	ExCommand *ex = new ExCommand(ANI_MAMASHA, 2, 50, 0, 0, 0, 1, 0, 0, 0);
+
+	ex->_excFlags = 2u;
+	mq->addExCommandToEnd(ex);
+
+	if (g_vars->scene06_var13 >= 5) {
+		g_fullpipe->setObjectState(sO_BigMumsy, g_fullpipe->getObjectEnumState(sO_BigMumsy, sO_IsGone));
+
+		if (g_fullpipe->getObjectState(sO_ClockAxis) == g_fullpipe->getObjectEnumState(sO_ClockAxis, sO_IsNotAvailable))
+			g_fullpipe->setObjectState(sO_ClockAxis, g_fullpipe->getObjectEnumState(sO_ClockAxis, sO_WithoutHandle));
+
+		ex = new ExCommand(ANI_MAMASHA, 1, momAni, 0, 0, 0, 1, 0, 0, 0);
+		ex->_excFlags |= 2;
+		mq->addExCommandToEnd(ex);
+
+		if (g_vars->scene06_mumsyPos + 3 >= 0) {
+			ex = new ExCommand(ANI_MAMASHA, 1, MV_MOM_STARTBK, 0, 0, 0, 1, 0, 0, 0);
+			ex->_excFlags |= 2u;
+			mq->addExCommandToEnd(ex);
+
+			for (int i = 0; i < g_vars->scene06_mumsyPos + 3; i++) {
+				ex = new ExCommand(ANI_MAMASHA, 1, MV_MOM_CYCLEBK, 0, 0, 0, 1, 0, 0, 0);
+				ex->_excFlags |= 2;
+				mq->addExCommandToEnd(ex);
+			}
+
+			ex = new ExCommand(ANI_MAMASHA, 1, MV_MOM_STOPBK, 0, 0, 0, 1, 0, 0, 0);
+			ex->_excFlags |= 2;
+			mq->addExCommandToEnd(ex);
+		}
+
+		ex = new ExCommand(0, 18, QU_MOM_TOLIFT, 0, 0, 0, 1, 0, 0, 0);
+		ex->_excFlags |= 3;
+		mq->addExCommandToEnd(ex);
+	} else {
+		if (momAni) {
+			ex = new ExCommand(ANI_MAMASHA, 1, momAni, 0, 0, 0, 1, 0, 0, 0);
+			ex->_excFlags |= 2;
+			mq->addExCommandToEnd(ex);
+		}
+
+		if (g_vars->scene06_mumsyPos < 0) {
+			for (int i = 0; i > g_vars->scene06_mumsyPos; i--) {
+				ex = new ExCommand(ANI_MAMASHA, 1, MV_MOM_JUMPFW, 0, 0, 0, 1, 0, 0, 0);
+				ex->_excFlags |= 2;
+				mq->addExCommandToEnd(ex);
+			}
+		} else if (g_vars->scene06_mumsyPos > 0) {
+			for (int i = 0; i < g_vars->scene06_mumsyPos; i++) {
+				ex = new ExCommand(ANI_MAMASHA, 1, MV_MOM_JUMPBK, 0, 0, 0, 1, 0, 0, 0);
+				ex->_excFlags |= 2;
+				mq->addExCommandToEnd(ex);
+			}
+		}
+
+		ex = new ExCommand(0, 18, QU_MOM_SITDOWN, 0, 0, 0, 1, 0, 0, 0);
+		ex->_excFlags |= 3u;
+		mq->addExCommandToEnd(ex);
+	}
+
+	mq->setFlags(mq->getFlags() | 1);
+	mq->chain(0);
+
+	g_vars->scene06_var13 = 0;
+	g_vars->scene06_var07 = 0;
+
+	g_fullpipe->_aniMan2 = 0;
 }
 
 void sceneHandler06_spinHandle() {
@@ -147,7 +234,7 @@ int sceneHandler06_updateScreenCallback() {
 	int res;
 
 	res = g_fullpipe->drawArcadeOverlay(g_vars->scene06_var07);
-	if (!res )
+	if (!res)
 		g_fullpipe->_updateScreenCallback = 0;
 
 	return res;
@@ -263,7 +350,7 @@ void sceneHandler06_sub03() {
 }
 
 void sceneHandler06_sub10() {
-	if (g_vars->scene06_numBallsGiven >= 15 || g_vars->scene06_var13 >= 5 )
+	if (g_vars->scene06_numBallsGiven >= 15 || g_vars->scene06_var13 >= 5)
 		g_vars->scene06_ballDrop->hide();
 	else
 		chainQueue(QU_SC6_DROPS3, 0);
@@ -398,7 +485,7 @@ int sceneHandler06(ExCommand *ex) {
 		if (g_vars->scene06_var13 < 5 || !g_vars->scene06_var07)
 			return 0;
 
-		sceneHandler06_sub01();
+		sceneHandler06_mumsyBallTake();
 		break;
 
 	case MSG_SC6_JUMPFW:
@@ -575,7 +662,7 @@ int sceneHandler06(ExCommand *ex) {
 				&& !g_vars->scene06_ballDrop->_movement
 				&& !g_vars->scene06_mumsy->_movement
 				&& !g_vars->scene06_var16)
-				sceneHandler06_sub01();
+				sceneHandler06_mumsyBallTake();
 			g_fullpipe->_behaviorManager->updateBehaviors();
 			g_fullpipe->startSceneTrack();
 


Commit: 675e6643f7c283f7d9c5320a49c15fd3a8893e4e
    https://github.com/scummvm/scummvm/commit/675e6643f7c283f7d9c5320a49c15fd3a8893e4e
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2013-12-18T08:38:30-08:00

Commit Message:
FULLPIPE: Implement sceneHandler06_winArcade()

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



diff --git a/engines/fullpipe/scenes/scene06.cpp b/engines/fullpipe/scenes/scene06.cpp
index 5a63b6c..4f76714 100644
--- a/engines/fullpipe/scenes/scene06.cpp
+++ b/engines/fullpipe/scenes/scene06.cpp
@@ -73,6 +73,50 @@ void sceneHandler06_setExits(Scene *sc) {
 }
 
 void sceneHandler06_winArcade() {
+	g_fullpipe->setObjectState(sO_BigMumsy, g_fullpipe->getObjectEnumState(sO_BigMumsy, sO_IsGone));
+
+	if (g_fullpipe->getObjectState(sO_ClockAxis) == g_fullpipe->getObjectEnumState(sO_ClockAxis, sO_IsNotAvailable))
+		g_fullpipe->setObjectState(sO_ClockAxis, g_fullpipe->getObjectEnumState(sO_ClockAxis, sO_WithoutHandle));
+
+	if (g_vars->scene06_var07) {
+		g_fullpipe->_aniMan->_callback2 = 0;
+
+		g_fullpipe->_aniMan->changeStatics2(ST_MAN_RIGHT | 0x4000);
+
+		if (g_vars->scene06_var06) {
+			g_vars->scene06_var06->_flags &= 0xFFFB;
+
+			g_vars->scene06_balls.push_back(g_vars->scene06_var06);
+
+			g_vars->scene06_var06 = 0;
+		}
+
+		if (g_vars->scene06_var11) {
+			g_vars->scene06_var11->_flags &= 0xFFFB;
+
+			g_vars->scene06_balls.push_back(g_vars->scene06_var11);
+
+			g_vars->scene06_var11 = 0;
+		}
+
+		if (g_vars->scene06_var10) {
+			g_vars->scene06_var10->_flags &= 0xFFFB;
+
+			g_vars->scene06_balls.push_back(g_vars->scene06_var10);
+
+			g_vars->scene06_var10 = 0;
+		}
+
+		g_vars->scene06_var07 = 0;
+		g_vars->scene06_var08 = 0;
+	}
+
+	g_vars->scene06_mumsy->_flags &= 0xFFFB;
+
+	sceneHandler06_setExits(g_fullpipe->_currentScene);
+
+	getCurrSceneSc2MotionController()->setEnabled();
+	getGameLoaderInteractionController()->enableFlag24();
 }
 
 void sceneHandler06_enableDrops() {






More information about the Scummvm-git-logs mailing list