From 4f8f854ee6bd1e681af589a3565ac11ef8bcbc55 Mon Sep 17 00:00:00 2001 From: Filippos Karapetis Date: Fri, 15 Jun 2007 03:58:21 +0000 Subject: Forced text is now handled correctly. It's now possible to interact with the video screen in the elder's cave svn-id: r27410 --- engines/saga/actor.h | 9 +++++++-- engines/saga/saga.cpp | 4 ++-- 2 files changed, 9 insertions(+), 4 deletions(-) (limited to 'engines/saga') 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 || -- cgit v1.2.3