Types
align-control: basicsource
Fields
type: type
flags: align-flags
process: process-drawable
frame-group: art-joint-anim
frame-num: float
matrix: matrix
transform: transform
delta: transformq
last-speed: meters
align: transformq
Methods
align!(obj: align-control, arg0: align-opts, arg1: float, arg2: float, arg3: float) => trsqvsource
align-vel-and-quat-only!(obj: align-control, arg0: align-opts, arg1: vector, arg2: int, arg3: float, arg4: float) => trsqvsource
first-transform(obj: align-control) => transformsource
snd-transform(obj: align-control) => transformsource
Types
joint-exploder: process-drawablesource
Fields
type: type
name: basic
mask: process-mask
parent: pointer
brother: pointer
child: pointer
ppointer: pointer
self: process-tree
pool: dead-pool
status: basic
pid: int32
main-thread: cpu-thread
top-thread: thread
entity: entity-actor
state: state
trans-hook: function
post-hook: function
event-hook: function
allocated-length: int32
next-state: state
heap-base: pointer
heap-top: pointer
heap-cur: pointer
stack-frame-top: stack-frame
connection-list: connectable
stack: uint8
root: trsqv
node-list: cspace-array
draw: draw-control
skel: joint-control
nav: nav-control
align: align-control
path: path-control
vol: vol-control
fact: fact-info
link: actor-link-info
part: sparticle-launch-control
water: water-control
sound: ambient-sound
state-flags: state-flags
state-time: time-frame
parent-override: pointer
die-if-below-y: float
die-if-beyond-xz-dist-sqrd: float
joints: joint-exploder-joints
static-params: joint-exploder-static-params
anim: art-joint-anim
scale-vector: vector
tuning: joint-exploder-tuning
lists: joint-exploder-list
Methods
joint-exploder-method-20(obj: joint-exploder, arg0: joint-exploder-list, arg1: int) => intsource
joint-exploder-method-21(obj: joint-exploder, arg0: joint-exploder-list, arg1: joint-exploder-joint) => nonesource
joint-exploder-method-22(obj: joint-exploder, arg0: joint-exploder-list) => symbolsource
joint-exploder-method-23(obj: joint-exploder) => symbolsource
joint-exploder-method-24(obj: joint-exploder, arg0: joint-exploder-list, arg1: int) => intsource
joint-exploder-method-25(obj: joint-exploder, arg0: joint-exploder-list) => symbolsource
joint-exploder-method-26(obj: joint-exploder, arg0: joint-exploder-list, arg1: int) => intsource
joint-exploder-method-27(obj: joint-exploder, arg0: joint-exploder-list, arg1: int) => joint-exploder-listsource
joint-exploder-method-28(obj: joint-exploder, arg0: joint-exploder-list) => nonesource
States
joint-exploder-shatter: TODO
joint-exploder-joint: structuresource
joint-exploder-joints: basicsource
joint-exploder-list: structuresource
joint-exploder-static-joint-params: structuresource
joint-exploder-tuning: structuresource
Fields
explosion: uint64
duration: time-frame
gravity: float
rot-speed: float
fountain-rand-transv-lo: vector
fountain-rand-transv-hi: vector
away-from-focal-pt: vector
away-from-rand-transv-xz-lo: float
away-from-rand-transv-xz-hi: float
away-from-rand-transv-y-lo: float
away-from-rand-transv-y-hi: float
Functions
joint-exploder-init-by-other(arg0: skeleton-group, arg1: int, arg2: joint-exploder-static-params, arg3: joint-exploder-static-params) => nonesource
joint-exploder-joint-callback(arg0: joint-exploder) => nonesource
Types
channel-upload-info: structuresource
Fields
fixed: joint-anim-compressed-fixed
fixed-qwc: int32
frame: joint-anim-compressed-frame
frame-qwc: int32
amount: float
interp: float
joint-control: basicsource
Fields
type: type
status: janim-status
allocated-length: int16
root-channel: inline-array
blend-index: int32
active-channels: int32
generate-frame-function: function
prebind-function: function
postbind-function: function
effect: effect-control
channel: joint-control-channel
frame-group0: art-joint-anim
frame-num0: float
frame-interp0: float
frame-group1: art-joint-anim
frame-num1: float
frame-interp1: float
frame-group2: art-joint-anim
frame-num2: float
frame-interp2: float
Methods
current-cycle-distance(obj: joint-control) => floatsource
debug-print-channels(obj: joint-control, arg0: symbol) => intsource
Print each active channel to the given stream.
joint-control-channel: structuresource
Fields
parent: joint-control
command: symbol
frame-interp: float
frame-group: art-joint-anim
frame-num: float
num-func: function
param: float
group-sub-index: int16
group-size: int16
dist: meters
eval-time: uint32
inspector-amount: float
Methods
debug-print-frames(obj: joint-control-channel) => _type_source
Print the current frame of each joint on this channel.
Note: this only appears to work for uncompressed joint animations.
joint-work: structuresource
Fields
temp-mtx: matrix
joint-stack: matrix-stack
fix-jmp-table: function
frm-jmp-table: function
pair-jmp-table: function
uploads: channel-upload-info
num-uploads: int32
mtx-acc: matrix
tq-acc: transformq
jacp-hdr: joint-anim-compressed-hdr
fixed-data: joint-anim-compressed-fixed
frame-data: joint-anim-compressed-frame
flatten-array: float
flattened: vector
Types
joint-mod: basicsource
Fields
type: type
mode: joint-mod-handler-mode
process: process-drawable
joint: cspace
target: vector
twist: vector
twist-max: vector
trans: vector
quat: quaternion
scale: vector
notice-time: time-frame
flex-blend: float
blend: float
max-dist: meters
ignore-angle: degrees
up: uint8
nose: uint8
ear: uint8
shutting-down?: symbol
parented-scale?: symbol
Methods
set-mode!(obj: joint-mod, handler-mode: joint-mod-handler-mode) => _type_source
Set up the joint-mod for the given mode. You can only pick one mode at a time.
set-target!(obj: joint-mod, target-trans: vector) => nonesource
Set the joint-mod to look-at if we aren't in a mode, and look at the given target-trans.
look-at-enemy!(obj: joint-mod, target-trans: vector, option: symbol, proc: process) => nonesource
Set up animation for Jak looking at an enemy. If option is 'attacking, remember when this happened.
Will only override an existing look-at if this one is closer, or option is 'force.
reset-blend!(obj: joint-mod) => _type_source
Reset the blend to 0.
set-twist!(obj: joint-mod, x: float, y: float, z: float) => vectorsource
Set the twist. You can use #f to not change the current value.
set-trs!(obj: joint-mod, trans: vector, rot: quaternion, scale: vector) => nonesource
Set the translation, rotation, and scale.
shut-down!(obj: joint-mod) => nonesource
Shut down and set the blend to zero.
joint-mod-blend-local: basicsource
Fields
type: type
transform: transformq
blend-transform: transformq
node-index: int32
blend: float
enable: basic
joint-mod-set-local: basicsource
Fields
type: type
transform: transformq
set-rotation: symbol
set-scale: symbol
set-translation: symbol
enable: symbol
joint-mod-set-world: basicsource
joint-mod-spinner: basicsource
joint-mod-wheel: basicsource
Fields
type: type
last-position: vector
angle: float
process: process-drawable
wheel-radius: float
wheel-axis: int8
Functions
joint-mod-blend-local-callback(arg0: cspace, arg1: transformq) => nonesource
joint-mod-debug-draw(mod: joint-mod) => nonesource
joint-mod-joint-set*-handler(arg0: cspace, arg1: transformq) => nonesource
joint-mod-joint-set-handler(arg0: cspace, arg1: transformq) => nonesource
joint-mod-look-at-handler(csp: cspace, xform: transformq) => nonesource
Update bone transforms for look-at
joint-mod-rotate-handler(arg0: cspace, arg1: transformq) => nonesource
joint-mod-set-local-callback(arg0: cspace, arg1: transformq) => nonesource
joint-mod-set-world-callback(arg0: cspace, arg1: transformq) => nonesource
joint-mod-spinner-callback(arg0: cspace, arg1: transformq) => nonesource
joint-mod-wheel-callback(arg0: cspace, arg1: transformq) => nonesource
joint-mod-world-look-at-handler(arg0: cspace, arg1: transformq) => nonesource
Variables
*joint-axis-vectors*: inline-arraysource
Functions
create-interpolated-joint-animation-frame(arg0: inline-array, arg1: int, arg2: process-drawable) => intsource
cspace-calc-total-matrix!(arg0: cspace, arg1: matrix) => matrixsource
cspace<-cspace!(arg0: cspace, arg1: cspace) => matrixsource
cspace<-matrix-joint!(arg0: cspace, arg1: matrix) => matrixsource
cspace<-matrix-no-push-joint!(arg0: cspace, arg1: joint-control) => matrixsource
cspace<-parented-matrix-joint!(arg0: cspace, arg1: matrix) => matrixsource
cspace<-rot-yxy!(arg0: cspace, arg1: transform) => matrixsource
cspace<-transform-yxy!(arg0: cspace, arg1: transform) => matrixsource
cspace<-transformq!(arg0: cspace, arg1: transformq) => matrixsource
cspace<-transformq+trans!(arg0: cspace, arg1: transformq, arg2: vector) => matrixsource
cspace<-transformq+world-trans!(arg0: cspace, arg1: transformq, arg2: vector) => matrixsource
flatten-joint-control-to-spr(arg0: joint-control) => intsource
Take the current state of the given joint-control and upload it to the scratchpad
in the format that will be understood by the joint animation decompressor.
jacc-mem-usage(arg0: joint-anim-compressed-control, arg1: memory-usage-block, arg2: int) => joint-anim-compressed-controlsource
joint-anim-inspect-elt(arg0: joint-anim, arg1: float) => joint-animsource
Inspect a single element in a joint anim. The float is rounded to an int.
joint-control-channel-eval(arg0: joint-control-channel) => nonesource
Run the joint control num-func callback, remember the current time
joint-control-channel-eval!(arg0: joint-control-channel, arg1: function) => nonesource
Set the joint control num-func, and evaluate it.
joint-control-channel-group!(arg0: joint-control-channel, arg1: art-joint-anim, arg2: function) => intsource
Set the joint control num-func and maybe update the anim.
joint-control-channel-group-eval!(arg0: joint-control-channel, arg1: art-joint-anim, arg2: function) => intsource
Set the joint control num-func, maybe update the anim, and maybe evaluate it.
joint-control-copy!(arg0: joint-control, arg1: joint-control) => joint-controlsource
Copy one joint control to another.