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

2220 lines
67 KiB
Common Lisp

;;-*-Lisp-*-
(in-package goal)
;; name: ctywide-scenes.gc
;; name in dgo: ctywide-scenes
;; dgos: CWI
(define-extern set-darkjak-highres-texture-morph! (function float symbol))
(define-extern *range-fma-city-barrier-explo-big-color* curve-color-fast)
(define-extern *range-fma-city-barrier-explo-big-alpha* curve2d-fast)
(define-extern *range-fma-city-barrier-explo-big-scale-x* curve2d-fast)
(define-extern *range-fma-city-barrier-explo-big-scale-y* curve2d-fast)
(define-extern *curve-fma-city-barrier-explo-big-alpha* curve2d-fast)
(define-extern *curve-fma-city-barrier-explo-big-scale-x* curve2d-fast)
(define-extern *curve-fma-city-barrier-explo-big-scale-y* curve2d-fast)
;; DECOMP BEGINS
(defskelgroup skel-cara-movie cara cara-lod0-jg cara-idle-ja
((cara-lod0-mg (meters 20)) (cara-lod0-mg (meters 40)) (cara-lod0-mg (meters 999999)))
:bounds (static-spherem 0 0 0 6.8)
:shadow cara-shadow-mg
:origin-joint-index 3
)
(load-scene (new 'static 'scene
:name "sewer-met-hum-intro"
:extra #f
:info #f
:scene-flags (scene-flags scf1 scf2 scf3 scf4)
:mask-to-clear (process-mask movie projectile)
:entity "scene-stage-192"
:art-group "scenecamera"
:anim "sewer-met-hum-intro"
:parts 17
:command-list '((572 (part-tracker
"group-barrier-hand-shock"
entity
"jakc-highres"
joint
"rringA"
track
#t
duration
(frame-range 572 608)
)
)
(1930 (fadeout (frame-time-30 10)))
(10000 (task-close! "sewer-met-hum-introduction"))
)
:cut-list '(1 61 149 198 227 398 533 616 758 903 1001 1033 1103 1285 1412 1508 1547 1728 1794)
:wait-ground-time (seconds 1)
:actor (new 'static 'boxed-array :type scene-actor
(new 'static 'scene-actor
:name "scenecamera"
:level #f
:art-group "skel-scenecamera"
:prefix ""
:draw-frames '((min max))
:scissor-frames '()
:shadow-frames '((min max))
:cloth-reset-frames '()
:cloth-commands '()
:camera 4
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "sidekick-highres"
:level 'slumbset
:art-group "skel-sidekick-highres"
:prefix ""
:draw-frames '((min max))
:scissor-frames '()
:shadow-frames '((min max))
:cloth-reset-frames '()
:cloth-commands '()
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "jakc-highres"
:level 'slumbset
:art-group "skel-jakc-highres"
:prefix ""
:draw-frames '((min max))
:scissor-frames '()
:shadow-frames '((min max))
:cloth-reset-frames '(227 1103)
:cloth-commands '()
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
:no-draw-seg #x80
)
(new 'static 'scene-actor
:name "samos-highres"
:level 'lsamos
:art-group "skel-samos-highres"
:prefix ""
:draw-frames '((min max))
:scissor-frames '()
:shadow-frames '((min max))
:cloth-reset-frames '()
:cloth-commands '()
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "keira-highres"
:level 'slumbset
:art-group "skel-keira-highres"
:prefix ""
:draw-frames '((min max))
:scissor-frames '()
:shadow-frames '((min max))
:cloth-reset-frames '()
:cloth-commands '()
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
)
:load-point "ctygenb-samos"
:end-point "ctygenb-samos"
:borrow '((ctywide 4 lsamos special))
:sfx-volume -1.0
:ambient-volume 0.5
:music-volume -1.0
:music-delay 1500.0
:on-running '(begin (sound-play-loop "genb-mov-amb") ("barrier-mov-amb"))
:on-complete #f
)
)
(set! (-> *lightning-spec-id-table* 21) (new 'static 'lightning-spec
:name "darkjak-punch-lightning"
:flags (lightning-spec-flags lsf0)
:start-color (new 'static 'rgba :r #x80 :g #x80 :b #x80 :a #x80)
:end-color (new 'static 'rgba :r #x80 :g #x80 :b #x80 :a #x80)
:fade-to-color (new 'static 'rgba :r #xbf :b #x8f :a #x5)
:fade-start-factor 0.2
:texture (new 'static 'texture-id :index #x3a :page #x4)
:reduction 0.42
:num-points 32
:box-size 3686.4
:merge-factor 0.5
:merge-count 2
:radius 409.6
:duration 30.0
:sound (static-sound-spec "shock" :group 0)
)
)
(load-scene
(new 'static 'scene
:name "city-get-dark-punch"
:extra #f
:info #f
:scene-flags (scene-flags scf1 scf2 scf3 scf4)
:mask-to-clear (process-mask movie projectile)
:entity "scene-stage-189"
:art-group "scenecamera"
:anim "city-get-dark-punch"
:parts 5
:command-list '((0
(fma-sphere (nav kill-once) sphere (new 'static 'sphere :x -1554249.8 :y 40071.58 :z 4844934.5 :r 81920.0))
(fadein (frame-time-30 2))
(send-event
"darkjak-highres"
'trans-hook
,(lambda :behavior scene-player
()
(let ((f0-0 (ja-aframe-num 0)))
(cond
((< f0-0 230.0)
(set-darkjak-highres-texture-morph! 0.0)
)
((and (>= f0-0 230.0) (>= 330.0 f0-0))
(set-darkjak-highres-texture-morph! (* 0.01 (+ -230.0 f0-0)))
)
(else
(set-darkjak-highres-texture-morph! 1.0)
)
)
)
(none)
)
)
)
(4 (part-tracker
"group-metal-head-egg-explosion"
entity
"particleman"
joint
"particleA"
track
#f
duration
(frame-range 4 23)
)
)
(10 (part-tracker
"group-fma-dark-eco-steam"
entity
"particleman"
joint
"particleA"
track
#f
duration
(frame-range 10 600)
)
)
(15 (part-tracker
"group-fma-hand-steam"
entity
"darkjak-highres"
joint
"sk_lhand"
track
#t
duration
(frame-range 15 388)
)
)
(17 (part-tracker
"group-fma-hand-steam"
entity
"darkjak-highres"
joint
"sk_rhand"
track
#t
duration
(frame-range 17 450)
)
)
(40 (part-tracker
"group-fma-dark-eco-fire"
entity
"darkjak-highres"
joint
"sk_lhand"
track
#t
duration
(frame-range 40 340)
)
)
(100 (part-tracker
"group-fma-dark-eco-fire"
entity
"darkjak-highres"
joint
"sk_rhand"
track
#t
duration
(frame-range 100 400)
)
)
(358 (part-tracker
"group-fma-dark-eco-fire-flash"
entity
"darkjak-highres"
joint
"sk_lhand"
track
#t
duration
(frame-range 358 359)
)
)
(359
(lightning-tracker
"darkjak-punch-lightning"
from-entity
"darkjak-highres"
to-entity
"particleman"
from-joint
"sk_lhand"
to-joint
"particleA"
duration
(frame-range 359 600)
)
(lightning-tracker
"darkjak-punch-lightning"
from-entity
"darkjak-highres"
to-entity
"mhcity-de-tower-egg"
from-joint
"sk_lhand"
to-joint
"main"
duration
(frame-range 359 600)
)
(lightning-tracker
"darkjak-punch-lightning"
from-entity
"darkjak-highres"
to-entity
"particleman"
from-joint
"sk_lhand"
to-joint
"particleA"
duration
(frame-range 359 600)
)
)
(400 (part-tracker
"group-fma-dark-eco-fire-flash"
entity
"darkjak-highres"
joint
"sk_rhand"
track
#t
duration
(frame-range 400 401)
)
)
(405
(lightning-tracker
"darkjak-punch-lightning"
from-entity
"darkjak-highres"
to-entity
"mhcity-de-tower-egg"
from-joint
"sk_rhand"
to-joint
"main"
duration
(frame-range 405 600)
)
(lightning-tracker
"darkjak-punch-lightning"
from-entity
"darkjak-highres"
to-entity
"particleman"
from-joint
"sk_rhand"
to-joint
"particleA"
duration
(frame-range 405 600)
)
(lightning-tracker
"darkjak-punch-lightning"
from-entity
"darkjak-highres"
to-entity
"mhcity-de-tower-egg"
from-joint
"sk_rhand"
to-joint
"main"
duration
(frame-range 405 600)
)
)
(590 (fadeout (frame-time-30 10)))
(10000 (task-close! "city-destroy-darkeco-dark-punch"))
)
:cut-list '()
:wait-ground-time (seconds 1)
:actor (new 'static 'boxed-array :type scene-actor
(new 'static 'scene-actor
:name "scenecamera"
:level #f
:art-group "skel-scenecamera"
:prefix ""
:draw-frames '((min max))
:scissor-frames '()
:shadow-frames '((min max))
:cloth-reset-frames '()
:cloth-commands '()
:camera 4
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "particleman"
:level 'mhctycst
:art-group "skel-particleman"
:prefix ""
:draw-frames '((min max))
:scissor-frames '()
:shadow-frames '((min max))
:cloth-reset-frames '()
:cloth-commands '()
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "darkjak-highres"
:level 'mhctycst
:art-group "skel-darkjak-highres"
:prefix ""
:draw-frames '((min max))
:scissor-frames '()
:shadow-frames '((min max))
:cloth-reset-frames '()
:cloth-commands '()
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
:no-draw-seg #xe0
)
(new 'static 'scene-actor
:name "sidekick-highres"
:level 'mhctycst
:art-group "skel-sidekick-highres"
:prefix ""
:draw-frames '((min max))
:scissor-frames '()
:shadow-frames '((min max))
:cloth-reset-frames '()
:cloth-commands '()
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "mhcity-de-tower-egg"
:level 'mhctycst
:art-group "skel-mhcity-de-tower-egg"
:prefix ""
:draw-frames '((min max))
:scissor-frames '()
:shadow-frames '((min max))
:cloth-reset-frames '()
:cloth-commands '()
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
)
:load-point "mhcitya-fma"
:end-point "mhcitya-end-darkeco"
:borrow '()
:sfx-volume -1.0
:ambient-volume -1.0
:music-volume -1.0
:music-delay 1500.0
:scene-task #x8f
:on-running #f
:on-complete #f
)
)
(defskelgroup skel-blue-gun-mod-three blue-gun-mod-three blue-gun-mod-three-lod0-jg blue-gun-mod-three-idle-ja
((blue-gun-mod-three-lod0-mg (meters 999999)))
:bounds (static-spherem 0 0 0 1)
:origin-joint-index 3
)
(load-scene
(new 'static 'scene
:name "city-destroy-grid-res"
:extra #f
:info #f
:scene-flags (scene-flags scf1 scf2 scf3 scf4)
:mask-to-clear (process-mask movie projectile)
:entity "scene-stage-212"
:art-group "scenecamera"
:anim "city-destroy-grid-res"
:parts 9
:command-list '((-30 (kill "krimson-wall-4") (kill "krimson-wall-5") (kill "krimson-wall-7") (fadein (frame-time-30 10)))
(1 (part-tracker
"group-fma-city-barrier-explosion-big"
entity
"particleman"
joint
"particleB"
track
#f
duration
(frame-range 1 30)
)
)
(121 (part-tracker
"group-fma-cigar-smoke"
entity
"jinx-highres"
joint
"cigsmoke"
track
#t
duration
(frame-range 121 500)
subsample-num
(new 'static 'bfloat :data 5.0)
)
)
(412
(part-tracker
"group-cara-thrusters"
entity
"particleman"
joint
"particleD"
track
#t
duration
(frame-range 412 500)
)
(part-tracker
"group-cara-thrusters"
entity
"particleman"
joint
"particleE"
track
#t
duration
(frame-range 412 500)
)
)
(500 (fadeout (frame-time-30 10)))
(10000 (send-event self 'user-data-set! (task-closed? "city-destroy-grid-resolution")))
)
:cut-list '(106 249 311)
:wait-ground-time (seconds 1)
:actor (new 'static 'boxed-array :type scene-actor
(new 'static 'scene-actor
:name "scenecamera"
:level #f
:art-group "skel-scenecamera"
:prefix ""
:draw-frames '((min max))
:scissor-frames '()
:shadow-frames '((min max))
:cloth-reset-frames '()
:cloth-commands '()
:camera 4
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "particleman"
:level 'gridcst
:art-group "skel-particleman"
:prefix ""
:draw-frames '((min max))
:scissor-frames '()
:shadow-frames '((min max))
:cloth-reset-frames '()
:cloth-commands '()
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "sidekick-highres"
:level 'gridcst
:art-group "skel-sidekick-highres"
:prefix ""
:draw-frames '((min max))
:scissor-frames '()
:shadow-frames '((min max))
:cloth-reset-frames '()
:cloth-commands '()
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "jakc-highres"
:level 'gridcst
:art-group "skel-jakc-highres"
:prefix ""
:draw-frames '((min max))
:scissor-frames '()
:shadow-frames '((min max))
:cloth-reset-frames '()
:cloth-commands '()
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
:no-draw-seg #x80
)
(new 'static 'scene-actor
:name "jinx-highres"
:level 'gridcst
:art-group "skel-jinx-highres"
:prefix ""
:draw-frames '((min max))
:scissor-frames '()
:shadow-frames '((min max))
:cloth-reset-frames '()
:cloth-commands '()
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "talk-box"
:level #f
:art-group "skel-talk-box"
:prefix ""
:draw-frames '((min max))
:scissor-frames '()
:shadow-frames '((min max))
:cloth-reset-frames '()
:cloth-commands '()
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "cara-movie"
:level 'gridcst
:art-group "skel-cara-movie"
:prefix ""
:draw-frames '((min max))
:scissor-frames '()
:shadow-frames '((min max))
:cloth-reset-frames '()
:cloth-commands '()
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
:no-draw-seg #x1fe
)
(new 'static 'scene-actor
:name "krimson-wall-break"
:level 'gridcst
:art-group "skel-krimson-wall-break"
:prefix ""
:draw-frames '((min max))
:scissor-frames '()
:shadow-frames '((min max))
:cloth-reset-frames '()
:cloth-commands '()
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "krimson-wall-break"
:level 'gridcst
:art-group "skel-krimson-wall-break"
:prefix "a-"
:draw-frames '((min max))
:scissor-frames '()
:shadow-frames '((min max))
:cloth-reset-frames '()
:cloth-commands '()
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "krimson-wall-break"
:level 'gridcst
:art-group "skel-krimson-wall-break"
:prefix "b-"
:draw-frames '((min max))
:scissor-frames '()
:shadow-frames '((min max))
:cloth-reset-frames '()
:cloth-commands '()
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "blue-gun-mod-three"
:level 'gridcst
:art-group "skel-blue-gun-mod-three"
:prefix ""
:draw-frames '((min max))
:scissor-frames '()
:shadow-frames '((min max))
:cloth-reset-frames '()
:cloth-commands '()
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
)
:load-point "ctyinda-grid-res-a"
:end-point "ctyinda-grid-res-b"
:borrow '()
:sfx-volume -1.0
:ambient-volume -1.0
:music-volume -1.0
:music-delay 1500.0
:on-running #f
:on-complete '(unless (send-event self 'user-data) (talker-spawn "powup010"))
)
)
(defskelgroup skel-h-kg-pickup-fma kg-pickup kg-pickup-lod0-jg kg-pickup-idle-ja
((kg-pickup-lod0-mg (meters 999999)))
:bounds (static-spherem 0 0 0 5.2)
:shadow kg-pickup-shadow-mg
:origin-joint-index 3
)
(defskelgroup skel-eco-canister-fma eco-canister eco-canister-dark-lod0-jg eco-canister-dark-idle-ja
((eco-canister-dark-lod0-mg (meters 999999)))
:bounds (static-spherem 0 0 0 0.3)
:origin-joint-index 3
)
(defskelgroup skel-mhcity-tower-door-break-fma mhcity-tower-door-break mhcity-tower-door-break-lod0-jg mhcity-tower-door-break-idle-ja
((mhcity-tower-door-break-lod0-mg (meters 999999)))
:bounds (static-spherem 0 0 0 1000)
:origin-joint-index 3
)
(defskelgroup skel-purple-three-fma purple-three purple-three-lod0-jg purple-three-idle-ja
((purple-three-lod0-mg (meters 999999)))
:bounds (static-spherem 0 0 0 1000)
:origin-joint-index 3
)
(load-scene (new 'static 'scene
:name "tower-destroy-intro"
:extra #f
:info #f
:scene-flags (scene-flags scf1 scf2 scf3 scf4)
:mask-to-clear (process-mask movie projectile)
:entity "scene-stage-193"
:art-group "scenecamera"
:anim "tower-destroy-intro"
:parts 8
:command-list '((0
(fadein (frame-time-30 10))
(kill "mhcity-tower-door-1")
(kill "mhcity-tower-door-2")
(apply ,(lambda :behavior scene-player
()
(if *target*
(process-drawable-show-all-cloth *target* #f)
)
(none)
)
)
)
(1 (kill "mhcity-tower-door-1"))
(182
(part-tracker
"group-pickup-sparks"
entity
"particleman"
joint
"particleC"
track
#f
duration
(frame-range 182 183)
)
)
(190
(part-tracker
"group-pickup-sparks"
entity
"particleman"
joint
"particleD"
track
#f
duration
(frame-range 190 191)
)
)
(196
(part-tracker
"group-truck-explosion"
entity
"particleman"
joint
"particleA"
track
#f
duration
(frame-range 196 226)
)
(part-tracker
"group-mhcity-door-explode"
entity
"particleman"
joint
"particleB"
track
#f
duration
(frame-range 196 226)
)
)
(680 (fadeout (frame-time-30 10)))
(10000
(apply ,(lambda :behavior scene-player
()
(if *target*
(process-drawable-show-all-cloth *target* #t)
)
(none)
)
)
(kill "mhcity-tower-door-2")
(send-event self 'user-data-set! (task-closed? "tower-destroy-introduction"))
(task-close! "tower-destroy-introduction")
)
)
:cut-list '(25 52 91 116 139 170 250 315 396 502 628)
:wait-ground-time (seconds 1)
:actor (new 'static 'boxed-array :type scene-actor
(new 'static 'scene-actor
:name "scenecamera"
:level #f
:art-group "skel-scenecamera"
:prefix ""
:draw-frames '((min max))
:scissor-frames '()
:shadow-frames '((min max))
:cloth-reset-frames '()
:cloth-commands '()
:camera 4
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "sidekick-highres"
:level 'towercst
:art-group "skel-sidekick-highres"
:prefix ""
:draw-frames '((min max))
:scissor-frames '()
:shadow-frames '((min max))
:cloth-reset-frames '()
:cloth-commands '()
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "jakc-highres"
:level 'towercst
:art-group "skel-jakc-highres"
:prefix ""
:draw-frames '((min max))
:scissor-frames '()
:shadow-frames '((min max))
:cloth-reset-frames '()
:cloth-commands '()
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
:no-draw-seg #x80
)
(new 'static 'scene-actor
:name "jinx-highres"
:level 'towercst
:art-group "skel-jinx-highres"
:prefix ""
:draw-frames '((min max))
:scissor-frames '()
:shadow-frames '((min max))
:cloth-reset-frames '()
:cloth-commands '()
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "sig-highres"
:level 'towercst
:art-group "skel-sig-highres"
:prefix ""
:draw-frames '((min max))
:scissor-frames '()
:shadow-frames '((min max))
:cloth-reset-frames '()
:cloth-commands '()
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "torn-highres"
:level 'towercst
:art-group "skel-torn-highres"
:prefix ""
:draw-frames '((min max))
:scissor-frames '()
:shadow-frames '((min max))
:cloth-reset-frames '()
:cloth-commands '()
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "h-kg-pickup-fma"
:level 'towercst
:art-group "skel-h-kg-pickup-fma"
:prefix ""
:draw-frames '((min max))
:scissor-frames '((min 25))
:shadow-frames '((min max))
:cloth-reset-frames '()
:cloth-commands '()
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "hellcat-movie"
:level 'towercst
:art-group "skel-hellcat-movie"
:prefix ""
:draw-frames '((min max))
:scissor-frames '()
:shadow-frames '((min max))
:cloth-reset-frames '()
:cloth-commands '()
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "eco-canister-fma"
:level 'ctywide
:art-group "skel-eco-canister-fma"
:prefix ""
:draw-frames '((min max))
:scissor-frames '()
:shadow-frames '((min max))
:cloth-reset-frames '()
:cloth-commands '()
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "mhcity-tower-door-break-fma"
:level 'towercst
:art-group "skel-mhcity-tower-door-break-fma"
:prefix ""
:draw-frames '((min max))
:scissor-frames '()
:shadow-frames '((min max))
:cloth-reset-frames '()
:cloth-commands '()
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "purple-three-fma"
:level 'towercst
:art-group "skel-purple-three-fma"
:prefix ""
:draw-frames '((min max))
:scissor-frames '()
:shadow-frames '((min max))
:cloth-reset-frames '()
:cloth-commands '()
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "particleman"
:level 'towercst
:art-group "skel-particleman"
:prefix ""
:draw-frames '((min max))
:scissor-frames '()
:shadow-frames '((min max))
:cloth-reset-frames '()
:cloth-commands '()
:shadow-flags -1
:shadow-volume-joint #f
)
)
:load-point "mhcityb-tower-fma"
:end-point "mhcityb-tower-fma-end"
:borrow '()
:sfx-volume -1.0
:ambient-volume -1.0
:music-volume -1.0
:music-delay 1500.0
:scene-task #xfd
:on-running '(begin (sound-play-loop "eco-amb-mov") (sound-play-loop "eco-bubbles-mov"))
:on-complete '(unless
(send-event self 'user-data)
(send-event *target* 'get-pickup (int 18) (float (new 'static 'bfloat :data 15.0)))
(talker-spawn "powup016")
)
)
)
(defpartgroup group-pickup-sparks
:id 298
:flags (sp0)
:bounds (static-bspherem 0 0 0 40)
:parts ((sp-item 1290))
)
(defpart 1290
:init-specs ((:texture (middot level-default-sprite))
(:num 20.0 20.0)
(:scale-x (meters 0.1) (meters 0.1))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 255.0)
(:b 255.0)
(:a 100.0 100.0)
(:omega (degrees 0.0225))
(:vel-z (meters -0.06666667) (meters -0.16666667))
(:fade-g -3.2)
(:fade-b -10.2)
(:accel-y (meters -0.00066666666))
(:friction 0.99)
(:timer (seconds 0.085) (seconds 0.165))
(:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3))
(:func 'sparticle-motion-blur)
(:conerot-x (degrees 30) (degrees 20))
(:conerot-y (degrees -10) (degrees 20))
)
)
(defpartgroup group-mhcity-door-explode
:id 299
:flags (sp0)
:bounds (static-bspherem 0 0 0 40)
:parts ((sp-item 1291 :flags (sp3))
(sp-item 1292 :period (seconds 20) :length (seconds 0.335))
(sp-item 1293 :period (seconds 20) :length (seconds 0.085))
)
)
(defpart 1291
:init-specs ((:texture (glow-soft level-default-sprite))
(:num 1.0)
(:scale-x (meters 30))
(:rot-x (degrees 225))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 255.0)
(:b 40.0)
(:a 32.0)
(:fade-a -0.035555556)
(:timer (seconds 3))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14 glow))
(:userdata 40960.0)
)
)
(defpart 1292
:init-specs ((:texture (explosion-edge level-default-sprite))
(:num 20.0)
(:scale-x (meters 1) (meters 2))
(:scale-y :copy scale-x)
(:r 80.0 20.0)
(:g 128.0)
(:b 30.0)
(:a 255.0)
(:vel-y (meters 0.1) (meters 0.06666667))
(:scalevel-x (meters 0.033333335))
(:scalevel-y :copy scalevel-x)
(:fade-r -0.13333334)
(:fade-b -0.05)
(:fade-a -0.425 -0.425)
(:friction 0.9 0.05)
(:timer (seconds 2))
(:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14))
(:func 'sparticle-2d-spline-align-instant)
(:conerot-x (degrees 0) (degrees 360))
(:rotate-y (degrees 0) (degrees 3600))
)
)
(defpart 1293
:init-specs ((:texture (explosion-nebula level-default-sprite))
(:num 5.0)
(:scale-x (meters 6) (meters 5))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 80.0 20.0)
(:g 128.0)
(:b 30.0)
(:a 255.0)
(:vel-y (meters 0.06666667))
(:scalevel-x (meters 0.006666667) (meters 0.006666667))
(:rotvel-z (degrees -0.1) (degrees 0.2))
(:scalevel-y :copy scalevel-x)
(:fade-r -0.13333334)
(:fade-b -0.05)
(:fade-a -0.425 -0.425)
(:friction 0.95 0.02)
(:timer (seconds 2))
(:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14))
(:conerot-x (degrees 80) (degrees 20))
(:rotate-y (degrees 0) (degrees 3600))
)
)
(defpartgroup group-barrier-hand-shock
:id 300
:flags (sp0)
:bounds (static-bspherem 0 0 0 60)
:parts ((sp-item 1294 :flags (is-3d sp6)))
)
(defpart 1294
:init-specs ((:texture (radial-halo level-default-sprite))
(:num 1.0)
(:scale-x (meters 1) (meters 0.5))
(:rot-z (degrees 90))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 128.0)
(:b 128.0)
(:a 100.0 50.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-3))
)
)
(defpartgroup group-metal-head-egg-explosion
:id 301
:flags (sp0)
:bounds (static-bspherem 0 -2 0 24)
:parts ((sp-item 1295 :period (seconds 4) :length (seconds 0.035))
(sp-item 1296 :period (seconds 4) :length (seconds 0.25))
(sp-item 1297 :period (seconds 4) :length (seconds 0.335))
(sp-item 1298 :period (seconds 4) :length (seconds 0.017))
(sp-item 1299 :flags (sp3))
(sp-item 1300 :flags (sp3))
(sp-item 1301 :flags (sp3))
)
)
(defpart 1295
:init-specs ((:texture (glow level-default-sprite))
(:num 1.0)
(:scale-x (meters 2) (meters 2))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 128.0)
(:b 128.0)
(:a 255.0)
(:scalevel-x (meters -0.033333335))
(:scalevel-y :copy scalevel-x)
(:timer (seconds 0.085))
(:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-2 sp-cpuinfo-flag-3))
)
)
(defpart 1296
:init-specs ((:texture (explosion-edge level-default-sprite))
(:num 6.0)
(:scale-x (meters 0.1) (meters 0.9))
(:scale-y :copy scale-x)
(:r 40.0 40.0)
(:g 10.0)
(:b 128.0)
(:a 100.0 100.0)
(:vel-y (meters 0.1) (meters 0.33333334))
(:scalevel-x (meters 0.033333335) (meters 0.06666667))
(:scalevel-y (meters 0.1) (meters 0.033333335))
(:fade-a -2.0)
(:friction 0.7)
(:timer (seconds 1))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14))
(:func 'sparticle-motion-blur)
(:next-time (seconds 0.167))
(:next-launcher 1302)
(:conerot-x (degrees 0) (degrees 3600))
(:conerot-z (degrees 0) (degrees 3600))
(:conerot-radius (meters 0) (meters 0.5))
)
)
(defpart 1302
:init-specs ((:scalevel-x (meters 0.006666667))
(:scalevel-y (meters 0.016666668))
(:fade-r -0.2)
(:fade-g -0.2)
(:fade-a -1.0 -1.0)
(:friction 0.95)
)
)
(defpart 1297
:init-specs ((:texture (bigpuff level-default-sprite))
(:num 4.0)
(:scale-x (meters 0.3) (meters 0.8))
(:rot-z (degrees 0) (degrees 3600))
(:scale-y :copy scale-x)
(:r 40.0 40.0)
(:g 0.0)
(:b 128.0)
(:a 128.0 128.0)
(:vel-y (meters 0.05) (meters 0.06666667))
(:scalevel-x (meters 0.01) (meters 0.02))
(:scalevel-y :copy scalevel-x)
(:fade-r -0.53333336)
(:fade-b -0.64)
(:fade-a -0.85 -0.85)
(:friction 0.9)
(:timer (seconds 1))
(:flags (sp-cpuinfo-flag-3 sp-cpuinfo-flag-14))
(:conerot-x (degrees 0) (degrees 3600))
(:conerot-z (degrees 0) (degrees 3600))
(:conerot-radius (meters 0) (meters 0.5))
)
)
(defpart 1298
:init-specs ((:texture (water-drops level-default-sprite))
(:num 10.0)
(:z (meters 2) (meters 2))
(:scale-x (meters 1) (meters 1))
(:rot-z (degrees 0) (degrees 3600))
(:scale-y :copy scale-x)
(:r 40.0 40.0)
(:g 0.0)
(:b 128.0)
(:a 64.0 64.0)
(:scalevel-x (meters 0.06666667))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.21333334 -0.21333334)
(:accel-y (meters -0.00066666666) (meters -0.00066666666))
(:timer (seconds 2))
(:flags (sp-cpuinfo-flag-2 launch-along-z))
(:rotate-x (degrees 0) (degrees 3600))
(:rotate-y (degrees 0) (degrees 3600))
)
)
(defpart 1299
:init-specs ((:texture (laser-hit2-add level-default-sprite))
(:num 1.0)
(:scale-x (meters 10))
(:rot-z (degrees 0) (degrees 3600))
(:scale-y :copy scale-x)
(:r 80.0)
(:g 10.0)
(:b 128.0)
(:a 255.0)
(:scalevel-x (meters 1.3333334))
(:scalevel-y :copy scalevel-x)
(:fade-a -6.375)
(:timer (seconds 0.135))
(:flags (sp-cpuinfo-flag-3))
)
)
(defpart 1300
:init-specs ((:texture (motion-blur-part level-default-sprite))
(:num 80.0)
(:scale-x (meters 0.1) (meters 0.2))
(:scale-y :copy scale-x)
(:r 40.0 40.0)
(:g 10.0)
(:b 128.0)
(:a 100.0 100.0)
(:omega (degrees 0.0225))
(:vel-y (meters 0.16666667) (meters 0.33333334))
(:scalevel-x (meters -0.001) (meters -0.0013333333))
(:scalevel-y :copy scalevel-x)
(:accel-y (meters -0.00066666666) (meters -0.0026666666))
(:friction 0.9)
(:timer (seconds 0.5))
(:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3))
(:func 'sparticle-motion-blur)
(:conerot-x (degrees 0) (degrees 3600))
(:conerot-z (degrees 0) (degrees 3600))
(:conerot-radius (meters 0) (meters 0.5))
)
)
(defpart 1303
:init-specs ((:texture (glow-soft level-default-sprite))
(:num 1.0)
(:scale-x (meters 80))
(:rot-z (degrees 0) (degrees 3600))
(:scale-y :copy scale-x)
(:r 80.0)
(:g 10.0)
(:b 128.0)
(:a 128.0)
(:omega (degrees 6761.25))
(:fade-a -2.55)
(:timer (seconds 0.335))
(:flags (glow))
(:userdata 4096.0)
)
)
;; WARN: Return type mismatch float vs none.
(defun spt-birth-func-brightness-part-fma-dark-eco-steam ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 sparticle-launchinfo))
(let ((s5-0 (+ (mod (the-as int (rand-uint31-gen *random-generator*)) 151) 50))
(s3-0 (+ (mod (the-as int (rand-uint31-gen *random-generator*)) 61) 30))
(s4-0 (+ (logand 0 (rand-uint31-gen *random-generator*)) 200))
(v1-6 (mod (the-as int (rand-uint31-gen *random-generator*)) 61))
)
(set! (-> arg2 rotate-x) (the float (- s5-0 s3-0)))
(set! (-> arg2 rotate-y) (the float (- s5-0 (the-as int s4-0))))
(set! (-> arg2 rotate-z) (the float (- s5-0 v1-6)))
)
(none)
)
(defpartgroup group-fma-dark-eco-steam
:id 302
:flags (sp0 sp4)
:bounds (static-bspherem 0 0 0 60)
:parts ((sp-item 1304 :flags (sp7)))
)
(defpart 1304
:init-specs ((:texture (big-cloud level-default-sprite))
(:birth-func 'spt-birth-func-brightness-part-fma-dark-eco-steam)
(:num 0.1)
(:z (meters 0) (meters 1))
(:scale-x (meters 1) (meters 2))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 128.0)
(:b 128.0)
(:a 0.0)
(:vel-y (meters 0.005925926))
(:scalevel-x (meters 0.0033333334) (meters 0.006666667))
(:rotvel-z (degrees -0.13333334) (degrees 0.26666668))
(:scalevel-y :copy scalevel-x)
(:fade-a 0.21333334)
(:accel-x (meters -0.000033333334) (meters 0.00006666667))
(:accel-y (meters 0.00033333333) (meters 0.000033333334))
(:accel-z (meters -0.000033333334) (meters 0.00006666667))
(:friction 0.94)
(:timer (seconds 10.167))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-13 launch-along-z))
(:next-time (seconds 1))
(:next-launcher 1305)
(:rotate-y (degrees 0) (degrees 3600))
)
)
(defpart 1305
:init-specs ((:fade-a -0.024615385 -0.024615385))
)
(defpartgroup group-fma-hand-steam
:id 303
:flags (sp0 sp4)
:bounds (static-bspherem 0 0 0 60)
:parts ((sp-item 1306 :flags (sp7)))
)
(defpart 1306
:init-specs ((:texture (big-cloud level-default-sprite))
(:birth-func 'spt-birth-func-brightness-part-fma-dark-eco-steam)
(:num 0.1)
(:scale-x (meters 3) (meters 1))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 128.0)
(:b 128.0)
(:a 0.0)
(:scalevel-x (meters -0.01) (meters -0.0033333334))
(:scalevel-y :copy scalevel-x)
(:fade-a 0.21333334)
(:timer (seconds 1))
(:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-13 launch-along-z))
(:rotate-y (degrees 0))
)
)
(defpartgroup group-fma-dark-eco-fire
:id 304
:flags (sp0 sp4)
:bounds (static-bspherem 0 0 0 60)
:parts ((sp-item 1309 :flags (sp3) :binding 1307)
(sp-item 1307 :flags (sp2) :binding 1308)
(sp-item 1307 :flags (sp2) :binding 1308)
(sp-item 1307 :flags (sp2) :binding 1308)
(sp-item 1307 :flags (sp2) :binding 1308)
(sp-item 1307 :flags (sp2) :binding 1308)
(sp-item 1308 :flags (sp2))
(sp-item 1308 :flags (sp2))
(sp-item 1308 :flags (sp2))
(sp-item 1308 :flags (sp2))
(sp-item 1308 :flags (sp2))
)
)
(defpart 1309
:init-specs ((:texture (radial-gradient level-default-sprite))
(:num 1.0)
(:scale-x (meters 1))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 255.0)
(:b 255.0)
(:a 0.0)
(:fade-a 0.42666668)
(:timer (seconds 10))
(:flags (sp-cpuinfo-flag-3))
(:func 'part-tracker-track-root)
(:next-time (seconds 1))
(:next-launcher 1310)
)
)
(defpart 1310
:init-specs ((:fade-a 0.0) (:next-time (seconds 8)) (:next-launcher 1311))
)
(defpart 1311
:init-specs ((:fade-a -0.42666668))
)
(defpart 1307
:init-specs ((:texture (hotdot level-default-sprite))
(:num 0.05 0.5)
(:y (meters 0) (meters 16))
(:z (meters 0.04) (meters 0.04))
(:scale-x (meters 0.2))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 255.0)
(:b 255.0)
(:a 128.0)
(:omega (degrees 0) (degrees 360))
(:vel-x (meters -0.017777778) 2.0 (meters 0.035555556))
(:vel-y (meters 0))
(:vel-z (meters 0.006666667))
(:accel-z (meters -0.00033333333))
(:timer (seconds 0.5))
(:flags (sp-cpuinfo-flag-3 ready-to-launch))
)
)
(defpart 1308
:init-specs ((:texture (hotdot level-default-sprite))
(:num 0.3)
(:y (meters -0.05))
(:scale-x (meters 0.2))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 64.0)
(:b 255.0)
(:a 96.0)
(:scalevel-x (meters -0.00083333335) (meters -0.00083333335))
(:scalevel-y :copy scalevel-x)
(:fade-r -1.0)
(:fade-g -0.42666668)
(:accel-y (meters -0.000100000005))
(:timer (seconds 1))
(:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3))
)
)
(defpartgroup group-fma-dark-eco-fire-flash
:id 305
:flags (sp0 sp4)
:bounds (static-bspherem 0 0 0 60)
:parts ((sp-item 1312 :flags (sp3)))
)
(defpart 1312
:init-specs ((:texture (laser-hit2 level-default-sprite))
(:num 5.0)
(:scale-x (meters 1))
(:scale-y :copy scale-x)
(:r 80.0)
(:g 0.0)
(:b 255.0)
(:a 255.0)
(:scalevel-x (meters 0.033333335))
(:scalevel-y :copy scalevel-x)
(:fade-a -3.4)
(:timer (seconds 0.25))
(:flags (sp-cpuinfo-flag-3))
)
)
(defpartgroup group-fma-cigar-smoke
:id 306
:flags (sp0 sp4 sp13)
:bounds (static-bspherem 0 0 0 24)
:parts ((sp-item 1313 :flags (sp7)))
)
(defpart 1313
:init-specs ((:texture (big-cloud level-default-sprite))
(:num 1.0)
(:scale-x (meters 0) (meters 0.01))
(:rot-x 4)
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 80.0 80.0)
(:g :copy r)
(:b :copy r)
(:a 8.0 8.0)
(:scalevel-x (meters 0.00016666666) (meters 0.00016666666))
(:rotvel-z (degrees -0.2) (degrees 0.4))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.010666667 -0.010666667)
(:accel-y (meters 0.000033333334) (meters 0.000033333334))
(:friction 0.9)
(:timer (seconds 5))
(:flags (sp-cpuinfo-flag-2))
(:next-time (seconds 3.335))
(:next-launcher 1314)
)
)
(defpart 1314
:init-specs ((:scalevel-x (meters 0.00066666666) (meters 0.00066666666))
(:scalevel-y (meters 0.00066666666) (meters 0.00066666666))
(:friction 0.85)
)
)
(defpartgroup group-fma-city-barrier-explosion-big
:id 307
:duration (seconds 4)
:flags (sp0 sp5)
:bounds (static-bspherem 0 0 0 15)
:parts ((sp-item 1316 :flags (sp3 sp7) :period (seconds 30) :length (seconds 0.017))
(sp-item 1317 :flags (sp7) :period (seconds 30) :length (seconds 0.035))
(sp-item 1318 :flags (sp3 sp7) :period (seconds 30))
(sp-item 1319 :flags (sp3 sp7) :period (seconds 30) :length (seconds 0.017))
(sp-item 1320 :flags (sp7) :period (seconds 30) :length (seconds 0.335))
(sp-item 1321 :period (seconds 30) :length (seconds 0.5))
(sp-item 1322 :flags (sp3 sp7) :binding 1315)
(sp-item 1322 :flags (sp3 sp7) :binding 1315)
(sp-item 1322 :flags (sp3 sp7) :binding 1315)
(sp-item 1322 :flags (sp3 sp7) :binding 1315)
(sp-item 1322 :flags (sp3 sp7) :binding 1315)
(sp-item 1315 :flags (sp2) :period (seconds 4) :length (seconds 2))
(sp-item 1315 :flags (sp2) :period (seconds 4) :length (seconds 2))
(sp-item 1315 :flags (sp2) :period (seconds 4) :length (seconds 2))
(sp-item 1315 :flags (sp2) :period (seconds 4) :length (seconds 2))
(sp-item 1315 :flags (sp2) :period (seconds 4) :length (seconds 2))
)
)
(defpart 1316
:init-specs ((:texture (glow-soft level-default-sprite))
(:num 1.0)
(:scale-x (meters 40))
(:rot-x (degrees 225))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 128.0)
(:b 40.0)
(:a 64.0)
(:fade-a -0.10666667)
(:timer (seconds 2))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 40960.0)
)
)
(defpart 1317
:init-specs ((:texture (hotdot level-default-sprite))
(:num 10.0 10.0)
(:scale-x (meters 1) (meters 1.2))
(:rot-y (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 80.0 20.0)
(:b 30.0)
(:a 128.0)
(:vel-y (meters 0.33333334) (meters 0.33333334))
(:scalevel-x (meters -0.0016666667))
(:scalevel-y :copy scalevel-x)
(:fade-g -0.17777778)
(:fade-b -0.06666667)
(:fade-a -0.28444445 -0.28444445)
(:friction 0.9)
(:timer (seconds 1.5))
(:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3))
(:conerot-x (degrees 0) (degrees 360))
(:rotate-y (degrees 0) (degrees 3600))
)
)
(defpart 1318
:init-specs ((:texture (explosion-nebula level-default-sprite))
(:num 30.0)
(:scale-x (meters 6) (meters 4))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 160.0)
(:b 40.0)
(:a 128.0)
(:vel-y (meters 0) (meters 0.13333334))
(:scalevel-x (meters 0.033333335))
(:scalevel-y :copy scalevel-x)
(:fade-g -0.12307692)
(:fade-b -0.046153847)
(:fade-a -0.19692308 -0.19692308)
(:accel-z (meters -0.013333334) 1 (meters 0.026666667))
(:friction 0.93)
(:timer (seconds 2.167))
(:flags (sp-cpuinfo-flag-3 launch-along-z))
(:next-time (seconds 0.335))
(:next-launcher 1323)
(:conerot-z (degrees 0) (degrees 360))
(:rotate-y (degrees 0) (degrees 3600))
)
)
(defpart 1323
:init-specs ((:friction 0.7))
)
(defpart 1320
:init-specs ((:texture (explosion-edge level-default-sprite))
(:num 5.0)
(:scale-x (meters 6) (meters 4))
(:rot-y (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 80.0 20.0)
(:b 30.0)
(:a 128.0)
(:vel-y (meters 0.5) (meters 0.13333334))
(:scalevel-x (meters 0.06666667))
(:scalevel-y :copy scalevel-x)
(:fade-g -0.10666667)
(:fade-b -0.04)
(:fade-a -0.17066666 -0.17066666)
(:accel-z (meters -0.013333334) 1 (meters 0.026666667))
(:friction 0.7)
(:timer (seconds 2.5))
(:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3 launch-along-z))
(:func 'sparticle-2d-spline-align-instant)
(:next-time (seconds 0.335))
(:next-launcher 1324)
(:conerot-z (degrees 0) (degrees 360))
(:rotate-y (degrees 0) (degrees 3600))
)
)
(defpart 1324
:init-specs ((:friction 0.7))
)
(defpart 1321
:init-specs ((:texture (explo-texture level-default-sprite))
(:birth-func 'birth-func-curve)
(:num 8.0)
(:x (meters -1) (meters 2))
(:y (meters 0) (meters 2))
(:scale-x (meters 1))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 128.0)
(:b 128.0)
(:a 128.0)
(:vel-y (meters 0.06666667) (meters 0.13333334))
(:accel-z (meters -0.013333334) 1 (meters 0.026666667))
(:friction 0.9)
(:timer (seconds 1))
(:flags (launch-along-z))
(:userdata 0.0)
(:func 'live-func-curve)
(:next-time (seconds 0.335))
(:next-launcher 1325)
(:conerot-z (degrees 20) (degrees 90))
(:rotate-y (degrees 0) (degrees 3600))
)
)
(defpart 1325
:init-specs ((:friction 0.7))
)
(if #t
(set! *range-fma-city-barrier-explo-big-color* (new 'static 'curve-color-fast
:xs (new 'static 'vector :y -1.0 :z -2.0 :w -3.0)
:ys (new 'static 'inline-array vector 4
(new 'static 'vector :x 255.0 :y 255.0 :z 255.0 :w 128.0)
(new 'static 'vector :x 255.0 :y 255.0 :z 255.0 :w 128.0)
(new 'static 'vector :x 255.0 :y 255.0 :z 255.0 :w 128.0)
(new 'static 'vector :x 255.0 :y 255.0 :z 255.0 :w 128.0)
)
:one-over-x-deltas (new 'static 'vector :x 1.0 :y 1.0 :z 1.0 :w 1.0)
)
)
)
(if #t
(set! *range-fma-city-barrier-explo-big-alpha* (new 'static 'curve2d-fast
:xs (new 'static 'vector :y -1.0 :z -2.0 :w -3.0)
:ys (new 'static 'vector :x 128.0 :y 128.0 :z 129.0 :w 130.0)
:one-over-x-deltas (new 'static 'vector :y 1.0 :z 1.0 :w 1.0)
)
)
)
(if #t
(set! *range-fma-city-barrier-explo-big-scale-x* (new 'static 'curve2d-fast
:xs (new 'static 'vector :y -1.0 :z -2.0 :w -3.0)
:ys (new 'static 'vector :x 10.0 :y 20.0 :z 21.0 :w 22.0)
:one-over-x-deltas (new 'static 'vector :x 10.0 :y 1.0 :z 1.0 :w 1.0)
)
)
)
(if #t
(set! *range-fma-city-barrier-explo-big-scale-y* (new 'static 'curve2d-fast
:xs (new 'static 'vector :y -1.0 :z -2.0 :w -3.0)
:ys (new 'static 'vector :x 10.0 :y 20.0 :z 21.0 :w 22.0)
:one-over-x-deltas (new 'static 'vector :x 10.0 :y 1.0 :z 1.0 :w 1.0)
)
)
)
(if #t
(set! *curve-fma-city-barrier-explo-big-alpha*
(new 'static 'curve2d-fast
:xs (new 'static 'vector :y -0.05 :z -0.7 :w -1.0)
:ys (new 'static 'vector :y 1.0 :z 0.8)
:one-over-x-deltas (new 'static 'vector :x 20.0 :y -0.3076923 :z -2.6666665 :w 1.0)
)
)
)
(if #t
(set! *curve-fma-city-barrier-explo-big-scale-x* (new 'static 'curve2d-fast
:xs (new 'static 'vector :y -0.8 :z -1.0 :w -2.0)
:ys (new 'static 'vector :y 1.0 :z 1.5 :w 2.5)
:one-over-x-deltas (new 'static 'vector :x 1.25 :y 2.5000002 :z 1.0 :w 1.0)
)
)
)
(if #t
(set! *curve-fma-city-barrier-explo-big-scale-y* (new 'static 'curve2d-fast
:xs (new 'static 'vector :y -0.8 :z -1.0 :w -2.0)
:ys (new 'static 'vector :y 1.0 :z 1.5 :w 2.5)
:one-over-x-deltas (new 'static 'vector :x 1.25 :y 2.5000002 :z 1.0 :w 1.0)
)
)
)
(define *part-fma-city-barrier-explosion-big-texture-curve-settings* (new 'static 'particle-curve-settings
:lifetime-base (seconds 0.7)
:lifetime-offset (seconds 0.6)
:flags (particle-curve-flags pcf0)
)
)
(set! (-> *part-id-table* 1321 init-specs 17 initial-valuef)
(the-as float *part-fma-city-barrier-explosion-big-texture-curve-settings*)
)
(set! (-> *part-fma-city-barrier-explosion-big-texture-curve-settings* color-start)
*range-fma-city-barrier-explo-big-color*
)
(set! (-> *part-fma-city-barrier-explosion-big-texture-curve-settings* alpha-start)
*range-fma-city-barrier-explo-big-alpha*
)
(set! (-> *part-fma-city-barrier-explosion-big-texture-curve-settings* scale-x-start)
*range-fma-city-barrier-explo-big-scale-x*
)
(set! (-> *part-fma-city-barrier-explosion-big-texture-curve-settings* scale-y-start)
*range-fma-city-barrier-explo-big-scale-y*
)
(set! (-> *part-fma-city-barrier-explosion-big-texture-curve-settings* r-scalar) #f)
(set! (-> *part-fma-city-barrier-explosion-big-texture-curve-settings* g-scalar) #f)
(set! (-> *part-fma-city-barrier-explosion-big-texture-curve-settings* b-scalar) #f)
(set! (-> *part-fma-city-barrier-explosion-big-texture-curve-settings* a-scalar)
*curve-fma-city-barrier-explo-big-alpha*
)
(set! (-> *part-fma-city-barrier-explosion-big-texture-curve-settings* scale-x-scalar)
*curve-fma-city-barrier-explo-big-scale-x*
)
(set! (-> *part-fma-city-barrier-explosion-big-texture-curve-settings* scale-y-scalar)
*curve-fma-city-barrier-explo-big-scale-y*
)
(defpart 1319
:init-specs ((:texture (starflash level-default-sprite))
(:num 1.0)
(:scale-x (meters 40))
(:rot-x (degrees 2.25))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 80.0)
(:b 40.0)
(:a 128.0)
(:omega (degrees 6767.9995))
(:scalevel-x (meters -0.33333334))
(:scalevel-y :copy scalevel-x)
(:timer (seconds 0.135))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 4096.0)
)
)
(defpart 1322
:init-specs ((:texture (hotdot level-default-sprite))
(:num 1.0)
(:scale-x (meters 10) (meters 8))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 255.0)
(:b 200.0)
(:a 128.0)
(:vel-y (meters 0.1) (meters 0.1))
(:scalevel-x (meters -0.05) (meters -0.05))
(:scalevel-y :copy scalevel-x)
(:accel-y (meters -0.00066666666) (meters -0.00066666666))
(:friction 0.99)
(:timer (seconds 2))
(:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3))
(:conerot-x (degrees 0) (degrees 80))
(:rotate-y (degrees 0) (degrees 3600))
)
)
(defpart 1315
:init-specs ((:texture (edge-cloud level-default-sprite))
(:birth-func 'birth-func-inherit-size)
(:num 0.5)
(:scale-x (meters 0.00024414062) (meters 0.00012207031))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 130.0)
(:g 50.0 30.0)
(:b 0.0)
(:a 32.0 32.0)
(:fade-a -0.08533333 -0.08533333)
(:accel-y (meters 0) (meters -0.000033333334))
(:timer (seconds 2.5))
(:flags (sp-cpuinfo-flag-3))
)
)
(defpartgroup group-cara-thrusters
:id 308
:flags (sp0 sp4)
:bounds (static-bspherem 0 0 0 640)
:parts ((sp-item 1326 :flags (is-3d sp7) :period (seconds 0.017) :length (seconds 0.017))
(sp-item 1327 :flags (sp7) :period (seconds 0.017) :length (seconds 0.017))
)
)
(defpart 1326
:init-specs ((:texture (gun-enemy-muzzleflash level-default-sprite))
(:num 20.0)
(:z (meters 1.5))
(:scale-x (meters 0.5) (meters 0.5))
(:rot-x (degrees 0))
(:rot-y (degrees 0))
(:rot-z (degrees 0) 3 (degrees 45))
(:scale-y (meters 2) (meters 1))
(:r 10.0 20.0)
(:g 200.0)
(:b 255.0)
(:a 10.0 10.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3))
(:conerot-z (degrees 0))
(:rotate-x (degrees 0))
(:rotate-y (degrees 0))
)
)
(defpart 1327
:init-specs ((:texture (glow-soft level-default-sprite))
(:num 1.0)
(:z (meters 1.5))
(:scale-x (meters 3) (meters 0.2))
(:scale-y :copy scale-x)
(:r 0.0)
(:g 100.0 28.0)
(:b 255.0)
(:a 12.0 1.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3))
(:conerot-z (degrees 0))
(:rotate-y (degrees 0))
)
)
(defpartgroup group-truck-explosion
:id 309
:duration (seconds 2)
:linger-duration (seconds 1)
:flags (sp0 sp5 sp6)
:bounds (static-bspherem 0 0 0 60)
:rotate ((degrees 0) (degrees 90) (degrees 0))
:parts ((sp-item 1328 :flags (sp6 sp7) :period (seconds 3) :length (seconds 0.017))
(sp-item 1329 :flags (sp6 sp7) :period (seconds 3) :length (seconds 0.017))
(sp-item 1330 :flags (sp7) :period (seconds 3) :length (seconds 0.05))
(sp-item 1331 :flags (sp7) :period (seconds 3) :length (seconds 0.035) :offset 10)
(sp-item 1332 :flags (sp7) :period (seconds 3) :length (seconds 0.167) :offset 20)
(sp-item 1333 :flags (sp7) :period (seconds 3) :length (seconds 0.085) :offset 20)
(sp-item 1334 :flags (sp7) :period (seconds 3) :length (seconds 0.067) :offset 30)
)
)
(defpart 1329
:init-specs ((:texture (glow level-default-sprite))
(:num 1.0)
(:scale-x (meters 2))
(:rot-x (degrees 11.25))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 255.0)
(:b 255.0)
(:a 24.0)
(:scalevel-x (meters 0.10666667))
(:rotvel-z (degrees 0.3))
(:scalevel-y :copy scalevel-x)
(:fade-r 0.0)
(:fade-g -4.266667)
(:fade-b -4.266667)
(:fade-a 0.0)
(:timer (seconds 0.5))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14 glow set-conerot))
(:next-time (seconds 0.25))
(:next-launcher 1335)
(:rotate-y (degrees 0))
)
)
(defpart 1335
:init-specs ((:scalevel-x (meters 0))
(:scalevel-y :copy scalevel-x)
(:fade-r -0.85333335)
(:fade-g -1.7066667)
(:fade-b -1.7066667)
(:fade-a -0.64)
(:rotate-y (degrees 0))
)
)
(defpart 1334
:init-specs ((:texture (explosion-edge level-default-sprite))
(:num 2.0 0.2)
(:scale-x (meters 1) (meters 1))
(:rot-z (degrees 0) (degrees 3600) :store)
(:scale-y (meters 0.8) (meters 0.2))
(:r 255.0)
(:g 255.0)
(:b 255.0)
(:a 32.0 32.0)
(:scalevel-x (meters 0.01) (meters 0.13333334))
(:scalevel-y :copy scalevel-x)
(:fade-r 0.0)
(:fade-g -0.36)
(:fade-b -4.24)
(:fade-a -0.22068965)
(:friction 0.95)
(:timer (seconds 3.335))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 set-conerot))
(:next-time (seconds 0.085))
(:next-launcher 1336)
(:conerot-x '*sp-temp*)
(:conerot-y (degrees 0) (degrees 3600))
(:rotate-y (degrees 0))
)
)
(defpart 1333
:init-specs ((:texture (explosion-nebula level-default-sprite))
(:birth-func 'birth-func-texture-group)
(:num 3.0)
(:scale-x (meters 1) (meters 1))
(:rot-z (degrees 0))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 255.0)
(:b 255.0)
(:a 32.0 32.0)
(:vel-y (meters 0.02) (meters 0.01))
(:scalevel-x (meters 0.01) (meters 0.13333334))
(:rotvel-z (degrees -0.12) (degrees 0.24))
(:scalevel-y :copy scalevel-x)
(:fade-r 0.0)
(:fade-g -0.36)
(:fade-b -4.24)
(:fade-a -0.22068965)
(:friction 0.95)
(:timer (seconds 3.335))
(:flags (sp-cpuinfo-flag-2 set-conerot))
(:userdata :data (new 'static 'boxed-array :type int32 40 1 0 #x400000 #x400700))
(:next-time (seconds 0.085))
(:next-launcher 1336)
(:conerot-x (degrees 0) (degrees 3600))
(:conerot-y (degrees 0) (degrees 3600))
(:rotate-y (degrees 0))
)
)
(defpart 1336
:init-specs ((:fade-r 0.0)
(:fade-g 0.0)
(:fade-b 0.0)
(:next-time (seconds 0.017) (seconds 0.065))
(:next-launcher 1337)
(:rotate-y (degrees 0))
)
)
(defpart 1337
:init-specs ((:scalevel-x (meters 0.016666668) (meters 0.016666668))
(:scalevel-y :copy scalevel-x)
(:fade-r -0.44)
(:fade-g -2.36)
(:fade-b -2.64)
(:next-time (seconds 0.117) (seconds 0.047))
(:next-launcher 1338)
(:rotate-y (degrees 0))
)
)
(defpart 1338
:init-specs ((:scalevel-x (meters 0.008333334) (meters 0.008333334))
(:scalevel-y :copy scalevel-x)
(:fade-r -1.2944444)
(:fade-g -0.7111111)
(:fade-b -0.094444446)
(:fade-a -0.06545454 -0.06545454)
(:next-time (seconds 0.5) (seconds 0.097))
(:next-launcher 1339)
(:rotate-y (degrees 0))
)
)
(defpart 1339
:init-specs ((:fade-r 0.0) (:fade-g 0.0) (:fade-b 0.0) (:fade-a -0.1125) (:rotate-y (degrees 0)))
)
(defpart 1328
:init-specs ((:texture (glow level-default-sprite))
(:num 1.0)
(:scale-x (meters 5))
(:rot-x (degrees 11.25))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 255.0)
(:b 255.0)
(:a 96.0)
(:scalevel-x (meters 0.5))
(:rotvel-z (degrees 0.3))
(:scalevel-y :copy scalevel-x)
(:fade-r 0.0)
(:fade-g -1.28)
(:fade-b -5.1)
(:fade-a 0.0)
(:timer (seconds 0.217))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow set-conerot))
(:next-time (seconds 0.1))
(:next-launcher 1340)
(:rotate-y (degrees 0))
)
)
(defpart 1340
:init-specs ((:scalevel-x (meters -0.2857143))
(:scalevel-y :copy scalevel-x)
(:fade-r 0.0)
(:fade-g -3.6571429)
(:fade-b 0.0)
(:fade-a -2.7428572)
(:rotate-y (degrees 0))
)
)
(defpart 1332
:init-specs ((:texture (specs level-default-sprite))
(:num 8.0 2.0)
(:x (meters 0.25))
(:scale-x (meters 1) (meters 0.25))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 255.0)
(:b 255.0)
(:a 16.0 48.0)
(:vel-y (meters 0.083333336) (meters 0.083333336))
(:scalevel-x (meters 0.006666667) (meters 0.0016666667))
(:rotvel-z (degrees -0.12) (degrees 0.24))
(:scalevel-y :copy scalevel-x)
(:fade-r 0.0)
(:fade-g -0.18)
(:fade-b -2.12)
(:accel-y (meters -0.00016666666) (meters -0.00033333333))
(:friction 0.87)
(:timer (seconds 3.335))
(:flags (sp-cpuinfo-flag-2 set-conerot))
(:next-time (seconds 0.117) (seconds 0.047))
(:next-launcher 1341)
(:conerot-x (degrees 0) (degrees 3600))
(:conerot-y (degrees 0) (degrees 3600))
(:rotate-y (degrees 0))
)
)
(defpart 1341
:init-specs ((:scalevel-x (meters 0.0016666667))
(:scalevel-y :copy scalevel-x)
(:fade-r 0.0)
(:fade-g 0.02)
(:fade-b 0.23555556)
(:next-time (seconds 0.15) (seconds 0.047))
(:next-launcher 1342)
(:rotate-y (degrees 0))
)
)
(defpart 1342
:init-specs ((:fade-r -0.5543478) (:fade-g -0.5543478) (:fade-a -0.13913043) (:rotate-y (degrees 0)))
)
(defpart 1330
:init-specs ((:texture (bigpuff level-default-sprite))
(:num 8.0 1.0)
(:x (meters 0) (meters 0.6))
(:scale-x (meters 2.5) (meters 2))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 70.0 20.0)
(:g 70.0 20.0)
(:b 70.0 20.0)
(:a 0.0 40.0)
(:vel-y (meters 0) (meters 0.1))
(:scalevel-x (meters 0.033333335) (meters 0.02))
(:rotvel-z (degrees -0.12) (degrees 0.24))
(:scalevel-y :copy scalevel-x)
(:fade-r 3.3)
(:fade-g 3.12)
(:fade-b 1.18)
(:fade-a 1.76)
(:friction 0.88)
(:timer (seconds 2.367))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 set-conerot))
(:next-time (seconds 0.117) (seconds 0.047))
(:next-launcher 1343)
(:conerot-x (degrees 0) (degrees 3600))
(:conerot-y (degrees 0) (degrees 3600))
(:rotate-y (degrees 0))
)
)
(defpart 1343
:init-specs ((:scalevel-x (meters 0.0033333334))
(:scalevel-y :copy scalevel-x)
(:fade-r -0.53333336)
(:fade-g -1.9666667)
(:fade-b -2.2)
(:fade-a -0.41666666)
(:next-time (seconds 0.15) (seconds 0.047))
(:next-launcher 1344)
(:rotate-y (degrees 0))
)
)
(defpart 1344
:init-specs ((:scalevel-x (meters 0))
(:scalevel-y :copy scalevel-x)
(:fade-r -0.38833332)
(:fade-g -0.21333334)
(:fade-b -0.028333334)
(:fade-a -0.38833332)
(:rotate-y (degrees 0))
)
)
(defpart 1331
:init-specs ((:texture (motion-blur-part level-default-sprite))
(:num 4.0 2.0)
(:scale-x (meters 0.2) (meters 0.5))
(:rot-x 4)
(:rot-z (degrees 0) (degrees 360))
(:scale-y (meters 0.2) (meters 0.1))
(:r 128.0 128.0)
(:g 96.0)
(:b 64.0)
(:a 64.0 64.0)
(:scalevel-x (meters 0.13333334) (meters 0.02))
(:fade-g 1.6)
(:fade-b 3.2)
(:fade-a -1.6)
(:timer (seconds 0.3))
(:flags (sp-cpuinfo-flag-2 set-conerot))
(:rotate-y (degrees 0))
)
)