diff options
Diffstat (limited to 'engines/saga')
-rw-r--r-- | engines/saga/actor.h | 9 | ||||
-rw-r--r-- | engines/saga/saga.cpp | 4 |
2 files changed, 9 insertions, 4 deletions
diff --git a/engines/saga/actor.h b/engines/saga/actor.h index 3296246cba..1ed70d7ff0 100644 --- a/engines/saga/actor.h +++ b/engines/saga/actor.h @@ -41,7 +41,7 @@ namespace Saga { class HitZone; -//#define ACTOR_DEBUG //only for actor pathfinding debug! +// #define ACTOR_DEBUG 1 //only for actor pathfinding debug! #define ACTOR_BARRIERS_MAX 16 @@ -97,7 +97,8 @@ enum ActorActions { enum SpeechFlags { kSpeakNoAnimate = 1, kSpeakAsync = 2, - kSpeakSlow = 4 + kSpeakSlow = 4, + kSpeakForceText = 8 }; enum ActorFrameTypes { @@ -592,6 +593,10 @@ public: return _activeSpeech.stringsCount > 0; } + int isForcedTextShown() { + return _activeSpeech.speechFlags & kSpeakForceText; + } + void saveState(Common::OutSaveFile *out); void loadState(Common::InSaveFile *in); diff --git a/engines/saga/saga.cpp b/engines/saga/saga.cpp index ea42eac0d7..5aa6c40572 100644 --- a/engines/saga/saga.cpp +++ b/engines/saga/saga.cpp @@ -289,8 +289,8 @@ int SagaEngine::go() { msec = MAX_TIME_DELTA; } - // Since Puzzle is actorless, we do it here - if (_puzzle->isActive()) { + // Since Puzzle and forced text are actorless, we do them here + if (_puzzle->isActive() || _actor->isForcedTextShown()) { _actor->handleSpeech(msec); } else if (!_scene->isInIntro()) { if (_interface->getMode() == kPanelMain || |