From aff67d6bb71b453b7d879f4cbc762c07612aaa75 Mon Sep 17 00:00:00 2001 From: Hat Kid <6624576+Hat-Kid@users.noreply.github.com> Date: Sat, 29 Apr 2023 17:03:13 +0200 Subject: [PATCH] jak2: fix warp effect for robotank and underb on other aspect ratios (#2574) --- .../fortress/ammo_dump/fort-robotank-turret.gc | 4 +++- goal_src/jak2/levels/underport/underb-master.gc | 12 ++++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) 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 f0536ded6e..040482551c 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 @@ -258,8 +258,10 @@ (s5-0 (new 'stack-no-clear 'vector)) (gp-0 (new 'stack-no-clear 'vector)) (f30-0 4096.0) + (ratio (* (-> *pc-settings* aspect-ratio-scale) 0.5)) ) - (let ((f0-4 (* 0.00013563369 (tan (* 0.5 (-> *math-camera* fov))) f30-0))) + ;; changed for PC port: scale effect based on aspect ratio + (let ((f0-4 (* 0.00013563369 (tan (* ratio (-> *math-camera* fov))) f30-0))) (set-vector! (-> obj root scale) f0-4 f0-4 f0-4 1.0) ) (set! (-> gp-0 quad) (-> (camera-pos) quad)) diff --git a/goal_src/jak2/levels/underport/underb-master.gc b/goal_src/jak2/levels/underport/underb-master.gc index 0a394527cc..4a9a43b7d9 100644 --- a/goal_src/jak2/levels/underport/underb-master.gc +++ b/goal_src/jak2/levels/underport/underb-master.gc @@ -7,6 +7,9 @@ ;; DECOMP BEGINS +;; added for PC port: ratio for warp effect interp and size +(define *underb-ratio* 0.5) + (deftype under-warp (process-drawable) ((interp float :offset-assert 200) ) @@ -84,8 +87,13 @@ (s5-0 (new 'stack-no-clear 'vector)) (gp-0 (new 'stack-no-clear 'vector)) (f30-0 4096.0) + (ratio (* (-> *pc-settings* aspect-ratio-scale) 0.5)) ) - (let ((f0-4 (* 0.00013563369 (tan (* 0.5 (-> *math-camera* fov))) f30-0))) + ;; changed for PC port: resize warp effect based on aspect ratio + (set! *underb-ratio* ratio) + ;; clamp interp if aspect ratio is too wide, effect becomes too subtle past 0.93 and completely stops at 1.0 + (set! (-> obj interp) (if (> ratio 0.93) 0.93 ratio)) + (let ((f0-4 (* 0.00013563369 (tan (* *underb-ratio* (-> *math-camera* fov))) f30-0))) (set-vector! (-> obj root scale) f0-4 f0-4 f0-4 1.0) ) (set! (-> gp-0 quad) (-> (camera-pos) quad)) @@ -119,7 +127,7 @@ (the-as skeleton-group (art-group-get-by-name *level* "skel-under-warp" (the-as (pointer uint32) #f))) (the-as pair 0) ) - (set! (-> self interp) 0.5) + (set! (-> self interp) *underb-ratio*) ;; changed for PC port (ja-channel-push! 2 (seconds 0.3)) (ja-no-eval :group! (-> self draw art-group data 2) :num! (loop!)) (let ((gp-2 (-> self skel root-channel 1)))