aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEugene Sandulenko2013-11-05 01:32:48 +0200
committerEugene Sandulenko2013-11-05 01:33:10 +0200
commitf716952e88588716fa33a3402886f5bed7d1deef (patch)
treec9f120a04c6d12f68275d3412dc276580f7aa91a
parentdaa244b73c07ac1e0261632c55a449840cab90f4 (diff)
downloadscummvm-rg350-f716952e88588716fa33a3402886f5bed7d1deef.tar.gz
scummvm-rg350-f716952e88588716fa33a3402886f5bed7d1deef.tar.bz2
scummvm-rg350-f716952e88588716fa33a3402886f5bed7d1deef.zip
FULLPIPE: Continued work on scene 3
-rw-r--r--engines/fullpipe/scenes.cpp104
1 files changed, 103 insertions, 1 deletions
diff --git a/engines/fullpipe/scenes.cpp b/engines/fullpipe/scenes.cpp
index fdc28e8092..a655ee872c 100644
--- a/engines/fullpipe/scenes.cpp
+++ b/engines/fullpipe/scenes.cpp
@@ -1601,7 +1601,109 @@ int scene03_updateCursor() {
}
int sceneHandler03(ExCommand *ex) {
- warning("STUB: sceneHandler03()");
+#if 0
+ if (ex->_messageKind != 17) {
+ if (ex->_messageKind == 57)
+ sceneHandler03_giveItem(ex);
+ return 0;
+ }
+
+ switch (ex->messageNum) {
+ case MSG_LIFT_EXITLIFT:
+ lift_exitSeq(ex);
+ break;
+
+ case MSG_LIFT_CLOSEDOOR:
+ lift_closedoorSeq();
+ break;
+
+ case MSG_SC3_ONTAKECOIN:
+ sceneHandler03_eaterFat();
+ break;
+
+ case MSG_LIFT_STARTEXITQUEUE:
+ sceneHandlers_startExitQueue();
+ break;
+
+ case MSG_SC3_RELEASEEGG:
+ sceneHandler03_releaseEgg();
+ break;
+
+ case MSG_LIFT_CLICKBUTTON:
+ lift_animation3();
+ break;
+
+ case MSG_SC3_HIDEDOMINO:
+ g_vars->scene03_domino->_flags &= 0xFFFB;
+ break;
+
+ case MSG_SC3_TAKEEGG:
+ sceneHandler03_takeEgg(ex);
+ break;
+
+ case MSG_LIFT_GO:
+ lift_goAnimation();
+ break;
+
+ case MSG_SC3_UTRUBACLICK:
+ sceneHandler03_goLadder();
+ break;
+
+ case MSG_SC3_TESTFAT:
+ sceneHandler03_giveCoin(ex);
+ break;
+
+ case 64:
+ sceneHandlers_sub05(ex);
+ break;
+
+ case 93:
+ {
+ StaticANIObject *ani = Scene_getStaticANIObjectAtPos(g_currentScene, ex->msg.sceneClickX, ex->msg.sceneClickY);
+ if (ani && ani->_id == ANI_LIFTBUTTON) {
+ lift_sub1(ani);
+ ex->_messageKind = 0;
+
+ return 0;
+ }
+
+ if (g_fullpipe->_currentScene->getPictureObjectIdAtPos(ex->_sceneClickX, ex->_sceneClickY) == PIC_SC3_DOMIN) {
+ if (g_vars->scene03_domino)
+ if (g_vars->scene03_domino->_flags & 4)
+ if (g_fullpipe->_aniMan->isIdle())
+ if (!(g_fullpipe->_aniMan->_flags & 0x100) && g_fullpipe->_msgObjectId2 != g_vars->scene03_domino->_id) {
+ handleObjectInteraction(g_fullpipe->_aniMan, g_vars->scene03_domino, ex->_keyCode);
+ ex->_messageKind = 0;
+
+ return 0;
+ }
+ }
+
+ break;
+ }
+
+ case 97:
+ {
+ int res = 0;
+
+ if (g_fullpipe->_aniMan2) {
+ if (g_fullpipe->_aniMan2->_ox < g_fullpipe->_sceneRect.left + 200) {
+ g_fullpipe->_currentScene->bg.x = g_fullpipe->_aniMan2->_ox - g_fullpipe->_sceneRect.left - 300;
+ v7 = g_fullpipe->_aniMan2;
+ }
+
+ if (g_fullpipe->_aniMan2->_ox > g_fullpipe->_sceneRect.right - 200)
+ g_fullpipe->_currentScene->bg.x = g_fullpipe->_aniMan2->_ox - g_fullpipe->_sceneRect.right + 300;
+ res = 1;
+ }
+ g_fullpipe->_behaviorManager->updateBehaviors();
+
+ startSceneTrack();
+
+ return res;
+ }
+ }
+#endif
return 0;
}