aboutsummaryrefslogtreecommitdiff
path: root/engines/gnap/gnap.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/gnap/gnap.cpp')
-rw-r--r--engines/gnap/gnap.cpp29
1 files changed, 23 insertions, 6 deletions
diff --git a/engines/gnap/gnap.cpp b/engines/gnap/gnap.cpp
index d6ec44cfc5..5175d0702b 100644
--- a/engines/gnap/gnap.cpp
+++ b/engines/gnap/gnap.cpp
@@ -327,14 +327,31 @@ int GnapEngine::loadSavegame(int savegameNum) {
return 1;
}
-void GnapEngine::delayTicks(int a1) {
- // TODO
- gameUpdateTick();
+void GnapEngine::delayTicks(int val, int idx = 0, bool updateCursor = false) {
+ int startTick = _timers[idx];
+
+ _timers[idx] = val;
+
+ while (_timers[idx] && !_gameDone) {
+ gameUpdateTick();
+
+ if (updateCursor)
+ updateGrabCursorSprite(0, 0);
+ }
+
+ startTick -= _timers[idx];
+ if (startTick < 0)
+ startTick = 0;
+
+ _timers[idx] = startTick;
+}
+
+void GnapEngine::delayTicksA(int val, int idx) {
+ delayTicks(val, idx);
}
-void GnapEngine::delayTicksCursor(int a1) {
- // TODO
- gameUpdateTick();
+void GnapEngine::delayTicksCursor(int val) {
+ delayTicks(val, 0, true);
}
void GnapEngine::setHotspot(int index, int16 x1, int16 y1, int16 x2, int16 y2, uint16 flags,