jak-project/goal_src/jak3/engine/common-obs/collectables-part.gc
Hat Kid 93afb02cf4
decomp3: spawn target, add merc and particle buckets and some temporary hacks (#3445)
This includes all the collision stuff needed to spawn `target`,
decompiles the sparticle code and adds some of the PC hacks needed for
merc to run (it doesn't work quite right and looks bad, likely due to a
combination of code copied from Jak 2 and the time of day hacks).

There are a bunch of temporary hacks (see commits) in place to prevent
the game from crashing quite as much, but it is still extremely prone to
doing so due to lots of missing functions/potentially bad decomp.

---------

Co-authored-by: water <awaterford111445@gmail.com>
2024-04-05 00:07:39 -04:00

2827 lines
78 KiB
Common Lisp

;;-*-Lisp-*-
(in-package goal)
;; name: collectables-part.gc
;; name in dgo: collectables-part
;; dgos: GAME
;; DECOMP BEGINS
(defpartgroup group-rod-of-god
:id 123
:flags (sp0)
:bounds (static-bspherem 0 300 0 640)
:parts ((sp-item 409 :fade-after (meters 80) :falloff-to (meters 160))
(sp-item 410 :flags (sp6))
(sp-item 411 :flags (sp6))
)
)
(defpart 409
:init-specs ((:texture (hotdot level-default-sprite))
(:num 8.0)
(:x (meters 0) (meters 2.7))
(:y (meters 0) (meters 32))
(:scale-x (meters 0.25))
(:scale-y (meters 0.25) (meters 0.1))
(:r 255.0)
(:g 255.0)
(:b 255.0)
(:a 0.0)
(:vel-y (meters 0.0016666667) (meters 0.0016666667))
(:fade-a 0.4)
(:timer (seconds 0.535))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14))
(:next-time (seconds 0.267))
(:next-launcher 412)
(:rotate-y (degrees 0) (degrees 3600))
)
)
(defpart 412
:init-specs ((:fade-a -0.4))
)
(defpart 410
:init-specs ((:texture (glow-soft level-default-sprite))
(:num 1.0)
(:y (meters -0.25))
(:scale-x (meters 18))
(:rot-x (degrees 135))
(:scale-y (meters 18))
(:r 128.0)
(:g 128.0)
(:b 0.0 64.0)
(:a 32.0)
(:omega (degrees 4511.25))
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14 glow))
(:userdata 20480.0)
)
)
(defpart 411
:init-specs ((:texture (glow-soft level-default-sprite))
(:num 1.0)
(:y (meters -0.25))
(:scale-x (meters 9))
(:rot-x (degrees 135))
(:scale-y (meters 9))
(:r 128.0)
(:g 128.0)
(:b 128.0)
(:a 32.0)
(:omega (degrees 4511.25))
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14 glow))
(:userdata 20480.0)
)
)
(defpartgroup group-eco-green-collect
:id 124
:duration (seconds 0.5)
:linger-duration (seconds 2)
:bounds (static-bspherem 0 0 0 2)
:parts ((sp-item 415 :flags (sp3) :binding 413)
(sp-item 413 :flags (sp2 sp3) :binding 414)
(sp-item 413 :flags (sp2 sp3) :binding 414)
(sp-item 413 :flags (sp2 sp3) :binding 414)
(sp-item 413 :flags (sp2 sp3) :binding 414)
(sp-item 413 :flags (sp2 sp3) :binding 414)
(sp-item 416 :fade-after (meters 40) :flags (sp2))
(sp-item 416 :fade-after (meters 40) :flags (sp2))
(sp-item 416 :fade-after (meters 40) :flags (sp2))
(sp-item 416 :fade-after (meters 40) :flags (sp2))
(sp-item 417 :fade-after (meters 40) :flags (sp2))
)
)
(defpart 415
:init-specs ((:texture (starflash level-default-sprite))
(:num 1.0)
(:scale-x (meters 4))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 32.0 92.0)
(:g 128.0 128.0)
(:a 64.0)
(:fade-a -3.2)
(:timer (seconds 0.5))
(:flags (sp-cpuinfo-flag-3 sp-cpuinfo-flag-14))
(:func 'part-tracker-track-root)
(:next-time (seconds 0.05))
(:next-launcher 418)
)
)
(defpart 418
:init-specs ((:scale-x (meters 0.1)) (:scale-y :copy scale-x) (:a 0.0) (:fade-a 0.0))
)
(defpart 413
:init-specs ((:texture (hotdot level-default-sprite))
(:num 5.0)
(:y (meters -4) (meters 16))
(:z (meters 0.08))
(:scale-x (meters 0.3) (meters 0.2))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 255.0)
(:a 127.0)
(:omega (degrees 0) (degrees 360))
(:vel-x (meters -0.017777778) 2.0 (meters 0.035555556))
(:vel-y (meters 0))
(:vel-z (meters 0.08))
(:accel-z (meters -0.0053333333))
(:timer (seconds 0.5))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 ready-to-launch sp-cpuinfo-flag-14))
)
)
(defpart 416
:init-specs ((:texture (hotdot level-default-sprite))
(:num 1.0)
(:y (meters -0.05))
(:scale-x (meters 0.3))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 255.0)
(:b 0.0)
(:a 96.0)
(:scalevel-x (meters -0.00075757573))
(:scalevel-y :copy scalevel-x)
(:fade-r -2.8333333)
(:accel-y (meters -0.000100000005))
(:timer (seconds 0.1) (seconds 0.997))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14))
(:next-time (seconds 0.3))
(:next-launcher 419)
)
)
(defun eco-fadeout ((arg0 sparticle-system) (arg1 sparticle-cpuinfo))
(if (not (logtest? (-> arg1 key proc state-flags) (state-flags sf0)))
(set! (-> arg1 next-time)
(the-as uint (* (max 1 (the-as int (-> *display* clock (-> arg1 clock-index) sparticle-data x))) 2))
)
)
0
(none)
)
(defun eco-track-root-prim-fadeout ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 vector))
(let ((v1-1 (-> arg1 key proc)))
(let ((a0-3 (-> (the-as collide-shape (-> v1-1 root)) root-prim prim-core)))
(set! (-> arg2 x) (-> a0-3 world-sphere x))
(set! (-> arg2 y) (-> a0-3 world-sphere y))
(set! (-> arg2 z) (-> a0-3 world-sphere z))
)
(if (not (logtest? (-> v1-1 state-flags) (state-flags sf0)))
(set! (-> arg1 next-time)
(the-as uint (* (max 1 (the-as int (-> *display* clock (-> arg1 clock-index) sparticle-data x))) 2))
)
)
)
0
(none)
)
(defpartgroup group-eco-green-pill
:id 125
:bounds (static-bspherem 0 0 0 0.4)
:parts ((sp-item 424 :flags (sp3) :binding 420)
(sp-item 420 :flags (sp2 sp3) :binding 421)
(sp-item 421 :flags (sp2 sp3) :binding 422)
(sp-item 422 :flags (sp2 sp3) :binding 423)
(sp-item 422 :flags (sp2 sp3))
(sp-item 422 :flags (sp2 sp3))
(sp-item 422 :flags (sp2 sp3))
(sp-item 423 :fade-after (meters 40) :flags (sp2))
)
)
(defpart 424
:init-specs ((:texture (bigpuff level-default-sprite))
(:num 1.0)
(:scale-x (meters 0.01))
(:scale-y :copy scale-x)
(:a 0.0)
(:timer (seconds -0.005))
(:flags (sp-cpuinfo-flag-3 sp-cpuinfo-flag-14))
(:func 'eco-track-root-prim-fadeout)
(:next-time (seconds 0.035))
(:next-launcher 425)
)
)
(defpart 420
:init-specs ((:texture (bigpuff level-default-sprite))
(:num 1.0)
(:y (meters 0) (meters 16))
(:z (meters 0.2) (meters 0.1))
(:scale-x (meters 0.6) (meters 0.4))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 32.0 92.0)
(:g 128.0 128.0)
(:a 24.0)
(:omega (degrees 0) (degrees 360))
(:vel-x (meters 0.026666667) (meters 0.026666667))
(:vel-y (meters 0.0014814815))
(:vel-z (meters 0))
(:rotvel-z (degrees -0.1) 1 (degrees 0.2))
(:timer (seconds -0.005))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 ready-to-launch sp-cpuinfo-flag-14))
(:func 'eco-track-root-prim-fadeout)
(:next-time (seconds 0.035))
(:next-launcher 425)
)
)
(defpart 425
:init-specs ((:fade-a -0.16) (:timer (seconds 0.5)))
)
(defpart 421
:init-specs ((:texture (bigpuff level-default-sprite))
(:num 3.0)
(:y (meters 0) (meters 16))
(:z (meters 0) (meters 0.2))
(:scale-x (meters 0.6) (meters 0.4))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 32.0 92.0)
(:g 128.0 128.0)
(:a 24.0)
(:omega (degrees 0) (degrees 360))
(:vel-x (meters 0.017777778) (meters 0.017777778))
(:vel-y (meters 0))
(:vel-z (meters 0))
(:rotvel-z (degrees -0.4) 1 (degrees 0.8))
(:timer (seconds -0.005))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 ready-to-launch sp-cpuinfo-flag-14))
(:func 'eco-track-root-prim-fadeout)
(:next-time (seconds 0.035))
(:next-launcher 425)
)
)
(defpart 422
:init-specs ((:texture (hotdot level-default-sprite))
(:num 1.0)
(:y (meters 0) (meters 16))
(:z (meters 0.08))
(:scale-x (meters 0.2) (meters 0.05))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 255.0)
(:a 127.0)
(:omega (degrees 0) (degrees 360))
(:vel-x (meters 0.10666667))
(:vel-y (meters 0))
(:vel-z (meters 0))
(:timer (seconds -0.005))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 ready-to-launch sp-cpuinfo-flag-14))
(:func 'eco-fadeout)
(:next-time (seconds 0.035))
(:next-launcher 426)
)
)
(defpart 426
:init-specs ((:fade-r 0.0) (:fade-a -0.8466667) (:timer (seconds 0.5)))
)
(defpart 423
:init-specs ((:texture (hotdot level-default-sprite))
(:num 0.25)
(:y (meters -0.05))
(:scale-x (meters 0.15))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 255.0)
(:b 0.0)
(:a 96.0)
(:scalevel-x (meters -0.00039393938))
(:scalevel-y :copy scalevel-x)
(:fade-r -2.8333333)
(:accel-y (meters -0.000100000005))
(:timer (seconds 0.1) (seconds 0.997))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14))
(:next-time (seconds 0.3))
(:next-launcher 427)
)
)
(defpartgroup group-eco-green-pill-collect
:id 126
:duration (seconds 0.5)
:linger-duration (seconds 2)
:bounds (static-bspherem 0 0 0 2)
:parts ((sp-item 415 :flags (sp3) :binding 428)
(sp-item 428 :flags (sp2 sp3) :binding 414)
(sp-item 428 :flags (sp2 sp3) :binding 414)
(sp-item 428 :flags (sp2 sp3) :binding 414)
(sp-item 428 :flags (sp2 sp3) :binding 414)
(sp-item 428 :flags (sp2 sp3) :binding 414)
(sp-item 414 :fade-after (meters 40) :flags (sp2))
(sp-item 414 :fade-after (meters 40) :flags (sp2))
(sp-item 414 :fade-after (meters 40) :flags (sp2))
(sp-item 414 :fade-after (meters 40) :flags (sp2))
(sp-item 414 :fade-after (meters 40) :flags (sp2))
)
)
(defpart 428
:init-specs ((:texture (hotdot level-default-sprite))
(:num 1.0)
(:y (meters -4) (meters 16))
(:z (meters 0.08))
(:scale-x (meters 0.25) (meters 0.05))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 255.0)
(:a 127.0)
(:omega (degrees 0) (degrees 360))
(:vel-x (meters 0.017777778) (meters 0.017777778))
(:vel-y (meters 0))
(:vel-z (meters 0.04))
(:accel-z (meters -0.0026666666))
(:timer (seconds 0.5))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 ready-to-launch sp-cpuinfo-flag-14))
)
)
(defpart 414
:init-specs ((:texture (hotdot level-default-sprite))
(:num 1.0)
(:y (meters -0.05))
(:scale-x (meters 0.2))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 255.0)
(:b 0.0)
(:a 96.0)
(:scalevel-x (meters -0.0004545455))
(:scalevel-y :copy scalevel-x)
(:fade-r -2.8333333)
(:accel-y (meters -0.000100000005))
(:timer (seconds 0.1) (seconds 0.997))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14))
(:next-time (seconds 0.3))
(:next-launcher 419)
)
)
(defpartgroup group-eco-light-pill
:id 127
:flags (sp0 sp4 sp7)
:bounds (static-bspherem 0 0 0 4)
:scale (1.0 10.0 1.0)
:parts ((sp-item 431 :flags (sp3) :binding 429)
(sp-item 431 :flags (sp3) :binding 429)
(sp-item 431 :flags (sp3) :binding 429)
(sp-item 431 :flags (sp3) :binding 429)
(sp-item 431 :flags (sp3) :binding 429)
(sp-item 431 :flags (sp3) :binding 429)
(sp-item 431 :flags (sp3) :binding 429)
(sp-item 431 :flags (sp3) :binding 429)
(sp-item 431 :flags (sp3) :binding 429)
(sp-item 431 :flags (sp3) :binding 429)
(sp-item 431 :flags (sp3) :binding 429)
(sp-item 431 :flags (sp3) :binding 429)
(sp-item 431 :flags (sp3) :binding 429)
(sp-item 431 :flags (sp3) :binding 429)
(sp-item 431 :flags (sp3) :binding 429)
(sp-item 431 :flags (sp3) :binding 429)
(sp-item 429 :flags (sp2) :period (seconds 1) :length (seconds 0.017))
(sp-item 429 :flags (sp2) :period (seconds 1) :length (seconds 0.017) :offset 30)
(sp-item 429 :flags (sp2) :period (seconds 1) :length (seconds 0.017) :offset 60)
(sp-item 429 :flags (sp2) :period (seconds 1) :length (seconds 0.017) :offset 90)
(sp-item 429 :flags (sp2) :period (seconds 1) :length (seconds 0.017) :offset 120)
(sp-item 429 :flags (sp2) :period (seconds 1) :length (seconds 0.017) :offset 150)
(sp-item 429 :flags (sp2) :period (seconds 1) :length (seconds 0.017) :offset 180)
(sp-item 429 :flags (sp2) :period (seconds 1) :length (seconds 0.017) :offset 210)
(sp-item 429 :flags (sp2) :period (seconds 1) :length (seconds 0.017) :offset 240)
(sp-item 429 :flags (sp2) :period (seconds 1) :length (seconds 0.017) :offset 270)
(sp-item 429 :flags (sp2) :period (seconds 1) :length (seconds 0.017))
(sp-item 429 :flags (sp2) :period (seconds 1) :length (seconds 0.017) :offset 30)
(sp-item 429 :flags (sp2) :period (seconds 1) :length (seconds 0.017) :offset 60)
(sp-item 429 :flags (sp2) :period (seconds 1) :length (seconds 0.017) :offset 90)
(sp-item 429 :flags (sp2) :period (seconds 1) :length (seconds 0.017) :offset 120)
(sp-item 429 :flags (sp2) :period (seconds 1) :length (seconds 0.017) :offset 150)
(sp-item 429 :flags (sp2) :period (seconds 1) :length (seconds 0.017) :offset 180)
(sp-item 429 :flags (sp2) :period (seconds 1) :length (seconds 0.017) :offset 210)
(sp-item 429 :flags (sp2) :period (seconds 1) :length (seconds 0.017) :offset 240)
(sp-item 429 :flags (sp2) :period (seconds 1) :length (seconds 0.017) :offset 270)
(sp-item 432 :flags (sp3) :binding 430)
(sp-item 430 :flags (sp2))
(sp-item 430 :flags (sp2))
(sp-item 430 :flags (sp2))
(sp-item 430 :flags (sp2))
(sp-item 430 :flags (sp2))
(sp-item 430 :flags (sp2))
(sp-item 430 :flags (sp2))
(sp-item 430 :flags (sp2))
(sp-item 430 :flags (sp2))
(sp-item 430 :flags (sp2))
(sp-item 430 :flags (sp2))
(sp-item 430 :flags (sp2))
(sp-item 430 :flags (sp2))
(sp-item 430 :flags (sp2))
(sp-item 430 :flags (sp2))
(sp-item 430 :flags (sp2))
(sp-item 433)
)
)
(defpart 431
:init-specs ((:texture (middot level-default-sprite))
(:num 1.0)
(:scale-x (meters 1))
(:scale-y (meters 1))
(:r 255.0)
(:g 0.0)
(:b 0.0)
(:a 0.0)
(:timer (seconds -0.005))
(:flags (sp-cpuinfo-flag-14))
(:func 'sparticle-track-root-prim)
)
)
(defpart 429
:init-specs ((:texture (hotdot level-default-sprite))
(:num 8.0)
(:x (meters 0) (meters 16))
(:y (meters 0) (meters 16))
(:z (meters 0))
(:scale-x (meters 0.4) (meters 0.2))
(:scale-y (meters 0.4) (meters 0.2))
(:r 128.0 128.0)
(:g 255.0)
(:b 255.0)
(:a 0.0)
(:omega (degrees 0) (degrees 360))
(:vel-x (meters -0.053333335) 1 (meters 0.10666667))
(:vel-y (meters -0.0014814815) (meters 0.002962963))
(:vel-z (meters 0.0016666667) (meters 0.00066666666))
(:rotvel-z (degrees -0.4) 1 (degrees 0.8))
(:fade-a 0.21333334)
(:accel-z (meters -0.00006666667))
(:timer (seconds 1))
(:flags (sp-cpuinfo-flag-3 ready-to-launch))
(:next-time (seconds 0.5))
(:next-launcher 434)
)
)
(defpart 434
:init-specs ((:fade-a -0.21333334))
)
(defpart 432
:init-specs ((:texture (middot level-default-sprite))
(:num 1.0)
(:scale-x (meters 0.1))
(:scale-y (meters 0.1))
(:r 255.0)
(:g 0.0)
(:b 0.0)
(:a 0.0)
(:timer (seconds -0.005))
(:flags (sp-cpuinfo-flag-14))
(:func 'sparticle-track-root-prim)
)
)
(defpart 430
:init-specs ((:texture (edge-cloud level-default-sprite))
(:num 1.0)
(:x (meters 0) (meters 16))
(:y (meters 0) (meters 16))
(:z (meters 0))
(:scale-x (meters 0.8) (meters 0.2))
(:scale-y (meters 0.8) (meters 0.2))
(:r 0.0)
(:g 0.0 128.0)
(:b 128.0)
(:a 8.0 8.0)
(:omega (degrees 0) (degrees 360))
(:vel-x (meters -0.017777778) 1 (meters 0.035555556))
(:vel-y (meters -0.00014814814) (meters 0.0002962963))
(:vel-z (meters 0.0016666667))
(:rotvel-z (degrees -0.6) 1 (degrees 1.2))
(:accel-z (meters -0.00005))
(:timer (seconds 1))
(:flags (sp-cpuinfo-flag-2 ready-to-launch))
)
)
(defpart 433
:init-specs ((:texture (laser-hit2-add level-default-sprite))
(:num 0.4)
(:scale-x (meters 2) (meters 0.1))
(:rot-x (degrees 2.25))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 0.0 1 20.0)
(:g 0.0 64.0)
(:b 100.0)
(:a 0.0)
(:scalevel-x (meters -0.006666667) (meters 0.015))
(:scalevel-y :copy scalevel-x)
(:fade-a 2.56)
(:timer (seconds 0.335))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 4.096)
(:func 'sparticle-track-root-prim)
(:next-time (seconds 0.167))
(:next-launcher 435)
)
)
(defpart 435
:init-specs ((:fade-a -2.56))
)
(defpart 1
:init-specs ((:texture (hotdot level-default-sprite))
(:num 8.0)
(:x (meters 0) (meters 0.1))
(:scale-x (meters 0.3) (meters 0.2))
(:scale-y :copy scale-x)
(:r 0.0 64.0)
(:g :copy r)
(:b 255.0)
(:a 64.0 64.0)
(:scalevel-x (meters -0.0013333333) (meters -0.0013333333))
(:scalevel-y (meters 0.0013333333) (meters 0.0013333333))
(:fade-a -0.21333334)
(:accel-y (meters 0.00066666666))
(:friction 0.95 0.04)
(:timer (seconds 1))
(:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14))
(:rotate-y (degrees 0) (degrees 3600))
)
)
(defpartgroup group-eco-dark-pill
:id 128
:flags (sp7)
:bounds (static-bspherem 0 0 0 4)
:scale (1.0 10.0 1.0)
:parts ((sp-item 438 :period (seconds 0.085) :length (seconds 0.017) :binding 436)
(sp-item 436 :flags (sp1 sp2 sp3))
(sp-item 436 :flags (sp1 sp2 sp3))
(sp-item 436 :flags (sp1 sp2 sp3))
(sp-item 436 :flags (sp1 sp2 sp3))
(sp-item 436 :flags (sp1 sp2 sp3))
(sp-item 436 :flags (sp1 sp2 sp3))
(sp-item 436 :flags (sp1 sp2 sp3))
(sp-item 436 :flags (sp1 sp2 sp3))
(sp-item 436 :flags (sp1 sp2 sp3))
(sp-item 436 :flags (sp1 sp2 sp3))
(sp-item 436 :flags (sp1 sp2 sp3))
(sp-item 436 :flags (sp1 sp2 sp3))
(sp-item 436 :flags (sp1 sp2 sp3))
(sp-item 436 :flags (sp1 sp2 sp3))
(sp-item 436 :flags (sp1 sp2 sp3))
(sp-item 436 :flags (sp1 sp2 sp3))
(sp-item 439 :period (seconds 0.085) :length (seconds 0.017) :binding 437)
(sp-item 437 :flags (sp1 sp2 sp3))
(sp-item 437 :flags (sp1 sp2 sp3))
(sp-item 437 :flags (sp1 sp2 sp3))
(sp-item 437 :flags (sp1 sp2 sp3))
(sp-item 437 :flags (sp1 sp2 sp3))
(sp-item 437 :flags (sp1 sp2 sp3))
(sp-item 437 :flags (sp1 sp2 sp3))
(sp-item 437 :flags (sp1 sp2 sp3))
(sp-item 437 :flags (sp1 sp2 sp3))
(sp-item 437 :flags (sp1 sp2 sp3))
(sp-item 437 :flags (sp1 sp2 sp3))
(sp-item 437 :flags (sp1 sp2 sp3))
(sp-item 437 :flags (sp1 sp2 sp3))
(sp-item 437 :flags (sp1 sp2 sp3))
(sp-item 437 :flags (sp1 sp2 sp3))
(sp-item 437 :flags (sp1 sp2 sp3))
(sp-item 440 :flags (sp6))
)
)
(defpart 440
:init-specs ((:texture (glow-soft level-default-sprite))
(:num 1.0)
(:scale-x (meters 2.5) (meters 0.1))
(:rot-x (degrees 2.25))
(:rot-z (degrees 17))
(:scale-y :copy scale-x)
(:r 128.0 128.0)
(:g 0.0)
(:b 255.0)
(:a 16.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 819.2)
(:func 'sparticle-track-root-prim)
)
)
(defpart 438
:init-specs ((:texture (middot level-default-sprite))
(:num 1.0)
(:scale-x (meters 0.1))
(:scale-y (meters 0.1))
(:r 255.0)
(:g 0.0)
(:b 0.0)
(:a 0.0)
(:timer (seconds 1.167))
(:flags (sp-cpuinfo-flag-14))
(:func 'sparticle-track-root-prim)
)
)
(defpart 436
:init-specs ((:texture (hotdot level-default-sprite))
(:num 1.0)
(:x (meters 0) (meters 16))
(:y (meters 0) (meters 16))
(:z (meters 0))
(:scale-x (meters 1.4) (meters 0.2))
(:scale-y (meters 1.4) (meters 0.2))
(:r 0.0 255.0)
(:g 0.0)
(:b 255.0)
(:a 6.0 6.0)
(:omega (degrees 0) (degrees 360))
(:vel-x (meters -0.053333335) 1 (meters 0.10666667))
(:vel-y (meters -0.00037037037) (meters 0.00074074074))
(:vel-z (meters 0.0016666667))
(:rotvel-z (degrees -1.2) 1 (degrees 2.4))
(:accel-z (meters -0.000041666666))
(:timer (seconds 1))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 ready-to-launch))
)
)
(defpart 439
:init-specs ((:texture (middot level-default-sprite))
(:num 1.0)
(:scale-x (meters 0.1))
(:scale-y (meters 0.1))
(:r 255.0)
(:g 0.0)
(:b 0.0)
(:a 0.0)
(:timer (seconds 1.167))
(:flags (sp-cpuinfo-flag-14))
(:func 'sparticle-track-root-prim)
)
)
(defpart 437
:init-specs ((:texture (middot level-default-sprite))
(:num 1.0)
(:x (meters 0) (meters 16))
(:y (meters 0) (meters 16))
(:z (meters 0))
(:scale-x (meters 0.4) (meters 0.2))
(:scale-y (meters 0.4) (meters 0.2))
(:r 255.0)
(:g 255.0)
(:b 255.0)
(:a 24.0)
(:omega (degrees 0) (degrees 360))
(:vel-x (meters -0.053333335) 1 (meters 0.10666667))
(:vel-y (meters -0.00037037037) (meters 0.00074074074))
(:vel-z (meters 0.0016666667))
(:rotvel-z (degrees -0.6) 1 (degrees 1.2))
(:accel-z (meters -0.000041666666))
(:timer (seconds 1))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-4 ready-to-launch))
)
)
(defpartgroup group-eco-green
:id 129
:bounds (static-bspherem 0 0 0 1)
:parts ((sp-item 444 :flags (sp3) :binding 441)
(sp-item 441 :flags (sp2 sp3) :binding 442)
(sp-item 441 :flags (sp2 sp3) :binding 442)
(sp-item 441 :flags (sp2 sp3) :binding 442)
(sp-item 441 :flags (sp2 sp3) :binding 442)
(sp-item 441 :flags (sp2 sp3) :binding 442)
(sp-item 441 :flags (sp2 sp3) :binding 442)
(sp-item 441 :flags (sp2 sp3) :binding 442)
(sp-item 442 :fade-after (meters 90) :flags (sp2 sp3) :binding 443)
(sp-item 442 :fade-after (meters 90) :flags (sp2 sp3) :binding 443)
(sp-item 442 :fade-after (meters 90) :flags (sp2 sp3) :binding 443)
(sp-item 442 :fade-after (meters 90) :flags (sp2 sp3) :binding 443)
(sp-item 442 :fade-after (meters 90) :flags (sp2 sp3) :binding 443)
(sp-item 443 :fade-after (meters 40) :falloff-to (meters 60) :flags (sp2))
(sp-item 443 :fade-after (meters 40) :falloff-to (meters 60) :flags (sp2))
(sp-item 443 :fade-after (meters 40) :falloff-to (meters 60) :flags (sp2))
(sp-item 443 :fade-after (meters 40) :falloff-to (meters 60) :flags (sp2))
(sp-item 443 :fade-after (meters 40) :falloff-to (meters 60) :flags (sp2))
)
)
(defpart 444
:init-specs ((:texture (starflash level-default-sprite))
(:num 1.0)
(:x (meters 4))
(:scale-x (meters 0.01))
(:scale-y :copy scale-x)
(:r 0.0)
(:g 0.0)
(:a 1.0)
(:timer (seconds -0.005))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14))
(:func 'sparticle-track-root-prim)
)
)
(defpart 441
:init-specs ((:texture (bigpuff level-default-sprite))
(:num 6.0)
(:y (meters 0) (meters 16))
(:z (meters 0.3) (meters 0.25))
(:scale-x (meters 2) (meters 1))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 32.0 92.0)
(:g 128.0 128.0)
(:a 24.0)
(:omega (degrees 0) (degrees 360))
(:vel-x (meters 0.0148148155) (meters 0.0044444446))
(:vel-y (meters 0))
(:vel-z (meters 0))
(:rotvel-z (degrees -0.1) 1 (degrees 0.2))
(:timer (seconds -0.005))
(:flags (sp-cpuinfo-flag-3 ready-to-launch sp-cpuinfo-flag-14))
(:func 'eco-fadeout)
(:next-time (seconds 0.035))
(:next-launcher 445)
)
)
(defpart 445
:init-specs ((:fade-a -0.16) (:timer (seconds 0.5)))
)
(defpart 442
:init-specs ((:texture (hotdot level-default-sprite))
(:num 1.0)
(:y (meters 0) (meters 16))
(:z (meters 0.3))
(:scale-x (meters 0.3) (meters 0.2))
(:scale-y :copy scale-x)
(:r 64.0 64.0)
(:g 255.0)
(:a 64.0)
(:omega (degrees 0) (degrees 360))
(:vel-x (meters 0.053333335) (meters 0.0148148155))
(:vel-y (meters 0))
(:vel-z (meters 0))
(:timer (seconds -0.005))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 ready-to-launch sp-cpuinfo-flag-14))
(:func 'eco-fadeout)
(:next-time (seconds 0.035))
(:next-launcher 446)
)
)
(defpart 446
:init-specs ((:fade-a -0.42666668) (:timer (seconds 0.5)))
)
(defpart 443
:init-specs ((:texture (hotdot level-default-sprite))
(:num 0.25)
(:y (meters -0.05))
(:scale-x (meters 0.3))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 255.0)
(:b 0.0)
(:a 48.0)
(:scalevel-x (meters -0.00075757573))
(:scalevel-y :copy scalevel-x)
(:fade-r -2.8333333)
(:accel-y (meters -0.00015))
(:timer (seconds 0.1) (seconds 0.997))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14))
(:next-time (seconds 0.3))
(:next-launcher 427)
)
)
(defpart 427
:init-specs ((:fade-r 0.0))
)
(defpartgroup group-eco-dark-pill-move-collect
:id 130
:duration (seconds 0.5)
:linger-duration (seconds 2)
:bounds (static-bspherem 0 0 0 2)
:parts ((sp-item 449 :flags (sp3) :binding 447)
(sp-item 447 :flags (sp2 sp3) :binding 448)
(sp-item 447 :flags (sp2 sp3) :binding 448)
(sp-item 447 :flags (sp2 sp3) :binding 448)
(sp-item 447 :flags (sp2 sp3) :binding 448)
(sp-item 447 :flags (sp2 sp3) :binding 448)
(sp-item 448 :fade-after (meters 40) :flags (sp2))
(sp-item 448 :fade-after (meters 40) :flags (sp2))
(sp-item 448 :fade-after (meters 40) :flags (sp2))
(sp-item 448 :fade-after (meters 40) :flags (sp2))
(sp-item 448 :fade-after (meters 40) :flags (sp2))
)
)
(defpart 449
:init-specs ((:texture (starflash level-default-sprite))
(:num 1.0)
(:scale-x (meters 4))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 32.0 92.0)
(:b 128.0 128.0)
(:a 64.0)
(:fade-a -3.2)
(:timer (seconds 0.5))
(:flags (sp-cpuinfo-flag-3 sp-cpuinfo-flag-14))
(:func 'part-tracker-track-root)
(:next-time (seconds 0.05))
(:next-launcher 450)
)
)
(defpart 450
:init-specs ((:scale-x (meters 0.1)) (:scale-y :copy scale-x) (:a 0.0) (:fade-a 0.0))
)
(defpart 451
:init-specs ((:texture (hotdot level-default-sprite))
(:num 5.0)
(:y (meters -4) (meters 16))
(:z (meters 0.08))
(:scale-x (meters 0.3) (meters 0.2))
(:scale-y :copy scale-x)
(:r 128.0)
(:b 255.0)
(:a 127.0)
(:omega (degrees 0) (degrees 360))
(:vel-x (meters -0.017777778) 2.0 (meters 0.035555556))
(:vel-y (meters 0))
(:vel-z (meters 0.08))
(:accel-z (meters -0.0053333333))
(:timer (seconds 0.5))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 ready-to-launch sp-cpuinfo-flag-14))
)
)
(defpart 447
:init-specs ((:texture (hotdot level-default-sprite))
(:num 1.0)
(:y (meters -4) (meters 16))
(:z (meters 0.08))
(:scale-x (meters 0.25) (meters 0.05))
(:scale-y :copy scale-x)
(:r 128.0)
(:b 255.0)
(:a 127.0)
(:omega (degrees 0) (degrees 360))
(:vel-x (meters 0.017777778) (meters 0.017777778))
(:vel-y (meters 0))
(:vel-z (meters 0.04))
(:accel-z (meters -0.0026666666))
(:timer (seconds 0.5))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 ready-to-launch sp-cpuinfo-flag-14))
)
)
(defpart 452
:init-specs ((:texture (hotdot level-default-sprite))
(:num 1.0)
(:y (meters -0.05))
(:scale-x (meters 0.3))
(:scale-y :copy scale-x)
(:r 255.0)
(:b 255.0)
(:a 96.0)
(:scalevel-x (meters -0.00075757573))
(:scalevel-y :copy scalevel-x)
(:fade-r -2.8333333)
(:accel-y (meters -0.000100000005))
(:timer (seconds 0.1) (seconds 0.997))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14))
(:next-time (seconds 0.3))
(:next-launcher 453)
)
)
(defpart 448
:init-specs ((:texture (hotdot level-default-sprite))
(:num 1.0)
(:y (meters -0.05))
(:scale-x (meters 0.2))
(:scale-y :copy scale-x)
(:r 255.0)
(:b 255.0)
(:a 96.0)
(:scalevel-x (meters -0.0004545455))
(:scalevel-y :copy scalevel-x)
(:fade-r -2.8333333)
(:accel-y (meters -0.000100000005))
(:timer (seconds 0.1) (seconds 0.997))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14))
(:next-time (seconds 0.3))
(:next-launcher 453)
)
)
(defpartgroup group-generic-collect
:id 131
:duration (seconds 0.017)
:linger-duration (seconds 4)
:flags (sp0)
:bounds (static-bspherem 0 0 0 12)
:parts ((sp-item 454))
)
(defpart 455
:init-specs ((:fade-a -0.15238096))
)
(defpart 454
:init-specs ((:texture (motion-blur-part level-default-sprite))
(:num 16.0)
(:scale-x (meters 6) (meters 1))
(:rot-x 4)
(:rot-z (degrees 0) (degrees 360))
(:scale-y (meters 0.5) (meters 1))
(:r 64.0 64.0)
(:g :copy r)
(:b :copy r)
(:a 0.0)
(:scalevel-x (meters 0.009765625))
(:rotvel-z (degrees -0.3) (degrees 0.6))
(:scalevel-y (meters 0.009765625))
(:fade-a 2.1333334)
(:timer (seconds 1.5))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14))
(:func 'sparticle-track-root)
(:next-time (seconds 0.017) (seconds 0.065))
(:next-launcher 455)
)
)
(defpart 456
:init-specs ((:texture (motion-blur-part level-default-sprite))
(:num 6.0)
(:scale-x (meters 8) (meters 2))
(:rot-x 4)
(:rot-z (degrees 0) (degrees 360))
(:scale-y (meters 0.5))
(:r 64.0 64.0)
(:g :copy r)
(:b :copy r)
(:a 0.0)
(:scalevel-x (meters 0.009765625))
(:rotvel-z (degrees -0.3) (degrees 0.6))
(:fade-a 2.1333334)
(:timer (seconds 1.5))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14))
(:func 'sparticle-track-root)
(:next-time (seconds 0.017) (seconds 0.065))
(:next-launcher 455)
)
)
(defpart 457
:init-specs ((:texture (starflash level-default-sprite))
(:num 1.0)
(:scale-x (meters 6))
(:rot-z (degrees 0))
(:scale-y :copy scale-x)
(:r 64.0 64.0)
(:g :copy r)
(:b :copy r)
(:a 0.0)
(:scalevel-x (meters 0.1))
(:rotvel-z (degrees -0.8))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.42666668)
(:timer (seconds 1))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14))
(:func 'sparticle-track-root)
(:next-time (seconds 0.2))
(:next-launcher 458)
)
)
(defpartgroup group-skill-glow-red
:id 132
:flags (sp1)
:bounds (static-bspherem 0 0 0 1)
:parts ((sp-item 459 :fade-after (meters 150) :flags (sp6 sp7)))
)
(defpart 459
:init-specs ((:texture (glow-soft level-default-sprite))
(:num 1.0)
(:scale-x (meters 2.2))
(:rot-x (degrees 2.25))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 90.0)
(:b 64.0)
(:a 16.0)
(:omega (degrees 13511.25))
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 2867.2)
(:rotate-y (degrees 0))
)
)
(defpartgroup group-skill-glow-yellow
:id 133
:flags (sp1)
:bounds (static-bspherem 0 0 0 1)
:parts ((sp-item 460 :fade-after (meters 150) :flags (sp6 sp7)))
)
(defpart 460
:init-specs ((:texture (glow-soft level-default-sprite))
(:num 1.0)
(:scale-x (meters 2.2))
(:rot-x (degrees 2.25))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 192.0)
(:b 64.0)
(:a 16.0)
(:omega (degrees 13511.25))
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 2867.2)
(:rotate-y (degrees 0))
)
)
(defpartgroup group-gem-glow
:id 134
:bounds (static-bspherem 0 0 0 1)
:parts ((sp-item 461 :flags (sp6 sp7)) (sp-item 462 :flags (sp6 sp7)) (sp-item 463 :flags (sp6 sp7)))
)
(defpart 461
:init-specs ((:texture (glow-soft level-default-sprite))
(:num 1.0)
(:scale-x (meters 2.2))
(:rot-x (degrees 2.25))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 192.0)
(:b 64.0)
(:a 16.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 2867.2)
(:rotate-y (degrees 0))
)
)
(defpart 462
:init-specs ((:texture (glow-soft level-default-sprite))
(:num 1.0)
(:z (meters 0.3))
(:scale-x (meters 1.75))
(:rot-x (degrees 2.25))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 192.0)
(:b 64.0)
(:a 12.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 1638.4)
(:rotate-y (degrees 0))
)
)
(defpart 463
:init-specs ((:texture (glow-soft level-default-sprite))
(:num 1.0)
(:z (meters -0.3))
(:scale-x (meters 1.75))
(:rot-x (degrees 2.25))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 192.0)
(:b 64.0)
(:a 12.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 1638.4)
(:rotate-y (degrees 0))
)
)
(defpart 464
:init-specs ((:texture (glow-soft level-default-sprite))
(:num 1.0)
(:scale-x (meters 1.5))
(:rot-x (degrees 2.25))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 192.0)
(:b 64.0)
(:a 16.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 1638.4)
)
)
(defpartgroup group-gem-collect
:id 135
:duration (seconds 0.1)
:linger-duration (seconds 1)
:flags (sp0)
:bounds (static-bspherem 0 0 0 12)
:parts ((sp-item 465 :period (seconds 0.5) :length (seconds 0.017))
(sp-item 466 :period (seconds 0.5) :length (seconds 0.067))
)
)
(defpart 466
:init-specs ((:texture (suckpart level-default-sprite))
(:num 3.0 1.0)
(:scale-x (meters 16) (meters 1))
(:rot-x 4)
(:rot-z (degrees 0) (degrees 3600))
(:scale-y (meters 0.005) (meters 0.005))
(:r 255.0)
(:g 128.0 128.0)
(:b 0.0)
(:a 16.0)
(:scalevel-x (meters -0.4))
(:scalevel-y (meters 0.00125))
(:fade-a 0.2 0.4)
(:timer (seconds 0.135))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 12288.0)
(:func 'sparticle-track-root)
)
)
(defpart 465
:init-specs ((:texture (glow level-default-sprite))
(:num 1.0)
(:scale-x (meters 16))
(:rot-x (degrees 11.25))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 128.0 128.0)
(:b 0.0)
(:a 0.0)
(:scalevel-x (meters -0.23333333))
(:scalevel-y :copy scalevel-x)
(:fade-a 0.33333334)
(:timer (seconds 0.267))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 12288.0)
(:func 'sparticle-track-root)
(:next-time (seconds 0.2))
(:next-launcher 467)
)
)
(defpart 467
:init-specs ((:a 16.0) (:fade-a -0.8))
)
(defpart 468
:init-specs ((:texture (glow-soft level-default-sprite))
(:num 1.0)
(:scale-x (meters 0.5))
(:rot-x (degrees 2.25))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 192.0)
(:b 64.0)
(:a 8.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 1638.4)
)
)
(defpartgroup group-ammo-yellow-collect
:id 136
:duration (seconds 0.017)
:linger-duration (seconds 4)
:flags (sp0)
:bounds (static-bspherem 0 0 0 12)
:parts ((sp-item 249))
)
(defpartgroup group-ammo-red-collect
:id 137
:duration (seconds 0.017)
:linger-duration (seconds 4)
:flags (sp0)
:bounds (static-bspherem 0 0 0 12)
:parts ((sp-item 249))
)
(defpartgroup group-ammo-blue-collect
:id 138
:duration (seconds 0.017)
:linger-duration (seconds 4)
:flags (sp0)
:bounds (static-bspherem 0 0 0 12)
:parts ((sp-item 249))
)
(defpartgroup group-ammo-dark-collect
:id 139
:duration (seconds 0.017)
:linger-duration (seconds 4)
:flags (sp0)
:bounds (static-bspherem 0 0 0 12)
:parts ((sp-item 249))
)
(defpartgroup group-eco-dark-pill-collect
:id 140
:duration (seconds 0.1)
:linger-duration (seconds 1)
:flags (sp0)
:bounds (static-bspherem 0 0 0 12)
:parts ((sp-item 469 :period (seconds 0.5) :length (seconds 0.017))
(sp-item 470 :period (seconds 0.5) :length (seconds 0.067))
)
)
(defpart 470
:init-specs ((:texture (suckpart level-default-sprite))
(:num 3.0 1.0)
(:scale-x (meters 24) (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 0.0)
(:b 255.0)
(:a 16.0)
(:scalevel-x (meters -0.6))
(:scalevel-y (meters 0.00125))
(:fade-a 0.2 0.4)
(:timer (seconds 0.135))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 12288.0)
(:func 'sparticle-track-root)
)
)
(defpart 469
:init-specs ((:texture (glow level-default-sprite))
(:num 1.0)
(:scale-x (meters 20))
(:rot-x (degrees 11.25))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 128.0 128.0)
(:g 0.0)
(:b 255.0)
(:a 0.0)
(:scalevel-x (meters -0.3))
(:scalevel-y :copy scalevel-x)
(:fade-a 0.33333334)
(:timer (seconds 0.267))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 12288.0)
(:func 'sparticle-track-root)
(:next-time (seconds 0.2))
(:next-launcher 471)
)
)
(defpart 471
:init-specs ((:a 16.0) (:fade-a -0.8))
)
(defpartgroup group-green-collect
:id 141
:duration (seconds 1)
:linger-duration (seconds 2)
:flags (sp0)
:bounds (static-bspherem 0 0 0 12)
:parts ((sp-item 474 :period (seconds 1.5) :length (seconds 0.017) :offset 100)
(sp-item 475 :period (seconds 1.5) :length (seconds 0.067) :offset 125)
(sp-item 476 :fade-after (meters 60) :falloff-to (meters 60) :period (seconds 1.5) :length (seconds 0.067) :binding 472)
(sp-item 472 :fade-after (meters 80) :flags (sp2 sp3) :binding 473)
(sp-item 472 :flags (sp2 sp3) :binding 473)
(sp-item 472 :flags (sp2 sp3) :binding 473)
(sp-item 472 :flags (sp2 sp3) :binding 473)
(sp-item 472 :flags (sp2 sp3) :binding 473)
(sp-item 472 :flags (sp2 sp3) :binding 473)
(sp-item 472 :flags (sp2 sp3) :binding 473)
(sp-item 472 :flags (sp2 sp3) :binding 473)
(sp-item 472 :flags (sp2 sp3) :binding 473)
(sp-item 472 :flags (sp2 sp3) :binding 473)
(sp-item 472 :flags (sp2 sp3) :binding 473)
(sp-item 472 :flags (sp2 sp3) :binding 473)
(sp-item 472 :flags (sp2 sp3) :binding 473)
(sp-item 472 :flags (sp2 sp3) :binding 473)
(sp-item 472 :flags (sp2 sp3) :binding 473)
(sp-item 472 :flags (sp2 sp3) :binding 473)
(sp-item 473 :flags (sp2))
(sp-item 473 :flags (sp2))
(sp-item 473 :flags (sp2))
(sp-item 473 :flags (sp2))
(sp-item 473 :flags (sp2))
(sp-item 473 :flags (sp2))
(sp-item 473 :flags (sp2))
(sp-item 473 :flags (sp2))
(sp-item 473 :flags (sp2))
(sp-item 473 :flags (sp2))
(sp-item 473 :flags (sp2))
(sp-item 473 :flags (sp2))
(sp-item 473 :flags (sp2))
(sp-item 473 :flags (sp2))
(sp-item 473 :flags (sp2))
(sp-item 473 :flags (sp2))
)
)
(defpart 476
:init-specs ((:texture (hotdot level-default-sprite))
(:num 6.0)
(:scale-x (meters 0.01))
(:scale-y :copy scale-x)
(:timer (seconds 0.5))
(:flags (sp-cpuinfo-flag-3 sp-cpuinfo-flag-14))
(:func 'sparticle-track-root)
(:rotate-y (degrees 0) (degrees 360))
)
)
(defpart 472
:init-specs ((:texture (hotdot level-default-sprite))
(:num 1.0)
(:y (meters 0) (meters 16))
(:z (meters 8))
(:scale-x (meters 0.2) (meters 0.1))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 255.0)
(:b 0.0)
(:a 28.0)
(:omega (degrees 0) (degrees 360))
(:vel-x (meters -0.008888889) (meters 0.017777778))
(:vel-z (meters -0.053333335))
(:fade-r -0.8)
(:fade-a 0.8)
(:timer (seconds 0.5))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 ready-to-launch sp-cpuinfo-flag-14))
(:next-time (seconds 1.5) (seconds 0.497))
(:next-launcher 477)
)
)
(defpart 477
:init-specs ((:fade-r 0.0) (:fade-a -0.8466667 -0.8466667) (:timer (seconds 0.5)))
)
(defpart 473
:init-specs ((:texture (hotdot level-default-sprite))
(:num 1.0)
(:scale-x (meters 0.2) (meters 0.1))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 255.0)
(:b 0.0)
(:a 96.0)
(:scalevel-x (meters -0.0006060606))
(:scalevel-y :copy scalevel-x)
(:fade-r -2.8333333)
(:accel-y (meters -0.000033333334) (meters -0.00006666667))
(:timer (seconds 0.1) (seconds 0.997))
(:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14))
(:next-time (seconds 0.3))
(:next-launcher 427)
)
)
(defpart 475
:init-specs ((:texture (suckpart level-default-sprite))
(:num 3.0 1.0)
(:scale-x (meters 24) (meters 1))
(:rot-x 4)
(:rot-z (degrees 0) (degrees 3600))
(:scale-y (meters 0.005) (meters 0.005))
(:r 0.0)
(:g 128.0 128.0)
(:b 0.0)
(:a 16.0)
(:scalevel-x (meters -0.6))
(:scalevel-y (meters 0.00125))
(:fade-a 0.2 0.4)
(:timer (seconds 0.135))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 12288.0)
(:func 'sparticle-track-root)
)
)
(defpart 474
:init-specs ((:texture (glow level-default-sprite))
(:num 1.0)
(:scale-x (meters 20))
(:rot-x (degrees 11.25))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 0.0)
(:g 128.0 128.0)
(:b 0.0)
(:a 0.0)
(:scalevel-x (meters -0.21176471))
(:scalevel-y :copy scalevel-x)
(:fade-r 1.5058824)
(:fade-a 0.28235295)
(:timer (seconds 0.35))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 12288.0)
(:func 'sparticle-track-root)
(:next-time (seconds 0.285))
(:next-launcher 478)
)
)
(defpart 478
:init-specs ((:a 16.0) (:fade-r -12.8) (:fade-a -1.0))
)
(defpartgroup group-skate-point
:id 142
:linger-duration (seconds 1)
:bounds (static-bspherem 0 0 0 8)
:parts ((sp-item 479 :fade-after (meters 90) :falloff-to (meters 90) :flags (is-3d))
(sp-item 480 :flags (is-3d))
(sp-item 481 :flags (sp6))
(sp-item 482 :flags (is-3d sp6))
(sp-item 483 :fade-after (meters 120) :falloff-to (meters 120))
)
)
(defpart 483
:init-specs ((:texture (hotdot level-default-sprite))
(:num 1.0 1.0)
(:scale-x (meters 0.1) (meters 0.15))
(:rot-x 4)
(:scale-y :copy scale-x)
(:r 255.0)
(:g 64.0 32.0)
(:b 0.0 16.0)
(:a 96.0 32.0)
(:omega (degrees 0.19125001))
(:vel-y (meters 0.053333335) (meters 0.026666667))
(:scalevel-x (meters -0.00033333333))
(:scalevel-y :copy scalevel-x)
(:fade-a -1.7066667)
(:friction 0.97)
(: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))
(:conerot-z (degrees 0) (degrees 3600))
)
)
(defpart 479
:init-specs ((:texture (new 'static 'texture-id :page #x17e))
(:num 0.05)
(:scale-x (meters 0.5))
(:rot-x (degrees 0) (degrees 3600))
(:rot-y (degrees 0) (degrees 3600))
(:rot-z (degrees 0) (degrees 3600))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 64.0 64.0)
(:b 16.0)
(:a 64.0)
(:scalevel-x (meters 0.0055555557))
(:rotvel-x (degrees 0.8))
(:rotvel-y (degrees 0.8))
(:rotvel-z (degrees 0.8))
(:scalevel-y :copy scalevel-x)
(:timer (seconds 1.5))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 left-multiply-quat))
)
)
(defpart 482
:init-specs ((:texture (hotdot level-default-sprite))
(:birth-func 'birth-func-camera-orient)
(:num 1.0)
(:scale-x (meters 1.5) (meters 2.5))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 255.0)
(:b 255.0)
(:a 128.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3))
)
)
(defpart 480
:init-specs ((:texture (new 'static 'texture-id :page #x17e))
(:birth-func 'birth-func-camera-orient)
(:num 1.0)
(:scale-x (meters 2.9) (meters 0.3))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 96.0)
(:b 16.0)
(:a 64.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3))
)
)
(defpart 481
:init-specs ((:texture (glow-soft level-default-sprite))
(:num 1.0)
(:scale-x (meters 8) (meters 0.2))
(:rot-x (degrees 22.5))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 96.0)
(:b 16.0)
(:a 32.0 8.0)
(:omega (degrees 22509))
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 0.0)
(:rotate-y (degrees 0))
)
)
(defpartgroup group-skate-point-explode
:id 143
:duration (seconds 0.017)
:linger-duration (seconds 1)
:bounds (static-bspherem 0 0 0 32)
:parts ((sp-item 484 :flags (sp6)))
)
(defpart 484
:init-specs ((:texture (glow level-default-sprite))
(:num 1.0)
(:scale-x (meters 16))
(:rot-x (degrees 22.5))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 96.0)
(:b 16.0)
(:a 128.0)
(:omega (degrees 22509))
(:scalevel-x (meters -0.26666668))
(:scalevel-y :copy scalevel-x)
(:fade-g -1.6)
(:fade-a -3.2)
(:timer (seconds 0.135))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 0.0)
(:rotate-y (degrees 0))
)
)
(defpartgroup group-part-vent-light-active
:id 144
:bounds (static-bspherem 0 5 0 5)
:parts ((sp-item 485 :flags (is-3d))
(sp-item 486 :flags (is-3d))
(sp-item 487 :flags (is-3d))
(sp-item 488 :flags (is-3d))
(sp-item 489)
(sp-item 490)
)
)
(defpart 485
:init-specs ((:texture (light-burst level-default-sprite))
(:num 0.1 0.1)
(:y (meters -11))
(:scale-x (meters 40))
(:rot-z (degrees 90))
(:scale-y (meters 2.5))
(:r 64.0)
(:g 64.0)
(:b 128.0)
(:a 0.0)
(:fade-a 0.64 0.64)
(:timer (seconds 0.335))
(:flags (sp-cpuinfo-flag-3 launch-along-z left-multiply-quat))
(:func 'sparticle-3d-rotate-xz-to-camera)
(:next-time (seconds 0.167))
(:next-launcher 491)
(:rotate-y (degrees 0))
)
)
(defpart 491
:init-specs ((:fade-a -0.64 -0.64))
)
(defpart 486
:init-specs ((:texture (light-burst level-default-sprite))
(:num 0.1 0.1)
(:y (meters -11))
(:scale-x (meters 40))
(:rot-z (degrees 90))
(:scale-y (meters 2.2))
(:r 64.0)
(:g 64.0)
(:b 128.0)
(:a 0.0)
(:fade-a 0.32 0.64)
(:timer (seconds 0.335))
(:flags (sp-cpuinfo-flag-3 launch-along-z left-multiply-quat))
(:func 'sparticle-3d-rotate-xz-to-camera)
(:next-time (seconds 0.167))
(:next-launcher 491)
(:rotate-y (degrees 0))
)
)
(defpart 487
:init-specs ((:texture (light-burst level-default-sprite))
(:num 0.1 0.1)
(:y (meters -11))
(:scale-x (meters 40))
(:rot-z (degrees 90))
(:scale-y (meters 2))
(:r 128.0)
(:g 128.0)
(:b 255.0)
(:a 0.0)
(:fade-a 0.32 0.64)
(:timer (seconds 0.335))
(:flags (sp-cpuinfo-flag-3 launch-along-z left-multiply-quat))
(:func 'sparticle-3d-rotate-xz-to-camera)
(:next-time (seconds 0.167))
(:next-launcher 491)
(:rotate-y (degrees 0))
)
)
(defpart 488
:init-specs ((:texture (static1 level-default-sprite))
(:birth-func 'birth-func-texture-group)
(:num 0.1)
(:x (meters -0.5) (meters 1))
(:y (meters -2))
(:z (meters -0.5) (meters 1))
(:scale-x (meters 10))
(:rot-z (degrees 90))
(:scale-y (meters 0.25) (meters 0.5))
(:r 64.0)
(:g 64.0)
(:b 128.0)
(:a 0.0)
(:scalevel-x (meters 0.01) (meters 0.006666667))
(:fade-a 0.10666667 0.10666667)
(:timer (seconds 2))
(:flags (sp-cpuinfo-flag-3 launch-along-z left-multiply-quat))
(:userdata :data (new 'static 'boxed-array :type int32 5 1 0 #x40b000 #x40b100))
(:func 'sparticle-3d-rotate-xz-to-camera)
(:next-time (seconds 1))
(:next-launcher 492)
(:rotate-y (degrees 0))
)
)
(defpart 492
:init-specs ((:fade-a -0.21333334 -0.21333334))
)
(defpart 489
:init-specs ((:texture (colorflash level-default-sprite))
(:num 0.5 0.5)
(:x (meters -0.5) (meters 1))
(:y (meters 0) (meters 5))
(:z (meters -0.5) (meters 1))
(:scale-x (meters 0.05) (meters 0.05))
(:scale-y :copy scale-x)
(:r 0.0 1 128.0)
(:g 0.0 1 128.0)
(:b 0.0 1 128.0)
(:a 0.0)
(:vel-y (meters 0.00083333335) (meters 0.0016666667))
(:fade-a 0.85333335)
(:timer (seconds 1) (seconds 1.665))
(:flags (sp-cpuinfo-flag-3))
(:next-time (seconds 0.5))
(:next-launcher 493)
(:conerot-x (degrees -50.000004) (degrees 100.00001))
(:rotate-y (degrees 0) (degrees 3600))
)
)
(defpart 493
:init-specs ((:fade-a -0.85333335))
)
(defpart 490
:init-specs ((:texture (laser-hit2-add level-default-sprite))
(:num 0.5)
(:y (meters 0.2))
(:scale-x (meters 0.1) (meters 0.1))
(:rot-x (degrees 6.7500005))
(:rot-z (degrees 0) 1 (degrees 180))
(:scale-y :copy scale-x)
(:r 64.0)
(:g 64.0)
(:b 128.0)
(:a 0.0)
(:omega (degrees 4511.25))
(:scalevel-x (meters 0.0033333334) (meters 0.0033333334))
(:scalevel-y (meters 0.006666667) (meters 0.016666668))
(:fade-a 0.10666667 0.10666667)
(:timer (seconds 2))
(:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 409.6)
(:next-time (seconds 1))
(:next-launcher 494)
)
)
(defpart 494
:init-specs ((:fade-a -0.21333334))
)
(defpartgroup group-part-vent-light-touched
:id 145
:bounds (static-bspherem 0 5 0 5)
:parts ((sp-item 495 :flags (is-3d))
(sp-item 496 :flags (is-3d))
(sp-item 497 :flags (is-3d))
(sp-item 498 :flags (is-3d))
(sp-item 499 :flags (is-3d))
(sp-item 500)
(sp-item 501)
)
)
(defpart 495
:init-specs ((:texture (light-burst level-default-sprite))
(:num 0.1 0.1)
(:y (meters -15))
(:scale-x (meters 60))
(:rot-z (degrees 90))
(:scale-y (meters 2.5))
(:r 128.0)
(:g 128.0)
(:b 255.0)
(:a 0.0)
(:fade-a 0.64 0.64)
(:timer (seconds 0.335))
(:flags (sp-cpuinfo-flag-3 launch-along-z left-multiply-quat))
(:func 'sparticle-3d-rotate-xz-to-camera)
(:next-time (seconds 0.167))
(:next-launcher 502)
(:rotate-y (degrees 0))
)
)
(defpart 502
:init-specs ((:fade-a -0.64 -0.64))
)
(defpart 496
:init-specs ((:texture (light-burst level-default-sprite))
(:num 0.1 0.1)
(:y (meters -15))
(:scale-x (meters 60))
(:rot-z (degrees 90))
(:scale-y (meters 2.2))
(:r 128.0)
(:g 128.0)
(:b 255.0)
(:a 0.0)
(:fade-a 0.32 0.64)
(:timer (seconds 0.335))
(:flags (sp-cpuinfo-flag-3 launch-along-z left-multiply-quat))
(:func 'sparticle-3d-rotate-xz-to-camera)
(:next-time (seconds 0.167))
(:next-launcher 491)
(:rotate-y (degrees 0))
)
)
(defpart 497
:init-specs ((:texture (light-burst level-default-sprite))
(:num 0.1 0.1)
(:y (meters -15))
(:scale-x (meters 60))
(:rot-z (degrees 90))
(:scale-y (meters 2))
(:r 128.0)
(:g 128.0)
(:b 255.0)
(:a 0.0)
(:fade-a 0.32 0.64)
(:timer (seconds 0.335))
(:flags (sp-cpuinfo-flag-3 launch-along-z left-multiply-quat))
(:func 'sparticle-3d-rotate-xz-to-camera)
(:next-time (seconds 0.167))
(:next-launcher 502)
(:rotate-y (degrees 0))
)
)
(defpart 498
:init-specs ((:texture (light-burst level-default-sprite))
(:num 0.1 0.1)
(:y (meters -15))
(:scale-x (meters 60))
(:rot-z (degrees 90))
(:scale-y (meters 2))
(:r 128.0)
(:g 128.0)
(:b 255.0)
(:a 0.0)
(:scalevel-y (meters 0.016666668))
(:fade-a 0.32 0.64)
(:timer (seconds 0.335))
(:flags (sp-cpuinfo-flag-3 launch-along-z left-multiply-quat))
(:func 'sparticle-3d-rotate-xz-to-camera)
(:next-time (seconds 0.167))
(:next-launcher 502)
(:rotate-y (degrees 0))
)
)
(defpart 499
:init-specs ((:texture (static1 level-default-sprite))
(:birth-func 'birth-func-texture-group)
(:num 0.15 0.15)
(:x (meters -0.5) (meters 1))
(:y (meters -1))
(:z (meters -0.5) (meters 1))
(:scale-x (meters 1))
(:rot-z (degrees 90))
(:scale-y (meters 0.1) (meters 0.3))
(:r 128.0)
(:g 128.0)
(:b 255.0)
(:a 0.0)
(:scalevel-x (meters 0.06666667))
(:fade-a 0.10666667 0.10666667)
(:timer (seconds 2))
(:flags (sp-cpuinfo-flag-3 launch-along-z left-multiply-quat))
(:userdata :data (new 'static 'boxed-array :type int32 5 1 0 #x40b000 #x40b100))
(:func 'sparticle-3d-rotate-xz-to-camera)
(:next-time (seconds 1))
(:next-launcher 503)
(:rotate-y (degrees 0))
)
)
(defpart 503
:init-specs ((:fade-a -0.21333334 -0.21333334))
)
(defpart 500
:init-specs ((:texture (colorflash level-default-sprite))
(:num 2.0 2.0)
(:x (meters -0.5) (meters 1))
(:y (meters 0) (meters 10))
(:z (meters -0.5) (meters 1))
(:scale-x (meters 0.1) (meters 0.1))
(:scale-y :copy scale-x)
(:r 0.0 1 128.0)
(:g 0.0 1 128.0)
(:b 0.0 1 128.0)
(:a 0.0)
(:vel-y (meters -0.006666667) (meters 0.0033333334))
(:fade-a 2.56)
(:friction 1.1)
(:timer (seconds 0.335))
(:flags (sp-cpuinfo-flag-3))
(:next-time (seconds 0.167))
(:next-launcher 504)
(:conerot-x (degrees -170) (degrees 20))
(:rotate-y (degrees 0) (degrees 3600))
)
)
(defpart 504
:init-specs ((:fade-a -2.56))
)
(defpart 501
:init-specs ((:texture (laser-hit2-add level-default-sprite))
(:birth-func 'birth-func-texture-group)
(:num 1.0)
(:y (meters 0.2))
(:scale-x (meters 0.1) (meters 0.1))
(:rot-x (degrees 22.5))
(:rot-z (degrees 0) 1 (degrees 180))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 128.0)
(:b 255.0)
(:a 0.0)
(:omega (degrees 4511.25))
(:scalevel-x (meters 0.016666668) (meters 0.013333334))
(:scalevel-y (meters 0.06666667) (meters 0.033333335))
(:fade-a 0.16 0.16)
(:timer (seconds 0.667))
(:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata :data (new 'static 'boxed-array :type int32 5 1 0 #x408600 #x400700))
(:next-time (seconds 0.335))
(:next-launcher 505)
)
)
(defpart 505
:init-specs ((:fade-a -0.32))
)
(defpartgroup group-part-vent-dark-active
:id 146
:flags (sp0 sp4)
:bounds (static-bspherem 0 5 0 10)
:parts ((sp-item 506 :flags (is-3d sp3))
(sp-item 507 :flags (is-3d sp3))
(sp-item 508 :flags (is-3d sp3))
(sp-item 509)
(sp-item 510)
)
)
(defun sparticle-3d-rotate-xz-to-camera-eco-shaft ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 sprite-vec-data-3d))
(local-vars (v1-4 float) (v1-5 float))
(rlet ((vf0 :class vf)
(vf1 :class vf)
(vf2 :class vf)
)
(init-vf0-vector)
(new 'stack-no-clear 'vector)
(-> arg1 key proc)
(let ((a0-1 (math-camera-matrix))
(s5-0 (new 'stack-no-clear 'vector))
)
(set! (-> s5-0 quad) (-> a0-1 rvec quad))
(set! (-> s5-0 y) 0.0)
(vector-normalize! s5-0 1.0)
(let ((a1-3 (matrix-fr-compose (new 'stack-no-clear 'matrix) *up-vector* s5-0))
(s5-1 (new 'stack-no-clear 'quaternion))
)
(matrix->quaternion s5-1 a1-3)
(quaternion-rotate-local-z! s5-1 s5-1 -16384.0)
(quaternion-rotate-y! s5-1 s5-1 -16384.0)
(cond
((< (-> s5-1 w) 0.0)
(.lvf vf1 (&-> arg2 qx-qy-qz-sy quad))
(.lvf vf2 (&-> s5-1 quad))
(.sub.vf vf1 vf0 vf2 :mask #b111)
(.svf (&-> arg2 qx-qy-qz-sy quad) vf1)
(.mov v1-4 vf1)
)
(else
(.lvf vf1 (&-> arg2 qx-qy-qz-sy quad))
(.lvf vf2 (&-> s5-1 quad))
(.add.vf vf1 vf0 vf2 :mask #b111)
(.svf (&-> arg2 qx-qy-qz-sy quad) vf1)
(.mov v1-5 vf1)
)
)
)
)
0
(none)
)
)
(defun spt-func-part-vent-eco-dark-shaft ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 vector))
(sparticle-3d-rotate-xz-to-camera-eco-shaft arg0 arg1 (the-as sprite-vec-data-3d arg2))
(sparticle-texture-animate arg0 arg1 arg2)
(none)
)
(defpart 506
:init-specs ((:texture (lasersmoke-00 level-default-sprite))
(:num 1.0)
(:y (meters 4))
(:scale-x (meters 2.2))
(:scale-y (meters 10))
(:r 20.0)
(:g 0.0)
(:b 128.0)
(:a 64.0)
(:timer (seconds -0.005))
(:flags (sp-cpuinfo-flag-3 launch-along-z left-multiply-quat))
(:userdata :data (new 'static 'boxed-array :type int32
20
1
0
#x401b00
#x401c00
#x401d00
#x401e00
#x401f00
#x402000
#x402100
#x402200
#x402300
#x402400
#x402500
#x402600
#x402700
#x402800
#x402900
#x402a00
#x402b00
#x402c00
#x402d00
#x402e00
#x402f00
#x403000
#x403100
#x403200
#x403300
#x403400
#x403500
#x403600
#x403700
#x403800
)
)
(:func 'spt-func-part-vent-eco-dark-shaft)
(:rotate-y (degrees 0))
)
)
(defpart 507
:init-specs ((:texture (lasersmoke-00 level-default-sprite))
(:num 1.0)
(:y (meters 4))
(:scale-x (meters 2))
(:scale-y (meters 12))
(:r 60.0)
(:g 0.0)
(:b 128.0)
(:a 64.0)
(:timer (seconds -0.005))
(:flags (sp-cpuinfo-flag-3 launch-along-z left-multiply-quat))
(:userdata :data (new 'static 'boxed-array :type int32
25
1
0
#x403800
#x403700
#x403600
#x403500
#x403400
#x403300
#x403200
#x403100
#x403000
#x402f00
#x402e00
#x402d00
#x402c00
#x402b00
#x402a00
#x402900
#x402800
#x402700
#x402600
#x402500
#x402400
#x402300
#x402200
#x402100
#x402000
#x401f00
#x401e00
#x401d00
#x401c00
#x401b00
)
)
(:func 'spt-func-part-vent-eco-dark-shaft)
(:rotate-y (degrees 0))
)
)
(defpart 508
:init-specs ((:texture (lasersmoke-00 level-default-sprite))
(:num 1.0)
(:y (meters 4))
(:scale-x (meters 1.8))
(:scale-y (meters 14))
(:r 100.0)
(:g 0.0)
(:b 128.0)
(:a 64.0)
(:timer (seconds -0.005))
(:flags (sp-cpuinfo-flag-3 launch-along-z left-multiply-quat))
(:userdata :data (new 'static 'boxed-array :type int32
30
1
0
#x401b00
#x401c00
#x401d00
#x401e00
#x401f00
#x402000
#x402100
#x402200
#x402300
#x402400
#x402500
#x402600
#x402700
#x402800
#x402900
#x402a00
#x402b00
#x402c00
#x402d00
#x402e00
#x402f00
#x403000
#x403100
#x403200
#x403300
#x403400
#x403500
#x403600
#x403700
#x403800
)
)
(:func 'spt-func-part-vent-eco-dark-shaft)
(:rotate-y (degrees 0))
)
)
(defpart 511
:init-specs ((:texture (static1 level-default-sprite))
(:birth-func 'birth-func-texture-group)
(:num 0.1)
(:x (meters -0.5) (meters 1))
(:y (meters -2))
(:z (meters -0.5) (meters 1))
(:scale-x (meters 20))
(:rot-z (degrees 90))
(:scale-y (meters 0.25) (meters 0.5))
(:r 40.0 40.0)
(:g 0.0)
(:b 128.0 128.0)
(:a 0.0)
(:scalevel-x (meters -0.01) (meters -0.006666667))
(:fade-a 0.10666667 0.10666667)
(:timer (seconds 2))
(:flags (sp-cpuinfo-flag-3 launch-along-z left-multiply-quat))
(:userdata :data (new 'static 'boxed-array :type int32 5 1 0 #x40b000 #x40b100))
(:func 'sparticle-3d-rotate-xz-to-camera)
(:next-time (seconds 1))
(:next-launcher 512)
(:rotate-y (degrees 0))
)
)
(defpart 512
:init-specs ((:fade-a -0.21333334 -0.21333334))
)
(defpart 509
:init-specs ((:texture (flame01 level-default-sprite))
(:num 1.0 1.0)
(:x (meters -0.2) (meters 0.4))
(:y (meters 0) (meters 15))
(:z (meters -0.2) (meters 0.4))
(:scale-x (meters 0.3) (meters 1))
(:rot-z (degrees -10) (degrees 20))
(:scale-y (meters 1) (meters 1))
(:r 255.0)
(:g 0.0 128.0)
(:b :copy g)
(:a 0.0)
(:scalevel-x (meters 0.00033333333))
(:scalevel-y (meters 0.0033333334))
(:fade-g 0.053333335 0.053333335 :store)
(:fade-b '*sp-temp*)
(:fade-a 0.053333335 0.053333335)
(:accel-y (meters -0.00033333333) (meters -0.00016666666))
(:timer (seconds 5))
(:flags (sp-cpuinfo-flag-3))
(:func 'check-drop-group-center)
(:conerot-x (degrees -50.000004) (degrees 100.00001))
(:rotate-y (degrees 0) (degrees 3600))
)
)
(defpart 510
:init-specs ((:texture (explosion-nebula level-default-sprite))
(:num 1.0 1.0)
(:y (meters 3))
(:scale-x (meters 1) (meters 1))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 64.0)
(:g 0.0 64.0)
(:b 128.0)
(:a 0.0)
(:vel-y (meters -0.026666667))
(:scalevel-x (meters 0.0033333334))
(:rotvel-z (degrees -0.4) (degrees 0.8))
(:scalevel-y :copy scalevel-x)
(:fade-r -0.10666667 0.21333334)
(:fade-g -0.053333335 -0.053333335)
(:fade-b 0.10666667 0.10666667)
(:fade-a 0.21333334 0.21333334)
(:accel-x (meters -0.00033333333) (meters 0.00066666666))
(:accel-z (meters -0.00033333333) (meters 0.00066666666))
(:friction 0.97)
(:timer (seconds 2))
(:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-2 sp-cpuinfo-flag-3))
(:next-time (seconds 1))
(:next-launcher 513)
(:conerot-x (degrees 20))
(:rotate-y (degrees 0) (degrees 3600))
)
)
(defpart 513
:init-specs ((:fade-a -0.42666668 -0.42666668))
)
(defpartgroup group-part-vent-dark-touched
:id 147
:flags (sp0 sp4)
:bounds (static-bspherem 0 5 0 5)
:parts ((sp-item 514 :flags (is-3d) :period (seconds 2) :length (seconds 0.017))
(sp-item 515 :flags (is-3d) :period (seconds 2) :length (seconds 0.017))
(sp-item 516 :flags (is-3d) :period (seconds 2) :length (seconds 0.017))
(sp-item 517 :flags (is-3d))
(sp-item 518)
(sp-item 519)
(sp-item 520)
)
)
(defpart 514
:init-specs ((:texture (lasersmoke-00 level-default-sprite))
(:num 1.0)
(:y (meters 4))
(:scale-x (meters 2))
(:scale-y (meters 10))
(:r 20.0)
(:g 0.0)
(:b 128.0)
(:a 128.0)
(:timer (seconds 2))
(:flags (sp-cpuinfo-flag-3 launch-along-z left-multiply-quat))
(:userdata :data (new 'static 'boxed-array :type int32
10
1
0
#x401b00
#x401c00
#x401d00
#x401e00
#x401f00
#x402000
#x402100
#x402200
#x402300
#x402400
#x402500
#x402600
#x402700
#x402800
#x402900
#x402a00
#x402b00
#x402c00
#x402d00
#x402e00
#x402f00
#x403000
#x403100
#x403200
#x403300
#x403400
#x403500
#x403600
#x403700
#x403800
)
)
(:func 'spt-func-part-vent-eco-dark-shaft)
(:rotate-y (degrees 0))
)
)
(defpart 515
:init-specs ((:texture (lasersmoke-00 level-default-sprite))
(:num 1.0)
(:y (meters 4))
(:scale-x (meters 1.5))
(:scale-y (meters 12))
(:r 60.0)
(:g 0.0)
(:b 128.0)
(:a 128.0)
(:timer (seconds 2))
(:flags (sp-cpuinfo-flag-3 launch-along-z left-multiply-quat))
(:userdata :data (new 'static 'boxed-array :type int32
15
1
0
#x403800
#x403700
#x403600
#x403500
#x403400
#x403300
#x403200
#x403100
#x403000
#x402f00
#x402e00
#x402d00
#x402c00
#x402b00
#x402a00
#x402900
#x402800
#x402700
#x402600
#x402500
#x402400
#x402300
#x402200
#x402100
#x402000
#x401f00
#x401e00
#x401d00
#x401c00
#x401b00
)
)
(:func 'spt-func-part-vent-eco-dark-shaft)
(:rotate-y (degrees 0))
)
)
(defpart 516
:init-specs ((:texture (lasersmoke-00 level-default-sprite))
(:num 1.0)
(:y (meters 4))
(:scale-x (meters 1))
(:scale-y (meters 14))
(:r 100.0)
(:g 0.0)
(:b 128.0)
(:a 128.0)
(:timer (seconds 2))
(:flags (sp-cpuinfo-flag-3 launch-along-z left-multiply-quat))
(:userdata :data (new 'static 'boxed-array :type int32
20
1
0
#x401b00
#x401c00
#x401d00
#x401e00
#x401f00
#x402000
#x402100
#x402200
#x402300
#x402400
#x402500
#x402600
#x402700
#x402800
#x402900
#x402a00
#x402b00
#x402c00
#x402d00
#x402e00
#x402f00
#x403000
#x403100
#x403200
#x403300
#x403400
#x403500
#x403600
#x403700
#x403800
)
)
(:func 'spt-func-part-vent-eco-dark-shaft)
(:rotate-y (degrees 0))
)
)
(defpart 517
:init-specs ((:texture (light-burst level-default-sprite))
(:num 0.1 0.1)
(:y (meters -15))
(:scale-x (meters 60))
(:rot-z (degrees 90))
(:scale-y (meters 8))
(:r 128.0)
(:g 0.0)
(:b 255.0)
(:a 0.0)
(:scalevel-y (meters -0.053333335))
(:fade-a 0.64 0.64)
(:timer (seconds 0.335))
(:flags (sp-cpuinfo-flag-3 launch-along-z left-multiply-quat))
(:func 'sparticle-3d-rotate-xz-to-camera)
(:next-time (seconds 0.167))
(:next-launcher 521)
(:rotate-y (degrees 0))
)
)
(defpart 522
:init-specs ((:fade-a 0.0))
)
(defpart 518
:init-specs ((:texture (radial-gradient level-default-sprite))
(:num 2.0 2.0)
(:x (meters 8))
(:scale-x (meters 0.1))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 64.0)
(:b 128.0)
(:a 0.0)
(:omega (degrees 0.1125))
(:fade-a 0.42666668)
(:accel-x (meters -0.0016666667))
(:friction 0.98 0.01)
(:timer (seconds 1.5))
(:flags (sp-cpuinfo-flag-3))
(:func 'spt-func-part-vent-eco-dark-touched-specs)
(:rotate-x (degrees 0) (degrees 36000))
(:rotate-y (degrees 0) (degrees 36000))
(:rotate-z (degrees 0) (degrees 36000))
)
)
(defun spt-func-part-vent-eco-dark-touched-specs ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 vector))
(check-drop-group-center arg0 arg1 (the-as sparticle-launchinfo arg2))
(sparticle-motion-blur arg0 arg1 arg2)
(none)
)
(defpart 519
:init-specs ((:texture (flame01 level-default-sprite))
(:num 3.0 3.0)
(:x (meters -0.2) (meters 0.4))
(:y (meters 0) (meters 15))
(:z (meters -0.2) (meters 0.4))
(:scale-x (meters 0.3) (meters 1))
(:rot-z (degrees -10) (degrees 20))
(:scale-y (meters 1) (meters 1))
(:r 255.0)
(:g 0.0 128.0)
(:b :copy g)
(:a 0.0)
(:scalevel-x (meters 0.00033333333))
(:scalevel-y (meters 0.0033333334))
(:fade-g 0.053333335 0.053333335 :store)
(:fade-b '*sp-temp*)
(:fade-a 0.10666667 0.10666667)
(:accel-y (meters -0.00066666666) (meters -0.00033333333))
(:timer (seconds 5))
(:flags (sp-cpuinfo-flag-3))
(:func 'check-drop-group-center)
(:conerot-x (degrees -50.000004) (degrees 100.00001))
(:rotate-y (degrees 0) (degrees 3600))
)
)
(defpart 520
:init-specs ((:texture (explosion-nebula level-default-sprite))
(:num 1.0 1.0)
(:y (meters 3))
(:scale-x (meters 1) (meters 1))
(: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.026666667))
(:scalevel-x (meters 0.0033333334))
(:rotvel-z (degrees -0.4) (degrees 0.8))
(:scalevel-y :copy scalevel-x)
(:fade-r -0.42666668 -0.42666668)
(:fade-g -0.85 -0.85)
(:fade-a 0.21333334 0.21333334)
(:accel-x (meters -0.001) (meters 0.00066666666))
(:accel-y (meters -0.00016666666))
(:accel-z (meters -0.001) (meters 0.00066666666))
(:friction 0.95)
(:timer (seconds 2))
(:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-2 sp-cpuinfo-flag-3))
(:next-time (seconds 1))
(:next-launcher 523)
(:conerot-x (degrees 20))
(:rotate-y (degrees 0) (degrees 3600))
)
)
(defpart 523
:init-specs ((:fade-a -0.42666668 -0.42666668))
)
(defpartgroup group-part-vent-green-active
:id 148
:flags (sp0 sp4)
:bounds (static-bspherem 0 5 0 10)
:parts ((sp-item 526 :fade-after (meters 100) :period (seconds 0.167) :length (seconds 0.017) :binding 524)
(sp-item 524 :fade-after (meters 100) :flags (sp2 sp3) :binding 525)
(sp-item 524 :fade-after (meters 100) :flags (sp2 sp3) :binding 525)
(sp-item 524 :fade-after (meters 100) :flags (sp2 sp3) :binding 525)
(sp-item 524 :fade-after (meters 100) :flags (sp2 sp3) :binding 525)
(sp-item 524 :fade-after (meters 100) :flags (sp2 sp3) :binding 525)
(sp-item 524 :fade-after (meters 100) :flags (sp2 sp3) :binding 525)
(sp-item 524 :fade-after (meters 100) :flags (sp2 sp3) :binding 525)
(sp-item 524 :fade-after (meters 100) :flags (sp2 sp3) :binding 525)
(sp-item 524 :fade-after (meters 100) :flags (sp2 sp3) :binding 525)
(sp-item 524 :fade-after (meters 100) :flags (sp2 sp3) :binding 525)
(sp-item 524 :fade-after (meters 100) :flags (sp2 sp3) :binding 525)
(sp-item 524 :fade-after (meters 100) :flags (sp2 sp3) :binding 525)
(sp-item 524 :fade-after (meters 100) :flags (sp2 sp3) :binding 525)
(sp-item 524 :fade-after (meters 100) :flags (sp2 sp3) :binding 525)
(sp-item 524 :fade-after (meters 100) :flags (sp2 sp3) :binding 525)
(sp-item 524 :fade-after (meters 100) :flags (sp2 sp3) :binding 525)
(sp-item 524 :fade-after (meters 100) :flags (sp2 sp3) :binding 525)
(sp-item 524 :fade-after (meters 100) :flags (sp2 sp3) :binding 525)
(sp-item 524 :fade-after (meters 100) :flags (sp2 sp3) :binding 525)
(sp-item 524 :fade-after (meters 100) :flags (sp2 sp3) :binding 525)
(sp-item 525 :fade-after (meters 100) :flags (sp2))
(sp-item 525 :fade-after (meters 100) :flags (sp2))
(sp-item 525 :fade-after (meters 100) :flags (sp2))
(sp-item 525 :fade-after (meters 100) :flags (sp2))
(sp-item 525 :fade-after (meters 100) :flags (sp2))
(sp-item 525 :fade-after (meters 100) :flags (sp2))
(sp-item 525 :fade-after (meters 100) :flags (sp2))
(sp-item 525 :fade-after (meters 100) :flags (sp2))
(sp-item 525 :fade-after (meters 100) :flags (sp2))
(sp-item 525 :fade-after (meters 100) :flags (sp2))
(sp-item 525 :fade-after (meters 100) :flags (sp2))
(sp-item 525 :fade-after (meters 100) :flags (sp2))
(sp-item 525 :fade-after (meters 100) :flags (sp2))
(sp-item 525 :fade-after (meters 100) :flags (sp2))
(sp-item 525 :fade-after (meters 100) :flags (sp2))
(sp-item 525 :fade-after (meters 100) :flags (sp2))
(sp-item 525 :fade-after (meters 100) :flags (sp2))
(sp-item 525 :fade-after (meters 100) :flags (sp2))
(sp-item 527 :fade-after (meters 100) :flags (is-3d sp7))
)
)
(defpart 527
:init-specs ((:texture (laser-hit-rim level-default-sprite))
(:birth-func 'birth-func-texture-group)
(:num 2.0)
(:y (meters 1) (meters 0.2))
(:scale-x (meters 1) (meters 1))
(:rot-x (degrees 0))
(:rot-y (degrees 0) (degrees 360))
(:rot-z (degrees -10) (degrees 20))
(:scale-y :copy scale-x)
(:r 0.0 64.0)
(:g 92.0 32.0)
(:b 0.0)
(:a 255.0)
(:vel-y (meters 0.008333334))
(:scalevel-x (meters 0.0033333334) (meters 0.0033333334))
(:rotvel-y (degrees 0.53333336))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.56666666 -0.56666666)
(:timer (seconds 1.5))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 left-multiply-quat))
)
)
(defpart 528
:init-specs ((:vel-y (meters -0.0033333334))
(:scalevel-x (meters 0.016666668) (meters 0.006666667))
(:rotvel-y (degrees 0.13333334))
(:scalevel-y :copy scalevel-x)
(:next-time (seconds 0.085))
(:next-launcher 529)
)
)
(defpart 529
:init-specs ((:vel-y (meters -0.0016666667))
(:scalevel-x (meters 0.013333334) (meters 0.0033333334))
(:rotvel-y (degrees 0.26666668))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.256 -0.256)
(:accel-y (meters 0.0019333332))
(:next-time (seconds 0.085))
(:next-launcher 530)
)
)
(defpart 530
:init-specs ((:vel-y (meters 0))
(:scalevel-x (meters 0.0033333334) (meters 0.006666667))
(:rotvel-y (degrees 0.53333336))
(:scalevel-y :copy scalevel-x)
(:accel-y (meters 0.0016666667))
(:friction 0.9)
)
)
(defpart 531
:init-specs ((:texture (wave-foam foresta-sprite))
(:num 0.3)
(:y (meters 1))
(:scale-x (meters 0.5) (meters 0.5))
(:scale-y (meters 0.2) (meters 0.2))
(:r 8.0)
(:g 64.0)
(:b 0.0)
(:a 0.0)
(:vel-y (meters 0.016666668))
(:fade-a 0.85333335)
(:accel-y (meters 0.00033333333))
(:friction 0.98)
(:timer (seconds 3))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 launch-along-z left-multiply-quat))
(:func 'spt-func-turn-to-vel-radial)
(:next-time (seconds 0.5))
(:next-launcher 532)
(:conerot-x (degrees -90))
(:rotate-y (degrees 0) (degrees 3600))
)
)
(defpart 532
:init-specs ((:scalevel-y (meters 0.006666667))
(:fade-a -0.17066666 -0.17066666)
(:accel-y (meters 0.00026666667) (meters 0.00006666667))
(:friction 0.95)
)
)
(defpart 526
:init-specs ((:texture (middot level-default-sprite))
(:num 1.0)
(:y (meters 1.5) (meters 0.5))
(:scale-x (meters 1))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 0.0)
(:b 0.0)
(:a 0.0)
(:vel-y (meters 0.0033333334) (meters 0.0016666667))
(:timer (seconds 3))
(:flags (sp-cpuinfo-flag-3))
)
)
(defpart 524
:init-specs ((:texture (colorflash level-default-sprite))
(:num 1.0)
(:z (meters 1))
(:scale-x (meters 0.3))
(:scale-y :copy scale-x)
(:r 32.0 64.0)
(:g 255.0)
(:b 0.0)
(:a 128.0)
(:omega (degrees 0) (degrees 3600))
(:vel-x (meters 0.059259262) (meters 0.0074074077))
(:vel-y (meters 0))
(:vel-z (meters 0.0016666667))
(:scalevel-x (meters -0.00033333333))
(:scalevel-y :copy scalevel-x)
(:friction 0.99)
(:timer (seconds 3))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 ready-to-launch sp-cpuinfo-flag-14))
)
)
(defpart 533
:init-specs ((:fade-a -0.21333334))
)
(defpart 525
:init-specs ((:texture (dirtpuff01 level-default-sprite))
(:birth-func 'birth-func-inherit-size)
(:num 1.0)
(:scale-x (meters 0.00024414062))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 32.0 64.0)
(:g 128.0)
(:b 0.0)
(:a 64.0)
(:scalevel-x (meters -0.0026666666))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.10666667)
(:timer (seconds 0.167))
(:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3))
)
)
(defpartgroup group-placeholder-small
:id 149
:flags (sp0 sp4)
:bounds (static-bspherem 0 0 0 20)
:parts ((sp-item 249))
)
(defpart 534
:init-specs ((:texture (middot level-default-sprite))
(:num 1.0)
(:scale-x (meters 0.2))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 0.0)
(:b 0.0)
(:a 128.0)
(:timer (seconds 0.017))
(:flags ())
)
)
(defpartgroup group-placeholder-single
:id 150
:flags (sp0 sp4)
:bounds (static-bspherem 0 0 0 20)
:parts ((sp-item 535 :flags (sp7)))
)
(defpart 535
:init-specs ((:texture (middot level-default-sprite))
(:num 1.0)
(:scale-x (meters 5))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 0.0)
(:b 0.0)
(:a 128.0)
(:timer (seconds 0.017))
(:flags ())
)
)
(defpartgroup group-placeholder-multiple
:id 151
:flags (sp0 sp4)
:bounds (static-bspherem 0 0 0 20)
:parts ((sp-item 536 :flags (sp7)))
)
(defpart 536
:init-specs ((:texture (middot level-default-sprite))
(:num 1.0)
(:scale-x (meters 0.3))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 128.0)
(:b 128.0)
(:a 128.0)
(:vel-y (meters 0.01))
(:timer (seconds 2))
(:flags ())
(:conerot-x (degrees -45) (degrees 90))
(:rotate-y (degrees 0) (degrees 3600))
)
)