mirror of
https://github.com/open-goal/jak-project
synced 2026-08-08 18:44:15 -04:00
1758 lines
59 KiB
Common Lisp
Vendored
Generated
1758 lines
59 KiB
Common Lisp
Vendored
Generated
;;-*-Lisp-*-
|
|
(in-package goal)
|
|
|
|
;; failed to figure out what this is:
|
|
(defskelgroup skel-wascity-airlock wascity-airlock wascity-airlock-lod0-jg wascity-airlock-idle-ja
|
|
((wascity-airlock-lod0-mg (meters 999999)))
|
|
:bounds (static-spherem 0 12 0 40)
|
|
)
|
|
|
|
;; definition of type wascity-airlock
|
|
(deftype wascity-airlock (com-airlock)
|
|
()
|
|
)
|
|
|
|
;; definition for method 3 of type wascity-airlock
|
|
(defmethod inspect ((this wascity-airlock))
|
|
(when (not this)
|
|
(set! this this)
|
|
(goto cfg-4)
|
|
)
|
|
(let ((t9-0 (method-of-type com-airlock inspect)))
|
|
(t9-0 this)
|
|
)
|
|
(label cfg-4)
|
|
this
|
|
)
|
|
|
|
;; definition for method 11 of type wascity-airlock
|
|
(defmethod init-from-entity! ((this wascity-airlock) (arg0 entity-actor))
|
|
"Set up a newly created process from the entity that created it."
|
|
(let ((s5-0 (new 'process 'collide-shape this (collide-list-enum usually-hit-by-player))))
|
|
(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 bot player-list))
|
|
(set! (-> s4-0 prim-core action) (collide-action solid))
|
|
(set-vector! (-> s4-0 local-sphere) 0.0 49152.0 0.0 122880.0)
|
|
(set! (-> s5-0 root-prim) s4-0)
|
|
)
|
|
(let ((v1-8 (new 'process 'collide-shape-prim-mesh s5-0 (the-as uint 0) (the-as uint 0))))
|
|
(set! (-> v1-8 prim-core collide-as) (collide-spec obstacle))
|
|
(set! (-> v1-8 prim-core collide-with) (collide-spec jak bot player-list))
|
|
(set! (-> v1-8 prim-core action) (collide-action solid))
|
|
(set! (-> v1-8 transform-index) 4)
|
|
(set-vector! (-> v1-8 local-sphere) 81920.0 40960.0 0.0 81920.0)
|
|
)
|
|
(let ((v1-10 (new 'process 'collide-shape-prim-mesh s5-0 (the-as uint 1) (the-as uint 0))))
|
|
(set! (-> v1-10 prim-core collide-as) (collide-spec obstacle))
|
|
(set! (-> v1-10 prim-core collide-with) (collide-spec jak bot player-list))
|
|
(set! (-> v1-10 prim-core action) (collide-action solid))
|
|
(set! (-> v1-10 transform-index) 5)
|
|
(set-vector! (-> v1-10 local-sphere) -81920.0 40960.0 0.0 81920.0)
|
|
)
|
|
(set! (-> s5-0 nav-radius) (* 0.75 (-> s5-0 root-prim local-sphere w)))
|
|
(let ((v1-13 (-> s5-0 root-prim)))
|
|
(set! (-> s5-0 backup-collide-as) (-> v1-13 prim-core collide-as))
|
|
(set! (-> s5-0 backup-collide-with) (-> v1-13 prim-core collide-with))
|
|
)
|
|
(set! (-> this root) s5-0)
|
|
)
|
|
(initialize-skeleton
|
|
this
|
|
(the-as skeleton-group (art-group-get-by-name *level* "skel-wascity-airlock" (the-as (pointer level) #f)))
|
|
(the-as pair 0)
|
|
)
|
|
(init-airlock! this)
|
|
(set! (-> this allow-pilot?) #t)
|
|
(set! (-> this sound-gear) (static-sound-spec "w-door-steam" :group 0))
|
|
(set! (-> this gear-stop-frame) 2.0)
|
|
(set! (-> this sound-open) (static-sound-spec "w-door-op-strt" :group 0))
|
|
(set! (-> this sound-open-loop) (static-sound-spec "w-door-roll" :group 0))
|
|
(set! (-> this sound-open-stop) (static-sound-spec "w-door-open-hit" :group 0))
|
|
(set! (-> this sound-close) (static-sound-spec "w-door-cls-star" :group 0))
|
|
(set! (-> this sound-close-loop) (static-sound-spec "w-door-roll" :group 0))
|
|
(set! (-> this sound-close-stop) (static-sound-spec "w-door-cls-hit" :group 0))
|
|
(go (method-of-object this close) #t)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defskelgroup skel-wascity-airlock-small wascity-airlock-small wascity-airlock-small-lod0-jg wascity-airlock-small-idle-ja
|
|
((wascity-airlock-small-lod0-mg (meters 999999)))
|
|
:bounds (static-spherem 0 10 0 20)
|
|
)
|
|
|
|
;; definition of type wascity-airlock-small
|
|
(deftype wascity-airlock-small (com-airlock)
|
|
()
|
|
)
|
|
|
|
;; definition for method 3 of type wascity-airlock-small
|
|
(defmethod inspect ((this wascity-airlock-small))
|
|
(when (not this)
|
|
(set! this this)
|
|
(goto cfg-4)
|
|
)
|
|
(let ((t9-0 (method-of-type com-airlock inspect)))
|
|
(t9-0 this)
|
|
)
|
|
(label cfg-4)
|
|
this
|
|
)
|
|
|
|
;; definition for method 11 of type wascity-airlock-small
|
|
(defmethod init-from-entity! ((this wascity-airlock-small) (arg0 entity-actor))
|
|
"Set up a newly created process from the entity that created it."
|
|
(let ((s5-0 (new 'process 'collide-shape this (collide-list-enum usually-hit-by-player))))
|
|
(set! (-> s5-0 penetrated-by) (penetrate))
|
|
(let ((s4-0 (new 'process 'collide-shape-prim-group s5-0 (the-as uint 3) 0)))
|
|
(set! (-> s5-0 total-prims) (the-as uint 4))
|
|
(set! (-> s4-0 prim-core collide-as) (collide-spec obstacle))
|
|
(set! (-> s4-0 prim-core collide-with) (collide-spec jak bot player-list))
|
|
(set! (-> s4-0 prim-core action) (collide-action solid))
|
|
(set-vector! (-> s4-0 local-sphere) 0.0 40960.0 0.0 81920.0)
|
|
(set! (-> s5-0 root-prim) s4-0)
|
|
)
|
|
(let ((v1-8 (new 'process 'collide-shape-prim-mesh s5-0 (the-as uint 1) (the-as uint 0))))
|
|
(set! (-> v1-8 prim-core collide-as) (collide-spec obstacle))
|
|
(set! (-> v1-8 prim-core collide-with) (collide-spec jak bot player-list))
|
|
(set! (-> v1-8 prim-core action) (collide-action solid))
|
|
(set! (-> v1-8 transform-index) 6)
|
|
(set-vector! (-> v1-8 local-sphere) 32768.0 0.0 0.0 40960.0)
|
|
)
|
|
(let ((v1-10 (new 'process 'collide-shape-prim-mesh s5-0 (the-as uint 2) (the-as uint 0))))
|
|
(set! (-> v1-10 prim-core collide-as) (collide-spec obstacle))
|
|
(set! (-> v1-10 prim-core collide-with) (collide-spec jak bot player-list))
|
|
(set! (-> v1-10 prim-core action) (collide-action solid))
|
|
(set! (-> v1-10 transform-index) 7)
|
|
(set-vector! (-> v1-10 local-sphere) -32768.0 0.0 0.0 40960.0)
|
|
)
|
|
(let ((v1-12 (new 'process 'collide-shape-prim-mesh s5-0 (the-as uint 0) (the-as uint 0))))
|
|
(set! (-> v1-12 prim-core collide-as) (collide-spec obstacle))
|
|
(set! (-> v1-12 prim-core collide-with) (collide-spec jak bot player-list))
|
|
(set! (-> v1-12 prim-core action) (collide-action solid))
|
|
(set! (-> v1-12 transform-index) 3)
|
|
(set-vector! (-> v1-12 local-sphere) 0.0 -8192.0 0.0 40960.0)
|
|
)
|
|
(set! (-> s5-0 nav-radius) (* 0.75 (-> s5-0 root-prim local-sphere w)))
|
|
(let ((v1-15 (-> s5-0 root-prim)))
|
|
(set! (-> s5-0 backup-collide-as) (-> v1-15 prim-core collide-as))
|
|
(set! (-> s5-0 backup-collide-with) (-> v1-15 prim-core collide-with))
|
|
)
|
|
(set! (-> this root) s5-0)
|
|
)
|
|
(initialize-skeleton
|
|
this
|
|
(the-as
|
|
skeleton-group
|
|
(art-group-get-by-name *level* "skel-wascity-airlock-small" (the-as (pointer level) #f))
|
|
)
|
|
(the-as pair 0)
|
|
)
|
|
(init-airlock! this)
|
|
(set! (-> this sound-gear) (static-sound-spec "air-door-steam" :group 0))
|
|
(set! (-> this gear-stop-frame) 2.0)
|
|
(set! (-> this sound-open) (static-sound-spec "air-ver-open" :group 0))
|
|
(set! (-> this sound-open-loop) (static-sound-spec "air-horiz-slide" :group 0))
|
|
(set! (-> this sound-open-stop) (static-sound-spec "air-horiz-hit" :group 0))
|
|
(set! (-> this sound-close) (static-sound-spec "air-horiz-close" :group 0))
|
|
(set! (-> this sound-close-loop) (static-sound-spec "air-hor-sld-cls" :group 0))
|
|
(set! (-> this sound-close-stop) (static-sound-spec "air-hor-cls-hit" :group 0))
|
|
(set! (-> this sound-post-close) (static-sound-spec "air-ver-cls-hit" :group 0))
|
|
(go (method-of-object this close) #t)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defskelgroup skel-wascity-elevator-door wascity-elevator-door wascity-elevator-door-lod0-jg wascity-elevator-door-idle-ja
|
|
((wascity-elevator-door-lod0-mg (meters 20))
|
|
(wascity-elevator-door-lod1-mg (meters 40))
|
|
(wascity-elevator-door-lod2-mg (meters 999999))
|
|
)
|
|
:bounds (static-spherem 0 10 0 20)
|
|
)
|
|
|
|
;; definition of type wascity-elevator-door
|
|
(deftype wascity-elevator-door (com-airlock)
|
|
()
|
|
)
|
|
|
|
;; definition for method 3 of type wascity-elevator-door
|
|
(defmethod inspect ((this wascity-elevator-door))
|
|
(when (not this)
|
|
(set! this this)
|
|
(goto cfg-4)
|
|
)
|
|
(let ((t9-0 (method-of-type com-airlock inspect)))
|
|
(t9-0 this)
|
|
)
|
|
(label cfg-4)
|
|
this
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defstate open (wascity-elevator-door)
|
|
:virtual #t
|
|
:event (behavior ((proc process) (argc int) (message symbol) (block event-message-block))
|
|
(let ((v1-0 message)
|
|
(a0-1 'front)
|
|
)
|
|
(cond
|
|
((= v1-0 a0-1)
|
|
(let ((f30-0 (check-crossing-distance self (target-pos 0) #f))
|
|
(f0-0 (check-crossing-distance self (camera-pos) #f))
|
|
)
|
|
(and (logtest? (-> self draw status) (draw-control-status on-screen))
|
|
(< 2048.0 f30-0)
|
|
(>= (* f30-0 f0-0) 0.0)
|
|
)
|
|
)
|
|
)
|
|
(else
|
|
(let ((t9-4 (-> (method-of-type com-airlock open) event)))
|
|
(if t9-4
|
|
(t9-4 (the-as process a0-1) argc message block)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
|
|
;; definition for method 11 of type wascity-elevator-door
|
|
(defmethod init-from-entity! ((this wascity-elevator-door) (arg0 entity-actor))
|
|
"Set up a newly created process from the entity that created it."
|
|
(let ((s5-0 (new 'process 'collide-shape this (collide-list-enum usually-hit-by-player))))
|
|
(set! (-> s5-0 penetrated-by) (penetrate))
|
|
(let ((s4-0 (new 'process 'collide-shape-prim-group s5-0 (the-as uint 1) 0)))
|
|
(set! (-> s5-0 total-prims) (the-as uint 2))
|
|
(set! (-> s4-0 prim-core collide-as) (collide-spec obstacle))
|
|
(set! (-> s4-0 prim-core collide-with) (collide-spec jak bot player-list))
|
|
(set! (-> s4-0 prim-core action) (collide-action solid))
|
|
(set-vector! (-> s4-0 local-sphere) 0.0 0.0 0.0 53248.0)
|
|
(set! (-> s5-0 root-prim) s4-0)
|
|
)
|
|
(let ((v1-8 (new 'process 'collide-shape-prim-mesh s5-0 (the-as uint 0) (the-as uint 0))))
|
|
(set! (-> v1-8 prim-core collide-as) (collide-spec obstacle))
|
|
(set! (-> v1-8 prim-core collide-with) (collide-spec jak bot player-list))
|
|
(set! (-> v1-8 prim-core action) (collide-action solid))
|
|
(set! (-> v1-8 transform-index) 3)
|
|
(set-vector! (-> v1-8 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-11 (-> s5-0 root-prim)))
|
|
(set! (-> s5-0 backup-collide-as) (-> v1-11 prim-core collide-as))
|
|
(set! (-> s5-0 backup-collide-with) (-> v1-11 prim-core collide-with))
|
|
)
|
|
(set! (-> this root) s5-0)
|
|
)
|
|
(initialize-skeleton
|
|
this
|
|
(the-as
|
|
skeleton-group
|
|
(art-group-get-by-name *level* "skel-wascity-elevator-door" (the-as (pointer level) #f))
|
|
)
|
|
(the-as pair 0)
|
|
)
|
|
(init-airlock! this)
|
|
(set! (-> this sound-open-loop) (static-sound-spec "ver-open" :group 0))
|
|
(set! (-> this sound-open-stop) (static-sound-spec "ver-open-hit" :group 0))
|
|
(set! (-> this sound-close-loop) (static-sound-spec "ver-open" :group 0))
|
|
(set! (-> this sound-close-stop) (static-sound-spec "ver-open-hit" :group 0))
|
|
(go (method-of-object this close) #t)
|
|
)
|
|
|
|
;; definition of type tentacle
|
|
(deftype tentacle (process-drawable)
|
|
((init-pos vector :inline)
|
|
(focus-pos vector :inline)
|
|
(nav-mesh nav-mesh)
|
|
(active-timer time-frame)
|
|
(fade-level float)
|
|
(sound-id-loop sound-id)
|
|
(sound-id-attack sound-id)
|
|
)
|
|
(:state-methods
|
|
dormant
|
|
un-dive-player
|
|
attacking-0
|
|
attacking-1
|
|
kill-player
|
|
wait
|
|
)
|
|
)
|
|
|
|
;; definition for method 3 of type tentacle
|
|
(defmethod inspect ((this tentacle))
|
|
(when (not this)
|
|
(set! this this)
|
|
(goto cfg-4)
|
|
)
|
|
(let ((t9-0 (method-of-type process-drawable inspect)))
|
|
(t9-0 this)
|
|
)
|
|
(format #t "~2Tinit-pos: #<vector @ #x~X>~%" (-> this init-pos))
|
|
(format #t "~2Tfocus-pos: #<vector @ #x~X>~%" (-> this focus-pos))
|
|
(format #t "~2Tnav-mesh: ~A~%" (-> this nav-mesh))
|
|
(format #t "~2Tactive-timer: ~D~%" (-> this active-timer))
|
|
(format #t "~2Tfade-level: ~f~%" (-> this fade-level))
|
|
(format #t "~2Tsound-id-loop: ~D~%" (-> this sound-id-loop))
|
|
(format #t "~2Tsound-id-attack: ~D~%" (-> this sound-id-attack))
|
|
(label cfg-4)
|
|
this
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defskelgroup skel-tentacle tentacle tentacle-lod0-jg tentacle-emerge-ja
|
|
((tentacle-lod0-mg (meters 999999)))
|
|
:bounds (static-spherem 0 20 0 20)
|
|
)
|
|
|
|
;; definition for function tentacle-follow-post
|
|
;; INFO: Used lq/sq
|
|
(defbehavior tentacle-follow-post tentacle ()
|
|
(let ((a0-0 *target*))
|
|
(when a0-0
|
|
(vector-copy! (-> self focus-pos) (get-trans a0-0 0))
|
|
(set-vector! (-> self root trans) (-> self focus-pos x) (-> self root trans y) (-> self focus-pos z) 1.0)
|
|
)
|
|
)
|
|
(ja-post)
|
|
(none)
|
|
)
|
|
|
|
;; definition for function tentacle-attack-handler
|
|
(defbehavior tentacle-attack-handler tentacle ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
|
|
(case arg2
|
|
(('target)
|
|
(case (-> arg3 param 0)
|
|
(('die)
|
|
(when (= (-> arg3 param 1) 'tentacle)
|
|
(go-virtual kill-player)
|
|
#t
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(('joint)
|
|
3
|
|
)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defstate dormant (tentacle)
|
|
:virtual #t
|
|
:enter (behavior ()
|
|
(set! (-> self active-timer) 0)
|
|
0
|
|
)
|
|
:exit (behavior ()
|
|
(set-setting! 'dive #f 0.0 0)
|
|
(set-setting! 'board #f 0.0 0)
|
|
(set-setting! 'gun #f 0.0 0)
|
|
(set-setting! 'jump #f 0.0 0)
|
|
(set-setting! 'double-jump #f 0.0 0)
|
|
(logior! (-> self draw status) (draw-control-status force-fade))
|
|
(set! (-> self fade-level) 0.0)
|
|
(set! (-> self draw force-fade) (the-as uint (the int (* 128.0 (-> self fade-level)))))
|
|
)
|
|
:trans (behavior ()
|
|
(local-vars (v1-13 target))
|
|
(if (not (-> self nav-mesh))
|
|
(set! (-> self nav-mesh) (nav-mesh-from-res-tag (-> self entity) 'nav-mesh-actor 0))
|
|
)
|
|
(let ((gp-0 *target*))
|
|
(if (not (and gp-0
|
|
(not (focus-test? *target* dead flut))
|
|
(-> self nav-mesh)
|
|
(= (-> *game-info* mode) 'play)
|
|
(nav-mesh-method-11 (-> self nav-mesh) (get-trans gp-0 0))
|
|
(begin (set! v1-13 gp-0) v1-13)
|
|
(or (focus-test? v1-13 on-water under-water)
|
|
(= (-> v1-13 control ground-pat material) (pat-material waterbottom))
|
|
)
|
|
)
|
|
)
|
|
(set-time! (-> self active-timer))
|
|
)
|
|
(when (and gp-0 (time-elapsed? (-> self active-timer) (seconds 0.1)))
|
|
(vector-copy! (-> self root trans) (get-trans gp-0 0))
|
|
(set! (-> self root trans y) (+ -114688.0 (get-base-height *ocean-map*)))
|
|
(vector-copy! (-> self init-pos) (-> self root trans))
|
|
(if (focus-test? gp-0 under-water)
|
|
(go-virtual un-dive-player)
|
|
(go-virtual attacking-0)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
:code sleep-code
|
|
:post #f
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defstate un-dive-player (tentacle)
|
|
:virtual #t
|
|
:trans (behavior ()
|
|
(let ((v1-0 *target*))
|
|
(cond
|
|
((not v1-0)
|
|
(go empty-state)
|
|
)
|
|
((not (focus-test? v1-0 under-water))
|
|
(go-virtual attacking-0)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
:code sleep-code
|
|
:post tentacle-follow-post
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defstate attacking-0 (tentacle)
|
|
:virtual #t
|
|
:event tentacle-attack-handler
|
|
:trans (behavior ()
|
|
(set! (-> self sound-id-attack)
|
|
(add-process *gui-control* self (gui-channel background) (gui-action queue) "tentacle" -99.0 0)
|
|
)
|
|
(sound-play "tentacle-loop" :id (-> self sound-id-loop))
|
|
)
|
|
:code (behavior ()
|
|
(ja-channel-push! 1 0)
|
|
(ja-no-eval :group! tentacle-emerge-ja :num! (seek!) :frame-num 0.0)
|
|
(until (ja-done? 0)
|
|
(suspend)
|
|
(ja :num! (seek!))
|
|
)
|
|
(go-virtual attacking-1)
|
|
)
|
|
:post (behavior ()
|
|
(set! (-> self fade-level) (/ (ja-frame-num 0) (the float (ja-num-frames 0))))
|
|
(set! (-> self draw force-fade) (the-as uint (the int (* 128.0 (-> self fade-level)))))
|
|
(let ((f30-2 (fmax 0.0 (fmin 1.0 (/ (ja-frame-num 0) (the float (ja-num-frames 0)))))))
|
|
(set! (-> *part-id-table* 1644 init-specs 11 initial-valuef) (lerp 6.826667 54.613335 f30-2))
|
|
(set! (-> *part-id-table* 1644 init-specs 11 random-rangef)
|
|
(the-as float (the int (lerp 6.826667 54.613335 f30-2)))
|
|
)
|
|
(set! (-> *part-id-table* 1644 init-specs 10 initial-valuef) (the-as float (the int (lerp 4.0 16.0 f30-2))))
|
|
(set! (-> *part-id-table* 1644 init-specs 10 random-rangef) (the-as float (the int (lerp 4.0 16.0 f30-2))))
|
|
)
|
|
(let ((gp-0 (new 'stack-no-clear 'vector)))
|
|
(let ((s4-0 (-> self root)))
|
|
(set-vector! gp-0 (-> s4-0 trans x) (get-base-height *ocean-map*) (-> s4-0 trans z) 1.0)
|
|
)
|
|
(spawn (-> self part) gp-0)
|
|
)
|
|
(tentacle-follow-post)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defstate attacking-1 (tentacle)
|
|
:virtual #t
|
|
:event tentacle-attack-handler
|
|
:exit (behavior ()
|
|
(sound-stop (-> self sound-id-loop))
|
|
)
|
|
:trans (behavior ()
|
|
(while (and *target* (not (logtest? (-> *target* focus-status) (focus-status dead))))
|
|
(send-event
|
|
*target*
|
|
'attack-invinc
|
|
#f
|
|
(static-attack-info
|
|
:mask (vehicle-impulse-factor)
|
|
((id (new-attack-id)) (damage 2.0) (vehicle-damage-factor 1.0) (vehicle-impulse-factor 1.0) (mode 'tentacle))
|
|
)
|
|
)
|
|
)
|
|
)
|
|
:code sleep-code
|
|
:post (behavior ()
|
|
(let ((gp-0 (new 'stack-no-clear 'vector)))
|
|
(let ((s4-0 (-> self root)))
|
|
(set-vector! gp-0 (-> s4-0 trans x) (get-base-height *ocean-map*) (-> s4-0 trans z) 1.0)
|
|
)
|
|
(cond
|
|
((logtest? (-> group-tentacle-attack flags) (sp-group-flag sp13))
|
|
(vector-copy! (-> *launch-matrix* trans) gp-0)
|
|
(part-tracker-spawn part-tracker-subsampler :to *entity-pool* :group group-tentacle-attack)
|
|
)
|
|
(else
|
|
(vector-copy! (-> *launch-matrix* trans) gp-0)
|
|
(part-tracker-spawn part-tracker :to *entity-pool* :group group-tentacle-attack)
|
|
)
|
|
)
|
|
)
|
|
(tentacle-follow-post)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defstate kill-player (tentacle)
|
|
:virtual #t
|
|
:event (behavior ((proc process) (argc int) (message symbol) (block event-message-block))
|
|
(case message
|
|
(('joint)
|
|
3
|
|
)
|
|
)
|
|
)
|
|
:enter (behavior ()
|
|
(sound-params-set! *gui-control* (-> self sound-id-attack) #f -1 -1 -1 1.0)
|
|
(set-action!
|
|
*gui-control*
|
|
(gui-action play)
|
|
(-> self sound-id-attack)
|
|
(gui-channel none)
|
|
(gui-action none)
|
|
(the-as string #f)
|
|
(the-as (function gui-connection symbol) #f)
|
|
(the-as process #f)
|
|
)
|
|
)
|
|
:exit (behavior ()
|
|
(if *target*
|
|
(send-event *target* 'end-mode 'bot)
|
|
)
|
|
)
|
|
:code (behavior ()
|
|
(ja-channel-push! 1 0)
|
|
(ja-no-eval :group! tentacle-tentacle-attack-ja :num! (seek!) :frame-num 0.0)
|
|
(until (ja-done? 0)
|
|
(suspend)
|
|
(ja :num! (seek!))
|
|
)
|
|
(go-virtual wait)
|
|
)
|
|
:post ja-post
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defstate wait (tentacle)
|
|
:virtual #t
|
|
:code sleep-code
|
|
)
|
|
|
|
;; definition for method 11 of type tentacle
|
|
(defmethod init-from-entity! ((this tentacle) (arg0 entity-actor))
|
|
"Set up a newly created process from the entity that created it."
|
|
(stack-size-set! (-> this main-thread) 64)
|
|
(set! (-> this root) (new 'process 'trsqv))
|
|
(process-drawable-from-entity! this arg0)
|
|
(initialize-skeleton
|
|
this
|
|
(the-as skeleton-group (art-group-get-by-name *level* "skel-tentacle" (the-as (pointer level) #f)))
|
|
(the-as pair 0)
|
|
)
|
|
(set! (-> this part) (create-launch-control group-tentacle-warn this))
|
|
(set! (-> this nav-mesh) #f)
|
|
(set! (-> this sound-id-loop) (new-sound-id))
|
|
(set! (-> this sound-id-attack) (new-sound-id))
|
|
(go (method-of-object this dormant))
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defskelgroup skel-terraformer-des-fma-2 terraformer terraformer-lod0-jg terraformer-walk-ja
|
|
((terraformer-lod0-mg (meters 20)) (terraformer-lod0-mg (meters 40)) (terraformer-lod0-mg (meters 999999)))
|
|
:bounds (static-spherem 0 175 75 25000)
|
|
:origin-joint-index 3
|
|
:global-effects 32
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(load-scene (new 'static 'scene
|
|
:name "desert-final-boss-intro"
|
|
:extra #f
|
|
:info #f
|
|
:scene-flags (scene-flags scf1 scf2 scf3 scf4)
|
|
:mask-to-clear (process-mask movie projectile)
|
|
:entity "scene-stage-211"
|
|
:art-group "scenecamera"
|
|
:anim "desert-final-boss-intro"
|
|
:parts 24
|
|
:command-list '((0
|
|
(kill "terraformer-1")
|
|
(apply ,(lambda ()
|
|
(set! (-> *sky-work* disable-day-star) (the-as basic #t))
|
|
(set-cloud-and-fog-interp! *mood-control* 0.0 0.5 0.0 0.0)
|
|
(set-cloud-and-fog-interp! *mood-control* 0.0 0.5 1.0 1.0)
|
|
(set-time-for-random-weather! *mood-control* 180.0 180.0)
|
|
)
|
|
)
|
|
(apply ,(lambda ()
|
|
(set-setting! 'fog-special-interp-targ #f 0.15 0)
|
|
(set-setting! 'dust-storm-fog-scalar #f 0.5 0)
|
|
(set-setting! 'fog-special-interp-rate #f 1000.0 0)
|
|
)
|
|
)
|
|
)
|
|
(1 (part-tracker
|
|
"group-cloud-spread"
|
|
entity
|
|
"particleman"
|
|
joint
|
|
"particleK"
|
|
track
|
|
#t
|
|
duration
|
|
(frame-range 1 2000)
|
|
)
|
|
)
|
|
(10 (part-tracker
|
|
"group-desert-final-boss-gate"
|
|
entity
|
|
"particleman"
|
|
joint
|
|
"particleA"
|
|
track
|
|
#t
|
|
duration
|
|
(frame-range 10 20)
|
|
)
|
|
)
|
|
(21 (part-tracker
|
|
"group-desert-boss-slide-dust"
|
|
entity
|
|
"particleman"
|
|
joint
|
|
"particleC"
|
|
track
|
|
#t
|
|
duration
|
|
(frame-range 21 22)
|
|
)
|
|
)
|
|
(25 (part-tracker
|
|
"group-desert-boss-slide-dust"
|
|
entity
|
|
"particleman"
|
|
joint
|
|
"particleE"
|
|
track
|
|
#t
|
|
duration
|
|
(frame-range 25 26)
|
|
)
|
|
)
|
|
(26 (part-tracker
|
|
"group-desert-boss-slide-dust"
|
|
entity
|
|
"particleman"
|
|
joint
|
|
"particleF"
|
|
track
|
|
#t
|
|
duration
|
|
(frame-range 26 27)
|
|
)
|
|
)
|
|
(27 (part-tracker
|
|
"group-desert-boss-slide-dust"
|
|
entity
|
|
"particleman"
|
|
joint
|
|
"particleG"
|
|
track
|
|
#t
|
|
duration
|
|
(frame-range 27 28)
|
|
)
|
|
)
|
|
(41 (part-tracker
|
|
"group-desert-final-boss-gate"
|
|
entity
|
|
"particleman"
|
|
joint
|
|
"particleB"
|
|
track
|
|
#t
|
|
duration
|
|
(frame-range 41 51)
|
|
)
|
|
)
|
|
(57 (part-tracker
|
|
"group-desert-boss-slide-dust"
|
|
entity
|
|
"particleman"
|
|
joint
|
|
"particleH"
|
|
track
|
|
#t
|
|
duration
|
|
(frame-range 57 58)
|
|
)
|
|
)
|
|
(59 (part-tracker
|
|
"group-desert-boss-slide-dust"
|
|
entity
|
|
"particleman"
|
|
joint
|
|
"particleI"
|
|
track
|
|
#t
|
|
duration
|
|
(frame-range 59 75)
|
|
)
|
|
)
|
|
(125
|
|
(part-tracker
|
|
"group-desert-fireball-shot"
|
|
entity
|
|
"particleman"
|
|
joint
|
|
"particleJ"
|
|
track
|
|
#t
|
|
duration
|
|
(frame-range 125 260)
|
|
)
|
|
(part-tracker
|
|
"group-desert-fireball-shot-trail"
|
|
entity
|
|
"particleman"
|
|
joint
|
|
"particleJ"
|
|
track
|
|
#t
|
|
duration
|
|
(frame-range 125 260)
|
|
subsample-num
|
|
(new 'static 'bfloat :data 5.0)
|
|
)
|
|
)
|
|
(192 (part-tracker
|
|
"group-desert-fireball-explosion"
|
|
entity
|
|
"particleman"
|
|
joint
|
|
"particleJ"
|
|
track
|
|
#f
|
|
duration
|
|
(frame-range 192 193)
|
|
)
|
|
)
|
|
(275 (apply ,(lambda ()
|
|
(set-setting! 'fog-special-interp-targ #f 0.4 0)
|
|
(set-setting! 'dust-storm-fog-scalar #f 0.4 0)
|
|
(set-setting! 'fog-special-interp-rate #f 0.03 0)
|
|
)
|
|
)
|
|
)
|
|
(696 (apply ,(lambda ()
|
|
(set-setting! 'fog-special-interp-targ #f 0.15 0)
|
|
(set-setting! 'dust-storm-fog-scalar #f 1.0 0)
|
|
(set-setting! 'fog-special-interp-rate #f 1000.1 0)
|
|
)
|
|
)
|
|
)
|
|
(1066 (fadeout (frame-time-30 10)))
|
|
(10000 (task-close! "desert-final-boss-introduction"))
|
|
)
|
|
:cut-list '(0 87 136 260 696 768 875 1013)
|
|
:wait-ground-time (seconds 1)
|
|
: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 '()
|
|
:shadow-frames '((min max))
|
|
:cloth-reset-frames '()
|
|
:cloth-commands '()
|
|
:camera 4
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
)
|
|
(new 'static 'scene-actor
|
|
:name "particleman"
|
|
:level 'desboss1
|
|
:art-group "skel-particleman"
|
|
:prefix ""
|
|
:draw-frames '((min max))
|
|
:scissor-frames '()
|
|
:shadow-frames '((min max))
|
|
:cloth-reset-frames '()
|
|
:cloth-commands '()
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
)
|
|
(new 'static 'scene-actor
|
|
:name "jakc-highres"
|
|
:level 'desboss1
|
|
:art-group "skel-jakc-highres"
|
|
:prefix ""
|
|
:draw-frames '((16 max))
|
|
:scissor-frames '()
|
|
:shadow-frames '((min max))
|
|
:cloth-reset-frames '(1013)
|
|
:cloth-commands '()
|
|
:flags #x1
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
:no-draw-seg #x80
|
|
)
|
|
(new 'static 'scene-actor
|
|
:name "sidekick-highres"
|
|
:level 'desboss1
|
|
:art-group "skel-sidekick-highres"
|
|
:prefix ""
|
|
:draw-frames '((50 max))
|
|
:scissor-frames '()
|
|
:shadow-frames '((min max))
|
|
:cloth-reset-frames '()
|
|
:cloth-commands '()
|
|
:flags #x1
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
)
|
|
(new 'static 'scene-actor
|
|
:name "errol"
|
|
:level 'deserrol
|
|
:art-group "skel-errol"
|
|
:prefix ""
|
|
:draw-frames '((min max))
|
|
:scissor-frames '()
|
|
:shadow-frames '((min max))
|
|
:cloth-reset-frames '()
|
|
:cloth-commands '()
|
|
:flags #x1
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
)
|
|
(new 'static 'scene-actor
|
|
:name "v-snake"
|
|
:level 'wasall
|
|
:art-group "skel-v-snake"
|
|
:prefix ""
|
|
:draw-frames '((min max))
|
|
:scissor-frames '()
|
|
:shadow-frames '((min max))
|
|
:cloth-reset-frames '()
|
|
:cloth-commands '()
|
|
:flags #x1
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
:no-draw-seg #x2
|
|
)
|
|
(new 'static 'scene-actor
|
|
:name "snake-wheel-fma"
|
|
:level 'desboss1
|
|
:art-group "skel-snake-wheel-fma"
|
|
:prefix ""
|
|
:draw-frames '((min max))
|
|
:scissor-frames '()
|
|
:shadow-frames '((min max))
|
|
:cloth-reset-frames '()
|
|
:cloth-commands '()
|
|
:flags #x1
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
)
|
|
(new 'static 'scene-actor
|
|
:name "terraformer-des-fma-2"
|
|
:level 'desboss1
|
|
:art-group "skel-terraformer-des-fma-2"
|
|
:prefix ""
|
|
:draw-frames '((260 max))
|
|
:scissor-frames '()
|
|
:shadow-frames '((min max))
|
|
:cloth-reset-frames '()
|
|
:cloth-commands '()
|
|
:flags #x1
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
:no-draw-seg #x2
|
|
)
|
|
(new 'static 'scene-actor
|
|
:name "terraformer-des-fma-leg-a"
|
|
:level 'desboss1
|
|
:art-group "skel-terraformer-des-fma-leg-a"
|
|
:prefix "lf-"
|
|
:draw-frames '((260 max))
|
|
:scissor-frames '()
|
|
:shadow-frames '((min max))
|
|
:cloth-reset-frames '()
|
|
:cloth-commands '()
|
|
:flags #x1
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
)
|
|
(new 'static 'scene-actor
|
|
:name "terraformer-des-fma-leg-a"
|
|
:level 'desboss1
|
|
:art-group "skel-terraformer-des-fma-leg-a"
|
|
:prefix "lm-"
|
|
:draw-frames '((260 max))
|
|
:scissor-frames '()
|
|
:shadow-frames '((min max))
|
|
:cloth-reset-frames '()
|
|
:cloth-commands '()
|
|
:flags #x1
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
)
|
|
(new 'static 'scene-actor
|
|
:name "terraformer-des-fma-leg-a"
|
|
:level 'desboss1
|
|
:art-group "skel-terraformer-des-fma-leg-a"
|
|
:prefix "lr-"
|
|
:draw-frames '((260 max))
|
|
:scissor-frames '()
|
|
:shadow-frames '((min max))
|
|
:cloth-reset-frames '()
|
|
:cloth-commands '()
|
|
:flags #x1
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
)
|
|
(new 'static 'scene-actor
|
|
:name "terraformer-des-fma-leg-a"
|
|
:level 'desboss1
|
|
:art-group "skel-terraformer-des-fma-leg-a"
|
|
:prefix "rf-"
|
|
:draw-frames '((260 max))
|
|
:scissor-frames '()
|
|
:shadow-frames '((min max))
|
|
:cloth-reset-frames '()
|
|
:cloth-commands '()
|
|
:flags #x1
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
)
|
|
(new 'static 'scene-actor
|
|
:name "terraformer-des-fma-leg-a"
|
|
:level 'desboss1
|
|
:art-group "skel-terraformer-des-fma-leg-a"
|
|
:prefix "rm-"
|
|
:draw-frames '((260 max))
|
|
:scissor-frames '()
|
|
:shadow-frames '((min max))
|
|
:cloth-reset-frames '()
|
|
:cloth-commands '()
|
|
:flags #x1
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
)
|
|
(new 'static 'scene-actor
|
|
:name "terraformer-des-fma-leg-a"
|
|
:level 'desboss1
|
|
:art-group "skel-terraformer-des-fma-leg-a"
|
|
:prefix "rr-"
|
|
:draw-frames '((260 max))
|
|
:scissor-frames '()
|
|
:shadow-frames '((min max))
|
|
:cloth-reset-frames '()
|
|
:cloth-commands '()
|
|
:flags #x1
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
)
|
|
(new 'static 'scene-actor
|
|
:name "terraformer-des-fma-leg-b"
|
|
:level 'desboss1
|
|
:art-group "skel-terraformer-des-fma-leg-b"
|
|
:prefix "lf-"
|
|
:draw-frames '((260 max))
|
|
:scissor-frames '()
|
|
:shadow-frames '((min max))
|
|
:cloth-reset-frames '()
|
|
:cloth-commands '()
|
|
:flags #x1
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
)
|
|
(new 'static 'scene-actor
|
|
:name "terraformer-des-fma-leg-b"
|
|
:level 'desboss1
|
|
:art-group "skel-terraformer-des-fma-leg-b"
|
|
:prefix "lm-"
|
|
:draw-frames '((260 max))
|
|
:scissor-frames '()
|
|
:shadow-frames '((min max))
|
|
:cloth-reset-frames '()
|
|
:cloth-commands '()
|
|
:flags #x1
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
)
|
|
(new 'static 'scene-actor
|
|
:name "terraformer-des-fma-leg-b"
|
|
:level 'desboss1
|
|
:art-group "skel-terraformer-des-fma-leg-b"
|
|
:prefix "lr-"
|
|
:draw-frames '((260 max))
|
|
:scissor-frames '()
|
|
:shadow-frames '((min max))
|
|
:cloth-reset-frames '()
|
|
:cloth-commands '()
|
|
:flags #x1
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
)
|
|
(new 'static 'scene-actor
|
|
:name "terraformer-des-fma-leg-b"
|
|
:level 'desboss1
|
|
:art-group "skel-terraformer-des-fma-leg-b"
|
|
:prefix "rf-"
|
|
:draw-frames '((260 max))
|
|
:scissor-frames '()
|
|
:shadow-frames '((min max))
|
|
:cloth-reset-frames '()
|
|
:cloth-commands '()
|
|
:flags #x1
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
)
|
|
(new 'static 'scene-actor
|
|
:name "terraformer-des-fma-leg-b"
|
|
:level 'desboss1
|
|
:art-group "skel-terraformer-des-fma-leg-b"
|
|
:prefix "rm-"
|
|
:draw-frames '((260 max))
|
|
:scissor-frames '()
|
|
:shadow-frames '((min max))
|
|
:cloth-reset-frames '()
|
|
:cloth-commands '()
|
|
:flags #x1
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
)
|
|
(new 'static 'scene-actor
|
|
:name "terraformer-des-fma-leg-b"
|
|
:level 'desboss1
|
|
:art-group "skel-terraformer-des-fma-leg-b"
|
|
:prefix "rr-"
|
|
:draw-frames '((260 max))
|
|
:scissor-frames '()
|
|
:shadow-frames '((min max))
|
|
:cloth-reset-frames '()
|
|
:cloth-commands '()
|
|
:flags #x1
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
)
|
|
(new 'static 'scene-actor
|
|
:name "terraformer-des-fma-leg-c"
|
|
:level 'desboss1
|
|
:art-group "skel-terraformer-des-fma-leg-c"
|
|
:prefix "lf-"
|
|
:draw-frames '((260 max))
|
|
:scissor-frames '()
|
|
:shadow-frames '((min max))
|
|
:cloth-reset-frames '()
|
|
:cloth-commands '()
|
|
:flags #x1
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
)
|
|
(new 'static 'scene-actor
|
|
:name "terraformer-des-fma-leg-c"
|
|
:level 'desboss1
|
|
:art-group "skel-terraformer-des-fma-leg-c"
|
|
:prefix "lm-"
|
|
:draw-frames '((260 max))
|
|
:scissor-frames '()
|
|
:shadow-frames '((min max))
|
|
:cloth-reset-frames '()
|
|
:cloth-commands '()
|
|
:flags #x1
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
)
|
|
(new 'static 'scene-actor
|
|
:name "terraformer-des-fma-leg-c"
|
|
:level 'desboss1
|
|
:art-group "skel-terraformer-des-fma-leg-c"
|
|
:prefix "lr-"
|
|
:draw-frames '((260 max))
|
|
:scissor-frames '()
|
|
:shadow-frames '((min max))
|
|
:cloth-reset-frames '()
|
|
:cloth-commands '()
|
|
:flags #x1
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
)
|
|
(new 'static 'scene-actor
|
|
:name "terraformer-des-fma-leg-c"
|
|
:level 'desboss1
|
|
:art-group "skel-terraformer-des-fma-leg-c"
|
|
:prefix "rf-"
|
|
:draw-frames '((260 max))
|
|
:scissor-frames '()
|
|
:shadow-frames '((min max))
|
|
:cloth-reset-frames '()
|
|
:cloth-commands '()
|
|
:flags #x1
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
)
|
|
(new 'static 'scene-actor
|
|
:name "terraformer-des-fma-leg-c"
|
|
:level 'desboss1
|
|
:art-group "skel-terraformer-des-fma-leg-c"
|
|
:prefix "rm-"
|
|
:draw-frames '((260 max))
|
|
:scissor-frames '()
|
|
:shadow-frames '((min max))
|
|
:cloth-reset-frames '()
|
|
:cloth-commands '()
|
|
:flags #x1
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
)
|
|
(new 'static 'scene-actor
|
|
:name "terraformer-des-fma-leg-c"
|
|
:level 'desboss1
|
|
:art-group "skel-terraformer-des-fma-leg-c"
|
|
:prefix "rr-"
|
|
:draw-frames '((260 max))
|
|
:scissor-frames '()
|
|
:shadow-frames '((min max))
|
|
:cloth-reset-frames '()
|
|
:cloth-commands '()
|
|
:flags #x1
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
)
|
|
(new 'static 'scene-actor
|
|
:name "terraformer-des-fma-spike"
|
|
:level 'desboss1
|
|
:art-group "skel-terraformer-des-fma-spike"
|
|
:prefix "lf-"
|
|
:draw-frames '((260 max))
|
|
:scissor-frames '()
|
|
:shadow-frames '((min max))
|
|
:cloth-reset-frames '()
|
|
:cloth-commands '()
|
|
:flags #x1
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
)
|
|
(new 'static 'scene-actor
|
|
:name "terraformer-des-fma-spike"
|
|
:level 'desboss1
|
|
:art-group "skel-terraformer-des-fma-spike"
|
|
:prefix "lm-"
|
|
:draw-frames '((260 max))
|
|
:scissor-frames '()
|
|
:shadow-frames '((min max))
|
|
:cloth-reset-frames '()
|
|
:cloth-commands '()
|
|
:flags #x1
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
)
|
|
(new 'static 'scene-actor
|
|
:name "terraformer-des-fma-spike"
|
|
:level 'desboss1
|
|
:art-group "skel-terraformer-des-fma-spike"
|
|
:prefix "lr-"
|
|
:draw-frames '((260 max))
|
|
:scissor-frames '()
|
|
:shadow-frames '((min max))
|
|
:cloth-reset-frames '()
|
|
:cloth-commands '()
|
|
:flags #x1
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
)
|
|
(new 'static 'scene-actor
|
|
:name "terraformer-des-fma-spike"
|
|
:level 'desboss1
|
|
:art-group "skel-terraformer-des-fma-spike"
|
|
:prefix "rf-"
|
|
:draw-frames '((260 max))
|
|
:scissor-frames '()
|
|
:shadow-frames '((min max))
|
|
:cloth-reset-frames '()
|
|
:cloth-commands '()
|
|
:flags #x1
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
)
|
|
(new 'static 'scene-actor
|
|
:name "terraformer-des-fma-spike"
|
|
:level 'desboss1
|
|
:art-group "skel-terraformer-des-fma-spike"
|
|
:prefix "rm-"
|
|
:draw-frames '((260 max))
|
|
:scissor-frames '()
|
|
:shadow-frames '((min max))
|
|
:cloth-reset-frames '()
|
|
:cloth-commands '()
|
|
:flags #x1
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
)
|
|
(new 'static 'scene-actor
|
|
:name "terraformer-des-fma-spike"
|
|
:level 'desboss1
|
|
:art-group "skel-terraformer-des-fma-spike"
|
|
:prefix "rr-"
|
|
:draw-frames '((260 max))
|
|
:scissor-frames '()
|
|
:shadow-frames '((min max))
|
|
:cloth-reset-frames '()
|
|
:cloth-commands '()
|
|
:flags #x1
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
)
|
|
(new 'static 'scene-actor
|
|
:name "terraformer-head"
|
|
:level 'desboss1
|
|
:art-group "skel-terraformer-head"
|
|
:prefix ""
|
|
:draw-frames '((260 max))
|
|
:scissor-frames '()
|
|
:shadow-frames '((min max))
|
|
:cloth-reset-frames '()
|
|
:cloth-commands '()
|
|
:flags #x1
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
)
|
|
)
|
|
:load-point "wasall-final-boss-intro-movie"
|
|
:end-point "desertb-final-boss-start"
|
|
:borrow '((desert-game alias desert copy desboss1 special))
|
|
:sfx-volume -1.0
|
|
:ambient-volume -1.0
|
|
:music-delay 1500.0
|
|
:on-running #f
|
|
:on-complete #f
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(load-scene
|
|
(new 'static 'scene
|
|
:name "arena-outro"
|
|
:extra #f
|
|
:info #f
|
|
:scene-flags (scene-flags scf1 scf2 scf3 scf4)
|
|
:mask-to-clear (process-mask movie projectile)
|
|
:entity "scene-stage-106"
|
|
:art-group "scenecamera"
|
|
:anim "arena-outro"
|
|
:parts #xb4
|
|
:command-list '((0 (fadein (frame-time-30 10)) (send-event *time-of-day* 'change 'hour (int 14)))
|
|
(10
|
|
(part-tracker
|
|
"group-precursor-staff-shot-glow"
|
|
entity
|
|
"particleman"
|
|
joint
|
|
"particleA"
|
|
track
|
|
#t
|
|
duration
|
|
(frame-range 10 5300)
|
|
)
|
|
)
|
|
(2744
|
|
(part-tracker
|
|
"group-precursor-staff-shot"
|
|
entity
|
|
"particleman"
|
|
joint
|
|
"particleA"
|
|
track
|
|
#f
|
|
duration
|
|
(frame-range 2744 2750)
|
|
)
|
|
)
|
|
(2763
|
|
(part-tracker
|
|
"group-precursor-staff-hit"
|
|
entity
|
|
"particleman"
|
|
joint
|
|
"particleC"
|
|
track
|
|
#t
|
|
duration
|
|
(frame-range 2763 2764)
|
|
)
|
|
)
|
|
(2985
|
|
(part-tracker
|
|
"group-precursor-staff-shot"
|
|
entity
|
|
"particleman"
|
|
joint
|
|
"particleA"
|
|
track
|
|
#f
|
|
duration
|
|
(frame-range 2985 2996)
|
|
)
|
|
)
|
|
(3009
|
|
(part-tracker
|
|
"group-precursor-staff-hit"
|
|
entity
|
|
"particleman"
|
|
joint
|
|
"particleC"
|
|
track
|
|
#t
|
|
duration
|
|
(frame-range 3009 3010)
|
|
)
|
|
)
|
|
(3320
|
|
(part-tracker
|
|
"group-ship-door-light"
|
|
entity
|
|
"precursor-ship"
|
|
joint
|
|
"door_glow"
|
|
track
|
|
#t
|
|
duration
|
|
(frame-range 3320 4385)
|
|
)
|
|
)
|
|
(4371
|
|
(part-tracker
|
|
"group-mothership-thrusters"
|
|
entity
|
|
"precursor-ship"
|
|
joint
|
|
"thruster_a"
|
|
track
|
|
#t
|
|
duration
|
|
(frame-range 4371 4577)
|
|
)
|
|
(part-tracker
|
|
"group-mothership-thrusters"
|
|
entity
|
|
"precursor-ship"
|
|
joint
|
|
"thruster_b"
|
|
track
|
|
#t
|
|
duration
|
|
(frame-range 4371 4577)
|
|
)
|
|
(part-tracker
|
|
"group-mothership-thrusters"
|
|
entity
|
|
"precursor-ship"
|
|
joint
|
|
"thruster_c"
|
|
track
|
|
#t
|
|
duration
|
|
(frame-range 4371 4577)
|
|
)
|
|
)
|
|
(5380)
|
|
(5390 (fadeout (frame-time-30 10)))
|
|
(10000)
|
|
(10000 (task-close! "city-win-introduction"))
|
|
)
|
|
:cut-list '(208
|
|
327
|
|
495
|
|
672
|
|
786
|
|
916
|
|
1061
|
|
1168
|
|
1245
|
|
1300
|
|
1387
|
|
1526
|
|
1678
|
|
1749
|
|
1803
|
|
1883
|
|
1954
|
|
2276
|
|
2385
|
|
2557
|
|
2722
|
|
2750
|
|
2918
|
|
2996
|
|
3225
|
|
3292
|
|
3380
|
|
3453
|
|
3598
|
|
3689
|
|
3827
|
|
3894
|
|
4028
|
|
4169
|
|
4318
|
|
4371
|
|
4513
|
|
4578
|
|
4629
|
|
4683
|
|
4857
|
|
5020
|
|
5300
|
|
)
|
|
:wait-ground-time (seconds 1)
|
|
: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 '()
|
|
:shadow-frames '((min max))
|
|
:cloth-reset-frames '()
|
|
:cloth-commands '()
|
|
:camera 4
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
)
|
|
(new 'static 'scene-actor
|
|
:name "particleman"
|
|
:level 'outrocst
|
|
:art-group "skel-particleman"
|
|
:prefix ""
|
|
:draw-frames '((min max))
|
|
:scissor-frames '()
|
|
:shadow-frames '((min max))
|
|
:cloth-reset-frames '()
|
|
:cloth-commands '()
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
)
|
|
(new 'static 'scene-actor
|
|
:name "jakc-highres"
|
|
:level 'outrocst
|
|
:art-group "skel-jakc-highres"
|
|
:prefix ""
|
|
:draw-frames '((0 208) (786 916) (1300 1678) (1803 1954) (3292 3380) (3598 3689) (4169 4399) (4683 5401))
|
|
:scissor-frames '()
|
|
:shadow-frames '((min max))
|
|
:cloth-reset-frames '(4371 5020)
|
|
:cloth-commands '()
|
|
:flags #x1
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
:no-draw-seg #x3a2
|
|
)
|
|
(new 'static 'scene-actor
|
|
:name "precursor-ship"
|
|
:level 'loutro
|
|
:art-group "skel-precursor-ship"
|
|
:prefix ""
|
|
:draw-frames '((min max))
|
|
:scissor-frames '((min max))
|
|
:shadow-frames '((min max))
|
|
:cloth-reset-frames '()
|
|
:cloth-commands '()
|
|
:flags #x1
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
)
|
|
(new 'static 'scene-actor
|
|
:name "sidekick-highres"
|
|
:level 'loutro
|
|
:art-group "skel-sidekick-highres"
|
|
:prefix ""
|
|
:draw-frames '((0 208) (786 916) (1803 2276) (2385 2722) (2749 2764))
|
|
:scissor-frames '()
|
|
:shadow-frames '((min max))
|
|
:cloth-reset-frames '()
|
|
:cloth-commands '()
|
|
:flags #x1
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
)
|
|
(new 'static 'scene-actor
|
|
:name "ottsel-leader"
|
|
:level 'loutro
|
|
:art-group "skel-ottsel-leader"
|
|
:prefix ""
|
|
:draw-frames '((0 327)
|
|
(786 1061)
|
|
(1168 1300)
|
|
(1387 1526)
|
|
(1803 1883)
|
|
(2276 2557)
|
|
(2722 2750)
|
|
(2918 2996)
|
|
(3292 3380)
|
|
(3598 3689)
|
|
(4169 4371)
|
|
)
|
|
:scissor-frames '()
|
|
:shadow-frames '((min max))
|
|
:cloth-reset-frames '(2276)
|
|
:cloth-commands '()
|
|
:flags #x1
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
)
|
|
(new 'static 'scene-actor
|
|
:name "ottsel-surfer"
|
|
:level 'loutro
|
|
:art-group "skel-ottsel-surfer"
|
|
:prefix ""
|
|
:draw-frames '((208 327) (786 1245) (1387 1526) (2722 2750) (2918 2996) (3292 3380) (3598 3689))
|
|
:scissor-frames '()
|
|
:shadow-frames '((min max))
|
|
:cloth-reset-frames '()
|
|
:cloth-commands '()
|
|
:flags #x1
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
)
|
|
(new 'static 'scene-actor
|
|
:name "ottsel-veger"
|
|
:level 'loutro
|
|
:art-group "skel-ottsel-veger"
|
|
:prefix ""
|
|
:draw-frames '((3689 4169))
|
|
:scissor-frames '()
|
|
:shadow-frames '((min max))
|
|
:cloth-reset-frames '()
|
|
:cloth-commands '()
|
|
:flags #x1
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
)
|
|
(new 'static 'scene-actor
|
|
:name "ottsel-tess"
|
|
:level 'loutro2
|
|
:art-group "skel-ottsel-tess"
|
|
:prefix ""
|
|
:draw-frames '((3010 3380) (3453 3598) (4371 4513) (4683 5300))
|
|
:scissor-frames '()
|
|
:shadow-frames '((min max))
|
|
:cloth-reset-frames '()
|
|
:cloth-commands '()
|
|
:flags #x1
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
)
|
|
(new 'static 'scene-actor
|
|
:name "sig-highres"
|
|
:level 'loutro2
|
|
:art-group "skel-sig-highres"
|
|
:prefix ""
|
|
:draw-frames '((0 208) (327 672) (4371 4629))
|
|
:scissor-frames '()
|
|
:shadow-frames '((min max))
|
|
:cloth-reset-frames '()
|
|
:cloth-commands '()
|
|
:flags #x1
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
)
|
|
(new 'static 'scene-actor
|
|
:name "ottsel-daxpants"
|
|
:level 'loutro2
|
|
:art-group "skel-ottsel-daxpants"
|
|
:prefix ""
|
|
:draw-frames '((2764 2918) (2996 3380) (3453 3598) (4371 4513) (4683 5401))
|
|
:scissor-frames '()
|
|
:shadow-frames '((min max))
|
|
:cloth-reset-frames '()
|
|
:cloth-commands '()
|
|
:flags #x1
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
)
|
|
(new 'static 'scene-actor
|
|
:name "ottsel-dummy-outro"
|
|
:level 'loutro2
|
|
:art-group "skel-ottsel-dummy-outro"
|
|
:prefix ""
|
|
:draw-frames '((0 327) (786 1061) (1168 1245) (1387 1526) (1803 1883) (3292 3380) (3598 3689))
|
|
:scissor-frames '()
|
|
:shadow-frames '((min max))
|
|
:cloth-reset-frames '()
|
|
:cloth-commands '()
|
|
:flags #x1
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
)
|
|
(new 'static 'scene-actor
|
|
:name "ashelin-highres"
|
|
:level 'outrocst
|
|
:art-group "skel-ashelin-highres"
|
|
:prefix ""
|
|
:draw-frames '((1300 1387) (1526 1890) (3380 3453) (4371 4513) (4629 4683))
|
|
:scissor-frames '()
|
|
:shadow-frames '((min max))
|
|
:cloth-reset-frames '()
|
|
:cloth-commands '()
|
|
:flags #x1
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
)
|
|
(new 'static 'scene-actor
|
|
:name "tess-highres"
|
|
:level 'outrocst
|
|
:art-group "skel-tess-highres"
|
|
:prefix ""
|
|
:draw-frames '((0 208) (786 916) (1803 2276) (2385 2722) (2749 2918) (2996 3010))
|
|
:scissor-frames '()
|
|
:shadow-frames '((min max))
|
|
:cloth-reset-frames '()
|
|
:cloth-commands '()
|
|
:flags #x1
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
)
|
|
(new 'static 'scene-actor
|
|
:name "samos-highres"
|
|
:level 'outrocst
|
|
:art-group "skel-samos-highres"
|
|
:prefix ""
|
|
:draw-frames '((0 208) (327 672) (4371 4513) (4578 4629))
|
|
:scissor-frames '()
|
|
:shadow-frames '((min max))
|
|
:cloth-reset-frames '()
|
|
:cloth-commands '()
|
|
:flags #x1
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
)
|
|
(new 'static 'scene-actor
|
|
:name "seem-highres"
|
|
:level 'outrocst
|
|
:art-group "skel-seem-highres"
|
|
:prefix ""
|
|
:draw-frames '((1300 1387) (1526 1890) (3380 3453) (4371 4513) (4629 4683))
|
|
:scissor-frames '()
|
|
:shadow-frames '((min max))
|
|
:cloth-reset-frames '()
|
|
:cloth-commands '()
|
|
:flags #x1
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
)
|
|
(new 'static 'scene-actor
|
|
:name "kleever-highres"
|
|
:level 'outrocst
|
|
:art-group "skel-kleever-highres"
|
|
:prefix ""
|
|
:draw-frames '((0 208) (786 916) (3689 4169) (4371 4513) (4513 4578))
|
|
:scissor-frames '((3535 4169))
|
|
:shadow-frames '((min max))
|
|
:cloth-reset-frames '()
|
|
:cloth-commands '()
|
|
:flags #x1
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
)
|
|
(new 'static 'scene-actor
|
|
:name "pecker-highres"
|
|
:level 'outrocst
|
|
:art-group "skel-pecker-highres"
|
|
:prefix ""
|
|
:draw-frames '((327 786) (4371 4513) (4578 4629) (5020 5300))
|
|
:scissor-frames '()
|
|
:shadow-frames '((min max))
|
|
:cloth-reset-frames '()
|
|
:cloth-commands '()
|
|
:flags #x1
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
)
|
|
(new 'static 'scene-actor
|
|
:name "onin-simple"
|
|
:level 'loutro3
|
|
:art-group "skel-onin-simple"
|
|
:prefix ""
|
|
:draw-frames '((327 495) (4371 4629))
|
|
:scissor-frames '()
|
|
:shadow-frames '((min max))
|
|
:cloth-reset-frames '()
|
|
:cloth-commands '()
|
|
:flags #x1
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
)
|
|
(new 'static 'scene-actor
|
|
:name "precursor-ship-door"
|
|
:level 'loutro3
|
|
:art-group "skel-precursor-ship-door"
|
|
:prefix ""
|
|
:draw-frames '((min max))
|
|
:scissor-frames '()
|
|
:shadow-frames '((min max))
|
|
:cloth-reset-frames '()
|
|
:cloth-commands '()
|
|
:flags #x1
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
)
|
|
(new 'static 'scene-actor
|
|
:name "torn-simple"
|
|
:level 'outcast3
|
|
:art-group "skel-torn-simple"
|
|
:prefix ""
|
|
:draw-frames '((1300 1387) (1526 1890) (3380 3453) (4371 4513) (4629 4683))
|
|
:scissor-frames '()
|
|
:shadow-frames '((min max))
|
|
:cloth-reset-frames '()
|
|
:cloth-commands '()
|
|
:flags #x1
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
)
|
|
(new 'static 'scene-actor
|
|
:name "keira-simple"
|
|
:level 'outcast3
|
|
:art-group "skel-keira-simple"
|
|
:prefix ""
|
|
:draw-frames '((327 672) (4371 4513) (4578 4629))
|
|
:scissor-frames '()
|
|
:shadow-frames '((min max))
|
|
:cloth-reset-frames '()
|
|
:cloth-commands '()
|
|
:flags #x1
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
)
|
|
(new 'static 'scene-actor
|
|
:name "wstd-arena-plat"
|
|
:level 'wasstada
|
|
:art-group "skel-wstd-arena-plat"
|
|
:prefix ""
|
|
:draw-frames '((0 208) (786 916) (3689 4169) (4371 4513) (4513 4578))
|
|
:scissor-frames '()
|
|
:shadow-frames '((min max))
|
|
:cloth-reset-frames '()
|
|
:cloth-commands '()
|
|
:flags #x1
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
)
|
|
)
|
|
:load-point "wasstada-outro"
|
|
:end-point "title-credits"
|
|
:borrow '((wasstada 0 loutro special) (outrocst 0 loutro2 special) (wasall 0 loutro3 special))
|
|
:sfx-volume -1.0
|
|
:ambient-volume -1.0
|
|
:music-delay 1500.0
|
|
:scene-task #x10f
|
|
:on-running #f
|
|
:on-complete #f
|
|
)
|
|
)
|