Opened 16 years ago

Closed 16 years ago

Last modified 12 months ago

#8291 closed patch (outdated)

FOTAQ: Partial fix/hack for scroll timing

Reported by: eriktorbjorn Owned by: joostp
Priority: normal Component: Engine: Queen
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 16 years ago.
Patch against an October 20 CVS snapshot

Download all attachments as: .zip

Change History (8)

by eriktorbjorn, 16 years ago

Attachment: fotaq_timing.diff added

Patch against an October 20 CVS snapshot

comment:1 by eriktorbjorn, 16 years ago

Owner: set to joostp

comment:2 by eriktorbjorn, 16 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, 16 years ago

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

comment:4 by eriktorbjorn, 16 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, 16 years ago

Resolution: outdated
Status: newclosed

comment:6 by eriktorbjorn, 16 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, 12 months ago

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