From 0c7d9afb89300a3ddf3c50515dcbe4db60a4e8c3 Mon Sep 17 00:00:00 2001 From: ManDude <7569514+ManDude@users.noreply.github.com> Date: Sat, 18 Jun 2022 18:36:24 +0100 Subject: [PATCH] `process-taskable` PAL patch --- .../stack_structures.jsonc | 6 +- decompiler/config/jak1_pal.jsonc | 2 +- decompiler/config/jak1_pal/type_casts.jsonc | 7 +- goal_src/engine/game/task/process-taskable.gc | 84 +++++++++---------- 4 files changed, 46 insertions(+), 53 deletions(-) diff --git a/decompiler/config/jak1_ntsc_black_label/stack_structures.jsonc b/decompiler/config/jak1_ntsc_black_label/stack_structures.jsonc index 21b5550e2d..d77e223b28 100644 --- a/decompiler/config/jak1_ntsc_black_label/stack_structures.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/stack_structures.jsonc @@ -2245,7 +2245,11 @@ "(code nav-enemy-give-up babak)": [[16, "vector"]], - "(method 10 gui-query)": [[16, "font-context"]], + "(method 10 gui-query)": [ + [16, "font-context"], + [112, "font-context"], + [208, "font-context"] + ], "(method 46 process-taskable)": [ [16, "vector"], diff --git a/decompiler/config/jak1_pal.jsonc b/decompiler/config/jak1_pal.jsonc index bdf5c78cec..4e165a73b8 100644 --- a/decompiler/config/jak1_pal.jsonc +++ b/decompiler/config/jak1_pal.jsonc @@ -6,7 +6,7 @@ // if you want to filter to only some object names. // it will make the decompiler much faster. - "allowed_objects": ["rolling-obs"], + "allowed_objects": ["process-taskable"], "banned_objects": [], //////////////////////////// diff --git a/decompiler/config/jak1_pal/type_casts.jsonc b/decompiler/config/jak1_pal/type_casts.jsonc index 2f9c420b13..ca732522d7 100644 --- a/decompiler/config/jak1_pal/type_casts.jsonc +++ b/decompiler/config/jak1_pal/type_casts.jsonc @@ -2789,11 +2789,6 @@ [47, "s2", "process-taskable"] ], - "(method 10 gui-query)": [ - [[84, 88], "v1", "dma-packet"], - [[131, 135], "v1", "dma-packet"] - ], - "(code yakow-idle)": [ [46, "v1", "art-joint-anim"], [102, "v1", "art-joint-anim"] @@ -7719,5 +7714,7 @@ [218, "s5", "handle"] ], + "(method 10 gui-query)": [], + "placeholder-do-not-add-below": [] } diff --git a/goal_src/engine/game/task/process-taskable.gc b/goal_src/engine/game/task/process-taskable.gc index ec7f10017d..4d12da0e80 100644 --- a/goal_src/engine/game/task/process-taskable.gc +++ b/goal_src/engine/game/task/process-taskable.gc @@ -44,6 +44,7 @@ (none) ) + (defmethod get-response gui-query ((obj gui-query)) (kill-current-level-hint '() '(sidekick voicebox stinger) 'exit) (level-hint-surpress!) @@ -75,65 +76,56 @@ (print-game-text (-> obj message) a1-2 #f 128 22) ) ) + ;; PAL patch here (cond ((-> obj only-allow-cancel) (when (-> obj no-msg) (clear *temp-string*) (format *temp-string* "; = ~S" (-> obj no-msg)) - (let* ((s4-0 (-> *display* frames (-> *display* on-screen) frame global-buf)) - (s5-0 (-> s4-0 base)) - ) - (draw-string-xy - *temp-string* - s4-0 - (-> obj x-position) - (+ (-> obj y-position) 5 (-> obj message-space)) - (font-color default) - (font-flags shadow kerning large) - ) - (let ((a3-4 (-> s4-0 base))) - (let ((v1-17 (the-as object (-> s4-0 base)))) - (set! (-> (the-as dma-packet v1-17) dma) (new 'static 'dma-tag :id (dma-tag-id next))) - (set! (-> (the-as dma-packet v1-17) vif0) (new 'static 'vif-tag)) - (set! (-> (the-as dma-packet v1-17) vif1) (new 'static 'vif-tag)) - (set! (-> s4-0 base) (&+ (the-as pointer v1-17) 16)) - ) - (dma-bucket-insert-tag - (-> *display* frames (-> *display* on-screen) frame bucket-group) - (bucket-id debug) - s5-0 - (the-as (pointer dma-tag) a3-4) + (let ((a1-5 (new + 'stack + 'font-context + *font-default-matrix* + (-> obj x-position) + (+ (-> obj y-position) 5 (-> obj message-space)) + 0.0 + (font-color default) + (font-flags shadow kerning) + ) + ) ) + (let ((v1-15 a1-5)) + (set! (-> v1-15 width) (the float 400)) ) + (let ((v1-16 a1-5)) + (set! (-> v1-16 height) (the float 100)) + ) + (set! (-> a1-5 flags) (font-flags shadow kerning large)) + (print-game-text *temp-string* a1-5 #f 128 22) ) ) ) (else - (let* ((s4-1 (-> *display* frames (-> *display* on-screen) frame global-buf)) - (s5-1 (-> s4-1 base)) - ) - (draw-string-xy - (lookup-text! *common-text* (game-text-id confirm) #f) - s4-1 - (-> obj x-position) - (+ (-> obj y-position) 5 (-> obj message-space)) - (font-color default) - (font-flags shadow kerning large) - ) - (let ((a3-7 (-> s4-1 base))) - (let ((v1-29 (the-as object (-> s4-1 base)))) - (set! (-> (the-as dma-packet v1-29) dma) (new 'static 'dma-tag :id (dma-tag-id next))) - (set! (-> (the-as dma-packet v1-29) vif0) (new 'static 'vif-tag)) - (set! (-> (the-as dma-packet v1-29) vif1) (new 'static 'vif-tag)) - (set! (-> s4-1 base) (&+ (the-as pointer v1-29) 16)) - ) - (dma-bucket-insert-tag - (-> *display* frames (-> *display* on-screen) frame bucket-group) - (bucket-id debug) - s5-1 - (the-as (pointer dma-tag) a3-7) + (let ((s5-0 (new + 'stack + 'font-context + *font-default-matrix* + (-> obj x-position) + (+ (-> obj y-position) 5 (-> obj message-space)) + 0.0 + (font-color default) + (font-flags shadow kerning) + ) + ) ) + (let ((v1-22 s5-0)) + (set! (-> v1-22 width) (the float 400)) ) + (let ((v1-23 s5-0)) + (set! (-> v1-23 height) (the float 100)) + ) + (set! (-> s5-0 flags) (font-flags shadow kerning large)) + (print-game-text (lookup-text! *common-text* (game-text-id confirm) #f) s5-0 #f 128 22) ) ) )