implement missing lingo features for dino quest#81
Open
matthewdean wants to merge 9 commits intomainfrom
Open
Conversation
Finds the next empty cast member slot, using min_member/max_member bounds from the movie config. Supports both findEmpty(memberRef) global syntax and castLib(n).findEmpty(memberRef) method syntax. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Allows new(#bitmap, member(slot, castLib)) to create a member at a specific slot, instead of only accepting a castLib reference. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The 5-arg fill(x, y, w, h, param) previously only accepted a ColorRef. Now also handles prop lists (extracting #color) and integers (palette index). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
When an indexed bitmap has been upscaled to 32-bit, get_pixel_color_ref returns Rgb instead of PaletteIndex. Render these pixels using their RGB values with bg-color transparency. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
For sorted lists, uses binary search to find the insertion point. For unsorted lists, falls back to exact match like findPos. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Previously only handled 2-element lists (points). Director allows scalar * list to multiply each element, regardless of list size. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Director returns a default regPoint for non-bitmap members rather than erroring. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Director treats VOID as 0 in arithmetic contexts. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
igorlira
reviewed
Mar 22, 2026
Comment on lines
+308
to
+311
| "regPoint" => Ok(Datum::Point([ | ||
| player.alloc_datum(Datum::Int(0)), | ||
| player.alloc_datum(Datum::Int(0)), | ||
| ])), |
Owner
There was a problem hiding this comment.
It's okay to hardcode this for now until we come across a movie that requires real values, let's just add a TODO comment here so that this doesn't get lost
Collaborator
Author
There was a problem hiding this comment.
Added one additional commit where we properly implement regPoint.
regPoint is a Member property available on all visual cast member types per the Director spec. Store it on the base CastMember struct and handle get/set in the common property path rather than per-type. Bitmap reg_point is synced to BitmapMember.reg_point for rendering. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
findEmptyas both a global built-in and castLib method, using config min/max member boundsnew()handler (e.g.new(#bitmap, member(slot, castLib)))fill5-arg formcopyPixels(originally-indexed bitmaps upscaled to 32-bit)findPosNearfor sorted (binary search) and unsorted (exact match) listsint/float * listmultiplication for any list length (was restricted to 2-element lists)point(0, 0)forregPointon field cast membersVOIDas0when negatingGame is not fully fixed but loads much further:

Test plan
🤖 Generated with Claude Code