jak-project/goal_src/jak2/engine/target/target-part.gc
Hat Kid fc43870d85
decompiler: obj -> this, set-time! and time-elapsed? macros (#3026)
This renames the method object in `defmethod`s to `this` and adds
detection for the `set-time!` and `time-elapsed?` macros.

Definitely my biggest PR yet...
2023-09-26 15:17:00 +01:00

3104 lines
100 KiB
Common Lisp

;;-*-Lisp-*-
(in-package goal)
;; name: target-part.gc
;; name in dgo: target-part
;; dgos: ENGINE, GAME
;; DECOMP BEGINS
(defun birth-func-copy-target-y-rot ((arg0 int) (arg1 sparticle-cpuinfo) (arg2 sparticle-launchinfo))
(let ((v1-0 *target*))
(when v1-0
(let ((s5-0 (new-stack-matrix0)))
(let ((f0-1 (+ -16384.0 (y-angle (-> v1-0 control)))))
(matrix-rotate-y! s5-0 f0-1)
)
(vector3s-rotate*! (the-as vector3s (-> arg1 vel-sxvel)) (the-as vector3s (-> arg1 vel-sxvel)) s5-0)
(vector3s-rotate*! (the-as vector3s (-> arg1 acc)) (the-as vector3s (-> arg1 acc)) s5-0)
)
)
)
0
(none)
)
(defun birth-func-ground-orient ((arg0 int) (arg1 sparticle-cpuinfo) (arg2 sparticle-launchinfo))
(local-vars (v1-10 float) (v1-11 float))
(rlet ((vf0 :class vf)
(vf1 :class vf)
(vf2 :class vf)
)
(init-vf0-vector)
(let ((s4-0 (new 'stack-no-clear 'collide-query))
(s5-0 *target*)
)
(set! (-> s4-0 start-pos quad) (-> arg2 launchrot quad))
(set-vector! (-> s4-0 move-dist) 0.0 -20480.0 0.0 1.0)
(+! (-> s4-0 start-pos y) 4096.0)
(let ((v1-3 s4-0))
(set! (-> v1-3 radius) 40.96)
(set! (-> v1-3 collide-with) (collide-spec
backgnd
bot
crate
civilian
enemy
obstacle
hit-by-player-list
hit-by-others-list
player-list
water
collectable
blocking-plane
tobot
pusher
vehicle-mesh
obstacle-for-jak
)
)
(set! (-> v1-3 ignore-process0) s5-0)
(set! (-> v1-3 ignore-process1) #f)
(set! (-> v1-3 ignore-pat) (new 'static 'pat-surface :noentity #x1 :nojak #x1 :probe #x1 :noendlessfall #x1))
(set! (-> v1-3 action-mask) (collide-action solid))
)
(when (>= (fill-and-probe-using-line-sphere *collide-cache* s4-0) 0.0)
(let ((s2-0 (new 'stack-no-clear 'vector))
(s3-1 (new 'stack-no-clear 'quaternion))
)
(set! (-> s2-0 x) (-> s4-0 best-other-tri normal z))
(set! (-> s2-0 y) 0.0)
(set! (-> s2-0 z) (- (-> s4-0 best-other-tri normal x)))
(vector-normalize! s2-0 1.0)
(quaternion-vector-angle! s3-1 s2-0 (acos (-> s4-0 best-other-tri normal y)))
(let ((s4-1 (new 'stack-no-clear 'quaternion)))
(quaternion-vector-angle! s4-1 *up-vector* (+ 32768.0 (y-angle (-> s5-0 control))))
(quaternion-normalize! (quaternion*! s3-1 s4-1 s3-1))
)
(cond
((< (-> s3-1 w) 0.0)
(.lvf vf1 (&-> arg2 conerot quad))
(.lvf vf2 (&-> s3-1 quad))
(.sub.vf vf1 vf0 vf2 :mask #b111)
(.svf (&-> arg2 conerot quad) vf1)
(.mov v1-10 vf1)
)
(else
(.lvf vf1 (&-> arg2 conerot quad))
(.lvf vf2 (&-> s3-1 quad))
(.add.vf vf1 vf0 vf2 :mask #b111)
(.svf (&-> arg2 conerot quad) vf1)
(.mov v1-11 vf1)
)
)
)
)
)
0
(none)
)
)
(defun birth-func-target-orient ((arg0 int) (arg1 sparticle-cpuinfo) (arg2 sparticle-launchinfo))
(local-vars (v1-10 float) (v1-11 float) (sv-16 target))
(rlet ((vf0 :class vf)
(vf1 :class vf)
(vf2 :class vf)
)
(init-vf0-vector)
(set! sv-16 *target*)
(when sv-16
(let ((s3-0 (new 'stack-no-clear 'vector)))
(new 'stack-no-clear 'vector)
(let ((s5-0 (new 'stack-no-clear 'quaternion)))
(let ((s2-0 (-> sv-16 control local-normal)))
(set! (-> s3-0 x) (-> s2-0 z))
(set! (-> s3-0 y) 0.0)
(set! (-> s3-0 z) (- (-> s2-0 x)))
(vector-normalize! s3-0 1.0)
(quaternion-vector-angle! s5-0 s3-0 (acos (-> s2-0 y)))
)
(let ((s3-1 (new 'stack-no-clear 'quaternion)))
(quaternion-vector-angle! s3-1 *up-vector* (+ 32768.0 (-> arg1 user-float) (y-angle (-> sv-16 control))))
(quaternion-normalize! (quaternion*! s5-0 s5-0 s3-1))
)
(cond
((< (-> s5-0 w) 0.0)
(.lvf vf1 (&-> arg2 conerot quad))
(.lvf vf2 (&-> s5-0 quad))
(.sub.vf vf1 vf0 vf2 :mask #b111)
(.svf (&-> arg2 conerot quad) vf1)
(.mov v1-10 vf1)
)
(else
(.lvf vf1 (&-> arg2 conerot quad))
(.lvf vf2 (&-> s5-0 quad))
(.add.vf vf1 vf0 vf2 :mask #b111)
(.svf (&-> arg2 conerot quad) vf1)
(.mov v1-11 vf1)
)
)
)
)
0
)
(none)
)
)
(defun birth-func-vector-orient ((arg0 int) (arg1 sparticle-cpuinfo) (arg2 sparticle-launchinfo))
(local-vars (v1-3 float) (v1-4 float))
(rlet ((vf0 :class vf)
(vf1 :class vf)
(vf2 :class vf)
)
(init-vf0-vector)
(when *target*
(let ((s4-0 (new 'stack-no-clear 'vector)))
(new 'stack-no-clear 'vector)
(let ((s5-0 (new 'stack-no-clear 'quaternion))
(s3-0 (the-as sprite-vec-data-2d (-> arg1 user-float)))
)
(when (nonzero? s3-0)
(set! (-> s4-0 x) (-> s3-0 x-y-z-sx z))
(set! (-> s4-0 y) 0.0)
(set! (-> s4-0 z) (- (-> s3-0 x-y-z-sx x)))
(vector-normalize! s4-0 1.0)
(quaternion-vector-angle! s5-0 s4-0 (acos (-> s3-0 x-y-z-sx y)))
(cond
((< (-> s5-0 w) 0.0)
(.lvf vf1 (&-> arg2 conerot quad))
(.lvf vf2 (&-> s5-0 quad))
(.sub.vf vf1 vf0 vf2 :mask #b111)
(.svf (&-> arg2 conerot quad) vf1)
(.mov v1-3 vf1)
)
(else
(.lvf vf1 (&-> arg2 conerot quad))
(.lvf vf2 (&-> s5-0 quad))
(.add.vf vf1 vf0 vf2 :mask #b111)
(.svf (&-> arg2 conerot quad) vf1)
(.mov v1-4 vf1)
)
)
)
)
)
0
)
(none)
)
)
(defun birth-func-set-alpha-from-userdata ((arg0 int) (arg1 sparticle-cpuinfo) (arg2 sparticle-launchinfo))
(let ((f0-0 (-> arg1 user-float)))
(set! (-> arg2 coneradius) (* (-> arg2 coneradius) f0-0))
)
)
(defun part-tracker-track-target-joint ((arg0 int) (arg1 sparticle-cpuinfo) (arg2 sparticle-launchinfo))
(let* ((v1-0 *target*)
(v1-2 (vector<-cspace! (new 'stack-no-clear 'vector) (-> v1-0 node-list data (the int (-> arg1 user-float)))))
)
(set! (-> arg2 launchrot x) (-> v1-2 x))
(set! (-> arg2 launchrot y) (-> v1-2 y))
(set! (-> arg2 launchrot z) (-> v1-2 z))
)
0
(none)
)
(defpartgroup group-target-hit
:id 9
:duration (seconds 0.017)
:flags (use-local-clock)
:bounds (static-bspherem 0 0 0 12)
:parts ((sp-item 88 :period (seconds 0.5) :length (seconds 0.017))
(sp-item 89 :period (seconds 0.5) :length (seconds 0.017))
)
)
(defpart 89
:init-specs ((:texture (new 'static 'texture-id :index #x85 :page #xc))
(:num 16.0)
(:scale-x (meters 6) (meters 1))
(:rot-x 4)
(:rot-z (degrees 0) (degrees 3600))
(:scale-y (meters 0.005) (meters 0.005))
(:r 128.0 128.0)
(:g 128.0 128.0)
(:b 128.0 128.0)
(:a 32.0 12.0)
(:scalevel-x (meters 0.3) (meters 0.2))
(:scalevel-y (meters 0.00125))
(:fade-a -0.8 -0.8)
(:timer (seconds 0.135))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 12288.0)
(:func 'sparticle-track-root)
)
)
(defpart 88
:init-specs ((:texture (new 'static 'texture-id :index #xbb :page #xc))
(:num 1.0)
(:scale-x (meters 64))
(:rot-x (degrees 11.25))
(:rot-z (degrees 0) (degrees 3600))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 255.0)
(:b 255.0)
(:a 64.0)
(:scalevel-x (meters 0.7))
(:scalevel-y :copy scalevel-x)
(:fade-a -6.4)
(:timer (seconds 0.135))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14 glow))
(:userdata 16384.0)
(:func 'sparticle-track-root)
)
)
(defpartgroup group-spin-hit
:id 10
:duration (seconds 0.017)
:linger-duration (seconds 0.167)
:bounds (static-bspherem 0 0 0 2)
:parts ((sp-item 90 :flags (bit6)))
)
(defpartgroup group-punch-hit
:id 11
:duration (seconds 0.017)
:linger-duration (seconds 0.167)
:bounds (static-bspherem 0 0 0 2)
:parts ((sp-item 90 :flags (bit6)))
)
(defpart 90
:init-specs ((:texture (new 'static 'texture-id :index #xbb :page #xc))
(:num 1.0)
(:y (meters 1))
(:scale-x (meters 5))
(:rot-x (degrees 5.625))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 196.0)
(:g 196.0)
(:b 196.0)
(:a 12.0)
(:scalevel-x (meters 1))
(:scalevel-y :copy scalevel-x)
(:fade-a -1.2)
(:timer (seconds 0.035))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 2048.0)
)
)
(defpartgroup group-smack-surface
:id 12
:duration (seconds 0.035)
:linger-duration (seconds 1.5)
:bounds (static-bspherem 0 0 0 2)
:parts ((sp-item 92)
(sp-item 93)
(sp-item 94 :binding 91)
(sp-item 91 :flags (start-dead launch-asap))
(sp-item 91 :flags (start-dead launch-asap))
(sp-item 91 :flags (start-dead launch-asap))
(sp-item 91 :flags (start-dead launch-asap))
(sp-item 91 :flags (start-dead launch-asap))
(sp-item 91 :flags (start-dead launch-asap))
(sp-item 91 :flags (start-dead launch-asap))
(sp-item 91 :flags (start-dead launch-asap))
(sp-item 91 :flags (start-dead launch-asap))
(sp-item 91 :flags (start-dead launch-asap))
(sp-item 91 :flags (start-dead launch-asap))
(sp-item 91 :flags (start-dead launch-asap))
(sp-item 91 :flags (start-dead launch-asap))
(sp-item 91 :flags (start-dead launch-asap))
(sp-item 91 :flags (start-dead launch-asap))
(sp-item 91 :flags (start-dead launch-asap))
(sp-item 91 :flags (start-dead launch-asap))
(sp-item 91 :flags (start-dead launch-asap))
(sp-item 91 :flags (start-dead launch-asap))
(sp-item 91 :flags (start-dead launch-asap))
)
)
(defpart 92
:init-specs ((:texture (new 'static 'texture-id :page #xc))
(:birth-func 'birth-func-copy-target-y-rot)
(:num 16.0)
(:scale-x (meters 1) (meters 0.5))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 96.0)
(:g 96.0 32.0)
(:b 96.0 32.0)
(:a 32.0 32.0)
(:vel-y (meters 0.04) (meters 0.02))
(:scalevel-x (meters 0.0033333334))
(:rotvel-z (degrees -0.2) (degrees 0.4))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.85333335)
(:accel-y (meters -0.00033333333))
(:friction 0.95)
(:timer (seconds 1))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12))
(:conerot-x (degrees 0) (degrees 360))
(:rotate-y (degrees 0))
)
)
(defpart 93
:init-specs ((:texture (new 'static 'texture-id :page #xc))
(:birth-func 'birth-func-copy-target-y-rot)
(:num 8.0)
(:scale-x (meters 0.5) (meters 0.25))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 96.0)
(:g 96.0 32.0)
(:b 96.0 32.0)
(:a 32.0 32.0)
(:vel-y (meters 0.08) (meters 0.02))
(:scalevel-x (meters 0.0033333334))
(:rotvel-z (degrees -0.2) (degrees 0.4))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.85333335)
(:accel-y (meters -0.00033333333))
(:friction 0.95)
(:timer (seconds 1))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12))
(:conerot-x (degrees 0) (degrees 360))
(:rotate-y (degrees 0))
)
)
(defpart 94
:init-specs ((:texture (new 'static 'texture-id :index #x29 :page #xc))
(:num 12.0 8.0)
(:scale-x (meters 1))
(:scale-y :copy scale-x)
(:r 128.0)
(:a 0.0)
(:timer (seconds 2.015))
(:flags (sp-cpuinfo-flag-3))
(:userdata 9.0)
(:func 'part-tracker-track-target-joint)
)
)
(defpart 91
:init-specs ((:texture (new 'static 'texture-id :index #xc9 :page #xc))
(:num 1.0)
(:x (meters 0))
(:y (meters -1.3333334) (meters 2.6666667))
(:z (meters 0.5) (meters 0.5))
(:scale-x (meters 0.1) (meters 0.05))
(:scale-y :copy scale-x)
(:r 32.0 92.0)
(:g 128.0 128.0)
(:b 0.0)
(:a 32.0 96.0)
(:omega (degrees 0) (degrees 360))
(:vel-x (meters -0.053333335) 1 (meters 0.10666667))
(:vel-y (meters 0))
(:vel-z (meters 0.0033333334))
(:fade-a -0.30476192)
(:timer (seconds 2.015))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 ready-to-launch))
)
)
(defpartgroup group-land-poof-san
:id 13
:duration (seconds 0.017)
:linger-duration (seconds 1.5)
:bounds (static-bspherem 0 0 0 2)
:parts ((sp-item 95) (sp-item 96) (sp-item 97))
)
(defpart 95
:init-specs ((:texture (new 'static 'texture-id :page #xc))
(:num 16.0)
(:scale-x (meters 1) (meters 1))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 96.0 32.0)
(:b 64.0 32.0)
(:a 16.0 32.0)
(:vel-y (meters 0.02) (meters 0.01))
(:scalevel-x (meters 0.0033333334))
(:rotvel-z (degrees -0.2) (degrees 0.4))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.16)
(:accel-y (meters -0.00033333333))
(:friction 0.95)
(:timer (seconds 1))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12))
(:conerot-x (degrees 60) (degrees 30))
(:conerot-y (degrees 0) (degrees 360))
)
)
(defpart 96
:init-specs ((:texture (new 'static 'texture-id :page #xc))
(:num 12.0)
(:scale-x (meters 0.5) (meters 0.25))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 96.0 32.0)
(:b 64.0 32.0)
(:a 16.0 16.0)
(:vel-y (meters 0.053333335) (meters 0.02))
(:scalevel-x (meters 0.0016666667))
(:rotvel-z (degrees -0.2) (degrees 0.4))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.21333334)
(:accel-y (meters -0.00033333333))
(:friction 0.95)
(:timer (seconds 0.5))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12))
(:conerot-x (degrees 60) (degrees 30))
(:conerot-y (degrees 0) (degrees 360))
)
)
(defpart 97
:init-specs ((:texture (new 'static 'texture-id :index #x26 :page #xc))
(:num 32.0)
(:x (meters -0.4) (meters 0.8))
(:y (meters -0.1) (meters 0.4))
(:z (meters -0.4) (meters 0.8))
(:scale-x (meters 0.07) (meters 0.02))
(:scale-y :copy scale-x)
(:r 128.0 2 32.0)
(:g 64.0 1 64.0)
(:b 32.0 1 32.0)
(:a 64.0 64.0)
(:vel-y (meters 0.015) (meters 0.006666667))
(:fade-a -0.42666668)
(:accel-y (meters -0.0013333333) (meters 0.00066666666))
(:timer (seconds 1))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12))
(:conerot-x (degrees 30) (degrees 50.000004))
(:conerot-y (degrees 0) (degrees 360))
(:conerot-radius (meters 0.5))
)
)
(defpartgroup group-land-poof-drt
:id 14
:duration (seconds 0.017)
:linger-duration (seconds 1.5)
:bounds (static-bspherem 0 0 0 2)
:parts ((sp-item 98) (sp-item 99) (sp-item 100))
)
(defpart 98
:init-specs ((:texture (new 'static 'texture-id :page #xc))
(:num 16.0)
(:scale-x (meters 1) (meters 1))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 96.0 32.0)
(:b 64.0 32.0)
(:a 16.0 32.0)
(:vel-y (meters 0.02) (meters 0.01))
(:scalevel-x (meters 0.0033333334))
(:rotvel-z (degrees -0.2) (degrees 0.4))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.16)
(:accel-y (meters -0.00033333333))
(:friction 0.95)
(:timer (seconds 1))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12))
(:conerot-x (degrees 60) (degrees 30))
(:conerot-y (degrees 0) (degrees 360))
)
)
(defpart 99
:init-specs ((:texture (new 'static 'texture-id :page #xc))
(:num 12.0)
(:scale-x (meters 0.5) (meters 0.25))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 96.0 32.0)
(:b 64.0 32.0)
(:a 16.0 16.0)
(:vel-y (meters 0.053333335) (meters 0.02))
(:scalevel-x (meters 0.0016666667))
(:rotvel-z (degrees -0.2) (degrees 0.4))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.21333334)
(:accel-y (meters -0.00033333333))
(:friction 0.95)
(:timer (seconds 0.5))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12))
(:conerot-x (degrees 60) (degrees 30))
(:conerot-y (degrees 0) (degrees 360))
)
)
(defpart 100
:init-specs ((:texture (new 'static 'texture-id :index #x26 :page #xc))
(:num 32.0)
(:x (meters -0.4) (meters 0.8))
(:y (meters -0.1) (meters 0.4))
(:z (meters -0.4) (meters 0.8))
(:scale-x (meters 0.07) (meters 0.02))
(:scale-y :copy scale-x)
(:r 128.0 2 32.0)
(:g 64.0 1 64.0)
(:b 32.0 1 32.0)
(:a 64.0 64.0)
(:vel-y (meters 0.015) (meters 0.006666667))
(:fade-a -0.42666668)
(:accel-y (meters -0.0013333333) (meters 0.00066666666))
(:timer (seconds 1))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12))
(:conerot-x (degrees 30) (degrees 50.000004))
(:conerot-y (degrees 0) (degrees 360))
(:conerot-radius (meters 0.5))
)
)
(defpartgroup group-land-poof-snw
:id 15
:duration (seconds 0.017)
:linger-duration (seconds 1.5)
:bounds (static-bspherem 0 0 0 2)
:parts ((sp-item 101) (sp-item 102) (sp-item 103))
)
(defpart 101
:init-specs ((:texture (new 'static 'texture-id :page #xc))
(:num 16.0)
(:scale-x (meters 1) (meters 1))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 196.0 64.0)
(:g 196.0 64.0)
(:b 196.0 64.0)
(:a 16.0 32.0)
(:vel-y (meters 0.02) (meters 0.01))
(:scalevel-x (meters 0.0033333334))
(:rotvel-z (degrees -0.2) (degrees 0.4))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.16)
(:accel-y (meters -0.00033333333))
(:friction 0.95)
(:timer (seconds 1))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12))
(:conerot-x (degrees 60) (degrees 30))
(:conerot-y (degrees 0) (degrees 360))
)
)
(defpart 102
:init-specs ((:texture (new 'static 'texture-id :page #xc))
(:num 12.0)
(:scale-x (meters 0.5) (meters 0.25))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 196.0 64.0)
(:g 196.0 64.0)
(:b 196.0 64.0)
(:a 16.0 16.0)
(:vel-y (meters 0.053333335) (meters 0.02))
(:scalevel-x (meters 0.0016666667))
(:rotvel-z (degrees -0.2) (degrees 0.4))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.21333334)
(:accel-y (meters -0.00033333333))
(:friction 0.95)
(:timer (seconds 0.5))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12))
(:conerot-x (degrees 60) (degrees 30))
(:conerot-y (degrees 0) (degrees 360))
)
)
(defpart 103
:init-specs ((:texture (new 'static 'texture-id :index #x26 :page #xc))
(:num 32.0)
(:x (meters -0.4) (meters 0.8))
(:y (meters -0.1) (meters 0.4))
(:z (meters -0.4) (meters 0.8))
(:scale-x (meters 0.07) (meters 0.02))
(:scale-y :copy scale-x)
(:r 196.0 1 64.0)
(:g 196.0 1 64.0)
(:b 196.0 1 64.0)
(:a 64.0 64.0)
(:vel-y (meters 0.015) (meters 0.006666667))
(:fade-a -0.42666668)
(:accel-y (meters -0.0013333333) (meters 0.00066666666))
(:timer (seconds 1))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12))
(:conerot-x (degrees 30) (degrees 50.000004))
(:conerot-y (degrees 0) (degrees 360))
(:conerot-radius (meters 0.5))
)
)
(defpartgroup group-land-poof-ice
:id 16
:duration (seconds 0.017)
:linger-duration (seconds 1.5)
:bounds (static-bspherem 0 0 0 2)
:parts ((sp-item 101) (sp-item 102) (sp-item 103))
)
(defpartgroup group-land-poof-grs
:id 17
:duration (seconds 0.017)
:linger-duration (seconds 1.5)
:bounds (static-bspherem 0 0 0 2)
:parts ((sp-item 104) (sp-item 105) (sp-item 106))
)
(defpart 104
:init-specs ((:texture (new 'static 'texture-id :page #xc))
(:num 16.0)
(:scale-x (meters 1) (meters 1))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 64.0 32.0)
(:g 96.0 32.0)
(:b 0.0 32.0)
(:a 16.0 32.0)
(:vel-y (meters 0.02) (meters 0.01))
(:scalevel-x (meters 0.0033333334))
(:rotvel-z (degrees -0.2) (degrees 0.4))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.16)
(:accel-y (meters -0.00033333333))
(:friction 0.95)
(:timer (seconds 1))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12))
(:conerot-x (degrees 60) (degrees 30))
(:conerot-y (degrees 0) (degrees 360))
)
)
(defpart 105
:init-specs ((:texture (new 'static 'texture-id :page #xc))
(:num 12.0)
(:scale-x (meters 0.5) (meters 0.25))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 64.0 32.0)
(:g 96.0 32.0)
(:b 0.0 32.0)
(:a 16.0 16.0)
(:vel-y (meters 0.053333335) (meters 0.02))
(:scalevel-x (meters 0.0016666667))
(:rotvel-z (degrees -0.2) (degrees 0.4))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.21333334)
(:accel-y (meters -0.00033333333))
(:friction 0.95)
(:timer (seconds 0.5))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12))
(:conerot-x (degrees 60) (degrees 30))
(:conerot-y (degrees 0) (degrees 360))
)
)
(defpart 106
:init-specs ((:texture (new 'static 'texture-id :index #x2f :page #xc))
(:num 32.0)
(:x (meters -0.4) (meters 0.8))
(:y (meters -0.1) (meters 0.4))
(:z (meters -0.4) (meters 0.8))
(:scale-x (meters 0.15) (meters 0.35))
(:rot-z (degrees 0) (degrees 360))
(:scale-y (meters 0.15))
(:r 0.0 2.0 64.0)
(:g 64.0 2 64.0)
(:a 64.0 64.0)
(:vel-y (meters 0.015) (meters 0.006666667))
(:rotvel-z (degrees -2.4) (degrees 4.8))
(:fade-a -0.42666668)
(:accel-y (meters -0.0013333333) (meters 0.00083333335))
(:timer (seconds 1))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12))
(:conerot-x (degrees 30) (degrees 50.000004))
(:conerot-y (degrees 0) (degrees 360))
(:conerot-radius (meters 0.5))
)
)
(defpartgroup group-land-poof-wod
:id 18
:duration (seconds 0.017)
:linger-duration (seconds 1.5)
:bounds (static-bspherem 0 0 0 2)
:parts ((sp-item 107) (sp-item 108))
)
(defpart 107
:init-specs ((:texture (new 'static 'texture-id :page #xc))
(:num 16.0)
(:scale-x (meters 1) (meters 1))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 96.0 32.0)
(:g 64.0)
(:b 0.0 32.0)
(:a 16.0 32.0)
(:vel-y (meters 0.02) (meters 0.01))
(:scalevel-x (meters 0.0033333334))
(:rotvel-z (degrees -0.2) (degrees 0.4))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.16)
(:accel-y (meters -0.00033333333))
(:friction 0.95)
(:timer (seconds 1))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12))
(:conerot-x (degrees 60) (degrees 30))
(:conerot-y (degrees 0) (degrees 360))
)
)
(defpart 108
:init-specs ((:texture (new 'static 'texture-id :page #xc))
(:num 12.0)
(:scale-x (meters 0.5) (meters 0.25))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 96.0 32.0)
(:g 64.0)
(:b 0.0 32.0)
(:a 16.0 16.0)
(:vel-y (meters 0.053333335) (meters 0.02))
(:scalevel-x (meters 0.0016666667))
(:rotvel-z (degrees -0.2) (degrees 0.4))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.21333334)
(:accel-y (meters -0.00033333333))
(:friction 0.95)
(:timer (seconds 0.5))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12))
(:conerot-x (degrees 60) (degrees 30))
(:conerot-y (degrees 0) (degrees 360))
)
)
(defpartgroup group-land-poof-cwd
:id 19
:duration (seconds 0.017)
:linger-duration (seconds 2.5)
:bounds (static-bspherem 0 0 0 2)
:parts ((sp-item 107) (sp-item 108) (sp-item 109) (sp-item 109))
)
(when *debug-segment*
(defpartgroup group-land-poof-unk
:id 20
:duration (seconds 0.017)
:linger-duration (seconds 1.5)
:bounds (static-bspherem 0 0 0 2)
:parts ((sp-item 110) (sp-item 111))
)
(defpart 110
:init-specs ((:texture (new 'static 'texture-id :page #xc))
(:num 16.0)
(:scale-x (meters 1) (meters 1))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 96.0)
(:b 96.0)
(:a 255.0)
(:vel-y (meters 0.02) (meters 0.01))
(:scalevel-x (meters 0.0033333334))
(:rotvel-z (degrees -0.2) (degrees 0.4))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.16)
(:accel-y (meters -0.00033333333))
(:friction 0.95)
(:timer (seconds 1))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12))
(:conerot-x (degrees 60) (degrees 30))
(:conerot-y (degrees 0) (degrees 360))
)
)
(defpart 111
:init-specs ((:texture (new 'static 'texture-id :page #xc))
(:num 12.0)
(:scale-x (meters 0.5) (meters 0.25))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 96.0)
(:b 96.0)
(:a 16.0 16.0)
(:vel-y (meters 0.053333335) (meters 0.02))
(:scalevel-x (meters 0.0016666667))
(:rotvel-z (degrees -0.2) (degrees 0.4))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.21333334)
(:accel-y (meters -0.00033333333))
(:friction 0.95)
(:timer (seconds 0.5))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12))
(:conerot-x (degrees 60) (degrees 30))
(:conerot-y (degrees 0) (degrees 360))
)
)
)
(defpartgroup group-land-poof-stn
:id 21
:duration (seconds 0.017)
:linger-duration (seconds 1.5)
:bounds (static-bspherem 0 0 0 2)
:parts ((sp-item 112) (sp-item 113))
)
(defpart 112
:init-specs ((:texture (new 'static 'texture-id :page #xc))
(:num 16.0)
(:scale-x (meters 1) (meters 1))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 96.0 32.0)
(:g 96.0)
(:b 96.0)
(:a 16.0 32.0)
(:vel-y (meters 0.02) (meters 0.01))
(:scalevel-x (meters 0.0033333334))
(:rotvel-z (degrees -0.2) (degrees 0.4))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.16)
(:accel-y (meters -0.00033333333))
(:friction 0.95)
(:timer (seconds 1))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12))
(:conerot-x (degrees 60) (degrees 30))
(:conerot-y (degrees 0) (degrees 360))
)
)
(defpart 113
:init-specs ((:texture (new 'static 'texture-id :page #xc))
(:num 12.0)
(:scale-x (meters 0.5) (meters 0.25))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 96.0 32.0)
(:g 96.0)
(:b 96.0)
(:a 16.0 16.0)
(:vel-y (meters 0.053333335) (meters 0.02))
(:scalevel-x (meters 0.0016666667))
(:rotvel-z (degrees -0.2) (degrees 0.4))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.21333334)
(:accel-y (meters -0.00033333333))
(:friction 0.95)
(:timer (seconds 0.5))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12))
(:conerot-x (degrees 60) (degrees 30))
(:conerot-y (degrees 0) (degrees 360))
)
)
(defpartgroup group-land-poof-pmt
:id 22
:duration (seconds 0.017)
:linger-duration (seconds 1.5)
:bounds (static-bspherem 0 0 0 2)
:parts ((sp-item 114) (sp-item 115))
)
(defpart 114
:init-specs ((:texture (new 'static 'texture-id :page #xc))
(:num 16.0)
(:scale-x (meters 1) (meters 1))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 128.0 64.0)
(:g 70.0 32.0)
(:b 40.0 20.0)
(:a 24.0 24.0)
(:vel-y (meters 0.02) (meters 0.01))
(:rotvel-z (degrees -0.2) (degrees 0.4))
(:fade-a -0.16)
(:accel-y (meters -0.00033333333))
(:friction 0.95)
(:timer (seconds 1))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12))
(:conerot-x (degrees 60) (degrees 30))
(:conerot-y (degrees 0) (degrees 360))
)
)
(defpart 115
:init-specs ((:texture (new 'static 'texture-id :page #xc))
(:num 12.0)
(:scale-x (meters 0.5) (meters 0.25))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 128.0 64.0)
(:g 70.0 32.0)
(:b 40.0 20.0)
(:a 16.0 16.0)
(:vel-y (meters 0.053333335) (meters 0.02))
(:scalevel-x (meters 0.0016666667))
(:rotvel-z (degrees -0.2) (degrees 0.4))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.21333334)
(:accel-y (meters -0.00033333333))
(:friction 0.95)
(:timer (seconds 0.5))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12))
(:conerot-x (degrees 60) (degrees 30))
(:conerot-y (degrees 0) (degrees 360))
)
)
(when *debug-segment*
(defpartgroup group-run-poof-unk
:id 23
:duration (seconds 0.017)
:linger-duration (seconds 2)
:bounds (static-bspherem 0 0 0 2)
:parts ((sp-item 116))
)
(defpartgroup group-just-poof-unk
:id 24
:duration (seconds 0.017)
:linger-duration (seconds 2)
:bounds (static-bspherem 0 0 0 2)
:parts ((sp-item 116))
)
(defpart 116
:init-specs ((:texture (new 'static 'texture-id :page #xc))
(:num 8.0 16.0)
(:scale-x (meters 0.5) (meters 0.5))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 96.0)
(:b 96.0)
(:a 255.0)
(:vel-y (meters 0.02) (meters 0.01))
(:fade-a -0.45714286)
(:friction 0.965)
(:timer (seconds 0.35))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12 sp-cpuinfo-flag-14))
(:conerot-x (degrees 60) (degrees 30))
(:conerot-y (degrees 0) (degrees 360))
)
)
)
(defpartgroup group-run-poof-stn
:id 25
:duration (seconds 0.017)
:linger-duration (seconds 2)
:bounds (static-bspherem 0 0 0 2)
:parts ((sp-item 117))
)
(defpartgroup group-just-poof-stn
:id 26
:duration (seconds 0.017)
:linger-duration (seconds 2)
:bounds (static-bspherem 0 0 0 2)
:parts ((sp-item 117))
)
(defpart 117
:init-specs ((:texture (new 'static 'texture-id :page #xc))
(:num 8.0 16.0)
(:scale-x (meters 0.5) (meters 0.5))
(:scale-y :copy scale-x)
(:r 96.0 32.0)
(:g 96.0)
(:b 96.0)
(:a 16.0 32.0)
(:vel-y (meters 0.02) (meters 0.01))
(:fade-a -0.45714286)
(:friction 0.965)
(:timer (seconds 0.35))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12 sp-cpuinfo-flag-14))
(:conerot-x (degrees 60) (degrees 30))
(:conerot-y (degrees 0) (degrees 360))
)
)
(defpartgroup group-run-poof-snw
:id 27
:duration (seconds 0.017)
:linger-duration (seconds 2)
:bounds (static-bspherem 0 0 0 2)
:parts ((sp-item 118) (sp-item 119 :flags (is-3d)))
)
(defpartgroup group-just-poof-snw
:id 28
:duration (seconds 0.017)
:linger-duration (seconds 2)
:bounds (static-bspherem 0 0 0 2)
:parts ((sp-item 118))
)
(defpartgroup group-just-footprint-snw
:id 29
:duration (seconds 0.017)
:linger-duration (seconds 2)
:bounds (static-bspherem 0 0 0 2)
:parts ((sp-item 119 :flags (is-3d)))
)
(defpart 119
:init-specs ((:texture (new 'static 'texture-id :index #x12 :page #xc))
(:birth-func 'birth-func-target-orient)
(:num 1.0)
(:x (meters -0.25))
(:scale-x (meters 0.6))
(:scale-y :copy scale-x)
(:r 32.0)
(:g 32.0)
(:b 16.0)
(:a 64.0)
(:fade-a -0.07111111)
(:timer (seconds 3.5))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12 sp-cpuinfo-flag-14))
)
)
(defpart 118
:init-specs ((:texture (new 'static 'texture-id :page #xc))
(:num 8.0 16.0)
(:scale-x (meters 0.5) (meters 0.5))
(:scale-y :copy scale-x)
(:r 196.0 64.0)
(:g 196.0 64.0)
(:b 196.0 64.0)
(:a 24.0 24.0)
(:vel-y (meters 0.02) (meters 0.01))
(:fade-a -0.45714286)
(:friction 0.965)
(:timer (seconds 0.35))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12 sp-cpuinfo-flag-14))
(:conerot-x (degrees 60) (degrees 30))
(:conerot-y (degrees 0) (degrees 360))
)
)
(defpartgroup group-run-poof-ice
:id 30
:duration (seconds 0.017)
:linger-duration (seconds 2)
:bounds (static-bspherem 0 0 0 2)
:parts ((sp-item 118))
)
(defpartgroup group-just-poof-ice
:id 31
:duration (seconds 0.017)
:linger-duration (seconds 2)
:bounds (static-bspherem 0 0 0 2)
:parts ((sp-item 118))
)
(defpartgroup group-run-poof-cwd
:id 32
:duration (seconds 0.017)
:linger-duration (seconds 2)
:bounds (static-bspherem 0 0 0 2)
:parts ((sp-item 120) (sp-item 120) (sp-item 109))
)
(defpartgroup group-just-poof-cwd
:id 33
:duration (seconds 0.017)
:linger-duration (seconds 2)
:bounds (static-bspherem 0 0 0 2)
:parts ((sp-item 121))
)
(defpart 109
:init-specs ((:texture (new 'static 'texture-id :page #xc))
(:num 8.0 16.0)
(:y (meters -1))
(:scale-x (meters 1) (meters 0.5))
(:scale-y :copy scale-x)
(:r 64.0 32.0)
(:g 64.0)
(:b 0.0 32.0)
(:a 0.0)
(:vel-y (meters 0) (meters -0.0033333334))
(:scalevel-x (meters 0.0016666667))
(:scalevel-y :copy scalevel-x)
(:fade-a 0.16)
(:accel-y (meters -0.00006666667))
(:timer (seconds 3))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12 sp-cpuinfo-flag-14))
(:next-time (seconds 0.25) (seconds 0.247))
(:next-launcher 122)
(:conerot-x (degrees 90))
(:conerot-y (degrees 0) (degrees 360))
(:conerot-radius (meters 0) (meters 3))
)
)
(defpart 122
:init-specs ((:fade-a 0.0) (:next-time (seconds 0.5) (seconds 0.497)) (:next-launcher 123))
)
(defpart 123
:init-specs ((:fade-a -0.08))
)
(defpartgroup group-run-poof-wod
:id 34
:duration (seconds 0.017)
:linger-duration (seconds 2)
:bounds (static-bspherem 0 0 0 2)
:parts ((sp-item 120))
)
(defpartgroup group-just-poof-wod
:id 35
:duration (seconds 0.017)
:linger-duration (seconds 2)
:bounds (static-bspherem 0 0 0 2)
:parts ((sp-item 120))
)
(defpart 120
:init-specs ((:texture (new 'static 'texture-id :page #xc))
(:num 8.0 16.0)
(:scale-x (meters 0.5) (meters 0.5))
(:scale-y :copy scale-x)
(:r 96.0 32.0)
(:g 64.0)
(:b 0.0 32.0)
(:a 16.0 32.0)
(:vel-y (meters 0.02) (meters 0.01))
(:fade-a -0.45714286)
(:friction 0.965)
(:timer (seconds 0.35))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12 sp-cpuinfo-flag-14))
(:conerot-x (degrees 60) (degrees 30))
(:conerot-y (degrees 0) (degrees 360))
)
)
(defpartgroup group-run-poof-pmt
:id 36
:duration (seconds 0.017)
:linger-duration (seconds 2)
:bounds (static-bspherem 0 0 0 2)
:parts ((sp-item 124))
)
(defpartgroup group-just-poof-pmt
:id 37
:duration (seconds 0.017)
:linger-duration (seconds 2)
:bounds (static-bspherem 0 0 0 2)
:parts ((sp-item 124))
)
(defpart 124
:init-specs ((:texture (new 'static 'texture-id :page #xc))
(:num 8.0 16.0)
(:scale-x (meters 0.5) (meters 0.5))
(:scale-y :copy scale-x)
(:r 128.0 64.0)
(:g 70.0 32.0)
(:b 40.0 20.0)
(:a 16.0 32.0)
(:vel-y (meters 0.02) (meters 0.01))
(:fade-a -0.45714286)
(:friction 0.965)
(:timer (seconds 0.35))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12 sp-cpuinfo-flag-14))
(:conerot-x (degrees 60) (degrees 30))
(:conerot-y (degrees 0) (degrees 360))
)
)
(defpartgroup group-run-poof-grs
:id 38
:duration (seconds 0.017)
:linger-duration (seconds 2)
:bounds (static-bspherem 0 0 0 2)
:parts ((sp-item 125) (sp-item 126 :flags (is-3d)))
)
(defpartgroup group-just-poof-grs
:id 39
:duration (seconds 0.017)
:linger-duration (seconds 2)
:bounds (static-bspherem 0 0 0 2)
:parts ((sp-item 125))
)
(defpartgroup group-just-footprint-grs
:id 40
:duration (seconds 0.017)
:linger-duration (seconds 2)
:bounds (static-bspherem 0 0 0 2)
:parts ((sp-item 126 :flags (is-3d)))
)
(defpart 125
:init-specs ((:texture (new 'static 'texture-id :page #xc))
(:num 8.0 16.0)
(:scale-x (meters 0.5) (meters 0.5))
(:scale-y :copy scale-x)
(:r 64.0 32.0)
(:g 96.0 32.0)
(:b 0.0 32.0)
(:a 16.0 32.0)
(:vel-y (meters 0.02) (meters 0.01))
(:fade-a -0.45714286)
(:friction 0.965)
(:timer (seconds 0.35))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12 sp-cpuinfo-flag-14))
(:conerot-x (degrees 60) (degrees 30))
(:conerot-y (degrees 0) (degrees 360))
)
)
(defpart 126
:init-specs ((:texture (new 'static 'texture-id :index #x12 :page #xc))
(:birth-func 'birth-func-target-orient)
(:num 1.0)
(:x (meters -0.25))
(:scale-x (meters 0.6))
(:scale-y :copy scale-x)
(:r 32.0)
(:g 32.0)
(:b 16.0)
(:a 48.0)
(:fade-a -0.053333335)
(:timer (seconds 3.5))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12 sp-cpuinfo-flag-14))
)
)
(defpartgroup group-run-poof-san
:id 41
:duration (seconds 0.017)
:linger-duration (seconds 2)
:bounds (static-bspherem 0 0 0 2)
:parts ((sp-item 121) (sp-item 127 :flags (is-3d)))
)
(defpartgroup group-just-poof-san
:id 42
:duration (seconds 0.017)
:linger-duration (seconds 2)
:bounds (static-bspherem 0 0 0 2)
:parts ((sp-item 121))
)
(defpartgroup group-just-footprint-san
:id 43
:duration (seconds 0.017)
:linger-duration (seconds 2)
:bounds (static-bspherem 0 0 0 2)
:parts ((sp-item 127 :flags (is-3d)))
)
(defpart 121
:init-specs ((:texture (new 'static 'texture-id :page #xc))
(:num 8.0 16.0)
(:scale-x (meters 0.5) (meters 0.5))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 96.0 32.0)
(:b 64.0 32.0)
(:a 16.0 32.0)
(:vel-y (meters 0.02) (meters 0.01))
(:fade-a -0.45714286)
(:friction 0.965)
(:timer (seconds 0.35))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12 sp-cpuinfo-flag-14))
(:conerot-x (degrees 60) (degrees 30))
(:conerot-y (degrees 0) (degrees 360))
)
)
(defpart 127
:init-specs ((:texture (new 'static 'texture-id :index #x12 :page #xc))
(:birth-func 'birth-func-target-orient)
(:num 1.0)
(:x (meters -0.25))
(:scale-x (meters 0.6))
(:scale-y :copy scale-x)
(:r 32.0)
(:g 32.0)
(:b 16.0)
(:a 32.0)
(:fade-a -0.035555556)
(:timer (seconds 3.5))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12 sp-cpuinfo-flag-14))
)
)
(defpartgroup group-run-poof-drt
:id 44
:duration (seconds 0.017)
:linger-duration (seconds 2)
:bounds (static-bspherem 0 0 0 2)
:parts ((sp-item 128))
)
(defpartgroup group-just-poof-drt
:id 45
:duration (seconds 0.017)
:linger-duration (seconds 2)
:bounds (static-bspherem 0 0 0 2)
:parts ((sp-item 128))
)
(defpartgroup group-just-footprint-drt
:id 46
:duration (seconds 0.017)
:linger-duration (seconds 2)
:bounds (static-bspherem 0 0 0 2)
:parts ((sp-item 129 :flags (is-3d)))
)
(defpart 128
:init-specs ((:texture (new 'static 'texture-id :page #xc))
(:num 8.0 16.0)
(:scale-x (meters 0.5) (meters 0.5))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 96.0 32.0)
(:b 64.0 32.0)
(:a 16.0 32.0)
(:vel-y (meters 0.02) (meters 0.01))
(:fade-a -0.45714286)
(:friction 0.965)
(:timer (seconds 0.35))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12 sp-cpuinfo-flag-14))
(:conerot-x (degrees 60) (degrees 30))
(:conerot-y (degrees 0) (degrees 360))
)
)
(defpart 129
:init-specs ((:texture (new 'static 'texture-id :index #x12 :page #xc))
(:birth-func 'birth-func-target-orient)
(:num 1.0)
(:x (meters -0.25))
(:scale-x (meters 0.6))
(:scale-y :copy scale-x)
(:r 32.0)
(:g 32.0)
(:b 16.0)
(:a 32.0)
(:fade-a -0.035555556)
(:timer (seconds 3.5))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12 sp-cpuinfo-flag-14))
)
)
(defpart 130
:init-specs ((:texture (new 'static 'texture-id :index #x26 :page #xc))
(:num 0.0 6.0)
(:x (meters -0.4) (meters 0.8))
(:y (meters -0.1) (meters 0.4))
(:z (meters -0.4) (meters 0.8))
(:scale-x (meters 0.07) (meters 0.02))
(:scale-y :copy scale-x)
(:r 128.0 2 32.0)
(:g 64.0 1 64.0)
(:b 32.0 1 32.0)
(:a 64.0 64.0)
(:vel-x (meters -0.00083333335) (meters 0.0016666667))
(:vel-y (meters 0.005) (meters 0.006666667))
(:vel-z (meters -0.00083333335) (meters 0.0016666667))
(:fade-a -0.42666668)
(:accel-y (meters -0.00066666666) (meters 0.00033333333))
(:timer (seconds 1))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12 sp-cpuinfo-flag-14))
)
)
(defpart 131
:init-specs ((:texture (new 'static 'texture-id :index #x26 :page #xc))
(:num 0.0 6.0)
(:x (meters -0.4) (meters 0.8))
(:y (meters -0.1) (meters 0.4))
(:z (meters -0.4) (meters 0.8))
(:scale-x (meters 0.07) (meters 0.02))
(:scale-y :copy scale-x)
(:r 128.0 2 32.0)
(:g 64.0 1 64.0)
(:b 32.0 1 32.0)
(:a 64.0 64.0)
(:vel-x (meters -0.00083333335) (meters 0.0016666667))
(:vel-y (meters 0.005) (meters 0.006666667))
(:vel-z (meters -0.00083333335) (meters 0.0016666667))
(:fade-a -0.42666668)
(:accel-y (meters -0.00066666666) (meters 0.00033333333))
(:timer (seconds 1))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12 sp-cpuinfo-flag-14))
)
)
(defpart 132
:init-specs ((:texture (new 'static 'texture-id :index #x2f :page #xc))
(:num 0.0 2.0)
(:x (meters -0.4) (meters 0.8))
(:y (meters -0.1) (meters 0.4))
(:z (meters -0.4) (meters 0.8))
(:scale-x (meters 0.2) (meters 0.2))
(:rot-z (degrees 0) (degrees 360))
(:scale-y (meters 0.1))
(:r 0.0 2.0 64.0)
(:g 64.0 2 64.0)
(:a 96.0 32.0)
(:vel-x (meters -0.00083333335) (meters 0.0016666667))
(:vel-y (meters 0.005) (meters 0.006666667))
(:vel-z (meters -0.00083333335) (meters 0.0016666667))
(:rotvel-z (degrees -2.4) (degrees 4.8))
(:fade-a -0.42666668)
(:accel-y (meters -0.00066666666) (meters 0.00033333333))
(:timer (seconds 1))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12 sp-cpuinfo-flag-14))
)
)
(defpart 133
:init-specs ((:texture (new 'static 'texture-id :index #x26 :page #xc))
(:num 0.0 6.0)
(:x (meters -0.4) (meters 0.8))
(:y (meters -0.1) (meters 0.4))
(:z (meters -0.4) (meters 0.8))
(:scale-x (meters 0.07) (meters 0.02))
(:scale-y :copy scale-x)
(:r 196.0 1 64.0)
(:g 196.0 1 64.0)
(:b 196.0 1 64.0)
(:a 64.0 64.0)
(:vel-x (meters -0.00083333335) (meters 0.0016666667))
(:vel-y (meters 0.005) (meters 0.006666667))
(:vel-z (meters -0.00083333335) (meters 0.0016666667))
(:fade-a -0.42666668)
(:accel-y (meters -0.00066666666) (meters 0.00033333333))
(:timer (seconds 1))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12 sp-cpuinfo-flag-14))
)
)
(defpartgroup group-slide-poof-san
:id 47
:duration (seconds 0.017)
:linger-duration (seconds 1.5)
:bounds (static-bspherem 0 0 0 2)
:parts ((sp-item 134) (sp-item 135))
)
(defpart 134
:init-specs ((:texture (new 'static 'texture-id :page #xc))
(:num 6.0 6.0)
(:scale-x (meters 0.6) (meters 0.6))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 96.0 32.0)
(:b 64.0 32.0)
(:a 16.0 16.0)
(:vel-y (meters 0.02) (meters 0.01))
(:scalevel-x (meters 0.0033333334))
(:rotvel-z (degrees -0.2) (degrees 0.4))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.17777778)
(:accel-y (meters -0.00006666667))
(:friction 0.94)
(:timer (seconds 0.6))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12 sp-cpuinfo-flag-14))
(:conerot-x (degrees 60) (degrees 30))
(:conerot-y (degrees 0) (degrees 360))
)
)
(defpart 135
:init-specs ((:texture (new 'static 'texture-id :index #x26 :page #xc))
(:num 0.0 8.0)
(:x (meters -0.4) (meters 0.8))
(:y (meters -0.1) (meters 0.4))
(:z (meters -0.4) (meters 0.8))
(:scale-x (meters 0.07) (meters 0.02))
(:scale-y :copy scale-x)
(:r 128.0 2 32.0)
(:g 64.0 1 64.0)
(:b 32.0 1 32.0)
(:a 64.0 64.0)
(:vel-y (meters 0.008333334) (meters 0.0033333334))
(:fade-a -0.42666668)
(:accel-y (meters -0.001) (meters 0.0005))
(:timer (seconds 1))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12 sp-cpuinfo-flag-14))
(:conerot-x (degrees 30) (degrees 50.000004))
(:conerot-y (degrees 0) (degrees 360))
(:conerot-radius (meters 0.5))
)
)
(defpartgroup group-slide-poof-drt
:id 48
:duration (seconds 0.017)
:linger-duration (seconds 1.5)
:bounds (static-bspherem 0 0 0 2)
:parts ((sp-item 136) (sp-item 137))
)
(defpart 136
:init-specs ((:texture (new 'static 'texture-id :page #xc))
(:num 6.0 6.0)
(:scale-x (meters 0.6) (meters 0.6))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 96.0 32.0)
(:b 64.0 32.0)
(:a 16.0 16.0)
(:vel-y (meters 0.02) (meters 0.01))
(:scalevel-x (meters 0.0033333334))
(:rotvel-z (degrees -0.2) (degrees 0.4))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.17777778)
(:accel-y (meters -0.00006666667))
(:friction 0.94)
(:timer (seconds 0.6))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12 sp-cpuinfo-flag-14))
(:conerot-x (degrees 60) (degrees 30))
(:conerot-y (degrees 0) (degrees 360))
)
)
(defpart 137
:init-specs ((:texture (new 'static 'texture-id :index #x26 :page #xc))
(:num 0.0 8.0)
(:x (meters -0.4) (meters 0.8))
(:y (meters -0.1) (meters 0.4))
(:z (meters -0.4) (meters 0.8))
(:scale-x (meters 0.07) (meters 0.02))
(:scale-y :copy scale-x)
(:r 128.0 2 32.0)
(:g 64.0 1 64.0)
(:b 32.0 1 32.0)
(:a 64.0 64.0)
(:vel-y (meters 0.008333334) (meters 0.0033333334))
(:fade-a -0.42666668)
(:accel-y (meters -0.001) (meters 0.0005))
(:timer (seconds 1))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12 sp-cpuinfo-flag-14))
(:conerot-x (degrees 30) (degrees 50.000004))
(:conerot-y (degrees 0) (degrees 360))
(:conerot-radius (meters 0.5))
)
)
(defpartgroup group-slide-poof-grs
:id 49
:duration (seconds 0.017)
:linger-duration (seconds 1.5)
:bounds (static-bspherem 0 0 0 2)
:parts ((sp-item 138) (sp-item 139))
)
(defpart 138
:init-specs ((:texture (new 'static 'texture-id :page #xc))
(:num 6.0 6.0)
(:scale-x (meters 0.6) (meters 0.6))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 64.0 32.0)
(:g 96.0 32.0)
(:b 0.0 32.0)
(:a 16.0 16.0)
(:vel-y (meters 0.02) (meters 0.01))
(:scalevel-x (meters 0.0033333334))
(:rotvel-z (degrees -0.2) (degrees 0.4))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.17777778)
(:accel-y (meters -0.00006666667))
(:friction 0.94)
(:timer (seconds 0.6))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12 sp-cpuinfo-flag-14))
(:conerot-x (degrees 60) (degrees 30))
(:conerot-y (degrees 0) (degrees 360))
)
)
(defpart 139
:init-specs ((:texture (new 'static 'texture-id :index #x2f :page #xc))
(:num 0.0 8.0)
(:x (meters -0.4) (meters 0.8))
(:y (meters -0.1) (meters 0.4))
(:z (meters -0.4) (meters 0.8))
(:scale-x (meters 0.15) (meters 0.35))
(:rot-z (degrees 0) (degrees 360))
(:scale-y (meters 0.15))
(:r 0.0 2.0 64.0)
(:g 64.0 2 64.0)
(:a 64.0 64.0)
(:vel-y (meters 0.008333334) (meters 0.0033333334))
(:rotvel-z (degrees -2.4) (degrees 4.8))
(:fade-a -0.42666668)
(:accel-y (meters -0.001) (meters 0.0005))
(:timer (seconds 1))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12 sp-cpuinfo-flag-14))
(:conerot-x (degrees 30) (degrees 50.000004))
(:conerot-y (degrees 0) (degrees 360))
(:conerot-radius (meters 0.5))
)
)
(defpartgroup group-slide-poof-stn
:id 50
:duration (seconds 0.017)
:linger-duration (seconds 1.5)
:bounds (static-bspherem 0 0 0 2)
:parts ((sp-item 140))
)
(defpart 140
:init-specs ((:texture (new 'static 'texture-id :page #xc))
(:num 6.0 6.0)
(:scale-x (meters 0.6) (meters 0.6))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 96.0 32.0)
(:g 96.0)
(:b 96.0)
(:a 16.0 16.0)
(:vel-y (meters 0.02) (meters 0.01))
(:scalevel-x (meters 0.0033333334))
(:rotvel-z (degrees -0.2) (degrees 0.4))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.17777778)
(:accel-y (meters -0.00006666667))
(:friction 0.94)
(:timer (seconds 0.6))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12 sp-cpuinfo-flag-14))
(:conerot-x (degrees 60) (degrees 30))
(:conerot-y (degrees 0) (degrees 360))
)
)
(defpartgroup group-slide-poof-pmt
:id 51
:duration (seconds 0.017)
:linger-duration (seconds 1.5)
:bounds (static-bspherem 0 0 0 2)
:parts ((sp-item 141))
)
(defpart 141
:init-specs ((:texture (new 'static 'texture-id :page #xc))
(:num 6.0 6.0)
(:scale-x (meters 0.6) (meters 0.6))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 128.0 64.0)
(:g 70.0 32.0)
(:b 40.0 20.0)
(:a 16.0 16.0)
(:vel-y (meters 0.02) (meters 0.01))
(:scalevel-x (meters 0.0033333334))
(:rotvel-z (degrees -0.2) (degrees 0.4))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.17777778)
(:accel-y (meters -0.00006666667))
(:friction 0.94)
(:timer (seconds 0.6))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12 sp-cpuinfo-flag-14))
(:conerot-x (degrees 60) (degrees 30))
(:conerot-y (degrees 0) (degrees 360))
)
)
(defpartgroup group-slide-poof-snw
:id 52
:duration (seconds 0.017)
:linger-duration (seconds 1.5)
:bounds (static-bspherem 0 0 0 2)
:parts ((sp-item 142))
)
(defpart 142
:init-specs ((:texture (new 'static 'texture-id :page #xc))
(:num 6.0 6.0)
(:scale-x (meters 0.6) (meters 0.6))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 196.0 1 64.0)
(:g 196.0 1 64.0)
(:b 196.0 1 64.0)
(:a 16.0 16.0)
(:vel-y (meters 0.02) (meters 0.01))
(:scalevel-x (meters 0.0033333334))
(:rotvel-z (degrees -0.2) (degrees 0.4))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.17777778)
(:accel-y (meters -0.00006666667))
(:friction 0.94)
(:timer (seconds 0.6))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12 sp-cpuinfo-flag-14))
(:conerot-x (degrees 60) (degrees 30))
(:conerot-y (degrees 0) (degrees 360))
)
)
(defpartgroup group-slide-poof-ice
:id 53
:duration (seconds 0.017)
:linger-duration (seconds 1.5)
:bounds (static-bspherem 0 0 0 2)
:parts ((sp-item 142))
)
(defpartgroup group-slide-poof-wod
:id 54
:duration (seconds 0.017)
:linger-duration (seconds 1.5)
:bounds (static-bspherem 0 0 0 2)
:parts ((sp-item 143))
)
(defpart 143
:init-specs ((:texture (new 'static 'texture-id :page #xc))
(:num 6.0 6.0)
(:scale-x (meters 0.6) (meters 0.6))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 96.0 32.0)
(:g 64.0)
(:b 0.0 32.0)
(:a 16.0 16.0)
(:vel-y (meters 0.02) (meters 0.01))
(:scalevel-x (meters 0.0033333334))
(:rotvel-z (degrees -0.2) (degrees 0.4))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.17777778)
(:accel-y (meters -0.00006666667))
(:friction 0.94)
(:timer (seconds 0.6))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12 sp-cpuinfo-flag-14))
(:conerot-x (degrees 60) (degrees 30))
(:conerot-y (degrees 0) (degrees 360))
)
)
(defpartgroup group-slide-poof-cwd
:id 55
:duration (seconds 0.017)
:linger-duration (seconds 2.5)
:bounds (static-bspherem 0 0 0 2)
:parts ((sp-item 143))
)
(defpart 144
:init-specs ((:texture (new 'static 'texture-id :index #x26 :page #xc))
(:num 0.0 8.0)
(:x (meters -0.4) (meters 0.8))
(:y (meters -0.1) (meters 0.4))
(:z (meters -0.4) (meters 0.8))
(:scale-x (meters 0.07) (meters 0.02))
(:scale-y :copy scale-x)
(:r 128.0 2 32.0)
(:g 64.0 1 64.0)
(:b 32.0 1 32.0)
(:a 64.0 64.0)
(:fade-a -0.42666668)
(:accel-y (meters -0.0013333333) (meters 0.00083333335))
(:timer (seconds 1))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12 sp-cpuinfo-flag-14))
)
)
(defpart 145
:init-specs ((:texture (new 'static 'texture-id :index #x26 :page #xc))
(:num 0.0 8.0)
(:x (meters -0.4) (meters 0.8))
(:y (meters -0.1) (meters 0.4))
(:z (meters -0.4) (meters 0.8))
(:scale-x (meters 0.07) (meters 0.02))
(:scale-y :copy scale-x)
(:r 128.0 2 32.0)
(:g 64.0 1 64.0)
(:b 32.0 1 32.0)
(:a 64.0 64.0)
(:fade-a -0.42666668)
(:accel-y (meters -0.0013333333) (meters 0.00083333335))
(:timer (seconds 1))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12 sp-cpuinfo-flag-14))
)
)
(defpart 146
:init-specs ((:texture (new 'static 'texture-id :index #x26 :page #xc))
(:num 0.0 8.0)
(:x (meters -0.4) (meters 0.8))
(:y (meters -0.1) (meters 0.4))
(:z (meters -0.4) (meters 0.8))
(:scale-x (meters 0.07) (meters 0.02))
(:scale-y :copy scale-x)
(:r 196.0 1 64.0)
(:g 196.0 1 64.0)
(:b 196.0 1 64.0)
(:a 64.0 64.0)
(:fade-a -0.42666668)
(:accel-y (meters -0.0013333333) (meters 0.00083333335))
(:timer (seconds 1))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12 sp-cpuinfo-flag-14))
)
)
(defpart 147
:init-specs ((:texture (new 'static 'texture-id :index #x2f :page #xc))
(:num 0.0 8.0)
(:x (meters -0.4) (meters 0.8))
(:y (meters -0.1) (meters 0.4))
(:z (meters -0.4) (meters 0.8))
(:scale-x (meters 0.15) (meters 0.35))
(:rot-z (degrees 0) (degrees 360))
(:scale-y (meters 0.15))
(:r 0.0 2.0 64.0)
(:g 64.0 2 64.0)
(:a 64.0 64.0)
(:rotvel-z (degrees -2.4) (degrees 4.8))
(:fade-a -0.42666668)
(:accel-y (meters -0.0013333333) (meters 0.00083333335))
(:timer (seconds 1))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12 sp-cpuinfo-flag-14))
)
)
(defpart 148
)
(defpart 149
)
(defpart 150
)
(defpart 151
)
(defpartgroup group-dark-eco-death
:id 56
:duration (seconds 2)
:flags (use-local-clock)
:bounds (static-bspherem 0 0 0 12)
:parts ((sp-item 154 :fade-after (meters 100) :period (seconds 2) :length (seconds 0.017) :binding 152)
(sp-item 152 :flags (start-dead launch-asap) :binding 153)
(sp-item 153 :fade-after (meters 80) :falloff-to (meters 100) :flags (start-dead))
(sp-item 152 :flags (start-dead launch-asap) :binding 153)
(sp-item 153 :fade-after (meters 80) :falloff-to (meters 100) :flags (start-dead))
(sp-item 152 :flags (start-dead launch-asap) :binding 153)
(sp-item 153 :fade-after (meters 80) :falloff-to (meters 100) :flags (start-dead))
(sp-item 152 :flags (start-dead launch-asap) :binding 153)
(sp-item 153 :fade-after (meters 80) :falloff-to (meters 100) :flags (start-dead))
(sp-item 152 :flags (start-dead launch-asap) :binding 153)
(sp-item 153 :fade-after (meters 80) :falloff-to (meters 100) :flags (start-dead))
(sp-item 152 :flags (start-dead launch-asap) :binding 153)
(sp-item 153 :fade-after (meters 80) :falloff-to (meters 100) :flags (start-dead))
(sp-item 152 :flags (start-dead launch-asap) :binding 153)
(sp-item 153 :fade-after (meters 80) :falloff-to (meters 100) :flags (start-dead))
(sp-item 152 :flags (start-dead launch-asap) :binding 153)
(sp-item 153 :fade-after (meters 80) :falloff-to (meters 100) :flags (start-dead))
(sp-item 152 :flags (start-dead launch-asap) :binding 153)
(sp-item 153 :fade-after (meters 80) :falloff-to (meters 100) :flags (start-dead))
(sp-item 152 :flags (start-dead launch-asap) :binding 153)
(sp-item 153 :fade-after (meters 80) :falloff-to (meters 100) :flags (start-dead))
(sp-item 152 :flags (start-dead launch-asap) :binding 153)
(sp-item 153 :fade-after (meters 80) :falloff-to (meters 100) :flags (start-dead))
(sp-item 152 :flags (start-dead launch-asap) :binding 153)
(sp-item 153 :fade-after (meters 80) :falloff-to (meters 100) :flags (start-dead))
(sp-item 152 :flags (start-dead launch-asap) :binding 153)
(sp-item 153 :fade-after (meters 80) :falloff-to (meters 100) :flags (start-dead))
(sp-item 152 :flags (start-dead launch-asap) :binding 153)
(sp-item 153 :fade-after (meters 80) :falloff-to (meters 100) :flags (start-dead))
(sp-item 152 :flags (start-dead launch-asap) :binding 153)
(sp-item 153 :fade-after (meters 80) :falloff-to (meters 100) :flags (start-dead))
(sp-item 152 :flags (start-dead launch-asap) :binding 153)
(sp-item 153 :fade-after (meters 80) :falloff-to (meters 100) :flags (start-dead))
(sp-item 155 :period (seconds 2) :length (seconds 0.017))
(sp-item 156 :fade-after (meters 80) :falloff-to (meters 80) :period (seconds 2) :length (seconds 0.135))
(sp-item 157 :period (seconds 2) :length (seconds 0.067))
)
)
(defpartgroup group-lava-death
:id 57
:duration (seconds 0.25)
:linger-duration (seconds 2)
:bounds (static-bspherem 0 0 0 2)
:parts ((sp-item 158) (sp-item 159) (sp-item 160) (sp-item 161))
)
(defpartgroup group-explode-death
:id 58
:duration (seconds 0.25)
:linger-duration (seconds 2)
:bounds (static-bspherem 0 0 0 2)
:parts ((sp-item 159) (sp-item 160))
)
(defpartgroup group-burn-death
:id 59
:duration (seconds 0.5)
:linger-duration (seconds 2)
:bounds (static-bspherem 0 0 0 2)
:parts ((sp-item 158))
)
(defpart 161
:init-specs ((:texture (new 'static 'texture-id :index #xc9 :page #xc))
(:num 8.0 16.0)
(:scale-x (meters 0.2) (meters 0.5))
(:scale-y :copy scale-x)
(:r 256.0)
(:g 0.0 128.0)
(:a 128.0 128.0)
(:vel-y (meters 0.013333334) (meters 0.04))
(:scalevel-x (meters -0.0023333333))
(:scalevel-y :copy scalevel-x)
(:accel-y (meters -0.0013333333))
(:timer (seconds 1.2))
(:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14))
(:conerot-x (degrees 0) (degrees 60))
(:conerot-y (degrees 0) (degrees 360))
(:conerot-radius (meters 1))
)
)
(defpart 158
:init-specs ((:texture (new 'static 'texture-id :page #xc))
(:num 5.0)
(:x (meters 0) (meters 0.5))
(:y (meters 0) (meters 3))
(:scale-x (meters 1) (meters 2))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 0.0 128.0)
(:b 0.0)
(:a 32.0 64.0)
(:vel-y (meters 0.053333335) (meters 0.053333335))
(:scalevel-x (meters 0.023529412))
(:rotvel-z (degrees -0.6) (degrees 1.2))
(:scalevel-y :copy scalevel-x)
(:fade-a -1.5058824)
(:friction 0.98)
(:timer (seconds 0.27))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14))
(:conerot-x (degrees 0) (degrees 30))
(:conerot-y (degrees 0) (degrees 360))
(:rotate-y (degrees 0) (degrees 360))
)
)
(defpart 159
:init-specs ((:texture (new 'static 'texture-id :page #xc))
(:num 32.0)
(:x (meters 0.5) (meters 2))
(:y (meters 0.5) (meters 0.5))
(:scale-x (meters 1) (meters 2))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 0.0 128.0)
(:b 0.0)
(:a 32.0 64.0)
(:vel-y (meters 0) (meters 0.0016666667))
(:scalevel-x (meters 0.04444444))
(:rotvel-z (degrees -0.6) (degrees 1.2))
(:scalevel-y :copy scalevel-x)
(:fade-a -2.8444443)
(:friction 0.98)
(:timer (seconds 0.14))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14))
(:conerot-x (degrees 90))
(:conerot-y (degrees 0) (degrees 360))
(:rotate-y (degrees 0) (degrees 360))
)
)
(defpart 160
:init-specs ((:texture (new 'static 'texture-id :page #xc))
(:num 8.0)
(:x (meters -1) (meters 2))
(:y (meters 0) (meters 3))
(:z (meters -1) (meters 2))
(:scale-x (meters 2) (meters 3))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 255.0)
(:b 255.0)
(:a 0.0)
(:vel-y (meters 0.013333334) (meters 0.013333334))
(:scalevel-x (meters 0.008888889))
(:rotvel-z (degrees -0.6) (degrees 1.2))
(:scalevel-y :copy scalevel-x)
(:fade-r -0.56666666)
(:fade-g -0.56666666)
(:fade-b -0.56666666)
(:fade-a 0.15)
(:friction 0.97)
(:timer (seconds 1.5))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-14))
(:next-time (seconds 0.27) (seconds 0.267))
(:next-launcher 162)
(:conerot-x (degrees 0) (degrees 30))
(:conerot-y (degrees 0) (degrees 360))
)
)
(defpart 162
:init-specs ((:fade-a -0.08))
)
(defpart 163
:init-specs ((:texture (new 'static 'texture-id :page #xc))
(:num 1.0)
(:scale-x (meters 1.5) (meters 2))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 32.0 32.0)
(:g 32.0 32.0)
(:b 32.0 32.0)
(:a 0.0)
(:vel-y (meters 0.0033333334) (meters 0.006666667))
(:scalevel-x (meters 0.0033333334) (meters 0.0033333334))
(:rotvel-z (degrees -0.2) (degrees 0.4))
(:scalevel-y :copy scalevel-x)
(:fade-a 0.85333335)
(:friction 0.98)
(:timer (seconds 1.5))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-14))
(:next-time (seconds 0.05) (seconds 0.197))
(:next-launcher 164)
)
)
(defpart 164
:init-specs ((:fade-a -0.28444445))
)
(defbehavior process-drawable-burn-effect target ((arg0 time-frame))
(sound-play "get-burned")
(let ((s5-1 (new 'stack 'rgbaf))
(s3-0 (current-time))
(s4-1 (-> self parent))
)
(set! (-> s5-1 quad) (-> (the-as process-drawable (-> s4-1 0)) draw color-mult quad))
(let ((s2-1 (vector-float*! (the-as vector (new 'stack 'rgbaf)) (the-as vector s5-1) 0.0)))
(while (not (time-elapsed? s3-0 arg0))
(let ((v1-8 (- (current-time) s3-0)))
(if (< v1-8 (the-as time-frame (/ arg0 2)))
(vector-lerp!
(-> (the-as process-drawable (-> s4-1 0)) draw color-mult)
s5-1
s2-1
(/ (the float v1-8) (the float arg0))
)
(vector-lerp!
(-> (the-as process-drawable (-> s4-1 0)) draw color-mult)
s5-1
s2-1
(- 1.0 (/ (the float v1-8) (the float arg0)))
)
)
)
(let ((v1-13 (process-drawable-random-point!
(the-as process-drawable (ppointer->process s4-1))
(new 'stack-no-clear 'vector)
)
)
(t9-7 sp-launch-particles-var)
(a0-18 *sp-particle-system-2d*)
(a1-7 (-> *part-id-table* 163))
(a2-3 *launch-matrix*)
)
(set! (-> a2-3 trans quad) (-> v1-13 quad))
(t9-7 a0-18 a1-7 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0)
)
(suspend)
0
)
)
(let ((v0-8 (-> (the-as process-drawable (-> s4-1 0)) draw color-mult)))
(set! (-> v0-8 quad) (-> s5-1 quad))
v0-8
)
)
)
(defpart 165
:init-specs ((:texture (new 'static 'texture-id :index #x2e :page #xc))
(:birth-func 'birth-func-target-orient)
(:num 1.0)
(:y (meters 0.02))
(:scale-x (meters 0.5) (meters 0.5))
(:scale-y :copy scale-x)
(:r 110.0 32.0)
(:g 128.0 32.0)
(:b 96.0 32.0)
(:a 8.0 40.0)
(:scalevel-x (meters 0.0033333334) (meters 0.0033333334))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.2)
(:timer (seconds 0.8))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14))
(:userdata -8192.0)
)
)
(defpart 166
:init-specs ((:texture (new 'static 'texture-id :index #xbb :page #xc))
(:num 1.0)
(:scale-x (meters 0.5) (meters 0.25))
(:rot-x (degrees 11.25))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 64.0 64.0)
(:g 128.0 64.0)
(:b 255.0)
(:a 32.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 4096.0)
(:next-time (seconds 0.017))
(:next-launcher 167)
)
)
(defpart 167
:init-specs ((:scale-x (meters 0.2) (meters 0.25))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 64.0 64.0)
(:g 128.0 64.0)
(:b 255.0)
(:a 24.0 32.0)
(:next-time (seconds 0.017))
(:next-launcher 167)
)
)
(defpartgroup group-lightning-glow
:id 60
:bounds (static-bspherem 0 0 0 1)
:parts ((sp-item 168 :flags (bit6)) (sp-item 169 :flags (bit6)))
)
(defpart 168
:init-specs ((:texture (new 'static 'texture-id :index #xbb :page #xc))
(:num 1.0)
(:scale-x (meters 4) (meters 4))
(:rot-x (degrees 11.25))
(:rot-z (degrees 0) (degrees 3600))
(:scale-y :copy scale-x)
(:r 0.0 32.0)
(:g 32.0 96.0)
(:b 128.0 128.0)
(:a 4.0 8.0)
(:timer (seconds 0.035))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 16384.0)
(:conerot-x (degrees 0) (degrees 3600))
(:conerot-y (degrees 0) (degrees 3600))
(:conerot-radius (meters 0) (meters 2))
)
)
(defpart 169
:init-specs ((:texture (new 'static 'texture-id :index #xbb :page #xc))
(:num 1.0)
(:scale-x (meters 1) (meters 2))
(:rot-x (degrees 11.25))
(:rot-z (degrees 0) (degrees 3600))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 128.0 128.0)
(:b 255.0)
(:a 6.0 12.0)
(:timer (seconds 0.035))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 16384.0)
(:conerot-x (degrees 0) (degrees 3600))
(:conerot-y (degrees 0) (degrees 3600))
(:conerot-radius (meters 0) (meters 1))
)
)
(defpartgroup group-lightning-green-glow
:id 61
:bounds (static-bspherem 0 0 0 1)
:parts ((sp-item 170 :flags (bit6)) (sp-item 171 :flags (bit6)))
)
(defpart 170
:init-specs ((:texture (new 'static 'texture-id :index #xbb :page #xc))
(:num 1.0)
(:scale-x (meters 4) (meters 4))
(:rot-x (degrees 11.25))
(:rot-z (degrees 0) (degrees 3600))
(:scale-y :copy scale-x)
(:r 0.0 32.0)
(:g 128.0 128.0)
(:b 32.0 96.0)
(:a 4.0 8.0)
(:timer (seconds 0.035))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 16384.0)
(:conerot-x (degrees 0) (degrees 3600))
(:conerot-y (degrees 0) (degrees 3600))
(:conerot-radius (meters 0) (meters 2))
)
)
(defpart 171
:init-specs ((:texture (new 'static 'texture-id :index #xbb :page #xc))
(:num 1.0)
(:scale-x (meters 1) (meters 2))
(:rot-x (degrees 11.25))
(:rot-z (degrees 0) (degrees 3600))
(:scale-y :copy scale-x)
(:r 0.0 32.0)
(:g 128.0 128.0)
(:b 32.0 96.0)
(:a 4.0 8.0)
(:timer (seconds 0.035))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 16384.0)
(:conerot-x (degrees 0) (degrees 3600))
(:conerot-y (degrees 0) (degrees 3600))
(:conerot-radius (meters 0) (meters 1))
)
)
(defpartgroup group-lightning-red-glow
:id 62
:bounds (static-bspherem 0 0 0 1)
:parts ((sp-item 172 :flags (bit6)) (sp-item 173 :flags (bit6)))
)
(defpart 172
:init-specs ((:texture (new 'static 'texture-id :index #xbb :page #xc))
(:num 1.0)
(:scale-x (meters 4) (meters 4))
(:rot-x (degrees 11.25))
(:rot-z (degrees 0) (degrees 3600))
(:scale-y :copy scale-x)
(:r 128.0 128.0)
(:g 32.0 96.0)
(:b 0.0 32.0)
(:a 4.0 8.0)
(:timer (seconds 0.035))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 16384.0)
(:conerot-x (degrees 0) (degrees 3600))
(:conerot-y (degrees 0) (degrees 3600))
(:conerot-radius (meters 0) (meters 2))
)
)
(defpart 173
:init-specs ((:texture (new 'static 'texture-id :index #xbb :page #xc))
(:num 1.0)
(:scale-x (meters 1) (meters 2))
(:rot-x (degrees 11.25))
(:rot-z (degrees 0) (degrees 3600))
(:scale-y :copy scale-x)
(:r 128.0 128.0)
(:g 32.0 96.0)
(:b 0.0 32.0)
(:a 4.0 8.0)
(:timer (seconds 0.035))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 16384.0)
(:conerot-x (degrees 0) (degrees 3600))
(:conerot-y (degrees 0) (degrees 3600))
(:conerot-radius (meters 0) (meters 1))
)
)
(defun lightning-probe-callback ((arg0 lightning-tracker))
(let ((v1-1 (+ (-> arg0 user-time 0) 1)))
(set! (-> arg0 user-time 0) v1-1)
(when (= v1-1 (seconds 0.007))
(let* ((v1-2 (rand-vu-int-range 64 128))
(v0-3 (logior (logior (logior #x800000 v1-2) (* v1-2 256)) (shl (rand-vu-int-range 32 64) 24)))
(v1-6 (-> arg0 lightning state))
)
(set! (-> v1-6 start-color) (the-as rgba v0-3))
(set! (-> v1-6 end-color) (the-as rgba v0-3))
)
)
)
(none)
)
(set! (-> *lightning-spec-id-table* 1) (new 'static 'lightning-spec
:name "lightning-shock"
:flags (lightning-spec-flags lsf0)
:start-color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80)
:end-color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80)
:fade-to-color (new 'static 'rgba :r #xbf :b #x8f :a #x5)
:fade-start-factor 0.2
:texture (new 'static 'texture-id :index #x83 :page #xc)
:reduction 0.42
:num-points 16
:box-size 16384.0
:merge-factor 0.5
:merge-count 2
:radius 2048.0
:duration 30.0
:sound (static-sound-spec "shock")
)
)
(set! (-> *lightning-spec-id-table* 2) (new 'static 'lightning-spec
:name "lightning-shock-dim"
:flags (lightning-spec-flags lsf0)
:start-color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x20)
:end-color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x20)
:fade-to-color (new 'static 'rgba :r #xbf :b #x8f :a #x5)
:fade-start-factor 0.2
:texture (new 'static 'texture-id :index #x83 :page #xc)
:reduction 0.42
:num-points 16
:box-size 16384.0
:merge-factor 0.5
:merge-count 2
:radius 2048.0
:duration 30.0
:sound (static-sound-spec "shock")
)
)
(set! (-> *lightning-spec-id-table* 3) (new 'static 'lightning-spec
:name "lightning-shock-red"
:flags (lightning-spec-flags lsf0)
:start-color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80)
:end-color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80)
:fade-to-color (new 'static 'rgba :r #xbf :b #x8f :a #x5)
:fade-start-factor 0.2
:texture (new 'static 'texture-id :index #x86 :page #xc)
:reduction 0.42
:num-points 16
:box-size 16384.0
:merge-factor 0.5
:merge-count 2
:radius 2048.0
:duration 30.0
:sound (static-sound-spec "shock")
)
)
(set! (-> *lightning-spec-id-table* 4) (new 'static 'lightning-spec
:name "lightning-shock-green"
:flags (lightning-spec-flags lsf0)
:start-color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80)
:end-color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80)
:fade-to-color (new 'static 'rgba :r #xbf :b #x8f :a #x5)
:fade-start-factor 0.2
:texture (new 'static 'texture-id :page #xd82)
:reduction 0.42
:num-points 16
:box-size 16384.0
:merge-factor 0.5
:merge-count 2
:radius 2048.0
:duration 30.0
:sound (static-sound-spec "shock")
)
)
;; WARN: Return type mismatch int vs object.
(defun process-drawable-shock-effect ((arg0 process-drawable)
(arg1 lightning-spec)
(arg2 (function lightning-tracker none))
(arg3 sparticle-launcher)
(arg4 int)
(arg5 int)
(arg6 float)
)
(local-vars
(sv-624 (pointer lightning-tracker))
(sv-640 float)
(sv-656 int)
(sv-672 matrix)
(sv-688 collide-query)
(sv-704 symbol)
(sv-720 vector)
(sv-736 int)
(sv-752 lightning-tracker)
)
(set! sv-640 arg6)
(let ((s5-0 *lightning-probe-vars*))
(if (= arg4 256)
(set! sv-656 arg4)
(set! sv-656 (rand-vu-int-range 3 (/ (+ (-> arg0 node-list length) -1) 2)))
)
(set! sv-672 (new 'stack-no-clear 'matrix))
(set! sv-688 (new 'stack-no-clear 'collide-query))
(set! sv-704 (the-as symbol #f))
(when (nonzero? arg4)
(set! sv-656 arg4)
sv-656
)
(if (= arg4 256)
(set! (-> sv-688 start-pos quad) (-> arg0 root trans quad))
(vector<-cspace! (-> sv-688 start-pos) (-> arg0 node-list data sv-656))
)
(set! sv-720 (-> sv-688 move-dist))
(set! (-> sv-720 x) (rand-vu-float-range 0.0 65536.0))
(set! (-> sv-720 y) (rand-vu-float-range 0.0 65536.0))
(set! (-> sv-720 z) (rand-vu-float-range 0.0 65536.0))
(set! (-> sv-720 w) 1.0)
(matrix-rotate-zyx! sv-672 (-> sv-688 move-dist))
(set! sv-736 6)
(while (nonzero? sv-736)
(set! sv-736 (+ sv-736 -1))
(vector-rotate*! (-> sv-688 move-dist) (-> s5-0 probe-dirs sv-736) sv-672)
(vector-normalize! (-> sv-688 move-dist) sv-640)
(let ((v1-29 sv-688))
(set! (-> v1-29 radius) 409.6)
(set! (-> v1-29 collide-with) (collide-spec backgnd crate obstacle hit-by-others-list pusher))
(set! (-> v1-29 ignore-process0) arg0)
(set! (-> v1-29 ignore-process1) #f)
(set! (-> v1-29 ignore-pat) (new 'static 'pat-surface :noentity #x1 :nojak #x1 :probe #x1 :noendlessfall #x1))
(set! (-> v1-29 action-mask) (collide-action solid))
)
(when (>= (fill-and-probe-using-line-sphere *collide-cache* sv-688) 0.0)
(set-time! (-> s5-0 last-valid-time))
(set! (-> s5-0 src-joint-index) (the-as uint sv-656))
(set! (-> s5-0 end-pos quad) (-> sv-688 best-other-tri intersect quad))
(when (< 8192.0 (vector-vector-distance (-> s5-0 end-pos) (-> sv-688 start-pos)))
(set! sv-704 #t)
(goto cfg-15)
)
)
)
(label cfg-15)
(when sv-704
(set! sv-752 (the-as lightning-tracker (get-process *default-dead-pool* lightning-tracker #x4000)))
(set! sv-624
(when sv-752
(let ((t9-11 (method-of-type lightning-tracker activate)))
(t9-11 sv-752 arg0 (symbol->string (-> lightning-tracker symbol)) (the-as pointer #x70004000))
)
(run-now-in-process
sv-752
lightning-tracker-init
arg1
arg5
arg2
arg0
(if (= arg4 256)
(-> arg0 root trans)
(-> s5-0 src-joint-index)
)
(-> s5-0 end-pos)
)
(-> sv-752 ppointer)
)
)
(when sv-624
(set! (-> sv-624 0 user-time 0) 0)
(when arg3
(let ((v1-62 (get-field-spec-by-id arg3 (sp-field-id spt-timer))))
(if v1-62
(set! (-> v1-62 initial-valuef) (the-as float (-> sv-624 0 duration)))
)
)
(let ((t9-14 sp-launch-particles-var)
(a0-29 *sp-particle-system-2d*)
(a2-7 *launch-matrix*)
)
(set! (-> a2-7 trans quad) (-> s5-0 end-pos quad))
(t9-14 a0-29 arg3 a2-7 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0)
)
)
)
)
)
0
)
(defun process-drawable-shock-wall-effect ((arg0 process-drawable)
(arg1 lightning-spec)
(arg2 (function lightning-tracker none))
(arg3 sparticle-launcher)
)
;; this function was stubbed out in the original game, leaving nothing but completely broken and unusable code behind.
#f)
(defun process-drawable2-shock-effect ((arg0 process-drawable)
(arg1 process-drawable)
(arg2 lightning-spec)
(arg3 (function lightning-tracker none))
(arg4 sparticle-launcher)
)
(local-vars (sv-16 int) (sv-64 vector) (sv-68 vector) (sv-72 (pointer lightning-tracker)))
(when (and (nonzero? (-> arg0 skel)) (nonzero? (-> arg1 skel)))
(let* ((v1-7 (-> arg0 draw lod-set lod (-> arg0 draw lod-set max-lod) geo num-joints))
(s0-0 (-> arg1 draw lod-set lod (-> arg1 draw lod-set max-lod) geo num-joints))
(s1-0 (rand-vu-int-range 3 (+ v1-7 -1)))
)
(set! sv-16 (rand-vu-int-range 3 (+ s0-0 -1)))
(set! sv-64 (vector<-cspace! (new 'stack-no-clear 'vector) (-> arg0 node-list data s1-0)))
(set! sv-68 (vector<-cspace! (new 'stack-no-clear 'vector) (-> arg1 node-list data sv-16)))
(let ((s0-1 (the-as lightning-tracker (get-process *default-dead-pool* lightning-tracker #x4000))))
(set! sv-72 (when s0-1
(let ((t9-5 (method-of-type lightning-tracker activate)))
(t9-5 s0-1 arg1 (symbol->string (-> lightning-tracker symbol)) (the-as pointer #x70004000))
)
(run-now-in-process s0-1 lightning-tracker-init arg2 0 arg3 arg0 s1-0 sv-16)
(-> s0-1 ppointer)
)
)
)
)
(when (and arg4 sv-72)
(let ((v1-21 (get-field-spec-by-id arg4 (sp-field-id spt-timer))))
(if v1-21
(set! (-> v1-21 initial-valuef) (the-as float (-> sv-72 0 duration)))
)
)
(let ((t9-8 sp-launch-particles-var)
(a0-20 *sp-particle-system-2d*)
(a1-16 arg4)
(a2-4 *launch-matrix*)
)
(set! (-> a2-4 trans quad) (-> sv-64 quad))
(t9-8 a0-20 a1-16 a2-4 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0)
)
(let ((t9-9 sp-launch-particles-var)
(a0-21 *sp-particle-system-2d*)
(a2-5 *launch-matrix*)
)
(set! (-> a2-5 trans quad) (-> sv-68 quad))
(t9-9 a0-21 arg4 a2-5 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0)
)
)
)
0
(none)
)
(set! (-> *lightning-spec-id-table* 5) (new 'static 'lightning-spec
:name "lightning-shock-skel"
:flags (lightning-spec-flags lsf0)
:rand-func #x2
:start-color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80)
:end-color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80)
:fade-to-color (new 'static 'rgba :r #xbf :b #x8f :a #x5)
:fade-start-factor 0.2
:fade-time 120.0
:texture (new 'static 'texture-id :index #x83 :page #xc)
:reduction 0.5
:num-points 32
:box-size 6144.0
:merge-factor 0.5
:merge-count 2
:radius 2048.0
:duration 30.0
:sound #f
)
)
;; WARN: new jak 2 until loop case, check carefully
;; WARN: new jak 2 until loop case, check carefully
(defun process-drawable-shock-skel-effect ((arg0 process-drawable)
(arg1 lightning-spec)
(arg2 (function lightning-tracker none))
(arg3 sparticle-launcher)
(arg4 float)
(arg5 int)
(arg6 int)
)
(local-vars
(sv-416 int)
(sv-432 vector)
(sv-448 vector)
(sv-464 vector)
(sv-480 quaternion)
(sv-496 vector)
(sv-512 matrix)
(sv-528 vector)
(sv-544 vector)
(sv-560 process)
(sv-576 int)
(sv-592 (function lightning-control int vector none))
(sv-608 lightning-control)
(sv-624 int)
(sv-640 vector)
)
(rlet ((acc :class vf)
(vf0 :class vf)
(vf4 :class vf)
(vf5 :class vf)
(vf6 :class vf)
(vf7 :class vf)
)
(init-vf0-vector)
(let ((s1-0 (-> arg0 draw lod-set lod (-> arg0 draw cur-lod) geo num-joints)))
(set! sv-416 (rand-vu-int-range 4 (+ s1-0 -1)))
(let ((s1-1 (rand-vu-int-range 4 (+ s1-0 -1))))
(when (!= arg5 -1)
(set! sv-416 arg5)
sv-416
)
(if (!= arg6 -1)
(set! s1-1 arg6)
)
(-> arg0 node-list data sv-416)
(let ((s0-1 (-> arg0 node-list data sv-416))
(a0-9 (-> arg0 node-list data s1-1))
(v1-18 #t)
)
(until #f
(let ((a1-3 a0-9))
(until #f
(cond
((and (-> a1-3 joint) (>= (-> a1-3 joint number) 2))
(when (= s0-1 a1-3)
#t
(goto cfg-24)
)
(set! a1-3 (-> a1-3 parent))
)
(else
(set! s0-1 (-> s0-1 parent))
(when (or (not (-> s0-1 joint)) (< (-> s0-1 joint number) 2))
(set! v1-18 #f)
(goto cfg-24)
)
(goto cfg-23)
)
)
)
)
#f
(label cfg-23)
)
#f
(label cfg-24)
(when v1-18
;; og:preserve-this stack array
;; (let ((s5-1 (the-as (array cspace) (new 'stack 'array cspace 32))))
(let ((s5-1 (new 'static 'boxed-array :type cspace :length 0 :allocated-length 32)))
(let ((v1-21 0))
(set! (-> s5-1 length) 0)
(let ((a1-12 (-> arg0 node-list data sv-416))
(a0-19 (-> arg0 node-list data s1-1))
)
(set! (-> s5-1 (-> s5-1 length)) a1-12)
(+! (-> s5-1 length) 1)
(while (!= a1-12 s0-1)
(set! a1-12 (-> a1-12 parent))
(set! (-> s5-1 (-> s5-1 length)) a1-12)
(+! (-> s5-1 length) 1)
)
(while (!= a0-19 s0-1)
(set! a0-19 (-> a0-19 parent))
(+! (-> s5-1 length) 1)
)
)
(let ((a0-23 (-> arg0 node-list data s1-1)))
(while (!= a0-23 s0-1)
(let ((a1-18 (-> a0-23 parent)))
(+! v1-21 1)
(set! (-> s5-1 (- (-> s5-1 length) v1-21)) a0-23)
(set! a0-23 a1-18)
)
)
)
)
(when (< 2 (-> s5-1 length))
(let ((s1-2 (new 'stack-no-clear 'vector)))
(set! sv-512 (new 'stack-no-clear 'matrix))
(let ((s0-2 (new 'stack-no-clear 'vector)))
(set! sv-432 (new 'stack-no-clear 'vector))
(set! sv-448 (new 'stack-no-clear 'vector))
(set! sv-464 (new 'stack-no-clear 'vector))
(set! sv-480 (new 'stack-no-clear 'quaternion))
(set! sv-496 s1-2)
(set! (-> sv-496 x) (rand-vu-float-range 0.0 65536.0))
(set! (-> sv-496 y) (rand-vu-float-range 0.0 65536.0))
(set! (-> sv-496 z) (rand-vu-float-range 0.0 65536.0))
(set! (-> sv-496 w) 1.0)
(matrix-rotate-zyx! sv-512 s1-2)
(vector-rotate*! sv-448 *up-vector* sv-512)
(vector<-cspace! sv-432 (-> s5-1 0))
(set! sv-544 s0-2)
(set! sv-528 (vector<-cspace! (new 'stack-no-clear 'vector) (-> s5-1 0)))
(let ((v0-10 (vector<-cspace! (new 'stack-no-clear 'vector) (-> s5-1 1))))
(.lvf vf4 (&-> sv-528 quad))
(.lvf vf5 (&-> v0-10 quad))
)
(.mov.vf vf6 vf0 :mask #b1000)
(.sub.vf vf6 vf4 vf5 :mask #b111)
(.svf (&-> sv-544 quad) vf6)
(vector-normalize! s0-2 1.0)
(set! sv-560 (get-process *default-dead-pool* lightning-tracker #x4000))
(let ((a0-35 (when sv-560
(let ((t9-13 (method-of-type lightning-tracker activate)))
(t9-13
(the-as lightning-tracker sv-560)
arg0
(symbol->string (-> lightning-tracker symbol))
(the-as pointer #x70004000)
)
)
(run-now-in-process sv-560 lightning-tracker-init arg1 0 arg2 arg0 #f #f)
(-> sv-560 ppointer)
)
)
)
(when a0-35
(set! (-> (the-as lightning-tracker (-> a0-35 0)) user-time 0) 0)
(let ((s4-1 (-> (the-as lightning-tracker (-> a0-35 0)) lightning))
(s3-1 (new 'stack-no-clear 'vector))
(s2-1 (new 'stack-no-clear 'vector))
)
(set! (-> s4-1 state points-to-draw) 0)
(let ((a1-32 s3-1))
(let ((v1-46 sv-432))
(let ((a0-38 sv-448))
(let ((a2-32 arg4))
(.mov vf7 a2-32)
)
(.lvf vf5 (&-> a0-38 quad))
)
(.lvf vf4 (&-> v1-46 quad))
)
(.add.x.vf vf6 vf0 vf0 :mask #b1000)
(.mul.x.vf acc vf5 vf7 :mask #b111)
(.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111)
(.svf (&-> a1-32 quad) vf6)
)
(set-point! s4-1 (-> s4-1 state points-to-draw) s3-1)
(+! (-> s4-1 state points-to-draw) 1)
(set! sv-576 0)
(while (< sv-576 (+ (-> s5-1 length) -1))
(set! sv-640 (new 'stack-no-clear 'vector))
(vector<-cspace! sv-640 (-> s5-1 (+ sv-576 1)))
(vector-! sv-464 sv-640 sv-432)
(vector-normalize! sv-464 1.0)
(quaternion-from-two-vectors! sv-480 s0-2 sv-464)
(vector-orient-by-quat! s1-2 sv-448 sv-480)
(set! (-> s1-2 quad) (-> (the-as (pointer uint128) sv-448) 0))
(let ((a1-40 s2-1))
(let ((v1-58 sv-640))
(let ((a0-47 s1-2))
(let ((a2-36 arg4))
(.mov vf7 a2-36)
)
(.lvf vf5 (&-> a0-47 quad))
)
(.lvf vf4 (&-> v1-58 quad))
)
(.add.x.vf vf6 vf0 vf0 :mask #b1000)
(.mul.x.vf acc vf5 vf7 :mask #b111)
(.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111)
(.svf (&-> a1-40 quad) vf6)
)
(set! sv-608 s4-1)
(set! sv-592 (method-of-object sv-608 set-point!))
(set! sv-624 (-> s4-1 state points-to-draw))
(let ((a2-38 (vector-average! (new 'stack-no-clear 'vector) s2-1 s3-1)))
(sv-592 sv-608 sv-624 a2-38)
)
(+! (-> s4-1 state points-to-draw) 1)
(set-point! s4-1 (-> s4-1 state points-to-draw) s2-1)
(+! (-> s4-1 state points-to-draw) 1)
(set! (-> s3-1 quad) (-> s2-1 quad))
(set! (-> s0-2 quad) (-> (the-as (pointer uint128) sv-464) 0))
(set! (-> sv-448 quad) (-> s1-2 quad))
(set! (-> sv-432 quad) (-> sv-640 quad))
(set! sv-576 (+ sv-576 1))
)
)
)
)
)
)
)
)
)
)
)
)
0
(none)
)
)
(defpartgroup group-darkjak-bomb
:id 63
:duration (seconds 0.25)
:linger-duration (seconds 2)
:flags (use-local-clock)
:bounds (static-bspherem 0 0 0 2)
:parts ((sp-item 174 :period (seconds 10) :length (seconds 0.167))
(sp-item 175 :period (seconds 10) :length (seconds 0.017))
(sp-item 176 :flags (bit6) :period (seconds 10) :length (seconds 0.017))
)
)
(defpart 174
:init-specs ((:texture (new 'static 'texture-id :index #x33 :page #xc))
(:num 3.0)
(:scale-x (meters 1))
(:rot-x (degrees 1.125))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 0.0)
(:b 128.0 128.0)
(:a 16.0)
(:scalevel-x (meters 0.53333336) (meters 0.53333336))
(:rotvel-z (degrees -0.1) (degrees 0.2))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.45714286)
(:timer (seconds 0.135))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 4096.0)
)
)
(defpart 175
:init-specs ((:texture (new 'static 'texture-id :index #xbb :page #xc))
(:num 1.0)
(:scale-x (meters 1))
(:rot-x (degrees 2.25))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 0.0)
(:b 128.0 128.0)
(:a 24.0)
(:scalevel-x (meters 0.34285715))
(:rotvel-z (degrees -0.3) (degrees 0.6))
(:scalevel-y :copy scalevel-x)
(:fade-g -3.6571429)
(:fade-b -0.9142857)
(:timer (seconds 1.335))
(:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-2 glow))
(:userdata 4096.0)
(:next-time (seconds 0.117))
(:next-launcher 177)
)
)
(defpart 177
:init-specs ((:scale-x (meters 4.5))
(:scale-y :copy scale-x)
(:scalevel-x (meters -0.05625))
(:scalevel-y :copy scalevel-x)
(:fade-g -0.875)
(:fade-b 0.0)
(:fade-a -0.15)
)
)
(defpart 176
:init-specs ((:texture (new 'static 'texture-id :index #xbb :page #xc))
(:num 1.0)
(:scale-x (meters 16))
(:rot-x (degrees 2.25))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 255.0)
(:b 255.0)
(:a 128.0)
(:scalevel-x (meters 1.6))
(:rotvel-z (degrees -0.3) (degrees 0.6))
(:scalevel-y :copy scalevel-x)
(:timer (seconds 0.035))
(:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-2 glow))
(:userdata 4096.0)
)
)
(defpartgroup group-darkjak-transform
:id 64
:duration (seconds 0.25)
:linger-duration (seconds 2)
:flags (use-local-clock)
:bounds (static-bspherem 0 0 0 2)
:parts ((sp-item 174 :period (seconds 10) :length (seconds 0.167))
(sp-item 175 :period (seconds 10) :length (seconds 0.017))
(sp-item 176 :period (seconds 10) :length (seconds 0.017))
)
)
(set! (-> *lightning-spec-id-table* 6) (new 'static 'lightning-spec
:name "lightning-darkjak-transform"
:flags (lightning-spec-flags lsf0)
:start-color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80)
:end-color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80)
:fade-to-color (new 'static 'rgba :r #xbf :b #x8f :a #x5)
:fade-start-factor 0.2
:texture (new 'static 'texture-id :index #x84 :page #xc)
:reduction 0.42
:num-points 16
:box-size 8192.0
:merge-factor 0.5
:merge-count 2
:radius 1638.4
:duration 30.0
:duration-rand 90.0
:sound (static-sound-spec "transform-zap")
)
)
(set! (-> *lightning-spec-id-table* 7) (new 'static 'lightning-spec
:name "lightning-darkjak-pill"
:flags (lightning-spec-flags lsf0)
:start-color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80)
:end-color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80)
:fade-to-color (new 'static 'rgba :r #xbf :b #x8f :a #x5)
:fade-start-factor 0.2
:texture (new 'static 'texture-id :index #x84 :page #xc)
:reduction 0.42
:num-points 16
:box-size 8192.0
:merge-factor 0.5
:merge-count 2
:radius 1638.4
:duration 30.0
:duration-rand 90.0
:sound (static-sound-spec "transform-zap")
:delay 60.0
:delay-rand 120.0
)
)
(define *lightning-darkjak-pill* (-> *lightning-spec-id-table* 7))
(defpart 178
:init-specs ((:texture (new 'static 'texture-id :index #xc9 :page #xc))
(:num 1.0)
(:scale-x (meters 0.1) (meters 0.15))
(:rot-x 4)
(:scale-y :copy scale-x)
(:r 255.0)
(:g 0.0 64.0)
(:b 255.0)
(:a 8.0 12.0)
(:omega (degrees 0.225))
(:vel-y (meters 0.053333335) (meters 0.026666667))
(:scalevel-x (meters -0.00033333333))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.26666668)
(:friction 0.99 0.005)
(:timer (seconds 0.25))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3))
(:func 'sparticle-motion-blur)
(:conerot-x (degrees 0) (degrees 3600))
(:conerot-y (degrees 0) (degrees 3600))
)
)
(set! (-> *lightning-spec-id-table* 8) (new 'static 'lightning-spec
:name "lightning-darkjak-local"
:flags (lightning-spec-flags lsf0)
:start-color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80)
:end-color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80)
:fade-to-color (new 'static 'rgba :r #xbf :b #x8f :a #x5)
:fade-start-factor 0.2
:texture (new 'static 'texture-id :index #x84 :page #xc)
:reduction 0.42
:num-points 16
:box-size 8192.0
:merge-factor 0.6
:merge-count 2
:radius 1638.4
:duration 30.0
:duration-rand 150.0
:sound (static-sound-spec "transform-zap")
)
)
(set! (-> *lightning-spec-id-table* 9) (new 'static 'lightning-spec
:name "lightning-darkjak-attack"
:flags (lightning-spec-flags lsf0 size-from-adjust-dist)
:adjust-distance #xa
:start-color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80)
:end-color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80)
:fade-to-color (new 'static 'rgba :r #xbf :b #x8f :a #x5)
:fade-start-factor 0.2
:texture (new 'static 'texture-id :index #x84 :page #xc)
:reduction 0.42
:num-points 20
:box-size 8192.0
:merge-factor 0.6
:merge-count 2
:radius 1638.4
:duration 30.0
:duration-rand 150.0
:sound (static-sound-spec "stretched-zap")
)
)
(defpart 179
:init-specs ((:texture (new 'static 'texture-id :index #xbb :page #xc))
(:num 1.0)
(:scale-x (meters 0.5) (meters 0.25))
(:rot-x (degrees 11.25))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 0.0 64.0)
(:b 255.0)
(:a 32.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 4096.0)
(:next-time (seconds 0.017))
(:next-launcher 180)
)
)
(defpart 180
:init-specs ((:scale-x (meters 0.2) (meters 0.25))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 200.0 55.0)
(:g 0.0 128.0)
(:b 200.0 55.0)
(:a 24.0 8.0)
(:next-time (seconds 0.017))
(:next-launcher 180)
)
)