;;-*-Lisp-*-
(in-package goal)

;; name: wasall-part.gc
;; name in dgo: wasall-part
;; dgos: WASALL

(define-extern *wasdoors-range-color-flame* curve-color-fast)
(define-extern *wasdoors-range-alpha-flame* curve2d-fast)
(define-extern *wasdoors-range-scale-flame-x* curve2d-fast)
(define-extern *wasdoors-range-scale-flame-y* curve2d-fast)
(define-extern *r-wasdoors-curve-flame* curve2d-fast)
(define-extern *g-wasdoors-curve-flame* curve2d-fast)
(define-extern *b-wasdoors-curve-flame* curve2d-fast)
(define-extern *wasdoors-curve-alpha-flame* curve2d-fast)
(define-extern *wasdoors-curve-flame-x* curve2d-fast)
(define-extern *wasdoors-curve-flame-y* curve2d-fast)

;; DECOMP BEGINS

(defpartgroup group-desert-buggy-dust
  :id 383
  :flags (sp0 sp4)
  :bounds (static-bspherem 0 0 0 64)
  :parts ((sp-item 1587 :flags (sp7)))
  )

(defpart 1587
  :init-specs ((:texture (dirtpuff01 level-default-sprite))
    (:num 0.2)
    (:scale-x (meters 1) (meters 2))
    (:rot-z (degrees 0) (degrees 360))
    (:scale-y :copy scale-x)
    (:r 150.0)
    (:g 120.0)
    (:b 90.0)
    (:a 30.0 10.0)
    (:vel-y (meters 0.06666667))
    (:scalevel-x (meters 0.016666668))
    (:rotvel-z (degrees -0.2) (degrees 0.4))
    (:scalevel-y :copy scalevel-x)
    (:fade-a -0.044444446 -0.044444446)
    (:accel-y (meters 0.00016666666) (meters 0.00016666666))
    (:friction 0.9)
    (:timer (seconds 3))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-13 launch-along-z))
    )
  )

(defpartgroup group-desert-buggy-dust-stop
  :id 384
  :flags (sp0 sp4)
  :bounds (static-bspherem 0 0 0 64)
  :parts ((sp-item 1588 :flags (sp7)) (sp-item 1589 :flags (sp7)))
  )

(defpart 1588
  :init-specs ((:texture (dirtpuff01 level-default-sprite))
    (:num 1.0)
    (:scale-x (meters 1) (meters 2))
    (:rot-z (degrees 0) (degrees 360))
    (:scale-y :copy scale-x)
    (:r 150.0)
    (:g 120.0)
    (:b 90.0)
    (:a 30.0 10.0)
    (:vel-z (meters 0.13333334))
    (:scalevel-x (meters 0.016666668))
    (:rotvel-z (degrees -0.2) (degrees 0.4))
    (:scalevel-y :copy scalevel-x)
    (:fade-a -0.016666668 -0.016666668)
    (:accel-y (meters 0) (meters 0.0001))
    (:friction 0.95)
    (:timer (seconds 10))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-13 launch-along-z left-multiply-quat))
    (:next-time (seconds 0.335))
    (:next-launcher 1590)
    (:conerot-x (degrees 0) (degrees -10))
    (:conerot-y (degrees -10) (degrees 20))
    (:rotate-y (degrees 0))
    )
  )

(defpart 1590
  :init-specs ((:scalevel-x (meters 0.0033333334)) (:scalevel-y :copy scalevel-x))
  )

;; WARN: Return type mismatch float vs none.
(defun spt-birth-func-brightness-buggy-dirt-bits ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 sparticle-launchinfo))
  (let ((s5-0 (+ (mod (the-as int (rand-uint31-gen *random-generator*)) 51) 200))
        (s3-0 (logand 0 (rand-uint31-gen *random-generator*)))
        (s4-0 (+ (mod (the-as int (rand-uint31-gen *random-generator*)) 11) 20))
        (v1-6 (+ (mod (the-as int (rand-uint31-gen *random-generator*)) 11) 60))
        )
    (set! (-> arg2 rotate-x) (the float (- s5-0 (the-as int s3-0))))
    (set! (-> arg2 rotate-y) (the float (- s5-0 s4-0)))
    (set! (-> arg2 rotate-z) (the float (- s5-0 v1-6)))
    )
  (none)
  )

(defpart 1589
  :init-specs ((:texture (rockbit01 level-default-sprite))
    (:birth-func 'spt-birth-func-part-buggy-dirt-bits)
    (:num 1.0 2.0)
    (:scale-x (meters 0.1) (meters 0.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-z (meters 0.06666667) (meters 0.06666667))
    (:rotvel-z (degrees -2) (degrees 4))
    (:accel-y (meters -0.0016666667))
    (:timer (seconds 0.335))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-13 launch-along-z))
    (:userdata :data (new 'static 'boxed-array :type int32
                       10
                       1
                       0
                       #x408b00
                       #x408c00
                       #x40a100
                       #x40a200
                       #x40a300
                       #x40a400
                       #x40a500
                       #x40a600
                       #x40a700
                       #x40a800
                       #x40a900
                       #x40aa00
                       #x40ab00
                       #x40ac00
                       #x40ad00
                       #x40ae00
                       )
               )
    (:func 'sparticle-texture-animate)
    (:conerot-x (degrees 0) (degrees -20))
    (:conerot-y (degrees -10) (degrees 20))
    (:rotate-y (degrees 0))
    )
  )

(defun spt-birth-func-part-buggy-dirt-bits ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 sparticle-launchinfo) (arg3 object) (arg4 object))
  (birth-func-texture-group-2d arg0 arg1 arg2 arg3 arg4)
  (spt-birth-func-brightness-buggy-dirt-bits arg0 arg1 arg2)
  (none)
  )

(defpartgroup group-desert-buggy-dust-skid
  :id 385
  :flags (sp0 sp4)
  :bounds (static-bspherem 0 0 0 64)
  :parts ((sp-item 1591 :flags (sp7)) (sp-item 1592 :flags (sp7)))
  )

(defpart 1591
  :init-specs ((:texture (dirtpuff01 level-default-sprite))
    (:num 1.0)
    (:scale-x (meters 1) (meters 2))
    (:rot-z (degrees 0) (degrees 360))
    (:scale-y :copy scale-x)
    (:r 150.0)
    (:g 120.0)
    (:b 90.0)
    (:a 30.0 10.0)
    (:vel-z (meters -0.06666667))
    (:scalevel-x (meters 0.016666668))
    (:rotvel-z (degrees -0.2) (degrees 0.4))
    (:scalevel-y :copy scalevel-x)
    (:fade-a -0.06666667 -0.06666667)
    (:accel-y (meters 0) (meters 0.00016666666))
    (:friction 0.95)
    (:timer (seconds 2))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-13 launch-along-z left-multiply-quat))
    (:next-time (seconds 0.335))
    (:next-launcher 1593)
    (:conerot-x (degrees 10) (degrees 30))
    (:conerot-y (degrees -10) (degrees 20))
    (:rotate-y (degrees 0))
    )
  )

(defpart 1593
  :init-specs ((:scalevel-x (meters 0.0033333334)) (:scalevel-y :copy scalevel-x))
  )

(defpart 1592
  :init-specs ((:texture (rockbit01 level-default-sprite))
    (:birth-func 'spt-birth-func-part-buggy-skid-bits)
    (:num 2.0)
    (:scale-x (meters 0.1) (meters 0.05))
    (:rot-z (degrees 0) (degrees 360))
    (:scale-y :copy scale-x)
    (:r 128.0)
    (:g 128.0)
    (:b 128.0)
    (:a 128.0)
    (:vel-z (meters -0.05) (meters -0.016666668))
    (:rotvel-z (degrees -2) (degrees 4))
    (:accel-y (meters -0.0016666667))
    (:timer (seconds 0.335))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-13 launch-along-z))
    (:userdata :data (new 'static 'boxed-array :type int32
                       10
                       1
                       0
                       #x408b00
                       #x408c00
                       #x40a100
                       #x40a200
                       #x40a300
                       #x40a400
                       #x40a500
                       #x40a600
                       #x40a700
                       #x40a800
                       #x40a900
                       #x40aa00
                       #x40ab00
                       #x40ac00
                       #x40ad00
                       #x40ae00
                       )
               )
    (:func 'sparticle-texture-animate)
    (:conerot-x (degrees 20))
    (:conerot-y (degrees -20) (degrees 40))
    (:rotate-y (degrees 0))
    )
  )

(defun spt-birth-func-part-buggy-skid-bits ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 sparticle-launchinfo) (arg3 object) (arg4 object))
  (birth-func-texture-group-2d arg0 arg1 arg2 arg3 arg4)
  (spt-birth-func-brightness-buggy-dirt-bits arg0 arg1 arg2)
  (none)
  )

(defpartgroup group-part-wascity-door-steam
  :id 386
  :duration (seconds 1.335)
  :flags (sp0 sp4)
  :bounds (static-bspherem 0 0 0 640)
  :parts ((sp-item 1594 :flags (sp7) :period (seconds 30) :length (seconds 1.335)))
  )

(defpart 1594
  :init-specs ((:texture (dirtpuff01 level-default-sprite))
    (:birth-func 'birth-func-texture-group)
    (:num 1.0)
    (:scale-x (meters 0.5) (meters 1))
    (:rot-z (degrees 0) (degrees 360))
    (:scale-y :copy scale-x)
    (:r 150.0)
    (:g :copy r)
    (:b :copy r)
    (:a 16.0 16.0)
    (:vel-z (meters 0.01) (meters 0.013333334))
    (:scalevel-x (meters 0.0033333334) (meters 0.01))
    (:scalevel-y :copy scalevel-x)
    (:fade-a -0.10666667 -0.10666667)
    (:timer (seconds 1))
    (:flags (sp-cpuinfo-flag-13))
    (:userdata :data (new 'static 'boxed-array :type int32 10 1 0 #x405c00))
    (:conerot-x (degrees -10) (degrees 20))
    (:rotate-z (degrees 0) (degrees 3600))
    )
  )

(defpartgroup group-part-wascity-door-pre-steam1
  :id 387
  :flags (sp0)
  :bounds (static-bspherem 0 0 0 640)
  :parts ((sp-item 1595 :period (seconds 20) :length (seconds 1) :offset 200))
  )

(defpart 1595
  :init-specs ((:texture (big-cloud level-default-sprite))
    (:num 1.0)
    (:x (meters -3) (meters 8))
    (:y (meters -6))
    (:scale-x (meters 3))
    (:rot-z (degrees 0) (degrees 360))
    (:scale-y :copy scale-x)
    (:r 150.0)
    (:g 120.0 10.0)
    (:b 80.0 20.0)
    (:a 0.0)
    (:vel-z (meters -0.06666667) (meters 0.13333334))
    (:scalevel-x (meters 0.0033333334) (meters 0.006666667))
    (:rotvel-z (degrees -0.2) (degrees 0.4))
    (:scalevel-y :copy scalevel-x)
    (:fade-a 0.10666667)
    (:accel-y (meters 0) (meters 0.00033333333))
    (:friction 0.96)
    (:timer (seconds 5))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-13 launch-along-z))
    (:next-time (seconds 0.5))
    (:next-launcher 1596)
    (:rotate-y (degrees 0))
    )
  )

(defpart 1596
  :init-specs ((:fade-a -0.011428571))
  )

(defpartgroup group-part-wascity-door-pre-steam2
  :id 388
  :flags (sp0)
  :bounds (static-bspherem 0 0 0 640)
  :parts ((sp-item 1597 :period (seconds 20) :length (seconds 1) :offset 200))
  )

(defpart 1597
  :init-specs ((:texture (big-cloud level-default-sprite))
    (:num 1.0)
    (:x (meters -3) (meters 8))
    (:y (meters -6))
    (:scale-x (meters 3))
    (:rot-z (degrees 0) (degrees 360))
    (:scale-y :copy scale-x)
    (:r 150.0)
    (:g 120.0 10.0)
    (:b 80.0 20.0)
    (:a 0.0)
    (:vel-z (meters -0.06666667) (meters 0.13333334))
    (:scalevel-x (meters 0.0033333334) (meters 0.006666667))
    (:rotvel-z (degrees -0.2) (degrees 0.4))
    (:scalevel-y :copy scalevel-x)
    (:fade-a 0.10666667)
    (:accel-y (meters 0) (meters 0.00033333333))
    (:friction 0.96)
    (:timer (seconds 5))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-13 launch-along-z))
    (:next-time (seconds 0.5))
    (:next-launcher 1596)
    (:rotate-y (degrees 0))
    )
  )

(defpartgroup group-part-wascity-door-big-steam1
  :id 389
  :flags (sp0)
  :bounds (static-bspherem 0 0 0 640)
  :parts ((sp-item 1598 :period (seconds 30) :length (seconds 2)))
  )

(defpart 1598
  :init-specs ((:texture (big-cloud level-default-sprite))
    (:num 2.0)
    (:x (meters -27))
    (:y (meters 8))
    (:scale-x (meters 2) (meters 1))
    (:rot-z (degrees 0) (degrees 360))
    (:scale-y :copy scale-x)
    (:r 100.0 50.0)
    (:g :copy r)
    (:b :copy r)
    (:a 16.0 16.0)
    (:vel-x (meters -0.05) (meters -0.033333335))
    (:vel-y (meters -0.05) (meters -0.033333335))
    (:scalevel-x (meters 0.01) (meters 0.01))
    (:scalevel-y :copy scalevel-x)
    (:fade-a -0.10666667 -0.10666667)
    (:friction 0.93 0.03)
    (:timer (seconds 1))
    (:flags (sp-cpuinfo-flag-13))
    )
  )

(defpartgroup group-part-wascity-door-big-steam2
  :id 390
  :flags (sp0)
  :bounds (static-bspherem 0 0 0 640)
  :parts ((sp-item 1599 :period (seconds 30) :length (seconds 2)))
  )

(defpart 1599
  :init-specs ((:texture (big-cloud level-default-sprite))
    (:num 2.0)
    (:x (meters 27))
    (:y (meters 8))
    (:scale-x (meters 2) (meters 1))
    (:rot-z (degrees 0) (degrees 360))
    (:scale-y :copy scale-x)
    (:r 100.0 50.0)
    (:g :copy r)
    (:b :copy r)
    (:a 16.0 16.0)
    (:vel-x (meters 0.05) (meters 0.033333335))
    (:vel-y (meters -0.05) (meters -0.033333335))
    (:scalevel-x (meters 0.01) (meters 0.01))
    (:scalevel-y :copy scalevel-x)
    (:fade-a -0.10666667 -0.10666667)
    (:friction 0.93 0.03)
    (:timer (seconds 1))
    (:flags (sp-cpuinfo-flag-13))
    )
  )

(defpartgroup group-part-wascity-door-big-pre-steam1
  :id 391
  :flags (sp0)
  :bounds (static-bspherem 0 0 0 640)
  :parts ((sp-item 1600 :period (seconds 20) :length (seconds 1)))
  )

(defpart 1600
  :init-specs ((:texture (big-cloud level-default-sprite))
    (:num 1.0)
    (:x (meters -10) (meters -20))
    (:y (meters 0))
    (:scale-x (meters 3))
    (:rot-z (degrees 0) (degrees 360))
    (:scale-y :copy scale-x)
    (:r 150.0)
    (:g 120.0 10.0)
    (:b 80.0 20.0)
    (:a 0.0)
    (:vel-z (meters -0.13333334) (meters 0.26666668))
    (:scalevel-x (meters 0.01) (meters 0.006666667))
    (:rotvel-z (degrees -0.2) (degrees 0.4))
    (:scalevel-y :copy scalevel-x)
    (:fade-a 0.10666667)
    (:accel-y (meters 0) (meters 0.00033333333))
    (:friction 0.96)
    (:timer (seconds 5))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-13 launch-along-z))
    (:next-time (seconds 0.5))
    (:next-launcher 1601)
    (:rotate-y (degrees 0))
    )
  )

(defpart 1601
  :init-specs ((:fade-a -0.011428571))
  )

(defpartgroup group-part-wascity-door-big-pre-steam2
  :id 392
  :flags (sp0)
  :bounds (static-bspherem 0 0 0 640)
  :parts ((sp-item 1602 :period (seconds 20) :length (seconds 1)))
  )

(defpart 1602
  :init-specs ((:texture (big-cloud level-default-sprite))
    (:num 1.0)
    (:x (meters 10) (meters 20))
    (:y (meters 0))
    (:scale-x (meters 3))
    (:rot-z (degrees 0) (degrees 360))
    (:scale-y :copy scale-x)
    (:r 150.0)
    (:g 120.0 10.0)
    (:b 80.0 20.0)
    (:a 0.0)
    (:vel-z (meters -0.13333334) (meters 0.26666668))
    (:scalevel-x (meters 0.01) (meters 0.006666667))
    (:rotvel-z (degrees -0.2) (degrees 0.4))
    (:scalevel-y :copy scalevel-x)
    (:fade-a 0.10666667)
    (:accel-y (meters 0) (meters 0.00033333333))
    (:friction 0.96)
    (:timer (seconds 5))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-13 launch-along-z))
    (:next-time (seconds 0.5))
    (:next-launcher 1601)
    (:rotate-y (degrees 0))
    )
  )

(defpartgroup group-wasdoors-gaslamp
  :id 393
  :flags (sp4)
  :bounds (static-bspherem 0 0 0 40)
  :parts ((sp-item 1603 :fade-after (meters 200) :falloff-to (meters 300) :flags (sp7))
    (sp-item 1604 :fade-after (meters 200) :falloff-to (meters 300) :flags (sp7))
    (sp-item 1605 :fade-after (meters 200) :falloff-to (meters 300) :flags (sp7))
    (sp-item 1606 :fade-after (meters 200) :falloff-to (meters 300) :flags (sp7))
    (sp-item 1607 :fade-after (meters 20) :falloff-to (meters 30) :flags (sp7))
    )
  )

(defpart 1603
  :init-specs ((:texture (explosion-nebula level-default-sprite))
    (:birth-func 'birth-func-curve)
    (:num 1.0 1.0)
    (:z (meters 0.4))
    (:scale-x (meters 2.5) (meters 2))
    (:rot-z (degrees -20) (degrees 40))
    (:scale-y :copy scale-x)
    (:r 64.0)
    (:g 64.0)
    (:b 200.0)
    (:a 0.0)
    (:vel-z (meters -0.0016666667) (meters 0.0016666667))
    (:scalevel-x (meters -0.016666668))
    (:accel-x (meters -0.001))
    (:accel-z (meters 0.0013333333) (meters 0.0013333333))
    (:timer (seconds 0.005))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3))
    (:userdata 0.0)
    (:func 'live-func-curve)
    (:conerot-x (degrees 0))
    (:conerot-y (degrees 0))
    )
  )

(if #t
    (set! *wasdoors-range-color-flame* (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 128.0 :y 128.0 :z 128.0 :w 128.0)
                                           (new 'static 'vector :x 128.0 :y 128.0 :z 128.0 :w 128.0)
                                           (new 'static 'vector :x 128.0 :y 128.0 :z 128.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! *wasdoors-range-alpha-flame* (new 'static 'curve2d-fast
                                         :xs (new 'static 'vector :y -1.0 :z -2.0 :w -3.0)
                                         :ys (new 'static 'vector :x 96.0 :y 255.0 :z 256.0 :w 257.0)
                                         :one-over-x-deltas (new 'static 'vector :x 159.0 :y 1.0 :z 1.0 :w 1.0)
                                         )
          )
    )

(if #t
    (set! *wasdoors-range-scale-flame-x* (new 'static 'curve2d-fast
                                           :xs (new 'static 'vector :y -1.0 :z -2.0 :w -3.0)
                                           :ys (new 'static 'vector :x 3.0 :y 5.0 :z 6.0 :w 7.0)
                                           :one-over-x-deltas (new 'static 'vector :x 2.0 :y 1.0 :z 1.0 :w 1.0)
                                           )
          )
    )

(if #t
    (set! *wasdoors-range-scale-flame-y* (new 'static 'curve2d-fast
                                           :xs (new 'static 'vector :y -1.0 :z -2.0 :w -3.0)
                                           :ys (new 'static 'vector :x 4.0 :y 8.0 :z 9.0 :w 10.0)
                                           :one-over-x-deltas (new 'static 'vector :x 4.0 :y 1.0 :z 1.0 :w 1.0)
                                           )
          )
    )

(if #t
    (set! *r-wasdoors-curve-flame* (new 'static 'curve2d-fast
                                     :xs (new 'static 'vector :y -0.5 :z -0.7 :w -1.0)
                                     :ys (new 'static 'vector :x 0.2 :y 1.0 :z 1.0 :w 1.0)
                                     :one-over-x-deltas (new 'static 'vector :x 1.6 :w 1.0)
                                     )
          )
    )

(if #t
    (set! *g-wasdoors-curve-flame* (new 'static 'curve2d-fast
                                     :xs (new 'static 'vector :y -0.5 :z -0.7 :w -1.0)
                                     :ys (new 'static 'vector :y 1.0 :z 0.8 :w 0.2)
                                     :one-over-x-deltas (new 'static 'vector :x 2.0 :y -1.0 :z -2.0 :w 1.0)
                                     )
          )
    )

(if #t
    (set! *b-wasdoors-curve-flame* (new 'static 'curve2d-fast
                                     :xs (new 'static 'vector :y -0.5 :z -0.7 :w -1.0)
                                     :ys (new 'static 'vector :x 1.0 :y 1.0)
                                     :one-over-x-deltas (new 'static 'vector :y -5.0000005 :w 1.0)
                                     )
          )
    )

(if #t
    (set! *wasdoors-curve-alpha-flame* (new 'static 'curve2d-fast
                                         :xs (new 'static 'vector :y -0.4 :z -0.7 :w -1.0)
                                         :ys (new 'static 'vector :x 0.01 :y 0.01 :z 1.0 :w 0.2)
                                         :one-over-x-deltas (new 'static 'vector :y 3.3000002 :z -2.6666665 :w 1.0)
                                         )
          )
    )

(if #t
    (set! *wasdoors-curve-flame-x* (new 'static 'curve2d-fast
                                     :xs (new 'static 'vector :y -0.5 :z -0.6 :w -1.0)
                                     :ys (new 'static 'vector :x 0.3 :y 0.6 :z 0.5 :w 0.2)
                                     :one-over-x-deltas (new 'static 'vector :x 0.6 :y -1.0 :z -0.75000006 :w 1.0)
                                     )
          )
    )

(if #t
    (set! *wasdoors-curve-flame-y* (new 'static 'curve2d-fast
                                     :xs (new 'static 'vector :y -0.5 :z -0.7 :w -1.0)
                                     :ys (new 'static 'vector :x 0.2 :y 0.4 :z 0.5 :w 0.6)
                                     :one-over-x-deltas (new 'static 'vector :x 0.4 :y 0.5 :z 0.3333334 :w 1.0)
                                     )
          )
    )

(define *part-wasdoors-gas-lamp-flame-curve-settings* (new 'static 'particle-curve-settings
                                                        :lifetime-base (seconds 0.3)
                                                        :lifetime-offset (seconds 0.2)
                                                        :flags (particle-curve-flags pcf1)
                                                        )
        )

(set! (-> *part-id-table* 1603 init-specs 17 initial-valuef)
      (the-as float *part-wasdoors-gas-lamp-flame-curve-settings*)
      )

(set! (-> *part-wasdoors-gas-lamp-flame-curve-settings* color-start) *wasdoors-range-color-flame*)

(set! (-> *part-wasdoors-gas-lamp-flame-curve-settings* alpha-start) *wasdoors-range-alpha-flame*)

(set! (-> *part-wasdoors-gas-lamp-flame-curve-settings* scale-x-start) *wasdoors-range-scale-flame-x*)

(set! (-> *part-wasdoors-gas-lamp-flame-curve-settings* scale-y-start) *wasdoors-range-scale-flame-y*)

(set! (-> *part-wasdoors-gas-lamp-flame-curve-settings* r-scalar) *r-wasdoors-curve-flame*)

(set! (-> *part-wasdoors-gas-lamp-flame-curve-settings* g-scalar) *g-wasdoors-curve-flame*)

(set! (-> *part-wasdoors-gas-lamp-flame-curve-settings* b-scalar) *b-wasdoors-curve-flame*)

(set! (-> *part-wasdoors-gas-lamp-flame-curve-settings* a-scalar) *wasdoors-curve-alpha-flame*)

(set! (-> *part-wasdoors-gas-lamp-flame-curve-settings* scale-x-scalar) *wasdoors-curve-flame-x*)

(set! (-> *part-wasdoors-gas-lamp-flame-curve-settings* scale-y-scalar) *wasdoors-curve-flame-y*)

(defpart 1604
  :init-specs ((:texture (explosion-edge level-default-sprite))
    (:num 1.0 1.0)
    (:x (meters -0.3) (meters 0.6))
    (:y (meters -0.3) (meters 0.6))
    (:z (meters 0.3))
    (:scale-x (meters 1) (meters 1))
    (:rot-z (degrees -90))
    (:scale-y :copy scale-x)
    (:r 10.0 20.0)
    (:g 10.0 20.0)
    (:b 200.0)
    (:a 64.0)
    (:scalevel-x (meters -0.00033333333))
    (:fade-a -0.64)
    (:accel-x (meters -0.001))
    (:accel-z (meters 0.0013333333) (meters 0.0013333333))
    (:timer (seconds 0.335))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3))
    (:rotate-y (degrees 0))
    )
  )

(defpart 1605
  :init-specs ((:texture (glow level-default-sprite))
    (:num 0.4)
    (:x (meters -1))
    (:z (meters 2.5))
    (:scale-x (meters 12) (meters 6))
    (:rot-z (degrees 0) (degrees 3600))
    (:scale-y :copy scale-x)
    (:r 128.0)
    (:g 64.0)
    (:b 32.0)
    (:a 8.0 4.0)
    (:omega (degrees 11261.25))
    (:timer (seconds 0.167) (seconds 0.08))
    (:flags (sp-cpuinfo-flag-3 glow))
    (:userdata 2048.0)
    (:rotate-y (degrees 0))
    )
  )

(defpart 1606
  :init-specs ((:texture (glow-hotdot level-default-sprite))
    (:num 0.01 0.05)
    (:scale-x (meters 0.3) (meters 0.3))
    (:scale-y :copy scale-x)
    (:r 64.0)
    (:g 32.0)
    (:b 8.0)
    (:a 255.0)
    (:vel-z (meters 0.06666667) (meters 0.016666668))
    (:fade-g -0.16666667)
    (:fade-b -5.0)
    (:fade-a -1.7)
    (:accel-x (meters 0.0016666667))
    (:friction 0.95)
    (:timer (seconds 2) (seconds 0.497))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3))
    (:conerot-x (degrees -20) (degrees 40))
    (:conerot-y (degrees -20) (degrees 40))
    (:rotate-y (degrees -40))
    (:rotate-z (degrees 0))
    )
  )

(defpart 1607
  :init-specs ((:num 0.2)
    (:x (meters 0) (meters 2))
    (:y (meters -0.5) (meters 1))
    (:z (meters 6))
    (:rot-x 8)
    (:r 8192.0)
    (:g 1228.8)
    (:b 1024.0)
    (:accel-x (meters 0.001))
    (:accel-z (meters 0.0016666667))
    (:timer (seconds 0.335))
    (:flags (distort))
    (:rotate-y (degrees -30))
    )
  )

(defpartgroup group-wasdoors-red-lights
  :id 394
  :bounds (static-bspherem 0 0 0 8)
  :parts ((sp-item 1608 :fade-after (meters 120) :flags (sp6)))
  )

(defpart 1608
  :init-specs ((:texture (glow level-default-sprite))
    (:num 1.0)
    (:scale-x (meters 4) (meters 0.1))
    (:rot-x (degrees 1.125))
    (:scale-y :copy scale-x)
    (:r 255.0)
    (:g 0.0 32.0)
    (:b 0.0)
    (:a 16.0)
    (:omega (degrees 2715.75))
    (:timer (seconds 0.017))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
    (:userdata 1024.0)
    )
  )

(defpartgroup group-elevator-palace-door
  :id 395
  :flags (sp0 sp4)
  :bounds (static-bspherem 0 0 0 20)
  :parts ((sp-item 1609 :flags (sp7) :period (seconds 20) :length (seconds 2)))
  )

(defpart 1609
  :init-specs ((:texture (big-cloud level-default-sprite))
    (:num 1.0 1.0)
    (:x (meters -5) (meters 10))
    (:y (meters -7))
    (:z (meters -2) (meters 4))
    (:scale-x (meters 4) (meters 4))
    (:rot-z (degrees 0) (degrees 360))
    (:scale-y :copy scale-x)
    (:r 90.0)
    (:g 70.0)
    (:b 50.0)
    (:a 32.0 32.0)
    (:vel-y (meters 0.033333335) (meters 0.033333335))
    (:scalevel-x (meters 0.0033333334))
    (:rotvel-z (degrees -0.2) (degrees 0.4))
    (:scalevel-y :copy scalevel-x)
    (:fade-a -0.053333335 -0.053333335)
    (:accel-y (meters 0.00016666666) (meters 0.00016666666))
    (:friction 0.93)
    (:timer (seconds 5))
    (:flags (sp-cpuinfo-flag-2))
    (:conerot-x (degrees -60) (degrees 120))
    (:conerot-z (degrees -30) (degrees 60))
    )
  )

(defpartgroup group-elevator-palace-door-close
  :id 396
  :flags (sp0 sp4)
  :bounds (static-bspherem 0 0 0 20)
  :parts ((sp-item 1610 :flags (sp7) :period (seconds 20) :length (seconds 0.035)))
  )

(defpart 1610
  :init-specs ((:texture (big-cloud level-default-sprite))
    (:num 30.0 10.0)
    (:x (meters -5) (meters 10))
    (:y (meters -20))
    (:z (meters -5) (meters 10))
    (:scale-x (meters 4) (meters 4))
    (:rot-z (degrees 0) (degrees 360))
    (:scale-y :copy scale-x)
    (:r 90.0)
    (:g 70.0)
    (:b 50.0)
    (:a 32.0 32.0)
    (:vel-y (meters 0.06666667) (meters 0.033333335))
    (:scalevel-x (meters 0.0033333334))
    (:rotvel-z (degrees -0.2) (degrees 0.4))
    (:scalevel-y :copy scalevel-x)
    (:fade-a -0.053333335 -0.053333335)
    (:accel-y (meters 0.00016666666) (meters 0.00016666666))
    (:friction 0.93)
    (:timer (seconds 5))
    (:flags (sp-cpuinfo-flag-2))
    (:conerot-x (degrees -60) (degrees 120))
    )
  )

(defpartgroup group-desert-fireball-shot
  :id 397
  :flags (sp0)
  :bounds (static-bspherem 0 0 0 4)
  :parts ((sp-item 1611 :flags (sp6)) (sp-item 1612))
  )

(defpart 1611
  :init-specs ((:texture (glow level-default-sprite))
    (:num 1.0)
    (:scale-x (meters 100) (meters 20))
    (:scale-y :copy scale-x)
    (:r 255.0)
    (:g 180.0)
    (:b 0.0)
    (:a 20.0 40.0)
    (:timer (seconds 0.017))
    (:flags (sp-cpuinfo-flag-3))
    )
  )

(defpart 1612
  :init-specs ((:texture (glow-hotdot level-default-sprite))
    (:num 1.0)
    (:scale-x (meters 40) (meters 4))
    (:scale-y :copy scale-x)
    (:r 255.0)
    (:g 255.0)
    (:b 255.0)
    (:a 255.0)
    (:scalevel-x (meters -1))
    (:scalevel-y :copy scalevel-x)
    (:timer (seconds 0.135))
    (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-2 sp-cpuinfo-flag-3))
    )
  )

(defpartgroup group-desert-fireball-shot-trail
  :id 398
  :flags (sp0 sp13)
  :bounds (static-bspherem 0 0 0 4)
  :parts ((sp-item 1613))
  )

(defpart 1613
  :init-specs ((:texture (radial-gradient-yellow level-default-sprite))
    (:num 1.0)
    (:x (meters 0) (meters 10))
    (:scale-x (meters 30) (meters 10))
    (:scale-y (meters 20) (meters 5))
    (:r 255.0)
    (:g 255.0)
    (:b 255.0)
    (:a 64.0 32.0)
    (:scalevel-x (meters -0.06666667) (meters -0.06666667))
    (:scalevel-y :copy scalevel-x)
    (:fade-g -2.6666667)
    (:fade-b -3.4)
    (:accel-y (meters -0.0033333334) (meters -0.016666668))
    (:friction 0.99)
    (:timer (seconds 1))
    (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 launch-along-z))
    (:next-time (seconds 0.25))
    (:next-launcher 1614)
    (:rotate-y (degrees 0) (degrees 3600))
    (:rotate-z (degrees 0) (degrees 3600))
    )
  )

(defpart 1614
  :init-specs ((:fade-r 0.0) (:fade-g 0.0) (:fade-b 0.0) (:fade-a -0.48 -0.48))
  )

(defpartgroup group-desert-fireball-explosion
  :id 399
  :flags (sp0)
  :bounds (static-bspherem 0 0 0 1000)
  :parts ((sp-item 1615 :flags (sp3)))
  )

(defpart 1615
  :init-specs ((:texture (middot level-default-sprite))
    (:num 2.0)
    (:scale-x (meters 2500))
    (:scale-y :copy scale-x)
    (:r 128.0)
    (:g 128.0)
    (:b 128.0)
    (:a 128.0)
    (:scalevel-x (meters -6.6666665))
    (:scalevel-y :copy scalevel-x)
    (:fade-b -0.10666667)
    (:timer (seconds 3.335))
    (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-2 sp-cpuinfo-flag-3))
    (:next-time (seconds 0.167))
    (:next-launcher 1616)
    )
  )

(defpart 1616
  :init-specs ((:scalevel-x (meters -3.3333333))
    (:scalevel-y :copy scalevel-x)
    (:fade-a -0.21333334)
    (:next-time (seconds 0.335))
    (:next-launcher 1617)
    )
  )

(defpart 1617
  :init-specs ((:scalevel-x (meters -2.6666667))
    (:scalevel-y :copy scalevel-x)
    (:next-time (seconds 0.5))
    (:next-launcher 1618)
    )
  )

(defpart 1618
  :init-specs ((:scalevel-x (meters -2.3333333))
    (:scalevel-y :copy scalevel-x)
    (:next-time (seconds 0.667))
    (:next-launcher 1619)
    )
  )

(defpart 1619
  :init-specs ((:scalevel-x (meters -2)) (:scalevel-y :copy scalevel-x))
  )

(defpartgroup group-cloud-spread
  :id 400
  :duration (seconds 200)
  :linger-duration (seconds 20)
  :flags (sp0 sp1 sp4)
  :bounds (static-bspherem 0 0 0 1000)
  :parts ((sp-item 1620 :flags (is-3d sp7) :period (seconds 200) :length (seconds 0.017)))
  )

(defpart 1620
  :init-specs ((:texture (big-cloud level-default-sprite))
    (:num 100.0)
    (:x (meters 0))
    (:y (meters 0))
    (:z (meters 0) (meters 2000))
    (:scale-x (meters 100) (meters 300))
    (:scale-y :copy scale-x)
    (:r 128.0)
    (:g 128.0)
    (:b 128.0)
    (:a 64.0 64.0)
    (:accel-z (meters 0.033333335))
    (:friction 0.3)
    (:timer (seconds 20))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-13 left-multiply-quat))
    (:next-time (seconds 6.4))
    (:next-launcher 1621)
    (:conerot-y (degrees 0) (degrees 360))
    (:rotate-y (degrees 0) (degrees 3600))
    )
  )

(defpart 1621
  :init-specs ((:fade-a 0.21333334) (:friction 0.0))
  )

;; WARN: Return type mismatch float vs none.
(defun spt-birth-func-brightness-part-desert-boss-slide-dust ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 sparticle-launchinfo))
  (let ((s5-0 (+ (logand 0 (rand-uint31-gen *random-generator*)) 140))
        (s3-0 (logand 0 (rand-uint31-gen *random-generator*)))
        (s4-0 (+ (logand 0 (rand-uint31-gen *random-generator*)) 20))
        (v1-3 (+ (logand 0 (rand-uint31-gen *random-generator*)) 40))
        )
    (set! (-> arg2 rotate-x) (the float (- s5-0 s3-0)))
    (set! (-> arg2 rotate-y) (the float (- s5-0 s4-0)))
    (set! (-> arg2 rotate-z) (the float (- s5-0 v1-3)))
    )
  (none)
  )

(defpartgroup group-desert-boss-slide-dust
  :id 401
  :flags (sp0)
  :bounds (static-bspherem 0 0 0 12)
  :parts ((sp-item 1622))
  )

(defpart 1622
  :init-specs ((:texture (dirtpuff01 level-default-sprite))
    (:birth-func 'spt-birth-func-brightness-part-desert-boss-slide-dust)
    (:num 0.5)
    (:scale-x (meters 1) (meters 1))
    (:rot-z (degrees 0) (degrees 360))
    (:scale-y :copy scale-x)
    (:r 0.0)
    (:g 0.0)
    (:b 0.0)
    (:a 32.0 32.0)
    (:vel-z (meters 0) (meters -0.01))
    (:scalevel-x (meters 0.0033333334))
    (:rotvel-z (degrees -0.2) (degrees 0.4))
    (:scalevel-y :copy scalevel-x)
    (:fade-a -0.10666667 -0.10666667)
    (:accel-y (meters 0) (meters 0.000033333334))
    (:friction 0.95)
    (:timer (seconds 2))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-13))
    (:conerot-y (degrees -20) (degrees 20))
    (:rotate-y (degrees 0))
    )
  )

(defpartgroup group-desert-final-boss-gate
  :id 402
  :flags (sp0 sp4)
  :bounds (static-bspherem 0 0 0 10)
  :parts ((sp-item 1623 :flags (sp6 sp7))
    (sp-item 1624 :flags (sp6 sp7))
    (sp-item 1625 :flags (sp7))
    (sp-item 1626 :flags (sp7))
    )
  )

(defpart 1623
  :init-specs ((:texture (colorflash level-default-sprite))
    (:num 1.0)
    (:scale-x (meters 4) (meters 3))
    (:rot-x (degrees 22.5))
    (:rot-z (degrees 0) (degrees 360))
    (:scale-y :copy scale-x)
    (:r 255.0)
    (:g 255.0)
    (:b 255.0)
    (:a 60.0 10.0)
    (:timer (seconds 0.017))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
    )
  )

(defpart 1624
  :init-specs ((:texture (glow-soft level-default-sprite))
    (:num 1.0)
    (:scale-x (meters 10) (meters 3))
    (:rot-x (degrees 22.5))
    (:rot-z (degrees 0) (degrees 360))
    (:scale-y :copy scale-x)
    (:r 64.0)
    (:g 0.0)
    (:b 255.0)
    (:a 60.0 10.0)
    (:timer (seconds 0.017))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
    )
  )

(defpart 1625
  :init-specs ((:texture (tinyspeck level-default-sprite))
    (:num 20.0)
    (:scale-x (meters 0.5))
    (:scale-y :copy scale-x)
    (:r 32.0 64.0)
    (:g 32.0)
    (:b 255.0)
    (:a 128.0)
    (:omega (degrees 0.1125))
    (:vel-y (meters 0.06666667) (meters 0.06666667))
    (:friction 0.9)
    (:timer (seconds 0.5) (seconds 0.497))
    (: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))
    )
  )

(defpart 1626
  :init-specs ((:texture (lightning-anim-01 level-default-sprite))
    (:birth-func 'birth-func-texture-group)
    (:num 1.0 1.0)
    (:scale-x (meters 1) (meters 1))
    (:rot-x 4)
    (:rot-z (degrees 0) (degrees 360))
    (:scale-y :copy scale-x)
    (:r 100.0)
    (:g 100.0)
    (:b 255.0)
    (:a 128.0 128.0)
    (:scalevel-x (meters -0.006666667) (meters 0.013333334))
    (:rotvel-z (degrees -0.53333336) (degrees 1.0666667))
    (:scalevel-y :copy scalevel-x)
    (:timer (seconds 0.017) (seconds 0.13))
    (:flags (sp-cpuinfo-flag-3 sp-cpuinfo-flag-14))
    (:userdata :data (new 'static 'boxed-array :type int32 5 1 0 #x405700 #x405800 #x405900))
    )
  )

(defpartgroup group-precursor-staff-shot-glow
  :id 403
  :flags (sp0 sp12)
  :bounds (static-bspherem 0 0 0 640)
  :parts ((sp-item 1627))
  )

(defpart 1627
  :init-specs ((:texture (starflash level-default-sprite))
    (:num 0.2)
    (:scale-x (meters 0.6) (meters 0.3))
    (:rot-x (degrees 45))
    (:rot-z (degrees 0) (degrees 360))
    (:scale-y :copy scale-x)
    (:r 128.0)
    (:g 80.0)
    (:b 0.0)
    (:a 0.0)
    (:omega (degrees 4511.25))
    (:fade-a 0.6)
    (:timer (seconds 0.335))
    (:flags (sp-cpuinfo-flag-3 glow))
    (:userdata 2048.0)
    (:func 'spt-func-relative-pos)
    (:next-time (seconds 0.167))
    (:next-launcher 1628)
    )
  )

(defpart 1628
  :init-specs ((:fade-a -0.6))
  )

(defpartgroup group-precursor-staff-shot
  :id 404
  :flags (sp0)
  :bounds (static-bspherem 0 0 0 640)
  :parts ((sp-item 1629 :flags (sp7)))
  )

(defpart 1629
  :init-specs ((:texture (radial-gradient-yellow level-default-sprite))
    (:num 20.0)
    (:y (meters 0) (meters 0.03))
    (:scale-x (meters 0.1))
    (:scale-y :copy scale-x)
    (:r 128.0)
    (:g 64.0)
    (:b 64.0)
    (:a 32.0 32.0)
    (:omega (degrees 0.0225))
    (:vel-z (meters 0.03) (meters 0.0033333334))
    (:timer (seconds 0.835) (seconds 0.08))
    (:flags (sp-cpuinfo-flag-3))
    (:func 'sparticle-motion-blur)
    (:next-time (seconds 0.635))
    (:next-launcher 1630)
    (:rotate-y (degrees 0))
    (:rotate-z (degrees 0) (degrees 3600))
    )
  )

(defpart 1630
  :init-specs ((:scalevel-x (meters -0.00066666666) (meters 0.0013333333))
    (:scalevel-y :copy scalevel-x)
    (:accel-x (meters -0.013333334) (meters 0.026666667))
    (:accel-y (meters -0.013333334) (meters 0.026666667))
    (:friction 0.5 0.1)
    )
  )

(defpartgroup group-precursor-staff-hit
  :id 405
  :flags (sp0)
  :bounds (static-bspherem 0 0 0 640)
  :parts ((sp-item 1631 :flags (sp3 sp7)))
  )

(defpart 1631
  :init-specs ((:texture (colorflash level-default-sprite))
    (:num 1.0)
    (:scale-x (meters 10))
    (:rot-x (degrees 22.5))
    (:scale-y :copy scale-x)
    (:r 128.0)
    (:g 128.0)
    (:b 128.0)
    (:a 128.0)
    (:omega (degrees 4511.25))
    (:scalevel-x (meters -0.033333335))
    (:scalevel-y (meters -0.06666667))
    (:fade-a -0.85333335)
    (:timer (seconds 0.5))
    (:flags (sp-cpuinfo-flag-3 glow))
    (:userdata 4096.0)
    )
  )

(defpartgroup group-ship-door-light
  :id 406
  :duration (seconds 1)
  :linger-duration (seconds 1)
  :flags (sp0)
  :bounds (static-bspherem 0 0 0 640)
  :parts ((sp-item 1632 :flags (sp6))
    (sp-item 1633 :flags (is-3d))
    (sp-item 1634 :flags (is-3d))
    (sp-item 1635 :flags (is-3d))
    )
  )

(defpart 1632
  :init-specs ((:texture (colorflash level-default-sprite))
    (:num 1.0)
    (:scale-x (meters 16))
    (:rot-x (degrees 22.5))
    (:scale-y :copy scale-x)
    (:r 128.0)
    (:g 128.0)
    (:b 128.0)
    (:a 32.0 6.0)
    (:omega (degrees 4511.25))
    (:timer (seconds 0.017))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
    (:userdata 16384.0)
    (:rotate-y (degrees 0))
    )
  )

(defpart 1636
  :init-specs ((:texture (vol-light level-default-sprite))
    (:num 0.1 0.1)
    (:x (meters 0))
    (:y (meters 0))
    (:z (meters 6) (meters 1))
    (: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 255.0)
    (:a 0.0)
    (:fade-a 2.56)
    (:timer (seconds 0.335))
    (:flags (sp-cpuinfo-flag-3 left-multiply-quat))
    (:next-time (seconds 0.167))
    (:next-launcher 1637)
    (:rotate-x (degrees 0))
    (:rotate-y (degrees 20))
    (:rotate-z (degrees 90))
    )
  )

(defpart 1637
  :init-specs ((:fade-a -2.56))
  )

(defpart 1633
  :init-specs ((:texture (vol-light level-default-sprite))
    (:num 0.1 0.1)
    (:x (meters 0))
    (:y (meters 0))
    (:z (meters 6) (meters 1))
    (:scale-x (meters 10))
    (:rot-x (degrees 0))
    (:rot-y (degrees 0))
    (:rot-z (degrees 45))
    (:scale-y (meters 20))
    (:r 128.0)
    (:g 128.0)
    (:b 255.0)
    (:a 0.0)
    (:fade-a 2.56)
    (:timer (seconds 0.335))
    (:flags (sp-cpuinfo-flag-3 left-multiply-quat))
    (:next-time (seconds 0.167))
    (:next-launcher 1637)
    (:rotate-x (degrees 0))
    (:rotate-y (degrees 20))
    (:rotate-z (degrees 90))
    )
  )

(defpart 1634
  :init-specs ((:texture (vol-light level-default-sprite))
    (:num 0.1 0.1)
    (:x (meters 0))
    (:y (meters 0))
    (:z (meters 6) (meters 1))
    (:scale-x (meters 10))
    (:rot-x (degrees 0))
    (:rot-y (degrees 0))
    (:rot-z (degrees -45))
    (:scale-y (meters 20))
    (:r 128.0)
    (:g 128.0)
    (:b 255.0)
    (:a 0.0)
    (:rotvel-z (degrees 0.010000001))
    (:fade-a 2.56)
    (:timer (seconds 0.335))
    (:flags (sp-cpuinfo-flag-3 left-multiply-quat))
    (:next-time (seconds 0.167))
    (:next-launcher 1637)
    (:rotate-x (degrees 0))
    (:rotate-y (degrees 20))
    (:rotate-z (degrees 90))
    )
  )

(defpart 1635
  :init-specs ((:texture (vol-light level-default-sprite))
    (:num 0.1 0.1)
    (:x (meters 0))
    (:y (meters 0))
    (:z (meters 6) (meters 1))
    (:scale-x (meters 10))
    (:rot-x (degrees 0))
    (:rot-y (degrees 0))
    (:rot-z (degrees 90))
    (:scale-y (meters 20))
    (:r 128.0)
    (:g 128.0)
    (:b 255.0)
    (:a 0.0)
    (:rotvel-z (degrees 0.010000001))
    (:fade-a 2.56)
    (:timer (seconds 0.335))
    (:flags (sp-cpuinfo-flag-3 left-multiply-quat))
    (:next-time (seconds 0.167))
    (:next-launcher 1638)
    (:rotate-x (degrees 0))
    (:rotate-y (degrees 20))
    (:rotate-z (degrees 90))
    )
  )

(defpart 1638
  :init-specs ((:fade-a -1.28))
  )

(defpartgroup group-mothership-thrusters
  :id 407
  :flags (sp0)
  :bounds (static-bspherem 0 0 0 100)
  :parts ((sp-item 1639 :flags (sp6)) (sp-item 1640 :flags (sp6)) (sp-item 1641 :flags (sp7)))
  )

(defpart 1640
  :init-specs ((:texture (colorflash level-default-sprite))
    (:num 1.0)
    (:scale-x (meters 10) (meters 1))
    (:rot-x (degrees 22.5))
    (:rot-z (degrees 0) (degrees 360))
    (:scale-y :copy scale-x)
    (:r 255.0)
    (:g 255.0)
    (:b 255.0)
    (:a 255.0)
    (:omega (degrees 45011.25))
    (:timer (seconds 0.017))
    (:flags (sp-cpuinfo-flag-3 glow))
    (:userdata 4096.0)
    )
  )

(defpart 1639
  :init-specs ((:texture (glow-soft level-default-sprite))
    (:num 1.0)
    (:scale-x (meters 30))
    (:rot-x (degrees 225))
    (:scale-y :copy scale-x)
    (:r 0.0)
    (:g 100.0)
    (:b 255.0)
    (:a 50.0 10.0)
    (:omega (degrees 45011.25))
    (:timer (seconds 0.017))
    (:flags (sp-cpuinfo-flag-3 glow))
    (:userdata 81920.0)
    )
  )

(defpart 1641
  :init-specs ((:texture (big-cloud level-default-sprite))
    (:birth-func 'birth-func-texture-group)
    (:num 1.0)
    (:x (meters 0) (meters 4))
    (:scale-x (meters 6) (meters 4))
    (:rot-z (degrees 0) (degrees 360))
    (:scale-y :copy scale-x)
    (:r 100.0 64.0)
    (:g :copy r)
    (:b :copy r)
    (:a 0.0)
    (:vel-x (meters -0.0033333334) (meters 0.006666667))
    (:vel-y (meters -0.033333335) (meters -0.016666668))
    (:vel-z (meters -0.0033333334) (meters 0.006666667))
    (:scalevel-x (meters 0.02) (meters 0.04))
    (:rotvel-z (degrees -0.033333335) (degrees 0.06666667))
    (:scalevel-y :copy scalevel-x)
    (:fade-a 2.56)
    (:friction 0.99)
    (:timer (seconds 3))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-13))
    (:userdata :data (new 'static 'boxed-array :type int32 5 1 0 #x40a000 #x409b00 #x409b00))
    (:next-time (seconds 0.085))
    (:next-launcher 1642)
    (:rotate-y (degrees 0) (degrees 3600))
    )
  )

(defpart 1642
  :init-specs ((:fade-a -0.07314286 -0.14628571))
  )

(defpartgroup group-tentacle-warn
  :id 408
  :flags (sp0 sp4)
  :bounds (static-bspherem 0 0 0 40)
  :parts ((sp-item 1643 :flags (sp7)) (sp-item 1644 :flags (sp7)) (sp-item 1645 :flags (is-3d sp7)))
  )

(defpart 1643
  :init-specs ((:texture (lakedrop level-default-sprite))
    (:num 3.0)
    (:x (meters 0) (meters 6))
    (:y (meters -3) (meters -5))
    (:scale-x (meters 0.1) (meters 0.3))
    (:scale-y :copy scale-x)
    (:r 130.0 50.0)
    (:g :copy r)
    (:b :copy r)
    (:a 0.0)
    (:vel-y (meters 0.013333334) (meters 0.006666667))
    (:fade-a 0.10666667)
    (:timer (seconds 1))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 left-multiply-quat))
    (:func 'check-bubble-height)
    (:rotate-y (degrees 0) (degrees 3600))
    )
  )

(defpart 1644
  :init-specs ((:texture (water-drops level-default-sprite))
    (:num 3.0)
    (:x (meters 0) (meters 3))
    (:y (meters 0))
    (:scale-x (meters 1) (meters 1))
    (:rot-z (degrees 0) (degrees 360))
    (:scale-y :copy scale-x)
    (:r 130.0 50.0)
    (:g :copy r)
    (:b :copy r)
    (:a 32.0)
    (:vel-y (meters 0.013333334) (meters 0.006666667))
    (:scalevel-x (meters 0.0033333334) (meters 0.0033333334))
    (:scalevel-y :copy scalevel-x)
    (:fade-a -0.21333334)
    (:accel-y (meters -0.0016666667))
    (:timer (seconds 1))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-13 launch-along-z))
    (:rotate-y (degrees 0) (degrees 3600))
    )
  )

(defpart 1645
  :init-specs ((:texture (splash-foam level-default-sprite))
    (:num 0.3)
    (:x (meters 0))
    (:y (meters 0))
    (:scale-x (meters 3))
    (:rot-y (degrees 0) (degrees 360))
    (:scale-y :copy scale-x)
    (:r 130.0 50.0)
    (:g :copy r)
    (:b :copy r)
    (:a 40.0 40.0)
    (:scalevel-x (meters 0.033333335))
    (:scalevel-y :copy scalevel-x)
    (:fade-a -0.17777778)
    (:timer (seconds 1.5))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-13))
    (:rotate-y (degrees 0))
    )
  )

(defpartgroup group-tentacle-attack
  :id 409
  :flags (sp0 sp4)
  :bounds (static-bspherem 0 0 0 20)
  :parts ((sp-item 1646 :flags (sp7) :period (seconds 10) :length (seconds 0.067))
    (sp-item 1647 :flags (sp7) :period (seconds 10) :length (seconds 0.067))
    (sp-item 1648 :flags (sp7) :period (seconds 10) :length (seconds 0.067) :offset 325)
    )
  )

(defpart 1646
  :init-specs ((:texture (water-drops level-default-sprite))
    (:num 10.0)
    (:x (meters 0) (meters 1))
    (:y (meters 0))
    (:scale-x (meters 1) (meters 2))
    (:rot-z (degrees 0) (degrees 360))
    (:scale-y :copy scale-x)
    (:r 130.0 50.0)
    (:g :copy r)
    (:b :copy r)
    (:a 64.0 64.0)
    (:vel-y (meters 0.013333334) (meters 0.026666667))
    (:scalevel-x (meters 0.001) (meters 0.001))
    (:rotvel-z (degrees -0.1) (degrees 0.2))
    (:scalevel-y :copy scalevel-x)
    (:accel-y (meters -0.0016666667))
    (:timer (seconds 3))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-13 launch-along-z))
    (:func 'check-drop-group-center)
    (:conerot-x (degrees 0) (degrees 10))
    (:rotate-y (degrees 0) (degrees 3600))
    )
  )

(defpart 1647
  :init-specs ((:texture (water-drops level-default-sprite))
    (:num 100.0)
    (:x (meters 0) (meters 1))
    (:y (meters 0))
    (:scale-x (meters 1) (meters 2))
    (:rot-z (degrees 0) (degrees 360))
    (:scale-y :copy scale-x)
    (:r 130.0 50.0)
    (:g :copy r)
    (:b :copy r)
    (:a 64.0 64.0)
    (:vel-y (meters 0.013333334))
    (:scalevel-x (meters -0.0033333334) (meters -0.0033333334))
    (:rotvel-z (degrees -0.1) (degrees 0.2))
    (:scalevel-y :copy scalevel-x)
    (:fade-a -0.21333334 -0.21333334)
    (:accel-y (meters -0.000033333334))
    (:timer (seconds 2))
    (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-2 sp-cpuinfo-flag-13 launch-along-z))
    (:conerot-x (degrees 78) (degrees 10))
    (:rotate-y (degrees 0) (degrees 3600))
    )
  )

(defpart 1648
  :init-specs ((:texture (water-drops level-default-sprite))
    (:num 10.0)
    (:x (meters 0) (meters 2))
    (:y (meters 0))
    (:scale-x (meters 1) (meters 2))
    (:rot-z (degrees 0) (degrees 360))
    (:scale-y :copy scale-x)
    (:r 130.0 50.0)
    (:g :copy r)
    (:b :copy r)
    (:a 64.0 64.0)
    (:vel-y (meters 0.013333334) (meters 0.026666667))
    (:scalevel-x (meters 0.001) (meters 0.001))
    (:rotvel-z (degrees -0.1) (degrees 0.2))
    (:scalevel-y :copy scalevel-x)
    (:accel-y (meters -0.0016666667))
    (:timer (seconds 13.667))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-13 launch-along-z))
    (:conerot-x (degrees 0) (degrees 10))
    (:rotate-y (degrees 0) (degrees 3600))
    )
  )

(defpartgroup group-wascity-burning-bush-holo-on
  :id 381
  :flags (sp4)
  :bounds (static-bspherem 0 0 0 12)
  :parts ((sp-item 1649 :flags (is-3d sp6 sp7))
    (sp-item 1650 :flags (is-3d sp6 sp7))
    (sp-item 1651 :flags (is-3d sp6 sp7))
    )
  )

(defpart 1652
  :init-specs ((:texture (green-lightning level-default-sprite))
    (:num 2.0 4.0)
    (:x (meters -2.25) (meters 4.5))
    (:y (meters 6.1))
    (:scale-x (meters 1))
    (:rot-z (degrees 0) 1 (degrees 180))
    (:scale-y (meters 6))
    (:r 128.0 1 128.0)
    (:g 255.0)
    (:b 32.0)
    (:a 0.0)
    (:fade-a 1.6)
    (:timer (seconds 0.135))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3))
    (:next-time (seconds 0.067))
    (:next-launcher 1653)
    (:rotate-y (degrees 0) 1 (degrees 180))
    )
  )

(defpart 1653
  :init-specs ((:fade-a -1.6))
  )

(defpart 1649
  :init-specs ((:texture (kleever-fist-logo desert-sprite))
    (:num 1.0)
    (:y (meters 6))
    (:z (meters -0.02))
    (:scale-x (meters 4.5) (meters 0.1))
    (:rot-x (degrees 90))
    (:rot-z (degrees 0))
    (:scale-y :copy scale-x)
    (:r 55.0)
    (:g 55.0)
    (:b 55.0)
    (:a 160.0)
    (:timer (seconds 0.017))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 left-multiply-quat))
    (:rotate-y (degrees 0))
    )
  )

(defpart 1651
  :init-specs ((:texture (middot level-default-sprite))
    (:num 1.0)
    (:y (meters 6))
    (:z (meters 0.05))
    (:scale-x (meters 7))
    (:rot-x (degrees 90))
    (:rot-y (degrees 90))
    (:rot-z (degrees 90))
    (:scale-y (meters 8))
    (:r 255.0)
    (:g 60.0)
    (:b 10.0)
    (:a 64.0 32.0)
    (:timer (seconds 0.017))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-13 left-multiply-quat))
    (:rotate-y (degrees 0))
    )
  )

(defpart 1650
  :init-specs ((:texture (kleever-fist-logo desert-sprite))
    (:num 1.0)
    (:y (meters 6))
    (:z (meters 0.02))
    (:scale-x (meters 4.8) (meters 0.1))
    (:rot-x (degrees 90))
    (:rot-y (degrees 90))
    (:rot-z (degrees 90))
    (:scale-y :copy scale-x)
    (:r 255.0)
    (:g 255.0)
    (:b 255.0)
    (:a 16.0 16.0)
    (:timer (seconds 0.017))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-4 left-multiply-quat))
    (:rotate-y (degrees 0))
    )
  )

(defpartgroup group-wascity-burning-bush-holo-off
  :id 382
  :flags (sp4)
  :bounds (static-bspherem 0 0 0 12)
  :parts ((sp-item 1654 :flags (is-3d sp6 sp7))
    (sp-item 1655 :flags (is-3d sp6 sp7))
    (sp-item 1656 :flags (is-3d sp6 sp7))
    )
  )

(defpart 1654
  :init-specs ((:texture (burning-bush-off desert-sprite))
    (:num 1.0)
    (:y (meters 6))
    (:z (meters -0.02))
    (:scale-x (meters 4.5) (meters 0.1))
    (:rot-x (degrees 90))
    (:rot-z (degrees 0))
    (:scale-y :copy scale-x)
    (:r 128.0)
    (:g 255.0)
    (:b 255.0)
    (:a 64.0 32.0)
    (:timer (seconds 0.017))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-13 left-multiply-quat))
    (:rotate-y (degrees 0))
    )
  )

(defpart 1656
  :init-specs ((:texture (middot level-default-sprite))
    (:num 1.0)
    (:y (meters 6))
    (:z (meters 0.05))
    (:scale-x (meters 7))
    (:rot-x (degrees 90))
    (:rot-y (degrees 90))
    (:rot-z (degrees 90))
    (:scale-y (meters 8))
    (:r 64.0 64.0)
    (:g 128.0 128.0)
    (:b 255.0)
    (:a 32.0 32.0)
    (:timer (seconds 0.017))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-13 left-multiply-quat))
    (:rotate-y (degrees 0))
    )
  )

(defpart 1657
  :init-specs ((:texture (common-white common))
    (:num 1.0)
    (:y (meters 6))
    (:z (meters -0.05))
    (:scale-x (meters 5))
    (:rot-x (degrees -90))
    (:rot-y (degrees 90))
    (:rot-z (degrees 90))
    (:scale-y (meters 6))
    (:r 255.0)
    (:g 128.0)
    (:b 0.0)
    (:a 0.0 8.0)
    (:timer (seconds 0.017))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-4 sp-cpuinfo-flag-13 left-multiply-quat))
    (:rotate-y (degrees 0))
    )
  )

(defpart 1655
  :init-specs ((:texture (burning-bush-off desert-sprite))
    (:num 1.0)
    (:y (meters 6))
    (:z (meters 0.02))
    (:scale-x (meters 5) (meters 0.1))
    (:rot-x (degrees 90))
    (:rot-y (degrees 90))
    (:rot-z (degrees 90))
    (:scale-y :copy scale-x)
    (:r 255.0)
    (:g 255.0)
    (:b 255.0)
    (:a 16.0 8.0)
    (:timer (seconds 0.017))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-4 sp-cpuinfo-flag-13 left-multiply-quat))
    (:rotate-y (degrees 0))
    )
  )
