aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorVladimir Menshakov2009-12-08 22:13:06 +0000
committerVladimir Menshakov2009-12-08 22:13:06 +0000
commit4218d3f037da0c050d5b2d99de69c0f1ff29bc3e (patch)
tree9f0a51e08582453e5dc386d9365c7587a6c874af /engines
parent5b136d2f1a491279f68e08d2b4b1d5de9c89bb97 (diff)
downloadscummvm-rg350-4218d3f037da0c050d5b2d99de69c0f1ff29bc3e.tar.gz
scummvm-rg350-4218d3f037da0c050d5b2d99de69c0f1ff29bc3e.tar.bz2
scummvm-rg350-4218d3f037da0c050d5b2d99de69c0f1ff29bc3e.zip
added message duration override, increased 'the end' timeout
svn-id: r46301
Diffstat (limited to 'engines')
-rw-r--r--engines/teenagent/callbacks.cpp2
-rw-r--r--engines/teenagent/scene.cpp2
-rw-r--r--engines/teenagent/teenagent.cpp3
-rw-r--r--engines/teenagent/teenagent.h2
4 files changed, 5 insertions, 4 deletions
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);