aboutsummaryrefslogtreecommitdiff
path: root/engines/fullpipe
diff options
context:
space:
mode:
authorEugene Sandulenko2013-11-21 19:19:44 -0800
committerEugene Sandulenko2013-11-22 00:45:32 -0700
commitdc2685ddef6466f462638e8e9d835651d94918d1 (patch)
treed4649de40d2030ef6473bf660fa528128ce4f76d /engines/fullpipe
parent13529e06fde001244cc7c20e5b9f630a6ecb0823 (diff)
downloadscummvm-rg350-dc2685ddef6466f462638e8e9d835651d94918d1.tar.gz
scummvm-rg350-dc2685ddef6466f462638e8e9d835651d94918d1.tar.bz2
scummvm-rg350-dc2685ddef6466f462638e8e9d835651d94918d1.zip
FULLPIPE: More work on sceneSwitcher04
Diffstat (limited to 'engines/fullpipe')
-rw-r--r--engines/fullpipe/scenes.h2
-rw-r--r--engines/fullpipe/scenes/scene04.cpp75
2 files changed, 40 insertions, 37 deletions
diff --git a/engines/fullpipe/scenes.h b/engines/fullpipe/scenes.h
index 741835fd1e..0ed1b82a7e 100644
--- a/engines/fullpipe/scenes.h
+++ b/engines/fullpipe/scenes.h
@@ -101,7 +101,7 @@ public:
int scene04_var01;
int scene04_var02;
int scene04_var04;
- int scene04_var05;
+ StaticANIObject *scene04_var05;
int scene04_var06;
int scene04_var07;
int scene04_var08;
diff --git a/engines/fullpipe/scenes/scene04.cpp b/engines/fullpipe/scenes/scene04.cpp
index 2d594df462..c51a6d7a11 100644
--- a/engines/fullpipe/scenes/scene04.cpp
+++ b/engines/fullpipe/scenes/scene04.cpp
@@ -213,8 +213,6 @@ int scene04_updateCursor() {
int sceneHandler04(ExCommand *ex) {
#if 0
- v2 = 0;
-
if (ex->_messageKind != 17)
return 0;
@@ -239,8 +237,10 @@ int sceneHandler04(ExCommand *ex) {
case MSG_STARTHAND:
g_vars->scene04_var09 = 1;
g_vars->scene04_coinPut = 0;
+
if (g_vars->scene04_var10)
sceneHandler04_sub1(0);
+
sceneHandler04_sub15();
sceneHandler04_stopSound();
break;
@@ -263,8 +263,8 @@ int sceneHandler04(ExCommand *ex) {
case MSG_KOZAWRESTART:
if (g_vars->scene04_var05) {
- CObList::AddTail(&g_vars->scene04_kozyawkiObjList, g_vars->scene04_var05);
- StaticANIObject_hide((StaticANIObject *)g_vars->scene04_var05);
+ g_vars->scene04_kozyawkiObjList.push_back(g_vars->scene04_var05);
+ g_vars->scene04_var05->hide();
g_vars->scene04_var05 = 0;
}
if (g_vars->scene04_soundPlaying)
@@ -281,61 +281,62 @@ int sceneHandler04(ExCommand *ex) {
break;
case 33:
- v4 = g_aniMan;
- v5 = g_aniMan->GameObject.ox;
- g_vars->scene04_dudePosX = g_aniMan->GameObject.ox;
- g_vars->scene04_dudePosY = g_aniMan->GameObject.oy;
+ g_vars->scene04_dudePosX = g_fullpipe->_aniMan->_ox;
+ g_vars->scene04_dudePosY = g_fullpipe->_aniMan->_oy;
int res = 0;
- if (g_aniMan2) {
- v6 = g_sceneRect.left;
- if (v5 < g_sceneRect.left + 200) {
- g_currentScene->bg.x = v5 - g_sceneRect.left - 300;
- v5 = g_vars->scene04_dudePosX;
- v4 = g_aniMan;
- v6 = g_sceneRect.left;
+
+ if (g_fullpipe->_aniMan2) {
+ if (g_fullpipe->_aniMan->_ox < g_fullpipe->_sceneRect.left + 200) {
+ g_currentScene->_x = g_fullpipe->_aniMan->_ox - g_fullpipe->_sceneRect.left - 300;
+ g_fullpipe->_aniMan->_ox = g_vars->scene04_dudePosX;
}
- if (v5 > g_sceneRect.right - 200) {
- g_currentScene->bg.x = v5 - g_sceneRect.right + 300;
- v4 = g_aniMan;
- v6 = g_sceneRect.left;
+ if (g_fullpipe->_aniMan->_ox > g_fullpipe->_sceneRect.right - 200) {
+ g_currentScene->_x = g_fullpipe->_aniMan->_ox - g_fullpipe->_sceneRect.right + 300;
}
+
res = 1;
if (g_vars->scene04_soundPlaying) {
- v8 = v4->movement;
- if (v8) {
- if (v8->GameObject.id == MV_MAN_TOLADDER) {
- g_aniMan2 = 0;
- if (v6 > 380)
- g_currentScene->bg.x = 380 - v6;
+ if (g_fullpipe->_aniMan->_movement) {
+ if (g_fullpipe->_aniMan->_movement->_id == MV_MAN_TOLADDER) {
+ g_fullpipe->_aniMan2 = 0;
+ if (g_fullpipe->_sceneRect.left > 380)
+ g_currentScene->bg.x = 380 - g_fullpipe->_sceneRect.left;
}
}
}
} else {
- v7 = v4->movement;
- if (v7 && v7->GameObject.id == MV_MAN_GOD)
- g_aniMan2 = v4;
+ v7 = ;
+ if (g_fullpipe->_aniMan->_movement && g_fullpipe->_aniMan->_movement->_id == MV_MAN_GOD)
+ g_fullpipe->_aniMan2 = g_fullpipe->_aniMan;
}
sceneHandler04_sub4();
+
if (g_vars->scene04_var07 && !g_vars->scene04_var09)
sceneHandler04_sub5();
+
if (g_vars->scene04_var12)
sceneHandler04_sub6();
+
if (g_vars->scene04_var08)
sceneHandler04_clickLadder();
- if (g_vars->scene04_var10 && g_vars->scene04_hand->movement)
+
+ if (g_vars->scene04_var10 && g_vars->scene04_hand->_movement)
sceneHandler04_sub1(0);
+
if (g_vars->scene04_coinPut && g_vars->scene04_var18 && !g_vars->scene04_var09 && !g_vars->scene04_soundPlaying)
sceneHandler04_sub7();
+
if (g_vars->scene04_var01) {
if (!g_vars->scene04_soundPlaying) {
startSceneTrack();
- BehaviorManager_updateBehaviors(&g_behaviorManager);
+ g_fullpipe->_behaviorManager->updateBehaviors();
return res;
}
+
v11 = __OFSUB__(g_vars->scene04_var14 + 1, 600);
v9 = g_vars->scene04_var14 == 599;
v10 = g_vars->scene04_var14++ - 599 < 0;
@@ -344,13 +345,15 @@ int sceneHandler04(ExCommand *ex) {
}
if (g_vars->scene04_soundPlaying) {
- BehaviorManager_updateBehaviors(&g_behaviorManager);
+ g_fullpipe->_behaviorManager->updateBehaviors();
+
return res;
}
startSceneTrack();
- BehaviorManager_updateBehaviors(&g_behaviorManager);
+ g_fullpipe->_behaviorManager->updateBehaviors();
+
return res;
case 29:
@@ -382,11 +385,11 @@ int sceneHandler04(ExCommand *ex) {
ex->msg.messageKind = 0;
} else if (g_vars->scene04_var01) {
sceneHandler04_sub8(ex);
- } else if (!v14 || !canInteractAny(&g_aniMan->GameObject, v14, LOWORD(ex->msg.keyCode))) {
+ } else if (!v14 || !canInteractAny(&g_fullpipe->_aniMan->GameObject, v14, LOWORD(ex->msg.keyCode))) {
v15 = (GameObject *)Scene_getPictureObjectById(g_currentScene, sceneHandler_pic, 0);
- if (!v15 || !canInteractAny(&g_aniMan->GameObject, v15, LOWORD(ex->msg.keyCode))) {
- if ((v16 = ex->msg.sceneClickX, g_sceneRect.right - v16 < 47) && g_sceneRect.right < g_sceneWidth - 1
- || v16 - g_sceneRect.left < 47 && g_sceneRect.left > 0)
+ if (!v15 || !canInteractAny(&g_fullpipe->_aniMan->GameObject, v15, LOWORD(ex->msg.keyCode))) {
+ if ((v16 = ex->msg.sceneClickX, g_fullpipe->_sceneRect.right - v16 < 47) && g_fullpipe->_sceneRect.right < g_sceneWidth - 1
+ || v16 - g_fullpipe->_sceneRect.left < 47 && g_fullpipe->_sceneRect.left > 0)
sceneHandlers_sub01(ex);
}
}