mirror of
https://github.com/open-goal/jak-project
synced 2026-08-29 09:10:27 -04:00
4b8b2abbed
Adds the `pckernel` system to Jak 2, allowing you to do the PC-specific things that Jak 1 lets you do like change game resolution, etc. In other to reduce the amount of code duplication for something that we're gonna be changing a lot over time, I split it into a few more code files. In this new system, `pckernel-h.gc`, `pckernel-common.gc` (previously `pckernel.gc`) and `pc-debug-common.gc` are the files that should be shared across all games (I hacked the Jak 2 project to pull these files from the Jak 1 folder), while `pckernel-impl.gc`, `pckernel.gc` and `pc-debug-methods.gc` are their respective game-specific counterparts that should be loaded after. I'm not fully happy with this, I think it's slightly messy, but it cleanly separates code that should be game-specific and not accidentally copied around and code that should be the same for all games anyway.
2500 lines
91 KiB
Common Lisp
Vendored
Generated
2500 lines
91 KiB
Common Lisp
Vendored
Generated
;;-*-Lisp-*-
|
|
(in-package goal)
|
|
|
|
;; failed to figure out what this is:
|
|
(if (not (nmember "common" *kernel-packages*))
|
|
(set! *kernel-packages* (cons "common" *kernel-packages*))
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpartgroup group-warpgate
|
|
:id 130
|
|
:duration (seconds 0.267)
|
|
:flags (use-local-clock unk-6)
|
|
:bounds (static-bspherem 0 0 0 8)
|
|
:rotate ((degrees 4) (degrees 0) (degrees 0))
|
|
:parts ((sp-item 586 :flags (is-3d launch-asap bit7)) (sp-item 587 :flags (launch-asap)) (sp-item 588 :flags (bit7)))
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 586
|
|
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x13 :page #xc))
|
|
(sp-flt spt-num 1.0)
|
|
(sp-flt spt-scale-x (meters 4.75))
|
|
(sp-copy-from-other spt-scale-y -4)
|
|
(sp-flt spt-r 255.0)
|
|
(sp-flt spt-g 255.0)
|
|
(sp-flt spt-b 255.0)
|
|
(sp-flt spt-a 196.0)
|
|
(sp-flt spt-fade-a -3.1875)
|
|
(sp-int spt-timer 80)
|
|
(sp-cpuinfo-flags sp-cpuinfo-flag-2)
|
|
(sp-flt spt-rotate-y (degrees 0.0))
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 587
|
|
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #xbb :page #xc))
|
|
(sp-flt spt-num 1.0)
|
|
(sp-flt spt-scale-x (meters 14))
|
|
(sp-flt spt-rot-x 2048.0)
|
|
(sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 3600.0) 1.0)
|
|
(sp-copy-from-other spt-scale-y -4)
|
|
(sp-flt spt-r 255.0)
|
|
(sp-flt spt-g 255.0)
|
|
(sp-flt spt-b 255.0)
|
|
(sp-flt spt-a 48.0)
|
|
(sp-flt spt-fade-a -0.8)
|
|
(sp-int spt-timer 80)
|
|
(sp-cpuinfo-flags glow)
|
|
(sp-flt spt-userdata 4096.0)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 588
|
|
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #xc9 :page #xc))
|
|
(sp-flt spt-num 16.0)
|
|
(sp-rnd-flt spt-x (meters 0) (meters 2) 1.0)
|
|
(sp-rnd-flt spt-scale-x (meters 0.1) (meters 0.1) 1.0)
|
|
(sp-copy-from-other spt-scale-y -4)
|
|
(sp-flt spt-r 255.0)
|
|
(sp-flt spt-g 255.0)
|
|
(sp-flt spt-b 255.0)
|
|
(sp-flt spt-a 255.0)
|
|
(sp-flt spt-scalevel-x (meters -0.0025))
|
|
(sp-copy-from-other spt-scalevel-y -4)
|
|
(sp-int spt-timer 80)
|
|
(sp-cpuinfo-flags sp-cpuinfo-flag-0 sp-cpuinfo-flag-3)
|
|
(sp-rnd-flt spt-rotate-y (degrees 0.0) (degrees 3600.0) 1.0)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpartgroup group-airtrain-dust-plume :id 131 :bounds (static-bspherem 0 0 0 15) :parts ((sp-item 589)))
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 589
|
|
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :page #xc))
|
|
(sp-rnd-flt spt-num 1.0 1.0 1.0)
|
|
(sp-rnd-flt spt-x (meters 0) (meters 10) 1.0)
|
|
(sp-rnd-flt spt-scale-x (meters 1) (meters 1) 1.0)
|
|
(sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 3600.0) 1.0)
|
|
(sp-rnd-flt spt-scale-y (meters 1) (meters 1) 1.0)
|
|
(sp-flt spt-r 128.0)
|
|
(sp-rnd-flt spt-g 106.0 16.0 1.0)
|
|
(sp-rnd-flt spt-b 64.0 32.0 1.0)
|
|
(sp-rnd-flt spt-a 16.0 32.0 1.0)
|
|
(sp-rnd-flt spt-vel-x (meters 0.033333335) (meters 0.033333335) 1.0)
|
|
(sp-rnd-flt spt-scalevel-x (meters 0.033333335) (meters 0.006666667) 1.0)
|
|
(sp-rnd-flt spt-rotvel-z (degrees -0.3) (degrees 0.6) 1.0)
|
|
(sp-copy-from-other spt-scalevel-y -4)
|
|
(sp-rnd-flt spt-fade-a -0.04 -0.08 1.0)
|
|
(sp-flt spt-accel-y 1.3653333)
|
|
(sp-rnd-flt spt-friction 0.95 0.03 1.0)
|
|
(sp-int spt-timer 1300)
|
|
(sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-12)
|
|
(sp-rnd-flt spt-rotate-y (degrees 0.0) (degrees 3600.0) 1.0)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpartgroup group-airtrain-dust-hover :id 132 :bounds (static-bspherem 0 0 0 15) :parts ((sp-item 590)))
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 590
|
|
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :page #xc))
|
|
(sp-flt spt-num 1.0)
|
|
(sp-rnd-flt spt-x (meters 0) (meters 5) 1.0)
|
|
(sp-rnd-flt spt-scale-x (meters 1) (meters 1) 1.0)
|
|
(sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 3600.0) 1.0)
|
|
(sp-rnd-flt spt-scale-y (meters 1) (meters 1) 1.0)
|
|
(sp-flt spt-r 128.0)
|
|
(sp-rnd-flt spt-g 106.0 16.0 1.0)
|
|
(sp-rnd-flt spt-b 64.0 32.0 1.0)
|
|
(sp-rnd-flt spt-a 16.0 16.0 1.0)
|
|
(sp-rnd-flt spt-vel-x (meters 0.033333335) (meters 0.033333335) 1.0)
|
|
(sp-rnd-flt spt-scalevel-x (meters 0.016666668) (meters 0.006666667) 1.0)
|
|
(sp-rnd-flt spt-rotvel-z (degrees -0.3) (degrees 0.6) 1.0)
|
|
(sp-copy-from-other spt-scalevel-y -4)
|
|
(sp-rnd-flt spt-fade-a -0.04 -0.08 1.0)
|
|
(sp-flt spt-accel-y 1.3653333)
|
|
(sp-rnd-flt spt-friction 0.95 0.03 1.0)
|
|
(sp-int spt-timer 1300)
|
|
(sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-12)
|
|
(sp-rnd-flt spt-rotate-y (degrees 0.0) (degrees 3600.0) 1.0)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpartgroup group-airtrain-thruster
|
|
:id 133
|
|
:linger-duration (seconds 2)
|
|
:flags (unk-4 unk-6)
|
|
:bounds (static-bspherem 0 0 0 12)
|
|
:rotate ((degrees 8) (degrees 0) (degrees 0))
|
|
:parts ((sp-item 591 :flags (bit6 bit7))
|
|
(sp-item 592 :flags (bit6 bit7))
|
|
(sp-item 593 :flags (bit7))
|
|
(sp-item 594 :flags (bit7))
|
|
(sp-item 595 :flags (bit7))
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpartgroup group-airtrain-thruster-off
|
|
:id 134
|
|
:linger-duration (seconds 2)
|
|
:flags (unk-4 unk-6)
|
|
:bounds (static-bspherem 0 0 0 12)
|
|
:rotate ((degrees 8) (degrees 0) (degrees 0))
|
|
:parts ((sp-item 595 :fade-after (meters 120) :falloff-to (meters 90) :flags (bit7))
|
|
(sp-item 596 :fade-after (meters 120) :falloff-to (meters 90) :flags (bit7))
|
|
(sp-item 597 :flags (bit6 bit7))
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 591
|
|
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #xbb :page #xc))
|
|
(sp-flt spt-num 1.0)
|
|
(sp-flt spt-y (meters 0.1))
|
|
(sp-rnd-flt spt-scale-x (meters 1) (meters 0.4) 1.0)
|
|
(sp-flt spt-rot-x 409.6)
|
|
(sp-copy-from-other spt-scale-y -4)
|
|
(sp-flt spt-r 255.0)
|
|
(sp-rnd-flt spt-g 64.0 128.0 1.0)
|
|
(sp-flt spt-b 0.0)
|
|
(sp-rnd-flt spt-a 64.0 8.0 1.0)
|
|
(sp-int spt-timer 5)
|
|
(sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow)
|
|
(sp-flt spt-userdata 409.6)
|
|
(sp-flt spt-rotate-y (degrees 0.0))
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 592
|
|
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #xca :page #xc))
|
|
(sp-flt spt-num 1.0)
|
|
(sp-flt spt-y (meters 0.1))
|
|
(sp-rnd-flt spt-scale-x (meters 4.8) (meters 0.6) 1.0)
|
|
(sp-flt spt-rot-x 409.6)
|
|
(sp-copy-from-other spt-scale-y -4)
|
|
(sp-flt spt-r 255.0)
|
|
(sp-rnd-flt spt-g 64.0 128.0 1.0)
|
|
(sp-flt spt-b 0.0)
|
|
(sp-rnd-flt spt-a 16.0 2.0 1.0)
|
|
(sp-int spt-timer 5)
|
|
(sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow)
|
|
(sp-flt spt-userdata 409.6)
|
|
(sp-flt spt-rotate-y (degrees 0.0))
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 593
|
|
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :page #xc))
|
|
(sp-rnd-flt spt-num 1.0 2.0 1.0)
|
|
(sp-rnd-flt spt-scale-x (meters 1) (meters 1) 1.0)
|
|
(sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 3600.0) 1.0)
|
|
(sp-rnd-flt spt-scale-y (meters 1) (meters 1) 1.0)
|
|
(sp-flt spt-r 196.0)
|
|
(sp-rnd-flt spt-g 128.0 64.0 1.0)
|
|
(sp-copy-from-other spt-b -1)
|
|
(sp-rnd-flt spt-a 16.0 16.0 1.0)
|
|
(sp-rnd-flt spt-vel-x (meters -0.006666667) (meters 0.013333334) 1.0)
|
|
(sp-rnd-flt spt-vel-y (meters -0.05) (meters -0.1) 1.0)
|
|
(sp-rnd-flt spt-vel-z (meters -0.006666667) (meters 0.013333334) 1.0)
|
|
(sp-rnd-flt spt-scalevel-x (meters 0.053333335) (meters 0.053333335) 1.0)
|
|
(sp-rnd-flt spt-rotvel-z (degrees -1.2) (degrees 2.4) 1.0)
|
|
(sp-copy-from-other spt-scalevel-y -4)
|
|
(sp-flt spt-fade-r 0.0)
|
|
(sp-flt spt-fade-g 0.0)
|
|
(sp-flt spt-fade-b 0.0)
|
|
(sp-rnd-flt spt-fade-a -0.21333334 -0.42666668 1.0)
|
|
(sp-rnd-flt spt-accel-y 0.68266666 2.048 1.0)
|
|
(sp-rnd-flt spt-friction 0.94 0.04 1.0)
|
|
(sp-int spt-timer 600)
|
|
(sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-12 sp-cpuinfo-flag-14)
|
|
(sp-flt spt-rotate-y (degrees 0.0))
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 596
|
|
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :page #xc))
|
|
(sp-rnd-flt spt-num 1.0 2.0 1.0)
|
|
(sp-rnd-flt spt-scale-x (meters 1) (meters 1) 1.0)
|
|
(sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 3600.0) 1.0)
|
|
(sp-rnd-flt spt-scale-y (meters 1) (meters 1) 1.0)
|
|
(sp-flt spt-r 196.0)
|
|
(sp-rnd-flt spt-g 128.0 64.0 1.0)
|
|
(sp-copy-from-other spt-b -1)
|
|
(sp-rnd-flt spt-a 10.0 4.0 1.0)
|
|
(sp-rnd-flt spt-vel-x (meters -0.006666667) (meters 0.013333334) 1.0)
|
|
(sp-rnd-flt spt-vel-y (meters -0.05) (meters -0.1) 1.0)
|
|
(sp-rnd-flt spt-vel-z (meters -0.006666667) (meters 0.013333334) 1.0)
|
|
(sp-rnd-flt spt-scalevel-x (meters 0.053333335) (meters 0.053333335) 1.0)
|
|
(sp-rnd-flt spt-rotvel-z (degrees -1.2) (degrees 2.4) 1.0)
|
|
(sp-copy-from-other spt-scalevel-y -4)
|
|
(sp-flt spt-fade-r 0.0)
|
|
(sp-flt spt-fade-g 0.0)
|
|
(sp-flt spt-fade-b 0.0)
|
|
(sp-rnd-flt spt-fade-a -0.21333334 -0.42666668 1.0)
|
|
(sp-rnd-flt spt-accel-y 0.68266666 2.048 1.0)
|
|
(sp-rnd-flt spt-friction 0.94 0.04 1.0)
|
|
(sp-int spt-timer 600)
|
|
(sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-12 sp-cpuinfo-flag-14)
|
|
(sp-flt spt-rotate-y (degrees 0.0))
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 597
|
|
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #xbb :page #xc))
|
|
(sp-flt spt-num 1.0)
|
|
(sp-flt spt-y (meters 0.1))
|
|
(sp-rnd-flt spt-scale-x (meters 1.4) (meters 0.1) 1.0)
|
|
(sp-flt spt-rot-x 409.6)
|
|
(sp-copy-from-other spt-scale-y -4)
|
|
(sp-flt spt-r 128.0)
|
|
(sp-rnd-flt spt-g 48.0 32.0 1.0)
|
|
(sp-flt spt-b 0.0)
|
|
(sp-rnd-flt spt-a 48.0 8.0 1.0)
|
|
(sp-int spt-timer 5)
|
|
(sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow)
|
|
(sp-flt spt-userdata 409.6)
|
|
(sp-flt spt-rotate-y (degrees 0.0))
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 594
|
|
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #xc9 :page #xc))
|
|
(sp-rnd-flt spt-num 0.0 1.0 1.0)
|
|
(sp-rnd-flt spt-x (meters 0) (meters 0.5) 1.0)
|
|
(sp-rnd-flt spt-scale-x (meters 0.2) (meters 0.1) 1.0)
|
|
(sp-copy-from-other spt-scale-y -4)
|
|
(sp-rnd-flt spt-r 192.0 64.0 1.0)
|
|
(sp-flt spt-g 128.0)
|
|
(sp-flt spt-b 0.0)
|
|
(sp-flt spt-a 128.0)
|
|
(sp-rnd-flt spt-omega 12.288 4.096 1.0)
|
|
(sp-rnd-flt spt-vel-x (meters -0.013333334) (meters 0.026666667) 1.0)
|
|
(sp-rnd-flt spt-vel-y (meters -0.1) (meters -0.06666667) 1.0)
|
|
(sp-rnd-flt spt-vel-z (meters -0.013333334) (meters 0.026666667) 1.0)
|
|
(sp-flt spt-fade-g -1.0)
|
|
(sp-flt spt-fade-a -2.56)
|
|
(sp-rnd-flt spt-accel-x 0.0 6.826667 1.0)
|
|
(sp-rnd-flt spt-friction 0.96 0.02 1.0)
|
|
(sp-int-plain-rnd spt-timer 25 24 1)
|
|
(sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-12 sp-cpuinfo-flag-14)
|
|
(sp-func spt-func 'sparticle-motion-blur)
|
|
(sp-rnd-flt spt-rotate-y (degrees 0.0) (degrees 3600.0) 1.0)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 595
|
|
:init-specs ((sp-flt spt-num 0.4)
|
|
(sp-int spt-rot-x 8)
|
|
(sp-flt spt-r 1638.4)
|
|
(sp-flt spt-g 1331.2)
|
|
(sp-flt spt-b 1433.6)
|
|
(sp-rnd-flt spt-vel-y (meters -0.05) (meters -0.016666668) 1.0)
|
|
(sp-flt spt-fade-r 32.768)
|
|
(sp-flt spt-fade-g 28.671999)
|
|
(sp-flt spt-fade-b 26.623999)
|
|
(sp-rnd-flt spt-accel-x 0.0 6.826667 1.0)
|
|
(sp-flt spt-friction 0.94)
|
|
(sp-int spt-timer 100)
|
|
(sp-cpuinfo-flags distort)
|
|
(sp-int spt-next-time 50)
|
|
(sp-launcher-by-id spt-next-launcher 598)
|
|
(sp-rnd-flt spt-rotate-y (degrees 0.0) (degrees 360.0) 1.0)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 598
|
|
:init-specs ((sp-flt spt-fade-r 0.0) (sp-flt spt-fade-g 0.0) (sp-flt spt-fade-b -4.096))
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpartgroup group-warp-hellcat-thruster
|
|
:id 135
|
|
:duration (seconds 3)
|
|
:flags (use-local-clock unk-4)
|
|
:bounds (static-bspherem 0 0 0 32)
|
|
:parts ((sp-item 599 :flags (is-3d bit7))
|
|
(sp-item 600 :flags (is-3d bit7))
|
|
(sp-item 601 :flags (bit7))
|
|
(sp-item 602 :flags (is-3d bit7))
|
|
(sp-item 603 :flags (is-3d bit7))
|
|
(sp-item 604 :flags (bit7))
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 599
|
|
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x90 :page #xc))
|
|
(sp-flt spt-num 1.0)
|
|
(sp-flt spt-x (meters 1.45))
|
|
(sp-flt spt-y (meters 1.1))
|
|
(sp-flt spt-z (meters -5.15))
|
|
(sp-flt spt-scale-x (meters 0.6))
|
|
(sp-int spt-rot-x 4)
|
|
(sp-flt spt-scale-y (meters 2))
|
|
(sp-rnd-flt spt-r 128.0 128.0 1.0)
|
|
(sp-rnd-flt spt-g 32.0 96.0 1.0)
|
|
(sp-copy-from-other spt-b -1)
|
|
(sp-rnd-flt spt-a 128.0 64.0 1.0)
|
|
(sp-int spt-timer 5)
|
|
(sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-3)
|
|
(sp-flt spt-rotate-y (degrees 0.0))
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 600
|
|
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x90 :page #xc))
|
|
(sp-flt spt-num 1.0)
|
|
(sp-flt spt-x (meters 1.45))
|
|
(sp-flt spt-y (meters 1.1))
|
|
(sp-flt spt-z (meters -5.15))
|
|
(sp-flt spt-scale-x (meters 0.6))
|
|
(sp-int spt-rot-x 4)
|
|
(sp-flt spt-rot-z (degrees 90.0))
|
|
(sp-flt spt-scale-y (meters 2))
|
|
(sp-rnd-flt spt-r 128.0 128.0 1.0)
|
|
(sp-rnd-flt spt-g 32.0 96.0 1.0)
|
|
(sp-copy-from-other spt-b -1)
|
|
(sp-rnd-flt spt-a 128.0 64.0 1.0)
|
|
(sp-int spt-timer 5)
|
|
(sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-3)
|
|
(sp-flt spt-rotate-y (degrees 0.0))
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 601
|
|
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #xca :page #xc))
|
|
(sp-flt spt-num 1.0)
|
|
(sp-flt spt-x (meters 1.45))
|
|
(sp-flt spt-y (meters 1.1))
|
|
(sp-flt spt-z (meters -4.75))
|
|
(sp-flt spt-scale-x (meters 1.75))
|
|
(sp-flt spt-rot-x 102.4)
|
|
(sp-copy-from-other spt-scale-y -4)
|
|
(sp-flt spt-r 255.0)
|
|
(sp-rnd-flt spt-g 0.0 64.0 1.0)
|
|
(sp-flt spt-b 0.0)
|
|
(sp-rnd-flt spt-a 16.0 4.0 1.0)
|
|
(sp-flt spt-rotvel-z (degrees 0.3))
|
|
(sp-int spt-timer 5)
|
|
(sp-cpuinfo-flags glow)
|
|
(sp-flt spt-userdata 2048.0)
|
|
(sp-flt spt-rotate-y (degrees 0.0))
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 602
|
|
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x90 :page #xc))
|
|
(sp-flt spt-num 1.0)
|
|
(sp-flt spt-x (meters -1.45))
|
|
(sp-flt spt-y (meters 1.1))
|
|
(sp-flt spt-z (meters -5.15))
|
|
(sp-flt spt-scale-x (meters 0.6))
|
|
(sp-int spt-rot-x 4)
|
|
(sp-flt spt-scale-y (meters 2))
|
|
(sp-rnd-flt spt-r 128.0 128.0 1.0)
|
|
(sp-rnd-flt spt-g 32.0 96.0 1.0)
|
|
(sp-copy-from-other spt-b -1)
|
|
(sp-rnd-flt spt-a 128.0 64.0 1.0)
|
|
(sp-int spt-timer 5)
|
|
(sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-3)
|
|
(sp-flt spt-rotate-y (degrees 0.0))
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 603
|
|
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x90 :page #xc))
|
|
(sp-flt spt-num 1.0)
|
|
(sp-flt spt-x (meters -1.45))
|
|
(sp-flt spt-y (meters 1.1))
|
|
(sp-flt spt-z (meters -5.15))
|
|
(sp-flt spt-scale-x (meters 0.6))
|
|
(sp-int spt-rot-x 4)
|
|
(sp-flt spt-rot-z (degrees 90.0))
|
|
(sp-flt spt-scale-y (meters 2))
|
|
(sp-rnd-flt spt-r 128.0 128.0 1.0)
|
|
(sp-rnd-flt spt-g 32.0 96.0 1.0)
|
|
(sp-copy-from-other spt-b -1)
|
|
(sp-rnd-flt spt-a 128.0 64.0 1.0)
|
|
(sp-int spt-timer 5)
|
|
(sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-3)
|
|
(sp-flt spt-rotate-y (degrees 0.0))
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 604
|
|
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #xca :page #xc))
|
|
(sp-flt spt-num 1.0)
|
|
(sp-flt spt-x (meters -1.45))
|
|
(sp-flt spt-y (meters 1.1))
|
|
(sp-flt spt-z (meters -4.75))
|
|
(sp-flt spt-scale-x (meters 1.75))
|
|
(sp-flt spt-rot-x 102.4)
|
|
(sp-copy-from-other spt-scale-y -4)
|
|
(sp-flt spt-r 255.0)
|
|
(sp-rnd-flt spt-g 0.0 64.0 1.0)
|
|
(sp-flt spt-b 0.0)
|
|
(sp-rnd-flt spt-a 16.0 4.0 1.0)
|
|
(sp-flt spt-rotvel-z (degrees 0.3))
|
|
(sp-int spt-timer 5)
|
|
(sp-cpuinfo-flags glow)
|
|
(sp-flt spt-userdata 2048.0)
|
|
(sp-flt spt-rotate-y (degrees 0.0))
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defskelgroup skel-warp-gate warp-gate warp-gate-lod0-jg warp-gate-idle-ja
|
|
((warp-gate-lod0-mg (meters 999999)))
|
|
:bounds (static-spherem 0 3 0 4)
|
|
:origin-joint-index 3
|
|
)
|
|
|
|
;; definition of type warp-gate
|
|
(deftype warp-gate (process-drawable)
|
|
((root-override collide-shape :offset 128)
|
|
(level-name uint32 :offset-assert 200)
|
|
(on-notice pair :offset-assert 204)
|
|
(on-activate pair :offset-assert 208)
|
|
(on-close pair :offset-assert 212)
|
|
(wait-for pair :offset-assert 216)
|
|
(continue continue-point :offset-assert 220)
|
|
(distance meters :offset-assert 224)
|
|
(anim-speed float :offset-assert 228)
|
|
(test-time time-frame :offset-assert 232)
|
|
(center vector :inline :offset-assert 240)
|
|
)
|
|
:heap-base #x80
|
|
:method-count-assert 26
|
|
:size-assert #x100
|
|
:flag-assert #x1a00800100
|
|
(:methods
|
|
(idle () _type_ :state 20)
|
|
(use (continue-point) _type_ :state 21)
|
|
(hidden () _type_ :state 22)
|
|
(init-skel-and-collide (_type_) none 23)
|
|
(setup-fields (_type_) none 24)
|
|
(handle-notice (_type_) continue-point 25)
|
|
)
|
|
)
|
|
|
|
;; definition for method 3 of type warp-gate
|
|
(defmethod inspect warp-gate ((obj warp-gate))
|
|
(when (not obj)
|
|
(set! obj obj)
|
|
(goto cfg-4)
|
|
)
|
|
(let ((t9-0 (method-of-type process-drawable inspect)))
|
|
(t9-0 obj)
|
|
)
|
|
(format #t "~2Tlevel-name: ~A~%" (-> obj level-name))
|
|
(format #t "~2Ton-notice: ~A~%" (-> obj on-notice))
|
|
(format #t "~2Ton-activate: ~A~%" (-> obj on-activate))
|
|
(format #t "~2Ton-close: ~A~%" (-> obj on-close))
|
|
(format #t "~2Twait-for: ~A~%" (-> obj wait-for))
|
|
(format #t "~2Tcontinue: ~A~%" (-> obj continue))
|
|
(format #t "~2Tdistance: (meters ~m)~%" (-> obj distance))
|
|
(format #t "~2Tanim-speed: ~f~%" (-> obj anim-speed))
|
|
(format #t "~2Ttest-time: ~D~%" (-> obj test-time))
|
|
(format #t "~2Tcenter: ~`vector`P~%" (-> obj center))
|
|
(label cfg-4)
|
|
obj
|
|
)
|
|
|
|
;; definition for method 25 of type warp-gate
|
|
(defmethod handle-notice warp-gate ((obj warp-gate))
|
|
(with-pp
|
|
(let ((s5-0 (eval!
|
|
(new 'stack 'script-context (the-as basic (process->ppointer pp)) pp (the-as vector #f))
|
|
(-> obj on-notice)
|
|
)
|
|
)
|
|
)
|
|
(cond
|
|
((= s5-0 'hide)
|
|
(logior! (-> obj draw status) (draw-control-status no-draw))
|
|
(set! (-> obj continue) #f)
|
|
)
|
|
(s5-0
|
|
(logclear! (-> obj draw status) (draw-control-status no-draw))
|
|
(set! (-> obj continue) (get-continue-by-name *game-info* (the-as string (car s5-0))))
|
|
(set! (-> obj on-activate) (the-as pair (car (cdr s5-0))))
|
|
(set! (-> obj wait-for) (the-as pair (car (cdr (cdr s5-0)))))
|
|
(set! (-> obj on-close) (the-as pair (car (cdr (cdr (cdr s5-0))))))
|
|
)
|
|
(else
|
|
(set! (-> obj continue) #f)
|
|
)
|
|
)
|
|
)
|
|
(-> obj continue)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defstate hidden (warp-gate)
|
|
:virtual #t
|
|
:code (the-as (function none :behavior warp-gate) sleep-code)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defstate idle (warp-gate)
|
|
:virtual #t
|
|
:event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block))
|
|
(case event-type
|
|
(('hide)
|
|
(go-virtual hidden)
|
|
)
|
|
(('effect)
|
|
(process-spawn
|
|
part-tracker
|
|
:init part-tracker-init
|
|
(-> *part-group-id-table* 130)
|
|
0
|
|
#f
|
|
#f
|
|
#f
|
|
(-> self node-list data 4 bone transform)
|
|
:to *entity-pool*
|
|
)
|
|
)
|
|
)
|
|
)
|
|
:code (behavior ()
|
|
(remove-setting! 'allow-progress)
|
|
(set! (-> self state-time) (-> self clock frame-counter))
|
|
(update-transforms (-> self root-override))
|
|
(until #f
|
|
(handle-notice self)
|
|
(when (and (and *target*
|
|
(and (>= (-> self distance) (vector-vector-distance (-> self root-override trans) (-> *target* control trans)))
|
|
(zero? (logand (focus-status teleporting) (-> *target* focus-status)))
|
|
)
|
|
)
|
|
(and (-> self continue)
|
|
(not (logtest? (focus-status in-head edge-grab pole flut tube board pilot mech indax) (-> *target* focus-status))
|
|
)
|
|
(-> *setting-control* user-current airlock)
|
|
(not (-> *setting-control* user-current hint))
|
|
)
|
|
)
|
|
(talker-surpress!)
|
|
(when (and (can-display-query? self (the-as string #f) -99.0)
|
|
(cond
|
|
((and (-> *target* next-state) (let ((v1-30 (-> *target* next-state name)))
|
|
(or (= v1-30 'target-warp-in) (= v1-30 'target-warp-out))
|
|
)
|
|
)
|
|
(set! (-> self state-time) (-> self clock frame-counter))
|
|
#f
|
|
)
|
|
(else
|
|
#t
|
|
)
|
|
)
|
|
(>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.1))
|
|
)
|
|
(if (and (cpad-pressed? 0 triangle) (process-grab? *target* #f))
|
|
(go-virtual use (-> self continue))
|
|
)
|
|
(eval!
|
|
(new 'stack 'script-context (the-as basic (process->ppointer self)) self (the-as vector #f))
|
|
(-> self on-close)
|
|
)
|
|
(let ((gp-0
|
|
(new 'stack 'font-context *font-default-matrix* 32 320 0.0 (font-color default) (font-flags shadow kerning))
|
|
)
|
|
)
|
|
(let ((v1-51 gp-0))
|
|
(set! (-> v1-51 width) (the float 340))
|
|
)
|
|
(let ((v1-52 gp-0))
|
|
(set! (-> v1-52 height) (the float 80))
|
|
)
|
|
(let ((v1-53 gp-0))
|
|
(set! (-> v1-53 scale) 0.9)
|
|
)
|
|
(set! (-> gp-0 flags) (font-flags shadow kerning large))
|
|
(print-game-text (lookup-text! *common-text* (game-text-id text-x182) #f) gp-0 #f 44 (bucket-id progress))
|
|
)
|
|
)
|
|
)
|
|
(cond
|
|
((-> self continue)
|
|
(seek! (-> self anim-speed) 1.0 (* 2.0 (-> self clock seconds-per-frame)))
|
|
(setup-masks (-> self draw) 2 0)
|
|
)
|
|
(else
|
|
(setup-masks (-> self draw) 0 2)
|
|
(seek! (-> self anim-speed) 0.0 (* 2.0 (-> self clock seconds-per-frame)))
|
|
)
|
|
)
|
|
(update! (-> self sound))
|
|
(ja-post)
|
|
(suspend)
|
|
(ja :num! (loop! (-> self anim-speed)))
|
|
)
|
|
#f
|
|
(none)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defstate use (warp-gate)
|
|
:virtual #t
|
|
:event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block))
|
|
(the-as object (case event-type
|
|
(('effect)
|
|
(process-spawn
|
|
part-tracker
|
|
:init part-tracker-init
|
|
(-> *part-group-id-table* 130)
|
|
0
|
|
#f
|
|
#f
|
|
#f
|
|
(-> self node-list data 4 bone transform)
|
|
:to *entity-pool*
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
:exit (behavior ()
|
|
(remove-setting! 'mode-name)
|
|
(remove-setting! 'interp-time)
|
|
(none)
|
|
)
|
|
:trans (behavior ()
|
|
(send-event *camera* 'joystick 0 0)
|
|
(none)
|
|
)
|
|
:code (behavior ((arg0 continue-point))
|
|
(local-vars (v1-38 symbol))
|
|
(kill-current-talker (the-as symbol '()) '() 'exit)
|
|
(set-setting! 'mode-name 'cam-fixed 0 0)
|
|
(set-setting! 'interp-time 'abs 0 0)
|
|
(set! (-> self state-time) (-> self clock frame-counter))
|
|
(logclear! (-> self mask) (process-mask actor-pause))
|
|
(when (not arg0)
|
|
(process-release? *target*)
|
|
(go-virtual idle)
|
|
)
|
|
(set-setting! 'allow-progress #f 0 0)
|
|
(set! (-> *setting-control* user-default border-mode) #t)
|
|
(set! (-> *level* play?) #t)
|
|
(apply-settings *setting-control*)
|
|
(let ((s5-0 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> s5-0 from) (process->ppointer self))
|
|
(set! (-> s5-0 num-params) 4)
|
|
(set! (-> s5-0 message) 'change-state)
|
|
(set! (-> s5-0 param 0) (the-as uint target-warp-out))
|
|
(let ((v1-22 (new 'static 'vector)))
|
|
(set! (-> v1-22 quad) (-> self center quad))
|
|
(set! (-> s5-0 param 1) (the-as uint v1-22))
|
|
)
|
|
(set! (-> s5-0 param 2) (the-as uint (target-pos 0)))
|
|
(set! (-> s5-0 param 3) (the-as uint (process->handle self)))
|
|
(send-event-function *target* s5-0)
|
|
)
|
|
(eval!
|
|
(new 'stack 'script-context (the-as basic (process->ppointer self)) self (the-as vector #f))
|
|
(-> self on-activate)
|
|
)
|
|
(while (begin
|
|
(set! v1-38 (when (-> self wait-for)
|
|
(let* ((s5-1 (-> self wait-for))
|
|
(a1-8 (car s5-1))
|
|
)
|
|
(while (not (null? s5-1))
|
|
(when (not (member (level-status *level* (the-as symbol a1-8)) '(loaded active)))
|
|
(set! v1-38 #t)
|
|
(goto cfg-21)
|
|
)
|
|
(set! s5-1 (cdr s5-1))
|
|
(set! a1-8 (car s5-1))
|
|
)
|
|
)
|
|
#f
|
|
)
|
|
)
|
|
(label cfg-21)
|
|
(or v1-38 (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 2)))
|
|
)
|
|
(update! (-> self sound))
|
|
(suspend)
|
|
(ja :num! (loop!))
|
|
(ja-post)
|
|
)
|
|
(if (not (logtest? (-> arg0 flags) (continue-flags cf4)))
|
|
(set-blackout-frames (seconds 0.05))
|
|
)
|
|
(start 'play arg0)
|
|
(let ((gp-1 (-> self clock frame-counter)))
|
|
(until (>= (- (-> self clock frame-counter) gp-1) (seconds 1))
|
|
(suspend)
|
|
)
|
|
)
|
|
(while (and *target*
|
|
(and (>= 81920.0 (vector-vector-distance (-> self root-override trans) (-> *target* control trans)))
|
|
(zero? (logand (focus-status teleporting) (-> *target* focus-status)))
|
|
)
|
|
)
|
|
(suspend)
|
|
(ja :num! (loop!))
|
|
(ja-post)
|
|
)
|
|
(logior! (-> self mask) (process-mask actor-pause))
|
|
(go-virtual idle)
|
|
(none)
|
|
)
|
|
)
|
|
|
|
;; definition for method 23 of type warp-gate
|
|
;; WARN: Return type mismatch draw-control vs none.
|
|
(defmethod init-skel-and-collide warp-gate ((obj warp-gate))
|
|
(let ((s5-0 (new 'process 'collide-shape obj (collide-list-enum usually-hit-by-player))))
|
|
(set! (-> s5-0 penetrated-by) (penetrate))
|
|
(let ((v1-2 (new 'process 'collide-shape-prim-mesh s5-0 (the-as uint 0) (the-as uint 0))))
|
|
(set! (-> v1-2 prim-core collide-as) (collide-spec obstacle))
|
|
(set! (-> v1-2 prim-core action) (collide-action solid))
|
|
(set! (-> v1-2 transform-index) 3)
|
|
(set-vector! (-> v1-2 local-sphere) 0.0 12288.0 0.0 16384.0)
|
|
(set! (-> s5-0 total-prims) (the-as uint 1))
|
|
(set! (-> s5-0 root-prim) v1-2)
|
|
)
|
|
(set! (-> s5-0 nav-radius) (* 0.75 (-> s5-0 root-prim local-sphere w)))
|
|
(let ((v1-5 (-> s5-0 root-prim)))
|
|
(set! (-> s5-0 backup-collide-as) (-> v1-5 prim-core collide-as))
|
|
(set! (-> s5-0 backup-collide-with) (-> v1-5 prim-core collide-with))
|
|
)
|
|
(set! (-> obj root-override) s5-0)
|
|
)
|
|
(initialize-skeleton
|
|
obj
|
|
(the-as skeleton-group (art-group-get-by-name *level* "skel-warp-gate" (the-as (pointer uint32) #f)))
|
|
(the-as pair 0)
|
|
)
|
|
(none)
|
|
)
|
|
|
|
;; definition for method 24 of type warp-gate
|
|
;; INFO: Used lq/sq
|
|
;; WARN: Return type mismatch float vs none.
|
|
(defmethod setup-fields warp-gate ((obj warp-gate))
|
|
(set! (-> obj level-name) (the-as uint (-> obj level name)))
|
|
(set! (-> obj on-notice) (res-lump-struct (-> obj entity) 'on-notice pair))
|
|
(set! (-> obj on-activate) #f)
|
|
(set! (-> obj wait-for) #f)
|
|
(set! (-> obj continue) #f)
|
|
(set! (-> obj on-close) #f)
|
|
(set! (-> obj part) (create-launch-control (-> *part-group-id-table* 130) obj))
|
|
(set! (-> obj center quad) (-> obj root-override trans quad))
|
|
(set! (-> obj center y) (+ 13516.8 (-> obj center y)))
|
|
(set! (-> obj sound)
|
|
(new 'process 'ambient-sound (static-sound-spec "warpgate" :fo-max 30) (-> obj root-override trans))
|
|
)
|
|
(set! (-> obj distance) (res-lump-float (-> obj entity) 'distance :default 20480.0))
|
|
(none)
|
|
)
|
|
|
|
;; definition for function warp-gate-init
|
|
;; INFO: Used lq/sq
|
|
;; WARN: Return type mismatch object vs none.
|
|
(defbehavior warp-gate-init warp-gate ((arg0 entity-actor) (arg1 vector))
|
|
(stack-size-set! (-> self main-thread) 512)
|
|
(init-skel-and-collide self)
|
|
(if arg0
|
|
(process-drawable-from-entity! self arg0)
|
|
)
|
|
(if arg1
|
|
(set! (-> self root-override trans quad) (-> arg1 quad))
|
|
)
|
|
(logior! (-> self mask) (process-mask actor-pause))
|
|
(setup-fields self)
|
|
(go-virtual idle)
|
|
(none)
|
|
)
|
|
|
|
;; definition for method 11 of type warp-gate
|
|
(defmethod init-from-entity! warp-gate ((obj warp-gate) (arg0 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"
|
|
(warp-gate-init arg0 (the-as vector #f))
|
|
(none)
|
|
)
|
|
|
|
;; definition for symbol *warp-jump-mods*, type surface
|
|
(define *warp-jump-mods* (new 'static 'surface
|
|
:name 'jump
|
|
:turnv 273066.66
|
|
:turnvv 1820444.5
|
|
:tiltv 65536.0
|
|
:tiltvv 262144.0
|
|
:transv-max 65536.0
|
|
:target-speed 65536.0
|
|
:slip-factor 1.0
|
|
:slide-factor 1.0
|
|
:slope-up-factor 1.0
|
|
:slope-down-factor 1.0
|
|
:slope-slip-angle 1.0
|
|
:impact-fric 1.0
|
|
:bend-factor 1.0
|
|
:bend-speed 1.0
|
|
:alignv 1.0
|
|
:slope-up-traction 1.0
|
|
:align-speed 1.0
|
|
:turnvf 30.0
|
|
:turnvvf 30.0
|
|
:tiltvf 150.0
|
|
:tiltvvf 15.0
|
|
:mode 'air
|
|
:flags (surface-flag turn-to-vel turn-when-centered gun-off)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defstate target-warp-out (target)
|
|
:event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block))
|
|
(case event-type
|
|
(('death-end)
|
|
(let ((v0-0 (the-as object (logior (-> self draw status) (draw-control-status no-draw)))))
|
|
(set! (-> self draw status) (the-as draw-control-status v0-0))
|
|
v0-0
|
|
)
|
|
)
|
|
(('warp-gate)
|
|
(if (not (-> self control unknown-spool-anim00))
|
|
'busy
|
|
)
|
|
)
|
|
(else
|
|
(target-generic-event-handler proc arg1 event-type event)
|
|
)
|
|
)
|
|
)
|
|
:enter (behavior ((arg0 vector) (arg1 vector) (arg2 target))
|
|
(set! (-> self state-time) (-> self clock frame-counter))
|
|
(logclear! (-> self control status) (collide-status on-surface on-ground touch-surface))
|
|
(set! (-> self control mod-surface) *warp-jump-mods*)
|
|
(set! (-> self control unknown-vector37 quad) (-> arg0 quad))
|
|
(set! (-> self control unknown-vector38 quad) (-> arg1 quad))
|
|
(set! (-> self control unknown-vector37 y) (+ -4096.0 (-> self control unknown-vector37 y)))
|
|
(set! (-> self control unknown-word04) (the-as uint #f))
|
|
(set! (-> self control unknown-handle02) (the-as handle arg2))
|
|
(vector-reset! (-> self control transv))
|
|
(logior! (-> self state-flags) (state-flags sf6))
|
|
(set! (-> self alt-cam-pos quad) (-> arg1 quad))
|
|
(forward-up-nopitch->quaternion
|
|
(-> self control dir-targ)
|
|
(vector-! (new 'stack-no-clear 'vector) arg1 (-> self control trans))
|
|
(vector-y-quaternion! (new 'stack-no-clear 'vector) (-> self control dir-targ))
|
|
)
|
|
(none)
|
|
)
|
|
:exit (behavior ()
|
|
(logclear! (-> self state-flags) (state-flags sf6))
|
|
(none)
|
|
)
|
|
:code (behavior ((arg0 vector) (arg1 vector) (arg2 target))
|
|
(ja-channel-push! 1 (seconds 0.2))
|
|
(ja-no-eval :group! (-> self draw art-group data 30) :num! (seek! (ja-aframe 16.0 0)) :frame-num 0.0)
|
|
(until (ja-done? 0)
|
|
(suspend)
|
|
(ja :num! (seek! (ja-aframe 16.0 0)))
|
|
)
|
|
(vector-! (-> self control transv) (-> self control unknown-vector37) (-> self control trans))
|
|
(vector-xz-normalize! (-> self control transv) 32768.0)
|
|
(let ((v1-18 (new-stack-vector0)))
|
|
(let ((f0-6 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))))
|
|
0.0
|
|
(vector-! v1-18 (-> self control transv) (vector-float*! v1-18 (-> self control dynam gravity-normal) f0-6))
|
|
)
|
|
(let* ((f0-7 (vector-length v1-18))
|
|
(f1-1 f0-7)
|
|
(f2-4
|
|
(- (sqrtf
|
|
(* 2.0
|
|
(-> self control dynam gravity-length)
|
|
(vector-dot
|
|
(-> self control dynam gravity-normal)
|
|
(vector-! (new 'stack-no-clear 'vector) (-> self control unknown-vector37) (-> self control trans))
|
|
)
|
|
)
|
|
)
|
|
(* 0.008333334 (- (-> self control dynam gravity-length)))
|
|
)
|
|
)
|
|
)
|
|
(vector+!
|
|
(-> self control transv)
|
|
(vector-float*! (-> self control transv) (-> self control dynam gravity-normal) f2-4)
|
|
(vector-float*! v1-18 v1-18 (/ f0-7 f1-1))
|
|
)
|
|
)
|
|
)
|
|
(let ((v1-20 (-> self control root-prim)))
|
|
(set! (-> v1-20 prim-core collide-as) (collide-spec))
|
|
(set! (-> v1-20 prim-core collide-with) (collide-spec))
|
|
)
|
|
0
|
|
(set! (-> self state-time) (-> self clock frame-counter))
|
|
(set! (-> self trans-hook)
|
|
(lambda :behavior target
|
|
()
|
|
(let ((v1-0 (new-stack-vector0))
|
|
(f0-1 (vector-dot (-> self control dynam gravity-normal) (-> self control transv)))
|
|
)
|
|
0.0
|
|
(vector-! v1-0 (-> self control transv) (vector-float*! v1-0 (-> self control dynam gravity-normal) f0-1))
|
|
(let* ((f1-2 (vector-length v1-0))
|
|
(f2-0 f1-2)
|
|
)
|
|
(if (< f0-1 0.0)
|
|
(set! f0-1 8192.0)
|
|
)
|
|
(vector+!
|
|
(-> self control transv)
|
|
(vector-float*! (-> self control transv) (-> self control dynam gravity-normal) f0-1)
|
|
(vector-float*! v1-0 v1-0 (/ f1-2 f2-0))
|
|
)
|
|
)
|
|
)
|
|
(let ((gp-1 (vector-! (new-stack-vector0) (-> self control unknown-vector37) (-> self control trans))))
|
|
(set! (-> gp-1 y) 0.0)
|
|
(send-event *target* 'sidekick #f)
|
|
(when (and (or (< (vector-dot gp-1 (-> self control transv)) 0.0) (-> self control unknown-spool-anim00))
|
|
(>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.05))
|
|
)
|
|
(vector-seek! (-> self draw color-mult) (new 'static 'vector) (* 2.0 (-> self clock seconds-per-frame)))
|
|
(set! (-> self control transv x) (* 0.95 (-> self control transv x)))
|
|
(set! (-> self control transv z) (* 0.95 (-> self control transv z)))
|
|
(when (not (-> self control unknown-spool-anim00))
|
|
(sound-play "warpgate-tele")
|
|
(send-event (handle->process (-> self control unknown-handle02)) 'effect)
|
|
(send-event self 'draw #f)
|
|
(set! (-> self control unknown-word04) (the-as uint #t))
|
|
)
|
|
)
|
|
)
|
|
(none)
|
|
)
|
|
)
|
|
(ja-no-eval :group! (-> self draw art-group data 30)
|
|
:num! (seek! (ja-aframe 40.0 0))
|
|
:frame-num (ja-aframe 16.0 0)
|
|
)
|
|
(until (ja-done? 0)
|
|
(suspend)
|
|
(ja :num! (seek! (ja-aframe 40.0 0)))
|
|
)
|
|
(sleep-code)
|
|
(none)
|
|
)
|
|
:post target-no-stick-post
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defstate target-warp-in (target)
|
|
:event target-generic-event-handler
|
|
:enter (behavior ((arg0 vector) (arg1 vector) (arg2 target))
|
|
(set! (-> self control did-move-to-pole-or-max-jump-height) (the-as float arg2))
|
|
((-> target-warp-out enter) arg0 arg1 arg2)
|
|
(none)
|
|
)
|
|
:exit (-> target-warp-out exit)
|
|
:trans (behavior ()
|
|
(set! (-> self control transv x)
|
|
(* 2.4 (- (-> self control unknown-vector38 x) (-> self control unknown-vector37 x)))
|
|
)
|
|
(set! (-> self control transv z)
|
|
(* 2.4 (- (-> self control unknown-vector38 z) (-> self control unknown-vector37 z)))
|
|
)
|
|
(if (logtest? (-> self control status) (collide-status on-surface))
|
|
(go target-hit-ground #f)
|
|
)
|
|
(none)
|
|
)
|
|
:code (behavior ((arg0 vector) (arg1 vector) (arg2 target))
|
|
(let ((a0-1 (-> self control did-move-to-pole-or-max-jump-height)))
|
|
(when a0-1
|
|
(let ((s5-0 (res-lump-struct (the-as res-lump a0-1) 'camera-name structure)))
|
|
(when s5-0
|
|
(logclear! (-> self state-flags) (state-flags sf6))
|
|
(process-spawn-function
|
|
process
|
|
(lambda ((arg0 string))
|
|
(local-vars (a1-2 event-message-block))
|
|
(with-pp
|
|
(add-setting! 'entity-name arg0 0 0)
|
|
(until (send-event-function *camera* a1-2)
|
|
(suspend)
|
|
(set! a1-2 (new 'stack-no-clear 'event-message-block))
|
|
(let ((v1-2 (process->ppointer pp)))
|
|
(set! (-> a1-2 from) v1-2)
|
|
)
|
|
(set! (-> a1-2 num-params) 0)
|
|
(set! (-> a1-2 message) 'intro-done?)
|
|
)
|
|
(none)
|
|
)
|
|
)
|
|
s5-0
|
|
:to self
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(let ((v1-13 (-> self control root-prim)))
|
|
(set! (-> self control backup-collide-as) (-> v1-13 prim-core collide-as))
|
|
(set! (-> self control backup-collide-with) (-> v1-13 prim-core collide-with))
|
|
)
|
|
(let ((v1-16 (-> self control root-prim)))
|
|
(set! (-> v1-16 prim-core collide-as) (collide-spec))
|
|
(set! (-> v1-16 prim-core collide-with) (collide-spec))
|
|
)
|
|
0
|
|
(ja-channel-set! 0)
|
|
(vector-reset! (-> self control transv))
|
|
(move-to-point! (-> self control) (-> self control unknown-vector37))
|
|
(let ((s5-1 (-> self clock frame-counter)))
|
|
(while (or (< (- (-> self clock frame-counter) s5-1) (seconds 1))
|
|
(< 81920.0 (vector-vector-distance (camera-pos) (-> self control trans)))
|
|
)
|
|
(suspend)
|
|
)
|
|
)
|
|
(set-heading-vec! (-> self control) (-> self control transv))
|
|
(rot->dir-targ! (-> self control))
|
|
(set! (-> self state-time) (-> self clock frame-counter))
|
|
(set! (-> self post-hook) target-no-stick-post)
|
|
(ja-channel-set! 1)
|
|
(send-event
|
|
(if arg2
|
|
(-> arg2 child 3)
|
|
)
|
|
'effect
|
|
)
|
|
(send-event self 'draw #t)
|
|
(sound-play "warpgate-tele")
|
|
(ja-no-eval :group! (-> self draw art-group data 30)
|
|
:num! (seek! (ja-aframe 42.0 0))
|
|
:frame-num (ja-aframe 40.0 0)
|
|
)
|
|
(until (ja-done? 0)
|
|
(let ((v1-59 (new-stack-vector0)))
|
|
(let ((f0-5 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))))
|
|
0.0
|
|
(vector-! v1-59 (-> self control transv) (vector-float*! v1-59 (-> self control dynam gravity-normal) f0-5))
|
|
)
|
|
(let* ((f0-6 (vector-length v1-59))
|
|
(f1-1 f0-6)
|
|
(f2-3
|
|
(- (sqrtf (* 4096.0 (-> self control dynam gravity-length)))
|
|
(* 0.008333334 (- (-> self control dynam gravity-length)))
|
|
)
|
|
)
|
|
)
|
|
(vector+!
|
|
(-> self control transv)
|
|
(vector-float*! (-> self control transv) (-> self control dynam gravity-normal) f2-3)
|
|
(vector-float*! v1-59 v1-59 (/ f0-6 f1-1))
|
|
)
|
|
)
|
|
)
|
|
(suspend)
|
|
(ja :num! (seek! (ja-aframe 42.0 0)))
|
|
)
|
|
(ja-no-eval :group! (-> self draw art-group data 30)
|
|
:num! (seek! (ja-aframe 50.0 0))
|
|
:frame-num (ja-aframe 42.0 0)
|
|
)
|
|
(until (ja-done? 0)
|
|
(suspend)
|
|
(ja :num! (seek! (ja-aframe 50.0 0)))
|
|
)
|
|
(let ((v1-80 (-> self control root-prim)))
|
|
(set! (-> v1-80 prim-core collide-as) (-> self control backup-collide-as))
|
|
(set! (-> v1-80 prim-core collide-with) (-> self control backup-collide-with))
|
|
)
|
|
(ja-no-eval :group! (-> self draw art-group data 30)
|
|
:num! (seek! (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 30)) frames num-frames) -1)))
|
|
:frame-num (ja-aframe 50.0 0)
|
|
)
|
|
(until (ja-done? 0)
|
|
(suspend)
|
|
(ja :num! (seek!))
|
|
)
|
|
(target-falling-anim -1 (seconds 0.33))
|
|
(none)
|
|
)
|
|
:post target-no-move-post
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defskelgroup skel-air-train air-train air-train-lod0-jg air-train-idle-ja
|
|
((air-train-lod0-mg (meters 999999)))
|
|
:bounds (static-spherem 0 2 -2 12.5)
|
|
:origin-joint-index 3
|
|
)
|
|
|
|
;; definition of type air-train
|
|
(deftype air-train (warp-gate)
|
|
"NOTE - I guess this is why sometimes the air-train makes the warp-gate sound"
|
|
((part-exhaust-left sparticle-launch-control :offset-assert 256)
|
|
(part-exhaust-right sparticle-launch-control :offset-assert 260)
|
|
(part-dust sparticle-launch-control :offset-assert 264)
|
|
(dust-y float :offset-assert 268)
|
|
(hover-sound sound-id :offset-assert 272)
|
|
(base-pos vector :inline :offset-assert 288)
|
|
)
|
|
:heap-base #xb0
|
|
:method-count-assert 26
|
|
:size-assert #x130
|
|
:flag-assert #x1a00b00130
|
|
)
|
|
|
|
;; definition for method 3 of type air-train
|
|
(defmethod inspect air-train ((obj air-train))
|
|
(when (not obj)
|
|
(set! obj obj)
|
|
(goto cfg-4)
|
|
)
|
|
(let ((t9-0 (method-of-type warp-gate inspect)))
|
|
(t9-0 obj)
|
|
)
|
|
(format #t "~2Tpart-exhaust-left: ~A~%" (-> obj part-exhaust-left))
|
|
(format #t "~2Tpart-exhaust-right: ~A~%" (-> obj part-exhaust-right))
|
|
(format #t "~2Tpart-dust: ~A~%" (-> obj part-dust))
|
|
(format #t "~2Tdust-y: ~f~%" (-> obj dust-y))
|
|
(format #t "~2Thover-sound: ~D~%" (-> obj hover-sound))
|
|
(format #t "~2Tbase-pos: #<vector @ #x~X>~%" (-> obj base-pos))
|
|
(label cfg-4)
|
|
obj
|
|
)
|
|
|
|
;; definition for method 7 of type air-train
|
|
;; WARN: Return type mismatch warp-gate vs air-train.
|
|
(defmethod relocate air-train ((obj air-train) (arg0 int))
|
|
(if (nonzero? (-> obj part-exhaust-left))
|
|
(&+! (-> obj part-exhaust-left) arg0)
|
|
)
|
|
(if (nonzero? (-> obj part-exhaust-right))
|
|
(&+! (-> obj part-exhaust-right) arg0)
|
|
)
|
|
(if (nonzero? (-> obj part-dust))
|
|
(&+! (-> obj part-dust) arg0)
|
|
)
|
|
(the-as air-train ((method-of-type warp-gate relocate) obj arg0))
|
|
)
|
|
|
|
;; definition for method 10 of type air-train
|
|
(defmethod deactivate air-train ((obj air-train))
|
|
(sound-stop (-> obj hover-sound))
|
|
(if (nonzero? (-> obj part-exhaust-left))
|
|
(kill-and-free-particles (-> obj part-exhaust-left))
|
|
)
|
|
(if (nonzero? (-> obj part-exhaust-right))
|
|
(kill-and-free-particles (-> obj part-exhaust-right))
|
|
)
|
|
(if (nonzero? (-> obj part-dust))
|
|
(kill-and-free-particles (-> obj part-dust))
|
|
)
|
|
((method-of-type warp-gate deactivate) obj)
|
|
(none)
|
|
)
|
|
|
|
;; definition for method 23 of type air-train
|
|
;; WARN: Return type mismatch draw-control vs none.
|
|
(defmethod init-skel-and-collide air-train ((obj air-train))
|
|
(let ((s5-0 (new 'process 'collide-shape-moving obj (collide-list-enum usually-hit-by-player))))
|
|
(set! (-> s5-0 dynam) (copy *standard-dynamics* 'process))
|
|
(set! (-> s5-0 reaction) cshape-reaction-default)
|
|
(set! (-> s5-0 no-reaction)
|
|
(the-as (function collide-shape-moving collide-query vector vector object) nothing)
|
|
)
|
|
(set! (-> s5-0 penetrated-by) (penetrate))
|
|
(let ((s4-0 (new 'process 'collide-shape-prim-group s5-0 (the-as uint 2) 0)))
|
|
(set! (-> s5-0 total-prims) (the-as uint 3))
|
|
(set! (-> s4-0 prim-core collide-as) (collide-spec obstacle))
|
|
(set! (-> s4-0 prim-core collide-with) (collide-spec jak player-list))
|
|
(set! (-> s4-0 prim-core action) (collide-action solid))
|
|
(set! (-> s4-0 transform-index) 3)
|
|
(set-vector! (-> s4-0 local-sphere) 0.0 0.0 0.0 69632.0)
|
|
(set! (-> s5-0 root-prim) s4-0)
|
|
)
|
|
(let ((v1-13 (new 'process 'collide-shape-prim-mesh s5-0 (the-as uint 0) (the-as uint 0))))
|
|
(set! (-> v1-13 prim-core collide-as) (collide-spec obstacle))
|
|
(set! (-> v1-13 prim-core collide-with) (collide-spec jak player-list))
|
|
(set! (-> v1-13 prim-core action) (collide-action solid))
|
|
(set! (-> v1-13 transform-index) 4)
|
|
(set-vector! (-> v1-13 local-sphere) 0.0 10240.0 0.0 24576.0)
|
|
)
|
|
(let ((v1-15 (new 'process 'collide-shape-prim-mesh s5-0 (the-as uint 1) (the-as uint 0))))
|
|
(set! (-> v1-15 prim-core collide-as) (collide-spec obstacle))
|
|
(set! (-> v1-15 prim-core collide-with) (collide-spec jak player-list))
|
|
(set! (-> v1-15 prim-core action) (collide-action solid))
|
|
(set! (-> v1-15 transform-index) 3)
|
|
(set-vector! (-> v1-15 local-sphere) 0.0 0.0 0.0 53248.0)
|
|
)
|
|
(set! (-> s5-0 nav-radius) (* 0.75 (-> s5-0 root-prim local-sphere w)))
|
|
(let ((v1-18 (-> s5-0 root-prim)))
|
|
(set! (-> s5-0 backup-collide-as) (-> v1-18 prim-core collide-as))
|
|
(set! (-> s5-0 backup-collide-with) (-> v1-18 prim-core collide-with))
|
|
)
|
|
(set! (-> obj root-override) s5-0)
|
|
)
|
|
(initialize-skeleton
|
|
obj
|
|
(the-as skeleton-group (art-group-get-by-name *level* "skel-air-train" (the-as (pointer uint32) #f)))
|
|
(the-as pair 0)
|
|
)
|
|
(none)
|
|
)
|
|
|
|
;; definition for method 24 of type air-train
|
|
;; INFO: Used lq/sq
|
|
;; WARN: Return type mismatch sound-id vs none.
|
|
(defmethod setup-fields air-train ((obj air-train))
|
|
(let ((t9-0 (method-of-type warp-gate setup-fields)))
|
|
(t9-0 obj)
|
|
)
|
|
(set! (-> obj base-pos quad) (-> obj root-override trans quad))
|
|
(let ((v1-2 (-> obj level-name)))
|
|
(set! (-> obj dust-y) (cond
|
|
((= v1-2 'nest)
|
|
-1105.92
|
|
)
|
|
((= v1-2 'caspad)
|
|
114647.04
|
|
)
|
|
(else
|
|
(the-as float #x7f800000)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(set! (-> obj part-exhaust-left) (create-launch-control (-> *part-group-id-table* 134) obj))
|
|
(set! (-> obj part-exhaust-right) (create-launch-control (-> *part-group-id-table* 134) obj))
|
|
(set! (-> obj part-dust) (create-launch-control (-> *part-group-id-table* 132) obj))
|
|
(set! (-> obj root-override pause-adjust-distance) 368640.0)
|
|
(set! (-> obj hover-sound) (sound-play "air-train"))
|
|
(none)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defstate idle (air-train)
|
|
:virtual #t
|
|
:post (behavior ()
|
|
(let ((t9-0 (-> (method-of-type warp-gate idle) post)))
|
|
(if t9-0
|
|
((the-as (function none) t9-0))
|
|
)
|
|
)
|
|
(set! (-> self root-override trans y)
|
|
(+ (-> self base-pos y)
|
|
(* 696.32 (cos (* 66.19798 (the float (mod (-> self clock frame-counter) 990)))))
|
|
(* 450.56 (cos (* 42.25403 (the float (mod (-> self clock frame-counter) 1551)))))
|
|
)
|
|
)
|
|
(spawn-with-cspace (-> self part-exhaust-left) (-> self node-list data 5))
|
|
(spawn-with-cspace (-> self part-exhaust-right) (-> self node-list data 6))
|
|
(let ((f0-9 (-> self dust-y)))
|
|
(when (!= f0-9 (the-as float #x7f800000))
|
|
(let ((a1-2 (new 'stack-no-clear 'vector)))
|
|
(set! (-> a1-2 quad) (-> self root-override trans quad))
|
|
(set! (-> a1-2 y) f0-9)
|
|
(spawn (-> self part-dust) a1-2)
|
|
)
|
|
)
|
|
)
|
|
(sound-play "air-train" :id (-> self hover-sound) :position (-> self root-override trans))
|
|
(none)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defstate use (air-train)
|
|
:virtual #t
|
|
:code (behavior ((arg0 continue-point))
|
|
(kill-current-talker (the-as symbol '()) '() 'exit)
|
|
(set! (-> self state-time) (-> self clock frame-counter))
|
|
(logclear! (-> self mask) (process-mask actor-pause))
|
|
(when (not arg0)
|
|
(process-release? *target*)
|
|
(go-virtual idle)
|
|
)
|
|
(set-setting! 'allow-progress #f 0 0)
|
|
(set! (-> *setting-control* user-default border-mode) #t)
|
|
(set! (-> *level* play?) #t)
|
|
(apply-settings *setting-control*)
|
|
(sound-stop (-> self hover-sound))
|
|
(set! (-> self hover-sound) (new 'static 'sound-id))
|
|
(eval!
|
|
(new 'stack 'script-context (the-as basic (process->ppointer self)) self (the-as vector #f))
|
|
(-> self on-activate)
|
|
)
|
|
(sleep-code)
|
|
(none)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(scene-method-16 (new 'static 'scene
|
|
:name "city-air-train-in-caspad"
|
|
:extra #f
|
|
:info #f
|
|
:mask-to-clear #x1282000
|
|
:entity "scene-stage-87"
|
|
:art-group "scenecamera"
|
|
:anim "city-air-train-in-caspad"
|
|
:parts 3
|
|
:command-list '((0
|
|
(kill "air-train-1")
|
|
(fadein (frame-time-30 (new 'static 'bfloat :data 10.0)))
|
|
(part-tracker
|
|
"group-airtrain-thruster-off"
|
|
entity
|
|
"air-train"
|
|
joint
|
|
"thruster_l"
|
|
track
|
|
#t
|
|
duration
|
|
(frame-range 0 102)
|
|
)
|
|
(part-tracker
|
|
"group-airtrain-thruster-off"
|
|
entity
|
|
"air-train"
|
|
joint
|
|
"thruster_r"
|
|
track
|
|
#t
|
|
duration
|
|
(frame-range 0 102)
|
|
)
|
|
)
|
|
(102
|
|
(part-tracker
|
|
"group-airtrain-thruster"
|
|
entity
|
|
"air-train"
|
|
joint
|
|
"thruster_l"
|
|
track
|
|
#t
|
|
duration
|
|
(frame-range 102 280)
|
|
)
|
|
(part-tracker
|
|
"group-airtrain-thruster"
|
|
entity
|
|
"air-train"
|
|
joint
|
|
"thruster_r"
|
|
track
|
|
#t
|
|
duration
|
|
(frame-range 102 280)
|
|
)
|
|
)
|
|
(265 (fadeout (frame-time-30 (new 'static 'bfloat :data 15.0))))
|
|
)
|
|
:cut-list '(51 102 226)
|
|
: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 'ljakdax
|
|
: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 'ljakdax
|
|
: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 "air-train"
|
|
:level 'ctyport
|
|
:art-group "skel-air-train"
|
|
:prefix ""
|
|
:draw-frames '((min max))
|
|
:scissor-frames '((102 max))
|
|
:flags #x1
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
)
|
|
)
|
|
:load-point-obj "ctyport-air-train"
|
|
:end-point-obj "caspad-warp"
|
|
:borrow '()
|
|
:sfx-volume -1.0
|
|
:ambient-volume -1.0
|
|
:music-volume -1.0
|
|
:blackout-end #t
|
|
:peaceful #t
|
|
:music-delay 1500.0
|
|
:save #t
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(scene-method-16 (new 'static 'scene
|
|
:name "city-air-train-in-nest"
|
|
:extra #f
|
|
:info #f
|
|
:mask-to-clear #x1282000
|
|
:entity "scene-stage-87"
|
|
:art-group "scenecamera"
|
|
:anim "city-air-train-in-nest"
|
|
:parts 3
|
|
:command-list '((0
|
|
(kill "air-train-1")
|
|
(fadein (frame-time-30 (new 'static 'bfloat :data 10.0)))
|
|
(part-tracker
|
|
"group-airtrain-thruster-off"
|
|
entity
|
|
"air-train"
|
|
joint
|
|
"thruster_l"
|
|
track
|
|
#t
|
|
duration
|
|
(frame-range 0 102)
|
|
)
|
|
(part-tracker
|
|
"group-airtrain-thruster-off"
|
|
entity
|
|
"air-train"
|
|
joint
|
|
"thruster_r"
|
|
track
|
|
#t
|
|
duration
|
|
(frame-range 0 102)
|
|
)
|
|
)
|
|
(102
|
|
(part-tracker
|
|
"group-airtrain-thruster"
|
|
entity
|
|
"air-train"
|
|
joint
|
|
"thruster_l"
|
|
track
|
|
#t
|
|
duration
|
|
(frame-range 102 280)
|
|
)
|
|
(part-tracker
|
|
"group-airtrain-thruster"
|
|
entity
|
|
"air-train"
|
|
joint
|
|
"thruster_r"
|
|
track
|
|
#t
|
|
duration
|
|
(frame-range 102 280)
|
|
)
|
|
)
|
|
(265 (fadeout (frame-time-30 (new 'static 'bfloat :data 15.0))))
|
|
)
|
|
:cut-list '(51 102 226)
|
|
: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 'ljakdax
|
|
: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 'ljakdax
|
|
: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 "air-train"
|
|
:level 'ctyport
|
|
:art-group "skel-air-train"
|
|
:prefix ""
|
|
:draw-frames '((min max))
|
|
:scissor-frames '((102 max))
|
|
:flags #x1
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
)
|
|
)
|
|
:load-point-obj "ctyport-air-train"
|
|
:end-point-obj "nest-warp"
|
|
:borrow '()
|
|
:sfx-volume -1.0
|
|
:ambient-volume -1.0
|
|
:music-volume -1.0
|
|
:blackout-end #t
|
|
:peaceful #t
|
|
:music-delay 1500.0
|
|
:save #t
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(scene-method-16 (new 'static 'scene
|
|
:name "city-air-train-out"
|
|
:extra #f
|
|
:info #f
|
|
:mask-to-clear #x1282000
|
|
:entity "scene-stage-87"
|
|
:art-group "scenecamera"
|
|
:anim "city-air-train-out"
|
|
:parts 2
|
|
:command-list '((0
|
|
(kill "air-train-1")
|
|
(fadein (frame-time-30 (new 'static 'bfloat :data 10.0)))
|
|
(part-tracker
|
|
"group-airtrain-thruster"
|
|
entity
|
|
"air-train"
|
|
joint
|
|
"thruster_l"
|
|
track
|
|
#t
|
|
duration
|
|
(frame-range 0 98)
|
|
)
|
|
(part-tracker
|
|
"group-airtrain-thruster"
|
|
entity
|
|
"air-train"
|
|
joint
|
|
"thruster_r"
|
|
track
|
|
#t
|
|
duration
|
|
(frame-range 0 98)
|
|
)
|
|
)
|
|
(98
|
|
(part-tracker
|
|
"group-airtrain-thruster-off"
|
|
entity
|
|
"air-train"
|
|
joint
|
|
"thruster_l"
|
|
track
|
|
#t
|
|
duration
|
|
(frame-range 98 240)
|
|
)
|
|
(part-tracker
|
|
"group-airtrain-thruster-off"
|
|
entity
|
|
"air-train"
|
|
joint
|
|
"thruster_r"
|
|
track
|
|
#t
|
|
duration
|
|
(frame-range 98 240)
|
|
)
|
|
)
|
|
(230 (fadeout (frame-time-30 (new 'static 'bfloat :data 10.0))))
|
|
)
|
|
:cut-list '(98 188)
|
|
: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 'ljakdax
|
|
: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 'ljakdax
|
|
: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 "air-train"
|
|
:level 'ctyport
|
|
:art-group "skel-air-train"
|
|
:prefix ""
|
|
:draw-frames '((min max))
|
|
:scissor-frames '()
|
|
:flags #x1
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
)
|
|
)
|
|
:load-point-obj "ctyport-air-train"
|
|
:end-point-obj "ctyport-warp"
|
|
:borrow '()
|
|
:sfx-volume -1.0
|
|
:ambient-volume -1.0
|
|
:music-volume -1.0
|
|
:blackout-end #t
|
|
:peaceful #t
|
|
:music-delay 1500.0
|
|
:save #t
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(scene-method-16
|
|
(new 'static 'scene
|
|
:name "city-ashelin-drop-off"
|
|
:extra #f
|
|
:info #f
|
|
:mask-to-clear #x1282000
|
|
:entity "scene-stage-87"
|
|
:art-group "scenecamera"
|
|
:anim "city-ashelin-drop-off"
|
|
:parts 3
|
|
:command-list '((0
|
|
(kill "air-train-1")
|
|
(fadein (frame-time-30 (new 'static 'bfloat :data 10.0)))
|
|
(fma-sphere
|
|
(nav kill-once)
|
|
sphere
|
|
(new 'static 'vector :x 1585152.0 :y 31539.2 :z 7225344.0 :w 26624.0)
|
|
duration
|
|
(frame-range (new 'static 'bfloat) (new 'static 'bfloat :data 9.0))
|
|
)
|
|
(fma-sphere
|
|
(nav kill-once)
|
|
sphere
|
|
(new 'static 'vector :x 1570816.0 :y 31539.2 :z 7249920.0 :w 30720.0)
|
|
duration
|
|
(frame-range (new 'static 'bfloat) (new 'static 'bfloat :data 21.0))
|
|
)
|
|
(fma-sphere
|
|
(nav kill-once)
|
|
sphere
|
|
(new 'static 'vector :x 1556480.0 :y 31539.2 :z 7278592.0 :w 34816.0)
|
|
duration
|
|
(frame-range (new 'static 'bfloat) (new 'static 'bfloat :data 48.0))
|
|
)
|
|
(fma-sphere (nav kill-once) sphere (new 'static 'vector :x 1542144.0 :y 31539.2 :z 7303168.0 :w 34816.0))
|
|
(fma-sphere
|
|
(nav kill-once)
|
|
sphere
|
|
(new 'static 'vector :x 1527808.0 :y 31539.2 :z 7331840.0 :w 34816.0)
|
|
duration
|
|
(frame-range (new 'static 'bfloat) (new 'static 'bfloat :data 208.0))
|
|
)
|
|
(fma-sphere
|
|
(nav kill-once)
|
|
sphere
|
|
(new 'static 'vector :x 1499136.0 :y 31539.2 :z 7360512.0 :w 34816.0)
|
|
duration
|
|
(frame-range (new 'static 'bfloat) (new 'static 'bfloat :data 225.0))
|
|
)
|
|
(fma-sphere
|
|
(nav kill-once)
|
|
sphere
|
|
(new 'static 'vector :x 1486848.0 :y 31539.2 :z 7380992.0 :w 38912.0)
|
|
duration
|
|
(frame-range (new 'static 'bfloat) (new 'static 'bfloat :data 233.0))
|
|
)
|
|
(fma-sphere
|
|
(nav kill-once)
|
|
sphere
|
|
(new 'static 'vector :x 1451212.8 :y 31539.2 :z 7389184.0 :w 38912.0)
|
|
duration
|
|
(frame-range (new 'static 'bfloat) (new 'static 'bfloat :data 245.0))
|
|
)
|
|
(fma-sphere
|
|
(nav kill-once)
|
|
sphere
|
|
(new 'static 'vector :x 1409433.6 :y 31539.2 :z 7412531.0 :w 38912.0)
|
|
duration
|
|
(frame-range (new 'static 'bfloat) (new 'static 'bfloat :data 245.0))
|
|
)
|
|
(fma-sphere
|
|
(nav kill-once)
|
|
sphere
|
|
(new 'static 'vector :x 1518592.0 :y 31539.2 :z 7317504.0 :w 22528.0)
|
|
duration
|
|
(frame-range (new 'static 'bfloat) (new 'static 'bfloat :data 295.0))
|
|
)
|
|
(fma-sphere (nav kill-once) sphere (new 'static 'vector :x 1525350.4 :y 31539.2 :z 7272857.5 :w 17203.2))
|
|
)
|
|
(177 (part-tracker
|
|
"group-warp-hellcat-thruster"
|
|
entity
|
|
"hellcat"
|
|
joint
|
|
"main"
|
|
track
|
|
#t
|
|
duration
|
|
(frame-range 177 295)
|
|
)
|
|
)
|
|
(290 (fadeout (frame-time-30 (new 'static 'bfloat :data 10.0))))
|
|
)
|
|
:cut-list '(115 177)
|
|
: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 'ljkdxash
|
|
: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 'ljkdxash
|
|
: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 'ljkdxash
|
|
: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 "hellcat"
|
|
:level 'lwidea
|
|
:art-group "skel-hellcat"
|
|
:prefix ""
|
|
:draw-frames '((min max))
|
|
:scissor-frames '()
|
|
:flags #x1
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
)
|
|
)
|
|
:load-point-obj "ctyport-air-train-ashelin"
|
|
:end-point-obj "ctyport-start"
|
|
:borrow '((ctywide 1 lwidea special))
|
|
:sfx-volume -1.0
|
|
:ambient-volume -1.0
|
|
:music-volume -1.0
|
|
:blackout-end #t
|
|
:peaceful #t
|
|
:music-delay 1500.0
|
|
:save #t
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(scene-method-16 (new 'static 'scene
|
|
:name "caspad-air-train-in"
|
|
:extra #f
|
|
:info #f
|
|
:mask-to-clear #x1282000
|
|
:entity "air-train-3"
|
|
:art-group "scenecamera"
|
|
:anim "caspad-air-train-in"
|
|
:parts 4
|
|
:command-list '((0
|
|
(kill "air-train-3")
|
|
(fadein (frame-time-30 (new 'static 'bfloat :data 5.0)))
|
|
(part-tracker
|
|
"group-airtrain-thruster-off"
|
|
entity
|
|
"air-train"
|
|
joint
|
|
"thruster_l"
|
|
track
|
|
#t
|
|
duration
|
|
(frame-range 0 285)
|
|
)
|
|
(part-tracker
|
|
"group-airtrain-thruster-off"
|
|
entity
|
|
"air-train"
|
|
joint
|
|
"thruster_r"
|
|
track
|
|
#t
|
|
duration
|
|
(frame-range 0 285)
|
|
)
|
|
)
|
|
(285
|
|
(part-tracker
|
|
"group-airtrain-thruster"
|
|
entity
|
|
"air-train"
|
|
joint
|
|
"thruster_l"
|
|
track
|
|
#t
|
|
duration
|
|
(frame-range 285 480)
|
|
)
|
|
(part-tracker
|
|
"group-airtrain-thruster"
|
|
entity
|
|
"air-train"
|
|
joint
|
|
"thruster_r"
|
|
track
|
|
#t
|
|
duration
|
|
(frame-range 285 480)
|
|
)
|
|
)
|
|
(293 (part-tracker
|
|
"group-airtrain-dust-plume"
|
|
entity
|
|
"particleman"
|
|
joint
|
|
"particleA"
|
|
track
|
|
#t
|
|
duration
|
|
(frame-range 293 370)
|
|
)
|
|
)
|
|
(470 (fadeout (frame-time-30 10)))
|
|
)
|
|
:cut-list '(93 285)
|
|
: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 'caspad
|
|
: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 'caspad
|
|
: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 "air-train"
|
|
:level 'caspad
|
|
:art-group "skel-air-train"
|
|
:prefix ""
|
|
:draw-frames '((min max))
|
|
:scissor-frames '()
|
|
:flags #x1
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
)
|
|
(new 'static 'scene-actor
|
|
:name "particleman"
|
|
:level 'caspad
|
|
:art-group "skel-particleman"
|
|
:prefix ""
|
|
:draw-frames '((min max))
|
|
:scissor-frames '()
|
|
:flags #x1
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
)
|
|
)
|
|
:load-point-obj "caspad-warp"
|
|
:end-point-obj "ctyport-warp"
|
|
:borrow '()
|
|
:sfx-volume -1.0
|
|
:ambient-volume -1.0
|
|
:music-volume -1.0
|
|
:blackout-end #t
|
|
:peaceful #t
|
|
:music-delay 1500.0
|
|
:save #t
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(scene-method-16 (new 'static 'scene
|
|
:name "caspad-air-train-out"
|
|
:extra #f
|
|
:info #f
|
|
:mask-to-clear #x1282000
|
|
:entity "air-train-3"
|
|
:art-group "scenecamera"
|
|
:anim "caspad-air-train-out"
|
|
:parts 3
|
|
:command-list '((0
|
|
(kill "air-train-3")
|
|
(fadein (frame-time-30 (new 'static 'bfloat :data 10.0)))
|
|
(part-tracker
|
|
"group-airtrain-thruster"
|
|
entity
|
|
"air-train"
|
|
joint
|
|
"thruster_l"
|
|
track
|
|
#t
|
|
duration
|
|
(frame-range 0 195)
|
|
)
|
|
(part-tracker
|
|
"group-airtrain-thruster"
|
|
entity
|
|
"air-train"
|
|
joint
|
|
"thruster_r"
|
|
track
|
|
#t
|
|
duration
|
|
(frame-range 0 195)
|
|
)
|
|
)
|
|
(80 (part-tracker
|
|
"group-airtrain-dust-plume"
|
|
entity
|
|
"particleman"
|
|
joint
|
|
"particleA"
|
|
track
|
|
#t
|
|
duration
|
|
(frame-range 80 190)
|
|
)
|
|
)
|
|
(180
|
|
(part-tracker
|
|
"group-airtrain-thruster-off"
|
|
entity
|
|
"air-train"
|
|
joint
|
|
"thruster_l"
|
|
track
|
|
#t
|
|
duration
|
|
(frame-range 180 295)
|
|
)
|
|
(part-tracker
|
|
"group-airtrain-thruster-off"
|
|
entity
|
|
"air-train"
|
|
joint
|
|
"thruster_r"
|
|
track
|
|
#t
|
|
duration
|
|
(frame-range 180 295)
|
|
)
|
|
)
|
|
(285 (fadeout (frame-time-30 (new 'static 'bfloat :data 10.0))))
|
|
(10000 (apply <lambda at L1>))
|
|
)
|
|
:cut-list '(180)
|
|
: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 'caspad
|
|
: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 'caspad
|
|
: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 "air-train"
|
|
:level 'caspad
|
|
:art-group "skel-air-train"
|
|
:prefix ""
|
|
:draw-frames '((min max))
|
|
:scissor-frames '()
|
|
:flags #x1
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
)
|
|
(new 'static 'scene-actor
|
|
:name "particleman"
|
|
:level 'caspad
|
|
:art-group "skel-particleman"
|
|
:prefix ""
|
|
:draw-frames '((min max))
|
|
:scissor-frames '()
|
|
:flags #x1
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
)
|
|
)
|
|
:load-point-obj "caspad-warp"
|
|
:end-point-obj "caspad-warp"
|
|
:borrow '()
|
|
:sfx-volume -1.0
|
|
:ambient-volume -1.0
|
|
:music-volume -1.0
|
|
:blackout-end #t
|
|
:peaceful #t
|
|
:music-delay 1500.0
|
|
:save #t
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(scene-method-16 (new 'static 'scene
|
|
:name "nest-air-train-in"
|
|
:extra #f
|
|
:info #f
|
|
:mask-to-clear #x1282000
|
|
:entity "scene-stage-90"
|
|
:art-group "scenecamera"
|
|
:anim "nest-air-train-in"
|
|
:parts 3
|
|
:command-list '((0
|
|
(kill "air-train-4")
|
|
(fadein (frame-time-30 (new 'static 'bfloat :data 5.0)))
|
|
(part-tracker
|
|
"group-airtrain-thruster-off"
|
|
entity
|
|
"air-train"
|
|
joint
|
|
"thruster_l"
|
|
track
|
|
#t
|
|
duration
|
|
(frame-range 0 88)
|
|
)
|
|
(part-tracker
|
|
"group-airtrain-thruster-off"
|
|
entity
|
|
"air-train"
|
|
joint
|
|
"thruster_r"
|
|
track
|
|
#t
|
|
duration
|
|
(frame-range 0 88)
|
|
)
|
|
)
|
|
(88
|
|
(part-tracker
|
|
"group-airtrain-thruster"
|
|
entity
|
|
"air-train"
|
|
joint
|
|
"thruster_l"
|
|
track
|
|
#t
|
|
duration
|
|
(frame-range 88 280)
|
|
)
|
|
(part-tracker
|
|
"group-airtrain-thruster"
|
|
entity
|
|
"air-train"
|
|
joint
|
|
"thruster_r"
|
|
track
|
|
#t
|
|
duration
|
|
(frame-range 88 280)
|
|
)
|
|
)
|
|
(75 (part-tracker
|
|
"group-airtrain-dust-plume"
|
|
entity
|
|
"particleman"
|
|
joint
|
|
"particleA"
|
|
track
|
|
#t
|
|
duration
|
|
(frame-range 90 170)
|
|
)
|
|
)
|
|
(265 (fadeout (frame-time-30 (new 'static 'bfloat :data 15.0))))
|
|
)
|
|
:cut-list '(30 88)
|
|
: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 'nestb
|
|
:art-group "skel-sidekick-highres"
|
|
:prefix ""
|
|
:draw-frames '((min 117))
|
|
:scissor-frames '()
|
|
:flags #x1
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
)
|
|
(new 'static 'scene-actor
|
|
:name "darkjak-highres"
|
|
:level 'nestb
|
|
:art-group "skel-darkjak-highres"
|
|
:prefix ""
|
|
:draw-frames '((min 117))
|
|
:scissor-frames '()
|
|
:flags #x1
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
)
|
|
(new 'static 'scene-actor
|
|
:name "air-train"
|
|
:level 'nest
|
|
:art-group "skel-air-train"
|
|
:prefix ""
|
|
:draw-frames '((min max))
|
|
:scissor-frames '((30 88))
|
|
:flags #x1
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
)
|
|
(new 'static 'scene-actor
|
|
:name "particleman"
|
|
:level 'nestb
|
|
:art-group "skel-particleman"
|
|
:prefix ""
|
|
:draw-frames '((min max))
|
|
:scissor-frames '()
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
)
|
|
)
|
|
:load-point-obj "nest-warp"
|
|
:end-point-obj "ctyport-warp"
|
|
:borrow '()
|
|
:sfx-volume -1.0
|
|
:ambient-volume -1.0
|
|
:music-volume -1.0
|
|
:blackout-end #t
|
|
:peaceful #t
|
|
:music-delay 1500.0
|
|
:save #t
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(scene-method-16 (new 'static 'scene
|
|
:name "nest-air-train-out"
|
|
:extra #f
|
|
:info #f
|
|
:mask-to-clear #x1282000
|
|
:entity "scene-stage-90"
|
|
:art-group "scenecamera"
|
|
:anim "nest-air-train-out"
|
|
:parts 3
|
|
:command-list '((0
|
|
(kill "air-train-4")
|
|
(fadein (frame-time-30 (new 'static 'bfloat :data 15.0)))
|
|
(part-tracker
|
|
"group-airtrain-thruster"
|
|
entity
|
|
"air-train"
|
|
joint
|
|
"thruster_l"
|
|
track
|
|
#t
|
|
duration
|
|
(frame-range 0 242)
|
|
)
|
|
(part-tracker
|
|
"group-airtrain-thruster"
|
|
entity
|
|
"air-train"
|
|
joint
|
|
"thruster_r"
|
|
track
|
|
#t
|
|
duration
|
|
(frame-range 0 242)
|
|
)
|
|
)
|
|
(130 (part-tracker
|
|
"group-airtrain-dust-plume"
|
|
entity
|
|
"particleman"
|
|
joint
|
|
"particleA"
|
|
track
|
|
#t
|
|
duration
|
|
(frame-range 130 296)
|
|
)
|
|
)
|
|
(232
|
|
(part-tracker
|
|
"group-airtrain-thruster-off"
|
|
entity
|
|
"air-train"
|
|
joint
|
|
"thruster_l"
|
|
track
|
|
#t
|
|
duration
|
|
(frame-range 232 300)
|
|
)
|
|
(part-tracker
|
|
"group-airtrain-thruster-off"
|
|
entity
|
|
"air-train"
|
|
joint
|
|
"thruster_r"
|
|
track
|
|
#t
|
|
duration
|
|
(frame-range 232 300)
|
|
)
|
|
)
|
|
(295 (fadeout (frame-time-30 (new 'static 'bfloat :data 5.0))))
|
|
)
|
|
:cut-list '(232)
|
|
: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 'nestb
|
|
: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 "darkjak-highres"
|
|
:level 'nestb
|
|
:art-group "skel-darkjak-highres"
|
|
:prefix ""
|
|
:draw-frames '((min max))
|
|
:scissor-frames '()
|
|
:flags #x1
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
)
|
|
(new 'static 'scene-actor
|
|
:name "air-train"
|
|
:level 'nest
|
|
:art-group "skel-air-train"
|
|
:prefix ""
|
|
:draw-frames '((min max))
|
|
:scissor-frames '()
|
|
:flags #x1
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
)
|
|
(new 'static 'scene-actor
|
|
:name "particleman"
|
|
:level 'nestb
|
|
:art-group "skel-particleman"
|
|
:prefix ""
|
|
:draw-frames '((min max))
|
|
:scissor-frames '()
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
)
|
|
)
|
|
:load-point-obj "nest-warp"
|
|
:end-point-obj "nest-warp"
|
|
:borrow '()
|
|
:sfx-volume -1.0
|
|
:ambient-volume -1.0
|
|
:music-volume -1.0
|
|
:blackout-end #t
|
|
:peaceful #t
|
|
:music-delay 1500.0
|
|
:save #t
|
|
)
|
|
)
|