Opened 13 years ago

Closed 13 years ago

Last modified 13 years ago

#2734 closed defect (fixed)

No Music in Simon1

Reported by: athrxx Owned by: eriktorbjorn
Priority: normal Component: Engine: AGOS
Keywords: Cc:
Game: Simon the Sorcerer 1

Description

I don't know if I am the only one who encountered this,
but when compiling with Visual C++ 7.1 and turning on
optimizations (one or more of /O1 /O2 /Ox, /Og) the
midi music in Simon 1 won't play (Simon 2 works fine).

The offending lines are lines 482 and 489 in
simon\midi.cpp. The problem seems to be the order in
which the methods that are passed as arguments are called.

Changing both lines from

in->seek(in->readUint32BE() + in->pos(), SEEK_SET);

to

uint32 offset = in->readUint32BE();
in->seek(offset + in->pos(), SEEK_SET);

solves the problem.
The uint32 should obviously be declared only once.

Ticket imported from: #1520629. Ticket imported from: bugs/2734.

Change History (5)

comment:1 by eriktorbjorn, 13 years ago

This should work as well:

in->seek(in->readUint32BE(), SEEK_CUR);

I'm going to make that change. Please let me know how that
turns out.

comment:2 by athrxx, 13 years ago

That was fast :)

Yes, this seems to work fine.

Thanks, Florian

comment:3 by eriktorbjorn, 13 years ago

Ok, I'll close the bug, then. Thanks for spotting it!

I've committed the fix to both trunk and branch, which means
that if there is a ScummVM 0.9.1 (which seems very likely to
me) the fix will be there, as well.

comment:4 by eriktorbjorn, 13 years ago

Owner: set to eriktorbjorn
Resolution: fixed
Status: newclosed

comment:5 by Kirben, 13 years ago

Component: Engine: AGIEngine: AGOS
Game: Leisure Suit Larry 1Simon the Sorcerer 1
Note: See TracTickets for help on using tickets.