diff options
Diffstat (limited to 'engines/sherlock/talk.cpp')
-rw-r--r-- | engines/sherlock/talk.cpp | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/engines/sherlock/talk.cpp b/engines/sherlock/talk.cpp index b543472513..b4987f070a 100644 --- a/engines/sherlock/talk.cpp +++ b/engines/sherlock/talk.cpp @@ -28,9 +28,11 @@ #include "sherlock/scalpel/scalpel_talk.h" #include "sherlock/scalpel/scalpel_user_interface.h" #include "sherlock/tattoo/tattoo.h" +#include "sherlock/tattoo/tattoo_fixed_text.h" #include "sherlock/tattoo/tattoo_people.h" #include "sherlock/tattoo/tattoo_scene.h" #include "sherlock/tattoo/tattoo_talk.h" +#include "sherlock/tattoo/tattoo_user_interface.h" namespace Sherlock { @@ -170,7 +172,7 @@ void Talk::talkTo(const Common::String filename) { // Turn on the Exit option ui._endKeyActive = true; - if (people[HOLMES]._walkCount || (!people[HOLMES]._walkTo.empty() && + if (people[HOLMES]._walkCount || (!people[HOLMES]._walkTo.empty() && (IS_SERRATED_SCALPEL || people._allowWalkAbort))) { // Only interrupt if trying to do an action, and not just if player is walking around the scene if (people._allowWalkAbort) @@ -306,8 +308,14 @@ void Talk::talkTo(const Common::String filename) { if (_scriptMoreFlag && _scriptSelect != 100) select = _scriptSelect; - if (select == -1) + if (select == -1) { + if (IS_ROSE_TATTOO) { + static_cast<Tattoo::TattooUserInterface *>(&ui)->putMessage( + "%s", _vm->_fixedText->getText(Tattoo::kFixedText_NoEffect)); + return; + } error("Couldn't find statement to display"); + } // Add the statement into the journal and talk history if (_talkTo != -1 && !_talkHistory[_converseNum][select]) @@ -1187,7 +1195,7 @@ OpcodeReturn Talk::cmdWalkToCAnimation(const byte *&str) { ++str; CAnim &animation = scene._cAnim[str[0] - 1]; people[HOLMES].walkToCoords(animation._goto[0], animation._goto[0]._facing); - + return _talkToAbort ? RET_EXIT : RET_SUCCESS; } |