mirror of
https://github.com/open-goal/jak-project
synced 2026-06-28 19:21:06 -04:00
7a8aa71204
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
118 lines
4.2 KiB
Common Lisp
Vendored
Generated
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
|
|
)
|