diff options
author | Eugene Sandulenko | 2013-12-20 23:47:25 +0200 |
---|---|---|
committer | Eugene Sandulenko | 2013-12-20 23:47:25 +0200 |
commit | d20bf74f0a094d829b2b23ec74e56819508acbd2 (patch) | |
tree | 33d5239e75266f01c6f1a2d853d592366f614444 /engines/fullpipe | |
parent | 17ecccd4b6c7789483db12770494984fa697dbbb (diff) | |
download | scummvm-rg350-d20bf74f0a094d829b2b23ec74e56819508acbd2.tar.gz scummvm-rg350-d20bf74f0a094d829b2b23ec74e56819508acbd2.tar.bz2 scummvm-rg350-d20bf74f0a094d829b2b23ec74e56819508acbd2.zip |
FULLPIPE: Implement sceneHandler10()
Diffstat (limited to 'engines/fullpipe')
-rw-r--r-- | engines/fullpipe/scenes/scene10.cpp | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/engines/fullpipe/scenes/scene10.cpp b/engines/fullpipe/scenes/scene10.cpp index 7080952c8f..ffa127c461 100644 --- a/engines/fullpipe/scenes/scene10.cpp +++ b/engines/fullpipe/scenes/scene10.cpp @@ -51,4 +51,97 @@ void scene10_initScene(Scene *sc) { } } +int sceneHandler10(ExCommand *ex) { + if (ex->msg._messageKind != 17) + return 0; + + switch(ex->_messageNum) { + case MSG_LIFT_CLOSEDOOR: + lift_closedoorSeq(); + break; + + case MSG_LIFT_EXITLIFT: + lift_exitSeq(ex); + break; + + case MSG_LIFT_STARTEXITQUEUE: + lift_startExitQueue(); + break; + + case MSG_LIFT_CLICKBUTTON: + lift_animation3(); + break; + + case MSG_SC10_LADDERTOBACK: + g_vars->scene10_ladder->_priority = 49; + break; + + case MSG_SC10_LADDERTOFORE: + g_vars->scene10_ladder->_priority = 0; + break; + + case MSG_LIFT_GO: + lift_goAnimation(); + break; + + case MSG_SC10_CLICKGUM: + sceneHandler10_clickGum(); + + ex->_messageKind = 0; + break; + + case MSG_SC10_HIDEGUM: + sceneHandler10_hideGum(); + break; + + case MSG_SC10_SHOWGUM: + sceneHandler10_showGum(); + break; + + case 64: + lift_sub05(ex); + break; + + case 29: + if (g_fullpipe->_currentScene->getPictureObjectIdAtPos(ex->_sceneClickX, ex->_sceneClickY) == PIC_SC10_LADDER) { + handleObjectInteraction(g_aniMan, g_fullpipe->_currentScene->getPictureObjectById(PIC_SC10_DTRUBA, 0), ex->_keyCode); + ex->_messageKind = 0; + + return 0; + } + + StaticANIObject *ani = g_fullpipe->_currentScene->getStaticANIObjectAtPos(ex->_sceneClickX, ex->_sceneClickY); + + if (ani && ani->_id == ANI_LIFTBUTTON) { + lift_sub1(ani); + ex->_messageKind = 0; + + return 0; + } + break; + + case 33: + { + int res = 0; + + if (g_fullpipe->_aniMan2) { + if (g_fullpipe->_aniMan2->_ox < g_fullpipe->_sceneRect.left + 200) + g_fullpipe->_currentScene->_x = g_fullpipe->_aniMan2->_ox - g_fullpipe->_sceneRect.left - 300; + + if (g_fullpipe->_aniMan2->_ox > g_fullpipe->_sceneRect.right - 200) + g_fullpipe->_currentScene->_x = g_fullpipe->_aniMan2->_ox - g_fullpipe->_sceneRect.right + 300; + + res = 1; + } + + g_fullpipe->_behaviorManager->updateBehaviors(); + g_fullpipe->startSceneTrack(); + + return res; + } + } + + return 0; +} + } // End of namespace Fullpipe |