diff options
author | Paul Gilbert | 2013-08-17 20:34:32 -0400 |
---|---|---|
committer | Paul Gilbert | 2013-08-17 20:34:32 -0400 |
commit | 688bc97d14030197e9c4b77ab279a358497910b3 (patch) | |
tree | 37ad188b6f74a098145aee3bee0d366c1642272f /engines | |
parent | 818b9a652b730947085b34c4b0ebd2682870fe05 (diff) | |
download | scummvm-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.cpp | 10 | ||||
-rw-r--r-- | engines/tsage/ringworld2/ringworld2_scenes1.cpp | 2 |
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); |