aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorPaul Gilbert2013-08-17 20:34:32 -0400
committerPaul Gilbert2013-08-17 20:34:32 -0400
commit688bc97d14030197e9c4b77ab279a358497910b3 (patch)
tree37ad188b6f74a098145aee3bee0d366c1642272f /engines
parent818b9a652b730947085b34c4b0ebd2682870fe05 (diff)
downloadscummvm-rg350-688bc97d14030197e9c4b77ab279a358497910b3.tar.gz
scummvm-rg350-688bc97d14030197e9c4b77ab279a358497910b3.tar.bz2
scummvm-rg350-688bc97d14030197e9c4b77ab279a358497910b3.zip
TSAGE: Fix for talking to chief in R2R scene 1100
Diffstat (limited to 'engines')
-rw-r--r--engines/tsage/converse.cpp10
-rw-r--r--engines/tsage/ringworld2/ringworld2_scenes1.cpp2
2 files changed, 10 insertions, 2 deletions
diff --git a/engines/tsage/converse.cpp b/engines/tsage/converse.cpp
index 909da62541..8ae6a0d97e 100644
--- a/engines/tsage/converse.cpp
+++ b/engines/tsage/converse.cpp
@@ -858,6 +858,11 @@ void StripManager::signal() {
++obj44Idx;
if (_obj44List[obj44Idx]._field16[0]) {
+ // WORKAROUND: The _lookupList isn't always correctly initialised. But it always
+ // seems to be set to the R2_GLOBALS._stripManager_lookupList, so manually set it
+ if (!_lookupList)
+ _lookupList = R2_GLOBALS._stripManager_lookupList;
+
int f16Index = _lookupList[_obj44List[obj44Idx]._field16[0] - 1];
listId = _obj44List[obj44Idx]._field16[f16Index];
@@ -868,13 +873,16 @@ void StripManager::signal() {
choiceStr = (const char *)&_script[0] + _obj44List[obj44Idx]._list[listIdx]._scriptOffset;
} else {
- for (int listIdx = 0; listIdx < OBJ0A_LIST_SIZE; ++listIdx) {
+ for (int listIdx = idx; listIdx < (OBJ0A_LIST_SIZE - 1); ++listIdx) {
obj44._list[listIdx]._id = obj44._list[listIdx + 1]._id;
obj44._list[listIdx]._scriptOffset = obj44._list[listIdx + 1]._scriptOffset;
if (!obj44._list[listIdx + 1]._id)
obj44._list[listIdx]._id = 0;
}
+
+ --idx;
+ continue;
}
}
}
diff --git a/engines/tsage/ringworld2/ringworld2_scenes1.cpp b/engines/tsage/ringworld2/ringworld2_scenes1.cpp
index 021ccd44dc..4e9d019f01 100644
--- a/engines/tsage/ringworld2/ringworld2_scenes1.cpp
+++ b/engines/tsage/ringworld2/ringworld2_scenes1.cpp
@@ -1203,7 +1203,7 @@ void Scene1100::signal() {
}
break;
case 54:
- if (_stripManager._field2E8 == 1) {
+ if (_stripManager._exitMode == 1) {
R2_GLOBALS._player.disableControl();
_sceneMode = 1125;
setAction(&_sequenceManager1, this, 1125, &R2_GLOBALS._player, &_seeker, NULL);