diff --git a/docs/jak1_cleanup_inputs/method_names.jsonc b/docs/jak1_cleanup_inputs/method_names.jsonc new file mode 100644 index 0000000000..23029a5766 --- /dev/null +++ b/docs/jak1_cleanup_inputs/method_names.jsonc @@ -0,0 +1,1581 @@ +{ + "(method 0 actor-link-info)": [ + "new", + "Create an `actor-link-info` which caches the `next` and `prev` lookups, \nallowing fast iteration through an actor list." + ], + "(method 0 align-control)": [ + "new", + "Construct a new `align-control` for the given process." + ], + "(method 0 joint-anim-frame)": [ + "new", + "Allocate `joint-anim-frame` with enough room for `matrix-count`, including the two built-in align, prejoint matrices." + ], + "(method 10 actor-link-info)": [ + "actor-count-before", + "Return the index of this actor" + ], + "(method 10 align-control)": [ + "align!", + "Adjust the `root` of the given `proces-drawable` based on the animation of the `align` matrix.\nThe scale factors are multipliers for velocity and typically `1`." + ], + "(method 10 baby-spider-spawn-params)": [ + "set-delay!", + "Set the automatic death delay" + ], + "(method 10 cam-index)": [ + "point->parameter", + "Project a world point onto the index and return its normalized 0..1 position along it." + ], + "(method 10 cavecrystal-light-control)": [ + "light-intensity-at", + "return the max distance-attenuated crystal light intensity at probe-pos (w = radius), clamped to 2.0" + ], + "(method 10 effect-control)": [ + "do-effect", + "Dispatch a single named effect: send event, spawn particles/part-trackers, play sounds, or trigger death." + ], + "(method 10 rigid-body)": [ + "integrate!", + "advance the simulation by dt: update momentum, velocity, position and rotation from force/torque" + ], + "(method 10 swamp-blimp-oscillator)": [ + "update!", + "step the 3D spring oscillator one frame toward target+offset (vel clamp + damping)" + ], + "(method 10 swamp-rope-oscillator)": [ + "update!", + "step the 1D spring oscillator one frame toward target+offset (vel clamp + damping)" + ], + "(method 10 tippy)": [ + "update-tip!", + "Damped tip/wobble: lean proc's quat toward target-pos (or decay when #f); #t while moving." + ], + "(method 10 torus)": [ + "prim-overlaps?", + "#t if the prim's world-sphere overlaps the torus tube; writes the closest-axis delta into out-delta." + ], + "(method 10 tracking-spline)": [ + "reset!", + "Clear the breadcrumb trail to a single point and rebuild the free-list chain over all 32 slots." + ], + "(method 10 vehicle-controller)": [ + "record-turning-sample!", + "measure the turn rate at one speed index and store its radius and throttle" + ], + "(method 10 water-control)": [ + "update-water-state!", + "Per-frame: update water heights and drive swim/wade/under-water flags, splash/drip particles." + ], + "(method 11 actor-link-info)": [ + "link-to-next-and-prev-actor", + "Look up the previous and next actors in the list and cache them in this `actor-link-info`." + ], + "(method 11 align-control)": [ + "align-with-external-travel!", + "This method is intended to take an animation of walking or travel and re-align it to point in a different\ndirection, for example, to steer a creature along a path. The vertical movement is taken directly from\nthe animation's `align` matrix, but the horizontal xz movement is set from the `xz-travel` vector, a per-\nframe position increment. The speed is limited to the speed of the original animation. The velocity scale\nfactors apply to the original animation (either y velocity, or the xz limit derived from the animation)" + ], + "(method 11 effect-control)": [ + "do-effect-for-surface", + "Resolve a surface-dependent footstep/poof effect (sound or particle group) from the pat material." + ], + "(method 11 nav-control)": [ + "navigate!", + "top-level per-frame nav update: relocalize, gather spheres, compute travel, fire events" + ], + "(method 11 torus)": [ + "target-overlaps?", + "#t if any of *target*'s collide prims overlaps the torus tube; writes the hit delta into out-delta." + ], + "(method 11 twister)": [ + "update-twist!", + "seek last joint toward target, then propagate twist down chain clamped by each joint's max-dry" + ], + "(method 11 vehicle-controller)": [ + "dump-tables", + "print the calibrated turning-radius and throttle-control tables as source to the console" + ], + "(method 11 vol-control)": [ + "should-display?", + "returns truthy if this volume's debug marks should be displayed" + ], + "(method 12 actor-link-info)": [ + "get-next", + "Return the next actor in the list, or #f." + ], + "(method 12 align-control)": [ + "first-transform", + "Get the most recent `align` matrix as a transform." + ], + "(method 12 cavecrystal-light-control)": [ + "prune-dead-lights!", + "once per frame: init the crystal array, or prune crystals whose source process is gone" + ], + "(method 12 effect-control)": [ + "play-effect-sound", + "Build a sound-spec from effect-param res data and play it at the effect joint." + ], + "(method 12 nav-control)": [ + "find-gap-landing", + "find the non-gap poly across a gap and where to jump to (fills nav-gap-info)" + ], + "(method 12 path-control)": [ + "get-tangent-at-vertex!", + "Store in `ret` the normalized tangent (direction) of the path at vertex index `idx`." + ], + "(method 12 torus)": [ + "random-surface-point", + "generate a random point on the torus surface into out-point and return it." + ], + "(method 12 tracking-spline)": [ + "print-all-points", + "Print every used point of the spline (walks the linked list to the terminator)." + ], + "(method 12 twister)": [ + "apply-twist-to-bones!", + "apply each joint's twist (ry) to the matching bone transforms about the process root" + ], + "(method 12 vehicle-controller)": [ + "set-dest-point!", + "set the destination path point and build the steering arc-circle from cur-pos" + ], + "(method 12 wobbler)": [ + "tilt-quaternion!", + "set out-quat to a tilt leaning in the wobble direction, angle scaled by wobble offset magnitude over height" + ], + "(method 13 actor-link-info)": [ + "get-prev", + "Return the previous actor in the list, or #f" + ], + "(method 13 align-control)": [ + "snd-transform", + "Get the previous `align` matrix as a transform." + ], + "(method 13 nav-control)": [ + "compute-travel", + "path-following: build this frame's travel toward a destination along the route" + ], + "(method 13 rigid-body)": [ + "apply-force-at-point!", + "add a world-space force applied at a world point, accumulating force and torque" + ], + "(method 13 tracking-spline)": [ + "delete-point!", + "Remove the breadcrumb after the given index, return its slot to the free-list, and re-stitch the segment." + ], + "(method 14 actor-link-info)": [ + "get-next-process", + "Get the process of the next entity. If there is no next entity, or that entity is not spawned, return #f." + ], + "(method 14 collide-edge-work)": [ + "nearest-grab-edge-dist", + "Find the grabbable edge on the given tri prim closest to test-pt; store the closest point in out-pt and return that distance." + ], + "(method 14 collide-mesh)": [ + "transform-verts-1-matrix!", + "Transform all verts by one matrix, writing float+int copies to output (unused/vestigial dead code)." + ], + "(method 14 effect-control)": [ + "play-effects-from-res-lump", + "Walk effect-name tags and run do-effect for each one inside the frame window." + ], + "(method 14 level-hint)": [ + "print-text", + "Display hint text on screen." + ], + "(method 14 path-control)": [ + "get-tangent-at-percent!", + "Store in `ret` the normalized path tangent at the given fraction `percent` (0..1) along the path." + ], + "(method 14 rigid-body)": [ + "apply-local-force-at-local-point!", + "apply a force given in body-local space at a body-local point" + ], + "(method 14 snow-ball)": [ + "compute-junction-times!", + "Fill the junction array with enter/exit times a roller will reach along the path." + ], + "(method 14 tracking-spline)": [ + "advance-used-point!", + "Move the live-trail head forward to the sampler cursor, freeing every breadcrumb passed and updating summed-len." + ], + "(method 14 vehicle-controller)": [ + "compute-target-point", + "find the tangent target point on the steering circle for the boat at from-pos" + ], + "(method 15 actor-link-info)": [ + "get-prev-process", + "Get the process of the previous entity. If there is no previous entity, or that entity is not spawned, return #f." + ], + "(method 15 collide-mesh)": [ + "transform-verts-2-matrix!", + "Transform all verts by two matrices (float via mat1, int/ftoi via mat2) to output (unused/vestigial dead code)." + ], + "(method 15 rigid-body)": [ + "apply-force!", + "add a world-space force at the center of mass (no torque contribution)" + ], + "(method 15 snow-ball)": [ + "junctions-clear?", + "#t if the proposed junction times don't conflict with any active roller's junctions." + ], + "(method 15 tracking-spline)": [ + "prune-most-collinear!", + "Find the interior breadcrumb on the straightest stretch and delete it to free a slot with minimal shape change." + ], + "(method 15 vehicle-controller)": [ + "drive!", + "per-frame auto-pilot update: advance the path and set throttle and steering for the boat" + ], + "(method 15 water-control)": [ + "enter-water!", + "On first contact with water: set touch-water flag, record entry pos/time, spawn entry splash." + ], + "(method 16 actor-link-info)": [ + "apply-function-forward", + "Apply `func` to each actor in the list after this one, stopping when the function returns a truthy value." + ], + "(method 16 nav-control)": [ + "find-poly-fast-from-world", + "find-poly-fast for a world-space point (converts to mesh-local)" + ], + "(method 16 nav-mesh)": [ + "clip-travel-vector-to-mesh", + "ray-walk & clip a travel vector so it stays on the mesh (slide or stop)" + ], + "(method 16 rigid-body)": [ + "apply-force-at-point-clamped!", + "like apply-force-at-point! but clamp the torque lever arm to max-arm" + ], + "(method 16 seagullflock)": [ + "heading-to-target", + "Return the heading angle from the given bird toward the flock's current path target." + ], + "(method 16 tracking-spline)": [ + "prune-shallow-points!", + "Delete interior breadcrumbs whose length-weighted straightness falls under the budget." + ], + "(method 16 vehicle-controller)": [ + "debug-draw", + "draw the path, the current steering circle, and the target point for debugging" + ], + "(method 16 water-control)": [ + "exit-water!", + "On leaving water: clear touch-water flag and stop the bob/smush." + ], + "(method 17 actor-link-info)": [ + "apply-function-reverse", + "Apply `func` to each entity-actor in the list before this one, stopping when the function returns a truthy value." + ], + "(method 17 drawable-ambient)": [ + "collect-ambients", + "Call this function on the first `drawable-ambient` in an `(inline-array drawable-ambient)` to collect\na list of all ambients that overlap the `collection-range` sphere.\nThis is a clever trick to avoid virtual dispatch per-element." + ], + "(method 17 drawable-inline-array-ambient)": [ + "collect-ambients", + "Collect all ambients intersecting the given sphere into the list." + ], + "(method 17 drawable-tree-ambient)": [ + "collect-ambients", + "Collect all ambients overlapping the given sphere in this tree into the given list." + ], + "(method 17 rigid-body)": [ + "velocity-at-point", + "compute the world velocity at a given world point (linear + angular contribution)" + ], + "(method 17 tracking-spline)": [ + "add-point!", + "Append a breadcrumb to the tail if far enough from the last; optionally prune and recycle a slot." + ], + "(method 18 actor-link-info)": [ + "apply-all", + "Apply `func` to all actors in the list, starting at the beginning of the list.\n`this` doesn't have to be the first actor in the list. Stops when `func` returns a non-truthy value." + ], + "(method 18 drawable-ambient)": [ + "execute-ambient", + "Run the logic for this ambient." + ], + "(method 18 nav-mesh)": [ + "build-route-table-recursive", + "flood-fill that records reachable polys into the route table" + ], + "(method 18 rigid-body)": [ + "get-origin-position", + "compute the body's render origin (position minus the rotated cm-offset joint) into out-position" + ], + "(method 18 tracking-spline)": [ + "accumulate-sample!", + "Walk arc-length forward from the sampler cursor and ADD the resulting trail position into the output vector." + ], + "(method 19 actor-link-info)": [ + "send-to-all", + "Send a 0-parameter message to all actors in the list,\neven if the provided actor-link-info isn't from the first actor" + ], + "(method 19 nav-control)": [ + "steer-toward-point", + "turn-rate-limited heading toward a goal, validating the step stays on mesh" + ], + "(method 19 path-control)": [ + "get-closest-vertex-index-to-target", + "Return the `vertex-index.interp` position on the path closest (in XZ) to the player's target." + ], + "(method 19 tracking-spline)": [ + "sample-point!", + "Reset the output then sample the single trail position arc-length forward from the sampler cursor." + ], + "(method 20 actor-link-info)": [ + "send-to-all-after", + "`send-event!` with a 0 parameter message to all actors after the given actor." + ], + "(method 20 balloonlurker-pilot)": [ + "init-collision!", + "create and configure the moving collide-shape (single sphere prim) for the pilot" + ], + "(method 20 baseplat)": [ + "spawn-part!", + "spawn the platform's particle group at root trans if part is set" + ], + "(method 20 blue-eco-charger)": [ + "target-near-with-blue-eco?", + "true if target is within range and currently has blue eco" + ], + "(method 20 blue-eco-charger-orb)": [ + "randomize-target-orbit-rotv!", + "pick a new random per-axis target orbit angular velocity, scaled by open-level" + ], + "(method 20 bully)": [ + "update-spin-velocity!", + "set travel velocity from heading/speed, bounce off walls/mesh boundaries, apply gravity" + ], + "(method 20 cave-trap)": [ + "try-spawn-baby-spider", + "Pick the best nearby alt-actor vent/egg and spawn a baby-spider there." + ], + "(method 20 caveelevator)": [ + "update-bounce!", + "once per frame, apply the smush bounce offset to the elevator's y position" + ], + "(method 20 citb-sagecage)": [ + "init-collision!", + "Build and attach the cage's moving collide-shape (root prim sphere)." + ], + "(method 20 dark-crystal)": [ + "damage-target-in-blast-radius!", + "if the player is within the danger radius with clear line of sight, deal an attack to them" + ], + "(method 20 driller-lurker)": [ + "update-movement-and-drill!", + "Per-frame: advance along path, face/aim, spin drill, manage drill sound and neck look-at." + ], + "(method 20 drop-plat)": [ + "setup-collision!", + "build the moving collide-shape (single sphere mesh prim, rider) and install it as root" + ], + "(method 20 exit-chamber)": [ + "bob-on-waves!", + "bob the chamber's y position sinusoidally around its original trans, scaled by wave-scale" + ], + "(method 20 flutflutegg)": [ + "apply-hit-impulse!", + "apply a velocity + x/y wobble impulse to the egg when hit, rate-limited to once per 0.5s" + ], + "(method 20 flying-lurker)": [ + "update-shadow!", + "probe ground below the lurker, set shadow planes, and grow draw-bounds to fit shadow" + ], + "(method 20 gnawer)": [ + "copy-segment-from-prev!", + "Copy the previous segment's world-pos and orient-mat into this segment." + ], + "(method 20 joint-exploder)": [ + "add-joint!", + "Push the joint at joint-idx onto the head of the list's doubly-linked list." + ], + "(method 20 junglesnake)": [ + "update-tracking-and-twist!", + "seek body yaw toward player and propagate twist down the joints" + ], + "(method 20 lurkerworm)": [ + "aim-at-target!", + "Each frame, sway the worm body toward the player and seek the head-tilt to the vertical angle to target." + ], + "(method 20 mother-spider)": [ + "find-baby-spawn-spot?", + "pick a nav-mesh spot near the spider for a baby/egg, return its ground pos and normal" + ], + "(method 20 orbit-plat-bottom)": [ + "point-jet-streak!", + "aim/scale the jet-streak particle along the line from from-point to to-point" + ], + "(method 20 path-control)": [ + "get-closest-percent-to-target", + "Return the fraction (0..1) along the path of the point closest to the player's target." + ], + "(method 20 puffer)": [ + "travel-to-point!", + "Navigate toward dest, steering around mesh boundaries/nav spheres and updating travel/facing." + ], + "(method 20 ram)": [ + "spawn-wall-hit-particles!", + "spawn the wall-impact dust burst in front of the ram on slam" + ], + "(method 20 rigid-body)": [ + "print-force-torque", + "print only the current force and torque vectors" + ], + "(method 20 snow-gears)": [ + "spawn-drip-particles", + "Spawn the dripping-water particle group above the gears each frame while running." + ], + "(method 20 steam-cap)": [ + "shove-target-off!", + "If the player is riding/near the rising cap, shove them off." + ], + "(method 20 sunken-pipegame)": [ + "build-completed-challenges-mask", + "return a 3-bit mask of which pipe prizes are already collected/done" + ], + "(method 20 sunkenfisha)": [ + "reverse-path-direction!", + "flip path-dir, reset speed, pick new target speed/turn-time and adjust offset" + ], + "(method 20 swamp-bat-slave)": [ + "get-path-position", + "current position along the path curve (sync phase scaled by path-point-count)" + ], + "(method 20 swamp-rat-nest-dummy)": [ + "init-collision-and-skeleton!", + "Build this subtype's collide-shape and initialize its skeleton." + ], + "(method 20 swamp-rope)": [ + "still-tethered?", + "#t while the rope's other entity exists and its task still needs a reminder" + ], + "(method 20 tracking-spline)": [ + "apply-trail-correction!", + "Nudge the proposed camera move sideways toward the breadcrumb trail (rubber-band corner-hugging)." + ], + "(method 20 whirlpool)": [ + "swirl-target!", + "pull and spin the player toward the whirlpool center when within range" + ], + "(method 20 yeti)": [ + "find-slave-spawn-point!", + "Search path curve points for a spot far from existing slaves/target; write spawn pos and facing dir to outputs. Returns #t if found." + ], + "(method 21 actor-link-info)": [ + "send-to-all-before", + "`send-event!` with a 0 parameter message to all actors before the given actor." + ], + "(method 21 balloonlurker-pilot)": [ + "init-skeleton!", + "initialize the pilot's skeleton and set its render origin joint" + ], + "(method 21 baseplat)": [ + "init-platform!", + "mark skeleton inited, snapshot root trans into basetrans, clear bouncing" + ], + "(method 21 blue-eco-charger)": [ + "notify-master!", + "tell the master exit-chamber this charger turned on (1) or off (2), with its charger-id" + ], + "(method 21 caveelevator)": [ + "update-draw-bounds!", + "set draw bounds offset from root to joint 3 with radius 17408" + ], + "(method 21 citb-base-plat)": [ + "setup-collision!", + "build the moving collide-shape (ground-object prim) and install it as root" + ], + "(method 21 citb-disc)": [ + "init-skel!", + "init the disc skeleton (base stub; overridden per variant)" + ], + "(method 21 citb-generator)": [ + "setup!", + "init skeleton/lods, mushroom config, particles and ambient sound" + ], + "(method 21 citb-sagecage)": [ + "init-cage!", + "Init skeleton, bar particle positions, ambient sound and bar/clone state." + ], + "(method 21 dark-crystal)": [ + "record-destroyed-and-all-done?", + "mark this crystal destroyed in the task reminder; return #t if it was the last of the six" + ], + "(method 21 drop-plat)": [ + "init-skeleton-and-spin!", + "init the skeleton for this color variant and pick a random tumble spin axis/speed" + ], + "(method 21 exit-chamber)": [ + "compute-item-placements!", + "fill exit-chamber-items with door/button/fcell positions and quats from the chamber bone" + ], + "(method 21 final-door)": [ + "setup-skeleton!", + "Initialize the door's skeleton with the subtype-specific skeleton group." + ], + "(method 21 gnawer)": [ + "place-segment-along-route!", + "Position one segment at route distance, set its orient-mat, and grow the bounding box." + ], + "(method 21 helix-water)": [ + "consume-next-alt-actor!", + "As the water rises, kill/disable the next alt-actor once the water level reaches it." + ], + "(method 21 joint-exploder)": [ + "grow-bbox!", + "Expand the list's bounding box to contain the joint's current position and previous position." + ], + "(method 21 junglesnake)": [ + "init-tilt-joints!", + "initialize the 3 head tilt-joints and flag the head twist/tilt joints" + ], + "(method 21 mother-spider)": [ + "hit-from-dir!", + "push swing toward hit-dir; if do-damage?, spin/detach legs and report if fully damaged" + ], + "(method 21 nav-control)": [ + "find-poly-fast-at", + "find-poly-fast for a world-space point (identical to method 16)" + ], + "(method 21 puffer)": [ + "setup-collision!", + "Build the puffer's moving collide-shape with head/mouth/tail prim spheres." + ], + "(method 21 ram)": [ + "spawn-wheel-puffs!", + "spawn dust puffs at both sides of both rear wheels during the slam" + ], + "(method 21 rigid-body)": [ + "update-matrix!", + "rebuild the orientation matrix from rotation and refresh the world origin" + ], + "(method 21 steam-cap)": [ + "update-motion!", + "Per-frame: drive the 3 control points up/down by phase, spawn steam/sound, orient root." + ], + "(method 21 sunken-pipegame)": [ + "set-actor-pause!", + "set/clear the actor-pause process-mask on self and all child processes" + ], + "(method 21 sunkenfisha)": [ + "get-path-point-with-offset", + "world point on path at u, plus trans-offset and tangent-aligned local-offset" + ], + "(method 21 swamp-rat-nest-dummy)": [ + "init-spawn-joints!", + "Fill this subtype's spawn-joint array and particle/death config; return particle spawn joint." + ], + "(method 21 tracking-spline)": [ + "follow-update!", + "Per-frame trail follower: rate-govern crawl speed/sample width, box-average, rubber-band correct, write the smoothed position." + ], + "(method 22 actor-link-info)": [ + "send-to-next-and-prev", + "Send a 0-parameter message to the next and previous actor." + ], + "(method 22 baseplat)": [ + "bounce!", + "start a smush bounce, set bouncing, and wake the platform from sleep" + ], + "(method 22 citb-base-plat)": [ + "setup-skeleton!", + "initialize the skeleton/skelgroup for this platform" + ], + "(method 22 gnawer)": [ + "update-segments!", + "Place all segments along the route at the given distance; return #t when at the destination." + ], + "(method 22 joint-exploder)": [ + "collide-joints!", + "Probe each joint in the list against background collision and bounce it off any surface it hits." + ], + "(method 22 junglesnake)": [ + "init-twist-joints!", + "initialize the 24 body twist-joints with joint indices, base yaw, and drag deltas" + ], + "(method 22 mistycannon)": [ + "fire!", + "Fire the cannon: compute launch velocity from aim, spawn the missile, and reset aim." + ], + "(method 22 mother-spider)": [ + "aim-thread-segment!", + "build orthonormal basis in mat with z-axis pointing from mat's origin toward target-pos" + ], + "(method 22 nav-control)": [ + "point-on-mesh-below?", + "is the world point on the mesh and below origin-y + y-tolerance?" + ], + "(method 22 puffer)": [ + "buddy-nearby?", + "True if this puffer's buddy process is alive and within xz patrol distance." + ], + "(method 22 ram)": [ + "complete-ram-task!", + "mark this ram complete, update reminder tasks, return whether to give the fuel cell" + ], + "(method 22 rigid-body)": [ + "reset!", + "reset the body to the given position/rotation, clearing momentum, velocity and inertia state" + ], + "(method 22 rigid-body-platform)": [ + "float-height-at", + "Return the height (w component) the platform should float to at the given position/time. Base rigid-body-platform samples the water/ocean surface plus float-height-offset; citb-chain-plat returns a bobbing offset above its original anchor height." + ], + "(method 22 seagull)": [ + "set-glide-sink-velocity!", + "Set a fixed downward velocity used while soaring/gliding." + ], + "(method 22 snow-ball-roller)": [ + "attack-target!", + "Bounce the ball up and shove the given process away with an attack event." + ], + "(method 22 sunken-pipegame)": [ + "set-active-prize-collision!", + "enable (restore) or disable (clear) collision on the currently-playing prize" + ], + "(method 22 sunkenfisha)": [ + "dummy-update!", + "empty per-frame/update stub (does nothing on the base type)" + ], + "(method 22 tracking-spline)": [ + "trim-to-length!", + "If the live trail exceeds the max length, advance the head to drop the oldest breadcrumbs until it fits." + ], + "(method 22 water-vol)": [ + "setup-water!", + "Initialize this water volume: base water-vol is a stub; water-anim sets up the skeleton/animation and ambient sound, and level subtypes add ripple/tint configuration." + ], + "(method 23 actor-link-info)": [ + "send-to-next", + "Send a 0-parameter message to the next actor if it is alive." + ], + "(method 23 driller-lurker)": [ + "update-player-path-u", + "Project the player onto the lurker's path and cache/return the player's path-u (once per frame)." + ], + "(method 23 exit-chamber)": [ + "reposition-items!", + "update bounds and move door/button/player (and fcell if move-fcell-too?) to follow the chamber" + ], + "(method 23 gnawer)": [ + "hide!", + "Hide the gnawer, disable its collision, and park all segments at the post." + ], + "(method 23 joint-exploder)": [ + "init-joints!", + "Initialize every exploder joint's matrices and launch velocity, then seed the first list with all joints." + ], + "(method 23 junglesnake)": [ + "enable-lethal!", + "make the snake lethal by clearing the head prim's solid action" + ], + "(method 23 mistycannon)": [ + "spawn-muzzle-part!", + "Update muzzle-flash particle angles from aim and spawn them for 3s after firing." + ], + "(method 23 mother-spider)": [ + "update-physics!", + "advance thread distance, swing position/velocity (with wall bounce) and spin, then set trans/quat" + ], + "(method 23 nav-control)": [ + "check-vector-collision-with-nav-spheres", + "nearest forward sphere hit along a travel direction" + ], + "(method 23 nav-mesh)": [ + "clip-travel-to-poly", + "clip a travel vector to a single poly's edges, recording the exit neighbor" + ], + "(method 23 puffer)": [ + "pick-patrol-point!", + "Choose a new patrol dest-pos; if away-from-buddy, pick the path point facing away from the buddy." + ], + "(method 23 rigid-body-platform)": [ + "accumulate-forces!", + "For one physics tick: update each control point's world position/velocity, accumulate buoyancy+drag forces, then apply gravity and player forces to the rigid body. Subclass overrides call the parent and then add a centering/tether pull toward an anchor." + ], + "(method 23 sunkenfisha)": [ + "update-facing-rotation!", + "smooth facing-rot toward velocity pitch/yaw and write root quat" + ], + "(method 23 tracking-spline)": [ + "debug-draw", + "Draw debug viz of the spline: crosses at endpoint samples, lines between points, output velocity." + ], + "(method 24 actor-link-info)": [ + "send-to-prev", + "Send a 0-parameter message to the actor before this actor." + ], + "(method 24 baseplat)": [ + "setup-collision!", + "build the moving collide-shape and install it as root" + ], + "(method 24 citb-base-plat)": [ + "go-initial-state!", + "enter the platform's starting state (idle by default)" + ], + "(method 24 driller-lurker)": [ + "in-attack-range?", + "#t when the player is close enough (or near the same path position) for the lurker to attack." + ], + "(method 24 eco-door)": [ + "setup-collision!", + "build the door collide-shape and install it as root" + ], + "(method 24 exit-chamber)": [ + "spawn-water-drips!", + "launch water-drip particles at a random point on a ring (radius) around the chamber's top bone" + ], + "(method 24 gnawer)": [ + "pick-route!", + "Pick a random far-apart src/dest path point pair and compute the run route." + ], + "(method 24 joint-exploder)": [ + "kill-joint!", + "Unlink the joint from the list and collapse its matrix onto the root, returning the next joint index." + ], + "(method 24 junglesnake)": [ + "disable-lethal!", + "make the snake non-lethal by restoring solid action and pushing the player away" + ], + "(method 24 nav-control)": [ + "clip-travel-to-mesh", + "wrapper: clip this nav-control's travel vector to the mesh" + ], + "(method 24 projectile)": [ + "spawn-particles", + "Per-frame update: spawn fly particles at the world sphere, reposition the track sound, and draw a ground shadow." + ], + "(method 24 puffer)": [ + "point-reachable?", + "True if point is inside the nav mesh and below the puffer's notice ceiling." + ], + "(method 24 rigid-body-platform)": [ + "apply-buoyancy-and-drag!", + "for one submerged control point, apply buoyancy and drag forces to the body" + ], + "(method 24 seagull)": [ + "steer-toward-target!", + "Turn toward the flock target, mark waterfall arrival, and update angletan and target-dist." + ], + "(method 24 sunkenfisha)": [ + "update-local-path-offset!", + "drift local-path-offset toward target, re-randomizing target when reached" + ], + "(method 25 actor-link-info)": [ + "actor-count", + "Count the total number of actors in an actor list given any actor in the list." + ], + "(method 25 baseplat)": [ + "setup-part!", + "create the launch-control for the platform's particle group and store it in part" + ], + "(method 25 driller-lurker)": [ + "should-start-chase?", + "#t when the player is within detection range (and roughly in front), so the lurker should begin chasing." + ], + "(method 25 eco-door)": [ + "setup-skel-and-params!", + "init skeleton, open/close distances and movement speed" + ], + "(method 25 gnawer)": [ + "take-damage!", + "Lose up to 3 hit-points, spawn falling segments, speed up; return #t when dead." + ], + "(method 25 joint-exploder)": [ + "integrate-joints!", + "Step every joint in the list (gravity, rotation, translation) and kill any that fall out of bounds." + ], + "(method 25 projectile)": [ + "go-moving!", + "Launch the projectile by entering the projectile-moving state." + ], + "(method 25 puffer)": [ + "should-attack-target?", + "True if the target is attackable, in range/height, and closer than the buddy." + ], + "(method 25 rigid-body-platform)": [ + "apply-player-force!", + "if the player is impacting/riding, apply the accumulated player force to the body" + ], + "(method 25 seagull)": [ + "turn-toward-heading!", + "Bank tilt and rotate heading one step toward the given target heading angle." + ], + "(method 25 sunkenfisha)": [ + "advance-along-path!", + "seek path-speed to target and advance path-u, reversing at the path ends" + ], + "(method 25 water-vol)": [ + "setup-from-res!", + "Pre-skeleton setup hook: apply res-lump look/trans-offset/rotoffset to root (base no-op)." + ], + "(method 26 basebutton)": [ + "setup-skel-and-anim!", + "initialize the button's skeleton and pose its anim channel to the up/down (pressed/unpressed) frame" + ], + "(method 26 baseplat)": [ + "configure-options!", + "post-init tweaks (masks, scale, distances, res-lump options)" + ], + "(method 26 driller-lurker)": [ + "lost-player?", + "#t when the player is out of chase range (too far/wrong height), so the lurker should give up and patrol." + ], + "(method 26 eco-door)": [ + "update-locked!", + "set the locked flag from the state-actor's completion status and the door flags" + ], + "(method 26 gnawer)": [ + "unhide!", + "Un-hide the gnawer, restore collision, and re-enable the joint callback." + ], + "(method 26 joint-exploder)": [ + "remove-joint!", + "Unlink the joint at joint-idx from the doubly-linked list, returning the next joint index." + ], + "(method 26 nav-control)": [ + "post-relocalize-hook", + "empty hook called at the end of relocalize (overridden by subclasses)" + ], + "(method 26 projectile)": [ + "init-proj-collision!", + "Build the projectile's collide-shape-moving + sphere prim, install it as root, and set the process collide masks." + ], + "(method 26 puffer)": [ + "update-anim!", + "Drive the inflate/deflate look and animation channel based on sync phase and attacking state." + ], + "(method 26 rigid-body-platform)": [ + "apply-gravity!", + "apply the downward gravity force to the body's center of mass" + ], + "(method 26 seagull)": [ + "teleport-near-target!", + "Move the bird most of the way to a random point near the flock target and clear the teleport flag." + ], + "(method 26 sunkenfisha)": [ + "setup-collision-and-skel!", + "build root/trsqv and init skeleton with a random fish color variant" + ], + "(method 26 trsqv)": [ + "set-and-limit-velocity", + "Set the `transv` to the given velocity, limited to a magnitude of `limit`." + ], + "(method 27 basebutton)": [ + "setup-collision!", + "build the button's moving collide-shape, install it as root, and return it" + ], + "(method 27 battlecontroller)": [ + "setup-paths-and-params!", + "read entity res-lump to init fact, spawner paths, creature types, pickups and battle params" + ], + "(method 27 driller-lurker)": [ + "spawn-drill-debris", + "Spawn the drilling-debris particle group just ahead of the drill bit joint." + ], + "(method 27 entity-actor)": [ + "next-actor", + "Get the next actor from an entity-actor that is in a linked list of actors." + ], + "(method 27 gnawer)": [ + "maybe-pick-green-eco-pickup!", + "Based on death-count and target health, maybe mark one pickup slot as green eco." + ], + "(method 27 joint-exploder)": [ + "split-list!", + "Split the list in half along the given axis at its bbox midpoint, moving one half into a free list and returning it." + ], + "(method 27 mother-spider)": [ + "unused-hook-27", + "empty/unused virtual-method slot (never called, does nothing)" + ], + "(method 27 nav-control)": [ + "relocalize-in-mesh!", + "update current-poly by ray-walking from prev-pos to the body's new position" + ], + "(method 27 orbit-plat)": [ + "reset-step!", + "advance the platform one frame back toward its home position, coordinating orbit/reset with the partner" + ], + "(method 27 plat-button)": [ + "pose-skeleton!", + "pose the skeleton to the start or end anim frame based on activation, then post" + ], + "(method 27 projectile)": [ + "init-proj-settings!", + "Set up the mother-spider projectile: parts, speed/turn/tween, attack-mode, target at the player, and fire/track sounds." + ], + "(method 27 puffer)": [ + "update-vertical-velocity!", + "Update vertical velocity to chase target height (attack) or bob between patrol bounds." + ], + "(method 27 rigid-body-platform)": [ + "apply-restoring-force!", + "Apply a horizontal restoring force pulling the rigid body back toward target-pos when it has drifted past a threshold distance from its anchor." + ], + "(method 27 seagull)": [ + "integrate-with-air-bounds!", + "Integrate motion this frame, skipping collision while inside the seagull air boxes and colliding with background otherwise." + ], + "(method 27 square-platform)": [ + "spawn-water-crossing-effects!", + "spawn splash/bubble particles as the platform crosses the water surface (rising? selects breach vs submerge effects)" + ], + "(method 27 sunkenfisha)": [ + "setup-path-and-params!", + "read res-lump params and init path, offsets, speeds and initial facing" + ], + "(method 27 wedge-plat)": [ + "update-tip-state?", + "orbit/rotate the platform around the master's angle; return #t when at the tipping orientation" + ], + "(method 28 entity-actor)": [ + "prev-actor", + "Get the previous actor from an entity-actor that is in a linked list" + ], + "(method 28 entity-ambient)": [ + "birth-ambient!", + "\"Birth\" the ambient. This simply resolves data from res-lumps into the runtime formats, looking up names,\nsetting up callback functions, etc." + ], + "(method 28 gnawer)": [ + "pick-random-free-bit", + "Return a random bit (as mask) in [0,num-bits) that is not set in used-mask, else 0." + ], + "(method 28 joint-exploder)": [ + "subdivide-list!", + "Recursively split the list along whichever axis exceeds the size threshold until each sub-list is small enough." + ], + "(method 28 mother-spider)": [ + "unused-hook-28", + "empty/unused virtual-method slot (never called, returns 0)" + ], + "(method 28 nav-control)": [ + "gather-nav-spheres!", + "rebuild this frame's obstacle-sphere list for the steering planner" + ], + "(method 28 orbit-plat)": [ + "reset-timeout?", + "#t once timeout elapsed and the player is gone/far/below, so the platform should reset" + ], + "(method 28 plat)": [ + "reset-timeout?", + "slot for \"should this still platform give up and return home?\"; only overridden by orbit-plat" + ], + "(method 28 plat-button)": [ + "setup-collision!", + "build the moving collide-shape prim-group and install as root" + ], + "(method 28 projectile)": [ + "update-target!", + "Per-frame homing: refresh the target point at the player (leading by their velocity) unless they are invulnerable." + ], + "(method 28 puffer)": [ + "update-shadow!", + "Probe the ground below the puffer and configure shadow clip planes (or hide shadow)." + ], + "(method 28 rigid-body-platform)": [ + "simulate!", + "detect riders, sample player velocity, and run the fixed-timestep physics simulation loop" + ], + "(method 28 ropebridge)": [ + "ropebridge-stub-28", + "empty/unused ropebridge-specific method slot; returns 0 and does nothing" + ], + "(method 29 basebutton)": [ + "notify-event!", + "send an event message to the notify-actor, or to all linked buttons if none" + ], + "(method 29 gnawer)": [ + "compute-pickup-position!", + "For a path point, compute the pickup spawn position and an outward/upward jump vector." + ], + "(method 29 mother-spider)": [ + "update!", + "once-per-frame update: run physics, body scale, leg-socket particles, optional shadow and neck-track" + ], + "(method 29 rigid-body-platform)": [ + "setup-from-constants!", + "initialize the platform and its rigid body from the given constants table" + ], + "(method 30 gnawer)": [ + "claim-nearest-pickup!", + "Clear the money-mask bit of the pickup point nearest the picker, returning the updated mask." + ], + "(method 30 nav-control)": [ + "find-deepest-sphere-along-ray", + "return the avoidance sphere the ray overlaps most (or #f)" + ], + "(method 30 puffer)": [ + "set-small-mouth-collision!", + "Switch to cprims-type 1: small (deflated) mouth collision sphere." + ], + "(method 30 rigid-body-platform)": [ + "init-collision!", + "Create and configure the moving collide-shape (sphere prim, riders, collide kinds/actions) for the platform and install it as root-overlay." + ], + "(method 31 assistant-lavatube-end)": [ + "get-art-elem", + "Get default art-element, typically idle animation." + ], + "(method 31 plat-button)": [ + "setup-skeleton!", + "initialize the exit-plat skeleton/skelgroup" + ], + "(method 31 puffer)": [ + "set-large-mouth-collision!", + "Switch to cprims-type 2: large (inflated/attack) mouth collision sphere." + ], + "(method 31 rigid-body-platform)": [ + "init-platform!", + "Per-subclass platform initialization: set up constants, place the control points (typically around a circle) and initialize instance state. citb-chain-plat also inits the skeleton and caches its original transform; ogre-plat resets active/triggered state." + ], + "(method 32 assistant-lavatube-end)": [ + "play-anim!", + "Play the animation as needed. If `actually-play?` is `#f`, just returns the animation for pre-loading or\nsimilar." + ], + "(method 32 nav-control)": [ + "avoid-spheres", + "tangent-bug steering: deflect travel around avoidance spheres (#t if deflected)" + ], + "(method 32 plat-button)": [ + "go-initial-state!", + "start raised if activated, else enter the idle state" + ], + "(method 32 rigid-body-platform)": [ + "sync-on-state!", + "match this platform's lit state and on-visual to the master's puzzle state, playing on/off sfx" + ], + "(method 33 nav-control)": [ + "avoid-spheres-and-detect-blocked", + "run avoid-spheres, then flag/fire blocked if travel shrinks" + ], + "(method 33 process-taskable)": [ + "prefetch-play-anim!", + "Low-priority spool-push of the play-anim so it is loaded before it is needed." + ], + "(method 33 rigid-body-platform)": [ + "notify-master-ridden!", + "tell the qbert-plat-master that the player just stepped onto this platform" + ], + "(method 34 rigid-body-platform)": [ + "go-initial-state", + "Enter the platform's initial state. Base rigid-body-platform always goes to rigid-body-platform-idle; ogre-step enters -float if already active, otherwise -idle." + ], + "(method 35 nav-control)": [ + "avoid-spheres-world", + "like avoid-spheres but takes a world-space start point (converts to local)" + ], + "(method 37 nav-enemy)": [ + "turn-toward-travel!", + "Seek facing toward target point or travel heading; spin in place when not orienting." + ], + "(method 38 nav-enemy)": [ + "integrate-and-collide!", + "Move the spider by transv, always snapping to background ground (move-to-ground override)." + ], + "(method 38 process-taskable)": [ + "goto-post-anim-state!", + "After play-anim, branch on task status: query for reminders, replay for reward, else default." + ], + "(method 39 assistant-lavatube-end)": [ + "should-display?", + "Should this character appear?" + ], + "(method 39 babak-with-cannon)": [ + "common-post", + "Load spooled animations for the babak." + ], + "(method 40 nav-enemy)": [ + "update-nav-target!", + "Point nav-control at our current nav target-pos so it recomputes the travel vector." + ], + "(method 40 process-taskable)": [ + "init-as-taskable!", + "Build collision/skeleton and set all taskable defaults from the entity, joints, and collision sphere." + ], + "(method 41 nav-enemy)": [ + "compute-travel-velocity!", + "Turn the nav travel direction into collide-info transv, applying momentum/accel (or align) and gravity." + ], + "(method 42 process-taskable)": [ + "goto-initial-state!", + "Enter idle or hidden depending on whether the sage should display." + ], + "(method 43 process-taskable)": [ + "try-play-ambient-chatter", + "Occasionally play a random welding ambient line when the player is nearby." + ], + "(method 44 baby-spider)": [ + "touch-handler", + "Handle incoming touch: send an attack to the incoming process and go victory if we won." + ], + "(method 45 blue-sagecage)": [ + "update-beam-direction!", + "Push the sage's rot-y/rot-x into the beam particle init-specs (base citb-sage just records spawn-pos).", + "annotation" + ], + "(method 45 citb-sage)": [ + "update-beam-direction!", + "Push the sage's rot-y/rot-x into the beam particle init-specs (base citb-sage just records spawn-pos).", + "annotation" + ], + "(method 45 green-sagecage)": [ + "update-beam-direction!", + "Push the sage's rot-y/rot-x into the beam particle init-specs (base citb-sage just records spawn-pos).", + "annotation" + ], + "(method 45 red-sagecage)": [ + "update-beam-direction!", + "Push the sage's rot-y/rot-x into the beam particle init-specs (base citb-sage just records spawn-pos).", + "annotation" + ], + "(method 45 sage)": [ + "reminder-due?", + "True when a closed task's reminder is still unseen, or the reminder played and the player has moved far away.", + "annotation" + ], + "(method 45 sage-bluehut)": [ + "should-play-reminder?", + "True when a reminder line is due (a need-reminder task is closed or the player wandered far after reminder-played).", + "annotation" + ], + "(method 45 sage-finalboss)": [ + "update-beam-direction!", + "override: spawn the assistant manipy on the finalboss level and set it up as a clone-anim blend-shape", + "annotation" + ], + "(method 45 yellow-sagecage)": [ + "update-beam-direction!", + "Push the sage's rot-y/rot-x into the beam particle init-specs (base citb-sage just records spawn-pos).", + "annotation" + ], + "(method 46 process-taskable)": [ + "update-music-and-flava!", + "Add/remove sound-flava and music settings based on the player's proximity." + ], + "(method 47 assistant-bluehut)": [ + "target-above-threshold?", + "Determine if we should prompt for interaction - mainly checks to see if target is closer to us\nor the sage." + ], + "(method 48 assistant-levitator)": [ + "draw-npc-shadow", + "Calculate the plane and angle for shadow drawing." + ], + "(method 48 citb-bunny)": [ + "setup-enemy!", + "Post-init hook: build skeleton, apply nav-enemy-info defaults, set defense/retreat from entity mode, and configure neck/attack/patrol fields.", + "replace" + ], + "(method 48 nav-enemy)": [ + "setup-enemy!", + "Per-subclass post-init hook called from init-from-entity! after collision/entity setup: initialize the skeleton, nav-enemy-info defaults, particle/joint controls and enemy-specific state. Empty stub on the nav-enemy base." + ], + "(method 50 nav-enemy)": [ + "jump-dest-blocked?", + "Test whether a jump destination lies inside any nav-mesh sphere relative to our origin, i.e. the jump is blocked." + ], + "(method 50 process-taskable)": [ + "target-far-away?", + "True when the player (or camera) is far enough that the NPC can leave the hidden-other state." + ], + "(method 51 baby-spider)": [ + "randomize-wiggle!", + "Randomize the chase wiggle rate, amplitude and target-speed for variety.", + "annotation" + ], + "(method 51 double-lurker)": [ + "split-collision!", + "Reconfigure collide prims for the lone bottom lurker: clear the shoulder prims and turn indestructible body prims into touch prims.", + "annotation" + ], + "(method 51 double-lurker-top)": [ + "enable-collision!", + "Re-enable the top lurker's collision and nav: restore collide-with, set navf0, sync nav-control.", + "annotation" + ], + "(method 51 green-eco-lurker)": [ + "appear-dest-valid?", + "#t if candidate-point is far enough from the player and not blocked by the nav mesh (usable appear destination)", + "replace" + ], + "(method 51 ice-cube)": [ + "snap-point-to-ground", + "Y-probe down from in-point to the background ground, writing the ground point to out-point; #f if no valid ground (or lava)." + ], + "(method 51 muse)": [ + "spawn-sparkle-particles!", + "Emit sparkle particles at two random body joints each frame for the muse's glow effect.", + "annotation" + ], + "(method 51 ram-boss)": [ + "turn-needed-to-throw?", + "#t if the boss must keep turning before throwing; if within ~60deg, nudges throw-dir and returns #f (ready)." + ], + "(method 51 snow-bunny)": [ + "probe-ground-below?", + "y-probe for background ground under in-point, write the snapped point to out-point; #f if none/bad pat", + "replace" + ], + "(method 52 assistant-levitator)": [ + "setup-shadow-settings!", + "Set shadow clipping planes as an optimization to reduce shading when drawing shadow geometry." + ], + "(method 52 baby-spider)": [ + "wiggle-nav-target!", + "Offset the nav target side-to-side around base-pos via a sine wiggle, giving the chase a weaving path.", + "annotation" + ], + "(method 52 double-lurker)": [ + "find-knockback-fall-dest?", + "Compute where the top lurker should fall when hit: a far-enough nav point with valid ground below; #t and writes the point if found.", + "annotation" + ], + "(method 52 green-eco-lurker)": [ + "pick-appear-dest?", + "scan the path vertices in random order for a valid appear spot, writing it to out-point; #t if found", + "annotation" + ], + "(method 52 ice-cube)": [ + "valid-appear-point?", + "True if candidate-pt is a good place to surface: in the right distance band from the player, not jump-blocked, and on-screen.", + "annotation" + ], + "(method 52 process-taskable)": [ + "setup-shadow-settings!", + "configure the NPC's shadow-control top/bottom clip planes (subtypes offset them by the actor's height)" + ], + "(method 52 ram-boss)": [ + "enable-ground-combat-collision!", + "Resize the body prims and arm the shield prim as a solid attacking surface for ground combat." + ], + "(method 52 snow-bunny)": [ + "setup-chase-hop?", + "compute the next chase-hop nav target toward the player (or a jump-event); #f if no valid hop", + "replace" + ], + "(method 53 baby-spider)": [ + "dead-if-not-visible?", + "Refresh last-visible-time while on-screen; return #t once off-screen long enough to die.", + "annotation" + ], + "(method 53 double-lurker)": [ + "find-free-path-point?", + "Scan path vertices (from a random start) for one not blocked by a nav-sphere; writes it to out-point, returns #t if a free spot was found." + ], + "(method 53 green-eco-lurker)": [ + "update-appear-shadow!", + "while visible at full LOD enable the shadow and clamp its top/bottom planes around the appear-dest height, else hide it", + "annotation" + ], + "(method 53 ice-cube)": [ + "pick-appear-point-and-facing", + "Search path points for a valid appear spot; write its ground position to out-pos and the facing dir (toward player) to out-dir." + ], + "(method 53 ram-boss)": [ + "disarm-shield-collision!", + "switch body prims to 'touch offense and disable the shield prim (used when the shield is knocked off)", + "annotation" + ], + "(method 53 snow-bunny)": [ + "pick-patrol-hop-dest?", + "choose a far-enough, on-ground path vertex as the next patrol destination; #t if one was found", + "annotation" + ], + "(method 54 ice-cube)": [ + "pick-charge-target-point!", + "Scan path points for one far enough away with valid ground, store it in target-pt; #t on success.", + "annotation" + ], + "(method 54 ram-boss)": [ + "get-throw-point!", + "Compute the world-space muzzle point (offset from joint 18) where the bolus projectile is launched, storing it in out-point and returning it. Uses the original base slot signature (_type_ vector) symbol (shared with ice-cube).", + "annotation" + ], + "(method 54 snow-bunny)": [ + "setup-patrol-hop?", + "Compute the next patrol-hop nav target toward final-dest (or a queued jump-event); return #f if no valid hop. Distinct :replace'd slot (signature (_type_) symbol).", + "replace" + ], + "(method 55 ram-boss)": [ + "line-of-sight-to-target?", + "probe from the boss's eye to the player; #t if the line of sight is clear", + "annotation" + ], + "(method 55 snow-bunny)": [ + "setup-retreat-hop?", + "pick the best hop fleeing away from the player (tries two angles); #f if none works", + "annotation" + ], + "(method 57 nav-enemy)": [ + "set-spikes-retracted-collision!", + "Switch collision prims to the small \"spikes retracted\" (harmless) shape (cprims-type 1)." + ], + "(method 57 ram-boss)": [ + "target-pitch-interp", + "Return a 0..1 up/forward defend-anim blend factor from the pitch angle to the player, smoothed with prev-interp." + ], + "(method 57 snow-bunny)": [ + "should-defend?", + "#t when the dangerous player is close enough and fast-approaching that the bunny must defend", + "replace" + ], + "(method 58 collide-shape-moving)": [ + "integrate-and-revert-if-blocked!", + "Integrate by velocity (no ground snap); if we end up overlapping another shape, snap back to the previous position. Returns #t if blocked." + ], + "(method 58 ice-cube)": [ + "set-spikes-extended-collision!", + "ice-cube override: switch collision prims to the large \"spikes extended\" (dangerous) shape (cprims-type 2).", + "annotation" + ], + "(method 58 snow-bunny)": [ + "update-nondangerous-time!", + "refresh the timestamp of when the player was last not dangerous", + "annotation" + ], + "(method 59 nav-enemy)": [ + "go-initial-state!", + "Pick babak's starting state: fuel-cell if carrying a collected power cell, wait-for-cue if flagged, else idle." + ], + "(method 60 citb-bunny)": [ + "setup-skeleton!", + "build the citb-bunny skeleton from its skelgroup and set the origin joint", + "annotation" + ], + "(method 60 ice-cube)": [ + "seek-heading-to-target?", + "Optionally refresh target-pt to the player, turn toward it, return whether we are now roughly facing it.", + "annotation" + ], + "(method 60 snow-bunny)": [ + "setup-skeleton!", + "build the bunny skeleton from its skelgroup and set the origin joint", + "replace" + ], + "(method 76 snow-bunny)": [ + "set-shadow-airborne!", + "lower the shadow's bottom-plane when the bunny is airborne so its shadow projects further" + ], + "(method 9 actor-link-info)": [ + "get-matching-actor-type-mask", + "Given any actor in a list of actors, return a bitmask of all actors in the list where bit-i is set to 1 if \nentity-actor i is exactly type `matching-type`. In other words, test bit `i` of the mask to see if actor\n`i` is of the given type." + ], + "(method 9 align-control)": [ + "compute-alignment!", + "Compare the previous and current animation data to compute the change in the animated `align` matrix.\nThis change in the `align` matrix corresponds to a shift that should be applied to a `process-drawable`'s\n`root` transform - animating the `align` matrix allows artists to move the actual process in the world.\nThis function only computes and stores the `delta` and deals with edge cases when switching animations,\nit does not modify the `process-drawable`'s position." + ], + "(method 9 baby-spider-spawn-params)": [ + "init!", + "Set up spider parameters." + ], + "(method 9 cam-index)": [ + "setup-from-entity!", + "Read the two endpoint vectors (from res data or curve ends) into the index and precompute its spherical/radial/linear parameterization." + ], + "(method 9 cavecrystal-light-control)": [ + "set-crystal-light!", + "set/clear crystal light slot's intensity, source handle and position; update active list and palette fade" + ], + "(method 9 draw-control)": [ + "get-skeleton-origin", + "Get the position of the 0th bone." + ], + "(method 9 edge-grab-info)": [ + "update-and-validate!", + "Re-track a held edge to its (possibly moving) actor and re-check the grab is still valid; #f to drop it." + ], + "(method 9 effect-control)": [ + "update-effects", + "Advance the active anim channel and fire any effect tags crossed this frame." + ], + "(method 9 rigid-body)": [ + "set-mass-and-box-inertia!", + "set the mass and compute the box inertial tensor (and its inverse) from dimensions" + ], + "(method 9 swamp-bat-idle-path)": [ + "eval-point!", + "write to out-pos the point on the idle ellipse at the given parametric angle (turns)" + ], + "(method 9 torus)": [ + "debug-draw", + "draw the torus as camera-line wireframe rings in the given color." + ], + "(method 9 tracking-spline)": [ + "validate!", + "Consistency check: recount the used and free chains and correct the counters if the lists are corrupt." + ], + "(method 9 twister)": [ + "set-max-dry-range!", + "set the per-frame max twist (max-dry) for joints start-joint..end-joint" + ], + "(method 9 water-control)": [ + "water-control-init-extra!", + "Unused stub hook for extra water-control init; empty in all versions." + ], + "actor-link-dead-hook": [ + "actor-link-dead-hook", + "Callback for checking to see if all actors in an actor list are dead.\nThis can be used as a callback for `apply-all` or similar.\nIt sets `ret` to `#t` if all actors are dead, otherwise it sets `ret` to `#f` and short circuits." + ], + "actor-link-subtask-complete-hook": [ + "actor-link-subtask-complete-hook", + "Callback for checking to see if all actors in an actor list are complete. \nThis can be used as a callback for `apply-all` or similar.\nIt sets `ret` to `#t` if all actors are complete, otherwise it sets `ret` to `#f` and short circuits." + ], + "alt-actor-list-subtask-incomplete-count": [ + "alt-actor-list-subtask-incomplete-count", + "Get the number of actors in this `alt-actor` list on this process which do not have the `complete` bit set\nin their permanent status." + ], + "ambient-hint-init-by-other": [ + "ambient-hint-init-by-other", + "Initialize a `level-hint` to play a hint from an ambient." + ], + "ambient-hint-spawn": [ + "ambient-hint-spawn", + "Spawn an ambient hint if it is appropriate to do so." + ], + "ambient-type-dark": [ + "ambient-type-dark", + "Run a \"dark\" ambient, which sets `*target*`'s `secondary-interp` to 1.0 when inside a volume." + ], + "ambient-type-error": [ + "ambient-type-error", + "Draw 3D debug text for a broken ambient." + ], + "ambient-type-hint": [ + "ambient-type-hint", + "Spawn an ambient hint." + ], + "ambient-type-light": [ + "ambient-type-light", + "useless \"light\" ambient. Checks if `pos` is within the volume, but has no effect." + ], + "ambient-type-music": [ + "ambient-type-music", + "Ambient to set music or flava." + ], + "ambient-type-ocean-near-off": [ + "ambient-type-ocean-near-off", + "Set `*ocean-near-off*`." + ], + "ambient-type-ocean-off": [ + "ambient-type-ocean-off", + "Set `*ocean-off*` to `#t` when this ambient runs, no volume check." + ], + "ambient-type-poi": [ + "ambient-type-poi", + "Unused \"point of interest\" ambient, which at some point would display text when approaching named location." + ], + "ambient-type-sound": [ + "ambient-type-sound", + "Start an ambient sound if it is appropriate to do so." + ], + "ambient-type-sound-loop": [ + "ambient-type-sound-loop", + "Play an ambient looping sound." + ], + "ambient-type-weather-off": [ + "ambient-type-weather-off", + "Check if `pos` is in a volume, if so set `*weather-off*` to `#t`." + ], + "aphid-init-by-other": [ + "aphid-init-by-other", + "Initialize an `aphid` and enter chase state." + ], + "aphid-invulnerable": [ + "aphid-invulnerable", + "Make aphid invulnerable." + ], + "aphid-vulnerable": [ + "aphid-vulnerable", + "remove invulnerability" + ], + "assistant-levitator-blue-glow": [ + "assistant-levitator-blue-glow", + "Spawn particles" + ], + "babak-with-cannon-compute-cannon-dir": [ + "babak-with-cannon-compute-cannon-dir", + "Get the direction the cannon is pointing, as a unit vector." + ], + "babak-with-cannon-compute-ride-point": [ + "babak-with-cannon-compute-ride-point", + "Compute the ride point, a point local to the cannon where the babak should go." + ], + "babak-with-cannon-ride-cannon-post": [ + "babak-with-cannon-ride-cannon-post", + "Move the babak to ride the cannon at the right angle and position." + ], + "baby-spider-default-event-handler": [ + "baby-spider-default-event-handler", + "Override of event handler that sends us to victory on `'victory`" + ], + "can-grab-display?": [ + "can-grab-display?", + "Can this process draw its hint text or similar to the screen?\nOnce it returns #t, it will become the exclusive process to draw to the screen for 0.1 seconds." + ], + "check-drop-level-assistant": [ + "check-drop-level-assistant", + "Check if the particle hits the surface height stored in `user-float`: if so, chance to play drip sound,\nthen spawn a splash particle." + ], + "check-drop-level-assistant-bluehut": [ + "check-drop-level-assistant-bluehut", + "Check if particle has dropped past the threshold stored in `user-float`. If so, chance to play splash,\nand draw a splash particle." + ], + "entity-actor-count": [ + "entity-actor-count", + "Get the number of actors stored in `lump[name]`" + ], + "entity-actor-lookup": [ + "entity-actor-lookup", + "Get an `entity-actor` from a lump by name and index, return #f if invalid.\nThe lump can contain either an actor name or aid." + ], + "handle->process-safe": [ + "handle->process-safe", + "Strange unused implementation of `handle->process`." + ], + "kill-current-level-hint": [ + "kill-current-level-hint", + "Send `kill-event` to the current hint if it is one of the `allowed-modes` and not one of the `forbidden-modes`.\nPutting `'()` for mode will disable that filter." + ], + "level-hint-displayed?": [ + "level-hint-displayed?", + "Is there a currently displayed level hint that shouldn't be interrupted?" + ], + "level-hint-init-by-other": [ + "level-hint-init-by-other", + "Initialize a level hint, looking up the sound and mode." + ], + "level-hint-process-cmd": [ + "level-hint-process-cmd", + "Iterate through the `cmd-array`, executing commands and return the position of the next command to run,\nor `-1` if the command is a condition that is not met." + ], + "level-hint-spawn": [ + "level-hint-spawn", + "Try to spawn a level hint if it is appropriate to do so." + ], + "level-hint-surpress!": [ + "level-hint-surpress!", + "Suppress hints from playing by setting the last play time to now." + ], + "level-hint-task-process": [ + "level-hint-task-process", + "If this entity's hint can be played, run its command array. This can mutate game state and check conditions.\nIf all conditions pass, return the text-id. Otherwise, return -1." + ], + "point-in-air-box-area?": [ + "point-in-air-box-area?", + "Check if point `x, z` (relative to air-box origin) is within the projected area of the air-box. Effectively doesn't check height." + ], + "point-in-air-box?": [ + "point-in-air-box?", + "Is `pt` inside the `air-box`? The `air-box` is a box that is axis-aligned on the y (vertical) axis." + ], + "point-in-air?": [ + "point-in-air?", + "Check if `pt` is in any of the boxes." + ], + "points-in-air?": [ + "points-in-air?", + "Are both `p1` and `p2` inside any of the boxes?" + ] +}