From 6406ba05a63c4f8203be5f8f141fa4806a76abcb Mon Sep 17 00:00:00 2001 From: Tyler Wilding Date: Fri, 30 Dec 2022 18:23:45 -0500 Subject: [PATCH] d/jak2: finish `atoll-scenes` (#2069) --- decompiler/config/jak2/all-types.gc | 2 +- .../jak2/anonymous_function_types.jsonc | 2 +- goal_src/jak2/engine/scene/scene-h.gc | 2 +- goal_src/jak2/engine/scene/scene.gc | 4 +- goal_src/jak2/game.gp | 211 +- goal_src/jak2/levels/atoll/atoll-scenes.gc | 2798 ++++++++++++++++ .../jak2/engine/scene/scene-h_REF.gc | 4 +- .../reference/jak2/engine/scene/scene_REF.gc | 4 +- .../jak2/levels/atoll/atoll-scenes_REF.gc | 2859 +++++++++++++++++ test/offline/config/jak2/config.jsonc | 1 + 10 files changed, 5713 insertions(+), 174 deletions(-) create mode 100644 test/decompiler/reference/jak2/levels/atoll/atoll-scenes_REF.gc diff --git a/decompiler/config/jak2/all-types.gc b/decompiler/config/jak2/all-types.gc index dea79112d..c95531cc5 100644 --- a/decompiler/config/jak2/all-types.gc +++ b/decompiler/config/jak2/all-types.gc @@ -15283,7 +15283,7 @@ ) ) -(define-extern *scene-player* scene-player) +(define-extern *scene-player* (pointer scene-player)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; sync-info-h ;; diff --git a/decompiler/config/jak2/anonymous_function_types.jsonc b/decompiler/config/jak2/anonymous_function_types.jsonc index 0666b61e8..adb07fd34 100644 --- a/decompiler/config/jak2/anonymous_function_types.jsonc +++ b/decompiler/config/jak2/anonymous_function_types.jsonc @@ -500,7 +500,7 @@ "atoll-scenes": [ [0, "(function (pointer process) :behavior process-drawable)"], [1, "(function float)"], - [2, "(function none)"] + [2, "(function (pointer process))"] ], "castle-scenes": [ [0, "(function none :behavior scene-player)"], diff --git a/goal_src/jak2/engine/scene/scene-h.gc b/goal_src/jak2/engine/scene/scene-h.gc index 963e36299..b0dd60464 100644 --- a/goal_src/jak2/engine/scene/scene-h.gc +++ b/goal_src/jak2/engine/scene/scene-h.gc @@ -118,4 +118,4 @@ ) -(define *scene-player* (the-as scene-player #f)) +(define *scene-player* (the-as (pointer scene-player) #f)) diff --git a/goal_src/jak2/engine/scene/scene.gc b/goal_src/jak2/engine/scene/scene.gc index ae87df837..13fc51163 100644 --- a/goal_src/jak2/engine/scene/scene.gc +++ b/goal_src/jak2/engine/scene/scene.gc @@ -237,7 +237,7 @@ ) (defmethod deactivate scene-player ((obj scene-player)) - (set! *scene-player* #f) + (set! *scene-player* (the-as (pointer scene-player) #f)) (kill-persister *setting-control* (the-as engine-pers 'blackout) 'bg-a-force) ((method-of-type process-drawable deactivate) obj) (none) @@ -1687,7 +1687,7 @@ ) ) ) - (set! *scene-player* (the-as scene-player (process->ppointer self))) + (set! *scene-player* (the-as (pointer scene-player) (process->ppointer self))) (set! *display-entity-errors* #f) (set-setting! 'speech-control #f 0 0) (set-setting! 'allow-progress #f 0 0) diff --git a/goal_src/jak2/game.gp b/goal_src/jak2/game.gp index 2b99a40d7..f236b0703 100644 --- a/goal_src/jak2/game.gp +++ b/goal_src/jak2/game.gp @@ -1077,57 +1077,55 @@ ;; ;; ATE ;; ;;;;;;;;;;;;;;;;;;;;; -;; (cgo "ATE.DGO" "ate.gd") +(cgo "ATE.DGO" "ate.gd") -;; (goal-src-sequence -;; "" -;; :deps ("$OUT/obj/los-control.o") -;; "levels/common/ai/ai-task-h.gc" -;; "levels/common/ai/bot-h.gc" -;; "levels/common/ai/bot.gc" -;; "levels/common/ai/bot-states.gc" -;; "characters/sig/sig-h.gc" -;; "characters/sig/sig-task.gc" -;; "characters/sig/sig-shot.gc" -;; "characters/sig/sig-plasma.gc" -;; "characters/sig/sig.gc" -;; "characters/sig/sig-states.gc" -;; "characters/ashelin/ash-h.gc" -;; "characters/ashelin/ash-task.gc" -;; "characters/ashelin/ash-shot.gc" -;; "characters/ashelin/ash.gc" -;; "characters/ashelin/ash-states.gc" -;; "levels/common/enemy/spyder.gc" -;; "levels/atoll/sig0-course.gc" -;; "levels/atoll/ash1-course.gc" -;; "levels/atoll/atoll-tank.gc" -;; "levels/atoll/atoll-scenes.gc" -;; "levels/atoll/sniper.gc" -;; "levels/common/enemy/amphibian/amphibian.gc" -;; "levels/atoll/juicer.gc" -;; "levels/common/enemy/metalhead_brown/metalmonk.gc" -;; ) +(goal-src-sequence + "" + :deps ("$OUT/obj/los-control.o") + "levels/common/ai/ai-task-h.gc" + "levels/common/ai/bot-h.gc" + "levels/common/ai/bot.gc" + "levels/common/ai/bot-states.gc" + "characters/sig/sig-h.gc" + "characters/sig/sig-task.gc" + "characters/sig/sig-shot.gc" + "characters/sig/sig-plasma.gc" + "characters/sig/sig.gc" + "characters/sig/sig-states.gc" + "characters/ashelin/ash-h.gc" + "characters/ashelin/ash-task.gc" + "characters/ashelin/ash-shot.gc" + "characters/ashelin/ash.gc" + "characters/ashelin/ash-states.gc" + "levels/common/enemy/spyder.gc" + "levels/atoll/sig0-course.gc" + "levels/atoll/ash1-course.gc" + "levels/atoll/atoll-tank.gc" + "levels/atoll/atoll-scenes.gc" + "levels/atoll/sniper.gc" + "levels/common/enemy/amphibian/amphibian.gc" + "levels/atoll/juicer.gc" + "levels/common/enemy/metalhead_brown/metalmonk.gc" + ) -;; (copy-textures 1606 1607 2461 3237 3412) +(copy-textures 1606 1607 2461 3237 3412) -;; (copy-gos -;; "sig-ag" -;; "daxter-highres-ag" -;; "jak-highres-ag" -;; "atoll-tank-ag" -;; "sig-highres-ag" -;; "juicer-ag" -;; "ashelin-highres-ag" -;; "atoll-hellcat-ag" -;; "ashelin-ag" -;; "metalmonk-ag" -;; "amphibian-ag" -;; "spyder-ag" -;; "com-airlock-inner-ag" -;; "palmpilot-ag" -;; "particleman-ag" -;; "atollext-vis" -;; ) +(copy-gos + "sig-ag" + "jak-highres-ag" + "atoll-tank-ag" + "sig-highres-ag" + "juicer-ag" + "ashelin-highres-ag" + "atoll-hellcat-ag" + "ashelin-ag" + "metalmonk-ag" + "amphibian-ag" + "spyder-ag" + "com-airlock-inner-ag" + "palmpilot-ag" + "atollext-vis" + ) ;; ;;;;;;;;;;;;;;;;;;;;; ;; ;; ATO @@ -1205,11 +1203,8 @@ (copy-textures 2537 2539 2538 3498) (copy-gos - ;; "daxter-highres-ag" - "jak-highres-ag" "air-train-ag" "cpad-elevator-ag" - ;; "particleman-ag" "caspad-vis" ) @@ -1300,7 +1295,6 @@ (copy-textures 2444 2445 2645 2644 2744 2791 2441) (copy-gos - "com-airlock-inner-ag" "farm-chilirots-ag" "farm-cabbage-ag" "farm-marrow-ag" @@ -1747,7 +1741,6 @@ "levels/dig/dig3-obs.gc" "levels/common/enemy/baby_spider/tomb-baby-spider.gc" "levels/common/enemy/metalhead_slinger/grenadier.gc" - "levels/common/enemy/metalhead_brown/metalmonk.gc" "levels/dig/dig-texture.gc" "levels/dig/dig-scenes.gc" "levels/dig/dig-part.gc" @@ -1757,7 +1750,6 @@ (copy-gos "grenadier-ag" - "metalmonk-ag" "flitter-ag" "dig-balloon-lurker-ag" "dig-spikey-sphere-ag" @@ -2122,20 +2114,6 @@ (goal-src-sequence "" :deps ("$OUT/obj/los-control.o") - "levels/common/enemy/spyder.gc" - ;; "levels/common/enemy/hover/hover-formation-h.gc" - ;; "levels/common/enemy/hover/hover-nav-control-h.gc" - ;; "levels/common/enemy/hover/hover-enemy-h.gc" - ;; "levels/common/enemy/hover/hover-nav-network.gc" - ;; "levels/common/enemy/hover/hover-nav-control.gc" - ;; "levels/common/enemy/hover/hover-enemy.gc" - ;; "levels/common/enemy/hover/hover-enemy-battle.gc" - ;; "levels/common/enemy/hover/hover-formation.gc" - ;; "levels/common/enemy/hover/hover-nav-edit.gc" - ;; "levels/common/enemy/hover/wasp-part.gc" - ;; "levels/common/enemy/hover/wasp.gc" - ;; "levels/common/enemy/hover/crimson-guard-hover.gc" - ;; "levels/common/enemy/hover/flamer.gc" "levels/forest/forest-part.gc" "levels/forest/forest-obs.gc" "levels/forest/pegasus.gc" @@ -2153,7 +2131,6 @@ "jak-pegasus+0-ag" "pegasus-ag" "predator-ag" - "spyder-ag" "wren-ag" "minnow-ag" "forest-vis" @@ -2819,13 +2796,6 @@ (goal-src-sequence "" :deps ("$OUT/obj/los-control.o") - "levels/common/ai/ai-task-h.gc" - "levels/common/ai/bot-h.gc" - "levels/common/ai/bot.gc" - "levels/common/ai/bot-states.gc" - "levels/undefined/hal-h.gc" - "levels/undefined/hal-task.gc" - "levels/undefined/hal.gc" "levels/city/kid_escort/kidesc-h.gc" "levels/city/kid_escort/crocesc-h.gc" "levels/city/kid_escort/hal4-course.gc" @@ -3515,19 +3485,6 @@ (goal-src-sequence "" :deps ("$OUT/obj/los-control.o") - ;; "levels/common/enemy/hover/hover-formation-h.gc" - ;; "levels/common/enemy/hover/hover-nav-control-h.gc" - ;; "levels/common/enemy/hover/hover-enemy-h.gc" - ;; "levels/common/enemy/hover/hover-nav-network.gc" - ;; "levels/common/enemy/hover/hover-nav-control.gc" - ;; "levels/common/enemy/hover/hover-enemy.gc" - ;; "levels/common/enemy/hover/hover-enemy-battle.gc" - ;; "levels/common/enemy/hover/hover-formation.gc" - ;; "levels/common/enemy/hover/hover-nav-edit.gc" - ;; "levels/common/enemy/hover/wasp-part.gc" - ;; "levels/common/enemy/hover/wasp.gc" - ;; "levels/common/enemy/hover/crimson-guard-hover.gc" - ;; "levels/common/enemy/hover/flamer.gc" "levels/nest/boss/nest-texture.gc" "levels/nest/boss/metalkor-part.gc" "levels/nest/boss/metalkor-setup.gc" @@ -3542,17 +3499,13 @@ (copy-gos "kid-nestb+0-ag" "metalkor-ag" - ;; "daxter-highres-ag" "metalkor-lowtorso-ag" "metalkor-highres-ag" - ;; "darkjak-highres-ag" "metalkor-legs-ag" "metalkor-explode-ag" "kid-highres-ag" "nest-gun-parts-ag" - ;; "wasp-ag" "kid-ag" - ;; "flitter-ag" "nest-break-precipice-ag" "metalkor-bomb-ag" "metalkor-wings-ag" @@ -3562,11 +3515,8 @@ "metalkor-distort-ag" "metalkor-rays-ag" "nest-gun-elevator-ag" - ;; "precursor-stone-ag" - "palmpilot-ag" "metalkor-fma-spinner-ag" "nestb-tail-bound-ag" - ;; "particleman-ag" "rift-occlude-ag" "nestb-vis" ) @@ -3906,11 +3856,6 @@ (goal-src-sequence "" :deps ("$OUT/obj/los-control.o") - ;; "engine/target/mech_suit/mech-part.gc" - ;; "engine/target/mech_suit/mech.gc" - ;; "engine/target/mech_suit/target-mech.gc" - ;; "engine/target/mech_suit/mech-states.gc" - ;; "engine/target/mech_suit/grunt-mech.gc" "levels/ruins/ruins-ocean.gc" "levels/ruins/ruins-scenes.gc" "levels/ruins/mechtest-obs.gc" @@ -3919,27 +3864,15 @@ "levels/ruins/pillar-collapse.gc" "levels/ruins/ruins-obs.gc" "levels/ruins/rapid-gunner.gc" - "levels/common/enemy/amphibian/amphibian.gc" - ;; "levels/common/enemy/fodder/fodder.gc" - ;; "levels/common/enemy/metalhead_slinger/grenadier.gc" ) (copy-textures 851 853 852 2205 1000) (copy-gos - ;; "jak-pole+0-ag" - ;; "jak-mech+0-ag" - ;; "grunt-mech-anims+0-ag" - ;; "grunt-ag" "ruins-breakable-wall-ag" - ;; "grenadier-ag" - "amphibian-ag" "ruins-drop-plat-ag" "rapid-gunner-ag" - ;; "flitter-ag" "ruins-pillar-collapse-ag" - ;; "mech-ag" - ;; "fodder-ag" "ruins-bridge-ag" "shield-gunner-ag" "precipice-b-ag" @@ -4613,50 +4546,6 @@ (goal-src-sequence "" :deps ("$OUT/obj/los-control.o") - ;; "levels/common/enemy/hover/hover-formation-h.gc" - ;; "levels/common/enemy/hover/hover-nav-control-h.gc" - ;; "levels/common/enemy/hover/hover-enemy-h.gc" - ;; "levels/common/enemy/hover/hover-nav-network.gc" - ;; "levels/common/enemy/hover/hover-nav-control.gc" - ;; "levels/common/enemy/hover/hover-enemy.gc" - ;; "levels/common/enemy/hover/hover-enemy-battle.gc" - ;; "levels/common/enemy/hover/hover-formation.gc" - ;; "levels/common/enemy/hover/hover-nav-edit.gc" - ;; "levels/common/enemy/hover/wasp-part.gc" - ;; "levels/common/enemy/hover/wasp.gc" - ;; "levels/common/enemy/hover/crimson-guard-hover.gc" - ;; "levels/common/enemy/hover/flamer.gc" - ;; "levels/common/ai/ai-task-h.gc" - ;; "levels/common/ai/bot-h.gc" - ;; "levels/common/ai/bot.gc" - ;; "levels/common/ai/bot-states.gc" - ;; "levels/undefined/hal-h.gc" - ;; "levels/undefined/hal-task.gc" - ;; "levels/undefined/hal.gc" - ;; "levels/undefined/ruf-h.gc" - ;; "levels/undefined/ruf-task.gc" - ;; "levels/undefined/ruf.gc" - ;; "levels/undefined/ruf-states.gc" - ;; "levels/sewer/escort/jinx-h.gc" - ;; "levels/sewer/escort/jinx-shot.gc" - ;; "levels/sewer/escort/jinx-bomb.gc" - ;; "levels/sewer/escort/jinx.gc" - ;; "levels/sewer/escort/jinx-states.gc" - ;; "levels/sewer/escort/mog-h.gc" - ;; "levels/sewer/escort/mog.gc" - ;; "levels/sewer/escort/grim-h.gc" - ;; "levels/sewer/escort/grim.gc" - "characters/sig/sig-h.gc" - "characters/sig/sig-task.gc" - "characters/sig/sig-shot.gc" - "characters/sig/sig-plasma.gc" - "characters/sig/sig.gc" - "characters/sig/sig-states.gc" - ;; "engine/target/mech_suit/mech-part.gc" - ;; "engine/target/mech_suit/mech.gc" - ;; "engine/target/mech_suit/target-mech.gc" - ;; "engine/target/mech_suit/mech-states.gc" - ;; "engine/target/mech_suit/grunt-mech.gc" "levels/underport/under-shoot-block.gc" "levels/underport/underb-master.gc" "levels/underport/under-obs.gc" @@ -4671,23 +4560,16 @@ "levels/underport/sig5-course.gc" "levels/underport/under-scenes.gc" "levels/underport/sig-recorder.gc" - ;; "levels/common/enemy/metalhead_slinger/grenadier.gc" ) (copy-textures 3051 3053 3054 3413) (copy-gos - ;; "jak-mech+0-ag" - ;; "grunt-mech-anims+0-ag" - "sig-ag" - ;; "grunt-ag" "under-mine-ag" "jellyfish-ag" - ;; "mech-ag" "under-shoot-block-ag" "under-break-floor-ag" "centipede-ag" - ;; "com-airlock-inner-ag" "under-int-door-ag" "under-break-wall-b-ag" "under-break-wall-ag" @@ -4700,7 +4582,6 @@ "under-plat-shoot-ag" "under-plat-wall-ag" "under-plat-long-ag" - ;; "hip-door-a-ag" "under-warp-ag" "under-laser-ag" "under-laser-shadow-ag" diff --git a/goal_src/jak2/levels/atoll/atoll-scenes.gc b/goal_src/jak2/levels/atoll/atoll-scenes.gc index ea59f616c..4015116ed 100644 --- a/goal_src/jak2/levels/atoll/atoll-scenes.gc +++ b/goal_src/jak2/levels/atoll/atoll-scenes.gc @@ -7,3 +7,2801 @@ ;; DECOMP BEGINS +(defpartgroup group-atoll-bling-bling + :id 325 + :duration (seconds 0.035) + :linger-duration (seconds 1.5) + :bounds (static-bspherem 0 0 0 2) + :parts ((sp-item 1412 :flags (bit6))) + ) + +(defpart 1412 + :init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #xbb :page #xc)) + (sp-flt spt-num 1.0) + (sp-flt spt-scale-x (meters 0.2)) + (sp-flt spt-rot-x 204.8) + (sp-flt spt-rot-z (degrees -17.0)) + (sp-copy-from-other spt-scale-y -4) + (sp-flt spt-r 255.0) + (sp-flt spt-g 255.0) + (sp-flt spt-b 128.0) + (sp-flt spt-a 8.0) + (sp-int spt-timer 5) + (sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow) + (sp-flt spt-userdata 4096.0) + ) + ) + +(defpartgroup group-atoll-bling-bling-big + :id 326 + :duration (seconds 0.035) + :linger-duration (seconds 1.5) + :bounds (static-bspherem 0 0 0 2) + :parts ((sp-item 1413 :flags (bit6))) + ) + +(defpart 1413 + :init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #xbb :page #xc)) + (sp-flt spt-num 1.0) + (sp-flt spt-scale-x (meters 0.3)) + (sp-flt spt-rot-x 204.8) + (sp-flt spt-rot-z (degrees -17.0)) + (sp-copy-from-other spt-scale-y -4) + (sp-flt spt-r 255.0) + (sp-flt spt-g 255.0) + (sp-flt spt-b 128.0) + (sp-flt spt-a 12.0) + (sp-int spt-timer 5) + (sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow) + (sp-flt spt-userdata 4096.0) + ) + ) + +(defpartgroup group-hellcat-steady + :id 327 + :duration (seconds 0.035) + :linger-duration (seconds 1.5) + :flags (unk-4 unk-6) + :bounds (static-bspherem 0 0 0 32) + :rotate ((degrees 0) (degrees 4) (degrees 0)) + :parts ((sp-item 1414 :flags (bit7)) (sp-item 1415 :flags (bit7))) + ) + +(defpart 1414 + :init-specs ((sp-tex spt-texture (new 'static 'texture-id :page #xc)) + (sp-flt spt-num 1.0) + (sp-rnd-flt spt-x (meters -3) (meters 6) 1.0) + (sp-flt spt-y (meters -0.5)) + (sp-rnd-flt spt-scale-x (meters 0.75) (meters 0.5) 1.0) + (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) + (sp-rnd-flt spt-scale-y (meters 0.75) (meters 0.5) 1.0) + (sp-flt spt-r 128.0) + (sp-rnd-flt spt-g 96.0 32.0 1.0) + (sp-rnd-flt spt-b 64.0 32.0 1.0) + (sp-rnd-flt spt-a 16.0 16.0 1.0) + (sp-rnd-flt spt-vel-z (meters 0.04) (meters 0.033333335) 1.0) + (sp-flt spt-scalevel-x (meters 0.0033333334)) + (sp-rnd-flt spt-rotvel-z (degrees -0.2) (degrees 0.4) 1.0) + (sp-copy-from-other spt-scalevel-y -4) + (sp-rnd-flt spt-fade-a -0.053333335 -0.053333335 1.0) + (sp-rnd-flt spt-accel-y 0.0 0.68266666 1.0) + (sp-rnd-flt spt-friction 0.95 0.02 1.0) + (sp-int spt-timer 300) + (sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-12) + (sp-flt spt-conerot-x (degrees 0.0)) + (sp-rnd-flt spt-conerot-y (degrees -30.0) (degrees 60.0) 1.0) + (sp-flt spt-rotate-y (degrees 0.0)) + ) + ) + +(defpart 1415 + :init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x92 :page #xc)) + (sp-flt spt-num 1.0) + (sp-rnd-flt spt-x (meters -3) (meters 6) 1.0) + (sp-rnd-flt spt-y (meters -0.2) (meters -0.4) 1.0) + (sp-rnd-flt spt-scale-x (meters 0.01) (meters 0.02) 1.0) + (sp-int spt-rot-x 4) + (sp-rnd-flt spt-scale-y (meters 0.01) (meters 0.02) 1.0) + (sp-rnd-int spt-r 1124073472 2 32.0) + (sp-rnd-int spt-g 1115684864 1 64.0) + (sp-rnd-int spt-b 1107296256 1 32.0) + (sp-rnd-flt spt-a 64.0 64.0 1.0) + (sp-flt spt-omega 0.4096) + (sp-rnd-flt spt-vel-z (meters 0.04) (meters 0.033333335) 1.0) + (sp-rnd-flt spt-fade-a -0.21333334 -0.21333334 1.0) + (sp-rnd-flt spt-accel-y 0.0 0.68266666 1.0) + (sp-rnd-flt spt-friction 0.95 0.02 1.0) + (sp-int spt-timer 300) + (sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-12) + (sp-func spt-func 'sparticle-motion-blur) + (sp-flt spt-conerot-x (degrees 0.0)) + (sp-rnd-flt spt-conerot-y (degrees -15.0) (degrees 30.0) 1.0) + (sp-flt spt-rotate-y (degrees 0.0)) + ) + ) + +(defpartgroup group-ashelin-dust-puff + :id 328 + :duration (seconds 0.017) + :linger-duration (seconds 1.5) + :bounds (static-bspherem 0 0 0 2) + :parts ((sp-item 1416) (sp-item 1417) (sp-item 1418)) + ) + +(defpart 1416 + :init-specs ((sp-tex spt-texture (new 'static 'texture-id :page #xc)) + (sp-flt spt-num 3.0) + (sp-rnd-flt spt-scale-x (meters 1) (meters 1) 1.0) + (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) + (sp-copy-from-other spt-scale-y -4) + (sp-flt spt-r 128.0) + (sp-rnd-flt spt-g 96.0 32.0 1.0) + (sp-rnd-flt spt-b 64.0 32.0 1.0) + (sp-rnd-flt spt-a 16.0 32.0 1.0) + (sp-rnd-flt spt-vel-y (meters 0.02) (meters 0.01) 1.0) + (sp-flt spt-scalevel-x (meters 0.0033333334)) + (sp-rnd-flt spt-rotvel-z (degrees -0.2) (degrees 0.4) 1.0) + (sp-copy-from-other spt-scalevel-y -4) + (sp-flt spt-fade-a -0.16) + (sp-flt spt-accel-y -1.3653333) + (sp-flt spt-friction 0.95) + (sp-int spt-timer 300) + (sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-12) + (sp-rnd-flt spt-conerot-x (degrees 60.0) (degrees 30.0) 1.0) + (sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0) + ) + ) + +(defpart 1417 + :init-specs ((sp-tex spt-texture (new 'static 'texture-id :page #xc)) + (sp-flt spt-num 3.0) + (sp-rnd-flt spt-scale-x (meters 0.5) (meters 0.25) 1.0) + (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) + (sp-copy-from-other spt-scale-y -4) + (sp-flt spt-r 128.0) + (sp-rnd-flt spt-g 96.0 32.0 1.0) + (sp-rnd-flt spt-b 64.0 32.0 1.0) + (sp-rnd-flt spt-a 16.0 16.0 1.0) + (sp-rnd-flt spt-vel-y (meters 0.053333335) (meters 0.02) 1.0) + (sp-flt spt-scalevel-x (meters 0.0016666667)) + (sp-rnd-flt spt-rotvel-z (degrees -0.2) (degrees 0.4) 1.0) + (sp-copy-from-other spt-scalevel-y -4) + (sp-flt spt-fade-a -0.21333334) + (sp-flt spt-accel-y -1.3653333) + (sp-flt spt-friction 0.95) + (sp-int spt-timer 150) + (sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-12) + (sp-rnd-flt spt-conerot-x (degrees 60.0) (degrees 30.0) 1.0) + (sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0) + ) + ) + +(defpart 1418 + :init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x26 :page #xc)) + (sp-flt spt-num 8.0) + (sp-rnd-flt spt-x (meters -0.4) (meters 0.8) 1.0) + (sp-rnd-flt spt-y (meters -0.1) (meters 0.4) 1.0) + (sp-rnd-flt spt-z (meters -0.4) (meters 0.8) 1.0) + (sp-rnd-flt spt-scale-x (meters 0.01) (meters 0.02) 1.0) + (sp-rnd-flt spt-scale-y (meters 0.01) (meters 0.02) 1.0) + (sp-rnd-int spt-r 1124073472 2 32.0) + (sp-rnd-int spt-g 1115684864 1 64.0) + (sp-rnd-int spt-b 1107296256 1 32.0) + (sp-rnd-flt spt-a 64.0 64.0 1.0) + (sp-rnd-flt spt-vel-y (meters 0.015) (meters 0.006666667) 1.0) + (sp-flt spt-fade-a -0.42666668) + (sp-rnd-flt spt-accel-y -5.4613333 2.7306666 1.0) + (sp-int spt-timer 300) + (sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-12) + (sp-rnd-flt spt-conerot-x (degrees 30.0) (degrees 50.000004) 1.0) + (sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0) + (sp-flt spt-conerot-radius (meters 0.5)) + ) + ) + +(defpartgroup group-sniper-hit + :id 329 + :duration (seconds 0.017) + :flags (use-local-clock) + :bounds (static-bspherem 0 0 0 1) + :parts ((sp-item 1419 :period 1200 :length 5) (sp-item 1420 :period 1200 :length 5)) + ) + +(defpart 1419 + :init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #xbb :page #xc)) + (sp-flt spt-num 1.0) + (sp-rnd-flt spt-scale-x (meters 32) (meters 5) 1.0) + (sp-flt spt-rot-x 2048.0) + (sp-rnd-flt spt-rot-z (degrees -12.000001) (degrees 24.000002) 1.0) + (sp-copy-from-other spt-scale-y -4) + (sp-flt spt-r 128.0) + (sp-rnd-flt spt-g 128.0 64.0 1.0) + (sp-flt spt-b 255.0) + (sp-flt spt-a 32.0) + (sp-flt spt-fade-a -1.28) + (sp-int spt-timer 25) + (sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow) + (sp-flt spt-userdata 16384.0) + ) + ) + +(defpart 1420 + :init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x33 :page #xc)) + (sp-flt spt-num 1.0) + (sp-flt spt-scale-x (meters 3)) + (sp-flt spt-rot-x 204.8) + (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) + (sp-copy-from-other spt-scale-y -4) + (sp-rnd-flt spt-r 0.0 32.0 1.0) + (sp-rnd-flt spt-g 128.0 128.0 1.0) + (sp-flt spt-b 255.0) + (sp-flt spt-a 16.0) + (sp-flt spt-scalevel-x (meters 0.64)) + (sp-copy-from-other spt-scalevel-y -4) + (sp-flt spt-fade-a -0.29090908) + (sp-int spt-timer 60) + (sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow) + (sp-flt spt-userdata 4096.0) + ) + ) + +(defbehavior atoll-sniper-lightning process-drawable () + (process-drawable-shock-effect + self + (-> *lightning-spec-id-table* 1) + lightning-probe-callback + (-> *part-id-table* 166) + 0 + 0 + 40960.0 + ) + ) + +(defpartgroup group-sniper-a-debris + :id 330 + :bounds (static-bspherem 0 0 0 8) + :parts ((sp-item 1422 :binding 1421) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + ) + ) + +(defpart 1422 + :init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x9 :page #x43b)) + (sp-func spt-birth-func 'birth-func-texture-group) + (sp-flt spt-num 0.5) + (sp-rnd-flt spt-x (meters -2) (meters 4) 1.0) + (sp-rnd-flt spt-z (meters -2) (meters 4) 1.0) + (sp-rnd-flt spt-scale-x (meters 0.2) (meters 0.2) 1.0) + (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) + (sp-rnd-flt spt-scale-y (meters 0.2) (meters 0.2) 1.0) + (sp-rnd-flt spt-r 64.0 128.0 1.0) + (sp-copy-from-other spt-g -1) + (sp-copy-from-other spt-b -1) + (sp-flt spt-a 128.0) + (sp-rnd-flt spt-vel-y (meters 0.06666667) (meters 0.033333335) 1.0) + (sp-rnd-flt spt-rotvel-z (degrees -1.2) (degrees 2.4) 1.0) + (sp-rnd-flt spt-accel-y -5.4613333 -8.192 1.0) + (sp-flt spt-friction 0.98) + (sp-int-plain-rnd spt-timer 250 499 1) + (sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-12) + (new 'static 'sp-field-init-spec + :field (sp-field-id spt-userdata) + :flags (sp-flag plain-v2) + :object (new 'static 'boxed-array :type int32 40 1 0 #x43b00900 #x43b00a00 #x43b00b00 #x43b00c00 #x43b00d00) + ) + (sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 80.0) 1.0) + (sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 3600.0) 1.0) + (sp-rnd-flt spt-conerot-radius (meters 0) (meters 2) 1.0) + ) + ) + +(defpart 1421 + :init-specs ((sp-tex spt-texture (new 'static 'texture-id :page #xc)) + (sp-rnd-flt spt-num 0.5 0.5 1.0) + (sp-rnd-flt spt-scale-x (meters 1) (meters 0.1) 1.0) + (sp-rnd-flt spt-scale-y (meters 1) (meters 0.2) 1.0) + (sp-rnd-flt spt-r 100.0 32.0 1.0) + (sp-rnd-flt spt-g 80.0 32.0 1.0) + (sp-rnd-flt spt-b 60.0 20.0 1.0) + (sp-rnd-flt spt-a 8.0 8.0 1.0) + (sp-rnd-flt spt-vel-y (meters -0.013333334) (meters -0.026666667) 1.0) + (sp-rnd-flt spt-scalevel-x (meters 0.0016666667) (meters 0.0016666667) 1.0) + (sp-rnd-flt spt-scalevel-y (meters 0.01) (meters 0.00033333333) 1.0) + (sp-rnd-flt spt-fade-a -0.035555556 -0.053333335 1.0) + (sp-rnd-flt spt-accel-y 0.0 1.3653333 1.0) + (sp-int spt-timer 225) + (sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-12) + (sp-rnd-flt spt-rotate-y (degrees 0.0) (degrees 360.0) 1.0) + ) + ) + +(defpartgroup group-sniper-b-debris + :id 331 + :bounds (static-bspherem 0 0 0 64) + :parts ((sp-item 1422 :binding 1421) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + ) + ) + +(defpartgroup group-sniper-c-debris + :id 332 + :bounds (static-bspherem 0 0 0 64) + :parts ((sp-item 1422 :binding 1421) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + ) + ) + +(defpartgroup group-sniper-c-hit-ground :id 333 :bounds (static-bspherem 0 0 0 8) :parts ((sp-item 1423))) + +(defpart 1423 + :init-specs ((sp-tex spt-texture (new 'static 'texture-id :page #xc)) + (sp-rnd-flt spt-num 6.0 6.0 1.0) + (sp-rnd-flt spt-scale-x (meters 1) (meters 1) 1.0) + (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) + (sp-copy-from-other spt-scale-y -4) + (sp-rnd-flt spt-r 64.0 128.0 1.0) + (sp-copy-from-other spt-g -1) + (sp-copy-from-other spt-b -1) + (sp-rnd-flt spt-a 16.0 16.0 1.0) + (sp-rnd-flt spt-vel-y (meters 0.02) (meters 0.04) 1.0) + (sp-rnd-flt spt-scalevel-x (meters 0.01) (meters 0.013333334) 1.0) + (sp-rnd-flt spt-rotvel-z (degrees -0.2) (degrees 0.4) 1.0) + (sp-copy-from-other spt-scalevel-y -4) + (sp-rnd-flt spt-fade-a -0.07111111 -0.07111111 1.0) + (sp-flt spt-accel-y -0.27306667) + (sp-flt spt-friction 0.94) + (sp-int spt-timer 450) + (sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-12 sp-cpuinfo-flag-14) + (sp-rnd-flt spt-conerot-x (degrees 60.0) (degrees 30.0) 1.0) + (sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0) + ) + ) + +(defpartgroup group-sniper-d-debris + :id 334 + :bounds (static-bspherem 0 0 0 64) + :parts ((sp-item 1422 :binding 1421) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + ) + ) + +(defpartgroup group-sniper-e-debris + :id 335 + :bounds (static-bspherem 0 0 0 64) + :parts ((sp-item 1422 :binding 1421) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + ) + ) + +(defpartgroup group-beach-atoll-daxterpipe-suck + :id 336 + :bounds (static-bspherem 0 -3 0 5) + :parts ((sp-item 1424) (sp-item 1425) (sp-item 1426)) + ) + +(defpart 1424 + :init-specs ((sp-flt spt-num 1.0) + (sp-flt spt-x (meters 2)) + (sp-flt spt-y (meters -3.5)) + (sp-int spt-rot-x 5) + (sp-flt spt-r 2457.6) + (sp-flt spt-g 1966.08) + (sp-flt spt-b 2048.0) + (sp-flt spt-vel-x (meters -0.013333334)) + (sp-flt spt-vel-y (meters 0.023333333)) + (sp-int spt-timer 150) + (sp-cpuinfo-flags distort) + (sp-rnd-flt spt-rotate-y (degrees 0.0) (degrees 360.0) 1.0) + ) + ) + +(defpart 1425 + :init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #xc9 :page #xc)) + (sp-flt spt-num 0.5) + (sp-rnd-flt spt-x (meters 0) (meters 0.6) 1.0) + (sp-flt spt-y (meters -2)) + (sp-flt spt-scale-x (meters 0.2)) + (sp-flt spt-rot-x 16384.0) + (sp-rnd-flt spt-scale-y (meters 0.25) (meters 0.75) 1.0) + (sp-rnd-int spt-r 0 1 128.0) + (sp-rnd-flt spt-g 64.0 196.0 1.0) + (sp-rnd-flt spt-b 128.0 128.0 1.0) + (sp-rnd-flt spt-a 8.0 4.0 1.0) + (sp-flt spt-vel-y (meters 0.006666667)) + (sp-flt spt-scalevel-x (meters -0.0025)) + (sp-rnd-flt spt-scalevel-y (meters 0.012207031) (meters 0.024414062) 1.0) + (sp-int spt-timer 150) + (sp-cpuinfo-flags sp-cpuinfo-flag-3) + (sp-rnd-flt spt-rotate-y (degrees 0.0) (degrees 360.0) 1.0) + ) + ) + +(defpart 1426 + :init-specs ((sp-tex spt-texture (new 'static 'texture-id :page #xc)) + (sp-flt spt-num 4.0) + (sp-rnd-flt spt-x (meters 2.5) (meters 0.5) 1.0) + (sp-flt spt-y (meters -3.5)) + (sp-rnd-flt spt-scale-x (meters 1) (meters 1) 1.0) + (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) + (sp-copy-from-other spt-scale-y -4) + (sp-rnd-flt spt-r 32.0 32.0 1.0) + (sp-rnd-flt spt-g 32.0 32.0 1.0) + (sp-rnd-flt spt-b 10.0 5.0 1.0) + (sp-flt spt-a 0.0) + (sp-flt spt-vel-x (meters -0.016666668)) + (sp-flt spt-vel-y (meters 0)) + (sp-flt spt-scalevel-x (meters -0.006666667)) + (sp-rnd-int-flt spt-rotvel-z (degrees -1.2) 1 436.90668) + (sp-copy-from-other spt-scalevel-y -4) + (sp-rnd-flt spt-fade-a 0.10666667 0.10666667 1.0) + (sp-flt spt-accel-y 6.144) + (sp-flt spt-friction 0.996) + (sp-int spt-timer 150) + (sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-3) + (sp-rnd-flt spt-rotate-y (degrees 0.0) (degrees 360.0) 1.0) + ) + ) + +(defpartgroup group-beach-atoll-daxterspout + :id 337 + :bounds (static-bspherem 0 0 0 10) + :parts ((sp-item 1427) (sp-item 1428) (sp-item 1429)) + ) + +(defpart 1427 + :init-specs ((sp-flt spt-num 1.0) + (sp-int spt-rot-x 5) + (sp-flt spt-r 2457.6) + (sp-flt spt-g 1966.08) + (sp-flt spt-b 2048.0) + (sp-rnd-flt spt-vel-y (meters 0.093333334) (meters 0.013333334) 1.0) + (sp-flt spt-fade-r 13.653334) + (sp-flt spt-fade-g 12.288) + (sp-flt spt-fade-b 13.653334) + (sp-flt spt-accel-y -6.144) + (sp-flt spt-friction 0.95) + (sp-int spt-timer 125) + (sp-cpuinfo-flags distort) + (sp-rnd-flt spt-conerot-x (degrees -85.0) (degrees -10.0) 1.0) + (sp-rnd-flt spt-conerot-y (degrees -85.0) (degrees -10.0) 1.0) + (sp-rnd-flt spt-conerot-radius (meters -0.5) (meters 0.5) 1.0) + ) + ) + +(defpart 1428 + :init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x21 :page #xc)) + (sp-flt spt-num 20.0) + (sp-flt spt-x (meters -0.5)) + (sp-rnd-flt spt-scale-x (meters 0.1) (meters 0.1) 1.0) + (sp-int spt-rot-x 4) + (sp-copy-from-other spt-scale-y -4) + (sp-rnd-flt spt-r 32.0 32.0 1.0) + (sp-rnd-flt spt-g 32.0 32.0 1.0) + (sp-rnd-flt spt-b 64.0 32.0 1.0) + (sp-rnd-flt spt-a 16.0 16.0 1.0) + (sp-flt spt-omega 8.192) + (sp-rnd-flt spt-vel-y (meters 0.093333334) (meters 0.013333334) 1.0) + (sp-rnd-flt spt-fade-a 0.10666667 0.10666667 1.0) + (sp-rnd-flt spt-accel-y -4.7786665 1.0922667 1.0) + (sp-flt spt-friction 0.95) + (sp-int spt-timer 140) + (sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-3) + (sp-func spt-func 'sparticle-motion-blur) + (sp-rnd-flt spt-conerot-x (degrees -80.0) (degrees -20.0) 1.0) + (sp-rnd-flt spt-conerot-y (degrees -80.0) (degrees -20.0) 1.0) + (sp-rnd-flt spt-conerot-radius (meters -0.5) (meters 0.5) 1.0) + ) + ) + +(defpart 1429 + :init-specs ((sp-tex spt-texture (new 'static 'texture-id :page #xc)) + (sp-flt spt-num 2.0) + (sp-flt spt-x (meters -0.5)) + (sp-rnd-flt spt-scale-x (meters 0.1) (meters 0.3) 1.0) + (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) + (sp-copy-from-other spt-scale-y -4) + (sp-rnd-flt spt-r 32.0 32.0 1.0) + (sp-rnd-flt spt-g 32.0 32.0 1.0) + (sp-rnd-flt spt-b 64.0 32.0 1.0) + (sp-rnd-flt spt-a 16.0 16.0 1.0) + (sp-rnd-flt spt-vel-y (meters 0.026666667) (meters 0.10666667) 1.0) + (sp-rnd-flt spt-scalevel-x (meters 0.006666667) (meters 0.006666667) 1.0) + (sp-rnd-flt spt-rotvel-z (degrees 0.2) (degrees 1.2) 1.0) + (sp-copy-from-other spt-scalevel-y -4) + (sp-flt spt-fade-a -0.10666667) + (sp-rnd-flt spt-accel-y 0.68266666 2.048 1.0) + (sp-flt spt-friction 0.9) + (sp-int spt-timer 300) + (sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-3) + (sp-rnd-flt spt-conerot-x (degrees -80.0) (degrees -20.0) 1.0) + (sp-rnd-flt spt-conerot-y (degrees -80.0) (degrees -20.0) 1.0) + ) + ) + +(defpartgroup group-atoll-hellcat-thruster + :id 338 + :duration (seconds 3) + :flags (use-local-clock unk-4) + :bounds (static-bspherem 0 0 0 32) + :parts ((sp-item 1430 :flags (is-3d bit7)) + (sp-item 1431 :flags (is-3d bit7)) + (sp-item 1432 :flags (bit7)) + (sp-item 1433 :flags (is-3d bit7)) + (sp-item 1434 :flags (is-3d bit7)) + (sp-item 1435 :flags (bit7)) + ) + ) + +(defpart 1430 + :init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x90 :page #xc)) + (sp-flt spt-num 1.0) + (sp-flt spt-x (meters 1.45)) + (sp-flt spt-y (meters 1.1)) + (sp-flt spt-z (meters -5.15)) + (sp-flt spt-scale-x (meters 0.6)) + (sp-int spt-rot-x 4) + (sp-flt spt-scale-y (meters 2)) + (sp-rnd-flt spt-r 128.0 128.0 1.0) + (sp-rnd-flt spt-g 32.0 96.0 1.0) + (sp-copy-from-other spt-b -1) + (sp-rnd-flt spt-a 128.0 64.0 1.0) + (sp-int spt-timer 5) + (sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-3) + (sp-flt spt-rotate-y (degrees 0.0)) + ) + ) + +(defpart 1431 + :init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x90 :page #xc)) + (sp-flt spt-num 1.0) + (sp-flt spt-x (meters 1.45)) + (sp-flt spt-y (meters 1.1)) + (sp-flt spt-z (meters -5.15)) + (sp-flt spt-scale-x (meters 0.6)) + (sp-int spt-rot-x 4) + (sp-flt spt-rot-z (degrees 90.0)) + (sp-flt spt-scale-y (meters 2)) + (sp-rnd-flt spt-r 128.0 128.0 1.0) + (sp-rnd-flt spt-g 32.0 96.0 1.0) + (sp-copy-from-other spt-b -1) + (sp-rnd-flt spt-a 128.0 64.0 1.0) + (sp-int spt-timer 5) + (sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-3) + (sp-flt spt-rotate-y (degrees 0.0)) + ) + ) + +(defpart 1432 + :init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #xca :page #xc)) + (sp-flt spt-num 1.0) + (sp-flt spt-x (meters 1.45)) + (sp-flt spt-y (meters 1.1)) + (sp-flt spt-z (meters -4.2)) + (sp-flt spt-scale-x (meters 1.75)) + (sp-flt spt-rot-x 102.4) + (sp-copy-from-other spt-scale-y -4) + (sp-flt spt-r 255.0) + (sp-rnd-flt spt-g 0.0 64.0 1.0) + (sp-flt spt-b 0.0) + (sp-rnd-flt spt-a 16.0 4.0 1.0) + (sp-flt spt-rotvel-z (degrees 0.3)) + (sp-int spt-timer 5) + (sp-cpuinfo-flags glow) + (sp-flt spt-userdata 2048.0) + (sp-flt spt-rotate-y (degrees 0.0)) + ) + ) + +(defpart 1433 + :init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x90 :page #xc)) + (sp-flt spt-num 1.0) + (sp-flt spt-x (meters -1.45)) + (sp-flt spt-y (meters 1.1)) + (sp-flt spt-z (meters -5.15)) + (sp-flt spt-scale-x (meters 0.6)) + (sp-int spt-rot-x 4) + (sp-flt spt-scale-y (meters 2)) + (sp-rnd-flt spt-r 128.0 128.0 1.0) + (sp-rnd-flt spt-g 32.0 96.0 1.0) + (sp-copy-from-other spt-b -1) + (sp-rnd-flt spt-a 128.0 64.0 1.0) + (sp-int spt-timer 5) + (sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-3) + (sp-flt spt-rotate-y (degrees 0.0)) + ) + ) + +(defpart 1434 + :init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x90 :page #xc)) + (sp-flt spt-num 1.0) + (sp-flt spt-x (meters -1.45)) + (sp-flt spt-y (meters 1.1)) + (sp-flt spt-z (meters -5.15)) + (sp-flt spt-scale-x (meters 0.6)) + (sp-int spt-rot-x 4) + (sp-flt spt-rot-z (degrees 90.0)) + (sp-flt spt-scale-y (meters 2)) + (sp-rnd-flt spt-r 128.0 128.0 1.0) + (sp-rnd-flt spt-g 32.0 96.0 1.0) + (sp-copy-from-other spt-b -1) + (sp-rnd-flt spt-a 128.0 64.0 1.0) + (sp-int spt-timer 5) + (sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-3) + (sp-flt spt-rotate-y (degrees 0.0)) + ) + ) + +(defpart 1435 + :init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #xca :page #xc)) + (sp-flt spt-num 1.0) + (sp-flt spt-x (meters -1.45)) + (sp-flt spt-y (meters 1.1)) + (sp-flt spt-z (meters -4.2)) + (sp-flt spt-scale-x (meters 1.75)) + (sp-flt spt-rot-x 102.4) + (sp-copy-from-other spt-scale-y -4) + (sp-flt spt-r 255.0) + (sp-rnd-flt spt-g 0.0 64.0 1.0) + (sp-flt spt-b 0.0) + (sp-rnd-flt spt-a 16.0 4.0 1.0) + (sp-flt spt-rotvel-z (degrees 0.3)) + (sp-int spt-timer 5) + (sp-cpuinfo-flags glow) + (sp-flt spt-userdata 2048.0) + (sp-flt spt-rotate-y (degrees 0.0)) + ) + ) + +(defpartgroup group-atoll-palmpilot-glow + :id 339 + :bounds (static-bspherem 0 0 0 3) + :parts ((sp-item 1436 :flags (bit6))) + ) + +(defpart 1436 + :init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #xca :page #xc)) + (sp-flt spt-num 1.0) + (sp-rnd-flt spt-scale-x (meters 0.15) (meters 0.01) 1.0) + (sp-flt spt-rot-x 409.6) + (sp-rnd-flt spt-scale-y (meters 0.1) (meters 0.01) 1.0) + (sp-flt spt-r 16.0) + (sp-flt spt-g 42.0) + (sp-flt spt-b 32.0) + (sp-rnd-flt spt-a 16.0 48.0 1.0) + (sp-int spt-timer 5) + (sp-cpuinfo-flags glow) + (sp-flt spt-userdata 2048.0) + ) + ) + +(scene-method-16 + (new 'static 'scene + :name "atoll-1-res" + :extra #f + :info #f + :mask-to-clear #x1282000 + :entity "scene-stage-20" + :art-group "scenecamera" + :anim "atoll-1-res" + :parts 13 + :command-list '((0 (kill "atoll-valve-10")) + (0 (kill "atoll-valve-14")) + (0 (kill "atoll-hatch-10")) + (0 (fadein (seconds (new 'static 'bfloat :data 0.166)))) + (278 (part-tracker "group-beach-atoll-daxterpipe-suck" entity "particleman" joint "particleA")) + (320 (send-event "part-tracker" 'die)) + (1054 (send-event "sidekick-highres" 'shadow #f)) + (1080 (kill "atoll-part-40")) + (1220 (part-tracker "group-beach-atoll-daxterspout" entity "particleman" joint "particleA")) + (1250 (kill "atoll-part-40")) + (1280 (send-event "part-tracker" 'die)) + (1550 (fadeout (seconds (new 'static 'bfloat :data 0.333)))) + (10000 (task-close! "atoll-water-resolution")) + ) + :cut-list '(77 174 245 421 466 551 625 791 901 1046 1146 1281 1421 1461) + :wait-ground-time (seconds 1) + :draw-target #f + :abort #t + :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 '() + :camera 4 + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "sidekick-highres" + :level 'atollext + :art-group "skel-sidekick-highres" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :flags #x1 + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "jak-highres" + :level 'atollext + :art-group "skel-jak-highres" + :prefix "" + :draw-frames '((min 1421) (1461 max)) + :scissor-frames '() + :flags #x1 + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "atoll-hatch" + :level 'atoll + :art-group "skel-atoll-hatch" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :shadow-mask #x2c + :shadow-values #x7 + :flags #x1 + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "atoll-valve" + :level 'atoll + :art-group "skel-atoll-valve" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :shadow-mask #x2c + :shadow-values #x7 + :flags #x1 + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "particleman" + :level 'atollext + :art-group "skel-particleman" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :shadow-flags -1 + :shadow-volume-joint #f + ) + ) + :load-point-obj "atoll-movie" + :end-point-obj (new 'static 'continue-point + :name "atoll-start" + :level #f + :trans (new 'static 'vector :x 2260335.5 :y 3774.0544 :z -3809144.0 :w 1.0) + :quat (new 'static 'vector :x 0.0014 :y 0.0978 :z -0.0001 :w 0.9952) + :camera-trans (new 'static 'vector :x 2255904.2 :y 23728.537 :z -3848704.8 :w 1.0) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9936 0.0 -0.112)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0209 0.9823 0.1857)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1101 -0.1869 0.9761)) + ) + :on-goto #f + :vis-nick 'atoll + :want (new 'static 'inline-array level-buffer-state 6 + (new 'static 'level-buffer-state :name 'atollext :display? 'display :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name 'atoll :display? 'display :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + ) + :want-sound (new 'static 'array symbol 3 'atoll1 'atoll2 'atoll3) + ) + :borrow '() + :sfx-volume -1.0 + :ambient-volume -1.0 + :music-volume -1.0 + :blackout-end #t + :peaceful #t + :music-delay 1500.0 + :save #t + ) + ) + +(scene-method-16 + (new 'static 'scene + :name "atoll-save-ashelin-res-a" + :extra #f + :info #f + :mask-to-clear #x1282000 + :entity "scene-stage-20" + :art-group "scenecamera" + :anim "atoll-save-ashelin-res-a" + :parts 9 + :command-list '((0 (kill "atoll-hellcat-2") (fadein (frame-time-30 10))) + (283 + (part-tracker + "group-ashelin-dust-puff" + entity + "ashelin-highres" + joint + "Lball" + track + #t + duration + (frame-range (new 'static 'bfloat :data 283.0) 284) + ) + (part-tracker + "group-ashelin-dust-puff" + entity + "ashelin-highres" + joint + "Rball" + track + #t + duration + (frame-range (new 'static 'bfloat :data 283.0) 284) + ) + ) + (10000 (task-close! "atoll-battle-rescue")) + ) + :cut-list '(201 315 366 543 655 723 828) + :wait-ground-time (seconds 1) + :draw-target #f + :abort #t + :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 '() + :camera 4 + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "sidekick-highres" + :level 'atollext + :art-group "skel-sidekick-highres" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :flags #x1 + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "jak-highres" + :level 'atollext + :art-group "skel-jak-highres" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :flags #x1 + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "ashelin-highres" + :level 'atollext + :art-group "skel-ashelin-highres" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :flags #x1 + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "atoll-hellcat" + :level 'atollext + :art-group "skel-atoll-hellcat" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :flags #x1 + :shadow-flags -1 + :shadow-volume-joint #f + ) + ) + :load-point-obj "atoll-movie" + :end-point-obj (new 'static 'continue-point + :name "atoll-start" + :level #f + :flags (continue-flags cf2) + :trans (new 'static 'vector :x 2277804.5 :y 217672.9 :z -4571725.5 :w 1.0) + :quat (new 'static 'vector :y -0.9671 :w 0.2541) + :camera-trans (new 'static 'vector :x 2310242.8 :y 251249.05 :z -4513428.0 :w 1.0) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.8742 0.0 0.4854)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.117 0.9705 -0.2107)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.4711 -0.241 -0.8484)) + ) + :on-goto #f + :vis-nick 'atoll + :want (new 'static 'inline-array level-buffer-state 6 + (new 'static 'level-buffer-state :name 'atollext :display? 'display :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name 'atoll :display? 'display :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + ) + :want-sound (new 'static 'array symbol 3 'atoll1 'atoll2 'atoll4) + ) + :borrow '() + :sfx-volume -1.0 + :ambient-volume -1.0 + :music-volume -1.0 + :blackout-end #t + :peaceful #t + :save #t + ) + ) + +(scene-method-16 + (new 'static 'scene + :name "atoll-save-ashelin-res-b" + :extra #f + :info #f + :mask-to-clear #x1282000 + :entity "scene-stage-20" + :art-group "scenecamera" + :anim "atoll-save-ashelin-res-b" + :parts 13 + :command-list '((0 (kill "atoll-hellcat-2")) + (185 + (part-tracker + "group-hellcat-steady" + entity + "atoll-hellcat" + joint + "main" + track + #t + duration + (frame-range (new 'static 'bfloat :data 185.0) (new 'static 'bfloat :data 490.0)) + ) + ) + (580 + (part-tracker + "group-hellcat-steady" + entity + "atoll-hellcat" + joint + "main" + track + #t + duration + (frame-range (new 'static 'bfloat :data 580.0) (new 'static 'bfloat :data 770.0)) + ) + ) + (613 + (part-tracker + "group-atoll-bling-bling" + entity + "particleman" + joint + "particleA" + track + #t + duration + (frame-range (new 'static 'bfloat :data 613.0) (new 'static 'bfloat :data 625.0)) + ) + ) + (628 + (part-tracker + "group-atoll-bling-bling" + entity + "particleman" + joint + "particleA" + track + #t + duration + (frame-range (new 'static 'bfloat :data 628.0) (new 'static 'bfloat :data 635.0)) + ) + ) + (635 + (part-tracker + "group-atoll-bling-bling-big" + entity + "particleman" + joint + "particleA" + track + #t + duration + (frame-range (new 'static 'bfloat :data 635.0) (new 'static 'bfloat :data 640.0)) + ) + ) + (640 + (part-tracker + "group-atoll-bling-bling" + entity + "particleman" + joint + "particleA" + track + #t + duration + (frame-range (new 'static 'bfloat :data 640.0) (new 'static 'bfloat :data 673.0)) + ) + ) + (677 + (part-tracker + "group-atoll-bling-bling" + entity + "particleman" + joint + "particleA" + track + #t + duration + (frame-range (new 'static 'bfloat :data 677.0) (new 'static 'bfloat :data 687.0)) + ) + ) + (687 + (part-tracker + "group-atoll-bling-bling-big" + entity + "particleman" + joint + "particleA" + track + #t + duration + (frame-range (new 'static 'bfloat :data 687.0) (new 'static 'bfloat :data 690.0)) + ) + ) + (690 + (part-tracker + "group-atoll-bling-bling" + entity + "particleman" + joint + "particleA" + track + #t + duration + (frame-range (new 'static 'bfloat :data 690.0) (new 'static 'bfloat :data 735.0)) + ) + ) + (751 + (part-tracker + "group-atoll-bling-bling" + entity + "particleman" + joint + "particleA" + track + #t + duration + (frame-range (new 'static 'bfloat :data 751.0) (new 'static 'bfloat :data 754.0)) + ) + ) + (754 + (part-tracker + "group-atoll-bling-bling-big" + entity + "particleman" + joint + "particleA" + track + #t + duration + (frame-range (new 'static 'bfloat :data 754.0) (new 'static 'bfloat :data 757.0)) + ) + ) + (757 + (part-tracker + "group-atoll-bling-bling" + entity + "particleman" + joint + "particleA" + track + #t + duration + (frame-range (new 'static 'bfloat :data 757.0) (new 'static 'bfloat :data 766.0)) + ) + ) + (1100 + (part-tracker + "group-hellcat-steady" + entity + "atoll-hellcat" + joint + "main" + track + #t + duration + (frame-range (new 'static 'bfloat :data 1130.0) (new 'static 'bfloat :data 1187.0)) + ) + ) + (1189 + (part-tracker + "group-hellcat-steady" + entity + "atoll-hellcat" + joint + "main" + track + #t + duration + (frame-range (new 'static 'bfloat :data 1189.0) (new 'static 'bfloat :data 1190.0)) + ) + ) + (1191 + (part-tracker + "group-hellcat-steady" + entity + "atoll-hellcat" + joint + "main" + track + #t + duration + (frame-range (new 'static 'bfloat :data 1191.0) (new 'static 'bfloat :data 1191.0)) + ) + ) + (1193 + (part-tracker + "group-hellcat-steady" + entity + "atoll-hellcat" + joint + "main" + track + #t + duration + (frame-range (new 'static 'bfloat :data 1193.0) (new 'static 'bfloat :data 1193.0)) + ) + ) + (1196 + (part-tracker + "group-hellcat-steady" + entity + "atoll-hellcat" + joint + "main" + track + #t + duration + (frame-range (new 'static 'bfloat :data 1196.0) (new 'static 'bfloat :data 1196.0)) + ) + ) + (1200 + (part-tracker + "group-hellcat-steady" + entity + "atoll-hellcat" + joint + "main" + track + #t + duration + (frame-range (new 'static 'bfloat :data 1200.0) (new 'static 'bfloat :data 1200.0)) + ) + ) + (1205 + (part-tracker + "group-hellcat-steady" + entity + "atoll-hellcat" + joint + "main" + track + #t + duration + (frame-range (new 'static 'bfloat :data 1205.0) (new 'static 'bfloat :data 1205.0)) + ) + ) + (1232 + (part-tracker + "group-atoll-palmpilot-glow" + entity + "palmpilot" + joint + "datascreen" + track + #t + duration + (frame-range 1232 1271) + ) + ) + (1295 + (part-tracker + "group-atoll-hellcat-thruster" + entity + "atoll-hellcat" + joint + "main" + track + #t + duration + (frame-range 1295 1480) + ) + ) + (10000 + (unless (task-closed? "atoll-battle-resolution") (talker-spawn "miss008")) + (task-close! "atoll-battle-resolution") + ) + ) + :cut-list '(124 405 469 613 767 934 1181 1232 1271 1389) + :wait-ground-time (seconds 1) + :draw-target #f + :abort #t + :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 '() + :camera 4 + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "particleman" + :level 'atollext + :art-group "skel-particleman" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "sidekick-highres" + :level 'atollext + :art-group "skel-sidekick-highres" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :flags #x1 + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "jak-highres" + :level 'atollext + :art-group "skel-jak-highres" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :flags #x1 + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "ashelin-highres" + :level 'atollext + :art-group "skel-ashelin-highres" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :flags #x1 + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "atoll-hellcat" + :level 'atollext + :art-group "skel-atoll-hellcat" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :flags #x1 + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "palmpilot" + :level 'atollext + :art-group "skel-palmpilot" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :flags #x1 + :shadow-flags -1 + :shadow-volume-joint #f + ) + ) + :load-point-obj "atoll-movie" + :end-point-obj (new 'static 'continue-point + :name "atoll-start" + :level #f + :flags (continue-flags cf2) + :trans (new 'static 'vector :x 2277804.5 :y 217672.9 :z -4571725.5 :w 1.0) + :quat (new 'static 'vector :y -0.9671 :w 0.2541) + :camera-trans (new 'static 'vector :x 2310242.8 :y 251249.05 :z -4513428.0 :w 1.0) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.8742 0.0 0.4854)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.117 0.9705 -0.2107)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.4711 -0.241 -0.8484)) + ) + :on-goto #f + :vis-nick 'atoll + :want (new 'static 'inline-array level-buffer-state 6 + (new 'static 'level-buffer-state :name 'atollext :display? 'display :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name 'atoll :display? 'display :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + ) + :want-sound (new 'static 'array symbol 3 'atoll1 'atoll2 'atoll4) + ) + :borrow '() + :sfx-volume -1.0 + :ambient-volume -1.0 + :music-volume -1.0 + :blackout-end #t + :peaceful #t + :music-delay 1500.0 + :save #t + ) + ) + +(defskelgroup skel-atoll-tank-a atoll-tank 0 -1 ((1 (meters 999999))) :bounds (static-spherem 30 -15 13 82)) + +(defskelgroup skel-atoll-tank-b atoll-tank 4 -1 ((5 (meters 999999))) :bounds (static-spherem 0 -15 -5 82)) + +(defskelgroup skel-atoll-tank-c atoll-tank 8 -1 ((9 (meters 999999))) :bounds (static-spherem 30 -15 26 82)) + +(scene-method-16 + (new 'static 'scene + :name "atoll-sig-intro" + :extra #f + :info #f + :mask-to-clear #x1282000 + :entity "scene-stage-20" + :art-group "scenecamera" + :anim "atoll-sig-intro" + :parts 6 + :command-list '((1 (send-event "sig-atoll-1" 'draw #f)) + ((new 'static 'bfloat :data 1.1) + (part-tracker + "group-sig-gun-glow" + entity + "sig-highres" + joint + "blast" + track + #t + duration + (frame-range (new 'static 'bfloat :data 1.1) (new 'static 'bfloat :data 330.0)) + ) + ) + (10000 (send-event "sig-atoll-1" 'draw #t) (task-close! "atoll-sig-sig-introduction")) + ) + :cut-list '(47 114 171) + :wait-ground-time (seconds 1) + :draw-target #f + :abort #t + :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 '() + :camera 4 + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "sig-highres" + :level 'atollext + :art-group "skel-sig-highres" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :flags #x1 + :shadow-flags -1 + :shadow-volume-joint #f + ) + ) + :load-point-obj "atoll-movie" + :end-point-obj (new 'static 'continue-point + :name "atoll-start" + :level #f + :trans (new 'static 'vector :x 2319903.5 :y 6458.5728 :z -3555748.8 :w 1.0) + :quat (new 'static 'vector :y 0.9957 :w 0.0922) + :camera-trans (new 'static 'vector :x 2318410.5 :y 27552.154 :z -3504565.8 :w 1.0) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9995 0.0 -0.0285)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0034 0.9925 -0.1215)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0283 -0.1216 -0.9921)) + ) + :on-goto #f + :vis-nick 'atoll + :want (new 'static 'inline-array level-buffer-state 6 + (new 'static 'level-buffer-state :name 'atollext :display? 'display :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name 'atoll :display? 'display :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + ) + :want-sound (new 'static 'array symbol 3 'atoll1 'atoll2 'atoll3) + ) + :borrow '() + :sfx-volume -1.0 + :ambient-volume -1.0 + :music-volume 0.65 + :blackout-end #t + :peaceful #t + :save #t + ) + ) + +(scene-method-16 + (new 'static 'scene + :name "atoll-sig-tank" + :extra #f + :info #f + :mask-to-clear #x1282000 + :entity "scene-stage-21" + :art-group "scenecamera" + :anim "atoll-sig-tank" + :parts 7 + :command-list '((1 (kill "atoll-tank-1") (task-close! "atoll-sig-tank") (send-event "sig-atoll-1" 'draw #f)) + ((new 'static 'bfloat :data 1.1) + (part-tracker + "group-sig-plasma" + entity + "sig-highres" + joint + "blast" + track + #t + duration + (frame-range (new 'static 'bfloat :data 1.1) (new 'static 'bfloat :data 56.0)) + ) + ) + (49 (send-event "sig-atoll-1" 'untrigger)) + (50 + (part-tracker + "group-sig-gun-glow" + entity + "particleman" + joint + "particleC" + track + #t + duration + (frame-range 50 300) + ) + ) + (60 + (apply + ,(lambda () + (when *scene-player* + (let ((gp-0 (new 'stack-no-clear 'vector))) + (set-vector! gp-0 2075545.2 103013.99 -3889876.5 1.0) + (let ((s5-0 (get-process *default-dead-pool* part-tracker #x4000))) + (when s5-0 + (let ((t9-1 (method-of-type part-tracker activate))) + (t9-1 + (the-as part-tracker s5-0) + (ppointer->process *scene-player*) + (symbol->string (-> part-tracker symbol)) + (the-as pointer #x70004000) + ) + ) + (let ((t9-2 run-function-in-process) + (a0-6 s5-0) + (a1-2 part-tracker-init) + (a2-4 (-> *part-group-id-table* 323)) + (a3-1 0) + (t0-0 #f) + (t1-0 #f) + (t2-0 #f) + (t3-0 *launch-matrix*) + ) + (set! (-> t3-0 trans quad) (-> gp-0 quad)) + ((the-as (function object object object object object object object object none) t9-2) + a0-6 + a1-2 + a2-4 + a3-1 + t0-0 + t1-0 + t2-0 + t3-0 + ) + ) + (-> s5-0 ppointer) + ) + ) + ) + ) + ) + ) + ) + (61 + (part-tracker + "group-atoll-tank-splash" + entity + "atoll-tank-1" + duration + (frame-range (new 'static 'bfloat :data 61.0) (new 'static 'bfloat :data 94.0)) + ) + (apply ,(lambda () (set-atoll-explosion! 1.9921875))) + ) + (94 + (part-tracker + "group-atoll-tank-aftermath" + entity + "atoll-tank-1" + duration + (frame-range (new 'static 'bfloat :data 94.0) (new 'static 'bfloat :data 1000.0)) + ) + ) + (10000 + (send-event "sig-atoll-1" 'move-trans (new 'static 'vector :x 2239406.0 :y 62382.08 :z -3848929.2 :w 1.0)) + (send-event "sig-atoll-1" 'draw #t) + ) + ) + :cut-list '(47 114 171) + :wait-ground-time (seconds 1) + :draw-target #f + :abort #t + :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 '() + :camera 4 + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "particleman" + :level 'atollext + :art-group "skel-particleman" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "sidekick-highres" + :level 'atollext + :art-group "skel-sidekick-highres" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :flags #x1 + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "jak-highres" + :level 'atollext + :art-group "skel-jak-highres" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :flags #x1 + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "atoll-tank-a" + :level 'atollext + :art-group "skel-atoll-tank-a" + :prefix "atoll-tank-a-" + :draw-frames '((min max)) + :scissor-frames '() + :flags #x1 + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "atoll-tank-b" + :level 'atollext + :art-group "skel-atoll-tank-b" + :prefix "atoll-tank-b-" + :draw-frames '((min max)) + :scissor-frames '() + :flags #x1 + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "atoll-tank-c" + :level 'atollext + :art-group "skel-atoll-tank-c" + :prefix "atoll-tank-c-" + :draw-frames '((min max)) + :scissor-frames '() + :flags #x1 + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "sig-highres" + :level 'atollext + :art-group "skel-sig-highres" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :flags #x1 + :shadow-flags -1 + :shadow-volume-joint #f + ) + ) + :load-point-obj "atoll-movie" + :end-point-obj (new 'static 'continue-point + :name "atoll-start" + :level #f + :trans (new 'static 'vector :x 2224455.8 :y 62382.08 :z -3835043.8 :w 1.0) + :quat (new 'static 'vector :y -0.7402 :w 0.6723) + :camera-trans (new 'static 'vector :x 2235066.0 :y 82436.914 :z -3842145.5 :w 1.0) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.4221 0.0 0.9065)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1128 0.9922 -0.0525)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.8995 -0.1244 -0.4188)) + ) + :on-goto #f + :vis-nick 'atoll + :want (new 'static 'inline-array level-buffer-state 6 + (new 'static 'level-buffer-state :name 'atollext :display? 'display :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name 'atoll :display? 'display :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + ) + :want-sound (new 'static 'array symbol 3 'atoll1 'atoll2 'atoll3) + ) + :borrow '() + :sfx-volume 1.0 + :ambient-volume -1.0 + :music-volume 0.65 + :blackout-end #t + :peaceful #t + :save #f + ) + ) + +(scene-method-16 + (new 'static 'scene + :name "atoll-sniper-a" + :extra #f + :info #f + :mask-to-clear #x1282000 + :entity "scene-stage-20" + :art-group "scenecamera" + :anim "atoll-sniper-a" + :parts 4 + :command-list '((1 (send-event "sig-atoll-1" 'draw #f) (kill "sniper-4")) + ((new 'static 'bfloat :data 1.1) + (send-event "spyder" 'shadow #f) + (part-tracker + "group-sig-plasma" + entity + "sig-highres" + joint + "blast" + track + #t + duration + (frame-range (new 'static 'bfloat :data 1.1) (new 'static 'bfloat :data 72.0)) + ) + ) + (49 (send-event "sig-atoll-1" 'untrigger)) + (72 + (part-tracker "group-lightning-glow" entity "spyder" joint "chest" track #t duration (frame-range 72 176)) + (part-tracker "group-sniper-hit" entity "spyder" joint "chest" track #t) + (part-tracker "group-jak-peacemaker-shot-hit" entity "spyder" joint "chest" track #f) + (send-event "spyder" 'post-hook atoll-sniper-lightning) + ) + (128 (part-tracker + "group-sniper-a-debris" + entity + "particleman" + joint + "main" + track + #t + duration + (frame-range 128 154) + ) + ) + (176 (send-event "spyder" 'post-hook nothing)) + (10000 (send-event "sig-atoll-1" 'draw #t) (task-close! "atoll-sig-sniper-a")) + ) + :cut-list '() + :wait-ground-time (seconds 1) + :draw-target #f + :abort #t + :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 '() + :camera 4 + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "particleman" + :level 'atollext + :art-group "skel-particleman" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "sidekick-highres" + :level 'atollext + :art-group "skel-sidekick-highres" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :flags #x1 + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "jak-highres" + :level 'atollext + :art-group "skel-jak-highres" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :flags #x1 + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "spyder" + :level 'atollext + :art-group "skel-spyder" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :flags #x1 + :shadow-flags -1 + :shadow-volume-joint #f + :no-draw-seg #x10 + ) + (new 'static 'scene-actor + :name "sig-highres" + :level 'atollext + :art-group "skel-sig-highres" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :flags #x1 + :shadow-flags -1 + :shadow-volume-joint #f + ) + ) + :load-point-obj "atoll-movie" + :end-point-obj (new 'static 'continue-point + :name "atoll-start" + :level #f + :trans (new 'static 'vector :x 1769504.8 :y 52751.973 :z -4001606.8 :w 1.0) + :quat (new 'static 'vector :y 0.9191 :w -0.3939) + :camera-trans (new 'static 'vector :x 1801368.0 :y 72062.56 :z -3970629.2 :w 1.0) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.6982 0.0 0.7158)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0937 0.9913 -0.0914)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.7096 -0.131 -0.6922)) + ) + :on-goto #f + :vis-nick 'atoll + :want (new 'static 'inline-array level-buffer-state 6 + (new 'static 'level-buffer-state :name 'atollext :display? 'display :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name 'atoll :display? 'display :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + ) + :want-sound (new 'static 'array symbol 3 'atoll1 'atoll2 'atoll3) + ) + :borrow '() + :sfx-volume -1.0 + :ambient-volume -1.0 + :music-volume 0.65 + :blackout-end #t + :peaceful #t + :save #f + ) + ) + +(scene-method-16 + (new 'static 'scene + :name "atoll-sniper-b" + :extra #f + :info #f + :mask-to-clear #x1282000 + :entity "scene-stage-20" + :art-group "scenecamera" + :anim "atoll-sniper-b" + :parts 4 + :command-list '((1 + (send-event "sig-atoll-1" 'draw #f) + (kill "sniper-1") + (kill "juicer-3") + (kill "juicer-4") + (kill "juicer-5") + (kill "juicer-79") + (kill "juicer-80") + (kill "fodder-24") + (kill "fodder-25") + ) + ((new 'static 'bfloat :data 1.1) + (part-tracker + "group-sig-plasma" + entity + "sig-highres" + joint + "blast" + track + #t + duration + (frame-range (new 'static 'bfloat :data 1.1) (new 'static 'bfloat :data 92.0)) + ) + (send-event "spyder" 'shadow #f) + ) + (63 (send-event "sig-atoll-1" 'untrigger)) + (92 + (part-tracker "group-lightning-glow" entity "spyder" joint "chest" track #t duration (frame-range 92 164)) + (part-tracker "group-sniper-hit" entity "spyder" joint "chest" track #t) + (part-tracker "group-jak-peacemaker-shot-hit" entity "spyder" joint "chest" track #f) + (send-event "spyder" 'post-hook atoll-sniper-lightning) + ) + (123 (part-tracker + "group-sniper-b-debris" + entity + "particleman" + joint + "main" + track + #t + duration + (frame-range 123 160) + ) + ) + (168 (send-event "spyder" 'post-hook nothing)) + (10000 (send-event "sig-atoll-1" 'draw #t) (task-close! "atoll-sig-sniper-b")) + ) + :cut-list '() + :wait-ground-time (seconds 1) + :draw-target #f + :abort #t + :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 '() + :camera 4 + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "particleman" + :level 'atollext + :art-group "skel-particleman" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "spyder" + :level 'atollext + :art-group "skel-spyder" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :flags #x1 + :shadow-flags -1 + :shadow-volume-joint #f + :no-draw-seg #x10 + ) + (new 'static 'scene-actor + :name "sig-highres" + :level 'atollext + :art-group "skel-sig-highres" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :flags #x1 + :shadow-flags -1 + :shadow-volume-joint #f + ) + ) + :load-point-obj "atoll-movie" + :end-point-obj (new 'static 'continue-point + :name "atoll-start" + :level #f + :trans (new 'static 'vector :x 1377930.5 :y 3077.7344 :z -4152363.5 :w 1.0) + :quat (new 'static 'vector :y -0.9294 :w -0.369) + :camera-trans (new 'static 'vector :x 1354375.1 :y 24171.725 :z -4106899.8 :w 1.0) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.8874 0.0 -0.4609)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.056 0.9925 -0.1078)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.4575 -0.1215 -0.8808)) + ) + :on-goto #f + :vis-nick 'atoll + :want (new 'static 'inline-array level-buffer-state 6 + (new 'static 'level-buffer-state :name 'atollext :display? 'display :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name 'atoll :display? 'display :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + ) + :want-sound (new 'static 'array symbol 3 'atoll1 'atoll2 'atoll3) + ) + :borrow '() + :sfx-volume -1.0 + :ambient-volume -1.0 + :music-volume 0.65 + :blackout-end #t + :peaceful #t + :save #f + ) + ) + +(scene-method-16 + (new 'static 'scene + :name "atoll-sniper-c" + :extra #f + :info #f + :mask-to-clear #x1282000 + :entity "scene-stage-20" + :art-group "scenecamera" + :anim "atoll-sniper-c" + :parts 4 + :command-list '((1 (send-event "sig-atoll-1" 'draw #f) (kill "sniper-2")) + ((new 'static 'bfloat :data 1.1) + (part-tracker + "group-sig-plasma" + entity + "sig-highres" + joint + "blast" + track + #t + duration + (frame-range (new 'static 'bfloat :data 1.1) (new 'static 'bfloat :data 54.0)) + ) + ) + (39 (send-event "sig-atoll-1" 'untrigger)) + (54 + (part-tracker "group-lightning-glow" entity "spyder" joint "chest" track #t duration (frame-range 54 150)) + (part-tracker "group-sniper-hit" entity "spyder" joint "chest" track #t) + (part-tracker "group-jak-peacemaker-shot-hit" entity "spyder" joint "chest" track #f) + (send-event "spyder" 'post-hook atoll-sniper-lightning) + ) + (90 (part-tracker + "group-sniper-c-debris" + entity + "particleman" + joint + "main" + track + #t + duration + (frame-range 90 128) + ) + ) + (134 (part-tracker + "group-sniper-c-hit-ground" + entity + "particleman" + joint + "main" + track + #t + duration + (frame-range 134 140) + ) + ) + (147 (send-event + "particleman" + 'eval + ,(lambda :behavior process-drawable + () + (let ((gp-1 (vector+! + (new 'stack-no-clear 'vector) + (-> self node-list data 3 bone transform trans) + (new 'static 'vector :y 819.2 :w 1.0) + ) + ) + (s5-0 (get-process *default-dead-pool* part-tracker #x4000)) + ) + (when s5-0 + (let ((t9-1 (method-of-type part-tracker activate))) + (t9-1 + (the-as part-tracker s5-0) + *entity-pool* + (symbol->string (-> part-tracker symbol)) + (the-as pointer #x70004000) + ) + ) + (let ((t9-2 run-function-in-process) + (a0-3 s5-0) + (a1-2 part-tracker-init) + (a2-4 (-> *part-group-id-table* 121)) + (a3-1 0) + (t0-0 #f) + (t1-0 #f) + (t2-0 #f) + (t3-0 *launch-matrix*) + ) + (set! (-> t3-0 trans quad) (-> gp-1 quad)) + ((the-as (function object object object object object object object object none) t9-2) + a0-3 + a1-2 + a2-4 + a3-1 + t0-0 + t1-0 + t2-0 + t3-0 + ) + ) + (-> s5-0 ppointer) + ) + ) + ) + ) + ) + (150 (send-event "spyder" 'post-hook nothing)) + (10000 (send-event "sig-atoll-1" 'draw #t) (task-close! "atoll-sig-sniper-c")) + ) + :cut-list '(57) + :wait-ground-time (seconds 1) + :draw-target #f + :abort #t + :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 '() + :camera 4 + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "particleman" + :level 'atollext + :art-group "skel-particleman" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "spyder" + :level 'atollext + :art-group "skel-spyder" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :flags #x1 + :shadow-flags -1 + :shadow-volume-joint #f + :no-draw-seg #x10 + ) + (new 'static 'scene-actor + :name "sig-highres" + :level 'atollext + :art-group "skel-sig-highres" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :flags #x1 + :shadow-flags -1 + :shadow-volume-joint #f + ) + ) + :load-point-obj "atoll-movie" + :end-point-obj (new 'static 'continue-point + :name "atoll-start" + :level #f + :trans (new 'static 'vector :x 1559065.4 :y 53711.668 :z -4786485.0 :w 1.0) + :quat (new 'static 'vector :y -0.473 :w -0.881) + :camera-trans (new 'static 'vector :x 1522208.0 :y 72950.99 :z -4811076.5 :w 1.0) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.5563 0.0 -0.8309)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1087 0.9914 0.0727)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.8237 -0.1308 0.5515)) + ) + :on-goto #f + :vis-nick 'atoll + :want (new 'static 'inline-array level-buffer-state 6 + (new 'static 'level-buffer-state :name 'atollext :display? 'display :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name 'atoll :display? 'display :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + ) + :want-sound (new 'static 'array symbol 3 'atoll1 'atoll2 'atoll3) + ) + :borrow '() + :sfx-volume -1.0 + :ambient-volume -1.0 + :music-volume 0.65 + :blackout-end #t + :peaceful #t + :save #t + ) + ) + +(scene-method-16 + (new 'static 'scene + :name "atoll-sniper-d" + :extra #f + :info #f + :mask-to-clear #x1282000 + :entity "scene-stage-20" + :art-group "scenecamera" + :anim "atoll-sniper-d" + :parts 5 + :command-list '((1 (send-event "sig-atoll-1" 'draw #f) (kill "sniper-3")) + ((new 'static 'bfloat :data 1.1) + (part-tracker + "group-sig-plasma" + entity + "sig-highres" + joint + "blast" + track + #t + duration + (frame-range (new 'static 'bfloat :data 1.1) (new 'static 'bfloat :data 164.0)) + ) + ) + (121 (send-event "sig-atoll-1" 'untrigger)) + (164 + (part-tracker "group-lightning-glow" entity "spyder" joint "chest" track #t duration (frame-range 54 240)) + (part-tracker "group-sniper-hit" entity "spyder" joint "chest" track #t) + (part-tracker "group-jak-peacemaker-shot-hit" entity "spyder" joint "chest" track #f) + (send-event "spyder" 'post-hook atoll-sniper-lightning) + ) + (200 (part-tracker + "group-sniper-d-debris" + entity + "particleman" + joint + "main" + track + #t + duration + (frame-range 200 240) + ) + ) + (240 (send-event "spyder" 'post-hook nothing)) + (10000 (send-event "sig-atoll-1" 'draw #t) (task-close! "atoll-sig-sniper-d")) + ) + :cut-list '(196) + :wait-ground-time (seconds 1) + :draw-target #f + :abort #t + :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 '() + :camera 4 + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "particleman" + :level 'atollext + :art-group "skel-particleman" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "sidekick-highres" + :level 'atollext + :art-group "skel-sidekick-highres" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :flags #x1 + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "jak-highres" + :level 'atollext + :art-group "skel-jak-highres" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :flags #x1 + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "spyder" + :level 'atollext + :art-group "skel-spyder" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :flags #x1 + :shadow-flags -1 + :shadow-volume-joint #f + :no-draw-seg #x10 + ) + (new 'static 'scene-actor + :name "sig-highres" + :level 'atollext + :art-group "skel-sig-highres" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :flags #x1 + :shadow-flags -1 + :shadow-volume-joint #f + ) + ) + :load-point-obj "atoll-movie" + :end-point-obj (new 'static 'continue-point + :name "atoll-start" + :level #f + :trans (new 'static 'vector :x 1854367.4 :y 7616.9214 :z -4343063.0 :w 1.0) + :quat (new 'static 'vector :x -0.0001 :y -0.4236 :w -0.9058) + :camera-trans (new 'static 'vector :x 1790027.0 :y 41517.875 :z -4331009.0 :w 1.0) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1546 0.0 -0.9879)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.2397 0.9701 -0.0375)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.9584 -0.2426 -0.15)) + ) + :on-goto #f + :vis-nick 'atoll + :want (new 'static 'inline-array level-buffer-state 6 + (new 'static 'level-buffer-state :name 'atollext :display? 'display :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name 'atoll :display? 'display :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + ) + :want-sound (new 'static 'array symbol 3 'atoll1 'atoll2 'atoll3) + ) + :borrow '() + :sfx-volume -1.0 + :ambient-volume -1.0 + :music-volume 0.65 + :blackout-end #t + :peaceful #t + :music-delay 1500.0 + :save #f + ) + ) + +(scene-method-16 + (new 'static 'scene + :name "atoll-sniper-e" + :extra #f + :info #f + :mask-to-clear #x1282000 + :entity "scene-stage-20" + :art-group "scenecamera" + :anim "atoll-sniper-e" + :parts 9 + :command-list '((1 (send-event "sig-atoll-1" 'draw #f) (send-event "sig-atoll-1" 'untrigger) (kill "sniper-5")) + ((new 'static 'bfloat :data 1.1) + (part-tracker + "group-sig-plasma" + entity + "sig-highres" + joint + "blast" + track + #t + duration + (frame-range (new 'static 'bfloat :data 1.1) (new 'static 'bfloat :data 12.0)) + ) + (part-tracker + "group-sig-gun-glow" + entity + "particleman" + joint + "particleC" + track + #t + duration + (frame-range (new 'static 'bfloat :data 1.1) 515) + ) + ) + (12 + (part-tracker "group-lightning-glow" entity "spyder" joint "chest" track #t duration (frame-range 12 120)) + (part-tracker "group-sniper-hit" entity "spyder" joint "chest" track #t) + (part-tracker "group-jak-peacemaker-shot-hit" entity "spyder" joint "chest" track #f) + (send-event "spyder" 'post-hook atoll-sniper-lightning) + ) + (41 (send-event "spyder" 'shadow #f)) + (50 + (part-tracker "group-sniper-e-debris" entity "particleman" joint "main" track #t duration (frame-range 50 94)) + ) + (118 (part-tracker "group-part-water-splash" entity "particleman" joint "main")) + (120 (send-event "spyder" 'post-hook nothing)) + (10000 (send-event "sig-atoll-1" 'draw #t) (task-close! "atoll-sig-resolution")) + ) + :cut-list '(41 181) + :wait-ground-time (seconds 1) + :draw-target #f + :abort #t + :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 '() + :camera 4 + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "particleman" + :level 'atollext + :art-group "skel-particleman" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "sidekick-highres" + :level 'atollext + :art-group "skel-sidekick-highres" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :flags #x1 + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "jak-highres" + :level 'atollext + :art-group "skel-jak-highres" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :flags #x1 + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "spyder" + :level 'atollext + :art-group "skel-spyder" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :flags #x1 + :shadow-flags -1 + :shadow-volume-joint #f + :no-draw-seg #x10 + ) + (new 'static 'scene-actor + :name "sig-highres" + :level 'atollext + :art-group "skel-sig-highres" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :flags #x1 + :shadow-flags -1 + :shadow-volume-joint #f + ) + ) + :load-point-obj "atoll-movie" + :end-point-obj (new 'static 'continue-point + :name "atoll-start" + :level #f + :trans (new 'static 'vector :x 2357593.8 :y 4648.5503 :z -4251197.5 :w 1.0) + :quat (new 'static 'vector :x 0.0011 :y -0.2403 :z 0.0006 :w -0.9706) + :camera-trans (new 'static 'vector :x 2345170.0 :y 25732.71 :z -4292368.5 :w 1.0) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.957 0.0 -0.2899)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.051 0.9844 0.1683)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.2854 -0.1759 0.9421)) + ) + :on-goto #f + :vis-nick 'atoll + :want (new 'static 'inline-array level-buffer-state 6 + (new 'static 'level-buffer-state :name 'atollext :display? 'display :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name 'atoll :display? 'display :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + ) + :want-sound (new 'static 'array symbol 3 'atoll1 'atoll2 'atoll3) + ) + :borrow '() + :sfx-volume -1.0 + :ambient-volume -1.0 + :music-volume 0.65 + :blackout-end #t + :peaceful #t + :save #t + ) + ) diff --git a/test/decompiler/reference/jak2/engine/scene/scene-h_REF.gc b/test/decompiler/reference/jak2/engine/scene/scene-h_REF.gc index 8593b299a..613363c25 100644 --- a/test/decompiler/reference/jak2/engine/scene/scene-h_REF.gc +++ b/test/decompiler/reference/jak2/engine/scene/scene-h_REF.gc @@ -211,8 +211,8 @@ obj ) -;; definition for symbol *scene-player*, type scene-player -(define *scene-player* (the-as scene-player #f)) +;; definition for symbol *scene-player*, type (pointer scene-player) +(define *scene-player* (the-as (pointer scene-player) #f)) ;; failed to figure out what this is: 0 diff --git a/test/decompiler/reference/jak2/engine/scene/scene_REF.gc b/test/decompiler/reference/jak2/engine/scene/scene_REF.gc index 22419098d..08635d61a 100644 --- a/test/decompiler/reference/jak2/engine/scene/scene_REF.gc +++ b/test/decompiler/reference/jak2/engine/scene/scene_REF.gc @@ -375,7 +375,7 @@ ;; definition for method 10 of type scene-player (defmethod deactivate scene-player ((obj scene-player)) - (set! *scene-player* #f) + (set! *scene-player* (the-as (pointer scene-player) #f)) (kill-persister *setting-control* (the-as engine-pers 'blackout) 'bg-a-force) ((method-of-type process-drawable deactivate) obj) (none) @@ -1855,7 +1855,7 @@ ) ) ) - (set! *scene-player* (the-as scene-player (process->ppointer self))) + (set! *scene-player* (the-as (pointer scene-player) (process->ppointer self))) (set! *display-entity-errors* #f) (set-setting! 'speech-control #f 0 0) (set-setting! 'allow-progress #f 0 0) diff --git a/test/decompiler/reference/jak2/levels/atoll/atoll-scenes_REF.gc b/test/decompiler/reference/jak2/levels/atoll/atoll-scenes_REF.gc new file mode 100644 index 000000000..9e2f9013a --- /dev/null +++ b/test/decompiler/reference/jak2/levels/atoll/atoll-scenes_REF.gc @@ -0,0 +1,2859 @@ +;;-*-Lisp-*- +(in-package goal) + +;; failed to figure out what this is: +(defpartgroup group-atoll-bling-bling + :id 325 + :duration (seconds 0.035) + :linger-duration (seconds 1.5) + :bounds (static-bspherem 0 0 0 2) + :parts ((sp-item 1412 :flags (bit6))) + ) + +;; failed to figure out what this is: +(defpart 1412 + :init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #xbb :page #xc)) + (sp-flt spt-num 1.0) + (sp-flt spt-scale-x (meters 0.2)) + (sp-flt spt-rot-x 204.8) + (sp-flt spt-rot-z (degrees -17.0)) + (sp-copy-from-other spt-scale-y -4) + (sp-flt spt-r 255.0) + (sp-flt spt-g 255.0) + (sp-flt spt-b 128.0) + (sp-flt spt-a 8.0) + (sp-int spt-timer 5) + (sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow) + (sp-flt spt-userdata 4096.0) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-atoll-bling-bling-big + :id 326 + :duration (seconds 0.035) + :linger-duration (seconds 1.5) + :bounds (static-bspherem 0 0 0 2) + :parts ((sp-item 1413 :flags (bit6))) + ) + +;; failed to figure out what this is: +(defpart 1413 + :init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #xbb :page #xc)) + (sp-flt spt-num 1.0) + (sp-flt spt-scale-x (meters 0.3)) + (sp-flt spt-rot-x 204.8) + (sp-flt spt-rot-z (degrees -17.0)) + (sp-copy-from-other spt-scale-y -4) + (sp-flt spt-r 255.0) + (sp-flt spt-g 255.0) + (sp-flt spt-b 128.0) + (sp-flt spt-a 12.0) + (sp-int spt-timer 5) + (sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow) + (sp-flt spt-userdata 4096.0) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-hellcat-steady + :id 327 + :duration (seconds 0.035) + :linger-duration (seconds 1.5) + :flags (unk-4 unk-6) + :bounds (static-bspherem 0 0 0 32) + :rotate ((degrees 0) (degrees 4) (degrees 0)) + :parts ((sp-item 1414 :flags (bit7)) (sp-item 1415 :flags (bit7))) + ) + +;; failed to figure out what this is: +(defpart 1414 + :init-specs ((sp-tex spt-texture (new 'static 'texture-id :page #xc)) + (sp-flt spt-num 1.0) + (sp-rnd-flt spt-x (meters -3) (meters 6) 1.0) + (sp-flt spt-y (meters -0.5)) + (sp-rnd-flt spt-scale-x (meters 0.75) (meters 0.5) 1.0) + (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) + (sp-rnd-flt spt-scale-y (meters 0.75) (meters 0.5) 1.0) + (sp-flt spt-r 128.0) + (sp-rnd-flt spt-g 96.0 32.0 1.0) + (sp-rnd-flt spt-b 64.0 32.0 1.0) + (sp-rnd-flt spt-a 16.0 16.0 1.0) + (sp-rnd-flt spt-vel-z (meters 0.04) (meters 0.033333335) 1.0) + (sp-flt spt-scalevel-x (meters 0.0033333334)) + (sp-rnd-flt spt-rotvel-z (degrees -0.2) (degrees 0.4) 1.0) + (sp-copy-from-other spt-scalevel-y -4) + (sp-rnd-flt spt-fade-a -0.053333335 -0.053333335 1.0) + (sp-rnd-flt spt-accel-y 0.0 0.68266666 1.0) + (sp-rnd-flt spt-friction 0.95 0.02 1.0) + (sp-int spt-timer 300) + (sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-12) + (sp-flt spt-conerot-x (degrees 0.0)) + (sp-rnd-flt spt-conerot-y (degrees -30.0) (degrees 60.0) 1.0) + (sp-flt spt-rotate-y (degrees 0.0)) + ) + ) + +;; failed to figure out what this is: +(defpart 1415 + :init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x92 :page #xc)) + (sp-flt spt-num 1.0) + (sp-rnd-flt spt-x (meters -3) (meters 6) 1.0) + (sp-rnd-flt spt-y (meters -0.2) (meters -0.4) 1.0) + (sp-rnd-flt spt-scale-x (meters 0.01) (meters 0.02) 1.0) + (sp-int spt-rot-x 4) + (sp-rnd-flt spt-scale-y (meters 0.01) (meters 0.02) 1.0) + (sp-rnd-int spt-r 1124073472 2 32.0) + (sp-rnd-int spt-g 1115684864 1 64.0) + (sp-rnd-int spt-b 1107296256 1 32.0) + (sp-rnd-flt spt-a 64.0 64.0 1.0) + (sp-flt spt-omega 0.4096) + (sp-rnd-flt spt-vel-z (meters 0.04) (meters 0.033333335) 1.0) + (sp-rnd-flt spt-fade-a -0.21333334 -0.21333334 1.0) + (sp-rnd-flt spt-accel-y 0.0 0.68266666 1.0) + (sp-rnd-flt spt-friction 0.95 0.02 1.0) + (sp-int spt-timer 300) + (sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-12) + (sp-func spt-func 'sparticle-motion-blur) + (sp-flt spt-conerot-x (degrees 0.0)) + (sp-rnd-flt spt-conerot-y (degrees -15.0) (degrees 30.0) 1.0) + (sp-flt spt-rotate-y (degrees 0.0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-ashelin-dust-puff + :id 328 + :duration (seconds 0.017) + :linger-duration (seconds 1.5) + :bounds (static-bspherem 0 0 0 2) + :parts ((sp-item 1416) (sp-item 1417) (sp-item 1418)) + ) + +;; failed to figure out what this is: +(defpart 1416 + :init-specs ((sp-tex spt-texture (new 'static 'texture-id :page #xc)) + (sp-flt spt-num 3.0) + (sp-rnd-flt spt-scale-x (meters 1) (meters 1) 1.0) + (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) + (sp-copy-from-other spt-scale-y -4) + (sp-flt spt-r 128.0) + (sp-rnd-flt spt-g 96.0 32.0 1.0) + (sp-rnd-flt spt-b 64.0 32.0 1.0) + (sp-rnd-flt spt-a 16.0 32.0 1.0) + (sp-rnd-flt spt-vel-y (meters 0.02) (meters 0.01) 1.0) + (sp-flt spt-scalevel-x (meters 0.0033333334)) + (sp-rnd-flt spt-rotvel-z (degrees -0.2) (degrees 0.4) 1.0) + (sp-copy-from-other spt-scalevel-y -4) + (sp-flt spt-fade-a -0.16) + (sp-flt spt-accel-y -1.3653333) + (sp-flt spt-friction 0.95) + (sp-int spt-timer 300) + (sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-12) + (sp-rnd-flt spt-conerot-x (degrees 60.0) (degrees 30.0) 1.0) + (sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0) + ) + ) + +;; failed to figure out what this is: +(defpart 1417 + :init-specs ((sp-tex spt-texture (new 'static 'texture-id :page #xc)) + (sp-flt spt-num 3.0) + (sp-rnd-flt spt-scale-x (meters 0.5) (meters 0.25) 1.0) + (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) + (sp-copy-from-other spt-scale-y -4) + (sp-flt spt-r 128.0) + (sp-rnd-flt spt-g 96.0 32.0 1.0) + (sp-rnd-flt spt-b 64.0 32.0 1.0) + (sp-rnd-flt spt-a 16.0 16.0 1.0) + (sp-rnd-flt spt-vel-y (meters 0.053333335) (meters 0.02) 1.0) + (sp-flt spt-scalevel-x (meters 0.0016666667)) + (sp-rnd-flt spt-rotvel-z (degrees -0.2) (degrees 0.4) 1.0) + (sp-copy-from-other spt-scalevel-y -4) + (sp-flt spt-fade-a -0.21333334) + (sp-flt spt-accel-y -1.3653333) + (sp-flt spt-friction 0.95) + (sp-int spt-timer 150) + (sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-12) + (sp-rnd-flt spt-conerot-x (degrees 60.0) (degrees 30.0) 1.0) + (sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0) + ) + ) + +;; failed to figure out what this is: +(defpart 1418 + :init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x26 :page #xc)) + (sp-flt spt-num 8.0) + (sp-rnd-flt spt-x (meters -0.4) (meters 0.8) 1.0) + (sp-rnd-flt spt-y (meters -0.1) (meters 0.4) 1.0) + (sp-rnd-flt spt-z (meters -0.4) (meters 0.8) 1.0) + (sp-rnd-flt spt-scale-x (meters 0.01) (meters 0.02) 1.0) + (sp-rnd-flt spt-scale-y (meters 0.01) (meters 0.02) 1.0) + (sp-rnd-int spt-r 1124073472 2 32.0) + (sp-rnd-int spt-g 1115684864 1 64.0) + (sp-rnd-int spt-b 1107296256 1 32.0) + (sp-rnd-flt spt-a 64.0 64.0 1.0) + (sp-rnd-flt spt-vel-y (meters 0.015) (meters 0.006666667) 1.0) + (sp-flt spt-fade-a -0.42666668) + (sp-rnd-flt spt-accel-y -5.4613333 2.7306666 1.0) + (sp-int spt-timer 300) + (sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-12) + (sp-rnd-flt spt-conerot-x (degrees 30.0) (degrees 50.000004) 1.0) + (sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0) + (sp-flt spt-conerot-radius (meters 0.5)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-sniper-hit + :id 329 + :duration (seconds 0.017) + :flags (use-local-clock) + :bounds (static-bspherem 0 0 0 1) + :parts ((sp-item 1419 :period 1200 :length 5) (sp-item 1420 :period 1200 :length 5)) + ) + +;; failed to figure out what this is: +(defpart 1419 + :init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #xbb :page #xc)) + (sp-flt spt-num 1.0) + (sp-rnd-flt spt-scale-x (meters 32) (meters 5) 1.0) + (sp-flt spt-rot-x 2048.0) + (sp-rnd-flt spt-rot-z (degrees -12.000001) (degrees 24.000002) 1.0) + (sp-copy-from-other spt-scale-y -4) + (sp-flt spt-r 128.0) + (sp-rnd-flt spt-g 128.0 64.0 1.0) + (sp-flt spt-b 255.0) + (sp-flt spt-a 32.0) + (sp-flt spt-fade-a -1.28) + (sp-int spt-timer 25) + (sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow) + (sp-flt spt-userdata 16384.0) + ) + ) + +;; failed to figure out what this is: +(defpart 1420 + :init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x33 :page #xc)) + (sp-flt spt-num 1.0) + (sp-flt spt-scale-x (meters 3)) + (sp-flt spt-rot-x 204.8) + (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) + (sp-copy-from-other spt-scale-y -4) + (sp-rnd-flt spt-r 0.0 32.0 1.0) + (sp-rnd-flt spt-g 128.0 128.0 1.0) + (sp-flt spt-b 255.0) + (sp-flt spt-a 16.0) + (sp-flt spt-scalevel-x (meters 0.64)) + (sp-copy-from-other spt-scalevel-y -4) + (sp-flt spt-fade-a -0.29090908) + (sp-int spt-timer 60) + (sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow) + (sp-flt spt-userdata 4096.0) + ) + ) + +;; definition for function atoll-sniper-lightning +(defbehavior atoll-sniper-lightning process-drawable () + (process-drawable-shock-effect + self + (-> *lightning-spec-id-table* 1) + lightning-probe-callback + (-> *part-id-table* 166) + 0 + 0 + 40960.0 + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-sniper-a-debris + :id 330 + :bounds (static-bspherem 0 0 0 8) + :parts ((sp-item 1422 :binding 1421) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + ) + ) + +;; failed to figure out what this is: +(defpart 1422 + :init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x9 :page #x43b)) + (sp-func spt-birth-func 'birth-func-texture-group) + (sp-flt spt-num 0.5) + (sp-rnd-flt spt-x (meters -2) (meters 4) 1.0) + (sp-rnd-flt spt-z (meters -2) (meters 4) 1.0) + (sp-rnd-flt spt-scale-x (meters 0.2) (meters 0.2) 1.0) + (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) + (sp-rnd-flt spt-scale-y (meters 0.2) (meters 0.2) 1.0) + (sp-rnd-flt spt-r 64.0 128.0 1.0) + (sp-copy-from-other spt-g -1) + (sp-copy-from-other spt-b -1) + (sp-flt spt-a 128.0) + (sp-rnd-flt spt-vel-y (meters 0.06666667) (meters 0.033333335) 1.0) + (sp-rnd-flt spt-rotvel-z (degrees -1.2) (degrees 2.4) 1.0) + (sp-rnd-flt spt-accel-y -5.4613333 -8.192 1.0) + (sp-flt spt-friction 0.98) + (sp-int-plain-rnd spt-timer 250 499 1) + (sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-12) + (new 'static 'sp-field-init-spec + :field (sp-field-id spt-userdata) + :flags (sp-flag plain-v2) + :object (new 'static 'boxed-array :type int32 40 1 0 #x43b00900 #x43b00a00 #x43b00b00 #x43b00c00 #x43b00d00) + ) + (sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 80.0) 1.0) + (sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 3600.0) 1.0) + (sp-rnd-flt spt-conerot-radius (meters 0) (meters 2) 1.0) + ) + ) + +;; failed to figure out what this is: +(defpart 1421 + :init-specs ((sp-tex spt-texture (new 'static 'texture-id :page #xc)) + (sp-rnd-flt spt-num 0.5 0.5 1.0) + (sp-rnd-flt spt-scale-x (meters 1) (meters 0.1) 1.0) + (sp-rnd-flt spt-scale-y (meters 1) (meters 0.2) 1.0) + (sp-rnd-flt spt-r 100.0 32.0 1.0) + (sp-rnd-flt spt-g 80.0 32.0 1.0) + (sp-rnd-flt spt-b 60.0 20.0 1.0) + (sp-rnd-flt spt-a 8.0 8.0 1.0) + (sp-rnd-flt spt-vel-y (meters -0.013333334) (meters -0.026666667) 1.0) + (sp-rnd-flt spt-scalevel-x (meters 0.0016666667) (meters 0.0016666667) 1.0) + (sp-rnd-flt spt-scalevel-y (meters 0.01) (meters 0.00033333333) 1.0) + (sp-rnd-flt spt-fade-a -0.035555556 -0.053333335 1.0) + (sp-rnd-flt spt-accel-y 0.0 1.3653333 1.0) + (sp-int spt-timer 225) + (sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-12) + (sp-rnd-flt spt-rotate-y (degrees 0.0) (degrees 360.0) 1.0) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-sniper-b-debris + :id 331 + :bounds (static-bspherem 0 0 0 64) + :parts ((sp-item 1422 :binding 1421) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-sniper-c-debris + :id 332 + :bounds (static-bspherem 0 0 0 64) + :parts ((sp-item 1422 :binding 1421) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-sniper-c-hit-ground :id 333 :bounds (static-bspherem 0 0 0 8) :parts ((sp-item 1423))) + +;; failed to figure out what this is: +(defpart 1423 + :init-specs ((sp-tex spt-texture (new 'static 'texture-id :page #xc)) + (sp-rnd-flt spt-num 6.0 6.0 1.0) + (sp-rnd-flt spt-scale-x (meters 1) (meters 1) 1.0) + (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) + (sp-copy-from-other spt-scale-y -4) + (sp-rnd-flt spt-r 64.0 128.0 1.0) + (sp-copy-from-other spt-g -1) + (sp-copy-from-other spt-b -1) + (sp-rnd-flt spt-a 16.0 16.0 1.0) + (sp-rnd-flt spt-vel-y (meters 0.02) (meters 0.04) 1.0) + (sp-rnd-flt spt-scalevel-x (meters 0.01) (meters 0.013333334) 1.0) + (sp-rnd-flt spt-rotvel-z (degrees -0.2) (degrees 0.4) 1.0) + (sp-copy-from-other spt-scalevel-y -4) + (sp-rnd-flt spt-fade-a -0.07111111 -0.07111111 1.0) + (sp-flt spt-accel-y -0.27306667) + (sp-flt spt-friction 0.94) + (sp-int spt-timer 450) + (sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-12 sp-cpuinfo-flag-14) + (sp-rnd-flt spt-conerot-x (degrees 60.0) (degrees 30.0) 1.0) + (sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-sniper-d-debris + :id 334 + :bounds (static-bspherem 0 0 0 64) + :parts ((sp-item 1422 :binding 1421) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-sniper-e-debris + :id 335 + :bounds (static-bspherem 0 0 0 64) + :parts ((sp-item 1422 :binding 1421) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + (sp-item 1421 :flags (bit1 start-dead)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-beach-atoll-daxterpipe-suck + :id 336 + :bounds (static-bspherem 0 -3 0 5) + :parts ((sp-item 1424) (sp-item 1425) (sp-item 1426)) + ) + +;; failed to figure out what this is: +(defpart 1424 + :init-specs ((sp-flt spt-num 1.0) + (sp-flt spt-x (meters 2)) + (sp-flt spt-y (meters -3.5)) + (sp-int spt-rot-x 5) + (sp-flt spt-r 2457.6) + (sp-flt spt-g 1966.08) + (sp-flt spt-b 2048.0) + (sp-flt spt-vel-x (meters -0.013333334)) + (sp-flt spt-vel-y (meters 0.023333333)) + (sp-int spt-timer 150) + (sp-cpuinfo-flags distort) + (sp-rnd-flt spt-rotate-y (degrees 0.0) (degrees 360.0) 1.0) + ) + ) + +;; failed to figure out what this is: +(defpart 1425 + :init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #xc9 :page #xc)) + (sp-flt spt-num 0.5) + (sp-rnd-flt spt-x (meters 0) (meters 0.6) 1.0) + (sp-flt spt-y (meters -2)) + (sp-flt spt-scale-x (meters 0.2)) + (sp-flt spt-rot-x 16384.0) + (sp-rnd-flt spt-scale-y (meters 0.25) (meters 0.75) 1.0) + (sp-rnd-int spt-r 0 1 128.0) + (sp-rnd-flt spt-g 64.0 196.0 1.0) + (sp-rnd-flt spt-b 128.0 128.0 1.0) + (sp-rnd-flt spt-a 8.0 4.0 1.0) + (sp-flt spt-vel-y (meters 0.006666667)) + (sp-flt spt-scalevel-x (meters -0.0025)) + (sp-rnd-flt spt-scalevel-y (meters 0.012207031) (meters 0.024414062) 1.0) + (sp-int spt-timer 150) + (sp-cpuinfo-flags sp-cpuinfo-flag-3) + (sp-rnd-flt spt-rotate-y (degrees 0.0) (degrees 360.0) 1.0) + ) + ) + +;; failed to figure out what this is: +(defpart 1426 + :init-specs ((sp-tex spt-texture (new 'static 'texture-id :page #xc)) + (sp-flt spt-num 4.0) + (sp-rnd-flt spt-x (meters 2.5) (meters 0.5) 1.0) + (sp-flt spt-y (meters -3.5)) + (sp-rnd-flt spt-scale-x (meters 1) (meters 1) 1.0) + (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) + (sp-copy-from-other spt-scale-y -4) + (sp-rnd-flt spt-r 32.0 32.0 1.0) + (sp-rnd-flt spt-g 32.0 32.0 1.0) + (sp-rnd-flt spt-b 10.0 5.0 1.0) + (sp-flt spt-a 0.0) + (sp-flt spt-vel-x (meters -0.016666668)) + (sp-flt spt-vel-y (meters 0)) + (sp-flt spt-scalevel-x (meters -0.006666667)) + (sp-rnd-int-flt spt-rotvel-z (degrees -1.2) 1 436.90668) + (sp-copy-from-other spt-scalevel-y -4) + (sp-rnd-flt spt-fade-a 0.10666667 0.10666667 1.0) + (sp-flt spt-accel-y 6.144) + (sp-flt spt-friction 0.996) + (sp-int spt-timer 150) + (sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-3) + (sp-rnd-flt spt-rotate-y (degrees 0.0) (degrees 360.0) 1.0) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-beach-atoll-daxterspout + :id 337 + :bounds (static-bspherem 0 0 0 10) + :parts ((sp-item 1427) (sp-item 1428) (sp-item 1429)) + ) + +;; failed to figure out what this is: +(defpart 1427 + :init-specs ((sp-flt spt-num 1.0) + (sp-int spt-rot-x 5) + (sp-flt spt-r 2457.6) + (sp-flt spt-g 1966.08) + (sp-flt spt-b 2048.0) + (sp-rnd-flt spt-vel-y (meters 0.093333334) (meters 0.013333334) 1.0) + (sp-flt spt-fade-r 13.653334) + (sp-flt spt-fade-g 12.288) + (sp-flt spt-fade-b 13.653334) + (sp-flt spt-accel-y -6.144) + (sp-flt spt-friction 0.95) + (sp-int spt-timer 125) + (sp-cpuinfo-flags distort) + (sp-rnd-flt spt-conerot-x (degrees -85.0) (degrees -10.0) 1.0) + (sp-rnd-flt spt-conerot-y (degrees -85.0) (degrees -10.0) 1.0) + (sp-rnd-flt spt-conerot-radius (meters -0.5) (meters 0.5) 1.0) + ) + ) + +;; failed to figure out what this is: +(defpart 1428 + :init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x21 :page #xc)) + (sp-flt spt-num 20.0) + (sp-flt spt-x (meters -0.5)) + (sp-rnd-flt spt-scale-x (meters 0.1) (meters 0.1) 1.0) + (sp-int spt-rot-x 4) + (sp-copy-from-other spt-scale-y -4) + (sp-rnd-flt spt-r 32.0 32.0 1.0) + (sp-rnd-flt spt-g 32.0 32.0 1.0) + (sp-rnd-flt spt-b 64.0 32.0 1.0) + (sp-rnd-flt spt-a 16.0 16.0 1.0) + (sp-flt spt-omega 8.192) + (sp-rnd-flt spt-vel-y (meters 0.093333334) (meters 0.013333334) 1.0) + (sp-rnd-flt spt-fade-a 0.10666667 0.10666667 1.0) + (sp-rnd-flt spt-accel-y -4.7786665 1.0922667 1.0) + (sp-flt spt-friction 0.95) + (sp-int spt-timer 140) + (sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-3) + (sp-func spt-func 'sparticle-motion-blur) + (sp-rnd-flt spt-conerot-x (degrees -80.0) (degrees -20.0) 1.0) + (sp-rnd-flt spt-conerot-y (degrees -80.0) (degrees -20.0) 1.0) + (sp-rnd-flt spt-conerot-radius (meters -0.5) (meters 0.5) 1.0) + ) + ) + +;; failed to figure out what this is: +(defpart 1429 + :init-specs ((sp-tex spt-texture (new 'static 'texture-id :page #xc)) + (sp-flt spt-num 2.0) + (sp-flt spt-x (meters -0.5)) + (sp-rnd-flt spt-scale-x (meters 0.1) (meters 0.3) 1.0) + (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) + (sp-copy-from-other spt-scale-y -4) + (sp-rnd-flt spt-r 32.0 32.0 1.0) + (sp-rnd-flt spt-g 32.0 32.0 1.0) + (sp-rnd-flt spt-b 64.0 32.0 1.0) + (sp-rnd-flt spt-a 16.0 16.0 1.0) + (sp-rnd-flt spt-vel-y (meters 0.026666667) (meters 0.10666667) 1.0) + (sp-rnd-flt spt-scalevel-x (meters 0.006666667) (meters 0.006666667) 1.0) + (sp-rnd-flt spt-rotvel-z (degrees 0.2) (degrees 1.2) 1.0) + (sp-copy-from-other spt-scalevel-y -4) + (sp-flt spt-fade-a -0.10666667) + (sp-rnd-flt spt-accel-y 0.68266666 2.048 1.0) + (sp-flt spt-friction 0.9) + (sp-int spt-timer 300) + (sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-3) + (sp-rnd-flt spt-conerot-x (degrees -80.0) (degrees -20.0) 1.0) + (sp-rnd-flt spt-conerot-y (degrees -80.0) (degrees -20.0) 1.0) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-atoll-hellcat-thruster + :id 338 + :duration (seconds 3) + :flags (use-local-clock unk-4) + :bounds (static-bspherem 0 0 0 32) + :parts ((sp-item 1430 :flags (is-3d bit7)) + (sp-item 1431 :flags (is-3d bit7)) + (sp-item 1432 :flags (bit7)) + (sp-item 1433 :flags (is-3d bit7)) + (sp-item 1434 :flags (is-3d bit7)) + (sp-item 1435 :flags (bit7)) + ) + ) + +;; failed to figure out what this is: +(defpart 1430 + :init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x90 :page #xc)) + (sp-flt spt-num 1.0) + (sp-flt spt-x (meters 1.45)) + (sp-flt spt-y (meters 1.1)) + (sp-flt spt-z (meters -5.15)) + (sp-flt spt-scale-x (meters 0.6)) + (sp-int spt-rot-x 4) + (sp-flt spt-scale-y (meters 2)) + (sp-rnd-flt spt-r 128.0 128.0 1.0) + (sp-rnd-flt spt-g 32.0 96.0 1.0) + (sp-copy-from-other spt-b -1) + (sp-rnd-flt spt-a 128.0 64.0 1.0) + (sp-int spt-timer 5) + (sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-3) + (sp-flt spt-rotate-y (degrees 0.0)) + ) + ) + +;; failed to figure out what this is: +(defpart 1431 + :init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x90 :page #xc)) + (sp-flt spt-num 1.0) + (sp-flt spt-x (meters 1.45)) + (sp-flt spt-y (meters 1.1)) + (sp-flt spt-z (meters -5.15)) + (sp-flt spt-scale-x (meters 0.6)) + (sp-int spt-rot-x 4) + (sp-flt spt-rot-z (degrees 90.0)) + (sp-flt spt-scale-y (meters 2)) + (sp-rnd-flt spt-r 128.0 128.0 1.0) + (sp-rnd-flt spt-g 32.0 96.0 1.0) + (sp-copy-from-other spt-b -1) + (sp-rnd-flt spt-a 128.0 64.0 1.0) + (sp-int spt-timer 5) + (sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-3) + (sp-flt spt-rotate-y (degrees 0.0)) + ) + ) + +;; failed to figure out what this is: +(defpart 1432 + :init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #xca :page #xc)) + (sp-flt spt-num 1.0) + (sp-flt spt-x (meters 1.45)) + (sp-flt spt-y (meters 1.1)) + (sp-flt spt-z (meters -4.2)) + (sp-flt spt-scale-x (meters 1.75)) + (sp-flt spt-rot-x 102.4) + (sp-copy-from-other spt-scale-y -4) + (sp-flt spt-r 255.0) + (sp-rnd-flt spt-g 0.0 64.0 1.0) + (sp-flt spt-b 0.0) + (sp-rnd-flt spt-a 16.0 4.0 1.0) + (sp-flt spt-rotvel-z (degrees 0.3)) + (sp-int spt-timer 5) + (sp-cpuinfo-flags glow) + (sp-flt spt-userdata 2048.0) + (sp-flt spt-rotate-y (degrees 0.0)) + ) + ) + +;; failed to figure out what this is: +(defpart 1433 + :init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x90 :page #xc)) + (sp-flt spt-num 1.0) + (sp-flt spt-x (meters -1.45)) + (sp-flt spt-y (meters 1.1)) + (sp-flt spt-z (meters -5.15)) + (sp-flt spt-scale-x (meters 0.6)) + (sp-int spt-rot-x 4) + (sp-flt spt-scale-y (meters 2)) + (sp-rnd-flt spt-r 128.0 128.0 1.0) + (sp-rnd-flt spt-g 32.0 96.0 1.0) + (sp-copy-from-other spt-b -1) + (sp-rnd-flt spt-a 128.0 64.0 1.0) + (sp-int spt-timer 5) + (sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-3) + (sp-flt spt-rotate-y (degrees 0.0)) + ) + ) + +;; failed to figure out what this is: +(defpart 1434 + :init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x90 :page #xc)) + (sp-flt spt-num 1.0) + (sp-flt spt-x (meters -1.45)) + (sp-flt spt-y (meters 1.1)) + (sp-flt spt-z (meters -5.15)) + (sp-flt spt-scale-x (meters 0.6)) + (sp-int spt-rot-x 4) + (sp-flt spt-rot-z (degrees 90.0)) + (sp-flt spt-scale-y (meters 2)) + (sp-rnd-flt spt-r 128.0 128.0 1.0) + (sp-rnd-flt spt-g 32.0 96.0 1.0) + (sp-copy-from-other spt-b -1) + (sp-rnd-flt spt-a 128.0 64.0 1.0) + (sp-int spt-timer 5) + (sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-3) + (sp-flt spt-rotate-y (degrees 0.0)) + ) + ) + +;; failed to figure out what this is: +(defpart 1435 + :init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #xca :page #xc)) + (sp-flt spt-num 1.0) + (sp-flt spt-x (meters -1.45)) + (sp-flt spt-y (meters 1.1)) + (sp-flt spt-z (meters -4.2)) + (sp-flt spt-scale-x (meters 1.75)) + (sp-flt spt-rot-x 102.4) + (sp-copy-from-other spt-scale-y -4) + (sp-flt spt-r 255.0) + (sp-rnd-flt spt-g 0.0 64.0 1.0) + (sp-flt spt-b 0.0) + (sp-rnd-flt spt-a 16.0 4.0 1.0) + (sp-flt spt-rotvel-z (degrees 0.3)) + (sp-int spt-timer 5) + (sp-cpuinfo-flags glow) + (sp-flt spt-userdata 2048.0) + (sp-flt spt-rotate-y (degrees 0.0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-atoll-palmpilot-glow + :id 339 + :bounds (static-bspherem 0 0 0 3) + :parts ((sp-item 1436 :flags (bit6))) + ) + +;; failed to figure out what this is: +(defpart 1436 + :init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #xca :page #xc)) + (sp-flt spt-num 1.0) + (sp-rnd-flt spt-scale-x (meters 0.15) (meters 0.01) 1.0) + (sp-flt spt-rot-x 409.6) + (sp-rnd-flt spt-scale-y (meters 0.1) (meters 0.01) 1.0) + (sp-flt spt-r 16.0) + (sp-flt spt-g 42.0) + (sp-flt spt-b 32.0) + (sp-rnd-flt spt-a 16.0 48.0 1.0) + (sp-int spt-timer 5) + (sp-cpuinfo-flags glow) + (sp-flt spt-userdata 2048.0) + ) + ) + +;; failed to figure out what this is: +(scene-method-16 + (new 'static 'scene + :name "atoll-1-res" + :extra #f + :info #f + :mask-to-clear #x1282000 + :entity "scene-stage-20" + :art-group "scenecamera" + :anim "atoll-1-res" + :parts 13 + :command-list '((0 (kill "atoll-valve-10")) + (0 (kill "atoll-valve-14")) + (0 (kill "atoll-hatch-10")) + (0 (fadein (seconds (new 'static 'bfloat :data 0.166)))) + (278 (part-tracker "group-beach-atoll-daxterpipe-suck" entity "particleman" joint "particleA")) + (320 (send-event "part-tracker" 'die)) + (1054 (send-event "sidekick-highres" 'shadow #f)) + (1080 (kill "atoll-part-40")) + (1220 (part-tracker "group-beach-atoll-daxterspout" entity "particleman" joint "particleA")) + (1250 (kill "atoll-part-40")) + (1280 (send-event "part-tracker" 'die)) + (1550 (fadeout (seconds (new 'static 'bfloat :data 0.333)))) + (10000 (task-close! "atoll-water-resolution")) + ) + :cut-list '(77 174 245 421 466 551 625 791 901 1046 1146 1281 1421 1461) + :wait-ground-time (seconds 1) + :draw-target #f + :abort #t + :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 '() + :camera 4 + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "sidekick-highres" + :level 'atollext + :art-group "skel-sidekick-highres" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :flags #x1 + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "jak-highres" + :level 'atollext + :art-group "skel-jak-highres" + :prefix "" + :draw-frames '((min 1421) (1461 max)) + :scissor-frames '() + :flags #x1 + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "atoll-hatch" + :level 'atoll + :art-group "skel-atoll-hatch" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :shadow-mask #x2c + :shadow-values #x7 + :flags #x1 + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "atoll-valve" + :level 'atoll + :art-group "skel-atoll-valve" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :shadow-mask #x2c + :shadow-values #x7 + :flags #x1 + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "particleman" + :level 'atollext + :art-group "skel-particleman" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :shadow-flags -1 + :shadow-volume-joint #f + ) + ) + :load-point-obj "atoll-movie" + :end-point-obj (new 'static 'continue-point + :name "atoll-start" + :level #f + :trans (new 'static 'vector :x 2260335.5 :y 3774.0544 :z -3809144.0 :w 1.0) + :quat (new 'static 'vector :x 0.0014 :y 0.0978 :z -0.0001 :w 0.9952) + :camera-trans (new 'static 'vector :x 2255904.2 :y 23728.537 :z -3848704.8 :w 1.0) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9936 0.0 -0.112)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0209 0.9823 0.1857)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1101 -0.1869 0.9761)) + ) + :on-goto #f + :vis-nick 'atoll + :want (new 'static 'inline-array level-buffer-state 6 + (new 'static 'level-buffer-state :name 'atollext :display? 'display :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name 'atoll :display? 'display :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + ) + :want-sound (new 'static 'array symbol 3 'atoll1 'atoll2 'atoll3) + ) + :borrow '() + :sfx-volume -1.0 + :ambient-volume -1.0 + :music-volume -1.0 + :blackout-end #t + :peaceful #t + :music-delay 1500.0 + :save #t + ) + ) + +;; failed to figure out what this is: +(scene-method-16 + (new 'static 'scene + :name "atoll-save-ashelin-res-a" + :extra #f + :info #f + :mask-to-clear #x1282000 + :entity "scene-stage-20" + :art-group "scenecamera" + :anim "atoll-save-ashelin-res-a" + :parts 9 + :command-list '((0 (kill "atoll-hellcat-2") (fadein (frame-time-30 10))) + (283 + (part-tracker + "group-ashelin-dust-puff" + entity + "ashelin-highres" + joint + "Lball" + track + #t + duration + (frame-range (new 'static 'bfloat :data 283.0) 284) + ) + (part-tracker + "group-ashelin-dust-puff" + entity + "ashelin-highres" + joint + "Rball" + track + #t + duration + (frame-range (new 'static 'bfloat :data 283.0) 284) + ) + ) + (10000 (task-close! "atoll-battle-rescue")) + ) + :cut-list '(201 315 366 543 655 723 828) + :wait-ground-time (seconds 1) + :draw-target #f + :abort #t + :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 '() + :camera 4 + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "sidekick-highres" + :level 'atollext + :art-group "skel-sidekick-highres" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :flags #x1 + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "jak-highres" + :level 'atollext + :art-group "skel-jak-highres" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :flags #x1 + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "ashelin-highres" + :level 'atollext + :art-group "skel-ashelin-highres" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :flags #x1 + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "atoll-hellcat" + :level 'atollext + :art-group "skel-atoll-hellcat" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :flags #x1 + :shadow-flags -1 + :shadow-volume-joint #f + ) + ) + :load-point-obj "atoll-movie" + :end-point-obj (new 'static 'continue-point + :name "atoll-start" + :level #f + :flags (continue-flags cf2) + :trans (new 'static 'vector :x 2277804.5 :y 217672.9 :z -4571725.5 :w 1.0) + :quat (new 'static 'vector :y -0.9671 :w 0.2541) + :camera-trans (new 'static 'vector :x 2310242.8 :y 251249.05 :z -4513428.0 :w 1.0) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.8742 0.0 0.4854)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.117 0.9705 -0.2107)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.4711 -0.241 -0.8484)) + ) + :on-goto #f + :vis-nick 'atoll + :want (new 'static 'inline-array level-buffer-state 6 + (new 'static 'level-buffer-state :name 'atollext :display? 'display :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name 'atoll :display? 'display :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + ) + :want-sound (new 'static 'array symbol 3 'atoll1 'atoll2 'atoll4) + ) + :borrow '() + :sfx-volume -1.0 + :ambient-volume -1.0 + :music-volume -1.0 + :blackout-end #t + :peaceful #t + :save #t + ) + ) + +;; failed to figure out what this is: +(scene-method-16 + (new 'static 'scene + :name "atoll-save-ashelin-res-b" + :extra #f + :info #f + :mask-to-clear #x1282000 + :entity "scene-stage-20" + :art-group "scenecamera" + :anim "atoll-save-ashelin-res-b" + :parts 13 + :command-list '((0 (kill "atoll-hellcat-2")) + (185 + (part-tracker + "group-hellcat-steady" + entity + "atoll-hellcat" + joint + "main" + track + #t + duration + (frame-range (new 'static 'bfloat :data 185.0) (new 'static 'bfloat :data 490.0)) + ) + ) + (580 + (part-tracker + "group-hellcat-steady" + entity + "atoll-hellcat" + joint + "main" + track + #t + duration + (frame-range (new 'static 'bfloat :data 580.0) (new 'static 'bfloat :data 770.0)) + ) + ) + (613 + (part-tracker + "group-atoll-bling-bling" + entity + "particleman" + joint + "particleA" + track + #t + duration + (frame-range (new 'static 'bfloat :data 613.0) (new 'static 'bfloat :data 625.0)) + ) + ) + (628 + (part-tracker + "group-atoll-bling-bling" + entity + "particleman" + joint + "particleA" + track + #t + duration + (frame-range (new 'static 'bfloat :data 628.0) (new 'static 'bfloat :data 635.0)) + ) + ) + (635 + (part-tracker + "group-atoll-bling-bling-big" + entity + "particleman" + joint + "particleA" + track + #t + duration + (frame-range (new 'static 'bfloat :data 635.0) (new 'static 'bfloat :data 640.0)) + ) + ) + (640 + (part-tracker + "group-atoll-bling-bling" + entity + "particleman" + joint + "particleA" + track + #t + duration + (frame-range (new 'static 'bfloat :data 640.0) (new 'static 'bfloat :data 673.0)) + ) + ) + (677 + (part-tracker + "group-atoll-bling-bling" + entity + "particleman" + joint + "particleA" + track + #t + duration + (frame-range (new 'static 'bfloat :data 677.0) (new 'static 'bfloat :data 687.0)) + ) + ) + (687 + (part-tracker + "group-atoll-bling-bling-big" + entity + "particleman" + joint + "particleA" + track + #t + duration + (frame-range (new 'static 'bfloat :data 687.0) (new 'static 'bfloat :data 690.0)) + ) + ) + (690 + (part-tracker + "group-atoll-bling-bling" + entity + "particleman" + joint + "particleA" + track + #t + duration + (frame-range (new 'static 'bfloat :data 690.0) (new 'static 'bfloat :data 735.0)) + ) + ) + (751 + (part-tracker + "group-atoll-bling-bling" + entity + "particleman" + joint + "particleA" + track + #t + duration + (frame-range (new 'static 'bfloat :data 751.0) (new 'static 'bfloat :data 754.0)) + ) + ) + (754 + (part-tracker + "group-atoll-bling-bling-big" + entity + "particleman" + joint + "particleA" + track + #t + duration + (frame-range (new 'static 'bfloat :data 754.0) (new 'static 'bfloat :data 757.0)) + ) + ) + (757 + (part-tracker + "group-atoll-bling-bling" + entity + "particleman" + joint + "particleA" + track + #t + duration + (frame-range (new 'static 'bfloat :data 757.0) (new 'static 'bfloat :data 766.0)) + ) + ) + (1100 + (part-tracker + "group-hellcat-steady" + entity + "atoll-hellcat" + joint + "main" + track + #t + duration + (frame-range (new 'static 'bfloat :data 1130.0) (new 'static 'bfloat :data 1187.0)) + ) + ) + (1189 + (part-tracker + "group-hellcat-steady" + entity + "atoll-hellcat" + joint + "main" + track + #t + duration + (frame-range (new 'static 'bfloat :data 1189.0) (new 'static 'bfloat :data 1190.0)) + ) + ) + (1191 + (part-tracker + "group-hellcat-steady" + entity + "atoll-hellcat" + joint + "main" + track + #t + duration + (frame-range (new 'static 'bfloat :data 1191.0) (new 'static 'bfloat :data 1191.0)) + ) + ) + (1193 + (part-tracker + "group-hellcat-steady" + entity + "atoll-hellcat" + joint + "main" + track + #t + duration + (frame-range (new 'static 'bfloat :data 1193.0) (new 'static 'bfloat :data 1193.0)) + ) + ) + (1196 + (part-tracker + "group-hellcat-steady" + entity + "atoll-hellcat" + joint + "main" + track + #t + duration + (frame-range (new 'static 'bfloat :data 1196.0) (new 'static 'bfloat :data 1196.0)) + ) + ) + (1200 + (part-tracker + "group-hellcat-steady" + entity + "atoll-hellcat" + joint + "main" + track + #t + duration + (frame-range (new 'static 'bfloat :data 1200.0) (new 'static 'bfloat :data 1200.0)) + ) + ) + (1205 + (part-tracker + "group-hellcat-steady" + entity + "atoll-hellcat" + joint + "main" + track + #t + duration + (frame-range (new 'static 'bfloat :data 1205.0) (new 'static 'bfloat :data 1205.0)) + ) + ) + (1232 + (part-tracker + "group-atoll-palmpilot-glow" + entity + "palmpilot" + joint + "datascreen" + track + #t + duration + (frame-range 1232 1271) + ) + ) + (1295 + (part-tracker + "group-atoll-hellcat-thruster" + entity + "atoll-hellcat" + joint + "main" + track + #t + duration + (frame-range 1295 1480) + ) + ) + (10000 + (unless (task-closed? "atoll-battle-resolution") (talker-spawn "miss008")) + (task-close! "atoll-battle-resolution") + ) + ) + :cut-list '(124 405 469 613 767 934 1181 1232 1271 1389) + :wait-ground-time (seconds 1) + :draw-target #f + :abort #t + :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 '() + :camera 4 + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "particleman" + :level 'atollext + :art-group "skel-particleman" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "sidekick-highres" + :level 'atollext + :art-group "skel-sidekick-highres" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :flags #x1 + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "jak-highres" + :level 'atollext + :art-group "skel-jak-highres" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :flags #x1 + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "ashelin-highres" + :level 'atollext + :art-group "skel-ashelin-highres" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :flags #x1 + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "atoll-hellcat" + :level 'atollext + :art-group "skel-atoll-hellcat" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :flags #x1 + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "palmpilot" + :level 'atollext + :art-group "skel-palmpilot" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :flags #x1 + :shadow-flags -1 + :shadow-volume-joint #f + ) + ) + :load-point-obj "atoll-movie" + :end-point-obj (new 'static 'continue-point + :name "atoll-start" + :level #f + :flags (continue-flags cf2) + :trans (new 'static 'vector :x 2277804.5 :y 217672.9 :z -4571725.5 :w 1.0) + :quat (new 'static 'vector :y -0.9671 :w 0.2541) + :camera-trans (new 'static 'vector :x 2310242.8 :y 251249.05 :z -4513428.0 :w 1.0) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.8742 0.0 0.4854)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.117 0.9705 -0.2107)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.4711 -0.241 -0.8484)) + ) + :on-goto #f + :vis-nick 'atoll + :want (new 'static 'inline-array level-buffer-state 6 + (new 'static 'level-buffer-state :name 'atollext :display? 'display :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name 'atoll :display? 'display :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + ) + :want-sound (new 'static 'array symbol 3 'atoll1 'atoll2 'atoll4) + ) + :borrow '() + :sfx-volume -1.0 + :ambient-volume -1.0 + :music-volume -1.0 + :blackout-end #t + :peaceful #t + :music-delay 1500.0 + :save #t + ) + ) + +;; failed to figure out what this is: +(defskelgroup skel-atoll-tank-a atoll-tank 0 -1 ((1 (meters 999999))) :bounds (static-spherem 30 -15 13 82)) + +;; failed to figure out what this is: +(defskelgroup skel-atoll-tank-b atoll-tank 4 -1 ((5 (meters 999999))) :bounds (static-spherem 0 -15 -5 82)) + +;; failed to figure out what this is: +(defskelgroup skel-atoll-tank-c atoll-tank 8 -1 ((9 (meters 999999))) :bounds (static-spherem 30 -15 26 82)) + +;; failed to figure out what this is: +(scene-method-16 + (new 'static 'scene + :name "atoll-sig-intro" + :extra #f + :info #f + :mask-to-clear #x1282000 + :entity "scene-stage-20" + :art-group "scenecamera" + :anim "atoll-sig-intro" + :parts 6 + :command-list '((1 (send-event "sig-atoll-1" 'draw #f)) + ((new 'static 'bfloat :data 1.1) + (part-tracker + "group-sig-gun-glow" + entity + "sig-highres" + joint + "blast" + track + #t + duration + (frame-range (new 'static 'bfloat :data 1.1) (new 'static 'bfloat :data 330.0)) + ) + ) + (10000 (send-event "sig-atoll-1" 'draw #t) (task-close! "atoll-sig-sig-introduction")) + ) + :cut-list '(47 114 171) + :wait-ground-time (seconds 1) + :draw-target #f + :abort #t + :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 '() + :camera 4 + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "sig-highres" + :level 'atollext + :art-group "skel-sig-highres" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :flags #x1 + :shadow-flags -1 + :shadow-volume-joint #f + ) + ) + :load-point-obj "atoll-movie" + :end-point-obj (new 'static 'continue-point + :name "atoll-start" + :level #f + :trans (new 'static 'vector :x 2319903.5 :y 6458.5728 :z -3555748.8 :w 1.0) + :quat (new 'static 'vector :y 0.9957 :w 0.0922) + :camera-trans (new 'static 'vector :x 2318410.5 :y 27552.154 :z -3504565.8 :w 1.0) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9995 0.0 -0.0285)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0034 0.9925 -0.1215)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0283 -0.1216 -0.9921)) + ) + :on-goto #f + :vis-nick 'atoll + :want (new 'static 'inline-array level-buffer-state 6 + (new 'static 'level-buffer-state :name 'atollext :display? 'display :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name 'atoll :display? 'display :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + ) + :want-sound (new 'static 'array symbol 3 'atoll1 'atoll2 'atoll3) + ) + :borrow '() + :sfx-volume -1.0 + :ambient-volume -1.0 + :music-volume 0.65 + :blackout-end #t + :peaceful #t + :save #t + ) + ) + +;; failed to figure out what this is: +(scene-method-16 + (new 'static 'scene + :name "atoll-sig-tank" + :extra #f + :info #f + :mask-to-clear #x1282000 + :entity "scene-stage-21" + :art-group "scenecamera" + :anim "atoll-sig-tank" + :parts 7 + :command-list '((1 (kill "atoll-tank-1") (task-close! "atoll-sig-tank") (send-event "sig-atoll-1" 'draw #f)) + ((new 'static 'bfloat :data 1.1) + (part-tracker + "group-sig-plasma" + entity + "sig-highres" + joint + "blast" + track + #t + duration + (frame-range (new 'static 'bfloat :data 1.1) (new 'static 'bfloat :data 56.0)) + ) + ) + (49 (send-event "sig-atoll-1" 'untrigger)) + (50 + (part-tracker + "group-sig-gun-glow" + entity + "particleman" + joint + "particleC" + track + #t + duration + (frame-range 50 300) + ) + ) + (60 + (apply + ,(lambda () + (when *scene-player* + (let ((gp-0 (new 'stack-no-clear 'vector))) + (set-vector! gp-0 2075545.2 103013.99 -3889876.5 1.0) + (let ((s5-0 (get-process *default-dead-pool* part-tracker #x4000))) + (when s5-0 + (let ((t9-1 (method-of-type part-tracker activate))) + (t9-1 + (the-as part-tracker s5-0) + (ppointer->process *scene-player*) + (symbol->string (-> part-tracker symbol)) + (the-as pointer #x70004000) + ) + ) + (let ((t9-2 run-function-in-process) + (a0-6 s5-0) + (a1-2 part-tracker-init) + (a2-4 (-> *part-group-id-table* 323)) + (a3-1 0) + (t0-0 #f) + (t1-0 #f) + (t2-0 #f) + (t3-0 *launch-matrix*) + ) + (set! (-> t3-0 trans quad) (-> gp-0 quad)) + ((the-as (function object object object object object object object object none) t9-2) + a0-6 + a1-2 + a2-4 + a3-1 + t0-0 + t1-0 + t2-0 + t3-0 + ) + ) + (-> s5-0 ppointer) + ) + ) + ) + ) + ) + ) + ) + (61 + (part-tracker + "group-atoll-tank-splash" + entity + "atoll-tank-1" + duration + (frame-range (new 'static 'bfloat :data 61.0) (new 'static 'bfloat :data 94.0)) + ) + (apply ,(lambda () (set-atoll-explosion! 1.9921875))) + ) + (94 + (part-tracker + "group-atoll-tank-aftermath" + entity + "atoll-tank-1" + duration + (frame-range (new 'static 'bfloat :data 94.0) (new 'static 'bfloat :data 1000.0)) + ) + ) + (10000 + (send-event "sig-atoll-1" 'move-trans (new 'static 'vector :x 2239406.0 :y 62382.08 :z -3848929.2 :w 1.0)) + (send-event "sig-atoll-1" 'draw #t) + ) + ) + :cut-list '(47 114 171) + :wait-ground-time (seconds 1) + :draw-target #f + :abort #t + :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 '() + :camera 4 + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "particleman" + :level 'atollext + :art-group "skel-particleman" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "sidekick-highres" + :level 'atollext + :art-group "skel-sidekick-highres" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :flags #x1 + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "jak-highres" + :level 'atollext + :art-group "skel-jak-highres" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :flags #x1 + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "atoll-tank-a" + :level 'atollext + :art-group "skel-atoll-tank-a" + :prefix "atoll-tank-a-" + :draw-frames '((min max)) + :scissor-frames '() + :flags #x1 + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "atoll-tank-b" + :level 'atollext + :art-group "skel-atoll-tank-b" + :prefix "atoll-tank-b-" + :draw-frames '((min max)) + :scissor-frames '() + :flags #x1 + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "atoll-tank-c" + :level 'atollext + :art-group "skel-atoll-tank-c" + :prefix "atoll-tank-c-" + :draw-frames '((min max)) + :scissor-frames '() + :flags #x1 + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "sig-highres" + :level 'atollext + :art-group "skel-sig-highres" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :flags #x1 + :shadow-flags -1 + :shadow-volume-joint #f + ) + ) + :load-point-obj "atoll-movie" + :end-point-obj (new 'static 'continue-point + :name "atoll-start" + :level #f + :trans (new 'static 'vector :x 2224455.8 :y 62382.08 :z -3835043.8 :w 1.0) + :quat (new 'static 'vector :y -0.7402 :w 0.6723) + :camera-trans (new 'static 'vector :x 2235066.0 :y 82436.914 :z -3842145.5 :w 1.0) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.4221 0.0 0.9065)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1128 0.9922 -0.0525)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.8995 -0.1244 -0.4188)) + ) + :on-goto #f + :vis-nick 'atoll + :want (new 'static 'inline-array level-buffer-state 6 + (new 'static 'level-buffer-state :name 'atollext :display? 'display :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name 'atoll :display? 'display :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + ) + :want-sound (new 'static 'array symbol 3 'atoll1 'atoll2 'atoll3) + ) + :borrow '() + :sfx-volume 1.0 + :ambient-volume -1.0 + :music-volume 0.65 + :blackout-end #t + :peaceful #t + :save #f + ) + ) + +;; failed to figure out what this is: +(scene-method-16 + (new 'static 'scene + :name "atoll-sniper-a" + :extra #f + :info #f + :mask-to-clear #x1282000 + :entity "scene-stage-20" + :art-group "scenecamera" + :anim "atoll-sniper-a" + :parts 4 + :command-list '((1 (send-event "sig-atoll-1" 'draw #f) (kill "sniper-4")) + ((new 'static 'bfloat :data 1.1) + (send-event "spyder" 'shadow #f) + (part-tracker + "group-sig-plasma" + entity + "sig-highres" + joint + "blast" + track + #t + duration + (frame-range (new 'static 'bfloat :data 1.1) (new 'static 'bfloat :data 72.0)) + ) + ) + (49 (send-event "sig-atoll-1" 'untrigger)) + (72 + (part-tracker "group-lightning-glow" entity "spyder" joint "chest" track #t duration (frame-range 72 176)) + (part-tracker "group-sniper-hit" entity "spyder" joint "chest" track #t) + (part-tracker "group-jak-peacemaker-shot-hit" entity "spyder" joint "chest" track #f) + (send-event "spyder" 'post-hook atoll-sniper-lightning) + ) + (128 (part-tracker + "group-sniper-a-debris" + entity + "particleman" + joint + "main" + track + #t + duration + (frame-range 128 154) + ) + ) + (176 (send-event "spyder" 'post-hook nothing)) + (10000 (send-event "sig-atoll-1" 'draw #t) (task-close! "atoll-sig-sniper-a")) + ) + :cut-list '() + :wait-ground-time (seconds 1) + :draw-target #f + :abort #t + :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 '() + :camera 4 + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "particleman" + :level 'atollext + :art-group "skel-particleman" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "sidekick-highres" + :level 'atollext + :art-group "skel-sidekick-highres" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :flags #x1 + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "jak-highres" + :level 'atollext + :art-group "skel-jak-highres" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :flags #x1 + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "spyder" + :level 'atollext + :art-group "skel-spyder" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :flags #x1 + :shadow-flags -1 + :shadow-volume-joint #f + :no-draw-seg #x10 + ) + (new 'static 'scene-actor + :name "sig-highres" + :level 'atollext + :art-group "skel-sig-highres" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :flags #x1 + :shadow-flags -1 + :shadow-volume-joint #f + ) + ) + :load-point-obj "atoll-movie" + :end-point-obj (new 'static 'continue-point + :name "atoll-start" + :level #f + :trans (new 'static 'vector :x 1769504.8 :y 52751.973 :z -4001606.8 :w 1.0) + :quat (new 'static 'vector :y 0.9191 :w -0.3939) + :camera-trans (new 'static 'vector :x 1801368.0 :y 72062.56 :z -3970629.2 :w 1.0) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.6982 0.0 0.7158)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0937 0.9913 -0.0914)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.7096 -0.131 -0.6922)) + ) + :on-goto #f + :vis-nick 'atoll + :want (new 'static 'inline-array level-buffer-state 6 + (new 'static 'level-buffer-state :name 'atollext :display? 'display :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name 'atoll :display? 'display :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + ) + :want-sound (new 'static 'array symbol 3 'atoll1 'atoll2 'atoll3) + ) + :borrow '() + :sfx-volume -1.0 + :ambient-volume -1.0 + :music-volume 0.65 + :blackout-end #t + :peaceful #t + :save #f + ) + ) + +;; failed to figure out what this is: +(scene-method-16 + (new 'static 'scene + :name "atoll-sniper-b" + :extra #f + :info #f + :mask-to-clear #x1282000 + :entity "scene-stage-20" + :art-group "scenecamera" + :anim "atoll-sniper-b" + :parts 4 + :command-list '((1 + (send-event "sig-atoll-1" 'draw #f) + (kill "sniper-1") + (kill "juicer-3") + (kill "juicer-4") + (kill "juicer-5") + (kill "juicer-79") + (kill "juicer-80") + (kill "fodder-24") + (kill "fodder-25") + ) + ((new 'static 'bfloat :data 1.1) + (part-tracker + "group-sig-plasma" + entity + "sig-highres" + joint + "blast" + track + #t + duration + (frame-range (new 'static 'bfloat :data 1.1) (new 'static 'bfloat :data 92.0)) + ) + (send-event "spyder" 'shadow #f) + ) + (63 (send-event "sig-atoll-1" 'untrigger)) + (92 + (part-tracker "group-lightning-glow" entity "spyder" joint "chest" track #t duration (frame-range 92 164)) + (part-tracker "group-sniper-hit" entity "spyder" joint "chest" track #t) + (part-tracker "group-jak-peacemaker-shot-hit" entity "spyder" joint "chest" track #f) + (send-event "spyder" 'post-hook atoll-sniper-lightning) + ) + (123 (part-tracker + "group-sniper-b-debris" + entity + "particleman" + joint + "main" + track + #t + duration + (frame-range 123 160) + ) + ) + (168 (send-event "spyder" 'post-hook nothing)) + (10000 (send-event "sig-atoll-1" 'draw #t) (task-close! "atoll-sig-sniper-b")) + ) + :cut-list '() + :wait-ground-time (seconds 1) + :draw-target #f + :abort #t + :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 '() + :camera 4 + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "particleman" + :level 'atollext + :art-group "skel-particleman" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "spyder" + :level 'atollext + :art-group "skel-spyder" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :flags #x1 + :shadow-flags -1 + :shadow-volume-joint #f + :no-draw-seg #x10 + ) + (new 'static 'scene-actor + :name "sig-highres" + :level 'atollext + :art-group "skel-sig-highres" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :flags #x1 + :shadow-flags -1 + :shadow-volume-joint #f + ) + ) + :load-point-obj "atoll-movie" + :end-point-obj (new 'static 'continue-point + :name "atoll-start" + :level #f + :trans (new 'static 'vector :x 1377930.5 :y 3077.7344 :z -4152363.5 :w 1.0) + :quat (new 'static 'vector :y -0.9294 :w -0.369) + :camera-trans (new 'static 'vector :x 1354375.1 :y 24171.725 :z -4106899.8 :w 1.0) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.8874 0.0 -0.4609)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.056 0.9925 -0.1078)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.4575 -0.1215 -0.8808)) + ) + :on-goto #f + :vis-nick 'atoll + :want (new 'static 'inline-array level-buffer-state 6 + (new 'static 'level-buffer-state :name 'atollext :display? 'display :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name 'atoll :display? 'display :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + ) + :want-sound (new 'static 'array symbol 3 'atoll1 'atoll2 'atoll3) + ) + :borrow '() + :sfx-volume -1.0 + :ambient-volume -1.0 + :music-volume 0.65 + :blackout-end #t + :peaceful #t + :save #f + ) + ) + +;; failed to figure out what this is: +(scene-method-16 + (new 'static 'scene + :name "atoll-sniper-c" + :extra #f + :info #f + :mask-to-clear #x1282000 + :entity "scene-stage-20" + :art-group "scenecamera" + :anim "atoll-sniper-c" + :parts 4 + :command-list '((1 (send-event "sig-atoll-1" 'draw #f) (kill "sniper-2")) + ((new 'static 'bfloat :data 1.1) + (part-tracker + "group-sig-plasma" + entity + "sig-highres" + joint + "blast" + track + #t + duration + (frame-range (new 'static 'bfloat :data 1.1) (new 'static 'bfloat :data 54.0)) + ) + ) + (39 (send-event "sig-atoll-1" 'untrigger)) + (54 + (part-tracker "group-lightning-glow" entity "spyder" joint "chest" track #t duration (frame-range 54 150)) + (part-tracker "group-sniper-hit" entity "spyder" joint "chest" track #t) + (part-tracker "group-jak-peacemaker-shot-hit" entity "spyder" joint "chest" track #f) + (send-event "spyder" 'post-hook atoll-sniper-lightning) + ) + (90 (part-tracker + "group-sniper-c-debris" + entity + "particleman" + joint + "main" + track + #t + duration + (frame-range 90 128) + ) + ) + (134 (part-tracker + "group-sniper-c-hit-ground" + entity + "particleman" + joint + "main" + track + #t + duration + (frame-range 134 140) + ) + ) + (147 (send-event + "particleman" + 'eval + ,(lambda :behavior process-drawable + () + (let ((gp-1 (vector+! + (new 'stack-no-clear 'vector) + (-> self node-list data 3 bone transform trans) + (new 'static 'vector :y 819.2 :w 1.0) + ) + ) + (s5-0 (get-process *default-dead-pool* part-tracker #x4000)) + ) + (when s5-0 + (let ((t9-1 (method-of-type part-tracker activate))) + (t9-1 + (the-as part-tracker s5-0) + *entity-pool* + (symbol->string (-> part-tracker symbol)) + (the-as pointer #x70004000) + ) + ) + (let ((t9-2 run-function-in-process) + (a0-3 s5-0) + (a1-2 part-tracker-init) + (a2-4 (-> *part-group-id-table* 121)) + (a3-1 0) + (t0-0 #f) + (t1-0 #f) + (t2-0 #f) + (t3-0 *launch-matrix*) + ) + (set! (-> t3-0 trans quad) (-> gp-1 quad)) + ((the-as (function object object object object object object object object none) t9-2) + a0-3 + a1-2 + a2-4 + a3-1 + t0-0 + t1-0 + t2-0 + t3-0 + ) + ) + (-> s5-0 ppointer) + ) + ) + ) + ) + ) + (150 (send-event "spyder" 'post-hook nothing)) + (10000 (send-event "sig-atoll-1" 'draw #t) (task-close! "atoll-sig-sniper-c")) + ) + :cut-list '(57) + :wait-ground-time (seconds 1) + :draw-target #f + :abort #t + :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 '() + :camera 4 + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "particleman" + :level 'atollext + :art-group "skel-particleman" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "spyder" + :level 'atollext + :art-group "skel-spyder" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :flags #x1 + :shadow-flags -1 + :shadow-volume-joint #f + :no-draw-seg #x10 + ) + (new 'static 'scene-actor + :name "sig-highres" + :level 'atollext + :art-group "skel-sig-highres" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :flags #x1 + :shadow-flags -1 + :shadow-volume-joint #f + ) + ) + :load-point-obj "atoll-movie" + :end-point-obj (new 'static 'continue-point + :name "atoll-start" + :level #f + :trans (new 'static 'vector :x 1559065.4 :y 53711.668 :z -4786485.0 :w 1.0) + :quat (new 'static 'vector :y -0.473 :w -0.881) + :camera-trans (new 'static 'vector :x 1522208.0 :y 72950.99 :z -4811076.5 :w 1.0) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.5563 0.0 -0.8309)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1087 0.9914 0.0727)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.8237 -0.1308 0.5515)) + ) + :on-goto #f + :vis-nick 'atoll + :want (new 'static 'inline-array level-buffer-state 6 + (new 'static 'level-buffer-state :name 'atollext :display? 'display :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name 'atoll :display? 'display :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + ) + :want-sound (new 'static 'array symbol 3 'atoll1 'atoll2 'atoll3) + ) + :borrow '() + :sfx-volume -1.0 + :ambient-volume -1.0 + :music-volume 0.65 + :blackout-end #t + :peaceful #t + :save #t + ) + ) + +;; failed to figure out what this is: +(scene-method-16 + (new 'static 'scene + :name "atoll-sniper-d" + :extra #f + :info #f + :mask-to-clear #x1282000 + :entity "scene-stage-20" + :art-group "scenecamera" + :anim "atoll-sniper-d" + :parts 5 + :command-list '((1 (send-event "sig-atoll-1" 'draw #f) (kill "sniper-3")) + ((new 'static 'bfloat :data 1.1) + (part-tracker + "group-sig-plasma" + entity + "sig-highres" + joint + "blast" + track + #t + duration + (frame-range (new 'static 'bfloat :data 1.1) (new 'static 'bfloat :data 164.0)) + ) + ) + (121 (send-event "sig-atoll-1" 'untrigger)) + (164 + (part-tracker "group-lightning-glow" entity "spyder" joint "chest" track #t duration (frame-range 54 240)) + (part-tracker "group-sniper-hit" entity "spyder" joint "chest" track #t) + (part-tracker "group-jak-peacemaker-shot-hit" entity "spyder" joint "chest" track #f) + (send-event "spyder" 'post-hook atoll-sniper-lightning) + ) + (200 (part-tracker + "group-sniper-d-debris" + entity + "particleman" + joint + "main" + track + #t + duration + (frame-range 200 240) + ) + ) + (240 (send-event "spyder" 'post-hook nothing)) + (10000 (send-event "sig-atoll-1" 'draw #t) (task-close! "atoll-sig-sniper-d")) + ) + :cut-list '(196) + :wait-ground-time (seconds 1) + :draw-target #f + :abort #t + :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 '() + :camera 4 + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "particleman" + :level 'atollext + :art-group "skel-particleman" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "sidekick-highres" + :level 'atollext + :art-group "skel-sidekick-highres" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :flags #x1 + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "jak-highres" + :level 'atollext + :art-group "skel-jak-highres" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :flags #x1 + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "spyder" + :level 'atollext + :art-group "skel-spyder" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :flags #x1 + :shadow-flags -1 + :shadow-volume-joint #f + :no-draw-seg #x10 + ) + (new 'static 'scene-actor + :name "sig-highres" + :level 'atollext + :art-group "skel-sig-highres" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :flags #x1 + :shadow-flags -1 + :shadow-volume-joint #f + ) + ) + :load-point-obj "atoll-movie" + :end-point-obj (new 'static 'continue-point + :name "atoll-start" + :level #f + :trans (new 'static 'vector :x 1854367.4 :y 7616.9214 :z -4343063.0 :w 1.0) + :quat (new 'static 'vector :x -0.0001 :y -0.4236 :w -0.9058) + :camera-trans (new 'static 'vector :x 1790027.0 :y 41517.875 :z -4331009.0 :w 1.0) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1546 0.0 -0.9879)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.2397 0.9701 -0.0375)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.9584 -0.2426 -0.15)) + ) + :on-goto #f + :vis-nick 'atoll + :want (new 'static 'inline-array level-buffer-state 6 + (new 'static 'level-buffer-state :name 'atollext :display? 'display :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name 'atoll :display? 'display :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + ) + :want-sound (new 'static 'array symbol 3 'atoll1 'atoll2 'atoll3) + ) + :borrow '() + :sfx-volume -1.0 + :ambient-volume -1.0 + :music-volume 0.65 + :blackout-end #t + :peaceful #t + :music-delay 1500.0 + :save #f + ) + ) + +;; failed to figure out what this is: +(scene-method-16 + (new 'static 'scene + :name "atoll-sniper-e" + :extra #f + :info #f + :mask-to-clear #x1282000 + :entity "scene-stage-20" + :art-group "scenecamera" + :anim "atoll-sniper-e" + :parts 9 + :command-list '((1 (send-event "sig-atoll-1" 'draw #f) (send-event "sig-atoll-1" 'untrigger) (kill "sniper-5")) + ((new 'static 'bfloat :data 1.1) + (part-tracker + "group-sig-plasma" + entity + "sig-highres" + joint + "blast" + track + #t + duration + (frame-range (new 'static 'bfloat :data 1.1) (new 'static 'bfloat :data 12.0)) + ) + (part-tracker + "group-sig-gun-glow" + entity + "particleman" + joint + "particleC" + track + #t + duration + (frame-range (new 'static 'bfloat :data 1.1) 515) + ) + ) + (12 + (part-tracker "group-lightning-glow" entity "spyder" joint "chest" track #t duration (frame-range 12 120)) + (part-tracker "group-sniper-hit" entity "spyder" joint "chest" track #t) + (part-tracker "group-jak-peacemaker-shot-hit" entity "spyder" joint "chest" track #f) + (send-event "spyder" 'post-hook atoll-sniper-lightning) + ) + (41 (send-event "spyder" 'shadow #f)) + (50 + (part-tracker "group-sniper-e-debris" entity "particleman" joint "main" track #t duration (frame-range 50 94)) + ) + (118 (part-tracker "group-part-water-splash" entity "particleman" joint "main")) + (120 (send-event "spyder" 'post-hook nothing)) + (10000 (send-event "sig-atoll-1" 'draw #t) (task-close! "atoll-sig-resolution")) + ) + :cut-list '(41 181) + :wait-ground-time (seconds 1) + :draw-target #f + :abort #t + :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 '() + :camera 4 + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "particleman" + :level 'atollext + :art-group "skel-particleman" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "sidekick-highres" + :level 'atollext + :art-group "skel-sidekick-highres" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :flags #x1 + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "jak-highres" + :level 'atollext + :art-group "skel-jak-highres" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :flags #x1 + :shadow-flags -1 + :shadow-volume-joint #f + ) + (new 'static 'scene-actor + :name "spyder" + :level 'atollext + :art-group "skel-spyder" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :flags #x1 + :shadow-flags -1 + :shadow-volume-joint #f + :no-draw-seg #x10 + ) + (new 'static 'scene-actor + :name "sig-highres" + :level 'atollext + :art-group "skel-sig-highres" + :prefix "" + :draw-frames '((min max)) + :scissor-frames '() + :flags #x1 + :shadow-flags -1 + :shadow-volume-joint #f + ) + ) + :load-point-obj "atoll-movie" + :end-point-obj (new 'static 'continue-point + :name "atoll-start" + :level #f + :trans (new 'static 'vector :x 2357593.8 :y 4648.5503 :z -4251197.5 :w 1.0) + :quat (new 'static 'vector :x 0.0011 :y -0.2403 :z 0.0006 :w -0.9706) + :camera-trans (new 'static 'vector :x 2345170.0 :y 25732.71 :z -4292368.5 :w 1.0) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.957 0.0 -0.2899)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.051 0.9844 0.1683)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.2854 -0.1759 0.9421)) + ) + :on-goto #f + :vis-nick 'atoll + :want (new 'static 'inline-array level-buffer-state 6 + (new 'static 'level-buffer-state :name 'atollext :display? 'display :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name 'atoll :display? 'display :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + ) + :want-sound (new 'static 'array symbol 3 'atoll1 'atoll2 'atoll3) + ) + :borrow '() + :sfx-volume -1.0 + :ambient-volume -1.0 + :music-volume 0.65 + :blackout-end #t + :peaceful #t + :save #t + ) + ) + + + + diff --git a/test/offline/config/jak2/config.jsonc b/test/offline/config/jak2/config.jsonc index f77688bae..1c3f48130 100644 --- a/test/offline/config/jak2/config.jsonc +++ b/test/offline/config/jak2/config.jsonc @@ -4,6 +4,7 @@ "CGO/ENGINE.CGO", "CGO/GAME.CGO", "CGO/KERNEL.CGO", + "DGO/ATE.DGO", "DGO/ATO.DGO", "DGO/CAB.DGO", "DGO/CAP.DGO",