aboutsummaryrefslogtreecommitdiff
path: root/engines/tsage
diff options
context:
space:
mode:
authorPaul Gilbert2011-05-01 12:25:58 +1000
committerPaul Gilbert2011-05-01 13:27:26 +1000
commitbee92b30f76b392455a9cff0f6f979ae9c792814 (patch)
treed4169e62768df48a801faf15edd8861ea289b968 /engines/tsage
parent69dcca74da1364706fe0b0d3495c12f9fc2c720a (diff)
downloadscummvm-rg350-bee92b30f76b392455a9cff0f6f979ae9c792814.tar.gz
scummvm-rg350-bee92b30f76b392455a9cff0f6f979ae9c792814.tar.bz2
scummvm-rg350-bee92b30f76b392455a9cff0f6f979ae9c792814.zip
TSAGE: Fix giving Translator, Jar, and Waldos in Scene #7000
Diffstat (limited to 'engines/tsage')
-rw-r--r--engines/tsage/ringworld_scenes8.cpp46
1 files changed, 24 insertions, 22 deletions
diff --git a/engines/tsage/ringworld_scenes8.cpp b/engines/tsage/ringworld_scenes8.cpp
index bc9cdc415f..c4ab5de487 100644
--- a/engines/tsage/ringworld_scenes8.cpp
+++ b/engines/tsage/ringworld_scenes8.cpp
@@ -362,22 +362,19 @@ void Scene7000::Object1::doAction(int action) {
case OBJECT_TRANSLATOR:
_globals->_player.disableControl();
RING_INVENTORY._translator._sceneNumber = 7000;
- if (RING_INVENTORY._waldos._sceneNumber == 7000) {
- if (RING_INVENTORY._jar._sceneNumber == 7000) {
- scene->_sceneMode = 7012;
- scene->setAction(&scene->_sequenceManager, scene, 7010, &_globals->_player, &scene->_object1, 0, 0);
- } else {
- scene->_sceneMode = 7015;
- scene->setAction(&scene->_sequenceManager, scene, 7017, &_globals->_player, 0, 0);
- }
+
+ if ((RING_INVENTORY._waldos._sceneNumber != 7000) && (RING_INVENTORY._jar._sceneNumber != 7000)) {
+ scene->_sceneMode = 7004;
+ scene->setAction(&scene->_sequenceManager, scene, 7004, &_globals->_player, this, NULL);
+ } else if (RING_INVENTORY._waldos._sceneNumber != 7000) {
+ scene->_sceneMode = 7011;
+ scene->setAction(&scene->_sequenceManager, scene, 7010, &_globals->_player, &scene->_object1, NULL);
+ } else if (RING_INVENTORY._jar._sceneNumber != 7000) {
+ scene->_sceneMode = 7012;
+ scene->setAction(&scene->_sequenceManager, scene, 7010, &_globals->_player, &scene->_object1, NULL);
} else {
- if (RING_INVENTORY._jar._sceneNumber == 7000) {
- scene->_sceneMode = 7011;
- scene->setAction(&scene->_sequenceManager, scene, 7010, &_globals->_player, &scene->_object1, 0, 0);
- } else {
- scene->_sceneMode = 7004;
- scene->setAction(&scene->_sequenceManager, scene, 7004, &_globals->_player, this, 0, 0);
- }
+ scene->_sceneMode = 7015;
+ scene->setAction(&scene->_sequenceManager, scene, 7017, &_globals->_player, NULL);
}
break;
case OBJECT_WALDOS:
@@ -386,30 +383,31 @@ void Scene7000::Object1::doAction(int action) {
if (RING_INVENTORY._translator._sceneNumber == 7000) {
if (RING_INVENTORY._jar._sceneNumber == 7000) {
scene->_sceneMode = 7015;
- scene->setAction(&scene->_sequenceManager, scene, 7015, &_globals->_player, 0, 0);
+ scene->setAction(&scene->_sequenceManager, scene, 7015, &_globals->_player, NULL);
} else {
scene->_sceneMode = 7006;
- scene->setAction(&scene->_sequenceManager, scene, 7006, &_globals->_player, 0, 0);
+ scene->setAction(&scene->_sequenceManager, scene, 7006, &_globals->_player, NULL);
}
} else {
scene->_sceneMode = 7009;
- scene->setAction(&scene->_sequenceManager, scene, 7009, &_globals->_player, 0, 0);
+ scene->setAction(&scene->_sequenceManager, scene, 7009, &_globals->_player, NULL);
}
break;
case OBJECT_JAR:
_globals->_player.disableControl();
RING_INVENTORY._jar._sceneNumber = 7000;
+
if (RING_INVENTORY._translator._sceneNumber == 7000) {
- if (RING_INVENTORY._waldos._sceneNumber == 7000) {
+ if (RING_INVENTORY._waldos._sceneNumber != 7000) {
scene->_sceneMode = 7007;
- scene->setAction(&scene->_sequenceManager, scene, 7007, &_globals->_player, &scene->_object1, 0, 0);
+ scene->setAction(&scene->_sequenceManager, scene, 7007, &_globals->_player, &scene->_object1, NULL);
} else {
scene->_sceneMode = 7015;
- scene->setAction(&scene->_sequenceManager, scene, 7016, &_globals->_player, 0, 0);
+ scene->setAction(&scene->_sequenceManager, scene, 7016, &_globals->_player, NULL);
}
} else {
scene->_sceneMode = 7008;
- scene->setAction(&scene->_sequenceManager, scene, 7008, &_globals->_player, 0, 0);
+ scene->setAction(&scene->_sequenceManager, scene, 7008, &_globals->_player, NULL);
}
break;
case CURSOR_LOOK:
@@ -622,6 +620,10 @@ void Scene7000::signal() {
case 7001:
case 7002:
case 7004:
+ case 7005:
+ case 7006:
+ case 7007:
+ case 7008:
case 7009:
_globals->_player.enableControl();
break;