aboutsummaryrefslogtreecommitdiff
path: root/engines/fullpipe
diff options
context:
space:
mode:
authorEugene Sandulenko2013-11-21 07:44:52 -0800
committerEugene Sandulenko2013-11-21 07:45:15 -0800
commit91713e695e22dafe1baeed0348b10e84c389e95d (patch)
tree28875d6678acf1fc584526a650a2223b8afd765c /engines/fullpipe
parent39efe3999a9531f7e2898f15c2afdad3d294e3f2 (diff)
downloadscummvm-rg350-91713e695e22dafe1baeed0348b10e84c389e95d.tar.gz
scummvm-rg350-91713e695e22dafe1baeed0348b10e84c389e95d.tar.bz2
scummvm-rg350-91713e695e22dafe1baeed0348b10e84c389e95d.zip
FULLPIPE: More work on scene04
Diffstat (limited to 'engines/fullpipe')
-rw-r--r--engines/fullpipe/constants.h15
-rw-r--r--engines/fullpipe/fullpipe.h1
-rw-r--r--engines/fullpipe/init.cpp12
-rw-r--r--engines/fullpipe/interaction.cpp11
-rw-r--r--engines/fullpipe/interaction.h2
-rw-r--r--engines/fullpipe/objectnames.h2
-rw-r--r--engines/fullpipe/scenes.cpp38
-rw-r--r--engines/fullpipe/scenes.h40
-rw-r--r--engines/fullpipe/scenes/scene04.cpp78
9 files changed, 158 insertions, 41 deletions
diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index 714188b234..e4576a17b4 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -26,9 +26,11 @@
namespace Fullpipe {
#define ANI_BOOT_1 4231
+#define ANI_CLOCK 588
#define ANI_DOMINO_3 2732
#define ANI_DADAYASHIK 306
#define ANI_EGGEATER 334
+#define ANI_HAND 601
#define ANI_IN1MAN 5110
#define ANI_INV_COIN 875
#define ANI_INV_EGGAPL 1564
@@ -37,9 +39,15 @@ namespace Fullpipe {
#define ANI_INV_EGGDOM 1561
#define ANI_INV_EGGGLS 1573
#define ANI_INV_MAP 5321
+#define ANI_KOZAWKA 495
#define ANI_LIFTBUTTON 2751
+#define ANI_MAMASHA_4 660
#define ANI_MAN 322
+#define ANI_PLANK 501
#define ANI_SC2_BOX 1020
+#define ANI_SC4_BOOT 1035
+#define ANI_SPEAKER_4 3275
+#define ANI_SPRING 542
#define MSG_CMN_WINARCADE 4778
#define MSG_DISABLESAVES 5201
#define MSG_ENABLESAVES 5202
@@ -72,6 +80,8 @@ namespace Fullpipe {
#define MSG_SC3_UTRUBACLICK 1103
#define MV_EGTR_FATASK 5332
#define MV_IN1MAN_SLEEP 5111
+#define MV_KZW_JUMP 558
+#define MV_KZW_JUMPROTATE 561
#define MV_MAN_GOLADDER 451
#define MV_MAN_GOLADDER2 2844
#define MV_MAN_LOOKUP 4773
@@ -82,6 +92,7 @@ namespace Fullpipe {
#define MV_MAN_TOLADDER 448
#define MV_MAN_TOLADDER2 2841
#define MV_MAN_TURN_LU 486
+#define MV_SPK4_PLAY 3276
#define PIC_CMN_EVAL 3468
#define PIC_CSR_DEFAULT 4891
#define PIC_CSR_DEFAULT_INV 4892
@@ -128,6 +139,9 @@ namespace Fullpipe {
#define PIC_SC2_LADDER 412
#define PIC_SC3_DOMIN 5182
#define PIC_SC3_LADDER 1102
+#define PIC_SC4_BOTTLE 568
+#define PIC_SC4_BOTTLE2 2936
+#define PIC_SC4_MASK 585
#define PIC_SCD_SEL 734
#define QU_EGTR_MD2_SHOW 4698
#define QU_EGTR_MD1_SHOW 4697
@@ -198,6 +212,7 @@ namespace Fullpipe {
#define ST_EGTR_MID2 2869
#define ST_EGTR_SLIM 336
#define ST_IN1MAN_SLEEP 5112
+#define ST_KZW_EMPTY 498
#define ST_LBN_0N 2832
#define ST_LBN_0P 2833
#define ST_LBN_1N 2753
diff --git a/engines/fullpipe/fullpipe.h b/engines/fullpipe/fullpipe.h
index e542599458..63dde5042b 100644
--- a/engines/fullpipe/fullpipe.h
+++ b/engines/fullpipe/fullpipe.h
@@ -230,6 +230,7 @@ public:
void openHelp();
void openMainMenu();
+ void initArcadeKeys(const char *varname);
void winArcade();
void getAllInventory();
diff --git a/engines/fullpipe/init.cpp b/engines/fullpipe/init.cpp
index fb60a4cc57..49bf72ac91 100644
--- a/engines/fullpipe/init.cpp
+++ b/engines/fullpipe/init.cpp
@@ -56,7 +56,7 @@ void FullpipeEngine::initObjectStates() {
setObjectState(sO_CoinSlot_1, getObjectEnumState(sO_CoinSlot_1, sO_Empty));
setObjectState(sO_FriesPit, getObjectEnumState(sO_FriesPit, sO_WithApple));
setObjectState(sO_Jug, getObjectEnumState(sO_Jug, sO_Blocked));
- setObjectState(sO_RightStairs_9, getObjectEnumState(sO_RightStairs_9, sO_ClosedShe));
+ setObjectState(sO_RightStairs_9, getObjectEnumState(sO_RightStairs_9, sO_IsClosed));
setObjectState(sO_Pipe_9, getObjectEnumState(sO_Pipe_9, sO_WithJug));
setObjectState(sO_Inflater, getObjectEnumState(sO_Inflater, sO_WithGum));
setObjectState(sO_Swingie, getObjectEnumState(sO_Swingie, sO_Swinging));
@@ -70,7 +70,7 @@ void FullpipeEngine::initObjectStates() {
setObjectState(sO_Cup, getObjectEnumState(sO_Cup, sO_InSmokeRoom));
setObjectState(sO_Pedestal_17, getObjectEnumState(sO_Pedestal_17, sO_IsFree));
setObjectState(sO_UsherHand, getObjectEnumState(sO_UsherHand, sO_WithoutCoin));
- setObjectState(sO_RightPipe_17, getObjectEnumState(sO_RightPipe_17, sO_ClosedShe));
+ setObjectState(sO_RightPipe_17, getObjectEnumState(sO_RightPipe_17, sO_IsClosed));
setObjectState(sO_Fly_17, 1);
setObjectState(sO_DudeSwinged, 0);
setObjectState(sO_Girl, getObjectEnumState(sO_Girl, sO_Swinging));
@@ -83,11 +83,11 @@ void FullpipeEngine::initObjectStates() {
setObjectState(sO_LowerHatch_23, getObjectEnumState(sO_LowerHatch_23, sO_Closed));
setObjectState(sO_Lever_23, getObjectEnumState(sO_Lever_23, sO_NotTaken));
setObjectState(sO_LeverHandle_23, getObjectEnumState(sO_LeverHandle_23, sO_WithoutStool));
- setObjectState(sO_LowerPipe_21, getObjectEnumState(sO_LowerPipe_21, sO_ClosedShe));
+ setObjectState(sO_LowerPipe_21, getObjectEnumState(sO_LowerPipe_21, sO_IsClosed));
setObjectState(sO_StarsDown_24, getObjectEnumState(sO_StarsDown_24, sO_OpenedShe));
setObjectState(sO_Hatch_26, getObjectEnumState(sO_Hatch_26, sO_Closed));
setObjectState(sO_Sock_26, getObjectEnumState(sO_Sock_26, sO_NotHanging));
- setObjectState(sO_LeftPipe_26, getObjectEnumState(sO_LeftPipe_26, sO_ClosedShe));
+ setObjectState(sO_LeftPipe_26, getObjectEnumState(sO_LeftPipe_26, sO_IsClosed));
setObjectState(sO_Valve1_26, getObjectEnumState(sO_Valve1_26, sO_Opened));
setObjectState(sO_Valve2_26, getObjectEnumState(sO_Valve2_26, sO_Closed));
setObjectState(sO_Valve3_26, getObjectEnumState(sO_Valve3_26, sO_Closed));
@@ -97,8 +97,8 @@ void FullpipeEngine::initObjectStates() {
setObjectState(sO_Plank_25, getObjectEnumState(sO_Plank_25, sO_NearDudesStairs));
setObjectState(sO_Driver, getObjectEnumState(sO_Driver, sO_WithSteering));
setObjectState(sO_Janitress, getObjectEnumState(sO_Janitress, sO_WithMop));
- setObjectState(sO_LeftPipe_29, getObjectEnumState(sO_LeftPipe_29, sO_ClosedShe));
- setObjectState(sO_LeftPipe_30, getObjectEnumState(sO_LeftPipe_30, sO_ClosedShe));
+ setObjectState(sO_LeftPipe_29, getObjectEnumState(sO_LeftPipe_29, sO_IsClosed));
+ setObjectState(sO_LeftPipe_30, getObjectEnumState(sO_LeftPipe_30, sO_IsClosed));
setObjectState(sO_Leg, getObjectEnumState(sO_Leg, sO_ShowingHeel));
setObjectState(sO_Tub, getObjectEnumState(sO_Tub, sO_EmptyShe));
setObjectState(sO_Cactus, getObjectEnumState(sO_Cactus, sO_NotGrown));
diff --git a/engines/fullpipe/interaction.cpp b/engines/fullpipe/interaction.cpp
index 80cbce946b..b513d2b8ee 100644
--- a/engines/fullpipe/interaction.cpp
+++ b/engines/fullpipe/interaction.cpp
@@ -394,6 +394,17 @@ LABEL_38:
return true;
}
+Interaction *InteractionController::getInteractionByObjectIds(int obId, int obId2, int obId3) {
+ for (ObList::iterator i = _interactions.begin(); i != _interactions.end(); ++i) {
+ Interaction *intr = (Interaction *)*i;
+
+ if (intr->_objectId1 == obId && intr->_objectId2 == obId2 && intr->_objectId3 == obId3)
+ return intr;
+ }
+
+ return 0;
+}
+
Interaction::Interaction() {
_objectId1 = 0;
_objectId2 = 0;
diff --git a/engines/fullpipe/interaction.h b/engines/fullpipe/interaction.h
index f968cca8ee..456b35458b 100644
--- a/engines/fullpipe/interaction.h
+++ b/engines/fullpipe/interaction.h
@@ -79,6 +79,8 @@ class InteractionController : public CObject {
void sortInteractions(int sceneId);
bool handleInteraction(StaticANIObject *subj, GameObject *obj, int invId);
+
+ Interaction *getInteractionByObjectIds(int obId, int obId2, int obId3);
};
struct EntranceInfo {
diff --git a/engines/fullpipe/objectnames.h b/engines/fullpipe/objectnames.h
index 015df727e9..241e31b165 100644
--- a/engines/fullpipe/objectnames.h
+++ b/engines/fullpipe/objectnames.h
@@ -90,7 +90,7 @@ namespace Fullpipe {
#define sO_CloseThing "\xc7\xe0\xea\xf0\xfb\xe2\xe0\xe5\xec\xee\xe5" // "Закрываемое"
#define sO_Closed "\xc7\xe0\xea\xf0\xfb\xf2" // "Закрыт"
#define sO_ClosedWithBoot "\xc7\xe0\xea\xf0\xfb\xf2\xe0 \xf1 \xe1\xee\xf2\xe8\xed\xea\xee\xec" // "Закрыта с ботинком"
-#define sO_ClosedShe "\xc7\xe0\xea\xf0\xfb\xf2\xe0" // "Закрыта"
+#define sO_IsClosed "\xc7\xe0\xea\xf0\xfb\xf2\xe0" // "Закрыта"
#define sO_HalfFull "\xc7\xe0\xef\xee\xeb\xed\xe5\xed \xed\xe0\xef\xee\xeb\xee\xe2\xe8\xed\xf3" // "Заполнен наполовину"
#define sO_Full "\xc7\xe0\xef\xee\xeb\xed\xe5\xed \xf6\xe5\xeb\xe8\xea\xee\xec" // "Заполнен целиком"
#define sO_MirroredTo "\xc7\xe5\xf0\xea\xe0\xeb\xfc\xed\xe0\xff \xea" // "Зеркальная к"
diff --git a/engines/fullpipe/scenes.cpp b/engines/fullpipe/scenes.cpp
index 9f27101d7d..7252b44b93 100644
--- a/engines/fullpipe/scenes.cpp
+++ b/engines/fullpipe/scenes.cpp
@@ -58,6 +58,40 @@ Vars::Vars() {
scene03_eggeater = 0;
scene03_domino = 0;
+ scene04_bottle = 0;
+ scene04_hand = 0;
+ scene04_plank = 0;
+ scene04_clock = 0;
+ scene04_hand = 0;
+ scene04_spring = 0;
+ scene04_mamasha = 0;
+ scene04_boot = 0;
+ scene04_speaker = 0;
+
+ scene04_ladder = 0;
+ scene04_coinPut = false;
+ scene04_soundPlaying = false;
+ scene04_dynamicPhaseIndex = 0;
+
+ scene04_var01 = 0;
+ scene04_var02 = 0;
+ scene04_var04 = 0;
+ scene04_var05 = 0;
+ scene04_var06 = 0;
+ scene04_var07 = 0;
+ scene04_var08 = 0;
+ scene04_var09 = 0;
+ scene04_var10 = 0;
+ scene04_var11 = 0;
+ scene04_var12 = 0;
+ scene04_var13 = 0;
+ scene04_var14 = 0;
+ scene04_var15 = 0;
+ scene04_var16 = 0;
+ scene04_var17 = 0;
+ scene04_var18 = 0;
+ scene04_var19 = 0;
+
selector = 0;
}
@@ -662,4 +696,8 @@ int defaultUpdateCursor() {
return g_fullpipe->_cursorId;
}
+void FullpipeEngine::initArcadeKeys(const char *varname) {
+ warning("STUB: FullpipeEngine::initArcadeKeys(\"%s\")", varname);
+}
+
} // End of namespace Fullpipe
diff --git a/engines/fullpipe/scenes.h b/engines/fullpipe/scenes.h
index 180d8231a3..81a9be5cc5 100644
--- a/engines/fullpipe/scenes.h
+++ b/engines/fullpipe/scenes.h
@@ -73,6 +73,46 @@ public:
StaticANIObject *scene03_eggeater;
StaticANIObject *scene03_domino;
+ PictureObject *scene04_bottle;
+ StaticANIObject *scene04_hand;
+ StaticANIObject *scene04_plank;
+ StaticANIObject *scene04_clock;
+ StaticANIObject *scene04_spring;
+ StaticANIObject *scene04_mamasha;
+ StaticANIObject *scene04_boot;
+ StaticANIObject *scene04_speaker;
+
+ Common::Point scene04_jumpingKozyawki[20];
+ Common::Point scene04_jumpRotateKozyawki[20];
+
+ Common::Array<StaticANIObject *> scene04_kozyawkiObjList;
+ Common::Array<PictureObject *> scene04_bottleObjList;
+ Common::Array<StaticANIObject *> scene04_kozyawkiAni;
+
+ int scene04_ladder;
+ bool scene04_coinPut;
+ bool scene04_soundPlaying;
+ int scene04_dynamicPhaseIndex;
+
+ int scene04_var01;
+ int scene04_var02;
+ int scene04_var04;
+ int scene04_var05;
+ int scene04_var06;
+ int scene04_var07;
+ int scene04_var08;
+ int scene04_var09;
+ int scene04_var10;
+ int scene04_var11;
+ int scene04_var12;
+ int scene04_var13;
+ int scene04_var14;
+ int scene04_var15;
+ int scene04_var16;
+ int scene04_var17;
+ int scene04_var18;
+ int scene04_var19;
+
PictureObject *selector;
};
diff --git a/engines/fullpipe/scenes/scene04.cpp b/engines/fullpipe/scenes/scene04.cpp
index 291111a668..c43bfe3935 100644
--- a/engines/fullpipe/scenes/scene04.cpp
+++ b/engines/fullpipe/scenes/scene04.cpp
@@ -22,20 +22,29 @@
#include "fullpipe/fullpipe.h"
-#include "fullpipe/objects.h"
#include "fullpipe/objectnames.h"
#include "fullpipe/constants.h"
+#include "fullpipe/utils.h"
+#include "fullpipe/gfx.h"
+#include "fullpipe/scenes.h"
+#include "fullpipe/messages.h"
+#include "fullpipe/statics.h"
+#include "fullpipe/scene.h"
+#include "fullpipe/interaction.h"
+#include "fullpipe/gameloader.h"
namespace Fullpipe {
+void scene04_callback(int *param) {
+ warning("STUB: scene04_callback");
+}
+
void scene04_initScene(Scene *sc) {
-#if 0
g_vars->scene04_var01 = 0;
g_vars->scene04_bottle = sc->getPictureObjectById(PIC_SC4_BOTTLE, 0);
g_vars->scene04_hand = sc->getStaticANIObject1ById(ANI_HAND, -1);
g_vars->scene04_plank = sc->getStaticANIObject1ById(ANI_PLANK, -1);
g_vars->scene04_clock = sc->getStaticANIObject1ById(ANI_CLOCK, -1);
- g_vars->scene04_hand = sc->getStaticANIObject1ById(ANI_HAND, -1);
g_vars->scene04_spring = sc->getStaticANIObject1ById(ANI_SPRING, -1);
g_vars->scene04_mamasha = sc->getStaticANIObject1ById(ANI_MAMASHA_4, -1);
g_vars->scene04_boot = sc->getStaticANIObject1ById(ANI_SC4_BOOT, -1);
@@ -48,15 +57,15 @@ void scene04_initScene(Scene *sc) {
if (kozmov) {
uint kozsize = kozmov->_currMovement ? kozmov->_currMovement->_dynamicPhases.size() : kozmov->_dynamicPhases.size();
- for (i = 0; i < kozsize; i++) {
+ for (uint i = 0; i < kozsize; i++) {
kozmov->setDynamicPhaseIndex(i);
if (kozmov->_framePosOffsets) {
- g_vars->scene04_jumpingKozyawki[i] = kozmov->_framePosOffsets[kozmov->_currDynamicPhaseIndex];
+ g_vars->scene04_jumpingKozyawki[i] = *kozmov->_framePosOffsets[kozmov->_currDynamicPhaseIndex];
} else {
kozmov->_somePoint.x = 0;
kozmov->_somePoint.y = 0;
- g_vars->scene04_jumpingKozyawki[i] = kozMov->_somePoint;
+ g_vars->scene04_jumpingKozyawki[i] = kozmov->_somePoint;
}
}
}
@@ -65,15 +74,15 @@ void scene04_initScene(Scene *sc) {
if (kozmov) {
uint kozsize = kozmov->_currMovement ? kozmov->_currMovement->_dynamicPhases.size() : kozmov->_dynamicPhases.size();
- for (i = 0; i < kozsize; i++) {
+ for (uint i = 0; i < kozsize; i++) {
kozmov->setDynamicPhaseIndex(i);
if (kozmov->_framePosOffsets) {
- g_vars->scene04_jumpRotateKozyawki[i] = kozmov->_framePosOffsets[kozmov->_currDynamicPhaseIndex];
+ g_vars->scene04_jumpRotateKozyawki[i] = *kozmov->_framePosOffsets[kozmov->_currDynamicPhaseIndex];
} else {
kozmov->_somePoint.x = 0;
kozmov->_somePoint.y = 0;
- g_vars->scene04_jumpRotateKozyawki[i] = kozMov->_somePoint;
+ g_vars->scene04_jumpRotateKozyawki[i] = kozmov->_somePoint;
}
}
}
@@ -83,20 +92,21 @@ void scene04_initScene(Scene *sc) {
if (plank)
plank->_flags |= 8;
- if (getObjectState(sO_Jar_4) == getObjectEnumState(sO_Jar_4, sO_UpsideDown)) {
+ if (g_fullpipe->getObjectState(sO_Jar_4) == g_fullpipe->getObjectEnumState(sO_Jar_4, sO_UpsideDown)) {
g_vars->scene04_bottleObjList.clear();
g_vars->scene04_kozyawkiObjList.clear();
sc->getPictureObjectById(PIC_SC4_BOTTLE, 0)->_flags &= 0xfffb;
sc->getPictureObjectById(PIC_SC4_MASK, 0)->_flags &= 0xfffb;
- sc->getStaticANIObjectById(ANI_SPRING, 0)->_flags &= 0xfffb;
+ sc->getStaticANIObject1ById(ANI_SPRING, 0)->_flags &= 0xfffb;
g_vars->scene04_var18 = 0;
g_vars->scene04_var19 = 0;
} else {
StaticANIObject *spring = sc->getStaticANIObject1ById(ANI_SPRING, -1);
- if (sprint)
- spring->callback2 = 0;
+
+ if (spring)
+ spring->_callback2 = 0;
g_vars->scene04_bottleObjList.clear();
g_vars->scene04_bottleObjList.push_back(sc->getPictureObjectById(PIC_SC4_BOTTLE, 0));
@@ -107,7 +117,7 @@ void scene04_initScene(Scene *sc) {
if (koz) {
koz->loadMovementsPixelData();
- koz->statics = koz->getStaticsById(ST_KZW_EMPTY);
+ koz->_statics = koz->getStaticsById(ST_KZW_EMPTY);
koz->setOXY(0, 0);
koz->hide();
@@ -117,29 +127,28 @@ void scene04_initScene(Scene *sc) {
StaticANIObject *koz1 = new StaticANIObject(koz);
sc->addStaticANIObject(koz1, 1);
- v26 = koz->getStaticsById(ST_KZW_EMPTY);
- v27 = v3->GameObject.CObject.vmt;
- v3->statics = v26;
- (*(void (__thiscall **)(StaticANIObject *, _DWORD, _DWORD))(v27 + offsetof(GameObjectVmt, setOXY)))(v3, 0, 0);
- StaticANIObject_hide(v3);
- CObList::AddTail(&g_vars->scene04_kozyawkiObjList, v3);
- --v24;
- } while (v24);
+ koz1->_statics = koz->getStaticsById(ST_KZW_EMPTY);
+ koz1->setOXY(0, 0);
+ koz1->hide();
+ g_vars->scene04_kozyawkiObjList.push_back(koz1);
+ }
}
- v28 = Scene_getPictureObjectById(sc, PIC_SC4_BOTTLE2, 0);
- GameObject_setFlags(&v28->GameObject, v28->GameObject.flags & 0xFFFB);
+ sc->getPictureObjectById(PIC_SC4_BOTTLE2, 0)->_flags &= 0xfffb;
+
g_vars->scene04_var18 = 1;
g_vars->scene04_var19 = 1;
}
+
g_vars->scene04_var02 = 0;
g_vars->scene04_soundPlaying = 0;
g_vars->scene04_var04 = 0;
g_vars->scene04_var05 = 0;
g_vars->scene04_var06 = 2;
- g_sc04_dynamicPhaseIndex = 0;
- CObList::RemoveAll(&g_vars->scene04_kozyawkiAni);
+ g_vars->scene04_dynamicPhaseIndex = 0;
+
+ g_vars->scene04_kozyawkiAni.clear();
- setObjectState(sO_LowerPipe, getObjectEnumState(sO_LowerPipe, sO_IsClosed));
+ g_fullpipe->setObjectState(sO_LowerPipe, g_fullpipe->getObjectEnumState(sO_LowerPipe, sO_IsClosed));
g_vars->scene04_var07 = 0;
g_vars->scene04_var08 = 0;
@@ -152,16 +161,17 @@ void scene04_initScene(Scene *sc) {
g_vars->scene04_var14 = 0;
g_vars->scene04_var15 = 1;
- if (getObjectState(sO_BigMumsy) != getObjectEnumState(sO_BigMumsy, sO_Gone))
- StaticANIObject_hide(g_vars->scene04_mamasha);
+ if (g_fullpipe->getObjectState(sO_BigMumsy) != g_fullpipe->getObjectEnumState(sO_BigMumsy, sO_Gone))
+ g_vars->scene04_mamasha->hide();
+
+ g_vars->scene04_speaker = sc->getStaticANIObject1ById(ANI_SPEAKER_4, -1);
+ g_vars->scene04_speaker->_callback2 = scene04_callback;
+ g_vars->scene04_speaker->startAnim(MV_SPK4_PLAY, 0, -1);
- g_vars->scene04_speaker = Scene_getStaticANIObject1ById(sc, ANI_SPEAKER_4, -1);
- g_vars->scene04_speaker->callback2 = (void (__thiscall *)(int *))scene04_callback;
- StaticANIObject_startAnim(g_vars->scene04_speaker, MV_SPK4_PLAY, 0, -1);
g_vars->scene04_var16 = 0;
g_vars->scene04_var17 = 0;
- initArcade("SC_4");
-#endif
+
+ g_fullpipe->initArcadeKeys("SC_4");
}
} // End of namespace Fullpipe