Commit Graph
45 Commits
Author SHA1 Message Date
Eugene Sandulenko 233e0e21a8 DIRECTOR: Draw video only when it is truly changed 2020-08-24 20:53:37 +02:00
Eugene Sandulenko 806c946fd6 DIRECTOR: Attempt to implement 'directToStage'
Not working, as it is not clear how to change priority of a channel
2020-08-23 19:46:58 +02:00
Eugene Sandulenko f3f0816bd3 DIRECTOR: Fixed showing initial frame on stopped videos 2020-08-22 18:02:10 +02:00
Nathanael Gentry 0bab9810c0 DIRECTOR: Fix getWidgetRect code path
This is morally equivalent to getWidgetRect, but takes into account the changes
to dimensions that MacText makes for borders and gutters and a text shadow.
Thus, these features are working again.
2020-08-21 16:34:06 -04:00
Eugene Sandulenko 45c49b1195 DIRECTOR: Load DVs only on demand 2020-08-21 10:52:08 +02:00
Eugene Sandulenko 586790d987 DIRECTOR: Start Digital Videos when they appear on a channel 2020-08-20 23:50:34 +02:00
Eugene Sandulenko 7053648484 DIRECTOR: Properly set movieRate when DV ends 2020-08-18 23:39:05 +02:00
Eugene Sandulenko 5ec3815106 DIRECTOR: Update digital video independently from the frame tempo 2020-08-18 13:08:52 +02:00
Eugene Sandulenko 3f160561d6 DIRECTOR: Fixed for 32bpp mode, things work 2020-08-16 23:08:33 +02:00
Nathanael Gentry adc8847982 DIRECTOR: Make editable texts editable again 2020-08-14 01:23:11 -04:00
Eugene Sandulenko c2a7a6586f DIRECTOR: Properly position digital videos 2020-08-14 00:42:00 +02:00
Eugene Sandulenko db4c8164e5 DIRECTOR: More work on Digital Video 2020-08-12 19:37:30 +02:00
djsrv 0ff7274993 DIRECTOR: Multiply version numbers by 100
To accomodate minor version.
2020-08-10 15:00:55 -04:00
Nathanael Gentry 43650c1a8a DIRECTOR: Don't try to make shapes from bitmaps
This is so a proper null cast and then surface-not-found warning can be issued.
2020-08-10 11:59:06 -04:00
Eugene Sandulenko 09c12a820a GRAPHICS: MACGUI: Make sure MacText is updated on cursor change 2020-08-07 10:07:32 +02:00
Scott Percival 628273226b DIRECTOR: Move digital video properties to channel 2020-08-01 23:15:12 +08:00
Nathanael Gentry d293504b9e DIRECTOR: Fix typo 2020-07-31 10:37:05 -04:00
Nathanael Gentry 929cb91970 DIRECTOR: Split out Channel::setClean 2020-07-29 12:54:42 -04:00
Nathanael Gentry d92a3f33b0 DIRECTOR: Implement basic alpha transparency
This finishes the implementation for blend of sprite, as well.
2020-07-29 00:47:26 -04:00
djsrv fcb79c78c2 DIRECTOR: Update puppet scriptId 2020-07-27 16:28:47 -04:00
Scott Percival 4bfffc43a7 DIRECTOR: Move widgets from cast members to channels (#2372)
This change is required to support copies of the same cast member running in different channels.

* DIRECTOR: Move widget ownership from cast member to channel

* DIRECTOR: Cache cast dimensions from createWidget

* DIRECTOR: Add null checks for createWidget

* GRAPHICS: MACGUI: Clear active/hover WM references if the widget is destroyed

* DIRECTOR: LINGO: Re-add null check for kTheEditableText

* DIRECTOR: Avoid destroying widgets if the channel isn't dirty

* DIRECTOR: Fix dirty test

* DIRECTOR: Fix text field writeback

* DIRECTOR: Fix null cast check

* DIRECTOR: Add bbox as argument to createWidget

* DIRECTOR: Add setCast method to Channel

* DIRECTOR: Fix use-after-free in Channel::getMask

* DIRECTOR: Fix bounding box for Button sprites

* DIRECTOR: Cache widget dimensions in cast member

* DIRECTOR: Remove widget from channel if nextSprite is empty

* GRAPHICS: MACGUI: Fix MacText::splitString for empty string case

* DIRECTOR: Add null checks for movie and score in processEvents
2020-07-26 04:32:29 +00:00
Nathanael Gentry c9a1dfa75d DIRECTOR: Recenter stretched sprites 2020-07-24 13:22:30 -04:00
Nathanael Gentry 45cd97c1c4 DIRECTOR: Add matte intersect/within checks 2020-07-22 15:19:16 -04:00
Nathanael Gentry ae1af9c06a DIRECTOR: Fix matte intersection check
Actually, it's not applied indiscriminately. It only take effect when there is
already a matte ink on the given sprite.
2020-07-21 23:12:54 -04:00
Nathanael Gentry 405f0bf1b9 DIRECTOR: Don't unnecessarily redraw puppets 2020-07-21 23:12:53 -04:00
djsrv 2a310ee7e7 DIRECTOR: Fix segfault 2020-07-21 16:21:56 -04:00
Nathanael Gentry 6b404187fc DIRECTOR: Move mouse position check to channel
This permits, for instance, only changing the cursor when we are inside a
bitmapped sprite.
2020-07-21 15:11:34 -04:00
Eugene Sandulenko 00b0c3b474 DIRECTOR: Sanity check for Channel::isActiveText() 2020-07-19 17:32:25 +02:00
Eugene Sandulenko 7e09789d10 DIRECTOR: Set the current editable text channel 2020-07-19 17:17:45 +02:00
Nathanael Gentry 5fb984e99f DIRECTOR: Mostly implement cursor of sprite 2020-07-18 00:37:57 -04:00
Nathanael Gentry 93d9bf4671 DIRECTOR: Add partial set-clean rendering mode
This is a mode for when the script or other internal parameters of a sprite have
changed, but nothing on screen should change. This also ensures that cast
widgets are properly updated with new priorities on each frame.
2020-07-16 18:36:33 -04:00
Nathanael Gentry 229c1a233f DIRECTOR: Initialize channel with sprite dimensions 2020-07-15 11:50:57 -04:00
Nathanael Gentry 3733f3f02a DIRECTOR: Skip over empty channels 2020-07-14 14:58:17 -04:00
Eugene Sandulenko 937c108af6 DIRECTOR: Initialize DirectorPlotData on generation 2020-07-13 11:41:54 +02:00
Nathanael Gentry 8276404d23 DIRECTOR: Reorganize dirty channel conditions
A condition is also added for stretch of sprite location updates
2020-07-09 23:58:48 -04:00
Nathanael Gentry 9c50f9162c DIRECTOR: LINGO: Implement spriteBox 2020-07-09 23:40:36 -04:00
Nathanael Gentry 206118a341 DIRECTOR: Mostly implement stretch of sprite
Note that the offset is currently not correct. This will be fixed in a future commit.
2020-07-09 23:40:35 -04:00
Nathanael Gentry 4e4c603a6e DIRECTOR: Add check for stretched sprite 2020-07-09 23:40:01 -04:00
Nathanael Gentry c6d7766209 DIRECTOR: Keep sprite dimensions in channel 2020-07-09 23:40:01 -04:00
Nathanael Gentry 9a4aeffc25 DIRECTOR: Refactoring for implementing stretch of sprite 2020-07-09 15:53:59 -04:00
Nathanael Gentry 0bffd5d616 DIRECTOR: Reorganize control of DirectorPlotData
The Channel is also made into a class.
2020-07-09 13:31:32 -04:00
Nathanael Gentry ea48193089 DIRECTOR: Add manual ink fixup mode
This is necessary because texts and shapes, in particular, come already
colourized and we need to adjust the colourization to match the ink style before
we get to the blitting step. This seems faster than copying the surface or just
keeping the text as a mask and colourizing the chunks as we go.
2020-07-09 09:40:14 -04:00
Nathanael Gentry e3cf71185d DIRECTOR: Standardize channel colour access 2020-07-09 09:40:14 -04:00
Nathanael Gentry ed36fd4a37 DIRECTOR: Standardize cast colour access 2020-07-09 09:40:14 -04:00
Nathanael Gentry 8a85754f25 DIRECTOR: Move Channel to its own file 2020-07-08 13:44:02 -04:00