Opened 18 years ago

Closed 18 years ago

Last modified 3 years ago

#8291 closed patch (outdated)

FOTAQ: Partial fix/hack for scroll timing

Reported by: eriktorbjorn Owned by: joostp
Priority: normal Component: Engine: Queen
Version: Keywords:
Cc: Game: Flight of the Amazon Queen

Description

When smoother scrolling was implemented in the FotAQ intro, it was done without any attempt at timing whatsoever. I don't know if the plan was to fix this later, or if it was just an oversight. Anyway, the result is that on a fast computer the scrolling is way too fast.

This patch attempts to fix the timing on the first two scrollings. I didn't do the third one since it's slightly more complicated, but the general idea would be the same. The timing right now is guesswork, so it may be wrong.

I didn't want to commit this since, apart from being incomplete, I don't like the way I access the get_msecs() and delay() functions.

Ticket imported from: #826960. Ticket imported from: patches/396.

Attachments (1)

fotaq_timing.diff (3.4 KB ) - added by eriktorbjorn 18 years ago.
Patch against an October 20 CVS snapshot

Download all attachments as: .zip

Change History (8)

by eriktorbjorn, 18 years ago

Attachment: fotaq_timing.diff added

Patch against an October 20 CVS snapshot

comment:1 by eriktorbjorn, 18 years ago

Owner: set to joostp

comment:2 by eriktorbjorn, 18 years ago

Assigning to joostp since he's involved with the FotAQ engine, though maybe not this particular part of it. (I wanted to assign it to twogood, but that wasn't an option.)

comment:3 by SF/twogood, 18 years ago

The Queen engine should now use a timer instead of delaying, is the patch still needed?

comment:4 by eriktorbjorn, 18 years ago

I guess not, though it took me some time to figure out why it wasn't needed. (Display::update() waits for the timer, so now there is a delay in the scroll loop.) Closing...

comment:5 by eriktorbjorn, 18 years ago

Resolution: outdated
Status: newclosed

comment:6 by eriktorbjorn, 18 years ago

One thing I noticed though: It's not possible to quit ScummVM during the smooth scrolling, because waitForTimer() throws away any events that aren't handled by the backend itself.

I believe you can fix this by replacing

OSystem::Event event;

_system->delay_msecs(10); while (_system->poll_event(&event));

with

g_queen->delay(10);

But I haven't tested enough to know if there are any undesirable side-effects to this.

comment:7 by digitall, 3 years ago

Component: Engine: Queen
Game: Flight of the Amazon Queen
Note: See TracTickets for help on using tickets.