diff options
-rw-r--r-- | engines/fullpipe/scenes.cpp | 4 | ||||
-rw-r--r-- | engines/fullpipe/scenes.h | 6 | ||||
-rw-r--r-- | engines/fullpipe/scenes/scene14.cpp | 18 |
3 files changed, 26 insertions, 2 deletions
diff --git a/engines/fullpipe/scenes.cpp b/engines/fullpipe/scenes.cpp index d2dc6214ec..31753b90af 100644 --- a/engines/fullpipe/scenes.cpp +++ b/engines/fullpipe/scenes.cpp @@ -218,6 +218,10 @@ Vars::Vars() { scene14_var17 = 0; scene14_var18 = 0; scene14_var19 = 0; + scene14_var20 = 0; + scene14_var21 = 0; + scene14_var22 = 0; + scene14_var23 = 0; scene15_chantingCountdown = 0; scene15_plusminus = 0; diff --git a/engines/fullpipe/scenes.h b/engines/fullpipe/scenes.h index 93abacdc85..db7aa12372 100644 --- a/engines/fullpipe/scenes.h +++ b/engines/fullpipe/scenes.h @@ -284,7 +284,7 @@ public: int scene14_var07; int scene14_var08; StaticANIObject *scene14_pink; - int scene14_var10; + StaticANIObject *scene14_var10; Common::List<StaticANIObject *> scene14_var11; Common::List<StaticANIObject *> scene14_var12; int scene14_var13; @@ -294,6 +294,10 @@ public: int scene14_var17; int scene14_var18; int scene14_var19; + int scene14_var20; + int scene14_var21; + int scene14_var22; + int scene14_var23; int scene15_chantingCountdown; StaticANIObject *scene15_plusminus; diff --git a/engines/fullpipe/scenes/scene14.cpp b/engines/fullpipe/scenes/scene14.cpp index 88f4e8e58d..e68727042a 100644 --- a/engines/fullpipe/scenes/scene14.cpp +++ b/engines/fullpipe/scenes/scene14.cpp @@ -131,7 +131,23 @@ void sceneHandler14_showBallMan() { } void sceneHandler14_manKickBall() { - warning("STUB: sceneHandler14_manKickBall()"); + int val = (g_vars->scene14_var16 + 65 - (g_vars->scene14_var14 - 85)) / -32; + int den = val; + + g_vars->scene14_var22 = g_vars->scene14_var14 - 85; + g_vars->scene14_var23 = g_vars->scene14_var15 - 76; + g_vars->scene14_var20 = -32; + + if (!val) + den = 1; + + g_vars->scene14_var21 = (g_vars->scene14_var17 - 102 - val * val / 2 - (g_vars->scene14_var15 - 76)) / den; + + g_vars->scene14_var10->show1(g_vars->scene14_var14 - 85, g_vars->scene14_var15 - 76, -1, 0); + g_vars->scene14_var10->startAnim(MV_BAL14_SPIN, 0, -1); + g_vars->scene14_var10->_priority = 5; + + g_vars->scene14_var05 = 1; } void sceneHandler14_showBallFly() { |