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

;; name: intro-part.gc
;; name in dgo: intro-part
;; dgos: INTROCST

(define-extern *range-intro-dust-color* curve-color-fast)
(define-extern *range-intro-dust-alpha* curve2d-fast)
(define-extern *range-intro-dust-scale-x* curve2d-fast)
(define-extern *range-intro-dust-scale-y* curve2d-fast)
(define-extern *curve-intro-dust-alpha* curve2d-fast)
(define-extern *curve-intro-dust-scale-x* curve2d-fast)
(define-extern *curve-intro-dust-scale-y* curve2d-fast)
(define-extern *curve-intro-dust-cloud-alpha* curve2d-fast)
(define-extern *curve-intro-dust-cloud-scale-x* curve2d-fast)
(define-extern *curve-intro-dust-cloud-scale-y* curve2d-fast)
(define-extern *range-intro-pecker-dust-scale-x* curve2d-fast)
(define-extern *range-intro-pecker-dust-scale-y* curve2d-fast)
(define-extern *curve-intro-pecker-dust-scale-x* curve2d-fast)
(define-extern *curve-intro-pecker-dust-scale-y* curve2d-fast)
(define-extern *range-color-desert-impact-dust* curve-color-fast)
(define-extern *range-alpha-desert-impact-dust* curve2d-fast)
(define-extern *range-scale-desert-impact-dust-x* curve2d-fast)
(define-extern *range-scale-desert-impact-dust-y* curve2d-fast)
(define-extern *curve-alpha-desert-impact-dust* curve2d-fast)
(define-extern *curve-desert-impact-dust-x* curve2d-fast)
(define-extern *curve-desert-impact-dust-y* curve2d-fast)
(define-extern *range-alpha-desert-impact-dust-blow* curve2d-fast)
(define-extern *range-scale-desert-impact-dust-blow-x* curve2d-fast)
(define-extern *range-scale-desert-impact-dust-blow-y* curve2d-fast)
(define-extern *curve-alpha-desert-impact-dust-blow* curve2d-fast)
(define-extern *curve-desert-impact-dust-blow-x* curve2d-fast)
(define-extern *curve-desert-impact-dust-blow-y* curve2d-fast)

;; DECOMP BEGINS

(defpartgroup group-drop-shooting-dust
  :id 1191
  :flags (sp0 sp4)
  :bounds (static-bspherem 0 0 0 64)
  :parts ((sp-item 4101 :flags (sp7) :period (seconds 10) :length (seconds 0.035)))
  )

(defpart 4101
  :init-specs ((:texture (dirtpuff01 level-default-sprite))
    (:num 10.0)
    (:scale-x (meters 5) (meters 10))
    (:scale-y :copy scale-x)
    (:r 130.0)
    (:g 110.0)
    (:b 70.0)
    (:a 64.0)
    (:vel-z (meters -0.06666667) (meters -0.26666668))
    (:scalevel-x (meters 0.033333335) (meters 0.033333335))
    (:scalevel-y :copy scalevel-x)
    (:fade-a -0.07111111 -0.07111111)
    (:timer (seconds 3))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-13))
    (:conerot-x (degrees 20))
    (:conerot-y (degrees -10) (degrees -32))
    )
  )

(defpartgroup group-drop-dust-trail
  :id 1192
  :flags (sp0 sp4)
  :bounds (static-bspherem 0 0 0 64)
  :parts ((sp-item 4102 :flags (sp7)))
  )

(defpart 4102
  :init-specs ((:texture (dirtpuff01 level-default-sprite))
    (:birth-func 'birth-func-curve)
    (:num 10.0)
    (:x (meters 0) (meters 3))
    (:scale-x (meters 0.5))
    (:rot-z (degrees 0) (degrees 360))
    (:scale-y :copy scale-x)
    (:r 128.0)
    (:g 128.0)
    (:b 128.0)
    (:a 0.0)
    (:vel-x (meters 0.033333335) (meters 0.06666667))
    (:accel-y (meters 0) (meters 0.00016666666))
    (:timer (seconds 3))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-13 launch-along-z))
    (:userdata 0.0)
    (:func 'live-func-curve)
    (:conerot-z (degrees 0))
    (:rotate-y (degrees 0) (degrees 3600))
    )
  )

(if #t
    (set! *range-intro-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 140.0 :y 120.0 :z 80.0 :w 128.0)
                                       (new 'static 'vector :x 100.0 :y 80.0 :z 40.0 :w 128.0)
                                       (new 'static 'vector :x 100.0 :y 80.0 :z 40.0 :w 128.0)
                                       (new 'static 'vector :x 100.0 :y 80.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-intro-dust-alpha* (new 'static 'curve2d-fast
                                     :xs (new 'static 'vector :y -1.0 :z -2.0 :w -3.0)
                                     :ys (new 'static 'vector :x 32.0 :y 40.0 :z 41.0 :w 42.0)
                                     :one-over-x-deltas (new 'static 'vector :x 8.0 :y 1.0 :z 1.0 :w 1.0)
                                     )
          )
    )

(if #t
    (set! *range-intro-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 3.0 :y 3.3 :z 4.3 :w 5.3)
                                       :one-over-x-deltas (new 'static 'vector :x 0.29999995 :y 1.0000002 :z 1.0 :w 1.0)
                                       )
          )
    )

(if #t
    (set! *range-intro-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 3.0 :y 3.3 :z 4.3 :w 5.3)
                                       :one-over-x-deltas (new 'static 'vector :x 0.29999995 :y 1.0000002 :z 1.0 :w 1.0)
                                       )
          )
    )

(if #t
    (set! *curve-intro-dust-alpha* (new 'static 'curve2d-fast
                                     :xs (new 'static 'vector :y -0.1 :z -0.5 :w -1.0)
                                     :ys (new 'static 'vector :y 1.0 :z 1.0)
                                     :one-over-x-deltas (new 'static 'vector :x 10.0 :z -2.0 :w 1.0)
                                     )
          )
    )

(if #t
    (set! *curve-intro-dust-scale-x* (new 'static 'curve2d-fast
                                       :xs (new 'static 'vector :y -0.3 :z -0.4 :w -1.0)
                                       :ys (new 'static 'vector :y 5.0 :z 6.0 :w 6.5)
                                       :one-over-x-deltas (new 'static 'vector :x 16.666666 :y 10.000001 :z 0.8333333 :w 1.0)
                                       )
          )
    )

(if #t
    (set! *curve-intro-dust-scale-y* (new 'static 'curve2d-fast
                                       :xs (new 'static 'vector :y -0.3 :z -0.4 :w -1.0)
                                       :ys (new 'static 'vector :y 5.0 :z 6.0 :w 6.5)
                                       :one-over-x-deltas (new 'static 'vector :x 16.666666 :y 10.000001 :z 0.8333333 :w 1.0)
                                       )
          )
    )

(define *part-drop-dust-trail-curve-settings*
  (new 'static 'particle-curve-settings :lifetime-offset (seconds 4) :flags (particle-curve-flags pcf0))
  )

(set! (-> *part-id-table* 4102 init-specs 15 initial-valuef)
      (the-as float *part-drop-dust-trail-curve-settings*)
      )

(set! (-> *part-drop-dust-trail-curve-settings* color-start) *range-intro-dust-color*)

(set! (-> *part-drop-dust-trail-curve-settings* alpha-start) *range-intro-dust-alpha*)

(set! (-> *part-drop-dust-trail-curve-settings* scale-x-start) *range-intro-dust-scale-x*)

(set! (-> *part-drop-dust-trail-curve-settings* scale-y-start) *range-intro-dust-scale-y*)

(set! (-> *part-drop-dust-trail-curve-settings* r-scalar) #f)

(set! (-> *part-drop-dust-trail-curve-settings* g-scalar) #f)

(set! (-> *part-drop-dust-trail-curve-settings* b-scalar) #f)

(set! (-> *part-drop-dust-trail-curve-settings* a-scalar) *curve-intro-dust-alpha*)

(set! (-> *part-drop-dust-trail-curve-settings* scale-x-scalar) *curve-intro-dust-scale-x*)

(set! (-> *part-drop-dust-trail-curve-settings* scale-y-scalar) *curve-intro-dust-scale-y*)

(defpartgroup group-drop-dust-landing
  :id 1193
  :flags (sp0 sp4)
  :bounds (static-bspherem 0 0 0 64)
  :parts ((sp-item 4103 :flags (sp7)))
  )

(defpart 4103
  :init-specs ((:texture (dirtpuff01 level-default-sprite))
    (:birth-func 'birth-func-curve)
    (:num 1.0)
    (:x (meters 0) (meters 3))
    (:scale-x (meters 0.5))
    (:rot-z (degrees 0) (degrees 360))
    (:scale-y :copy scale-x)
    (:r 128.0)
    (:g 100.0)
    (:b 60.0)
    (:a 0.0)
    (:vel-x (meters 0.033333335) (meters 0.06666667))
    (:accel-y (meters 0) (meters 0.00016666666))
    (:timer (seconds 3))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-13 launch-along-z))
    (:userdata 0.0)
    (:func 'live-func-curve)
    (:conerot-z (degrees 0))
    (:rotate-y (degrees 0) (degrees 3600))
    )
  )

(define *part-drop-dust-landing-curve-settings* (new 'static 'particle-curve-settings
                                                  :lifetime-base (seconds 1)
                                                  :lifetime-offset (seconds 2)
                                                  :flags (particle-curve-flags pcf0)
                                                  )
        )

(set! (-> *part-id-table* 4103 init-specs 15 initial-valuef)
      (the-as float *part-drop-dust-landing-curve-settings*)
      )

(set! (-> *part-drop-dust-landing-curve-settings* color-start) *range-intro-dust-color*)

(set! (-> *part-drop-dust-landing-curve-settings* alpha-start) *range-intro-dust-alpha*)

(set! (-> *part-drop-dust-landing-curve-settings* scale-x-start) *range-intro-dust-scale-x*)

(set! (-> *part-drop-dust-landing-curve-settings* scale-y-start) *range-intro-dust-scale-y*)

(set! (-> *part-drop-dust-landing-curve-settings* r-scalar) #f)

(set! (-> *part-drop-dust-landing-curve-settings* g-scalar) #f)

(set! (-> *part-drop-dust-landing-curve-settings* b-scalar) #f)

(set! (-> *part-drop-dust-landing-curve-settings* a-scalar) *curve-intro-dust-alpha*)

(set! (-> *part-drop-dust-landing-curve-settings* scale-x-scalar) *curve-intro-dust-scale-x*)

(set! (-> *part-drop-dust-landing-curve-settings* scale-y-scalar) *curve-intro-dust-scale-y*)

(defpartgroup group-drop-dust-takeoff
  :id 1194
  :flags (sp0 sp4)
  :bounds (static-bspherem 0 0 0 64)
  :parts ((sp-item 4104 :flags (sp7)))
  )

(defpart 4104
  :init-specs ((:texture (dirtpuff01 level-default-sprite))
    (:birth-func 'birth-func-curve)
    (:num 5.0)
    (:x (meters 0) (meters 3))
    (:scale-x (meters 0.5))
    (:rot-z (degrees 0) (degrees 360))
    (:scale-y :copy scale-x)
    (:r 128.0)
    (:g 100.0)
    (:b 60.0)
    (:a 0.0)
    (:vel-x (meters 0.033333335) (meters 0.06666667))
    (:accel-y (meters 0) (meters 0.00016666666))
    (:timer (seconds 3))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-13 launch-along-z))
    (:userdata 0.0)
    (:func 'live-func-curve)
    (:conerot-z (degrees 0))
    (:rotate-y (degrees 0) (degrees 3600))
    )
  )

(define *part-drop-dust-takeoff-curve-settings* (new 'static 'particle-curve-settings
                                                  :lifetime-base (seconds 5)
                                                  :lifetime-offset (seconds 2)
                                                  :flags (particle-curve-flags pcf0)
                                                  )
        )

(set! (-> *part-id-table* 4104 init-specs 15 initial-valuef)
      (the-as float *part-drop-dust-takeoff-curve-settings*)
      )

(set! (-> *part-drop-dust-takeoff-curve-settings* color-start) *range-intro-dust-color*)

(set! (-> *part-drop-dust-takeoff-curve-settings* alpha-start) *range-intro-dust-alpha*)

(set! (-> *part-drop-dust-takeoff-curve-settings* scale-x-start) *range-intro-dust-scale-x*)

(set! (-> *part-drop-dust-takeoff-curve-settings* scale-y-start) *range-intro-dust-scale-y*)

(set! (-> *part-drop-dust-takeoff-curve-settings* r-scalar) #f)

(set! (-> *part-drop-dust-takeoff-curve-settings* g-scalar) #f)

(set! (-> *part-drop-dust-takeoff-curve-settings* b-scalar) #f)

(set! (-> *part-drop-dust-takeoff-curve-settings* a-scalar) *curve-intro-dust-alpha*)

(set! (-> *part-drop-dust-takeoff-curve-settings* scale-x-scalar) *curve-intro-dust-scale-x*)

(set! (-> *part-drop-dust-takeoff-curve-settings* scale-y-scalar) *curve-intro-dust-scale-y*)

(defpartgroup group-drop-dust-cloud
  :id 1195
  :flags (sp0 sp4)
  :bounds (static-bspherem 0 0 0 64)
  :parts ((sp-item 4105 :flags (sp7)))
  )

(defpart 4105
  :init-specs ((:texture (dirtpuff01 level-default-sprite))
    (:birth-func 'birth-func-curve)
    (:num 20.0)
    (:x (meters 0) (meters 2))
    (:scale-x (meters 0.5))
    (:rot-z (degrees 0) (degrees 360))
    (:scale-y :copy scale-x)
    (:r 128.0)
    (:g 100.0)
    (:b 60.0)
    (:a 0.0)
    (:vel-x (meters 0) (meters 0.0033333334))
    (:accel-y (meters 0) (meters 0.00006666667))
    (:timer (seconds 3))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-13 launch-along-z))
    (:userdata 0.0)
    (:func 'live-func-curve)
    (:rotate-y (degrees 0) (degrees 3600))
    )
  )

(if #t
    (set! *curve-intro-dust-cloud-alpha* (new 'static 'curve2d-fast
                                           :xs (new 'static 'vector :y -0.1 :z -1.0 :w -2.0)
                                           :ys (new 'static 'vector :y 2.0 :w 1.0)
                                           :one-over-x-deltas (new 'static 'vector :x 20.0 :y -2.2222223 :z 1.0 :w 1.0)
                                           )
          )
    )

(if #t
    (set! *curve-intro-dust-cloud-scale-x* (new 'static 'curve2d-fast
                                             :xs (new 'static 'vector :y -0.3 :z -0.4 :w -1.0)
                                             :ys (new 'static 'vector :y 1.0 :z 2.0 :w 2.5)
                                             :one-over-x-deltas (new 'static 'vector :x 3.3333333 :y 10.000001 :z 0.8333333 :w 1.0)
                                             )
          )
    )

(if #t
    (set! *curve-intro-dust-cloud-scale-y* (new 'static 'curve2d-fast
                                             :xs (new 'static 'vector :y -0.3 :z -0.4 :w -1.0)
                                             :ys (new 'static 'vector :y 1.0 :z 2.0 :w 2.5)
                                             :one-over-x-deltas (new 'static 'vector :x 3.3333333 :y 10.000001 :z 0.8333333 :w 1.0)
                                             )
          )
    )

(define *part-drop-dust-cloud-curve-settings* (new 'static 'particle-curve-settings
                                                :lifetime-base (seconds 4)
                                                :lifetime-offset (seconds 2)
                                                :flags (particle-curve-flags pcf0)
                                                )
        )

(set! (-> *part-id-table* 4105 init-specs 15 initial-valuef)
      (the-as float *part-drop-dust-cloud-curve-settings*)
      )

(set! (-> *part-drop-dust-cloud-curve-settings* color-start) *range-intro-dust-color*)

(set! (-> *part-drop-dust-cloud-curve-settings* alpha-start) *range-intro-dust-alpha*)

(set! (-> *part-drop-dust-cloud-curve-settings* scale-x-start) *range-intro-dust-scale-x*)

(set! (-> *part-drop-dust-cloud-curve-settings* scale-y-start) *range-intro-dust-scale-y*)

(set! (-> *part-drop-dust-cloud-curve-settings* r-scalar) #f)

(set! (-> *part-drop-dust-cloud-curve-settings* g-scalar) #f)

(set! (-> *part-drop-dust-cloud-curve-settings* b-scalar) #f)

(set! (-> *part-drop-dust-cloud-curve-settings* a-scalar) *curve-intro-dust-cloud-alpha*)

(set! (-> *part-drop-dust-cloud-curve-settings* scale-x-scalar) *curve-intro-dust-cloud-scale-x*)

(set! (-> *part-drop-dust-cloud-curve-settings* scale-y-scalar) *curve-intro-dust-cloud-scale-y*)

(defpartgroup group-drop-pecker-dustoff
  :id 1196
  :flags (sp0 sp4)
  :bounds (static-bspherem 0 0 0 64)
  :parts ((sp-item 4106 :flags (sp7)))
  )

(defpart 4106
  :init-specs ((:texture (dirtpuff01 level-default-sprite))
    (:birth-func 'birth-func-curve)
    (:num 10.0)
    (:scale-x (meters 0.5))
    (:rot-z (degrees 0) (degrees 360))
    (:scale-y :copy scale-x)
    (:r 128.0)
    (:g 100.0)
    (:b 60.0)
    (:a 0.0)
    (:vel-y (meters -0.006666667))
    (:friction 0.99)
    (:timer (seconds 3))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-13 launch-along-z))
    (:userdata 0.0)
    (:func 'live-func-curve)
    (:conerot-x (degrees -40) (degrees 80))
    (:conerot-z (degrees 40))
    (:rotate-y (degrees 0) (degrees 3600))
    )
  )

(if #t
    (set! *range-intro-pecker-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 0.1 :y 0.2 :z 1.2 :w 2.2)
                                              :one-over-x-deltas (new 'static 'vector :x 0.1 :y 1.0 :z 1.0 :w 1.0)
                                              )
          )
    )

(if #t
    (set! *range-intro-pecker-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 0.1 :y 0.2 :z 1.2 :w 2.2)
                                              :one-over-x-deltas (new 'static 'vector :x 0.1 :y 1.0 :z 1.0 :w 1.0)
                                              )
          )
    )

(if #t
    (set! *curve-intro-pecker-dust-scale-x* (new 'static 'curve2d-fast
                                              :xs (new 'static 'vector :y -1.0 :z -2.0 :w -3.0)
                                              :ys (new 'static 'vector :y 4.0 :z 5.0 :w 6.0)
                                              :one-over-x-deltas (new 'static 'vector :x 4.0 :y 1.0 :z 1.0 :w 1.0)
                                              )
          )
    )

(if #t
    (set! *curve-intro-pecker-dust-scale-y* (new 'static 'curve2d-fast
                                              :xs (new 'static 'vector :y -1.0 :z -2.0 :w -3.0)
                                              :ys (new 'static 'vector :y 4.0 :z 5.0 :w 6.0)
                                              :one-over-x-deltas (new 'static 'vector :x 4.0 :y 1.0 :z 1.0 :w 1.0)
                                              )
          )
    )

(define *part-drop-pecker-dustoff-curve-settings* (new 'static 'particle-curve-settings
                                                    :lifetime-base (seconds 0.4)
                                                    :lifetime-offset (seconds 0.2)
                                                    :flags (particle-curve-flags pcf0)
                                                    )
        )

(set! (-> *part-id-table* 4106 init-specs 14 initial-valuef)
      (the-as float *part-drop-pecker-dustoff-curve-settings*)
      )

(set! (-> *part-drop-pecker-dustoff-curve-settings* color-start) *range-intro-dust-color*)

(set! (-> *part-drop-pecker-dustoff-curve-settings* alpha-start) *range-intro-dust-alpha*)

(set! (-> *part-drop-pecker-dustoff-curve-settings* scale-x-start) *range-intro-pecker-dust-scale-x*)

(set! (-> *part-drop-pecker-dustoff-curve-settings* scale-y-start) *range-intro-pecker-dust-scale-y*)

(set! (-> *part-drop-pecker-dustoff-curve-settings* r-scalar) #f)

(set! (-> *part-drop-pecker-dustoff-curve-settings* g-scalar) #f)

(set! (-> *part-drop-pecker-dustoff-curve-settings* b-scalar) #f)

(set! (-> *part-drop-pecker-dustoff-curve-settings* a-scalar) *curve-intro-dust-alpha*)

(set! (-> *part-drop-pecker-dustoff-curve-settings* scale-x-scalar) *curve-intro-pecker-dust-scale-x*)

(set! (-> *part-drop-pecker-dustoff-curve-settings* scale-y-scalar) *curve-intro-pecker-dust-scale-y*)

(defpartgroup group-drop-thrusters-powerdown
  :id 1197
  :flags (sp0 sp4)
  :bounds (static-bspherem 0 0 0 640)
  :parts ((sp-item 4107 :flags (sp7)) (sp-item 4108 :flags (sp3 sp7)) (sp-item 4109 :flags (sp3 sp7)))
  )

(defpart 4109
  :init-specs ((:texture (thrust-glob introcst-sprite))
    (:num 3.0)
    (:scale-x (meters 2) (meters 2))
    (:rot-x (degrees 67.5))
    (:rot-z (degrees 0) (degrees 360))
    (:scale-y :copy scale-x)
    (:r 255.0)
    (:g 200.0)
    (:b 128.0)
    (:a 40.0 15.0)
    (:omega (degrees 4511.25))
    (:rotvel-z (degrees -60) 1 (degrees 120))
    (:fade-a -0.05)
    (:timer (seconds 2.667))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
    (:userdata 8192.0)
    (:func 'sparticle-track-root)
    (:next-time (seconds 2))
    (:next-launcher 4110)
    (:rotate-y (degrees 0))
    )
  )

(defpart 4110
  :init-specs ((:fade-a 1.5) (:next-time (seconds 0.335)) (:next-launcher 4111))
  )

(defpart 4111
  :init-specs ((:fade-a -2.55))
  )

(defpart 4108
  :init-specs ((:texture (glow level-default-sprite))
    (:num 1.0)
    (:scale-x (meters 6) (meters 1))
    (:rot-x (degrees 67.5))
    (:scale-y :copy scale-x)
    (:r 255.0)
    (:g 100.0 28.0)
    (:b 0.0)
    (:a 16.0 16.0)
    (:omega (degrees 4511.25))
    (:vel-y (meters 0.1))
    (:timer (seconds 2.667))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
    (:userdata 8192.0)
    (:func 'sparticle-track-root)
    (:conerot-z (degrees 0))
    (:rotate-y (degrees 0))
    )
  )

(defpartgroup group-drop-thrusters
  :id 1198
  :flags (sp0 sp4)
  :bounds (static-bspherem 0 0 0 640)
  :parts ((sp-item 4107 :flags (sp7))
    (sp-item 4112 :flags (sp7) :period (seconds 0.017) :length (seconds 0.017))
    (sp-item 4113 :flags (sp7) :period (seconds 0.017) :length (seconds 0.017))
    )
  )

(defpart 4107
  :init-specs ((:num 1.0)
    (:x (meters -2) (meters 4))
    (:y (meters -2) (meters 4))
    (:z (meters -2) (meters 4))
    (:rot-x 5)
    (:r 20480.0)
    (:g 10240.0)
    (:b 8192.0 4096.0)
    (:timer (seconds 0.5))
    (:flags (distort launch-along-z))
    )
  )

(defpart 4112
  :init-specs ((:texture (colorflash level-default-sprite))
    (:num 4.0)
    (:scale-x (meters 2) (meters 2))
    (:scale-y :copy scale-x)
    (:r 255.0)
    (:g 200.0)
    (:b 128.0)
    (:a 40.0 10.0)
    (:vel-y (meters 0.1))
    (:timer (seconds 0.017))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3))
    (:conerot-z (degrees 0))
    (:rotate-y (degrees 0))
    )
  )

(defpart 4113
  :init-specs ((:texture (glow level-default-sprite))
    (:num 3.0)
    (:scale-x (meters 6) (meters 1))
    (:scale-y :copy scale-x)
    (:r 255.0)
    (:g 100.0 28.0)
    (:b 0.0)
    (:a 8.0 8.0)
    (:vel-y (meters 0.1))
    (:timer (seconds 0.017))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3))
    (:conerot-z (degrees 0))
    (:rotate-y (degrees 0))
    )
  )

(defpartgroup group-drop-thruster-trail
  :id 1199
  :flags (sp0 sp4)
  :bounds (static-bspherem 0 0 0 640)
  :parts ((sp-item 4114 :flags (sp7) :period (seconds 0.035) :length (seconds 0.035))
    (sp-item 4115 :flags (sp7) :period (seconds 0.035) :length (seconds 0.035))
    (sp-item 4116 :flags (sp7) :period (seconds 0.035) :length (seconds 0.035))
    (sp-item 4117 :flags (sp7) :period (seconds 0.035) :length (seconds 0.035))
    (sp-item 4118 :flags (sp7) :period (seconds 0.035) :length (seconds 0.035))
    (sp-item 4119 :flags (sp7) :period (seconds 0.035) :length (seconds 0.035))
    (sp-item 4120 :flags (sp7) :period (seconds 0.035) :length (seconds 0.035))
    (sp-item 4121 :flags (sp7) :period (seconds 0.035) :length (seconds 0.035))
    (sp-item 4122 :flags (sp7) :period (seconds 0.035) :length (seconds 0.035))
    (sp-item 4123 :flags (sp7) :period (seconds 0.035) :length (seconds 0.035))
    )
  )

(defpart 4114
  :init-specs ((:texture (dirtpuff01 level-default-sprite))
    (:num 1.0)
    (:scale-x (meters 3))
    (:rot-z (degrees 0) (degrees 360))
    (:scale-y :copy scale-x)
    (:r 128.0)
    (:g 128.0)
    (:b 200.0)
    (:a 20.0 10.0)
    (:vel-y (meters -0.33333334) (meters 0.33333334))
    (:scalevel-x (meters 0.06666667) (meters 0.06666667))
    (:scalevel-y :copy scalevel-x)
    (:fade-a -0.1 -0.2)
    (:friction 0.5)
    (:timer (seconds 1))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-13))
    (:conerot-z (degrees 0))
    (:rotate-y (degrees 0))
    )
  )

(defpart 4115
  :init-specs ((:texture (dirtpuff01 level-default-sprite))
    (:num 1.0)
    (:scale-x (meters 3))
    (:rot-z (degrees 0) (degrees 360))
    (:scale-y :copy scale-x)
    (:r 128.0)
    (:g 128.0)
    (:b 200.0)
    (:a 20.0 10.0)
    (:vel-y (meters 0) (meters 0.33333334))
    (:scalevel-x (meters 0.06666667) (meters 0.06666667))
    (:scalevel-y :copy scalevel-x)
    (:fade-a -0.1 -0.2)
    (:friction 0.5)
    (:timer (seconds 1))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-13))
    (:conerot-z (degrees 0))
    (:rotate-y (degrees 0))
    )
  )

(defpart 4116
  :init-specs ((:texture (dirtpuff01 level-default-sprite))
    (:num 1.0)
    (:scale-x (meters 3))
    (:rot-z (degrees 0) (degrees 360))
    (:scale-y :copy scale-x)
    (:r 128.0)
    (:g 128.0)
    (:b 200.0)
    (:a 20.0 10.0)
    (:vel-y (meters 0.33333334) (meters 0.33333334))
    (:scalevel-x (meters 0.06666667) (meters 0.06666667))
    (:scalevel-y :copy scalevel-x)
    (:fade-a -0.1 -0.2)
    (:friction 0.5)
    (:timer (seconds 1))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-13))
    (:conerot-z (degrees 0))
    (:rotate-y (degrees 0))
    )
  )

(defpart 4117
  :init-specs ((:texture (dirtpuff01 level-default-sprite))
    (:num 1.0)
    (:scale-x (meters 3))
    (:rot-z (degrees 0) (degrees 360))
    (:scale-y :copy scale-x)
    (:r 128.0)
    (:g 128.0)
    (:b 200.0)
    (:a 20.0 10.0)
    (:vel-y (meters 0.6666667) (meters 0.33333334))
    (:scalevel-x (meters 0.06666667) (meters 0.06666667))
    (:scalevel-y :copy scalevel-x)
    (:fade-a -0.1 -0.2)
    (:friction 0.5)
    (:timer (seconds 1))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-13))
    (:conerot-z (degrees 0))
    (:rotate-y (degrees 0))
    )
  )

(defpart 4118
  :init-specs ((:texture (dirtpuff01 level-default-sprite))
    (:num 1.0)
    (:scale-x (meters 3))
    (:rot-z (degrees 0) (degrees 360))
    (:scale-y :copy scale-x)
    (:r 128.0)
    (:g 128.0)
    (:b 200.0)
    (:a 20.0 10.0)
    (:vel-y (meters 1) (meters 0.33333334))
    (:scalevel-x (meters 0.06666667) (meters 0.06666667))
    (:scalevel-y :copy scalevel-x)
    (:fade-a -0.1 -0.2)
    (:friction 0.5)
    (:timer (seconds 1))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-13))
    (:conerot-z (degrees 0))
    (:rotate-y (degrees 0))
    )
  )

(defpart 4119
  :init-specs ((:texture (dirtpuff01 level-default-sprite))
    (:num 1.0)
    (:scale-x (meters 3))
    (:rot-z (degrees 0) (degrees 360))
    (:scale-y :copy scale-x)
    (:r 128.0)
    (:g 128.0)
    (:b 200.0)
    (:a 20.0 10.0)
    (:vel-y (meters 1.3333334) (meters 0.33333334))
    (:scalevel-x (meters 0.06666667) (meters 0.06666667))
    (:scalevel-y :copy scalevel-x)
    (:fade-a -0.1 -0.2)
    (:friction 0.5)
    (:timer (seconds 1))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-13))
    (:conerot-z (degrees 0))
    (:rotate-y (degrees 0))
    )
  )

(defpart 4120
  :init-specs ((:texture (dirtpuff01 level-default-sprite))
    (:num 1.0)
    (:scale-x (meters 3))
    (:rot-z (degrees 0) (degrees 360))
    (:scale-y :copy scale-x)
    (:r 128.0)
    (:g 128.0)
    (:b 200.0)
    (:a 20.0 10.0)
    (:vel-y (meters 1.6666666) (meters 0.33333334))
    (:scalevel-x (meters 0.06666667) (meters 0.06666667))
    (:scalevel-y :copy scalevel-x)
    (:fade-a -0.1 -0.2)
    (:friction 0.5)
    (:timer (seconds 1))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-13))
    (:conerot-z (degrees 0))
    (:rotate-y (degrees 0))
    )
  )

(defpart 4121
  :init-specs ((:texture (dirtpuff01 level-default-sprite))
    (:num 1.0)
    (:scale-x (meters 3))
    (:rot-z (degrees 0) (degrees 360))
    (:scale-y :copy scale-x)
    (:r 128.0)
    (:g 128.0)
    (:b 200.0)
    (:a 20.0 10.0)
    (:vel-y (meters 2) (meters 0.33333334))
    (:scalevel-x (meters 0.06666667) (meters 0.06666667))
    (:scalevel-y :copy scalevel-x)
    (:fade-a -0.1 -0.2)
    (:friction 0.5)
    (:timer (seconds 1))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-13))
    (:conerot-z (degrees 0))
    (:rotate-y (degrees 0))
    )
  )

(defpart 4122
  :init-specs ((:texture (dirtpuff01 level-default-sprite))
    (:num 1.0)
    (:scale-x (meters 3))
    (:rot-z (degrees 0) (degrees 360))
    (:scale-y :copy scale-x)
    (:r 128.0)
    (:g 128.0)
    (:b 200.0)
    (:a 20.0 10.0)
    (:vel-y (meters 2.3333333) (meters 0.33333334))
    (:scalevel-x (meters 0.06666667) (meters 0.06666667))
    (:scalevel-y :copy scalevel-x)
    (:fade-a -0.1 -0.2)
    (:friction 0.5)
    (:timer (seconds 1))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-13))
    (:conerot-z (degrees 0))
    (:rotate-y (degrees 0))
    )
  )

(defpart 4123
  :init-specs ((:texture (dirtpuff01 level-default-sprite))
    (:num 1.0)
    (:scale-x (meters 3))
    (:rot-z (degrees 0) (degrees 360))
    (:scale-y :copy scale-x)
    (:r 128.0)
    (:g 128.0)
    (:b 200.0)
    (:a 20.0 10.0)
    (:vel-y (meters 2.6666667) (meters 0.33333334))
    (:scalevel-x (meters 0.06666667) (meters 0.06666667))
    (:scalevel-y :copy scalevel-x)
    (:fade-a -0.1 -0.2)
    (:friction 0.5)
    (:timer (seconds 1))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-13))
    (:conerot-z (degrees 0))
    (:rotate-y (degrees 0))
    )
  )

(defpartgroup group-drop-handcuff-light
  :id 1200
  :flags (sp0 sp4)
  :bounds (static-bspherem 0 0 0 64)
  :parts ((sp-item 4124 :flags (sp7) :period (seconds 0.335) :length (seconds 0.035))
    (sp-item 4125 :flags (sp6 sp7) :period (seconds 0.017) :length (seconds 0.017))
    )
  )

(defpart 4124
  :init-specs ((:texture (glow level-default-sprite))
    (:num 1.0)
    (:scale-x (meters 0.03))
    (:rot-x (degrees 4.5))
    (:scale-y :copy scale-x)
    (:r 128.0)
    (:g 128.0)
    (:b 128.0)
    (:a 128.0)
    (:omega (degrees 4511.25))
    (:timer (seconds 0.335))
    (:flags (sp-cpuinfo-flag-3 glow))
    (:func 'sparticle-track-root)
    (:rotate-y (degrees 0))
    )
  )

(defpart 4125
  :init-specs ((:texture (glow level-default-sprite))
    (:num 1.0)
    (:scale-x (meters 0.2))
    (:rot-x (degrees 4.5))
    (:scale-y :copy scale-x)
    (:r 128.0)
    (:g 0.0)
    (:b 0.0)
    (:a 30.0 20.0)
    (:omega (degrees 4511.25))
    (:timer (seconds 0.017))
    (:flags (sp-cpuinfo-flag-3 glow))
    (:func 'sparticle-track-root)
    (:rotate-y (degrees 0))
    )
  )

(defpartgroup group-drop-beacon-glow
  :id 1201
  :flags (sp0 sp4)
  :bounds (static-bspherem 0 0 0 64)
  :parts ((sp-item 4126 :flags (sp3 sp7)))
  )

(defpart 4126
  :init-specs ((:texture (glow level-default-sprite))
    (:num 1.0)
    (:scale-x (meters 0.2))
    (:rot-x (degrees 1.125))
    (:scale-y :copy scale-x)
    (:r 128.0)
    (:g 128.0)
    (:b 0.0)
    (:a 0.0)
    (:omega (degrees 4511.25))
    (:timer (seconds -0.005))
    (:flags (sp-cpuinfo-flag-3 glow))
    (:func 'sparticle-track-root)
    (:next-time (seconds 0.017))
    (:next-launcher 4127)
    )
  )

(defpart 4127
  :init-specs ((:a 0.0) (:next-time (seconds 0.667)) (:next-launcher 4128))
  )

(defpart 4128
  :init-specs ((:a 64.0) (:next-time (seconds 0.667)) (:next-launcher 4127))
  )

(defpartgroup group-hellcat-thrusters
  :id 1202
  :flags (sp0 sp4)
  :bounds (static-bspherem 0 0 0 640)
  :parts ((sp-item 4129 :flags (is-3d sp7) :period (seconds 0.017) :length (seconds 0.017))
    (sp-item 4130 :flags (sp7) :period (seconds 0.017) :length (seconds 0.017))
    )
  )

(defpart 4129
  :init-specs ((:texture (gun-enemy-muzzleflash level-default-sprite))
    (:num 4.0)
    (:z (meters -1))
    (:scale-x (meters 1) (meters 1))
    (:rot-x (degrees 180))
    (:rot-y (degrees 0))
    (:rot-z (degrees 90))
    (:scale-y (meters 3) (meters 1))
    (:r 10.0 20.0)
    (:g 200.0)
    (:b 255.0)
    (:a 40.0 10.0)
    (:timer (seconds 0.017))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3))
    (:conerot-z (degrees 0))
    (:rotate-x (degrees 90))
    (:rotate-y (degrees 0))
    )
  )

(defpart 4130
  :init-specs ((:texture (glow level-default-sprite))
    (:num 3.0)
    (:scale-x (meters 4) (meters 1))
    (:scale-y :copy scale-x)
    (:r 0.0)
    (:g 100.0 28.0)
    (:b 255.0)
    (:a 8.0 8.0)
    (:timer (seconds 0.017))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3))
    (:conerot-z (degrees 0))
    (:rotate-y (degrees 0))
    )
  )

(defpartgroup group-hellcat-thruster-trail
  :id 1203
  :flags (sp0 sp4)
  :bounds (static-bspherem 0 0 0 640)
  :parts ((sp-item 4131 :flags (sp7) :period (seconds 0.035) :length (seconds 0.035))
    (sp-item 4132 :flags (sp7) :period (seconds 0.035) :length (seconds 0.035))
    )
  )

(defpart 4131
  :init-specs ((:texture (dirtpuff01 level-default-sprite))
    (:num 1.0)
    (:scale-x (meters 1))
    (:rot-z (degrees 0) (degrees 360))
    (:scale-y :copy scale-x)
    (:r 120.0)
    (:g 120.0)
    (:b 255.0)
    (:a 30.0 10.0)
    (:vel-y (meters 0) (meters 0.33333334))
    (:scalevel-x (meters 0.006666667) (meters 0.006666667))
    (:scalevel-y :copy scalevel-x)
    (:fade-a -0.23333333 -0.46666667)
    (:friction 0.5)
    (:timer (seconds 1))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-13))
    (:conerot-z (degrees 0))
    (:rotate-y (degrees 0))
    )
  )

(defpart 4132
  :init-specs ((:texture (dirtpuff01 level-default-sprite))
    (:num 1.0)
    (:scale-x (meters 1))
    (:rot-z (degrees 0) (degrees 360))
    (:scale-y :copy scale-x)
    (:r 120.0)
    (:g 120.0)
    (:b 255.0)
    (:a 30.0 10.0)
    (:vel-y (meters 0.33333334) (meters 0.33333334))
    (:scalevel-x (meters 0.006666667) (meters 0.006666667))
    (:scalevel-y :copy scalevel-x)
    (:fade-a -0.13333334 -0.26666668)
    (:friction 0.5)
    (:timer (seconds 1))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-13))
    (:conerot-z (degrees 0))
    (:rotate-y (degrees 0))
    )
  )

(defpartgroup group-hellcat-thruster-little-trail
  :id 1204
  :flags (sp0 sp4)
  :bounds (static-bspherem 0 0 0 640)
  :parts ((sp-item 4133 :flags (sp7)))
  )

(defpart 4133
  :init-specs ((:texture (dirtpuff01 level-default-sprite))
    (:num 2.0)
    (:y (meters 0) (meters 5))
    (:scale-x (meters 4))
    (:rot-z (degrees 0) (degrees 360))
    (:scale-y :copy scale-x)
    (:r 120.0)
    (:g 120.0)
    (:b 255.0)
    (:a 30.0 10.0)
    (:vel-y (meters 0.016666668))
    (:scalevel-x (meters 0.013333334) (meters 0.0033333334))
    (:scalevel-y :copy scalevel-x)
    (:fade-a -0.06666667 -0.06666667)
    (:friction 0.99)
    (:timer (seconds 2))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-13))
    (:conerot-z (degrees 0))
    (:rotate-y (degrees 0))
    )
  )

(defpartgroup group-hellcat-thruster-fire-trail
  :id 1205
  :flags (sp0 sp4)
  :bounds (static-bspherem 0 0 0 640)
  :parts ((sp-item 4134 :flags (sp7)))
  )

(defpart 4134
  :init-specs ((:texture (explo-texture level-default-sprite))
    (:num 1.0)
    (:y (meters 0) (meters 5))
    (:scale-x (meters 6))
    (:rot-z (degrees 0) (degrees 360))
    (:scale-y :copy scale-x)
    (:r 255.0)
    (:g 80.0 20.0)
    (:b 0.0)
    (:a 100.0 30.0)
    (:vel-y (meters 0.016666668))
    (:scalevel-x (meters 0.02) (meters 0.0033333334))
    (:scalevel-y :copy scalevel-x)
    (:fade-a -0.21666667 -0.21666667)
    (:friction 0.99)
    (:timer (seconds 2))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3))
    (:conerot-z (degrees 0))
    (:rotate-y (degrees 0))
    )
  )

(defpartgroup group-hellcat-thruster-thick-trail
  :id 1206
  :flags (sp0 sp4)
  :bounds (static-bspherem 0 0 0 640)
  :parts ((sp-item 4135 :flags (sp7) :period (seconds 0.035) :length (seconds 0.035))
    (sp-item 4136 :flags (sp7) :period (seconds 0.035) :length (seconds 0.035))
    )
  )

(defpart 4135
  :init-specs ((:texture (dirtpuff01 level-default-sprite))
    (:num 1.0)
    (:scale-x (meters 4))
    (:scale-y (meters 1))
    (:r 120.0)
    (:g 120.0)
    (:b 255.0)
    (:a 30.0 10.0)
    (:vel-y (meters 0) (meters 0.33333334))
    (:scalevel-x (meters 0.006666667) (meters 0.006666667))
    (:scalevel-y :copy scalevel-x)
    (:fade-a -0.13333334 -0.26666668)
    (:friction 0.5)
    (:timer (seconds 1))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-13))
    (:func 'sparticle-2d-spline-align-instant)
    (:conerot-z (degrees 0))
    (:rotate-y (degrees 0))
    )
  )

(defpart 4136
  :init-specs ((:texture (dirtpuff01 level-default-sprite))
    (:num 1.0)
    (:scale-x (meters 4))
    (:scale-y (meters 1))
    (:r 120.0)
    (:g 120.0)
    (:b 255.0)
    (:a 60.0 10.0)
    (:vel-y (meters 0.33333334) (meters 0.33333334))
    (:scalevel-x (meters 0.006666667) (meters 0.006666667))
    (:scalevel-y :copy scalevel-x)
    (:fade-a -0.23333333 -0.46666667)
    (:friction 0.5)
    (:timer (seconds 1))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-13))
    (:func 'sparticle-2d-spline-align-instant)
    (:conerot-z (degrees 0))
    (:rotate-y (degrees 0))
    )
  )

(defpartgroup group-palace-hellcat-explode
  :id 1207
  :flags (sp0)
  :bounds (static-bspherem 0 0 0 2)
  :parts ((sp-item 4137 :period (seconds 32) :length (seconds 0.017))
    (sp-item 4138 :period (seconds 32) :length (seconds 0.167))
    (sp-item 4139 :period (seconds 32) :length (seconds 0.017))
    )
  )

(defpart 4137
  :init-specs ((:texture (glow-soft level-default-sprite))
    (:num 1.0)
    (:scale-x (meters 100))
    (:rot-x (degrees 225))
    (:scale-y :copy scale-x)
    (:r 255.0)
    (:g 128.0)
    (:b 40.0)
    (:a 32.0)
    (:fade-a -0.035555556)
    (:timer (seconds 3))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14 glow))
    (:userdata 40960.0)
    )
  )

(defpart 4138
  :init-specs ((:texture (explosion-edge level-default-sprite))
    (:num 10.0)
    (:scale-x (meters 10) (meters 5))
    (:rot-y (degrees 0) (degrees 360))
    (:scale-y :copy scale-x)
    (:r 128.0)
    (:g 80.0 20.0)
    (:b 30.0)
    (:a 255.0)
    (:vel-y (meters 0.01) (meters 0.1))
    (:scalevel-x (meters 0.033333335))
    (:scalevel-y :copy scalevel-x)
    (:fade-g -0.08888889)
    (:fade-b -0.033333335)
    (:fade-a -0.28333333 -0.28333333)
    (:friction 0.9 0.09)
    (:timer (seconds 3))
    (: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 4139
  :init-specs ((:texture (explo-texture level-default-sprite))
    (:num 5.0)
    (:scale-x (meters 20) (meters 10))
    (:rot-z (degrees 0) (degrees 360))
    (:scale-y :copy scale-x)
    (:r 128.0)
    (:g 80.0 20.0)
    (:b 30.0)
    (:a 255.0)
    (:vel-y (meters 0) (meters 0.06666667))
    (:scalevel-x (meters 0.033333335))
    (:scalevel-y :copy scalevel-x)
    (:fade-g -0.08888889)
    (:fade-b -0.033333335)
    (:fade-a -0.28333333 -0.28333333)
    (:friction 0.9)
    (:timer (seconds 3))
    (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14))
    (:conerot-x (degrees 0) (degrees 360))
    (:rotate-y (degrees 0) (degrees 3600))
    )
  )

(defpartgroup group-palace-missile
  :id 1208
  :flags (sp0 sp4)
  :bounds (static-bspherem 0 0 0 640)
  :parts ((sp-item 4141 :binding 4140)
    (sp-item 4140 :flags (sp2) :period (seconds 0.017) :length (seconds 0.017))
    (sp-item 4142)
    )
  )

(defpart 4141
  :init-specs ((:texture (starflash level-default-sprite))
    (:num 1.0)
    (:scale-x (meters 12) (meters 1))
    (:rot-x (degrees 22.5))
    (:rot-z (degrees 0) (degrees 360))
    (:scale-y :copy scale-x)
    (:r 255.0)
    (:g 200.0)
    (:b 128.0)
    (:a 128.0)
    (:timer (seconds 0.017))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
    )
  )

(defpart 4140
  :init-specs ((:texture (bigpuff level-default-sprite))
    (:num 1.0)
    (:scale-x (meters 10) (meters 10))
    (:rot-z (degrees 0) (degrees 360))
    (:scale-y :copy scale-x)
    (:r 90.0 30.0)
    (:g :copy r)
    (:b :copy r)
    (:a 64.0)
    (:scalevel-x (meters 0.06666667) (meters 0.06666667))
    (:scalevel-y :copy scalevel-x)
    (:fade-a -0.21333334)
    (:timer (seconds 1))
    (:flags (sp-cpuinfo-flag-2))
    )
  )

(defpart 4142
  :init-specs ((:texture (glow-soft level-default-sprite))
    (:num 1.0)
    (:scale-x (meters 30) (meters 2))
    (:rot-x (degrees 22.5))
    (:scale-y :copy scale-x)
    (:r 255.0)
    (:g 100.0 28.0)
    (:b 0.0)
    (:a 12.0 12.0)
    (:timer (seconds 0.017))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
    (:rotate-y (degrees 0))
    )
  )

(defpartgroup group-palace-missile-explode
  :id 1209
  :flags (sp0)
  :bounds (static-bspherem 0 0 0 2)
  :parts ((sp-item 4143 :period (seconds 32) :length (seconds 0.017))
    (sp-item 4144 :period (seconds 32) :length (seconds 0.167))
    (sp-item 4145 :period (seconds 32) :length (seconds 0.017))
    )
  )

(defpart 4143
  :init-specs ((:texture (glow-soft level-default-sprite))
    (:num 1.0)
    (:scale-x (meters 300))
    (:rot-x (degrees 225))
    (:scale-y :copy scale-x)
    (:r 255.0)
    (:g 128.0)
    (:b 40.0)
    (:a 32.0)
    (:fade-a -0.035555556)
    (:timer (seconds 3))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14 glow))
    (:userdata 40960.0)
    )
  )

(defpart 4144
  :init-specs ((:texture (explosion-edge level-default-sprite))
    (:num 10.0)
    (:scale-x (meters 30) (meters 20))
    (:rot-y (degrees 0) (degrees 360))
    (:scale-y :copy scale-x)
    (:r 128.0)
    (:g 80.0 20.0)
    (:b 30.0)
    (:a 255.0)
    (:vel-y (meters 0.033333335) (meters 0.26666668))
    (:scalevel-x (meters 0.06666667))
    (:scalevel-y :copy scalevel-x)
    (:fade-g -0.08888889)
    (:fade-b -0.033333335)
    (:fade-a -0.28333333 -0.28333333)
    (:friction 0.9 0.09)
    (:timer (seconds 3))
    (: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 4145
  :init-specs ((:texture (explo-texture level-default-sprite))
    (:num 5.0)
    (:scale-x (meters 60) (meters 20))
    (:rot-z (degrees 0) (degrees 360))
    (:scale-y :copy scale-x)
    (:r 128.0)
    (:g 80.0 20.0)
    (:b 30.0)
    (:a 255.0)
    (:vel-y (meters 0) (meters 0.2))
    (:scalevel-x (meters 0.06666667))
    (:scalevel-y :copy scalevel-x)
    (:fade-g -0.08888889)
    (:fade-b -0.033333335)
    (:fade-a -0.28333333 -0.28333333)
    (:friction 0.9)
    (:timer (seconds 3))
    (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14))
    (:conerot-x (degrees 0) (degrees 360))
    (:rotate-y (degrees 0) (degrees 3600))
    )
  )

(defpartgroup group-palace-small-explode
  :id 1210
  :flags (sp0)
  :bounds (static-bspherem 0 0 0 2)
  :parts ((sp-item 4146 :period (seconds 32) :length (seconds 0.017))
    (sp-item 4147 :period (seconds 32) :length (seconds 0.167))
    (sp-item 4148 :period (seconds 32) :length (seconds 0.017))
    )
  )

(defpart 4146
  :init-specs ((:texture (glow-soft level-default-sprite))
    (:num 1.0)
    (:scale-x (meters 300))
    (:rot-x (degrees 225))
    (:scale-y :copy scale-x)
    (:r 255.0)
    (:g 128.0)
    (:b 40.0)
    (:a 32.0)
    (:fade-a -0.035555556)
    (:timer (seconds 3))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14 glow))
    (:userdata 40960.0)
    )
  )

(defpart 4147
  :init-specs ((:texture (explosion-edge level-default-sprite))
    (:num 3.0)
    (:scale-x (meters 30) (meters 20))
    (:rot-y (degrees 0) (degrees 360))
    (:scale-y :copy scale-x)
    (:r 128.0)
    (:g 80.0 20.0)
    (:b 30.0)
    (:a 255.0)
    (:vel-y (meters 0.033333335) (meters 0.26666668))
    (:scalevel-x (meters 0.06666667))
    (:scalevel-y :copy scalevel-x)
    (:fade-g -0.08888889)
    (:fade-b -0.033333335)
    (:fade-a -0.28333333 -0.28333333)
    (:friction 0.9 0.09)
    (:timer (seconds 3))
    (: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 4148
  :init-specs ((:texture (explo-texture level-default-sprite))
    (:num 3.0)
    (:scale-x (meters 60) (meters 20))
    (:rot-z (degrees 0) (degrees 360))
    (:scale-y :copy scale-x)
    (:r 128.0)
    (:g 80.0 20.0)
    (:b 30.0)
    (:a 255.0)
    (:vel-y (meters 0) (meters 0.2))
    (:scalevel-x (meters 0.06666667))
    (:scalevel-y :copy scalevel-x)
    (:fade-g -0.08888889)
    (:fade-b -0.033333335)
    (:fade-a -0.28333333 -0.28333333)
    (:friction 0.9)
    (:timer (seconds 3))
    (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14))
    (:conerot-x (degrees 0) (degrees 360))
    (:rotate-y (degrees 0) (degrees 3600))
    )
  )

(defpartgroup group-palace-huge-explosion
  :id 1211
  :flags (sp0)
  :bounds (static-bspherem 0 0 0 2)
  :parts ((sp-item 4150 :flags (sp3))
    (sp-item 4151 :period (seconds 32) :length (seconds 0.167))
    (sp-item 4152 :period (seconds 32) :length (seconds 0.017))
    (sp-item 4153 :flags (sp3) :binding 4149)
    (sp-item 4153 :flags (sp3) :binding 4149)
    (sp-item 4153 :flags (sp3) :binding 4149)
    (sp-item 4153 :flags (sp3) :binding 4149)
    (sp-item 4153 :flags (sp3) :binding 4149)
    (sp-item 4149 :flags (sp2) :length (seconds 2))
    (sp-item 4149 :flags (sp2) :length (seconds 2))
    (sp-item 4149 :flags (sp2) :length (seconds 2))
    (sp-item 4149 :flags (sp2) :length (seconds 2))
    (sp-item 4149 :flags (sp2) :length (seconds 2))
    )
  )

(defpart 4150
  :init-specs ((:texture (glow-soft level-default-sprite))
    (:num 1.0)
    (:y (meters 100))
    (:scale-x (meters 800))
    (:rot-x (degrees 2250))
    (:scale-y :copy scale-x)
    (:r 255.0)
    (:g 128.0)
    (:b 40.0)
    (:a 64.0)
    (:fade-a -0.035555556)
    (:timer (seconds 6))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14 glow))
    (:userdata 40960.0)
    )
  )

(defpart 4151
  :init-specs ((:texture (explosion-edge level-default-sprite))
    (:num 10.0)
    (:scale-x (meters 60) (meters 40))
    (:rot-y (degrees 0) (degrees 360))
    (:scale-y :copy scale-x)
    (:r 128.0)
    (:g 80.0 20.0)
    (:b 30.0)
    (:a 255.0)
    (:vel-y (meters 0.06666667) (meters 0.53333336))
    (:scalevel-x (meters 0.06666667))
    (:scalevel-y :copy scalevel-x)
    (:fade-g -0.044444446)
    (:fade-b -0.016666668)
    (:fade-a -0.14166667 -0.14166667)
    (:friction 0.9 0.09)
    (:timer (seconds 6))
    (: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 4152
  :init-specs ((:texture (explo-texture level-default-sprite))
    (:num 5.0)
    (:scale-x (meters 120) (meters 80))
    (:rot-z (degrees 0) (degrees 360))
    (:scale-y :copy scale-x)
    (:r 128.0)
    (:g 80.0 20.0)
    (:b 30.0)
    (:a 255.0)
    (:vel-y (meters 0) (meters 0.6666667))
    (:scalevel-x (meters 0.13333334))
    (:scalevel-y :copy scalevel-x)
    (:fade-g -0.044444446)
    (:fade-b -0.016666668)
    (:fade-a -0.14166667 -0.14166667)
    (:friction 0.93)
    (:timer (seconds 6))
    (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14))
    (:conerot-x (degrees 0) (degrees 360))
    (:rotate-y (degrees 0) (degrees 3600))
    )
  )

(defpart 4153
  :init-specs ((:texture (tinyspeck level-default-sprite))
    (:num 1.0)
    (:scale-x (meters 120))
    (:scale-y :copy scale-x)
    (:r 200.0)
    (:g 80.0)
    (:b 40.0)
    (:a 128.0)
    (:vel-y (meters 0.33333334) (meters 1.3333334))
    (:scalevel-x (meters -0.16666667) (meters -0.033333335))
    (:scalevel-y :copy scalevel-x)
    (:accel-y (meters -0.0033333334))
    (:friction 0.991 0.008)
    (:timer (seconds 10))
    (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14))
    (:conerot-x (degrees 0) (degrees 90))
    (:rotate-y (degrees 70) (degrees 40))
    )
  )

(defpart 4149
  :init-specs ((:texture (explosion-nebula level-default-sprite))
    (:birth-func 'birth-func-dust-inherit-scaler)
    (:num 1.0)
    (:scale-x (meters 0.00024414062) (meters 0.00012207031))
    (:rot-z (degrees 0) (degrees 3600))
    (:scale-y :copy scale-x)
    (:r 128.0)
    (:g 80.0 20.0)
    (:b 30.0)
    (:a 64.0)
    (:scalevel-x (meters 0.033333335))
    (:scalevel-y :copy scalevel-x)
    (:fade-g -0.044444446)
    (:fade-b -0.016666668)
    (:accel-y (meters 0) (meters -0.001))
    (:timer (seconds 6))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14))
    )
  )

(defpartgroup group-palace-smoke-plume :id 1212 :bounds (static-bspherem 0 0 0 640) :parts ((sp-item 4154)))

(defpart 4154
  :init-specs ((:texture (topglow level-default-sprite))
    (:num 0.2)
    (:x (meters -6) (meters 12))
    (:scale-x (meters 30) (meters 30))
    (:rot-z (degrees -20) (degrees 40))
    (:scale-y :copy scale-x)
    (:r 0.0 128.0)
    (:g :copy r)
    (:b :copy r)
    (:a 32.0 32.0)
    (:vel-x (meters 0.02) (meters 0.02))
    (:scalevel-x (meters 0.1) (meters 0.033333335))
    (:scalevel-y :copy scalevel-x)
    (:fade-a -0.021333333 -0.021333333)
    (:accel-y (meters 0.0033333334))
    (:friction 0.99)
    (:timer (seconds 10))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-13))
    (:rotate-y (degrees 0) (degrees 3600))
    )
  )

(defun birth-func-dust-inherit-scaler ((arg0 sparticle-system)
                              (arg1 sparticle-cpuinfo)
                              (arg2 sparticle-launchinfo)
                              (arg3 sparticle-launcher)
                              (arg4 sparticle-launch-state)
                              )
  (let ((v1-1 (-> arg4 sprite sprite)))
    (set! (-> arg2 launchrot w) (* (-> v1-1 x-y-z-sx w) (-> arg2 launchrot w)))
    (set! (-> arg2 conerot w) (* (-> v1-1 flag-rot-sy w) (-> arg2 conerot w)))
    )
  0
  (none)
  )

(defpartgroup group-palace-dust-cloud-first
  :id 1213
  :linger-duration (seconds 3)
  :flags (sp0)
  :bounds (static-bspherem 0 0 0 64)
  :parts ((sp-item 4155 :period (seconds 32) :length (seconds 0.067))
    (sp-item 4156 :period (seconds 32) :length (seconds 0.067))
    )
  )

(defpart 4155
  :init-specs ((:texture (edge-cloud level-default-sprite))
    (:num 20.0)
    (:x (meters 0))
    (:y (meters -10))
    (:z (meters 0))
    (:scale-x (meters 10))
    (:rot-z (degrees -80) (degrees 20))
    (:scale-y :copy scale-x)
    (:r 64.0 128.0)
    (:g :copy r)
    (:b :copy r)
    (:a 64.0)
    (:vel-x (meters 0.5) (meters 0.33333334))
    (:scalevel-x (meters 0.033333335) (meters 0.06666667))
    (:rotvel-z (degrees -0.13333334) (degrees 0.26666668))
    (:scalevel-y :copy scalevel-x)
    (:accel-y (meters 0) (meters 0.00033333333))
    (:friction 0.955 0.005)
    (:timer (seconds 5))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-13 left-multiply-quat))
    (:next-time (seconds 0.017))
    (:next-launcher 4157)
    (:conerot-z (degrees -8) (degrees 10))
    (:rotate-y (degrees 40) (degrees 180))
    )
  )

(defpart 4157
  :init-specs ((:fade-g -1.0) (:fade-b -2.0) (:next-time (seconds 0.017)) (:next-launcher 4158))
  )

(defpart 4158
  :init-specs ((:fade-g 0.0) (:fade-b 0.0) (:next-time (seconds 0.917)) (:next-launcher 4159))
  )

(defpart 4159
  :init-specs ((:scalevel-x (meters 0.016666668)) (:scalevel-y :copy scalevel-x) (:friction 0.0))
  )

(defpart 4156
  :init-specs ((:texture (rockbit01 level-default-sprite))
    (:birth-func 'birth-func-texture-group)
    (:num 20.0)
    (:x (meters -60) (meters 120))
    (:scale-x (meters 1) (meters 2))
    (:rot-z (degrees 0) (degrees 360))
    (:scale-y (meters 1) (meters 2))
    (:r 200.0 55.0)
    (:g :copy r)
    (:b :copy r)
    (:a 128.0)
    (:vel-y (meters 0.033333335) (meters 0.16666667))
    (:scalevel-x (meters 0.06666667))
    (:rotvel-z (degrees -1.3333334) (degrees 2.6666667))
    (:scalevel-y :copy scalevel-x)
    (:accel-y (meters -0.0016666667))
    (:timer (seconds 5))
    (:flags (aux-list sp-cpuinfo-flag-13 launch-along-z left-multiply-quat))
    (:userdata :data (new 'static 'boxed-array :type int32 20 1 0 #x408b00 #x40a200 #x40a600 #x40aa00 #x400600))
    (:next-time (seconds 0.017))
    (:next-launcher 4160)
    (:conerot-x (degrees -30) (degrees 60))
    (:rotate-y (degrees 0) (degrees 3600))
    )
  )

(defpart 4160
  :init-specs ((:scalevel-x (meters 0))
    (:scalevel-y :copy scalevel-x)
    (:fade-g -1.0)
    (:fade-b -2.0)
    (:next-time (seconds 0.017))
    (:next-launcher 4161)
    )
  )

(defpart 4161
  :init-specs ((:fade-g 0.0) (:fade-b 0.0))
  )

(defpartgroup group-palace-dust-cloud-big
  :id 1214
  :linger-duration (seconds 3)
  :flags (sp0)
  :bounds (static-bspherem 0 0 0 64)
  :parts ((sp-item 4162 :period (seconds 32) :length (seconds 0.5)))
  )

(defpart 4162
  :init-specs ((:texture (edge-cloud level-default-sprite))
    (:num 0.5)
    (:scale-x (meters 1))
    (:rot-z (degrees 0) (degrees 360))
    (:scale-y :copy scale-x)
    (:r 64.0 128.0)
    (:g :copy r)
    (:b :copy r)
    (:a 0.0)
    (:vel-y (meters 0.33333334) (meters 0.6666667))
    (:scalevel-x (meters 1) (meters 1))
    (:scalevel-y :copy scalevel-x)
    (:fade-a 0.64 1.28)
    (:friction 0.97)
    (:timer (seconds 10))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-13))
    (:next-time (seconds 0.017))
    (:next-launcher 4163)
    (:conerot-x (degrees -30) (degrees 60))
    )
  )

(defpart 4163
  :init-specs ((:fade-g -1.0) (:fade-b -2.0) (:next-time (seconds 0.017)) (:next-launcher 4164))
  )

(defpart 4164
  :init-specs ((:fade-g 0.0) (:fade-b 0.0) (:next-time (seconds 0.167)) (:next-launcher 4165))
  )

(defpart 4165
  :init-specs ((:scalevel-x (meters 0.06666667)) (:scalevel-y :copy scalevel-x) (:fade-a -0.021333333 -0.021333333))
  )

(defpartgroup group-palace-flak
  :id 1215
  :flags (sp0)
  :bounds (static-bspherem 0 0 0 2)
  :parts ((sp-item 4166 :period (seconds 32) :length (seconds 0.017))
    (sp-item 4167 :period (seconds 32) :length (seconds 0.017))
    (sp-item 4168 :period (seconds 32) :length (seconds 0.035))
    (sp-item 4169 :period (seconds 32) :length (seconds 0.017))
    )
  )

(defpart 4166
  :init-specs ((:texture (starflash level-default-sprite))
    (:num 1.0)
    (:scale-x (meters 15))
    (:rot-x (degrees 225))
    (:rot-z (degrees 0) (degrees 360))
    (:scale-y :copy scale-x)
    (:r 255.0)
    (:g 180.0)
    (:b 150.0)
    (:a 255.0)
    (:scalevel-x (meters -0.3))
    (:scalevel-y :copy scalevel-x)
    (:fade-a -8.5)
    (:timer (seconds 0.1))
    (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14 glow))
    (:userdata 40960.0)
    )
  )

(defpart 4167
  :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 40.0)
    (:a 32.0)
    (:fade-a -0.64)
    (:timer (seconds 0.167))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14 glow))
    (:userdata 40960.0)
    )
  )

(defpart 4168
  :init-specs ((:texture (topglow level-default-sprite))
    (:num 10.0)
    (:scale-x (meters 9) (meters 6))
    (: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.16666667) (meters 0.6666667))
    (:scalevel-x (meters 0.06666667))
    (:scalevel-y :copy scalevel-x)
    (:fade-a -0.14222223 -0.14222223)
    (:accel-x (meters 0.016666668))
    (:friction 0.88)
    (:timer (seconds 3))
    (:flags (sp-cpuinfo-flag-0 launch-along-z))
    (:conerot-x (degrees 0) (degrees 360))
    (:rotate-y (degrees 0) (degrees 3600))
    )
  )

(defpart 4170
  :init-specs ((:vel-x (meters 0.1)) (:friction 1.0))
  )

(defpart 4169
  :init-specs ((:texture (bigpuff level-default-sprite))
    (:num 3.0)
    (:scale-x (meters 10) (meters 50))
    (:rot-z (degrees 0) (degrees 360))
    (:scale-y :copy scale-x)
    (:r 0.0 10.0)
    (:g :copy r)
    (:b :copy r)
    (:a 128.0)
    (:vel-y (meters 0) (meters 0.33333334))
    (:scalevel-x (meters 0.02))
    (:scalevel-y :copy scalevel-x)
    (:fade-a -0.128)
    (:accel-x (meters 0.016666668))
    (:friction 0.88)
    (:timer (seconds 3.335))
    (:flags (launch-along-z))
    (:conerot-x (degrees 0) (degrees 360))
    (:rotate-y (degrees 0) (degrees 3600))
    )
  )

(defpartgroup group-palace-tracer-fire
  :id 1216
  :duration (seconds 1)
  :linger-duration (seconds 1)
  :flags (sp0 sp4)
  :bounds (static-bspherem 0 0 0 640)
  :parts ((sp-item 4171 :flags (sp7) :period (seconds 5) :length (seconds 1)))
  )

(defpart 4171
  :init-specs ((:texture (enemy-tracer intpfall-sprite))
    (:num 0.0 0.3)
    (:scale-x (meters 50))
    (:rot-x 4)
    (:scale-y (meters 5) (meters 5))
    (:r 128.0)
    (:g 128.0)
    (:b 128.0)
    (:a 100.0 60.0)
    (:omega (degrees 0.7875) (degrees 0.1125))
    (:vel-y (meters 0.2) (meters 0.06666667))
    (:timer (seconds 3) (seconds 1.997))
    (:flags (sp-cpuinfo-flag-3 sp-cpuinfo-flag-14))
    (:func 'sparticle-motion-blur)
    (:conerot-x (degrees -30) (degrees 60))
    )
  )

(defpartgroup group-ctypal-palace-break-explode-small
  :id 1217
  :linger-duration (seconds 3)
  :flags (sp0)
  :bounds (static-bspherem 0 0 0 64)
  :parts ((sp-item 249))
  )

(defpartgroup group-ctypal-palace-break-explode-fountain
  :id 1218
  :linger-duration (seconds 3)
  :flags (sp0)
  :bounds (static-bspherem 0 0 0 64)
  :parts ((sp-item 249))
  )

(defpartgroup group-ctypal-palace-break-explode-medium
  :id 1219
  :linger-duration (seconds 3)
  :flags (sp0)
  :bounds (static-bspherem 0 0 0 64)
  :parts ((sp-item 249))
  )

(defpartgroup group-ctypal-palace-break-explode-large
  :id 1220
  :linger-duration (seconds 3)
  :flags (sp0)
  :bounds (static-bspherem 0 0 0 64)
  :parts ((sp-item 249))
  )

(defpartgroup group-ctypal-support-break-trailer
  :id 1221
  :duration (seconds 1)
  :linger-duration (seconds 3)
  :flags (sp0 sp4)
  :bounds (static-bspherem 0 0 0 60)
  :parts ((sp-item 4172 :flags (sp7)))
  )

(defpart 4172
  :init-specs ((:texture (dirtpuff01 level-default-sprite))
    (:num 1.0)
    (:y (meters -40) (meters 80))
    (:scale-x (meters 20) (meters 20))
    (:rot-z (degrees 0) (degrees 360))
    (:scale-y :copy scale-x)
    (:r 64.0 128.0)
    (:g :copy r)
    (:b :copy g)
    (:a 0.0)
    (:scalevel-x (meters 0.026666667) (meters 0.04))
    (:scalevel-y :copy scalevel-x)
    (:fade-a 1.28)
    (:accel-y (meters -0.000033333334))
    (:friction 0.98)
    (:timer (seconds 2))
    (:flags (sp-cpuinfo-flag-2 launch-along-z left-multiply-quat))
    (:next-time (seconds 0.167))
    (:next-launcher 4173)
    (:rotate-y (degrees 0))
    )
  )

(defpart 4173
  :init-specs ((:fade-a -0.11636364 -0.11636364))
  )

(defpartgroup group-ctypal-palace-break-trailer-small
  :id 1222
  :bounds (static-bspherem 0 0 0 15)
  :parts ((sp-item 4174))
  )

(defpart 4174
  :init-specs ((:texture (bigpuff level-default-sprite))
    (:num 0.3)
    (:y (meters 0) (meters -10))
    (:scale-x (meters 12) (meters 12))
    (:rot-z (degrees 0) (degrees 360))
    (:scale-y :copy scale-x)
    (:r 64.0 128.0)
    (:g :copy r)
    (:b :copy g)
    (:a 0.0)
    (:vel-y (meters 0) (meters 0.05))
    (:scalevel-x (meters 0.026666667) (meters 0.04))
    (:rotvel-z (degrees -0.3) (degrees 0.6))
    (:scalevel-y :copy scalevel-x)
    (:fade-a 0.16 0.16)
    (:accel-y (meters -0.00025) (meters -0.0001))
    (:friction 0.98)
    (:timer (seconds 2))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-13))
    (:next-time (seconds 0.5))
    (:next-launcher 4175)
    (:conerot-x (degrees 0) (degrees 3600))
    (:conerot-y (degrees 0) (degrees 3600))
    (:conerot-radius (meters 0) (meters 16))
    )
  )

(defpart 4176
  :init-specs ((:fade-a -0.10666667 -0.10666667))
  )

(defpartgroup group-ctypal-palace-break-trailer-medium
  :id 1223
  :bounds (static-bspherem 0 0 0 15)
  :parts ((sp-item 249))
  )

(defpart 4177
  :init-specs ((:texture (bigpuff level-default-sprite))
    (:num 0.5 0.6)
    (:y (meters 0) (meters -10))
    (:scale-x (meters 24) (meters 24))
    (:rot-z (degrees 0) (degrees 3600))
    (:scale-y :copy scale-x)
    (:r 64.0 128.0)
    (:g :copy r)
    (:b :copy g)
    (:a 0.0)
    (:vel-y (meters 0) (meters 0.05))
    (:scalevel-x (meters 0.053333335) (meters 0.08))
    (:rotvel-z (degrees -0.3) (degrees 0.6))
    (:scalevel-y :copy scalevel-x)
    (:fade-a 0.16 0.16)
    (:accel-y (meters -0.00025) (meters -0.0001))
    (:friction 0.98)
    (:timer (seconds 4))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-13))
    (:next-time (seconds 0.5))
    (:next-launcher 4175)
    (:conerot-x (degrees 0) (degrees 3600))
    (:conerot-y (degrees 0) (degrees 3600))
    (:conerot-radius (meters 0) (meters 16))
    )
  )

(defpart 4178
  :init-specs ((:fade-a -0.04 -0.04))
  )

(defpartgroup group-ctypal-palace-break-trailer-large
  :id 1224
  :bounds (static-bspherem 0 0 0 15)
  :parts ((sp-item 249))
  )

(defpart 4179
  :init-specs ((:texture (bigpuff level-default-sprite))
    (:num 0.5 0.6)
    (:scale-x (meters 80) (meters 80))
    (:rot-z (degrees 0) (degrees 3600))
    (:scale-y :copy scale-x)
    (:r 64.0 128.0)
    (:g :copy r)
    (:b :copy g)
    (:a 0.0)
    (:vel-y (meters 0.013333334) (meters 0.06666667))
    (:scalevel-x (meters 0.12) (meters 0.16))
    (:rotvel-z (degrees -0.3) (degrees 0.6))
    (:scalevel-y :copy scalevel-x)
    (:fade-a 0.16 0.16)
    (:accel-y (meters -0.00025) (meters -0.0001))
    (:friction 0.98)
    (:timer (seconds 4))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-13))
    (:next-time (seconds 0.5))
    (:next-launcher 4175)
    (:conerot-x (degrees 0) (degrees 3600))
    (:conerot-y (degrees 0) (degrees 3600))
    (:conerot-radius (meters 0) (meters 16))
    )
  )

(defpart 4175
  :init-specs ((:fade-a -0.053333335 -0.053333335))
  )

(defpartgroup group-drop-desert-heathaze
  :id 1225
  :flags (sp0 sp4)
  :bounds (static-bspherem 0 0 0 1)
  :parts ((sp-item 4180 :falloff-to (meters 50) :flags (sp7)))
  )

(defpart 4180
  :init-specs ((:num 1.0 1.0)
    (:x (meters -12) (meters 24))
    (:y (meters -2) (meters 2))
    (:z (meters -20))
    (:rot-x 8)
    (:r 24576.0)
    (:g 12288.0)
    (:b 12288.0)
    (:vel-y (meters 0.006666667) (meters 0.006666667))
    (:fade-b 3.4133334)
    (:timer (seconds 2))
    (:flags (distort launch-along-z))
    (:next-time (seconds 1))
    (:next-launcher 4181)
    (:rotate-y (degrees 0))
    )
  )

(defpartgroup group-lost-desert-heathaze
  :id 1226
  :flags (sp0 sp4)
  :bounds (static-bspherem 0 0 0 1)
  :parts ((sp-item 4182 :falloff-to (meters 50) :flags (sp7)))
  )

(defpart 4182
  :init-specs ((:num 2.0)
    (:x (meters -2) (meters 4))
    (:y (meters 0) (meters 2))
    (:z (meters -2) (meters 4))
    (:scale-x (meters 0.5))
    (:scale-y :copy scale-x)
    (:accel-y (meters 0.00066666666))
    (:friction 0.75)
    (:timer (seconds 1.5) (seconds 1.497))
    )
  )

(defpartgroup group-tired-desert-heathaze
  :id 1227
  :flags (sp0 sp4)
  :bounds (static-bspherem 0 0 0 100)
  :parts ((sp-item 4183 :flags (sp7)))
  )

(defpart 4183
  :init-specs ((:num 1.0)
    (:x (meters 0))
    (:y (meters 0))
    (:z (meters -70) (meters 140))
    (:rot-x 8)
    (:r 24576.0)
    (:g 12288.0)
    (:b 12288.0)
    (:fade-b 3.4133334)
    (:accel-y (meters 0.005) (meters 0.006666667))
    (:accel-z (meters -0.0026666666) (meters 0.0053333333))
    (:friction 0.8)
    (:timer (seconds 2))
    (:flags (distort launch-along-z))
    (:next-time (seconds 1))
    (:next-launcher 4181)
    (:rotate-y (degrees 0))
    )
  )

(defpart 4181
  :init-specs ((:fade-b -3.4133334))
  )

(defpartgroup group-desert-impact-dust :id 1228 :bounds (static-bspherem 0 0 0 10) :parts ((sp-item 4184)))

(defpart 4184
  :init-specs ((:texture (dirtpuff01 level-default-sprite))
    (:birth-func 'birth-func-curve)
    (:num 6.0)
    (:scale-x (meters 1))
    (:rot-z (degrees -90))
    (:scale-y :copy scale-x)
    (:r 128.0)
    (:g 128.0)
    (:b 128.0)
    (:a 128.0)
    (:vel-z (meters 0.026666667) (meters 0.01))
    (:rotvel-z (degrees -0.06666667) (degrees 0.13333334))
    (:accel-y (meters 0.00016666666))
    (:friction 0.8)
    (:timer (seconds 0.005))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-13))
    (:userdata 0.0)
    (:func 'live-func-curve)
    (:conerot-x (degrees 0) (degrees 5))
    (:rotate-y (degrees 0) (degrees 3600))
    )
  )

(if #t
    (set! *range-color-desert-impact-dust* (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 190.0 :y 140.0 :z 80.0 :w 128.0)
                                               (new 'static 'vector :x 130.0 :y 100.0 :z 60.0 :w 128.0)
                                               (new 'static 'vector :x 130.0 :y 100.0 :z 60.0 :w 128.0)
                                               (new 'static 'vector :x 130.0 :y 100.0 :z 60.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-alpha-desert-impact-dust* (new 'static 'curve2d-fast
                                             :xs (new 'static 'vector :y -1.0 :z -2.0 :w -3.0)
                                             :ys (new 'static 'vector :x 64.0 :y 128.0 :z 129.0 :w 130.0)
                                             :one-over-x-deltas (new 'static 'vector :x 64.0 :y 1.0 :z 1.0 :w 1.0)
                                             )
          )
    )

(if #t
    (set! *range-scale-desert-impact-dust-x* (new 'static 'curve2d-fast
                                               :xs (new 'static 'vector :y -1.0 :z -2.0 :w -3.0)
                                               :ys (new 'static 'vector :x 0.2 :y 0.4 :z 1.4 :w 2.4)
                                               :one-over-x-deltas (new 'static 'vector :x 0.2 :y 1.0 :z 1.0000001 :w 1.0)
                                               )
          )
    )

(if #t
    (set! *range-scale-desert-impact-dust-y* (new 'static 'curve2d-fast
                                               :xs (new 'static 'vector :y -1.0 :z -2.0 :w -3.0)
                                               :ys (new 'static 'vector :x 0.2 :y 0.4 :z 1.4 :w 2.4)
                                               :one-over-x-deltas (new 'static 'vector :x 0.2 :y 1.0 :z 1.0000001 :w 1.0)
                                               )
          )
    )

(if #t
    (set! *curve-alpha-desert-impact-dust* (new 'static 'curve2d-fast
                                             :xs (new 'static 'vector :y -0.1 :z -1.0 :w -2.0)
                                             :ys (new 'static 'vector :y 1.0 :w 1.0)
                                             :one-over-x-deltas (new 'static 'vector :x 10.0 :y -1.1111112 :z 1.0 :w 1.0)
                                             )
          )
    )

(if #t
    (set! *curve-desert-impact-dust-x* (new 'static 'curve2d-fast
                                         :xs (new 'static 'vector :y -0.2 :z -1.0 :w -2.0)
                                         :ys (new 'static 'vector :x 1.0 :y 2.0 :z 4.0 :w 5.0)
                                         :one-over-x-deltas (new 'static 'vector :x 5.0 :y 2.5 :z 1.0 :w 1.0)
                                         )
          )
    )

(if #t
    (set! *curve-desert-impact-dust-y* (new 'static 'curve2d-fast
                                         :xs (new 'static 'vector :y -0.2 :z -1.0 :w -2.0)
                                         :ys (new 'static 'vector :x 1.0 :y 2.0 :z 4.0 :w 5.0)
                                         :one-over-x-deltas (new 'static 'vector :x 5.0 :y 2.5 :z 1.0 :w 1.0)
                                         )
          )
    )

(define *part-desert-impact-dust-curve-settings* (new 'static 'particle-curve-settings
                                                   :lifetime-base (seconds 0.5)
                                                   :lifetime-offset (seconds 1)
                                                   :flags (particle-curve-flags pcf0)
                                                   )
        )

(set! (-> *part-id-table* 4184 init-specs 16 initial-valuef)
      (the-as float *part-desert-impact-dust-curve-settings*)
      )

(set! (-> *part-desert-impact-dust-curve-settings* color-start) *range-color-desert-impact-dust*)

(set! (-> *part-desert-impact-dust-curve-settings* alpha-start) *range-alpha-desert-impact-dust*)

(set! (-> *part-desert-impact-dust-curve-settings* scale-x-start) *range-scale-desert-impact-dust-x*)

(set! (-> *part-desert-impact-dust-curve-settings* scale-y-start) *range-scale-desert-impact-dust-y*)

(set! (-> *part-desert-impact-dust-curve-settings* r-scalar) #f)

(set! (-> *part-desert-impact-dust-curve-settings* g-scalar) #f)

(set! (-> *part-desert-impact-dust-curve-settings* b-scalar) #f)

(set! (-> *part-desert-impact-dust-curve-settings* a-scalar) *curve-alpha-desert-impact-dust*)

(set! (-> *part-desert-impact-dust-curve-settings* scale-x-scalar) *curve-desert-impact-dust-x*)

(set! (-> *part-desert-impact-dust-curve-settings* scale-y-scalar) *curve-desert-impact-dust-y*)

(defpartgroup group-desert-impact-dust-blow
  :id 1229
  :bounds (static-bspherem 0 0 0 10)
  :parts ((sp-item 4185))
  )

(defpart 4185
  :init-specs ((:texture (dirtpuff01 level-default-sprite))
    (:birth-func 'birth-func-curve)
    (:num 6.0)
    (:y (meters 0.2))
    (:scale-x (meters 1))
    (:rot-z (degrees -90))
    (:scale-y :copy scale-x)
    (:r 128.0)
    (:g 128.0)
    (:b 128.0)
    (:a 128.0)
    (:vel-z (meters 0.026666667) (meters 0.06666667))
    (:rotvel-z (degrees -0.06666667) (degrees 0.13333334))
    (:accel-z (meters -0.006666667))
    (:friction 0.8)
    (:timer (seconds 0.005))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-13 launch-along-z))
    (:userdata 0.0)
    (:func 'live-func-curve)
    (:conerot-x (degrees 0) (degrees 5))
    (:rotate-y (degrees 0) (degrees 3600))
    )
  )

(if #t
    (set! *range-alpha-desert-impact-dust-blow* (new 'static 'curve2d-fast
                                                  :xs (new 'static 'vector :y -1.0 :z -2.0 :w -3.0)
                                                  :ys (new 'static 'vector :x 32.0 :y 64.0 :z 65.0 :w 66.0)
                                                  :one-over-x-deltas (new 'static 'vector :x 32.0 :y 1.0 :z 1.0 :w 1.0)
                                                  )
          )
    )

(if #t
    (set! *range-scale-desert-impact-dust-blow-x* (new 'static 'curve2d-fast
                                                    :xs (new 'static 'vector :y -1.0 :z -2.0 :w -3.0)
                                                    :ys (new 'static 'vector :x 0.2 :y 0.8 :z 1.8 :w 2.8)
                                                    :one-over-x-deltas (new 'static 'vector :x 0.6 :y 0.99999994 :z 1.0 :w 1.0)
                                                    )
          )
    )

(if #t
    (set! *range-scale-desert-impact-dust-blow-y* (new 'static 'curve2d-fast
                                                    :xs (new 'static 'vector :y -1.0 :z -2.0 :w -3.0)
                                                    :ys (new 'static 'vector :x 0.2 :y 0.8 :z 1.8 :w 2.8)
                                                    :one-over-x-deltas (new 'static 'vector :x 0.6 :y 0.99999994 :z 1.0 :w 1.0)
                                                    )
          )
    )

(if #t
    (set! *curve-alpha-desert-impact-dust-blow* (new 'static 'curve2d-fast
                                                  :xs (new 'static 'vector :y -0.1 :z -1.0 :w -2.0)
                                                  :ys (new 'static 'vector :y 1.0 :w 1.0)
                                                  :one-over-x-deltas (new 'static 'vector :x 10.0 :y -1.1111112 :z 1.0 :w 1.0)
                                                  )
          )
    )

(if #t
    (set! *curve-desert-impact-dust-blow-x* (new 'static 'curve2d-fast
                                              :xs (new 'static 'vector :y -0.2 :z -1.0 :w -2.0)
                                              :ys (new 'static 'vector :x 1.0 :y 2.0 :z 4.0 :w 5.0)
                                              :one-over-x-deltas (new 'static 'vector :x 5.0 :y 2.5 :z 1.0 :w 1.0)
                                              )
          )
    )

(if #t
    (set! *curve-desert-impact-dust-blow-y* (new 'static 'curve2d-fast
                                              :xs (new 'static 'vector :y -0.2 :z -1.0 :w -2.0)
                                              :ys (new 'static 'vector :x 1.0 :y 2.0 :z 4.0 :w 5.0)
                                              :one-over-x-deltas (new 'static 'vector :x 5.0 :y 2.5 :z 1.0 :w 1.0)
                                              )
          )
    )

(define *part-desert-impact-dust-blow-curve-settings* (new 'static 'particle-curve-settings
                                                        :lifetime-base (seconds 0.5)
                                                        :lifetime-offset (seconds 1)
                                                        :flags (particle-curve-flags pcf0)
                                                        )
        )

(set! (-> *part-id-table* 4185 init-specs 17 initial-valuef)
      (the-as float *part-desert-impact-dust-blow-curve-settings*)
      )

(set! (-> *part-desert-impact-dust-blow-curve-settings* color-start) *range-color-desert-impact-dust*)

(set! (-> *part-desert-impact-dust-blow-curve-settings* alpha-start) *range-alpha-desert-impact-dust-blow*)

(set! (-> *part-desert-impact-dust-blow-curve-settings* scale-x-start)
      *range-scale-desert-impact-dust-blow-x*
      )

(set! (-> *part-desert-impact-dust-blow-curve-settings* scale-y-start)
      *range-scale-desert-impact-dust-blow-y*
      )

(set! (-> *part-desert-impact-dust-blow-curve-settings* r-scalar) #f)

(set! (-> *part-desert-impact-dust-blow-curve-settings* g-scalar) #f)

(set! (-> *part-desert-impact-dust-blow-curve-settings* b-scalar) #f)

(set! (-> *part-desert-impact-dust-blow-curve-settings* a-scalar) *curve-alpha-desert-impact-dust-blow*)

(set! (-> *part-desert-impact-dust-blow-curve-settings* scale-x-scalar) *curve-desert-impact-dust-blow-x*)

(set! (-> *part-desert-impact-dust-blow-curve-settings* scale-y-scalar) *curve-desert-impact-dust-blow-y*)

(defpartgroup group-desert-blowing-dust
  :id 1230
  :flags (sp0 sp4)
  :bounds (static-bspherem 0 0 0 40)
  :parts ((sp-item 4186 :flags (sp7)))
  )

(defpart 4186
  :init-specs ((:texture (dirtpuff01 level-default-sprite))
    (:num 0.5)
    (:x (meters 0))
    (:z (meters 20) (meters 20))
    (:scale-x (meters 10) (meters 10))
    (:rot-z (degrees 0) (degrees 360))
    (:scale-y :copy scale-x)
    (:r 120.0)
    (:g 80.0)
    (:b 50.0)
    (:a 0.0)
    (:vel-z (meters -0.06666667) (meters -0.06666667))
    (:rotvel-z (degrees -0.1) (degrees 0.2))
    (:fade-a 0.033333335 0.033333335)
    (:timer (seconds 2))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-13 left-multiply-quat))
    (:next-time (seconds 1))
    (:next-launcher 4187)
    )
  )

(defpart 4187
  :init-specs ((:fade-a -0.033333335 -0.033333335))
  )
