Opened 22 years ago
Closed 22 years ago
#370 closed defect
MI1VGA: freeing Otis
Reported by: | SF/inguin | Owned by: | SF/ender |
---|---|---|---|
Priority: | normal | Component: | Engine: SCUMM |
Version: | Keywords: | ||
Cc: | Game: | Monkey Island 1 |
Description
I just tried to free Otis from his prison cell by carrying a mug of grog from the bar to the prison. Unfortunately I waited a little too long before filling the grog from the melting mug into a fresh one -- I tried it at the very moment when the mug dissolved completely. Suddenly ScummVM crashed, dropping this message:
Error(34:65:0xD2): Can't set name of object 375!
ScummVM did automatically save the game before crashing (see the attached file), but unfortunately I can't prevent it from crashing if I load that savegame. I'm gonna start all over to see if it's reproducable.
Ticket imported from: #587553. Ticket imported from: bugs/370.
Attachments (2)
Change History (8)
by , 22 years ago
Attachment: | monkeyvga.s00 added |
---|
comment:1 by , 22 years ago
OK, I tried it and it is reproducible: Just fill a mug with grog, wait till it dissolves completely and ScummVM will crash. This time I saved the game before filling the mug.
comment:2 by , 22 years ago
This is a consistent crash for me. But it doesn't crash if Guybrush is standing in the scumm bar when the mug disolves.
Here is the relevant part of script 65, which causes this crash:
... [009C] (2E) Delay(300); [00A0] (DD) SetClass(Local[0],[12]) [00A7] (D4) SetObjectName(Local[0],"pewter wad") [00B5] (2E) Delay(300); [00B9] (A9) SetOwnerOf(Local[0],0) [00BD] (A9) SetOwnerOf(Local[0],15) [00C1] (D4) SetObjectName(Local[0],"mug") [00C8] (0C) unlockScript(66) [00CB] (A0) StopScript()
The last call to SetObjectName is what fails with an Error(41:65:0xCA): Can't set name of object 374! when the mug has been destroyed and is being returned to the scumm bar.
This is most likely due to the calls SetOwnerOf but I have no idea how object ownership works.
comment:3 by , 22 years ago
Anyone know if this bug is reproducable using the original interpreter? :)
comment:4 by , 22 years ago
I just tried the original .EXE in DosEmu: The game does not crash. Just to see if I get that right: The script removes the molten mug from the inventory and then tries to rename it? If it is so, then the original interpreter obviously just ignores the request while ScummVM errors out.
comment:5 by , 22 years ago
Owner: | set to |
---|---|
Status: | new → closed |
Savegame - seconds before crash