diff options
author | Eugene Sandulenko | 2014-03-05 22:55:50 +0200 |
---|---|---|
committer | Eugene Sandulenko | 2014-03-05 23:02:55 +0200 |
commit | afda517c3d36fbfa8c34f1fee8d6e3c877974103 (patch) | |
tree | b75a9af11a74c03d530f965606c39909b6438daf /engines/fullpipe | |
parent | b0d681e5be6b3de608e8f5418747d7c4a6019e26 (diff) | |
download | scummvm-rg350-afda517c3d36fbfa8c34f1fee8d6e3c877974103.tar.gz scummvm-rg350-afda517c3d36fbfa8c34f1fee8d6e3c877974103.tar.bz2 scummvm-rg350-afda517c3d36fbfa8c34f1fee8d6e3c877974103.zip |
FULLPIPE: Implement sceneHandler19()
Diffstat (limited to 'engines/fullpipe')
-rw-r--r-- | engines/fullpipe/constants.h | 3 | ||||
-rw-r--r-- | engines/fullpipe/scenes/scene18and19.cpp | 113 |
2 files changed, 116 insertions, 0 deletions
diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h index 60f5760def..f07a1db787 100644 --- a/engines/fullpipe/constants.h +++ b/engines/fullpipe/constants.h @@ -902,7 +902,10 @@ namespace Fullpipe { // Scene 19 #define ANI_CORDIE 1529 #define ANI_WHIRLGIG_19 1302 +#define MSG_SC19_UPDATENUMRIDES 5203 #define MV_WHR19_SPIN 1317 +#define PIC_SC19_RTRUBA1 1513 +#define PIC_SC19_RTRUBA2 1514 #define PIC_SC19_RTRUBA3 1515 #define PIC_SC19_RTRUBA31 5320 #define SND_19_015 3928 diff --git a/engines/fullpipe/scenes/scene18and19.cpp b/engines/fullpipe/scenes/scene18and19.cpp index d365ba2fae..e9507851e3 100644 --- a/engines/fullpipe/scenes/scene18and19.cpp +++ b/engines/fullpipe/scenes/scene18and19.cpp @@ -535,4 +535,117 @@ int sceneHandler18(ExCommand *cmd) { return 0; } +void sceneHandler19_updateNumRides() { + warning("STUB: sceneHandler19_updateNumRides()"); +} + +int sceneHandler19(ExCommand *cmd) { + if (cmd->_messageKind != 17) + return 0; + + switch (cmd->_messageNum) { + case MSG_SC18_SHOWMANJUMP: + sceneHandler18and19_showManJump(); + break; + + case MSG_SC19_UPDATENUMRIDES: + sceneHandler19_updateNumRides(); + break; + + case MSG_SC18_SHOWGIRLJUMPTO: + sceneHandler18and19_showGirlJumpTo(); + break; + + case MSG_SC18_SHOWBOYJUMPTO: + sceneHandler18and19_showBoyJumpTo(); + break; + + case MSG_SC18_SHOWGIRLJUMP: + sceneHandler18and19_showGirlJump(); + break; + + case MSG_SC18_SHOWBOYJUMP: + sceneHandler18and19_showBoyJump(); + break; + + case 29: + if (g_vars->scene18_var15) { + switch (g_fp->_currentScene->getPictureObjectIdAtPos(cmd->_sceneClickX, cmd->_sceneClickY)) { + case PIC_SC19_RTRUBA1: + g_vars->scene18_var13 = 1; + g_vars->scene18_var14 = 331; + cmd->_messageKind = 0; + break; + + case PIC_SC19_RTRUBA2: + g_vars->scene18_var13 = 2; + g_vars->scene18_var14 = 350; + cmd->_messageKind = 0; + break; + + case PIC_SC19_RTRUBA3: + g_vars->scene18_var13 = 3; + g_vars->scene18_var14 = 9; + cmd->_messageKind = 0; + break; + + default: + g_vars->scene18_var13 = -1; + g_vars->scene18_var14 = -1; + cmd->_messageKind = 0; + break; + } + break; + } + + if (g_vars->scene19_var05) { + if (g_fp->_currentScene->getPictureObjectIdAtPos(cmd->_sceneClickX, cmd->_sceneClickY) == PIC_SC19_RTRUBA3) { + if (g_fp->_aniMan->isIdle()) { + if (!(g_fp->_aniMan->_flags & 0x100)) { + PictureObject *pic = g_fp->_currentScene->getPictureObjectById(PIC_SC19_RTRUBA31, 0); + + handleObjectInteraction(g_fp->_aniMan, pic, cmd->_keyCode); + break; + } + } + } + } + break; + + case 33: + if (g_fp->_aniMan2) { + int x = g_fp->_aniMan2->_ox; + + g_vars->scene18_var11 = g_fp->_aniMan2->_oy; + + if (x < g_fp->_sceneRect.left + g_vars->scene18_var16) + g_fp->_currentScene->_x = x - g_vars->scene18_var18 - g_fp->_sceneRect.left; + + if (x > g_fp->_sceneRect.right - g_vars->scene18_var16) + g_fp->_currentScene->_x = x + g_vars->scene18_var18 - g_fp->_sceneRect.right; + } + + if (g_vars->scene18_var08) { + if (!g_vars->scene18_var12) + sceneHandler18and19_drawRiders(); + + g_vars->scene18_var12 = !g_vars->scene18_var12; + + if (!g_vars->scene18_whirlgig->_movement) { + g_vars->scene18_whirlgig->startAnim(MV_WHR19_SPIN, 0, -1); + + g_fp->_behaviorManager->updateBehaviors(); + break; + } + } else { + sceneHandler18and19_animateRiders(); + } + + g_fp->_behaviorManager->updateBehaviors(); + break; + } + + return 0; +} + } // End of namespace Fullpipe |