diff options
Diffstat (limited to 'engines/tsage/converse.cpp')
-rw-r--r-- | engines/tsage/converse.cpp | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/engines/tsage/converse.cpp b/engines/tsage/converse.cpp index b802f71ff3..06fbffb751 100644 --- a/engines/tsage/converse.cpp +++ b/engines/tsage/converse.cpp @@ -25,6 +25,7 @@ #include "tsage/tsage.h" #include "tsage/globals.h" #include "tsage/staticres.h" +#include "ringworld2/ringworld2_speakers.h" namespace TsAGE { @@ -451,7 +452,7 @@ int ConversationChoiceDialog::execute(const Common::StringArray &choiceList) { while (!g_globals->_events.getEvent(event, EVENT_KEYPRESS | EVENT_BUTTON_DOWN | EVENT_MOUSE_MOVE) && !g_vm->shouldQuit()) { g_system->delayMillis(10); - g_system->updateScreen(); + GLOBALS._screenSurface.updateScreen(); } if (g_vm->shouldQuit()) break; @@ -836,6 +837,9 @@ void StripManager::signal() { } } + if ((g_vm->getGameID() == GType_Ringworld2) && (_obj44List.size() > 0)) + static_cast<Ringworld2::VisualSpeaker *>(_activeSpeaker)->proc15(); + _textShown = true; _activeSpeaker->setText(choiceList[strIndex]); } @@ -888,6 +892,17 @@ Speaker *StripManager::getSpeaker(const char *speakerName) { return _speakerList[idx]; } + // TODO: Check if it necessary to make a strcmp first. + // + // If nothing is found, recheck and ignore the case as + // in R2R, some character names aren't in uppercase. + if (g_vm->getGameID() == GType_Ringworld2) { + for (uint idx = 0; idx < _speakerList.size(); ++idx) { + if (!scumm_stricmp(_speakerList[idx]->_speakerName.c_str(), speakerName)) + return _speakerList[idx]; + } + } + return NULL; } |