Files
jak-project/goal_src/jak2/levels/forest/forest-scenes.gc
T
Hat Kid 6a06291e6e jak1, jak2: add get-texture macro (#3778)
Ports the `get-texture` macro added in Jak 3 to Jak 1 and 2.
2024-11-26 11:29:34 +01:00

481 lines
16 KiB
Common Lisp

;;-*-Lisp-*-
(in-package goal)
;; name: forest-scenes.gc
;; name in dgo: forest-scenes
;; dgos: FOR
;; DECOMP BEGINS
(defpartgroup group-forest-seed-glow
:id 495
:duration (seconds 0.035)
:linger-duration (seconds 1.5)
:bounds (static-bspherem 0 0 0 2)
:parts ((sp-item 209))
)
(defpart 2172
:init-specs ((:texture (glow-soft effects))
(:num 1.0)
(:scale-x (meters 1.5))
(:rot-x (degrees 11.25))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 196.0)
(:g 255.0)
(:b 0.0)
(:a 16.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 4096.0)
)
)
(defpartgroup group-forest-hover-jet
:id 496
:linger-duration (seconds 1.5)
:flags (unk-4 unk-6)
:bounds (static-bspherem 0 0 0 12)
:rotate ((degrees 180) (degrees 0) (degrees 0))
:parts ((sp-item 2173 :flags (bit7))
(sp-item 2174 :flags (bit7))
(sp-item 2175 :flags (bit7))
(sp-item 2176 :flags (bit7))
(sp-item 2177 :flags (bit7))
)
)
(defpart 2173
:init-specs ((:texture (glow effects))
(:num 1.0)
(:y (meters -0.3))
(:scale-x (meters 0.6) (meters 0.3))
(:rot-x (degrees 2.25))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 64.0 128.0)
(:b 0.0)
(:a 64.0 8.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 409.6)
)
)
(defpart 2174
:init-specs ((:texture (glow-soft effects))
(:num 1.0)
(:y (meters -0.3))
(:scale-x (meters 2.5) (meters 0.4))
(:rot-x (degrees 2.25))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 64.0 128.0)
(:b 0.0)
(:a 24.0 2.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 409.6)
)
)
(defpart 2175
:init-specs ((:texture (bigpuff effects))
(:num 1.0 4.0)
(:y (meters 0) (meters -0.25))
(:scale-x (meters 0.2) (meters 0.2))
(:rot-z (degrees 0) 1 (degrees 180))
(:scale-y (meters 1) (meters 0.6))
(:r 192.0)
(:g 64.0)
(:b 0.0)
(:a 0.0 16.0)
(:vel-y (meters -0.05) (meters -0.016666668))
(:scalevel-x (meters 0.033333335))
(:scalevel-y (meters 0.006666667))
(:fade-r -2.0)
(:fade-g 2.0)
(:fade-b 5.0)
(:fade-a 1.28)
(:accel-x (meters 0) (meters 0.0016666667))
(:accel-y (meters 0.00016666666) (meters 0.0005))
(:friction 0.94)
(:timer (seconds 1))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-12 sp-cpuinfo-flag-14))
(:next-time (seconds 0.085))
(:next-launcher 2178)
(:rotate-y (degrees 0) (degrees 360))
)
)
(defpart 2178
:init-specs ((:r 64.0 64.0)
(:g 64.0 64.0)
(:b 64.0 64.0)
(:fade-r 0.0)
(:fade-g 0.0)
(:fade-b 0.0)
(:fade-a -0.32 -0.256)
)
)
(defpart 2176
:init-specs ((:texture (hotdot effects))
(:num 0.1 0.5)
(:x (meters 0) (meters 0.1))
(:y (meters 0.25) (meters -0.5))
(:scale-x (meters 0.2))
(:scale-y :copy scale-x)
(:r 192.0 64.0)
(:g 0.0 128.0)
(:b 0.0)
(:a 128.0)
(:omega (degrees 0.0225) (degrees 0.0225))
(:vel-y (meters -0.033333335) (meters -0.026666667))
(:scalevel-x (meters -0.005))
(:scalevel-y :copy scalevel-x)
(:fade-g 0.0)
(:accel-x (meters 0) (meters 0.0016666667))
(:accel-y (meters 0.00016666666) (meters 0.0005))
(:friction 0.96)
(:timer (seconds 0.167) (seconds 0.247))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-12 sp-cpuinfo-flag-14))
(:func 'sparticle-motion-blur)
(:next-time (seconds 0.1))
(:next-launcher 2179)
(:rotate-y (degrees 0) (degrees 360))
)
)
(defpart 2179
:init-specs ((:scalevel-x (meters 0)) (:scalevel-y (meters 0)))
)
(defpart 2177
:init-specs ((:num 0.4)
(:rot-x 8)
(:r 1638.4)
(:g 1331.2)
(:b 1433.6)
(:vel-y (meters -0.05) (meters -0.016666668))
(:fade-r 32.768)
(:fade-g 28.671999)
(:fade-b 26.623999)
(:accel-x (meters 0) (meters 0.0016666667))
(:friction 0.94)
(:timer (seconds 0.335))
(:flags (distort))
(:next-time (seconds 0.167))
(:next-launcher 2180)
(:rotate-y (degrees 0) (degrees 360))
)
)
(defpart 2180
:init-specs ((:fade-r 0.0) (:fade-g 0.0) (:fade-b -4.096))
)
(scene-method-16 (new 'static 'scene
:name "forest-protect-samos-intro-b"
:extra #f
:info #f
:mask-to-clear (process-mask movie enemy platform projectile)
:entity "scene-stage-50"
:art-group "scenecamera"
:anim "forest-protect-samos-intro-b"
:parts 6
:command-list '((0
(part-tracker
"group-forest-seed-glow"
entity
"life-seed"
joint
"main"
track
#t
duration
(frame-range (new 'static 'bfloat) (new 'static 'bfloat :data 10000.0))
)
(kill "youngsamos-npc-7")
(fadein (frame-time-30 10))
)
(1 (joint-eval start-seed-effect entity "life-seed"))
(393
(part-tracker
"group-forest-hover-jet"
entity
"crimson-guard-hover"
joint
"Lengine"
track
#t
duration
(frame-range 393 523)
)
(part-tracker
"group-forest-hover-jet"
entity
"crimson-guard-hover"
joint
"Rengine"
track
#t
duration
(frame-range 393 523)
)
(part-tracker
"group-forest-hover-jet"
entity
"crimson-guard-hover-b"
joint
"Lengine"
track
#t
duration
(frame-range 393 523)
)
(part-tracker
"group-forest-hover-jet"
entity
"crimson-guard-hover-b"
joint
"Rengine"
track
#t
duration
(frame-range 393 523)
)
(part-tracker
"group-forest-hover-jet"
entity
"crimson-guard-hover-c"
joint
"Lengine"
track
#t
duration
(frame-range 393 523)
)
(part-tracker
"group-forest-hover-jet"
entity
"crimson-guard-hover-c"
joint
"Rengine"
track
#t
duration
(frame-range 393 523)
)
)
(10000 (begin (task-close! "forest-protect-meeting")))
)
:cut-list '(90 205 298 393 485 523)
: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 'forestb
: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 'forestb
: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 "youngsamos-highres"
:level 'forestb
:art-group "skel-youngsamos-highres"
:prefix ""
:draw-frames '((min max))
:scissor-frames '()
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "life-seed"
:level 'forestb
:art-group "skel-life-seed"
:prefix ""
:draw-frames '((min max))
:scissor-frames '()
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "crimson-guard-hover"
:level 'forestb
:art-group "skel-crimson-guard-hover"
:prefix ""
:draw-frames '((min max))
:scissor-frames '()
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "crimson-guard-hover-b"
:level 'forestb
:art-group "skel-crimson-guard-hover"
:prefix "b-"
:draw-frames '((min max))
:scissor-frames '()
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "crimson-guard-hover-c"
:level 'forestb
:art-group "skel-crimson-guard-hover"
:prefix "c-"
:draw-frames '((min max))
:scissor-frames '()
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
)
:load-point-obj "forest-tree"
:end-point-obj #f
:borrow '()
:sfx-volume -1.0
:ambient-volume -1.0
:music-volume -1.0
:blackout-end #t
:peaceful #t
:save #t
)
)
(scene-method-16 (new 'static 'scene
:name "forest-protect-samos-res"
:extra #f
:info #f
:mask-to-clear (process-mask movie enemy platform projectile)
:entity "scene-stage-50"
:art-group "scenecamera"
:anim "forest-protect-samos-res"
:parts 7
:command-list '((0
(part-tracker
"group-forest-seed-glow"
entity
"life-seed"
joint
"main"
track
#t
duration
(frame-range (new 'static 'bfloat) (new 'static 'bfloat :data 10000.0))
)
(fadein (frame-time-30 5))
)
(1 (send-event "forest-youngsamos-1" 'die-fast))
(1 (joint-eval start-seed-effect entity "life-seed"))
(820 (fadeout (frame-time-30 5)))
(10000 (task-close! "forest-protect-resolution"))
)
:cut-list '(66 449 530 678)
: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 'forestb
: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 'forestb
:art-group "skel-jak-highres"
:prefix ""
:draw-frames '((min 530) (678 max))
:scissor-frames '()
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "youngsamos-highres"
:level 'forestb
:art-group "skel-youngsamos-highres"
:prefix ""
:draw-frames '((min 449) (530 max))
:scissor-frames '()
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "life-seed"
:level 'forestb
:art-group "skel-life-seed"
:prefix ""
:draw-frames '((min max))
:scissor-frames '()
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
)
:load-point-obj "forest-tree"
: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
)
)