jak-project/goal_src/jak3/levels/intro/intro-part.gc
Hat Kid 949508d0ed
decomp3: traffic/citizen/faction code, desert-rescue (#3506)
- `cty-faction-h`
- `nav-graph`
- `citizen-h`
- `citizen`
- `civilian`
- `traffic-engine`
- `traffic-manager`
- `cty-attack-controller`
- `cty-faction`
- `formation-object`
- `formations`
- `squad-control-city-h`
- `squad-control-city`
- `traffic-util`
- `wlander-female`
- `wlander-h`
- `wlander-male`
- `speech-manager`
- `desert-rescue`
- `desresc-path`
- `neo-satellite`
- `rope-prim-system-h`
- `rope-prim-system`
- `rope-system`
- `wland-passenger`
- `cty-guard-projectile`
- `ctywide-init`
- `ff-squad-control`
- `guard-grenade`
- `guard-rifle`
- `guard-states`
- `guard-tazer`
- `ctywide-speech`
- `citizen-chick`
- `citizen-fat`
- `citizen-norm`
- `guard`
- `bike`
- `car`
- `test-bike`
- `vehicle-rider`
- `desert-rescue-bbush`
- `ff-squad-control-h`
- `flee-info`
- `guard-h`
- `mission-squad-control`
- `kg-squad-control`
- `kg-squad-member-h`
- `kg-squad-member`
- `mh-squad-control`
- `mh-squad-member-h`
- `mh-squad-member`
- `ctywide-obs-h`
- `ctywide-obs`
- `ctywide-part`
- `ctywide-scenes`
- `ctywide-tasks`
- `ctywide-texture`
- `billiards`
- `guide-arrow`
- `kg-vehicles`
- `flying-turret`
- `roboguard-city`
- `citizen-enemy`
- `metalhead-flitter`
- `metalhead-grunt`
- `metalhead-predator`
- `spydroid`
- `kg-squad-control-h`
- `mh-squad-control-h`
- `krimson-wall`
- `ctyport-obs`
- `ctyinda-obs`
- `ctyinda-part`
- `ctyindb-obs`
- `ctyindb-part`
- `ctyport-attack`
- `h-torpedo`
- `ctyport-part`
- `ctyport-scenes`
- `external-player-control`
- `desert-chase-path-h`
- `desert-chase-path`
- `desert-chase`
- `desert-jump`
- `wcar-catapult`
- `bombbot-h`
- `bombbot`
- `bombbot-path`
- `cty-hijack-missile`
- `cty-hijack`
- `ctyport-attack-bbush`
- `ctysluma-part`
- `ctyslumb-part`
- `ctyslumc-obs`
- `ctyslumc-part`
- `searchlight`
- `cty-destroy-grid`
- `ctyfarm-obs`
- `ctyfarma-part`
- `ctyfarmb-part`
- `freehq-part`
- `freehq-scenes`
- `onintent-scenes`
- `onintent-part`
- `cty-sniper-battery`
- `cty-sniper-turret`
- `intro-obs`
- `intro-part`
- `intro-scenes`
- `palcab-part`
- `palroof-part`
2024-05-09 19:18:55 -04:00

2396 lines
73 KiB
Common Lisp

;;-*-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))
)