Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@npjg
Last active January 20, 2021 04:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save npjg/61c31ccdb870910e3a5d1ad666868801 to your computer and use it in GitHub Desktop.
Save npjg/61c31ccdb870910e3a5d1ad666868801 to your computer and use it in GitHub Desktop.
GSoC 2020 Final Evaluation
title author date
Google Summer of Code 2020 Final Evaluation
Nathanael Gentry
24 August 2020

Summary

My weekly progress on the Director engine is archived on my ScummVM blog. Here are eight highlights from my time at GSoC:

  • Rewrote the rendering pipeline in a new Stage (Window) class to be more like the original in functionality and efficiency.
  • Rendered ink and stretch effects pixel-wise with custom blitters
  • Encapuslated sprite properties in a Channel class
  • Made Macintosh GUI widgets (texts and buttons) more realistic with proper borders, shadows, outlines, alignment, and event activations
  • Finished implementing transition logic
  • Handled cursors from bitmap castmembers or resources
  • Eliminated redundant rendering surfaces and bitmap copying
  • Fixed game data path emulation for titles that use quirky detection schemes

Tasks still left to finish include rendering in >256-color depths and fully implementing sprite stretching. The MacText widget, which I contributed to, also needs further tuning to be realistic in titles like Spaceship Warlock that use a lot of text input. Some code that did not get merged was dynamically changing text properties from Lingo.

I was new to ScummVM and fairly ignorant about graphics programming, so I enjoyed spending the Community Bonding Period learning about how 2-D rendering actually works. Perhaps the most frustrating but rewarding part was not writing a grand new feature from scratch but spending a long time hunting down subtle rendering bugs -- artifacts, flashes, misalignments, and the like. I got to know git bisect quite well this summer :)

Commits

This is a snapshot of git log --author=Nathanael\ Gentry on the current ScummVM master, which shows the commits I made to ScummVM for the summer. The Director tree can be found here: https://github.com/scummvm/scummvm/tree/master/engines/director.

Here's my summer ScummVM contributor statistics:

GitHub Insights

commit 828595c9fc935854efc38988f69b5f10bdf21106
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Fri Aug 21 16:51:28 2020 -0400

    DIRECTOR: Don't override shape dimensions

commit 0bab9810c0fa44398fa5fa92fde35e4e35ef769a
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Fri Aug 21 16:17:56 2020 -0400

    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.

commit d650738f9fbad1dee3970177d0574ff632656dbb
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Fri Aug 21 14:32:18 2020 -0400

    DIRECTOR: Add puppet check on kTheCastNum

commit 5c7b8fce4776a22368c421a1f6a6042d5d8de5bc
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Fri Aug 21 12:00:18 2020 -0400

    DIRECTOR: LINGO: Add GetVolume XFCN as builtin

commit 2512ca2d5b03f91b99b4d5b3ad127c44a3cc7d36
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Thu Aug 20 13:15:36 2020 -0400

    GRAPHICS: MACGUI: Fix hex format decoding

commit 6011d53e78ecff591b81c44c21fd4dcd628d93a5
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Wed Aug 19 17:03:07 2020 -0400

    DIRECTOR: Fix typo

commit d2a1102423981e372a9b6bd822230a5a13c8e658
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Wed Aug 19 16:51:12 2020 -0400

    GRAPHICS: MACGUI: Fix screen copying with direct draw

commit faa88c8f51e441934b3d869aa23a416b69adb5b3
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Wed Aug 19 15:51:22 2020 -0400

    DIRECTOR: Preserve text formatting on setText

commit 7b82dcd8acb1fee39998bb39b25dbd25a4a278f7
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Wed Aug 19 13:00:32 2020 -0400

    GRAPHICS: MACGUI: Add colour to text render debug

commit 73c970421fb2a07adeccc18c9073dd08fffb2612
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Wed Aug 19 11:03:58 2020 -0400

    DIRECTOR: Re-render changed cursors on new frame

commit d7ec21cbeb03a372d2d4afb2c2f5557a497a0efa
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Wed Aug 19 10:37:43 2020 -0400

    DIRECTOR: Properly discover sprite cursors

    We canot just use getSpriteIDFromPos, as Director gets the cursor from the
    topmost sprite that has a non-empty cursor.

commit c99abbc645db27f8355403791aa0d497b8c9b4ac
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Wed Aug 19 10:14:37 2020 -0400

    DIRECTOR: Load resource files from relative paths

commit 55830094428f43d834ad54799f84b8eaa177678e
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Wed Aug 19 09:50:16 2020 -0400

    DIRECTOR: Add default cursor arrow case

commit 7d68cd77717562de55f4b20d0b2d8fcd4d92d2e7
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Wed Aug 19 09:42:05 2020 -0400

    Revert "DIRECTOR: Do not attempt to render cursor from empty sprite"

    This reverts commit 12a35cda57dbcf7e7ae37de7d6c50b15970f15ef.

commit bd2c3f2bba969356d6d85a994dc2c5d48bc87c51
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Wed Aug 19 09:05:57 2020 -0400

    DIRECTOR: Show ink type as decimal

commit adc8847982073fffdb54591039c5c746dc1b181c
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Thu Aug 13 23:37:10 2020 -0400

    DIRECTOR: Make editable texts editable again

commit b4c6ab24b0a091fe8a1c58fa556709bf148fe83d
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Thu Aug 13 19:42:26 2020 -0400

    GRAPHICS: MACGUI: Restore window border transparency

commit d12cb32f5dacda37e0591d8153df5ea4830aa583
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Thu Aug 13 12:34:21 2020 -0400

    DIRECTOR: Only recenter window on new dims

    DIRECTOR: Fix whitespace

commit 281c89f05f88c98080626ece1be2e4a0e0572f5a
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Wed Aug 12 23:57:30 2020 -0400

    GRAPHICS: MACGUI: Process windowed widget events

    This ensures the correct dimensions are passed to ensure widgets within windows
    process their events properly.

commit 8b7f9d4ab2a5d3bd629b69c131276c0fd5b93e8a
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Wed Aug 12 13:07:10 2020 -0400

    GRAPHICS: MACGUI: Handle direct draw window offsets

commit 3a69512fe1344ec468f1ed4279476b4c1666a4c7
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Wed Aug 12 12:17:01 2020 -0400

    GRAPHICS: MACGUI: Fix menu direct rendering

commit f28808007b9a97f694d5b7df3f584b16a026512e
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Tue Aug 11 14:28:36 2020 -0400

    DIRECTOR: Eliminate intermediate surface

commit a639ae4002ffa9497e2e60b3b2382a67d618f32a
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Tue Aug 11 12:54:14 2020 -0400

    GRAPHICS: MACGUI: Add WM direct copy mode

    This does not keep the current screen state cached in a surface, but re-creates
    the screen from its various components each time something changes. This avoids
    an intermediate blitting.

    The mode is enabled just by not providing a surface to the WM, and instead
    providing a width and height.

commit 59dd1716b1734a1e2c8c55f95b7c6a4b9dfd1f6d
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Tue Aug 11 20:04:04 2020 -0400

    GRAPHICS: MACGUI: Put pause token on heap

commit 07166de33fcbf0c0438c7e1944b2f3063eba223a
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Mon Aug 10 23:48:55 2020 -0400

    GRAPHICS: MACGUI: Add dirty rect handling to MacWindow

    The Director engine, which relied on this functionality in its Window class, is
    also updated.

commit 3bd3dee13d196ef8d051b60146ef9e9d0213624e
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Mon Aug 10 14:41:51 2020 -0400

    DIRECTOR: Make missing surface warning more helpful

commit a49feca451793cc3afbbb5e76848ccf09b3dce76
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Mon Aug 10 14:40:32 2020 -0400

    DIRECTOR: Properly set image tail length

commit 43650c1a8a9b6cbd5fbce586ea868b1a3267fd94
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Mon Aug 10 11:59:06 2020 -0400

    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.

commit e46e81f5059518661011041780697d8f9fe1c191
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Mon Aug 10 11:58:33 2020 -0400

    DIRECTOR: Add castNum to null cast warning

commit 2a90acd0eb1557caff4c8d942b058372e1dd70af
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Thu Aug 6 14:05:01 2020 -0400

    DIRECTOR: Offload transition handling to WM

commit 6a69c3a81f696e6744703a24f3c95f2d816cabb4
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Thu Aug 6 13:18:54 2020 -0400

    DIRECTOR: Draw windowed transitions in right area

commit 03ed4fe8fbbebdc5fbe8b2299dc1443fb2eeefa1
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Thu Aug 6 13:05:58 2020 -0400

    DIRECTOR: Fix typo

commit 7a15ae695a63f8c88f8a4a54bb1c4cabdd8f74f1
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Thu Aug 6 12:36:38 2020 -0400

    DIRECTOR: Implement kTheCenterStage

commit 33fff7efe2e318493caee2ae032007d267eb5a9f
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Thu Aug 6 12:36:08 2020 -0400

    DIRECTOR: Properly set window dimensions

commit fba1993465d89a0ec19415a0b9a5d6658beff94b
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Thu Aug 6 12:34:38 2020 -0400

    GRAPHICS: MACGUI: MacWindow: Add centering function

commit ed1b8bac24232bdd9c8dd37822cbf8ecca9c8c2d
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Thu Aug 6 11:34:30 2020 -0400

    DIRECTOR: Only re-init surface on changed dims

commit 05a18f74be85344077622de2277135028d64fb97
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Thu Aug 6 11:18:19 2020 -0400

    DIRECTOR: Reset current window on movie change

commit 5e5882b9fcedd81ca30ef88c985daf8666c5151e
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Wed Aug 5 13:57:34 2020 -0400

    DIRECTOR: Suppress GUI alert on kDebugFewFramesOnly

commit 15671a9b5647f7672eb84e3dee335c217088b55f
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Wed Aug 5 13:44:11 2020 -0400

    DIRECTOR: Implement b_alert

commit 9fad2dd13ba40743286c3e4ea8c34d79acd4459e
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Wed Aug 5 11:14:38 2020 -0400

    DIRECTOR: LINGO: Implement getNthFileNameInFolder

    Some games clumsily use this function for detecting the CD-ROM drive letter.
    This is its only known use case thus far.

commit b0c3246574de1b8c0527761001fab35214feb882
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Wed Aug 5 11:14:29 2020 -0400

    DIRECTOR: Also convert directory paths

commit 5cb525e29e49632eea536c67be46d67e244d5fa3
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Wed Aug 5 11:00:42 2020 -0400

    DIRECTOR: Record game data directory

commit 4c75242ae70c45267c494b106eb439b9280721a7
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Wed Aug 5 00:43:39 2020 -0400

    DIRECTOR: Fix typo

commit e74c53054b401f0afb216c1a2c398f5e0726d63b
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Tue Aug 4 23:52:28 2020 -0400

    DIRECTOR: Search for D4 Mac file extensions

commit 20fa33a6890abac60592effd2d00a467f7340a7d
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Tue Aug 4 22:20:37 2020 -0400

    DIRECTOR: Check if path is good before changing

    For Virtual Murder: Brett game (id murderbrett), a script takes care of making
    the path proper and trampling on that causes loading to fail.

commit 6b2ed3c8ca9839e81bc7ccf9238e50ec759b20a7
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Tue Aug 4 16:42:52 2020 -0400

    GRAPHICS: MACGUI: Properly reset cursor visibility

commit d1f63e2b1a3d3fa0a20dd3fa4b7b59d611267913
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Tue Aug 4 14:24:13 2020 -0400

    DIRECTOR: Only convert filename for MMM movies

commit 8badd763f273a67376dde2cb9072a6d34a966644
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Tue Aug 4 13:11:21 2020 -0400

    DIRECTOR: Check .Dir extension on Mac

commit 87a59c6064e61c1ff18ec13486b3cf5468c4a3a3
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Tue Aug 4 00:37:18 2020 -0400

    DIRECTOR: Add detection for Mercer Mayer storybook

commit 4496f009ab20f8f203b6d66961efe93ef231d02a
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Tue Aug 4 00:26:15 2020 -0400

    DIRECTOR: Improve D3 Mac palette channel loading

commit 6b830e2051e8e99496ccbfdb9e15a6a11e6737e4
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Mon Aug 3 23:20:18 2020 -0400

    DIRECTOR: Replace hardcoded base palette ID

    It seems that not all movies do have the palette ID starting at 1025, so we'll
    just load them by iterating through the hashmap.

commit 97cbcaa4fe5e4a496b1f99e4169755d73cf72e3e
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Mon Aug 3 17:57:18 2020 -0400

    DIRECTOR: Read D3 palettes for Windows platform

commit f2fe352c0030136bf2d54beb8deec14bf1e39ccf
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Mon Aug 3 13:29:05 2020 -0400

    DIRECTOR: Gracefully exit on bad EXE

commit acf93352b34cb1b11d82a1a0a0aef6a2fb10f966
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Mon Aug 3 09:21:03 2020 -0400

    DIRECTOR: Properly activate D3 palette castmembers

commit 68d2852e90ef51f87d0f9011d43be8b259157b16
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Mon Aug 3 09:43:33 2020 -0400

    DIRECTOR: Permit reassigning palette IDs

commit 580f8b7fd0cd99ea213b9ad129966d8cc0e320de
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Mon Aug 3 09:45:01 2020 -0400

    DIRECTOR: Read D3 palette channel info

commit d293504b9e9138dbe859f37f5a67c00c936bdc35
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Fri Jul 31 10:37:05 2020 -0400

    DIRECTOR: Fix typo

commit 3c980c2e3e5ad25f07c43bc51f9a9553216bc82e
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Fri Jul 31 09:57:45 2020 -0400

    DIRECTOR: Fix puppetSprite workaround condition

    Only replace the sprite early if the sprite is not already a puppet. This fixes
    a strange crash when clicking the storybook in Chop Suey.

commit 31e9d948e3a3e14dffe3cf65f4067f67dc08c293
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Fri Jul 31 08:25:56 2020 -0400

    DIRECTOR: Fix stageColor rendering

    Now, when the stageColor is changed, the whole screen is marked dirty and it is
    updated on the next call to Score::update, regardless of the next frame time.

commit 4c996feb5d504eae715608c3587303d5c1464fae
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Fri Jul 31 01:02:58 2020 -0400

    GRAPHICS: MACGUI: MacText: Fix selection condition

    Outside the while loop we only check pos > 0 once.

commit 1ef07ff5dd6e4a574e736cf14a3763cc6eedb3b5
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Fri Jul 31 00:45:48 2020 -0400

    GRAPHICS: MACGUI: MacText: Fix selection offsets

    There is an additional "character" at the end of each line that we weren't
    counting, which is what caused selection setting to get off.

commit d9e2420e905840c5bc8f1ff1b7002cbd0ecfde28
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Thu Jul 30 10:32:38 2020 -0400

    GRAPHICS: MACGUI: Fix warnings

commit 0e359d0b7b0cf9378e502d3edfe46527a03a1e1c
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Wed Jul 29 18:04:18 2020 -0400

    DIRECTOR: LINGO: Implement kTheSel* getters

commit 4907aae05e49b06f7ccc33d6261d88ee5cef59a2
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Wed Jul 29 18:01:15 2020 -0400

    GRAPHICS: MACGUI: MacText: Add selection index getter

commit 7bddd91bb80a47f7a463c2dc6bc6c94c9c1d7eb0
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Wed Jul 29 16:41:37 2020 -0400

    DIRECTOR: LINGO: Implement kTheSelection

commit abfe896a626ac433b63b2955309ae6873a99ec69
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Wed Jul 29 13:25:25 2020 -0400

    DIRECTOR: Add renderSprites debug line

commit adb725c223459d77099d22e5f29782eee30d4949
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Wed Jul 29 10:32:04 2020 -0400

    DIRECTOR: Update frame before enabling puppet

    This is a workaround for Majestic's main menu, to get hovering over the text
    options to show the proper highlighting. This just applies to the old
    puppetSprite lingo syntax

commit 929cb91970b652049d172a09bc1476c8a45097ea
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Wed Jul 29 12:39:37 2020 -0400

    DIRECTOR: Split out Channel::setClean

commit 0da17f9ae1d1752be7d085f838d7b9c5e12ba9db
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Wed Jul 29 10:09:50 2020 -0400

    DIRECTOR: Don't delay score update on goto

    Don't wait until the nextFrameTime. With this change, we are closer to original
    behaviour.

commit d92a3f33b088f86c64462825cc70827b253ef50e
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Wed Jul 29 00:11:28 2020 -0400

    DIRECTOR: Implement basic alpha transparency

    This finishes the implementation for blend of sprite, as well.

commit 4768478f6b14f1ba7e03dd9b70816c7da5866d44
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Tue Jul 28 23:46:34 2020 -0400

    DIRECTOR: Enforce proper types for cast colour setters

commit 04061d531c8e3f0ef8f529e7fa42a7f3b7a6683f
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Tue Jul 28 23:44:36 2020 -0400

    DIRECTOR: Mark cast dimension setters read-only

commit 70acf3add0c68516a5e099b76052bbae23d677e5
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Tue Jul 28 10:15:56 2020 -0400

    DIRECTOR: Selectively set dirty flag in setTheSprite

commit 25ebf333c7df217c3887684d8b05304e4f2830a6
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Mon Jul 27 18:48:33 2020 -0400

    DIRECTOR: Confirm kTheCastType is read-only

commit 2fea1b4345716f123f7a4fe39357f551050f8796
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Mon Jul 27 18:19:03 2020 -0400

    DIRECTOR: Remove noisy warnings

    The enabling of moveable sprite is also disabled.

commit 8084447e4dd9b3ae6d6560b17d7adb382b16e0c7
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Mon Jul 27 18:49:41 2020 -0400

    DIRECTOR: Trigger targets using picture castmembers

    This is for the buildbot.

commit 600d15b491470cf7dc2e1ba907670fb0df58bab2
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Mon Jul 27 17:49:51 2020 -0400

    DIRECTOR: Implement palette of cast workaround

commit 95f731d52fc3af335b5dbf34fda583cd938c40ac
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Mon Jul 27 15:50:27 2020 -0400

    DIRECTOR: Rename loadSpriteImages

    Resource children are not accessible to the castmember constructors, and palette
    casts store their information in the child. So we load palettes in addition to
    bitmaps here.

commit ea75044ae140b22f49ca8febfae1eae3d994adaf
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Mon Jul 27 09:25:38 2020 -0400

    DIRECTOR: Load palette castmembers

    The loadPalette is also turned into a value-returning function.

commit 74454b0434037b71fe5c7828c235c7e71006d879
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Mon Jul 27 09:06:42 2020 -0400

    DIRECTOR: Properly initialize current palette id

commit a31e3217e86f480724f15e1abbe0a642854e00b2
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Mon Jul 27 08:48:42 2020 -0400

    DIRECTOR: Fix typos

commit 4f49df9ff247c69eb8ce3e54a9a0312596fb0f9a
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Sun Jul 26 23:35:08 2020 -0400

    DIRECTOR: LINGO: Implement palette of cast

    Bitmap cast members also now have palette read in correctly, since the CLUT
    field can refer to a castmember and not just one of the builtin fields.

commit d6ac60a2210bdc1a2fd8f910ddde4d64933bbbc4
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Sun Jul 26 23:01:28 2020 -0400

    DIRECTOR: LINGO: Implement kTheFrameTempo

commit 3cb5b5acb4c41d9217eff46bce00039aea137cb3
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Sun Jul 26 22:57:33 2020 -0400

    DIRECTOR: LINGO: Implement kTheFramePalette

commit 013c7276e70bd746edfca8e3a2be57071116a597
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Sun Jul 26 22:21:35 2020 -0400

    DIRECTOR: Implement basic puppetPalette

    Right now, only changing the palette itself is supported. Fades and other fancy
    features will come later, as needed.

commit 1e38497d8a8a09b3c9aee8f5b371e67f07203d10
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Sun Jul 26 22:21:01 2020 -0400

    DIRECTOR: Properly read frame palette id

commit b3b7ed19a4bf336c4190e924cc4105f0db7896dd
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Sun Jul 26 21:26:28 2020 -0400

    DIRECTOR: Rework palette handling

    Now there is no static for default palettes. All the defaults have negative ids
    anyway, so those are just protected by the new setter method.

commit 402a8fb117cbf3c7d80088d3d45a7ad2c0aadc4e
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Sun Jul 26 20:26:46 2020 -0400

    DIRECTOR: Set default palette for pre-D4 versions

commit 740cf9f9bf45011cfac3ad96ce8b001bcae0633b
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Fri Jul 24 17:40:15 2020 -0400

    DIRECTOR: Reorganize frame palette loading

commit e1361a4ff9e4d55bb922cc4287071b2c45a90c22
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Fri Jul 24 16:40:56 2020 -0400

    DIRECTOR: Prettify puppetTransition arg test

    The if is replaced with a nice switch.

commit c98cea16b40460e63e63983772da084f7c654900
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Fri Jul 24 15:23:29 2020 -0400

    DIRECTOR: Keep track of loaded palettes

commit c0d295f4f9507e0ae25e52115ad1a309bb3787d1
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Fri Jul 24 13:45:10 2020 -0400

    DIRECTOR: Load multiple palettes

    Also, don't set the current palette upon loading it.

commit c9a1dfa75db6c9b832337a487b669a5577bda4d2
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Fri Jul 24 10:25:27 2020 -0400

    DIRECTOR: Recenter stretched sprites

commit 91ac560619edb36a1c5a314d15275a10b8674a56
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Fri Jul 24 09:03:29 2020 -0400

    DIRECTOR: Remove erroneous widget deletion

    This reverts commit 48599bd622d9e6d7fb04caa97607c35e55d9e331.

commit b54767434188242c65ffccbdd479d64f27e7038a
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Fri Jul 24 08:52:50 2020 -0400

    DIRECTOR: Initialize variable

commit cb40fe606e44d4f853637eac202211ee49016be3
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Thu Jul 23 10:51:11 2020 -0400

    DIRECTOR: Remove extra comparisons from blitter

commit 992b4ab0b83bebd2f2d649d90c787ff8096f9295
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Thu Jul 23 10:50:03 2020 -0400

    DIRECTOR: Respect mask in stretched surface blit

commit 45cd97c1c4929f9ddd96251cc77bef45ae7f3c4f
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Wed Jul 22 14:19:15 2020 -0400

    DIRECTOR: Add matte intersect/within checks

commit 0044225060be78be594b5c360cbb690f7a30d126
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Wed Jul 22 14:07:58 2020 -0400

    DIRECTOR: Make sound fade non-blocking

commit d241e5ba645486cab7824520bf1f65b659cee4dc
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Wed Jul 22 12:19:17 2020 -0400

    DIRECTOR: Only fade valid sound channels

commit 68f540dd268480c5841cb900096692eb99555d87
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Wed Jul 22 11:08:24 2020 -0400

    DIRECTOR: Implement basic sound fading

commit 61f533e3e9d8d116426af1dd108c6458f367cd71
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Wed Jul 22 10:32:39 2020 -0400

    DIRECTOR: Fix cursor hotspot registration

commit 343046bd5e423d5bc1b124ae529bb1d83701576d
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Wed Jul 22 10:19:03 2020 -0400

    DIRECTOR: Properly set cursor keyColor

commit 87b8ff5825c4e57770dae476453c039507aaaf7c
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Wed Jul 22 09:54:13 2020 -0400

    DIRECTOR: Condition cursor palette check

commit 2fb137bc6b0a5e1a7c127e636a0006a6d39d05a6
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Wed Jul 22 09:52:25 2020 -0400

    DIRECTOR: Remove unnecessary pointer cast

commit 51c7e019d92cdb50879569dd0401299fb5af2cba
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Wed Jul 22 09:52:01 2020 -0400

    GRAPHICS: MacCursor: Make two virtual functions

    This is for the Director engine, which has a cursor class inheriting from MacCursor.

commit f3b18aba52c37c47a165fd9a599898dd6be9e347
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Wed Jul 22 09:22:48 2020 -0400

    DIRECTOR: Add missing flag

    Otherwise, the mask is never applied.

commit ae1af9c06ad0ce4be06c2afd096e530a88ad3294
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Tue Jul 21 23:08:53 2020 -0400

    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.

commit c294d739558a74996fabfd063a5ec42d9acf1e1f
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Tue Jul 21 20:26:49 2020 -0400

    DIRECTOR: Make sure dirty rects are valid

    This prevents a crash in the Stretch scene of The Apartment's More Puppets movie.

commit 405f0bf1b974acc7bce744875797a050ef46ddce
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Tue Jul 21 20:19:32 2020 -0400

    DIRECTOR: Don't unnecessarily redraw puppets

commit 697fae20db5080c14dc323791832a9808ae5f8e8
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Tue Jul 21 20:07:19 2020 -0400

    DIRECTOR: Keep track of failed matte creation

    This dramatically cuts down the number of matte warnings in Majestic.

commit 6b404187fc9fbf5c6394b9e3006c3ba20e6d0e34
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Tue Jul 21 15:05:52 2020 -0400

    DIRECTOR: Move mouse position check to channel

    This permits, for instance, only changing the cursor when we are inside a
    bitmapped sprite.

commit a7426c28722058aeed2cfc823b715b3ddde21736
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Tue Jul 21 12:49:15 2020 -0400

    GRAPHICS: MACGUI: Eliminate window composition surface

    Now there is just the composeSurface from the widget. This fixes a bug where the
    inner window contents would be blitted with transparency and also eliminates a
    redundant copying. Now the border and inner surfaces are composed together on demand.

commit 99e973f5ec94f325b889eab644d06b30bdbd8fde
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Tue Jul 21 11:17:03 2020 -0400

    DIRECTOR: More carefully check for end of bitmap stream

    This is a patch for the bitmap loading bug introduced in 3d1a68a3ed46517abb2f547efd85d910dad05768.

commit 4d2da628dfb9d84108df805c0a320065087b00b9
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Mon Jul 20 16:47:52 2020 -0400

    GRAPHICS: MACGUI: Set WM cursor visible on cursor pop

commit 2622a4628fcab0727be8169a16d7233fb952cd1f
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Mon Jul 20 14:07:47 2020 -0400

    DIRECTOR: Reset cursors properly

    This also handles cases when there is an error loading.

commit f903822f8d024c95ad61779bf665c574e058a45e
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Mon Jul 20 13:35:16 2020 -0400

    DIRECTOR: Read cursors from external resources

commit 0058822e6ef557a9e155e9177d1b15ca050812fb
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Mon Jul 20 12:54:48 2020 -0400

    DIRECTOR: Implement opening resource files

commit a17b19810e50964270e4cb49ac69f3876b93debe
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Mon Jul 20 10:48:38 2020 -0400

    DIRECTOR: Use buildbot to sniff out a stub

commit 5fb984e99fefb8c2fae5afa0d5aff580c3678292
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Fri Jul 17 23:27:52 2020 -0400

    DIRECTOR: Mostly implement cursor of sprite

commit 4f15cb4af404e270dbfd01d6e539327a38bc9f54
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Fri Jul 17 23:01:56 2020 -0400

    DIRECTOR: Introduce Cursor class

commit 79acd63dc06d053c0c7ec5a5475a14ed9b83fc53
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Fri Jul 17 09:16:01 2020 -0400

    GRAPHICS: MACGUI: Generalize WM cursor handling

commit 0b6e4412415c81dcfd7b8bf2cbca1b3429b9cbcb
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Fri Jul 17 09:15:37 2020 -0400

    GRAPHICS: MacCursor: Change private to protected

commit 91409d2cc1cf48318106cdd2667e1adec84a504e
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Thu Jul 16 18:30:39 2020 -0400

    GRAPHICS: MACGUI: MacWidget: Handle priorities properly

commit 93d9bf4671a452046b6416ebbc60ff31f7390514
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Thu Jul 16 18:19:25 2020 -0400

    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.

commit 0e6750d90cae04028661e709cba269cd75699bb5
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Thu Jul 16 16:31:56 2020 -0400

    DIRECTOR: Load palettes from shared casts

commit a292aab35101f7b7f39479a6fb472462bc4cb06e
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Thu Jul 16 13:53:11 2020 -0400

    GRAPHICS: MACGUI: Add missing window manager assignment

commit 19e6c4666e8f71bc87758d8593b6f66e47416146
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Thu Jul 16 11:42:28 2020 -0400

    DIRECTOR: Remove redundant palette search

    This is done per-chunk in MacText.

commit 9b7c5bad48529c3d9ed920f03974cb16ce239546
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Thu Jul 16 11:21:02 2020 -0400

    DIRECTOR: Get proper zoomBox rectangles

commit dfd522bbe10adca16608a95202086c80d269a553
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Thu Jul 16 10:30:07 2020 -0400

    GRAPHICS: MACGUI: Reduce erroneous button activations

commit 3cb709f135b948cc66138d3fc3919f8ac511cb8f
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Thu Jul 16 09:46:32 2020 -0400

    DIRECTOR: Track dragged sprite by channel

commit e23c2648734cbda1152536909e54bbdd7cd2022c
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Thu Jul 16 09:26:11 2020 -0400

    GRAPHICS: MACGUI: Remove mouseDownWidget

    The functionality I needed here can be implemented in the Director engine instead.

commit 296b42b2c0325f0e3fad754878ad771a1cfc0837
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Thu Jul 16 00:23:50 2020 -0400

    GRAPHICS: MACGUI: Don't redundantly clear text surface

    This fixes the issue in Director where text redrawing would overwrite the button
    indication. Now, the changed-area clearance in MacText::render is the only
    clearance of the text surface that occurs.

    The contentIsDirty setting is removed from MacButton because this flag is
    already reset in MacText::draw.

commit 229c1a233f2c1701d5526e7f0b628e898635fbe8
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Wed Jul 15 11:40:10 2020 -0400

    DIRECTOR: Initialize channel with sprite dimensions

commit 521dd644126856397451f86b70297789c2bff224
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Wed Jul 15 11:39:40 2020 -0400

    DIRECTOR: Only warn on large bitmap cast leftovers

commit d770b21094e65f3e4a6221905eed844c18bde348
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Tue Jul 14 16:46:28 2020 -0400

    GRAPHICS: MACGUI: Remove macInvertPixel callback

    Instead, the addition to macDrawPixel is used instead.

commit b9ee31ad2a4c1efdba8d42f5cbc17dbbdc741188
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Tue Jul 14 14:48:35 2020 -0400

    DIRECTOR: Improve setTheSprite dirty rect handling

    Don't reset on an unchanged castId, either.

commit 86ab75f134a7b6ae6f65965639c2d682eee0ac67
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Tue Jul 14 13:22:54 2020 -0400

    DIRECTOR: Call WM draw only when stage is updated

commit 12923286395d1bf408ae07b6b57b2df8757c32cf
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Tue Jul 14 12:47:29 2020 -0400

    DIRECTOR: Call updateCast for not-dirty sprites

    This restores text interactivity in Warlock.

commit 64e507a885de50f890348096c93ec04146d2038e
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Tue Jul 14 09:28:33 2020 -0400

    DIRECTOR: Run updateStage more directly

commit 3733f3f02a3db429be7eb461bada61b70dc65c8a
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Tue Jul 14 09:28:19 2020 -0400

    DIRECTOR: Skip over empty channels

commit ad540208440593889b8ababe4286b8813b7a8c9a
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Mon Jul 13 18:01:19 2020 -0400

    DIRECTOR: Don't set sprite dirty when unmodified

    This is useful for games like Chop Suey, that implement their own cursor
    management. We don't want to be undrawing and redrawing the cursor every time
    updateStage is called, only when the cursor is actually moved.

commit d5539a66e18c03268bc3b91fce55511377f62ca3
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Mon Jul 13 17:31:30 2020 -0400

    DIRECTOR: Don't run setClean on empty channels

commit 0f5cc7cca80325362ca797971860aa7e9de7f698
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Mon Jul 13 15:09:20 2020 -0400

    DIRECTOR: Don't look only for focusable sprites

    Instead, there is an option to return the topmost non-focusable sprite, too.
    Some scripts don't have buttons on them; they are just there for the hilite.

commit d6af252e093a46fb9cc4ec656275684b790c5cfc
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Mon Jul 13 14:45:09 2020 -0400

    DIRECTOR: Only test for castInfo on fields that need it

commit 0d84a57dd4c8cccce4e16e2ad55f7e2c399aab44
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Mon Jul 13 14:27:46 2020 -0400

    DIRECTOR: Retrieve cast hilite in the right place

commit b5114fc87f129c62dc397b9df1c8f8f58ef2c05c
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Mon Jul 13 13:19:07 2020 -0400

    DIRECTOR: Fix surface memory leak in transitions

commit a1560296d353b652bb5e18a5ed1cc9763c8391f3
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Mon Jul 13 13:05:29 2020 -0400

    DIRECTOR: Reset channel width on castId change

    This fixes the elusive buffer overflow in Chop Suey's Mudpup.

commit 454be019ff6e394014b3759f0c2bc47289478d6f
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Fri Jul 10 09:46:28 2020 -0400

    DIRECTOR: Remove maskSurface from MacWidget

commit 100dde586a9d0d8c9bacbca922f5b31bf8abb5d0
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Fri Jul 10 09:36:23 2020 -0400

    DIRECTOR: Properly init D4 button casts

commit 8276404d23ef177cafd6164b949a9ce6940ba169
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Thu Jul 9 23:56:08 2020 -0400

    DIRECTOR: Reorganize dirty channel conditions

    A condition is also added for stretch of sprite location updates

commit 9c50f9162c6e0ec0b38f1537f5cf47d78cd10e82
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Thu Jul 9 23:27:05 2020 -0400

    DIRECTOR: LINGO: Implement spriteBox

commit 206118a341367abb48ebbfc9919ae7b2165c24ae
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Thu Jul 9 22:45:58 2020 -0400

    DIRECTOR: Mostly implement stretch of sprite

    Note that the offset is currently not correct. This will be fixed in a future commit.

commit 4e4c603a6e0c761a302c46c8f267aa1ba607be47
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Thu Jul 9 19:12:33 2020 -0400

    DIRECTOR: Add check for stretched sprite

commit c6d7766209374593a232f06a2b9bfb29f0477817
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Thu Jul 9 19:06:30 2020 -0400

    DIRECTOR: Keep sprite dimensions in channel

commit 95aa3144accdf9667f6d10782be402a1a16ab3dd
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Thu Jul 9 16:04:58 2020 -0400

    DIRECTOR: Restore implicit matte for invert on click

commit 9a4aeffc25d96c56d7abf61c9d491e14fcb91c40
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Thu Jul 9 15:33:03 2020 -0400

    DIRECTOR: Refactoring for implementing stretch of sprite

commit 422b7aeb91de6e4068a7495a253743577560b37f
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Thu Jul 9 13:49:41 2020 -0400

    DIRECTOR: Do not try to draw null shape

commit e672c8a844f1d29d9fd613f2a3a8d423ee0d5cce
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Thu Jul 9 13:38:25 2020 -0400

    DIRECTOR: Remove some hardcoded colours

commit 0bffd5d616f854349a0c5714fd2aee60dc1d3324
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Thu Jul 9 11:08:15 2020 -0400

    DIRECTOR: Reorganize control of DirectorPlotData

    The Channel is also made into a class.

commit 9652a17acf690cc6a4844f28a25701e0d7145e78
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Thu Jul 9 10:20:29 2020 -0400

    DIRECTOR: Make invert-on-click faster

commit 46b9bed44d1985288dde3c994484e76331ea4feb
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Thu Jul 9 09:36:35 2020 -0400

    DIRECTOR: Add extra conditions on shape inks

commit ea481930893fb95b5b6e0c68cd85d88d588992c2
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Thu Jul 9 09:29:57 2020 -0400

    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.

commit e3cf71185daaae632e90ffa3dafd2daead5d470e
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Thu Jul 9 08:45:55 2020 -0400

    DIRECTOR: Standardize channel colour access

commit ed36fd4a37eec366ab0198400c225c2a66988e2e
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Wed Jul 8 15:44:40 2020 -0400

    DIRECTOR: Standardize cast colour access

commit 25dcbc3cf8318ed0b69a8f917ac23fe44fefb3e5
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Wed Jul 8 13:41:49 2020 -0400

    DIRECTOR: Move TransParams to stage

commit 8a85754f25e8320598ede0832fe2801b19b87ec1
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Wed Jul 8 13:27:41 2020 -0400

    DIRECTOR: Move Channel to its own file

commit 3b4c416fbfd0d13890cd0e9a69620e807ebc2cc3
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Wed Jul 8 09:20:15 2020 -0400

    DIRECTOR: Apply fore/back colours to basic inks

    Note that the colourization of copy-family inks is very inefficient.

commit 4b86de7d2547a754e058a7ea7bf0fa867444b039
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Tue Jul 7 23:36:59 2020 -0400

    DIRECTOR: Check when we should apply fore/back colour

commit b248f432e97e40a5c0ae6739bfa3a24c2843e837
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Tue Jul 7 22:50:45 2020 -0400

    DIRECTOR: Finish implementing constraint of sprite

commit 03ddc4dd4d048ba47959941b2b2a4a7c85b244b2
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Tue Jul 7 16:17:39 2020 -0400

    GRAPHICS: MACGUI: Standardize destructors for widget subclasses

commit 48599bd622d9e6d7fb04caa97607c35e55d9e331
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Tue Jul 7 16:08:26 2020 -0400

    DIRECTOR: Properly destroy cast widgets

commit b86deff3289dcba0f3c545cda855e750c12141b1
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Tue Jul 7 14:24:51 2020 -0400

    DIRECTOR: Allow D4 to have QD shapes too

commit 1b63ad834b7135404fc78d374a0baf89ea9bb0c6
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Tue Jul 7 13:19:44 2020 -0400

    DIRECTOR: Plug another memory leak

commit bb4dd0f001aaaf93f98d0901f7917a85438b2bb8
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Tue Jul 7 12:31:10 2020 -0400

    DIRECTOR: Fix erroneous test condition

commit 2f12428b718f3da88bfb62ef5af1f722d670761f
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Tue Jul 7 09:36:29 2020 -0400

    DIRECTOR: Generalize sprite dimension getter

commit 25008b1319d8e95c89a91aa654c07c7806d21971
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Tue Jul 7 00:22:39 2020 -0400

    DIRECTOR: Update sprite loc when activating channel

commit 5fadd94beae31c4045896553e0fd20e6b3cd8db4
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Mon Jul 6 23:40:09 2020 -0400

    DIRECTOR: Properly clip transition rectangle

commit 0e7da1054d7aa5d92ce12df37df1969ad7e2b3b6
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Mon Jul 6 23:39:27 2020 -0400

    DIRECTOR: Optimize temporary clip rectangle

commit 63071473af4487f26ac7d7da0e7097a1f709c5e1
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Mon Jul 6 23:15:56 2020 -0400

    Revert "GRAPHICS: MACGUI: Remove colour settings from base widget"

    This reverts commit 39c4a0f524fb181cfd4cba5eb724ca8caeaae097.

commit 39c4a0f524fb181cfd4cba5eb724ca8caeaae097
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Mon Jul 6 23:04:00 2020 -0400

    GRAPHICS: MACGUI: Remove colour settings from base widget

    The Director engine, for which I introduced this setting, has also been updated.
    To account for different ink types, the background colour will be applied in the
    blitting step, and each text chunk keeps its own palette information.

commit e6d5f1d21c77a299417b0c99a674026cb0ba9693
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Mon Jul 6 22:56:13 2020 -0400

    DIRECTOR: Restore accidentally removed null check

commit ca9213014a6f4677efa761706eb70e12fe6bfdce
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Mon Jul 6 21:15:03 2020 -0400

    DIRECTOR: Fix D4 shape cast loading

commit c67407afd8f5a4f317c3a0277b37133fbdfc9f6c
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Mon Jul 6 13:04:15 2020 -0400

    DIRECTOR: Add foreground colour to plot data

commit fbc201ef902d3d12ccee5ba56781d0d3a667f556
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Mon Jul 6 13:03:58 2020 -0400

    DIRECTOR: Condition arithmetic inks all at once

commit 558156c54fd266b0d533b453d1643087fd430323
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Mon Jul 6 12:00:57 2020 -0400

    DIRECTOR: Render implicit mattes with not* inks

commit 47fba684d94f4a802145ebecddcae03533bfd8bb
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Mon Jul 6 12:36:39 2020 -0400

    DIRECTOR: Make source pixel not a pointer

commit 6744b550ab1b7cdbf27571e474ed4e85f7fca7b5
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Mon Jul 6 11:56:27 2020 -0400

    DIRECTOR: Reset puppetTempo on next score tempo change

    Lingo Dictionary, 229.

commit de9585cfbd3492b3cc39ef5b7d2e53705c480afc
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Mon Jul 6 11:55:45 2020 -0400

    DIRECTOR: Fix improper limitation on puppetTempo values

    Values greater than this are used for special functionalities, like wait for click.

commit bf785fc8f403981728b895ea6fb271d4e81de3ed
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Mon Jul 6 11:27:45 2020 -0400

    DIRECTOR: Selectively invert sprites on click

commit 664acb795d23cc506da1eb1b91845fcf3e8390ac
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Mon Jul 6 10:39:32 2020 -0400

    DIRECTOR: Refactor missing surface warning

commit 5ab3544c5cae524b7342c3fb331d437a00b96621
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Mon Jul 6 10:37:51 2020 -0400

    DIRECTOR: Improve sprite/cast type integration

    Now, rather than having a _castType in the sprite, I fixed the issue that might
    have made this necessary in the first place -- overloading _castId with the
    shape pattern whenever the sprite is a QuickDraw shape. There is now a separate
    test function for QuickDraw shapes.

commit ca5be75426f51fab8a3ad5b2fad37f672504db30
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Sun Jul 5 12:49:58 2020 -0400

    DIRECTOR: Optionally force apply a matte mask

commit 091458b2b5b979b6bfd7016eb68ae016b29a1f0e
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Sat Jul 4 10:57:00 2020 -0400

    DIRECTOR: Split out two different sprite focus methods

commit f89ec907c58d69a485a1c38448c1ecc2e22a7195
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Sat Jul 4 00:01:37 2020 -0400

    DIRECTOR: Read more fields from bitmap cast

commit 80cc7ba64f0f0db2b68c7593fde4026b52784196
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Fri Jul 3 18:45:58 2020 -0400

    DIRECTOR: Split out stage blitting functions

    Now there is inkBlitShape, for QuickDraw shapes which do not have surfaces of
    their own, and inkBlitSurface, for sprites that do have their own surfaces.

commit fc4478930be7ac661600c86351e659c81f4e1060
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Fri Jul 3 16:51:04 2020 -0400

    DIRECTOR: Only decompose colours for inks that need them

commit 18f5c9c0e334a445bbe1a3eb12ac3bf293d80d2c
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Fri Jul 3 16:30:32 2020 -0400

    DIRECTOR: Merge dirty rect utility function

commit 30fb1b6c2c0cf3cf45891e34c3c70de58e489aab
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Fri Jul 3 16:01:20 2020 -0400

    DIRECTOR: Remove old header entries

commit a8b779ee0e67c96c4efc951cf34accadc794e583
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Fri Jul 3 13:15:39 2020 -0400

    DIRECTOR: Lazily load ink masks

    This is for mask and matte inks. Now, rather than a bitmap sprite requiring a
    flood fill every time (for mask ink) the matte is created and cached when matte
    ink is first requested on that cast. Mask ink does not require a new surface to
    be created, but it uses the same new channel interface.

commit 03856ec06714195f4812088b8618601edecbb95e
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Fri Jul 3 10:51:46 2020 -0400

    DIRECTOR: Mark channel dirty on changed ink type

commit 9f24eabcf8f17a0b86e22313bfd366da3ae0242a
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Fri Jul 3 10:40:24 2020 -0400

    DIRECTOR: Move to bitwise rendering of reverse sprites

    Some functionality may be lost here, as the old drawReverseSprite seems to have
    dealt with more edge cases, but these can be reimplemented as they are needed.
    With my bitwise method, reverse ink issues in Warlock and our colour testing
    movie are fixed.

commit 533bab342b334cc649b48906d16c0c70a00111cb
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Fri Jul 3 09:41:01 2020 -0400

    DIRECTOR: Fix dissolve transition calculation

    Without this, rnd is never 0 and so the transition is never drawn around
    point (0, 0).

commit 5af941f878734e8e841b0c93bc0db7af9b4baaa3
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Fri Jul 3 08:59:36 2020 -0400

    DIRECTOR: Reset default text interlinear to 0

    Without this, text bounding boxes are wrong in The Apartment.

commit bc3851952355122a20fa1ab273ddafb9c5668840
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Fri Jul 3 08:57:58 2020 -0400

    DIRECTOR: Fix bitwise reverse ink

commit 4caea51387e0a389f15466d476da8fd6fb9449fe
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Fri Jul 3 00:49:29 2020 -0400

    DIRECTOR: Always finish drawing transition on quit event

    This prevents an incomplete transition from messing up the display when, for
    instance, you click to skip to the end of a transition.

commit 8c68e8c73a42def694d81eb3fede81a2b35cabb8
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Thu Jul 2 21:20:50 2020 -0400

    DIRECTOR: Implement changed area transitions

    No new transitions should be broken, but transitions that were broken
    before (#9, 10, c. 30-36, 47-48) have not been fixed. All transitions (even
    broken ones) should render only in the changed area, however.

commit a25467c6dfd50dc8d380a0c1c4b3c293d37782f7
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Wed Jul 1 13:05:02 2020 -0400

    DIRECTOR: Finish implementing puppetTransition

commit d2cc383f1ed3e57e0240394a02b4adca083baade
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Tue Jun 30 17:06:00 2020 -0400

    DIRECTOR: Add workaround for Chop Suey cursor

commit a473a9a19e1c6b9001dd8a0270efe85a16c4fd30
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Tue Jun 30 17:04:52 2020 -0400

    DIRECTOR: Properly undraw sprite when cast changes

    Before, if the previous cast was bigger than the new cast, there would be artifacts left.

commit e68e434b16d36229c7f1f239b1487da182a48ebf
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Tue Jun 30 15:37:46 2020 -0400

    DIRECTOR: Fix typo in sprite type name

commit 713f9f2624f048d725c2389d6aeae9747c2ad032
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Tue Jun 30 12:05:05 2020 -0400

    DIRECTOR: Unify sprite and channel internal rendering methods

    Now we only need to check with the channel to see if its contents need to be
    re-rendered, and the channel takes care of updating its internal locations, as
    well as those of the widgets.

commit 487dcec139c22354b6d4185e4bab49480f3b9d54
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Tue Jun 30 11:16:59 2020 -0400

    DIRECTOR: Remove shape cast hack

commit 93a5c39381ca71b0f2b3e69e2a43c607b0150628
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Tue Jun 30 10:42:38 2020 -0400

    DIRECTOR: Cache widgets for all loaded cast

commit 1ddc4bf6bde5f791a14261b91e15eab09cb024ce
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Tue Jun 30 09:41:50 2020 -0400

    GRAPHICS: MACGUI: MacButton: Properly mark dirty button states

commit 30bd4de3a7b8d6e06886acad0a90083330ae091a
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Tue Jun 30 08:47:46 2020 -0400

    Revert "GRAPHICS: MACGUI: Add QuickDraw class"

    This reverts commit 3469ed858c47a8a0ce3c1eb192d2a494bdf5ba02.

commit d04934a54fdc05c92f4bb71ba9a6d2ba1a60da53
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Mon Jun 29 18:16:48 2020 -0400

    DIRECTOR: Move rendering to a Stage class

    This commit introduces several changes to the rendering pipeline.

     - Rather than having a window for each score that is played, there is a Stage
       in g_director that is only cleared when the upcoming stage has a different
       size. This permits transitions still clean transitions between movies.

     - Rather than relying upon general surface blitting functions, there is
       progress toward a custom blitter than makes working with inks much easier. A
             pixelwise function, inkDrawPixel, has been introduced.

     - The mask-based approach to incremental rendering has been abandoned, as it
       caused performance issues and strange rendering bugs. Now the renderer
             operates on a traditional list of dirty rects that must be redrawn.

     - QuickDraw shapes are more closely integrated with the renderer, and they do
        not require a temporary surface to draw.

commit 3469ed858c47a8a0ce3c1eb192d2a494bdf5ba02
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Mon Jun 29 09:53:35 2020 -0400

    GRAPHICS: MACGUI: Add QuickDraw class

commit 2643e2f95797aadc4e65bdb4899bdc3e9711a510
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Mon Jun 29 09:07:05 2020 -0400

    GRAPHICS: MACGUI: MacWindowManager: Optionally set custom patterns

    The Director engine, which uses custom patterns, is also updated.

commit 8e2be0ceb37e902e1b401512b3a98fa4aeacc2df
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Mon Jun 29 08:49:18 2020 -0400

    GRAPHICS: MACGUI: MacWidget: Accept colours in constructor

commit 4aaed579e18bec1ba18219bb0a5a702f25379d40
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Fri Jun 26 00:23:05 2020 -0400

    DIRECTOR: Fix segfault in tests

    I made the same omission last time I worked on the transitions...

commit f82c3bfa3212cedd7819eda979041575b434b2e0
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Fri Jun 26 00:00:33 2020 -0400

    DIRECTOR: Remove score backSurfaces

    These are replaced with more descriptive temporary surfaces that are only active
    when a transition is being rendered.

    Currently, transitions between movies are temporarily disabled as well. This
    will be fixed soon, once there is a window for the stage that exists
    independently of the score.

commit cd145a04d10573073178fac71578f7192f6e20d0
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Thu Jun 25 15:21:56 2020 -0400

    DIRECTOR: Eliminate flashing on changed sprite castId

commit d22fea192480949f1879777ab667b44b66f19825
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Thu Jun 25 13:47:02 2020 -0400

    GRAPHICS: MACGUI: MacText: Render chunks with individual palinfo

commit 279e83fda88d070d539f6de5405634888c051e4c
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Thu Jun 25 11:58:58 2020 -0400

    DIRECTOR: Clean up rendering parameters

    Sprite-rendering functionality is split out from frame-rendering, and the frame
    can be optionally blitted on a surface other than the main one.

commit ba1650ac45bc7df0a5e30f4094af0e83dd9b435a
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Wed Jun 24 12:49:00 2020 -0400

    DIRECTOR: Don't crash on null surfaces

commit ea97cbef4bf7b89571b7835c9166cbe0ed2c3693
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Wed Jun 24 12:30:37 2020 -0400

    DIRECTOR: LINGO: Implement puppetTempo

commit 7e56c2cc55d9ee97d745ed890f81e9692b25862e
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Wed Jun 24 12:41:41 2020 -0400

    DIRECTOR: LINGO: Implement interface for puppetTransition

    The transitions do not render correctly yet, but now the Lingo interface is here.

commit eb51188b40de5c25af1623dbd44c4283e75db9d3
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Tue Jun 23 21:42:46 2020 -0400

    DIRECTOR: Synchronize widget dimensions

commit 335f6f2e3d78e3250fbeaa2d2bf1513a4a396586
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Tue Jun 23 21:31:44 2020 -0400

    GRAPHICS: MACGUI: Keep window manager pointer in all widgets

commit 8dd0c305dd3044520f274c67c4c6fbb013c3a99c
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Tue Jun 23 16:03:52 2020 -0400

    GRAPHICS: MACGUI: Render all of the button

commit 203e87514c10c2555a71b6b0988d730cfb237a1c
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Tue Jun 23 16:03:35 2020 -0400

    DIRECTOR: LINGO: Remove obsolete sprite rendering calls

commit 92b0f34db9bb99cf4b46c491ac1a8c0f5d401f9f
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Tue Jun 23 15:15:22 2020 -0400

    DIRECTOR: Clean up blit loops

commit 5e1556b89dbe6b91cb298452230e83e5d47d4cdb
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Tue Jun 23 15:13:09 2020 -0400

    DIRECTOR: Implement Mask ink

commit 4ff998b39a5395b44568f4b3e33963c2f462a2fa
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Tue Jun 23 12:44:44 2020 -0400

    DIRECTOR: Remove shape transparency hack

    It is no longer needed since there is logical AND blitting introduced in the
    previous commit. Now the mask on shapes is obeyed.

commit 3cac9487a27571e35c51ace88b62399938462456
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Tue Jun 23 12:44:05 2020 -0400

    DIRECTOR: Begin implementing the rest of the inks

commit ba8762ca8f3307a34e4be788d0750a17d3944c8f
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Mon Jun 22 16:16:55 2020 -0400

    DIRECTOR: Clear drawing mask in the right place

commit a3f649c10da89d96286b51818d07ba94a2cad48f
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Sat Jun 20 21:58:42 2020 -0400

    GRAPHICS: MACGUI: Add colour decomposer

commit f305daf4576e6c6601b48ceae196366ca72a9aa1
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Thu Jun 18 21:57:21 2020 -0400

    DIRECTOR: Ensure start points are set correctly

commit 07be3d5e14614cfe644648b922717c06a9416e5b
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Thu Jun 18 21:28:03 2020 -0400

    DIRECTOR: Don't choke on unreasonable constraint

commit 30a14b6355eb5c21ca4ddb053e5fa172dd55d444
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Thu Jun 18 18:40:49 2020 -0400

    Revert "DIRECTOR: Fix another careless typo"

    This reverts commit 30f6ea5018d4430f7b720a0d0f34c9f727b2cb89.

commit 2fe2e9236e591088213bafcc1aa6435fc58d3712
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Thu Jun 18 18:39:08 2020 -0400

    DIRECTOR: Fix another careless typo

commit 30f6ea5018d4430f7b720a0d0f34c9f727b2cb89
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Thu Jun 18 18:38:27 2020 -0400

    DIRECTOR: Fix another careless typo

commit 9c52da7cf798d4536aac24a95f9fb8f9343447d8
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Thu Jun 18 18:33:52 2020 -0400

    DIRECTOR: Restore rendering of width/height of sprite

    Note that automatic stretching is only available on copy and transparent ink, as
    I document in the comment.

commit 8d251696059e28a51fd4941e973f07fb3566c2c8
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Thu Jun 18 18:03:40 2020 -0400

    DIRECTOR: Implement rudimentary constraint of sprite

commit 4fdba316fc6214ae92267fad1b2ef432831e76e6
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Thu Jun 18 17:55:54 2020 -0400

    DIRECTOR: LINGO: Fetch cast IDs in b_cast

commit 0c084bb04712120af8cdc5374fd99098c43937ac
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Thu Jun 18 12:26:26 2020 -0400

    DIRECTOR: Fix logical type error

commit 0388bfc105e98af504568c0887ae7cce5f46430e
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Wed Jun 17 22:44:26 2020 -0400

    DIRECTOR: Fix a careless typo

commit 1afefb7852ebf37bb355d44d8b77743e9c8d2a4e
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Wed Jun 17 22:37:33 2020 -0400

    DIRECTOR: Address undrawing edge case

    When the castId of a puppeted sprite changes, we want to undraw the old sprite
    before taking on the new bounding box.

commit 2e86cf35a4b342599dae764c3c0dece06d0b5ce2
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Wed Jun 17 21:26:55 2020 -0400

    DIRECTOR: Register point properly

commit af73749543874f2dbbf2539e50c2884a744efd78
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Wed Jun 17 17:04:43 2020 -0400

    DIRECTOR: Don't load channels for empty frameset

commit f8fa6ec64928ed3d9eb027daed4d650f96eda611
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Wed Jun 17 15:31:47 2020 -0400

    GRAPHICS: MACGUI: Remove redundant conversion

commit fad94268a94c67720d39dd5c7b8c6a478debb256
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Wed Jun 17 14:28:08 2020 -0400

    DIRECTOR: Send mouse events to actionable sprites first

commit 41871d090916425a47bec0c9c787a7be5ebeee4e
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Wed Jun 17 13:47:44 2020 -0400

    GRAPHICS: MACGUI: Fix logic errors in empty array handling

commit 961eb636336909298531be39b12060751e1ec5a5
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Wed Jun 17 12:16:06 2020 -0400

    DIRECTOR: Don't get position of null cast

commit 5639b0e7f6e46a2c9f2d160bec005e15f368986b
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Wed Jun 17 11:29:51 2020 -0400

    DIRECTOR: Improve sprite position calculations

commit 7a5fd2301cfb8c4659a835f79b25ba3e860304f8
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Wed Jun 17 09:25:51 2020 -0400

    DIRECTOR: Prettify some debug output

commit d879feb237dbde62008af30d81a6b8b97a5fa7ee
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Wed Jun 17 09:21:54 2020 -0400

    DIRECTOR: LINGO: Don't try to read null channel

commit c7714d3882343ef4322a93b8e5c7b8a05fd126d2
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Wed Jun 17 08:59:24 2020 -0400

    DIRECTOR: Work around flashing reverse sprites

commit 75210d8186063dd11e90001de8fc1047ee3cc8e9
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Tue Jun 16 19:55:03 2020 -0400

    DIRECTOR: Render sprites from channel structs

    Among other rendering issues, this fixes the annoying jittery sprites issue when
    a sprite is simultaneously animated and moveable.

commit 106c43e2d431abb1a083b2848c097a52cd9c405f
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Tue Jun 16 11:19:30 2020 -0400

    DIRECTOR: Clean up one-off rendering methods

commit 01b2e97c6ee708bd3995ca0424894a557c09b005
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Mon Jun 15 18:05:17 2020 -0400

    GRAPHICS: MACGUI: Draw zoomBox with pixel inversion

    The Director engine, which relies upon zoomBox, is also updated.

commit 3b795ae07aeb764e98a3d453faa8ff0ba12b8415
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Mon Jun 15 18:04:50 2020 -0400

    GRAPHICS: MACGUI: Enable macDrawPixel to invert pixels

commit 0e574c6aabb184416e1d238567629a57a7246504
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Mon Jun 15 11:54:56 2020 -0400

    GRAPHICS: MACGUI: MacWidget: Clear composeSurface with background colour

commit 0b8e37b53b6d9a5c91f621d95a273518a805496c
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Mon Jun 15 11:32:35 2020 -0400

    DIRECTOR: Fix bitmap offset that wasn't changed before

commit 59d92fbc0d29cd51a3e3ac424853ad353ef16e88
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Sun Jun 14 17:28:44 2020 -0400

    DIRECTOR: Run standard transform on stage colour

commit 874526c5634d12b34ac805959f03863013bd9afb
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Sat Jun 13 22:43:59 2020 -0400

    GRAPHICS: MACGUI: Fix button alignment

commit 9e69ea280e8da5b97501ab34a649610330b42de5
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Sat Jun 13 22:39:09 2020 -0400

    GRAPHICS: MACGUI: Fix text border computation

commit 24da65e1b935be699906927b467b559f36bb685d
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Sat Jun 13 14:32:45 2020 -0400

    DIRECTOR: Implement changing width/height of sprite for basic inks

commit 7c8c96a357a2c7c38d33265cea378f23e85dbf29
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Sat Jun 13 11:39:12 2020 -0400

    DIRECTOR: Remove erroneous warning

commit 54220962f2ce87b75866e1ef1f3da7ef8c4e66f8
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Fri Jun 12 20:14:01 2020 -0400

    DIRECTOR: LINGO: Implement fore/back colour of text cast

    These lingo commands are just for text casts.

commit 97dd4c1961090ed9d56a18b086b3706cb9375e49
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Fri Jun 12 19:30:55 2020 -0400

    DIRECTOR: Cache best fit cast colours

commit 20dde1d917e5b17c6f79afa3bc4f3d3dcbd8583e
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Fri Jun 12 18:50:20 2020 -0400

    GRAPHICS: MACGUI: Relocate colours to from MacText to MacWidget

commit c5021628e27fe4fe56027de7b8ebb1fc2bf3c92a
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Fri Jun 12 18:13:23 2020 -0400

    GRAPHICS: MACGUI: Make text merge a little nicer

commit 45937130dd6422a6a8270e886e9b7ea71233d122
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Fri Jun 12 15:23:59 2020 -0400

    GRAPHICS: MACGUI: Begin reorganizing text classes

    MacEditableText has been merged into MacText. The Director engine, which relies
    upon MacEditableText, is also updated here.

commit d3434050bf578964fdac364242c1a720bfb55e42
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Fri Jun 12 10:47:34 2020 -0400

    DIRECTOR: Properly handle text cast background colour

commit c3ebc873908a1fb7cd452d29e6e2b040d146c8f6
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Thu Jun 11 10:12:41 2020 -0400

    DIRECTOR: Set basic widget priority

commit 83418686ee0aab985e1e421af3ce61dbff70941b
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Thu Jun 11 10:12:26 2020 -0400

    GRAPHICS: MACGUI: Implement basic priority handling

commit 3131f2b5325945db9f2c9a550aa3f17936da0398
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Thu Jun 11 09:51:36 2020 -0400

    DIRECTOR: Overload editableText and puppetSprite

commit b8fb4548670d546fd8f08543ba44d0d782621f4e
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Wed Jun 10 21:25:37 2020 -0400

    DIRECTOR: LINGO: Begin implementing kTheField properties

commit d70fed560db7eccf6e8bc32fe56417bb3a424fd0
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Wed Jun 10 21:21:02 2020 -0400

    GRAPHICS: MACGUI: MacEditableText: Properly set MacText align

commit b2472a26e65d2dbdabe2aa62e46bad89a534c224
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Wed Jun 10 14:24:08 2020 -0400

    DIRECTOR: Fix off-by-one error in bitmap rendering

commit f75aaf47edc12a918cdc246128e78daeba22de2a
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Wed Jun 10 14:22:08 2020 -0400

    DIRECTOR: Clip drawing areas properly

commit 22479483141bef908add0924b19ca153200876a0
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Wed Jun 10 13:25:22 2020 -0400

    Revert "DIRECTOR: Remove erroneous clip"

    This reverts commit 26e9290d2721e46b2efc23d97fa9ff89baa6b773.

commit a5881863c819b13398315f1522150ab7bac64c81
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Wed Jun 10 11:48:34 2020 -0400

    DIRECTOR: Remove unused flag

commit 3734d344ac78b75d05276811684ffe109cadbe12
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Wed Jun 10 11:41:01 2020 -0400

    DIRECTOR: Avoid double-deleting widgets

commit 26e9290d2721e46b2efc23d97fa9ff89baa6b773
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Wed Jun 10 11:22:09 2020 -0400

    DIRECTOR: Remove erroneous clip

commit 4348b6495cef1f1873c3ef3f0aca0373d947bcf8
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Wed Jun 10 10:47:17 2020 -0400

    DIRECTOR: Remove unhelpful blit warning

commit 50d99c396bf32dad10cafed355169742c8549e30
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Wed Jun 10 10:32:02 2020 -0400

    DIRECTOR: Do not create bitmap widget too soon

commit 0886091f7d23734b779538dc7a2946421f877d4e
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Tue Jun 9 23:00:35 2020 -0400

    DIRECTOR: Fix puppetSprite de-activation

commit c3bfd99d509316c87980ddaabc35b2c54670accb
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Tue Jun 9 18:32:03 2020 -0400

    DIRECTOR: Render bitmaps with widgets

commit 3095637e601ae7bb7f7c8aaf0280eb6e68ceacd7
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Mon Jun 8 10:44:31 2020 -0400

    DIRECTOR: Convert texts to buttons if necessary

commit d6f87f22dfa369dfc8a29dd50ca3658120788d2a
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Fri Jun 5 20:26:32 2020 -0400

    DIRECTOR: Make puppetSprite version-sensitive

commit 5711e4399aed80f82772e8f3cf6e425cc7a96743
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Fri Jun 5 16:35:39 2020 -0400

    DIRECTOR: Use WM button activation styles

commit d6176f8ed156321e179ca8c55a9510e563cd876f
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Fri Jun 5 12:39:46 2020 -0400

    DIRECTOR: Implement kTheStageColor

commit f112b2b564fe3a09f34aa34a234eca9638f44fd3
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Fri Jun 5 12:39:18 2020 -0400

    DIRECTOR: Implement kTheHilite

commit bd216b237c40a0b87fa5954adc1485fb978abc9a
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Fri Jun 5 10:31:50 2020 -0400

    DIRECTOR: Fix previous rendering typos

commit a2e230803df0e84bdd1aeb0bd4af8778537c2f16
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Fri Jun 5 09:07:37 2020 -0400

    DIRECTOR: Render texts and buttons with widgets

commit 033e02536568f479d5715e60c67719238eb6c246
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Fri Jun 5 14:01:10 2020 -0400

    GRAPHICS: MACGUI: MacWindowManager: Deactivate widget when mouse leaves

commit 2eecd518b169a9d40dc403eaf18998563bbf88a0
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Sat Jun 6 18:39:08 2020 -0400

    GRAPHICS: MACGUI: MacWidget: Make non-abstract

commit 4160ce4f86fa80bb6304490a634cb16629237038
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Fri Jun 5 12:37:12 2020 -0400

    GRAPHICS: MACGUI: MacEditableText: Start off inert

commit 67bc0b0e88a0e4030a3db7531419f865fbc0488e
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Fri Jun 5 12:36:32 2020 -0400

    GRAPHICS: MACGUI: MacEditableText: Properly handle cursor state change

commit dcb0bded11fbb923e854e2fb1aa75d53ecbaf916
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Thu Jun 4 23:18:05 2020 -0400

    GRAPHICS: MACGUI: Delete unnecessary helper functions

commit ecb0df0620e7856aaa8d07567b5d962fc24e7a26
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Thu Jun 4 23:09:51 2020 -0400

    GRAPHICS: MACGUI: Ensure proper cursor change

commit d64e41eca240aefe24ab1664c9b24485afc33c23
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Thu Jun 4 23:08:52 2020 -0400

    GRAPHICS: MACGUI: Add MacButton widget

commit c38ad8bd5ecd826142fdcbbd3a8dc70967fd9e5c
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Thu Jun 4 23:07:04 2020 -0400

    GRAPHICS: MACGUI: MacText: Add shadow

commit 9f06150a36984174e831bbeaf752ac7e75faff1f
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Thu Jun 4 23:03:41 2020 -0400

    GRAPHICS: MACGUI: MacEditableText: Add text features

     Border, gutter, box shadow, text alignment

commit b49f3f6cd3ff94d459a782205eb38412782d9545
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Wed May 27 10:42:44 2020 -0400

    GRAPHICS: MACGUI: MacEditableText: Stay sane

commit f099b6a073ac7d7d9fcf9070f370a6d07cec2c56
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Wed May 27 08:50:16 2020 -0400

    GRAPHICS: MACGUI: Generalize pixel inversion plotproc

commit 57b69cf2c007865072c021a899304eabd4b6ccd2
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Fri May 29 12:27:37 2020 -0400

    DIRECTOR: Move transitions to the score

commit 0ca34f6e926b71130e81fd92d4ffcadb3048290a
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Mon Jun 1 12:48:14 2020 -0400

    DIRECTOR: Account for null cast in drawReverseSprite

commit 84cb2c995558326b633811f63dc980f884088334
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Mon Jun 1 10:57:01 2020 -0400

    DIRECTOR: Do not clip drawRect to maskSurface

commit 3e5c119639b2becafb73426082fa99c8d6a77260
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Mon Jun 1 08:30:35 2020 -0400

    DIRECTOR: Use WM menu-on-demand fullscreen mode

commit 6cb1c92e23c62430c08862bc0edcc289825f8c2c
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Mon Jun 1 08:30:04 2020 -0400

    GRAPHICS: MACGUI: Add fullscreen menu-on-demand mode

commit 31f008b772c567f0702c30402a9120580b422e7a
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Mon Jun 1 08:18:28 2020 -0400

    DIRECTOR: Fix segfault in MacWindowManager::pauseEngine

commit d82a37ab0d1ae2c17a00137fb701370591a01cd1
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Thu May 28 11:48:22 2020 -0400

    DIRECTOR: Fix setCast member condition

commit 2bd118086b886eb2b063bfbb7c9fb637aeff393a
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Thu May 28 10:17:10 2020 -0400

    DIRECTOR: Relocate shape copy ink check

commit 1149e0edd3867e8fb714899a2a542a7e4fb620b0
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Sun May 17 11:30:37 2020 -0400

    DIRECTOR: Disable ink inversion hack

commit 5babbb30db4f71ca31b92d26fc935ab508a25c8d
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Fri May 15 23:09:46 2020 -0400

    DIRECTOR: Move to channel-based rendering

commit 9fc6197c32688443921c70e1d3b54fe9092ce952
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Fri May 15 20:30:54 2020 -0400

    DIRECTOR: Precompute cast types of sprite

commit 3fa90b4adec1b714b96d2b0fab73ecb2183fe2c5
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Thu Apr 30 15:36:01 2020 -0400

    DIRECTOR: Move from drawRects to bboxes

commit b0d8880919ef68688fc3fd033ceb4aec647d091f
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Sat Apr 18 23:18:39 2020 -0400

    DIRECTOR: LINGO: Implement property array functions

commit c74ef4136be3a29badd114ca1b93e4d71e3b9465
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Sat Apr 18 20:20:11 2020 -0400

    DIRECTOR: LINGO: Implement property array comparisons

commit 1f77ea3a31ad2912daf3f56550a1cc70dce7c22c
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Sat Apr 18 16:31:54 2020 -0400

    DIRECTOR: LINGO: Finish property array datum type

commit 94b80a2e1080d40f9f68ef611939f36f9c2f2832
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Sat Apr 18 13:11:25 2020 -0400

    DIRECTOR: LINGO: Collapse compareTo functions

commit f1822511d5d59193f08217322c7e64d5fe43463e
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Tue Apr 14 20:31:54 2020 -0400

    DIRECTOR: LINGO: Implement moveableSprite of sprite

commit d0c4fd90ad6a6249e5df3dc1a60b57c076b1573b
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Tue Apr 14 20:31:13 2020 -0400

    DIRECTOR: Give sprites a currentPoint

    Rather than just a startPoint.

commit 1ce36183bd6cfc03907580304dcd9a57a0f7333d
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Sun Apr 12 10:27:00 2020 -0400

    DIRECTOR: JANITORIAL: Change spaces to tabs

commit 9909097285c086039bc42cda35134f73c4fad2ab
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Sun Apr 12 01:05:35 2020 -0400

    DIRECTOR: LINGO: Implement kTheLastRoll function

commit 070b4266ed2dd14db6fe529dea923bcee6b88f8e
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Sun Apr 12 00:53:06 2020 -0400

    DIRECTOR: LINGO: Implement kTheLastEvent function

commit 0e15e2f080d1ae34635df076a684a3b56b7f4f13
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Sun Apr 12 00:36:00 2020 -0400

    DIRECTOR: LINGO: Implement kTheLastClick function

commit c5651d67a6123964d00105f83777bdcfcbbf390f
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Sun Apr 12 00:27:49 2020 -0400

    DIRECTOR: LINGO: Implement kTheLastKey function

commit de24b461b9b2be5a422b548ae0aa3e7df8ae6f4c
Author: Nathanael Gentry <nathanael.gentrydb8@gmail.com>
Date:   Sun Apr 12 00:26:05 2020 -0400

    DIRECTOR: Implement getMacTicks utility

commit 8532628f972c8afd0bb40a0fb6cbef4dca93eaae
Author: Nathanael Gentry <ngentry1@liberty.edu>
Date:   Sat Apr 11 22:32:22 2020 -0400

    DIRECTOR: LINGO: Implement kTheLastFrame property
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment