diff options
Diffstat (limited to 'engines')
-rw-r--r-- | engines/fullpipe/constants.h | 11 | ||||
-rw-r--r-- | engines/fullpipe/scenes.cpp | 2 | ||||
-rw-r--r-- | engines/fullpipe/scenes.h | 2 | ||||
-rw-r--r-- | engines/fullpipe/scenes/scene11.cpp | 117 |
4 files changed, 108 insertions, 24 deletions
diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h index e2dff762ea..ce406d0e6f 100644 --- a/engines/fullpipe/constants.h +++ b/engines/fullpipe/constants.h @@ -494,19 +494,30 @@ namespace Fullpipe { #define ANI_KACHELI 1094 #define ANI_MAN11 1108 #define ANI_SWINGER 1113 +#define MSG_SC11_HITMAN 3019 +#define MSG_SC11_MANCRY 4691 +#define MSG_SC11_MANTOSWING 1128 +#define MSG_SC11_PUTBOOT 1117 +#define MSG_SC11_RESTARTMAN 1133 +#define MSG_SC11_SHOWSWING 1124 +#define MSG_SC11_SITSWINGER 5198 #define PIC_SC11_HINT 5170 +#define ST_BTS11_2 2707 #define ST_KCH_STATIC 1122 #define ST_SWR_SIT 1147 #define ST_SWR_SITBALD 1153 #define ST_SWR_STAND3 3014 + // Scene 15 #define ANI_BOOT_15 4779 +#define ANI_INV_BOOT 881 #define ANI_GRANDMA_ASS 1265 #define MSG_SC15_ASSDRYG 4755 #define MSG_SC15_LADDERTOBACK 3259 #define MSG_SC15_PULL 2940 #define MSG_SC15_STOPCHANTING 4753 +#define MV_SWR_SWING 1114 #define PIC_SC15_DTRUBA 1263 #define PIC_SC15_LADDER 3253 #define PIC_SC15_LTRUBA 1261 diff --git a/engines/fullpipe/scenes.cpp b/engines/fullpipe/scenes.cpp index 96d9cba54f..260d7a0292 100644 --- a/engines/fullpipe/scenes.cpp +++ b/engines/fullpipe/scenes.cpp @@ -185,6 +185,8 @@ Vars::Vars() { scene11_var18 = 0; scene11_var19 = 0; scene11_var20 = 0; + scene11_var21 = 0; + scene11_var22 = 0; scene12_fly = 0; scene12_flyCountdown = 0; diff --git a/engines/fullpipe/scenes.h b/engines/fullpipe/scenes.h index 270c2038b0..2ac2104df9 100644 --- a/engines/fullpipe/scenes.h +++ b/engines/fullpipe/scenes.h @@ -244,6 +244,8 @@ public: int scene11_var18; int scene11_var19; int scene11_var20; + int scene11_var21; + int scene11_var22; int scene12_fly; int scene12_flyCountdown; diff --git a/engines/fullpipe/scenes/scene11.cpp b/engines/fullpipe/scenes/scene11.cpp index b23dab2ba2..de83abf52c 100644 --- a/engines/fullpipe/scenes/scene11.cpp +++ b/engines/fullpipe/scenes/scene11.cpp @@ -141,8 +141,79 @@ void scene11_initScene(Scene *sc) { g_fp->setArcadeOverlay(PIC_CSR_ARCADE5); } +void sceneHandler11_winArcade() { + warning("STUB: sceneHandler11_winArcade()"); +} + +void sceneHandler11_restartMan() { + warning("STUB: sceneHandler11_restartMan()"); +} + +void sceneHandler11_hitMan() { + warning("STUB: sceneHandler11_hitMan()"); +} + +void sceneHandler11_manToSwing() { + warning("STUB: sceneHandler11_manToSwing()"); +} + +void sceneHandler11_putBoot() { + warning("STUB: sceneHandler11_putBoot()"); +} + +void sceneHandler11_showSwing() { + warning("STUB: sceneHandler11_showSwing()"); +} + +void sceneHandler11_sub01() { + warning("STUB: sceneHandler11_sub01()"); +} + +void sceneHandler11_sub02() { + warning("STUB: sceneHandler11_sub02()"); +} + +void sceneHandler11_sub03() { + warning("STUB: sceneHandler11_sub03()"); +} + +void sceneHandler11_sub04() { + warning("STUB: sceneHandler11_sub04()"); +} + +void sceneHandler11_sub05() { + warning("STUB: sceneHandler11_sub05()"); +} + +void sceneHandler11_sub06() { + warning("STUB: sceneHandler11_sub06()"); +} + +void sceneHandler11_sub07() { + warning("STUB: sceneHandler11_sub07()"); +} + +void sceneHandler11_sub08() { + warning("STUB: sceneHandler11_sub08()"); +} + +void sceneHandler11_sub09() { + warning("STUB: sceneHandler11_sub09()"); +} + +void sceneHandler11_sub10() { + warning("STUB: sceneHandler11_sub10()"); +} + +void sceneHandler11_sub11() { + warning("STUB: sceneHandler11_sub11()"); +} + +void sceneHandler11_sub12() { + warning("STUB: sceneHandler11_sub12()"); +} + int sceneHandler11(ExCommand *cmd) { -#if 0 if (cmd->_messageKind != 17) return 0; @@ -152,14 +223,15 @@ int sceneHandler11(ExCommand *cmd) { break; case MSG_SC11_SITSWINGER: - if (g_fp->getObjectState(sO_Swingie) == getObjectEnumState(sO_Swingie, sO_IsStandingInBoots) + if (g_fp->getObjectState(sO_Swingie) == g_fp->getObjectEnumState(sO_Swingie, sO_IsStandingInBoots) || g_fp->getObjectState(sO_Swingie) == g_fp->getObjectEnumState(sO_Swingie, sO_IsStandingInCorner)) { g_fp->setObjectState(sO_Swingie, g_fp->getObjectEnumState(sO_Swingie, sO_IsSitting)); } break; case MSG_SC11_MANCRY: - playSound(g_vars->scene11_var07, 0); + g_fp->playSound(g_vars->scene11_var07, 0); + g_vars->scene11_var07 = 0; break; @@ -190,11 +262,14 @@ int sceneHandler11(ExCommand *cmd) { case 33: { + int res = 0; + int x, y; + if (!g_fp->_aniMan2) goto LABEL_27; - int x = g_fp->_aniMan2->_ox; - int y = g_fp->_aniMan2->_oy; + x = g_fp->_aniMan2->_ox; + y = g_fp->_aniMan2->_oy; g_vars->scene11_var21 = x; g_vars->scene11_var22 = y; @@ -211,7 +286,7 @@ int sceneHandler11(ExCommand *cmd) { if (g_vars->scene11_var21 < 910) g_vars->scene11_var04 = 0; LABEL_26: - v2 = 1; + res = 1; LABEL_27: if (g_vars->scene11_var20) { if (g_fp->_sceneRect.left >= 534 && g_vars->scene11_var06 < 534) @@ -222,14 +297,9 @@ int sceneHandler11(ExCommand *cmd) { if (!g_vars->scene11_var02) goto LABEL_50; - v6 = g_vars->scene11_var16; - if (g_vars->scene11_var16 <= 0 || g_vars->scene11_var15 - g_vars->scene11_var16 <= 72) { - v7 = g_vars->scene11_var18; } else { sceneHandler11_sub02(); - v7 = 0; - v6 = 0; g_vars->scene11_var18 = 0; g_vars->scene11_var16 = 0; } @@ -237,34 +307,34 @@ int sceneHandler11(ExCommand *cmd) { if (!g_vars->scene11_var02) goto LABEL_50; - if (g_vars->scene11_var17 == v7 || v6 <= 0 || g_vars->scene11_var15 - v6 <= 2) { + if (g_vars->scene11_var17 == g_vars->scene11_var18 || g_vars->scene11_var16 <= 0 || g_vars->scene11_var15 - g_vars->scene11_var16 <= 2) { LABEL_49: if (g_vars->scene11_var02) { LABEL_61: g_fp->_behaviorManager->updateBehaviors(); g_fp->startSceneTrack(); - return v2; + return res; } LABEL_50: if (g_vars->scene11_var19 - || 0.0 == g_vars->scene11_var10 - && (v8 = g_vars->scene11_dudeOnSwing->_movement) != 0 - && v8->_currDynamicPhaseIndex == 45 - && (g_vars->scene11_dudeOnSwing->changeStatics2(ST_KCH_STATIC), !g_vars->scene11_var02) - && g_vars->scene11_var19) { + || (0.0 == g_vars->scene11_var10 + && g_vars->scene11_dudeOnSwing->_movement != 0 + && g_vars->scene11_dudeOnSwing->_movement->_currDynamicPhaseIndex == 45 + && (g_vars->scene11_dudeOnSwing->changeStatics2(ST_KCH_STATIC), !g_vars->scene11_var02) + && g_vars->scene11_var19)) { if (!g_vars->scene11_swingie->_movement) { if ((g_vars->scene11_boots->_flags & 4) && g_vars->scene11_boots->_statics->_staticsId == ST_BTS11_2) { sceneHandler11_sub07(); g_fp->_behaviorManager->updateBehaviors(); - startSceneTrack(); - return v2; + g_fp->startSceneTrack(); + return res; } g_vars->scene11_swingie->startAnim(MV_SWR_SWING, 0, -1); } } goto LABEL_61; } - if (v7 == 1) { + if (g_vars->scene11_var18 == 1) { if (!g_vars->scene11_var17) { sceneHandler11_sub03(); LABEL_48: @@ -272,7 +342,7 @@ int sceneHandler11(ExCommand *cmd) { goto LABEL_49; } } else { - if (v7 != 2) + if (g_vars->scene11_var18 != 2) goto LABEL_48; if (!g_vars->scene11_var17) { sceneHandler11_sub04(); @@ -322,7 +392,7 @@ int sceneHandler11(ExCommand *cmd) { } if (!g_vars->scene11_var02) { - StaticANIObject *ani = g_fp->_currentScenegetStaticANIObjectAtPos(cmd->_sceneClickX, cmd->_sceneClickY); + StaticANIObject *ani = g_fp->_currentScene->getStaticANIObjectAtPos(cmd->_sceneClickX, cmd->_sceneClickY); if (!ani || !canInteractAny(g_fp->_aniMan, ani, cmd->_keyCode)) { int picId = g_fp->_currentScene->getPictureObjectIdAtPos(cmd->_sceneClickX, cmd->_sceneClickY); @@ -340,7 +410,6 @@ int sceneHandler11(ExCommand *cmd) { return 0; } } -#endif return 0; } |