From 64baff96149d45212c996fca18cc29adbd6e4233 Mon Sep 17 00:00:00 2001 From: rocket <117489720+1rocket1@users.noreply.github.com> Date: Fri, 3 Apr 2026 18:41:47 +0000 Subject: [PATCH] jak2/jak3: fix overlapping layers on non-playable Hellcats (#4161) fix for issue #4120, along with other areas this happens in Jak II and Jak 3 **Before** desoasis-hellcat **After** desoasis-hellcat-fixed **Before** ctywide-scenes-atoll-hellcat **After** ctywide-scenes-atoll-hellcat-fixed --------- Co-authored-by: Matt Dallmeyer --- goal_src/jak2/levels/atoll/atoll-obs.gc | 4 ++++ goal_src/jak2/levels/atoll/atoll-scenes.gc | 2 ++ goal_src/jak2/levels/castle/boss/castle-scenes.gc | 1 + goal_src/jak2/levels/city/ctywide-scenes.gc | 1 + goal_src/jak2/levels/common/warp-gate.gc | 1 + goal_src/jak3/levels/desert/oasis/oasis-defense.gc | 4 ++++ goal_src/jak3/levels/intro/intro-scenes.gc | 1 + goal_src/jak3/levels/tower/tower-scenes.gc | 1 + 8 files changed, 15 insertions(+) diff --git a/goal_src/jak2/levels/atoll/atoll-obs.gc b/goal_src/jak2/levels/atoll/atoll-obs.gc index 60cf98367c..a7ad37cf0f 100644 --- a/goal_src/jak2/levels/atoll/atoll-obs.gc +++ b/goal_src/jak2/levels/atoll/atoll-obs.gc @@ -1116,6 +1116,10 @@ (defstate idle (atoll-hellcat) :virtual #t + ;; og:preserve-this fixes overlapping Hellcat layers + :enter (behavior () + (setup-masks (-> self draw) #x1fe #x1fe) + ) :code sleep-code ) diff --git a/goal_src/jak2/levels/atoll/atoll-scenes.gc b/goal_src/jak2/levels/atoll/atoll-scenes.gc index 2da9a075d1..afac99e3ea 100644 --- a/goal_src/jak2/levels/atoll/atoll-scenes.gc +++ b/goal_src/jak2/levels/atoll/atoll-scenes.gc @@ -1239,6 +1239,7 @@ :flags #x1 :shadow-flags -1 :shadow-volume-joint #f + :no-draw-seg #x1fe ;; og:preserve-this fixes overlapping Hellcat layers ) ) :load-point-obj "atoll-movie" @@ -1634,6 +1635,7 @@ :flags #x1 :shadow-flags -1 :shadow-volume-joint #f + :no-draw-seg #x1fe ;; og:preserve-this fixes overlapping Hellcat layers ) (new 'static 'scene-actor :name "palmpilot" diff --git a/goal_src/jak2/levels/castle/boss/castle-scenes.gc b/goal_src/jak2/levels/castle/boss/castle-scenes.gc index 473aaec7b9..2edc199b4b 100644 --- a/goal_src/jak2/levels/castle/boss/castle-scenes.gc +++ b/goal_src/jak2/levels/castle/boss/castle-scenes.gc @@ -779,6 +779,7 @@ :flags #x1 :shadow-flags -1 :shadow-volume-joint #f + :no-draw-seg #x1fe ;; og:preserve-this fixes overlapping Hellcat layers ) (new 'static 'scene-actor :name "particleman" diff --git a/goal_src/jak2/levels/city/ctywide-scenes.gc b/goal_src/jak2/levels/city/ctywide-scenes.gc index 60b37acee7..01d37cc6d2 100644 --- a/goal_src/jak2/levels/city/ctywide-scenes.gc +++ b/goal_src/jak2/levels/city/ctywide-scenes.gc @@ -779,6 +779,7 @@ :flags #x1 :shadow-flags -1 :shadow-volume-joint #f + :no-draw-seg #x1fe ;; og:preserve-this fixes overlapping Hellcat layers ) (new 'static 'scene-actor :name "crimson-guard-highres" diff --git a/goal_src/jak2/levels/common/warp-gate.gc b/goal_src/jak2/levels/common/warp-gate.gc index 443cd82861..50624e7de1 100644 --- a/goal_src/jak2/levels/common/warp-gate.gc +++ b/goal_src/jak2/levels/common/warp-gate.gc @@ -1772,6 +1772,7 @@ :flags #x1 :shadow-flags -1 :shadow-volume-joint #f + :no-draw-seg #x1fe ;; og:preserve-this fixes overlapping Hellcat layers ) ) :load-point-obj "ctyport-air-train-ashelin" diff --git a/goal_src/jak3/levels/desert/oasis/oasis-defense.gc b/goal_src/jak3/levels/desert/oasis/oasis-defense.gc index 291a429db6..c090c3d3e8 100644 --- a/goal_src/jak3/levels/desert/oasis/oasis-defense.gc +++ b/goal_src/jak3/levels/desert/oasis/oasis-defense.gc @@ -773,6 +773,10 @@ (defstate idle (desoasis-hellcat) :virtual #t + ;; og:preserve-this fixes overlapping Hellcat layers + :enter (behavior () + (setup-masks (-> self draw) #x1fe #x1fe) + ) :code sleep-code ) diff --git a/goal_src/jak3/levels/intro/intro-scenes.gc b/goal_src/jak3/levels/intro/intro-scenes.gc index c3eb9731f8..54e2a75cbc 100644 --- a/goal_src/jak3/levels/intro/intro-scenes.gc +++ b/goal_src/jak3/levels/intro/intro-scenes.gc @@ -5524,6 +5524,7 @@ :flags #x1 :shadow-flags -1 :shadow-volume-joint #f + :no-draw-seg #x1fe ;; og:preserve-this fixes overlapping Hellcat layers ) (new 'static 'scene-actor :name "hellcat-lowres-fma" diff --git a/goal_src/jak3/levels/tower/tower-scenes.gc b/goal_src/jak3/levels/tower/tower-scenes.gc index 1a7e16c3ce..13f8ac2dfd 100644 --- a/goal_src/jak3/levels/tower/tower-scenes.gc +++ b/goal_src/jak3/levels/tower/tower-scenes.gc @@ -440,6 +440,7 @@ :flags #x1 :shadow-flags -1 :shadow-volume-joint #f + :no-draw-seg #x1fe ;; og:preserve-this fixes overlapping Hellcat layers ) (new 'static 'scene-actor :name "sidekick-highres"