mirror of
https://github.com/open-goal/jak-project
synced 2026-06-06 03:39:01 -04:00
674 lines
23 KiB
Common Lisp
Vendored
Generated
674 lines
23 KiB
Common Lisp
Vendored
Generated
;;-*-Lisp-*-
|
|
(in-package goal)
|
|
|
|
;; failed to figure out what this is:
|
|
(defskelgroup *med-res-snow1-sg* medres-snowback
|
|
0
|
|
2
|
|
((1 (meters 999999)))
|
|
:bounds (static-spherem -360 100 100 380)
|
|
:longest-edge (meters 0.01)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defstate cam-robotboss (camera-slave)
|
|
:event
|
|
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
|
|
(case arg2
|
|
(('set-pivot)
|
|
(let ((v0-0 (the-as object (-> self pivot-pt))))
|
|
(set! (-> (the-as vector v0-0) quad) (-> (the-as vector (-> arg3 param 0)) quad))
|
|
v0-0
|
|
)
|
|
)
|
|
(('teleport)
|
|
#f
|
|
)
|
|
(else
|
|
(cam-standard-event-handler arg0 arg1 arg2 arg3)
|
|
)
|
|
)
|
|
)
|
|
:enter
|
|
(behavior ()
|
|
(cond
|
|
((-> self enter-has-run)
|
|
)
|
|
(else
|
|
(set! *camera-base-mode* cam-robotboss)
|
|
(set! (-> self circular-follow quad) (-> *camera* tpos-curr-adj quad))
|
|
(set! (-> self pivot-rad) 73728.0)
|
|
(set! (-> self blend-from-type) (the-as uint 2))
|
|
(set! (-> self blend-to-type) (the-as uint 2))
|
|
)
|
|
)
|
|
(none)
|
|
)
|
|
:trans
|
|
(behavior ()
|
|
(when (zero? (logand (-> *camera* master-options) 2))
|
|
(set! *camera-base-mode* cam-string)
|
|
(cam-slave-go cam-free-floating)
|
|
)
|
|
(none)
|
|
)
|
|
:code
|
|
(behavior ()
|
|
(while #t
|
|
(when #t
|
|
(let ((a2-0 (new-stack-vector0)))
|
|
(vector-! a2-0 (-> *camera* tpos-curr-adj) (-> self pivot-pt))
|
|
(vector-! (-> self circular-follow) (-> self circular-follow) (-> self pivot-pt))
|
|
(v-slrp3!
|
|
(-> self circular-follow)
|
|
(-> self circular-follow)
|
|
a2-0
|
|
(-> *camera* local-down)
|
|
(* 182.04445 (-> *display* time-adjust-ratio))
|
|
)
|
|
)
|
|
(vector+! (-> self circular-follow) (-> self circular-follow) (-> self pivot-pt))
|
|
(let ((gp-0 (new 'stack-no-clear 'vector)))
|
|
(vector-! gp-0 (-> self circular-follow) (-> self pivot-pt))
|
|
(vector-flatten! gp-0 gp-0 (-> *camera* local-down))
|
|
(let ((f0-3 (- (vector-length gp-0) (-> self pivot-rad))))
|
|
(if (>= 0.0 f0-3)
|
|
(vector-reset! gp-0)
|
|
(vector-normalize! gp-0 f0-3)
|
|
)
|
|
)
|
|
(vector+! (-> self trans) gp-0 (-> self pivot-pt))
|
|
)
|
|
)
|
|
(suspend)
|
|
)
|
|
(none)
|
|
)
|
|
)
|
|
|
|
;; definition of type ecoclaw-part-info
|
|
(deftype ecoclaw-part-info (structure)
|
|
((tracker handle :offset-assert 0)
|
|
(kind basic :offset-assert 8)
|
|
(trans vector :inline :offset-assert 16)
|
|
)
|
|
:method-count-assert 9
|
|
:size-assert #x20
|
|
:flag-assert #x900000020
|
|
)
|
|
|
|
;; definition for method 3 of type ecoclaw-part-info
|
|
(defmethod inspect ecoclaw-part-info ((obj ecoclaw-part-info))
|
|
(format #t "[~8x] ~A~%" obj 'ecoclaw-part-info)
|
|
(format #t "~Ttracker: ~D~%" (-> obj tracker))
|
|
(format #t "~Tkind: ~A~%" (-> obj kind))
|
|
(format #t "~Ttrans: #<vector @ #x~X>~%" (-> obj trans))
|
|
obj
|
|
)
|
|
|
|
;; definition of type ecoclaw
|
|
(deftype ecoclaw (process-drawable)
|
|
((particles ecoclaw-part-info 3 :inline :offset-assert 176)
|
|
)
|
|
:heap-base #xa0
|
|
:method-count-assert 20
|
|
:size-assert #x110
|
|
:flag-assert #x1400a00110
|
|
(:states
|
|
ecoclaw-activate
|
|
ecoclaw-idle
|
|
)
|
|
)
|
|
|
|
;; definition for method 3 of type ecoclaw
|
|
(defmethod inspect ecoclaw ((obj ecoclaw))
|
|
(let ((t9-0 (method-of-type process-drawable inspect)))
|
|
(t9-0 obj)
|
|
)
|
|
(format #t "~T~Tparticles[3] @ #x~X~%" (-> obj particles))
|
|
obj
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defskelgroup *ecoclaw-sg* ecoclaw
|
|
0
|
|
2
|
|
((1 (meters 999999)))
|
|
:bounds (static-spherem 0 2 0 9)
|
|
:longest-edge (meters 0)
|
|
)
|
|
|
|
;; definition for function ecoclaw-beam-particle-callback
|
|
;; INFO: Return type mismatch int vs none.
|
|
(defun ecoclaw-beam-particle-callback ((arg0 part-tracker))
|
|
(let* ((a0-1 (the-as (pointer projectile) (-> arg0 userdata)))
|
|
(v1-1 (-> a0-1 0 parent-base))
|
|
(a0-3 (-> a0-1 0 base-vector))
|
|
(gp-1 (vector-! (new 'stack-no-clear 'vector) a0-3 v1-1))
|
|
(f30-0 (vector-y-angle gp-1))
|
|
(f0-1 (- 16384.0 (vector-x-angle gp-1)))
|
|
)
|
|
(set! (-> *part-id-table* 2727 init-specs 14 initial-valuef) f30-0)
|
|
(set! (-> *part-id-table* 2727 init-specs 13 initial-valuef) f0-1)
|
|
(set! (-> *part-id-table* 2729 init-specs 14 initial-valuef) f30-0)
|
|
(set! (-> *part-id-table* 2729 init-specs 13 initial-valuef) f0-1)
|
|
(set! (-> *part-id-table* 2726 init-specs 14 initial-valuef) f30-0)
|
|
(set! (-> *part-id-table* 2726 init-specs 13 initial-valuef) f0-1)
|
|
(set! (-> *part-id-table* 2720 init-specs 14 initial-valuef) f30-0)
|
|
(set! (-> *part-id-table* 2720 init-specs 13 initial-valuef) f0-1)
|
|
(set! (-> *part-id-table* 2722 init-specs 14 initial-valuef) f30-0)
|
|
(set! (-> *part-id-table* 2722 init-specs 13 initial-valuef) f0-1)
|
|
(set! (-> *part-id-table* 2719 init-specs 14 initial-valuef) f30-0)
|
|
(set! (-> *part-id-table* 2719 init-specs 13 initial-valuef) f0-1)
|
|
(set! (-> *part-id-table* 2734 init-specs 14 initial-valuef) f30-0)
|
|
(set! (-> *part-id-table* 2734 init-specs 13 initial-valuef) f0-1)
|
|
(set! (-> *part-id-table* 2736 init-specs 14 initial-valuef) f30-0)
|
|
(set! (-> *part-id-table* 2736 init-specs 13 initial-valuef) f0-1)
|
|
(set! (-> *part-id-table* 2733 init-specs 14 initial-valuef) f30-0)
|
|
(set! (-> *part-id-table* 2733 init-specs 13 initial-valuef) f0-1)
|
|
(set! (-> *part-id-table* 2741 init-specs 14 initial-valuef) f30-0)
|
|
(set! (-> *part-id-table* 2741 init-specs 13 initial-valuef) f0-1)
|
|
(set! (-> *part-id-table* 2743 init-specs 14 initial-valuef) f30-0)
|
|
(set! (-> *part-id-table* 2743 init-specs 13 initial-valuef) f0-1)
|
|
(set! (-> *part-id-table* 2740 init-specs 14 initial-valuef) f30-0)
|
|
(set! (-> *part-id-table* 2740 init-specs 13 initial-valuef) f0-1)
|
|
)
|
|
0
|
|
(none)
|
|
)
|
|
|
|
;; definition for function ecoclaw-handler
|
|
;; INFO: Return type mismatch none vs object.
|
|
;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code? [OP: 28]
|
|
;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code? [OP: 79]
|
|
;; Used lq/sq
|
|
(defbehavior ecoclaw-handler ecoclaw ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
|
|
(let ((v1-0 arg2))
|
|
(the-as
|
|
object
|
|
(cond
|
|
((= v1-0 'open)
|
|
(let ((gp-1 (-> arg3 param 0)))
|
|
(set! (-> self particles 0 kind)
|
|
(the-as basic (if (and (nonzero? gp-1) (type-type? (rtype-of gp-1) sparticle-launch-group))
|
|
gp-1
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(set! (-> self particles 0 trans quad) (-> self root trans quad))
|
|
(let ((f0-1 (+ 12288.0 (-> self particles 0 trans y))))
|
|
(set! (-> self particles 0 trans y) f0-1)
|
|
f0-1
|
|
)
|
|
)
|
|
((= v1-0 'beam-on)
|
|
(let ((s5-0 (-> arg3 param 0)))
|
|
(set! (-> self particles 1 kind)
|
|
(the-as basic (if (and (nonzero? s5-0) (type-type? (rtype-of s5-0) sparticle-launch-group))
|
|
s5-0
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(set! (-> self particles 1 trans quad) (-> self root trans quad))
|
|
(set! (-> self particles 1 trans y) (+ 24576.0 (-> self particles 1 trans y)))
|
|
(let ((s5-1 (-> arg3 param 1)))
|
|
(set! (-> self particles 2 kind)
|
|
(the-as basic (if (and (nonzero? s5-1) (type-type? (rtype-of s5-1) sparticle-launch-group))
|
|
s5-1
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(set! (-> self particles 2 trans quad) (-> (the-as vector (-> arg3 param 2)) quad))
|
|
(let ((f0-5 (+ 81920.0 (-> self particles 2 trans y))))
|
|
(set! (-> self particles 2 trans y) f0-5)
|
|
f0-5
|
|
)
|
|
)
|
|
((= v1-0 'beam-off)
|
|
(set! (-> self particles 1 kind) #f)
|
|
(set! (-> self particles 2 kind) #f)
|
|
(let ((a0-10 (handle->process (-> self particles 1 tracker))))
|
|
(if a0-10
|
|
(deactivate a0-10)
|
|
)
|
|
)
|
|
(let ((a0-14 (handle->process (-> self particles 2 tracker))))
|
|
(if a0-14
|
|
(deactivate a0-14)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defstate ecoclaw-activate (ecoclaw)
|
|
:event
|
|
ecoclaw-handler
|
|
:trans
|
|
(behavior ()
|
|
(if (-> self particles 1 kind)
|
|
(draw-eco-beam (the-as vector (&-> self stack 112)) (the-as vector (&-> self stack 144)))
|
|
)
|
|
(dotimes (gp-0 2)
|
|
(cond
|
|
((handle->process (-> self particles gp-0 tracker))
|
|
(set! (-> (the-as part-tracker (-> self particles gp-0 tracker process 0)) start-time)
|
|
(-> *display* base-frame-counter)
|
|
)
|
|
)
|
|
((-> self particles gp-0 kind)
|
|
(let ((s5-0 (get-process *default-dead-pool* part-tracker #x4000)))
|
|
(set! (-> self particles gp-0 tracker)
|
|
(ppointer->handle (when s5-0
|
|
(let ((t9-2 (method-of-type part-tracker activate)))
|
|
(t9-2 (the-as part-tracker s5-0) self 'part-tracker (the-as pointer #x70004000))
|
|
)
|
|
(run-now-in-process
|
|
s5-0
|
|
part-tracker-init
|
|
(-> self particles gp-0 kind)
|
|
-1
|
|
ecoclaw-beam-particle-callback
|
|
(-> self ppointer)
|
|
#f
|
|
(&+ (&-> self stack 80) (* gp-0 32))
|
|
)
|
|
(-> s5-0 ppointer)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(none)
|
|
)
|
|
:code
|
|
(behavior ()
|
|
(let ((a0-0 (-> self skel root-channel 0)))
|
|
(set! (-> a0-0 frame-group) (if (> (-> self skel active-channels) 0)
|
|
(-> self skel root-channel 0 frame-group)
|
|
)
|
|
)
|
|
(set! (-> a0-0 param 0) (the float (+ (-> (if (> (-> self skel active-channels) 0)
|
|
(-> self skel root-channel 0 frame-group)
|
|
)
|
|
data
|
|
0
|
|
length
|
|
)
|
|
-1
|
|
)
|
|
)
|
|
)
|
|
(set! (-> a0-0 param 1) 1.0)
|
|
(set! (-> a0-0 frame-num) 0.0)
|
|
(joint-control-channel-group!
|
|
a0-0
|
|
(if (> (-> self skel active-channels) 0)
|
|
(-> self skel root-channel 0 frame-group)
|
|
)
|
|
num-func-seek!
|
|
)
|
|
)
|
|
(until (ja-done? 0)
|
|
(suspend)
|
|
(let ((a0-1 (-> self skel root-channel 0)))
|
|
(set! (-> a0-1 param 0) (the float (+ (-> a0-1 frame-group data 0 length) -1)))
|
|
(set! (-> a0-1 param 1) 1.0)
|
|
(joint-control-channel-group-eval! a0-1 (the-as art-joint-anim #f) num-func-seek!)
|
|
)
|
|
)
|
|
(while #t
|
|
(suspend)
|
|
)
|
|
(none)
|
|
)
|
|
:post
|
|
(the-as (function none :behavior ecoclaw) ja-post)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defstate ecoclaw-idle (ecoclaw)
|
|
:event
|
|
ecoclaw-handler
|
|
:code
|
|
(behavior ()
|
|
(while #t
|
|
(if (-> self particles 0 kind)
|
|
(go ecoclaw-activate)
|
|
)
|
|
(suspend)
|
|
)
|
|
(none)
|
|
)
|
|
:post
|
|
(the-as (function none :behavior ecoclaw) ja-post)
|
|
)
|
|
|
|
;; definition for method 11 of type ecoclaw
|
|
;; INFO: Return type mismatch object vs none.
|
|
(defmethod init-from-entity! ecoclaw ((obj ecoclaw) (arg0 entity-actor))
|
|
(set! (-> obj root) (new 'process 'trsqv))
|
|
(process-drawable-from-entity! obj arg0)
|
|
(initialize-skeleton obj *ecoclaw-sg* '())
|
|
(dotimes (v1-3 3)
|
|
(set! (-> obj particles v1-3 kind) #f)
|
|
(set! (-> obj particles v1-3 tracker) (the-as handle #f))
|
|
)
|
|
(set! *ecoclaw* (the-as (pointer ecoclaw) (process->ppointer obj)))
|
|
(go ecoclaw-idle)
|
|
(none)
|
|
)
|
|
|
|
;; definition of type silodoor
|
|
(deftype silodoor (process-drawable)
|
|
((part-opened float :offset-assert 176)
|
|
)
|
|
:heap-base #x50
|
|
:method-count-assert 22
|
|
:size-assert #xb4
|
|
:flag-assert #x16005000b4
|
|
(:methods
|
|
(idle () _type_ :state 20)
|
|
(hidden () _type_ :state 21)
|
|
)
|
|
)
|
|
|
|
;; definition for method 3 of type silodoor
|
|
(defmethod inspect silodoor ((obj silodoor))
|
|
(let ((t9-0 (method-of-type process-drawable inspect)))
|
|
(t9-0 obj)
|
|
)
|
|
(format #t "~T~Tpart-opened: ~f~%" (-> obj part-opened))
|
|
obj
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defskelgroup *silodoor-sg* silodoor
|
|
0
|
|
2
|
|
((1 (meters 999999)))
|
|
:bounds (static-spherem 0 0 0 25)
|
|
:longest-edge (meters 0)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defstate idle (silodoor)
|
|
:virtual #t
|
|
:event
|
|
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
|
|
(case arg2
|
|
(('open)
|
|
(let ((f0-0 (the-as float (-> arg3 param 0))))
|
|
(set! (-> self part-opened) f0-0)
|
|
f0-0
|
|
)
|
|
)
|
|
(('hide)
|
|
(go-virtual hidden)
|
|
)
|
|
)
|
|
)
|
|
:trans
|
|
(the-as (function none :behavior silodoor) rider-trans)
|
|
:code
|
|
(behavior ()
|
|
(while #t
|
|
(when (not (movie?))
|
|
(let ((gp-0 (-> self skel root-channel 0)))
|
|
(set! (-> gp-0 param 0) (* (-> self part-opened) (the float (ja-num-frames 0))))
|
|
(set! (-> gp-0 param 1) 0.01)
|
|
(joint-control-channel-group-eval! gp-0 (the-as art-joint-anim #f) num-func-seek!)
|
|
)
|
|
(cond
|
|
((< 0.01 (fabs (- (* (-> self part-opened) (the float (ja-num-frames 0))) (ja-aframe-num 0))))
|
|
(if (nonzero? (-> self sound))
|
|
(update! (-> self sound))
|
|
)
|
|
)
|
|
((nonzero? (-> self sound))
|
|
(stop! (-> self sound))
|
|
)
|
|
)
|
|
)
|
|
(suspend)
|
|
)
|
|
(none)
|
|
)
|
|
:post
|
|
(behavior ()
|
|
(if (and (< (vector-vector-xz-distance (target-pos 0) (-> self root trans)) 57344.0) (not (ja-min? 0)))
|
|
(rider-post)
|
|
(transform-post)
|
|
)
|
|
(none)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defstate hidden (silodoor)
|
|
:virtual #t
|
|
:code
|
|
(behavior ()
|
|
(if (nonzero? (-> self sound))
|
|
(stop! (-> self sound))
|
|
)
|
|
(logior! (-> self draw status) (draw-status hidden))
|
|
(ja-post)
|
|
(while (not (task-closed? (game-task finalboss-movies) (task-status need-reminder-a)))
|
|
(suspend)
|
|
)
|
|
(logclear! (-> self draw status) (draw-status hidden))
|
|
(let ((v1-12 (-> self skel root-channel 0)))
|
|
(set! (-> v1-12 num-func) num-func-identity)
|
|
(set! (-> v1-12 frame-num) 0.0)
|
|
)
|
|
(set! (-> self part-opened) 0.0)
|
|
(go-virtual idle)
|
|
(none)
|
|
)
|
|
)
|
|
|
|
;; definition for method 11 of type silodoor
|
|
;; INFO: Return type mismatch object vs none.
|
|
(defmethod init-from-entity! silodoor ((obj silodoor) (arg0 entity-actor))
|
|
(let ((s4-0 (new 'process 'collide-shape-moving obj (collide-list-enum usually-hit-by-player))))
|
|
(set! (-> s4-0 dynam) (copy *standard-dynamics* 'process))
|
|
(set! (-> s4-0 reaction) default-collision-reaction)
|
|
(set! (-> s4-0 no-reaction)
|
|
(the-as (function collide-shape-moving collide-shape-intersect vector vector none) nothing)
|
|
)
|
|
(alloc-riders s4-0 1)
|
|
(let ((s3-0 (new 'process 'collide-shape-prim-group s4-0 (the-as uint 4) 0)))
|
|
(set! (-> s3-0 prim-core collide-as) (collide-kind ground-object))
|
|
(set! (-> s3-0 collide-with) (collide-kind target))
|
|
(set! (-> s3-0 prim-core action) (collide-action solid ca-1))
|
|
(set! (-> s3-0 transform-index) 0)
|
|
(set-vector! (-> s3-0 local-sphere) 0.0 0.0 0.0 102400.0)
|
|
(set-root-prim! s4-0 s3-0)
|
|
(let ((s2-0 (new 'process 'collide-shape-prim-mesh s4-0 (the-as uint 0) (the-as uint 0))))
|
|
(set! (-> s2-0 prim-core collide-as) (collide-kind ground-object))
|
|
(set! (-> s2-0 collide-with) (collide-kind target))
|
|
(set! (-> s2-0 prim-core action) (collide-action solid ca-1 ca-4))
|
|
(set! (-> s2-0 prim-core offense) (collide-offense indestructible))
|
|
(set! (-> s2-0 transform-index) 5)
|
|
(set-vector! (-> s2-0 local-sphere) 0.0 0.0 0.0 102400.0)
|
|
(append-prim s3-0 s2-0)
|
|
)
|
|
(let ((s2-1 (new 'process 'collide-shape-prim-mesh s4-0 (the-as uint 1) (the-as uint 0))))
|
|
(set! (-> s2-1 prim-core collide-as) (collide-kind ground-object))
|
|
(set! (-> s2-1 collide-with) (collide-kind target))
|
|
(set! (-> s2-1 prim-core action) (collide-action solid ca-1 ca-4))
|
|
(set! (-> s2-1 prim-core offense) (collide-offense indestructible))
|
|
(set! (-> s2-1 transform-index) 4)
|
|
(set-vector! (-> s2-1 local-sphere) 0.0 0.0 0.0 102400.0)
|
|
(append-prim s3-0 s2-1)
|
|
)
|
|
(let ((s2-2 (new 'process 'collide-shape-prim-mesh s4-0 (the-as uint 2) (the-as uint 0))))
|
|
(set! (-> s2-2 prim-core collide-as) (collide-kind ground-object))
|
|
(set! (-> s2-2 collide-with) (collide-kind target))
|
|
(set! (-> s2-2 prim-core action) (collide-action solid ca-1 ca-4))
|
|
(set! (-> s2-2 prim-core offense) (collide-offense indestructible))
|
|
(set! (-> s2-2 transform-index) 7)
|
|
(set-vector! (-> s2-2 local-sphere) 0.0 0.0 0.0 102400.0)
|
|
(append-prim s3-0 s2-2)
|
|
)
|
|
(let ((s2-3 (new 'process 'collide-shape-prim-mesh s4-0 (the-as uint 3) (the-as uint 0))))
|
|
(set! (-> s2-3 prim-core collide-as) (collide-kind ground-object))
|
|
(set! (-> s2-3 collide-with) (collide-kind target))
|
|
(set! (-> s2-3 prim-core action) (collide-action solid ca-1 ca-4))
|
|
(set! (-> s2-3 prim-core offense) (collide-offense indestructible))
|
|
(set! (-> s2-3 transform-index) 6)
|
|
(set-vector! (-> s2-3 local-sphere) 0.0 0.0 0.0 102400.0)
|
|
(append-prim s3-0 s2-3)
|
|
)
|
|
)
|
|
(set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w)))
|
|
(backup-collide-with-as s4-0)
|
|
(set! (-> obj root) s4-0)
|
|
)
|
|
(process-drawable-from-entity! obj arg0)
|
|
(initialize-skeleton obj *silodoor-sg* '())
|
|
(logior! (-> obj skel status) (janim-status inited))
|
|
(set! (-> obj root pause-adjust-distance) 1228800.0)
|
|
(set! (-> obj sound) (new
|
|
'process
|
|
'ambient-sound
|
|
(new 'static 'sound-spec
|
|
:mask #x80
|
|
:num 1.0
|
|
:group #x1
|
|
:sound-name (static-sound-name "silo-moves")
|
|
:volume #x400
|
|
:fo-max 80
|
|
)
|
|
(-> obj root trans)
|
|
)
|
|
)
|
|
(logclear! (-> obj mask) (process-mask actor-pause crate enemy attackable))
|
|
(set! (-> obj part-opened) 0.0)
|
|
(go (method-of-object obj idle))
|
|
(none)
|
|
)
|
|
|
|
;; definition of type finalbosscam
|
|
(deftype finalbosscam (process-taskable)
|
|
((robotboss handle :offset-assert 384)
|
|
)
|
|
:heap-base #x120
|
|
:method-count-assert 53
|
|
:size-assert #x188
|
|
:flag-assert #x3501200188
|
|
)
|
|
|
|
;; definition for method 3 of type finalbosscam
|
|
(defmethod inspect finalbosscam ((obj finalbosscam))
|
|
(let ((t9-0 (method-of-type process-taskable inspect)))
|
|
(t9-0 obj)
|
|
)
|
|
(format #t "~T~Trobotboss: ~D~%" (-> obj robotboss))
|
|
obj
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defskelgroup *finalbosscam-sg* finalbosscam
|
|
0
|
|
2
|
|
((1 (meters 999999)))
|
|
:bounds (static-spherem 0 0 0 4)
|
|
:longest-edge (meters 0)
|
|
)
|
|
|
|
;; definition for function robotboss-manipy-trans-hook
|
|
;; INFO: Return type mismatch int vs none.
|
|
(defbehavior robotboss-manipy-trans-hook robotboss ()
|
|
(let ((gp-0 (new 'stack-no-clear 'vector)))
|
|
(vector<-cspace! gp-0 (-> self node-list data 7))
|
|
(spawn (-> self part) gp-0)
|
|
)
|
|
0
|
|
(none)
|
|
)
|
|
|
|
;; definition for method 32 of type finalbosscam
|
|
;; INFO: Return type mismatch spool-anim vs basic.
|
|
(defmethod play-anim! finalbosscam ((obj finalbosscam) (arg0 symbol))
|
|
(when arg0
|
|
(let ((s5-0 (get-process *default-dead-pool* manipy #x4000)))
|
|
(set! (-> obj robotboss)
|
|
(ppointer->handle
|
|
(when s5-0
|
|
(let ((t9-1 (method-of-type manipy activate)))
|
|
(t9-1 (the-as manipy s5-0) obj 'manipy (the-as pointer #x70004000))
|
|
)
|
|
(run-now-in-process s5-0 manipy-init (-> obj root-override trans) (-> obj entity) *robotboss-sg* #f)
|
|
(-> s5-0 ppointer)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(send-event (handle->process (-> obj robotboss)) 'anim-mode 'clone-anim)
|
|
(send-event (handle->process (-> obj robotboss)) 'center-joint 3)
|
|
(send-event (handle->process (-> obj robotboss)) 'origin-joint-index 3)
|
|
(send-event (handle->process (-> obj robotboss)) 'trans-hook robotboss-manipy-trans-hook)
|
|
(send-event
|
|
(handle->process (-> obj robotboss))
|
|
'eval
|
|
(lambda :behavior finalbosscam () (let ((v0-0 (create-launch-control (-> *part-group-id-table* 645) self)))
|
|
(set! (-> self part) v0-0)
|
|
v0-0
|
|
)
|
|
)
|
|
)
|
|
(let ((v1-43 (handle->process (-> obj robotboss))))
|
|
(if v1-43
|
|
(set! (-> (the-as robotboss v1-43) draw bounds w) 327680.0)
|
|
)
|
|
)
|
|
)
|
|
(the-as basic (new 'static 'spool-anim :name "finalbosscam-white-eco" :index 3 :parts 3 :command-list '()))
|
|
)
|
|
|
|
;; definition for method 31 of type finalbosscam
|
|
(defmethod get-art-elem finalbosscam ((obj finalbosscam))
|
|
(-> obj draw art-group data 2)
|
|
)
|
|
|
|
;; definition for method 39 of type finalbosscam
|
|
(defmethod should-display? finalbosscam ((obj finalbosscam))
|
|
#f
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defstate play-anim (finalbosscam)
|
|
:virtual #t
|
|
:exit
|
|
(behavior ()
|
|
(let ((a0-1 (handle->process (-> self robotboss))))
|
|
(if a0-1
|
|
(deactivate a0-1)
|
|
)
|
|
)
|
|
((-> (method-of-type process-taskable play-anim) exit))
|
|
(none)
|
|
)
|
|
)
|
|
|
|
;; definition for function finalbosscam-init-by-other
|
|
;; INFO: Return type mismatch object vs none.
|
|
(defbehavior finalbosscam-init-by-other finalbosscam ((arg0 entity))
|
|
(set! (-> self entity) arg0)
|
|
(dummy-40 self arg0 *finalbosscam-sg* 4 4 (new 'static 'vector :w 4096.0) 4)
|
|
(set! (-> self tasks) (get-task-control (game-task finalboss-movies)))
|
|
(set! (-> self robotboss) (the-as handle #f))
|
|
(go-virtual hidden)
|
|
(none)
|
|
)
|