[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