Opened 22 years ago

Closed 22 years ago

Last modified 6 years ago

#8155 closed patch

CMI: Cannon fixes

Reported by: eriktorbjorn Owned by: SF/ender
Priority: normal Component: Engine: SCUMM
Version: Keywords:
Cc: Game: Monkey Island 3

Description

I'm not quite happy about the way this patch turned out, but there's enough good in it to submit, I think. It is intended to make the cannon scene in CMI more playable.

It does so by correcting the order in which the parameters to SO_CURSOR_PUT are popped (this is important) and how mouse.y is calculated (I haven't really checked if this makes any noticeable difference). This is the important part of the patch, and could probably be applied right away.

It also adds a new backend function to move the mouse cursor to a specified position. Apparently CMI locks the mouse cursor's X coordinate by constantly returning it to "neutral". For some reason I couldn't get this to work in fullscreen mode without adding an ugly hack, which is one of the reasons I'm not altogether happy about it.

The script that controls the cannon's movement appears to be room-10-2007.dmp. At the time of writing descumm6 fails to descumm this, but that's trivial to fix. (I've submitted another patch for that.)

Ticket imported from: #664895. Ticket imported from: patches/260.

Attachments (1)

comi-cannon.diff (3.3 KB ) - added by eriktorbjorn 22 years ago.
Patch against a January 8 CVS snapshot

Download all attachments as: .zip

Change History (4)

by eriktorbjorn, 22 years ago

Attachment: comi-cannon.diff added

Patch against a January 8 CVS snapshot

comment:1 by SF/ender, 22 years ago

Well, the fullscreen problem sounds more like an SDL bug than anything... so in my opinion it's good enough to go in.

Fingolfin is a SDL developer, so maybe he'll have an idea on if it's a bug or not. Bravo :)

comment:2 by SF/ender, 22 years ago

Owner: set to SF/ender
Status: newclosed

comment:3 by digitall, 6 years ago

Component: Engine: SCUMM
Game: Monkey Island 3
Note: See TracTickets for help on using tickets.