aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEugene Sandulenko2014-01-05 13:20:22 +0200
committerEugene Sandulenko2014-01-05 13:20:47 +0200
commit52ec63441535c6207fed95964d99347fc51f5541 (patch)
tree675d370c4d50e107b5a16b5f0153b1aad2fdaa5d
parent2c4c18ade454ebc0faa37d18536a64a5f6430c15 (diff)
downloadscummvm-rg350-52ec63441535c6207fed95964d99347fc51f5541.tar.gz
scummvm-rg350-52ec63441535c6207fed95964d99347fc51f5541.tar.bz2
scummvm-rg350-52ec63441535c6207fed95964d99347fc51f5541.zip
FULLPIPE: More code to scene25
-rw-r--r--engines/fullpipe/constants.h7
-rw-r--r--engines/fullpipe/scenes/scene25.cpp44
2 files changed, 44 insertions, 7 deletions
diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index 1c7779a02b..1dfe6ba77c 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -883,12 +883,19 @@ namespace Fullpipe {
#define PIC_SC25_RTRUBA 1853
#define QU_DRP25_TOFLOOR 3502
#define QU_DRP25_TOWATER 3504
+#define QU_SC25_BACKTOTRUBA 2061
+#define QU_SC25_ENTERUP_FLOOR 1904
+#define QU_SC25_ENTERUP_WATER 1895
+#define QU_SC25_LADDERUP 1925
+#define QU_SC25_PUTBOARD 1896
+#define QU_SC25_TRYWATER 1906
#define SND_25_006 4059
#define SND_25_025 4874
#define SND_25_026 4875
#define SND_25_027 4876
#define SND_25_029 5174
#define ST_DRP25_EMPTY 3501
+#define ST_MAN_LADDERDOWN_R 3419
// Scene 30
#define ANI_LEG 2322
diff --git a/engines/fullpipe/scenes/scene25.cpp b/engines/fullpipe/scenes/scene25.cpp
index 9ff710b03a..37f837a759 100644
--- a/engines/fullpipe/scenes/scene25.cpp
+++ b/engines/fullpipe/scenes/scene25.cpp
@@ -137,7 +137,13 @@ void sceneHandler25_startBearders() {
}
void sceneHandler25_enterMan() {
- warning("STUB: sceneHandler25_enterMan()");
+ if (g_vars->scene25_var06) {
+ chainQueue(QU_SC25_ENTERUP_WATER, 1);
+
+ getCurrSceneSc2MotionController()->clearEnabled();
+ } else {
+ chainQueue(QU_SC25_ENTERUP_FLOOR, 1);
+ }
}
void sceneHandler25_enterTruba() {
@@ -165,11 +171,26 @@ void sceneHandler25_rowHand() {
}
void sceneHandler25_putBoard() {
- warning("STUB: sceneHandler25_putBoard()");
+ if (g_fp->_aniMan->_statics->_staticsId == ST_MAN_STANDLADDER
+ || g_fp->_aniMan->_statics->_staticsId == ST_MAN_LADDERDOWN_R) {
+ g_fp->_aniMan->changeStatics2(ST_MAN_STANDLADDER);
+ g_fp->_aniMan->setOXY(281, 481);
+
+ chainQueue(QU_SC25_PUTBOARD, 1);
+
+ g_vars->scene25_var05 = 1;
+ g_vars->scene25_var12 = 0;
+ g_vars->scene25_var07 = 0;
+ }
}
void sceneHandler25_tryWater() {
- warning("STUB: sceneHandler25_tryWater()");
+ if (g_fp->_aniMan->_statics->_staticsId == ST_MAN_STANDLADDER
+ || g_fp->_aniMan->_statics->_staticsId == ST_MAN_LADDERDOWN_R) {
+ g_fp->_aniMan->changeStatics2(ST_MAN_STANDLADDER);
+
+ chainQueue(QU_SC25_TRYWATER, 1);
+ }
}
void sceneHandler25_tryRow(int code) {
@@ -177,11 +198,20 @@ void sceneHandler25_tryRow(int code) {
}
void sceneHandler25_ladderUp() {
- warning("STUB: sceneHandler25_ladderUp()");
+ if (g_fp->_aniMan->_statics->_staticsId == ST_MAN_STANDLADDER
+ || g_fp->_aniMan->_statics->_staticsId == ST_MAN_LADDERDOWN_R) {
+ g_fp->_aniMan->changeStatics2(ST_MAN_STANDLADDER);
+
+ chainQueue(QU_SC25_LADDERUP, 1);
+ }
}
void sceneHandler25_backToPipe() {
- warning("STUB: sceneHandler25_backToPipe()");
+ if (!g_fp->_aniMan->_movement && g_fp->_aniMan->_statics->_staticsId == (ST_MAN_RIGHT|0x4000)) {
+ g_fp->_aniMan->changeStatics2(ST_MAN_RIGHT|0x4000);
+
+ chainQueue(QU_SC25_BACKTOTRUBA, 1);
+ }
}
void sceneHandler25_sub01() {
@@ -198,8 +228,8 @@ void sceneHandler25_sub03() {
warning("STUB: sceneHandler25_sub03()");
}
-void sceneHandler25_sub04() {
- warning("STUB: sceneHandler25_sub04()");
+void sceneHandler25_sub04(int value) {
+ g_fp->getGameLoaderGameVar()->getSubVarByName("OBJSTATES")->getSubVarByName("SAVEGAME")->setSubVarAsInt("Entrance", value);
}
int sceneHandler25(ExCommand *cmd) {