Files
jak-project/test/decompiler/reference/jak3/levels/volcano/volcano-part_REF.gc
T
water111 637990314b wip: better stack var support (#4222)
Closes #736

---------

Co-authored-by: Hat Kid <6624576+Hat-Kid@users.noreply.github.com>
2026-04-19 00:14:44 +02:00

739 lines
23 KiB
Common Lisp
Vendored
Generated

;;-*-Lisp-*-
(in-package goal)
;; failed to figure out what this is:
(defpartgroup group-volcano-embers
:id 1386
:flags (sp0)
:bounds (static-bspherem 0 0 0 40)
:parts ((sp-item 4596 :fade-after (meters 100) :falloff-to (meters 200) :flags (sp7)))
)
;; failed to figure out what this is:
(defpart 4596
:init-specs ((:texture (motion-blur-part level-default-sprite))
(:num 0.01 0.5)
(:x (meters 0) (meters 20))
(:y (meters 30) (meters 10))
(:scale-x (meters 0.04) (meters 0.04))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 20.0 40.0)
(:b 0.0)
(:a 55.0 200.0)
(:omega (degrees 0.045))
(:accel-y (meters -0.00033333333) (meters -0.00066666666))
(:timer (seconds 33.335))
(:flags (sp-cpuinfo-flag-3 sp-cpuinfo-flag-14))
(:func 'spt-func-part-volcano-embers)
(:next-time (seconds 0.017))
(:next-launcher 4597)
(:rotate-y (degrees 0) (degrees 3600))
)
)
;; failed to figure out what this is:
(defpart 4597
:init-specs ((:g 20.0 40.0)
(:a 128.0 128.0)
(:accel-x (meters -0.001) 1 (meters 0.002))
(:accel-z (meters -0.001) 1 (meters 0.002))
(:friction 0.93 0.03)
(:next-time (seconds 0.067) (seconds 0.03))
(:next-launcher 4597)
)
)
;; definition for function spt-func-part-volcano-embers
(defun spt-func-part-volcano-embers ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 sparticle-launchinfo))
(sparticle-motion-blur arg0 arg1 (-> arg2 launchrot))
(check-drop-group-center arg0 arg1 arg2)
(none)
)
;; failed to figure out what this is:
(defpartgroup group-volcano-lantern-glow
:id 1387
:bounds (static-bspherem 0 0 0 8)
:parts ((sp-item 4598 :fade-after (meters 120) :flags (sp6))
(sp-item 4599 :fade-after (meters 120) :flags (sp6))
(sp-item 4600 :fade-after (meters 120) :flags (sp6))
)
)
;; failed to figure out what this is:
(defpart 4598
:init-specs ((:texture (glow-hotdot level-default-sprite))
(:num 1.0)
(:scale-x (meters 2) (meters 0.1))
(:rot-x (degrees 4.5))
(:rot-z (degrees -17))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 128.0)
(:b 80.0)
(:a 70.0)
(:omega (degrees 2715.75))
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 1638.4)
)
)
;; failed to figure out what this is:
(defpart 4599
:init-specs ((:texture (glow-soft level-default-sprite))
(:num 1.0)
(:scale-x (meters 10) (meters 0.1))
(:rot-x (degrees 9))
(:rot-z (degrees -17))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 80.0)
(:b 0.0)
(:a 30.0 10.0)
(:omega (degrees 2715.75))
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 819.2)
)
)
;; failed to figure out what this is:
(defpart 4600
:init-specs ((:texture (ring level-default-sprite))
(:num 1.0)
(:scale-x (meters 3) (meters 0.1))
(:rot-x (degrees 9))
(:rot-z (degrees -17))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 128.0)
(:b 0.0)
(:a 2.0 1.0)
(:omega (degrees 1815.7499))
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 819.2)
)
)
;; failed to figure out what this is:
(defpartgroup group-lava-shoot
:id 1388
:flags (sp4 sp6)
:bounds (static-bspherem 0 -15 0 20)
:parts ((sp-item 4601 :fade-after (meters 100) :falloff-to (meters 200) :flags (sp7)))
)
;; failed to figure out what this is:
(defpart 4601
:init-specs ((:texture (water-drops level-default-sprite))
(:num 1.0)
(:x (meters -0.5) (meters 1))
(:z (meters -0.5) (meters 1))
(:scale-x (meters 1) (meters 1))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 60.0 60.0)
(:b 0.0)
(:a 128.0)
(:vel-z (meters 0.026666667) (meters 0.006666667))
(:scalevel-x (meters 0.000033333334))
(:rotvel-z (degrees -0.033333335) (degrees 0.06666667))
(:scalevel-y :copy scalevel-x)
(:accel-y (meters -0.0023333333))
(:timer (seconds 1.167))
(:flags (sp-cpuinfo-flag-3 launch-along-z))
(:conerot-x (degrees 0) (degrees 10))
(:rotate-z (degrees 0) (degrees 3600))
)
)
;; failed to figure out what this is:
(defpartgroup group-volcano-lava-ripples
:id 1389
:flags (sp0 sp4)
:bounds (static-bspherem 0 0 0 6)
:parts ((sp-item 4602 :fade-after (meters 100) :falloff-to (meters 200) :flags (is-3d sp7))
(sp-item 4603 :fade-after (meters 100) :falloff-to (meters 200) :flags (is-3d sp7))
)
)
;; failed to figure out what this is:
(defpart 4602
:init-specs ((:texture (laser-hit-rim level-default-sprite))
(:num 0.01 0.01)
(:y (meters 0.1))
(:scale-x (meters 3))
(:rot-y (degrees 0) (degrees 3600))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 80.0 80.0)
(:b 0.0)
(:a 255.0)
(:scalevel-x (meters 0.005) (meters 0.0016666667))
(:scalevel-y :copy scalevel-x)
(:timer (seconds 6.667))
(:flags (left-multiply-quat))
(:next-time (seconds 3.335))
(:next-launcher 4604)
(:rotate-y (degrees 0))
)
)
;; failed to figure out what this is:
(defpart 4604
:init-specs ((:fade-a -0.256))
)
;; failed to figure out what this is:
(defpart 4603
:init-specs ((:texture (laser-hit-rim level-default-sprite))
(:num 0.01 0.01)
(:y (meters 0.1))
(:scale-x (meters 3))
(:rot-y (degrees 0) (degrees 3600))
(:scale-y :copy scale-x)
(:r 40.0)
(:g 10.0)
(:b 0.0)
(:a 128.0)
(:scalevel-x (meters 0.0033333334) (meters 0.0016666667))
(:scalevel-y :copy scalevel-x)
(:timer (seconds 6.667))
(:flags (left-multiply-quat))
(:next-time (seconds 5))
(:next-launcher 4604)
(:rotate-y (degrees 0))
)
)
;; failed to figure out what this is:
(defpartgroup group-volcano-lava-bubbles
:id 1390
:flags (sp0 sp4 sp8)
:bounds (static-bspherem 0 0 0 7)
:parts ((sp-item 4605 :fade-after (meters 100) :falloff-to (meters 200)))
)
;; failed to figure out what this is:
(defpart 4605
:init-specs ((:texture (lava-bubble volcanoa-sprite))
(:num 0.01 0.04)
(:x (meters 0) (meters 6))
(:y (meters 0.25))
(:scale-x (meters 0.1))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 100.0 40.0)
(:b 0.0)
(:a 128.0)
(:scalevel-x (meters 0.0013333333) (meters 0.001))
(:scalevel-y :copy scalevel-x)
(:timer (seconds 1) (seconds 1.997))
(:flags (sp-cpuinfo-flag-3))
(:func 'spt-func-birth-on-pop)
(:rotate-y (degrees 0) (degrees 3600))
)
)
;; definition for function spt-func-birth-on-pop
;; INFO: Used lq/sq
;; WARN: Return type mismatch (pointer process) vs none.
(defun spt-func-birth-on-pop ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 sparticle-launchinfo))
(when (zero? (-> arg1 timer))
(cond
((logtest? (-> group-volcano-lava-splash flags) (sp-group-flag sp13))
(let ((v1-6 (-> *launch-matrix* trans))
(a0-1 (new 'stack-no-clear 'vector))
)
(set! (-> a0-1 x) (-> arg2 launchrot x))
(set! (-> a0-1 y) (-> arg2 launchrot y))
(set! (-> a0-1 z) (-> arg2 launchrot z))
(set! (-> a0-1 w) 1.0)
(vector-copy! v1-6 a0-1)
)
(part-tracker-spawn part-tracker-subsampler :to *entity-pool* :group group-volcano-lava-splash)
)
(else
(let ((v1-19 (-> *launch-matrix* trans))
(a0-6 (new 'stack-no-clear 'vector))
)
(set! (-> a0-6 x) (-> arg2 launchrot x))
(set! (-> a0-6 y) (-> arg2 launchrot y))
(set! (-> a0-6 z) (-> arg2 launchrot z))
(set! (-> a0-6 w) 1.0)
(vector-copy! v1-19 a0-6)
)
(part-tracker-spawn part-tracker :to *entity-pool* :group group-volcano-lava-splash)
)
)
)
(none)
)
;; failed to figure out what this is:
(defpartgroup group-volcano-lava-splash
:id 1391
:linger-duration (seconds 0)
:flags (sp0 sp4)
:bounds (static-bspherem 0 0 0 7)
:parts ((sp-item 4606 :fade-after (meters 100) :falloff-to (meters 200) :flags (sp7) :period (seconds 20) :length (seconds 0.035))
)
)
;; failed to figure out what this is:
(defpart 4606
:init-specs ((:texture (lava-drop-01 volcanoa-sprite))
(:birth-func 'birth-func-texture-group)
(:num 10.0)
(:x (meters -0.5) (meters 1))
(:z (meters -0.5) (meters 1))
(:scale-x (meters 0.1) (meters 0.5))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 60.0 60.0)
(:b 0.0)
(:a 128.0)
(:vel-y (meters 0.0033333334) (meters 0.026666667))
(:scalevel-x (meters 0.000033333334))
(:rotvel-z (degrees -2) (degrees 4))
(:scalevel-y :copy scalevel-x)
(:accel-y (meters -0.001))
(:timer (seconds 1.167))
(:flags (sp-cpuinfo-flag-3 launch-along-z))
(:userdata :data (new 'static 'boxed-array :type int32 5 1 0 -2145386496 -2145386240 -2145385984 -2145385728))
(:func 'check-drop-group-center)
(:conerot-x (degrees 0) (degrees 50.000004))
(:rotate-y (degrees 0) (degrees 3600))
)
)
;; failed to figure out what this is:
(defpartgroup group-lavawave-falls
:id 1392
:flags (sp4 sp6)
:bounds (static-bspherem 0 -15 0 20)
:parts ((sp-item 4607 :fade-after (meters 100) :falloff-to (meters 200) :flags (sp7)))
)
;; failed to figure out what this is:
(defpart 4607
:init-specs ((:texture (water-drops level-default-sprite))
(:num 1.0 1.0)
(:x (meters -2) (meters 4))
(:y (meters -0.6))
(:scale-x (meters 1.5) (meters 1.5))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 60.0 60.0)
(:b 0.0)
(:a 128.0)
(:vel-y (meters 0.01) (meters 0.01))
(:scalevel-x (meters 0.001))
(:rotvel-z (degrees -0.13333334) (degrees 0.26666668))
(:scalevel-y :copy scalevel-x)
(:accel-y (meters -0.0016666667))
(:timer (seconds 0.5))
(:flags (launch-along-z))
(:conerot-x (degrees 0) (degrees 10))
(:rotate-y (degrees 0))
)
)
;; failed to figure out what this is:
(defpartgroup group-volcano-lava-rocks-heat
:id 1393
:flags (sp0 sp4)
:bounds (static-bspherem 0 0 0 15)
:parts ((sp-item 4608 :falloff-to (meters 100)))
)
;; failed to figure out what this is:
(defpart 4608
:init-specs ((:num 1.0)
(:x (meters 0) (meters 10))
(:y (meters 0))
(:rot-x 6)
(:r 40960.0)
(:g 20480.0)
(:b 20480.0)
(:vel-y (meters 0.016666668))
(:fade-b -40.96)
(:timer (seconds 0.335))
(:flags (distort))
(:next-time (seconds 0.167))
(:next-launcher 4609)
(:rotate-y (degrees 0) (degrees 3600))
)
)
;; failed to figure out what this is:
(defpart 4609
:init-specs ((:fade-b 40.96))
)
;; failed to figure out what this is:
(defpartgroup group-steam-geyser-shoot
:id 1394
:flags (sp4 sp6)
:bounds (static-bspherem 0 10 0 15)
:parts ((sp-item 4610 :fade-after (meters 200) :falloff-to (meters 300) :flags (sp7)))
)
;; failed to figure out what this is:
(defpart 4610
:init-specs ((:texture (dirtpuff01 level-default-sprite))
(:num 1.0)
(:x (meters 0) (meters 1))
(:scale-x (meters 12))
(:scale-y (meters 4))
(:r 128.0 80.0)
(:g :copy r)
(:b :copy r)
(:a 0.0)
(:vel-y (meters 0.1) (meters 0.033333335))
(:scalevel-x (meters -0.02) (meters -0.02))
(:scalevel-y (meters 0.053333335))
(:fade-a 0.32)
(:friction 0.94)
(:timer (seconds 1))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-13 left-multiply-quat))
(:func 'sparticle-2d-spline-align-instant)
(:next-time (seconds 0.335))
(:next-launcher 4611)
(:launchrot-x (degrees -20) (degrees 40))
(:rotate-y (degrees 0) (degrees 3600))
)
)
;; failed to figure out what this is:
(defpart 4611
:init-specs ((:scalevel-x (meters -0.006666667))
(:scalevel-y (meters 0.006666667))
(:fade-a -0.10666667 -0.10666667)
(:friction 0.9 0.04)
)
)
;; failed to figure out what this is:
(defpartgroup group-lava-ball-spout
:id 1395
:flags (sp4 sp6)
:bounds (static-bspherem 0 10 0 15)
:parts ((sp-item 4612 :fade-after (meters 200) :falloff-to (meters 250) :flags (sp7)))
)
;; definition for symbol *lava-particle-list*, type (array int32)
(define *lava-particle-list*
(new 'static 'boxed-array :type int32 -2145386496 -2145386240 -2145385984 -2145385728)
)
;; definition for function birth-func-texture-group-lava
;; WARN: Return type mismatch int vs none.
(defun birth-func-texture-group-lava ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 sparticle-launchinfo))
(particle-adgif-callback
(-> arg1 adgif)
(the-as
texture-id
(-> *lava-particle-list*
(mod (the-as int (rand-uint31-gen *random-generator*)) (-> *lava-particle-list* length))
)
)
)
0
(none)
)
;; failed to figure out what this is:
(defpart 4612
:init-specs ((:texture (lava-drop-01 volcanoa-sprite))
(:birth-func 'birth-func-texture-group-lava)
(:num 1.0)
(:x (meters -1) (meters 2))
(:z (meters -1) (meters 2))
(:scale-x (meters 0.5) (meters 1))
(:rot-z (degrees 0))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 80.0 60.0)
(:b 0.0)
(:a 128.0)
(:omega (degrees 0.045))
(:vel-y (meters 0.033333335) (meters 0.016666668))
(:accel-y (meters -0.0033333334))
(:timer (seconds 4))
(:flags (launch-along-z))
(:func 'spt-func-part-lava-ball-spout-puff)
(:next-time (seconds 0.667))
(:next-launcher 4613)
(:conerot-x (degrees 0) (degrees 5))
(:rotate-y (degrees 0) (degrees 3600))
)
)
;; failed to figure out what this is:
(defpart 4613
:init-specs ((:rotvel-z (degrees -2) (degrees 4)) (:func 'none))
)
;; definition for function spt-func-part-lava-ball-spout-puff
(defun spt-func-part-lava-ball-spout-puff ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 sparticle-launchinfo))
(sparticle-motion-blur arg0 arg1 (-> arg2 launchrot))
(check-drop-group-center arg0 arg1 arg2)
(none)
)
;; definition for function spt-birth-func-brightness-part-volcano-leaf-fall
;; WARN: Return type mismatch float vs none.
(defun spt-birth-func-brightness-part-volcano-leaf-fall ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 sparticle-launchinfo) (arg3 object) (arg4 object))
(let ((s5-0 (+ (mod (the-as int (rand-uint31-gen *random-generator*)) 11) 90))
(s3-0 (+ (mod (the-as int (rand-uint31-gen *random-generator*)) 61) 10))
(s4-0 (mod (the-as int (rand-uint31-gen *random-generator*)) 21))
(v1-7 (+ (mod (the-as int (rand-uint31-gen *random-generator*)) 41) 70))
)
(set! (-> arg2 rotate-x) (the float (- s5-0 s3-0)))
(set! (-> arg2 rotate-y) (the float (- s5-0 s4-0)))
(set! (-> arg2 rotate-z) (the float (- s5-0 v1-7)))
)
(none)
)
;; failed to figure out what this is:
(defpartgroup group-volcano-leaf-fall
:id 1396
:flags (sp0 sp4)
:bounds (static-bspherem 0 0 0 20)
:parts ((sp-item 4614 :fade-after (meters 200) :falloff-to (meters 200) :flags (is-3d) :period (seconds 1) :length (seconds 0.017))
)
)
;; failed to figure out what this is:
(defpart 4614
:init-specs ((:texture (forest-leaf volcanoa-sprite))
(:birth-func 'spt-birth-func-part-volcano-leaf-fall)
(:num 1.0)
(:x (meters 0) (meters 6))
(:y (meters 0) (meters 4))
(:scale-x (meters 0.5) (meters 1))
(:rot-x 4)
(:rot-y (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 128.0)
(:b 128.0)
(:a 128.0)
(:rotvel-x (degrees -0.2) (degrees 0.4))
(:rotvel-y (degrees -0.2) 1 (degrees 0.4))
(:rotvel-z (degrees -0.2) (degrees 0.4))
(:accel-y (meters -0.00006666667) (meters -0.00006666667))
(:friction 0.99)
(:timer (seconds 6.667))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-13 launch-along-z left-multiply-quat))
(:userdata :data (new 'static 'boxed-array :type int32 5 1 0 -2145384960 -2145384704 -2145384448 -2145384192))
(:next-time (seconds 1))
(:next-launcher 4615)
(:rotate-y (degrees 0) (degrees 3600))
)
)
;; failed to figure out what this is:
(defpart 4615
:init-specs ((:rotvel-x (degrees -0.6666667) (degrees 1.3333334))
(:rotvel-y (degrees -0.2) 1 (degrees 0.4))
(:rotvel-z (degrees -0.6666667) (degrees 1.3333334))
(:accel-x (meters -0.00016666666) (meters 0.00033333333))
(:accel-y (meters 0.000033333334) (meters -0.00066666666))
(:accel-z (meters -0.00016666666) (meters 0.00033333333))
(:next-time (seconds 0.5) (seconds 0.497))
(:next-launcher 4615)
)
)
;; definition for function spt-birth-func-part-volcano-leaf-fall
(defun spt-birth-func-part-volcano-leaf-fall ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 sparticle-launchinfo) (arg3 object) (arg4 object))
(birth-func-texture-group-2d arg0 arg1 arg2 arg3 arg4)
(spt-birth-func-brightness-part-volcano-leaf-fall arg0 arg1 arg2 arg3 arg4)
(none)
)
;; definition for function spt-volcano-check-ground-lie-flat
;; INFO: Used lq/sq
;; WARN: Return type mismatch quaternion vs none.
(defun spt-volcano-check-ground-lie-flat ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 sparticle-launchinfo))
(local-vars (v1-9 float) (v1-10 float) (v1-15 float) (v1-16 float) (s5-1 quaternion))
(rlet ((vf0 :class vf)
(vf1 :class vf)
(vf2 :class vf)
)
(init-vf0-vector)
(let* ((v1-0 (-> arg1 key))
(f0-1 (+ 819.2 (-> v1-0 origin trans y)))
(f30-0 (+ 8192.0 f0-1))
)
(when (< (-> arg2 launchrot y) f0-1)
(let ((s4-0 (new 'stack-no-clear 'quaternion)))
(let ((s3-0 (new 'stack-no-clear 'matrix)))
(set! (-> arg1 next-launcher) (the-as basic 0))
(set! (-> arg1 next-time) (the-as uint 5))
(set! (-> arg1 acc quad) (the-as uint128 0))
(set! (-> arg1 vel-sxvel quad) (the-as uint128 0))
(set! (-> arg1 rot-syvel quad) (the-as uint128 0))
(quaternion-identity! (-> arg1 rotvel3d))
(let* ((v1-7 s4-0)
(a0-3 arg2)
(f0-2 (-> a0-3 conerot x))
(f1-3 (-> a0-3 conerot y))
(f2-0 (-> a0-3 conerot z))
)
(set! (-> v1-7 x) f0-2)
(set! (-> v1-7 y) f1-3)
(set! (-> v1-7 z) f2-0)
(set! (-> v1-7 w) (sqrtf (- (- (- 1.0 (square f2-0)) (square f1-3)) (square f0-2))))
)
(matrix-u-f-compose s3-0 *y-vector* (vector-z-quaternion! (new 'stack-no-clear 'vector) s4-0))
(matrix->quaternion s4-0 s3-0)
)
(let ((v1-8 arg2))
(cond
((< (-> s4-0 w) 0.0)
(.lvf vf1 (&-> v1-8 conerot quad))
(.lvf vf2 (&-> s4-0 quad))
(.sub.vf.xyz vf1 vf0 vf2)
(.svf (&-> v1-8 conerot quad) vf1)
(.mov v1-9 vf1)
)
(else
(.lvf vf1 (&-> v1-8 conerot quad))
(.lvf vf2 (&-> s4-0 quad))
(.add.vf.xyz vf1 vf0 vf2)
(.svf (&-> v1-8 conerot quad) vf1)
(.mov v1-10 vf1)
)
)
)
)
(set! (-> arg1 sp-func) (the-as (function sparticle-system sparticle-cpuinfo sprite-vec-data-3d uint none) 0))
0
)
(set! s5-1
(when (< (-> arg2 launchrot y) f30-0)
(set! s5-1 (new 'stack-no-clear 'quaternion))
(let ((s4-1 (new 'stack-no-clear 'quaternion)))
(let ((s3-1 (new 'stack-no-clear 'matrix)))
(let* ((v1-12 s5-1)
(a0-9 arg2)
(f0-8 (-> a0-9 conerot x))
(f1-7 (-> a0-9 conerot y))
(f2-3 (-> a0-9 conerot z))
)
(set! (-> v1-12 x) f0-8)
(set! (-> v1-12 y) f1-7)
(set! (-> v1-12 z) f2-3)
(set! (-> v1-12 w) (sqrtf (- (- (- 1.0 (square f2-3)) (square f1-7)) (square f0-8))))
)
(matrix-u-f-compose s3-1 *y-vector* (vector-z-quaternion! (new 'stack-no-clear 'vector) s5-1))
(matrix->quaternion s4-1 s3-1)
)
(quaternion-pseudo-seek s5-1 s5-1 s4-1 (* 3.034074 (seconds-per-frame)))
)
(cond
((< (-> s5-1 w) 0.0)
(.lvf vf1 (&-> arg2 conerot quad))
(.lvf vf2 (&-> s5-1 quad))
(.sub.vf.xyz vf1 vf0 vf2)
(.svf (&-> arg2 conerot quad) vf1)
(.mov v1-15 vf1)
)
(else
(.lvf vf1 (&-> arg2 conerot quad))
(.lvf vf2 (&-> s5-1 quad))
(.add.vf.xyz vf1 vf0 vf2)
(.svf (&-> arg2 conerot quad) vf1)
(.mov v1-16 vf1)
)
)
s5-1
)
)
)
(none)
)
)
;; failed to figure out what this is:
(defpartgroup group-vol-lava-ball
:id 1397
:flags (sp0 sp4)
:bounds (static-bspherem 0 0 0 20)
:parts ((sp-item 4616 :flags (sp7)))
)
;; failed to figure out what this is:
(defpart 4616
:init-specs ((:texture (lava-drop-01 volcanoa-sprite))
(:birth-func 'birth-func-texture-group)
(:num 5.0)
(:x (meters -0.5) (meters 1))
(:y (meters -1))
(:z (meters -0.5) (meters 1))
(:scale-x (meters 0.5) (meters 0.5))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 60.0 60.0)
(:b 0.0)
(:a 128.0)
(:vel-y (meters 0.0033333334) (meters 0.026666667))
(:scalevel-x (meters -0.0016666667) (meters -0.0016666667))
(:rotvel-z (degrees -2) (degrees 4))
(:scalevel-y :copy scalevel-x)
(:accel-y (meters -0.0016666667))
(:timer (seconds 1.167))
(:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3 launch-along-z))
(:userdata :data (new 'static 'boxed-array :type int32 5 1 0 -2145386496 -2145386240 -2145385984 -2145385728))
(:conerot-x (degrees 80) (degrees 20))
(:rotate-y (degrees 0) (degrees 3600))
)
)
;; failed to figure out what this is:
(defpartgroup group-vol-break-ground
:id 1398
:flags (sp0 sp4)
:bounds (static-bspherem 0 0 0 20)
:parts ((sp-item 4617 :flags (sp7)))
)
;; failed to figure out what this is:
(defpart 4617
:init-specs ((:texture (big-cloud level-default-sprite))
(:num 0.3)
(:z (meters -5) (meters 10))
(:scale-x (meters 1))
(:scale-y :copy scale-x)
(:r 120.0)
(:g 100.0)
(:b 80.0)
(:a 0.0)
(:scalevel-x (meters 0.033333335) (meters 0.016666668))
(:scalevel-y :copy scalevel-x)
(:fade-a 0.64)
(:accel-y (meters -0.00033333333))
(:timer (seconds 2))
(:flags (sp-cpuinfo-flag-13))
(:next-time (seconds 0.335))
(:next-launcher 4618)
(:rotate-y (degrees 0))
)
)
;; failed to figure out what this is:
(defpart 4618
:init-specs ((:scalevel-x (meters 0.0033333334)) (:scalevel-y :copy scalevel-x) (:fade-a -0.128))
)