aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEugene Sandulenko2014-02-27 23:05:54 +0400
committerEugene Sandulenko2014-02-28 11:06:17 +0400
commit591728227e156129e5a9ab549da9390348dfdc7c (patch)
tree03733e33ddf2cdfa5d7543708a0b5ce532513c9a
parentcf3bf73cde489893fa6c7f6383bacdd5ef137fc2 (diff)
downloadscummvm-rg350-591728227e156129e5a9ab549da9390348dfdc7c.tar.gz
scummvm-rg350-591728227e156129e5a9ab549da9390348dfdc7c.tar.bz2
scummvm-rg350-591728227e156129e5a9ab549da9390348dfdc7c.zip
FULLPIPE: Implement cene18_initScene2()
-rw-r--r--engines/fullpipe/constants.h7
-rw-r--r--engines/fullpipe/scenes.cpp28
-rw-r--r--engines/fullpipe/scenes.h28
-rw-r--r--engines/fullpipe/scenes/scene18and19.cpp52
4 files changed, 115 insertions, 0 deletions
diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index 6adf20228e..afa5218852 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -872,7 +872,14 @@ namespace Fullpipe {
#define ST_SMG_SIT 1399
// Scene 18
+#define ANI_BOY18 1477
+#define ANI_DOMINO_18 3174
+#define ANI_GIRL18 1484
+#define ANI_KRESLO 1459
+#define ANI_WHIRLIGIG_18 829
#define PIC_SC18_RTRUBA 1520
+#define SND_18_006 3906
+#define SND_18_010 4994
// Scene 19
#define PIC_SC19_RTRUBA3 1515
diff --git a/engines/fullpipe/scenes.cpp b/engines/fullpipe/scenes.cpp
index d64ea0bb0d..07f7f76b50 100644
--- a/engines/fullpipe/scenes.cpp
+++ b/engines/fullpipe/scenes.cpp
@@ -271,6 +271,34 @@ Vars::Vars() {
scene17_sceneEdgeX = 0;
scene18_var01 = 0;
+ scene18_var16 = 200;
+ scene18_var17 = 200;
+ scene18_var18 = 300;
+ scene18_var19 = 300;
+ scene18_whirlgig = 0;
+ scene18_var20 = 1032;
+ scene18_var04 = -318;
+ scene18_var08 = 0;
+ scene18_var03 = false;
+ scene18_var21 = 0;
+ scene18_var12 = 0;
+ scene18_var22 = 1;
+ scene18_var23 = -1;
+ scene18_var24 = 0;
+ scene18_var25 = 0;
+ scene18_var26 = 1;
+ scene18_var27 = -1;
+ scene18_var13 = -1;
+ scene18_var14 = -1;
+ scene18_var28 = 0;
+ scene18_var15 = 0;
+ scene18_boy = 0;
+ scene18_girl = 0;
+ scene18_domino = 0;
+ scene18_var29 = 290;
+ scene18_var30 = -363;
+ scene18_var05 = 283;
+ scene18_var06 = -350;
scene19_var01 = 0;
scene19_var02 = 0;
diff --git a/engines/fullpipe/scenes.h b/engines/fullpipe/scenes.h
index f06e210797..bc47831482 100644
--- a/engines/fullpipe/scenes.h
+++ b/engines/fullpipe/scenes.h
@@ -461,6 +461,34 @@ public:
int scene17_sceneEdgeX;
int scene18_var01;
+ int scene18_var16;
+ int scene18_var17;
+ int scene18_var18;
+ int scene18_var19;
+ StaticANIObject *scene18_whirlgig;
+ int scene18_var20;
+ int scene18_var04;
+ int scene18_var08;
+ bool scene18_var03;
+ int scene18_var21;
+ int scene18_var12;
+ int scene18_var22;
+ int scene18_var23;
+ int scene18_var24;
+ int scene18_var25;
+ int scene18_var26;
+ int scene18_var27;
+ int scene18_var13;
+ int scene18_var14;
+ int scene18_var28;
+ int scene18_var15;
+ StaticANIObject *scene18_boy;
+ StaticANIObject *scene18_girl;
+ StaticANIObject *scene18_domino;
+ int scene18_var29;
+ int scene18_var30;
+ int scene18_var05;
+ int scene18_var06;
int scene19_var01;
int scene19_var02;
diff --git a/engines/fullpipe/scenes/scene18and19.cpp b/engines/fullpipe/scenes/scene18and19.cpp
index b061d1d5e6..033d7052f7 100644
--- a/engines/fullpipe/scenes/scene18and19.cpp
+++ b/engines/fullpipe/scenes/scene18and19.cpp
@@ -44,6 +44,58 @@ void scene19_preload(Scene *sc, int key) {
warning("WARNING: scene19_preload()");
}
+void scene18_sub2(StaticANIObject *ani, Scene *sc) {
+ warning("WARNING: scene18_sub2()");
+}
+
+void scene18_initScene2(Scene *sc) {
+ g_vars->scene18_var16 = 200;
+ g_vars->scene18_var17 = 200;
+ g_vars->scene18_var18 = 300;
+ g_vars->scene18_var19 = 300;
+ g_vars->scene18_whirlgig = sc->getStaticANIObject1ById(ANI_WHIRLIGIG_18, -1);
+ g_vars->scene18_var20 = 1032;
+ g_vars->scene18_var04 = -318;
+
+ StaticANIObject *armchair = sc->getStaticANIObject1ById(ANI_KRESLO, -1);
+
+ armchair->loadMovementsPixelData();
+
+ g_vars->scene18_var03 = (g_fp->getObjectState(sO_Girl) == g_fp->getObjectEnumState(sO_Girl, sO_IsSwinging));
+
+ if (g_fp->getObjectState(sO_Bridge) == g_fp->getObjectEnumState(sO_Bridge, sO_Convoluted)) {
+ g_vars->scene18_var08 = 1;
+ g_fp->playSound(SND_18_006, 1);
+ } else {
+ g_vars->scene18_var08 = 0;
+ g_fp->playSound(SND_18_010, 1);
+ }
+
+ scene18_sub2(armchair, sc);
+
+ g_vars->scene18_var21 = 0;
+ g_vars->scene18_var12 = 0;
+ g_vars->scene18_var22 = 1;
+ g_vars->scene18_var23 = -1;
+ g_vars->scene18_var24 = 0;
+ g_vars->scene18_var25 = 0;
+ g_vars->scene18_var26 = 1;
+ g_vars->scene18_var27 = -1;
+ g_vars->scene18_var13 = -1;
+ g_vars->scene18_var14 = -1;
+ g_vars->scene18_var28 = 0;
+ g_vars->scene18_var15 = 0;
+ g_vars->scene18_boy = sc->getStaticANIObject1ById(ANI_BOY18, -1);
+ g_vars->scene18_girl = sc->getStaticANIObject1ById(ANI_GIRL18, -1);
+ g_vars->scene18_domino = sc->getStaticANIObject1ById(ANI_DOMINO_18, -1);
+ g_vars->scene18_var29 = 290;
+ g_vars->scene18_var30 = -363;
+ g_vars->scene18_var05 = 283;
+ g_vars->scene18_var06 = -350;
+
+ g_fp->initArcadeKeys("SC_18");
+}
+
void scene19_initScene2() {
g_fp->_aniMan2 = 0;
g_vars->scene19_var01 = 200;