aboutsummaryrefslogtreecommitdiff
path: root/engines/mads/messages.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/mads/messages.cpp')
-rw-r--r--engines/mads/messages.cpp14
1 files changed, 10 insertions, 4 deletions
diff --git a/engines/mads/messages.cpp b/engines/mads/messages.cpp
index c08f29fd91..cc618c4b76 100644
--- a/engines/mads/messages.cpp
+++ b/engines/mads/messages.cpp
@@ -75,7 +75,7 @@ int KernelMessages::add(const Common::Point &pt, uint fontColor, uint8 flags,
rec._position = pt;
rec._textDisplayIndex = -1;
rec._timeout = timeout;
- rec._frameTimer = _vm->_game->_currentTimer;
+ rec._frameTimer = _vm->_game->_priorFrameTimer;
rec._abortTimers = abortTimers;
rec._abortMode = _vm->_game->_abortTimersMode2;
@@ -100,7 +100,7 @@ void KernelMessages::scrollMessage(int msgIndex, int numTicks, bool quoted) {
_entries[msgIndex]._flags |= quoted ? (KMSG_SCROLL | KMSG_QUOTED) : KMSG_SCROLL;
_entries[msgIndex]._msgOffset = 0;
_entries[msgIndex]._numTicks = numTicks;
- _entries[msgIndex]._frameTimer2 = _vm->_game->_currentTimer;
+ _entries[msgIndex]._frameTimer2 = _vm->_game->_priorFrameTimer;
Common::String msg = _entries[msgIndex]._msg;
_entries[msgIndex]._asciiChar = msg[0];
@@ -145,7 +145,7 @@ void KernelMessages::reset() {
}
void KernelMessages::update() {
- uint32 currentTimer = _vm->_game->_currentTimer;
+ uint32 currentTimer = _vm->_game->_priorFrameTimer;
for (uint i = 0; i < _entries.size(); ++i) {
if (((_entries[i]._flags & KMSG_ACTIVE) != 0) &&
@@ -157,7 +157,7 @@ void KernelMessages::update() {
void KernelMessages::processText(int msgIndex) {
Scene &scene = _vm->_game->_scene;
KernelMessage &msg = _entries[msgIndex];
- uint32 currentTimer = _vm->_game->_currentTimer;
+ uint32 currentTimer = _vm->_game->_priorFrameTimer;
bool flag = false;
if ((msg._flags & KMSG_EXPIRE) != 0) {
@@ -277,6 +277,12 @@ void KernelMessages::processText(int msgIndex) {
}
}
+void KernelMessages::delay(uint32 priorFrameTime, uint32 currentTime) {
+ for (uint i = 0; i < _entries.size(); ++i) {
+ _entries[i]._timeout += currentTime - priorFrameTime;
+ }
+}
+
/*------------------------------------------------------------------------*/
TextDisplay::TextDisplay() {