diff options
Diffstat (limited to 'engines')
-rw-r--r-- | engines/fullpipe/constants.h | 6 | ||||
-rw-r--r-- | engines/fullpipe/scenes/scene38.cpp | 116 |
2 files changed, 122 insertions, 0 deletions
diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h index 86c8834b3f..25381b616d 100644 --- a/engines/fullpipe/constants.h +++ b/engines/fullpipe/constants.h @@ -1305,6 +1305,12 @@ namespace Fullpipe { #define ANI_DYLDA 2169 #define ANI_GLAVAR 2154 #define ANI_MALYSH 2165 +#define MSG_SC38_DRINK 2225 +#define MSG_SC38_HMRKICK 2224 +#define MSG_SC38_POINT 2226 +#define MSG_SC38_POSTHMRKICK 2256 +#define MSG_SC38_PROPOSE 2287 +#define MSG_SC38_TRYTAKEBOTTLE 3179 #define QU_SC38_SHOWBOTTLE 2199 #define QU_SC38_SHOWBOTTLE_ONTABLE 2838 #define QU_SC38_ENTERLIFT 2836 diff --git a/engines/fullpipe/scenes/scene38.cpp b/engines/fullpipe/scenes/scene38.cpp index 0b534614b5..67a4c21983 100644 --- a/engines/fullpipe/scenes/scene38.cpp +++ b/engines/fullpipe/scenes/scene38.cpp @@ -90,4 +90,120 @@ void scene38_initScene(Scene *sc) { g_fp->lift_sub7(sc, ST_LBN_0N); } +void sceneHandler38_tryTakeBottle() { + warning("STUB: sceneHandler38_tryTakeBottle()"); +} + +void sceneHandler38_postHammerKick() { + warning("STUB: sceneHandler38_postHammerKick()"); +} + +void sceneHandler38_propose() { + warning("STUB: sceneHandler38_propose()"); +} + +void sceneHandler38_point() { + warning("STUB: sceneHandler38_point()"); +} + +void sceneHandler38_hammerKick() { + warning("STUB: sceneHandler38_hammerKick()"); +} + +void sceneHandler38_drink() { + warning("STUB: sceneHandler38_drink()"); +} + +void sceneHandler38_animateAlcoholics() { + warning("STUB: sceneHandler38_animateAlcoholics()"); +} + +int sceneHandler38(ExCommand *cmd) { + if (cmd->_messageKind != 17) + return 0; + + switch (cmd->_messageNum) { + case MSG_LIFT_EXITLIFT: + g_fp->lift_exitSeq(cmd); + break; + + case MSG_LIFT_CLOSEDOOR: + g_fp->lift_closedoorSeq(); + break; + + case MSG_LIFT_STARTEXITQUEUE: + g_fp->lift_startExitQueue(); + break; + + case MSG_SC38_TRYTAKEBOTTLE: + sceneHandler38_tryTakeBottle(); + break; + + case MSG_SC38_POSTHMRKICK: + sceneHandler38_postHammerKick(); + break; + + case MSG_SC38_PROPOSE: + sceneHandler38_propose(); + break; + + case MSG_LIFT_CLICKBUTTON: + g_fp->lift_animation3(); + break; + + case MSG_SC38_POINT: + sceneHandler38_point(); + break; + + case MSG_LIFT_GO: + g_fp->lift_goAnimation(); + break; + + case MSG_SC38_HMRKICK: + sceneHandler38_hammerKick(); + break; + + case MSG_SC38_DRINK: + sceneHandler38_drink(); + break; + + case 64: + g_fp->lift_sub05(cmd); + break; + + case 29: + { + StaticANIObject *ani = g_fp->_currentScene->getStaticANIObjectAtPos(g_fp->_sceneRect.left + cmd->_x, g_fp->_sceneRect.top + cmd->_y); + + if (ani && ani->_id == ANI_LIFTBUTTON) { + g_fp->lift_sub1(ani); + + cmd->_messageKind = 0; + } + break; + } + + case 33: + if (g_fp->_aniMan2) { + int x = g_fp->_aniMan2->_ox; + + if (x < g_fp->_sceneRect.left + g_vars->scene38_var01) + g_fp->_currentScene->_x = x - g_vars->scene38_var03 - g_fp->_sceneRect.left; + + if (x > g_fp->_sceneRect.right - g_vars->scene38_var01 ) + g_fp->_currentScene->_x = x + g_vars->scene38_var03 - g_fp->_sceneRect.right; + } + + sceneHandler38_animateAlcoholics(); + + g_fp->_behaviorManager->updateBehaviors(); + + g_fp->startSceneTrack(); + + break; + } + + return 0; +} + } // End of namespace Fullpipe |