diff options
-rw-r--r-- | engines/fullpipe/constants.h | 8 | ||||
-rw-r--r-- | engines/fullpipe/scenes/scene26.cpp | 110 |
2 files changed, 118 insertions, 0 deletions
diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h index 811afd401a..8f6e956c9b 100644 --- a/engines/fullpipe/constants.h +++ b/engines/fullpipe/constants.h @@ -933,6 +933,14 @@ namespace Fullpipe { #define ANI_LUK26 1867 #define ANI_SOCK_26 4553 #define ANI_VENT 1927 +#define MSG_SC26_CLICKVENT 1947 +#define MSG_SC26_HIDECHI 1967 +#define MSG_SC26_HIDEVENT 1945 +#define MSG_SC26_SHOWCHI 3495 +#define MSG_SC26_SHOWVENT 1946 +#define MSG_SC26_TESTVENT 1952 +#define MSG_SC26_UPDATEDROP 3496 +#define MSG_SC26_UPDATEPOOL 1956 #define PIC_SC26_LTRUBA 1864 #define PIC_SC26_SOCK 5312 #define SND_26_018 5340 diff --git a/engines/fullpipe/scenes/scene26.cpp b/engines/fullpipe/scenes/scene26.cpp index bf81f2f540..a4f23b1210 100644 --- a/engines/fullpipe/scenes/scene26.cpp +++ b/engines/fullpipe/scenes/scene26.cpp @@ -80,4 +80,114 @@ int scene26_updateCursor() { return g_fp->_cursorId; } +void sceneHandler26_updateDrop() { + warning("STUB: sceneHandler26_updateDrop()"); +} + +void sceneHandler26_showChi() { + warning("STUB: sceneHandler26_showChi()"); +} + +void sceneHandler26_updatePool() { + warning("STUB: sceneHandler26_updatePool()"); +} + +void sceneHandler26_hideChi() { + warning("STUB: sceneHandler26_hideChi()"); +} + +void sceneHandler26_testVent() { + warning("STUB: sceneHandler26_testVent()"); +} + +void sceneHandler26_showVent() { + warning("STUB: sceneHandler26_showVent()"); +} + +void sceneHandler26_hideVent() { + warning("STUB: sceneHandler26_hideVent()"); +} + +void sceneHandler26_clickVent(StaticANIObject *ani, ExCommand *cmd) { + warning("STUB: sceneHandler26_clickVent(ani, cmd)"); +} + +void sceneHandler26_sub01() { + warning("STUB: sceneHandler26_sub01()"); +} + +int sceneHandler26(ExCommand *cmd) { + if (cmd->_messageKind != 17) + return 0; + + switch (cmd->_messageNum) { + case MSG_SC26_UPDATEDROP: + sceneHandler26_updateDrop(); + break; + + case MSG_SC26_SHOWCHI: + sceneHandler26_showChi(); + break; + + case MSG_SC26_UPDATEPOOL: + sceneHandler26_updatePool(); + break; + + case MSG_SC26_HIDECHI: + sceneHandler26_hideChi(); + break; + + case MSG_SC26_TESTVENT: + sceneHandler26_testVent(); + break; + + case MSG_SC26_SHOWVENT: + sceneHandler26_showVent(); + break; + + case MSG_SC26_CLICKVENT: + { + StaticANIObject *ani = g_fp->_currentScene->getStaticANIObject1ById(ANI_VENT, cmd->_keyCode); + + if (ani && ani->_id == ANI_VENT) + sceneHandler26_clickVent(ani, cmd); + + break; + } + + case MSG_SC26_HIDEVENT: + sceneHandler26_hideVent(); + break; + + case 29: + { + StaticANIObject *ani = g_fp->_currentScene->getStaticANIObjectAtPos(cmd->_sceneClickX, cmd->_sceneClickY); + + if (ani && ani->_id == ANI_VENT) + sceneHandler26_clickVent(ani, cmd); + + break; + } + + case 33: + if (g_fp->_aniMan2) { + int x = g_fp->_aniMan2->_ox; + + if (x < g_fp->_sceneRect.left + g_vars->scene26_var01) + g_fp->_currentScene->_x = x - g_vars->scene26_var03 - g_fp->_sceneRect.left; + + if (x > g_fp->_sceneRect.right - g_vars->scene26_var01) + g_fp->_currentScene->_x = x + g_vars->scene26_var03 - g_fp->_sceneRect.right; + } + + g_fp->_behaviorManager->updateBehaviors(); + + g_fp->startSceneTrack(); + + break; + } + + return 0; +} + } // End of namespace Fullpipe |