aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorEugene Sandulenko2016-10-01 21:26:10 +0200
committerEugene Sandulenko2016-10-01 21:27:02 +0200
commita4758dac41e4c53c59c8b85545aeb8d8f5ed62bd (patch)
tree2b663035b339bd41160f52c97de617c59e3e072a /engines
parent70f9cc5215cce6a627a65bd4e705d846ca4150e3 (diff)
downloadscummvm-rg350-a4758dac41e4c53c59c8b85545aeb8d8f5ed62bd.tar.gz
scummvm-rg350-a4758dac41e4c53c59c8b85545aeb8d8f5ed62bd.tar.bz2
scummvm-rg350-a4758dac41e4c53c59c8b85545aeb8d8f5ed62bd.zip
FULLPIPE: Fix logic in scene25. Now Dude can return back
Diffstat (limited to 'engines')
-rw-r--r--engines/fullpipe/scenes/scene25.cpp50
1 files changed, 29 insertions, 21 deletions
diff --git a/engines/fullpipe/scenes/scene25.cpp b/engines/fullpipe/scenes/scene25.cpp
index 36cff8fbc6..ec3184a5f4 100644
--- a/engines/fullpipe/scenes/scene25.cpp
+++ b/engines/fullpipe/scenes/scene25.cpp
@@ -365,7 +365,7 @@ void sceneHandler25_tryRow(int obj) {
g_fp->_aniMan->getPicAniInfo(&info);
g_fp->_aniMan->_messageQueueId = 0;
- g_fp->_aniMan->changeStatics2(ST_MAN_RIGHT|0x4000);
+ g_fp->_aniMan->changeStatics2(ST_MAN_RIGHT | 0x4000);
int x = g_fp->_aniMan->_ox;
int y = g_fp->_aniMan->_oy;
@@ -377,12 +377,12 @@ void sceneHandler25_tryRow(int obj) {
if (x == 788 && y == 468) {
if (g_vars->scene25_board->_statics->_staticsId == ST_BRD25_RIGHT2) {
if (obj == ANI_INV_BROOM) {
- g_fp->_aniMan->changeStatics2(ST_MAN_RIGHT|0x4000);
+ g_fp->_aniMan->changeStatics2(ST_MAN_RIGHT | 0x4000);
qid = QU_SC25_TRYBROOM;
}
if (obj == ANI_INV_LOPAT) {
- g_fp->_aniMan->changeStatics2(ST_MAN_RIGHT|0x4000);
+ g_fp->_aniMan->changeStatics2(ST_MAN_RIGHT | 0x4000);
qid = QU_SC25_TRYSPADE;
}
@@ -396,18 +396,18 @@ void sceneHandler25_tryRow(int obj) {
}
if (obj == ANI_INV_SWAB) {
- g_fp->_aniMan->changeStatics2(ST_MAN_RIGHT|0x4000);
+ g_fp->_aniMan->changeStatics2(ST_MAN_RIGHT | 0x4000);
chainQueue(QU_SC25_TRYSWAB, 1);
} else if (!obj) {
- g_fp->_aniMan->changeStatics2(ST_MAN_RIGHT|0x4000);
+ g_fp->_aniMan->changeStatics2(ST_MAN_RIGHT | 0x4000);
chainObjQueue(g_fp->_aniMan, QU_SC25_TRYHAND, 1);
g_fp->playSound(SND_25_028, 0);
}
- } else if (g_vars->scene25_board->_statics->_staticsId == (ST_MAN_RIGHT|0x4000) && !obj) {
- g_fp->_aniMan->changeStatics2(ST_MAN_RIGHT|0x4000);
+ } else if (g_vars->scene25_board->_statics->_staticsId == (ST_BRD25_RIGHT2 | 0x4000) && !obj) {
+ g_fp->_aniMan->changeStatics2(ST_MAN_RIGHT | 0x4000);
chainQueue(QU_SC25_TRUBATOBOARD, 1);
@@ -645,7 +645,7 @@ int sceneHandler25(ExCommand *cmd) {
if ((picId == PIC_SC25_LADDERUP || picId == PIC_SC25_LADDERDOWN) && sceneHandler25_isOnLadder(cmd))
cmd->_messageKind = 0;
- break;
+ return 0;
}
StaticANIObject *ani = g_fp->_currentScene->getStaticANIObjectAtPos(cmd->_sceneClickX, cmd->_sceneClickY);
@@ -656,23 +656,31 @@ int sceneHandler25(ExCommand *cmd) {
if (!(g_fp->_aniMan->_flags & 0x100)) {
if (ani->_id == ANI_WATER25) {
if (g_vars->scene25_dudeIsOnBoard) {
- if (cmd->_param == ANI_INV_LOPAT)
+ if (cmd->_param == ANI_INV_LOPAT) {
sceneHandler25_rowShovel();
+ return 0;
+ }
- if (!cmd->_param)
+ if (!cmd->_param) {
sceneHandler25_rowHand();
+ return 0;
+ }
} else {
- if (cmd->_param == ANI_INV_BOARD)
+ if (cmd->_param == ANI_INV_BOARD) {
sceneHandler25_putBoard();
+ return 0;
+ }
- if (!cmd->_param)
+ if (!cmd->_param) {
sceneHandler25_tryWater();
+ return 0;
+ }
}
} else if (ani->_id == ANI_BOARD25) {
sceneHandler25_tryRow(cmd->_param);
- break;
+ return 0;
}
- break;
+ return 0;
}
}
}
@@ -682,37 +690,37 @@ int sceneHandler25(ExCommand *cmd) {
cmd->_messageKind = 0;
if (!g_fp->_aniMan->isIdle() || (g_fp->_aniMan->_flags & 0x100))
- break;
+ return 0;
if (g_vars->scene25_dudeIsOnBoard) {
if (picId == PIC_SC25_RTRUBA && !cmd->_param) {
sceneHandler25_enterTruba();
- break;
+ return 0;
}
} else {
if (picId != PIC_SC25_RTRUBA) {
if (picId == PIC_SC25_LADDERUP && !cmd->_param)
sceneHandler25_ladderUp();
- break;
+ return 0;
}
if (!cmd->_param) {
sceneHandler25_backToPipe();
- break;
+ return 0;
}
}
if (g_vars->scene25_dudeIsOnBoard) {
if (picId != PIC_SC25_LADDERUP || cmd->_param)
- break;
+ return 0;
sceneHandler25_toLadder();
- break;
+ return 0;
}
if (picId == PIC_SC25_LADDERUP && !cmd->_param)
sceneHandler25_ladderUp();
- break;
+ return 0;
}
}