jak-project/goal_src/jak2/levels/ruins/ruins-part.gc

1593 lines
60 KiB
Common Lisp
Raw Normal View History

;;-*-Lisp-*-
(in-package goal)
;; name: ruins-part.gc
;; name in dgo: ruins-part
;; dgos: RUI
;; og:ignore-from-loc
;; DECOMP BEGINS
(deftype ruins-part (part-spawner)
()
:heap-base #x30
:method-count-assert 16
:size-assert #xb0
:flag-assert #x10003000b0
)
(defpartgroup group-ruins-streetlight-glows
:id 284
:bounds (static-bspherem 0 0 0 5)
:parts ((sp-item 1 :fade-after (meters 100) :flags (bit6) :hour-mask #b111111111110000000)
(sp-item 2 :fade-after (meters 300) :flags (bit6) :hour-mask #b111111111110000000)
)
)
(defpart 1
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #xbb :page #xc))
(sp-flt spt-num 1.0)
(sp-rnd-flt spt-scale-x (meters 2) (meters 0.1) 1.0)
(sp-flt spt-rot-x 409.6)
(sp-copy-from-other spt-scale-y -4)
(sp-flt spt-r 255.0)
(sp-flt spt-g 255.0)
(sp-flt spt-b 255.0)
(sp-rnd-flt spt-a 24.0 8.0 1.0)
(sp-flt spt-omega 411648.0)
(sp-int spt-timer 5)
(sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow)
(sp-flt spt-userdata 2048.0)
)
)
(defpart 2
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #xbb :page #xc))
(sp-flt spt-num 1.0)
(sp-rnd-flt spt-scale-x (meters 8) (meters 0.1) 1.0)
(sp-flt spt-rot-x 409.6)
(sp-copy-from-other spt-scale-y -4)
(sp-flt spt-r 255.0)
(sp-rnd-flt spt-g 255.0 255.0 1.0)
(sp-flt spt-b 255.0)
(sp-rnd-flt spt-a 10.0 2.0 1.0)
(sp-flt spt-omega 1231667.2)
(sp-int spt-timer 5)
(sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow)
(sp-flt spt-userdata 2048.0)
)
)
(defpartgroup group-ruins-dirt-collapse
:id 285
:duration (seconds 2)
:linger-duration (seconds 10)
:flags (use-local-clock)
:bounds (static-bspherem 0 6 0 8)
:parts ((sp-item 1253 :period 2200 :length 320 :binding 1251)
(sp-item 1253 :period 2200 :length 200 :binding 1251)
(sp-item 1253 :period 2200 :length 150 :binding 1251)
(sp-item 1253 :period 2200 :length 100 :binding 1251)
(sp-item 1254 :period 2200 :length 80 :binding 1252)
(sp-item 1252 :flags (bit1 start-dead))
(sp-item 1252 :flags (bit1 start-dead))
(sp-item 1252 :flags (bit1 start-dead))
(sp-item 1252 :flags (bit1 start-dead))
(sp-item 1252 :flags (bit1 start-dead))
(sp-item 1252 :flags (bit1 start-dead))
(sp-item 1252 :flags (bit1 start-dead))
(sp-item 1252 :flags (bit1 start-dead))
(sp-item 1252 :flags (bit1 start-dead))
(sp-item 1252 :flags (bit1 start-dead))
(sp-item 1252 :flags (bit1 start-dead))
(sp-item 1252 :flags (bit1 start-dead))
(sp-item 1252 :flags (bit1 start-dead))
(sp-item 1252 :flags (bit1 start-dead))
(sp-item 1252 :flags (bit1 start-dead))
(sp-item 1252 :flags (bit1 start-dead))
(sp-item 1252 :flags (bit1 start-dead))
(sp-item 1252 :flags (bit1 start-dead))
(sp-item 1252 :flags (bit1 start-dead))
(sp-item 1252 :flags (bit1 start-dead))
(sp-item 1252 :flags (bit1 start-dead))
(sp-item 1252 :flags (bit1 start-dead))
(sp-item 1252 :flags (bit1 start-dead))
(sp-item 1252 :flags (bit1 start-dead))
(sp-item 1252 :flags (bit1 start-dead))
(sp-item 1252 :flags (bit1 start-dead))
(sp-item 1252 :flags (bit1 start-dead))
(sp-item 1252 :flags (bit1 start-dead))
(sp-item 1252 :flags (bit1 start-dead))
(sp-item 1252 :flags (bit1 start-dead))
(sp-item 1252 :flags (bit1 start-dead))
(sp-item 1252 :flags (bit1 start-dead))
(sp-item 1252 :flags (bit1 start-dead))
(sp-item 1252 :flags (bit1 start-dead))
(sp-item 1251 :flags (bit1 start-dead))
(sp-item 1251 :flags (bit1 start-dead))
(sp-item 1251 :flags (bit1 start-dead))
(sp-item 1251 :flags (bit1 start-dead))
(sp-item 1251 :flags (bit1 start-dead))
(sp-item 1251 :flags (bit1 start-dead))
(sp-item 1251 :flags (bit1 start-dead))
(sp-item 1251 :flags (bit1 start-dead))
(sp-item 1251 :flags (bit1 start-dead))
(sp-item 1251 :flags (bit1 start-dead))
(sp-item 1251 :flags (bit1 start-dead))
(sp-item 1251 :flags (bit1 start-dead))
(sp-item 1251 :flags (bit1 start-dead))
(sp-item 1251 :flags (bit1 start-dead))
(sp-item 1251 :flags (bit1 start-dead))
(sp-item 1251 :flags (bit1 start-dead))
(sp-item 1251 :flags (bit1 start-dead))
(sp-item 1251 :flags (bit1 start-dead))
(sp-item 1251 :flags (bit1 start-dead))
(sp-item 1251 :flags (bit1 start-dead))
(sp-item 1251 :flags (bit1 start-dead))
(sp-item 1251 :flags (bit1 start-dead))
(sp-item 1251 :flags (bit1 start-dead))
(sp-item 1251 :flags (bit1 start-dead))
(sp-item 1251 :flags (bit1 start-dead))
(sp-item 1251 :flags (bit1 start-dead))
(sp-item 1251 :flags (bit1 start-dead))
(sp-item 1251 :flags (bit1 start-dead))
(sp-item 1251 :flags (bit1 start-dead))
(sp-item 1251 :flags (bit1 start-dead))
(sp-item 1251 :flags (bit1 start-dead))
(sp-item 1251 :flags (bit1 start-dead))
)
)
(defun check-drop-level-ruins-rubble ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 matrix))
"TODO docs"
(let ((f30-0 (-> arg1 key origin trans y)))
(when (< (-> arg2 vector 0 y) f30-0)
(let ((vec (new 'stack-no-clear 'vector)))
(sp-kill-particle arg0 arg1)
(set-vector! vec (-> arg2 vector 0 x) f30-0 (-> arg2 vector 0 z) 1.0)
(let ((t9-1 sp-launch-particles-var)
(a0-2 *sp-particle-system-2d*)
(a1-1 (-> *part-id-table* 1255))
(a2-1 *launch-matrix*)
)
(set! (-> a2-1 trans quad) (-> vec quad))
(t9-1 a0-2 a1-1 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0)
)
(let ((t9-2 sp-launch-particles-var)
(a0-3 *sp-particle-system-2d*)
(a1-2 (-> *part-id-table* 1256))
(a2-2 *launch-matrix*)
)
(set! (-> a2-2 trans quad) (-> vec quad))
(t9-2 a0-3 a1-2 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0)
)
(let ((t9-3 sp-launch-particles-var)
(a0-4 *sp-particle-system-2d*)
(a1-3 (-> *part-id-table* 1257))
(a2-3 *launch-matrix*)
)
(set! (-> a2-3 trans quad) (-> vec quad))
(t9-3 a0-4 a1-3 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0)
)
)
)
)
(none)
)
(defpart 1252
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :page #xc))
(sp-rnd-flt spt-num 0.0 0.25 1.0)
(sp-sound (static-sound-spec "debris-fall" :num 0.01 :volume 100.0))
(sp-rnd-flt spt-scale-x (meters 0.3) (meters 0.1) 1.0)
(sp-rnd-flt spt-scale-y (meters 1) (meters 0.2) 1.0)
(sp-rnd-flt spt-r 80.0 16.0 1.0)
(sp-rnd-flt spt-g 70.0 16.0 1.0)
(sp-rnd-flt spt-b 70.0 16.0 1.0)
(sp-rnd-flt spt-a 16.0 16.0 1.0)
(sp-rnd-flt spt-vel-y (meters -0.013333334) (meters -0.026666667) 1.0)
(sp-rnd-flt spt-scalevel-x (meters 0.0033333334) (meters 0.0016666667) 1.0)
(sp-rnd-flt spt-scalevel-y (meters 0) (meters 0.00033333333) 1.0)
(sp-rnd-flt spt-fade-a -0.042666666 -0.064 1.0)
(sp-rnd-flt spt-accel-y 0.0 1.3653333 1.0)
(sp-int spt-timer 250)
(sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-12)
(sp-func spt-func 'check-drop-group-center)
(sp-rnd-flt spt-rotate-y (degrees 0.0) (degrees 360.0) 1.0)
)
)
(defpart 1251
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :page #xc))
(sp-rnd-flt spt-num 0.0 1.0 1.0)
(sp-rnd-flt spt-scale-x (meters 0.3) (meters 0.1) 1.0)
(sp-rnd-flt spt-scale-y (meters 1) (meters 0.2) 1.0)
(sp-rnd-flt spt-r 80.0 16.0 1.0)
(sp-rnd-flt spt-g 70.0 16.0 1.0)
(sp-rnd-flt spt-b 70.0 16.0 1.0)
(sp-rnd-flt spt-a 16.0 16.0 1.0)
(sp-rnd-flt spt-vel-y (meters -0.013333334) (meters -0.026666667) 1.0)
(sp-rnd-flt spt-scalevel-x (meters 0.0033333334) (meters 0.0016666667) 1.0)
(sp-rnd-flt spt-scalevel-y (meters 0) (meters 0.00033333333) 1.0)
(sp-rnd-flt spt-fade-a -0.042666666 -0.064 1.0)
(sp-rnd-flt spt-accel-y 0.0 1.3653333 1.0)
(sp-int spt-timer 750)
(sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-12)
(sp-func spt-func 'check-drop-group-center)
(sp-rnd-flt spt-rotate-y (degrees 0.0) (degrees 360.0) 1.0)
)
)
(defpart 1254
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x7 :page #x3e8))
(sp-func spt-birth-func 'birth-func-texture-group)
(sp-rnd-flt spt-num 0.0 3.0 1.0)
(sp-rnd-flt spt-x (meters 0) (meters 2) 1.0)
(sp-flt spt-y (meters 16))
(sp-rnd-flt spt-scale-x (meters 0.1) (meters 0.3) 1.0)
(sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0)
(sp-rnd-flt spt-scale-y (meters 0.1) (meters 0.3) 1.0)
(sp-rnd-flt spt-r 32.0 16.0 1.0)
(sp-rnd-flt spt-g 24.0 16.0 1.0)
(sp-rnd-flt spt-b 30.0 16.0 1.0)
(sp-flt spt-a 128.0)
(sp-rnd-flt spt-vel-y (meters -0.053333335) (meters -0.013333334) 1.0)
(sp-flt spt-scalevel-x (meters -0.00000033333333))
(sp-rnd-flt spt-rotvel-z (degrees -1.2) (degrees 2.4) 1.0)
(sp-copy-from-other spt-scalevel-y -4)
(sp-int spt-timer 350)
(sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-12)
(new 'static 'sp-field-init-spec
:field (sp-field-id spt-userdata)
:flags (sp-flag plain-v2)
:object (new 'static 'boxed-array :type int32 40 1 0 #x3e800700 #x3e800800 #x3e800900 #x3e800a00 #x3e800b00)
)
(sp-func spt-func 'check-drop-level-ruins-rubble)
(sp-rnd-flt spt-rotate-y (degrees 0.0) (degrees 360.0) 1.0)
)
)
(defpart 1253
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x7 :page #x3e8))
(sp-func spt-birth-func 'birth-func-texture-group)
(sp-rnd-flt spt-num 0.0 0.5 1.0)
(sp-rnd-flt spt-x (meters 0) (meters 1) 1.0)
(sp-flt spt-y (meters 16))
(sp-rnd-flt spt-scale-x (meters 0.1) (meters 0.3) 1.0)
(sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0)
(sp-rnd-flt spt-scale-y (meters 0.1) (meters 0.3) 1.0)
(sp-rnd-flt spt-r 32.0 16.0 1.0)
(sp-rnd-flt spt-g 24.0 16.0 1.0)
(sp-rnd-flt spt-b 30.0 16.0 1.0)
(sp-flt spt-a 128.0)
(sp-rnd-flt spt-vel-y (meters -0.053333335) (meters -0.013333334) 1.0)
(sp-flt spt-scalevel-x (meters -0.00000033333333))
(sp-rnd-flt spt-rotvel-z (degrees -1.2) (degrees 2.4) 1.0)
(sp-copy-from-other spt-scalevel-y -4)
(sp-int spt-timer 350)
(sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-12)
(new 'static 'sp-field-init-spec
:field (sp-field-id spt-userdata)
:flags (sp-flag plain-v2)
:object (new 'static 'boxed-array :type int32 40 1 0 #x3e800700 #x3e800800 #x3e800900 #x3e800a00 #x3e800b00)
)
(sp-func spt-func 'check-drop-level-ruins-rubble)
(sp-rnd-flt spt-rotate-y (degrees 0.0) (degrees 360.0) 1.0)
)
)
(defpart 1255
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x7 :page #x3e8))
(sp-func spt-birth-func 'birth-func-texture-group)
(sp-rnd-flt spt-num 1.0 4.0 1.0)
(sp-rnd-flt spt-scale-x (meters 0.05) (meters 0.15) 1.0)
(sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0)
(sp-rnd-flt spt-scale-y (meters 0.05) (meters 0.15) 1.0)
(sp-rnd-flt spt-r 32.0 16.0 1.0)
(sp-rnd-flt spt-g 24.0 16.0 1.0)
(sp-rnd-flt spt-b 30.0 16.0 1.0)
(sp-flt spt-a 128.0)
(sp-rnd-flt spt-vel-y (meters 0.006666667) (meters 0.026666667) 1.0)
(sp-rnd-flt spt-rotvel-z (degrees -1.2) (degrees 2.4) 1.0)
(sp-rnd-flt spt-fade-a -0.42666668 -0.85333335 1.0)
(sp-flt spt-accel-y -2.7306666)
(sp-int spt-timer 600)
(sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-12)
(new 'static 'sp-field-init-spec
:field (sp-field-id spt-userdata)
:flags (sp-flag plain-v2)
:object (new 'static 'boxed-array :type int32 40 1 0 #x3e800700 #x3e800800 #x3e800900 #x3e800a00 #x3e800b00)
)
(sp-rnd-flt spt-conerot-x (degrees 10.0) (degrees 60.0) 1.0)
(sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0)
)
)
(defpart 1256
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x7 :page #x3e8))
(sp-func spt-birth-func 'birth-func-texture-group)
(sp-rnd-flt spt-num 1.0 2.0 1.0)
(sp-rnd-flt spt-scale-x (meters 0.05) (meters 0.15) 1.0)
(sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0)
(sp-rnd-flt spt-scale-y (meters 0.05) (meters 0.15) 1.0)
(sp-rnd-flt spt-r 32.0 16.0 1.0)
(sp-rnd-flt spt-g 24.0 16.0 1.0)
(sp-rnd-flt spt-b 30.0 16.0 1.0)
(sp-flt spt-a 128.0)
(sp-rnd-flt spt-vel-y (meters 0) (meters 0.04) 1.0)
(sp-rnd-flt spt-rotvel-z (degrees -1.2) (degrees 2.4) 1.0)
(sp-rnd-flt spt-friction 0.94 0.02 1.0)
(sp-int spt-timer 2400)
(sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-12)
(new 'static 'sp-field-init-spec
:field (sp-field-id spt-userdata)
:flags (sp-flag plain-v2)
:object (new 'static 'boxed-array :type int32 40 1 0 #x3e800700 #x3e800800 #x3e800900 #x3e800a00 #x3e800b00)
)
(sp-int-plain-rnd spt-next-time 450 149 1)
(sp-launcher-by-id spt-next-launcher 1258)
(sp-flt spt-conerot-x (degrees 90.0))
(sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0)
)
)
(defpart 1258
:init-specs ((sp-flt spt-rotvel-z (degrees 0.0)) (sp-rnd-flt spt-fade-a -0.10666667 -0.10666667 1.0))
)
(defpart 1257
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :page #xc))
(sp-rnd-flt spt-num 1.0 1.0 1.0)
(sp-sound (static-sound-spec "debris-ground" :num 0.01 :volume 100.0))
(sp-rnd-flt spt-scale-x (meters 1) (meters 0.5) 1.0)
(sp-rnd-flt spt-scale-y (meters 0.5) (meters 0.5) 1.0)
(sp-rnd-flt spt-r 80.0 16.0 1.0)
(sp-rnd-flt spt-g 70.0 16.0 1.0)
(sp-rnd-flt spt-b 70.0 16.0 1.0)
(sp-rnd-flt spt-a 16.0 32.0 1.0)
(sp-rnd-flt spt-vel-y (meters 0.013333334) (meters 0.026666667) 1.0)
(sp-rnd-flt spt-scalevel-x (meters 0.0033333334) (meters 0.0016666667) 1.0)
(sp-rnd-flt spt-scalevel-y (meters 0.0033333334) (meters 0.0016666667) 1.0)
(sp-rnd-flt spt-fade-a -0.026666667 -0.026666667 1.0)
(sp-rnd-flt spt-accel-y 0.0 1.3653333 1.0)
(sp-rnd-flt spt-friction 0.9 0.05 1.0)
(sp-int spt-timer 2400)
(sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-12)
(sp-rnd-flt spt-conerot-x (degrees 70.0) (degrees 20.0) 1.0)
(sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0)
)
)
(defpartgroup group-ruins-brick-dust-floor
:id 286
:duration (seconds 0.017)
:bounds (static-bspherem 0 0 0 15)
:parts ((sp-item 1259 :fade-after (meters 60) :falloff-to (meters 60))
(sp-item 1260 :fade-after (meters 60) :falloff-to (meters 60))
(sp-item 1261 :fade-after (meters 120) :falloff-to (meters 120))
(sp-item 1262 :fade-after (meters 120) :falloff-to (meters 120))
(sp-item 1263)
)
)
(defpart 1259
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x7 :page #x3e8))
(sp-func spt-birth-func 'birth-func-texture-group)
(sp-rnd-flt spt-num 4.0 8.0 1.0)
(sp-rnd-flt spt-scale-x (meters 0.1) (meters 0.3) 1.0)
(sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0)
(sp-rnd-flt spt-scale-y (meters 0.1) (meters 0.3) 1.0)
(sp-rnd-flt spt-r 192.0 64.0 1.0)
(sp-rnd-flt spt-g 128.0 64.0 1.0)
(sp-rnd-flt spt-b 128.0 32.0 1.0)
(sp-rnd-flt spt-a 96.0 32.0 1.0)
(sp-rnd-flt spt-vel-y (meters 0) (meters 0.10666667) 1.0)
(sp-rnd-flt spt-rotvel-z (degrees -1.2) (degrees 720.0) 1.0)
(sp-rnd-flt spt-fade-a -0.42666668 -0.42666668 1.0)
(sp-rnd-flt spt-accel-y -5.4613333 -2.7306666 1.0)
(sp-flt spt-friction 0.95)
(sp-int spt-timer 300)
(sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-12)
(new 'static 'sp-field-init-spec
:field (sp-field-id spt-userdata)
:flags (sp-flag plain-v2)
:object (new 'static 'boxed-array :type int32 40 1 0 #x3e800700 #x3e800800 #x3e800900 #x3e800a00 #x3e800b00)
)
(sp-rnd-flt spt-conerot-x (degrees 80.0) (degrees 10.0) 1.0)
(sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0)
(sp-rnd-flt spt-conerot-radius (meters 0) (meters 0.25) 1.0)
)
)
(defpart 1260
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x7 :page #x3e8))
(sp-func spt-birth-func 'birth-func-texture-group)
(sp-rnd-flt spt-num 4.0 8.0 1.0)
(sp-rnd-flt spt-scale-x (meters 0.1) (meters 0.3) 1.0)
(sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0)
(sp-rnd-flt spt-scale-y (meters 0.1) (meters 0.3) 1.0)
(sp-rnd-flt spt-r 128.0 128.0 1.0)
(sp-copy-from-other spt-g -1)
(sp-copy-from-other spt-b -1)
(sp-rnd-flt spt-a 96.0 32.0 1.0)
(sp-rnd-flt spt-vel-y (meters 0) (meters 0.10666667) 1.0)
(sp-rnd-flt spt-rotvel-z (degrees -1.2) (degrees 720.0) 1.0)
(sp-rnd-flt spt-fade-a -0.42666668 -0.42666668 1.0)
(sp-rnd-flt spt-accel-y -5.4613333 -2.7306666 1.0)
(sp-flt spt-friction 0.95)
(sp-int spt-timer 300)
(sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-12)
(new 'static 'sp-field-init-spec
:field (sp-field-id spt-userdata)
:flags (sp-flag plain-v2)
:object (new 'static 'boxed-array :type int32 40 1 0 #x3e800700 #x3e800800 #x3e800900 #x3e800a00 #x3e800b00)
)
(sp-rnd-flt spt-conerot-x (degrees 80.0) (degrees 10.0) 1.0)
(sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0)
(sp-rnd-flt spt-conerot-radius (meters 0) (meters 0.25) 1.0)
)
)
(defpart 1261
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :page #xc))
(sp-rnd-flt spt-num 2.0 4.0 1.0)
(sp-rnd-flt spt-scale-x (meters 2) (meters 1) 1.0)
(sp-rnd-int-flt spt-rot-z (degrees 0.0) 1 32768.0)
(sp-copy-from-other spt-scale-y -4)
(sp-rnd-flt spt-r 128.0 64.0 1.0)
(sp-rnd-flt spt-g 96.0 32.0 1.0)
(sp-rnd-flt spt-b 64.0 32.0 1.0)
(sp-rnd-flt spt-a 8.0 24.0 1.0)
(sp-rnd-flt spt-vel-y (meters 0.013333334) (meters 0.053333335) 1.0)
(sp-rnd-flt spt-scalevel-x (meters 0.013333334) (meters 0.016666668) 1.0)
(sp-copy-from-other spt-scalevel-y -4)
(sp-rnd-flt spt-fade-a -0.032 -0.032 1.0)
(sp-flt spt-friction 0.95)
(sp-int spt-timer 2000)
(sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-12)
(sp-rnd-flt spt-conerot-x (degrees 80.0) (degrees 10.0) 1.0)
(sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0)
(sp-rnd-flt spt-conerot-radius (meters 0) (meters 0.6) 1.0)
)
)
(defpart 1262
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :page #xc))
(sp-rnd-flt spt-num 2.0 4.0 1.0)
(sp-rnd-flt spt-scale-x (meters 2) (meters 1) 1.0)
(sp-rnd-int-flt spt-rot-z (degrees 0.0) 1 32768.0)
(sp-copy-from-other spt-scale-y -4)
(sp-rnd-flt spt-r 64.0 128.0 1.0)
(sp-copy-from-other spt-g -1)
(sp-copy-from-other spt-b -1)
(sp-rnd-flt spt-a 8.0 24.0 1.0)
(sp-rnd-flt spt-vel-y (meters 0.013333334) (meters 0.053333335) 1.0)
(sp-rnd-flt spt-scalevel-x (meters 0.013333334) (meters 0.016666668) 1.0)
(sp-copy-from-other spt-scalevel-y -4)
(sp-rnd-flt spt-fade-a -0.032 -0.032 1.0)
(sp-flt spt-friction 0.95)
(sp-int spt-timer 2000)
(sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-12)
(sp-rnd-flt spt-conerot-x (degrees 80.0) (degrees 10.0) 1.0)
(sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0)
(sp-rnd-flt spt-conerot-radius (meters 0) (meters 0.6) 1.0)
)
)
(defpartgroup group-ruins-brick-dust-wall
:id 287
:duration (seconds 0.017)
:bounds (static-bspherem 0 0 0 15)
:parts ((sp-item 1263)
(sp-item 1264 :fade-after (meters 60) :falloff-to (meters 60))
(sp-item 1265 :fade-after (meters 60) :falloff-to (meters 60))
(sp-item 1266 :fade-after (meters 120) :falloff-to (meters 120))
(sp-item 1267 :fade-after (meters 120) :falloff-to (meters 120))
)
)
(defpart 1263
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x47 :page #xc))
(sp-flt spt-num 1.0)
(sp-rnd-flt spt-scale-x (meters 5) (meters 2) 1.0)
(sp-copy-from-other spt-scale-y -4)
(sp-flt spt-r 255.0)
(sp-rnd-flt spt-g 192.0 64.0 1.0)
(sp-copy-from-other spt-b -1)
(sp-rnd-flt spt-a 16.0 16.0 1.0)
(sp-flt spt-rotvel-z (degrees 0.3))
(sp-flt spt-fade-a -1.6)
(sp-int spt-timer 20)
(sp-cpuinfo-flags sp-cpuinfo-flag-2)
)
)
(defpart 1264
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x7 :page #x3e8))
(sp-func spt-birth-func 'birth-func-texture-group)
(sp-rnd-flt spt-num 4.0 8.0 1.0)
(sp-rnd-flt spt-scale-x (meters 0.1) (meters 0.3) 1.0)
(sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0)
(sp-rnd-flt spt-scale-y (meters 0.1) (meters 0.3) 1.0)
(sp-rnd-flt spt-r 192.0 64.0 1.0)
(sp-rnd-flt spt-g 128.0 64.0 1.0)
(sp-rnd-flt spt-b 128.0 32.0 1.0)
(sp-rnd-flt spt-a 96.0 32.0 1.0)
(sp-rnd-flt spt-vel-y (meters 0) (meters 0.10666667) 1.0)
(sp-rnd-flt spt-rotvel-z (degrees -1.2) (degrees 720.0) 1.0)
(sp-rnd-flt spt-fade-a -0.21333334 -0.21333334 1.0)
(sp-rnd-flt spt-accel-y -5.4613333 -2.7306666 1.0)
(sp-flt spt-friction 0.95)
(sp-int spt-timer 600)
(sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-12)
(new 'static 'sp-field-init-spec
:field (sp-field-id spt-userdata)
:flags (sp-flag plain-v2)
:object (new 'static 'boxed-array :type int32 40 1 0 #x3e800700 #x3e800800 #x3e800900 #x3e800a00 #x3e800b00)
)
(sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 360.0) 1.0)
(sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0)
(sp-rnd-flt spt-conerot-radius (meters 0) (meters 0.25) 1.0)
)
)
(defpart 1265
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x7 :page #x3e8))
(sp-func spt-birth-func 'birth-func-texture-group)
(sp-rnd-flt spt-num 4.0 8.0 1.0)
(sp-rnd-flt spt-scale-x (meters 0.1) (meters 0.3) 1.0)
(sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0)
(sp-rnd-flt spt-scale-y (meters 0.1) (meters 0.3) 1.0)
(sp-rnd-flt spt-r 128.0 128.0 1.0)
(sp-copy-from-other spt-g -1)
(sp-copy-from-other spt-b -1)
(sp-rnd-flt spt-a 96.0 32.0 1.0)
(sp-rnd-flt spt-vel-y (meters 0) (meters 0.10666667) 1.0)
(sp-rnd-flt spt-rotvel-z (degrees -1.2) (degrees 720.0) 1.0)
(sp-rnd-flt spt-fade-a -0.21333334 -0.21333334 1.0)
(sp-rnd-flt spt-accel-y -5.4613333 -2.7306666 1.0)
(sp-flt spt-friction 0.95)
(sp-int spt-timer 600)
(sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-12)
(new 'static 'sp-field-init-spec
:field (sp-field-id spt-userdata)
:flags (sp-flag plain-v2)
:object (new 'static 'boxed-array :type int32 40 1 0 #x3e800700 #x3e800800 #x3e800900 #x3e800a00 #x3e800b00)
)
(sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 360.0) 1.0)
(sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0)
(sp-rnd-flt spt-conerot-radius (meters 0) (meters 0.25) 1.0)
)
)
(defpart 1266
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :page #xc))
(sp-rnd-flt spt-num 2.0 4.0 1.0)
(sp-rnd-flt spt-scale-x (meters 2) (meters 1) 1.0)
(sp-rnd-int-flt spt-rot-z (degrees 0.0) 1 32768.0)
(sp-copy-from-other spt-scale-y -4)
(sp-rnd-flt spt-r 128.0 64.0 1.0)
(sp-rnd-flt spt-g 96.0 32.0 1.0)
(sp-rnd-flt spt-b 64.0 32.0 1.0)
(sp-rnd-flt spt-a 8.0 24.0 1.0)
(sp-rnd-flt spt-vel-y (meters 0.013333334) (meters 0.053333335) 1.0)
(sp-rnd-flt spt-scalevel-x (meters 0.013333334) (meters 0.016666668) 1.0)
(sp-copy-from-other spt-scalevel-y -4)
(sp-rnd-flt spt-fade-a -0.032 -0.032 1.0)
(sp-flt spt-friction 0.95)
(sp-int spt-timer 2000)
(sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-12)
(sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 360.0) 1.0)
(sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0)
(sp-rnd-flt spt-conerot-radius (meters 0) (meters 0.6) 1.0)
)
)
(defpart 1267
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :page #xc))
(sp-rnd-flt spt-num 2.0 4.0 1.0)
(sp-rnd-flt spt-scale-x (meters 2) (meters 1) 1.0)
(sp-rnd-int-flt spt-rot-z (degrees 0.0) 1 32768.0)
(sp-copy-from-other spt-scale-y -4)
(sp-rnd-flt spt-r 64.0 128.0 1.0)
(sp-copy-from-other spt-g -1)
(sp-copy-from-other spt-b -1)
(sp-rnd-flt spt-a 8.0 24.0 1.0)
(sp-rnd-flt spt-vel-y (meters 0.013333334) (meters 0.053333335) 1.0)
(sp-rnd-flt spt-scalevel-x (meters 0.013333334) (meters 0.016666668) 1.0)
(sp-copy-from-other spt-scalevel-y -4)
(sp-rnd-flt spt-fade-a -0.032 -0.032 1.0)
(sp-flt spt-friction 0.95)
(sp-int spt-timer 2000)
(sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-12)
(sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 360.0) 1.0)
(sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0)
(sp-rnd-flt spt-conerot-radius (meters 0) (meters 0.6) 1.0)
)
)
(defpartgroup group-ruins-brick-dust-slide
:id 288
:duration (seconds 0.017)
:bounds (static-bspherem 0 0 0 15)
:parts ((sp-item 1268 :fade-after (meters 120) :falloff-to (meters 120))
(sp-item 1269 :fade-after (meters 120) :falloff-to (meters 120))
)
)
(defpart 1268
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :page #xc))
(sp-rnd-flt spt-num 1.0 2.0 1.0)
(sp-rnd-flt spt-scale-x (meters 0.5) (meters 0.5) 1.0)
(sp-rnd-int-flt spt-rot-z (degrees 0.0) 1 32768.0)
(sp-copy-from-other spt-scale-y -4)
(sp-rnd-flt spt-r 128.0 64.0 1.0)
(sp-rnd-flt spt-g 96.0 32.0 1.0)
(sp-rnd-flt spt-b 64.0 32.0 1.0)
(sp-rnd-flt spt-a 8.0 24.0 1.0)
(sp-rnd-flt spt-vel-y (meters 0) (meters 0.026666667) 1.0)
(sp-rnd-flt spt-scalevel-x (meters 0.01) (meters 0.006666667) 1.0)
(sp-rnd-flt spt-scalevel-y (meters 0.0033333334) (meters 0.0033333334) 1.0)
(sp-rnd-flt spt-fade-a -0.032 -0.032 1.0)
(sp-flt spt-friction 0.95)
(sp-int spt-timer 1000)
(sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-12)
(sp-flt spt-conerot-x (degrees 90.0))
(sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0)
(sp-rnd-flt spt-conerot-radius (meters 0) (meters 0.6) 1.0)
)
)
(defpart 1269
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :page #xc))
(sp-rnd-flt spt-num 1.0 2.0 1.0)
(sp-rnd-flt spt-scale-x (meters 0.5) (meters 0.5) 1.0)
(sp-rnd-int-flt spt-rot-z (degrees 0.0) 1 32768.0)
(sp-copy-from-other spt-scale-y -4)
(sp-rnd-flt spt-r 64.0 64.0 1.0)
(sp-copy-from-other spt-g -1)
(sp-copy-from-other spt-b -1)
(sp-rnd-flt spt-a 8.0 24.0 1.0)
(sp-rnd-flt spt-vel-y (meters 0) (meters 0.026666667) 1.0)
(sp-rnd-flt spt-scalevel-x (meters 0.01) (meters 0.006666667) 1.0)
(sp-rnd-flt spt-scalevel-y (meters 0.0033333334) (meters 0.0033333334) 1.0)
(sp-rnd-flt spt-fade-a -0.032 -0.032 1.0)
(sp-flt spt-friction 0.95)
(sp-int spt-timer 1000)
(sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-12)
(sp-flt spt-conerot-x (degrees 90.0))
(sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0)
(sp-rnd-flt spt-conerot-radius (meters 0) (meters 0.6) 1.0)
)
)
(defpartgroup group-ruins-birds
:id 289
:bounds (static-bspherem 0 8 0 45)
:parts ((sp-item 1272 :fade-after (meters 120) :flags (bit1 launch-asap) :binding 1270)
(sp-item 1272 :fade-after (meters 120) :flags (bit1 launch-asap) :binding 1270)
(sp-item 1272 :fade-after (meters 120) :flags (bit1 launch-asap) :binding 1270)
(sp-item 1272 :fade-after (meters 120) :flags (bit1 launch-asap) :binding 1270)
(sp-item 1272 :fade-after (meters 120) :flags (bit1 launch-asap) :binding 1270)
(sp-item 1272 :fade-after (meters 120) :flags (bit1 launch-asap) :binding 1270)
(sp-item 1272 :fade-after (meters 120) :flags (bit1 launch-asap) :binding 1270)
(sp-item 1272 :fade-after (meters 120) :flags (bit1 launch-asap) :binding 1270)
(sp-item 1272 :fade-after (meters 120) :flags (bit1 launch-asap) :binding 1270)
(sp-item 1272 :fade-after (meters 120) :flags (bit1 launch-asap) :binding 1270)
(sp-item 1272 :fade-after (meters 120) :flags (bit1 launch-asap) :binding 1270)
(sp-item 1272 :fade-after (meters 120) :flags (bit1 launch-asap) :binding 1270)
(sp-item 1272 :fade-after (meters 120) :flags (bit1 launch-asap) :binding 1270)
(sp-item 1272 :fade-after (meters 120) :flags (bit1 launch-asap) :binding 1270)
(sp-item 1272 :fade-after (meters 120) :flags (bit1 launch-asap) :binding 1270)
(sp-item 1272 :fade-after (meters 120) :flags (bit1 launch-asap) :binding 1270)
(sp-item 1270 :flags (start-dead launch-asap) :binding 1271)
(sp-item 1271 :flags (is-3d start-dead))
(sp-item 1270 :flags (start-dead launch-asap) :binding 1271)
(sp-item 1271 :flags (is-3d start-dead))
(sp-item 1270 :flags (start-dead launch-asap) :binding 1271)
(sp-item 1271 :flags (is-3d start-dead))
(sp-item 1270 :flags (start-dead launch-asap) :binding 1271)
(sp-item 1271 :flags (is-3d start-dead))
(sp-item 1270 :flags (start-dead launch-asap) :binding 1271)
(sp-item 1271 :flags (is-3d start-dead))
(sp-item 1270 :flags (start-dead launch-asap) :binding 1271)
(sp-item 1271 :flags (is-3d start-dead))
(sp-item 1270 :flags (start-dead launch-asap) :binding 1271)
(sp-item 1271 :flags (is-3d start-dead))
(sp-item 1270 :flags (start-dead launch-asap) :binding 1271)
(sp-item 1271 :flags (is-3d start-dead))
(sp-item 1270 :flags (start-dead launch-asap) :binding 1271)
(sp-item 1271 :flags (is-3d start-dead))
(sp-item 1270 :flags (start-dead launch-asap) :binding 1271)
(sp-item 1271 :flags (is-3d start-dead))
(sp-item 1270 :flags (start-dead launch-asap) :binding 1271)
(sp-item 1271 :flags (is-3d start-dead))
(sp-item 1270 :flags (start-dead launch-asap) :binding 1271)
(sp-item 1271 :flags (is-3d start-dead))
(sp-item 1270 :flags (start-dead launch-asap) :binding 1271)
(sp-item 1271 :flags (is-3d start-dead))
(sp-item 1270 :flags (start-dead launch-asap) :binding 1271)
(sp-item 1271 :flags (is-3d start-dead))
(sp-item 1270 :flags (start-dead launch-asap) :binding 1271)
(sp-item 1271 :flags (is-3d start-dead))
(sp-item 1270 :flags (start-dead launch-asap) :binding 1271)
(sp-item 1271 :flags (is-3d start-dead))
(sp-item 1270 :flags (start-dead launch-asap) :binding 1271)
(sp-item 1271 :flags (is-3d start-dead))
)
)
(defun ruins-bird-bob-func ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 matrix))
"Move the bird particles up and down, on a sinusoidal period with a wavelength of 300 frames
TODO - check argument types / what birds?"
(with-pp
(set! (-> arg2 vector 0 y)
(+ (-> arg1 key proc root trans y)
(* -2048.0 (sin (* 218.45334 (the float (mod (-> pp clock frame-counter) 300)))))
)
)
0
(none)
)
)
(defpart 1272
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #xc9 :page #xc))
(sp-func spt-birth-func 'birth-func-random-next-time)
(sp-flt spt-num 1.0)
(sp-rnd-flt spt-x (meters -15) (meters 30) 1.0)
(sp-rnd-flt spt-y (meters 0) (meters 16) 1.0)
(sp-rnd-flt spt-z (meters -15) (meters 30) 1.0)
(sp-flt spt-scale-x (meters 1))
(sp-copy-from-other spt-scale-y -4)
(sp-flt spt-r 128.0)
(sp-flt spt-a 0.0)
(sp-int spt-timer -1)
(sp-cpuinfo-flags sp-cpuinfo-flag-3)
(sp-flt spt-userdata 199.98)
(sp-func spt-func 'ruins-bird-bob-func)
)
)
(defun sparticle-ruins-bird-moon ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 matrix))
"TODO - investigate, what even is this?"
(set! (-> arg2 vector 1 z) (the float (sar (shl (the int (+ -16384.0 (-> arg1 omega))) 48) 48)))
0
(none)
)
(defpart 1270
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #xc9 :page #xc))
(sp-func spt-birth-func 'birth-func-copy-omega-to-z)
(sp-flt spt-num 1.0)
(sp-flt spt-x (meters 0))
(sp-flt spt-y (meters 0))
(sp-rnd-flt spt-z (meters 30) (meters 30) 1.0)
(sp-flt spt-scale-x (meters 0))
(sp-flt spt-rot-z (degrees 0.0))
(sp-rnd-flt spt-r 32.0 64.0 1.0)
(sp-copy-from-other spt-g -1)
(sp-copy-from-other spt-b -1)
(sp-flt spt-a 0.0)
(sp-rnd-flt spt-omega 0.0 65536.0 1.0)
(sp-rnd-flt spt-vel-x (meters 0.0014814815) (meters 0.0014814815) 1.0)
(sp-flt spt-vel-z (meters 0))
(sp-flt spt-scalevel-x (meters -0.04))
(sp-int spt-timer 600)
(sp-cpuinfo-flags sp-cpuinfo-flag-3 ready-to-launch)
(sp-func spt-func 'sparticle-ruins-bird-moon)
(sp-int spt-next-time 199)
(sp-launcher-by-id spt-next-launcher 1273)
)
)
(defpart 1273
:init-specs ((sp-flt spt-scale-x (meters 8))
(sp-flt spt-scalevel-x (meters -0.08))
(sp-int spt-timer 600)
(sp-int spt-next-time 100)
(sp-launcher-by-id spt-next-launcher 1274)
)
)
(defpart 1274
:init-specs ((sp-flt spt-scale-x (meters 0))
(sp-flt spt-scalevel-x (meters -0.04))
(sp-int spt-timer 600)
(sp-int spt-next-time 199)
(sp-launcher-by-id spt-next-launcher 1273)
)
)
(defpart 1271
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x1 :page #x3e8))
(sp-func spt-birth-func 'birth-func-copy2-rot-color)
(sp-flt spt-num 2.0)
(sp-flt spt-scale-x (meters 5))
(sp-flt spt-scale-y (meters 2))
(sp-flt spt-a 128.0)
(sp-int spt-timer 5)
(sp-cpuinfo-flags sp-cpuinfo-flag-2 aux-list sp-cpuinfo-flag-12)
)
)
(defpartgroup group-pillar-collapse-explosion
:id 290
:linger-duration (seconds 3)
:flags (use-local-clock)
:bounds (static-bspherem 0 0 0 64)
:parts ((sp-item 1275) (sp-item 1276) (sp-item 1277) (sp-item 1278))
)
(defpart 1275
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :page #xc))
(sp-flt spt-num 10.0)
(sp-rnd-flt spt-x (meters 0) (meters 0.6) 1.0)
(sp-flt spt-y (meters 4))
(sp-rnd-flt spt-scale-x (meters 4.8) (meters 2.8) 1.0)
(sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 3600.0) 1.0)
(sp-copy-from-other spt-scale-y -4)
(sp-rnd-flt spt-r 64.0 64.0 1.0)
(sp-copy-from-other spt-g -1)
(sp-copy-from-other spt-b -1)
(sp-rnd-flt spt-a 16.0 16.0 1.0)
(sp-rnd-flt spt-vel-y (meters 0.033333335) (meters 0.04) 1.0)
(sp-rnd-flt spt-scalevel-x (meters 0.009333333) (meters 0.009333333) 1.0)
(sp-rnd-flt spt-rotvel-z (degrees -0.12) (degrees 0.24) 1.0)
(sp-copy-from-other spt-scalevel-y -4)
(sp-rnd-flt spt-fade-a 0.32 0.32 1.0)
(sp-rnd-flt spt-friction 0.94 0.04 1.0)
(sp-int spt-timer 2400)
(sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-12)
(sp-int-plain-rnd spt-next-time 70 29 1)
(sp-launcher-by-id spt-next-launcher 1279)
(sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 3600.0) 1.0)
(sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 3600.0) 1.0)
(sp-flt spt-rotate-y (degrees 0.0))
)
)
(defpart 1279
:init-specs ((sp-flt spt-scalevel-x (meters 0.0046666665))
(sp-copy-from-other spt-scalevel-y -4)
(sp-flt spt-fade-a 0.0)
(sp-int-plain-rnd spt-next-time 100 149 1)
(sp-launcher-by-id spt-next-launcher 1280)
)
)
(defpart 1280
:init-specs ((sp-flt spt-scalevel-x (meters 0.0033333334))
(sp-copy-from-other spt-scalevel-y -4)
(sp-rnd-flt spt-fade-a -0.21333334 -0.10666667 1.0)
)
)
(defpart 1276
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x32 :page #xc))
(sp-rnd-flt spt-num 10.0 20.0 1.0)
(sp-flt spt-x (meters 0.25))
(sp-flt spt-y (meters 4))
(sp-rnd-flt spt-scale-x (meters 1) (meters 2) 1.0)
(sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0)
(sp-copy-from-other spt-scale-y -4)
(sp-flt spt-r 128.0)
(sp-rnd-flt spt-g 96.0 32.0 1.0)
(sp-rnd-flt spt-b 64.0 32.0 1.0)
(sp-rnd-flt spt-a 16.0 32.0 1.0)
(sp-rnd-flt spt-vel-y (meters 0) (meters 0.13333334) 1.0)
(sp-rnd-flt spt-scalevel-x (meters 0.006666667) (meters 0.0033333334) 1.0)
(sp-rnd-flt spt-rotvel-z (degrees -0.12) (degrees 0.24) 1.0)
(sp-copy-from-other spt-scalevel-y -4)
(sp-rnd-flt spt-accel-y -0.68266666 -2.7306666 1.0)
(sp-rnd-flt spt-friction 0.88 0.02 1.0)
(sp-int spt-timer 6000)
(sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-12)
(sp-int-plain-rnd spt-next-time 70 29 1)
(sp-launcher-by-id spt-next-launcher 1281)
(sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 3600.0) 1.0)
(sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 3600.0) 1.0)
(sp-flt spt-rotate-y (degrees 0.0))
(sp-rnd-flt spt-conerot-radius (meters 0) (meters 3) 1.0)
)
)
(defpart 1281
:init-specs ((sp-flt spt-scalevel-x (meters 0.01))
(sp-copy-from-other spt-scalevel-y -4)
(sp-int-plain-rnd spt-next-time 90 29 1)
(sp-launcher-by-id spt-next-launcher 1282)
)
)
(defpart 1282
:init-specs ((sp-flt spt-scalevel-x (meters 0.0033333334))
(sp-copy-from-other spt-scalevel-y -4)
(sp-rnd-flt spt-fade-a -0.053333335 -0.053333335 1.0)
)
)
(defpart 1277
:init-specs ((sp-func spt-birth-func 'birth-func-texture-group)
(sp-rnd-flt spt-num 10.0 20.0 1.0)
(sp-flt spt-y (meters 4))
(sp-rnd-flt spt-scale-x (meters 3.5) (meters 1.75) 1.0)
(new 'static 'sp-field-init-spec
:field (sp-field-id spt-rot-z)
:flags (sp-flag spflag7)
:random-rangef 655360.0
:random-multf 1.0
)
(sp-rnd-flt spt-scale-y (meters 4.5) (meters 2) 1.0)
(sp-rnd-flt spt-r 64.0 64.0 1.0)
(sp-copy-from-other spt-g -1)
(sp-copy-from-other spt-b -1)
(sp-rnd-flt spt-a 16.0 16.0 1.0)
(sp-rnd-flt spt-vel-y (meters 0.05) (meters 0.1) 1.0)
(sp-rnd-flt spt-scalevel-x (meters 0.02) (meters 0.02) 1.0)
(sp-copy-from-other spt-scalevel-y -4)
(sp-flt spt-fade-a -0.13333334)
(sp-rnd-flt spt-friction 0.92 0.02 1.0)
(sp-int spt-timer 2000)
(sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-12)
(new 'static 'sp-field-init-spec
:field (sp-field-id spt-userdata)
:flags (sp-flag plain-v2)
:object (new 'static 'boxed-array :type int32 80 1 0 #xc00000 #xc03300)
)
(sp-int spt-next-time 50)
(sp-launcher-by-id spt-next-launcher 1283)
(new 'static 'sp-field-init-spec
:field (sp-field-id spt-conerot-x)
:flags (sp-flag from-pointer)
:func '*sp-temp*
)
(sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 3600.0) 1.0)
(sp-flt spt-rotate-y (degrees 0.0))
(sp-rnd-flt spt-conerot-radius (meters 0) (meters 2) 1.0)
)
)
(defpart 1278
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x34 :page #xc))
(sp-rnd-flt spt-num 10.0 20.0 1.0)
(sp-flt spt-y (meters 4))
(sp-rnd-flt spt-scale-x (meters 3.5) (meters 1.75) 1.0)
(sp-int spt-rot-x 4)
(new 'static 'sp-field-init-spec
:field (sp-field-id spt-rot-z)
:flags (sp-flag spflag7)
:random-rangef 65536.0
:random-multf 1.0
)
(sp-rnd-flt spt-scale-y (meters 4.5) (meters 2) 1.0)
(sp-rnd-flt spt-r 64.0 64.0 1.0)
(sp-copy-from-other spt-g -1)
(sp-copy-from-other spt-b -1)
(sp-rnd-flt spt-a 16.0 16.0 1.0)
(sp-rnd-flt spt-vel-y (meters 0.05) (meters 0.1) 1.0)
(sp-rnd-flt spt-scalevel-x (meters 0.02) (meters 0.02) 1.0)
(sp-copy-from-other spt-scalevel-y -4)
(sp-flt spt-fade-a -0.13333334)
(sp-rnd-flt spt-friction 0.92 0.02 1.0)
(sp-int spt-timer 2000)
(sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-12)
(sp-func spt-func 'sparticle-motion-blur)
(sp-int spt-next-time 50)
(sp-launcher-by-id spt-next-launcher 1283)
(new 'static 'sp-field-init-spec
:field (sp-field-id spt-conerot-x)
:flags (sp-flag from-pointer)
:func '*sp-temp*
)
(sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 3600.0) 1.0)
(sp-flt spt-rotate-y (degrees 0.0))
(sp-rnd-flt spt-conerot-radius (meters 0) (meters -5) 1.0)
)
)
(defpart 1283
:init-specs ((sp-rnd-flt spt-scalevel-x (meters 0.02) (meters 0.02) 1.0)
(sp-copy-from-other spt-scalevel-y -4)
(sp-int-plain-rnd spt-next-time 60 19 1)
(sp-launcher-by-id spt-next-launcher 1284)
)
)
(defpart 1284
:init-specs ((sp-rnd-flt spt-scalevel-x (meters 0.01) (meters 0.01) 1.0)
(sp-copy-from-other spt-scalevel-y -4)
(sp-rnd-flt spt-fade-a -0.18 -0.12 1.0)
)
)
(defpartgroup group-ruins-tower-trailer
:id 291
:duration (seconds 0.017)
:bounds (static-bspherem 0 0 0 15)
:parts ((sp-item 1285))
)
(defpart 1285
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :page #xc))
(sp-rnd-flt spt-num 0.5 0.6 1.0)
(sp-rnd-flt spt-scale-x (meters 1) (meters 3) 1.0)
(sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 3600.0) 1.0)
(sp-copy-from-other spt-scale-y -4)
(sp-rnd-flt spt-r 64.0 128.0 1.0)
(sp-copy-from-other spt-g -1)
(sp-copy-from-other spt-b -1)
(sp-flt spt-a 0.0)
(sp-rnd-flt spt-vel-y (meters 0) (meters 0.01) 1.0)
(sp-rnd-flt spt-scalevel-x (meters 0.0033333334) (meters 0.01) 1.0)
(sp-rnd-flt spt-rotvel-z (degrees -0.3) (degrees 0.6) 1.0)
(sp-copy-from-other spt-scalevel-y -4)
(sp-rnd-flt spt-fade-a 0.4 0.4 1.0)
(sp-flt spt-friction 0.98)
(sp-int spt-timer 650)
(sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-12)
(sp-int spt-next-time 40)
(sp-launcher-by-id spt-next-launcher 1286)
(sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 3600.0) 1.0)
(sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 3600.0) 1.0)
(sp-rnd-flt spt-conerot-radius (meters 0) (meters 1) 1.0)
)
)
(defpart 1286
:init-specs ((sp-rnd-flt spt-fade-a -0.053333335 -0.053333335 1.0))
)
(defpartgroup group-ruins-tower-splash
:id 292
:duration (seconds 2)
:flags (use-local-clock)
:bounds (static-bspherem 0 0 0 32)
:parts ((sp-item 1287 :period 900 :length 40)
(sp-item 1287 :period 900 :length 30)
(sp-item 1287 :period 900 :length 20)
(sp-item 1287 :period 900 :length 10)
(sp-item 1287 :period 900 :length 5)
(sp-item 1288 :flags (is-3d) :period 900 :length 30)
(sp-item 1289 :flags (is-3d) :period 900 :length 30)
)
)
(defpart 1289
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x2c :page #xc))
(sp-flt spt-num 3.0)
(sp-rnd-flt spt-x (meters 0) (meters 16) 1.0)
(sp-flt spt-y (meters 0))
(sp-rnd-flt spt-scale-x (meters 5) (meters 10) 1.0)
(sp-rnd-flt spt-rot-y (degrees 0.0) (degrees 360.0) 1.0)
(sp-copy-from-other spt-scale-y -4)
(sp-flt spt-r 128.0)
(sp-flt spt-g 128.0)
(sp-flt spt-b 128.0)
(sp-rnd-flt spt-a 32.0 32.0 1.0)
(sp-rnd-flt spt-scalevel-x (meters 0.033333335) (meters 0.05) 1.0)
(sp-copy-from-other spt-scalevel-y -4)
(sp-rnd-flt spt-fade-a -0.053333335 -0.053333335 1.0)
(sp-int spt-timer 1200)
(sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-12)
(sp-rnd-flt spt-rotate-y (degrees 0.0) (degrees 3600.0) 1.0)
)
)
(defpart 1288
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x33 :page #xc))
(sp-flt spt-num 2.0)
(sp-rnd-flt spt-y (meters 0) (meters 4) 1.0)
(sp-flt spt-scale-x (meters 20))
(sp-rnd-flt spt-rot-y (degrees 0.0) (degrees 360.0) 1.0)
(sp-copy-from-other spt-scale-y -4)
(sp-flt spt-r 128.0)
(sp-flt spt-g 128.0)
(sp-flt spt-b 128.0)
(sp-flt spt-a 64.0)
(sp-rnd-flt spt-vel-y (meters 0.05) (meters 0.016666668) 1.0)
(sp-rnd-flt spt-scalevel-x (meters 0.25) (meters 0.25) 1.0)
(sp-copy-from-other spt-scalevel-y -4)
(sp-flt spt-fade-a -0.53333336)
(sp-flt spt-accel-y -20.48)
(sp-int spt-timer 240)
(sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-12)
)
)
(defpart 1287
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x21 :page #xc))
(sp-flt spt-num 16.0)
(sp-flt spt-y (meters 3))
(sp-rnd-flt spt-scale-x (meters 0.6) (meters 0.05) 1.0)
(sp-int spt-rot-x 4)
(sp-copy-from-other spt-scale-y -4)
(sp-flt spt-r 255.0)
(sp-flt spt-g 255.0)
(sp-flt spt-b 255.0)
(sp-rnd-flt spt-a 16.0 32.0 1.0)
(sp-rnd-flt spt-omega 8.192 4.096 1.0)
(sp-rnd-flt spt-vel-y (meters 0.23333333) (meters 0.26666668) 1.0)
(sp-rnd-flt spt-accel-y -20.48 -2.7306666 1.0)
(sp-flt spt-friction 0.95)
(sp-int spt-timer 1200)
(sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-12)
(sp-flt spt-userdata 0.0)
(sp-func spt-func 'check-drop-level-ruins-tower-userdata)
(sp-rnd-flt spt-conerot-x (degrees 70.0) (degrees 15.0) 1.0)
(sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 3600.0) 1.0)
(sp-rnd-flt spt-conerot-radius (meters 0) (meters 4) 1.0)
)
)
(defpart 1290
:init-specs ((sp-rnd-flt spt-r 64.0 64.0 1.0)
(sp-flt spt-g 0.0)
(sp-rnd-flt spt-b 128.0 128.0 1.0)
(sp-flt spt-fade-r -6.4)
(sp-flt spt-fade-b -12.8)
(sp-int-plain-rnd spt-next-time 0 224 1)
(sp-launcher-by-id spt-next-launcher 1290)
)
)
(defpart 1291
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x2c :page #xc))
(sp-flt spt-num 0.3)
(sp-rnd-flt spt-scale-x (meters 2) (meters 2.5) 1.0)
(sp-rnd-flt spt-rot-y (degrees 0.0) (degrees 360.0) 1.0)
(sp-copy-from-other spt-scale-y -4)
(sp-flt spt-r 255.0)
(sp-flt spt-g 255.0)
(sp-flt spt-b 255.0)
(sp-flt spt-a 0.0)
(sp-rnd-flt spt-scalevel-x (meters 0.04) (meters 0.013333334) 1.0)
(sp-copy-from-other spt-scalevel-y -4)
(sp-flt spt-fade-a 6.4)
(sp-int spt-timer 150)
(sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-12)
(sp-int spt-next-time 20)
(sp-launcher-by-id spt-next-launcher 1292)
)
)
(defpart 1292
:init-specs ((sp-rnd-flt spt-fade-a -0.53333336 -0.53333336 1.0))
)
(defun check-drop-level-ruins-tower-userdata-nosplat ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 vector))
"TODO - docs"
(when (< (-> arg2 y) (-> arg1 user-float))
(let ((vec (new 'stack-no-clear 'vector)))
(sp-kill-particle arg0 arg1)
(set! (-> vec x) (-> arg2 x))
(set! (-> vec y) (-> arg1 user-float))
(set! (-> vec z) (-> arg2 z))
(set! (-> vec w) 1.0)
)
)
(sparticle-motion-blur arg0 arg1 arg2)
(none)
)
(defun check-drop-level-ruins-tower-userdata ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 vector))
"TODO - docs"
(when (< (-> arg2 y) (-> arg1 user-float))
(let ((vec (new 'stack-no-clear 'vector)))
(sp-kill-particle arg0 arg1)
(set-vector! vec (-> arg2 x) (-> arg1 user-float) (-> arg2 z) 1.0)
(let ((t9-1 sp-launch-particles-var)
(a0-3 *sp-particle-system-3d*)
(a1-2 (-> *part-id-table* 1291))
(a2-1 *launch-matrix*)
)
(set! (-> a2-1 trans quad) (-> vec quad))
(t9-1 a0-3 a1-2 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0)
)
)
)
(sparticle-motion-blur arg0 arg1 arg2)
(none)
)
(defpartgroup group-ruins-tower-trailer-small
:id 293
:bounds (static-bspherem 0 0 0 15)
:parts ((sp-item 1293))
)
(defpartgroup group-ruins-tower-explosion-small
:id 294
:duration (seconds 3)
:linger-duration (seconds 2)
:flags (use-local-clock)
:bounds (static-bspherem 0 0 0 15)
:parts ((sp-item 1294 :period 9600 :length 25)
(sp-item 1295 :period 9600 :length 10 :offset 10)
(sp-item 1296 :period 9600 :length 100 :offset 25)
(sp-item 1297 :period 9600 :length 35 :offset 10)
(sp-item 1298 :period 9600 :length 50 :offset 15)
(sp-item 1299 :period 9600 :length 50 :offset 15)
)
)
(defpartgroup group-ruins-tower-explosion-medium
:id 295
:duration (seconds 3)
:linger-duration (seconds 2)
:flags (use-local-clock)
:bounds (static-bspherem 0 0 0 15)
:parts ((sp-item 1294 :period 9600 :length 25)
(sp-item 1295 :period 9600 :length 10 :offset 10)
(sp-item 1296 :period 9600 :length 100 :offset 25)
(sp-item 1297 :period 9600 :length 35 :offset 10)
(sp-item 1298 :period 9600 :length 50 :offset 15)
(sp-item 1299 :period 9600 :length 50 :offset 15)
)
)
(defpartgroup group-ruins-tower-explosion-large
:id 296
:duration (seconds 3)
:linger-duration (seconds 2)
:flags (use-local-clock)
:bounds (static-bspherem 0 0 0 15)
:parts ((sp-item 1294 :period 9600 :length 25)
(sp-item 1295 :period 9600 :length 10 :offset 10)
(sp-item 1296 :period 9600 :length 100 :offset 25)
(sp-item 1297 :period 9600 :length 35 :offset 10)
(sp-item 1298 :period 9600 :length 50 :offset 15)
(sp-item 1299 :period 9600 :length 50 :offset 15)
)
)
(defpart 1297
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #xc9 :page #xc))
(sp-flt spt-num 32.0)
(sp-rnd-flt spt-y (meters -3.5) (meters 2) 1.0)
(sp-flt spt-scale-x (meters 3.5))
(sp-int spt-rot-x 4)
(sp-rnd-flt spt-scale-y (meters 0.3) (meters 0.5) 1.0)
(sp-rnd-flt spt-r 64.0 128.0 1.0)
(sp-copy-from-other spt-g -1)
(sp-copy-from-other spt-b -1)
(sp-rnd-flt spt-a 64.0 32.0 1.0)
(sp-flt spt-omega 12.288)
(sp-rnd-flt spt-vel-y (meters 0.5) (meters 0.6666667) 1.0)
(sp-flt spt-fade-b -8.0)
(sp-rnd-flt spt-accel-y -13.653334 -6.826667 1.0)
(sp-rnd-flt spt-friction 0.9 0.08 1.0)
(sp-int-plain-rnd spt-timer 450 299 1)
(sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-12)
(sp-func spt-func 'sparticle-motion-blur)
(sp-int spt-next-time 15)
(sp-launcher-by-id spt-next-launcher 1300)
(sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 140.0) 1.0)
(sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 3600.0) 1.0)
(sp-flt spt-rotate-y (degrees 0.0))
)
)
(defpart 1300
:init-specs ((sp-rnd-flt spt-fade-a -0.096 -0.096 1.0))
)
(defpart 1299
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x34 :page #xc))
(sp-rnd-flt spt-num 8.0 5.0 1.0)
(sp-flt spt-y (meters -2.5))
(sp-rnd-flt spt-scale-x (meters 13) (meters 12) 1.0)
(sp-int spt-rot-x 4)
(new 'static 'sp-field-init-spec
:field (sp-field-id spt-rot-z)
:flags (sp-flag spflag7)
:random-rangef 65536.0
:random-multf 1.0
)
(sp-rnd-flt spt-scale-y (meters 18) (meters 14) 1.0)
(sp-rnd-flt spt-r 64.0 128.0 1.0)
(sp-copy-from-other spt-g -1)
(sp-copy-from-other spt-b -1)
(sp-rnd-flt spt-a 16.0 16.0 1.0)
(sp-rnd-flt spt-vel-y (meters 0.2) (meters 0.5) 1.0)
(sp-rnd-flt spt-scalevel-x (meters 0.06666667) (meters 0.06666667) 1.0)
(sp-copy-from-other spt-scalevel-y -4)
(sp-flt spt-fade-a -0.26666668)
(sp-rnd-flt spt-friction 0.92 0.02 1.0)
(sp-int spt-timer 1000)
(sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-12)
(sp-func spt-func 'sparticle-motion-blur)
(sp-int spt-next-time 25)
(sp-launcher-by-id spt-next-launcher 1301)
(new 'static 'sp-field-init-spec
:field (sp-field-id spt-conerot-x)
:flags (sp-flag from-pointer)
:func '*sp-temp*
)
(sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 3600.0) 1.0)
(sp-flt spt-rotate-y (degrees 0.0))
(sp-rnd-flt spt-conerot-radius (meters 0) (meters 2) 1.0)
)
)
(defpart 1301
:init-specs ((sp-rnd-flt spt-scalevel-x (meters 0.033333335) (meters 0.033333335) 1.0)
(sp-copy-from-other spt-scalevel-y -4)
(sp-int-plain-rnd spt-next-time 30 9 1)
(sp-launcher-by-id spt-next-launcher 1302)
)
)
(defpart 1302
:init-specs ((sp-rnd-flt spt-scalevel-x (meters 0.016666668) (meters 0.016666668) 1.0)
(sp-copy-from-other spt-scalevel-y -4)
(sp-rnd-flt spt-fade-a -0.225 -0.225 1.0)
)
)
(defpart 1298
:init-specs ((sp-func spt-birth-func 'birth-func-texture-group)
(sp-rnd-flt spt-num 8.0 5.0 1.0)
(sp-flt spt-y (meters -2.5))
(sp-rnd-flt spt-scale-x (meters 13) (meters 12) 1.0)
(new 'static 'sp-field-init-spec
:field (sp-field-id spt-rot-z)
:flags (sp-flag spflag7)
:random-rangef 655360.0
:random-multf 1.0
)
(sp-rnd-flt spt-scale-y (meters 18) (meters 14) 1.0)
(sp-rnd-flt spt-r 64.0 128.0 1.0)
(sp-copy-from-other spt-g -1)
(sp-copy-from-other spt-b -1)
(sp-rnd-flt spt-a 16.0 16.0 1.0)
(sp-rnd-flt spt-vel-y (meters 0.2) (meters 0.5) 1.0)
(sp-rnd-flt spt-scalevel-x (meters 0.06666667) (meters 0.06666667) 1.0)
(sp-copy-from-other spt-scalevel-y -4)
(sp-flt spt-fade-a -0.26666668)
(sp-rnd-flt spt-friction 0.92 0.02 1.0)
(sp-int spt-timer 1000)
(sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-12)
(new 'static 'sp-field-init-spec
:field (sp-field-id spt-userdata)
:flags (sp-flag plain-v2)
:object (new 'static 'boxed-array :type int32 40 1 0 #xc00000 #xc03300)
)
(sp-int spt-next-time 25)
(sp-launcher-by-id spt-next-launcher 1301)
(new 'static 'sp-field-init-spec
:field (sp-field-id spt-conerot-x)
:flags (sp-flag from-pointer)
:func '*sp-temp*
)
(sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 3600.0) 1.0)
(sp-flt spt-rotate-y (degrees 0.0))
(sp-rnd-flt spt-conerot-radius (meters 0) (meters 2) 1.0)
)
)
(defpart 1296
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x32 :page #xc))
(sp-rnd-flt spt-num 6.0 8.0 1.0)
(sp-flt spt-x (meters 0.25))
(sp-flt spt-y (meters -2.5))
(sp-rnd-flt spt-scale-x (meters 3) (meters 5) 1.0)
(sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0)
(sp-copy-from-other spt-scale-y -4)
(sp-rnd-flt spt-r 64.0 128.0 1.0)
(sp-copy-from-other spt-g -1)
(sp-copy-from-other spt-b -1)
(sp-rnd-flt spt-a 16.0 48.0 1.0)
(sp-rnd-flt spt-vel-y (meters 0.33333334) (meters 0.5) 1.0)
(sp-rnd-flt spt-scalevel-x (meters 0.033333335) (meters 0.033333335) 1.0)
(sp-rnd-flt spt-rotvel-z (degrees -0.12) (degrees 0.24) 1.0)
(sp-copy-from-other spt-scalevel-y -4)
(sp-rnd-flt spt-accel-y -1.3653333 -9.557333 1.0)
(sp-rnd-flt spt-friction 0.88 0.02 1.0)
(sp-int spt-timer 3000)
(sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-12)
(sp-int-plain-rnd spt-next-time 35 14 1)
(sp-launcher-by-id spt-next-launcher 1303)
(sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 3600.0) 1.0)
(sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 3600.0) 1.0)
(sp-flt spt-rotate-y (degrees 0.0))
(sp-rnd-flt spt-conerot-radius (meters 5) (meters 20) 1.0)
)
)
(defpart 1303
:init-specs ((sp-flt spt-scalevel-x (meters 0.016666668))
(sp-copy-from-other spt-scalevel-y -4)
(sp-int-plain-rnd spt-next-time 45 14 1)
(sp-launcher-by-id spt-next-launcher 1304)
)
)
(defpart 1304
:init-specs ((sp-flt spt-scalevel-x (meters 0.006666667))
(sp-copy-from-other spt-scalevel-y -4)
(sp-rnd-flt spt-fade-a -0.10666667 -0.10666667 1.0)
)
)
(defpart 1294
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :page #xc))
(sp-rnd-flt spt-num 4.0 4.0 1.0)
(sp-rnd-flt spt-x (meters 0) (meters 0.6) 1.0)
(sp-flt spt-y (meters -2.5))
(sp-rnd-flt spt-scale-x (meters 16.5) (meters 20) 1.0)
(sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 3600.0) 1.0)
(sp-copy-from-other spt-scale-y -4)
(sp-rnd-flt spt-r 64.0 128.0 1.0)
(sp-copy-from-other spt-g -1)
(sp-copy-from-other spt-b -1)
(sp-flt spt-a 0.0)
(sp-rnd-flt spt-vel-y (meters 0.33333334) (meters 0.4) 1.0)
(sp-rnd-flt spt-scalevel-x (meters 0.06666667) (meters 0.06666667) 1.0)
(sp-rnd-flt spt-rotvel-z (degrees -0.12) (degrees 0.24) 1.0)
(sp-copy-from-other spt-scalevel-y -4)
(sp-rnd-flt spt-fade-a 0.32 0.32 1.0)
(sp-rnd-flt spt-friction 0.89 0.04 1.0)
(sp-int spt-timer 2400)
(sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-12)
(sp-int-plain-rnd spt-next-time 35 14 1)
(sp-launcher-by-id spt-next-launcher 1305)
(sp-rnd-flt spt-conerot-x (degrees -1440.0) (degrees 2880.0) 1.0)
(sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 3600.0) 1.0)
(sp-flt spt-rotate-y (degrees 0.0))
)
)
(defpart 1305
:init-specs ((sp-flt spt-scalevel-x (meters 0.033333335))
(sp-copy-from-other spt-scalevel-y -4)
(sp-flt spt-fade-a 0.0)
(sp-int-plain-rnd spt-next-time 600 599 1)
(sp-launcher-by-id spt-next-launcher 1306)
)
)
(defpart 1306
:init-specs ((sp-flt spt-scalevel-x (meters 0.016666668))
(sp-copy-from-other spt-scalevel-y -4)
(sp-rnd-flt spt-fade-a -0.026666667 -0.026666667 1.0)
)
)
(defpart 1295
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x31 :page #xc))
(sp-flt spt-num 4.0)
(sp-flt spt-y (meters -2.5))
(sp-rnd-flt spt-scale-x (meters 16) (meters 16) 1.0)
(sp-int spt-rot-x 4)
(sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0)
(sp-rnd-flt spt-scale-y (meters 1) (meters 0.5) 1.0)
(sp-rnd-flt spt-r 64.0 128.0 1.0)
(sp-copy-from-other spt-g -1)
(sp-copy-from-other spt-b -1)
(sp-rnd-flt spt-a 64.0 64.0 1.0)
(sp-rnd-flt spt-scalevel-x (meters 0.26666668) (meters 0.33333334) 1.0)
(sp-flt spt-fade-a -0.7111111)
(sp-int spt-timer 90)
(sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-12)
)
)
(defpartgroup group-ruins-tower-trailer-medium
:id 297
:bounds (static-bspherem 0 0 0 15)
:parts ((sp-item 1293))
)
(defpart 1293
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :page #xc))
(sp-rnd-flt spt-num 0.5 0.6 1.0)
(sp-rnd-flt spt-y (meters 0) (meters -10) 1.0)
(sp-rnd-flt spt-scale-x (meters 12) (meters 12) 1.0)
(sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 3600.0) 1.0)
(sp-copy-from-other spt-scale-y -4)
(sp-rnd-flt spt-r 64.0 128.0 1.0)
(sp-copy-from-other spt-g -1)
(sp-copy-from-other spt-b -1)
(sp-flt spt-a 0.0)
(sp-rnd-flt spt-vel-y (meters 0) (meters 0.05) 1.0)
(sp-rnd-flt spt-scalevel-x (meters 0.026666667) (meters 0.04) 1.0)
(sp-rnd-flt spt-rotvel-z (degrees -0.3) (degrees 0.6) 1.0)
(sp-copy-from-other spt-scalevel-y -4)
(sp-rnd-flt spt-fade-a 0.16 0.16 1.0)
(sp-rnd-flt spt-accel-y -1.024 -0.4096 1.0)
(sp-flt spt-friction 0.98)
(sp-int spt-timer 1200)
(sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-12)
(sp-int spt-next-time 150)
(sp-launcher-by-id spt-next-launcher 1286)
(sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 3600.0) 1.0)
(sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 3600.0) 1.0)
(sp-rnd-flt spt-conerot-radius (meters 0) (meters 16) 1.0)
)
)
(defpart 1307
:init-specs ((sp-rnd-flt spt-fade-a -0.04 -0.04 1.0))
)
(defpartgroup group-ruins-tower-splash-medium
:id 298
:duration (seconds 2)
:flags (use-local-clock)
:bounds (static-bspherem 0 0 0 32)
:parts ((sp-item 1287 :period 900 :length 40)
(sp-item 1287 :period 900 :length 30)
(sp-item 1287 :period 900 :length 20)
(sp-item 1287 :period 900 :length 10)
(sp-item 1287 :period 900 :length 5)
(sp-item 1288 :flags (is-3d) :period 900 :length 30)
(sp-item 1289 :flags (is-3d) :period 900 :length 30)
)
)
(defpartgroup group-ruins-tower-splash-large
:id 299
:duration (seconds 2)
:flags (use-local-clock)
:bounds (static-bspherem 0 0 0 32)
:parts ((sp-item 1287 :period 900 :length 40)
(sp-item 1287 :period 900 :length 30)
(sp-item 1287 :period 900 :length 20)
(sp-item 1287 :period 900 :length 10)
(sp-item 1287 :period 900 :length 5)
(sp-item 1288 :flags (is-3d) :period 900 :length 30)
(sp-item 1289 :flags (is-3d) :period 900 :length 30)
)
)
(defpartgroup group-ruins-tower-splash-small
:id 300
:duration (seconds 0.267)
:flags (use-local-clock)
:bounds (static-bspherem 0 0 0 15)
:parts ((sp-item 1287 :period 900 :length 40)
(sp-item 1287 :period 900 :length 30)
(sp-item 1287 :period 900 :length 20)
(sp-item 1287 :period 900 :length 10)
(sp-item 1287 :period 900 :length 5)
(sp-item 1288 :flags (is-3d) :period 900 :length 30)
(sp-item 1289 :flags (is-3d) :period 900 :length 30)
)
)
(defpartgroup group-ruins-tower-trailer-large
:id 301
:bounds (static-bspherem 0 0 0 15)
:parts ((sp-item 1308))
)
(defpart 1308
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :page #xc))
(sp-rnd-flt spt-num 0.5 0.6 1.0)
(sp-rnd-flt spt-scale-x (meters 20) (meters 20) 1.0)
(sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 3600.0) 1.0)
(sp-copy-from-other spt-scale-y -4)
(sp-rnd-flt spt-r 64.0 128.0 1.0)
(sp-copy-from-other spt-g -1)
(sp-copy-from-other spt-b -1)
(sp-flt spt-a 0.0)
(sp-rnd-flt spt-vel-y (meters 0.013333334) (meters 0.06666667) 1.0)
(sp-rnd-flt spt-scalevel-x (meters 0.04) (meters 0.053333335) 1.0)
(sp-rnd-flt spt-rotvel-z (degrees -0.3) (degrees 0.6) 1.0)
(sp-copy-from-other spt-scalevel-y -4)
(sp-rnd-flt spt-fade-a 0.16 0.16 1.0)
(sp-rnd-flt spt-accel-y -1.024 -0.4096 1.0)
(sp-flt spt-friction 0.98)
(sp-int spt-timer 1200)
(sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-12)
(sp-int spt-next-time 150)
(sp-launcher-by-id spt-next-launcher 1286)
(sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 3600.0) 1.0)
(sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 3600.0) 1.0)
(sp-rnd-flt spt-conerot-radius (meters 0) (meters 16) 1.0)
)
)