[Scummvm-cvs-logs] scummvm master -> 4eec1a491c31ff0c98457d5f248b583b52964b38

sev- sev at scummvm.org
Mon Dec 23 23:15:12 CET 2013


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

Summary:
51a83e8be1 FULLPIPE: Implement scene11_initScene()
4eec1a491c FULLPIPE: Implement scene11_setupMusic()


Commit: 51a83e8be1f9ca9ea755cfe8b253b0aa0b9d5769
    https://github.com/scummvm/scummvm/commit/51a83e8be1f9ca9ea755cfe8b253b0aa0b9d5769
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2013-12-23T14:14:37-08:00

Commit Message:
FULLPIPE: Implement scene11_initScene()

Changed paths:
  A engines/fullpipe/scenes/scene11.cpp
    engines/fullpipe/constants.h
    engines/fullpipe/fullpipe.cpp
    engines/fullpipe/init.cpp
    engines/fullpipe/modal.cpp
    engines/fullpipe/module.mk
    engines/fullpipe/motion.cpp
    engines/fullpipe/motion.h
    engines/fullpipe/objectnames.h
    engines/fullpipe/scenes.cpp
    engines/fullpipe/scenes.h
    engines/fullpipe/scenes/scene01.cpp
    engines/fullpipe/scenes/scene02.cpp
    engines/fullpipe/scenes/scene03.cpp
    engines/fullpipe/scenes/scene04.cpp
    engines/fullpipe/scenes/scene05.cpp
    engines/fullpipe/scenes/scene06.cpp
    engines/fullpipe/scenes/scene07.cpp
    engines/fullpipe/scenes/scene08.cpp
    engines/fullpipe/scenes/scene10.cpp
    engines/fullpipe/scenes/sceneDbg.cpp
    engines/fullpipe/scenes/sceneIntro.cpp



diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index 0b53e27..63ab988 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -489,6 +489,17 @@ namespace Fullpipe {
 #define rMV_MAN_LOOKUP 4775
 #define rMV_KZW_GOR 566
 
+// Scene 11
+#define ANI_BOOTS_11 2704
+#define ANI_KACHELI 1094
+#define ANI_MAN11 1108
+#define ANI_SWINGER 1113
+#define PIC_SC11_HINT 5170
+#define ST_KCH_STATIC 1122
+#define ST_SWR_SIT 1147
+#define ST_SWR_SITBALD 1153
+#define ST_SWR_STAND3 3014
+
 } // End of namespace Fullpipe
 
 #endif /* FULLPIPE_CONSTANTS_H */
diff --git a/engines/fullpipe/fullpipe.cpp b/engines/fullpipe/fullpipe.cpp
index d02ce47..a0348a9 100644
--- a/engines/fullpipe/fullpipe.cpp
+++ b/engines/fullpipe/fullpipe.cpp
@@ -33,9 +33,9 @@
 #include "fullpipe/behavior.h"
 #include "fullpipe/modal.h"
 #include "fullpipe/input.h"
+#include "fullpipe/motion.h"
 #include "fullpipe/scenes.h"
 #include "fullpipe/floaters.h"
-#include "fullpipe/motion.h"
 #include "fullpipe/console.h"
 
 namespace Fullpipe {
diff --git a/engines/fullpipe/init.cpp b/engines/fullpipe/init.cpp
index beac854..8526c21 100644
--- a/engines/fullpipe/init.cpp
+++ b/engines/fullpipe/init.cpp
@@ -59,7 +59,7 @@ void FullpipeEngine::initObjectStates() {
 	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));
+	setObjectState(sO_Swingie, getObjectEnumState(sO_Swingie, sO_IsSwinging));
 	setObjectState(sO_DudeJumped, getObjectEnumState(sO_DudeJumped, sO_No));
 	setObjectState(sO_Bridge, getObjectEnumState(sO_Bridge, sO_Convoluted));
 	setObjectState(sO_Guardian, getObjectEnumState(sO_Guardian, sO_OnRight));
@@ -73,7 +73,7 @@ void FullpipeEngine::initObjectStates() {
 	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));
+	setObjectState(sO_Girl, getObjectEnumState(sO_Girl, sO_IsSwinging));
 	setObjectState(sO_Sugar, getObjectEnumState(sO_Sugar, sO_Present));
 	setObjectState(sO_Janitors, getObjectEnumState(sO_Janitors, sO_Together));
 	setObjectState(sO_Bag_22, getObjectEnumState(sO_Bag_22, sO_NotFallen));
diff --git a/engines/fullpipe/modal.cpp b/engines/fullpipe/modal.cpp
index b98f731..516d761 100644
--- a/engines/fullpipe/modal.cpp
+++ b/engines/fullpipe/modal.cpp
@@ -24,6 +24,7 @@
 #include "fullpipe/modal.h"
 #include "fullpipe/messages.h"
 #include "fullpipe/constants.h"
+#include "fullpipe/motion.h"
 #include "fullpipe/scenes.h"
 #include "fullpipe/gameloader.h"
 
diff --git a/engines/fullpipe/module.mk b/engines/fullpipe/module.mk
index 465a013..230cfe6 100644
--- a/engines/fullpipe/module.mk
+++ b/engines/fullpipe/module.mk
@@ -33,6 +33,7 @@ MODULE_OBJS = \
 	scenes/scene07.o \
 	scenes/scene08.o \
 	scenes/scene10.o \
+	scenes/scene11.o \
 	scenes/sceneDbg.o \
 	scenes/sceneIntro.o
 
diff --git a/engines/fullpipe/motion.cpp b/engines/fullpipe/motion.cpp
index 56ef478..f680492 100644
--- a/engines/fullpipe/motion.cpp
+++ b/engines/fullpipe/motion.cpp
@@ -339,6 +339,10 @@ MctlConnectionPoint *MctlCompound::findClosestConnectionPoint(int ox, int oy, in
 	return 0;
 }
 
+void MctlCompound::replaceNodeX(int from, int to) {
+	warning("STUB: MctlCompound::replaceNodeX()");
+}
+
 MctlConnectionPoint::MctlConnectionPoint() {
 	_connectionX = 0;
 	_connectionY = 0;
diff --git a/engines/fullpipe/motion.h b/engines/fullpipe/motion.h
index a4d68e1..24f047d 100644
--- a/engines/fullpipe/motion.h
+++ b/engines/fullpipe/motion.h
@@ -114,6 +114,7 @@ public:
 
 	void initMovGraph2();
 	MctlConnectionPoint *findClosestConnectionPoint(int ox, int oy, int destIndex, int connectionX, int connectionY, int sourceIndex, int *minDistancePtr);
+	void replaceNodeX(int from, int to);
 };
 
 struct MGMSubItem {
diff --git a/engines/fullpipe/objectnames.h b/engines/fullpipe/objectnames.h
index 81385a5..b4564d4 100644
--- a/engines/fullpipe/objectnames.h
+++ b/engines/fullpipe/objectnames.h
@@ -97,8 +97,8 @@ namespace Fullpipe {
 #define sO_IsPlaying "\xc8\xe3\xf0\xe0\xe5\xf2"	// "Играет"
 #define sO_Tub "\xca\xe0\xe4\xea\xe0"	// "Кадка"
 #define sO_Cactus "\xca\xe0\xea\xf2\xf3\xf1"	// "Кактус"
-#define sO_SwingingWithBoot "\xca\xe0\xf2\xe0\xe5\xf2\xf1\xff \xf1 \xe1\xee\xf2\xe8\xed\xea\xee\xec"	// "Катается с ботинком"
-#define sO_Swinging "\xca\xe0\xf2\xe0\xe5\xf2\xf1\xff"	// "Катается"
+#define sO_IsSwingingWithBoot "\xca\xe0\xf2\xe0\xe5\xf2\xf1\xff \xf1 \xe1\xee\xf2\xe8\xed\xea\xee\xec"	// "Катается с ботинком"
+#define sO_IsSwinging "\xca\xe0\xf2\xe0\xe5\xf2\xf1\xff"	// "Катается"
 #define sO_Swingie "\xca\xe0\xf7\xe5\xeb\xe5\xed\xff"	// "Качеленя"
 #define sO_LiftButtons "\xca\xed\xee\xef\xea\xe8 \xeb\xe8\xf4\xf2\xe0"	// "Кнопки лифта"
 #define sO_Carpet_35 "\xca\xee\xe2\xf0\xe8\xea_35"	// "Коврик_35"
@@ -197,7 +197,7 @@ namespace Fullpipe {
 #define sO_Sugar "\xd1\xe0\xf5\xe0\xf0\xee\xea"	// "Сахарок"
 #define sO_Convoluted "\xd1\xe2\xe5\xf0\xed\xf3\xf2"	// "Свернут"
 #define sO_IsFree "\xd1\xe2\xee\xe1\xee\xe4\xed\xe0"	// "Свободна"
-#define sO_Sitting "\xd1\xe8\xe4\xe8\xf2"	// "Сидит"
+#define sO_IsSitting "\xd1\xe8\xe4\xe8\xf2"	// "Сидит"
 #define sO_Laughing "\xd1\xec\xe5\xe5\xf2\xf1\xff"	// "Смеется"
 #define sO_WithEveryone "\xd1\xee \xe2\xf1\xe5\xec\xe8"	// "Со всеми"
 #define sO_WithMop "\xd1\xee \xf8\xe2\xe0\xe1\xf0\xee\xe9"	// "Со шваброй"
@@ -205,8 +205,8 @@ namespace Fullpipe {
 #define sO_WithBrush "\xd1\xee \xf9\xe5\xf2\xea\xee\xe9"	// "Со щеткой"
 #define sO_IsSleeping "\xd1\xef\xe8\xf2"	// "Спит"
 #define sO_OnRight "\xd1\xef\xf0\xe0\xe2\xe0"	// "Справа"
-#define sO_StandsInBoots "\xd1\xf2\xee\xe8\xf2 \xe2 \xe1\xee\xf2\xe8\xed\xea\xe0\xf5"	// "Стоит в ботинках"
-#define sO_StandsInCorner "\xd1\xf2\xee\xe8\xf2 \xe2 \xf3\xe3\xeb\xf3"	// "Стоит в углу"
+#define sO_IsStandingInBoots "\xd1\xf2\xee\xe8\xf2 \xe2 \xe1\xee\xf2\xe8\xed\xea\xe0\xf5"	// "Стоит в ботинках"
+#define sO_IsStandingInCorner "\xd1\xf2\xee\xe8\xf2 \xe2 \xf3\xe3\xeb\xf3"	// "Стоит в углу"
 #define sO_Guardian "\xd1\xf2\xee\xf0\xee\xe6"	// "Сторож"
 #define sO_Guard_1 "\xd1\xf2\xf0\xe0\xe6 1"	// "Страж 1"
 #define sO_Gurad_2 "\xd1\xf2\xf0\xe0\xe6 2"	// "Страж 2"
diff --git a/engines/fullpipe/scenes.cpp b/engines/fullpipe/scenes.cpp
index f526731..341913b 100644
--- a/engines/fullpipe/scenes.cpp
+++ b/engines/fullpipe/scenes.cpp
@@ -162,6 +162,30 @@ Vars::Vars() {
 	scene10_ladder = 0;
 	scene10_hasGum = 0;
 
+	scene11_swingie = 0;
+	scene11_boots = 0;
+	scene11_dudeOnSwing = 0;
+	scene11_hint = 0;
+	scene11_var02 = 0;
+	scene11_var03 = 0;
+	scene11_var04 = 0;
+	scene11_var05 = 0;
+	scene11_var06 = 0;
+	scene11_var07 = 0;
+	scene11_var08 = 1.0;
+	scene11_var09 = 1.0;
+	scene11_var10 = 1.0;
+	scene11_var11 = 1.0;
+	scene11_var12 = 0.0;
+	scene11_var13 = 0;
+	scene11_var14 = 0;
+	scene11_var15 = 0;
+	scene11_var16 = 0;
+	scene11_var17 = 0;
+	scene11_var18 = 0;
+	scene11_var19 = 0;
+	scene11_var20 = 0;
+
 	selector = 0;
 }
 
diff --git a/engines/fullpipe/scenes.h b/engines/fullpipe/scenes.h
index bb68e1c..d492a6a 100644
--- a/engines/fullpipe/scenes.h
+++ b/engines/fullpipe/scenes.h
@@ -28,6 +28,7 @@ namespace Fullpipe {
 struct BehaviorEntryInfo;
 class StaticANIObject;
 class MctlLadder;
+class MGM;
 
 int defaultUpdateCursor();
 
@@ -212,6 +213,31 @@ public:
 	PictureObject *scene10_ladder;
 	int scene10_hasGum;
 
+	StaticANIObject *scene11_swingie;
+	StaticANIObject *scene11_boots;
+	StaticANIObject *scene11_dudeOnSwing;
+	PictureObject *scene11_hint;
+	MGM scene11_var01;
+	int scene11_var02;
+	int scene11_var03;
+	int scene11_var04;
+	int scene11_var05;
+	int scene11_var06;
+	int scene11_var07;
+	double scene11_var08;
+	double scene11_var09;
+	double scene11_var10;
+	double scene11_var11;
+	double scene11_var12;
+	int scene11_var13;
+	int scene11_var14;
+	int scene11_var15;
+	int scene11_var16;
+	int scene11_var17;
+	int scene11_var18;
+	int scene11_var19;
+	int scene11_var20;
+
 	PictureObject *selector;
 };
 
diff --git a/engines/fullpipe/scenes/scene01.cpp b/engines/fullpipe/scenes/scene01.cpp
index c6f7ba3..6c8f26d 100644
--- a/engines/fullpipe/scenes/scene01.cpp
+++ b/engines/fullpipe/scenes/scene01.cpp
@@ -26,6 +26,7 @@
 #include "fullpipe/constants.h"
 
 #include "fullpipe/gameloader.h"
+#include "fullpipe/motion.h"
 #include "fullpipe/scenes.h"
 #include "fullpipe/statics.h"
 
diff --git a/engines/fullpipe/scenes/scene02.cpp b/engines/fullpipe/scenes/scene02.cpp
index 845a53e..95cf1df 100644
--- a/engines/fullpipe/scenes/scene02.cpp
+++ b/engines/fullpipe/scenes/scene02.cpp
@@ -26,6 +26,7 @@
 #include "fullpipe/constants.h"
 
 #include "fullpipe/gameloader.h"
+#include "fullpipe/motion.h"
 #include "fullpipe/scenes.h"
 #include "fullpipe/statics.h"
 
diff --git a/engines/fullpipe/scenes/scene03.cpp b/engines/fullpipe/scenes/scene03.cpp
index 4d4f057..40e70e2 100644
--- a/engines/fullpipe/scenes/scene03.cpp
+++ b/engines/fullpipe/scenes/scene03.cpp
@@ -26,6 +26,7 @@
 #include "fullpipe/constants.h"
 
 #include "fullpipe/gameloader.h"
+#include "fullpipe/motion.h"
 #include "fullpipe/scenes.h"
 #include "fullpipe/statics.h"
 
diff --git a/engines/fullpipe/scenes/scene04.cpp b/engines/fullpipe/scenes/scene04.cpp
index 3218324..fa9f4ce 100644
--- a/engines/fullpipe/scenes/scene04.cpp
+++ b/engines/fullpipe/scenes/scene04.cpp
@@ -26,14 +26,14 @@
 #include "fullpipe/constants.h"
 #include "fullpipe/utils.h"
 #include "fullpipe/gfx.h"
-#include "fullpipe/scenes.h"
 #include "fullpipe/messages.h"
+#include "fullpipe/motion.h"
+#include "fullpipe/scenes.h"
 #include "fullpipe/statics.h"
 #include "fullpipe/scene.h"
 #include "fullpipe/interaction.h"
 #include "fullpipe/gameloader.h"
 #include "fullpipe/behavior.h"
-#include "fullpipe/motion.h"
 
 namespace Fullpipe {
 
diff --git a/engines/fullpipe/scenes/scene05.cpp b/engines/fullpipe/scenes/scene05.cpp
index 20443ed..c6e21da 100644
--- a/engines/fullpipe/scenes/scene05.cpp
+++ b/engines/fullpipe/scenes/scene05.cpp
@@ -27,6 +27,7 @@
 #include "fullpipe/constants.h"
 #include "fullpipe/statics.h"
 #include "fullpipe/scene.h"
+#include "fullpipe/motion.h"
 #include "fullpipe/scenes.h"
 #include "fullpipe/messages.h"
 #include "fullpipe/floaters.h"
diff --git a/engines/fullpipe/scenes/scene06.cpp b/engines/fullpipe/scenes/scene06.cpp
index 2b7678b..c352d27 100644
--- a/engines/fullpipe/scenes/scene06.cpp
+++ b/engines/fullpipe/scenes/scene06.cpp
@@ -26,13 +26,13 @@
 #include "fullpipe/objectnames.h"
 #include "fullpipe/constants.h"
 #include "fullpipe/gfx.h"
+#include "fullpipe/motion.h"
 #include "fullpipe/scenes.h"
 #include "fullpipe/statics.h"
 #include "fullpipe/scene.h"
 #include "fullpipe/messages.h"
 #include "fullpipe/gameloader.h"
 #include "fullpipe/behavior.h"
-#include "fullpipe/motion.h"
 #include "fullpipe/interaction.h"
 
 namespace Fullpipe {
diff --git a/engines/fullpipe/scenes/scene07.cpp b/engines/fullpipe/scenes/scene07.cpp
index ba41219..207189d 100644
--- a/engines/fullpipe/scenes/scene07.cpp
+++ b/engines/fullpipe/scenes/scene07.cpp
@@ -25,6 +25,7 @@
 #include "fullpipe/objects.h"
 #include "fullpipe/objectnames.h"
 #include "fullpipe/constants.h"
+#include "fullpipe/motion.h"
 #include "fullpipe/scenes.h"
 #include "fullpipe/scene.h"
 #include "fullpipe/statics.h"
diff --git a/engines/fullpipe/scenes/scene08.cpp b/engines/fullpipe/scenes/scene08.cpp
index 2764861..ada63ef 100644
--- a/engines/fullpipe/scenes/scene08.cpp
+++ b/engines/fullpipe/scenes/scene08.cpp
@@ -25,11 +25,11 @@
 #include "fullpipe/objects.h"
 #include "fullpipe/objectnames.h"
 #include "fullpipe/constants.h"
+#include "fullpipe/motion.h"
 #include "fullpipe/scenes.h"
 #include "fullpipe/scene.h"
 #include "fullpipe/statics.h"
 #include "fullpipe/floaters.h"
-#include "fullpipe/motion.h"
 #include "fullpipe/gameloader.h"
 #include "fullpipe/behavior.h"
 #include "fullpipe/interaction.h"
diff --git a/engines/fullpipe/scenes/scene10.cpp b/engines/fullpipe/scenes/scene10.cpp
index 78f3fcd..f8d16b2 100644
--- a/engines/fullpipe/scenes/scene10.cpp
+++ b/engines/fullpipe/scenes/scene10.cpp
@@ -26,12 +26,12 @@
 #include "fullpipe/constants.h"
 
 #include "fullpipe/gameloader.h"
+#include "fullpipe/motion.h"
 #include "fullpipe/scenes.h"
 #include "fullpipe/statics.h"
 
 #include "fullpipe/behavior.h"
 #include "fullpipe/interaction.h"
-#include "fullpipe/motion.h"
 
 namespace Fullpipe {
 
diff --git a/engines/fullpipe/scenes/scene11.cpp b/engines/fullpipe/scenes/scene11.cpp
new file mode 100644
index 0000000..7ac92c7
--- /dev/null
+++ b/engines/fullpipe/scenes/scene11.cpp
@@ -0,0 +1,139 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "fullpipe/fullpipe.h"
+
+#include "fullpipe/objectnames.h"
+#include "fullpipe/constants.h"
+
+#include "fullpipe/gameloader.h"
+#include "fullpipe/motion.h"
+#include "fullpipe/scenes.h"
+#include "fullpipe/statics.h"
+
+#include "fullpipe/interaction.h"
+#include "fullpipe/behavior.h"
+
+
+namespace Fullpipe {
+
+void scene11_dudeSwingCallback(int *arg) {
+	warning("STUB: scene11_dudeSwingCallback()");
+}
+
+void scene11_initScene(Scene *sc) {
+	g_vars->scene11_swingie = sc->getStaticANIObject1ById(ANI_SWINGER, -1);
+	g_vars->scene11_boots = sc->getStaticANIObject1ById(ANI_BOOTS_11, -1);
+	g_vars->scene11_var01.clear();
+	g_vars->scene11_dudeOnSwing = sc->getStaticANIObject1ById(ANI_MAN11, -1);
+	g_vars->scene11_dudeOnSwing->_callback2 = scene11_dudeSwingCallback;
+	g_vars->scene11_dudeOnSwing = sc->getStaticANIObject1ById(ANI_KACHELI, -1);
+	g_vars->scene11_dudeOnSwing->_callback2 = scene11_dudeSwingCallback;
+	g_vars->scene11_hint = sc->getPictureObjectById(PIC_SC11_HINT, 0);
+	g_vars->scene11_hint->_flags &= 0xFFFB;
+
+	g_vars->scene11_var02 = 0;
+	g_vars->scene11_var03 = 0;
+	g_vars->scene11_var04 = 0;
+	g_vars->scene11_var05 = 0;
+	g_vars->scene11_var06 = 0;
+	g_vars->scene11_var07 = 0;
+	g_vars->scene11_var08 = 1.0;
+	g_vars->scene11_var09 = 1.0;
+	g_vars->scene11_var10 = 1.0;
+	g_vars->scene11_var11 = 1.0;
+	g_vars->scene11_var12 = 1.9849218750000000;
+	g_vars->scene11_var13 = 0;
+	g_vars->scene11_var14 = 0;
+	g_vars->scene11_var15 = 0;
+	g_vars->scene11_var16 = 0;
+	g_vars->scene11_var17 = 0;
+	g_vars->scene11_var18 = 0;
+
+	Scene *oldsc = g_fp->_currentScene;
+
+	g_fp->_currentScene = sc;
+
+	int swingie = g_fp->getObjectState(sO_Swingie);
+
+	if (swingie == g_fp->getObjectEnumState(sO_Swingie, sO_IsSwinging)
+		|| swingie == g_fp->getObjectEnumState(sO_Swingie, sO_IsSwingingWithBoot)) {
+		g_vars->scene11_var19 = 1;
+		g_vars->scene11_var20 = 0;
+
+		getCurrSceneSc2MotionController()->enableLinks(sO_CloseThing1, 1);
+		getCurrSceneSc2MotionController()->enableLinks(sO_CloseThing2, 1);
+		getCurrSceneSc2MotionController()->enableLinks(sO_CloseThing3, 0);
+
+		((MctlCompound *)getCurrSceneSc2MotionController())->replaceNodeX(805, 905);
+
+		getSc2MctlCompoundBySceneId(sc->_sceneId)->replaceNodeX(303, 353);
+	} else if (swingie == g_fp->getObjectEnumState(sO_Swingie, sO_IsStandingInBoots)
+			   || swingie == g_fp->getObjectEnumState(sO_Swingie, sO_IsStandingInCorner)) {
+		g_vars->scene11_var19 = 0;
+		g_vars->scene11_var20 = 1;
+
+		g_vars->scene11_swingie->changeStatics2(ST_SWR_STAND3);
+
+		getCurrSceneSc2MotionController()->enableLinks(sO_CloseThing1, 0);
+		getCurrSceneSc2MotionController()->enableLinks(sO_CloseThing2, 1);
+		getCurrSceneSc2MotionController()->enableLinks(sO_CloseThing3, 0);
+
+		((MctlCompound *)getCurrSceneSc2MotionController())->replaceNodeX(905, 805);
+	} else {
+		g_vars->scene11_var19 = 0;
+		g_vars->scene11_var20 = 0;
+
+		if (swingie == g_fp->getObjectEnumState(sO_Swingie, sO_IsSitting)) {
+			g_vars->scene11_swingie->_movement = 0;
+			g_vars->scene11_swingie->_statics = g_vars->scene11_swingie->getStaticsById(ST_SWR_SIT);
+			g_vars->scene11_swingie->setOXY(144, 389);
+
+			getCurrSceneSc2MotionController()->enableLinks(sO_CloseThing1, 0);
+			getCurrSceneSc2MotionController()->enableLinks(sO_CloseThing2, 0);
+			getCurrSceneSc2MotionController()->enableLinks(sO_CloseThing3, 1);
+		} else {
+			g_vars->scene11_swingie->_movement = 0;
+			g_vars->scene11_swingie->_statics = g_vars->scene11_swingie->getStaticsById(ST_SWR_SITBALD);
+			g_vars->scene11_swingie->setOXY(144, 415);
+
+			getCurrSceneSc2MotionController()->enableLinks(sO_CloseThing1, 0);
+			getCurrSceneSc2MotionController()->enableLinks(sO_CloseThing2, 0);
+			getCurrSceneSc2MotionController()->enableLinks(sO_CloseThing3, 1);
+		}
+	}
+
+	if (!g_vars->scene11_var19) {
+		g_vars->scene11_dudeOnSwing->changeStatics2(ST_KCH_STATIC);
+		g_vars->scene11_dudeOnSwing->setOXY(691, 371);
+		g_vars->scene11_dudeOnSwing->_priority = 20;
+
+		g_vars->scene11_dudeOnSwing->_flags |= 4;
+	}
+
+	g_fp->_currentScene = oldsc;
+
+	g_fp->initArcadeKeys("SC_11");
+	g_fp->setArcadeOverlay(PIC_CSR_ARCADE5);
+}
+
+} // End of namespace Fullpipe
diff --git a/engines/fullpipe/scenes/sceneDbg.cpp b/engines/fullpipe/scenes/sceneDbg.cpp
index 518ef0d..4a37519 100644
--- a/engines/fullpipe/scenes/sceneDbg.cpp
+++ b/engines/fullpipe/scenes/sceneDbg.cpp
@@ -25,6 +25,7 @@
 #include "fullpipe/constants.h"
 
 #include "fullpipe/gameloader.h"
+#include "fullpipe/motion.h"
 #include "fullpipe/scenes.h"
 #include "fullpipe/statics.h"
 #include "fullpipe/input.h"
diff --git a/engines/fullpipe/scenes/sceneIntro.cpp b/engines/fullpipe/scenes/sceneIntro.cpp
index 368ca43..c9f19f3 100644
--- a/engines/fullpipe/scenes/sceneIntro.cpp
+++ b/engines/fullpipe/scenes/sceneIntro.cpp
@@ -24,6 +24,7 @@
 
 #include "fullpipe/constants.h"
 #include "fullpipe/gameloader.h"
+#include "fullpipe/motion.h"
 #include "fullpipe/scenes.h"
 #include "fullpipe/modal.h"
 #include "fullpipe/statics.h"


Commit: 4eec1a491c31ff0c98457d5f248b583b52964b38
    https://github.com/scummvm/scummvm/commit/4eec1a491c31ff0c98457d5f248b583b52964b38
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2013-12-23T14:14:37-08:00

Commit Message:
FULLPIPE: Implement scene11_setupMusic()

Changed paths:
    engines/fullpipe/init.cpp
    engines/fullpipe/objectnames.h
    engines/fullpipe/scenes.cpp
    engines/fullpipe/scenes/scene11.cpp



diff --git a/engines/fullpipe/init.cpp b/engines/fullpipe/init.cpp
index 8526c21..4cf5fbe 100644
--- a/engines/fullpipe/init.cpp
+++ b/engines/fullpipe/init.cpp
@@ -60,7 +60,7 @@ void FullpipeEngine::initObjectStates() {
 	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_IsSwinging));
-	setObjectState(sO_DudeJumped, getObjectEnumState(sO_DudeJumped, sO_No));
+	setObjectState(sO_DudeHasJumped, getObjectEnumState(sO_DudeHasJumped, sO_No));
 	setObjectState(sO_Bridge, getObjectEnumState(sO_Bridge, sO_Convoluted));
 	setObjectState(sO_Guardian, getObjectEnumState(sO_Guardian, sO_OnRight));
 	setObjectState(sO_Grandma, getObjectEnumState(sO_Grandma, sO_In_14));
diff --git a/engines/fullpipe/objectnames.h b/engines/fullpipe/objectnames.h
index b4564d4..07526d0 100644
--- a/engines/fullpipe/objectnames.h
+++ b/engines/fullpipe/objectnames.h
@@ -78,7 +78,7 @@ namespace Fullpipe {
 #define sO_Grandpa "\xc4\xe5\xe4\xf3\xf8\xea\xe0"	// "Дедушка"
 #define sO_Plank_25 "\xc4\xee\xf1\xea\xe0_25"	// "Доска_25"
 #define sO_Plank_34 "\xc4\xee\xf1\xea\xe0_34"	// "Доска_34"
-#define sO_DudeJumped "\xc4\xff\xe4\xff \xef\xf0\xfb\xe3\xe0\xeb"	// "Дядя прыгал"
+#define sO_DudeHasJumped "\xc4\xff\xe4\xff \xef\xf0\xfb\xe3\xe0\xeb"	// "Дядя прыгал"
 #define sO_Dude "\xc4\xff\xe4\xff"	// "Дядя"
 #define sO_GuvTheDrawer "\xc4\xff\xe4\xff-\xff\xf9\xe8\xea"	// "Дядя-ящик"
 #define sO_DudeSwinged "\xc4\xff\xe4\xff_\xea\xe0\xf2\xe0\xeb\xf1\xff"	// "Дядя_катался"
diff --git a/engines/fullpipe/scenes.cpp b/engines/fullpipe/scenes.cpp
index 341913b..921cdfd 100644
--- a/engines/fullpipe/scenes.cpp
+++ b/engines/fullpipe/scenes.cpp
@@ -427,7 +427,7 @@ bool FullpipeEngine::sceneSwitcher(EntranceInfo *entrance) {
 		scene->initObjectCursors("SC_11");
 		setSceneMusicParameters(sceneVar);
 		insertMessageHandler(sceneHandler11, 2, 2);
-		scene11_sub_41A980();
+		scene11_setupMusic();
 		_updateCursorCallback = scene11_updateCursor;
 		break;
 
diff --git a/engines/fullpipe/scenes/scene11.cpp b/engines/fullpipe/scenes/scene11.cpp
index 7ac92c7..d38bc9c 100644
--- a/engines/fullpipe/scenes/scene11.cpp
+++ b/engines/fullpipe/scenes/scene11.cpp
@@ -40,6 +40,11 @@ void scene11_dudeSwingCallback(int *arg) {
 	warning("STUB: scene11_dudeSwingCallback()");
 }
 
+void scene11_setupMusic() {
+	if (g_fp->getObjectState(sO_DudeHasJumped) == g_fp->getObjectEnumState(sO_DudeHasJumped, sO_Yes))
+		g_fp->playTrack(g_fp->getGameLoaderGameVar()->getSubVarByName("SC_11"), "MUSIC2", 1);
+}
+
 void scene11_initScene(Scene *sc) {
 	g_vars->scene11_swingie = sc->getStaticANIObject1ById(ANI_SWINGER, -1);
 	g_vars->scene11_boots = sc->getStaticANIObject1ById(ANI_BOOTS_11, -1);






More information about the Scummvm-git-logs mailing list