diff options
-rw-r--r-- | engines/fullpipe/constants.h | 7 | ||||
-rw-r--r-- | engines/fullpipe/scenes.cpp | 28 | ||||
-rw-r--r-- | engines/fullpipe/scenes.h | 28 | ||||
-rw-r--r-- | engines/fullpipe/scenes/scene18and19.cpp | 52 |
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; |