Files
jak-project/test/decompiler/reference/jak2/levels/under/pipe-grunt_REF.gc
T
ManDude 7a8aa71204 [jak2] implement statistics tracker (#3288)
Currently only tracks enemy kills, and how they were killed. There is
currently no menu for this, but I've already added most of the text for
it. Also did a bunch of misc decompilation fixes and renamed some
methods.

Fixes #3277 
Fixes #3278
2024-01-11 22:49:41 +00:00

118 lines
4.2 KiB
Common Lisp
Vendored
Generated

;;-*-Lisp-*-
(in-package goal)
;; definition of type pipe-grunt
(deftype pipe-grunt (grunt)
((pipe-front vector :inline)
(pipe-dir vector :inline)
)
(:methods
(pipe-grunt-method-186 (_type_) vector)
)
)
;; definition for method 3 of type pipe-grunt
(defmethod inspect ((this pipe-grunt))
(when (not this)
(set! this this)
(goto cfg-4)
)
(let ((t9-0 (method-of-type grunt inspect)))
(t9-0 this)
)
(format #t "~2Tpipe-front: #<vector @ #x~X>~%" (-> this pipe-front))
(format #t "~2Tpipe-dir: #<vector @ #x~X>~%" (-> this pipe-dir))
(label cfg-4)
this
)
;; definition for method 66 of type pipe-grunt
(defmethod go-ambush ((this pipe-grunt))
(go (method-of-object this ambush))
)
;; definition for method 186 of type pipe-grunt
(defmethod pipe-grunt-method-186 ((this pipe-grunt))
(let ((gp-0 (new 'static 'vector :x -1187061.8 :y -278487.03 :z 8090870.0 :w 1.0)))
(let ((v1-0 (new 'static 'vector :x -1148026.9 :y -278487.03 :z 8112414.5 :w 1.0))
(s3-0 (new 'stack-no-clear 'vector))
(s4-0 (new 'stack-no-clear 'vector))
)
(vector-! s3-0 v1-0 gp-0)
(let ((f30-0 (vector-length s3-0)))
(vector-normalize! s3-0 1.0)
(vector-rotate90-around-y! s4-0 s3-0)
(vector-normalize-copy! (-> this event-param-point) s3-0 (rnd-float-range this 0.0 f30-0))
)
(vector-normalize! s4-0 (rnd-float-range this -16384.0 16384.0))
(vector+! (-> this event-param-point) (-> this event-param-point) s4-0)
)
(vector+! (-> this event-param-point) (-> this event-param-point) gp-0)
)
)
;; failed to figure out what this is:
(defstate ambush (pipe-grunt)
:virtual #t
:event enemy-event-handler
:enter (behavior ()
(set-time! (-> self state-time))
(logior! (-> self enemy-flags) (enemy-flag alert))
(logclear! (-> self enemy-flags) (enemy-flag use-notice-distance directed directed-ready))
(let ((v1-7 (-> self root root-prim)))
(set! (-> v1-7 prim-core collide-as) (-> self root backup-collide-as))
(set! (-> v1-7 prim-core collide-with) (-> self root backup-collide-with))
)
(logclear! (-> self draw status) (draw-control-status no-draw))
(let ((v1-10 self))
(set! (-> v1-10 enemy-flags) (the-as enemy-flag (logclear (-> v1-10 enemy-flags) (enemy-flag enemy-flag36))))
(set! (-> v1-10 nav callback-info) *nav-enemy-null-callback-info*)
)
0
(set-vector! (-> self pipe-front) -1198776.4 -224337.92 8087470.0 1.0)
(vector-! (-> self pipe-dir) (-> self pipe-front) (-> self root trans))
(vector-normalize! (-> self pipe-dir) 1.0)
(quaternion-look-at! (-> self root quat) (-> self pipe-dir) *up-vector*)
(set! (-> self charge-anim) (-> *grunt-global-info* charge-anim (rnd-int-count self 3)))
(vector-normalize-copy! (-> self root transv) (-> self pipe-dir) (-> self charge-anim travel-speed))
(let ((gp-0 (new 'stack-no-clear 'vector)))
(vector-rotate90-around-y! gp-0 (-> self pipe-dir))
(vector-normalize! gp-0 (rnd-float-range self -4096.0 4096.0))
(move-by-vector! (-> self root) gp-0)
)
)
:trans (behavior ()
(let ((gp-0 (new 'stack-no-clear 'vector)))
(set! (-> gp-0 quad) (-> self root trans quad))
(vector-v++! gp-0 (-> self root transv))
(move-to-point! (-> self root) gp-0)
(let ((v1-4 (new 'stack-no-clear 'vector)))
(vector-! v1-4 (-> self pipe-front) gp-0)
(when (< (vector-dot v1-4 (-> self pipe-dir)) 0.0)
(pipe-grunt-method-186 self)
(set! (-> self enemy-flags)
(the-as enemy-flag (logclear (-> self enemy-flags) (enemy-flag jump-check-blocked)))
)
(send-event self 'jump 0 (-> self event-param-point))
)
)
)
)
:code (behavior ()
(let ((f30-0 (rnd-float-range self 0.9 1.1)))
(ja-channel-push! 1 0)
(until #f
(let ((a1-2 (-> self draw art-group data (-> self charge-anim anim-index))))
(ja-no-eval :group! a1-2 :num! (seek! max f30-0) :frame-num 0.0)
)
(until (ja-done? 0)
(suspend)
(ja :num! (seek! max f30-0))
)
)
)
#f
)
:post nav-enemy-simple-post
)