diff options
-rw-r--r-- | engines/fullpipe/constants.h | 3 | ||||
-rw-r--r-- | engines/fullpipe/scenes/scene04.cpp | 21 |
2 files changed, 20 insertions, 4 deletions
diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h index 77eb83d460..41800dab13 100644 --- a/engines/fullpipe/constants.h +++ b/engines/fullpipe/constants.h @@ -190,6 +190,9 @@ namespace Fullpipe { #define QU_EGTR_MD2_SHOW 4698 #define QU_EGTR_MD1_SHOW 4697 #define QU_EGTR_SLIMSHOW 4883 +#define QU_HND_TAKE0 1440 +#define QU_HND_TAKE1 1441 +#define QU_HND_TAKE2 1442 #define QU_HND_TAKEBOTTLE 1443 #define QU_IN2_DO 5144 #define QU_INTR_FINISH 5138 diff --git a/engines/fullpipe/scenes/scene04.cpp b/engines/fullpipe/scenes/scene04.cpp index fff1e7e438..0a0b804103 100644 --- a/engines/fullpipe/scenes/scene04.cpp +++ b/engines/fullpipe/scenes/scene04.cpp @@ -443,8 +443,21 @@ void sceneHandler04_sub12() { g_vars->scene04_var13 = 0; } -void sceneHandler04_sub15() { - warning("sceneHandler04_sub15()"); +void sceneHandler04_handTake() { + g_vars->scene04_clock->changeStatics2(ST_CLK_CLOSED); + + if (g_vars->scene04_kozyawkiAni.size()) { + if (g_vars->scene04_kozyawkiAni.size() == 1) { + chainQueue(QU_HND_TAKE1, 0); + g_vars->scene04_var19 = 0; + } else { + chainQueue((g_vars->scene04_kozyawkiAni.size() != 2) ? QU_HND_TAKEBOTTLE : QU_HND_TAKE2, 0); + g_vars->scene04_var19 = 0; + } + } else { + chainQueue(QU_HND_TAKE0, 0); + g_vars->scene04_var19 = 0; + } } void sceneHandler04_sub17() { @@ -591,7 +604,7 @@ int sceneHandler04(ExCommand *ex) { if (g_vars->scene04_var10) sceneHandler04_sub1(0); - sceneHandler04_sub15(); + sceneHandler04_handTake(); sceneHandler04_stopSound(); break; @@ -784,7 +797,7 @@ int sceneHandler04(ExCommand *ex) { if (g_vars->scene04_var10) sceneHandler04_sub1(0); - sceneHandler04_sub15(); + sceneHandler04_handTake(); } break; |