From 288624b90f55443a24efed68a45a208f29831cec Mon Sep 17 00:00:00 2001 From: ManDude <7569514+ManDude@users.noreply.github.com> Date: Sat, 11 Nov 2023 11:40:29 +0000 Subject: [PATCH] fix mistakes in `projectiles.gc` (#3187) Fixes #3184 --- .../config/jak1/ntsc_v1/stack_structures.jsonc | 2 +- goal_src/jak1/engine/game/projectiles.gc | 11 ++++++----- .../reference/jak1/engine/game/projectiles_REF.gc | 12 ++++++++---- .../jak1/levels/maincave/mother-spider-proj_REF.gc | 4 ++++ 4 files changed, 19 insertions(+), 10 deletions(-) diff --git a/decompiler/config/jak1/ntsc_v1/stack_structures.jsonc b/decompiler/config/jak1/ntsc_v1/stack_structures.jsonc index eb6772b784..61beb032b9 100644 --- a/decompiler/config/jak1/ntsc_v1/stack_structures.jsonc +++ b/decompiler/config/jak1/ntsc_v1/stack_structures.jsonc @@ -1190,7 +1190,7 @@ "(code projectile-die projectile)": [[16, "event-message-block"]], - "projectile-init-by-other": [[16, "collide-edge-hold-list"]], + "projectile-init-by-other": [[16, "overlaps-others-params"]], "(method 27 projectile-yellow)": [[16, "vector"]], diff --git a/goal_src/jak1/engine/game/projectiles.gc b/goal_src/jak1/engine/game/projectiles.gc index 26a6d347f8..9827c5e067 100644 --- a/goal_src/jak1/engine/game/projectiles.gc +++ b/goal_src/jak1/engine/game/projectiles.gc @@ -678,7 +678,8 @@ (+! f0-16 (-> self old-dist v1-35)) ) ;; og:preserve-this changed for high fps. This fixes projectile collision issues - (if (or (and (logtest? (-> self root status) (cshape-moving-flags twall)) (< f0-16 (* (-> *display* time-adjust-ratio) 2048.0))) (< f0-16 (* (-> *display* time-adjust-ratio) 2048.0))) + (if (or (and (logtest? (-> self root status) (cshape-moving-flags twall)) (< f0-16 (* (-> *display* time-adjust-ratio) (meters 0.5)))) + (< f0-16 (* (-> *display* time-adjust-ratio) (meters 0.05)))) (set! gp-0 #t) ) ) @@ -863,10 +864,10 @@ (projectile-method-27 self) (projectile-method-24 self) (when (not (type-type? (-> self type) projectile-blue)) - (let ((a1-8 (new 'stack-no-clear 'collide-edge-hold-list))) - (set! (-> a1-8 num-allocs) (the-as uint 1)) - (set! (-> a1-8 num-attempts) (the-as uint *touching-list*)) - (find-overlapping-shapes (-> self root) (the-as overlaps-others-params a1-8)) + (let ((a1-8 (new 'stack-no-clear 'overlaps-others-params))) + (set! (-> a1-8 options) (the-as uint 1)) + (set! (-> a1-8 tlist) *touching-list*) + (find-overlapping-shapes (-> self root) a1-8) ) ) (set! (-> self event-hook) (-> (method-of-object self projectile-moving) event)) diff --git a/test/decompiler/reference/jak1/engine/game/projectiles_REF.gc b/test/decompiler/reference/jak1/engine/game/projectiles_REF.gc index 06deb6d08a..e13fea746f 100644 --- a/test/decompiler/reference/jak1/engine/game/projectiles_REF.gc +++ b/test/decompiler/reference/jak1/engine/game/projectiles_REF.gc @@ -920,10 +920,10 @@ (projectile-method-27 self) (projectile-method-24 self) (when (not (type-type? (-> self type) projectile-blue)) - (let ((a1-8 (new 'stack-no-clear 'collide-edge-hold-list))) - (set! (-> a1-8 num-allocs) (the-as uint 1)) - (set! (-> a1-8 num-attempts) (the-as uint *touching-list*)) - (find-overlapping-shapes (-> self root) (the-as overlaps-others-params a1-8)) + (let ((a1-8 (new 'stack-no-clear 'overlaps-others-params))) + (set! (-> a1-8 options) (the-as uint 1)) + (set! (-> a1-8 tlist) *touching-list*) + (find-overlapping-shapes (-> self root) a1-8) ) ) (set! (-> self event-hook) (-> (method-of-object self projectile-moving) event)) @@ -1302,3 +1302,7 @@ (go-virtual projectile-die) ) ) + + + + diff --git a/test/decompiler/reference/jak1/levels/maincave/mother-spider-proj_REF.gc b/test/decompiler/reference/jak1/levels/maincave/mother-spider-proj_REF.gc index 65b911e31e..f634256662 100644 --- a/test/decompiler/reference/jak1/levels/maincave/mother-spider-proj_REF.gc +++ b/test/decompiler/reference/jak1/levels/maincave/mother-spider-proj_REF.gc @@ -430,3 +430,7 @@ (go-virtual projectile-die) ) ) + + + +