aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEugene Sandulenko2013-12-18 22:52:12 +0200
committerEugene Sandulenko2013-12-19 00:43:37 +0200
commit6055acb63bfa1d1c6310ff14e4143a0d934546f7 (patch)
treec7bf7abeba9ac1150215f94a0c4edbe9075a331c
parent0be8b8f27db80f0e44fbd8e50f11481a9198deb8 (diff)
downloadscummvm-rg350-6055acb63bfa1d1c6310ff14e4143a0d934546f7.tar.gz
scummvm-rg350-6055acb63bfa1d1c6310ff14e4143a0d934546f7.tar.bz2
scummvm-rg350-6055acb63bfa1d1c6310ff14e4143a0d934546f7.zip
FULLPIPE: Implement sceneHandler06_sub09()
-rw-r--r--engines/fullpipe/constants.h1
-rw-r--r--engines/fullpipe/scenes/scene06.cpp53
2 files changed, 49 insertions, 5 deletions
diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index d1e1820c27..1a41538732 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -269,6 +269,7 @@ namespace Fullpipe {
#define QU_KOZAW_WALK 505
#define QU_MOM_JUMPBK 671
#define QU_MOM_JUMPFW 670
+#define QU_MOM_PUTBALL 2903
#define QU_MOM_SITDOWN 685
#define QU_MOM_STANDUP 2899
#define QU_MOM_TOLIFT 2902
diff --git a/engines/fullpipe/scenes/scene06.cpp b/engines/fullpipe/scenes/scene06.cpp
index 4f76714660..7f49df385e 100644
--- a/engines/fullpipe/scenes/scene06.cpp
+++ b/engines/fullpipe/scenes/scene06.cpp
@@ -419,7 +419,54 @@ void sceneHandler06_sub05() {
}
void sceneHandler06_sub09() {
- warning("STUB: sceneHandler06_sub09()");
+ if (g_vars->scene06_var11) {
+ g_vars->scene06_var11->hide();
+
+ g_vars->scene06_balls.push_back(g_vars->scene06_var11);
+
+ g_vars->scene06_var11 = 0;
+
+ g_vars->scene06_var13++;
+
+ if (g_vars->scene06_mumsy->_movement) {
+ Common::Point point;
+
+ if (g_vars->scene06_mumsy->_movement->_id == MV_MOM_JUMPFW) {
+ if (g_vars->scene06_mumsy->_movement->_currDynamicPhaseIndex <= 5) {
+ g_vars->scene06_mumsy->_movement->calcSomeXY(point, 0);
+
+ point.x = -point.x;
+ point.y = -point.y;
+ } else {
+ g_vars->scene06_mumsy->_movement->calcSomeXY(point, 1);
+
+ g_vars->scene06_mumsyPos++;
+ }
+ } else if (g_vars->scene06_mumsy->_movement->_id == MV_MOM_JUMPBK) {
+ if (g_vars->scene06_mumsy->_movement->_currDynamicPhaseIndex <= 4) {
+ g_vars->scene06_mumsy->_movement->calcSomeXY(point, 0);
+
+ point.x = -point.x;
+ point.y = -point.y;
+ } else {
+ g_vars->scene06_mumsy->_movement->calcSomeXY(point, 1);
+
+ g_vars->scene06_mumsyPos--;
+ }
+ }
+
+ g_vars->scene06_mumsy->changeStatics2(ST_MOM_STANDS);
+ g_vars->scene06_mumsy->setOXY(point.x + g_vars->scene06_mumsy->_ox,
+ point.y + g_vars->scene06_mumsy->_oy);
+ } else {
+ g_vars->scene06_mumsy->changeStatics2(ST_MOM_STANDS);
+ }
+
+ chainQueue(QU_MOM_PUTBALL, 1);
+ g_vars->scene06_var16 = 1;
+
+ sceneHandler06_sub10();
+ }
}
void sceneHandler06_sub04(int par) {
@@ -437,10 +484,6 @@ void sceneHandler06_sub04(int par) {
}
}
-void sceneHandler06_sub06() {
- warning("STUB: sceneHandler06_sub06()");
-}
-
void scene06_initScene(Scene *sc) {
g_vars->scene06_mumsy = sc->getStaticANIObject1ById(ANI_MAMASHA, -1);
g_vars->scene06_var06 = 0;