jak-project/goal_src/jak3/levels/mine/mine-part.gc
Hat Kid 36f1592b90
decomp3: lightning renderer, nav code, texture remap, fix progress menu crash (#3461)
Also adds:

- BLERC
- Minimap (with missing texture for the map, sprites work)
- Eco Mine files
- Precursor robot boss files
- Sewer files
- Vehicle files
2024-04-12 18:44:38 -04:00

1677 lines
47 KiB
Common Lisp

;;-*-Lisp-*-
(in-package goal)
;; name: mine-part.gc
;; name in dgo: mine-part
;; dgos: MIA
;; DECOMP BEGINS
(defpartgroup group-minb-light-glow
:id 597
:bounds (static-bspherem 0 0 0 8)
:parts ((sp-item 2310 :fade-after (meters 120) :flags (sp6))
(sp-item 2311 :fade-after (meters 120) :flags (sp6))
(sp-item 2312 :fade-after (meters 120) :flags (sp6))
)
)
(defpart 2310
:init-specs ((:texture (glow-hotdot level-default-sprite))
(:num 1.0)
(:scale-x (meters 2) (meters 0.1))
(:rot-x (degrees 4.5))
(:rot-z (degrees -17))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 128.0)
(:b 80.0)
(:a 70.0)
(:omega (degrees 2715.75))
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 1638.4)
)
)
(defpart 2311
:init-specs ((:texture (glow-soft level-default-sprite))
(:num 1.0)
(:scale-x (meters 10) (meters 0.1))
(:rot-x (degrees 9))
(:rot-z (degrees -17))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 80.0)
(:b 0.0)
(:a 30.0 10.0)
(:omega (degrees 2715.75))
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 819.2)
)
)
(defpart 2312
:init-specs ((:texture (ring level-default-sprite))
(:num 1.0)
(:scale-x (meters 3) (meters 0.1))
(:rot-x (degrees 9))
(:rot-z (degrees -17))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 128.0)
(:b 0.0)
(:a 2.0 1.0)
(:omega (degrees 1815.7499))
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 819.2)
)
)
(defpartgroup group-min-target-sign-off
:id 598
:bounds (static-bspherem 0 0 0 2.5)
:parts ((sp-item 2313 :flags (sp6)))
)
(defpart 2313
:init-specs ((:texture (glow-soft level-default-sprite))
(:num 1.0)
(:scale-x (meters 9))
(:rot-x (degrees 11.25))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 16.0)
(:b 16.0)
(:a 28.0 2.0)
(:omega (degrees 6761.25))
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 glow))
(:userdata 4096.0)
(:rotate-y (degrees 0))
)
)
(defpartgroup group-min-target-sign-on
:id 599
:bounds (static-bspherem 0 0 0 2.5)
:parts ((sp-item 2314 :flags (sp6)))
)
(defpart 2314
:init-specs ((:texture (glow-soft level-default-sprite))
(:num 1.0)
(:scale-x (meters 9))
(:rot-x (degrees 11.25))
(:scale-y :copy scale-x)
(:r 16.0)
(:g 16.0)
(:b 255.0)
(:a 28.0 2.0)
(:omega (degrees 6761.25))
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 glow))
(:userdata 4096.0)
(:rotate-y (degrees 0))
)
)
(defpart 2315
:init-specs ((:texture (rockbit01 level-default-sprite))
(:birth-func 'birth-func-texture-group)
(:num 2.0 1.0)
(:scale-x (meters 0.3) (meters 0.1))
(:rot-z (degrees 0) (degrees 3600))
(:scale-y (meters 0.3) (meters 0.1))
(:r 120.0 5.0)
(:g 120.0 5.0)
(:b 80.0 5.0)
(:a 128.0)
(:vel-z (meters -0.016666668) (meters -0.083333336))
(:scalevel-x (meters -0.00066666666))
(:rotvel-z (degrees -0.6666667) (degrees 1.3333334))
(:scalevel-y :copy scalevel-x)
(:accel-y (meters -0.0016666667) (meters -0.00033333333))
(:timer (seconds 1.5))
(:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-13 launch-along-z))
(:userdata :data (new 'static 'boxed-array :type int32 20 1 0 #x408b00 #x40a200 #x40a600 #x40aa00))
(:func 'sparticle-motion-blur)
(:conerot-x (degrees -40) (degrees 80))
(:conerot-y (degrees -40) (degrees 80))
(:rotate-z (degrees 0) (degrees 3600))
)
)
(defpart 2316
:init-specs ((:texture (dirtpuff01 level-default-sprite))
(:num 0.4)
(:scale-x (meters 1) (meters 2))
(:rot-z (degrees 0) (degrees 3600))
(:scale-y :copy scale-x)
(:r 60.0)
(:g 70.0)
(:b 50.0)
(:a 40.0 40.0)
(:vel-z (meters -0.033333335) (meters -0.06666667))
(:scalevel-x (meters 0.016666668))
(:rotvel-z (degrees -0.1) (degrees 0.2))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.10666667 -0.10666667)
(:friction 0.94)
(:timer (seconds 2.5))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-13 launch-along-z))
(:conerot-x (degrees -40) (degrees 80))
(:conerot-y (degrees -40) (degrees 80))
(:rotate-z (degrees 0) (degrees 3600))
)
)
(defpartgroup group-minc-round-light-glow-always-on
:id 600
:flags (sp4)
:bounds (static-bspherem 0 0 0 8)
:parts ((sp-item 2317 :fade-after (meters 200) :flags (sp6 sp7))
(sp-item 2318 :fade-after (meters 200) :flags (sp6 sp7))
(sp-item 2319 :fade-after (meters 200) :flags (sp6 sp7))
(sp-item 2320 :fade-after (meters 200) :flags (sp6 sp7))
(sp-item 2321 :fade-after (meters 200) :flags (sp6 sp7))
(sp-item 2322 :fade-after (meters 200) :flags (sp6 sp7))
(sp-item 2323 :fade-after (meters 200) :flags (sp6 sp7))
(sp-item 2324 :fade-after (meters 200) :flags (sp6 sp7))
(sp-item 2325 :fade-after (meters 200) :flags (sp6 sp7))
(sp-item 2326 :fade-after (meters 200) :flags (is-3d sp6 sp7))
(sp-item 2327 :fade-after (meters 200) :flags (is-3d sp6 sp7))
(sp-item 2328 :fade-after (meters 200) :flags (is-3d sp6 sp7))
(sp-item 2329 :fade-after (meters 200) :flags (is-3d sp6 sp7))
)
)
(defpartgroup group-minc-round-light-glow
:id 601
:flags (sp4)
:bounds (static-bspherem 0 0 0 8)
:parts ((sp-item 2317 :fade-after (meters 200) :flags (sp6 sp7) :hour-mask #b111111111111000000)
(sp-item 2318 :fade-after (meters 200) :flags (sp6 sp7) :hour-mask #b111111111111000000)
(sp-item 2319 :fade-after (meters 200) :flags (sp6 sp7) :hour-mask #b111111111111000000)
(sp-item 2320 :fade-after (meters 200) :flags (sp6 sp7) :hour-mask #b111111111111000000)
(sp-item 2321 :fade-after (meters 200) :flags (sp6 sp7) :hour-mask #b111111111111000000)
(sp-item 2322 :fade-after (meters 200) :flags (sp6 sp7) :hour-mask #b111111111111000000)
(sp-item 2323 :fade-after (meters 200) :flags (sp6 sp7) :hour-mask #b111111111111000000)
(sp-item 2324 :fade-after (meters 200) :flags (sp6 sp7) :hour-mask #b111111111111000000)
(sp-item 2325 :fade-after (meters 200) :flags (sp6 sp7) :hour-mask #b111111111111000000)
(sp-item 2326 :fade-after (meters 200) :flags (is-3d sp6 sp7) :hour-mask #b111111111111000000)
(sp-item 2327 :fade-after (meters 200) :flags (is-3d sp6 sp7) :hour-mask #b111111111111000000)
(sp-item 2328 :fade-after (meters 200) :flags (is-3d sp6 sp7) :hour-mask #b111111111111000000)
(sp-item 2329 :fade-after (meters 200) :flags (is-3d sp6 sp7) :hour-mask #b111111111111000000)
)
)
(defpart 2317
:init-specs ((:texture (glow level-default-sprite))
(:num 1.0)
(:x (meters -0.1))
(:y (meters 0))
(:z (meters -0.2))
(:scale-x (meters 10))
(:rot-x (degrees 4.5))
(:rot-z (degrees -17))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 255.0)
(:b 128.0)
(:a 30.0)
(:omega (degrees 4515.75))
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-3 glow))
(:userdata 2048.0)
(:rotate-y (degrees 0))
)
)
(defpart 2318
:init-specs ((:texture (glow level-default-sprite))
(:num 1.0)
(:x (meters 1.55))
(:y (meters -0.05))
(:z (meters -1.1))
(:scale-x (meters 2))
(:rot-x (degrees 1.125))
(:rot-z (degrees 0))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 255.0)
(:b 128.0)
(:a 20.0)
(:omega (degrees 4515.75))
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-3 glow))
(:userdata 409.6)
(:rotate-y (degrees 0))
)
)
(defpart 2319
:init-specs ((:texture (glow level-default-sprite))
(:num 1.0)
(:x (meters -0.2))
(:y (meters -1.7))
(:z (meters -1.15))
(:scale-x (meters 2))
(:rot-x (degrees 1.125))
(:rot-z (degrees 0))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 255.0)
(:b 128.0)
(:a 20.0)
(:omega (degrees 4515.75))
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-3 glow))
(:userdata 409.6)
(:rotate-y (degrees 0))
)
)
(defpart 2320
:init-specs ((:texture (glow level-default-sprite))
(:num 1.0)
(:x (meters -2))
(:y (meters 0.1))
(:z (meters -1.13))
(:scale-x (meters 2))
(:rot-x (degrees 1.125))
(:rot-z (degrees 0))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 255.0)
(:b 128.0)
(:a 20.0)
(:omega (degrees 4515.75))
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-3 glow))
(:userdata 409.6)
(:rotate-y (degrees 0))
)
)
(defpart 2321
:init-specs ((:texture (glow level-default-sprite))
(:num 1.0)
(:x (meters -0.1))
(:y (meters 1.7))
(:z (meters -1.05))
(:scale-x (meters 2))
(:rot-x (degrees 1.125))
(:rot-z (degrees 0))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 255.0)
(:b 128.0)
(:a 20.0)
(:omega (degrees 4515.75))
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-3 glow))
(:userdata 409.6)
(:rotate-y (degrees 0))
)
)
(defpart 2322
:init-specs ((:texture (glow level-default-sprite))
(:num 1.0)
(:x (meters 1.2))
(:y (meters 1.2))
(:z (meters -1))
(:scale-x (meters 2))
(:rot-x (degrees 1.125))
(:rot-z (degrees 0))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 255.0)
(:b 128.0)
(:a 20.0)
(:omega (degrees 4515.75))
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-3 glow))
(:userdata 409.6)
(:rotate-y (degrees 0))
)
)
(defpart 2323
:init-specs ((:texture (glow level-default-sprite))
(:num 1.0)
(:x (meters -1.25))
(:y (meters 1.1))
(:z (meters -1))
(:scale-x (meters 2))
(:rot-x (degrees 1.125))
(:rot-z (degrees 0))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 255.0)
(:b 128.0)
(:a 20.0)
(:omega (degrees 4515.75))
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-3 glow))
(:userdata 409.6)
(:rotate-y (degrees 0))
)
)
(defpart 2324
:init-specs ((:texture (glow level-default-sprite))
(:num 1.0)
(:x (meters -1.4))
(:y (meters -1.1))
(:z (meters -1.1))
(:scale-x (meters 2))
(:rot-x (degrees 1.125))
(:rot-z (degrees 0))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 255.0)
(:b 128.0)
(:a 20.0)
(:omega (degrees 4515.75))
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-3 glow))
(:userdata 409.6)
(:rotate-y (degrees 0))
)
)
(defpart 2325
:init-specs ((:texture (glow level-default-sprite))
(:num 1.0)
(:x (meters 1.05))
(:y (meters -1.3))
(:z (meters -1))
(:scale-x (meters 2))
(:rot-x (degrees 1.125))
(:rot-z (degrees 0))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 255.0)
(:b 128.0)
(:a 20.0)
(:omega (degrees 4515.75))
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-3 glow))
(:userdata 409.6)
(:rotate-y (degrees 0))
)
)
(defpart 2326
:init-specs ((:texture (vol-light level-default-sprite))
(:num 1.0)
(:x (meters 0))
(:y (meters 0))
(:z (meters 9.8))
(:scale-x (meters 10))
(:rot-x (degrees 0))
(:rot-y (degrees 0))
(:rot-z (degrees 0))
(:scale-y (meters 20))
(:r 128.0)
(:g 128.0)
(:b 64.0)
(:a 20.0 2.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-3))
(:rotate-x (degrees 0))
(:rotate-y (degrees 0))
(:rotate-z (degrees 0))
)
)
(defpart 2327
:init-specs ((:texture (vol-light level-default-sprite))
(:num 1.0)
(:x (meters 0))
(:y (meters 0))
(:z (meters 9.8))
(:scale-x (meters 10))
(:rot-x (degrees 0))
(:rot-y (degrees 0))
(:rot-z (degrees 0))
(:scale-y (meters 20))
(:r 128.0)
(:g 128.0)
(:b 64.0)
(:a 20.0 2.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-3))
(:rotate-x (degrees 0))
(:rotate-y (degrees 0))
(:rotate-z (degrees 45))
)
)
(defpart 2328
:init-specs ((:texture (vol-light level-default-sprite))
(:num 1.0)
(:x (meters 0))
(:y (meters 0))
(:z (meters 9.8))
(:scale-x (meters 10))
(:rot-x (degrees 0))
(:rot-y (degrees 0))
(:rot-z (degrees 0))
(:scale-y (meters 20))
(:r 128.0)
(:g 128.0)
(:b 64.0)
(:a 20.0 2.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-3))
(:rotate-x (degrees 0))
(:rotate-y (degrees 0))
(:rotate-z (degrees -45))
)
)
(defpart 2329
:init-specs ((:texture (vol-light level-default-sprite))
(:num 1.0)
(:x (meters 0))
(:y (meters 0))
(:z (meters 9))
(:scale-x (meters 10))
(:rot-x (degrees 0))
(:rot-y (degrees 0))
(:rot-z (degrees 0))
(:scale-y (meters 20))
(:r 128.0)
(:g 128.0)
(:b 64.0)
(:a 20.0 2.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-3))
(:rotate-x (degrees 0))
(:rotate-y (degrees 0))
(:rotate-z (degrees 90))
)
)
(defpartgroup group-minc-t-light-glow-always-on
:id 602
:flags (sp4)
:bounds (static-bspherem 0 0 0 12)
:parts ((sp-item 2330 :fade-after (meters 200) :flags (sp6 sp7))
(sp-item 2331 :fade-after (meters 200) :flags (sp6 sp7))
(sp-item 2332 :fade-after (meters 200) :flags (sp6 sp7))
(sp-item 2333 :fade-after (meters 200) :flags (sp6 sp7))
(sp-item 2334 :fade-after (meters 200) :flags (sp6 sp7))
(sp-item 2335 :fade-after (meters 200) :flags (is-3d sp6 sp7))
(sp-item 2336 :fade-after (meters 200) :flags (is-3d sp6 sp7))
(sp-item 2337 :fade-after (meters 200) :flags (is-3d sp6 sp7))
(sp-item 2338 :fade-after (meters 200) :flags (is-3d sp6 sp7))
(sp-item 2339 :fade-after (meters 200) :flags (is-3d sp6 sp7))
(sp-item 2340 :fade-after (meters 200) :flags (is-3d sp6 sp7))
(sp-item 2341 :fade-after (meters 200) :flags (is-3d sp6 sp7))
(sp-item 2342 :fade-after (meters 200) :flags (is-3d sp6 sp7))
(sp-item 2343 :fade-after (meters 200) :flags (is-3d sp6 sp7))
(sp-item 2344 :fade-after (meters 200) :flags (is-3d sp6 sp7))
(sp-item 2345 :fade-after (meters 200) :flags (is-3d sp6 sp7))
(sp-item 2346 :fade-after (meters 200) :flags (is-3d sp6 sp7))
(sp-item 2347 :fade-after (meters 200) :flags (is-3d sp6 sp7))
(sp-item 2348 :fade-after (meters 200) :flags (is-3d sp6 sp7))
(sp-item 2349 :fade-after (meters 200) :flags (is-3d sp6 sp7))
(sp-item 2350 :fade-after (meters 200) :flags (is-3d sp6 sp7))
(sp-item 2351 :fade-after (meters 200) :flags (is-3d sp6 sp7))
(sp-item 2352 :fade-after (meters 200) :flags (is-3d sp6 sp7))
(sp-item 2353 :fade-after (meters 200) :flags (is-3d sp6 sp7))
(sp-item 2354 :fade-after (meters 200) :flags (is-3d sp6 sp7))
)
)
(defpartgroup group-minc-t-light-glow
:id 603
:flags (sp4)
:bounds (static-bspherem 0 0 0 12)
:parts ((sp-item 2330 :fade-after (meters 200) :flags (sp6 sp7) :hour-mask #b111111111111000000)
(sp-item 2331 :fade-after (meters 200) :flags (sp6 sp7) :hour-mask #b111111111111000000)
(sp-item 2332 :fade-after (meters 200) :flags (sp6 sp7) :hour-mask #b111111111111000000)
(sp-item 2333 :fade-after (meters 200) :flags (sp6 sp7) :hour-mask #b111111111111000000)
(sp-item 2334 :fade-after (meters 200) :flags (sp6 sp7) :hour-mask #b111111111111000000)
(sp-item 2335 :fade-after (meters 200) :flags (is-3d sp6 sp7) :hour-mask #b111111111111000000)
(sp-item 2336 :fade-after (meters 200) :flags (is-3d sp6 sp7) :hour-mask #b111111111111000000)
(sp-item 2337 :fade-after (meters 200) :flags (is-3d sp6 sp7) :hour-mask #b111111111111000000)
(sp-item 2338 :fade-after (meters 200) :flags (is-3d sp6 sp7) :hour-mask #b111111111111000000)
(sp-item 2339 :fade-after (meters 200) :flags (is-3d sp6 sp7) :hour-mask #b111111111111000000)
(sp-item 2340 :fade-after (meters 200) :flags (is-3d sp6 sp7) :hour-mask #b111111111111000000)
(sp-item 2341 :fade-after (meters 200) :flags (is-3d sp6 sp7) :hour-mask #b111111111111000000)
(sp-item 2342 :fade-after (meters 200) :flags (is-3d sp6 sp7) :hour-mask #b111111111111000000)
(sp-item 2343 :fade-after (meters 200) :flags (is-3d sp6 sp7) :hour-mask #b111111111111000000)
(sp-item 2344 :fade-after (meters 200) :flags (is-3d sp6 sp7) :hour-mask #b111111111111000000)
(sp-item 2345 :fade-after (meters 200) :flags (is-3d sp6 sp7) :hour-mask #b111111111111000000)
(sp-item 2346 :fade-after (meters 200) :flags (is-3d sp6 sp7) :hour-mask #b111111111111000000)
(sp-item 2347 :fade-after (meters 200) :flags (is-3d sp6 sp7) :hour-mask #b111111111111000000)
(sp-item 2348 :fade-after (meters 200) :flags (is-3d sp6 sp7) :hour-mask #b111111111111000000)
(sp-item 2349 :fade-after (meters 200) :flags (is-3d sp6 sp7) :hour-mask #b111111111111000000)
(sp-item 2350 :fade-after (meters 200) :flags (is-3d sp6 sp7) :hour-mask #b111111111111000000)
(sp-item 2351 :fade-after (meters 200) :flags (is-3d sp6 sp7) :hour-mask #b111111111111000000)
(sp-item 2352 :fade-after (meters 200) :flags (is-3d sp6 sp7) :hour-mask #b111111111111000000)
(sp-item 2353 :fade-after (meters 200) :flags (is-3d sp6 sp7) :hour-mask #b111111111111000000)
(sp-item 2354 :fade-after (meters 200) :flags (is-3d sp6 sp7) :hour-mask #b111111111111000000)
)
)
(defpart 2330
:init-specs ((:texture (glow level-default-sprite))
(:num 1.0)
(:x (meters 0))
(:y (meters 0))
(:z (meters -0.2))
(:scale-x (meters 3))
(:rot-x (degrees 1.125))
(:rot-z (degrees 0))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 255.0)
(:b 128.0)
(:a 30.0)
(:omega (degrees 4515.75))
(:timer (seconds 0.017))
(:flags (glow))
(:userdata 409.6)
(:rotate-y (degrees 0))
)
)
(defpart 2331
:init-specs ((:texture (glow level-default-sprite))
(:num 1.0)
(:x (meters 0))
(:y (meters -2.12))
(:z (meters 0))
(:scale-x (meters 3))
(:rot-x (degrees 1.125))
(:rot-z (degrees 0))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 255.0)
(:b 128.0)
(:a 30.0)
(:omega (degrees 4515.75))
(:timer (seconds 0.017))
(:flags (glow))
(:userdata 409.6)
(:rotate-y (degrees 0))
)
)
(defpart 2332
:init-specs ((:texture (glow level-default-sprite))
(:num 1.0)
(:x (meters -4))
(:y (meters -2.2))
(:z (meters -0.78))
(:scale-x (meters 2))
(:rot-x (degrees 1.125))
(:rot-z (degrees 0))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 255.0)
(:b 128.0)
(:a 30.0)
(:omega (degrees 4515.75))
(:timer (seconds 0.017))
(:flags (glow))
(:userdata 409.6)
(:rotate-y (degrees 0))
)
)
(defpart 2333
:init-specs ((:texture (glow level-default-sprite))
(:num 1.0)
(:x (meters 3.65))
(:y (meters -2.2))
(:z (meters -0.8))
(:scale-x (meters 2))
(:rot-x (degrees 1.125))
(:rot-z (degrees 0))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 255.0)
(:b 128.0)
(:a 30.0)
(:omega (degrees 4515.75))
(:timer (seconds 0.017))
(:flags (glow))
(:userdata 409.6)
(:rotate-y (degrees 0))
)
)
(defpart 2334
:init-specs ((:texture (glow level-default-sprite))
(:num 1.0)
(:x (meters -0.07))
(:y (meters -3.6))
(:z (meters -0.2))
(:scale-x (meters 2))
(:rot-x (degrees 1.125))
(:rot-z (degrees 0))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 255.0)
(:b 128.0)
(:a 30.0)
(:omega (degrees 4515.75))
(:timer (seconds 0.017))
(:flags (glow))
(:userdata 409.6)
(:rotate-y (degrees 0))
)
)
(defpart 2335
:init-specs ((:texture (vol-light level-default-sprite))
(:num 1.0)
(:x (meters 0))
(:y (meters 0))
(:z (meters 9.8))
(:scale-x (meters 2))
(:rot-x (degrees 0))
(:rot-y (degrees 0))
(:rot-z (degrees 0))
(:scale-y (meters 20))
(:r 128.0)
(:g 128.0)
(:b 64.0)
(:a 20.0 2.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-3))
(:rotate-x (degrees 0))
(:rotate-y (degrees 0))
(:rotate-z (degrees 0))
)
)
(defpart 2336
:init-specs ((:texture (vol-light level-default-sprite))
(:num 1.0)
(:x (meters 0))
(:y (meters 0))
(:z (meters 9.8))
(:scale-x (meters 2))
(:rot-x (degrees 0))
(:rot-y (degrees 0))
(:rot-z (degrees 45))
(:scale-y (meters 20))
(:r 128.0)
(:g 128.0)
(:b 64.0)
(:a 20.0 2.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-3))
(:rotate-x (degrees 0))
(:rotate-y (degrees 0))
(:rotate-z (degrees 0))
)
)
(defpart 2337
:init-specs ((:texture (vol-light level-default-sprite))
(:num 1.0)
(:x (meters 0))
(:y (meters 0))
(:z (meters 9.8))
(:scale-x (meters 2))
(:rot-x (degrees 0))
(:rot-y (degrees 0))
(:rot-z (degrees -45))
(:scale-y (meters 20))
(:r 128.0)
(:g 128.0)
(:b 64.0)
(:a 20.0 2.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-3))
(:rotate-x (degrees 0))
(:rotate-y (degrees 0))
(:rotate-z (degrees 0))
)
)
(defpart 2338
:init-specs ((:texture (vol-light level-default-sprite))
(:num 1.0)
(:x (meters 0))
(:y (meters 0))
(:z (meters 9))
(:scale-x (meters 2))
(:rot-x (degrees 0))
(:rot-y (degrees 0))
(:rot-z (degrees 90))
(:scale-y (meters 20))
(:r 128.0)
(:g 128.0)
(:b 64.0)
(:a 20.0 2.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-3))
(:rotate-x (degrees 0))
(:rotate-y (degrees 0))
(:rotate-z (degrees 0))
)
)
(defpart 2339
:init-specs ((:texture (vol-light level-default-sprite))
(:num 1.0)
(:x (meters 0))
(:y (meters -2.12))
(:z (meters 9.8))
(:scale-x (meters 2))
(:rot-x (degrees 0))
(:rot-y (degrees 0))
(:rot-z (degrees 0))
(:scale-y (meters 20))
(:r 128.0)
(:g 128.0)
(:b 64.0)
(:a 20.0 2.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-3))
(:rotate-x (degrees 0))
(:rotate-y (degrees 0))
(:rotate-z (degrees 0))
)
)
(defpart 2340
:init-specs ((:texture (vol-light level-default-sprite))
(:num 1.0)
(:x (meters 0))
(:y (meters -2.12))
(:z (meters 9.8))
(:scale-x (meters 2))
(:rot-x (degrees 0))
(:rot-y (degrees 0))
(:rot-z (degrees 45))
(:scale-y (meters 20))
(:r 128.0)
(:g 128.0)
(:b 64.0)
(:a 20.0 2.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-3))
(:rotate-x (degrees 0))
(:rotate-y (degrees 0))
(:rotate-z (degrees 0))
)
)
(defpart 2341
:init-specs ((:texture (vol-light level-default-sprite))
(:num 1.0)
(:x (meters 0))
(:y (meters -2.12))
(:z (meters 9.8))
(:scale-x (meters 2))
(:rot-x (degrees 0))
(:rot-y (degrees 0))
(:rot-z (degrees -45))
(:scale-y (meters 20))
(:r 128.0)
(:g 128.0)
(:b 64.0)
(:a 20.0 2.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-3))
(:rotate-x (degrees 0))
(:rotate-y (degrees 0))
(:rotate-z (degrees 0))
)
)
(defpart 2342
:init-specs ((:texture (vol-light level-default-sprite))
(:num 1.0)
(:x (meters 0))
(:y (meters -2.12))
(:z (meters 9))
(:scale-x (meters 2))
(:rot-x (degrees 0))
(:rot-y (degrees 0))
(:rot-z (degrees 90))
(:scale-y (meters 20))
(:r 128.0)
(:g 128.0)
(:b 64.0)
(:a 20.0 2.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-3))
(:rotate-x (degrees 0))
(:rotate-y (degrees 0))
(:rotate-z (degrees 0))
)
)
(defpart 2343
:init-specs ((:texture (vol-light level-default-sprite))
(:num 1.0)
(:x (meters -4))
(:y (meters -2.2))
(:z (meters 9.8))
(:scale-x (meters 2))
(:rot-x (degrees 0))
(:rot-y (degrees 0))
(:rot-z (degrees 0))
(:scale-y (meters 20))
(:r 128.0)
(:g 128.0)
(:b 64.0)
(:a 20.0 2.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-3))
(:rotate-x (degrees 0))
(:rotate-y (degrees 0))
(:rotate-z (degrees 0))
)
)
(defpart 2344
:init-specs ((:texture (vol-light level-default-sprite))
(:num 1.0)
(:x (meters -4))
(:y (meters -2.2))
(:z (meters 9.8))
(:scale-x (meters 2))
(:rot-x (degrees 0))
(:rot-y (degrees 0))
(:rot-z (degrees 45))
(:scale-y (meters 20))
(:r 128.0)
(:g 128.0)
(:b 64.0)
(:a 20.0 2.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-3))
(:rotate-x (degrees 0))
(:rotate-y (degrees 0))
(:rotate-z (degrees 0))
)
)
(defpart 2345
:init-specs ((:texture (vol-light level-default-sprite))
(:num 1.0)
(:x (meters -4))
(:y (meters -2.2))
(:z (meters 9.8))
(:scale-x (meters 2))
(:rot-x (degrees 0))
(:rot-y (degrees 0))
(:rot-z (degrees -45))
(:scale-y (meters 20))
(:r 128.0)
(:g 128.0)
(:b 64.0)
(:a 20.0 2.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-3))
(:rotate-x (degrees 0))
(:rotate-y (degrees 0))
(:rotate-z (degrees 0))
)
)
(defpart 2346
:init-specs ((:texture (vol-light level-default-sprite))
(:num 1.0)
(:x (meters -4))
(:y (meters -2.2))
(:z (meters 9))
(:scale-x (meters 2))
(:rot-x (degrees 0))
(:rot-y (degrees 0))
(:rot-z (degrees 90))
(:scale-y (meters 20))
(:r 128.0)
(:g 128.0)
(:b 64.0)
(:a 20.0 2.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-3))
(:rotate-x (degrees 0))
(:rotate-y (degrees 0))
(:rotate-z (degrees 0))
)
)
(defpart 2347
:init-specs ((:texture (vol-light level-default-sprite))
(:num 1.0)
(:x (meters 3.65))
(:y (meters -2.2))
(:z (meters 9.8))
(:scale-x (meters 2))
(:rot-x (degrees 0))
(:rot-y (degrees 0))
(:rot-z (degrees 0))
(:scale-y (meters 20))
(:r 128.0)
(:g 128.0)
(:b 64.0)
(:a 20.0 2.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-3))
(:rotate-x (degrees 0))
(:rotate-y (degrees 0))
(:rotate-z (degrees 0))
)
)
(defpart 2348
:init-specs ((:texture (vol-light level-default-sprite))
(:num 1.0)
(:x (meters 3.65))
(:y (meters -2.2))
(:z (meters 9.8))
(:scale-x (meters 2))
(:rot-x (degrees 0))
(:rot-y (degrees 0))
(:rot-z (degrees 45))
(:scale-y (meters 20))
(:r 128.0)
(:g 128.0)
(:b 64.0)
(:a 20.0 2.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-3))
(:rotate-x (degrees 0))
(:rotate-y (degrees 0))
(:rotate-z (degrees 0))
)
)
(defpart 2349
:init-specs ((:texture (vol-light level-default-sprite))
(:num 1.0)
(:x (meters 3.65))
(:y (meters -2.2))
(:z (meters 9.8))
(:scale-x (meters 2))
(:rot-x (degrees 0))
(:rot-y (degrees 0))
(:rot-z (degrees -45))
(:scale-y (meters 20))
(:r 128.0)
(:g 128.0)
(:b 64.0)
(:a 20.0 2.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-3))
(:rotate-x (degrees 0))
(:rotate-y (degrees 0))
(:rotate-z (degrees 0))
)
)
(defpart 2350
:init-specs ((:texture (vol-light level-default-sprite))
(:num 1.0)
(:x (meters 3.65))
(:y (meters -2.2))
(:z (meters 9))
(:scale-x (meters 2))
(:rot-x (degrees 0))
(:rot-y (degrees 0))
(:rot-z (degrees 90))
(:scale-y (meters 20))
(:r 128.0)
(:g 128.0)
(:b 64.0)
(:a 20.0 2.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-3))
(:rotate-x (degrees 0))
(:rotate-y (degrees 0))
(:rotate-z (degrees 0))
)
)
(defpart 2351
:init-specs ((:texture (vol-light level-default-sprite))
(:num 1.0)
(:x (meters -0.07))
(:y (meters -3.6))
(:z (meters 9.8))
(:scale-x (meters 2))
(:rot-x (degrees 0))
(:rot-y (degrees 0))
(:rot-z (degrees 0))
(:scale-y (meters 20))
(:r 128.0)
(:g 128.0)
(:b 64.0)
(:a 20.0 2.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-3))
(:rotate-x (degrees 0))
(:rotate-y (degrees 0))
(:rotate-z (degrees 0))
)
)
(defpart 2352
:init-specs ((:texture (vol-light level-default-sprite))
(:num 1.0)
(:x (meters -0.07))
(:y (meters -3.6))
(:z (meters 9.8))
(:scale-x (meters 2))
(:rot-x (degrees 0))
(:rot-y (degrees 0))
(:rot-z (degrees 45))
(:scale-y (meters 20))
(:r 128.0)
(:g 128.0)
(:b 64.0)
(:a 20.0 2.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-3))
(:rotate-x (degrees 0))
(:rotate-y (degrees 0))
(:rotate-z (degrees 0))
)
)
(defpart 2353
:init-specs ((:texture (vol-light level-default-sprite))
(:num 1.0)
(:x (meters -0.07))
(:y (meters -3.6))
(:z (meters 9.8))
(:scale-x (meters 2))
(:rot-x (degrees 0))
(:rot-y (degrees 0))
(:rot-z (degrees -45))
(:scale-y (meters 20))
(:r 128.0)
(:g 128.0)
(:b 64.0)
(:a 20.0 2.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-3))
(:rotate-x (degrees 0))
(:rotate-y (degrees 0))
(:rotate-z (degrees 0))
)
)
(defpart 2354
:init-specs ((:texture (vol-light level-default-sprite))
(:num 1.0)
(:x (meters -0.07))
(:y (meters -3.6))
(:z (meters 9))
(:scale-x (meters 2))
(:rot-x (degrees 0))
(:rot-y (degrees 0))
(:rot-z (degrees 90))
(:scale-y (meters 20))
(:r 128.0)
(:g 128.0)
(:b 64.0)
(:a 20.0 2.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-3))
(:rotate-x (degrees 0))
(:rotate-y (degrees 0))
(:rotate-z (degrees 0))
)
)
(defpartgroup group-bomb-train-explode
:id 604
:flags (sp0 sp4)
:bounds (static-bspherem 0 0 0 80)
:parts ((sp-item 2355 :flags (sp3) :period (seconds 30) :length (seconds 0.035))
(sp-item 2356 :period (seconds 30) :length (seconds 0.035))
(sp-item 2357 :flags (sp3) :period (seconds 30) :length (seconds 0.017))
(sp-item 2358 :period (seconds 30) :length (seconds 0.5))
(sp-item 2359 :period (seconds 30) :length (seconds 0.5))
(sp-item 2360 :flags (sp3) :period (seconds 30) :length (seconds 0.017))
)
)
(defpart 2355
:init-specs ((:texture (glow-soft level-default-sprite))
(:num 1.0)
(:scale-x (meters 60))
(:rot-x (degrees 225))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 128.0)
(:b 100.0)
(:a 128.0)
(:omega (degrees 18011.25))
(:fade-a -0.85333335)
(:timer (seconds 1))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14 glow))
(:userdata 40960.0)
)
)
(defpart 2361
:init-specs ((:texture (bigpuff level-default-sprite))
(:num 30.0)
(:scale-x (meters 6) (meters 4))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 160.0)
(:b 40.0)
(:a 128.0)
(:vel-y (meters 0) (meters 0.13333334))
(:scalevel-x (meters 0.016666668))
(:scalevel-y :copy scalevel-x)
(:fade-g -0.13333334)
(:fade-b -0.05)
(:fade-a -0.21333334 -0.21333334)
(:friction 0.93)
(:timer (seconds 2))
(:flags (sp-cpuinfo-flag-3 sp-cpuinfo-flag-14))
(:conerot-x (degrees 0) (degrees 360))
(:rotate-y (degrees 0) (degrees 3600))
)
)
(defpart 2362
:init-specs ((:texture (explosion-edge level-default-sprite))
(:num 5.0)
(:scale-x (meters 6) (meters 4))
(:rot-y (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 64.0 64.0)
(:g :copy r)
(:b :copy r)
(:a 128.0)
(:vel-y (meters 0.6666667) (meters 0.26666668))
(:scalevel-x (meters 0.06666667))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.21333334 -0.21333334)
(:friction 0.7)
(:timer (seconds 1))
(:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14))
(:func 'sparticle-2d-spline-align-instant)
(:conerot-x (degrees 0) (degrees 360))
(:rotate-y (degrees 0) (degrees 3600))
)
)
(defpart 2356
:init-specs ((:texture (bigpuff level-default-sprite))
(:birth-func 'birth-func-curve)
(:num 30.0)
(:scale-x (meters 1))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 1.0)
(:g 1.0)
(:b 128.0)
(:a 128.0)
(:vel-y (meters 0.1))
(:friction 0.97)
(:timer (seconds 2))
(:flags (sp-cpuinfo-flag-13 sp-cpuinfo-flag-14))
(:userdata 0.0)
(:func 'live-func-curve)
(:conerot-x (degrees 0) (degrees 360))
(:conerot-z (degrees 0) (degrees 360))
(:rotate-y (degrees 0) (degrees 3600))
)
)
(if #t
(set! *range-explo-dust-color* (new 'static 'curve-color-fast
:xs (new 'static 'vector :y -1.0 :z -2.0 :w -3.0)
:ys (new 'static 'inline-array vector 4
(new 'static 'vector :x 70.0 :y 70.0 :z 70.0 :w 128.0)
(new 'static 'vector :x 40.0 :y 40.0 :z 40.0 :w 128.0)
(new 'static 'vector :x 40.0 :y 40.0 :z 40.0 :w 128.0)
(new 'static 'vector :x 40.0 :y 40.0 :z 40.0 :w 128.0)
)
:one-over-x-deltas (new 'static 'vector :x 1.0 :y 1.0 :z 1.0 :w 1.0)
)
)
)
(if #t
(set! *range-explo-dust-alpha* (new 'static 'curve2d-fast
:xs (new 'static 'vector :y -1.0 :z -2.0 :w -3.0)
:ys (new 'static 'vector :x 80.0 :y 64.0 :z 65.0 :w 66.0)
:one-over-x-deltas (new 'static 'vector :x -16.0 :y 1.0 :z 1.0 :w 1.0)
)
)
)
(if #t
(set! *range-explo-dust-scale-x* (new 'static 'curve2d-fast
:xs (new 'static 'vector :y -1.0 :z -2.0 :w -3.0)
:ys (new 'static 'vector :x 16.0 :y 20.0 :z 21.0 :w 22.0)
:one-over-x-deltas (new 'static 'vector :x 4.0 :y 1.0 :z 1.0 :w 1.0)
)
)
)
(if #t
(set! *range-explo-dust-scale-y* (new 'static 'curve2d-fast
:xs (new 'static 'vector :y -1.0 :z -2.0 :w -3.0)
:ys (new 'static 'vector :x 16.0 :y 20.0 :z 21.0 :w 22.0)
:one-over-x-deltas (new 'static 'vector :x 4.0 :y 1.0 :z 1.0 :w 1.0)
)
)
)
(if #t
(set! *curve-explo-dust-alpha* (new 'static 'curve2d-fast
:xs (new 'static 'vector :y -0.7 :z -1.0 :w -2.0)
:ys (new 'static 'vector :y 1.0 :w 1.0)
:one-over-x-deltas (new 'static 'vector :x 1.4285715 :y -3.3333333 :z 1.0 :w 1.0)
)
)
)
(if #t
(set! *curve-explo-dust-scale-x* (new 'static 'curve2d-fast
:xs (new 'static 'vector :y -0.5 :z -1.0 :w -2.0)
:ys (new 'static 'vector :x 0.2 :y 0.8 :z 1.2 :w 2.2)
:one-over-x-deltas (new 'static 'vector :x 1.2 :y 0.8000001 :z 1.0 :w 1.0)
)
)
)
(if #t
(set! *curve-explo-dust-scale-y* (new 'static 'curve2d-fast
:xs (new 'static 'vector :y -0.5 :z -1.0 :w -2.0)
:ys (new 'static 'vector :x 0.2 :y 0.8 :z 1.2 :w 2.2)
:one-over-x-deltas (new 'static 'vector :x 1.2 :y 0.8000001 :z 1.0 :w 1.0)
)
)
)
(define *part-bomb-train-explosion-dust-in-curve-settings* (new 'static 'particle-curve-settings
:lifetime-base (seconds 1)
:lifetime-offset (seconds 2)
:flags (particle-curve-flags pcf0)
)
)
(set! (-> *part-id-table* 2356 init-specs 14 initial-valuef)
(the-as float *part-bomb-train-explosion-dust-in-curve-settings*)
)
(set! (-> *part-bomb-train-explosion-dust-in-curve-settings* color-start) *range-explo-dust-color*)
(set! (-> *part-bomb-train-explosion-dust-in-curve-settings* alpha-start) *range-explo-dust-alpha*)
(set! (-> *part-bomb-train-explosion-dust-in-curve-settings* scale-x-start) *range-explo-dust-scale-x*)
(set! (-> *part-bomb-train-explosion-dust-in-curve-settings* scale-y-start) *range-explo-dust-scale-y*)
(set! (-> *part-bomb-train-explosion-dust-in-curve-settings* r-scalar) #f)
(set! (-> *part-bomb-train-explosion-dust-in-curve-settings* g-scalar) #f)
(set! (-> *part-bomb-train-explosion-dust-in-curve-settings* b-scalar) #f)
(set! (-> *part-bomb-train-explosion-dust-in-curve-settings* a-scalar) *curve-explo-dust-alpha*)
(set! (-> *part-bomb-train-explosion-dust-in-curve-settings* scale-x-scalar) *curve-explo-dust-scale-x*)
(set! (-> *part-bomb-train-explosion-dust-in-curve-settings* scale-y-scalar) *curve-explo-dust-scale-y*)
(defpart 2358
:init-specs ((:texture (explosion-edge level-default-sprite))
(:num 5.0)
(:scale-x (meters 6) (meters 4))
(:rot-y (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 80.0 20.0)
(:b 30.0)
(:a 128.0)
(:vel-y (meters 0.33333334) (meters 0.13333334))
(:scalevel-x (meters 0.033333335))
(:scalevel-y :copy scalevel-x)
(:fade-g -0.17777778)
(:fade-b -0.06666667)
(:fade-a -0.28444445 -0.28444445)
(:friction 0.85)
(:timer (seconds 1.5))
(:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14))
(:func 'sparticle-2d-spline-align-instant)
(:conerot-x (degrees 0) (degrees 360))
(:rotate-y (degrees 0) (degrees 3600))
)
)
(defpart 2359
:init-specs ((:texture (explo-texture level-default-sprite))
(:birth-func 'birth-func-curve)
(:num 8.0)
(:x (meters -4) (meters 8))
(:y (meters -4) (meters 8))
(:scale-x (meters 1))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 128.0)
(:b 128.0)
(:a 128.0)
(:vel-y (meters 0.06666667) (meters 0.033333335))
(:friction 0.9)
(:timer (seconds 1))
(:flags (sp-cpuinfo-flag-14))
(:userdata 0.0)
(:func 'live-func-curve)
(:conerot-x (degrees 20) (degrees 90))
(:rotate-y (degrees 0) (degrees 3600))
)
)
(if #t
(set! *range-explo-color* (new 'static 'curve-color-fast
:xs (new 'static 'vector :y -1.0 :z -2.0 :w -3.0)
:ys (new 'static 'inline-array vector 4
(new 'static 'vector :x 255.0 :y 255.0 :z 255.0 :w 128.0)
(new 'static 'vector :x 255.0 :y 255.0 :z 255.0 :w 128.0)
(new 'static 'vector :x 255.0 :y 255.0 :z 255.0 :w 128.0)
(new 'static 'vector :x 255.0 :y 255.0 :z 255.0 :w 128.0)
)
:one-over-x-deltas (new 'static 'vector :x 1.0 :y 1.0 :z 1.0 :w 1.0)
)
)
)
(if #t
(set! *range-explo-alpha* (new 'static 'curve2d-fast
:xs (new 'static 'vector :y -1.0 :z -2.0 :w -3.0)
:ys (new 'static 'vector :x 128.0 :y 128.0 :z 129.0 :w 130.0)
:one-over-x-deltas (new 'static 'vector :y 1.0 :z 1.0 :w 1.0)
)
)
)
(if #t
(set! *range-explo-scale-x* (new 'static 'curve2d-fast
:xs (new 'static 'vector :y -1.0 :z -2.0 :w -3.0)
:ys (new 'static 'vector :x 20.0 :y 30.0 :z 31.0 :w 32.0)
:one-over-x-deltas (new 'static 'vector :x 10.0 :y 1.0 :z 1.0 :w 1.0)
)
)
)
(if #t
(set! *range-explo-scale-y* (new 'static 'curve2d-fast
:xs (new 'static 'vector :y -1.0 :z -2.0 :w -3.0)
:ys (new 'static 'vector :x 20.0 :y 30.0 :z 31.0 :w 32.0)
:one-over-x-deltas (new 'static 'vector :x 10.0 :y 1.0 :z 1.0 :w 1.0)
)
)
)
(if #t
(set! *curve-explo-alpha* (new 'static 'curve2d-fast
:xs (new 'static 'vector :y -0.05 :z -0.7 :w -1.0)
:ys (new 'static 'vector :y 1.0 :z 0.8)
:one-over-x-deltas (new 'static 'vector :x 20.0 :y -0.3076923 :z -2.6666665 :w 1.0)
)
)
)
(if #t
(set! *curve-explo-scale-x* (new 'static 'curve2d-fast
:xs (new 'static 'vector :y -0.8 :z -1.0 :w -2.0)
:ys (new 'static 'vector :y 1.0 :z 1.5 :w 2.5)
:one-over-x-deltas (new 'static 'vector :x 1.25 :y 2.5000002 :z 1.0 :w 1.0)
)
)
)
(if #t
(set! *curve-explo-scale-y* (new 'static 'curve2d-fast
:xs (new 'static 'vector :y -0.8 :z -1.0 :w -2.0)
:ys (new 'static 'vector :y 1.0 :z 1.5 :w 2.5)
:one-over-x-deltas (new 'static 'vector :x 1.25 :y 2.5000002 :z 1.0 :w 1.0)
)
)
)
(define *part-bomb-train-explosion-texture-curve-settings* (new 'static 'particle-curve-settings
:lifetime-base (seconds 0.1)
:lifetime-offset (seconds 0.6)
:flags (particle-curve-flags pcf0)
)
)
(set! (-> *part-id-table* 2359 init-specs 16 initial-valuef)
(the-as float *part-bomb-train-explosion-texture-curve-settings*)
)
(set! (-> *part-bomb-train-explosion-texture-curve-settings* color-start) *range-explo-color*)
(set! (-> *part-bomb-train-explosion-texture-curve-settings* alpha-start) *range-explo-alpha*)
(set! (-> *part-bomb-train-explosion-texture-curve-settings* scale-x-start) *range-explo-scale-x*)
(set! (-> *part-bomb-train-explosion-texture-curve-settings* scale-y-start) *range-explo-scale-y*)
(set! (-> *part-bomb-train-explosion-texture-curve-settings* r-scalar) #f)
(set! (-> *part-bomb-train-explosion-texture-curve-settings* g-scalar) #f)
(set! (-> *part-bomb-train-explosion-texture-curve-settings* b-scalar) #f)
(set! (-> *part-bomb-train-explosion-texture-curve-settings* a-scalar) *curve-explo-alpha*)
(set! (-> *part-bomb-train-explosion-texture-curve-settings* scale-x-scalar) *curve-explo-scale-x*)
(set! (-> *part-bomb-train-explosion-texture-curve-settings* scale-y-scalar) *curve-explo-scale-y*)
(defpart 2357
:init-specs ((:texture (glow level-default-sprite))
(:num 1.0)
(:scale-x (meters 100))
(:rot-x (degrees 225))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 128.0)
(:b 100.0)
(:a 128.0)
(:omega (degrees 18011.25))
(:scalevel-x (meters -2))
(:scalevel-y :copy scalevel-x)
(:timer (seconds 0.135))
(:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3 glow))
(:userdata 40960.0)
)
)
(defpart 2360
:init-specs ((:texture (laser-hit2-add level-default-sprite))
(:num 1.0)
(:scale-x (meters 10))
(:rot-x (degrees 225))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 128.0)
(:b 128.0)
(:a 128.0)
(:omega (degrees 18011.25))
(:scalevel-x (meters 1.3333334))
(:scalevel-y :copy scalevel-x)
(:fade-b -1.7066667)
(:fade-a -1.7066667)
(:timer (seconds 0.25))
(:flags (sp-cpuinfo-flag-3 glow))
(:userdata 40960.0)
)
)
(defpartgroup group-bomb-train-sparks
:id 605
:flags (sp0 sp4)
:bounds (static-bspherem 0 0 0 10)
:parts ((sp-item 2363 :flags (sp7)) (sp-item 2364 :flags (sp7)))
)
(defpart 2363
:init-specs ((:texture (hitspark level-default-sprite))
(:num 1.0)
(:scale-x (meters 0.1) (meters 0.5))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 128.0)
(:b 128.0)
(:a 255.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-3))
)
)
(defpart 2364
:init-specs ((:texture (motion-blur-part level-default-sprite))
(:num 0.5 0.5)
(:scale-x (meters 0.05) (meters 0.05))
(:rot-x 4)
(:scale-y :copy scale-x)
(:r 128.0)
(:g 128.0)
(:b 128.0)
(:a 255.0)
(:omega (degrees 0.0225))
(:vel-y (meters 0.033333335) (meters 0.033333335))
(:fade-g -0.64)
(:fade-b -2.56)
(:fade-a -1.28 -1.28)
(:accel-y (meters -0.0013333333))
(:friction 0.9)
(:timer (seconds 0.335))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3))
(:func 'sparticle-motion-blur)
(:conerot-x (degrees 0) (degrees 360))
(:rotate-y (degrees 0) (degrees 3600))
)
)
(defpartgroup group-bomb-train-smoke
:id 606
:flags (sp0 sp4)
:bounds (static-bspherem 0 0 0 10)
:parts ((sp-item 2365 :flags (sp7)))
)
(defpart 2365
:init-specs ((:texture (dirtpuff01 level-default-sprite))
(:num 1.0)
(:x (meters -1) (meters 2))
(:y (meters -1) (meters 2))
(:z (meters -1) (meters 2))
(:scale-x (meters 1) (meters 1))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 32.0 128.0)
(:g :copy r)
(:b :copy r)
(:a 0.0)
(:scalevel-x (meters 0.006666667) (meters 0.006666667))
(:rotvel-z (degrees -0.2) (degrees 0.4))
(:scalevel-y :copy scalevel-x)
(:fade-a 1.28 1.28)
(:accel-y (meters 0.0016666667))
(:friction 0.9)
(:timer (seconds 2))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-13 left-multiply-quat))
(:next-time (seconds 0.167))
(:next-launcher 2366)
)
)
(defpart 2366
:init-specs ((:fade-a -0.23272727 -0.23272727))
)
(defpartgroup group-bomb-train-light
:id 607
:flags (sp0 sp4)
:bounds (static-bspherem 0 0 0 10)
:parts ((sp-item 2367 :flags (sp7)))
)
(defpart 2367
:init-specs ((:texture (glow level-default-sprite))
(:num 4.0)
(:scale-x (meters 1))
(:rot-x (degrees 4.5))
(:scale-y :copy scale-x)
(:r 200.0)
(:g 200.0)
(:b 128.0)
(:a 32.0)
(:omega (degrees 6761.25))
(:timer (seconds 0.017))
(:flags (glow))
(:userdata 409.6)
)
)
(defpartgroup group-min-elec-gate
:id 608
:bounds (static-bspherem 0 -3.5 0 4)
:parts ((sp-item 2368 :fade-after (meters 160) :flags (sp6) :period (seconds 0.1) :length (seconds 0.05))
(sp-item 2369 :fade-after (meters 160) :flags (sp6))
)
)
(defpart 2369
:init-specs ((:texture (glow-soft level-default-sprite))
(:num 2.0)
(:y (meters -1.2) 6 (meters -1))
(:scale-x (meters 1.6) (meters 0.1))
(:rot-x (degrees 1.125))
(:scale-y (meters 3.6) (meters 0.1))
(:r 0.0)
(:g 128.0 64.0)
(:b 255.0)
(:a 32.0 4.0)
(:omega (degrees 3615.75))
(:timer (seconds 0.035))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 4096.0)
(:rotate-y (degrees 0))
)
)
(defpart 2368
:init-specs ((:texture (glow level-default-sprite))
(:num 1.0)
(:scale-x (meters 1.6) (meters 0.1))
(:rot-x (degrees 1.125))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 0.0 64.0)
(:b 0.0)
(:a 32.0 4.0)
(:omega (degrees 3615.75))
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 1024.0)
(:rotate-y (degrees 0))
)
)