From 4218d3f037da0c050d5b2d99de69c0f1ff29bc3e Mon Sep 17 00:00:00 2001 From: Vladimir Menshakov Date: Tue, 8 Dec 2009 22:13:06 +0000 Subject: added message duration override, increased 'the end' timeout svn-id: r46301 --- engines/teenagent/callbacks.cpp | 2 +- engines/teenagent/scene.cpp | 2 +- engines/teenagent/teenagent.cpp | 3 ++- engines/teenagent/teenagent.h | 2 +- 4 files changed, 5 insertions(+), 4 deletions(-) (limited to 'engines') diff --git a/engines/teenagent/callbacks.cpp b/engines/teenagent/callbacks.cpp index 38488cfb00..943a9e9c27 100644 --- a/engines/teenagent/callbacks.cpp +++ b/engines/teenagent/callbacks.cpp @@ -3792,7 +3792,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { playAnimation(954, 0); Dialog::showMono(scene, 0x8b7a, 955, 0xe3, 1); //that's all folks playMusic(2); - displayCredits(0xe47c); + displayCredits(0xe47c, 4500); //3 minutes (infinite until key pressed in original) scene->push(SceneEvent(SceneEvent::kQuit)); return true; diff --git a/engines/teenagent/scene.cpp b/engines/teenagent/scene.cpp index 3851686a44..93ffd85140 100644 --- a/engines/teenagent/scene.cpp +++ b/engines/teenagent/scene.cpp @@ -812,7 +812,7 @@ bool Scene::processEventQueue() { message_animation = &actor_animation; debug(0, "async message %d-%d (slot %u)", message_first_frame, message_last_frame, current_event.slot); } else { - message_timer = messageDuration(message); + message_timer = current_event.timer? current_event.timer: messageDuration(message); message_first_frame = message_last_frame = 0; } Common::Point p; diff --git a/engines/teenagent/teenagent.cpp b/engines/teenagent/teenagent.cpp index 079920b262..3b2a88fd52 100644 --- a/engines/teenagent/teenagent.cpp +++ b/engines/teenagent/teenagent.cpp @@ -466,7 +466,7 @@ void TeenAgentEngine::displayAsyncMessageInSlot(uint16 addr, byte slot, uint16 f } -void TeenAgentEngine::displayCredits(uint16 addr) { +void TeenAgentEngine::displayCredits(uint16 addr, uint16 timer) { SceneEvent event(SceneEvent::kCreditsMessage); const byte *src = Resources::instance()->dseg.ptr(addr); @@ -486,6 +486,7 @@ void TeenAgentEngine::displayCredits(uint16 addr) { } int w = Resources::instance()->font8.render(NULL, 0, 0, event.message, 0xd1); event.dst.x = (320 - w) / 2; + event.timer = timer; scene->push(event); } diff --git a/engines/teenagent/teenagent.h b/engines/teenagent/teenagent.h index dbb510df03..19dc771dcf 100644 --- a/engines/teenagent/teenagent.h +++ b/engines/teenagent/teenagent.h @@ -79,7 +79,7 @@ public: void displayMessage(const Common::String &str, byte color = 0xd1, uint16 position = 0); void displayAsyncMessage(uint16 addr, uint16 position, uint16 first_frame, uint16 last_frame, byte color = 0xd1); void displayAsyncMessageInSlot(uint16 addr, byte slot, uint16 first_frame, uint16 last_frame, byte color = 0xd1); - void displayCredits(uint16 addr); + void displayCredits(uint16 addr, uint16 timer = 0); void displayCutsceneMessage(uint16 addr, uint16 position); void moveTo(const Common::Point &dst, byte o, bool warp = false); void moveTo(uint16 x, uint16 y, byte o, bool warp = false); -- cgit v1.2.3