Repository navigation
Releases: michidk/cyrus
Releases · michidk/cyrus
Release list
0.2.0
Bug Fixes
- use vertex collision spheres for projectiles
- retain selected actor eligibility without input
- restore input gate for placementless actors
- keep inputless selected scripts from advancing animation
- preserve signed animation group operands
- exit when the primary window closes
- never load a fresh world from Save/Load
- advance group sync channels after ordinary updates
- retain environmental effect animation speed
- release group channels once per world loop
- complete sync tasks without a channel member
- skip zero-texture effect lifetime updates
- protect book-owned native slot results
- register group members during live world entry
- accept task encodings of reset rotation
- return zero for absent animation property association
- return zero for actors without animation associations
- implement user synchronization channels
- fail when script progress is unavailable
- implement script Jump native contract
- classify transient script inspection failures
- handle unavailable script pagination
- require confirmed world sweep story flags
- project authored lights from retained poses
- update shared Renovate preset path
- name unsupported island map item use
- validate item use definitions in snapshots
- paginate world actors after soak
- terrain columns past the east or west edge read the adjacent height row
- keep death autosave one-shot
- reset autosave admission with paused gameplay
- match reserved autosave metadata
- hide autosave from manual save rows
- retain description through slot publication
- keep repeated reserved saves in their slots
- reject stale reserved save publication
- initialize save selection dispatcher
- link rope attachments at list head
- expose animation transition targets
- bound world sweep control requests
- allow loop recovery after actor pagination
- count down the ledge action inhibition
- settle scene transitions before sweep baseline
- batch actor inspection pages
- wait for script world preparation
- preserve directly loaded sweep scenes
- use workflow token for releases
- bound world sweep actor pages
- show the main-page snapshot in the picture frame
- retain HUD asset across world teardown
- retain player during paused book capture
- retain player runtime during paused book
- compare the stored slot number in the thumbnail contract
- report player hanging receiver identity
- roll the chance taunt in the active branch as well
- draw Save and Load list rows in the small font with the new-save label
- sample F9 after control taps are pressed
- New Game empties the power-up slots
- New Game deletes the logbook text
- keep ordinary actors walking in their forward group when nothing requested movement
- restore saved references to replaced world generations
- continue backward and circling movement in their groups like forward walking
- restore a saved native source from a replaced world
- continue the non-combat walk and sidestep groups like the original
- walk continuation uses the walk step check; swimming actors continue
- target cyrus package manifest
- use cyrus package manifest
- normalize git-cliff version output
- keep version step indentation
Documentation
- describe unavailable load action accurately
- describe unavailable save selection
- align package verification commands with agent contract
- document world sweep inspection failures
- document created-object recycling boundary
- describe island map item boundary
- document pagination and lifecycle slots
- describe paginated save pages
- update action transition ownership
- record the verified in-game book thumbnail
- record native save and load continuation
- clarify rope swing sound status
- record verified death restore flow
- describe bounded player movement
- record live death Quit, autosave failure and browser reload acceptance
- document the acceptance-run commands
- record live F4 to F6 and malformed browser slot checks
Features
- emit host save-load requests from book
- connect book load page to session hosts
- resolve airborne ordinary overlaps
- confirm deletion of selected load slots
- add authored description and paused-menu save flow
- paginate authored save and load rows
- wire native quick save to F9
- add reserved quick-save slot
- trigger quick save from F9
- capture death autosaves
- gate death quit on autosave
- capture and store gameplay thumbnails for book and slots
- retain SOUP action words
- define animation transition decisions
- allow hosts to take animation transitions
- retain action words in actor state
- consume action words during animation
- add the island map screen
- place the logical player from the control port
- open gameplay book from Escape
- mark an actor dead and set attribute bytes from the control port
- save live worlds on book quit
- add a world-pursuit route that exercises combat lost-sight routing live
- open Display, Sound and Controls with F4 to F6
Styling
- format projectile collision helper
- format environmental effect dispatch
- format rope attachment insertion
- format transition assertion
Testing
- use signed animation range boundary
- align animation group boundary coverage
- retain effect through restored speed assertion
- verify native environmental effect speed
- reject stalled script world sweeps
- cover stalled world sweep detection
- reject mixed script-world sweep samples
- cover selected script Jump routing
- remove unnecessary Jump fixture mutability
- cover quick-save revision replacement
- cover autosave readiness state
- account for reserved autosave rows
- verify slot persistence across reopen
- cover action statement word ownership
Merge
- finish SOUP 4 branch
0.1.26
Bug Fixes
- the deep-water edge probe passes where it should and the selected player treads water
- no turn animation while a weapon is held or on deep water
- the selected player does not take the nonplayer water rollback
- the pre-script jump displacement runs in deep water too
- the camera segment bound wraps its squared length at 32 bits like the original
- ordinary body and residual contact queries run with polygon sidedness enabled
- a skipped startup prepares audio at once; the world sweep detects a failed or stalled script world
- the sweep's stall threshold allows the container's frame-clamped ISLAND
- the jump key does not start a jump in deep water or in the landing groups
- depend on config paths
- cancel tasks when discarding worlds
- keep world task teardown on world state
- project actor light offsets through pose
- validate created actor parents on restore
- retain saved light projection
- keep light projection clippy clean
- stop dialogue samples across world replacement
- preserve light projection without prepared spatial state
- stop only released script generation samples
- satisfy generation cleanup lint
- every attack slot with a melee or stab move contributes to the spacing ranges
- honor installed rope loading switch
- preserve stable support through rejected jumps
- preserve rope attachment admission order
- gate selected-player backward walks
- retain death book context after last game cancel
Documentation
- killed created objects keep their record, an accepted difference
- compare movement against the original at an equal update rate
- the rope hand-height link choice and sound start index are implemented
- AGENTS.md is the agent contract and CLAUDE.md imports it
- keep project instructions concise
- avoid local path literals
- describe retained rope session state
- describe ending credits music
- describe implemented reset and effect ownership
- clarify inspection versus production script execution
- clarify journal reset limitation
- refresh model replacement status
- refresh HUD lifecycle status
- refresh rope session support
- clarify actor scheduling ownership
Features
- the dev image carries pulseaudio-utils for recording the paced sink
- script diagnostics report each actor's equipped weapon attachment
- one crate decides where local state lives and how it is written
- debug trace of each sound start and the effect an animation cue plays after remapping
- start a new game, a movie or a save slot from the command line
- console item add gives the selected player one item through the session inventory
- the armed player's turn accumulators use the fight-turn attributes
- actors that always hold a weapon keep it drawn instead of failing the weapon pass
- the animation sound trace names the script actor that plays it
- the selected player's water transition requests swim groups and plays the splash sound
- script diagnostics list each actor's active task slots
- the selected player's deep-water default runs the weapon cleanup first
- the water and lava transition creates the splash and lava effect objects
- add dedicated screenshot directory
Performance
- parallelize browser compilation
Refactor
- rename local state directory to game-config
Styling
- format jump regression assertion
Testing
- align snapshot and light projection fixtures
- refresh rope settings fixture identity
- include required ropes load setting
0.1.25
Bug Fixes
- follow gameplay camera by default
- a destroyed dialogue speaker's voice keeps its last volume
- keep a failed actor's first failure instead of re-wrapping it every frame
- the ordinary camera update selects the rope slot while the player hangs on a rope
- selected-player checks follow the retained selection, not the CYRUS role
- the walking stage and ground support history follow the selected role
- an ordinary-update failure no longer replaces the actor's first failure
- drop camera segment candidates beyond the 64-entry array
- prepare the selected player's collision shape with the other actors
- reassert the player update exclusion when a world takes the retained session state
- stage the host player entity as the selected role, CYRUS or GREMLIN
- restore the light of a type-four object
- a static-model actor overlaps with its retained model radius
- WalkForward passes its step checks for an actor without collision attribute bits
- re-entered worlds replace the camera actor's pose; routed walks prepare the receiver's query
- startup settling refuses water terrain while actor models could outrank it
- the player swap also stores the creation angles
- a retained player swap rebinds the new world's camera to the selected role
- MoveForward and Lunge pass their step check without collision attribute bits
- a session capture releases the channels of finished sounds first
- load_scene starts a world at its default marker
- the attack reach test skips the inactive player role
- restore a script-created light on any actor
- load a saved HUD from the menu after a process restart
- the control handler runs where no marker entry exists
- vertex-bound overlap spheres; actors without animation state skip landing and death requests
- a session restores a visited world whose shell script already ended
- give the native task-pool threads a 32 MiB stack by default
- remove conflict markers left in the registry test
- fatal damage responses run the combat death service for the selected player
- combat death service resets the action selector and covers nonplayers
- the weapon-contact impact sound uses the shared channel start index
- KillMe releases the receiver's light record
- KillMe also frees the receiver's flat record
- Resurrect runs the end-of-combat reset for a selector-6 receiver
- Return without a stored continuation restarts the script instead of failing
- keep the shown player model until its replacement has loaded
Documentation
- the START camera offsets match the original
- the credits pace is the 60 Hz setting the original requests
- correct the duel comparison run counts
- actor flat records draw through the effect billboard path
- correct the native audit counts and let native-audit read other export patterns
- ground support over water and the swimming that remains unsupported
- move the water-support note to CLAUDE.md, the maintained contract
Features
- play the rope swing sound at the rope base
- session saves keep each rope's swing and attachments
- the rope grab and downward climb use the player's hand point, and the player's hand rests on the link
- restart a routed point walk on its collision response marks
- an airborne actor lands on an actor with bounce power
- ground prevalidation with one missing surface
- a routed point walk answers the transition mark
- body-contact response for a sliding actor
- the routed point walk's hit reaction
- point navigation back-off phases 24 and 25
- point navigation treats motion direction 15 like queued motion for non-player actors
- a hit on the hanging selected player lets go of its rope
- the rope hand-height link choice clamps against the actor floor probe
- startup settling ranks the live actor models
- positional script sounds carry the engine's channel start index
- rerunnable START pirate duel bot over the control port
- opt-in script actor observation and a browser START duel driver
- the InKey native reads the held letter and modifier keys
- matched START duel comparison against the original under DOSBox-X
- duel comparison covers the arrival state and works through the emulator's save step
- an in-game world selection stages its sidecars before replacing the running world
- actor flat records advance and expire each update
- expose the simulated game seconds in control state
- type-three placements start with an enabled flat record
- idle-world probe for the original and a frame-rate note on the duel comparison
- original-idle can list every actor's animation group
- New Game after death compared with a fresh start
- draw actor flat records through the effect billboard path
- script status reports how many actor flats are drawn
- original-idle can hold keys to drive the original in a world
- BounceObject launches its receiver and hands the descent to ordinary falling
- native-audit lists installed-script natives that no handler mentions
- flycam control command places the inspection camera
- native-audit maps the whole catalogue to installed use, sources and tests
- draw equipped weapon hand and hilt models from the retained attachment pose
- ground support includes water cells read from the live vertex cache
- the dev container offers a real-time audio sink for timing comparisons
Performance
- prepare a world's combat taunt clips eight at a time
Testing
- the flycam test runs without the default game camera drive
- drop the single-case loop left by the direction-15 change
- name-dispatch tests for the natives the audit found untested
- START's effect images include its actor flat texture
Dev
- add fast focused verification
- world-sweep soaks installed worlds and reports failed script actors
- drop an accidentally committed bytecode file
0.1.24
Bug Fixes
- initialize the other player role's pose when a swap first selects it
- a line outliving its speaker's world no longer fails the next world
- end active dialogue lines when a world is released
- startup settling uses water-cell terrain heights
- hide native app consoles
Documentation
- regenerate the module map for the rope host module
Features
- copy the angles, angle history and motion bytes in the player swap
- the selected player grabs, climbs, swings on and releases ropes
0.1.23
Bug Fixes
- map the motion-byte properties by the engine's descriptors and add hide, rope, scabbard
Documentation
- regenerate the module map for markers
Features
- consume PushPlayer and PopPlayer at the end of a continuing world-loop iteration
- request the ledge sidestep animation group while hanging
0.1.21
Bug Fixes
- chain a combo through every populated following motion
Features
- bind the rope chain scene nodes to the rope model
- CYRUS_WINDOW_SIZE overrides the window size for software-rendered runs
Performance
- shorten release verification and browser builds
0.1.20
Bug Fixes
- separate death inhibition from animation overrides
- use torch state for selected ledge reset
- notify generic health death through lifecycle selector
- reuse world weapon archives with portable paths
- retain native source across alternate script entry
- retain selected death animation defaults
- use the original context-one book opening
- gate the player's ground turn on the falling and queued-motion bytes
- relax the player's roll twice when the net turn is zero, and add original-routine oracle tests
- rotate MoveAlongAxis steps by the actor's angles
- refuse MoveBackward for lifecycle byte 15
- turn PlayerFaceObj toward the receiver, not away, and fix the relative bearing sign
- turn FacePlayer toward the player instead of the mirrored heading
- retain admitted save slots before session work
- preserve complete session sources when resolving worlds
- retain environmental effect draw state after expiry
- retain model coordinates and animation presentation
- prepare standalone models before scene effects
- retain model coordinates across geometry loss
- publish family-owned model coordinates
- refresh families before model presentation
- let the opt-in camera driver start START's world
- dispatch actor events at animation commands
- process combat block response messages
- invalidate HUD caches missing text alpha
- remove superseded combat displacement helper
- retain hit-message intent clears before services
- retain hit-message intent clears before services
- restore d001 sender action state
- suspend input during world preparation
- follow retained selected player in ordinary updates
- keep world shell parsing portable
- resolve torch actors by generation
- accept multitask encoding for RTXp, RTX and the pan and location camera natives
- drop a redundant integer conversion in the weapon-tip contact test
- use the installed health potion for quick health
- run a task or multitask call of FlatAnimate and FlatSound as the function
- run PlayerInSight for receivers that gather no collision candidates
- give type-four map objects their light record
- let a task call complete on its first invocation without a slot
- let the world archive decide a model that two standalone files match
- give separate-record natives the world's collision geometry
- read routed point bearing after movement
- let controller pass activation to scripts
- reject unsupported stable terrain recovery
- read static model vertices for actors with a none load path
- reject malformed light calls before mutation
- skip killed actors in ordinary updates
- retire killed separate actors
- repair the inventory screen test fixture and clippy findings
- reset topic menu highlight on clear
- reset topic menu highlight on clear
- reassert selected-player ordinary exclusion
- cancel tasks when actors die
- expose task cancellation to lifecycle handlers
- cancel killed actor tasks through the VM
- glide render camera angles independently
- gate direct damage through generic health admission
- retain selected actor for direct damage gates
- restore charged weapon after combat hit
- make created actor allocation transactional
- use spatial actor accessor for created objects
- seed initial camera position history
- keep camera setup admission independent
- derive direct damage selection from world state
- use interpolated camera angles
- retain charged weapon sender ownership
- retain dynamic object identifier namespace
- reset driven camera across world changes
- clear camera terrain across worlds
- resolve local object targets for properties
- consume combat message on resurrect
- retain global flags across world replacement
- fail world audit on preparation errors
- retain model attribute writes after spatial setup
- retain model attribute writes after spatial setup
- retain group sync membership at creation
- compile group sync registration
- guard selected-player support following
- require selected ordinary strafe animation
- gate combat chance taunts to waiting branch
- refresh HUD on selected weapon sheath
- exclude type-four records from light projection
- retain selected-player ordinary admission
- restore created namespace identity
- separate selected script admission from collision input
- gate selected player hooks on controller input
- sample water cells in the queued clearance terrain query
- follow the ledge support while hanging
- carry the selected player's health across world loads
- suspend the world under the inventory screen and draw its text as installed
- prepare collision candidates after a script enables collision
- select the attack slot when the armed player starts a move
- mount magic/gog in the retro container so linked game directories resolve
- compare a hit defender's pending defence index with the attacker's counter reference
Documentation
- claim the session camera work package
- track completion in GitHub subtasks
- move delivery tracking and evidence out of the repository
- record partial verification and close completed issues
- include script world requests in module map
- include live camera services in module map
- note the installed mouse_turn value the player turn assumes
- regenerate the module map
- include browser slot selection in generated map
- shorten guide and add preview gallery
- note the driven camera's ScriptView and terrain wiring
- record the first matched-scale START comparison of the driven camera
- correct the transition decision's note on the action word
- record the first matched START comparison of the driven camera
- refresh generated module map
- reflect torch sound lifecycle
- the walk-off recovery entry belongs to the selected player's jump key
- refresh generated module map
- describe the WonGame ending
- regenerate the module map for the credits module
- regenerate the module map for the rope module
Features
- replenish selected-player health with retained HUD feedback
- consume the LoadWorld session request
- retain the session camera and execute showPlayer
- reload the current world for an authored LoadWorld
- publish live camera updates atomically to the session and camera actor
- carry the shared camera limits in the script cache
- execute the RTX dialogue task for scripted speakers
- execute rtxAnim and retry pending RTX lookups
- execute RTXpAnim as the selected player
- apply the player-type camera defaults to record zero
- execute the AmbientRtx multitask
- execute KillMyTasks by clearing task slots inside the call
- execute ResetRotation from the actor's creation angles
- route selected additive health through native commands
- execute showPlayerPan and separate the camera's selected index
- add the load command on the LoadWorld request path
- add the location camera's state logic, verified against the original
- add the object pans' camera state logic, verified against the original
- run showObj through the location camera logic with a world-frame vector
- execute SyncWithGroup and clear group channels on End
- add lookObj's camera state logic and fix the orbit request's flag
- add the world-position camera handlers' state logic, verified against the original
- route selected death-owning health
- dispatch the object pan, look and showObjRot natives through the task layer
- add the render camera's glide and cut, and model the camera marks
- execute selected death controller before movement
- turn the sheathed player on the ground with the original's animation and roll
- read the installed render camera glide factors and expose the render step
- run PushControlAnimation and update the turn accumulators every frame
- step MoveLeft and MoveRight outside combat stance after the lateral step check
- add the camera's screen shake and frame view angles
- sidestep the sheathed player with the walk key and run combat strafes through the step counter
- arbitrate selected death at the frame boundary
- run the sheathed player through the MoveForward stepper
- add the production camera geometry adapter over the loaded scene
- answer PlayerInSight with the shared segment visibility test
- accept PrintSingleParm and retain its console lines
- dispatch the location camera natives through a caller-supplied pose update
- run MoveAlongAxis as a persisted task
- run ReloadRotation as ResetRotation without restoring any axis
- add the production camera update service and the per-frame camera step
- run WanderToLocation as a persisted task
- run Resurrect after KillMe
- answer AcuratePlayerDistance with the rounded Euclidean length
- accept ShowItem and ShowItemNoRtx and retain the viewer request
- add the PlayerLineUp alignment arithmetic
- enter the no-save death book
- run PlayerFaceObj as a native task on the selected player
- answer PlayerStatus with the selected player's status class
- prepare last-game confirmation input and pixels
- add the WalkBackward task
- add the FacePlayerInertia task
- add DistanceToLocation, PlayerArctan, PlayerTurned, PlayerTurnedDirection and PlayerMovementSpeed
- answer PlayerOnScape from the selected player's ground-response kind
- add endCombat
- connect last-game confirmation and retained slots
- dispatch backward input in the sheathed player controller
- walk the selected player backward through the support check
- allow the selected player's scripted WalkForward and expose step_player
- add the pickup and plain player-alignment movers and the close-step helpers
- run PlayerParallelLineUp and PlayerPickupLineUp as native tasks
- prepare player-bound collision geometry for the lineup natives
- prepare installed death effect source images
- retain selected death environmental effect pools
- retain environmental effects across session restore
- drive the original follow camera per frame, off by default
- prepare world environmental effect brightness
- prepare shared environmental effect images
- prepare bound-admitted effect draw requests
- present retained environmental effect billboards
- run PlayerLineUp as a native task
- fee...
0.1.19
Bug Fixes
- separate combat allocation from executor state
- remove repeated fidelity logging
- share directional counters across script movement
- derive the subtitle shadow alpha from the main value, not the first pair entry
- retain shared ordinary ground prevalidation
- share attribute-selected sight positions
- admit grounded overlaps and prepare timed combat taunts
- settle equipped weapon transitions before actor traversal
Documentation
- the reader style table is published
- record verified combat movement prerequisites
- set the reader styles and actor pose goal
- record the actor pose comparison and the placement gap
- set the placement-gap and style 5 goal
- record routed command ownership evidence
- record verified route search dependencies
- record verified point core entry paths
- keep script contracts beside their APIs
- remove trailing README blank line
- move SOUP ownership guide beside script APIs
Features
- bind live defence executor
- bind synchronous defence starters
- retain constructor combat spacing
- query live paced defence lazily
- bind live defence selection services
- draw the logbook reader styles of the original
- share live destination support ownership
- compose ordered walk destination admission
- draw logbook reader styles 1 and 2
- bind native walking to receiver geometry
- face ordinary combat targets from live state
- share live directional step admission
- draw nothing for logbook reader style 5
- query forward amount through live movement state
- reuse live movement for synchronous combat calls
- query live normalized neighbor separation
- run live ordinary fight spacing
- prepare live ordinary combat decision samples
- prepare installed combat defense records
- execute live combat attacks through receiver slots
- coordinate ordinary combat through shared attacker state
- expose signed animation cursor for combat timing
- execute live ordinary combat counters
- process combat coordination messages in ordinary maintenance
- implement retained-point disengaged combat movement
- retain and search live free walk nodes
- retain actor navigation and release held walk nodes
- maintain lost-sight perception through live owners
- retain shared native command context across task slots
- implement retained walk-route next-hop search
- retain actor point commands around paused navigation
- resolve immediate point navigation with live animation
- retain walk-node history and resolve held-node arrivals
- face held walk nodes with shared delay randomness
- continue held-node idle delays on shared random stream
- continue coordinate walking and held-node traversal
- continue point routing and direct walking
- sample ordinary combat defence from live owners
- connect ordinary combat decisions and timing owners
- retain installed combat contact profiles
- add logical model-point and combat contact queries
- admit ordinary attacks through collision windows
- retain reverse animation playback for combat responses
- dispatch ordered combat defence and actor contacts
- retain installed weapon attachment geometry
- dispatch unowned static weapon contacts
- resolve actor-owned weapon contact damage
- retain selected contact health and shared HUD feedback
- retain and advance the action transition counter
- reset selected ledge action during damage reactions
0.1.18
Bug Fixes
- read an absent per-mode camera rate as zero
- mount the retro container's disc as game.cue so movies play
- start combat strength and armor from attributes 2 and 4
Documentation
- release cinematic playback fidelity
- claim browser cinematic skips
- release browser cinematic skips with the retro capture
- size the camera pose stage
- the camera pose stage exists; the natives lack a camera service
- CameraState has no runtime owner yet
- headless START does not run the automatic update
- the combat decision stage is the only START failure
- decision stage decode status
- name final_version as the reason the retro copy skips the Introduction
- preservation PR 110 is merged
- record the browser check of the reader lettering
- narrow the actor and HUD claim to what remains
- record the other logbook reader prefix styles
Features
- add the nonplayer step hazard test
- add the IsInWater and IsInLava queries
- add the MyAIType, MyAIMode and IsOnEdge queries
- add the IsInAir query
- add the IsCombatCapable and PlayerArmed queries
- add the IsDrawingOrSheathing query
- add the health, strength and armor queries
- add SetHealth and AdjustHealth for non-fatal changes
- add AdjustStrength and AdjustArmor
- add the AI byte setters, IsMaster, IsSlave and TrueFunction
- add the PlayerMoved query
- add the tasks, object and combat enable and disable natives
- add the session request natives and IsWithinMap
- add the dialogue and menu mode natives
- add the Animal native
- add the MyId query
- prepare spatial state for every actor at world load
- add the terrain edge probe for nonplayer steppers
- add MoveLeft and MoveRight in combat stance
- supply the blocked-ahead probe to nonplayer combat actors
- add MoveForward with its forward step check
- carry the decision stage's retained combat values
- add the attack executor state machine
- add the defence executor state machine
- add the counter-attack selection
- add the decision stage's heading and facing helpers
- add synchronous defence selection
- implement best and open defence pickers
- implement paced defence selection
- add defence geometry and synchronous starters
- bind receiver-owned paced defence geometry
- bind timed taunts to retained combat pacing
Testing
- pin the original's compass frames at observed headings
0.1.17
Bug Fixes
- draw movie subtitles in REDSEL and keep the CD paused when skipping
- draw normal-font logbook reader glyphs at half palette colour
Documentation
- switch my claim from the save-slot menu to book lighting
- release book lighting
- note the camera export waits on the preservation merge
- point the save-slot menu at the savegame prototype tag
- never commit plans and remove docs/plans
- carry the SOUP camera state without the untracked plan
- record why START stays inert after New Game
- scope the NPC combat decision stage
- correct the combat decision stage size
- link the published combat decision contract
- record the logbook reader lighting measurements
- note the in-sight candidate list source
- record what blocks constructing the session camera state
- claim logbook reader scroll lighting
- camera initial state published
- describe the START opening duel and what it needs
- combat action selection published
- the combat action selector is the taunt selector
- the fight spacing needs nonplayer locomotion first
- locomotion and sight share the retained candidate list
- the candidate list is per-actor and fresh
- record the logbook scroll face gain and roll falloff
- retract the logbook face gain claim
- regenerate the module map for the sight module
- the blocked-ahead probe is published
- the probe's flag meanings are identified
- claim the actor and HUD follow-ups
- record settled logbook scroll shading evidence
- claim cinematic playback fidelity
- MoveForward needs the terrain edge machinery
- record startup-comparison status, what is done and left
Features
- read and write local angle properties
- initialize camera records from installed settings
- convert location-camera attribute offsets
- implement KillMe lifecycle
- play forward type-two groups
- implement SheathSword for non-selected actors
- implement the FacePlayer turn task
- implement potion counters and combat strength and armor
- implement DisableHook and EnableHook
- implement GetFramePassed
- implement DropAllItems
- implement InRectangle
- export camera settings and pin merged preservation
- implement the script light controls
- implement PlayAnimation
- add the actor in-sight test on the prepared candidate list
- compose combat target validity and engagement
- add the nonplayer blocked-ahead probe and animation group classes
- add the MoveBackward decisions as tested pure functions
- implement the MoveBackward native task
- report whether the CD music sink is paused
Performance
- prefetch a decoder per skip point so cinematic skips do not stall
Build
- pin merged preservation actor texture sets