aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEugene Sandulenko2013-12-31 18:27:24 +0200
committerEugene Sandulenko2013-12-31 18:27:24 +0200
commit5b13fe488cd4b9fe2d59cb44e14605346e156117 (patch)
tree81561ae37e07aa46227d7e54dae9922c36d8fe66
parent3209d5c0f3620bb141e45da287f25cf4d576dd8e (diff)
downloadscummvm-rg350-5b13fe488cd4b9fe2d59cb44e14605346e156117.tar.gz
scummvm-rg350-5b13fe488cd4b9fe2d59cb44e14605346e156117.tar.bz2
scummvm-rg350-5b13fe488cd4b9fe2d59cb44e14605346e156117.zip
FULLPIPE: Implement sceneHandler14_manKickBall()
-rw-r--r--engines/fullpipe/scenes.cpp4
-rw-r--r--engines/fullpipe/scenes.h6
-rw-r--r--engines/fullpipe/scenes/scene14.cpp18
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() {