aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorEugene Sandulenko2013-12-18 15:51:24 +0200
committerEugene Sandulenko2013-12-18 15:51:24 +0200
commit4fb8e6e66e1c4c0af3cf226d59dc00f2ea44ed1e (patch)
tree503740fc2a53fe112060b19eb3be1c04e4fd9951 /engines
parent4bc2f258a4b5b320a3176071bc2948b987ff00f9 (diff)
downloadscummvm-rg350-4fb8e6e66e1c4c0af3cf226d59dc00f2ea44ed1e.tar.gz
scummvm-rg350-4fb8e6e66e1c4c0af3cf226d59dc00f2ea44ed1e.tar.bz2
scummvm-rg350-4fb8e6e66e1c4c0af3cf226d59dc00f2ea44ed1e.zip
FULLPIPE: Implement sceneHandler06_sub08() and sceneHandler06_sub10()
Diffstat (limited to 'engines')
-rw-r--r--engines/fullpipe/constants.h2
-rw-r--r--engines/fullpipe/fullpipe.h1
-rw-r--r--engines/fullpipe/input.cpp5
-rw-r--r--engines/fullpipe/scenes/scene06.cpp32
4 files changed, 38 insertions, 2 deletions
diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index 01ab47afdc..b1f005d718 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 b326c45004..aa42fd01cc 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 d5431dd473..e2c638ed46 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 f1a6e77b52..7b765373b2 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() {