Opened 21 years ago
Closed 21 years ago
Last modified 8 months ago
#420 closed defect
MI2: Lockup after stealing the fish
|Reported by:||eriktorbjorn||Owned by:|
|Cc:||Game:||Monkey Island 2|
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:  o5_jumpRelative() Script 40:  o5_faceActor() Script 40:  o5_getActorRoom() Script 40:  o5_getActorRoom() Script 40:  o5_isNotEqual() Script 40:  o5_getDist() Script 40:  o5_isGreater() Script 40:  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.
Change History (8)
by , 21 years ago
comment:1 by , 21 years ago
|Component:||→ Engine: SCUMM|
|Game:||→ Monkey Island 2|
comment:2 by , 21 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 , 21 years ago
|Summary:||MONKEY2: Lockup after stealing the fish → MI2: Lockup after stealing the fish|
comment:4 by , 21 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 , 21 years ago
|Status:||new → closed|
comment:6 by , 15 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 , 8 months 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)
Savegame in the kitchen