Skip to main content

sparticle-h

source

Types


sparticle-cpuinfo

sparticle-cpuinfo: structuresource
Fields
sprite: sprite-vec-data-2d
adgif: adgif-shader
radius: float
omega: float
vel-sxvel: vector
rot-syvel: vector
fade: rgbaf
acc: vector
rotvel3d: quaternion
vel: vector
accel: vector
scalevelx: float
scalevely: float
friction: float
timer: int32
flags: sp-cpuinfo-flag
flags-s32: sp-cpuinfo-flag-s32
user-int32: int32
user-uint32: uint32
user-float: float
user-pntr: uint32
user-object: basic
user-sprite: sprite-vec-data-2d
sp-func: function
next-time: uint32
next-launcher: basic
cache-alpha: float
valid: uint8
clock-index: uint8
user1-int16: uint16
key: sparticle-launch-control
key-alt: sparticle-launch-state
binding: sparticle-launch-state
data: uint32
datab: int8
dataf: float
datac: uint8

sparticle-launchinfo

sparticle-launchinfo: structuresource
Fields
launchrot: vector
conerot: vector
rotate-x: float
rotate-y: float
rotate-z: float
coneradius: float
rotate: vector
scale-x: float
scale-y: float
scale-z: float
dummy: float
scale: vector
data: uint8

sparticle-system

sparticle-system: basicsource
Fields
type: type
blocks: int32
length: int32
num-alloc: int32
is-3d: basic
flags: uint32
alloc-table: pointer
cpuinfo-table: inline-array
vecdata-table: pointer
adgifdata-table: inline-array

Variables


*sp-60-hz*

*sp-60-hz*: symbolsource

sparticle-launcher-h

source

Types


sp-field-init-spec

sp-field-init-spec: structuresource
Fields
field: sp-field-id
flags: sp-flag
initial-valuef: float
random-rangef: float
random-multf: float
initial-value: int32
random-range: int32
random-mult: int32
func: symbol
tex: texture-id
pntr: pointer
object: basic
sym: symbol
sound: sound-spec

sparticle-birthinfo

sparticle-birthinfo: structuresource
Fields
sprite: uint32
anim: int32
anim-speed: float
birth-func: basic
joint-ppoint: int32
num-to-birth: float
sound: basic
dataf: float
data: uint32

sparticle-group-item

sparticle-group-item: structuresource
Fields
launcher: uint32
fade-after: meters
falloff-to: meters
flags: sp-group-item-flag
period: uint16
length: uint16
offset: int16
hour-mask: uint32
binding: uint32

sparticle-launch-control

sparticle-launch-control: inline-array-classsource
Fields
type: type
length: int32
allocated-length: int32
_data: uint8
group: sparticle-launch-group
proc: process-drawable
local-clock: int32
fade: float
matrix: int8
state-mode: uint8
state-counter: uint32
last-spawn-frame: int32
last-spawn-time: int32
origin: matrix
center: vector
data: sparticle-launch-state
Methods
initialize(obj: sparticle-launch-control, arg0: sparticle-launch-group, arg1: process) => nonesource
is-visible?(obj: sparticle-launch-control, arg0: vector) => symbolsource
spawn(obj: sparticle-launch-control, arg0: vector) => nonesource
spawn-with-matrix(obj: sparticle-launch-control, arg0: matrix) => nonesource
spawn-with-cspace(obj: sparticle-launch-control, arg0: cspace) => nonesource
kill-and-free-particles(obj: sparticle-launch-control) => nonesource
kill-particles(obj: sparticle-launch-control) => nonesource

sparticle-launch-group

sparticle-launch-group: basicsource
Fields
type: type
length: int16
duration: uint16
linger-duration: uint16
flags: sp-group-flag
name: string
launcher: inline-array
rotate-x: degrees
rotate-y: degrees
rotate-z: degrees
scale-x: float
scale-y: float
scale-z: float
bounds: sphere
Methods
create-launch-control(obj: sparticle-launch-group, arg0: process) => sparticle-launch-controlsource

sparticle-launch-state

sparticle-launch-state: structuresource
Fields
group-item: sparticle-group-item
flags: sp-launch-state-flags
randomize: uint16
center: vector
sprite3d: sprite-vec-data-3d
sprite: sparticle-cpuinfo
offset: uint32
accum: float
spawn-time: uint32
control: sparticle-launch-control
swarm: basic
seed: uint32
time: uint32
spec: basic
id: uint32

sparticle-launcher

sparticle-launcher: basicsource
Fields
type: type
birthaccum: float
soundaccum: float
init-specs: inline-array
Methods
get-field-spec-by-id(obj: sparticle-launcher, arg0: sp-field-id) => sp-field-init-specsource

Returns the sp-field-init-spec that has the matching sp-field-id

setup-user-array(obj: sparticle-launcher, arg0: string) => nonesource

Variables


*launch-matrix*

*launch-matrix*: matrixsource

sparticle-launcher

source

Types


particle-adgif-cache

particle-adgif-cache: basicsource
Fields
type: type
used: int32
last: uint16
lastgif: adgif-shader
tidhash: uint16
spadgif: adgif-shader

sp-launch-queue

sp-launch-queue: basicsource
Fields
type: type
in-use: int32
queue: sp-queued-launch-particles

sp-launch-stack

sp-launch-stack: structuresource
Fields
ra: basic
dummy0: basic
dummy1: basic
b-spfic: basic
r16: uint128
r17: uint128
r18: uint128
pos: uint128
matrix: matrix
l-spfic: basic
birth-info: sparticle-birthinfo
sprite: sprite-vec-data-2d
r19: uint128
r20: uint128
r21: uint128
r22: uint128

sp-queued-launch-particles

sp-queued-launch-particles: structuresource
Fields
sp-system: sparticle-system
sp-launcher: sparticle-launcher
pos: vector

Functions


birth-func-camera-orient

birth-func-camera-orient(arg0: int, arg1: sparticle-cpuinfo, arg2: sparticle-launchinfo) => nonesource

birth-func-copy-omega-to-z

birth-func-copy-omega-to-z(arg0: sparticle-system, arg1: sparticle-cpuinfo, arg2: sprite-vec-data-3d, arg3: sparticle-launcher, arg4: sparticle-launch-state) => nonesource

birth-func-copy-rot-color

birth-func-copy-rot-color(arg0: sparticle-system, arg1: sparticle-cpuinfo, arg2: sprite-vec-data-3d, arg3: sparticle-launcher, arg4: sparticle-launch-state) => nonesource

birth-func-copy2-rot-color

birth-func-copy2-rot-color(arg0: sparticle-system, arg1: sparticle-cpuinfo, arg2: sprite-vec-data-3d, arg3: sparticle-launcher, arg4: sparticle-launch-state) => nonesource

birth-func-ocean-height

birth-func-ocean-height(arg0: sparticle-system, arg1: sparticle-cpuinfo, arg2: matrix) => nonesource

birth-func-random-next-time

birth-func-random-next-time(arg0: sparticle-system, arg1: sparticle-cpuinfo, arg2: sprite-vec-data-3d, arg3: sparticle-launcher, arg4: sparticle-launch-state) => nonesource

birth-func-set-quat

birth-func-set-quat(arg0: int, arg1: sparticle-cpuinfo, arg2: sparticle-launchinfo) => nonesource

birth-func-set-vel

birth-func-set-vel(arg0: object, arg1: sparticle-cpuinfo, arg2: sparticle-launchinfo) => nonesource

birth-func-texture-group

birth-func-texture-group(arg0: int, arg1: sparticle-cpuinfo, arg2: sparticle-launchinfo) => nonesource

birth-func-y->userdata

birth-func-y->userdata(arg0: sparticle-system, arg1: sparticle-cpuinfo, arg2: matrix) => nonesource

check-drop-group-center

check-drop-group-center(arg0: sparticle-system, arg1: sparticle-cpuinfo, arg2: sparticle-launchinfo) => nonesource

check-ground-bounce

check-ground-bounce(arg0: sparticle-system, arg1: sparticle-cpuinfo, arg2: sparticle-launchinfo) => floatsource

execute-part-engine

execute-part-engine() => nonesource

lookup-part-group-by-name

lookup-part-group-by-name(arg0: string) => sparticle-launch-groupsource

Iterate through the part-group-id-table and return the matching [[sparticle-launch-group]], or #f otherwise

lookup-part-group-pointer-by-name

lookup-part-group-pointer-by-name(arg0: string) => pointersource

Similar to lookup-part-group-by-name but returns a pointer instead

part-group-pointer?

part-group-pointer?(arg0: pointer) => symbolsource

Verifies if the given pointer, points to a sparticle-launch-group

particle-adgif-cache-flush

particle-adgif-cache-flush() => nonesource

particle-adgif-callback

particle-adgif-callback(arg0: adgif-shader, arg1: texture-id) => nonesource

Callback to update the adgif of a particle, keeping only alpha and clamp.
This is new for jak 2.
There is some funny stuff going on with vf16 - vf20, but it seems like this function just
preserves those registers (which particle-adgif likely clobbers) so this doesn't clobber
registers used by particle system, which it assumes are preserved across callbacks.

particle-setup-adgif

particle-setup-adgif(arg0: adgif-shader, arg1: int) => nonesource

sp-adjust-launch

sp-adjust-launch(arg0: sparticle-launchinfo, arg1: sparticle-cpuinfo, arg2: inline-array, arg3: matrix, arg4: symbol) => nonesource

sp-clear-queue

sp-clear-queue() => nonesource

sp-euler-convert

sp-euler-convert(arg0: sparticle-launchinfo, arg1: sparticle-cpuinfo) => nonesource

sp-init-fields!

sp-init-fields!(arg0: pointer, arg1: inline-array, arg2: sp-field-id, arg3: sp-field-id, write-missing-fields: symbol) => inline-arraysource

sp-launch-particles-death

sp-launch-particles-death(arg0: sparticle-system, arg1: sparticle-launcher, arg2: vector) => nonesource

sp-queue-launch

sp-queue-launch(arg0: sparticle-system, arg1: sparticle-launcher, arg2: matrix) => intsource

sp-relaunch-particle-2d

sp-relaunch-particle-2d(arg0: object, arg1: sparticle-launcher, arg2: sparticle-cpuinfo, arg3: sprite-vec-data-3d) => nonesource

sp-relaunch-particle-3d

sp-relaunch-particle-3d(arg0: object, arg1: sparticle-launcher, arg2: sparticle-cpuinfo, arg3: sprite-vec-data-3d) => nonesource

sp-relaunch-setup-fields

sp-relaunch-setup-fields(arg0: object, arg1: sparticle-launcher, arg2: sparticle-cpuinfo, arg3: sprite-vec-data-3d) => nonesource

sp-rotate-system

sp-rotate-system(arg0: sparticle-launchinfo, arg1: sparticle-cpuinfo, arg2: transformq) => nonesource

sparticle-mode-animate

sparticle-mode-animate(arg0: sparticle-system, arg1: sparticle-cpuinfo, arg2: sprite-vec-data-2d) => nonesource

sparticle-motion-blur-old

sparticle-motion-blur-old(arg0: object, arg1: sparticle-cpuinfo, arg2: sprite-vec-data-3d) => objectsource

sparticle-next-on-mode-1

sparticle-next-on-mode-1(arg0: sparticle-system, arg1: sparticle-cpuinfo, arg2: sparticle-launchinfo) => floatsource

sparticle-respawn-heights

sparticle-respawn-heights(arg0: sparticle-system, arg1: sparticle-cpuinfo, arg2: vector) => nonesource

sparticle-respawn-timer

sparticle-respawn-timer(arg0: sparticle-system, arg1: sparticle-cpuinfo, arg2: vector) => nonesource

sparticle-set-conerot

sparticle-set-conerot(arg0: sparticle-launcher, arg1: vector) => nonesource

sparticle-texture-animate

sparticle-texture-animate(arg0: sparticle-system, arg1: sparticle-cpuinfo, arg2: vector) => nonesource

sparticle-texture-day-night

sparticle-texture-day-night(arg0: sparticle-system, arg1: sparticle-cpuinfo, arg2: sprite-vec-data-2d) => nonesource

sparticle-track-joint

sparticle-track-joint(arg0: sparticle-system, arg1: sparticle-cpuinfo, arg2: vector) => nonesource

sparticle-track-root

sparticle-track-root(arg0: object, arg1: sparticle-cpuinfo, arg2: vector) => nonesource

sparticle-track-root-prim

sparticle-track-root-prim(arg0: object, arg1: sparticle-cpuinfo, arg2: vector) => nonesource

sparticle-turn-to-vel

sparticle-turn-to-vel(arg0: sparticle-system, arg1: sparticle-cpuinfo, arg2: sprite-vec-data-3d) => nonesource
unlink-part-group-by-heap(arg0: kheap) => intsource

Variables


*death-adgif*

*death-adgif*: adgif-shadersource

*global-toggle*

*global-toggle*: intsource

*part-group-id-table*

*part-group-id-table*: arraysource

*part-id-table*

*part-id-table*: arraysource

*particle-adgif-cache*

*particle-adgif-cache*: particle-adgif-cachesource

*particle-quat*

*particle-quat*: quaternionsource

*particle-vel*

*particle-vel*: vectorsource

*sp-launch-queue*

*sp-launch-queue*: sp-launch-queuesource

*sp-launcher-enable*

*sp-launcher-enable*: symbolsource

*sp-launcher-lock*

*sp-launcher-lock*: symbolsource

*sp-temp*

*sp-temp*: floatsource

sparticle

source

Functions


all-particles-50-to-60

all-particles-50-to-60() => nonesource

all-particles-60-to-50

all-particles-60-to-50() => nonesource

forall-particles

forall-particles(arg0: function, arg1: symbol, arg2: symbol) => nonesource

forall-particles-runner

forall-particles-runner(arg0: function, arg1: sparticle-system) => nonesource

forall-particles-with-key

forall-particles-with-key(arg0: sparticle-launch-control, arg1: function, arg2: symbol, arg3: symbol) => nonesource

forall-particles-with-key-runner

forall-particles-with-key-runner(arg0: sparticle-launch-control, arg1: function, arg2: sparticle-system) => nonesource

kill-all-particles-in-level

kill-all-particles-in-level(arg0: level) => intsource

kill-all-particles-with-key

kill-all-particles-with-key(arg0: sparticle-launch-control) => nonesource

process-particles

process-particles() => nonesource

remap-all-particles

remap-all-particles() => nonesource

remap-particle

remap-particle(arg0: sparticle-system, arg1: sparticle-cpuinfo, arg2: pointer) => nonesource

sp-copy-from-spr

sp-copy-from-spr(arg0: int, arg1: pointer, arg2: int) => nonesource

sp-copy-to-spr

sp-copy-to-spr(arg0: int, arg1: pointer, arg2: int) => nonesource

sp-free-particle

sp-free-particle(arg0: sparticle-system, arg1: int, arg2: sparticle-cpuinfo, arg3: sprite-vec-data-2d) => nonesource

sp-get-approx-alloc-size

sp-get-approx-alloc-size(arg0: sparticle-system, arg1: int) => intsource

sp-get-block-size

sp-get-block-size(arg0: sparticle-system, arg1: int) => intsource

sp-get-particle

sp-get-particle(arg0: sparticle-system, arg1: int, arg2: sparticle-launch-state) => sparticle-cpuinfosource

sp-kill-particle

sp-kill-particle(arg0: sparticle-system, arg1: sparticle-cpuinfo) => symbolsource

sp-orbiter

sp-orbiter(arg0: sparticle-system, arg1: sparticle-cpuinfo, arg2: vector) => nonesource

sp-particle-copy!

sp-particle-copy!(arg0: sparticle-cpuinfo, arg1: sparticle-cpuinfo) => nonesource

sp-process-block

sp-process-block(arg0: sparticle-system, arg1: int, arg2: sprite-array-2d, arg3: int) => nonesource

sp-process-particle-system

sp-process-particle-system(arg0: sparticle-system, arg1: int, arg2: sprite-array-2d) => nonesource

sparticle-50-to-60

sparticle-50-to-60(arg0: sparticle-system, arg1: sparticle-cpuinfo, arg2: pointer) => nonesource

sparticle-60-to-50

sparticle-60-to-50(arg0: sparticle-system, arg1: sparticle-cpuinfo, arg2: pointer) => nonesource

sparticle-kill-it

sparticle-kill-it(arg0: sparticle-system, arg1: sparticle-cpuinfo) => nonesource

sparticle-kill-it-level0

sparticle-kill-it-level0(arg0: sparticle-system, arg1: sparticle-cpuinfo) => nonesource

sparticle-kill-it-level1

sparticle-kill-it-level1(arg0: sparticle-system, arg1: sparticle-cpuinfo) => nonesource

sparticle-kill-it-level2

sparticle-kill-it-level2(arg0: sparticle-system, arg1: sparticle-cpuinfo) => nonesource

sparticle-kill-it-level3

sparticle-kill-it-level3(arg0: sparticle-system, arg1: sparticle-cpuinfo) => nonesource

sparticle-kill-it-level4

sparticle-kill-it-level4(arg0: sparticle-system, arg1: sparticle-cpuinfo) => nonesource

sparticle-kill-it-level5

sparticle-kill-it-level5(arg0: sparticle-system, arg1: sparticle-cpuinfo) => nonesource

Variables


*sp-particle-system-2d*

*sp-particle-system-2d*: sparticle-systemsource

*sp-particle-system-3d*

*sp-particle-system-3d*: sparticle-systemsource