Opened 21 years ago

Closed 20 years ago

Last modified 18 months ago

#1194 closed defect (fixed)

MI1demo: plank behind the kitchen

Reported by: SF/logicdeluxe Owned by: fingolfin
Priority: normal Component: Engine: SCUMM
Version: Keywords:
Cc: Game: Monkey Island 1

Description

ScummVM 0.5.3cvs (Aug 27 2003 16:57:28) Guybrush keeps kicking the plank all the time until he goes somewhere else. This happens with the standalone EGA and Amiga demos and also with Passport to Adventures. But works fine with the full versions where this bug was there a long time ago. Maybe it is related to that.

Ticket imported from: #795937. Ticket imported from: bugs/1194.

Change History (8)

comment:1 by Kirben, 21 years ago

Owner: set to SF/ender

comment:2 by Kirben, 21 years ago

Bug #554122 was the earlier bug in full version of Monkey Island. Endy, could you have a look at this issue ? since it looks like you fixed the other bug long ago.

comment:3 by SF/ender, 21 years ago

Yikes, that was a long time ago. Can you clarify your "works fine with the full version"? The EGA version is a full version - do you mean it does not occur with the VGA version?

comment:4 by SF/logicdeluxe, 21 years ago

With "full versions" I mean all of them, including the EGA version. I checked it with EGA, VGA, enhanced CD and with the Amiga version. I don't know about resources from other systems like mac though.

comment:5 by fingolfin, 21 years ago

What happens here: a script checks the distance of guybrush to a specific object. If that distance is less than 3, the plank is "activated". So after you stepped on the plank, in regular Monkey EGA (non-demo), we get this (I added some printf's):

(294,131); (298, 134) -> (297,133); dist (3, 2) Get dist 1 - 902: 3

The first two coordinate pairs are the coords of actor 1 and obj 902 (printed from getObjActToObjActDist). The third are the coordinates of object 902 after adjustXYToBeInBox() has been applied. Finally the resulting x/y distance are shown (the maximum of which is the final distance)

For PASS now, we get: (294,131); (296, 133) -> (296,133); dist (2, 2) Get dist 1 - 307: 2

Since this distance is less than 3, the plank will be triggered again and again and again. Note that Guybrush's pos is identical to that in the regular MonkeyEGA, however the position of the target object differs.

Also note that obj 307 is used instead of obj 902, but that is irrelevant (room & costume ids also differ, but that is no surprise, given that PASS combines three game demos into one data set).

comment:6 by fingolfin, 20 years ago

Owner: changed from SF/ender to fingolfin
Resolution: fixed
Status: newclosed

comment:7 by eriktorbjorn, 16 years ago

Fingolfin asked me check if the workaround for this bug is still necessary. Apparently it is. At least in the "Passport" demo.

comment:8 by dwatteau, 18 months ago

For the SCUMM historians among us, the root cause of this bug has been fixed by the Trac #13366 fix in commit d719e83783a530e6e272ddd0207edaf33fb37ed0 and so this ScummVM-only workaround has finally been removed 19 years later :)

Note: See TracTickets for help on using tickets.