[Scummvm-cvs-logs] scummvm master -> 2c8476377149fa716b892d0e49b16656abe9769c

sev- sev at scummvm.org
Mon Dec 16 21:29:03 CET 2013


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:
5fc18c023d FULLPIPE: Implement sceneHandler06()
65512ffd97 FULLPIPE: Implement scene06_initMumsy()
9ecdb4c1fc FULLPIPE: Enable scene06
2c84763771 FULLPIPE: Implement scene06_updateCursor()


Commit: 5fc18c023d76d85624417b4c9fc90b0e61823faa
    https://github.com/scummvm/scummvm/commit/5fc18c023d76d85624417b4c9fc90b0e61823faa
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2013-12-16T12:28:11-08:00

Commit Message:
FULLPIPE: Implement sceneHandler06()

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



diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index 7abfd8a..f36006c 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -113,10 +113,22 @@ namespace Fullpipe {
 #define MSG_SC5_MAKEOTMFEEDBACK 1169
 #define MSG_SC5_SHOWHANDLE 918
 #define MSG_SC5_TESTLUK 914
+#define MSG_SC6_BTNPUSH 1017
+#define MSG_SC6_ENABLEDROPS 687
+#define MSG_SC6_INSTHANDLE 1012
+#define MSG_SC6_JUMPBK 2900
+#define MSG_SC6_JUMPFW 2901
+#define MSG_SC6_RESTORESCROLL 2906
+#define MSG_SC6_SHOWNEXTBALL 790
+#define MSG_SC6_STARTDROPS 2897
+#define MSG_SC6_TAKEBALL 682
+#define MSG_SC6_TESTNUMBALLS 2904
+#define MSG_SC6_UTRUBACLICK 1105
 #define MSG_GOTOLADDER 618
 #define MSG_SHAKEBOTTLE 584
 #define MSG_SHOOTKOZAW 557
 #define MSG_SHOWCOIN 1033
+#define MSG_SPINHANDLE 2398
 #define MSG_STARTHAND 612
 #define MSG_TAKEBOTTLE 614
 #define MSG_TAKEKOZAW 611
@@ -354,6 +366,7 @@ namespace Fullpipe {
 #define ST_MAN_SIT 1164
 #define ST_MAN_STANDLADDER 453
 #define ST_MAN_UP 449
+#define ST_MAN6_BALL 2688
 #define ST_NBL_NORM 1076
 #define ST_OTM_BOX_LEFT 429
 #define ST_OTM_GLS_LEFT 421
diff --git a/engines/fullpipe/gameloader.cpp b/engines/fullpipe/gameloader.cpp
index e130337..0b66712 100644
--- a/engines/fullpipe/gameloader.cpp
+++ b/engines/fullpipe/gameloader.cpp
@@ -510,4 +510,8 @@ InputController *FullpipeEngine::getGameLoaderInputController() {
 		return 0;
 }
 
+MotionController *getCurrSceneSc2MotionController() {
+	return getSc2MctlCompoundBySceneId(g_fullpipe->_currentScene->_sceneId);
+}
+
 } // End of namespace Fullpipe
diff --git a/engines/fullpipe/gameloader.h b/engines/fullpipe/gameloader.h
index 4f54626..0745375 100644
--- a/engines/fullpipe/gameloader.h
+++ b/engines/fullpipe/gameloader.h
@@ -111,6 +111,7 @@ class GameLoader : public CObject {
 Inventory2 *getGameLoaderInventory();
 InteractionController *getGameLoaderInteractionController();
 MctlCompound *getSc2MctlCompoundBySceneId(int16 sceneId);
+MotionController *getCurrSceneSc2MotionController();
 
 } // End of namespace Fullpipe
 
diff --git a/engines/fullpipe/scenes.cpp b/engines/fullpipe/scenes.cpp
index 74beb1c..9578675 100644
--- a/engines/fullpipe/scenes.cpp
+++ b/engines/fullpipe/scenes.cpp
@@ -110,6 +110,10 @@ Vars::Vars() {
 	scene05_handleFlipper = 0;
 	scene05_floatersTicker = 0;
 
+	scene06_var01 = 0;
+	scene06_var02 = 0;
+	scene06_var03 = 0;
+	scene06_var04 = 0;
 	scene06_mumsy = 0;
 	scene06_var06 = 0;
 	scene06_invHandle = 0;
@@ -124,6 +128,16 @@ Vars::Vars() {
 	scene06_var13 = 0;
 	scene06_var14 = 0;
 	scene06_var15 = 1;
+	scene06_var16 = 0;
+	scene06_var17 = 0;
+	scene06_var18 = 0;
+	scene06_sceneClickX = 0;
+	scene06_sceneClickY = 0;
+	scene06_mumsyPos = 0;
+	scene06_mumsyJumpBk = 0;
+	scene06_mumsyJumpFw = 0;
+	scene06_mumsyJumpBkPercent = 0;
+	scene06_mumsyJumpFwPercent = 0;
 
 	selector = 0;
 }
diff --git a/engines/fullpipe/scenes.h b/engines/fullpipe/scenes.h
index 7c1e338..73ebb41 100644
--- a/engines/fullpipe/scenes.h
+++ b/engines/fullpipe/scenes.h
@@ -25,8 +25,9 @@
 
 namespace Fullpipe {
 
+struct BehaviorEntryInfo;
 class StaticANIObject;
- class MctlLadder;
+class MctlLadder;
 
 int defaultUpdateCursor();
 
@@ -142,20 +143,34 @@ public:
 	int scene05_floatersTicker;
 
 	StaticANIObject *scene06_mumsy;
+	int scene06_var01;
+	int scene06_var02;
+	int scene06_var03;
+	int scene06_var04;
 	int scene06_var06;
 	StaticANIObject *scene06_invHandle;
 	StaticANIObject *scene06_liftButton;
 	StaticANIObject *scene06_ballDrop;
 	int scene06_var07;
 	int scene06_var08;
-	int scene06_var09;
+	StaticANIObject *scene06_var09;
 	int scene06_var10;
-	int scene06_var11;
+	StaticANIObject *scene06_var11;
 	Common::Array<StaticANIObject *> scene06_balls;
 	int scene06_var12;
 	int scene06_var13;
 	int scene06_var14;
 	int scene06_var15;
+	int scene06_var16;
+	int scene06_var17;
+	int scene06_var18;
+	int scene06_sceneClickX;
+	int scene06_sceneClickY;
+	int scene06_mumsyPos;
+	BehaviorEntryInfo *scene06_mumsyJumpBk;
+	BehaviorEntryInfo *scene06_mumsyJumpFw;
+	int scene06_mumsyJumpBkPercent;
+	int scene06_mumsyJumpFwPercent;
 
 	PictureObject *selector;
 };
diff --git a/engines/fullpipe/scenes/scene06.cpp b/engines/fullpipe/scenes/scene06.cpp
index f341216..1ec6edd 100644
--- a/engines/fullpipe/scenes/scene06.cpp
+++ b/engines/fullpipe/scenes/scene06.cpp
@@ -29,6 +29,11 @@
 #include "fullpipe/scenes.h"
 #include "fullpipe/statics.h"
 #include "fullpipe/scene.h"
+#include "fullpipe/messages.h"
+#include "fullpipe/gameloader.h"
+#include "fullpipe/behavior.h"
+#include "fullpipe/motion.h"
+#include "fullpipe/interaction.h"
 
 namespace Fullpipe {
 
@@ -36,6 +41,83 @@ void sceneHandler06_setExits(Scene *sc) {
 	warning("STUB: sceneHandler06_setExits()");
 }
 
+void sceneHandler06_winArcade() {
+	warning("STUB: sceneHandler06_winArcade()");
+}
+
+void sceneHandler06_enableDrops() {
+	warning("STUB: sceneHandler06_enableDrops()");
+}
+
+void sceneHandler06_sub01() {
+	warning("STUB: sceneHandler06_sub01()");
+}
+
+void sceneHandler06_spinHandle() {
+	warning("STUB: sceneHandler06_spinHandle()");
+}
+
+void sceneHandler06_uPipeClick() {
+	warning("STUB: sceneHandler06_uPipeClick()");
+}
+
+void sceneHandler06_buttonPush() {
+	warning("STUB: sceneHandler06_buttonPush()");
+}
+
+void sceneHandler06_showNextBall() {
+	warning("STUB: sceneHandler06_showNextBall()");
+}
+
+void sceneHandler06_installHandle() {
+	warning("STUB: sceneHandler06_installHandle()");
+}
+
+void sceneHandler06_takeBall() {
+	warning("STUB: sceneHandler06_takeBall()");
+}
+
+void sceneHandler06_sub02() {
+	warning("STUB: sceneHandler06_sub02()");
+}
+
+void sceneHandler06_throwBall() {
+	warning("STUB: sceneHandler06_throwBall()");
+}
+
+void sceneHandler06_sub03() {
+	warning("STUB: sceneHandler06_sub03()");
+}
+
+void sceneHandler06_sub04(int par) {
+	warning("STUB: sceneHandler06_sub04()");
+}
+
+void sceneHandler06_sub05() {
+	warning("STUB: sceneHandler06_sub05()");
+}
+
+void sceneHandler06_sub06() {
+	warning("STUB: sceneHandler06_sub06()");
+}
+
+void sceneHandler06_sub07() {
+	warning("STUB: sceneHandler06_sub07()");
+}
+
+void sceneHandler06_sub08() {
+	warning("STUB: sceneHandler06_sub08()");
+}
+
+void sceneHandler06_sub09() {
+	warning("STUB: sceneHandler06_sub09()");
+}
+
+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;
@@ -85,4 +167,231 @@ void scene06_initScene(Scene *sc) {
 	g_fullpipe->setArcadeOverlay(PIC_CSR_ARCADE2);
 }
 
+int sceneHandler06(ExCommand *ex) {
+	if (ex->_messageKind != 17)
+		return 0;
+
+	switch(ex->_messageNum) {
+	case MSG_LIFT_CLOSEDOOR:
+		g_fullpipe->lift_closedoorSeq();
+		break;
+
+	case MSG_LIFT_EXITLIFT:
+		g_fullpipe->lift_exitSeq(ex);
+		break;
+
+	case MSG_CMN_WINARCADE:
+		sceneHandler06_winArcade();
+		break;
+
+	case MSG_LIFT_STARTEXITQUEUE:
+		g_fullpipe->lift_startExitQueue();
+		break;
+
+	case MSG_SC6_RESTORESCROLL:
+		g_fullpipe->_aniMan2 = g_fullpipe->_aniMan;
+		getCurrSceneSc2MotionController()->setEnabled();
+		getGameLoaderInteractionController()->enableFlag24();
+		sceneHandler06_setExits(g_fullpipe->_currentScene);
+		break;
+
+	case MSG_SC6_STARTDROPS:
+		if (g_fullpipe->getObjectState(sO_BigMumsy) == g_fullpipe->getObjectEnumState(sO_BigMumsy, sO_IsSleeping))
+			sceneHandler06_enableDrops();
+		break;
+
+	case MSG_SC6_TESTNUMBALLS:
+		g_vars->scene06_var16 = 0;
+
+		if (g_vars->scene06_var13 < 5 || !g_vars->scene06_var07)
+			return 0;
+
+		sceneHandler06_sub01();
+		break;
+
+	case MSG_SC6_JUMPFW:
+		++g_vars->scene06_mumsyPos;
+		break;
+
+	case MSG_SC6_JUMPBK:
+		--g_vars->scene06_mumsyPos;
+		break;
+
+	case MSG_LIFT_CLICKBUTTON:
+		g_fullpipe->lift_animation3();
+		break;
+
+	case MSG_SPINHANDLE:
+		sceneHandler06_spinHandle();
+		break;
+
+	case MSG_LIFT_GO:
+		g_fullpipe->lift_goAnimation();
+		break;
+
+	case MSG_SC6_UTRUBACLICK:
+		sceneHandler06_uPipeClick();
+		break;
+
+	case MSG_SC6_BTNPUSH:
+		sceneHandler06_buttonPush();
+		break;
+
+	case MSG_SC6_SHOWNEXTBALL:
+		sceneHandler06_showNextBall();
+		break;
+
+	case MSG_SC6_INSTHANDLE:
+		sceneHandler06_installHandle();
+		break;
+
+	case MSG_SC6_ENABLEDROPS:
+		sceneHandler06_enableDrops();
+		break;
+
+	case 64:
+		g_fullpipe->lift_sub05(ex);
+		break;
+
+	case MSG_SC6_TAKEBALL:
+		sceneHandler06_takeBall();
+		break;
+
+	case 30:
+		if (g_vars->scene06_var08) {
+			sceneHandler06_sub02();
+			break;
+		}
+
+		if (!g_vars->scene06_var07) {
+			// Do nothing
+			break;
+		}
+		break;
+
+	case 29:
+		{
+			StaticANIObject *st = g_fullpipe->_currentScene->getStaticANIObjectAtPos(ex->_sceneClickX, ex->_sceneClickY);
+
+			if (st) {
+				if (!g_vars->scene06_var07 && st->_id == ANI_LIFTBUTTON) {
+					g_fullpipe->lift_sub1(st);
+					ex->_messageKind = 0;
+					return 0;
+				}
+
+				if (g_vars->scene06_var09 == st) {
+					if (g_vars->scene06_var12 == 1)
+						sceneHandler06_takeBall();
+
+					ex->_messageKind = 0;
+				} else if (g_vars->scene06_var10 && g_fullpipe->_aniMan == st && !g_fullpipe->_aniMan->_movement && g_fullpipe->_aniMan->_statics->_staticsId == ST_MAN6_BALL) {
+					g_vars->scene06_sceneClickX = ex->_sceneClickX;
+					g_vars->scene06_sceneClickY = ex->_sceneClickY;
+
+					sceneHandler06_throwBall();
+				}
+			}
+
+			if (!st || !canInteractAny(g_fullpipe->_aniMan, st, ex->_keyCode)) {
+				int picId = g_fullpipe->_currentScene->getPictureObjectIdAtPos(ex->_sceneClickX, ex->_sceneClickY);
+				PictureObject *pic = g_fullpipe->_currentScene->getPictureObjectById(picId, 0);
+
+				if (!pic || !canInteractAny(g_fullpipe->_aniMan, pic, ex->_keyCode)) {
+					if ((g_fullpipe->_sceneRect.right - ex->_sceneClickX < 47
+						 && g_fullpipe->_sceneRect.right < g_fullpipe->_sceneWidth - 1) 
+						|| (ex->_sceneClickX - g_fullpipe->_sceneRect.left < 47 && g_fullpipe->_sceneRect.left > 0)) {
+						g_fullpipe->processArcade(ex);
+						return 0;
+					}
+				}
+			}
+		}
+
+		break;
+
+	case 33:
+		{
+			int res = 0;
+
+			if (g_fullpipe->_aniMan2) {
+				int ox = g_fullpipe->_aniMan2->_ox;
+				int oy = g_fullpipe->_aniMan2->_oy;
+
+				g_vars->scene06_var01 = ox;
+				g_vars->scene06_var02 = oy;
+
+				if (g_vars->scene06_var07 && oy <= 470 && ox >= 1088) {
+					if (ox < g_fullpipe->_sceneRect.left + 600) {
+						g_fullpipe->_currentScene->_x = ox - g_fullpipe->_sceneRect.left - 700;
+						ox = g_vars->scene06_var01;
+					}
+
+					if (ox > g_fullpipe->_sceneRect.right - 50)
+						g_fullpipe->_currentScene->_x = ox - g_fullpipe->_sceneRect.right + 70;
+				} else {
+					if (ox < g_fullpipe->_sceneRect.left + 200) {
+						g_fullpipe->_currentScene->_x = ox - g_fullpipe->_sceneRect.left - 300;
+						ox = g_vars->scene06_var01;
+					}
+
+					if (ox > g_fullpipe->_sceneRect.right - 200)
+						g_fullpipe->_currentScene->_x = ox - g_fullpipe->_sceneRect.right + 300;
+				}
+
+				res = 1;
+			}
+			if (g_vars->scene06_var07) {
+				if (g_vars->scene06_mumsyPos > -3)
+					g_vars->scene06_mumsyJumpBk->_percent = g_vars->scene06_mumsyJumpBkPercent;
+				else
+					g_vars->scene06_mumsyJumpBk->_percent = 0;
+
+				if (g_vars->scene06_mumsyPos < 4)
+					g_vars->scene06_mumsyJumpFw->_percent = g_vars->scene06_mumsyJumpFwPercent;
+				else
+					g_vars->scene06_mumsyJumpFw->_percent = 0;
+
+				if (g_vars->scene06_var08) {
+					g_vars->scene06_var14++;
+					if (g_vars->scene06_var14 >= 600)
+						sceneHandler06_sub03();
+				}
+			} else {
+				g_vars->scene06_mumsyJumpFw->_percent = 0;
+				g_vars->scene06_mumsyJumpBk->_percent = 0;
+			}
+
+			if (g_vars->scene06_var11) {
+				g_vars->scene06_var03 = g_vars->scene06_var11->_ox - g_vars->scene06_var17;
+				g_vars->scene06_var04 = g_vars->scene06_var11->_oy - g_vars->scene06_var18;
+
+				g_vars->scene06_var11->setOXY(g_vars->scene06_var03, g_vars->scene06_var04);
+
+				if (g_vars->scene06_var17 >= 2)
+					g_vars->scene06_var17 -= 2;
+
+				g_vars->scene06_var18 -= 5;
+
+				sceneHandler06_sub04(g_vars->scene06_var17);
+			}
+			if (g_vars->scene06_var07
+				&& !g_vars->scene06_var09
+				&& !g_vars->scene06_var10
+				&& !g_vars->scene06_var11
+				&& g_vars->scene06_var12 >= 15
+				&& !g_vars->scene06_ballDrop->_movement
+				&& !g_vars->scene06_mumsy->_movement
+				&& !g_vars->scene06_var16)
+				sceneHandler06_sub01();
+			g_fullpipe->_behaviorManager->updateBehaviors();
+			g_fullpipe->startSceneTrack();
+
+			return res;
+		}
+	}
+
+	return 0;
+}
+
 } // End of namespace Fullpipe


Commit: 65512ffd970b9d2ad0ebc1920213c77f4a0ebbcb
    https://github.com/scummvm/scummvm/commit/65512ffd970b9d2ad0ebc1920213c77f4a0ebbcb
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2013-12-16T12:28:12-08:00

Commit Message:
FULLPIPE: Implement scene06_initMumsy()

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



diff --git a/engines/fullpipe/behavior.cpp b/engines/fullpipe/behavior.cpp
index c27f108..bcf5f0d 100644
--- a/engines/fullpipe/behavior.cpp
+++ b/engines/fullpipe/behavior.cpp
@@ -198,6 +198,12 @@ void BehaviorManager::setFlagByStaticAniObject(StaticANIObject *ani, int flag) {
 	}
 }
 
+BehaviorEntryInfo *BehaviorManager::getBehaviorEntryInfoByMessageQueueDataId(StaticANIObject *ani, int id1, int id2) {
+	warning("STUB: getBehaviorEntryInfoByMessageQueueDataId()");
+
+	return 0;
+}
+
 void BehaviorInfo::clear() {
 	_ani = 0;
 	_staticsId = 0;
diff --git a/engines/fullpipe/behavior.h b/engines/fullpipe/behavior.h
index 1ac0b5b..90bb38d 100644
--- a/engines/fullpipe/behavior.h
+++ b/engines/fullpipe/behavior.h
@@ -81,6 +81,8 @@ class BehaviorManager : public CObject {
 	bool setBehaviorEnabled(StaticANIObject *obj, int aniId, int quId, int flag);
 
 	void setFlagByStaticAniObject(StaticANIObject *ani, int flag);
+
+	BehaviorEntryInfo *getBehaviorEntryInfoByMessageQueueDataId(StaticANIObject *ani, int id1, int id2);
 };
 
 } // End of namespace Fullpipe
diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index f36006c..1729c5a 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -251,6 +251,8 @@ namespace Fullpipe {
 #define QU_INTR_GETUPMAN 5136
 #define QU_INTR_STARTINTRO 5133
 #define QU_KOZAW_WALK 505
+#define QU_MOM_JUMPBK 671
+#define QU_MOM_JUMPFW 670
 #define QU_PNK_CLICK 550
 #define QU_SC3_ENTERLIFT 2779
 #define QU_SC3_EXITLIFT 2808
@@ -367,6 +369,7 @@ namespace Fullpipe {
 #define ST_MAN_STANDLADDER 453
 #define ST_MAN_UP 449
 #define ST_MAN6_BALL 2688
+#define ST_MOM_STANDS 658
 #define ST_NBL_NORM 1076
 #define ST_OTM_BOX_LEFT 429
 #define ST_OTM_GLS_LEFT 421
diff --git a/engines/fullpipe/scenes.cpp b/engines/fullpipe/scenes.cpp
index 9578675..74f7c87 100644
--- a/engines/fullpipe/scenes.cpp
+++ b/engines/fullpipe/scenes.cpp
@@ -320,7 +320,7 @@ bool FullpipeEngine::sceneSwitcher(EntranceInfo *entrance) {
 		_behaviorManager->initBehavior(scene, sceneVar);
 		scene->initObjectCursors("SC_6");
 		setSceneMusicParameters(sceneVar);
-		sub_415300();
+		scene06_initMumsy();
 		insertMessageHandler(sceneHandler06, 2, 2);
 		_updateCursorCallback = scene06_updateCursor;
 		break;
diff --git a/engines/fullpipe/scenes/scene06.cpp b/engines/fullpipe/scenes/scene06.cpp
index 1ec6edd..cddb260 100644
--- a/engines/fullpipe/scenes/scene06.cpp
+++ b/engines/fullpipe/scenes/scene06.cpp
@@ -37,6 +37,13 @@
 
 namespace Fullpipe {
 
+void scene06_initMumsy() {
+	g_vars->scene06_mumsyJumpFw = g_fullpipe->_behaviorManager->getBehaviorEntryInfoByMessageQueueDataId(g_vars->scene06_mumsy, ST_MOM_STANDS, QU_MOM_JUMPFW);
+	g_vars->scene06_mumsyJumpBk = g_fullpipe->_behaviorManager->getBehaviorEntryInfoByMessageQueueDataId(g_vars->scene06_mumsy, ST_MOM_STANDS, QU_MOM_JUMPBK);
+	g_vars->scene06_mumsyJumpFwPercent = g_vars->scene06_mumsyJumpFw->_percent;
+	g_vars->scene06_mumsyJumpBkPercent = g_vars->scene06_mumsyJumpBk->_percent;
+}
+
 void sceneHandler06_setExits(Scene *sc) {
 	warning("STUB: sceneHandler06_setExits()");
 }


Commit: 9ecdb4c1fce7efb6a7cfa673b33d6be12f8b5752
    https://github.com/scummvm/scummvm/commit/9ecdb4c1fce7efb6a7cfa673b33d6be12f8b5752
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2013-12-16T12:28:12-08:00

Commit Message:
FULLPIPE: Enable scene06

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



diff --git a/engines/fullpipe/scenes.cpp b/engines/fullpipe/scenes.cpp
index 74f7c87..2aa852b 100644
--- a/engines/fullpipe/scenes.cpp
+++ b/engines/fullpipe/scenes.cpp
@@ -312,7 +312,6 @@ bool FullpipeEngine::sceneSwitcher(EntranceInfo *entrance) {
 		_updateCursorCallback = defaultUpdateCursor;
 		break;
 
-#if 0
 	case SC_6:
 		sceneVar = _gameLoader->_gameVar->getSubVarByName("SC_6");
 		scene->preloadMovements(sceneVar);
@@ -325,6 +324,7 @@ bool FullpipeEngine::sceneSwitcher(EntranceInfo *entrance) {
 		_updateCursorCallback = scene06_updateCursor;
 		break;
 
+#if 0
 	case SC_7:
 		sceneVar = _gameLoader->_gameVar->getSubVarByName("SC_7");
 		scene->preloadMovements(sceneVar);
diff --git a/engines/fullpipe/scenes.h b/engines/fullpipe/scenes.h
index 73ebb41..e8a240d 100644
--- a/engines/fullpipe/scenes.h
+++ b/engines/fullpipe/scenes.h
@@ -54,6 +54,11 @@ int sceneHandler04(ExCommand *cmd);
 void scene05_initScene(Scene *sc);
 int sceneHandler05(ExCommand *cmd);
 
+void scene06_initScene(Scene *sc);
+void scene06_initMumsy();
+int sceneHandler06(ExCommand *cmd);
+int scene06_updateCursor();
+
 void sceneDbgMenu_initScene(Scene *sc);
 int sceneHandlerDbgMenu(ExCommand *cmd);
 
diff --git a/engines/fullpipe/scenes/scene06.cpp b/engines/fullpipe/scenes/scene06.cpp
index cddb260..bd1b205 100644
--- a/engines/fullpipe/scenes/scene06.cpp
+++ b/engines/fullpipe/scenes/scene06.cpp
@@ -44,6 +44,12 @@ void scene06_initMumsy() {
 	g_vars->scene06_mumsyJumpBkPercent = g_vars->scene06_mumsyJumpBk->_percent;
 }
 
+int scene06_updateCursor() {
+	warning("STUB: scene06_updateCursor()");
+
+	return 0;
+}
+
 void sceneHandler06_setExits(Scene *sc) {
 	warning("STUB: sceneHandler06_setExits()");
 }


Commit: 2c8476377149fa716b892d0e49b16656abe9769c
    https://github.com/scummvm/scummvm/commit/2c8476377149fa716b892d0e49b16656abe9769c
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2013-12-16T12:28:12-08:00

Commit Message:
FULLPIPE: Implement scene06_updateCursor()

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



diff --git a/engines/fullpipe/scenes/scene06.cpp b/engines/fullpipe/scenes/scene06.cpp
index bd1b205..76f61ff 100644
--- a/engines/fullpipe/scenes/scene06.cpp
+++ b/engines/fullpipe/scenes/scene06.cpp
@@ -45,9 +45,27 @@ void scene06_initMumsy() {
 }
 
 int scene06_updateCursor() {
-	warning("STUB: scene06_updateCursor()");
+	g_fullpipe->updateCursorCommon();
 
-	return 0;
+	if (g_vars->scene06_var07) {
+		if (g_vars->scene06_var08) {
+			g_fullpipe->_cursorId = PIC_CSR_ARCADE2_D;
+
+			return PIC_CSR_ARCADE2_D;
+		}
+		if (g_fullpipe->_aniMan == (StaticANIObject *)g_fullpipe->_objectAtCursor) {
+			if (g_fullpipe->_aniMan->_statics->_staticsId == ST_MAN6_BALL && g_fullpipe->_cursorId == PIC_CSR_DEFAULT) {
+				g_fullpipe->_cursorId = PIC_CSR_ITN;
+
+				return PIC_CSR_ITN;
+			}
+		} else if (g_fullpipe->_objectAtCursor && (StaticANIObject *)g_fullpipe->_objectAtCursor == g_vars->scene06_var09
+				   && g_fullpipe->_cursorId == PIC_CSR_DEFAULT) {
+			g_fullpipe->_cursorId = PIC_CSR_ITN;
+		}
+	}
+
+	return g_fullpipe->_cursorId;
 }
 
 void sceneHandler06_setExits(Scene *sc) {






More information about the Scummvm-git-logs mailing list