aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/fullpipe/constants.h1
-rw-r--r--engines/fullpipe/scenes/scene14.cpp27
2 files changed, 22 insertions, 6 deletions
diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index 5cfcc57dc5..e36b7870f8 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -599,6 +599,7 @@ namespace Fullpipe {
#define MV_BAL14_SPIN 1247
#define MV_BAL14_TOGMA 3214
#define MV_MAN14_KICK 1237
+#define MV_MAN14_KICKAIR 1256
#define MV_MAN14_STEPFW 1240
#define PIC_SC14_RTRUBA 1221
#define ST_GMA_SIT 1229
diff --git a/engines/fullpipe/scenes/scene14.cpp b/engines/fullpipe/scenes/scene14.cpp
index f5ed3e0db3..1a9c87eaa8 100644
--- a/engines/fullpipe/scenes/scene14.cpp
+++ b/engines/fullpipe/scenes/scene14.cpp
@@ -351,8 +351,28 @@ void sceneHandler14_sub01() {
warning("STUB: sceneHandler14_sub01()");
}
+void sceneHandler14_sub06() {
+ g_fp->_aniMan->_callback2 = 0;
+ g_vars->scene14_var04 = 0;
+}
+
void sceneHandler14_sub02() {
- warning("STUB: sceneHandler14_sub02()");
+ if (g_fp->_aniMan->_movement) {
+ sceneHandler14_sub06();
+
+ if (g_vars->scene14_var10 && g_vars->scene14_var14 - g_vars->scene14_var10->_ox < 180) {
+ g_fp->_aniMan->changeStatics2(g_fp->_aniMan->_movement->_staticsObj2->_staticsId);
+ g_fp->_aniMan->startAnim(MV_MAN14_KICK, 0, -1);
+
+ g_vars->scene14_var05 = 0;
+
+ g_vars->scene14_var10->stopAnim_maybe();
+ g_vars->scene14_var10->hide();
+ } else {
+ g_fp->_aniMan->changeStatics2(g_fp->_aniMan->_movement->_staticsObj2->_staticsId);
+ g_fp->_aniMan->startAnim(MV_MAN14_KICKAIR, 0, -1);
+ }
+ }
}
void sceneHandler14_sub03() {
@@ -369,11 +389,6 @@ void sceneHandler14_sub05() {
warning("STUB: sceneHandler14_sub05()");
}
-void sceneHandler14_sub06() {
- g_fp->_aniMan->_callback2 = 0;
- g_vars->scene14_var04 = 0;
-}
-
void sceneHandler14_sub07() {
warning("STUB: sceneHandler14_sub07()");
}