jak-project/goal_src/jak2/levels/city/ctywide-part.gc
ManDude ebd8643d28
rework jak 2 goal file structure (#2806)
Changes the DGO build order so that the city gets compiled first, and a
random guess at an "order" of which levels people might edit more often.
Most of the data-only borrow files are moved to the end as well.

Also moves around files in the `goal_src` tree to a structure that makes
a bit more sense, some files were either in the completely wrong place,
their folders had strange names, were too deep for no reason or were
just too far away from other relevant files. This structure should make
it easier to guess a file's location.
2023-07-06 15:23:25 +01:00

1160 lines
32 KiB
Common Lisp

;;-*-Lisp-*-
(in-package goal)
;; name: ctywide-part.gc
;; name in dgo: ctywide-part
;; dgos: CWI
;; DECOMP BEGINS
(deftype ctywide-part (part-spawner)
()
:heap-base #x30
:method-count-assert 16
:size-assert #xb0
:flag-assert #x10003000b0
)
(deftype citywide-part (part-spawner)
()
:heap-base #x30
:method-count-assert 16
:size-assert #xb0
:flag-assert #x10003000b0
)
(defun birth-func-race-poster ((arg0 sparticle-system)
(arg1 sparticle-cpuinfo)
(arg2 sprite-vec-data-3d)
(arg3 sparticle-launcher)
(arg4 sparticle-launch-state)
)
(let ((s4-0 (the-as object (-> arg1 user-float))))
(when (nonzero? (the-as float s4-0))
(let ((s3-0 2))
(cond
((task-node-closed? (game-task-node stadium-race-class1-resolution))
(set! s3-0 3)
)
((task-node-closed? (game-task-node stadium-race-class2-resolution))
(set! s3-0 0)
)
((task-node-closed? (game-task-node stadium-race-class3-resolution))
(set! s3-0 1)
)
)
(let ((s4-1 (-> (the-as (array int32) s4-0) (+ s3-0 3))))
(when (nonzero? s4-1)
(let* ((f30-0 200.0)
(f28-0 (floor f30-0))
(f1-0 (* 0.00024414062 (vector-vector-distance (-> arg2 x-y-z-sx) (math-camera-pos))))
(f0-1 (/ f1-0 f28-0))
)
(set! (-> arg2 r-g-b-a w) (if (>= f30-0 f1-0)
(* 128.0 (- 1.0 f0-1))
0.0
)
)
)
)
(#when PC_PORT
(unless (-> *pc-settings* ps2-parts?)
(set! (-> arg2 r-g-b-a w) 128.0)))
(particle-adgif-callback (-> arg1 adgif) (the-as texture-id s4-1))
)
)
)
)
0
(none)
)
(defpartgroup group-ctywide-race-poster-extra-small
:id 165
:flags (unk-4)
:bounds (static-bspherem 0 0 0 6)
:parts ((sp-item 806 :fade-after (meters 200) :flags (is-3d bit6 bit7)))
)
(defpart 806
:init-specs ((:texture (new 'static 'texture-id :index #x7a :page #x45e))
(:birth-func 'birth-func-race-poster)
(:num 1.0)
(:scale-x (meters 6))
(:scale-y (meters 6))
(:r 90.0)
(:g 90.0)
(:b 90.0)
(:a 128.0)
(:omega (degrees 0.2774048))
(:timer (seconds 0.005))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12 left-multiply-quat))
(:userdata :data (new 'static 'boxed-array :type int32 5 0 0 #x45e07c00 #x45e07900 #x45e07a00 #x45e07d00))
(:rotate-y (degrees 0))
)
)
(defpartgroup group-ctywide-race-poster-small
:id 166
:flags (unk-4)
:bounds (static-bspherem 0 0 0 6)
:parts ((sp-item 807 :fade-after (meters 200) :flags (is-3d bit6 bit7)))
)
(defpart 807
:init-specs ((:texture (new 'static 'texture-id :index #x7a :page #x45e))
(:birth-func 'birth-func-race-poster)
(:num 1.0)
(:scale-x (meters 8))
(:scale-y (meters 8))
(:r 90.0)
(:g 90.0)
(:b 90.0)
(:a 128.0)
(:timer (seconds 0.005))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12 left-multiply-quat))
(:userdata :data (new 'static 'boxed-array :type int32 5 0 0 #x45e07c00 #x45e07900 #x45e07a00 #x45e07d00))
(:rotate-y (degrees 0))
)
)
(defpartgroup group-ctywide-race-poster-medium
:id 167
:flags (unk-4)
:bounds (static-bspherem 0 0 0 9)
:parts ((sp-item 808 :fade-after (meters 200) :flags (is-3d bit6 bit7)))
)
(defpart 808
:init-specs ((:texture (new 'static 'texture-id :index #x7a :page #x45e))
(:birth-func 'birth-func-race-poster)
(:num 1.0)
(:scale-x (meters 12))
(:scale-y (meters 12))
(:r 90.0)
(:g 90.0)
(:b 90.0)
(:a 128.0)
(:timer (seconds 0.005))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12 left-multiply-quat))
(:userdata :data (new 'static 'boxed-array :type int32 5 0 0 #x45e07c00 #x45e07900 #x45e07a00 #x45e07d00))
(:rotate-y (degrees 0))
)
)
(defpartgroup group-ctywide-race-poster-large
:id 168
:flags (unk-4)
:bounds (static-bspherem 0 0 0 18)
:parts ((sp-item 809 :fade-after (meters 200) :flags (is-3d bit6 bit7)))
)
(defpart 809
:init-specs ((:texture (new 'static 'texture-id :index #x7a :page #x45e))
(:birth-func 'birth-func-race-poster)
(:num 1.0)
(:scale-x (meters 32))
(:scale-y (meters 32))
(:r 90.0)
(:g 90.0)
(:b 90.0)
(:a 128.0)
(:timer (seconds 0.005))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12 left-multiply-quat))
(:userdata :data (new 'static 'boxed-array :type int32 5 0 0 #x45e07c00 #x45e07900 #x45e07a00 #x45e07d00))
(:rotate-y (degrees 0))
)
)
(defpartgroup group-ctywide-stadium-light
:id 169
:bounds (static-bspherem 0 0 0 64)
:parts ((sp-item 810 :flags (bit6) :hour-mask #b111111111110000000)
(sp-item 811 :flags (bit6) :hour-mask #b111111111110000000)
)
)
(defpart 810
:init-specs ((:texture (new 'static 'texture-id :index #xbb :page #xc))
(:num 1.0)
(:scale-x (meters 48.5) (meters 0.1))
(:rot-x (degrees 45))
(:rot-z (degrees -17))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 255.0)
(:b 255.0)
(:a 32.0)
(:omega (degrees 45018))
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 0.0)
)
)
(defpart 811
:init-specs ((:texture (new 'static 'texture-id :index #xbb :page #xc))
(:num 1.0)
(:scale-x (meters 96) (meters 0.1))
(:rot-x (degrees 78.75))
(:rot-z (degrees -17))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 255.0 255.0)
(:b 255.0)
(:a 8.0)
(:omega (degrees 45018))
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 0.0)
)
)
(defpartgroup group-ctywide-baron-propoganda-holo
:id 170
:flags (unk-4)
:bounds (static-bspherem 0 0 0 12)
:parts ((sp-item 818 :flags (is-3d bit6 bit7))
(sp-item 819 :fade-after (meters 150) :flags (bit6 bit7))
(sp-item 820 :binding 812)
(sp-item 812 :flags (bit1 start-dead launch-asap) :binding 813)
(sp-item 812 :flags (bit1 start-dead launch-asap) :binding 814)
(sp-item 812 :flags (bit1 start-dead launch-asap) :binding 815)
(sp-item 812 :flags (bit1 start-dead launch-asap) :binding 816)
(sp-item 812 :flags (bit1 start-dead launch-asap) :binding 817)
(sp-item 812 :flags (bit1 start-dead launch-asap) :binding 813)
(sp-item 812 :flags (bit1 start-dead launch-asap) :binding 814)
(sp-item 812 :flags (bit1 start-dead launch-asap) :binding 815)
(sp-item 812 :flags (bit1 start-dead launch-asap) :binding 816)
(sp-item 812 :flags (bit1 start-dead launch-asap) :binding 817)
(sp-item 812 :flags (bit1 start-dead launch-asap) :binding 813)
(sp-item 812 :flags (bit1 start-dead launch-asap) :binding 814)
(sp-item 812 :flags (bit1 start-dead launch-asap) :binding 815)
(sp-item 812 :flags (bit1 start-dead launch-asap) :binding 816)
(sp-item 812 :flags (bit1 start-dead launch-asap) :binding 817)
(sp-item 812 :flags (bit1 start-dead launch-asap) :binding 813)
(sp-item 812 :flags (bit1 start-dead launch-asap) :binding 814)
(sp-item 812 :flags (bit1 start-dead launch-asap) :binding 815)
(sp-item 812 :flags (bit1 start-dead launch-asap) :binding 816)
(sp-item 812 :flags (bit1 start-dead launch-asap) :binding 817)
(sp-item 813 :flags (is-3d bit1 start-dead))
(sp-item 814 :flags (is-3d bit1 start-dead))
(sp-item 815 :flags (is-3d bit1 start-dead))
(sp-item 816 :flags (is-3d bit1 start-dead))
(sp-item 817 :flags (is-3d bit1 start-dead))
(sp-item 813 :flags (is-3d bit1 start-dead))
(sp-item 814 :flags (is-3d bit1 start-dead))
(sp-item 815 :flags (is-3d bit1 start-dead))
(sp-item 816 :flags (is-3d bit1 start-dead))
(sp-item 817 :flags (is-3d bit1 start-dead))
(sp-item 813 :flags (is-3d bit1 start-dead))
(sp-item 814 :flags (is-3d bit1 start-dead))
(sp-item 815 :flags (is-3d bit1 start-dead))
(sp-item 816 :flags (is-3d bit1 start-dead))
(sp-item 817 :flags (is-3d bit1 start-dead))
(sp-item 813 :flags (is-3d bit1 start-dead))
(sp-item 814 :flags (is-3d bit1 start-dead))
(sp-item 815 :flags (is-3d bit1 start-dead))
(sp-item 816 :flags (is-3d bit1 start-dead))
(sp-item 817 :flags (is-3d bit1 start-dead))
(sp-item 821 :flags (is-3d bit6 bit7))
(sp-item 822 :fade-after (meters 150) :flags (bit6))
)
)
(defpart 822
:init-specs ((:texture (new 'static 'texture-id :index #xbb :page #xc))
(:num 0.9 0.1)
(:y (meters 3.1))
(:scale-x (meters 2) (meters 1))
(:rot-x (degrees 2.25))
(:rot-z (degrees 17) (degrees 8))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 128.0 1 128.0)
(:b 0.0 128.0)
(:a 16.0 16.0)
(:omega (degrees 3386.25))
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14 glow))
(:userdata 2048.0)
)
)
(defun birth-func-ctywide-baron-propoganda-ticker-rotate ((arg0 sparticle-system)
(arg1 sparticle-cpuinfo)
(arg2 sprite-vec-data-3d)
(arg3 sparticle-launcher)
(arg4 sparticle-launch-state)
)
(local-vars (v1-6 float) (v1-7 float))
(rlet ((vf0 :class vf)
(vf1 :class vf)
(vf2 :class vf)
)
(init-vf0-vector)
(let ((s5-0 (-> arg4 sprite)))
(let ((s4-0 (new 'stack-no-clear 'quaternion)))
(let* ((v1-0 arg2)
(f0-0 (-> v1-0 qx-qy-qz-sy x))
(f1-0 (-> v1-0 qx-qy-qz-sy y))
(f2-0 (-> v1-0 qx-qy-qz-sy z))
)
(set! (-> s4-0 x) f0-0)
(set! (-> s4-0 y) f1-0)
(set! (-> s4-0 z) f2-0)
(set! (-> s4-0 w) (sqrtf (- (- (- 1.0 (* f2-0 f2-0)) (* f1-0 f1-0)) (* f0-0 f0-0))))
)
(quaternion-rotate-y! s4-0 s4-0 (+ 8192.0 (-> s5-0 sprite flag-rot-sy z)))
(let ((v1-5 arg2))
(cond
((< (-> s4-0 w) 0.0)
(.lvf vf1 (&-> v1-5 qx-qy-qz-sy quad))
(.lvf vf2 (&-> s4-0 quad))
(.sub.vf vf1 vf0 vf2 :mask #b111)
(.svf (&-> v1-5 qx-qy-qz-sy quad) vf1)
(.mov v1-6 vf1)
)
(else
(.lvf vf1 (&-> v1-5 qx-qy-qz-sy quad))
(.lvf vf2 (&-> s4-0 quad))
(.add.vf vf1 vf0 vf2 :mask #b111)
(.svf (&-> v1-5 qx-qy-qz-sy quad) vf1)
(.mov v1-7 vf1)
)
)
)
)
(set! (-> arg2 r-g-b-a w) (-> s5-0 sprite r-g-b-a w))
)
0
(none)
)
)
(defpart 820
:init-specs ((:texture (new 'static 'texture-id :index #xc9 :page #xc))
(:num 0.1)
(:y (meters 5))
(:scale-x (meters 0.1))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 0.0)
(:b 0.0)
(:a 128.0)
(:timer (seconds 2))
(:flags (sp-cpuinfo-flag-3 sp-cpuinfo-flag-14))
)
)
(defpart 812
:init-specs ((:texture (new 'static 'texture-id :index #xca :page #xc))
(:num 1.0)
(:x (meters 0))
(:y (meters 0))
(:z (meters 2))
(:scale-x (meters 2))
(:scale-y :copy scale-x)
(:r 32.0)
(:g 32.0)
(:b 96.0)
(:a 0.0)
(:omega (degrees 45))
(:vel-x (meters 0.02))
(:vel-y (meters 0))
(:vel-z (meters 0))
(:rotvel-z (degrees 0.45))
(:fade-a 0.8)
(:timer (seconds 2))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 ready-to-launch sp-cpuinfo-flag-14))
(:next-time (seconds 0.267))
(:next-launcher 823)
)
)
(defpart 823
:init-specs ((:a 64.0) (:fade-a 0.0) (:next-time (seconds 1.467)) (:next-launcher 824))
)
(defpart 824
:init-specs ((:fade-a -0.8))
)
(defpart 813
:init-specs ((:texture (new 'static 'texture-id :index #x6f :page #x45e))
(:birth-func 'birth-func-ctywide-baron-propoganda-ticker-rotate)
(:num 1.0)
(:y (meters 0))
(:scale-x (meters 0.65))
(:rot-x (degrees 90))
(:scale-y :copy scale-x)
(:r 64.0)
(:g 64.0)
(:b 64.0)
(:a 128.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14))
)
)
(defpart 814
:init-specs ((:texture (new 'static 'texture-id :index #x70 :page #x45e))
(:birth-func 'birth-func-ctywide-baron-propoganda-ticker-rotate)
(:num 1.0)
(:y (meters 0))
(:scale-x (meters 0.65))
(:rot-x (degrees 90))
(:scale-y :copy scale-x)
(:r 64.0)
(:g 64.0)
(:b 64.0)
(:a 128.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14))
)
)
(defpart 815
:init-specs ((:texture (new 'static 'texture-id :index #x71 :page #x45e))
(:birth-func 'birth-func-ctywide-baron-propoganda-ticker-rotate)
(:num 1.0)
(:y (meters 0))
(:scale-x (meters 0.65))
(:rot-x (degrees 90))
(:scale-y :copy scale-x)
(:r 64.0)
(:g 64.0)
(:b 64.0)
(:a 128.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14))
)
)
(defpart 816
:init-specs ((:texture (new 'static 'texture-id :index #x72 :page #x45e))
(:birth-func 'birth-func-ctywide-baron-propoganda-ticker-rotate)
(:num 1.0)
(:y (meters 0))
(:scale-x (meters 0.65))
(:rot-x (degrees 90))
(:scale-y :copy scale-x)
(:r 64.0)
(:g 64.0)
(:b 64.0)
(:a 128.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14))
)
)
(defpart 817
:init-specs ((:texture (new 'static 'texture-id :index #x73 :page #x45e))
(:birth-func 'birth-func-ctywide-baron-propoganda-ticker-rotate)
(:num 1.0)
(:y (meters 0))
(:scale-x (meters 0.65))
(:rot-x (degrees 90))
(:scale-y :copy scale-x)
(:r 0.0)
(:g 0.0)
(:b 0.0)
(:a 128.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14))
)
)
(defpart 819
:init-specs ((:texture (new 'static 'texture-id :index #xca :page #xc))
(:num 1.0)
(:y (meters 6))
(:scale-x (meters 10) (meters 0.1))
(:rot-x (degrees 11.25))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 96.0 96.0)
(:b :copy g)
(:a 20.0 4.0)
(:omega (degrees 3386.25))
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14 glow))
(:userdata 10240.0)
)
)
(defpart 818
:init-specs ((:texture (new 'static 'texture-id :index #x74 :page #x45e))
(:num 1.0)
(:y (meters 6))
(:z (meters 0.05))
(:scale-x (meters 4.5) (meters 0.1))
(:rot-x (degrees 90))
(:rot-z (degrees 0))
(:scale-y :copy scale-x)
(:r 192.0)
(:g 0.0 64.0)
(:b :copy g)
(:a 96.0 16.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14 left-multiply-quat))
(:rotate-y (degrees 0))
)
)
(defpart 821
:init-specs ((:texture (new 'static 'texture-id :index #x74 :page #x45e))
(:num 1.0)
(:y (meters 5.75))
(:z (meters 0.05))
(:scale-x (meters 6.5) (meters 0.5))
(:rot-x (degrees 80) (degrees 4))
(:rot-y (degrees 90))
(:rot-z (degrees 90))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 32.0)
(:b 16.0)
(:a 32.0 16.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-4 sp-cpuinfo-flag-14 left-multiply-quat))
(:rotate-y (degrees 0))
)
)
(defpartgroup group-ctywide-burning-bush-holo-off
:id 171
:flags (unk-4)
:bounds (static-bspherem 0 0 0 12)
:parts ((sp-item 825 :flags (is-3d bit6 bit7))
(sp-item 826 :flags (is-3d bit6 bit7))
(sp-item 827 :flags (is-3d bit6 bit7))
(sp-item 828 :flags (is-3d bit6 bit7))
)
)
(defpart 825
:init-specs ((:texture (new 'static 'texture-id :index #x7b :page #x45e))
(:num 1.0)
(:y (meters 6))
(:z (meters -0.02))
(:scale-x (meters 4.5) (meters 0.1))
(:rot-x (degrees 90))
(:rot-z (degrees 0))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 255.0)
(:b 255.0)
(:a 64.0 32.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-12 left-multiply-quat))
(:rotate-y (degrees 0))
)
)
(defpart 827
:init-specs ((:texture (new 'static 'texture-id :index #xd3 :page #xc))
(:num 1.0)
(:y (meters 6))
(:z (meters 0.05))
(:scale-x (meters 5))
(:rot-x (degrees 90))
(:rot-y (degrees 90))
(:rot-z (degrees 90))
(:scale-y (meters 6))
(:r 64.0 64.0)
(:g 128.0 128.0)
(:b 255.0)
(:a 32.0 32.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12 left-multiply-quat))
(:rotate-y (degrees 0))
)
)
(defpart 828
:init-specs ((:texture (new 'static 'texture-id :index #x9b :page #xb))
(:num 1.0)
(:y (meters 6))
(:z (meters -0.05))
(:scale-x (meters 5))
(:rot-x (degrees -90))
(:rot-y (degrees 90))
(:rot-z (degrees 90))
(:scale-y (meters 6))
(:r 255.0)
(:g 128.0)
(:b 0.0)
(:a 0.0 8.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-4 sp-cpuinfo-flag-12 left-multiply-quat))
(:rotate-y (degrees 0))
)
)
(defpart 826
:init-specs ((:texture (new 'static 'texture-id :index #x7b :page #x45e))
(:num 1.0)
(:y (meters 6))
(:z (meters 0.02))
(:scale-x (meters 5) (meters 0.1))
(:rot-x (degrees 90))
(:rot-y (degrees 90))
(:rot-z (degrees 90))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 255.0)
(:b 255.0)
(:a 16.0 8.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-4 sp-cpuinfo-flag-12 left-multiply-quat))
(:rotate-y (degrees 0))
)
)
(defpartgroup group-ctywide-burning-bush-holo-red
:id 172
:flags (unk-4)
:bounds (static-bspherem 0 0 0 12)
:parts ((sp-item 829 :flags (is-3d bit6 bit7)) (sp-item 830 :fade-after (meters 150) :flags (bit6 bit7)))
)
(defpart 829
:init-specs ((:texture (new 'static 'texture-id :index #xd3 :page #xc))
(:num 1.0)
(:y (meters 5))
(:z (meters 0.05))
(:scale-x (meters 5))
(:rot-x (degrees 90))
(:rot-y (degrees 90))
(:rot-z (degrees 90))
(:scale-y (meters 4))
(:r 255.0)
(:g 0.0)
(:b 0.0)
(:a 64.0 32.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-12 left-multiply-quat))
(:rotate-y (degrees 0))
)
)
(defpart 830
:init-specs ((:texture (new 'static 'texture-id :index #x84 :page #xc))
(:num 2.0 4.0)
(:x (meters -2.25) (meters 4.5))
(:y (meters 4.5))
(:scale-x (meters 1))
(:rot-z (degrees 0) 1 (degrees 180))
(:scale-y (meters 3) (meters 1.5))
(:r 255.0)
(:g 0.0)
(:b 0.0)
(:a 0.0)
(:fade-a 1.6)
(:timer (seconds 0.135))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3))
(:next-time (seconds 0.067))
(:next-launcher 831)
(:rotate-y (degrees 0) 1 (degrees 180))
)
)
(defpartgroup group-ctywide-burning-bush-holo-on
:id 173
:flags (unk-4)
:bounds (static-bspherem 0 0 0 12)
:parts ((sp-item 832 :flags (is-3d bit6 bit7))
(sp-item 833 :flags (is-3d bit6 bit7))
(sp-item 834 :flags (is-3d bit6 bit7))
(sp-item 835 :fade-after (meters 150) :flags (bit6 bit7))
)
)
(defpart 835
:init-specs ((:texture (new 'static 'texture-id :index #x84 :page #xc))
(:num 2.0 4.0)
(:x (meters -2.25) (meters 4.5))
(:y (meters 5.5) (meters 0.5))
(:scale-x (meters 1))
(:rot-z (degrees 0) 1 (degrees 180))
(:scale-y (meters 6))
(:r 128.0 1 128.0)
(:g 255.0)
(:b 128.0)
(:a 0.0)
(:fade-a 1.6)
(:timer (seconds 0.135))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3))
(:next-time (seconds 0.067))
(:next-launcher 831)
(:rotate-y (degrees 0) 1 (degrees 180))
)
)
(defpart 831
:init-specs ((:fade-a -1.6))
)
(defpart 832
:init-specs ((:texture (new 'static 'texture-id :index #x78 :page #x45e))
(:num 1.0)
(:y (meters 6))
(:z (meters -0.02))
(:scale-x (meters 3.5) (meters 0.1))
(:rot-x (degrees 90))
(:rot-z (degrees 0))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 255.0)
(:b 0.0)
(:a 128.0 32.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-12 left-multiply-quat))
(:rotate-y (degrees 0))
)
)
(defpart 834
:init-specs ((:texture (new 'static 'texture-id :index #xd3 :page #xc))
(:num 1.0)
(:y (meters 6))
(:z (meters 0.05))
(:scale-x (meters 5))
(:rot-x (degrees 90))
(:rot-y (degrees 90))
(:rot-z (degrees 90))
(:scale-y (meters 6))
(:r 255.0)
(:g 0.0)
(:b 128.0)
(:a 32.0 64.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-12 left-multiply-quat))
(:rotate-y (degrees 0))
)
)
(defpart 833
:init-specs ((:texture (new 'static 'texture-id :index #x78 :page #x45e))
(:num 1.0)
(:y (meters 6))
(:z (meters 0.02))
(:scale-x (meters 4) (meters 0.1))
(:rot-x (degrees 90))
(:rot-y (degrees 90))
(:rot-z (degrees 90))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 255.0)
(:b 255.0)
(:a 64.0 16.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-4 sp-cpuinfo-flag-12 left-multiply-quat))
(:rotate-y (degrees 0))
)
)
(defpartgroup group-ctywide-palace-high-fire
:id 174
:flags (unk-8)
:bounds (static-bspherem 0 2 0 5)
:parts ((sp-item 836 :fade-after (meters 500) :falloff-to (meters 600))
(sp-item 837 :fade-after (meters 500) :flags (bit6))
)
)
(defpart 836
:init-specs ((:texture (new 'static 'texture-id :index #x33 :page #xc))
(:birth-func 'birth-func-texture-group)
(:num 1.0)
(:x (meters 0) (meters 1.5))
(:y (meters 0) (meters 2))
(:scale-x (meters 4) (meters 2))
(:scale-y (meters 4) (meters 2))
(:r 128.0 64.0)
(:g 64.0 64.0)
(:b 0.0 32.0)
(:a 32.0 32.0)
(:vel-x (meters 0) (meters -0.0033333334))
(:scalevel-x (meters -0.009375))
(:rotvel-z (degrees -0.2) (degrees 0.4))
(:scalevel-y :copy scalevel-x)
(:fade-g -0.7111111)
(:fade-a -0.1 -0.1)
(:accel-y (meters 0.00083333335) (meters 0.00066666666))
(:timer (seconds 0.535) (seconds 0.165))
(:flags (sp-cpuinfo-flag-3))
(:userdata :data (new 'static 'boxed-array :type int32 40 1 0 #xc00000 #xc00000 #xc03300))
(:conerot-x (degrees 0) (degrees 360))
(:conerot-y (degrees 0) (degrees 360))
(:rotate-y (degrees 0) (degrees 3600))
(:conerot-radius (meters 0) (meters 0.05))
)
)
(defpart 837
:init-specs ((:texture (new 'static 'texture-id :index #xca :page #xc))
(:num 0.5)
(:y (meters 4))
(:scale-x (meters 16) (meters 0.5))
(:rot-x (degrees 0.225))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 128.0 64.0)
(:g 64.0 64.0)
(:b 0.0 32.0)
(:a 16.0 16.0)
(:scalevel-x (meters -0.0016666667))
(:scalevel-y :copy scalevel-x)
(:fade-g -0.7111111)
(:fade-a -1.0666667)
(:timer (seconds 0.085))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:conerot-x (degrees 0) (degrees 360))
(:conerot-y (degrees 0) (degrees 360))
(:conerot-radius (meters 0) (meters 0.05))
)
)
(defpartgroup group-ctywide-misc-citylights-red-1
:id 175
:flags (use-local-clock)
:bounds (static-bspherem 0 0 0 16)
:parts ((sp-item 838 :flags (bit6) :period (seconds 4) :length (seconds 0.017) :hour-mask #b111111111110000000))
)
(defpartgroup group-ctywide-misc-citylights-red-2
:id 176
:flags (use-local-clock)
:bounds (static-bspherem 0 0 0 16)
:parts ((sp-item 838 :flags (bit6) :period (seconds 4) :length (seconds 0.017) :offset 400 :hour-mask #b111111111110000000)
)
)
(defpartgroup group-ctywide-misc-citylights-red-3
:id 177
:flags (use-local-clock)
:bounds (static-bspherem 0 0 0 16)
:parts ((sp-item 838 :flags (bit6) :period (seconds 4) :length (seconds 0.017) :offset 800 :hour-mask #b111111111110000000)
)
)
(defpart 838
:init-specs ((:texture (new 'static 'texture-id :index #xbb :page #xc))
(:num 1.0)
(:scale-x (meters 7.5))
(:rot-x (degrees 11.25))
(:scale-y (meters 6))
(:r 255.0)
(:g 0.0 32.0)
(:b 0.0)
(:a 8.0)
(:omega (degrees 67515.75))
(:scalevel-x (meters 0.075))
(:scalevel-y (meters 0.06))
(:fade-a 0.08)
(:timer (seconds 4))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 2048.0)
(:next-time (seconds 0.335))
(:next-launcher 839)
)
)
(defpart 839
:init-specs ((:scale-y (meters 12))
(:a 16.0)
(:scalevel-x (meters 0))
(:scalevel-y (meters 0))
(:fade-a 0.0)
(:next-time (seconds 2))
(:next-launcher 840)
)
)
(defpart 840
:init-specs ((:scalevel-x (meters -0.075))
(:scalevel-y (meters -0.06))
(:fade-a -0.08)
(:next-time (seconds 0.335))
(:next-launcher 841)
)
)
(defpart 841
:init-specs ((:scale-y (meters 6)) (:a 8.0) (:scalevel-x (meters 0)) (:scalevel-y (meters 0)) (:fade-a 0.0))
)
(defpartgroup group-ctywide-misc-citylights-blue-1
:id 178
:flags (use-local-clock)
:bounds (static-bspherem 0 0 0 16)
:parts ((sp-item 842 :flags (bit6) :period (seconds 4) :length (seconds 0.017) :hour-mask #b111111111110000000))
)
(defpartgroup group-ctywide-misc-citylights-blue-2
:id 179
:flags (use-local-clock)
:bounds (static-bspherem 0 0 0 16)
:parts ((sp-item 842 :flags (bit6) :period (seconds 4) :length (seconds 0.017) :offset 400 :hour-mask #b111111111110000000)
)
)
(defpartgroup group-ctywide-misc-citylights-blue-3
:id 180
:flags (use-local-clock)
:bounds (static-bspherem 0 0 0 16)
:parts ((sp-item 842 :flags (bit6) :period (seconds 4) :length (seconds 0.017) :offset 800 :hour-mask #b111111111110000000)
)
)
(defpart 842
:init-specs ((:texture (new 'static 'texture-id :index #xbb :page #xc))
(:num 1.0)
(:scale-x (meters 7.5))
(:rot-x (degrees 11.25))
(:scale-y (meters 6))
(:r 0.0)
(:g 128.0 32.0)
(:b 255.0)
(:a 8.0)
(:omega (degrees 67515.75))
(:scalevel-x (meters 0.075))
(:scalevel-y (meters 0.06))
(:fade-a 0.08)
(:timer (seconds 4))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 2048.0)
(:next-time (seconds 0.335))
(:next-launcher 839)
)
)
(defpartgroup group-ctywide-cable-lights
:id 181
:bounds (static-bspherem 0 0 0 16)
:parts ((sp-item 843 :fade-after (meters 3000) :flags (bit6) :hour-mask #b111111111110000000))
)
(defpart 843
:init-specs ((:texture (new 'static 'texture-id :index #xbb :page #xc))
(:num 1.0)
(:y (meters 2))
(:scale-x (meters 12) (meters 4))
(:rot-x (degrees 56.25))
(:rot-z (degrees 17))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 196.0 64.0)
(:b 64.0)
(:a 20.0 8.0)
(:omega (degrees 67515.75))
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 2048.0)
)
)
(defpartgroup group-slums-seal-of-mar-glow
:id 182
:flags (unk-6)
:bounds (static-bspherem 0 0 0 2)
:rotate ((degrees 90) (degrees 0) (degrees 90))
:parts ((sp-item 844) (sp-item 845) (sp-item 846 :flags (bit7)))
)
(defpart 844
:init-specs ((:texture (new 'static 'texture-id :index #xbb :page #xc))
(:num 0.5)
(:z (meters -0.05))
(:scale-x (meters 0.9) (meters 0.25))
(:rot-x (degrees 2.25))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 96.0 32.0)
(:g 64.0 16.0)
(:b 12.0 4.0)
(:a 16.0 16.0)
(:fade-a -1.1)
(:timer (seconds 0.167))
(:flags (sp-cpuinfo-flag-2 glow))
(:userdata 2048.0)
)
)
(defpart 845
:init-specs ((:texture (new 'static 'texture-id :index #xbb :page #xc))
(:num 0.5)
(:z (meters 0.05))
(:scale-x (meters 0.5) (meters 0.25))
(:rot-x (degrees 2.25))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 96.0 32.0)
(:g 64.0 16.0)
(:b 12.0 4.0)
(:a 12.0 12.0)
(:fade-a -0.48)
(:timer (seconds 0.167))
(:flags (sp-cpuinfo-flag-2 glow))
(:userdata 2048.0)
)
)
(defpart 846
:init-specs ((:texture (new 'static 'texture-id :index #xbb :page #xc))
(:num 4.0 2.0)
(:x (meters 0.2))
(:scale-x (meters 0.01) (meters 0.0025))
(:scale-y :copy scale-x)
(:r 196.0 32.0)
(:g :copy r)
(:b :copy g)
(:a 128.0 128.0)
(:vel-x (meters 0.02) (meters 0.02))
(:fade-a -0.42666668 -0.42666668)
(:timer (seconds 2))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3))
(:rotate-y (degrees 0) (degrees 3600))
)
)
(defpartgroup group-ctywide-chimney
:id 183
:flags (unk-8)
:bounds (static-bspherem 0 0 -10 64)
:parts ((sp-item 847 :fade-after (meters 600) :falloff-to (meters 600))
(sp-item 848 :fade-after (meters 600) :flags (bit6))
)
)
(defpart 848
:init-specs ((:texture (new 'static 'texture-id :index #xbb :page #xc))
(:num 1.0)
(:y (meters 1))
(:scale-x (meters 24) (meters 1.1))
(:rot-x (degrees 11.25))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 240.0)
(:b 100.0)
(:a 12.0 4.0)
(:omega (degrees 13513.499))
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 16384.0)
)
)
(defpart 847
:init-specs ((:texture (new 'static 'texture-id :page #xc))
(:birth-func 'birth-func-texture-group)
(:num 0.0 0.3)
(:scale-x (meters 2) (meters 1))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 255.0)
(:b 255.0)
(:a 32.0 32.0)
(:vel-y (meters 0.03) (meters 0.01))
(:scalevel-x (meters 0.053333335) (meters 0.053333335))
(:rotvel-z (degrees -0.2) (degrees 0.4))
(:scalevel-y :copy scalevel-x)
(:fade-r 0.0)
(:fade-g -0.36)
(:fade-b -4.24)
(:fade-a -0.053333335 -0.053333335)
(:accel-x (meters -0.001) (meters -0.00033333333))
(:accel-y (meters 0.0001) (meters 0.0001))
(:friction 0.96)
(:timer (seconds 8))
(:flags (sp-cpuinfo-flag-2))
(:userdata :data (new 'static 'boxed-array :type int32 40 1 0 #xc00000 #xc00000 #xc03300))
(:next-time (seconds 0.085) (seconds 0.015))
(:next-launcher 849)
)
)
(defpart 849
:init-specs ((:fade-r 0.0) (:fade-g 0.0) (:fade-b 0.0) (:next-time (seconds 0.035) (seconds 0.13)) (:next-launcher 850))
)
(defpart 850
:init-specs ((:scalevel-x (meters 0.026666667) (meters 0.026666667))
(:scalevel-y :copy scalevel-x)
(:fade-r -0.14666666)
(:fade-g -0.7866667)
(:fade-b -0.88)
(:next-time (seconds 0.35) (seconds 0.147))
(:next-launcher 851)
)
)
(defpart 851
:init-specs ((:scalevel-x (meters 0.013333334) (meters 0.013333334))
(:scalevel-y :copy scalevel-x)
(:fade-r -1.2944444)
(:fade-g -0.7111111)
(:fade-b -0.094444446)
(:next-time (seconds 0.5) (seconds 0.097))
(:next-launcher 852)
)
)
(defpart 852
:init-specs ((:fade-r 0.0) (:fade-g 0.0) (:fade-b 0.0) (:fade-a -0.024))
)
(defpartgroup group-ctywide-chimney-smoke
:id 184
:flags (unk-8)
:bounds (static-bspherem 0 0 -12 48)
:parts ((sp-item 853 :fade-after (meters 950) :falloff-to (meters 1200)))
)
(defpart 853
:init-specs ((:texture (new 'static 'texture-id :page #xc))
(:birth-func 'birth-func-texture-group)
(:num 0.0 0.5)
(:scale-x (meters 2) (meters 1))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 0.0 128.0)
(:g :copy r)
(:b :copy g)
(:a 24.0 24.0)
(:vel-y (meters 0.03) (meters 0.01))
(:scalevel-x (meters 0.026666667) (meters 0.026666667))
(:rotvel-z (degrees -0.2) (degrees 0.4))
(:scalevel-y :copy scalevel-x)
(:fade-r -0.21333334)
(:fade-g -0.21333334)
(:fade-b -0.21333334)
(:fade-a -0.026666667 -0.026666667)
(:accel-x (meters -0.001) (meters -0.00033333333))
(:accel-y (meters 0.0001) (meters 0.0001))
(:friction 0.96)
(:timer (seconds 6))
(:flags (sp-cpuinfo-flag-2))
(:userdata :data (new 'static 'boxed-array :type int32 40 1 0 #xc00000 #xc00000 #xc03300))
(:next-time (seconds 0.25) (seconds 0.015))
(:next-launcher 854)
)
)
(defpart 854
:init-specs ((:scalevel-x (meters 0.026666667) (meters 0.026666667))
(:scalevel-y :copy scalevel-x)
(:next-time (seconds 0.35) (seconds 0.147))
(:next-launcher 855)
)
)
(defpart 855
:init-specs ((:scalevel-x (meters 0.026666667) (meters 0.026666667)) (:scalevel-y :copy scalevel-x))
)