In an undocumented use, you can access the property list of a script object
with these.
Fixes the Stella Artois label hunt minigame in Virtual Nightclub.
After creating a bunch of tests, it is clear that the choice of what
mouseDown/mouseUp handler in the hierarchy to use is determined just
before running it. This was a problem, as we were caching that
information up-front when processing the input events, and it is
entirely possible for e.g. a mouseDown handler to jump to another frame,
which would affect which subsequent mouseDown/mouseUp handlers to call.
Fixes director-tests/D4-unit/T_EVNT01 to T_EVNT11.
If you trigger e.g. a mouseDown and a mouseUp event, the mouseUp event
should not be run until the mouseDown event has returned.
Fixes director-tests/D4-unit/T_EVNT03.DIR
Taking coordinates directly from the event manager could introduce
subtle timing problems, and makes it near-impossible to inject fake
events into the pipeline for testing.
It is possible to have a script which looks like a factory,
but has normal functions in it also. Calling those normal functions
should not apply the bodge which injects the me object as argument 1.
The startMovie handler needs "the frame" to return the starting frame,
which isn't necessarily 1. Easiest way to fix this is to set up the
frame data in the Score::startPlay() handler.
Fixes the broken navigation in the Empire State Building in Hell Cab.
Components such as Common::MacResManager call this method to check if an
alternate stream exists; a null response is valid, so move this to the
debug log.
Sprites in a score frame have a width and a height; it appears these
values are only to be used if the "stretch" flag is set. Otherwise, the
cast dimensions are used.
Fixes the scaling when picking up the photo album from the filing
cabinet in P.A.W.S.
Cast bounding boxes are now copied, and duplicates of shared cast
members are kept in the (cross-movie) shared cast.
Fixes displaying the inventory bar in Virtual Nightclub.
The Mask ink type allows Director to combine a sprite with a 1bpp
mask bitmap to stencil an image. Previously we were using the widget
drawing code to generate this image, which caused issues with scaling
and depth (as the surface was formatted to match the screen). The new
code checks for a 1bpp image specifically and sends it through, removing
the workarounds for screen depth.
Fixes the drawing of the welcome cube at the start of Virtual Nightclub.
In Director you can have multiple cast members with the same name.
Looking up a cast member by name should always return the first member
ID; we don't necessarily load the cast members in order, so we need
to verify this. Also any cast manipulation actions should update or
refresh the name cache.
Fixes the bitmaps chosen for the welcome cube at the start of Virtual Nightclub.