jak-project/goal_src/jak2/levels/common/scene-looper.gc
ManDude 324def1303
split new pc features in some files into their own code files + address some old issues + ripple graphics improvements (#2216)
Moves PC-specific entity and debug menu things to `entity-debug.gc` and
`default-menu-pc.gc` respectively and makes `(declare-file (debug))`
work as it should (no need to wrap the entire file in `(when
*debug-segment*` now!).

Also changes the DGO descriptor format so that it's less verbose. It
might break custom levels, but the format change is very simple so it
should not be difficult for anyone to update to the new format. Sadly,
you lose the completely useless ability to use DGO object names that
don't match the source file name. The horror!

I've also gone ahead and expanded the force envmap option to also force
the ripple effect to be active. I did not notice any performance or
visual drawbacks from this. Gets rid of some distracting LOD and some
water pools appearing super flat (and pitch back for dark eco).

Fixes #1424
2023-02-13 21:39:14 +00:00

1070 lines
40 KiB
Common Lisp

;;-*-Lisp-*-
(in-package goal)
;; name: scene-looper.gc
;; name in dgo: scene-looper
;; dgos: GAME, COMMON
;; DECOMP BEGINS
;; this file is debug only
(declare-file (debug))
(deftype scene-looper (process)
((scene-name symbol :offset-assert 128)
)
:heap-base #x10
:method-count-assert 15
:size-assert #x84
:flag-assert #xf00100084
(:methods
(idle () _type_ :state 14)
)
)
(defstate idle (scene-looper)
:virtual #t
:exit (behavior ()
(kill-by-type scene-player *active-pool*)
(none)
)
:code (behavior ()
(until #f
(let ((player (ppointer->handle
(process-spawn scene-player :init scene-player-init (symbol->string (-> self scene-name)) #t #f)
)
)
)
(while (handle->process (the-as handle player))
(suspend)
)
)
)
#f
(none)
)
)
;; WARN: Return type mismatch object vs none.
(defbehavior scene-looper-init-by-other scene-looper ((scene-name symbol))
"Sets the `scene-name` with the given [[symbol]], the [[scene-looper]] will then idle"
(set! (-> self scene-name) scene-name)
(go-virtual idle)
(none)
)
(defun stop-loop-scene ()
"Kills the current [[scene-looper]]
@see [[kill-by-type]]"
(kill-by-type scene-looper *active-pool*)
)
;; WARN: Return type mismatch (pointer process) vs (pointer scene-looper).
(defun loop-scene ((scene-name symbol))
"Stops looping the current scene, then spawns a new [[scene-looper]] for the given scene
@see [[stop-loop-scene]"
(stop-loop-scene)
(process-spawn scene-looper scene-name)
)
(scene-method-16 (new 'static 'scene
:name "test-scene"
:extra #f
:info #f
:mask-to-clear #x1282000
:entity "scene-stage-10"
:art-group "scenecamera"
:anim "test-scene"
:parts -1
:command-list '((0 (kill "flag-1"))
(0 (kill "ruins-precipice-2"))
(596 (part-tracker
"group-tower-test"
entity
"ruins-tower-rp"
joint
"a_explode"
track
#t
duration
(frame-range (new 'static 'bfloat :data 596.0) (new 'static 'bfloat :data 746.0))
)
)
)
:cut-list '(126 156 221 266 341 426 476 583 638 675 741 821)
: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 'sagehut
: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 'sagehut
: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 "awning"
:level 'ruins
:art-group "skel-awning"
:prefix ""
:draw-frames '((min max))
:scissor-frames '((min max))
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "movie-flag"
:level 'ruins
:art-group "skel-movie-flag"
:prefix ""
:draw-frames '((min max))
:scissor-frames '()
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "precipice-a"
:level 'ruins
:art-group "skel-precipice-a"
:prefix ""
:draw-frames '((min max))
:scissor-frames '((min max))
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "precipice-b"
:level 'ruins
:art-group "skel-precipice-b"
:prefix ""
:draw-frames '((min max))
:scissor-frames '((min max))
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "ruins-tower-a"
:level 'sagehut
:art-group "skel-ruins-tower-a"
:prefix ""
:draw-frames '((440 max))
:scissor-frames '((min max))
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "ruins-tower-b"
:level 'sagehut
:art-group "skel-ruins-tower-b"
:prefix ""
:draw-frames '((440 max))
:scissor-frames '((min max))
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "ruins-tower-c"
:level 'sagehut
:art-group "skel-ruins-tower-c"
:prefix ""
:draw-frames '((440 max))
:scissor-frames '((min max))
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "ruins-tower-d"
:level 'sagehut
:art-group "skel-ruins-tower-d"
:prefix ""
:draw-frames '((440 max))
:scissor-frames '((min max))
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "ruins-tower-e"
:level 'sagehut
:art-group "skel-ruins-tower-e"
:prefix ""
:draw-frames '((440 max))
:scissor-frames '((min max))
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "ruins-tower-f"
:level 'sagehut
:art-group "skel-ruins-tower-f"
:prefix ""
:draw-frames '((440 max))
:scissor-frames '((min max))
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "ruins-tower-rp"
:level 'sagehut
:art-group "skel-ruins-tower-rp"
:prefix ""
:draw-frames '((440 max))
:scissor-frames '((min max))
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "torn-highres"
:level 'sagehut
:art-group "skel-torn-highres"
:prefix ""
:draw-frames '((min max))
:scissor-frames '()
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "zipline"
:level 'ruins
:art-group "skel-zipline"
:prefix ""
:draw-frames '((min max))
:scissor-frames '((min max))
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
)
:load-point-obj "ruins-movie"
:end-point-obj "ruins-movie"
: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 "test-crane-victory"
:extra #f
:info #f
:mask-to-clear #x1282000
:entity "scene-stage-3"
:art-group "scenecamera"
:anim "test-crane-victory"
:parts 1
:command-list '((0 (kill "grunt-egg-d-4"))
(0 (kill "grunt-egg-d-5"))
(0 (kill "crane-1"))
(212 (setting-set task-mask mode 'abs mask 65536))
(240 (part-tracker
"group-strip-drop-splash"
entity
"dark-eco-pool-3"
duration
(frame-range (new 'static 'bfloat :data 240.0) (new 'static 'bfloat :data 298.0))
)
)
(10000 (task-close! "strip-drop-resolution"))
)
:cut-list '(60 136 185 216 291 346 379)
: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 'vinroom
:art-group "skel-sidekick-highres"
:prefix ""
:draw-frames '((min max))
:scissor-frames '()
:light-index #x1e
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "jak-highres"
:level 'vinroom
:art-group "skel-jak-highres"
:prefix ""
:draw-frames '((min max))
:scissor-frames '()
:light-index #x1e
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "board"
:level #f
:art-group "skel-board"
:prefix ""
:draw-frames '((min max))
:scissor-frames '((min max))
:light-index #x1e
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "cable"
:level 'strip
:art-group "skel-cable"
:prefix ""
:draw-frames '((min max))
:scissor-frames '((min max))
:light-index #x1e
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "cranecrate"
:level 'strip
:art-group "skel-cranecrate"
:prefix ""
:draw-frames '((min max))
:scissor-frames '((min max))
:light-index #x1e
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "crane"
:level 'strip
:art-group "skel-crane"
:prefix ""
:draw-frames '((min max))
:scissor-frames '((min max))
:light-index #x1e
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
)
:load-point-obj "strip-start"
:end-point-obj (new 'static 'continue-point
:name "strip"
:level #f
:trans (new 'static 'vector :x 10374168.0 :y 16420.045 :z -300916.75 :w 1.0)
:quat (new 'static 'vector :y 0.0218 :w -0.9997)
:camera-trans (new 'static 'vector :x 10385991.0 :y 37471.027 :z -350573.78 :w 1.0)
:camera-rot (new 'static 'inline-array vector3s 3
(new 'static 'vector3s :data (new 'static 'array float 3 0.9726 0.0 0.2322))
(new 'static 'vector3s :data (new 'static 'array float 3 -0.0281 0.9926 0.1179))
(new 'static 'vector3s :data (new 'static 'array float 3 -0.2305 -0.1212 0.9654))
)
:on-goto #f
:vis-nick 'strip
:want (new 'static 'inline-array level-buffer-state 6
(new 'static 'level-buffer-state :name 'strip :display? 'display :force-vis? #f :force-inside? #f)
(new 'static 'level-buffer-state :name 'vinroom :display? 'special :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 'strip1 'strip2 'strip3)
)
: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 "test-mountain-finditems-intro"
:extra #f
:info #f
:mask-to-clear #x1282000
:entity "scene-stage-32"
:art-group "scenecamera"
:anim "test-mountain-finditems-intro"
:parts 1
:command-list '((0 (kill "jak-highres-7"))
(0 (kill "daxter-highres-8"))
(673 (part-tracker
"group-onin-clap-effect"
entity
"onin-highres"
joint
"LmiddleC"
track
#t
duration
(frame-range 673 700)
)
)
(714 (part-tracker
"group-onin-finger-effect"
entity
"onin-highres"
joint
"LthumbC"
track
#t
duration
(frame-range 714 728)
)
)
(714 (part-tracker
"group-onin-finger-effect"
entity
"onin-highres"
joint
"LindexC"
track
#t
duration
(frame-range 714 730)
)
)
(714 (part-tracker
"group-onin-finger-effect"
entity
"onin-highres"
joint
"LmiddleC"
track
#t
duration
(frame-range 714 725)
)
)
(714 (part-tracker
"group-onin-finger-effect"
entity
"onin-highres"
joint
"LringC"
track
#t
duration
(frame-range 714 720)
)
)
(714 (part-tracker
"group-onin-finger-effect"
entity
"onin-highres"
joint
"LpinkyC"
track
#t
duration
(frame-range 714 715)
)
)
(714 (part-tracker
"group-onin-finger-effect"
entity
"onin-highres"
joint
"RthumbC"
track
#t
duration
(frame-range 714 727)
)
)
(714 (part-tracker
"group-onin-finger-effect"
entity
"onin-highres"
joint
"RindexC"
track
#t
duration
(frame-range 714 730)
)
)
(714 (part-tracker
"group-onin-finger-effect"
entity
"onin-highres"
joint
"RmiddleC"
track
#t
duration
(frame-range 714 725)
)
)
(714 (part-tracker
"group-onin-finger-effect"
entity
"onin-highres"
joint
"RringC"
track
#t
duration
(frame-range 714 720)
)
)
(714 (part-tracker
"group-onin-finger-effect"
entity
"onin-highres"
joint
"RpinkyC"
track
#t
duration
(frame-range 714 715)
)
)
)
:cut-list '()
:wait-ground-time (seconds 1)
:draw-target #f
:abort #t
:actor (new 'static 'boxed-array :type scene-actor
(new 'static 'scene-actor
:name "scenecamera"
:level #f
:art-group "skel-scenecamera"
:prefix ""
:draw-frames '((min max))
:scissor-frames '()
:camera 4
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "sidekick-highres"
:level 'onintent
:art-group "skel-sidekick-highres"
:prefix ""
:draw-frames '((min max))
:scissor-frames '()
:light-index #xa
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "jak-highres"
:level 'onintent
:art-group "skel-jak-highres"
:prefix ""
:draw-frames '((min max))
:scissor-frames '()
:light-index #xa
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "onin-highres"
:level 'onintent
:art-group "skel-onin-highres"
:prefix ""
:draw-frames '((min max))
:scissor-frames '()
:light-index #xa
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "particleman"
:level 'onintent
:art-group "skel-particleman"
:prefix ""
:draw-frames '((min max))
:scissor-frames '()
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "pecker-highres"
:level 'onintent
:art-group "skel-pecker-highres"
:prefix ""
:draw-frames '((min max))
:scissor-frames '()
:light-index #xa
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "son-of-particleman"
:level 'onintent
:art-group "skel-son-of-particleman"
:prefix ""
:draw-frames '((min max))
:scissor-frames '()
:shadow-flags -1
:shadow-volume-joint #f
)
)
:load-point-obj "onintent-start"
: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 "test-fortress-blow-up-ammo-res-b-a"
:extra #f
:info #f
:mask-to-clear #x1282000
:entity "scene-stage-45"
:art-group "scenecamera"
:anim "test-fortress-blow-up-ammo-res-b-a"
:parts 3
:command-list '((0
(send-event "fort-missile-2" 'halt)
(send-event "fort-entry-gate-18" 'open (seconds 20) #t)
(kill "fort-robotank-6")
(kill "fort-entry-gate-14")
(send-event "fort-missile-2" 'die)
)
(267 (part-tracker
"group-fortress-big-explosion"
entity
"particleman"
joint
"particleA"
track
#t
duration
(frame-range 270 370)
)
)
)
:cut-list '(356 381 431 457 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 'fordumpc
: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 'fordumpc
: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 "particleman"
:level 'fordumpc
:art-group "skel-particleman"
:prefix ""
:draw-frames '((min max))
:scissor-frames '()
:shadow-flags -1
:shadow-volume-joint #f
)
)
:load-point-obj "fordumpc-explode-movie"
:end-point-obj "ctysluma-fort-end"
: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 "test-fortress-blast"
:extra #f
:info #f
:mask-to-clear #x1282000
:entity "scene-stage-45"
:art-group "scenecamera"
:anim "test-fortress-blast"
:parts 1
:command-list '((0
(send-event "fort-missile-2" 'halt)
(send-event "fort-entry-gate-14" 'open (seconds 20) #t)
(send-event "fort-entry-gate-18" 'open (seconds 20) #t)
(kill "fort-robotank-6")
)
(365 (part-tracker
"group-fortress-side-explosion"
entity
"particleman"
joint
"particleA"
track
#t
duration
(frame-range 370 479)
)
)
)
:cut-list '(356 381 431 457 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 'fordumpc
: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 'fordumpc
: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 "particleman"
:level 'fordumpc
:art-group "skel-particleman"
:prefix ""
:draw-frames '((min max))
:scissor-frames '()
:shadow-flags -1
:shadow-volume-joint #f
)
)
:load-point-obj "fordumpc-explode-movie"
:end-point-obj "ctysluma-fort-end"
: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 "cover-test-1"
:extra #f
:info #f
:mask-to-clear #x1282000
:entity "ashelin-highres-4"
:art-group "scenecamera"
:anim "cover-test-1"
:parts 2
:command-list '((0 (kill "ashelin-highres-4")))
:cut-list '()
:wait-ground-time (seconds 1)
:draw-target #f
:abort #t
:actor (new 'static 'boxed-array :type scene-actor
(new 'static 'scene-actor
:name "scenecamera"
:level #f
:art-group "skel-scenecamera"
:prefix ""
:draw-frames '((min max))
:scissor-frames '()
:camera 4
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "sidekick-highres"
:level 'chartest
: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 'chartest
: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 "gun"
:level #f
:art-group "skel-gun"
:prefix ""
:draw-frames '((min max))
:scissor-frames '()
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "board"
:level #f
:art-group "skel-board"
:prefix ""
:draw-frames '((min max))
:scissor-frames '()
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
)
:load-point-obj "chartest-1"
: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 "cover-test-2"
:extra #f
:info #f
:mask-to-clear #x1282000
:entity "ashelin-highres-4"
:art-group "scenecamera"
:anim "cover-test-2"
:parts 2
:command-list '((0 (kill "ashelin-highres-4")))
:cut-list '()
:wait-ground-time (seconds 1)
:draw-target #f
:abort #t
:actor (new 'static 'boxed-array :type scene-actor
(new 'static 'scene-actor
:name "scenecamera"
:level #f
:art-group "skel-scenecamera"
:prefix ""
:draw-frames '((min max))
:scissor-frames '()
:camera 4
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "sidekick-highres"
:level 'chartest
: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 'chartest
:art-group "skel-jak-highres"
:prefix ""
:draw-frames '((min max))
:scissor-frames '()
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
)
:load-point-obj "chartest-1"
: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 "test-daxter-blend"
:extra #f
:info #f
:mask-to-clear #x1282000
:entity "scene-stage-24"
:art-group "scenecamera"
:anim "test-daxter-blend"
:parts 4
:command-list '((0 (kill "krew-highres-1")))
:cut-list '()
:wait-ground-time (seconds 1)
:draw-target #f
:abort #t
:actor (new 'static 'boxed-array :type scene-actor
(new 'static 'scene-actor
:name "scenecamera"
:level #f
:art-group "skel-scenecamera"
:prefix ""
:draw-frames '((min max))
:scissor-frames '()
:camera 4
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "sidekick-highres"
:level 'hiphog
:art-group "skel-sidekick-highres"
:prefix ""
:draw-frames '((min max))
:scissor-frames '()
:light-index #xa
:flags #x3
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "tess-highres"
:level 'ltess
:art-group "skel-tess-highres"
:prefix ""
:draw-frames '((min max))
:scissor-frames '()
:light-index #xa
:flags #x3
:shadow-flags -1
:shadow-volume-joint #f
)
)
:load-point-obj "hiphog-start"
:end-point-obj "hiphog-movie"
:borrow '((hiphog 0 ltess special))
:sfx-volume -1.0
:ambient-volume -1.0
:music-volume -1.0
:blackout-end #t
:peaceful #t
:music-delay 1500.0
:save #t
)
)