mirror of
https://github.com/open-goal/jak-project
synced 2026-07-07 06:05:15 -04:00
694 lines
21 KiB
Common Lisp
Vendored
Generated
694 lines
21 KiB
Common Lisp
Vendored
Generated
;;-*-Lisp-*-
|
|
(in-package goal)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpartgroup group-talkbox-speak
|
|
:id 122
|
|
:flags (sp4 sp6)
|
|
:bounds (static-bspherem 0 0 0 2)
|
|
:rotate ((degrees 90) (degrees 0) (degrees 0))
|
|
:parts ((sp-item 407 :flags (is-3d sp6 sp7) :period (seconds 0.435) :length (seconds 0.1))
|
|
(sp-item 407 :flags (is-3d sp6 sp7) :period (seconds 0.5) :length (seconds 0.117) :offset 5)
|
|
(sp-item 407 :flags (is-3d sp6 sp7) :period (seconds 1.1) :length (seconds 0.085) :offset 35)
|
|
(sp-item 407 :flags (is-3d sp6 sp7) :period (seconds 0.835) :length (seconds 0.2) :offset 15)
|
|
(sp-item 407 :flags (is-3d sp6 sp7) :period (seconds 1.55) :length (seconds 0.25) :offset 60)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 407
|
|
:init-specs ((:texture (shockwave level-default-sprite))
|
|
(:birth-func 'birth-func-set-vel)
|
|
(:num 0.0 0.3)
|
|
(:y (meters 0.15))
|
|
(:z (meters 0.4))
|
|
(:scale-x (meters 0.1))
|
|
(:scale-y :copy scale-x)
|
|
(:r 255.0)
|
|
(:g 255.0)
|
|
(:b 255.0)
|
|
(:a 16.0)
|
|
(:vel-y (meters 0.006666667) (meters 0.0033333334))
|
|
(:scalevel-x (meters 0.006666667) (meters 0.0033333334))
|
|
(:scalevel-y :copy scalevel-x)
|
|
(:fade-a 0.32)
|
|
(:timer (seconds 0.335))
|
|
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 left-multiply-quat))
|
|
(:next-time (seconds 0.167))
|
|
(:next-launcher 408)
|
|
(:rotate-y (degrees 0))
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 408
|
|
:init-specs ((:fade-a -0.64))
|
|
)
|
|
|
|
;; definition of type camera-remote
|
|
(deftype camera-remote (camera-slave)
|
|
()
|
|
)
|
|
|
|
;; definition for method 3 of type camera-remote
|
|
(defmethod inspect ((this camera-remote))
|
|
(when (not this)
|
|
(set! this this)
|
|
(goto cfg-4)
|
|
)
|
|
(let ((t9-0 (method-of-type camera-slave inspect)))
|
|
(t9-0 this)
|
|
)
|
|
(label cfg-4)
|
|
this
|
|
)
|
|
|
|
;; definition of type remote
|
|
(deftype remote (process-drawable)
|
|
((parent (pointer camera-slave) :override)
|
|
(base-trans vector :inline)
|
|
(focus focus :inline)
|
|
(seeker cam-float-seeker :inline)
|
|
(start-time time-frame)
|
|
(blend float)
|
|
(twist float)
|
|
(speak-effect? symbol)
|
|
)
|
|
(:state-methods
|
|
enter
|
|
idle
|
|
exit
|
|
)
|
|
(:methods
|
|
(init (_type_) none)
|
|
(get-track-pt-and-scale (_type_ vector) float)
|
|
(post-common (_type_) none)
|
|
)
|
|
)
|
|
|
|
;; definition for method 3 of type remote
|
|
(defmethod inspect ((this remote))
|
|
(when (not this)
|
|
(set! this this)
|
|
(goto cfg-4)
|
|
)
|
|
(let ((t9-0 (method-of-type process-drawable inspect)))
|
|
(t9-0 this)
|
|
)
|
|
(format #t "~2Tbase-trans: ~`vector`P~%" (-> this base-trans))
|
|
(format #t "~2Tfocus: #<focus @ #x~X>~%" (-> this focus))
|
|
(format #t "~2Tseeker: #<cam-float-seeker @ #x~X>~%" (-> this seeker))
|
|
(format #t "~2Tstart-time: ~D~%" (-> this start-time))
|
|
(format #t "~2Tblend: ~f~%" (-> this blend))
|
|
(format #t "~2Ttwist: ~f~%" (-> this twist))
|
|
(format #t "~2Tspeak-effect?: ~A~%" (-> this speak-effect?))
|
|
(label cfg-4)
|
|
this
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defskelgroup skel-voicebox talk-box talk-box-lod0-jg talk-box-idle-ja
|
|
((talk-box-lod0-mg (meters 999999)))
|
|
:bounds (static-spherem 0 0 0 4)
|
|
:texture-level 10
|
|
:sort 1
|
|
)
|
|
|
|
;; definition for method 24 of type remote
|
|
;; INFO: Used lq/sq
|
|
(defmethod get-track-pt-and-scale ((this remote) (arg0 vector))
|
|
(let ((s4-0 (handle->process (-> this focus handle))))
|
|
(when s4-0
|
|
(set! (-> arg0 quad) (-> (get-trans (the-as process-focusable s4-0) 3) quad))
|
|
(let ((a0-7 (vector-z-quaternion! (new 'stack-no-clear 'vector) (get-quat (the-as process-focusable s4-0) 0))))
|
|
(vector+float*! arg0 arg0 a0-7 (* -16384.0 (- 1.0 (-> this blend))))
|
|
)
|
|
)
|
|
)
|
|
(lerp-scale 1.0 0.0 (-> this blend) 0.8 1.0)
|
|
)
|
|
|
|
;; definition for method 25 of type remote
|
|
;; WARN: Return type mismatch int vs none.
|
|
(defmethod post-common ((this remote))
|
|
(with-pp
|
|
(rlet ((acc :class vf)
|
|
(vf0 :class vf)
|
|
(vf4 :class vf)
|
|
(vf5 :class vf)
|
|
(vf6 :class vf)
|
|
(vf7 :class vf)
|
|
)
|
|
(init-vf0-vector)
|
|
(ja-post)
|
|
(if (type? (-> this root) collide-shape)
|
|
(update-transforms (the-as collide-shape (-> this root)))
|
|
)
|
|
(when (and (nonzero? (-> this part)) (and (or (and (-> this next-state) (= (-> this next-state name) 'idle))
|
|
(and (-> this next-state) (= (-> this next-state name) 'enter))
|
|
)
|
|
(-> this speak-effect?)
|
|
)
|
|
)
|
|
(let ((v1-15
|
|
(vector-float*! (new 'stack-no-clear 'vector) (-> this parent 0 velocity) (-> pp clock frames-per-second))
|
|
)
|
|
(a0-8 *particle-vel*)
|
|
)
|
|
(let ((a1-4 (-> this node-list data 3 bone transform fvec)))
|
|
(let ((a2-1 20480.0))
|
|
(.mov vf7 a2-1)
|
|
)
|
|
(.lvf vf5 (&-> a1-4 quad))
|
|
)
|
|
(.lvf vf4 (&-> v1-15 quad))
|
|
(.add.x.vf vf6 vf0 vf0 :mask #b1000)
|
|
(.mul.x.vf acc vf5 vf7 :mask #b111)
|
|
(.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111)
|
|
(.svf (&-> a0-8 quad) vf6)
|
|
)
|
|
(let ((v1-16 *particle-vel*)
|
|
(a0-9 *particle-vel*)
|
|
(f0-2 300.0)
|
|
)
|
|
(vector-float*! v1-16 a0-9 (/ 1.0 f0-2))
|
|
)
|
|
(spawn-from-cspace (-> this part) (-> this node-list data 3))
|
|
)
|
|
0
|
|
(none)
|
|
)
|
|
)
|
|
)
|
|
|
|
;; definition for function remote-track
|
|
;; INFO: Used lq/sq
|
|
;; WARN: Return type mismatch int vs none.
|
|
(defbehavior remote-track remote ()
|
|
(let ((gp-0 (handle->process (-> self focus handle)))
|
|
(s5-0 (new 'stack-no-clear 'vector))
|
|
)
|
|
(set! (-> s5-0 quad) (-> self parent 0 trans quad))
|
|
(let ((f30-0 (get-track-pt-and-scale self s5-0)))
|
|
(let ((a1-2 (new 'stack-no-clear 'vector)))
|
|
(set! (-> a1-2 quad) (-> self parent 0 trans quad))
|
|
(vector-lerp! (-> self root trans) a1-2 s5-0 (-> self blend))
|
|
)
|
|
(+! (-> self root trans y) (* 1638.4 (sin (* 54.613335 (the float (mod (current-time) 1200))))))
|
|
(let ((s5-1 (new 'stack-no-clear 'quaternion)))
|
|
(forward-up->quaternion
|
|
s5-1
|
|
(vector-normalize! (vector-! (new 'stack-no-clear 'vector) (target-pos 8) (-> self root trans)) 1.0)
|
|
(new 'static 'vector :y 1.0 :w 1.0)
|
|
)
|
|
(rotate-toward-orientation! (-> self root) s5-1 65536.0 5461.3335 150 150 0.0)
|
|
)
|
|
(when gp-0
|
|
(let* ((gp-1 (-> (the-as process-focusable gp-0) root))
|
|
(s4-1 (-> self root trans))
|
|
(f0-6
|
|
(deg-diff (y-angle gp-1) (vector-y-angle (vector-! (new 'stack-no-clear 'vector) s4-1 (-> gp-1 trans))))
|
|
)
|
|
)
|
|
(if (< 0.0 f0-6)
|
|
(seek! (-> self twist) -0.4 (* 0.3 (seconds-per-frame)))
|
|
(seek! (-> self twist) 0.4 (* 0.3 (seconds-per-frame)))
|
|
)
|
|
)
|
|
(let ((a1-9 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-9 from) (process->ppointer self))
|
|
(set! (-> a1-9 num-params) 0)
|
|
(set! (-> a1-9 message) 'blocked-side?)
|
|
(case (send-event-function (ppointer->process (-> self parent)) a1-9)
|
|
((1)
|
|
(set! (-> self twist) 0.5)
|
|
)
|
|
((2)
|
|
(set! (-> self twist) -0.5)
|
|
)
|
|
((3)
|
|
(set! (-> self twist) 0.0)
|
|
)
|
|
)
|
|
)
|
|
(send-event (ppointer->process (-> self parent)) 'joystick (-> self twist) -1.0)
|
|
)
|
|
(set! (-> self root scale x) f30-0)
|
|
(set! (-> self root scale y) f30-0)
|
|
(set! (-> self root scale z) f30-0)
|
|
)
|
|
)
|
|
0
|
|
(none)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defstate enter (remote)
|
|
:virtual #t
|
|
:event (behavior ((proc process) (argc int) (message symbol) (block event-message-block))
|
|
(case message
|
|
(('die)
|
|
(go-virtual exit)
|
|
)
|
|
(('speak-effect)
|
|
(let ((v0-0 (the-as object (-> block param 0))))
|
|
(set! (-> self speak-effect?) (the-as symbol v0-0))
|
|
v0-0
|
|
)
|
|
)
|
|
)
|
|
)
|
|
:enter (behavior ()
|
|
(set! (-> self start-time) (-> *display* game-clock frame-counter))
|
|
(let* ((gp-0 (ppointer->process (-> self parent 0 parent)))
|
|
(a1-1 (if (type? gp-0 process-focusable)
|
|
gp-0
|
|
)
|
|
)
|
|
)
|
|
(if a1-1
|
|
(try-update-focus (-> self focus) (the-as process-focusable a1-1))
|
|
)
|
|
)
|
|
)
|
|
:trans (behavior ()
|
|
(remote-track)
|
|
(let ((a0-1 (handle->process (-> self focus handle))))
|
|
(if (and a0-1 (< 0.1 (-> self blend)))
|
|
(point-toward-point-clear-roll-pitch! (-> self root) (get-trans (the-as process-focusable a0-1) 0))
|
|
)
|
|
)
|
|
)
|
|
:code (behavior ()
|
|
(let* ((gp-0 (ppointer->process (-> self parent 0 parent)))
|
|
(a0-1 (if (type? gp-0 process-focusable)
|
|
gp-0
|
|
)
|
|
)
|
|
)
|
|
(if (and a0-1 (focus-test? (the-as process-focusable a0-1) pilot))
|
|
(send-event
|
|
(ppointer->process (-> self parent))
|
|
'set-dist
|
|
(new 'static 'vector :z 8192.0 :w 1.0)
|
|
(new 'static 'vector :y 20480.0 :z 12288.0 :w 1.0)
|
|
)
|
|
(send-event
|
|
(ppointer->process (-> self parent))
|
|
'set-dist
|
|
(new 'static 'vector :z 16384.0 :w 1.0)
|
|
(new 'static 'vector :y 20480.0 :z 40960.0 :w 1.0)
|
|
)
|
|
)
|
|
)
|
|
(init (-> self seeker) 1.0 0.01 0.022222223 0.1)
|
|
(set! (-> self seeker target) 0.0)
|
|
(while (< 0.0001 (-> self blend))
|
|
(update! (-> self seeker) 0.0)
|
|
(set! (-> self blend) (-> self seeker value))
|
|
(suspend)
|
|
)
|
|
(set! (-> self blend) 0.0)
|
|
(go-virtual idle)
|
|
)
|
|
:post (behavior ()
|
|
(post-common self)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defstate idle (remote)
|
|
:virtual #t
|
|
:event (-> (method-of-type remote enter) event)
|
|
:trans remote-track
|
|
:code (behavior ()
|
|
(while (handle->process (-> self focus handle))
|
|
(suspend)
|
|
(ja :num! (loop!))
|
|
)
|
|
(go-virtual exit)
|
|
)
|
|
:post (-> (method-of-type remote enter) post)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defstate exit (remote)
|
|
:virtual #t
|
|
:trans remote-track
|
|
:code (behavior ()
|
|
(set! (-> self blend) 1.0)
|
|
(send-event (ppointer->process (-> self parent)) 'change-state empty-state)
|
|
(suspend)
|
|
0
|
|
)
|
|
:post (-> (method-of-type remote enter) post)
|
|
)
|
|
|
|
;; definition for method 23 of type remote
|
|
;; WARN: Return type mismatch remote vs none.
|
|
(defmethod init ((this remote))
|
|
(reset-to-collide-spec (-> this focus) (collide-spec jak player-list))
|
|
(initialize-skeleton
|
|
this
|
|
(the-as skeleton-group (art-group-get-by-name *level* "skel-voicebox" (the-as (pointer level) #f)))
|
|
(the-as pair 0)
|
|
)
|
|
(set! (-> this blend) 1.0)
|
|
(set! (-> this draw light-index) (the-as uint 30))
|
|
(set! (-> this speak-effect?) #f)
|
|
(set! (-> this part) (create-launch-control (-> *part-group-id-table* 122) this))
|
|
(none)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defstate cam-remote (camera-slave)
|
|
:event (-> cam-string event)
|
|
:enter (-> cam-string enter)
|
|
:trans (behavior ()
|
|
(if (or (not *camera*)
|
|
(not (logtest? (-> *camera* master-options) (cam-master-options-u32 HAVE_TARGET)))
|
|
(not (-> self child))
|
|
)
|
|
(deactivate self)
|
|
)
|
|
)
|
|
:code (-> cam-string code)
|
|
)
|
|
|
|
;; definition of type voicebox
|
|
(deftype voicebox (remote)
|
|
((hint handle)
|
|
)
|
|
)
|
|
|
|
;; definition for method 3 of type voicebox
|
|
(defmethod inspect ((this voicebox))
|
|
(when (not this)
|
|
(set! this this)
|
|
(goto cfg-4)
|
|
)
|
|
(let ((t9-0 (method-of-type remote inspect)))
|
|
(t9-0 this)
|
|
)
|
|
(format #t "~2Thint: ~D~%" (-> this hint))
|
|
(label cfg-4)
|
|
this
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defstate exit (voicebox)
|
|
:virtual #t
|
|
:code (behavior ()
|
|
(remove-setting! 'sound-flava)
|
|
(set-time! (-> self state-time))
|
|
(set! (-> self seeker target) 1.0)
|
|
(while (and (< (-> self blend) 0.9999) (not (and (not (handle->process (-> self hint)))
|
|
(time-elapsed? (-> self state-time) (seconds 0.05))
|
|
(-> *setting-control* user-current hint)
|
|
)
|
|
)
|
|
)
|
|
(update! (-> self seeker) 0.0)
|
|
(set! (-> self blend) (-> self seeker value))
|
|
(suspend)
|
|
)
|
|
(set! (-> self blend) 1.0)
|
|
(send-event (ppointer->process (-> self parent)) 'change-state empty-state)
|
|
(suspend)
|
|
(cleanup-for-death self)
|
|
)
|
|
)
|
|
|
|
;; definition for function voicebox-init-by-other
|
|
;; INFO: Used lq/sq
|
|
;; WARN: Return type mismatch object vs none.
|
|
(defbehavior voicebox-init-by-other voicebox ((arg0 vector) (arg1 handle))
|
|
(set! (-> self hint) arg1)
|
|
(set! (-> self root) (new 'process 'trsqv))
|
|
(set! (-> self root trans quad) (-> arg0 quad))
|
|
(set! (-> self base-trans quad) (-> arg0 quad))
|
|
(init self)
|
|
(set! (-> self event-hook) (-> (method-of-object self enter) event))
|
|
(go-virtual enter)
|
|
(none)
|
|
)
|
|
|
|
;; definition for function voicebox-spawn
|
|
(defun voicebox-spawn ((arg0 process-drawable) (arg1 vector))
|
|
(with-pp
|
|
(when *camera*
|
|
(let ((s4-0 (process-spawn
|
|
camera-remote
|
|
:init cam-slave-init
|
|
cam-remote
|
|
#f
|
|
:name "camera-remote"
|
|
:from *camera-dead-pool*
|
|
:to arg0
|
|
)
|
|
)
|
|
)
|
|
(if s4-0
|
|
(process-spawn voicebox arg1 (process->handle pp) :name "voicebox" :to (ppointer->process s4-0))
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
|
|
;; definition of type judge
|
|
(deftype judge (remote)
|
|
((root collide-shape :override)
|
|
(total-time time-frame)
|
|
(beep-time time-frame)
|
|
(hud-timer handle)
|
|
(score uint8)
|
|
(timer? symbol)
|
|
)
|
|
(:state-methods
|
|
wait
|
|
)
|
|
(:methods
|
|
(setup-collision! (_type_) none)
|
|
)
|
|
)
|
|
|
|
;; definition for method 3 of type judge
|
|
(defmethod inspect ((this judge))
|
|
(when (not this)
|
|
(set! this this)
|
|
(goto cfg-4)
|
|
)
|
|
(let ((t9-0 (method-of-type remote inspect)))
|
|
(t9-0 this)
|
|
)
|
|
(format #t "~2Ttotal-time: ~D~%" (-> this total-time))
|
|
(format #t "~2Tbeep-time: ~D~%" (-> this beep-time))
|
|
(format #t "~2Thud-timer: ~D~%" (-> this hud-timer))
|
|
(format #t "~2Tscore: ~D~%" (-> this score))
|
|
(format #t "~2Ttimer?: ~A~%" (-> this timer?))
|
|
(label cfg-4)
|
|
this
|
|
)
|
|
|
|
;; definition for method 24 of type judge
|
|
;; INFO: Used lq/sq
|
|
(defmethod get-track-pt-and-scale ((this judge) (arg0 vector))
|
|
(set! (-> arg0 quad) (-> this base-trans quad))
|
|
1.0
|
|
)
|
|
|
|
;; definition for method 25 of type judge
|
|
;; WARN: Return type mismatch int vs none.
|
|
(defmethod post-common ((this judge))
|
|
(ja-post)
|
|
(if (type? (-> this root) collide-shape)
|
|
(update-transforms (-> this root))
|
|
)
|
|
(when (and (-> this next-state) (let ((v1-6 (-> this next-state name)))
|
|
(or (= v1-6 'idle) (= v1-6 'enter))
|
|
)
|
|
)
|
|
(if *target*
|
|
(set! (-> *game-info* score) (-> *target* fact trick-point))
|
|
)
|
|
(when (-> this timer?)
|
|
(let ((v1-17 (the-as int (- (-> this total-time) (- (-> *display* game-clock frame-counter) (-> this start-time)))))
|
|
)
|
|
(if (< (the-as time-frame v1-17) 0)
|
|
(set! v1-17 0)
|
|
)
|
|
(set! (-> *game-info* timer) (the-as time-frame v1-17))
|
|
)
|
|
)
|
|
)
|
|
0
|
|
(none)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defstate wait (judge)
|
|
:virtual #t
|
|
:event (behavior ((proc process) (argc int) (message symbol) (block event-message-block))
|
|
(case message
|
|
(('die)
|
|
(sound-play "judge-stop")
|
|
(go-virtual exit)
|
|
)
|
|
(('touch 'attack)
|
|
(when *camera*
|
|
(let ((s4-0 (process-spawn
|
|
camera-remote
|
|
:init cam-slave-init
|
|
cam-remote
|
|
#f
|
|
:name "camera-remote"
|
|
:from *camera-dead-pool*
|
|
:to proc
|
|
)
|
|
)
|
|
(s5-2 (if (type? proc process-focusable)
|
|
proc
|
|
)
|
|
)
|
|
)
|
|
(when s4-0
|
|
(change-parent self (ppointer->process s4-0))
|
|
(try-update-focus (-> self focus) (the-as process-focusable s5-2))
|
|
(go-virtual enter)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(('waiting)
|
|
#t
|
|
)
|
|
)
|
|
)
|
|
:code (behavior ()
|
|
(transform-post)
|
|
(logior! (-> self mask) (process-mask sleep))
|
|
(suspend)
|
|
0
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defstate enter (judge)
|
|
:virtual #t
|
|
:event (behavior ((proc process) (argc int) (message symbol) (block event-message-block))
|
|
(case message
|
|
(('die)
|
|
(go-virtual exit)
|
|
)
|
|
(('speak-effect)
|
|
(let ((v0-0 (the-as object (-> block param 0))))
|
|
(set! (-> self speak-effect?) (the-as symbol v0-0))
|
|
v0-0
|
|
)
|
|
)
|
|
(('judging)
|
|
#t
|
|
)
|
|
)
|
|
)
|
|
:enter (behavior ()
|
|
(set! (-> self start-time) (-> *display* game-clock frame-counter))
|
|
(send-event *target* 'get-pickup (pickup-type trick-judge) (if (-> self timer?)
|
|
(the float (-> self total-time))
|
|
#x4d2d08e0
|
|
)
|
|
)
|
|
(sound-play "judge-start")
|
|
(if (-> self timer?)
|
|
(set! (-> self hud-timer)
|
|
(ppointer->handle (process-spawn hud-timer :init hud-init-by-other :name "hud-timer" :to self))
|
|
)
|
|
)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defstate idle (judge)
|
|
:virtual #t
|
|
:event (behavior ((proc process) (argc int) (message symbol) (block event-message-block))
|
|
(case message
|
|
(('die)
|
|
(sound-play "judge-stop")
|
|
(go-virtual exit)
|
|
)
|
|
(('judging)
|
|
#t
|
|
)
|
|
)
|
|
)
|
|
:code (behavior ()
|
|
(while (let ((a0-2 (handle->process (-> self focus handle))))
|
|
(and a0-2 (!= (send-event a0-2 'test-pickup (pickup-type trick-judge)) 0.0))
|
|
)
|
|
(suspend)
|
|
(ja :num! (loop!))
|
|
)
|
|
(if (-> self timer?)
|
|
(send-event (handle->process (-> self hud-timer)) 'hide-and-die)
|
|
)
|
|
(go-virtual exit)
|
|
)
|
|
)
|
|
|
|
;; definition for method 27 of type judge
|
|
;; WARN: Return type mismatch int vs none.
|
|
(defmethod setup-collision! ((this judge))
|
|
(let ((s5-0 (new 'process 'collide-shape this (collide-list-enum hit-by-player))))
|
|
(let ((v1-2 (new 'process 'collide-shape-prim-sphere s5-0 (the-as uint 0))))
|
|
(set! (-> v1-2 prim-core collide-as) (collide-spec collectable))
|
|
(set! (-> v1-2 prim-core collide-with) (collide-spec jak player-list tobot))
|
|
(set-vector! (-> v1-2 local-sphere) 0.0 0.0 0.0 16384.0)
|
|
(set! (-> s5-0 total-prims) (the-as uint 1))
|
|
(set! (-> s5-0 root-prim) v1-2)
|
|
)
|
|
(set! (-> s5-0 nav-radius) (* 0.75 (-> s5-0 root-prim local-sphere w)))
|
|
(let ((v1-5 (-> s5-0 root-prim)))
|
|
(set! (-> s5-0 backup-collide-as) (-> v1-5 prim-core collide-as))
|
|
(set! (-> s5-0 backup-collide-with) (-> v1-5 prim-core collide-with))
|
|
)
|
|
(set! (-> this root) s5-0)
|
|
)
|
|
0
|
|
(none)
|
|
)
|
|
|
|
;; definition for method 11 of type judge
|
|
;; INFO: Used lq/sq
|
|
(defmethod init-from-entity! ((this judge) (arg0 entity-actor))
|
|
(setup-collision! this)
|
|
(init this)
|
|
(process-drawable-from-entity! this arg0)
|
|
(+! (-> this root trans y) 4096.0)
|
|
(set! (-> this base-trans quad) (-> this root trans quad))
|
|
(set! (-> this total-time) (seconds 90))
|
|
(go (method-of-object this wait))
|
|
)
|
|
|
|
;; definition for function judge-init-by-other
|
|
;; INFO: Used lq/sq
|
|
(defbehavior judge-init-by-other judge ((arg0 vector) (arg1 uint) (arg2 symbol))
|
|
(process-entity-set! self (the-as entity #f))
|
|
(set! (-> self score) arg1)
|
|
(setup-collision! self)
|
|
(init self)
|
|
(vector-identity! (-> self root scale))
|
|
(quaternion-identity! (-> self root quat))
|
|
(set! (-> self root trans quad) (-> arg0 quad))
|
|
(set! (-> self base-trans quad) (-> self root trans quad))
|
|
(set! (-> self total-time) (seconds 90))
|
|
(set! (-> self timer?) arg2)
|
|
(go-virtual wait)
|
|
)
|
|
|
|
;; definition for function judge-spawn
|
|
;; WARN: Return type mismatch (pointer process) vs (pointer judge).
|
|
(defun judge-spawn ((arg0 process-tree) (arg1 vector) (arg2 uint) (arg3 object))
|
|
(process-spawn judge arg1 arg2 arg3 :name "judge" :to arg0)
|
|
)
|