[Scummvm-tracker] [ScummVM] #9780: SCI: LSL6HIRES-CD: Crash when dialing phone in Larry's room
Colin Snover
trac at scummvm.org
Sun May 14 20:46:26 CEST 2017
#9780: SCI: LSL6HIRES-CD: Crash when dialing phone in Larry's room
-----------------------------------+-------------------------
Reporter: Mataniko | Owner: (none)
Type: defect | Status: new
Priority: normal | Component: Engine: SCI
Resolution: | Keywords: sci32
Game: Leisure Suit Larry 6 |
-----------------------------------+-------------------------
Comment (by csnover):
Just to recap, while I am working on a more ideal solution than to just
ignore name selectors in `SegManager::getObjectName` that point to objects
in `CloneTable`:
In LSL6hires there is an unnamed instance of `LarryTalker` in script 610.
The `name` selector for this unnamed instance is set by game scripts to a
reference to a dynamically created `Str` object.
When parts of the engine call `getObjectName` on this unnamed instance, an
invalid dereference error occurs because `getObjectName` expects that the
name property is either null or points to a string (either from a `Script`
or from `ArrayTable`), but in this case it is pointing to an object in
`CloneTable`.
Since the purpose of `getObjectName` is really to identify objects by
their original names (as defined in source scripts), I am working on
changing the way that retrieving the object’s name reference works so that
it does not get changed at runtime. (Currently, the name selector is read
out of the object’s `_variables`, so when a game script sets its name
selector, `getObjectName` gets the new one.)
This change should also allow us to get rid of the Torin script 64000
workaround in `getObjectName`, since that was caused by a similar problem
(a File object with its `name` set to a dynamic string, which was deleted
while the File object was still active).
One (temporary) downside of this change will be that since workarounds
rely on object names, some of them may need to be fixed up since they
could be matching a dynamic name value which will no longer exist.
--
Ticket URL: <https://bugs.scummvm.org/ticket/9780#comment:4>
ScummVM <https://bugs.scummvm.org>
ScummVM
More information about the Scummvm-tracker
mailing list