Repository navigation
v1.2
Johnny Castaway native macOS screensaver — v1.2
Six bug fixes and one new feature since v1.1.
-
INTRO.SCR title screen
The original Sierra intro screen (INTRO.SCR) now displays on
screensaver activation with a cycling wipe transition, matching
the feel of the original Windows release. A black-screen hang
that occurred when a resource failed to load mid-intro was also
fixed. -
CPU spin after extended runtime
After several hours of running, the onBackgroundTick
wave-animation closure entered a Swift exclusivity spin, pegging
one CPU core at 99% indefinitely. Fixed by eliminating the
closure capture that triggered the exclusivity violation. -
Sprite clipping (SET_CLIP_ZONE not enforced)
SET_CLIP_ZONE was stored on the thread but never applied to
sprite or rect drawing. The symptom was sprites appearing above
the palm canopy and above the island surface — e.g. Johnny
sleeping above the tree, or fish visible outside the fishing-
close-up frame. All draw primitives now honour the clip rect. -
Walk to Spot.A skipped
When the next scene started at the leftmost anchor (Spot.A),
the walk controller incorrectly detected a zero-distance walk
and skipped it, leaving Johnny at his previous position.
Fixed by checking the destination spot rather than the
displacement vector. -
Scene-start flicker
A one-frame flash of the previous scene appeared when a new
scene began, because the outgoing thread's layer was composited
one tick after the scene transition. Fixed. -
Cloud placement
The cloud Y-position formula misread
rand() % (135 - N)as
a lower bound rather than a range size, placing all clouds too
high on the screen. Fixed; clouds now distribute correctly
across the sky.