[Scummvm-tracker] [ScummVM :: Bugs] #14886: AGOS: Waxworks crashing at Egypt Level 3, corrupting save file

ScummVM :: Bugs trac at scummvm.org
Tue Mar 26 21:38:39 UTC 2024


#14886: AGOS: Waxworks crashing at Egypt Level 3, corrupting save file
------------------------+---------------------------
Reporter:  Cobradabest  |       Owner:  (none)
    Type:  defect       |      Status:  new
Priority:  high         |   Component:  Engine: AGOS
 Version:               |  Resolution:
Keywords:               |        Game:  Waxworks
------------------------+---------------------------
Comment (by athrxx):

 The diagnosis above seems to be correct. loadRoomItems() invalidates the
 current subset of items and loads a new subset. It does not update the
 items contained in the _itemStore array, though. That array may still hold
 items that have been invalidated. And when the savegame code tries to find
 the id of such an invalidated item it will trigger that fatal error.

 Unfortunately, I haven't discovered any particular flaw in our
 implementation of loadRoomItems() or in our savegame code. Our code seems
 to be modelled very closely after the original code. The original will
 also not tolerate invalid items in the _itemStore array and will exit to
 DOS with a similar error if it encounters an invalid item.

 Now, I took the savegame from here and made it loadable with the original
 interpreter in DOSBox. And the behavior there is exactly the same: when I
 walk around the corner to trigger the loadRoomItems() call and then try to
 save the game it will error out. So it seems that the game data already is
 in a broken state in that Cobra savegame. And the walk around the corner
 with the loadRoomItems() just finishs it off completely. Sadly, this makes
 it much harder to track down the exact cause of the bug...
-- 
Ticket URL: <https://bugs.scummvm.org/ticket/14886#comment:11>
ScummVM :: Bugs <https://bugs.scummvm.org>
ScummVM


More information about the Scummvm-tracker mailing list