[Scummvm-cvs-logs] scummvm master -> 6c7c8215e30f4e67e2dbe0922e843201f055cfa0

sev- sev at scummvm.org
Sun Nov 3 23:30:35 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:
6c7c8215e3 FULLPIPE: Started implementing scene 3


Commit: 6c7c8215e30f4e67e2dbe0922e843201f055cfa0
    https://github.com/scummvm/scummvm/commit/6c7c8215e30f4e67e2dbe0922e843201f055cfa0
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2013-11-03T14:30:00-08:00

Commit Message:
FULLPIPE: Started implementing scene 3

Changed paths:
    engines/fullpipe/behavior.cpp
    engines/fullpipe/behavior.h
    engines/fullpipe/constants.h
    engines/fullpipe/fullpipe.h
    engines/fullpipe/input.cpp
    engines/fullpipe/lift.cpp
    engines/fullpipe/scenes.cpp
    engines/fullpipe/scenes.h



diff --git a/engines/fullpipe/behavior.cpp b/engines/fullpipe/behavior.cpp
index c1fe835..c7b526d 100644
--- a/engines/fullpipe/behavior.cpp
+++ b/engines/fullpipe/behavior.cpp
@@ -179,6 +179,12 @@ void BehaviorManager::updateStaticAniBehavior(StaticANIObject *ani, int delay, B
 	}
 }
 
+bool BehaviorManager::setBehaviorEnabled(StaticANIObject *obj, int aniId, int quId, int flag) {
+	warning("STUB: BehaviorManager::setBehaviorEnabled()");
+
+	return true;
+}
+
 void BehaviorInfo::clear() {
 	_ani = 0;
 	_staticsId = 0;
diff --git a/engines/fullpipe/behavior.h b/engines/fullpipe/behavior.h
index 83a548f..4fd1454 100644
--- a/engines/fullpipe/behavior.h
+++ b/engines/fullpipe/behavior.h
@@ -77,6 +77,8 @@ class BehaviorManager : public CObject {
 	void updateBehaviors();
 	void updateBehavior(BehaviorInfo *behaviorInfo, BehaviorEntry *entry);
 	void updateStaticAniBehavior(StaticANIObject *ani, int delay, BehaviorEntry *beh);
+
+	bool setBehaviorEnabled(StaticANIObject *obj, int aniId, int quId, int flag);
 };
 
 } // End of namespace Fullpipe
diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index 2cf7425..c0034e4 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -26,6 +26,8 @@
 namespace Fullpipe {
 
 #define ANI_BOOT_1 4231
+#define ANI_DOMINO_3 2732
+#define ANI_EGGEATER 334
 #define ANI_IN1MAN 5110
 #define ANI_INV_MAP 5321
 #define ANI_LIFTBUTTON 2751
@@ -98,11 +100,17 @@ namespace Fullpipe {
 #define PIC_SC1_LADDER 1091
 #define PIC_SC1_OSK 1018
 #define PIC_SC1_OSK2 2932
+#define PIC_SC3_DOMIN 5182
 #define PIC_SCD_SEL 734
+#define QU_EGTR_MD2_SHOW 4698
+#define QU_EGTR_MD1_SHOW 4697
+#define QU_EGTR_SLIMSHOW 4883
 #define QU_IN2_DO 5144
 #define QU_INTR_FINISH 5138
 #define QU_INTR_GETUPMAN 5136
 #define QU_INTR_STARTINTRO 5133
+#define QU_SC3_ENTERLIFT 2779
+#define QU_SC3_EXITLIFT 2808
 #define SC_1 301
 #define SC_10 653
 #define SC_11 654
@@ -158,6 +166,9 @@ namespace Fullpipe {
 #define SND_CMN_031 3516
 #define SND_CMN_070 5199
 #define SND_INTR_019 5220
+#define ST_EGTR_MID1 2863
+#define ST_EGTR_MID2 2869
+#define ST_EGTR_SLIM 336
 #define ST_IN1MAN_SLEEP 5112
 #define ST_LBN_0N 2832
 #define ST_LBN_0P 2833
diff --git a/engines/fullpipe/fullpipe.h b/engines/fullpipe/fullpipe.h
index 22e4f1d..7f1c9ba 100644
--- a/engines/fullpipe/fullpipe.h
+++ b/engines/fullpipe/fullpipe.h
@@ -210,7 +210,7 @@ public:
 	int _objectIdAtCursor;
 
 	void setCursor(int id);
-	void updateCursorsCommon();
+	void updateCursorCommon();
 
 	int getObjectState(const char *objname);
 	void setObjectState(const char *name, int state);
@@ -231,6 +231,7 @@ public:
 	void getAllInventory();
 
 	int lift_getButtonIdP(int objid);
+	void lift_sub5(Scene *sc, int qu1, int qu2);
 
 public:
 
diff --git a/engines/fullpipe/input.cpp b/engines/fullpipe/input.cpp
index ee826fd..e98920c 100644
--- a/engines/fullpipe/input.cpp
+++ b/engines/fullpipe/input.cpp
@@ -211,7 +211,7 @@ void FullpipeEngine::winArcade() {
 
 }
 
-void FullpipeEngine::updateCursorsCommon() {
+void FullpipeEngine::updateCursorCommon() {
 	GameObject *ani = _currentScene->getStaticANIObjectAtPos(_mouseVirtX, _mouseVirtY);
 
 	GameObject *pic = _currentScene->getPictureObjectAtPos(_mouseVirtX, _mouseVirtY);
diff --git a/engines/fullpipe/lift.cpp b/engines/fullpipe/lift.cpp
index 25dd261..8fa6cf7 100644
--- a/engines/fullpipe/lift.cpp
+++ b/engines/fullpipe/lift.cpp
@@ -64,4 +64,8 @@ int FullpipeEngine::lift_getButtonIdP(int objid) {
 	}
 }
 
+void FullpipeEngine::lift_sub5(Scene *sc, int qu1, int qu2) {
+	warning("STUB: FullpipeEngine::lift_sub5()");
+}
+
 } // End of namespace Fullpipe
diff --git a/engines/fullpipe/scenes.cpp b/engines/fullpipe/scenes.cpp
index 1793ffd..fdc28e8 100644
--- a/engines/fullpipe/scenes.cpp
+++ b/engines/fullpipe/scenes.cpp
@@ -53,6 +53,11 @@ void scene01_fixEntrance();
 void scene01_initScene(Scene *sc, int entrance);
 int sceneHandler01(ExCommand *cmd);
 
+void scene03_setEaterState();
+int scene03_updateCursor();
+void scene03_initScene(Scene *sc);
+int sceneHandler03(ExCommand *cmd);
+
 void sceneDbgMenu_initScene(Scene *sc);
 int sceneHandlerDbgMenu(ExCommand *cmd);
 
@@ -71,6 +76,9 @@ Vars::Vars() {
 	scene01_picSc01Osk = 0;
 	scene01_picSc01Osk2 = 0;
 
+	scene03_eggeater = 0;
+	scene03_domino = 0;
+
 	selector = 0;
 }
 
@@ -210,6 +218,7 @@ bool FullpipeEngine::sceneSwitcher(EntranceInfo *entrance) {
 		addMessageHandler(sceneHandler02, 2);
 		_updateCursorCallback = defaultUpdateCursor;
 		break;
+#endif
 
 	case SC_3:
 		sceneVar = _gameLoader->_gameVar->getSubVarByName("SC_3");
@@ -219,10 +228,11 @@ bool FullpipeEngine::sceneSwitcher(EntranceInfo *entrance) {
 		scene->initObjectCursors("SC_3");
 		setSceneMusicParameters(sceneVar);
 		addMessageHandler(sceneHandler03, 2);
-		j_Scene_sc03_sub_40F160(scene);
+		scene03_setEaterState();
 		_updateCursorCallback = scene03_updateCursor;
 		break;
 
+#if 0
 	case SC_4:
 		sceneVar = _gameLoader->_gameVar->getSubVarByName("SC_4");
 		scene->preloadMovements(sceneVar);
@@ -1384,7 +1394,7 @@ int MovGraph_messageHandler(ExCommand *cmd) {
 }
 
 int defaultUpdateCursor() {
-	g_fullpipe->updateCursorsCommon();
+	g_fullpipe->updateCursorCommon();
 
 	return g_fullpipe->_cursorId;
 }
@@ -1455,7 +1465,7 @@ int sceneHandlerIntro(ExCommand *ex) {
 		return 0;
 
 	case 33:
-		// fall trhough
+		// fall through
 		break;
 
 	default:
@@ -1556,6 +1566,46 @@ int sceneHandler01(ExCommand *cmd) {
 	return res;
 }
 
+void scene03_initScene(Scene *sc) {
+	g_vars->scene03_eggeater = sc->getStaticANIObject1ById(ANI_EGGEATER, -1);
+	g_vars->scene03_domino = sc->getStaticANIObject1ById(ANI_DOMINO_3, -1);
+
+	GameVar *v = g_fullpipe->_gameLoader->_gameVar->getSubVarByName("OBJSTATES")->getSubVarByName(sO_GulpedEggs);
+
+	g_vars->swallowedEgg1 = v->getSubVarByName(sO_Egg1);
+	g_vars->swallowedEgg2 = v->getSubVarByName(sO_Egg2);
+	g_vars->swallowedEgg3 = v->getSubVarByName(sO_Egg3);
+
+	setElevatorButton(sO_Level2, ST_LBN_2N);
+
+	g_fullpipe->lift_sub5(sc, QU_SC3_ENTERLIFT, QU_SC3_EXITLIFT);
+}
+
+void scene03_setEaterState() {
+	if (g_fullpipe->getObjectState(sO_EggGulperGaveCoin) == g_fullpipe->getObjectEnumState(sO_EggGulperGaveCoin, sO_Yes)) {
+		g_fullpipe->_behaviorManager->setBehaviorEnabled(g_vars->scene03_eggeater, ST_EGTR_SLIM, QU_EGTR_SLIMSHOW, 0);
+		g_fullpipe->_behaviorManager->setBehaviorEnabled(g_vars->scene03_eggeater, ST_EGTR_MID1, QU_EGTR_MD1_SHOW, 0);
+		g_fullpipe->_behaviorManager->setBehaviorEnabled(g_vars->scene03_eggeater, ST_EGTR_MID2, QU_EGTR_MD2_SHOW, 0);
+	}
+}
+
+int scene03_updateCursor() {
+	g_fullpipe->updateCursorCommon();
+
+	if (g_fullpipe->_cursorId == PIC_CSR_DEFAULT && g_fullpipe->_objectIdAtCursor == PIC_SC3_DOMIN && g_vars->scene03_domino) {
+		if (g_vars->scene03_domino->_flags & 4)
+			g_fullpipe->_cursorId = PIC_CSR_ITN;
+	}
+
+	return g_fullpipe->_cursorId;
+}
+
+int sceneHandler03(ExCommand *ex) {
+	warning("STUB: sceneHandler03()");
+
+	return 0;
+}
+
 void sceneDbgMenu_initScene(Scene *sc) {
 	g_vars->selector = sc->getPictureObjectById(PIC_SCD_SEL, 0);
 	getGameLoaderInteractionController()->disableFlag24();
diff --git a/engines/fullpipe/scenes.h b/engines/fullpipe/scenes.h
index 9100fa6..9d1dbd5 100644
--- a/engines/fullpipe/scenes.h
+++ b/engines/fullpipe/scenes.h
@@ -28,7 +28,7 @@ namespace Fullpipe {
 class StaticANIObject;
 
 class Vars {
- public:
+public:
 	Vars();
 
 	GameVar *swallowedEgg1;
@@ -45,6 +45,9 @@ class Vars {
 	PictureObject *scene01_picSc01Osk;
 	PictureObject *scene01_picSc01Osk2;
 
+	StaticANIObject *scene03_eggeater;
+	StaticANIObject *scene03_domino;
+
 	PictureObject *selector;
 };
 






More information about the Scummvm-git-logs mailing list