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

;; name: ctywide-part.gc
;; name in dgo: ctywide-part
;; dgos: CWI

;; DECOMP BEGINS

(deftype ctywide-part (part-spawner)
  ()
  )


(deftype citywide-part (part-spawner)
  ()
  )


(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
                                            )
                    )
              )
            )
          ;; og:preserve-this
          (#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 (race-sign-03 ctywide-sprite))
    (: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 (race-sign-03 ctywide-sprite))
    (: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 (race-sign-03 ctywide-sprite))
    (: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 (race-sign-03 ctywide-sprite))
    (: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 (glow effects))
    (: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 (glow effects))
    (: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 (glow effects))
    (: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.xyz vf1 vf0 vf2)
             (.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.xyz vf1 vf0 vf2)
              (.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 (hotdot effects))
    (: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 (glow-soft effects))
    (: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 (ticker-a ctywide-sprite))
    (: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 (ticker-b ctywide-sprite))
    (: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 (ticker-c ctywide-sprite))
    (: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 (ticker-d ctywide-sprite))
    (: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 (ticker-e ctywide-sprite))
    (: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 (glow-soft effects))
    (: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 (baron-propoganda-logo ctywide-sprite))
    (: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 (baron-propoganda-logo ctywide-sprite))
    (: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 (burning-bush-off ctywide-sprite))
    (:num 1.0)
    (:y (meters 6))
    (:z (meters -0.02))
    (:scale-x (meters 4.5) (meters 0.1))
    (:rot-x (degrees 90))
    (:rot-z (degrees 0))
    (:scale-y :copy scale-x)
    (:r 128.0)
    (:g 255.0)
    (:b 255.0)
    (:a 64.0 32.0)
    (:timer (seconds 0.017))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-12 left-multiply-quat))
    (:rotate-y (degrees 0))
    )
  )

(defpart 827
  :init-specs ((:texture (rod-of-god effects))
    (: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 (common-white common))
    (:num 1.0)
    (:y (meters 6))
    (:z (meters -0.05))
    (:scale-x (meters 5))
    (:rot-x (degrees -90))
    (:rot-y (degrees 90))
    (:rot-z (degrees 90))
    (:scale-y (meters 6))
    (:r 255.0)
    (:g 128.0)
    (:b 0.0)
    (:a 0.0 8.0)
    (:timer (seconds 0.017))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-4 sp-cpuinfo-flag-12 left-multiply-quat))
    (:rotate-y (degrees 0))
    )
  )

(defpart 826
  :init-specs ((:texture (burning-bush-off ctywide-sprite))
    (:num 1.0)
    (:y (meters 6))
    (:z (meters 0.02))
    (:scale-x (meters 5) (meters 0.1))
    (:rot-x (degrees 90))
    (:rot-y (degrees 90))
    (:rot-z (degrees 90))
    (:scale-y :copy scale-x)
    (:r 255.0)
    (:g 255.0)
    (:b 255.0)
    (:a 16.0 8.0)
    (:timer (seconds 0.017))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-4 sp-cpuinfo-flag-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 (rod-of-god effects))
    (: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 (lightning-darkjak effects))
    (: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 (lightning-darkjak effects))
    (: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 (burning-bush-underground ctywide-sprite))
    (: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 (rod-of-god effects))
    (: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 (burning-bush-underground ctywide-sprite))
    (: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 (explosion-nebula effects))
    (: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 (glow-soft effects))
    (: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 (glow effects))
    (: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 (glow effects))
    (: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 (glow effects))
    (: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 (glow effects))
    (: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 (glow effects))
    (: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 (glow effects))
    (: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 (glow effects))
    (: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 (bigpuff effects))
    (: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 (bigpuff effects))
    (: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))
  )
