From fcbcfb549aa0b74c313b6956cf1dfd8450e4c18e Mon Sep 17 00:00:00 2001 From: Matt Dallmeyer Date: Thu, 23 Jul 2026 13:44:51 -0700 Subject: [PATCH] [jak1] Reinstate NaN check in nav code (#4359) Inadvertently removed as part of improved decompiler stack variable support #4222 We suspect this is the reason some nav-enemies have been randomly disappearing in recent mods/versions Thanks Evelyn for catching the regression --- goal_src/jak1/engine/nav/navigate.gc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/goal_src/jak1/engine/nav/navigate.gc b/goal_src/jak1/engine/nav/navigate.gc index 2a26b2f917..39d2612c17 100644 --- a/goal_src/jak1/engine/nav/navigate.gc +++ b/goal_src/jak1/engine/nav/navigate.gc @@ -1310,7 +1310,8 @@ (let ((sv-96 (-> sv-80 sphere (-> sv-80 num-spheres))) (f1-3 (vector-vector-xz-distance-squared sv-112 (-> sv-80 shape trans))) (f0-9 (+ (-> sv-112 w) (-> sv-80 shape nav-radius)))) - (when (< f1-3 (square (+ 40960.0 f0-9))) + ;; og:preserve-this added a NaN check here. it seems like some enemies have bogus positions (maybe on their first frame?) + (when (and (< f1-3 (square (+ 40960.0 f0-9))) (not (is-nan? (-> sv-112 x)))) (vector-! (the-as vector sv-96) sv-112 (-> sv-80 mesh origin)) (set! (-> sv-96 w) f0-9) (+! (-> sv-80 num-spheres) 1)))))