[Scummvm-tracker] [ScummVM :: Bugs] #4963: ICEMAN Demo: Fails to find base object
ScummVM :: Bugs
trac at scummvm.org
Fri Jul 12 05:30:11 UTC 2024
#4963: ICEMAN Demo: Fails to find base object
---------------------------+-------------------------------
Reporter: SF/mthreepwood | Owner: bluegr
Type: defect | Status: closed
Priority: normal | Component: Engine: SCI
Version: | Resolution: fixed
Keywords: | Game: Codename: ICEMAN
---------------------------+-------------------------------
Comment (by sluicebox <22204938+sluicebox@…>):
In [changeset:"b29ffb2bfb1430d8c571fd34d22b8245040fce99" b29ffb2b]:
{{{#!CommitTicketReference repository=""
revision="b29ffb2bfb1430d8c571fd34d22b8245040fce99"
SCI: Update class table while initializing objects
Sierra's interpreter populated the class table and initialized objects
in one pass, until SCI3. We have always been doing two passes: one to
initialize the class table and then another to initialize objects.
This should not make a difference, except that some scripts contain two
classes with the same supposedly unique class number. When this occurs,
the first class is always overwritten before it can be used, causing any
objects in between to be associated with the wrong class.
In 2010, this condition caused the ICEMAN demo to crash. It was worked
around by adding a third pass. This prevented that particular script
from crashing, but the real problem remained.
Now we update the class table and initialize objects in one pass.
For SCI3, we continue to use two passes like the original.
- Fixes KQ5 FM-Towns save and restore dialog buttons
- Fixes ICEMAN demo properly, removes workaround (bug #4963)
See: 3485d433c5c158ceb1ea74d985fa9c1274185e9c
}}}
--
Ticket URL: <https://bugs.scummvm.org/ticket/4963#comment:7>
ScummVM :: Bugs <https://bugs.scummvm.org>
ScummVM
More information about the Scummvm-tracker
mailing list