aboutsummaryrefslogtreecommitdiff
path: root/engines/fullpipe/scenes.cpp
diff options
context:
space:
mode:
authorEugene Sandulenko2013-11-18 08:25:48 -0800
committerEugene Sandulenko2013-11-18 08:28:03 -0800
commitb7855ed93793e4b41d1abc8eff60c2a8a5f8275f (patch)
treec6c5b94db98821b46310dedc7b72ccc44980dc8d /engines/fullpipe/scenes.cpp
parent6244b6afe2e4634946ede4f971f664e7213014ed (diff)
downloadscummvm-rg350-b7855ed93793e4b41d1abc8eff60c2a8a5f8275f.tar.gz
scummvm-rg350-b7855ed93793e4b41d1abc8eff60c2a8a5f8275f.tar.bz2
scummvm-rg350-b7855ed93793e4b41d1abc8eff60c2a8a5f8275f.zip
FULLPIPE: Started scene02 implementation
Diffstat (limited to 'engines/fullpipe/scenes.cpp')
-rw-r--r--engines/fullpipe/scenes.cpp42
1 files changed, 40 insertions, 2 deletions
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);