aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEugene Sandulenko2013-11-18 08:25:48 -0800
committerEugene Sandulenko2013-11-18 08:28:03 -0800
commitb7855ed93793e4b41d1abc8eff60c2a8a5f8275f (patch)
treec6c5b94db98821b46310dedc7b72ccc44980dc8d
parent6244b6afe2e4634946ede4f971f664e7213014ed (diff)
downloadscummvm-rg350-b7855ed93793e4b41d1abc8eff60c2a8a5f8275f.tar.gz
scummvm-rg350-b7855ed93793e4b41d1abc8eff60c2a8a5f8275f.tar.bz2
scummvm-rg350-b7855ed93793e4b41d1abc8eff60c2a8a5f8275f.zip
FULLPIPE: Started scene02 implementation
-rw-r--r--engines/fullpipe/constants.h3
-rw-r--r--engines/fullpipe/scenes.cpp42
-rw-r--r--engines/fullpipe/scenes.h4
3 files changed, 47 insertions, 2 deletions
diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index 9d8f503857..358e285a78 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -27,6 +27,7 @@ namespace Fullpipe {
#define ANI_BOOT_1 4231
#define ANI_DOMINO_3 2732
+#define ANI_DADAYASHIK 306
#define ANI_EGGEATER 334
#define ANI_IN1MAN 5110
#define ANI_INV_COIN 875
@@ -38,6 +39,7 @@ namespace Fullpipe {
#define ANI_INV_MAP 5321
#define ANI_LIFTBUTTON 2751
#define ANI_MAN 322
+#define ANI_SC2_BOX 1020
#define MSG_CMN_WINARCADE 4778
#define MSG_DISABLESAVES 5201
#define MSG_ENABLESAVES 5202
@@ -185,6 +187,7 @@ namespace Fullpipe {
#define SND_CMN_031 3516
#define SND_CMN_070 5199
#define SND_INTR_019 5220
+#define ST_DYAS_LIES 318
#define ST_EGTR_MID1 2863
#define ST_EGTR_MID2 2869
#define ST_EGTR_SLIM 336
diff --git a/engines/fullpipe/scenes.cpp b/engines/fullpipe/scenes.cpp
index c266a819ed..80e299bcfc 100644
--- a/engines/fullpipe/scenes.cpp
+++ b/engines/fullpipe/scenes.cpp
@@ -53,6 +53,9 @@ void scene01_fixEntrance();
void scene01_initScene(Scene *sc, int entrance);
int sceneHandler01(ExCommand *cmd);
+void scene02_initScene(Scene *sc);
+int sceneHandler02(ExCommand *ex);
+
void scene03_setEaterState();
int scene03_updateCursor();
void scene03_initScene(Scene *sc);
@@ -76,6 +79,10 @@ Vars::Vars() {
scene01_picSc01Osk = 0;
scene01_picSc01Osk2 = 0;
+ scene02_guvTheDrawer = 0;
+ scene02_var1 = 0;
+ scene02_boxOpen = false;
+
scene03_eggeater = 0;
scene03_domino = 0;
@@ -207,7 +214,6 @@ bool FullpipeEngine::sceneSwitcher(EntranceInfo *entrance) {
_updateCursorCallback = defaultUpdateCursor;
break;
-#if 0
case SC_2:
sceneVar = _gameLoader->_gameVar->getSubVarByName("SC_2");
scene->preloadMovements(sceneVar);
@@ -218,7 +224,6 @@ bool FullpipeEngine::sceneSwitcher(EntranceInfo *entrance) {
addMessageHandler(sceneHandler02, 2);
_updateCursorCallback = defaultUpdateCursor;
break;
-#endif
case SC_3:
sceneVar = _gameLoader->_gameVar->getSubVarByName("SC_3");
@@ -1566,6 +1571,39 @@ int sceneHandler01(ExCommand *cmd) {
return res;
}
+void scene02_initScene(Scene *sc) {
+ g_vars->scene02_guvTheDrawer = sc->getStaticANIObject1ById(ANI_DADAYASHIK, -1);
+
+ if (g_fullpipe->getObjectState(sO_GuvTheDrawer) == g_fullpipe->getObjectEnumState(sO_GuvTheDrawer, sO_Sleeping)) {
+ Scene *s = g_fullpipe->_currentScene;
+
+ g_fullpipe->_currentScene = sc;
+ g_vars->scene02_guvTheDrawer->changeStatics2(ST_DYAS_LIES);
+ g_fullpipe->_currentScene = s;
+ }
+
+ g_vars->scene02_var1 = 0;
+
+ StaticANIObject *box = sc->getStaticANIObject1ById(ANI_SC2_BOX, -1);
+
+ if (box && box->_flags & 4) {
+ g_vars->scene02_boxOpen = false;
+ } else {
+ g_vars->scene02_boxOpen = true;
+ g_vars->scene02_var1 = 100 * g_fullpipe->_rnd->getRandomNumber(32767) / 0x7FFF + 150;
+ }
+
+ //Unk1_sub1(&unk1, g_fullpipe->_gameLoader->_gameVar->getSubVarByName("SC_2"));
+
+ warning("STUB: scene02_initScene()");
+}
+
+int sceneHandler02(ExCommand *ex) {
+ warning("STUB: sceneHandler02()");
+
+ return 0;
+}
+
void scene03_initScene(Scene *sc) {
g_vars->scene03_eggeater = sc->getStaticANIObject1ById(ANI_EGGEATER, -1);
g_vars->scene03_domino = sc->getStaticANIObject1ById(ANI_DOMINO_3, -1);
diff --git a/engines/fullpipe/scenes.h b/engines/fullpipe/scenes.h
index 9d1dbd5e55..71fccafcf4 100644
--- a/engines/fullpipe/scenes.h
+++ b/engines/fullpipe/scenes.h
@@ -45,6 +45,10 @@ public:
PictureObject *scene01_picSc01Osk;
PictureObject *scene01_picSc01Osk2;
+ StaticANIObject *scene02_guvTheDrawer;
+ int scene02_var1;
+ bool scene02_boxOpen;
+
StaticANIObject *scene03_eggeater;
StaticANIObject *scene03_domino;