Fixes various graphical artifacts, e.g. movie ENG:J11@230
of Spaceship Warlock having a big steam cloud in the top-left instead of
the left-turn hotspot, the Invictus logo in Over-Ring-Under having a
large white box to the right of the text.
Since filmloop casts call the Sprite Data loading methods directly,
we want to fix the possible negative dimensions there.
Fixes starup of sequencer video in totaldistorion
--start-movie="ATD\HD\ADTDVSVF\TDVIDDB1.DIR" totaldistortion-win
It has been mentioned in "Director in a Nutshell, pg 15" that
auto-puppet is first introduced in D6, therefore completely
dropping checks for D2-D5. Also added code that skips individual
property of a frame if that specific property is found it be
auto-puppet.
eg, A sprite has change in `locH` and `blend`, and blend is auto-puppeted
(it was set somewhere before, and autoPuppet flag for this bit is true),
then that means frame loading will only skip any changes made to `blend`
and will load `locH` as usual.
Previously, the palette ID namespace was shared between cast ID, builtin
ID and resource fork ID. This was quite messy.
The new approach is to use CastMemberID; builtin palettes are libId -1,
cast palettes use their respective libId, and a null CastMemberID
indicates a blank entry.
In D5 and up, you can have multiple casts in the same movie, along with
external casts. Unlike shared casts these are different namespaces;
each movie maps the casts to a libId, which is then used by
CastMemberID.castLib.
For D4 and below, the default cast libId is now represented by
DEFAULT_CAST_LIB. This should make refactoring easier in future.
In Director, palette IDs in the palette channel apply to all subsequent
frames. If we seek to an arbitrary frame, the correct palette
should be applied.
Fixes the introductory cutscene in Majestic: Part 1.
If a channel contains a 1-bit bitmap cast member, use the foreground
color instead of black when rendering in Background Transparent mode.
Fixes various text bitmaps in Total Distortion and iD4 Mission Disk 1.
In Director, FPS entries in the tempo channel apply to all subsequent
frames. If we seek to an arbitrary frame, the correct tempo settings
should be applied.
Fixes the animation speeds of the cauldron and the walking teapot in
Chop Suey.
7f0d69367b introduced a fix for
fetching the palette. However, it misinterpreted the number as an
unsigned int instead of a signed int, leading to incorrect palettes
on certain other games.
The engine treats film loops as N full channels getting rendered to the
screen in the space of one. As such, it's impossible to pre-blit together
the content, as any blitter mode can be used for each of the items.