jak-project/goal_src/jak2/levels/atoll/atoll-scenes.gc
ManDude 18ddd1613c
Jak 2 pc subtitle support (#2672)
Adds support for adding custom subtitles to Jak 2 audio. Comes with a
new editor for the new system and format. Compared to the Jak 1 system,
this is much simpler to make an editor for.

Comes with a few subtitles already made as an example.
Cutscenes are not officially supported but you can technically subtitle
those with editor, so please don't right now.

This new system supports multiple subtitles playing at once (even from a
single source!) and will smartly push the subtitles up if there's a
message already playing:

![image](https://github.com/open-goal/jak-project/assets/7569514/033e6374-a05a-4c31-b029-51868153a932)

![image](https://github.com/open-goal/jak-project/assets/7569514/5298aa6d-a183-446e-bdb6-61c4682df917)

Unlike in Jak 1, it will not hide the bottom HUD when subtitles are
active:

![image](https://github.com/open-goal/jak-project/assets/7569514/d466bfc0-55d0-4689-a6e1-b7784b9fff59)

Sadly this leaves us with not much space for the subtitle region (and
the subtitles are shrunk when the minimap is enabled) but when you have
guards and citizens talking all the time, hiding the HUD every time
anyone spoke would get really frustrating.

The subtitle speaker is also color-coded now, because I thought that
would be fun to do.

TODO:
- [x] proper cutscene support.
- [x] merge mode for cutscenes so we don't have to rewrite the script?

---------

Co-authored-by: Hat Kid <6624576+Hat-Kid@users.noreply.github.com>
2023-06-08 01:04:16 +01:00

2817 lines
88 KiB
Common Lisp

;;-*-Lisp-*-
(in-package goal)
;; name: atoll-scenes.gc
;; name in dgo: atoll-scenes
;; dgos: ATE
;; 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 ((:texture (new 'static 'texture-id :index #xbb :page #xc))
(:num 1.0)
(:scale-x (meters 0.2))
(:rot-x (degrees 1.125))
(:rot-z (degrees -17))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 255.0)
(:b 128.0)
(:a 8.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(: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 ((:texture (new 'static 'texture-id :index #xbb :page #xc))
(:num 1.0)
(:scale-x (meters 0.3))
(:rot-x (degrees 1.125))
(:rot-z (degrees -17))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 255.0)
(:b 128.0)
(:a 12.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(: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 90) (degrees 0))
:parts ((sp-item 1414 :flags (bit7)) (sp-item 1415 :flags (bit7)))
)
(defpart 1414
:init-specs ((:texture (new 'static 'texture-id :page #xc))
(:num 1.0)
(:x (meters -3) (meters 6))
(:y (meters -0.5))
(:scale-x (meters 0.75) (meters 0.5))
(:rot-z (degrees 0) (degrees 360))
(:scale-y (meters 0.75) (meters 0.5))
(:r 128.0)
(:g 96.0 32.0)
(:b 64.0 32.0)
(:a 16.0 16.0)
(:vel-z (meters 0.04) (meters 0.033333335))
(:scalevel-x (meters 0.0033333334))
(:rotvel-z (degrees -0.2) (degrees 0.4))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.053333335 -0.053333335)
(:accel-y (meters 0) (meters 0.00016666666))
(:friction 0.95 0.02)
(:timer (seconds 1))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12))
(:conerot-x (degrees 0))
(:conerot-y (degrees -30) (degrees 60))
(:rotate-y (degrees 0))
)
)
(defpart 1415
:init-specs ((:texture (new 'static 'texture-id :index #x92 :page #xc))
(:num 1.0)
(:x (meters -3) (meters 6))
(:y (meters -0.2) (meters -0.4))
(:scale-x (meters 0.01) (meters 0.02))
(:rot-x 4)
(:scale-y (meters 0.01) (meters 0.02))
(:r 128.0 2 32.0)
(:g 64.0 1 64.0)
(:b 32.0 1 32.0)
(:a 64.0 64.0)
(:omega (degrees 0.00225))
(:vel-z (meters 0.04) (meters 0.033333335))
(:fade-a -0.21333334 -0.21333334)
(:accel-y (meters 0) (meters 0.00016666666))
(:friction 0.95 0.02)
(:timer (seconds 1))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12))
(:func 'sparticle-motion-blur)
(:conerot-x (degrees 0))
(:conerot-y (degrees -15) (degrees 30))
(:rotate-y (degrees 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 ((:texture (new 'static 'texture-id :page #xc))
(:num 3.0)
(:scale-x (meters 1) (meters 1))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 96.0 32.0)
(:b 64.0 32.0)
(:a 16.0 32.0)
(:vel-y (meters 0.02) (meters 0.01))
(:scalevel-x (meters 0.0033333334))
(:rotvel-z (degrees -0.2) (degrees 0.4))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.16)
(:accel-y (meters -0.00033333333))
(:friction 0.95)
(:timer (seconds 1))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12))
(:conerot-x (degrees 60) (degrees 30))
(:conerot-y (degrees 0) (degrees 360))
)
)
(defpart 1417
:init-specs ((:texture (new 'static 'texture-id :page #xc))
(:num 3.0)
(:scale-x (meters 0.5) (meters 0.25))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 96.0 32.0)
(:b 64.0 32.0)
(:a 16.0 16.0)
(:vel-y (meters 0.053333335) (meters 0.02))
(:scalevel-x (meters 0.0016666667))
(:rotvel-z (degrees -0.2) (degrees 0.4))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.21333334)
(:accel-y (meters -0.00033333333))
(:friction 0.95)
(:timer (seconds 0.5))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12))
(:conerot-x (degrees 60) (degrees 30))
(:conerot-y (degrees 0) (degrees 360))
)
)
(defpart 1418
:init-specs ((:texture (new 'static 'texture-id :index #x26 :page #xc))
(:num 8.0)
(:x (meters -0.4) (meters 0.8))
(:y (meters -0.1) (meters 0.4))
(:z (meters -0.4) (meters 0.8))
(:scale-x (meters 0.01) (meters 0.02))
(:scale-y (meters 0.01) (meters 0.02))
(:r 128.0 2 32.0)
(:g 64.0 1 64.0)
(:b 32.0 1 32.0)
(:a 64.0 64.0)
(:vel-y (meters 0.015) (meters 0.006666667))
(:fade-a -0.42666668)
(:accel-y (meters -0.0013333333) (meters 0.00066666666))
(:timer (seconds 1))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12))
(:conerot-x (degrees 30) (degrees 50.000004))
(:conerot-y (degrees 0) (degrees 360))
(: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 (seconds 4) :length (seconds 0.017))
(sp-item 1420 :period (seconds 4) :length (seconds 0.017))
)
)
(defpart 1419
:init-specs ((:texture (new 'static 'texture-id :index #xbb :page #xc))
(:num 1.0)
(:scale-x (meters 32) (meters 5))
(:rot-x (degrees 11.25))
(:rot-z (degrees -12.000001) (degrees 24.000002))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 128.0 64.0)
(:b 255.0)
(:a 32.0)
(:fade-a -1.28)
(:timer (seconds 0.085))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 16384.0)
)
)
(defpart 1420
:init-specs ((:texture (new 'static 'texture-id :index #x33 :page #xc))
(:num 1.0)
(:scale-x (meters 3))
(:rot-x (degrees 1.125))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 0.0 32.0)
(:g 128.0 128.0)
(:b 255.0)
(:a 16.0)
(:scalevel-x (meters 0.64))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.29090908)
(:timer (seconds 0.2))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(: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 ((:texture (new 'static 'texture-id :index #x9 :page #x43b))
(:birth-func 'birth-func-texture-group)
(:num 0.5)
(:x (meters -2) (meters 4))
(:z (meters -2) (meters 4))
(:scale-x (meters 0.2) (meters 0.2))
(:rot-z (degrees 0) (degrees 360))
(:scale-y (meters 0.2) (meters 0.2))
(:r 64.0 128.0)
(:g :copy r)
(:b :copy g)
(:a 128.0)
(:vel-y (meters 0.06666667) (meters 0.033333335))
(:rotvel-z (degrees -1.2) (degrees 2.4))
(:accel-y (meters -0.0013333333) (meters -0.002))
(:friction 0.98)
(:timer (seconds 0.835) (seconds 1.665))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12))
(:userdata
:data (new 'static 'boxed-array :type int32 40 1 0 #x43b00900 #x43b00a00 #x43b00b00 #x43b00c00 #x43b00d00)
)
(:conerot-x (degrees 0) (degrees 80))
(:conerot-y (degrees 0) (degrees 3600))
(:conerot-radius (meters 0) (meters 2))
)
)
(defpart 1421
:init-specs ((:texture (new 'static 'texture-id :page #xc))
(:num 0.5 0.5)
(:scale-x (meters 1) (meters 0.1))
(:scale-y (meters 1) (meters 0.2))
(:r 100.0 32.0)
(:g 80.0 32.0)
(:b 60.0 20.0)
(:a 8.0 8.0)
(:vel-y (meters -0.013333334) (meters -0.026666667))
(:scalevel-x (meters 0.0016666667) (meters 0.0016666667))
(:scalevel-y (meters 0.01) (meters 0.00033333333))
(:fade-a -0.035555556 -0.053333335)
(:accel-y (meters 0) (meters 0.00033333333))
(:timer (seconds 0.75))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12))
(:rotate-y (degrees 0) (degrees 360))
)
)
(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 ((:texture (new 'static 'texture-id :page #xc))
(:num 6.0 6.0)
(:scale-x (meters 1) (meters 1))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 64.0 128.0)
(:g :copy r)
(:b :copy g)
(:a 16.0 16.0)
(:vel-y (meters 0.02) (meters 0.04))
(:scalevel-x (meters 0.01) (meters 0.013333334))
(:rotvel-z (degrees -0.2) (degrees 0.4))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.07111111 -0.07111111)
(:accel-y (meters -0.00006666667))
(:friction 0.94)
(:timer (seconds 1.5))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12 sp-cpuinfo-flag-14))
(:conerot-x (degrees 60) (degrees 30))
(:conerot-y (degrees 0) (degrees 360))
)
)
(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 ((:num 1.0)
(:x (meters 2))
(:y (meters -3.5))
(:rot-x 5)
(:r 2457.6)
(:g 1966.08)
(:b 2048.0)
(:vel-x (meters -0.013333334))
(:vel-y (meters 0.023333333))
(:timer (seconds 0.5))
(:flags (distort))
(:rotate-y (degrees 0) (degrees 360))
)
)
(defpart 1425
:init-specs ((:texture (new 'static 'texture-id :index #xc9 :page #xc))
(:num 0.5)
(:x (meters 0) (meters 0.6))
(:y (meters -2))
(:scale-x (meters 0.2))
(:rot-x (degrees 90))
(:scale-y (meters 0.25) (meters 0.75))
(:r 0.0 1 128.0)
(:g 64.0 196.0)
(:b 128.0 128.0)
(:a 8.0 4.0)
(:vel-y (meters 0.006666667))
(:scalevel-x (meters -0.0025))
(:scalevel-y (meters 0.012207031) (meters 0.024414062))
(:timer (seconds 0.5))
(:flags (sp-cpuinfo-flag-3))
(:rotate-y (degrees 0) (degrees 360))
)
)
(defpart 1426
:init-specs ((:texture (new 'static 'texture-id :page #xc))
(:num 4.0)
(:x (meters 2.5) (meters 0.5))
(:y (meters -3.5))
(:scale-x (meters 1) (meters 1))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 32.0 32.0)
(:g 32.0 32.0)
(:b 10.0 5.0)
(:a 0.0)
(:vel-x (meters -0.016666668))
(:vel-y (meters 0))
(:scalevel-x (meters -0.006666667))
(:rotvel-z (degrees -1.2) 1 (degrees 2.4))
(:scalevel-y :copy scalevel-x)
(:fade-a 0.10666667 0.10666667)
(:accel-y (meters 0.0015))
(:friction 0.996)
(:timer (seconds 0.5))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3))
(:rotate-y (degrees 0) (degrees 360))
)
)
(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 ((:num 1.0)
(:rot-x 5)
(:r 2457.6)
(:g 1966.08)
(:b 2048.0)
(:vel-y (meters 0.093333334) (meters 0.013333334))
(:fade-r 13.653334)
(:fade-g 12.288)
(:fade-b 13.653334)
(:accel-y (meters -0.0015))
(:friction 0.95)
(:timer (seconds 0.417))
(:flags (distort))
(:conerot-x (degrees -85) (degrees -10))
(:conerot-y (degrees -85) (degrees -10))
(:conerot-radius (meters -0.5) (meters 0.5))
)
)
(defpart 1428
:init-specs ((:texture (new 'static 'texture-id :index #x21 :page #xc))
(:num 20.0)
(:x (meters -0.5))
(:scale-x (meters 0.1) (meters 0.1))
(:rot-x 4)
(:scale-y :copy scale-x)
(:r 32.0 32.0)
(:g 32.0 32.0)
(:b 64.0 32.0)
(:a 16.0 16.0)
(:omega (degrees 0.045))
(:vel-y (meters 0.093333334) (meters 0.013333334))
(:fade-a 0.10666667 0.10666667)
(:accel-y (meters -0.0011666666) (meters 0.00026666667))
(:friction 0.95)
(:timer (seconds 0.467))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3))
(:func 'sparticle-motion-blur)
(:conerot-x (degrees -80) (degrees -20))
(:conerot-y (degrees -80) (degrees -20))
(:conerot-radius (meters -0.5) (meters 0.5))
)
)
(defpart 1429
:init-specs ((:texture (new 'static 'texture-id :page #xc))
(:num 2.0)
(:x (meters -0.5))
(:scale-x (meters 0.1) (meters 0.3))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 32.0 32.0)
(:g 32.0 32.0)
(:b 64.0 32.0)
(:a 16.0 16.0)
(:vel-y (meters 0.026666667) (meters 0.10666667))
(:scalevel-x (meters 0.006666667) (meters 0.006666667))
(:rotvel-z (degrees 0.2) (degrees 1.2))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.10666667)
(:accel-y (meters 0.00016666666) (meters 0.0005))
(:friction 0.9)
(:timer (seconds 1))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3))
(:conerot-x (degrees -80) (degrees -20))
(:conerot-y (degrees -80) (degrees -20))
)
)
(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 ((:texture (new 'static 'texture-id :index #x90 :page #xc))
(:num 1.0)
(:x (meters 1.45))
(:y (meters 1.1))
(:z (meters -5.15))
(:scale-x (meters 0.6))
(:rot-x 4)
(:scale-y (meters 2))
(:r 128.0 128.0)
(:g 32.0 96.0)
(:b :copy g)
(:a 128.0 64.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3))
(:rotate-y (degrees 0))
)
)
(defpart 1431
:init-specs ((:texture (new 'static 'texture-id :index #x90 :page #xc))
(:num 1.0)
(:x (meters 1.45))
(:y (meters 1.1))
(:z (meters -5.15))
(:scale-x (meters 0.6))
(:rot-x 4)
(:rot-z (degrees 90))
(:scale-y (meters 2))
(:r 128.0 128.0)
(:g 32.0 96.0)
(:b :copy g)
(:a 128.0 64.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3))
(:rotate-y (degrees 0))
)
)
(defpart 1432
:init-specs ((:texture (new 'static 'texture-id :index #xca :page #xc))
(:num 1.0)
(:x (meters 1.45))
(:y (meters 1.1))
(:z (meters -4.2))
(:scale-x (meters 1.75))
(:rot-x (degrees 0.5625))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 0.0 64.0)
(:b 0.0)
(:a 16.0 4.0)
(:rotvel-z (degrees 0.3))
(:timer (seconds 0.017))
(:flags (glow))
(:userdata 2048.0)
(:rotate-y (degrees 0))
)
)
(defpart 1433
:init-specs ((:texture (new 'static 'texture-id :index #x90 :page #xc))
(:num 1.0)
(:x (meters -1.45))
(:y (meters 1.1))
(:z (meters -5.15))
(:scale-x (meters 0.6))
(:rot-x 4)
(:scale-y (meters 2))
(:r 128.0 128.0)
(:g 32.0 96.0)
(:b :copy g)
(:a 128.0 64.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3))
(:rotate-y (degrees 0))
)
)
(defpart 1434
:init-specs ((:texture (new 'static 'texture-id :index #x90 :page #xc))
(:num 1.0)
(:x (meters -1.45))
(:y (meters 1.1))
(:z (meters -5.15))
(:scale-x (meters 0.6))
(:rot-x 4)
(:rot-z (degrees 90))
(:scale-y (meters 2))
(:r 128.0 128.0)
(:g 32.0 96.0)
(:b :copy g)
(:a 128.0 64.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3))
(:rotate-y (degrees 0))
)
)
(defpart 1435
:init-specs ((:texture (new 'static 'texture-id :index #xca :page #xc))
(:num 1.0)
(:x (meters -1.45))
(:y (meters 1.1))
(:z (meters -4.2))
(:scale-x (meters 1.75))
(:rot-x (degrees 0.5625))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 0.0 64.0)
(:b 0.0)
(:a 16.0 4.0)
(:rotvel-z (degrees 0.3))
(:timer (seconds 0.017))
(:flags (glow))
(:userdata 2048.0)
(:rotate-y (degrees 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 ((:texture (new 'static 'texture-id :index #xca :page #xc))
(:num 1.0)
(:scale-x (meters 0.15) (meters 0.01))
(:rot-x (degrees 2.25))
(:scale-y (meters 0.1) (meters 0.01))
(:r 16.0)
(:g 42.0)
(:b 32.0)
(:a 16.0 48.0)
(:timer (seconds 0.017))
(:flags (glow))
(:userdata 2048.0)
)
)
(scene-method-16
(new 'static 'scene
:name "atoll-1-res"
:extra #f
:info #f
:mask-to-clear (process-mask movie enemy platform projectile)
: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 (process-mask movie enemy platform projectile)
: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 change-continue)
: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 (process-mask movie enemy platform projectile)
: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 change-continue)
: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 atoll-tank-a-lod0-jg -1
((atoll-tank-a-lod0-mg (meters 999999)))
:bounds (static-spherem 30 -15 13 82)
)
(defskelgroup skel-atoll-tank-b atoll-tank atoll-tank-b-lod0-jg -1
((atoll-tank-b-lod0-mg (meters 999999)))
:bounds (static-spherem 0 -15 -5 82)
)
(defskelgroup skel-atoll-tank-c atoll-tank atoll-tank-c-lod0-jg -1
((atoll-tank-c-lod0-mg (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 (process-mask movie enemy platform projectile)
: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 (process-mask movie enemy platform projectile)
: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 (process-mask movie enemy platform projectile)
: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 (process-mask movie enemy platform projectile)
: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 (process-mask movie enemy platform projectile)
: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 (process-mask movie enemy platform projectile)
: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 (process-mask movie enemy platform projectile)
: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
)
)