[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