[Scummvm-cvs-logs] scummvm master -> 91713e695e22dafe1baeed0348b10e84c389e95d

sev- sev at scummvm.org
Thu Nov 21 16:45:56 CET 2013


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
91713e695e FULLPIPE: More work on scene04


Commit: 91713e695e22dafe1baeed0348b10e84c389e95d
    https://github.com/scummvm/scummvm/commit/91713e695e22dafe1baeed0348b10e84c389e95d
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2013-11-21T07:45:15-08:00

Commit Message:
FULLPIPE: More work on scene04

Changed paths:
    engines/fullpipe/constants.h
    engines/fullpipe/fullpipe.h
    engines/fullpipe/init.cpp
    engines/fullpipe/interaction.cpp
    engines/fullpipe/interaction.h
    engines/fullpipe/objectnames.h
    engines/fullpipe/scenes.cpp
    engines/fullpipe/scenes.h
    engines/fullpipe/scenes/scene04.cpp



diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index 714188b..e4576a1 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 e542599..63dde50 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 fb60a4c..49bf72a 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 80cbce9..b513d2b 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 f968cca..456b354 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 015df72..241e31b 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 9f27101..7252b44 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 180d823..81a9be5 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 291111a..c43bfe3 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






More information about the Scummvm-git-logs mailing list