diff --git a/decompiler/config/jak2/ntsc_v1/inputs.jsonc b/decompiler/config/jak2/ntsc_v1/inputs.jsonc index e518c577fa..db601a121d 100644 --- a/decompiler/config/jak2/ntsc_v1/inputs.jsonc +++ b/decompiler/config/jak2/ntsc_v1/inputs.jsonc @@ -12,7 +12,7 @@ "CGO/KERNEL.CGO", "CGO/ENGINE.CGO", "CGO/GAME.CGO", - "CGO/COMMON.CGO", + // "CGO/COMMON.CGO", "DGO/LWIDEB.DGO", "DGO/LMEETBRT.DGO", "DGO/CTA.DGO", diff --git a/decompiler/config/jak2/ntsc_v1/var_names.jsonc b/decompiler/config/jak2/ntsc_v1/var_names.jsonc index feda46b9fe..13800de283 100644 --- a/decompiler/config/jak2/ntsc_v1/var_names.jsonc +++ b/decompiler/config/jak2/ntsc_v1/var_names.jsonc @@ -4212,5 +4212,11 @@ "vars": { "gp-0": "charp" } + }, + "(method 55 enemy)": { + "args": ["self"] + }, + "(method 55 nav-enemy)": { + "args": ["self"] } } diff --git a/goal_src/jak2/dgos/common.gd b/goal_src/jak2/dgos/common.gd deleted file mode 100644 index 99285ca810..0000000000 --- a/goal_src/jak2/dgos/common.gd +++ /dev/null @@ -1,38 +0,0 @@ -("COMMON.CGO" - ("los-control-h.o" - "airlock.o" - "water-anim.o" - "blocking-plane.o" - "idle-control.o" - "dark-eco-pool.o" - "enemy-h.o" - "nav-enemy-h.o" - "rigid-body-h.o" - "enemy.o" - "nav-enemy.o" - "base-plat.o" - "plat.o" - "basebutton.o" - "bouncer.o" - "conveyor.o" - "elevator.o" - "rigid-body.o" - "rigid-body-queue.o" - "rigid-body-plat.o" - "joint-exploder.o" - "simple-focus.o" - "simple-nav-sphere.o" - "process-taskable.o" - "scene-actor.o" - "scene-looper.o" - "warp-gate.o" - "guard-projectile.o" - "metalhead-projectile.o" - "los-control.o" - "grunt.o" - "flitter.o" - "battle.o" - "elec-gate.o" - "cty-guard-turret-button.o" - "entity-debug.o" ;; added - )) diff --git a/goal_src/jak2/engine/ai/enemy.gc b/goal_src/jak2/engine/ai/enemy.gc index e473f008cf..8d506763ac 100644 --- a/goal_src/jak2/engine/ai/enemy.gc +++ b/goal_src/jak2/engine/ai/enemy.gc @@ -289,60 +289,54 @@ ) ) -(defmethod track-target! enemy ((obj enemy)) +(defmethod track-target! enemy ((self enemy)) "Does a lot of various things relating to interacting with the target - tracks when the enemy was last drawn - looks at the target and handles attacking @TODO Not extremely well understood yet" (with-pp - (if (and (nonzero? (-> obj draw)) (logtest? (-> obj draw status) (draw-control-status on-screen))) - (set! (-> obj last-draw-time) (-> pp clock frame-counter)) + (if (and (nonzero? (-> self draw)) (logtest? (-> self draw status) (draw-control-status on-screen))) + (set! (-> self last-draw-time) (-> pp clock frame-counter)) ) - (enemy-method-129 obj) - (if (logtest? (enemy-flag use-trigger) (-> obj enemy-flags)) - (enemy-method-100 obj) + (enemy-method-129 self) + (if (logtest? (enemy-flag use-trigger) (-> self enemy-flags)) + (enemy-method-100 self) ) (when *target* - (if *target* - (look-at! - (-> *target* neck) - (the-as vector (-> obj root-override2 root-prim prim-core)) - (if (logtest? (-> obj enemy-flags) (enemy-flag use-notice-distance)) - 'attacking - ) - obj - ) - ) + (target-look-at-me! :trans (the-as vector (-> self root-override2 root-prim prim-core)) + :message (if (logtest? (-> self enemy-flags) (enemy-flag use-notice-distance)) + 'attacking + )) ) - (when (nonzero? (-> obj neck)) - (when (logtest? (-> obj enemy-flags) (enemy-flag lock-focus)) - (let ((a0-9 (handle->process (-> obj focus handle)))) + (when (nonzero? (-> self neck)) + (when (logtest? (-> self enemy-flags) (enemy-flag lock-focus)) + (let ((a0-9 (handle->process (-> self focus handle)))) (if a0-9 - (target-set! (-> obj neck) (get-trans (the-as process-focusable a0-9) 2)) + (target-set! (-> self neck) (get-trans (the-as process-focusable a0-9) 2)) ) ) ) ) - (when (and (logtest? (-> obj enemy-flags) (enemy-flag attackable-backup)) - (>= (- (-> pp clock frame-counter) (-> obj auto-reset-penetrate-time)) (seconds 0.1)) + (when (and (logtest? (-> self enemy-flags) (enemy-flag attackable-backup)) + (>= (- (-> pp clock frame-counter) (-> self auto-reset-penetrate-time)) (seconds 0.1)) ) - (logclear! (-> obj enemy-flags) (enemy-flag attackable-backup)) - (set! (-> obj root-override2 penetrated-by) (get-penetrate-info obj)) + (logclear! (-> self enemy-flags) (enemy-flag attackable-backup)) + (set! (-> self root-override2 penetrated-by) (get-penetrate-info self)) (let ((v1-48 0)) - (if (logtest? (penetrate knocked) (-> obj root-override2 penetrate-using)) + (if (logtest? (penetrate knocked) (-> self root-override2 penetrate-using)) (set! v1-48 (logior (shl 1 32) v1-48)) ) - (set! (-> obj root-override2 penetrate-using) (the-as penetrate v1-48)) + (set! (-> self root-override2 penetrate-using) (the-as penetrate v1-48)) ) ) - (if (logtest? (-> obj enemy-flags) (enemy-flag look-at-focus)) - (enemy-method-136 obj) + (if (logtest? (-> self enemy-flags) (enemy-flag look-at-focus)) + (enemy-method-136 self) ) - (if (logtest? (enemy-flag trackable-backup directed-ready) (-> obj enemy-flags)) - (enemy-method-54 obj) + (if (logtest? (enemy-flag trackable-backup directed-ready) (-> self enemy-flags)) + (enemy-method-54 self) ) - (if (and *debug-segment* (-> obj enemy-info debug-draw-neck) (nonzero? (-> obj neck))) - (joint-mod-debug-draw (-> obj neck)) + (if (and *debug-segment* (-> self enemy-info debug-draw-neck) (nonzero? (-> self neck))) + (joint-mod-debug-draw (-> self neck)) ) (ja-post) 0 diff --git a/goal_src/jak2/engine/anim/joint-mod-h.gc b/goal_src/jak2/engine/anim/joint-mod-h.gc index 4c3daf32a3..9891630beb 100644 --- a/goal_src/jak2/engine/anim/joint-mod-h.gc +++ b/goal_src/jak2/engine/anim/joint-mod-h.gc @@ -639,3 +639,10 @@ (enable-set! (_type_ symbol) none 10) ) ) + + +(defmacro target-look-at-me! (&key trans &key (message 'nothing-special)) + "make target look at a trans in self. PC PORT NOTE : added check to see if lods have been set" + `(if (and (logtest? (-> self draw status) (draw-control-status lod-set)) *target*) + (look-at! (-> *target* neck) ,trans ,message self))) + diff --git a/goal_src/jak2/engine/draw/drawable.gc b/goal_src/jak2/engine/draw/drawable.gc index 3d8ad9901c..b445e80b60 100644 --- a/goal_src/jak2/engine/draw/drawable.gc +++ b/goal_src/jak2/engine/draw/drawable.gc @@ -1205,9 +1205,10 @@ ;; PC port note : we ALWAYS disable the envmap hack when a process-drawable has warp effect enabled (when (or (= lod-idx (-> dc cur-lod)) (logtest? (-> dc status) (draw-control-status lod-set))) (protect ((-> *pc-settings* force-envmap?)) - (dotimes (eff-i (-> dc mgeo header effect-count)) - (if (logtest? (effect-bits cross-fade) (-> dc mgeo effect eff-i effect-bits)) - (false! (-> *pc-settings* force-envmap?)))) + (when (not (movie?)) + (dotimes (eff-i (-> dc mgeo header effect-count)) + (if (logtest? (effect-bits cross-fade) (-> dc mgeo effect eff-i effect-bits)) + (false! (-> *pc-settings* force-envmap?))))) (foreground-draw dc dma-buf dist-w) ) ) diff --git a/goal_src/jak2/engine/game/task/game-task.gc b/goal_src/jak2/engine/game/task/game-task.gc index d0f9f20a85..bb8eaedec6 100644 --- a/goal_src/jak2/engine/game/task/game-task.gc +++ b/goal_src/jak2/engine/game/task/game-task.gc @@ -3514,7 +3514,7 @@ ) :on-open #f :info #f - :borrow '((hiphog 0 ltess special)) ;; (ctywide 0 lsack display) PC PORT NOTE : removed bad borrow!! + :borrow '((hiphog 0 ltess special) (ctywide 0 lsack display)) :open? #f :on-close #f :description (text-id text-x202) diff --git a/goal_src/jak2/engine/nav/nav-enemy.gc b/goal_src/jak2/engine/nav/nav-enemy.gc index 51e35b3547..32ee0e0701 100644 --- a/goal_src/jak2/engine/nav/nav-enemy.gc +++ b/goal_src/jak2/engine/nav/nav-enemy.gc @@ -217,48 +217,42 @@ ) ) -(defmethod track-target! nav-enemy ((obj nav-enemy)) +(defmethod track-target! nav-enemy ((self nav-enemy)) "Does a lot of various things relating to interacting with the target - tracks when the enemy was last drawn - looks at the target and handles attacking @TODO Not extremely well understood yet" (with-pp - (if (and (nonzero? (-> obj draw)) (logtest? (-> obj draw status) (draw-control-status on-screen))) - (set! (-> obj last-draw-time) (-> pp clock frame-counter)) + (if (and (nonzero? (-> self draw)) (logtest? (-> self draw status) (draw-control-status on-screen))) + (set! (-> self last-draw-time) (-> pp clock frame-counter)) ) - (enemy-method-129 obj) - (when (logtest? (enemy-flag use-trigger) (-> obj enemy-flags)) - (if (-> obj nav) - (enemy-method-100 obj) - (enemy-method-103 obj) + (enemy-method-129 self) + (when (logtest? (enemy-flag use-trigger) (-> self enemy-flags)) + (if (-> self nav) + (enemy-method-100 self) + (enemy-method-103 self) ) ) (when *target* - (if *target* - (look-at! - (-> *target* neck) - (the-as vector (-> obj root-override2 root-prim prim-core)) - (if (logtest? (-> obj enemy-flags) (enemy-flag use-notice-distance)) - 'attacking - ) - obj - ) - ) + (target-look-at-me! :trans (the-as vector (-> self root-override2 root-prim prim-core)) + :message (if (logtest? (-> self enemy-flags) (enemy-flag use-notice-distance)) + 'attacking + )) ) - (when (nonzero? (-> obj neck)) + (when (nonzero? (-> self neck)) (cond - ((logtest? (-> obj enemy-flags) (enemy-flag lock-focus)) - (let ((a0-10 (handle->process (-> obj focus handle)))) + ((logtest? (-> self enemy-flags) (enemy-flag lock-focus)) + (let ((a0-10 (handle->process (-> self focus handle)))) (if a0-10 - (target-set! (-> obj neck) (get-trans (the-as process-focusable a0-10) 2)) + (target-set! (-> self neck) (get-trans (the-as process-focusable a0-10) 2)) ) ) ) - ((logtest? (-> obj enemy-flags) (enemy-flag death-start)) - (let ((s5-1 (-> obj move-dest)) + ((logtest? (-> self enemy-flags) (enemy-flag death-start)) + (let ((s5-1 (-> self move-dest)) (v1-47 (vector<-cspace! (new 'stack-no-clear 'vector) - (-> obj node-list data (-> obj enemy-info-override neck-joint)) + (-> self node-list data (-> self enemy-info-override neck-joint)) ) ) (a1-6 (new 'stack-no-clear 'vector)) @@ -267,39 +261,39 @@ (set! (-> a1-6 y) (-> v1-47 y)) (set! (-> a1-6 z) (-> s5-1 z)) (set! (-> a1-6 w) 1.0) - (target-set! (-> obj neck) a1-6) + (target-set! (-> self neck) a1-6) ) ) ) ) - (when (and (logtest? (-> obj enemy-flags) (enemy-flag attackable-backup)) - (>= (- (-> pp clock frame-counter) (-> obj auto-reset-penetrate-time)) (seconds 0.1)) + (when (and (logtest? (-> self enemy-flags) (enemy-flag attackable-backup)) + (>= (- (-> pp clock frame-counter) (-> self auto-reset-penetrate-time)) (seconds 0.1)) ) - (logclear! (-> obj enemy-flags) (enemy-flag attackable-backup)) - (set! (-> obj root-override2 penetrated-by) (get-penetrate-info obj)) + (logclear! (-> self enemy-flags) (enemy-flag attackable-backup)) + (set! (-> self root-override2 penetrated-by) (get-penetrate-info self)) (let ((v1-62 0)) - (if (logtest? (penetrate knocked) (-> obj root-override2 penetrate-using)) + (if (logtest? (penetrate knocked) (-> self root-override2 penetrate-using)) (set! v1-62 (logior (shl 1 32) v1-62)) ) - (set! (-> obj root-override2 penetrate-using) (the-as penetrate v1-62)) + (set! (-> self root-override2 penetrate-using) (the-as penetrate v1-62)) ) ) - (if (logtest? (-> obj enemy-flags) (enemy-flag look-at-focus)) - (enemy-method-136 obj) + (if (logtest? (-> self enemy-flags) (enemy-flag look-at-focus)) + (enemy-method-136 self) ) - (if (logtest? (enemy-flag trackable-backup directed-ready) (-> obj enemy-flags)) - (enemy-method-54 obj) + (if (logtest? (enemy-flag trackable-backup directed-ready) (-> self enemy-flags)) + (enemy-method-54 self) ) - (let ((v1-73 (-> obj restore-nav-radius-time))) + (let ((v1-73 (-> self restore-nav-radius-time))) (when (nonzero? v1-73) (when (>= (-> pp clock frame-counter) v1-73) - (set! (-> obj restore-nav-radius-time) 0) - (set! (-> obj root-override2 nav-radius) (-> obj nav-radius-backup)) + (set! (-> self restore-nav-radius-time) 0) + (set! (-> self root-override2 nav-radius) (-> self nav-radius-backup)) ) ) ) - (if (and *debug-segment* (-> obj enemy-info-override debug-draw-neck) (nonzero? (-> obj neck))) - (joint-mod-debug-draw (-> obj neck)) + (if (and *debug-segment* (-> self enemy-info-override debug-draw-neck) (nonzero? (-> self neck))) + (joint-mod-debug-draw (-> self neck)) ) (ja-post) 0 diff --git a/goal_src/jak2/engine/process-drawable/process-focusable.gc b/goal_src/jak2/engine/process-drawable/process-focusable.gc index 3ee617d0df..c1c00af613 100644 --- a/goal_src/jak2/engine/process-drawable/process-focusable.gc +++ b/goal_src/jak2/engine/process-drawable/process-focusable.gc @@ -76,7 +76,10 @@ (-> (the-as collide-shape-moving gp-0) gspot-pos) ) ((and (or (= arg0 2) (= arg0 3)) (type? gp-0 collide-shape)) - (-> gp-0 root-prim prim-core) + ;; PC PORT NOTE : added lod-set check so we don't use invalid bones + (if (not (logtest? (-> obj draw status) (draw-control-status lod-set))) + (-> gp-0 trans) + (-> gp-0 root-prim prim-core)) ) (else (-> gp-0 trans) diff --git a/goal_src/jak2/engine/process-drawable/process-taskable.gc b/goal_src/jak2/engine/process-drawable/process-taskable.gc index c6ac6ef32d..a2062b86c2 100644 --- a/goal_src/jak2/engine/process-drawable/process-taskable.gc +++ b/goal_src/jak2/engine/process-drawable/process-taskable.gc @@ -308,9 +308,7 @@ Seen take in - `true-func` which takes no args TODO - seems fishy (logclear! (-> self draw status) (draw-control-status no-draw)) ) (when (-> self look-at-me) - (if *target* - (look-at! (-> *target* neck) (get-trans self 2) 'nothing-special self) - ) + (target-look-at-me! :trans (get-trans self 2)) ) (transform-post) (none) diff --git a/goal_src/jak2/engine/target/mech_suit/mech.gc b/goal_src/jak2/engine/target/mech_suit/mech.gc index 2154e28861..de7e7ea1aa 100644 --- a/goal_src/jak2/engine/target/mech_suit/mech.gc +++ b/goal_src/jak2/engine/target/mech_suit/mech.gc @@ -200,18 +200,7 @@ (go-virtual pickup (method-of-object self wait-for-return)) ) ) - (if *target* - (look-at! - (-> *target* neck) - (vector+! - (new 'stack-no-clear 'vector) - (the-as vector (-> self root-override root-prim prim-core)) - (new 'static 'vector :y 2048.0 :w 1.0) - ) - 'nothing-special - self - ) - ) + (target-look-at-me! :trans (vector+! (new 'stack-no-clear 'vector) (the-as vector (-> self root-override root-prim prim-core)) (new 'static 'vector :y 2048.0 :w 1.0))) (mech-method-24 self) (suspend) ) diff --git a/goal_src/jak2/engine/target/target-turret.gc b/goal_src/jak2/engine/target/target-turret.gc index 83524a77c8..c2f22477c0 100644 --- a/goal_src/jak2/engine/target/target-turret.gc +++ b/goal_src/jak2/engine/target/target-turret.gc @@ -990,18 +990,7 @@ (go-virtual setup) ) ) - (if *target* - (look-at! - (-> *target* neck) - (vector+! - (new 'stack-no-clear 'vector) - (the-as vector (-> self root-override root-prim prim-core)) - (new 'static 'vector :y 2048.0 :w 1.0) - ) - 'nothing-special - self - ) - ) + (target-look-at-me! :trans (vector+! (new 'stack-no-clear 'vector) (the-as vector (-> self root-override root-prim prim-core)) (new 'static 'vector :y 2048.0 :w 1.0))) (base-turret-method-36 self) (suspend) ) @@ -1427,18 +1416,7 @@ (ja :group! (-> self draw art-group data 2)) (until #f (base-turret-method-37 self) - (if *target* - (look-at! - (-> *target* neck) - (vector+! - (new 'stack-no-clear 'vector) - (the-as vector (-> self root-override root-prim prim-core)) - (new 'static 'vector :y 2048.0 :w 1.0) - ) - 'nothing-special - self - ) - ) + (target-look-at-me! :trans (vector+! (new 'stack-no-clear 'vector) (the-as vector (-> self root-override root-prim prim-core)) (new 'static 'vector :y 2048.0 :w 1.0))) (suspend) ) #f diff --git a/goal_src/jak2/levels/city/side_missions/ctywide-bbush.gc b/goal_src/jak2/levels/city/side_missions/ctywide-bbush.gc index 8d16f26f33..0e6f6c4c4c 100644 --- a/goal_src/jak2/levels/city/side_missions/ctywide-bbush.gc +++ b/goal_src/jak2/levels/city/side_missions/ctywide-bbush.gc @@ -2700,6 +2700,12 @@ This commonly includes things such as: ) ) +;; PC PORT NOTE : added complete hook for collection bbush tasks where we wait for the hud to die first +(set-subtask-hook! *game-info* 269 4 + (lambda :behavior task-manager () + (while (handle->process (-> self hud-counter)) + (suspend)))) + (copy-hooks! (-> *game-info* sub-task-list 287) (-> *game-info* sub-task-list 269)) (copy-hooks! (-> *game-info* sub-task-list 305) (-> *game-info* sub-task-list 269)) diff --git a/goal_src/jak2/levels/fortress/ammo_dump/fort-robotank-turret.gc b/goal_src/jak2/levels/fortress/ammo_dump/fort-robotank-turret.gc index 040482551c..b2216520e6 100644 --- a/goal_src/jak2/levels/fortress/ammo_dump/fort-robotank-turret.gc +++ b/goal_src/jak2/levels/fortress/ammo_dump/fort-robotank-turret.gc @@ -872,9 +872,7 @@ (if (logtest? (-> self flags) 512) (los-control-method-9 (-> self los) gp-0 (the-as vector #f) 1638.4) ) - (if *target* - (look-at! (-> *target* neck) (the-as vector (-> self root-override root-prim prim-core)) 'attacking self) - ) + (target-look-at-me! :trans (the-as vector (-> self root-override root-prim prim-core)) :message 'attacking) (set! (-> self aim-pos 0 quad) (-> self aim-pos-2 quad)) (set! (-> self aim-pos-2 quad) (-> (get-trans gp-0 0) quad)) (let ((s5-2 (-> self aim-pos-1)) diff --git a/test/decompiler/reference/jak2/engine/ai/enemy_REF.gc b/test/decompiler/reference/jak2/engine/ai/enemy_REF.gc index 1571fa31cd..e354e13989 100644 --- a/test/decompiler/reference/jak2/engine/ai/enemy_REF.gc +++ b/test/decompiler/reference/jak2/engine/ai/enemy_REF.gc @@ -305,60 +305,60 @@ ;; definition for method 55 of type enemy ;; WARN: Return type mismatch int vs none. -(defmethod track-target! enemy ((obj enemy)) +(defmethod track-target! enemy ((self enemy)) "Does a lot of various things relating to interacting with the target - tracks when the enemy was last drawn - looks at the target and handles attacking @TODO Not extremely well understood yet" (with-pp - (if (and (nonzero? (-> obj draw)) (logtest? (-> obj draw status) (draw-control-status on-screen))) - (set! (-> obj last-draw-time) (-> pp clock frame-counter)) + (if (and (nonzero? (-> self draw)) (logtest? (-> self draw status) (draw-control-status on-screen))) + (set! (-> self last-draw-time) (-> pp clock frame-counter)) ) - (enemy-method-129 obj) - (if (logtest? (enemy-flag use-trigger) (-> obj enemy-flags)) - (enemy-method-100 obj) + (enemy-method-129 self) + (if (logtest? (enemy-flag use-trigger) (-> self enemy-flags)) + (enemy-method-100 self) ) (when *target* (if *target* (look-at! (-> *target* neck) - (the-as vector (-> obj root-override2 root-prim prim-core)) - (if (logtest? (-> obj enemy-flags) (enemy-flag use-notice-distance)) + (the-as vector (-> self root-override2 root-prim prim-core)) + (if (logtest? (-> self enemy-flags) (enemy-flag use-notice-distance)) 'attacking ) - obj + self ) ) ) - (when (nonzero? (-> obj neck)) - (when (logtest? (-> obj enemy-flags) (enemy-flag lock-focus)) - (let ((a0-9 (handle->process (-> obj focus handle)))) + (when (nonzero? (-> self neck)) + (when (logtest? (-> self enemy-flags) (enemy-flag lock-focus)) + (let ((a0-9 (handle->process (-> self focus handle)))) (if a0-9 - (target-set! (-> obj neck) (get-trans (the-as process-focusable a0-9) 2)) + (target-set! (-> self neck) (get-trans (the-as process-focusable a0-9) 2)) ) ) ) ) - (when (and (logtest? (-> obj enemy-flags) (enemy-flag attackable-backup)) - (>= (- (-> pp clock frame-counter) (-> obj auto-reset-penetrate-time)) (seconds 0.1)) + (when (and (logtest? (-> self enemy-flags) (enemy-flag attackable-backup)) + (>= (- (-> pp clock frame-counter) (-> self auto-reset-penetrate-time)) (seconds 0.1)) ) - (logclear! (-> obj enemy-flags) (enemy-flag attackable-backup)) - (set! (-> obj root-override2 penetrated-by) (get-penetrate-info obj)) + (logclear! (-> self enemy-flags) (enemy-flag attackable-backup)) + (set! (-> self root-override2 penetrated-by) (get-penetrate-info self)) (let ((v1-48 0)) - (if (logtest? (penetrate knocked) (-> obj root-override2 penetrate-using)) + (if (logtest? (penetrate knocked) (-> self root-override2 penetrate-using)) (set! v1-48 (logior (shl 1 32) v1-48)) ) - (set! (-> obj root-override2 penetrate-using) (the-as penetrate v1-48)) + (set! (-> self root-override2 penetrate-using) (the-as penetrate v1-48)) ) ) - (if (logtest? (-> obj enemy-flags) (enemy-flag look-at-focus)) - (enemy-method-136 obj) + (if (logtest? (-> self enemy-flags) (enemy-flag look-at-focus)) + (enemy-method-136 self) ) - (if (logtest? (enemy-flag trackable-backup directed-ready) (-> obj enemy-flags)) - (enemy-method-54 obj) + (if (logtest? (enemy-flag trackable-backup directed-ready) (-> self enemy-flags)) + (enemy-method-54 self) ) - (if (and *debug-segment* (-> obj enemy-info debug-draw-neck) (nonzero? (-> obj neck))) - (joint-mod-debug-draw (-> obj neck)) + (if (and *debug-segment* (-> self enemy-info debug-draw-neck) (nonzero? (-> self neck))) + (joint-mod-debug-draw (-> self neck)) ) (ja-post) 0 @@ -3901,7 +3901,3 @@ This commonly includes things such as: (defbehavior ja-group-index? enemy ((arg0 int)) (ja-group? (-> self draw art-group data arg0)) ) - - - - diff --git a/test/decompiler/reference/jak2/engine/nav/nav-enemy_REF.gc b/test/decompiler/reference/jak2/engine/nav/nav-enemy_REF.gc index 894ecae48c..88a0ede198 100644 --- a/test/decompiler/reference/jak2/engine/nav/nav-enemy_REF.gc +++ b/test/decompiler/reference/jak2/engine/nav/nav-enemy_REF.gc @@ -225,48 +225,48 @@ ;; definition for method 55 of type nav-enemy ;; WARN: Return type mismatch int vs none. -(defmethod track-target! nav-enemy ((obj nav-enemy)) +(defmethod track-target! nav-enemy ((self nav-enemy)) "Does a lot of various things relating to interacting with the target - tracks when the enemy was last drawn - looks at the target and handles attacking @TODO Not extremely well understood yet" (with-pp - (if (and (nonzero? (-> obj draw)) (logtest? (-> obj draw status) (draw-control-status on-screen))) - (set! (-> obj last-draw-time) (-> pp clock frame-counter)) + (if (and (nonzero? (-> self draw)) (logtest? (-> self draw status) (draw-control-status on-screen))) + (set! (-> self last-draw-time) (-> pp clock frame-counter)) ) - (enemy-method-129 obj) - (when (logtest? (enemy-flag use-trigger) (-> obj enemy-flags)) - (if (-> obj nav) - (enemy-method-100 obj) - (enemy-method-103 obj) + (enemy-method-129 self) + (when (logtest? (enemy-flag use-trigger) (-> self enemy-flags)) + (if (-> self nav) + (enemy-method-100 self) + (enemy-method-103 self) ) ) (when *target* (if *target* (look-at! (-> *target* neck) - (the-as vector (-> obj root-override2 root-prim prim-core)) - (if (logtest? (-> obj enemy-flags) (enemy-flag use-notice-distance)) + (the-as vector (-> self root-override2 root-prim prim-core)) + (if (logtest? (-> self enemy-flags) (enemy-flag use-notice-distance)) 'attacking ) - obj + self ) ) ) - (when (nonzero? (-> obj neck)) + (when (nonzero? (-> self neck)) (cond - ((logtest? (-> obj enemy-flags) (enemy-flag lock-focus)) - (let ((a0-10 (handle->process (-> obj focus handle)))) + ((logtest? (-> self enemy-flags) (enemy-flag lock-focus)) + (let ((a0-10 (handle->process (-> self focus handle)))) (if a0-10 - (target-set! (-> obj neck) (get-trans (the-as process-focusable a0-10) 2)) + (target-set! (-> self neck) (get-trans (the-as process-focusable a0-10) 2)) ) ) ) - ((logtest? (-> obj enemy-flags) (enemy-flag death-start)) - (let ((s5-1 (-> obj move-dest)) + ((logtest? (-> self enemy-flags) (enemy-flag death-start)) + (let ((s5-1 (-> self move-dest)) (v1-47 (vector<-cspace! (new 'stack-no-clear 'vector) - (-> obj node-list data (-> obj enemy-info-override neck-joint)) + (-> self node-list data (-> self enemy-info-override neck-joint)) ) ) (a1-6 (new 'stack-no-clear 'vector)) @@ -275,39 +275,39 @@ (set! (-> a1-6 y) (-> v1-47 y)) (set! (-> a1-6 z) (-> s5-1 z)) (set! (-> a1-6 w) 1.0) - (target-set! (-> obj neck) a1-6) + (target-set! (-> self neck) a1-6) ) ) ) ) - (when (and (logtest? (-> obj enemy-flags) (enemy-flag attackable-backup)) - (>= (- (-> pp clock frame-counter) (-> obj auto-reset-penetrate-time)) (seconds 0.1)) + (when (and (logtest? (-> self enemy-flags) (enemy-flag attackable-backup)) + (>= (- (-> pp clock frame-counter) (-> self auto-reset-penetrate-time)) (seconds 0.1)) ) - (logclear! (-> obj enemy-flags) (enemy-flag attackable-backup)) - (set! (-> obj root-override2 penetrated-by) (get-penetrate-info obj)) + (logclear! (-> self enemy-flags) (enemy-flag attackable-backup)) + (set! (-> self root-override2 penetrated-by) (get-penetrate-info self)) (let ((v1-62 0)) - (if (logtest? (penetrate knocked) (-> obj root-override2 penetrate-using)) + (if (logtest? (penetrate knocked) (-> self root-override2 penetrate-using)) (set! v1-62 (logior (shl 1 32) v1-62)) ) - (set! (-> obj root-override2 penetrate-using) (the-as penetrate v1-62)) + (set! (-> self root-override2 penetrate-using) (the-as penetrate v1-62)) ) ) - (if (logtest? (-> obj enemy-flags) (enemy-flag look-at-focus)) - (enemy-method-136 obj) + (if (logtest? (-> self enemy-flags) (enemy-flag look-at-focus)) + (enemy-method-136 self) ) - (if (logtest? (enemy-flag trackable-backup directed-ready) (-> obj enemy-flags)) - (enemy-method-54 obj) + (if (logtest? (enemy-flag trackable-backup directed-ready) (-> self enemy-flags)) + (enemy-method-54 self) ) - (let ((v1-73 (-> obj restore-nav-radius-time))) + (let ((v1-73 (-> self restore-nav-radius-time))) (when (nonzero? v1-73) (when (>= (-> pp clock frame-counter) v1-73) - (set! (-> obj restore-nav-radius-time) 0) - (set! (-> obj root-override2 nav-radius) (-> obj nav-radius-backup)) + (set! (-> self restore-nav-radius-time) 0) + (set! (-> self root-override2 nav-radius) (-> self nav-radius-backup)) ) ) ) - (if (and *debug-segment* (-> obj enemy-info-override debug-draw-neck) (nonzero? (-> obj neck))) - (joint-mod-debug-draw (-> obj neck)) + (if (and *debug-segment* (-> self enemy-info-override debug-draw-neck) (nonzero? (-> self neck))) + (joint-mod-debug-draw (-> self neck)) ) (ja-post) 0