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.
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.
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.
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.