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

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

3384 lines
99 KiB
Common Lisp

;;-*-Lisp-*-
(in-package goal)
;; name: mountain-scenes.gc
;; name in dgo: mountain-scenes
;; dgos: MTN
;; DECOMP BEGINS
(defpartgroup group-mtn-lens-light-shaft
:id 353
:bounds (static-bspherem 0 16 0 16)
:parts ((sp-item 1493 :flags (is-3d bit6))
(sp-item 1494 :flags (bit6))
(sp-item 1495 :flags (bit6))
(sp-item 1496 :flags (bit6))
(sp-item 1497 :fade-after (meters 80) :falloff-to (meters 160))
(sp-item 1498 :flags (is-3d bit6))
)
)
(defpart 1497
:init-specs ((:texture (new 'static 'texture-id :index #xc9 :page #xc))
(:num 8.0)
(:y (meters 23))
(:scale-x (meters 0.25))
(:scale-y (meters 0.25) (meters 0.1))
(:r 255.0)
(:g 255.0)
(:b 255.0)
(:a 0.0)
(:vel-y (meters 0.0016666667) (meters 0.0016666667))
(:fade-a 0.4)
(:timer (seconds 0.535))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3))
(:next-time (seconds 0.267))
(:next-launcher 1499)
(:conerot-x (degrees 176.2))
(:conerot-y (degrees 0) (degrees 36000))
(:conerot-radius (meters 0) (meters 22))
)
)
(defpart 1499
:init-specs ((:fade-a -0.4))
)
(defpart 1493
:init-specs ((:texture (new 'static 'texture-id :page #x4fb))
(:birth-func 'birth-func-camera-orient)
(:num 1.0)
(:y (meters 11.8))
(:scale-x (meters 8))
(:rot-x (degrees 90))
(:rot-z (degrees 0))
(:scale-y (meters 23))
(:r 255.0)
(:g 255.0)
(:b 255.0)
(:a 32.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3))
)
)
(defpart 1498
:init-specs ((:texture (new 'static 'texture-id :index #xc9 :page #xc))
(:num 1.0)
(:y (meters 0.58))
(:scale-x (meters 16))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 255.0)
(:b 255.0)
(:a 48.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3))
)
)
(defpart 1494
:init-specs ((:texture (new 'static 'texture-id :index #xbb :page #xc))
(:num 1.0)
(:y (meters 23))
(:scale-x (meters 12) (meters 0.1))
(:rot-x (degrees 22.5))
(:rot-z (degrees 24.000002))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 255.0)
(:b 255.0)
(:a 16.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 4096.0)
)
)
(defpart 1496
:init-specs ((:texture (new 'static 'texture-id :index #xca :page #xc))
(:num 1.0)
(:y (meters 1))
(:scale-x (meters 12) (meters 0.1))
(:rot-x (degrees 33.75))
(:scale-y (meters 20) (meters 0.1))
(:r 255.0)
(:g 255.0)
(:b 255.0)
(:a 20.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 16384.0)
)
)
(defpart 1495
:init-specs ((:texture (new 'static 'texture-id :index #xbb :page #xc))
(:num 1.0)
(:y (meters 23))
(:scale-x (meters 2) (meters 0.1))
(:rot-x (degrees 2.25))
(:rot-z (degrees 24.000002))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 255.0)
(:b 255.0)
(:a 32.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 2048.0)
)
)
(defpartgroup group-mountain-lens-res-daxter-tail-smoke
:id 354
:duration (seconds 0.167)
:bounds (static-bspherem 0 3 0 4)
:parts ((sp-item 1500 :fade-after (meters 50) :falloff-to (meters 50)))
)
(defpart 1500
:init-specs ((:texture (new 'static 'texture-id :page #xc))
(:num 1.0 2.0)
(:scale-x (meters 0.1) (meters 0.05))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 32.0 128.0)
(:g :copy r)
(:b :copy g)
(:a 8.0 8.0)
(:vel-y (meters 0.0016666667) (meters 0.0033333334))
(:scalevel-x (meters 0.0005925926) (meters 0.0011851852))
(:rotvel-z (degrees -0.2) (degrees 0.4))
(:scalevel-y :copy scalevel-x)
(:fade-r -0.16)
(:fade-g -0.08)
(:fade-b -0.08)
(:fade-a -0.006666667 -0.006666667)
(:accel-y (meters -0.0000033333336))
(:friction 0.99)
(:timer (seconds 8))
(:flags (sp-cpuinfo-flag-2))
(:next-time (seconds 1.667) (seconds 0.997))
(:next-launcher 1501)
)
)
(defpartgroup group-mountain-lens-res-daxter-tail-fire
:id 355
:duration (seconds 0.05)
:bounds (static-bspherem 0 3 0 4)
:parts ((sp-item 1502 :fade-after (meters 50) :falloff-to (meters 80))
(sp-item 1503 :fade-after (meters 60) :falloff-to (meters 90))
(sp-item 1504 :fade-after (meters 50) :falloff-to (meters 50))
(sp-item 1505 :fade-after (meters 30) :falloff-to (meters 30))
(sp-item 1506 :fade-after (meters 70) :flags (bit6))
)
)
(defpart 1506
:init-specs ((:texture (new 'static 'texture-id :index #xca :page #xc))
(:num 1.0)
(:scale-x (meters 2) (meters 0.1))
(:rot-x (degrees 45))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 0.0 128.0)
(:b 0.0)
(:a 14.0)
(:fade-a -1.0666667)
(:timer (seconds 0.035))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 10240.0)
)
)
(defpart 1503
:init-specs ((:texture (new 'static 'texture-id :index #x33 :page #xc))
(:birth-func 'birth-func-texture-group)
(:num 1.0 3.0)
(:scale-x (meters 0.2) (meters 0.1))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 240.0 15.0)
(:g 200.0 16.0)
(:b 160.0 16.0)
(:a 32.0 32.0)
(:vel-y (meters 0.0033333334) (meters 0.0033333334))
(:scalevel-x (meters 0.0025000002))
(:rotvel-z (degrees -0.4) (degrees 0.8))
(:scalevel-y :copy scalevel-x)
(:fade-r -2.1333334 -1.0666667)
(:fade-g -4.266667 -2.1333334)
(:fade-b -5.3333335)
(:accel-y (meters -0.0001))
(:timer (seconds 0.535) (seconds 0.265))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3))
(:userdata :data (new 'static 'boxed-array :type int32 40 1 0 #xc00000 #xc00000 #xc03300))
(:next-time (seconds 0.1) (seconds 0.03))
(:next-launcher 1507)
)
)
(defpart 1507
:init-specs ((:b 0.0)
(:fade-r 0.0)
(:fade-g 0.0)
(:fade-b 0.0)
(:fade-a -0.4 -0.2)
(:next-time (seconds 0.135) (seconds 0.03))
(:next-launcher 1508)
)
)
(defpart 1508
:init-specs ((:fade-r -0.125) (:fade-g 0.4) (:fade-b 0.4))
)
(defpart 1502
:init-specs ((:texture (new 'static 'texture-id :index #x33 :page #xc))
(:birth-func 'birth-func-texture-group)
(:num 0.5 1.0)
(:scale-x (meters 0.2) (meters 0.1))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 32.0)
(:g 128.0)
(:b 128.0)
(:a 16.0 16.0)
(:vel-y (meters 0.006666667) (meters 0.006666667))
(:scalevel-x (meters 0.0012500001))
(:rotvel-z (degrees -0.4) (degrees 0.8))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.16 -0.16)
(:accel-y (meters -0.0001))
(:timer (seconds 1))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-4))
(:userdata :data (new 'static 'boxed-array :type int32 40 1 0 #xc00000 #xc00000 #xc03300))
)
)
(defpart 1504
:init-specs ((:texture (new 'static 'texture-id :page #xc))
(:num 0.4)
(:scale-x (meters 0.5) (meters 0.25))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 160.0 32.0)
(:g 96.0 32.0)
(:b :copy g)
(:a 8.0 8.0)
(:vel-y (meters 0.005) (meters 0.005))
(:scalevel-x (meters 0.0008888889) (meters 0.0011851852))
(:rotvel-z (degrees -0.2) (degrees 0.4))
(:scalevel-y :copy scalevel-x)
(:fade-r -0.16)
(:fade-g -0.08)
(:fade-b -0.08)
(:fade-a -0.006666667 -0.006666667)
(:accel-y (meters -0.0000033333336))
(:friction 0.99)
(:timer (seconds 8))
(:flags (sp-cpuinfo-flag-2))
(:next-time (seconds 1.667) (seconds 0.997))
(:next-launcher 1501)
)
)
(defpart 1501
:init-specs ((:fade-r 0.0) (:fade-g 0.0) (:fade-b 0.0))
)
(defpart 1505
:init-specs ((:num 0.4)
(:x (meters 0) (meters 0.2))
(:rot-x 8)
(:r 1638.4)
(:g 1331.2)
(:b 1433.6)
(:vel-x (meters 0) (meters 0.006666667))
(:vel-y (meters 0.006666667) (meters 0.0033333334))
(:friction 0.98)
(:timer (seconds 0.5))
(:flags (distort))
(:next-time (seconds 0.25))
(:next-launcher 1509)
(:rotate-y (degrees 0) (degrees 360))
)
)
(defpart 1509
:init-specs ((:fade-b -1.3653333))
)
(defpartgroup group-mtn-lens-light
:id 356
:duration (seconds 0.017)
:flags (use-local-clock)
:bounds (static-bspherem 0 0 0 8)
:parts ((sp-item 1510 :flags (bit6)) (sp-item 1511 :flags (bit6)))
)
(defpart 1510
:init-specs ((:texture (new 'static 'texture-id :index #xbb :page #xc))
(:num 1.0)
(:scale-x (meters 10) (meters 0.1))
(:rot-x (degrees 22.5))
(:rot-z (degrees 24.000002))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 255.0)
(:b 255.0)
(:a 12.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 4096.0)
)
)
(defpart 1511
:init-specs ((:texture (new 'static 'texture-id :index #xbb :page #xc))
(:num 1.0)
(:scale-x (meters 1) (meters 0.1))
(:rot-x (degrees 2.25))
(:rot-z (degrees 24.000002))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 255.0)
(:b 255.0)
(:a 10.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 2048.0)
)
)
(defpartgroup group-mtn-plat-buried-rocks-trailer
:id 357
:flags (use-local-clock)
:bounds (static-bspherem 0 0 0 15)
:parts ((sp-item 1512))
)
(defpart 1512
:init-specs ((:texture (new 'static 'texture-id :page #xc))
(:num 0.0 1.0)
(:x (meters -0.25) (meters 1))
(:scale-x (meters 3) (meters 3))
(:rot-z (degrees 0) (degrees 3600))
(:scale-y (meters 3) (meters 3))
(:r 128.0)
(:g 96.0 32.0)
(:b 64.0 32.0)
(:a 12.0 24.0)
(:vel-y (meters 0) (meters 0.013333334))
(:scalevel-x (meters 0.006666667) (meters 0.006666667))
(:rotvel-z (degrees -0.3) (degrees 0.6))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.06 -0.06)
(:accel-y (meters 0.00033333333) (meters 0.00016666666))
(:friction 0.95 0.03)
(:timer (seconds 4))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12))
(:conerot-x (degrees 0) (degrees 3600))
(:conerot-y (degrees 0) (degrees 3600))
(:conerot-z (degrees 0) (degrees 3600))
(:rotate-y (degrees 0) (degrees 3600))
)
)
(defpartgroup group-canyon-seal-of-mar-glow
:id 358
:flags (unk-6)
:bounds (static-bspherem 0 0 0 2)
:rotate ((degrees 90) (degrees 0) (degrees 0))
:parts ((sp-item 1513 :flags (is-3d bit6 bit7)) (sp-item 1514 :flags (bit6 bit7)) (sp-item 1515 :flags (bit7)))
)
(defpart 1513
:init-specs ((:texture (new 'static 'texture-id :index #xbb :page #xc))
(:num 1.0)
(:z (meters -0.45))
(:scale-x (meters 24) (meters 0.1))
(:scale-y :copy scale-x)
(:r 192.0)
(:g 128.0)
(:b 0.0)
(:a 48.0 8.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-21))
(:rotate-y (degrees -17) (degrees 4))
)
)
(defpart 1514
:init-specs ((:texture (new 'static 'texture-id :index #xca :page #xc))
(:num 1.0)
(:z (meters 0.65))
(:scale-x (meters 20) (meters 0.1))
(:rot-z (degrees 4.5))
(:scale-y :copy scale-x)
(:r 192.0)
(:g 128.0)
(:b 0.0)
(:a 32.0 2.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow sp-cpuinfo-flag-21))
(:userdata 1638.4)
(:rotate-y (degrees 0))
)
)
(defpart 1515
:init-specs ((:texture (new 'static 'texture-id :index #xbb :page #xc))
(:num 6.0 2.0)
(:scale-x (meters 0.25) (meters 0.1))
(:scale-y :copy scale-x)
(:r 196.0 32.0)
(:g :copy r)
(:b :copy g)
(:a 128.0 128.0)
(:vel-y (meters 0.12) (meters 0.12))
(:scalevel-x (meters -0.002))
(:scalevel-y :copy scalevel-x)
(:fade-a -1.28)
(:timer (seconds 0.167))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-21))
(:conerot-z (degrees 0) (degrees 3600))
(:rotate-x (degrees -90))
(:rotate-y (degrees 0))
(:conerot-radius (meters 1.15))
)
)
(defpartgroup group-mtn-step-plat-rocks-explosion
:id 359
:flags (use-local-clock)
:bounds (static-bspherem 0 0 0 15)
:parts ((sp-item 1516) (sp-item 1517) (sp-item 1518) (sp-item 1519))
)
(defpart 1519
:init-specs ((:texture (new 'static 'texture-id :index #x34 :page #xc))
(:num 10.0 20.0)
(:y (meters 4))
(:scale-x (meters 3) (meters 3))
(:rot-x 4)
(:rot-z (degrees 0) (degrees 360) :store)
(:scale-y (meters 4) (meters 3.5))
(:r 128.0 64.0)
(:g 135.0 64.0)
(:b 64.0 32.0)
(:a 16.0 16.0)
(:vel-y (meters 0.05) (meters 0.1))
(:scalevel-x (meters 0.033333335) (meters 0.033333335))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.13333334)
(:friction 0.92 0.02)
(:timer (seconds 6.667))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12))
(:func 'sparticle-motion-blur)
(:next-time (seconds 0.167))
(:next-launcher 1520)
(:conerot-x '*sp-temp*)
(:conerot-y (degrees 0) (degrees 3600))
(:rotate-y (degrees 0))
(:conerot-radius (meters 0) (meters -5))
)
)
(defpart 1520
:init-specs ((:scalevel-x (meters 0.033333335) (meters 0.033333335))
(:scalevel-y :copy scalevel-x)
(:next-time (seconds 0.2) (seconds 0.065))
(:next-launcher 1521)
)
)
(defpart 1521
:init-specs ((:scalevel-x (meters 0.016666668) (meters 0.016666668)) (:scalevel-y :copy scalevel-x) (:fade-a -0.18 -0.12))
)
(defpart 1518
:init-specs ((:birth-func 'birth-func-texture-group)
(:num 10.0 20.0)
(:y (meters 4))
(:scale-x (meters 3) (meters 3))
(:rot-z (degrees 0) (degrees 3600) :store)
(:scale-y (meters 4) (meters 3.5))
(:r 128.0)
(:g 80.0 32.0)
(:b 64.0 32.0)
(:a 16.0 32.0)
(:vel-y (meters 0.05) (meters 0.1))
(:scalevel-x (meters 0.033333335) (meters 0.033333335))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.13333334)
(:friction 0.92 0.02)
(:timer (seconds 6.667))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12))
(:userdata :data (new 'static 'boxed-array :type int32 80 1 0 #xc00000 #xc03300))
(:next-time (seconds 0.167))
(:next-launcher 1520)
(:conerot-x '*sp-temp*)
(:conerot-y (degrees 0) (degrees 3600))
(:rotate-y (degrees 0))
(:conerot-radius (meters 0) (meters 2))
)
)
(defpart 1517
:init-specs ((:texture (new 'static 'texture-id :index #x32 :page #xc))
(:num 10.0 20.0)
(:x (meters 0.25))
(:y (meters 4))
(:scale-x (meters 1) (meters 2))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 128.0 64.0)
(:g :copy r)
(:b :copy r)
(:a 16.0 48.0)
(:vel-y (meters 0) (meters 0.13333334))
(:scalevel-x (meters 0.006666667) (meters 0.0033333334))
(:rotvel-z (degrees -0.12) (degrees 0.24))
(:scalevel-y :copy scalevel-x)
(:accel-y (meters -0.00016666666) (meters -0.00066666666))
(:friction 0.88 0.02)
(:timer (seconds 20))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12))
(:next-time (seconds 0.235) (seconds 0.097))
(:next-launcher 1522)
(:conerot-x (degrees 0) (degrees 3600))
(:conerot-y (degrees 0) (degrees 3600))
(:rotate-y (degrees 0))
(:conerot-radius (meters 0) (meters 3))
)
)
(defpart 1522
:init-specs ((:scalevel-x (meters 0.01))
(:scalevel-y :copy scalevel-x)
(:next-time (seconds 0.3) (seconds 0.097))
(:next-launcher 1523)
)
)
(defpart 1523
:init-specs ((:scalevel-x (meters 0.0033333334)) (:scalevel-y :copy scalevel-x) (:fade-a -0.053333335 -0.053333335))
)
(defpart 1516
:init-specs ((:texture (new 'static 'texture-id :page #xc))
(:num 10.0)
(:x (meters 0) (meters 0.6))
(:y (meters 4))
(:scale-x (meters 4.5) (meters 5))
(:rot-z (degrees 0) (degrees 3600))
(:scale-y :copy scale-x)
(:r 128.0 64.0)
(:g :copy r)
(:b :copy r)
(:a 0.0)
(:vel-y (meters 0.033333335) (meters 0.04))
(:scalevel-x (meters 0.016666668) (meters 0.016666668))
(:rotvel-z (degrees -0.12) (degrees 0.24))
(:scalevel-y :copy scalevel-x)
(:fade-a 0.32 0.32)
(:friction 0.94 0.04)
(:timer (seconds 8))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12))
(:next-time (seconds 0.235) (seconds 0.097))
(:next-launcher 1524)
(:conerot-x (degrees 0) (degrees 3600))
(:conerot-y (degrees 0) (degrees 3600))
(:rotate-y (degrees 0))
)
)
(defpart 1524
:init-specs ((:scalevel-x (meters 0.008333334))
(:scalevel-y :copy scalevel-x)
(:fade-a 0.0)
(:next-time (seconds 0.335) (seconds 0.497))
(:next-launcher 1525)
)
)
(defpart 1525
:init-specs ((:scalevel-x (meters 0.0033333334)) (:scalevel-y :copy scalevel-x) (:fade-a -0.21333334 -0.10666667))
)
(defpartgroup group-mountain-mtn-shard-glow
:id 360
:flags (unk-4)
:bounds (static-bspherem 0 0 0 2)
:parts ((sp-item 1526 :flags (bit6 bit7)) (sp-item 1527 :flags (bit6 bit7)))
)
(defpart 1527
:init-specs ((:texture (new 'static 'texture-id :index #xcb :page #xc))
(:num 0.0 0.8)
(:y (meters 0.45))
(:scale-x (meters 0.1))
(:rot-x (degrees 11.25))
(:rot-z (degrees 0) (degrees 3600))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 255.0)
(:b 255.0)
(:a 16.0)
(:omega (degrees 4511.25))
(:scalevel-x (meters 0.01) (meters 0.0033333334))
(:scalevel-y :copy scalevel-x)
(:timer (seconds 0.335))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3))
(:userdata 2048.0)
(:next-time (seconds 0.167))
(:next-launcher 1528)
(:rotate-y (degrees 0))
)
)
(defpart 1528
:init-specs ((:fade-a -0.32))
)
(defpart 1526
:init-specs ((:texture (new 'static 'texture-id :index #xbb :page #xc))
(:num 1.0)
(:y (meters 0.55))
(:scale-x (meters 1))
(:rot-x (degrees 2.25))
(:rot-z (degrees 0) (degrees 3600))
(:scale-y :copy scale-x)
(:r 0.0)
(:g 0.0 64.0)
(:b 196.0)
(:a 16.0 16.0)
(:timer (seconds 0.017))
(:flags (glow))
(:userdata 409.6)
(:rotate-y (degrees 0))
)
)
(defpartgroup group-mountain-gear-dust-plume
:id 361
:bounds (static-bspherem 0 0 0 15)
:parts ((sp-item 1529))
)
(defpart 1529
:init-specs ((:texture (new 'static 'texture-id :page #xc))
(:num 1.0 0.5)
(:x (meters -6) (meters 12))
(:scale-x (meters 1) (meters 2))
(:rot-z (degrees 0) (degrees 3600))
(:scale-y (meters 1) (meters 2))
(:r 128.0)
(:g 96.0 32.0)
(:b 64.0 32.0)
(:a 20.0 12.0)
(:vel-x (meters 0.02) (meters 0.02))
(:scalevel-x (meters 0.023333333) (meters 0.006666667))
(:rotvel-z (degrees -0.3) (degrees 0.6))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.04 -0.08)
(:accel-y (meters 0.00066666666))
(:friction 0.95 0.03)
(:timer (seconds 4.335))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12))
(:rotate-y (degrees 0) (degrees 3600))
)
)
(defskelgroup skel-mtn-step-plat-rocks-a mtn-step-plat-rocks mtn-step-plat-rocks-a-lod0-jg mtn-step-plat-rocks-a-idle-ja
((mtn-step-plat-rocks-a-lod0-mg (meters 200)) (mtn-step-plat-rocks-a-lod1-mg (meters 999999)))
:bounds (static-spherem 0 -10 0 100)
:origin-joint-index 3
)
(defskelgroup skel-mtn-step-plat-rocks-b mtn-step-plat-rocks mtn-step-plat-rocks-b-lod0-jg mtn-step-plat-rocks-b-idle-ja
((mtn-step-plat-rocks-b-lod0-mg (meters 200)) (mtn-step-plat-rocks-b-lod1-mg (meters 999999)))
:bounds (static-spherem 0 -10 0 100)
:origin-joint-index 3
)
(defskelgroup skel-mtn-step-plat-rocks-c mtn-step-plat-rocks mtn-step-plat-rocks-c-lod0-jg mtn-step-plat-rocks-c-idle-ja
((mtn-step-plat-rocks-c-lod0-mg (meters 200)) (mtn-step-plat-rocks-c-lod1-mg (meters 999999)))
:bounds (static-spherem 0 -10 0 100)
:origin-joint-index 3
)
(scene-method-16 (new 'static 'scene
:name "mtn-step-plat-rocks-a"
:extra #f
:info #f
:mask-to-clear (process-mask movie enemy)
:entity "mtn-step-plat-rocks-a-2"
:art-group "scenecamera"
:anim "mtn-step-plat-rocks-a"
:parts 2
:command-list '((0 (send-event "mtn-step-plat-rocks-a-2" 'done))
(0 (send-event "mtn-plat-eject-14" 'eject))
(1 (part-tracker
"group-mtn-step-plat-rocks-explosion"
entity
"mtn-step-plat-rocks-a"
joint
"g"
track
#t
duration
(frame-range 1 2)
)
)
)
:cut-list '()
:wait-max-time (seconds 3)
:draw-target #t
: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 "mtn-step-plat-rocks-a"
:level 'mtnext
:art-group "skel-mtn-step-plat-rocks-a"
:prefix "mtn-step-plat-rocks-a-"
:draw-frames '((min max))
:scissor-frames '()
:shadow-mask #x1e
:shadow-values #x1360
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
)
:load-point-obj "mountain-start"
:end-point-obj #f
: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 "mtn-step-plat-rocks-b"
:extra #f
:info #f
:mask-to-clear (process-mask movie enemy)
:entity "mtn-step-plat-rocks-b-4"
:art-group "scenecamera"
:anim "mtn-step-plat-rocks-b"
:parts 2
:command-list '((0 (send-event "mtn-step-plat-rocks-b-4" 'done))
(0 (send-event "mtn-plat-eject-16" 'eject))
(0 (send-event "mtn-plat-eject-17" 'eject))
(1 (part-tracker
"group-mtn-step-plat-rocks-explosion"
entity
"mtn-step-plat-rocks-b"
joint
"aa"
track
#t
duration
(frame-range 1 2)
)
)
(6 (part-tracker
"group-mtn-step-plat-rocks-explosion"
entity
"mtn-step-plat-rocks-b"
joint
"v"
track
#t
duration
(frame-range 6 7)
)
)
)
:cut-list '()
:wait-max-time (seconds 3)
:draw-target #t
: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 "mtn-step-plat-rocks-b"
:level 'mtnext
:art-group "skel-mtn-step-plat-rocks-b"
:prefix "mtn-step-plat-rocks-b-"
:draw-frames '((min max))
:scissor-frames '()
:shadow-mask #x1e
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
)
:load-point-obj "mountain-start"
:end-point-obj #f
: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 "mtn-step-plat-rocks-c"
:extra #f
:info #f
:mask-to-clear (process-mask movie enemy)
:entity "mtn-step-plat-rocks-c-2"
:art-group "scenecamera"
:anim "mtn-step-plat-rocks-c"
:parts 3
:command-list '((0 (send-event "mtn-step-plat-rocks-c-2" 'done))
(0 (send-event "mtn-plat-eject-15" 'eject))
(1 (part-tracker
"group-mtn-step-plat-rocks-explosion"
entity
"mtn-step-plat-rocks-c"
joint
"ab"
track
#t
duration
(frame-range 1 2)
)
)
(10 (part-tracker
"group-mtn-step-plat-rocks-explosion"
entity
"mtn-step-plat-rocks-c"
joint
"d"
track
#t
duration
(frame-range 10 11)
)
)
(11 (send-event "mtn-plat-eject-13" 'eject))
)
:cut-list '()
:wait-max-time (seconds 3)
:draw-target #t
: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 "mtn-step-plat-rocks-c"
:level 'mtnext
:art-group "skel-mtn-step-plat-rocks-c"
:prefix "mtn-step-plat-rocks-c-"
:draw-frames '((min max))
:scissor-frames '()
:shadow-mask #x1e
:shadow-values #x800
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
)
:load-point-obj "mountain-start"
:end-point-obj #f
:borrow '()
:sfx-volume -1.0
:ambient-volume -1.0
:music-volume 0.65
:blackout-end #t
:peaceful #t
:music-delay 1500.0
:save #f
)
)
(defskelgroup skel-mtn-plat-buried-rocks mtn-plat-buried-rocks mtn-plat-buried-rocks-lod0-jg mtn-plat-buried-rocks-idle-ja
((mtn-plat-buried-rocks-lod0-mg (meters 20)) (mtn-plat-buried-rocks-lod1-mg (meters 999999)))
:bounds (static-spherem 0 -20 0 40)
:origin-joint-index 3
)
(scene-method-16
(new 'static 'scene
:name "mtn-plat-buried-rocks-a"
:extra #f
:info #f
:mask-to-clear (process-mask movie enemy)
:entity "mtn-plat-buried-rocks-2"
:art-group "scenecamera"
:anim "mtn-plat-buried-rocks-a"
:parts 3
:command-list '((0 (send-event "mtn-plat-buried-rocks-2" 'die) (kill "mtn-plat-buried-rocks-2"))
(5 (send-event *target* 'play-anim 'shock-in))
(30 (begin
(send-event "mtn-plat-buried-4" 'bonk)
(send-event "mtn-plat-buried-5" 'bonk)
(send-event "mtn-plat-buried-6" 'bonk)
)
)
(40 (begin
(send-event "mtn-plat-buried-4" 'bonk)
(send-event "mtn-plat-buried-5" 'bonk)
(send-event "mtn-plat-buried-6" 'bonk)
)
)
(50 (begin
(send-event "mtn-plat-buried-4" 'bonk)
(send-event "mtn-plat-buried-5" 'bonk)
(send-event "mtn-plat-buried-6" 'bonk)
)
)
(60 (begin
(send-event "mtn-plat-buried-4" 'trigger)
(send-event "mtn-plat-buried-5" 'trigger)
(send-event "mtn-plat-buried-6" 'trigger)
)
)
(64
(part-tracker
"group-mtn-plat-buried-rocks-trailer"
entity
"mtn-plat-buried-rocks"
joint
"i"
track
#t
duration
(frame-range 64 111)
)
(part-tracker
"group-mtn-plat-buried-rocks-trailer"
entity
"mtn-plat-buried-rocks"
joint
"q"
track
#t
duration
(frame-range 64 106)
)
(part-tracker
"group-mtn-plat-buried-rocks-trailer"
entity
"mtn-plat-buried-rocks"
joint
"ax"
track
#t
duration
(frame-range 64 95)
)
(part-tracker
"group-mtn-plat-buried-rocks-trailer"
entity
"mtn-plat-buried-rocks"
joint
"b"
track
#t
duration
(frame-range 64 95)
)
(part-tracker
"group-mtn-plat-buried-rocks-trailer"
entity
"mtn-plat-buried-rocks"
joint
"ar"
track
#t
duration
(frame-range 64 106)
)
(part-tracker
"group-mtn-plat-buried-rocks-trailer"
entity
"mtn-plat-buried-rocks"
joint
"f"
track
#t
duration
(frame-range 64 106)
)
)
(65
(part-tracker
"group-mtn-plat-buried-rocks-trailer"
entity
"mtn-plat-buried-rocks"
joint
"be"
track
#t
duration
(frame-range 65 107)
)
(part-tracker
"group-mtn-plat-buried-rocks-trailer"
entity
"mtn-plat-buried-rocks"
joint
"bb"
track
#t
duration
(frame-range 65 106)
)
(part-tracker
"group-mtn-plat-buried-rocks-trailer"
entity
"mtn-plat-buried-rocks"
joint
"cn"
track
#t
duration
(frame-range 65 105)
)
(part-tracker
"group-mtn-plat-buried-rocks-trailer"
entity
"mtn-plat-buried-rocks"
joint
"n"
track
#t
duration
(frame-range 65 142)
)
(part-tracker
"group-mtn-plat-buried-rocks-trailer"
entity
"mtn-plat-buried-rocks"
joint
"cm"
track
#t
duration
(frame-range 65 110)
)
(part-tracker
"group-mtn-plat-buried-rocks-trailer"
entity
"mtn-plat-buried-rocks"
joint
"cl"
track
#t
duration
(frame-range 65 89)
)
)
(66
(part-tracker
"group-mtn-plat-buried-rocks-trailer"
entity
"mtn-plat-buried-rocks"
joint
"an"
track
#t
duration
(frame-range 66 97)
)
(part-tracker
"group-mtn-plat-buried-rocks-trailer"
entity
"mtn-plat-buried-rocks"
joint
"bh"
track
#t
duration
(frame-range 66 97)
)
(part-tracker
"group-mtn-plat-buried-rocks-trailer"
entity
"mtn-plat-buried-rocks"
joint
"ab"
track
#t
duration
(frame-range 66 114)
)
(part-tracker
"group-mtn-plat-buried-rocks-trailer"
entity
"mtn-plat-buried-rocks"
joint
"ad"
track
#t
duration
(frame-range 66 114)
)
(part-tracker
"group-mtn-plat-buried-rocks-trailer"
entity
"mtn-plat-buried-rocks"
joint
"br"
track
#t
duration
(frame-range 66 85)
)
(part-tracker
"group-mtn-plat-buried-rocks-trailer"
entity
"mtn-plat-buried-rocks"
joint
"bm"
track
#t
duration
(frame-range 66 85)
)
(part-tracker
"group-mtn-plat-buried-rocks-trailer"
entity
"mtn-plat-buried-rocks"
joint
"bs"
track
#t
duration
(frame-range 66 85)
)
(part-tracker
"group-mtn-plat-buried-rocks-trailer"
entity
"mtn-plat-buried-rocks"
joint
"cl"
track
#t
duration
(frame-range 66 85)
)
(part-tracker
"group-mtn-plat-buried-rocks-trailer"
entity
"mtn-plat-buried-rocks"
joint
"bp"
track
#t
duration
(frame-range 66 85)
)
)
(67
(part-tracker
"group-mtn-plat-buried-rocks-trailer"
entity
"mtn-plat-buried-rocks"
joint
"bg"
track
#t
duration
(frame-range 67 134)
)
(part-tracker
"group-mtn-plat-buried-rocks-trailer"
entity
"mtn-plat-buried-rocks"
joint
"ac"
track
#t
duration
(frame-range 67 134)
)
(part-tracker
"group-mtn-plat-buried-rocks-trailer"
entity
"mtn-plat-buried-rocks"
joint
"bo"
track
#t
duration
(frame-range 67 134)
)
(part-tracker
"group-mtn-plat-buried-rocks-trailer"
entity
"mtn-plat-buried-rocks"
joint
"m"
track
#t
duration
(frame-range 67 134)
)
(part-tracker
"group-mtn-plat-buried-rocks-trailer"
entity
"mtn-plat-buried-rocks"
joint
"cp"
track
#t
duration
(frame-range 67 134)
)
(part-tracker
"group-mtn-plat-buried-rocks-trailer"
entity
"mtn-plat-buried-rocks"
joint
"ai"
track
#t
duration
(frame-range 67 134)
)
)
(68
(part-tracker
"group-mtn-plat-buried-rocks-trailer"
entity
"mtn-plat-buried-rocks"
joint
"bc"
track
#t
duration
(frame-range 68 97)
)
(part-tracker
"group-mtn-plat-buried-rocks-trailer"
entity
"mtn-plat-buried-rocks"
joint
"cj"
track
#t
duration
(frame-range 68 100)
)
(part-tracker
"group-mtn-plat-buried-rocks-trailer"
entity
"mtn-plat-buried-rocks"
joint
"cf"
track
#t
duration
(frame-range 68 90)
)
(part-tracker
"group-mtn-plat-buried-rocks-trailer"
entity
"mtn-plat-buried-rocks"
joint
"ap"
track
#t
duration
(frame-range 68 95)
)
(part-tracker
"group-mtn-plat-buried-rocks-trailer"
entity
"mtn-plat-buried-rocks"
joint
"ce"
track
#t
duration
(frame-range 68 92)
)
(part-tracker
"group-mtn-plat-buried-rocks-trailer"
entity
"mtn-plat-buried-rocks"
joint
"at"
track
#t
duration
(frame-range 68 124)
)
(part-tracker
"group-mtn-plat-buried-rocks-trailer"
entity
"mtn-plat-buried-rocks"
joint
"az"
track
#t
duration
(frame-range 68 116)
)
)
(70
(part-tracker
"group-mtn-plat-buried-rocks-trailer"
entity
"mtn-plat-buried-rocks"
joint
"ao"
track
#t
duration
(frame-range 70 120)
)
(part-tracker
"group-mtn-plat-buried-rocks-trailer"
entity
"mtn-plat-buried-rocks"
joint
"l"
track
#t
duration
(frame-range 70 110)
)
(part-tracker
"group-mtn-plat-buried-rocks-trailer"
entity
"mtn-plat-buried-rocks"
joint
"ag"
track
#t
duration
(frame-range 70 120)
)
(part-tracker
"group-mtn-plat-buried-rocks-trailer"
entity
"mtn-plat-buried-rocks"
joint
"bj"
track
#t
duration
(frame-range 70 110)
)
(part-tracker
"group-mtn-plat-buried-rocks-trailer"
entity
"mtn-plat-buried-rocks"
joint
"aq"
track
#t
duration
(frame-range 70 98)
)
)
(71
(part-tracker
"group-mtn-plat-buried-rocks-trailer"
entity
"mtn-plat-buried-rocks"
joint
"g"
track
#t
duration
(frame-range 71 115)
)
(part-tracker
"group-mtn-plat-buried-rocks-trailer"
entity
"mtn-plat-buried-rocks"
joint
"j"
track
#t
duration
(frame-range 71 115)
)
(part-tracker
"group-mtn-plat-buried-rocks-trailer"
entity
"mtn-plat-buried-rocks"
joint
"ch"
track
#t
duration
(frame-range 71 97)
)
(part-tracker
"group-mtn-plat-buried-rocks-trailer"
entity
"mtn-plat-buried-rocks"
joint
"cb"
track
#t
duration
(frame-range 71 95)
)
(part-tracker
"group-mtn-plat-buried-rocks-trailer"
entity
"mtn-plat-buried-rocks"
joint
"bf"
track
#t
duration
(frame-range 71 95)
)
)
(73
(part-tracker
"group-mtn-plat-buried-rocks-trailer"
entity
"mtn-plat-buried-rocks"
joint
"z"
track
#t
duration
(frame-range 73 166)
)
(part-tracker
"group-mtn-plat-buried-rocks-trailer"
entity
"mtn-plat-buried-rocks"
joint
"bk"
track
#t
duration
(frame-range 73 166)
)
(part-tracker
"group-mtn-plat-buried-rocks-trailer"
entity
"mtn-plat-buried-rocks"
joint
"bl"
track
#t
duration
(frame-range 73 166)
)
(part-tracker
"group-mtn-plat-buried-rocks-trailer"
entity
"mtn-plat-buried-rocks"
joint
"co"
track
#t
duration
(frame-range 73 166)
)
(part-tracker
"group-mtn-plat-buried-rocks-trailer"
entity
"mtn-plat-buried-rocks"
joint
"zz"
track
#t
duration
(frame-range 73 166)
)
(part-tracker
"group-mtn-plat-buried-rocks-trailer"
entity
"mtn-plat-buried-rocks"
joint
"ak"
track
#t
duration
(frame-range 73 166)
)
)
(74 (part-tracker
"group-mtn-plat-buried-rocks-trailer"
entity
"mtn-plat-buried-rocks"
joint
"aj"
track
#t
duration
(frame-range 74 176)
)
)
(120 (send-event *target* 'play-anim 'shock-out))
)
:cut-list '()
:wait-max-time (seconds 3)
:wait-air-time (seconds 1)
:wait-ground-time (seconds 1)
:draw-target #t
: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 "mtn-plat-buried-rocks"
:level 'mtnext
:art-group "skel-mtn-plat-buried-rocks"
:prefix ""
:draw-frames '((min max))
:scissor-frames '()
:shadow-mask #x1e
:shadow-values #xb10
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
)
:load-point-obj "mountain-start"
:end-point-obj (new 'static 'continue-point
:name "mountain-top"
:level #f
:trans (new 'static 'vector :x -3353786.8 :y 412698.22 :z 1403920.0 :w 1.0)
:quat (new 'static 'vector :y -0.4801 :w -0.8771)
:camera-trans (new 'static 'vector :x -3392037.8 :y 432321.75 :z 1378997.5 :w 1.0)
:camera-rot (new 'static 'inline-array vector3s 3
(new 'static 'vector3s :data (new 'static 'array float 3 0.5466 0.0 -0.8373))
(new 'static 'vector3s :data (new 'static 'array float 3 0.1059 0.9919 0.0691))
(new 'static 'vector3s :data (new 'static 'array float 3 0.8306 -0.1265 0.5422))
)
:on-goto '(want-continue "mountain-top")
:vis-nick 'mountain
:want (new 'static 'inline-array level-buffer-state 6
(new 'static 'level-buffer-state :name 'mountain :display? 'display :force-vis? #f :force-inside? #f)
(new 'static 'level-buffer-state :name 'mtnext :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 'mount1 'mount2 'mount3)
)
:borrow '()
:sfx-volume -1.0
:ambient-volume -1.0
:music-volume 0.65
:blackout-end #t
:peaceful #t
:music-delay 1500.0
:save #f
)
)
(deftype mtn-plat-buried-rocks (process-drawable)
((root collide-shape :override)
)
:heap-base #x50
:method-count-assert 22
:size-assert #xc8
:flag-assert #x16005000c8
(:methods
(idle () _type_ :state 20)
(done (symbol) _type_ :state 21)
)
)
(defstate idle (mtn-plat-buried-rocks)
:virtual #t
:event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block))
(the-as object (case event-type
(('trigger)
(process-spawn scene-player :init scene-player-init "mtn-plat-buried-rocks-a" #t #f)
)
(('done)
(go-virtual done #f)
)
(('die)
(cleanup-for-death self)
(the-as object (deactivate self))
)
)
)
)
:code (behavior ()
(ja-post)
(logior! (-> self mask) (process-mask sleep))
(suspend)
0
(none)
)
)
(defstate done (mtn-plat-buried-rocks)
:virtual #t
:code (behavior ((arg0 symbol))
(process-entity-status! self (entity-perm-status subtask-complete) #t)
(when (not arg0)
(ja-channel-set! 0)
(ja-post)
(while (movie?)
(suspend)
)
(remove-process *gui-control* self (gui-channel art-load))
)
(ja-channel-set! 1)
(set! (-> self draw bounds w) 491520.0)
(set! (-> self root root-prim local-sphere w) 409600.0)
(format (clear *temp-string*) "~S-end" (-> self type))
(ja :group! (get-art-by-name (-> self draw art-group) *temp-string* art-joint-anim))
(transform-post)
(suspend)
(transform-post)
(logior! (-> self mask) (process-mask sleep))
(suspend)
0
(none)
)
)
;; WARN: Return type mismatch object vs none.
(defmethod init-from-entity! mtn-plat-buried-rocks ((obj mtn-plat-buried-rocks) (entity entity-actor))
"Typically the method that does the initial setup on the process, potentially using the [[entity-actor]] provided as part of that.
This commonly includes things such as:
- stack size
- collision information
- loading the skeleton group / bones
- sounds"
(let ((cshape (new 'process 'collide-shape obj (collide-list-enum hit-by-player))))
(let ((prim-mesh (new 'process 'collide-shape-prim-mesh cshape (the-as uint 0) (the-as uint 0))))
(set! (-> prim-mesh prim-core collide-as) (collide-spec obstacle))
(set! (-> prim-mesh prim-core collide-with) (collide-spec jak player-list))
(set! (-> prim-mesh prim-core action) (collide-action solid))
(set! (-> prim-mesh transform-index) 3)
(set-vector! (-> prim-mesh local-sphere) 0.0 0.0 0.0 122880.0)
(set! (-> cshape total-prims) (the-as uint 1))
(set! (-> cshape root-prim) prim-mesh)
)
(set! (-> cshape nav-radius) (* 0.75 (-> cshape root-prim local-sphere w)))
(let ((v1-5 (-> cshape root-prim)))
(set! (-> cshape backup-collide-as) (-> v1-5 prim-core collide-as))
(set! (-> cshape backup-collide-with) (-> v1-5 prim-core collide-with))
)
(set! (-> obj root) cshape)
)
(process-drawable-from-entity! obj entity)
(initialize-skeleton
obj
(the-as
skeleton-group
(art-group-get-by-name *level* "skel-mtn-plat-buried-rocks" (the-as (pointer uint32) #f))
)
(the-as pair 0)
)
(set! (-> obj draw force-lod) 1)
(cond
((and (-> obj entity) (logtest? (-> obj entity extra perm status) (entity-perm-status subtask-complete)))
(go (method-of-object obj done) #t)
)
(else
(add-process *gui-control* obj (gui-channel art-load) (gui-action queue) "mtn-plat-buried-rocks-a" -99.0 0)
(go (method-of-object obj idle))
)
)
(none)
)
(deftype mtn-plat-buried (plat)
((incoming-attack-id uint32 :offset-assert 324)
(offset float :offset-assert 328)
(options actor-option :offset-assert 336)
)
:heap-base #xe0
:method-count-assert 37
:size-assert #x158
:flag-assert #x2500e00158
)
(defskelgroup skel-mtn-plat-buried mtn-plat-buried 0 4
((1 (meters 999999)))
:bounds (static-spherem 0 0 0 4.8)
)
(defmethod get-art-group mtn-plat-buried ((obj mtn-plat-buried))
"@returns The associated [[art-group]]"
(art-group-get-by-name *level* "skel-mtn-plat-buried" (the-as (pointer uint32) #f))
)
(defmethod init-plat-collision! mtn-plat-buried ((obj mtn-plat-buried))
"TODO - collision stuff for setting up the platform"
(let ((cshape (new 'process 'collide-shape-moving obj (collide-list-enum usually-hit-by-player))))
(set! (-> cshape dynam) (copy *standard-dynamics* 'process))
(set! (-> cshape reaction) cshape-reaction-default)
(set! (-> cshape no-reaction)
(the-as (function collide-shape-moving collide-query vector vector object) nothing)
)
(let ((prim-mesh (new 'process 'collide-shape-prim-mesh cshape (the-as uint 0) (the-as uint 0))))
(set! (-> prim-mesh prim-core collide-as) (collide-spec pusher))
(set! (-> prim-mesh prim-core collide-with) (collide-spec jak player-list))
(set! (-> prim-mesh prim-core action) (collide-action solid rideable))
(set! (-> prim-mesh transform-index) 0)
(set-vector! (-> prim-mesh local-sphere) 0.0 0.0 0.0 19660.8)
(set! (-> cshape total-prims) (the-as uint 1))
(set! (-> cshape root-prim) prim-mesh)
)
(pusher-init cshape)
(set! (-> cshape nav-radius) (* 0.75 (-> cshape root-prim local-sphere w)))
(let ((root-prim (-> cshape root-prim)))
(set! (-> cshape backup-collide-as) (-> root-prim prim-core collide-as))
(set! (-> cshape backup-collide-with) (-> root-prim prim-core collide-with))
)
(set! (-> obj root) cshape)
)
(set! (-> obj sound)
(new 'process 'ambient-sound (static-sound-spec "mtn-plat-lp" :fo-max 100) (-> obj root trans))
)
(set! (-> obj options) (res-lump-value (-> obj entity) 'options actor-option :time -1000000000.0))
0
(none)
)
(defmethod plat-path-sync mtn-plat-buried ((obj mtn-plat-buried))
"If the `sync` period is greater than `0` then transition the state to [[plat::35]]
otherwise, [[plat::34]]
@see [[sync-eased]]"
(cond
((or (logtest? (-> obj path flags) (path-control-flag not-found))
(and (not (and (-> obj entity) (logtest? (-> obj entity extra perm status) (entity-perm-status subtask-complete))))
(logtest? (-> obj options) (actor-option blocked))
)
)
(go (method-of-object obj plat-idle))
)
((> (-> obj sync period) 0)
(go (method-of-object obj plat-path-active))
)
(else
(go (method-of-object obj plat-idle))
)
)
)
(defstate plat-idle (mtn-plat-buried)
:virtual #t
:event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block))
(case event-type
(('bonk)
(if (not (logtest? (-> self options) (actor-option blocked)))
(plat-event proc arg1 event-type event)
)
)
(('trigger)
(process-entity-status! self (entity-perm-status subtask-complete) #t)
(when (and (not (logtest? (-> self path flags) (path-control-flag not-found))) (> (-> self sync period) 0))
(sync-now! (-> self sync) (-> self offset))
(go-virtual plat-path-active)
)
)
(else
(plat-event proc arg1 event-type event)
)
)
)
:enter (behavior ()
(let ((f0-1 (/ (-> self sync offset) (the float (-> self sync period)))))
(set! (-> self offset) f0-1)
(sync-now! (-> self sync) f0-1)
)
(set! (-> self path-pos) (get-norm! (-> self sync) 0))
(get-point-at-percent-along-path! (-> self path) (-> self basetrans) (-> self path-pos) 'interp)
(let ((func (-> (method-of-type plat plat-idle) enter)))
(if func
(func)
)
)
(none)
)
:trans (behavior ()
(if (not (logtest? (-> self options) (actor-option blocked)))
(execute-effects self)
)
(none)
)
)
(defskelgroup skel-mtn-lens-base mtn-lens-base mtn-lens-base-lod0-jg mtn-lens-base-idle-ja
((mtn-lens-base-lod0-mg (meters 999999)))
:bounds (static-spherem 0 0 0 40)
:origin-joint-index 3
)
(defskelgroup skel-mtn-lens-floor mtn-lens-floor mtn-lens-floor-lod0-jg mtn-lens-floor-idle-ja
((mtn-lens-floor-lod0-mg (meters 999999)))
:bounds (static-spherem 0 0 0 40)
:origin-joint-index 3
)
(scene-method-16
(new 'static 'scene
:name "mountain-lens-res"
:extra #f
:info #f
:mask-to-clear (process-mask movie enemy platform projectile)
:entity "scene-stage-25"
:art-group "scenecamera"
:anim "mountain-lens-res"
:parts 6
:command-list '((0 (kill "mtn-lens-2"))
(0 (kill "mtn-lens-base-2"))
(0 (kill "mtn-lens-floor-2"))
(0 (task-close! "mountain-lens-resolution"))
(0 (fadein (seconds (new 'static 'bfloat :data 0.333))))
((new 'static 'bfloat :data 0.1) (part-tracker
"group-mtn-lens-light-shaft"
entity
"mtn-lens-floor"
joint
"main"
track
#t
duration
(frame-range 0 408)
)
)
(280 (part-tracker
"group-mountain-lens-res-daxter-tail-fire"
entity
"sidekick-highres"
joint
"tailEnd"
track
#t
duration
(frame-range 280 377)
)
)
(355 (part-tracker
"group-mountain-lens-res-daxter-tail-fire"
entity
"particleman"
joint
"particleA"
track
#t
duration
(frame-range 355 377)
)
)
(355 (part-tracker
"group-mountain-lens-res-daxter-tail-fire"
entity
"particleman"
joint
"particleB"
track
#t
duration
(frame-range 355 377)
)
)
(408 (part-tracker
"group-mtn-lens-light"
entity
"particleman"
joint
"particleC"
track
#t
duration
(frame-range 408 1000)
)
)
(455 (part-tracker
"group-mountain-lens-res-daxter-tail-fire"
entity
"sidekick-highres"
joint
"tailEnd"
track
#t
duration
(frame-range 455 468)
)
)
(455 (part-tracker
"group-mountain-lens-res-daxter-tail-fire"
entity
"particleman"
joint
"particleA"
track
#t
duration
(frame-range 455 468)
)
)
(455 (part-tracker
"group-mountain-lens-res-daxter-tail-fire"
entity
"particleman"
joint
"particleB"
track
#t
duration
(frame-range 455 468)
)
)
(487 (part-tracker
"group-mountain-lens-res-daxter-tail-fire"
entity
"sidekick-highres"
joint
"tailEnd"
track
#t
duration
(frame-range 487 513)
)
)
(487 (part-tracker
"group-mountain-lens-res-daxter-tail-fire"
entity
"particleman"
joint
"particleA"
track
#t
duration
(frame-range 487 513)
)
)
(487 (part-tracker
"group-mountain-lens-res-daxter-tail-fire"
entity
"particleman"
joint
"particleB"
track
#t
duration
(frame-range 487 513)
)
)
(533 (part-tracker
"group-mountain-lens-res-daxter-tail-fire"
entity
"sidekick-highres"
joint
"tailEnd"
track
#t
duration
(frame-range 533 558)
)
)
(533 (part-tracker
"group-mountain-lens-res-daxter-tail-fire"
entity
"particleman"
joint
"particleA"
track
#t
duration
(frame-range 533 558)
)
)
(533 (part-tracker
"group-mountain-lens-res-daxter-tail-fire"
entity
"particleman"
joint
"particleB"
track
#t
duration
(frame-range 533 558)
)
)
(616 (part-tracker
"group-mountain-lens-res-daxter-tail-smoke"
entity
"particleman"
joint
"particleA"
track
#t
duration
(frame-range 616 670)
)
)
(665 (fadeout (seconds (new 'static 'bfloat :data 0.166))))
(10000 (when (task-open? "mountain-collection-resolution")
(task-close! "mountain-collection-resolution")
(talker-spawn "pek001")
)
)
)
:cut-list '(141 346 406 446 561)
: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 'mtnext
:art-group "skel-sidekick-highres"
:prefix ""
:draw-frames '((min max))
:scissor-frames '()
:light-index #xa
:shadow-mask #x1e
:shadow-values #x44440
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "jak-highres"
:level 'mtnext
:art-group "skel-jak-highres"
:prefix ""
:draw-frames '((min max))
:scissor-frames '()
:light-index #xa
:shadow-mask #x1e
:shadow-values #x44440
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "mtn-lens"
:level 'mtnext
:art-group "skel-mtn-lens"
:prefix ""
:draw-frames '((min max))
:scissor-frames '()
:light-index #xa
:shadow-mask #x1e
:shadow-values #x44440
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "mtn-lens-base"
:level 'mountain
:art-group "skel-mtn-lens-base"
:prefix ""
:draw-frames '((min max))
:scissor-frames '()
:light-index #xa
:shadow-mask #x1e
:shadow-values #x44440
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "mtn-lens-floor"
:level 'mountain
:art-group "skel-mtn-lens-floor"
:prefix ""
:draw-frames '((min max))
:scissor-frames '()
:light-index #xa
:shadow-mask #x1e
:shadow-values #x44440
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "particleman"
:level 'mtnext
:art-group "skel-particleman"
:prefix ""
:draw-frames '((min max))
:scissor-frames '()
:shadow-flags -1
:shadow-volume-joint #f
)
)
:load-point-obj "mountain-movie"
:end-point-obj (new 'static 'continue-point
:name "mountain-top"
:level #f
:trans (new 'static 'vector :x -3121033.2 :y 542524.6 :z 1180939.5 :w 1.0)
:quat (new 'static 'vector :y -0.6932 :w -0.7207)
:camera-trans (new 'static 'vector :x -3164170.2 :y 562351.7 :z 1163718.2 :w 1.0)
:camera-rot (new 'static 'inline-array vector3s 3
(new 'static 'vector3s :data (new 'static 'array float 3 0.3695 0.0 -0.9292))
(new 'static 'vector3s :data (new 'static 'array float 3 0.1147 0.9923 0.0456))
(new 'static 'vector3s :data (new 'static 'array float 3 0.9221 -0.1234 0.3666))
)
:on-goto '(want-continue "mountain-top")
:vis-nick 'mountain
:want (new 'static 'inline-array level-buffer-state 6
(new 'static 'level-buffer-state :name 'mountain :display? 'display :force-vis? #f :force-inside? #f)
(new 'static 'level-buffer-state :name 'mtnext :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 'mount1 'mount2 'mount3)
)
: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 "mountain-shard-res"
:extra #f
:info #f
:mask-to-clear (process-mask movie enemy platform projectile)
:entity "scene-stage-26"
:art-group "scenecamera"
:anim "mountain-shard-res"
:parts 6
:command-list '((0
(kill "mtn-shard-1")
(task-close! "mountain-shard-resolution")
(fadein (frame-time-30 10))
(part-tracker
"group-mountain-mtn-shard-glow"
entity
"mtn-shard"
joint
"main"
track
#t
duration
(frame-range 0 730)
)
)
(9000 (want-continue "mountain-top"))
(10000 (when (task-open? "mountain-collection-resolution")
(task-close! "mountain-collection-resolution")
(talker-spawn "pek001")
)
)
)
:cut-list '(61 278)
: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 'mtnext
:art-group "skel-sidekick-highres"
:prefix ""
:draw-frames '((min max))
:scissor-frames '()
:light-index #xa
:shadow-mask #x1e
:shadow-values #x44440
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "jak-highres"
:level 'mtnext
:art-group "skel-jak-highres"
:prefix ""
:draw-frames '((min max))
:scissor-frames '()
:light-index #xa
:shadow-mask #x1e
:shadow-values #x44440
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "mtn-shard"
:level 'mountain
:art-group "skel-mtn-shard"
:prefix ""
:draw-frames '((min max))
:scissor-frames '()
:light-index #xa
:shadow-mask #x1e
:shadow-values #x44440
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
)
:load-point-obj "mountain-movie"
:end-point-obj (new 'static 'continue-point
:name "mountain-top"
:level #f
:trans (new 'static 'vector :x -2840613.2 :y 470846.25 :z 88602.625 :w 1.0)
:quat (new 'static 'vector :y -0.8949 :w -0.4462)
:camera-trans (new 'static 'vector :x -2825546.5 :y 491753.88 :z 48836.61 :w 1.0)
:camera-rot (new 'static 'inline-array vector3s 3
(new 'static 'vector3s :data (new 'static 'array float 3 0.9576 0.0 0.2878))
(new 'static 'vector3s :data (new 'static 'array float 3 -0.0547 0.9817 0.1822))
(new 'static 'vector3s :data (new 'static 'array float 3 -0.2826 -0.1903 0.9401))
)
:on-goto '(want-continue "mountain-top")
:vis-nick 'mountain
:want (new 'static 'inline-array level-buffer-state 6
(new 'static 'level-buffer-state :name 'mountain :display? 'display :force-vis? #f :force-inside? #f)
(new 'static 'level-buffer-state :name 'mtnext :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 'mount1 'mount2 'mount3)
)
: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 "mountain-gear-res"
:extra #f
:info #f
:mask-to-clear (process-mask movie enemy platform projectile)
:entity "scene-stage-27"
:art-group "scenecamera"
:anim "mountain-gear-res"
:parts 6
:command-list '((0
(kill "mtn-gear-device-4")
(kill "mtn-gear-device-gear-4")
(task-close! "mountain-gear-resolution")
(fadein (seconds (new 'static 'bfloat :data 0.333)))
(apply
,(lambda :behavior scene-player
()
(set! (-> self user-sound 0)
(sound-play-by-spec (static-sound-spec "mtn-gear-device" :fo-curve 1) (new-sound-id) (the-as vector #t))
)
(none)
)
)
)
(355 (apply ,(lambda :behavior scene-player
()
(let ((sound-set-param (the-as sound-rpc-set-param (get-sound-buffer-entry))))
(set! (-> sound-set-param command) (sound-command set-param))
(set! (-> sound-set-param id) (-> self user-sound 0))
(set! (-> sound-set-param params volume) -4)
(set! (-> sound-set-param auto-time) 48)
(set! (-> sound-set-param auto-from) 2)
(set! (-> sound-set-param params mask) (the-as uint 17))
(-> sound-set-param id)
)
(none)
)
)
)
(394 (part-tracker
"group-mountain-gear-dust-plume"
entity
"mtn-gear-device-collapse"
joint
"d"
track
#t
duration
(frame-range 394 396)
)
)
(401 (part-tracker
"group-mountain-gear-dust-plume"
entity
"mtn-gear-device-collapse"
joint
"m"
track
#t
duration
(frame-range 401 403)
)
)
(405 (part-tracker
"group-mountain-gear-dust-plume"
entity
"mtn-gear-device-collapse"
joint
"aj"
track
#t
duration
(frame-range 405 407)
)
)
(406 (part-tracker
"group-mountain-gear-dust-plume"
entity
"mtn-gear-device-collapse"
joint
"g"
track
#t
duration
(frame-range 406 408)
)
)
(408
(part-tracker
"group-mountain-gear-dust-plume"
entity
"mtn-gear-device-collapse"
joint
"k"
track
#t
duration
(frame-range 408 410)
)
(part-tracker
"group-mountain-gear-dust-plume"
entity
"mtn-gear-device-collapse"
joint
"l"
track
#t
duration
(frame-range 408 410)
)
)
(409 (part-tracker
"group-mountain-gear-dust-plume"
entity
"mtn-gear-device-collapse"
joint
"j"
track
#t
duration
(frame-range 409 411)
)
)
(411 (part-tracker
"group-mountain-gear-dust-plume"
entity
"mtn-gear-device-collapse"
joint
"e"
track
#t
duration
(frame-range 411 413)
)
)
(413
(part-tracker
"group-mountain-gear-dust-plume"
entity
"mtn-gear-device-collapse"
joint
"h"
track
#t
duration
(frame-range 413 415)
)
(part-tracker
"group-mountain-gear-dust-plume"
entity
"mtn-gear-device-collapse"
joint
"i"
track
#t
duration
(frame-range 413 415)
)
)
(422 (part-tracker
"group-mountain-gear-dust-plume"
entity
"mtn-gear-device-collapse"
joint
"f"
track
#t
duration
(frame-range 422 424)
)
)
(423
(part-tracker
"group-mountain-gear-dust-plume"
entity
"mtn-gear-device-collapse"
joint
"ai"
track
#t
duration
(frame-range 423 425)
)
(part-tracker
"group-mountain-gear-dust-plume"
entity
"mtn-gear-device-collapse"
joint
"ad"
track
#t
duration
(frame-range 423 425)
)
)
(429 (part-tracker
"group-mountain-gear-dust-plume"
entity
"mtn-gear-device-collapse"
joint
"u"
track
#t
duration
(frame-range 429 431)
)
)
(435 (part-tracker
"group-mountain-gear-dust-plume"
entity
"mtn-gear-device-collapse"
joint
"aa"
track
#t
duration
(frame-range 435 437)
)
)
(442 (part-tracker
"group-mountain-gear-dust-plume"
entity
"mtn-gear-device-collapse"
joint
"n"
track
#t
duration
(frame-range 442 444)
)
)
(447
(part-tracker
"group-mountain-gear-dust-plume"
entity
"mtn-gear-device-collapse"
joint
"z"
track
#t
duration
(frame-range 447 449)
)
(part-tracker
"group-mountain-gear-dust-plume"
entity
"mtn-gear-device-collapse"
joint
"zz"
track
#t
duration
(frame-range 447 449)
)
)
(449 (part-tracker
"group-mountain-gear-dust-plume"
entity
"mtn-gear-device-collapse"
joint
"t"
track
#t
duration
(frame-range 449 451)
)
)
(451
(part-tracker
"group-mountain-gear-dust-plume"
entity
"mtn-gear-device-collapse"
joint
"af"
track
#t
duration
(frame-range 451 453)
)
(part-tracker
"group-mountain-gear-dust-plume"
entity
"mtn-gear-device-collapse"
joint
"ag"
track
#t
duration
(frame-range 451 453)
)
)
(452
(part-tracker
"group-mountain-gear-dust-plume"
entity
"mtn-gear-device-collapse"
joint
"ah"
track
#t
duration
(frame-range 452 454)
)
(part-tracker
"group-mountain-gear-dust-plume"
entity
"mtn-gear-device-collapse"
joint
"s"
track
#t
duration
(frame-range 452 454)
)
(part-tracker
"group-mountain-gear-dust-plume"
entity
"mtn-gear-device-collapse"
joint
"ae"
track
#t
duration
(frame-range 452 454)
)
)
(460 (part-tracker
"group-mountain-gear-dust-plume"
entity
"mtn-gear-device-collapse"
joint
"v"
track
#t
duration
(frame-range 460 462)
)
)
(462 (part-tracker
"group-mountain-gear-dust-plume"
entity
"mtn-gear-device-collapse"
joint
"w"
track
#t
duration
(frame-range 462 464)
)
)
(469 (part-tracker
"group-mountain-gear-dust-plume"
entity
"mtn-gear-device-collapse"
joint
"y"
track
#t
duration
(frame-range 469 471)
)
)
(501 (part-tracker
"group-mountain-gear-dust-plume"
entity
"mtn-gear-device-collapse"
joint
"x"
track
#t
duration
(frame-range 501 503)
)
)
(657 (fadeout (seconds (new 'static 'bfloat :data 0.1))))
(9000 (want-continue "mountain-top"))
(10000 (when (task-open? "mountain-collection-resolution")
(task-close! "mountain-collection-resolution")
(talker-spawn "pek001")
)
)
)
:cut-list '(91 141 191 281 333 441 511)
: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 'mtnext
:art-group "skel-sidekick-highres"
:prefix ""
:draw-frames '((min max))
:scissor-frames '()
:shadow-mask #x1a
:shadow-values #x580c0
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "jak-highres"
:level 'mtnext
:art-group "skel-jak-highres"
:prefix ""
:draw-frames '((min max))
:scissor-frames '()
:shadow-mask #x1a
:shadow-values #x580c0
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "mtn-gear-device-collapse"
:level 'mtnext
:art-group "skel-mtn-gear-device-collapse"
:prefix "collapse-"
:draw-frames '((min max))
:scissor-frames '()
:shadow-mask #x1a
:shadow-values #x580c0
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "mtn-gear-device-gear"
:level 'mtnext
:art-group "skel-mtn-gear-device-gear"
:prefix ""
:draw-frames '((min max))
:scissor-frames '()
:shadow-mask #x1a
:shadow-values #x580c0
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
)
:load-point-obj "mountain-movie"
:end-point-obj #f
: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 "canyon-insert-items-intro"
:extra #f
:info #f
:mask-to-clear (process-mask movie enemy platform projectile)
:entity "scene-stage-88"
:art-group "scenecamera"
:anim "canyon-insert-items-intro"
:parts 3
:command-list '((60 (kill "mtn-iris-door-2") (fadein (frame-time-30 10)) (part-tracker
"group-canyon-seal-of-mar-glow"
entity
"seal-of-mar"
joint
"base"
track
#t
duration
(frame-range 60 390)
)
)
(326 (fadeout (frame-time-30 10)))
(10000 (task-close! "canyon-insert-items-door"))
)
:cut-list '(113 209 264)
: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 'mtnext
:art-group "skel-sidekick-highres"
:prefix ""
:draw-frames '((min max))
:scissor-frames '()
:light-index #xa
:shadow-mask #x1e
:shadow-values #x44440
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "jak-highres"
:level 'mtnext
:art-group "skel-jak-highres"
:prefix ""
:draw-frames '((min max))
:scissor-frames '()
:light-index #xa
:shadow-mask #x1e
:shadow-values #x44440
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "seal-of-mar"
:level 'mtnext
:art-group "skel-seal-of-mar"
:prefix ""
:draw-frames '((min max))
:scissor-frames '()
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "mtn-iris-door"
:level 'mtnext
:art-group "skel-mtn-iris-door"
:prefix ""
:draw-frames '((min max))
:scissor-frames '()
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
)
:load-point-obj "mountain-door"
:end-point-obj "mountain-door"
:borrow '()
:sfx-volume -1.0
:ambient-volume -1.0
:music-volume -1.0
:blackout-end #t
:peaceful #t
:music-delay 1500.0
:save #t
)
)
(deftype mtn-lens (process-drawable)
()
:heap-base #x50
:method-count-assert 21
:size-assert #xc8
:flag-assert #x15005000c8
(:methods
(idle () _type_ :state 20)
)
)
(defstate idle (mtn-lens)
:virtual #t
:code (the-as (function none :behavior mtn-lens) sleep-code)
:post (the-as (function none :behavior mtn-lens) ja-post)
)
;; WARN: Return type mismatch object vs none.
(defmethod init-from-entity! mtn-lens ((obj mtn-lens) (entity entity-actor))
"Typically the method that does the initial setup on the process, potentially using the [[entity-actor]] provided as part of that.
This commonly includes things such as:
- stack size
- collision information
- loading the skeleton group / bones
- sounds"
(set! (-> obj root) (new 'process 'trsqv))
(process-drawable-from-entity! obj entity)
(logclear! (-> obj mask) (process-mask actor-pause))
(initialize-skeleton
obj
(the-as skeleton-group (art-group-get-by-name *level* "skel-mtn-lens" (the-as (pointer uint32) #f)))
(the-as pair 0)
)
(go (method-of-object obj idle))
(none)
)
(deftype mtn-lens-base (process-drawable)
()
:heap-base #x50
:method-count-assert 21
:size-assert #xc8
:flag-assert #x15005000c8
(:methods
(idle () _type_ :state 20)
)
)
(defstate idle (mtn-lens-base)
:virtual #t
:code (the-as (function none :behavior mtn-lens-base) sleep-code)
:post (the-as (function none :behavior mtn-lens-base) ja-post)
)
;; WARN: Return type mismatch object vs none.
(defmethod init-from-entity! mtn-lens-base ((obj mtn-lens-base) (entity entity-actor))
"Typically the method that does the initial setup on the process, potentially using the [[entity-actor]] provided as part of that.
This commonly includes things such as:
- stack size
- collision information
- loading the skeleton group / bones
- sounds"
(set! (-> obj root) (new 'process 'trsqv))
(process-drawable-from-entity! obj entity)
(logclear! (-> obj mask) (process-mask actor-pause))
(initialize-skeleton
obj
(the-as skeleton-group (art-group-get-by-name *level* "skel-mtn-lens-base" (the-as (pointer uint32) #f)))
(the-as pair 0)
)
(when (task-complete? *game-info* (game-task mountain-lens))
)
(go (method-of-object obj idle))
(none)
)
(deftype mtn-lens-floor (process-drawable)
()
:heap-base #x50
:method-count-assert 22
:size-assert #xc8
:flag-assert #x16005000c8
(:methods
(idle () _type_ :state 20)
(idle-no-beam () _type_ :state 21)
)
)
(defstate idle (mtn-lens-floor)
:virtual #t
:code (the-as (function none :behavior mtn-lens-floor) transform-and-sleep-code)
:post (behavior ()
(spawn-with-cspace (-> self part) (-> self node-list data 3))
(none)
)
)
(defstate idle-no-beam (mtn-lens-floor)
:virtual #t
:code (the-as (function none :behavior mtn-lens-floor) transform-and-sleep-code)
)
;; WARN: Return type mismatch object vs none.
(defmethod init-from-entity! mtn-lens-floor ((obj mtn-lens-floor) (entity entity-actor))
"Typically the method that does the initial setup on the process, potentially using the [[entity-actor]] provided as part of that.
This commonly includes things such as:
- stack size
- collision information
- loading the skeleton group / bones
- sounds"
(let ((cshape (new 'process 'collide-shape obj (collide-list-enum usually-hit-by-player))))
(let ((prim-mesh (new 'process 'collide-shape-prim-mesh cshape (the-as uint 0) (the-as uint 0))))
(set! (-> prim-mesh prim-core collide-as) (collide-spec obstacle))
(set! (-> prim-mesh prim-core collide-with) (collide-spec jak bot player-list))
(set! (-> prim-mesh prim-core action) (collide-action solid))
(set! (-> prim-mesh transform-index) 3)
(set-vector! (-> prim-mesh local-sphere) 0.0 -4096.0 0.0 26624.0)
(set! (-> cshape total-prims) (the-as uint 1))
(set! (-> cshape root-prim) prim-mesh)
)
(set! (-> cshape nav-radius) (* 0.75 (-> cshape root-prim local-sphere w)))
(let ((root-prim (-> cshape root-prim)))
(set! (-> cshape backup-collide-as) (-> root-prim prim-core collide-as))
(set! (-> cshape backup-collide-with) (-> root-prim prim-core collide-with))
)
(set! (-> obj root) cshape)
)
(process-drawable-from-entity! obj entity)
(logclear! (-> obj mask) (process-mask actor-pause))
(initialize-skeleton
obj
(the-as skeleton-group (art-group-get-by-name *level* "skel-mtn-lens-floor" (the-as (pointer uint32) #f)))
(the-as pair 0)
)
(if (task-complete? *game-info* (game-task mountain-lens))
(go (method-of-object obj idle-no-beam))
)
(set! (-> obj part) (create-launch-control (-> *part-group-id-table* 353) obj))
(go (method-of-object obj idle))
(none)
)
(deftype mtn-shard (process-drawable)
()
:heap-base #x50
:method-count-assert 21
:size-assert #xc8
:flag-assert #x15005000c8
(:methods
(idle () _type_ :state 20)
)
)
(defstate idle (mtn-shard)
:virtual #t
:code (the-as (function none :behavior mtn-shard) sleep-code)
:post (the-as (function none :behavior mtn-shard) ja-post)
)
;; WARN: Return type mismatch object vs none.
(defmethod init-from-entity! mtn-shard ((obj mtn-shard) (entity entity-actor))
"Typically the method that does the initial setup on the process, potentially using the [[entity-actor]] provided as part of that.
This commonly includes things such as:
- stack size
- collision information
- loading the skeleton group / bones
- sounds"
(set! (-> obj root) (new 'process 'trsqv))
(process-drawable-from-entity! obj entity)
(logclear! (-> obj mask) (process-mask actor-pause))
(initialize-skeleton
obj
(the-as skeleton-group (art-group-get-by-name *level* "skel-mtn-shard" (the-as (pointer uint32) #f)))
(the-as pair 0)
)
(go (method-of-object obj idle))
(none)
)
(deftype mtn-step-plat-rocks-a (mtn-plat-buried-rocks)
()
:heap-base #x50
:method-count-assert 22
:size-assert #xc8
:flag-assert #x16005000c8
)
;; WARN: Return type mismatch object vs none.
(defmethod init-from-entity! mtn-step-plat-rocks-a ((obj mtn-step-plat-rocks-a) (entity entity-actor))
"Typically the method that does the initial setup on the process, potentially using the [[entity-actor]] provided as part of that.
This commonly includes things such as:
- stack size
- collision information
- loading the skeleton group / bones
- sounds"
(local-vars (sv-16 collide-shape-prim-mesh) (sv-32 symbol) (sv-48 type) (sv-64 collide-shape))
(let ((cshape (new 'process 'collide-shape obj (collide-list-enum hit-by-player))))
(let ((prim-group (new 'process 'collide-shape-prim-group cshape (the-as uint 3) 0)))
(set! (-> cshape total-prims) (the-as uint 4))
(set! (-> prim-group prim-core collide-as) (collide-spec obstacle pusher))
(set! (-> prim-group prim-core collide-with) (collide-spec jak player-list))
(set! (-> prim-group prim-core action) (collide-action solid))
(set! (-> prim-group transform-index) 3)
(set-vector! (-> prim-group local-sphere) 0.0 12288.0 0.0 20480.0)
(set! (-> cshape root-prim) prim-group)
(pusher-init cshape)
(let* ((s2-0 '((0 4 16384) (1 7 16384) (2 12 16384)))
(s1-0 (car s2-0))
)
(while (not (null? s2-0))
(let ((prim-mesh (method-of-type collide-shape-prim-mesh new)))
(set! sv-32 'process)
(set! sv-48 collide-shape-prim-mesh)
(set! sv-64 cshape)
(let ((a3-2 (command-get-int (car s1-0) 0))
(t0-1 0)
)
(set! sv-16 (prim-mesh sv-32 sv-48 sv-64 (the-as uint a3-2) (the-as uint t0-1)))
)
)
(let ((_prim-mesh sv-16))
(set! (-> _prim-mesh prim-core collide-as) (-> prim-group prim-core collide-as))
(set! (-> _prim-mesh prim-core collide-with) (-> prim-group prim-core collide-with))
(set! (-> _prim-mesh prim-core action) (-> prim-group prim-core action))
(set! (-> _prim-mesh transform-index) (command-get-int (car (cdr s1-0)) 0))
)
(set-vector! (-> sv-16 local-sphere) 0.0 0.0 0.0 (command-get-float (car (cdr (cdr s1-0))) 0.0))
(set! s2-0 (cdr s2-0))
(set! s1-0 (car s2-0))
)
)
)
(set! (-> cshape nav-radius) (* 0.75 (-> cshape root-prim local-sphere w)))
(let ((root-prim (-> cshape root-prim)))
(set! (-> cshape backup-collide-as) (-> root-prim prim-core collide-as))
(set! (-> cshape backup-collide-with) (-> root-prim prim-core collide-with))
)
(set! (-> obj root) cshape)
)
(process-drawable-from-entity! obj entity)
(initialize-skeleton
obj
(the-as
skeleton-group
(art-group-get-by-name *level* "skel-mtn-step-plat-rocks-a" (the-as (pointer uint32) #f))
)
(the-as pair 0)
)
(set-vector! (-> obj draw bounds) 0.0 12288.0 0.0 20480.0)
(set! (-> obj draw lod-set lod 0 dist) 163840.0)
(cond
((and (-> obj entity) (logtest? (-> obj entity extra perm status) (entity-perm-status subtask-complete)))
(go (method-of-object obj done) #t)
)
(else
(add-process *gui-control* obj (gui-channel art-load) (gui-action queue) "mtn-step-plat-rocks-a" -99.0 0)
(go (method-of-object obj idle))
)
)
(none)
)
(deftype mtn-step-plat-rocks-b (mtn-plat-buried-rocks)
()
:heap-base #x50
:method-count-assert 22
:size-assert #xc8
:flag-assert #x16005000c8
)
;; WARN: Return type mismatch object vs none.
(defmethod init-from-entity! mtn-step-plat-rocks-b ((obj mtn-step-plat-rocks-b) (entity entity-actor))
"Typically the method that does the initial setup on the process, potentially using the [[entity-actor]] provided as part of that.
This commonly includes things such as:
- stack size
- collision information
- loading the skeleton group / bones
- sounds"
(local-vars (sv-16 collide-shape-prim-mesh) (sv-32 symbol) (sv-48 type) (sv-64 collide-shape))
(let ((cshape (new 'process 'collide-shape obj (collide-list-enum hit-by-player))))
(let ((prim-group (new 'process 'collide-shape-prim-group cshape (the-as uint 17) 0)))
(set! (-> cshape total-prims) (the-as uint 18))
(set! (-> prim-group prim-core collide-as) (collide-spec obstacle pusher))
(set! (-> prim-group prim-core collide-with) (collide-spec jak player-list))
(set! (-> prim-group prim-core action) (collide-action solid))
(set! (-> prim-group transform-index) 3)
(set-vector! (-> prim-group local-sphere) 0.0 -12288.0 0.0 40960.0)
(set! (-> cshape root-prim) prim-group)
(pusher-init cshape)
(let* ((s2-0 '((0 6 16384)
(1 7 16384)
(2 8 16384)
(3 11 16384)
(4 15 16384)
(5 18 16384)
(6 19 16384)
(7 20 16384)
(8 21 16384)
(9 22 16384)
(10 23 16384)
(11 27 16384)
(12 28 16384)
(13 40 16384)
(14 42 16384)
(15 43 16384)
(16 48 16384)
)
)
(s1-0 (car s2-0))
)
(while (not (null? s2-0))
(let ((prim-mesh (method-of-type collide-shape-prim-mesh new)))
(set! sv-32 'process)
(set! sv-48 collide-shape-prim-mesh)
(set! sv-64 cshape)
(let ((a3-2 (command-get-int (car s1-0) 0))
(t0-1 0)
)
(set! sv-16 (prim-mesh sv-32 sv-48 sv-64 (the-as uint a3-2) (the-as uint t0-1)))
)
)
(let ((_prim-mesh sv-16))
(set! (-> _prim-mesh prim-core collide-as) (-> prim-group prim-core collide-as))
(set! (-> _prim-mesh prim-core collide-with) (-> prim-group prim-core collide-with))
(set! (-> _prim-mesh prim-core action) (-> prim-group prim-core action))
(set! (-> _prim-mesh transform-index) (command-get-int (car (cdr s1-0)) 0))
)
(set-vector! (-> sv-16 local-sphere) 0.0 0.0 0.0 (command-get-float (car (cdr (cdr s1-0))) 0.0))
(set! s2-0 (cdr s2-0))
(set! s1-0 (car s2-0))
)
)
)
(set! (-> cshape nav-radius) (* 0.75 (-> cshape root-prim local-sphere w)))
(let ((root-prim (-> cshape root-prim)))
(set! (-> cshape backup-collide-as) (-> root-prim prim-core collide-as))
(set! (-> cshape backup-collide-with) (-> root-prim prim-core collide-with))
)
(set! (-> obj root) cshape)
)
(process-drawable-from-entity! obj entity)
(initialize-skeleton
obj
(the-as
skeleton-group
(art-group-get-by-name *level* "skel-mtn-step-plat-rocks-b" (the-as (pointer uint32) #f))
)
(the-as pair 0)
)
(set-vector! (-> obj draw bounds) 0.0 -12288.0 0.0 40960.0)
(set! (-> obj draw lod-set lod 0 dist) 163840.0)
(cond
((and (-> obj entity) (logtest? (-> obj entity extra perm status) (entity-perm-status subtask-complete)))
(go (method-of-object obj done) #t)
)
(else
(add-process *gui-control* obj (gui-channel art-load) (gui-action queue) "mtn-step-plat-rocks-b" -99.0 0)
(go (method-of-object obj idle))
)
)
(none)
)
(deftype mtn-step-plat-rocks-c (mtn-plat-buried-rocks)
()
:heap-base #x50
:method-count-assert 22
:size-assert #xc8
:flag-assert #x16005000c8
)
;; WARN: Return type mismatch object vs none.
(defmethod init-from-entity! mtn-step-plat-rocks-c ((obj mtn-step-plat-rocks-c) (entity entity-actor))
"Typically the method that does the initial setup on the process, potentially using the [[entity-actor]] provided as part of that.
This commonly includes things such as:
- stack size
- collision information
- loading the skeleton group / bones
- sounds"
(local-vars (sv-16 collide-shape-prim-mesh) (sv-32 symbol) (sv-48 type) (sv-64 collide-shape))
(let ((cshape (new 'process 'collide-shape obj (collide-list-enum hit-by-player))))
(let ((prim-group (new 'process 'collide-shape-prim-group cshape (the-as uint 24) 0)))
(set! (-> cshape total-prims) (the-as uint 25))
(set! (-> prim-group prim-core collide-as) (collide-spec obstacle pusher))
(set! (-> prim-group prim-core collide-with) (collide-spec jak player-list))
(set! (-> prim-group prim-core action) (collide-action solid))
(set! (-> prim-group transform-index) 3)
(set-vector! (-> prim-group local-sphere) 0.0 0.0 32768.0 57344.0)
(set! (-> cshape root-prim) prim-group)
(pusher-init cshape)
(let* ((s2-0 '((0 4 16384)
(1 6 16384)
(2 9 16384)
(3 11 16384)
(4 17 16384)
(5 19 16384)
(6 20 16384)
(7 28 16384)
(8 29 16384)
(9 30 16384)
(10 31 16384)
(11 32 16384)
(12 34 16384)
(13 35 16384)
(14 37 16384)
(15 38 16384)
(16 41 16384)
(17 42 16384)
(18 43 16384)
(19 44 16384)
(20 45 16384)
(21 49 16384)
(22 51 16384)
(23 53 16384)
)
)
(s1-0 (car s2-0))
)
(while (not (null? s2-0))
(let ((prim-mesh (method-of-type collide-shape-prim-mesh new)))
(set! sv-32 'process)
(set! sv-48 collide-shape-prim-mesh)
(set! sv-64 cshape)
(let ((a3-2 (command-get-int (car s1-0) 0))
(t0-1 0)
)
(set! sv-16 (prim-mesh sv-32 sv-48 sv-64 (the-as uint a3-2) (the-as uint t0-1)))
)
)
(let ((_prim-mesh sv-16))
(set! (-> _prim-mesh prim-core collide-as) (-> prim-group prim-core collide-as))
(set! (-> _prim-mesh prim-core collide-with) (-> prim-group prim-core collide-with))
(set! (-> _prim-mesh prim-core action) (-> prim-group prim-core action))
(set! (-> _prim-mesh transform-index) (command-get-int (car (cdr s1-0)) 0))
)
(set-vector! (-> sv-16 local-sphere) 0.0 0.0 0.0 (command-get-float (car (cdr (cdr s1-0))) 0.0))
(set! s2-0 (cdr s2-0))
(set! s1-0 (car s2-0))
)
)
)
(set! (-> cshape nav-radius) (* 0.75 (-> cshape root-prim local-sphere w)))
(let ((root-prim (-> cshape root-prim)))
(set! (-> cshape backup-collide-as) (-> root-prim prim-core collide-as))
(set! (-> cshape backup-collide-with) (-> root-prim prim-core collide-with))
)
(set! (-> obj root) cshape)
)
(process-drawable-from-entity! obj entity)
(initialize-skeleton
obj
(the-as
skeleton-group
(art-group-get-by-name *level* "skel-mtn-step-plat-rocks-c" (the-as (pointer uint32) #f))
)
(the-as pair 0)
)
(set-vector! (-> obj draw bounds) 0.0 0.0 32768.0 57344.0)
(set! (-> obj draw lod-set lod 0 dist) 163840.0)
(cond
((and (-> obj entity) (logtest? (-> obj entity extra perm status) (entity-perm-status subtask-complete)))
(go (method-of-object obj done) #t)
)
(else
(add-process *gui-control* obj (gui-channel art-load) (gui-action queue) "mtn-step-plat-rocks-c" -99.0 0)
(go (method-of-object obj idle))
)
)
(none)
)