jak-project/goal_src/jak2/levels/under/under-part.gc
Hat Kid 49e798f88c
jak2: macro detection for launch-particles and seconds-per-frame, add og:preserve-this comments for manual patches (#2974)
This PR adds detection of the `launch-particles` and `seconds-per-frame`
macros to the decompiler, removing a lot of bloat and hiding many
process register uses.

I also added `og:preserve-this` comments to as many manual patches and
comments as I could, which will soon be used in conjunction with CI to
hopefully catch any regressions in future big decomp update PRs.

I have some concerns about the `launch-particles` macro (more details in
`sparticle-launcher.gc`) , but thus far, I have not seen anything break
yet.

---------

Co-authored-by: water <awaterford111445@gmail.com>
2023-09-10 11:48:56 -04:00

1456 lines
53 KiB
Common Lisp

;;-*-Lisp-*-
(in-package goal)
;; name: under-part.gc
;; name in dgo: under-part
;; dgos: UNB
;; DECOMP BEGINS
(deftype under-part (part-spawner)
()
:heap-base #x30
:method-count-assert 16
:size-assert #xb0
:flag-assert #x10003000b0
)
(defpartgroup group-under-bubble-streams
:id 502
:bounds (static-bspherem 0 8 0 16)
:parts ((sp-item 2212 :fade-after (meters 160) :falloff-to (meters 160) :period (seconds 3.3) :length (seconds 0.017) :binding 2210)
(sp-item 2212 :fade-after (meters 160) :falloff-to (meters 160) :period (seconds 4.6) :length (seconds 0.017) :binding 2210)
(sp-item 2212 :fade-after (meters 160) :falloff-to (meters 160) :period (seconds 6.7) :length (seconds 0.017) :binding 2210)
(sp-item 2212 :fade-after (meters 160) :falloff-to (meters 160) :period (seconds 13.1) :length (seconds 0.017) :binding 2210)
(sp-item 2212 :fade-after (meters 160) :falloff-to (meters 160) :period (seconds 2) :length (seconds 0.017) :binding 2210)
(sp-item 2210 :flags (bit1 start-dead launch-asap) :binding 2211)
(sp-item 2210 :flags (bit1 start-dead launch-asap) :binding 2211)
(sp-item 2210 :flags (bit1 start-dead launch-asap) :binding 2211)
(sp-item 2210 :flags (bit1 start-dead launch-asap) :binding 2211)
(sp-item 2210 :flags (bit1 start-dead launch-asap) :binding 2211)
(sp-item 2210 :flags (bit1 start-dead launch-asap) :binding 2211)
(sp-item 2210 :flags (bit1 start-dead launch-asap) :binding 2211)
(sp-item 2210 :flags (bit1 start-dead launch-asap) :binding 2211)
(sp-item 2210 :flags (bit1 start-dead launch-asap) :binding 2211)
(sp-item 2210 :flags (bit1 start-dead launch-asap) :binding 2211)
(sp-item 2210 :flags (bit1 start-dead launch-asap) :binding 2211)
(sp-item 2210 :flags (bit1 start-dead launch-asap) :binding 2211)
(sp-item 2210 :flags (bit1 start-dead launch-asap) :binding 2211)
(sp-item 2210 :flags (bit1 start-dead launch-asap) :binding 2211)
(sp-item 2210 :flags (bit1 start-dead launch-asap) :binding 2211)
(sp-item 2210 :flags (bit1 start-dead launch-asap) :binding 2211)
(sp-item 2210 :flags (bit1 start-dead launch-asap) :binding 2211)
(sp-item 2210 :flags (bit1 start-dead launch-asap) :binding 2211)
(sp-item 2210 :flags (bit1 start-dead launch-asap) :binding 2211)
(sp-item 2210 :flags (bit1 start-dead launch-asap) :binding 2211)
(sp-item 2210 :flags (bit1 start-dead launch-asap) :binding 2211)
(sp-item 2210 :flags (bit1 start-dead launch-asap) :binding 2211)
(sp-item 2210 :flags (bit1 start-dead launch-asap) :binding 2211)
(sp-item 2211 :fade-after (meters 100) :falloff-to (meters 100) :flags (bit1 start-dead))
(sp-item 2211 :fade-after (meters 100) :falloff-to (meters 100) :flags (bit1 start-dead))
(sp-item 2211 :fade-after (meters 100) :falloff-to (meters 100) :flags (bit1 start-dead))
(sp-item 2211 :fade-after (meters 100) :falloff-to (meters 100) :flags (bit1 start-dead))
(sp-item 2211 :fade-after (meters 100) :falloff-to (meters 100) :flags (bit1 start-dead))
(sp-item 2211 :fade-after (meters 100) :falloff-to (meters 100) :flags (bit1 start-dead))
(sp-item 2211 :fade-after (meters 100) :falloff-to (meters 100) :flags (bit1 start-dead))
(sp-item 2211 :fade-after (meters 100) :falloff-to (meters 100) :flags (bit1 start-dead))
(sp-item 2211 :fade-after (meters 100) :falloff-to (meters 100) :flags (bit1 start-dead))
(sp-item 2211 :fade-after (meters 100) :falloff-to (meters 100) :flags (bit1 start-dead))
(sp-item 2211 :fade-after (meters 100) :falloff-to (meters 100) :flags (bit1 start-dead))
(sp-item 2211 :fade-after (meters 100) :falloff-to (meters 100) :flags (bit1 start-dead))
(sp-item 2211 :fade-after (meters 100) :falloff-to (meters 100) :flags (bit1 start-dead))
(sp-item 2211 :fade-after (meters 100) :falloff-to (meters 100) :flags (bit1 start-dead))
(sp-item 2211 :fade-after (meters 100) :falloff-to (meters 100) :flags (bit1 start-dead))
(sp-item 2211 :fade-after (meters 100) :falloff-to (meters 100) :flags (bit1 start-dead))
(sp-item 2211 :fade-after (meters 100) :falloff-to (meters 100) :flags (bit1 start-dead))
(sp-item 2211 :fade-after (meters 100) :falloff-to (meters 100) :flags (bit1 start-dead))
(sp-item 2211 :fade-after (meters 100) :falloff-to (meters 100) :flags (bit1 start-dead))
(sp-item 2211 :fade-after (meters 100) :falloff-to (meters 100) :flags (bit1 start-dead))
(sp-item 2211 :fade-after (meters 100) :falloff-to (meters 100) :flags (bit1 start-dead))
(sp-item 2211 :fade-after (meters 100) :falloff-to (meters 100) :flags (bit1 start-dead))
(sp-item 2211 :fade-after (meters 100) :falloff-to (meters 100) :flags (bit1 start-dead))
(sp-item 2211 :fade-after (meters 100) :falloff-to (meters 100) :flags (bit1 start-dead))
(sp-item 2211 :fade-after (meters 100) :falloff-to (meters 100) :flags (bit1 start-dead))
(sp-item 2211 :fade-after (meters 100) :falloff-to (meters 100) :flags (bit1 start-dead))
(sp-item 2211 :fade-after (meters 100) :falloff-to (meters 100) :flags (bit1 start-dead))
(sp-item 2211 :fade-after (meters 100) :falloff-to (meters 100) :flags (bit1 start-dead))
(sp-item 2213 :fade-after (meters 100) :falloff-to (meters 100))
)
)
(defpart 2213
:init-specs ((:texture (new 'static 'texture-id :index #x21 :page #xc))
(:num 0.1)
(:x (meters -0.5) (meters 1.5))
(:scale-x (meters 0.3) (meters 0.15))
(:scale-y (meters 0.2) (meters 0.1))
(:r 255.0)
(:g 255.0)
(:b 255.0)
(:a 0.0)
(:vel-y (meters 0.008333334) (meters 0.005))
(:fade-a 0.16)
(:timer (seconds 16))
(:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-2 sp-cpuinfo-flag-3))
(:userdata 0.0)
(:func 'check-water-level-above-and-die)
(:next-time (seconds 0.33) (seconds 0.657))
(:next-launcher 2214)
(:rotate-y (degrees 0) (degrees 3600))
)
)
(defpart 2214
:init-specs ((:fade-a 0.0) (:next-time (seconds 1) (seconds 5.997)) (:next-launcher 2215))
)
(defpart 2215
:init-specs ((:scalevel-x (meters -0.00033333333) (meters -0.00066666666))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.16)
(:accel-y (meters -0.0001) (meters -0.0001))
)
)
(defpart 2212
:init-specs ((:texture (new 'static 'texture-id :index #x21 :page #xc))
(:num 1.0)
(:scale-x (meters 0.3))
(:scale-y :copy scale-x)
(:r 0.0)
(:a 128.0)
(:vel-y (meters 0.008333334) (meters 0.005))
(:timer (seconds 10))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3))
(:rotate-y (degrees 0))
)
)
(defpart 2210
:init-specs ((:texture (new 'static 'texture-id :index #x21 :page #xc))
(:num 1.0)
(:x (meters 0) (meters 16))
(:y (meters 0) (meters 16))
(:z (meters 0.1))
(:scale-x (meters 1.5))
(:scale-y (meters 0.9))
(:r 255.0)
(:g 255.0)
(:b 255.0)
(:a 0.0)
(:omega (degrees 0))
(:vel-x (meters -0.21333334) 1 (meters 0.42666668))
(:vel-y (meters 0))
(:vel-z (meters 0))
(:scalevel-x (meters -0.0050000004))
(:scalevel-y (meters 0.0016666667))
(:fade-a 1.6)
(:timer (seconds 8) (seconds 1.997))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 ready-to-launch))
(:userdata 0.0)
(:func 'check-water-level-above-and-die)
(:next-time (seconds 0.1))
(:next-launcher 2216)
)
)
(defpart 2216
:init-specs ((:scale-x (meters 1.2))
(:scale-y (meters 1))
(:scalevel-x (meters 0.010000001))
(:scalevel-y (meters -0.0033333334))
(:fade-a 0.0)
(:next-time (seconds 0.1))
(:next-launcher 2217)
)
)
(defpart 2217
:init-specs ((:scale-x (meters 1.5))
(:scale-y (meters 0.9))
(:scalevel-x (meters -0.010000001))
(:scalevel-y (meters 0.0033333334))
(:next-time (seconds 0.1))
(:next-launcher 2216)
)
)
(defpart 2211
:init-specs ((:texture (new 'static 'texture-id :index #x21 :page #xc))
(:num 0.0 0.5)
(:x (meters -0.25) (meters 0.5))
(:y (meters 0.1))
(:z (meters -0.25) (meters 0.5))
(:scale-x (meters 0.3) (meters 0.1))
(:scale-y (meters 0.2) (meters 0.1))
(:r 255.0)
(:g 255.0)
(:b 255.0)
(:a 0.0)
(:scalevel-x (meters -0.00033333333) (meters -0.00066666666))
(:scalevel-y :copy scalevel-x)
(:fade-a 0.53333336)
(:timer (seconds 8))
(:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-2 sp-cpuinfo-flag-3))
(:userdata 0.0)
(:func 'check-water-level-above-and-die)
(:next-time (seconds 0.017))
(:next-launcher 2218)
(:conerot-x (degrees 110) (degrees 50.000004))
(:conerot-y (degrees 0) (degrees 360))
(:conerot-radius (meters 0.4))
)
)
(defpart 2218
:init-specs ((:vel-y (meters 0.006666667) (meters 0.0016666667))
(:accel-y (meters -0.00006666667))
(:next-time (seconds 0.25))
(:next-launcher 2219)
)
)
(defpart 2219
:init-specs ((:fade-a -0.08))
)
(defpartgroup group-under-bubble-streams-no-bottom
:id 503
:bounds (static-bspherem 0 8 0 16)
:parts ((sp-item 2220 :fade-after (meters 160) :falloff-to (meters 160) :period (seconds 5.3) :length (seconds 0.017) :binding 2210)
(sp-item 2220 :fade-after (meters 160) :falloff-to (meters 160) :period (seconds 6.6) :length (seconds 0.017) :binding 2210)
(sp-item 2220 :fade-after (meters 160) :falloff-to (meters 160) :period (seconds 7.7) :length (seconds 0.017) :binding 2210)
(sp-item 2220 :fade-after (meters 160) :falloff-to (meters 160) :period (seconds 18.1) :length (seconds 0.017) :binding 2210)
(sp-item 2212 :fade-after (meters 160) :falloff-to (meters 160) :period (seconds 2) :length (seconds 0.017) :binding 2210)
(sp-item 2210 :flags (bit1 start-dead launch-asap) :binding 2211)
(sp-item 2210 :flags (bit1 start-dead launch-asap) :binding 2211)
(sp-item 2210 :flags (bit1 start-dead launch-asap) :binding 2211)
(sp-item 2210 :flags (bit1 start-dead launch-asap) :binding 2211)
(sp-item 2210 :flags (bit1 start-dead launch-asap) :binding 2211)
(sp-item 2210 :flags (bit1 start-dead launch-asap) :binding 2211)
(sp-item 2210 :flags (bit1 start-dead launch-asap) :binding 2211)
(sp-item 2210 :flags (bit1 start-dead launch-asap) :binding 2211)
(sp-item 2210 :flags (bit1 start-dead launch-asap) :binding 2211)
(sp-item 2210 :flags (bit1 start-dead launch-asap) :binding 2211)
(sp-item 2210 :flags (bit1 start-dead launch-asap) :binding 2211)
(sp-item 2210 :flags (bit1 start-dead launch-asap) :binding 2211)
(sp-item 2210 :flags (bit1 start-dead launch-asap) :binding 2211)
(sp-item 2210 :flags (bit1 start-dead launch-asap) :binding 2211)
(sp-item 2210 :flags (bit1 start-dead launch-asap) :binding 2211)
(sp-item 2210 :flags (bit1 start-dead launch-asap) :binding 2211)
(sp-item 2210 :flags (bit1 start-dead launch-asap) :binding 2211)
(sp-item 2210 :flags (bit1 start-dead launch-asap) :binding 2211)
(sp-item 2210 :flags (bit1 start-dead launch-asap) :binding 2211)
(sp-item 2210 :flags (bit1 start-dead launch-asap) :binding 2211)
(sp-item 2210 :flags (bit1 start-dead launch-asap) :binding 2211)
(sp-item 2210 :flags (bit1 start-dead launch-asap) :binding 2211)
(sp-item 2210 :flags (bit1 start-dead launch-asap) :binding 2211)
(sp-item 2211 :fade-after (meters 100) :falloff-to (meters 100) :flags (bit1 start-dead))
(sp-item 2211 :fade-after (meters 100) :falloff-to (meters 100) :flags (bit1 start-dead))
(sp-item 2211 :fade-after (meters 100) :falloff-to (meters 100) :flags (bit1 start-dead))
(sp-item 2211 :fade-after (meters 100) :falloff-to (meters 100) :flags (bit1 start-dead))
(sp-item 2211 :fade-after (meters 100) :falloff-to (meters 100) :flags (bit1 start-dead))
(sp-item 2211 :fade-after (meters 100) :falloff-to (meters 100) :flags (bit1 start-dead))
(sp-item 2211 :fade-after (meters 100) :falloff-to (meters 100) :flags (bit1 start-dead))
(sp-item 2211 :fade-after (meters 100) :falloff-to (meters 100) :flags (bit1 start-dead))
(sp-item 2211 :fade-after (meters 100) :falloff-to (meters 100) :flags (bit1 start-dead))
(sp-item 2211 :fade-after (meters 100) :falloff-to (meters 100) :flags (bit1 start-dead))
(sp-item 2211 :fade-after (meters 100) :falloff-to (meters 100) :flags (bit1 start-dead))
(sp-item 2211 :fade-after (meters 100) :falloff-to (meters 100) :flags (bit1 start-dead))
(sp-item 2211 :fade-after (meters 100) :falloff-to (meters 100) :flags (bit1 start-dead))
(sp-item 2211 :fade-after (meters 100) :falloff-to (meters 100) :flags (bit1 start-dead))
(sp-item 2211 :fade-after (meters 100) :falloff-to (meters 100) :flags (bit1 start-dead))
(sp-item 2211 :fade-after (meters 100) :falloff-to (meters 100) :flags (bit1 start-dead))
(sp-item 2211 :fade-after (meters 100) :falloff-to (meters 100) :flags (bit1 start-dead))
(sp-item 2211 :fade-after (meters 100) :falloff-to (meters 100) :flags (bit1 start-dead))
(sp-item 2211 :fade-after (meters 100) :falloff-to (meters 100) :flags (bit1 start-dead))
(sp-item 2211 :fade-after (meters 100) :falloff-to (meters 100) :flags (bit1 start-dead))
(sp-item 2211 :fade-after (meters 100) :falloff-to (meters 100) :flags (bit1 start-dead))
(sp-item 2211 :fade-after (meters 100) :falloff-to (meters 100) :flags (bit1 start-dead))
(sp-item 2211 :fade-after (meters 100) :falloff-to (meters 100) :flags (bit1 start-dead))
(sp-item 2211 :fade-after (meters 100) :falloff-to (meters 100) :flags (bit1 start-dead))
(sp-item 2211 :fade-after (meters 100) :falloff-to (meters 100) :flags (bit1 start-dead))
(sp-item 2211 :fade-after (meters 100) :falloff-to (meters 100) :flags (bit1 start-dead))
(sp-item 2211 :fade-after (meters 100) :falloff-to (meters 100) :flags (bit1 start-dead))
(sp-item 2211 :fade-after (meters 100) :falloff-to (meters 100) :flags (bit1 start-dead))
(sp-item 2221 :fade-after (meters 100) :falloff-to (meters 100))
)
)
(defpart 2220
:init-specs ((:texture (new 'static 'texture-id :index #x21 :page #xc))
(:num 1.0)
(:y (meters -6))
(:scale-x (meters 0.3))
(:scale-y :copy scale-x)
(:r 0.0)
(:a 128.0)
(:vel-y (meters 0.008333334) (meters 0.005))
(:timer (seconds 10))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3))
(:rotate-y (degrees 0))
)
)
(defpart 2221
:init-specs ((:texture (new 'static 'texture-id :index #x21 :page #xc))
(:num 0.1)
(:x (meters -0.5) (meters 1.5))
(:y (meters -4))
(:scale-x (meters 0.3) (meters 0.15))
(:scale-y (meters 0.2) (meters 0.1))
(:r 255.0)
(:g 255.0)
(:b 255.0)
(:a 0.0)
(:vel-y (meters 0.008333334) (meters 0.005))
(:fade-a 0.16)
(:timer (seconds 16))
(:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-2 sp-cpuinfo-flag-3))
(:next-time (seconds 0.33) (seconds 0.657))
(:next-launcher 2214)
(:rotate-y (degrees 0) (degrees 3600))
)
)
(defpartgroup group-under-bubble-streams-windows
:id 504
:flags (unk-4)
:bounds (static-bspherem 0 8 0 16)
:parts ((sp-item 2222 :fade-after (meters 100) :falloff-to (meters 100) :flags (bit7)))
)
(defpart 2222
:init-specs ((:texture (new 'static 'texture-id :index #x21 :page #xc))
(:num 0.1)
(:x (meters -5) (meters 10))
(:y (meters 0))
(:scale-x (meters 0.3) (meters 0.15))
(:scale-y (meters 0.2) (meters 0.1))
(:r 255.0)
(:g 255.0)
(:b 255.0)
(:a 48.0)
(:vel-y (meters 0.008333334) (meters 0.005))
(:timer (seconds 2))
(:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-2 sp-cpuinfo-flag-3))
(:rotate-y (degrees 0))
)
)
(defpartgroup group-under-heavy-drip
:id 505
:bounds (static-bspherem 0 8 0 10)
:parts ((sp-item 2223 :fade-after (meters 100) :falloff-to (meters 100) :period (seconds 0.167) :length (seconds 0.017))
)
)
(defpart 2223
:init-specs ((:texture (new 'static 'texture-id :index #x21 :page #xc))
(:num 1.0)
(:y (meters 15))
(:scale-x (meters 0.1) (meters 0.1))
(:rot-x 4)
(:scale-y :copy scale-x)
(:r 32.0 32.0)
(:g 32.0 32.0)
(:b 128.0 32.0)
(:a 0.0)
(:omega (degrees 0.0225) (degrees 0.01125))
(:fade-a 1.28 1.28)
(:friction 0.93 0.02)
(:timer (seconds 3))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-12 use-global-acc))
(:userdata 0.0)
(:func 'check-drop-level-under-drip)
(:next-time (seconds 0.167))
(:next-launcher 2224)
)
)
(defpart 2224
:init-specs ((:fade-a 0.0)
(:accel-y (meters -0.006666667) (meters 0.00066666666))
(:next-time (seconds 0) (seconds 0.747))
(:next-launcher 2225)
)
)
(defun check-drop-level-under-drip ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 matrix))
(let ((f30-0 (-> arg1 key origin trans y)))
(when (< (-> arg2 vector 0 y) f30-0)
(let ((s3-0 (new 'stack-no-clear 'vector)))
(sp-kill-particle arg0 arg1)
(set-vector! s3-0 (-> arg2 vector 0 x) f30-0 (-> arg2 vector 0 z) 1.0)
(launch-particles (-> *part-id-table* 2226) s3-0)
(launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 2227) s3-0)
)
)
)
(sparticle-motion-blur arg0 arg1 (the-as vector arg2))
(none)
)
(defpart 2226
:init-specs ((:texture (new 'static 'texture-id :index #x21 :page #xc))
(:num 1.0 2.0)
(:scale-x (meters 0.1) (meters 0.1))
(:rot-x 4)
(:scale-y :copy scale-x)
(:r 32.0 32.0)
(:g 32.0 32.0)
(:b 64.0 32.0)
(:a 32.0 32.0)
(:omega (degrees 0.045))
(:vel-y (meters 0.016666668) (meters 0.03))
(:fade-a -0.16)
(:accel-y (meters -0.001) (meters -0.00016666666))
(:friction 0.97)
(:timer (seconds 0.667))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3))
(:func 'sparticle-motion-blur)
(:next-time (seconds 0) (seconds 0.747))
(:next-launcher 2225)
(:conerot-x (degrees 0) (degrees 60))
(:conerot-y (degrees 0) (degrees 360))
(:rotate-y (degrees 180))
)
)
(defpart 2225
:init-specs ((:r 255.0) (:g 255.0) (:b 255.0) (:next-time (seconds 0.017)) (:next-launcher 2228))
)
(defpart 2228
:init-specs ((:r 32.0 32.0) (:g 32.0 32.0) (:b 128.0 32.0) (:next-time (seconds 0) (seconds 1.497)) (:next-launcher 2225))
)
(defpart 2227
:init-specs ((:texture (new 'static 'texture-id :index #xc9 :page #xc))
(:num 1.0)
(:y (meters 0.2))
(:scale-x (meters 0.5) (meters 0.25))
(:scale-y :copy scale-x)
(:r 32.0 32.0)
(:g 32.0 32.0)
(:b 64.0 32.0)
(:a 32.0 32.0)
(:omega (degrees 0))
(:scalevel-x (meters 0.01) (meters 0.006666667))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.8)
(:timer (seconds 1))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14))
(:userdata :data (new 'static 'boxed-array :type int32 10 0 0 #xc0c900 #xc02600 #xc03300 #xc02c00))
(:func 'sparticle-texture-animate)
)
)
(defpartgroup group-under-long-blue-light
:id 506
:flags (unk-4)
:bounds (static-bspherem 0 0 0 16)
:parts ((sp-item 2229 :fade-after (meters 200) :flags (bit6 bit7))
(sp-item 2230 :fade-after (meters 200) :flags (bit6 bit7))
(sp-item 2231 :fade-after (meters 200) :flags (bit6 bit7))
(sp-item 2232 :fade-after (meters 200) :flags (bit6 bit7))
(sp-item 2233 :fade-after (meters 200) :flags (bit6 bit7))
)
)
(defpart 2229
:init-specs ((:texture (new 'static 'texture-id :index #xca :page #xc))
(:num 1.0)
(:y (meters -4))
(:scale-x (meters 4.5))
(:rot-x (degrees 6.7500005))
(:rot-z (degrees -17) (degrees 2))
(:scale-y :copy scale-x)
(:r 0.0)
(:g 96.0 32.0)
(:b 255.0)
(:a 24.0)
(:omega (degrees 4515.75))
(:scalevel-x (meters -0.0016666667))
(:scalevel-y :copy scalevel-x)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 4096.0)
(:rotate-y (degrees 0))
)
)
(defpart 2230
:init-specs ((:texture (new 'static 'texture-id :index #xca :page #xc))
(:num 1.0)
(:y (meters -2))
(:scale-x (meters 4.5))
(:rot-x (degrees 6.7500005))
(:rot-z (degrees -17) (degrees 2))
(:scale-y :copy scale-x)
(:r 0.0)
(:g 196.0 32.0)
(:b 255.0)
(:a 24.0)
(:omega (degrees 4515.75))
(:scalevel-x (meters -0.0016666667))
(:scalevel-y :copy scalevel-x)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 4096.0)
(:rotate-y (degrees 0))
)
)
(defpart 2231
:init-specs ((:texture (new 'static 'texture-id :index #xca :page #xc))
(:num 1.0)
(:y (meters 0))
(:scale-x (meters 4.5))
(:rot-x (degrees 6.7500005))
(:rot-z (degrees -17) (degrees 2))
(:scale-y :copy scale-x)
(:r 0.0)
(:g 196.0 32.0)
(:b 255.0)
(:a 25.0)
(:omega (degrees 4515.75))
(:scalevel-x (meters -0.0016666667))
(:scalevel-y :copy scalevel-x)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 4096.0)
(:rotate-y (degrees 0))
)
)
(defpart 2232
:init-specs ((:texture (new 'static 'texture-id :index #xca :page #xc))
(:num 1.0)
(:y (meters 2))
(:scale-x (meters 4.5))
(:rot-x (degrees 6.7500005))
(:rot-z (degrees -17) (degrees 2))
(:scale-y :copy scale-x)
(:r 0.0)
(:g 196.0 32.0)
(:b 255.0)
(:a 25.0)
(:omega (degrees 4515.75))
(:scalevel-x (meters -0.0016666667))
(:scalevel-y :copy scalevel-x)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 4096.0)
(:rotate-y (degrees 0))
)
)
(defpart 2233
:init-specs ((:texture (new 'static 'texture-id :index #xca :page #xc))
(:num 1.0)
(:y (meters 4))
(:scale-x (meters 4.5))
(:rot-x (degrees 6.7500005))
(:rot-z (degrees -17) (degrees 2))
(:scale-y :copy scale-x)
(:r 0.0)
(:g 96.0 32.0)
(:b 255.0)
(:a 24.0)
(:omega (degrees 4515.75))
(:scalevel-x (meters -0.0016666667))
(:scalevel-y :copy scalevel-x)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 4096.0)
(:rotate-y (degrees 0))
)
)
(defpartgroup group-under-thin-fire
:id 507
:flags (unk-7)
:bounds (static-bspherem 0 2 0 6)
:scale (0.3 0.5 0.3)
:parts ((sp-item 2234 :fade-after (meters 100) :falloff-to (meters 100) :flags (bit7))
(sp-item 2235 :fade-after (meters 250) :falloff-to (meters 250) :flags (bit7) :period (seconds 0.335) :length (seconds 0.167))
(sp-item 2236 :fade-after (meters 150) :falloff-to (meters 150) :flags (bit7) :period (seconds 0.4) :length (seconds 0.185) :offset 20)
(sp-item 2237 :fade-after (meters 100) :falloff-to (meters 100) :flags (bit7) :period (seconds 0.535) :length (seconds 0.1) :offset 35)
(sp-item 2235 :fade-after (meters 100) :falloff-to (meters 100) :flags (bit7) :period (seconds 0.85) :length (seconds 0.2) :offset 65)
(sp-item 2236 :fade-after (meters 150) :falloff-to (meters 150) :flags (bit7) :period (seconds 1.25) :length (seconds 0.135) :offset 15)
(sp-item 2237 :fade-after (meters 250) :falloff-to (meters 250) :flags (bit7) :period (seconds 1.435) :length (seconds 0.167) :offset 85)
(sp-item 2235 :fade-after (meters 250) :falloff-to (meters 250) :flags (bit7) :period (seconds 2) :length (seconds 0.235) :offset 100)
(sp-item 2236 :fade-after (meters 150) :falloff-to (meters 150) :flags (bit7) :period (seconds 4.167) :length (seconds 0.15) :offset 450)
(sp-item 2237 :fade-after (meters 100) :falloff-to (meters 100) :flags (bit7) :period (seconds 5) :length (seconds 0.085) :offset 115)
(sp-item 2235 :fade-after (meters 200) :falloff-to (meters 200) :flags (bit7) :period (seconds 7) :length (seconds 0.185) :offset 80)
(sp-item 2238 :fade-after (meters 100) :falloff-to (meters 100) :flags (bit7))
(sp-item 2239 :fade-after (meters 80) :falloff-to (meters 80) :flags (bit7))
(sp-item 2240 :fade-after (meters 200) :flags (bit6))
)
)
(defpart 2240
:init-specs ((:texture (new 'static 'texture-id :index #xca :page #xc))
(:num 0.25)
(:x (meters -0.5) (meters 1))
(:y (meters 1.5) (meters 1))
(:z (meters -0.5) (meters 1))
(:scale-x (meters 8) (meters 8))
(:rot-x (degrees 11.25))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 0.0 128.0)
(:b 0.0)
(:a 0.0)
(:omega (degrees 3390.75))
(:fade-a 0.5)
(:timer (seconds 0.267))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow sp-cpuinfo-flag-21))
(:userdata 10240.0)
(:next-time (seconds 0.05) (seconds 0.03))
(:next-launcher 2241)
)
)
(defpart 2241
:init-specs ((:fade-a -0.16666667))
)
(defpart 2235
:init-specs ((:texture (new 'static 'texture-id :index #x33 :page #xc))
(:birth-func 'birth-func-texture-group)
(:num 2.0 4.0)
(:x (meters 0) (meters -2))
(:y (meters 1.25))
(:scale-x (meters 2.5) (meters 1.5))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 240.0 15.0)
(:g 200.0 16.0)
(:b 160.0 16.0)
(:a 32.0 32.0)
(:vel-x (meters 0.0033333334))
(:vel-y (meters 0.033333335) (meters 0.033333335))
(:rotvel-z (degrees -0.4) (degrees 0.8))
(:fade-r -2.1333334 -1.0666667)
(:fade-g -4.266667 -2.1333334)
(:fade-b -5.3333335)
(:accel-y (meters -0.001))
(:timer (seconds 0.535) (seconds 0.265))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-21))
(:userdata :data (new 'static 'boxed-array :type int32 40 1 0 #xc00000 #xc00000 #xc03300))
(:next-time (seconds 0.1) (seconds 0.03))
(:next-launcher 2242)
(:conerot-x (degrees -8) 4 (degrees 4))
(:conerot-y (degrees -180) (degrees 360))
(:rotate-y (degrees 0) (degrees 87))
(:conerot-radius (meters 0) (meters 0.5))
)
)
(defpart 2242
:init-specs ((:b 0.0)
(:fade-r 0.0)
(:fade-g 0.0)
(:fade-b 0.0)
(:fade-a -0.4 -0.2)
(:next-time (seconds 0.135) (seconds 0.03))
(:next-launcher 2243)
)
)
(defpart 2243
:init-specs ((:fade-r -0.125) (:fade-g 0.4) (:fade-b 0.4))
)
(defpart 2236
:init-specs ((:texture (new 'static 'texture-id :index #x33 :page #xc))
(:birth-func 'birth-func-texture-group)
(:num 2.0 4.0)
(:x (meters 0) (meters -2))
(:y (meters 1.25))
(:scale-x (meters 2.5) (meters 1.5))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 240.0 15.0)
(:g 200.0 16.0)
(:b 160.0 16.0)
(:a 32.0 32.0)
(:vel-x (meters 0.0033333334))
(:vel-y (meters 0.033333335) (meters 0.033333335))
(:rotvel-z (degrees -0.4) (degrees 0.8))
(:fade-r -2.1333334 -1.0666667)
(:fade-g -4.266667 -2.1333334)
(:fade-b -5.3333335)
(:accel-y (meters -0.001))
(:timer (seconds 0.535) (seconds 0.265))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-21))
(:userdata :data (new 'static 'boxed-array :type int32 40 1 0 #xc00000 #xc00000 #xc03300))
(:next-time (seconds 0.1) (seconds 0.03))
(:next-launcher 2242)
(:conerot-x (degrees -8) 4 (degrees 4))
(:conerot-y (degrees -180) (degrees 360))
(:rotate-y (degrees 120) (degrees 90))
(:conerot-radius (meters 0) (meters 0.5))
)
)
(defpart 2237
:init-specs ((:texture (new 'static 'texture-id :index #x33 :page #xc))
(:birth-func 'birth-func-texture-group)
(:num 2.0 4.0)
(:x (meters 0) (meters -2))
(:y (meters 1.25))
(:scale-x (meters 2.5) (meters 1.5))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 240.0 15.0)
(:g 200.0 16.0)
(:b 160.0 16.0)
(:a 32.0 32.0)
(:vel-x (meters 0.0033333334))
(:vel-y (meters 0.033333335) (meters 0.033333335))
(:rotvel-z (degrees -0.4) (degrees 0.8))
(:fade-r -2.1333334 -1.0666667)
(:fade-g -4.266667 -2.1333334)
(:fade-b -5.3333335)
(:accel-y (meters -0.001))
(:timer (seconds 0.535) (seconds 0.265))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-21))
(:userdata :data (new 'static 'boxed-array :type int32 40 1 0 #xc00000 #xc00000 #xc03300))
(:next-time (seconds 0.1) (seconds 0.03))
(:next-launcher 2242)
(:conerot-x (degrees -8) 4 (degrees 4))
(:conerot-y (degrees -180) (degrees 360))
(:rotate-y (degrees 240) (degrees 110))
(:conerot-radius (meters 0) (meters 0.5))
)
)
(defpart 2234
:init-specs ((:texture (new 'static 'texture-id :index #x33 :page #xc))
(:birth-func 'birth-func-texture-group)
(:num 1.0 2.0)
(:x (meters 0) (meters -2))
(:y (meters 1.25))
(:scale-x (meters 2.5) (meters 1.5))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 32.0)
(:g 128.0)
(:b 128.0)
(:a 16.0 16.0)
(:vel-x (meters 0.0033333334))
(:vel-y (meters 0.033333335) (meters 0.033333335))
(:rotvel-z (degrees -0.4) (degrees 0.8))
(:fade-a -0.16 -0.16)
(:accel-y (meters -0.001))
(:timer (seconds 1))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-4 sp-cpuinfo-flag-21))
(:userdata :data (new 'static 'boxed-array :type int32 40 1 0 #xc00000 #xc00000 #xc03300))
(:conerot-x (degrees -8) 4 (degrees 4))
(:conerot-y (degrees -180) (degrees 360))
(:rotate-y (degrees 0) (degrees 360))
(:conerot-radius (meters 0) (meters 0.5))
)
)
(defpart 2238
:init-specs ((:texture (new 'static 'texture-id :page #xc))
(:num 0.2 0.2)
(:x (meters -1.5))
(:y (meters 1.25))
(:scale-x (meters 4) (meters 3.5))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 196.0)
(:g 128.0)
(:b 128.0)
(:a 16.0 8.0)
(:vel-y (meters 0.06666667) (meters 0.06666667))
(:scalevel-x (meters 0.012592592))
(:rotvel-z (degrees -0.2) (degrees 0.4))
(:scalevel-y :copy scalevel-x)
(:fade-r -0.64)
(:fade-g -0.32)
(:fade-b -0.32)
(:fade-a -0.017777778 -0.04)
(:accel-y (meters -0.00006666667))
(:friction 0.97)
(:timer (seconds 2))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-21))
(:next-time (seconds 0.5) (seconds 0.165))
(:next-launcher 2242)
(:rotate-y (degrees 0) (degrees 360))
)
)
(defpart 2239
:init-specs ((:num 0.4)
(:x (meters 0) (meters -2))
(:y (meters 1.25))
(:rot-x 8)
(:r 4096.0)
(:g 2867.2)
(:b 3276.8)
(:vel-x (meters 0.0033333334) (meters 0.0033333334))
(:vel-y (meters 0.1) (meters 0.06666667))
(:friction 0.97)
(:timer (seconds 1))
(:flags (distort sp-cpuinfo-flag-21))
(:next-time (seconds 0.5))
(:next-launcher 2244)
(:rotate-y (degrees 0) (degrees 360))
)
)
(defpart 2244
:init-specs ((:fade-b -2.7306666))
)
(defpartgroup group-under-hanging-fire
:id 508
:bounds (static-bspherem 0 0 0 32)
:parts ((sp-item 2245 :fade-after (meters 200) :flags (bit6)))
)
(defpart 2245
:init-specs ((:texture (new 'static 'texture-id :index #xca :page #xc))
(:num 1.0)
(:scale-x (meters 64))
(:rot-x (degrees 45))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 196.0 16.0)
(:b 0.0)
(:a 12.0)
(:omega (degrees 4515.75))
(:scalevel-x (meters -0.0016666667))
(:scalevel-y :copy scalevel-x)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 32768.0)
)
)
(defpartgroup group-under-mine-explode
:id 501
:duration (seconds 2)
:linger-duration (seconds 1)
:flags (use-local-clock unk-6)
:bounds (static-bspherem 0 0 0 8)
:rotate ((degrees 0) (degrees 90) (degrees 0))
:parts ((sp-item 2246 :flags (bit6) :period (seconds 3) :length (seconds 0.017))
(sp-item 2247 :flags (bit6) :period (seconds 3) :length (seconds 0.017))
(sp-item 2248 :period (seconds 3) :length (seconds 0.05))
(sp-item 2249 :fade-after (meters 60) :period (seconds 3) :length (seconds 0.035) :offset 10)
(sp-item 2250 :fade-after (meters 200) :falloff-to (meters 200) :period (seconds 3) :length (seconds 0.085) :offset 20)
(sp-item 2251 :fade-after (meters 150) :falloff-to (meters 150) :period (seconds 3) :length (seconds 0.1) :offset 15)
)
)
(defpart 2251
:init-specs ((:texture (new 'static 'texture-id :index #x21 :page #xc))
(:num 32.0)
(:scale-x (meters 0.3) (meters 0.1))
(:scale-y (meters 0.2) (meters 0.1))
(:r 255.0)
(:g 255.0)
(:b 255.0)
(:a 16.0 32.0)
(:vel-y (meters 0.06666667) (meters 0.13333334))
(:scalevel-x (meters -0.00033333333) (meters -0.00066666666))
(:scalevel-y :copy scalevel-x)
(:accel-y (meters 0.00066666666))
(:friction 0.85)
(:timer (seconds 8))
(:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-2 sp-cpuinfo-flag-3))
(:next-time (seconds 1) (seconds 3.997))
(:next-launcher 2252)
(:conerot-x (degrees 0) (degrees 3600))
(:conerot-y (degrees 0) (degrees 3600))
(:conerot-radius (meters 0) (meters 2))
)
)
(defpart 2252
:init-specs ((:fade-a -0.08))
)
(defpart 2247
:init-specs ((:texture (new 'static 'texture-id :index #xbb :page #xc))
(:num 1.0)
(:scale-x (meters 2))
(:rot-x (degrees 11.25))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 255.0)
(:b 255.0)
(:a 48.0)
(:scalevel-x (meters 0.10666667))
(:rotvel-z (degrees 0.3))
(:scalevel-y :copy scalevel-x)
(:fade-r -8.5)
(:fade-g -2.1333334)
(:fade-b 0.0)
(:fade-a 0.0)
(:timer (seconds 0.5))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14 glow))
(:next-time (seconds 0.25))
(:next-launcher 2253)
)
)
(defpart 2253
:init-specs ((:scalevel-x (meters 0))
(:scalevel-y :copy scalevel-x)
(:fade-r 0.0)
(:fade-g -2.6133332)
(:fade-b -1.7066667)
(:fade-a -0.64)
)
)
(defpart 2250
:init-specs ((:texture (new 'static 'texture-id :index #x33 :page #xc))
(:birth-func 'birth-func-texture-group)
(:num 4.0 0.2)
(:scale-x (meters 1) (meters 1))
(:rot-z (degrees 0))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 255.0)
(:b 255.0)
(:a 32.0 32.0)
(:vel-y (meters 0.02) (meters 0.01))
(:scalevel-x (meters 0.01) (meters 0.13333334))
(:rotvel-z (degrees -0.12) (degrees 0.24))
(:scalevel-y :copy scalevel-x)
(:fade-r -4.24)
(:fade-g -0.36)
(:fade-b 0.0)
(:fade-a -0.22068965)
(:friction 0.95)
(:timer (seconds 3.335))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3))
(:userdata :data (new 'static 'boxed-array :type int32 40 1 0 #xc00000 #xc03300))
(:next-time (seconds 0.085))
(:next-launcher 2254)
(:conerot-x (degrees 0) (degrees 360))
)
)
(defpart 2254
:init-specs ((:fade-r 0.0) (:fade-g 0.0) (:fade-b 0.0) (:next-time (seconds 0.017) (seconds 0.065)) (:next-launcher 2255))
)
(defpart 2255
:init-specs ((:scalevel-x (meters 0.016666668) (meters 0.016666668))
(:scalevel-y :copy scalevel-x)
(:fade-r -2.64)
(:fade-g -2.36)
(:fade-b -0.44)
(:next-time (seconds 0.117) (seconds 0.047))
(:next-launcher 2256)
)
)
(defpart 2256
:init-specs ((:scalevel-x (meters 0.008333334) (meters 0.008333334))
(:scalevel-y :copy scalevel-x)
(:fade-r -0.13076924)
(:fade-g -0.9846154)
(:fade-b -1.0230769)
(:fade-a -0.06545454 -0.06545454)
(:next-time (seconds 0.335) (seconds 0.097))
(:next-launcher 2257)
)
)
(defpart 2257
:init-specs ((:fade-r 0.0) (:fade-g 0.0) (:fade-b 0.0) (:fade-a -0.225))
)
(defpart 2246
:init-specs ((:texture (new 'static 'texture-id :index #xbb :page #xc))
(:num 1.0)
(:scale-x (meters 5))
(:rot-x (degrees 11.25))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 255.0)
(:b 255.0)
(:a 96.0)
(:scalevel-x (meters 0.5))
(:rotvel-z (degrees 0.3))
(:scalevel-y :copy scalevel-x)
(:fade-r -2.56)
(:fade-g -1.28)
(:fade-b 0.0)
(:fade-a 0.0)
(:timer (seconds 0.217))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:next-time (seconds 0.1))
(:next-launcher 2258)
)
)
(defpart 2258
:init-specs ((:scalevel-x (meters -0.2857143))
(:scalevel-y :copy scalevel-x)
(:fade-r 0.0)
(:fade-g -3.6571429)
(:fade-b 0.0)
(:fade-a -2.7428572)
)
)
(defpart 2248
:init-specs ((:texture (new 'static 'texture-id :page #xc))
(:num 12.0 1.0)
(:x (meters 0) (meters 0.6))
(:scale-x (meters 2.5) (meters 2))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 70.0 20.0)
(:g :copy r)
(:b :copy g)
(:a 0.0 40.0)
(:vel-y (meters 0) (meters 0.1))
(:scalevel-x (meters 0.033333335) (meters 0.02))
(:rotvel-z (degrees -0.12) (degrees 0.24))
(:scalevel-y :copy scalevel-x)
(:fade-r 0.98)
(:fade-g 3.12)
(:fade-b 3.3)
(:fade-a 1.76)
(:friction 0.88)
(:timer (seconds 2.367))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3))
(:next-time (seconds 0.117) (seconds 0.047))
(:next-launcher 2259)
(:conerot-x (degrees 0) (degrees 3600))
(:conerot-y (degrees 0) (degrees 3600))
)
)
(defpart 2259
:init-specs ((:scalevel-x (meters 0.0033333334))
(:scalevel-y :copy scalevel-x)
(:fade-r -2.2)
(:fade-g -1.9666667)
(:fade-b -0.53333336)
(:fade-a -0.41666666)
(:next-time (seconds 0.15) (seconds 0.047))
(:next-launcher 2260)
)
)
(defpart 2260
:init-specs ((:scalevel-x (meters 0))
(:scalevel-y :copy scalevel-x)
(:fade-r -0.028333334)
(:fade-g -0.21333334)
(:fade-b -0.38833332)
(:fade-a -0.38833332)
)
)
(defpart 2249
:init-specs ((:texture (new 'static 'texture-id :index #x31 :page #xc))
(:num 8.0 2.0)
(:scale-x (meters 0.4) (meters 0.5))
(:rot-x 4)
(:rot-z (degrees 0) (degrees 360))
(:scale-y (meters 0.2) (meters 0.1))
(:r 64.0)
(:g 96.0)
(:b 128.0 128.0)
(:a 64.0 64.0)
(:scalevel-x (meters 0.13333334) (meters 0.02))
(:fade-r 3.2)
(:fade-g 1.6)
(:fade-a -1.6)
(:timer (seconds 0.3))
(:flags (sp-cpuinfo-flag-2))
)
)
(defpartgroup group-under-locking-fill
:id 498
:bounds (static-bspherem 0 8 0 16)
:parts ((sp-item 2262 :fade-after (meters 160) :falloff-to (meters 160) :binding 2261)
(sp-item 2263 :flags (launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
(sp-item 2261 :flags (start-dead launch-asap))
)
)
(defpart 2262
:init-specs ((:texture (new 'static 'texture-id :index #x21 :page #xc))
(:num 1.0)
(:x (meters 0) (meters 7))
(:scale-x (meters 0.3))
(:scale-y :copy scale-x)
(:r 255.0)
(:a 0.0)
(:vel-y (meters 0.005) (meters 0.005))
(:timer (seconds 5))
(:rotate-y (degrees 0) (degrees 3600))
)
)
(defpart 2261
:init-specs ((:texture (new 'static 'texture-id :index #x21 :page #xc))
(:num 2.0)
(:z (meters 0) (meters 0.25))
(:scale-x (meters 0.3) (meters 0.15))
(:scale-y (meters 0.2) (meters 0.1))
(:r 255.0)
(:g 255.0)
(:b 255.0)
(:a 0.0)
(:vel-x (meters 0) (meters 0.017777778))
(:vel-z (meters 0.00083333335) (meters 0.00083333335))
(:fade-a 0.053333335)
(:timer (seconds 5))
(:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 ready-to-launch))
(:next-time (seconds 0.33) (seconds 0.657))
(:next-launcher 2214)
)
)
(defpart 2263
:init-specs ((:num 50.0)
(:x (meters 0) (meters 7))
(:rot-x 16)
(:vel-y (meters 0.005) (meters 0.005))
(:fade-r 36.40889)
(:fade-g 31.857779)
(:fade-b 28.216888)
(:timer (seconds 5))
(:flags (distort))
(:next-time (seconds 2.5))
(:next-launcher 2264)
(:rotate-y (degrees 0) (degrees 3600))
)
)
(defpart 2264
:init-specs ((:fade-r -21.845333) (:fade-g -19.114666) (:fade-b -16.930132))
)
(defpartgroup group-under-locking-drain
:id 499
:bounds (static-bspherem 0 8 0 16)
:parts ((sp-item 2266 :fade-after (meters 160) :falloff-to (meters 160) :binding 2265)
(sp-item 2267 :flags (launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
(sp-item 2265 :flags (start-dead launch-asap))
)
)
(defpart 2266
:init-specs ((:texture (new 'static 'texture-id :index #x21 :page #xc))
(:num 1.0)
(:x (meters 0) (meters 7))
(:y (meters 5))
(:scale-x (meters 0.3))
(:scale-y :copy scale-x)
(:r 0.0)
(:a 0.0)
(:vel-y (meters -0.005) (meters -0.005))
(:timer (seconds 5))
(:rotate-y (degrees 0) (degrees 3600))
)
)
(defpart 2265
:init-specs ((:texture (new 'static 'texture-id :index #x21 :page #xc))
(:num 2.0)
(:z (meters 1.5))
(:scale-x (meters 0.3) (meters 0.15))
(:scale-y (meters 0.2) (meters 0.1))
(:r 255.0)
(:g 255.0)
(:b 255.0)
(:a 0.0)
(:vel-x (meters 0) (meters -0.017777778))
(:vel-z (meters -0.00083333335) (meters -0.00083333335))
(:fade-a 0.053333335)
(:timer (seconds 5))
(:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 ready-to-launch))
(:next-time (seconds 0.33) (seconds 0.657))
(:next-launcher 2214)
)
)
(defpart 2267
:init-specs ((:num 50.0)
(:x (meters 0) (meters 7))
(:y (meters 5))
(:rot-x 16)
(:vel-y (meters -0.005) (meters -0.005))
(:fade-r 36.40889)
(:fade-g 31.857779)
(:fade-b 28.216888)
(:timer (seconds 5))
(:flags (distort))
(:next-time (seconds 2.5))
(:next-launcher 2268)
(:rotate-y (degrees 0) (degrees 3600))
)
)
(defpart 2268
:init-specs ((:fade-r -21.845333) (:fade-g -19.114666) (:fade-b -16.930132))
)