jak-project/goal_src/jak2/levels/nest/nest-scenes.gc
Hat Kid fc43870d85
decompiler: obj -> this, set-time! and time-elapsed? macros (#3026)
This renames the method object in `defmethod`s to `this` and adds
detection for the `set-time!` and `time-elapsed?` macros.

Definitely my biggest PR yet...
2023-09-26 15:17:00 +01:00

1118 lines
30 KiB
Common Lisp

;;-*-Lisp-*-
(in-package goal)
;; name: nest-scenes.gc
;; name in dgo: nest-scenes
;; dgos: NESTT, NES
;; DECOMP BEGINS
(defskelgroup skel-nest-gun-elevator nest-gun-elevator nest-gun-elevator-lod0-jg -1
((nest-gun-elevator-lod0-mg (meters 999999)))
:bounds (static-spherem 0 0 0 2)
:origin-joint-index 3
)
(defskelgroup skel-nest-break-rocks-break nest-break-rocks nest-break-rocks-break-lod0-jg -1
((nest-break-rocks-break-lod0-mg (meters 999999)))
:bounds (static-spherem 0 0 0 100)
:origin-joint-index 3
)
(defskelgroup skel-nest-break-rocks-break-a nest-break-rocks nest-break-rocks-break-a-lod0-jg -1
((nest-break-rocks-break-a-lod0-mg (meters 999999)))
:bounds (static-spherem 0 0 0 300)
:origin-joint-index 3
)
(defskelgroup skel-nest-break-rocks-break-b nest-break-rocks nest-break-rocks-break-b-lod0-jg -1
((nest-break-rocks-break-b-lod0-mg (meters 999999)))
:bounds (static-spherem 0 0 0 200)
:origin-joint-index 3
)
(defpartgroup group-canyon-lightning-thingy-charge
:id 1223
:bounds (static-bspherem 0 0 0 8)
:parts ((sp-item 5227))
)
(defpart 5227
:init-specs ((:texture (new 'static 'texture-id :index #x92 :page #xc))
(:num 3.0 3.0)
(:scale-x (meters 12.5))
(:rot-x 4)
(:scale-y (meters 0.033))
(:r 255.0)
(:g 255.0)
(:b 255.0)
(:a 128.0)
(:omega (degrees 0.0225))
(:vel-y (meters 0.06666667) (meters 0.06666667))
(:fade-g -0.85 -1.7)
(:fade-b -8.0)
(:fade-a -0.21333334 -0.21333334)
(:accel-y (meters -0.0016666667) (meters -0.00066666666))
(:friction 0.97)
(:timer (seconds 0.167) (seconds 0.497))
(:flags (sp-cpuinfo-flag-3))
(:func 'sparticle-motion-blur)
(:conerot-x (degrees 225) (degrees 30))
(:conerot-y (degrees -45) (degrees 90))
)
)
(deftype canyon-lightning-thingy (process-drawable)
((lightning lightning-control 5 :offset-assert 200)
)
:heap-base #x60
:method-count-assert 21
:size-assert #xdc
:flag-assert #x15006000dc
(:methods
(zap () _type_ :state 20)
)
)
(defstate zap (canyon-lightning-thingy)
:virtual #t
:enter (behavior ()
(set-time! (-> self state-time))
)
:exit (behavior ()
(dotimes (v1-0 5)
(let ((control (-> self lightning v1-0))
(mode 3)
)
(let ((control-mode (!= mode (-> control state mode))))
(case mode
((3)
(if control-mode
(set! (-> control state counter) 0.0)
)
)
((1)
(set! (-> control state start-color) (-> control spec start-color))
(set! (-> control state end-color) (-> control spec end-color))
)
)
)
(set! (-> control state mode) (the-as lightning-mode mode))
)
)
)
:trans (behavior ()
(cond
((time-elapsed? (-> self state-time) (seconds 0.125))
(let ((gp-0 (new 'stack-no-clear 'vector)))
(set! (-> gp-0 quad) (-> self root trans quad))
(let ((v1-7 (quaternion->matrix (new 'stack-no-clear 'matrix) (-> self root quat)))
(s5-0 (new 'stack-no-clear 'matrix))
(s4-0 (new 'stack-no-clear 'vector))
(s3-0 (new 'stack-no-clear 'vector))
(s2-0 (new 'stack-no-clear 'vector))
)
(vector-float*! s4-0 (-> v1-7 vector 2) 143360.0)
(vector+float*! s4-0 s4-0 (-> v1-7 vector 1) 20480.0)
(vector-float*! s3-0 (-> v1-7 vector 1) 12288.0)
(matrix-axis-angle! s5-0 (-> v1-7 vector 2) 13107.2)
(dotimes (s1-0 5)
(case (-> self lightning s1-0 state mode)
(((lightning-mode lm0) (lightning-mode lm3))
(let ((v1-15 (-> self lightning s1-0))
(a0-11 1)
)
(let ((a1-6 (!= a0-11 (-> v1-15 state mode))))
(case a0-11
((3)
(if a1-6
(set! (-> v1-15 state counter) 0.0)
)
)
((1)
(set! (-> v1-15 state start-color) (-> v1-15 spec start-color))
(set! (-> v1-15 state end-color) (-> v1-15 spec end-color))
)
)
)
(set! (-> v1-15 state mode) (the-as lightning-mode a0-11))
)
)
)
(when (nonzero? s1-0)
(vector-matrix*! s4-0 s4-0 s5-0)
(vector-matrix*! s3-0 s3-0 s5-0)
)
(vector+! s2-0 s3-0 gp-0)
(let ((a0-15 (-> self lightning s1-0))
(v1-21 s2-0)
)
(set! (-> a0-15 state meet data 0 quad) (-> v1-21 quad))
)
(vector+! s2-0 s4-0 gp-0)
(let ((a0-19 (-> self lightning s1-0))
(v1-26 s2-0)
)
(set! (-> a0-19 state meet data (+ (-> a0-19 state points-to-draw) -1) quad) (-> v1-26 quad))
)
)
)
)
)
(else
(spawn (-> self part) (-> self root trans))
)
)
)
:code sleep-code
)
;; WARN: Return type mismatch process-drawable vs canyon-lightning-thingy.
(defmethod relocate canyon-lightning-thingy ((this canyon-lightning-thingy) (arg0 int))
(dotimes (index 5)
(if (nonzero? (-> this lightning index))
(&+! (-> this lightning index) arg0)
)
)
(the-as canyon-lightning-thingy ((method-of-type process-drawable relocate) this arg0))
)
;; WARN: Return type mismatch object vs none.
(defbehavior canyon-lightning-thingy-init-by-other canyon-lightning-thingy ((arg0 vector) (arg1 vector))
(process-entity-set! self (the-as entity #f))
(set! (-> self root) (new 'process 'trsqv))
(set! (-> self root trans quad) (-> arg0 quad))
(let ((a2-1 (vector-normalize-copy! (new 'stack-no-clear 'vector) arg1 1.0)))
(quaternion-from-two-vectors! (-> self root quat) (new 'static 'vector :z 1.0) a2-1)
)
(set! (-> self part) (create-launch-control (-> *part-group-id-table* 1223) self))
(dotimes (gp-1 5)
(set! (-> self lightning gp-1) (new
'process
'lightning-control
(new 'static 'lightning-spec
:name #f
:flags (lightning-spec-flags lsf0)
:start-color (new 'static 'rgba :r #x80 :g #x80 :b #x80 :a #x80)
:end-color (new 'static 'rgba :r #x80 :g #x80 :b #x80 :a #x80)
:fade-to-color (new 'static 'rgba :r #xbf :b #x8f :a #x5)
:fade-start-factor 0.2
:fade-time 120.0
:texture (new 'static 'texture-id :page #xd15)
:reduction 0.4
:num-points 48
:box-size 57344.0
:merge-factor 0.5
:merge-count 2
:radius 9216.0
:duration -1.0
:sound #f
)
self
0.0
)
)
(let ((v1-13 (-> self lightning gp-1))
(a0-8 0)
)
(let ((a1-8 (!= a0-8 (-> v1-13 state mode))))
(case a0-8
((3)
(if a1-8
(set! (-> v1-13 state counter) 0.0)
)
)
((1)
(set! (-> v1-13 state start-color) (-> v1-13 spec start-color))
(set! (-> v1-13 state end-color) (-> v1-13 spec end-color))
)
)
)
(set! (-> v1-13 state mode) (the-as lightning-mode a0-8))
)
)
(go-virtual zap)
(none)
)
(defun activate-canyon-lightning-thingy ((arg0 object) (arg1 vector) (arg2 sparticle-launch-state))
(process-spawn canyon-lightning-thingy arg1 (-> arg2 sprite rot-syvel) :to *entity-pool*)
0
(none)
)
(defpartgroup group-nest-gun-core
:id 1224
:flags (unk-4)
:bounds (static-bspherem 0 0 0 8)
:parts ((sp-item 5228 :flags (bit7)) (sp-item 5229 :flags (bit7)))
)
(defpart 5228
:init-specs ((:texture (new 'static 'texture-id :index #xca :page #xc))
(:num 1.0)
(:z (meters -35))
(:scale-x (meters 6))
(:rot-x (degrees 11.25))
(:scale-y :copy scale-x)
(:r 0.0)
(:g 255.0)
(:b 0.0)
(:a 64.0)
(:vel-z (meters 0.4))
(:timer (seconds 0.335))
(:flags (glow))
(:userdata 40960.0)
(:rotate-y (degrees 0))
)
)
(defpart 5229
:init-specs ((:texture (new 'static 'texture-id :index #xca :page #xc))
(:num 5.0)
(:z (meters -35) (meters -5))
(:scale-x (meters 1))
(:rot-x (degrees 11.25))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 255.0)
(:b 255.0)
(:a 64.0)
(:vel-z (meters 0.4))
(:timer (seconds 0.335))
(:flags (glow))
(:userdata 40960.0)
(:rotate-y (degrees 0))
)
)
(defpart 5230
:init-specs ((:texture (new 'static 'texture-id :index #xca :page #xc))
(:num 1.0)
(:z (meters -35))
(:scale-x (meters 0.1))
(:scale-y :copy scale-x)
(:r 0.0)
(:g 0.0)
(:b 0.0)
(:a 64.0)
(:vel-z (meters 0.06666667))
(:timer (seconds 2))
(:rotate-y (degrees 0))
)
)
(defpart 5231
:init-specs ((:texture (new 'static 'texture-id :index #xc9 :page #xc))
(:num 1.0)
(:scale-x (meters 0.5))
(:scale-y :copy scale-x)
(:r 196.0)
(:g 255.0)
(:b 196.0)
(:a 255.0)
(:omega (degrees 0) (degrees 3600))
(:vel-z (meters 0.033333335))
(:fade-r 0.0)
(:fade-g 0.0)
(:fade-b 0.0)
(:fade-a 0.0)
(:timer (seconds 2))
(:flags (sp-cpuinfo-flag-3 ready-to-launch))
)
)
(defpartgroup group-nest-break-rocks-chargeup
:id 1225
:linger-duration (seconds 3)
:flags (use-local-clock)
:bounds (static-bspherem 0 0 0 12)
:parts ((sp-item 5232 :flags (launch-asap)))
)
(defpart 5232
:init-specs ((:texture (new 'static 'texture-id :index #xca :page #xc))
(:num 1.0)
(:rot-x (degrees 22.5))
(:r 0.0)
(:g 0.0)
(:b 0.0)
(:a 1.0)
(:scalevel-x (meters 0.13333334))
(:scalevel-y :copy scalevel-x)
(:fade-g 0.784)
(:fade-a 0.85333335)
(:timer (seconds 2))
(:flags (sp-cpuinfo-flag-2 glow))
(:userdata 12288.0)
(:next-time (seconds 0.5))
(:next-launcher 5233)
)
)
(defpart 5233
:init-specs ((:fade-r 1.0) (:fade-g 0.0) (:fade-b 1.0) (:fade-a 0.0) (:next-time (seconds 0.335)) (:next-launcher 5234))
)
(defpart 5234
:init-specs ((:scalevel-x (meters 32)) (:scalevel-y :copy scalevel-x) (:fade-r 0.0) (:fade-b 0.0) (:fade-a -0.512))
)
(defpartgroup group-nest-break-rocks-explosion
:id 1226
:linger-duration (seconds 4)
:flags (use-local-clock)
:bounds (static-bspherem 0 0 0 64)
:parts ((sp-item 5235) (sp-item 5236) (sp-item 5237) (sp-item 5238))
)
(defpart 5235
:init-specs ((:texture (new 'static 'texture-id :page #xc))
(:num 10.0)
(:x (meters 0) (meters 0.6))
(:y (meters 4))
(:scale-x (meters 40) (meters 5))
(:rot-z (degrees 0) (degrees 3600))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 128.0 16.0)
(:b 64.0 32.0)
(:a 16.0 8.0)
(:vel-y (meters 0.033333335) (meters 0.04))
(:scalevel-x (meters 0.026666667) (meters 0.016666668))
(:rotvel-z (degrees -0.12) (degrees 0.24))
(:scalevel-y :copy scalevel-x)
(:fade-a 0.32 0.32)
(:friction 0.94 0.04)
(:timer (seconds 8))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12))
(:next-time (seconds 0.235) (seconds 0.097))
(:next-launcher 5239)
(:conerot-x (degrees 0) (degrees 3600))
(:conerot-y (degrees 0) (degrees 3600))
(:rotate-y (degrees 0))
)
)
(defpart 5239
:init-specs ((:scalevel-x (meters 0.008333334))
(:scalevel-y :copy scalevel-x)
(:fade-a 0.0)
(:next-time (seconds 0.335) (seconds 0.497))
(:next-launcher 5240)
)
)
(defpart 5240
:init-specs ((:scalevel-x (meters 0.0033333334)) (:scalevel-y :copy scalevel-x) (:fade-a -0.21333334 -0.10666667))
)
(defpart 5236
:init-specs ((:texture (new 'static 'texture-id :index #x32 :page #xc))
(:num 10.0 20.0)
(:x (meters 0.25))
(:y (meters 4))
(:scale-x (meters 4) (meters 2))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 96.0 32.0)
(:b 64.0 32.0)
(:a 16.0 32.0)
(:vel-y (meters 0) (meters 0.13333334))
(:scalevel-x (meters 0.006666667) (meters 0.0033333334))
(:rotvel-z (degrees -0.12) (degrees 0.24))
(:scalevel-y :copy scalevel-x)
(:accel-y (meters -0.00016666666) (meters -0.00066666666))
(:friction 0.88 0.02)
(:timer (seconds 20))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12))
(:next-time (seconds 0.235) (seconds 0.097))
(:next-launcher 5241)
(:conerot-x (degrees 0) (degrees 3600))
(:conerot-y (degrees 0) (degrees 3600))
(:rotate-y (degrees 0))
(:conerot-radius (meters 0) (meters 3))
)
)
(defpart 5241
:init-specs ((:scalevel-x (meters 0.01))
(:scalevel-y :copy scalevel-x)
(:next-time (seconds 0.3) (seconds 0.097))
(:next-launcher 5242)
)
)
(defpart 5242
:init-specs ((:scalevel-x (meters 0.0033333334)) (:scalevel-y :copy scalevel-x) (:fade-a -0.053333335 -0.053333335))
)
(defpart 5237
:init-specs ((:birth-func 'birth-func-texture-group)
(:num 10.0 20.0)
(:y (meters 4))
(:scale-x (meters 30) (meters 3))
(:rot-z (degrees 0) (degrees 3600) :store)
(:scale-y (meters 38) (meters 3.5))
(:r 128.0)
(:g 108.0 32.0)
(:b 64.0 32.0)
(:a 16.0 32.0)
(:vel-y (meters 0.05) (meters 0.1))
(:scalevel-x (meters 0.033333335) (meters 0.033333335))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.13333334)
(:friction 0.92 0.02)
(:timer (seconds 6.667))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12))
(:userdata :data (new 'static 'boxed-array :type int32 80 1 0 #xc00000 #xc03300))
(:next-time (seconds 0.167))
(:next-launcher 5243)
(:conerot-x '*sp-temp*)
(:conerot-y (degrees 0) (degrees 3600))
(:rotate-y (degrees 0))
(:conerot-radius (meters 0) (meters 2))
)
)
(defpart 5238
:init-specs ((:texture (new 'static 'texture-id :index #x34 :page #xc))
(:num 10.0 20.0)
(:y (meters 4))
(:scale-x (meters 30) (meters 3))
(:rot-x 4)
(:rot-z (degrees 0) (degrees 360) :store)
(:scale-y (meters 38) (meters 3.5))
(:r 128.0)
(:g 96.0 32.0)
(:b 64.0 32.0)
(:a 16.0 32.0)
(:vel-y (meters 0.05) (meters 0.1))
(:scalevel-x (meters 0.033333335) (meters 0.033333335))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.13333334)
(:friction 0.92 0.02)
(:timer (seconds 6.667))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12))
(:func 'sparticle-motion-blur)
(:next-time (seconds 0.167))
(:next-launcher 5243)
(:conerot-x '*sp-temp*)
(:conerot-y (degrees 0) (degrees 3600))
(:rotate-y (degrees 0))
(:conerot-radius (meters 0) (meters -5))
)
)
(defpart 5243
:init-specs ((:scalevel-x (meters 0.033333335) (meters 0.033333335))
(:scalevel-y :copy scalevel-x)
(:next-time (seconds 0.2) (seconds 0.065))
(:next-launcher 5244)
)
)
(defpart 5244
:init-specs ((:scalevel-x (meters 0.016666668) (meters 0.016666668)) (:scalevel-y :copy scalevel-x) (:fade-a -0.18 -0.12))
)
(defpartgroup group-nest-break-rocks-trailer
:id 1227
:bounds (static-bspherem 0 0 0 15)
:parts ((sp-item 5245))
)
(defpart 5245
:init-specs ((:texture (new 'static 'texture-id :page #xc))
(:num 1.0)
(:x (meters -0.25) (meters 1))
(:scale-x (meters 8) (meters 2))
(:rot-z (degrees 0) (degrees 3600))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 96.0 32.0)
(:b 64.0 32.0)
(:a 16.0 16.0)
(:vel-y (meters -0.013333334) (meters -0.013333334))
(:scalevel-x (meters 0.01) (meters 0.006666667))
(:rotvel-z (degrees -0.3) (degrees 0.6))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.08 -0.08)
(:friction 0.95 0.03)
(:timer (seconds 4))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12))
(:rotate-y (degrees 0) (degrees 3600))
)
)
(defpartgroup group-nest-break-rocks-billow
:id 1228
:bounds (static-bspherem 0 0 0 15)
:parts ((sp-item 5246))
)
(defpart 5246
:init-specs ((:texture (new 'static 'texture-id :page #xc))
(:num 1.0 0.5)
(:x (meters -6) (meters 12))
(:scale-x (meters 8) (meters 2))
(:rot-z (degrees 0) (degrees 3600))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 96.0 32.0)
(:b 64.0 32.0)
(:a 16.0 32.0)
(:vel-x (meters 0.02) (meters 0.02))
(:scalevel-x (meters 0.033333335) (meters 0.006666667))
(:rotvel-z (degrees -0.3) (degrees 0.6))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.04 -0.08)
(:accel-y (meters 0.00066666666))
(:friction 0.95 0.03)
(:timer (seconds 4.335))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12))
(:rotate-y (degrees 0) (degrees 3600))
)
)
(defpartgroup group-nest-precursor-stone-glow
:id 1229
:bounds (static-bspherem 0 0 0 3)
:parts ((sp-item 5247 :flags (bit6)))
)
(defpart 5247
:init-specs ((:texture (new 'static 'texture-id :index #xca :page #xc))
(:num 1.0)
(:scale-x (meters 3.5))
(:rot-x (degrees 45))
(:scale-y :copy scale-x)
(:r 16.0)
(:g 192.0)
(:b 16.0)
(:a 24.0)
(:timer (seconds 0.017))
(:flags (glow))
(:userdata 4096.0)
)
)
(defpartgroup group-nest-palmpilot-glow
:id 1230
:bounds (static-bspherem 0 0 0 3)
:parts ((sp-item 5248 :flags (bit6)))
)
(defpart 5248
:init-specs ((:texture (new 'static 'texture-id :index #xca :page #xc))
(:num 1.0)
(:scale-x (meters 0.15) (meters 0.01))
(:rot-x (degrees 2.25))
(:scale-y (meters 0.1) (meters 0.01))
(:r 16.0)
(:g 42.0)
(:b 32.0)
(:a 16.0 48.0)
(:timer (seconds 0.017))
(:flags (glow))
(:userdata 2048.0)
)
)
(scene-method-16
(new 'static 'scene
:name "nest-break-barrier-res"
:extra #f
:info #f
:mask-to-clear (process-mask movie enemy platform projectile)
:entity "scene-stage-83"
:art-group "scenecamera"
:anim "nest-break-barrier-res"
:parts 29
:command-list '((-120
(fadein (frame-time-30 (new 'static 'bfloat :data 10.0)))
(kill "nest-unbroken-rocks-1")
(kill "nest-gun-parts-1")
(part-tracker
"group-nest-precursor-stone-glow"
entity
"precursor-stone"
joint
"main"
track
#t
duration
(frame-range -120 1146)
)
)
(202 (part-tracker
"group-nest-palmpilot-glow"
entity
"palmpilot"
joint
"datascreen"
track
#t
duration
(frame-range 202 324)
)
)
(728
(part-tracker
"group-nest-gun-core"
entity
"nest-gun-parts"
joint
"wing_a"
track
#t
duration
(frame-range 728 778)
)
(apply ,(lambda () (set-nest-green-flag! #t)))
)
(741 (joint-eval activate-canyon-lightning-thingy entity "nest-gun-parts" joint "wing_a"))
(745 (part-tracker "group-nest-break-rocks-chargeup" entity "nest-break-rocks-break" joint "ac" track #t))
(772
(part-tracker
"group-nest-break-rocks-explosion"
entity
"nest-break-rocks-break"
joint
"ac"
track
#t
duration
(frame-range 772 773)
)
(part-tracker
"group-nest-break-rocks-trailer"
entity
"nest-break-rocks-break-a"
joint
"at"
track
#t
duration
(frame-range 772 775)
)
)
(773
(part-tracker
"group-nest-break-rocks-trailer"
entity
"nest-break-rocks-break"
joint
"ap"
track
#t
duration
(frame-range 773 781)
)
(part-tracker
"group-nest-break-rocks-trailer"
entity
"nest-break-rocks-break"
joint
"o"
track
#t
duration
(frame-range 773 781)
)
(part-tracker
"group-nest-break-rocks-trailer"
entity
"nest-break-rocks-break"
joint
"n"
track
#t
duration
(frame-range 773 799)
)
(part-tracker
"group-nest-break-rocks-trailer"
entity
"nest-break-rocks-break"
joint
"r"
track
#t
duration
(frame-range 773 799)
)
(part-tracker
"group-nest-break-rocks-trailer"
entity
"nest-break-rocks-break"
joint
"k"
track
#t
duration
(frame-range 773 784)
)
(part-tracker
"group-nest-break-rocks-trailer"
entity
"nest-break-rocks-break"
joint
"an"
track
#t
duration
(frame-range 773 784)
)
(part-tracker
"group-nest-break-rocks-trailer"
entity
"nest-break-rocks-break"
joint
"an"
track
#t
duration
(frame-range 773 784)
)
(part-tracker
"group-nest-break-rocks-trailer"
entity
"nest-break-rocks-break"
joint
"v"
track
#t
duration
(frame-range 773 775)
)
)
(774
(part-tracker
"group-nest-break-rocks-trailer"
entity
"nest-break-rocks-break-a"
joint
"aw"
track
#t
duration
(frame-range 774 781)
)
(part-tracker
"group-nest-break-rocks-trailer"
entity
"nest-break-rocks-break-a"
joint
"au"
track
#t
duration
(frame-range 774 807)
)
)
(775 (apply ,(lambda :behavior scene-player
()
(when (not (-> self aborted?))
(disable *screen-filter*)
(setup
*screen-filter*
(new 'static 'vector :x 255.0 :y 255.0 :z 255.0)
(new 'static 'vector :x 255.0 :y 255.0 :z 255.0 :w 128.0)
(* 128.0 (seconds-per-frame))
(bucket-id screen-filter)
)
)
(none)
)
)
)
(776
(part-tracker
"group-nest-break-rocks-explosion"
entity
"nest-break-rocks-break-a"
joint
"bq"
track
#t
duration
(frame-range 776 777)
)
(part-tracker
"group-nest-break-rocks-billow"
entity
"nest-break-rocks-break"
joint
"c"
track
#t
duration
(frame-range 773 795)
)
)
(780
(part-tracker
"group-nest-break-rocks-trailer"
entity
"nest-break-rocks-break-b"
joint
"cq"
track
#t
duration
(frame-range 780 819)
)
(part-tracker
"group-nest-break-rocks-trailer"
entity
"nest-break-rocks-break-b"
joint
"main"
track
#t
duration
(frame-range 780 791)
)
(part-tracker
"group-nest-break-rocks-trailer"
entity
"nest-break-rocks-break-b"
joint
"co"
track
#t
duration
(frame-range 780 798)
)
(part-tracker
"group-nest-break-rocks-trailer"
entity
"nest-break-rocks-break-a"
joint
"ce"
track
#t
duration
(frame-range 780 815)
)
)
(781 (apply ,(lambda () (kill-by-type canyon-lightning-thingy *active-pool*) (set-nest-green-flag! #f))))
(786 (apply ,(lambda :behavior scene-player
()
(if (not (-> self aborted?))
(setup
*screen-filter*
(new 'static 'vector :x 255.0 :y 255.0 :z 255.0 :w 128.0)
(new 'static 'vector :x 255.0 :y 128.0)
(seconds-per-frame)
(bucket-id screen-filter)
)
)
(none)
)
)
)
(787 (part-tracker
"group-nest-break-rocks-billow"
entity
"nest-break-rocks-break-b"
joint
"di"
track
#t
duration
(frame-range 787 816)
)
)
(797
(part-tracker
"group-nest-break-rocks-trailer"
entity
"nest-break-rocks-break-a"
joint
"bz"
track
#t
duration
(frame-range 797 815)
)
(part-tracker
"group-nest-break-rocks-trailer"
entity
"nest-break-rocks-break-b"
joint
"cv"
track
#t
duration
(frame-range 797 798)
)
)
(1141 (fadeout (frame-time-30 (new 'static 'bfloat :data 5.0))))
(9000 (want-continue "nest-gun"))
(10000 (task-close! "nest-get-to-gun-resolution") (apply ,(lambda () (disable *screen-filter*) (none))))
)
:cut-list '(0 202 276 324 367 392 458 628 728 853 943)
: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 '()
:light-index #xb
: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 '()
:light-index #xb
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "palmpilot"
:level 'nestb
:art-group "skel-palmpilot"
:prefix ""
:draw-frames '((min max))
:scissor-frames '()
:light-index #xb
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "precursor-stone"
:level 'nestb
:art-group "skel-precursor-stone"
:prefix ""
:draw-frames '((min max))
:scissor-frames '()
:light-index #xb
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "nest-gun-elevator"
:level 'nestb
:art-group "skel-nest-gun-elevator"
:prefix ""
:draw-frames '((min max))
:scissor-frames '()
:light-index #xb
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "nest-break-rocks-break"
:level 'nest
:art-group "skel-nest-break-rocks-break"
:prefix "break-"
:draw-frames '((min 852))
:scissor-frames '()
:light-index #x1
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "nest-break-rocks-break-a"
:level 'nest
:art-group "skel-nest-break-rocks-break-a"
:prefix "break-a-"
:draw-frames '((min 852))
:scissor-frames '()
:light-index #x1
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "nest-break-rocks-break-b"
:level 'nest
:art-group "skel-nest-break-rocks-break-b"
:prefix "break-b-"
:draw-frames '((min 852))
:scissor-frames '()
:light-index #x1
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
(new 'static 'scene-actor
:name "nest-gun-parts"
:level 'nestb
:art-group "skel-nest-gun-parts"
:prefix ""
:draw-frames '((min max))
:scissor-frames '()
:light-index #xb
:flags #x1
:shadow-flags -1
:shadow-volume-joint #f
)
)
:load-point-obj "nest-gun"
: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
)
)
(defun nest-deactivate ()
(if (not (level-get *level* 'nestb))
(set-time-for-random-weather! *mood-control* 0.0 0.0)
)
0
(none)
)
(defun nest-activate ()
(cond
((level-get *level* 'nestb)
(update-mood-weather! *mood-control* 1.0 0.0 0.0 0.0)
)
(else
(update-mood-weather! *mood-control* 0.5 0.1 0.0 0.0)
(update-mood-weather! *mood-control* 1.0 0.0 180.0 180.0)
)
)
(set-time-for-random-weather! *mood-control* -99.0 -99.0)
0
(none)
)