Opened 22 years ago

Closed 22 years ago

Last modified 2 years ago

#420 closed defect

MI2: Lockup after stealing the fish

Reported by: eriktorbjorn Owned by:
Priority: normal Component: Engine: SCUMM
Version: Keywords:
Cc: Game: Monkey Island 2

Description

In revision 1.124 of script_v1.cpp the following hack to o5_getDist() was removed:

/* FIXME: Fix for monkey 2, dunno what's wrong in scummvm */ if (_gameId == GID_MONKEY2 && vm.slot[_currentScript].number == 40 && r < 60) r = 60;

I don't know about then or right now, but at least in the August 16 CVS snapshot this was still needed, or ScummVM will lock up when you leave the kitchen in Elaine's manor, after stealing the fish.

I think what happens if that ScummVM tries to move the chef towards you, but gets stuck before he can get close enough. These are the scripts that are repeating forever:

Script 41: [2E] o5_delay() Script 40: [4D] o5_walkActorToActor() Script 40: [AE] o5_wait() Script 40: [18] o5_jumpRelative() Script 40: [49] o5_faceActor() Script 40: [83] o5_getActorRoom() Script 40: [3] o5_getActorRoom() Script 40: [88] o5_isNotEqual() Script 40: [74] o5_getDist() Script 40: [78] o5_isGreater() Script 40: [18] o5_jumpRelative() Script 40: [A] o5_startScript()

I've attached a savegame. If that doesn't work, try starting the game in room 54. But then you'll have to go through the trouble of distracting the chef first.

Ticket imported from: #597022. Ticket imported from: bugs/420.

Attachments (1)

monkey2.s01 (41.0 KB ) - added by eriktorbjorn 22 years ago.
Savegame in the kitchen

Download all attachments as: .zip

Change History (8)

by eriktorbjorn, 22 years ago

Attachment: monkey2.s01 added

Savegame in the kitchen

comment:1 by eriktorbjorn, 22 years ago

Component: Engine: SCUMM
Game: Monkey Island 2

comment:2 by fingolfin, 22 years ago

OK, I think we removed that exactly because we didn't know anymore what it was fixing. So now that we know what, we can either re-add it, with a pointer to this bug report, or we can try to properly fix the issue :-)

comment:3 by fingolfin, 22 years ago

Summary: MONKEY2: Lockup after stealing the fishMI2: Lockup after stealing the fish

comment:4 by SF/ender, 22 years ago

Well, I've readded the fixme. For now I will close this bug, the fixme points to it if anyone feels like reopening it and tackling the REAL cause in the future.

comment:5 by SF/ender, 22 years ago

Status: newclosed

comment:6 by eriktorbjorn, 17 years ago

I wonder if this workaround is still needed. I tried reproducing it a while ago (while trying Fingolfin's timer patch in bug report #1861582), and I failed both with and without the patch.

comment:7 by dwatteau, 2 years ago

This ScummVM-only workaround has been removed in commit ea0f0cc9ee1e089c94e1ce9fee6a587920e3147f, since the bug appears to have been fixed a long time ago in our SCUMM v5 implementation.

(I wish I knew which commit fixed that, but I'm not really interested in doing a Git bisect between 2002 and 2022 :p)

Note: See TracTickets for help on using tickets.