diff options
author | Eugene Sandulenko | 2013-12-18 15:51:24 +0200 |
---|---|---|
committer | Eugene Sandulenko | 2013-12-18 15:51:24 +0200 |
commit | 4fb8e6e66e1c4c0af3cf226d59dc00f2ea44ed1e (patch) | |
tree | 503740fc2a53fe112060b19eb3be1c04e4fd9951 /engines | |
parent | 4bc2f258a4b5b320a3176071bc2948b987ff00f9 (diff) | |
download | scummvm-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.h | 2 | ||||
-rw-r--r-- | engines/fullpipe/fullpipe.h | 1 | ||||
-rw-r--r-- | engines/fullpipe/input.cpp | 5 | ||||
-rw-r--r-- | engines/fullpipe/scenes/scene06.cpp | 32 |
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() { |