From a7ac63cb462e3872cbb777d6b468f69227db7207 Mon Sep 17 00:00:00 2001 From: ManDude <7569514+ManDude@users.noreply.github.com> Date: Sun, 19 Jun 2022 11:59:26 +0100 Subject: [PATCH] `target` PAL patch --- decompiler/config/all-types.gc | 3 +- decompiler/config/jak1_pal.jsonc | 2 +- decompiler/config/jak1_pal/label_types.jsonc | 199 ++++++++++--------- decompiler/config/jak1_pal/type_casts.jsonc | 3 + goal_src/engine/target/target.gc | 46 ++++- 5 files changed, 151 insertions(+), 102 deletions(-) diff --git a/decompiler/config/all-types.gc b/decompiler/config/all-types.gc index a57a7ccb7f..c12b1626e8 100644 --- a/decompiler/config/all-types.gc +++ b/decompiler/config/all-types.gc @@ -12113,6 +12113,7 @@ (unknown-uint30 uint32 :offset 2188) ;; from target::(code target-running-attack) (unknown-float121 float :offset 2188) ;; from target::mod-var-jump (unknown-uint31 uint32 :offset 2192) ;; from target::(trans target-running-attack) + (unknown-int37 int32 :offset 2192) (unknown-float122 float :offset 2196) ;; from target::(trans target-jump) (unknown-float123 float :offset 2200) ;; from target::mod-var-jump (unknown-float124 float :offset 2204) ;; from target::init-var-jump @@ -12152,7 +12153,7 @@ (unknown-soundid00 sound-id :offset 18980) ;; from powerups::target-powerup-process (unknown-float141 float :offset 18984) ;; from powerups::target-powerup-process ;; PAL patch here - (unknown-int33 int32 :offset 18988) + (unknown-soundid01 sound-id :offset 18988) (unknown-int34 int32 :offset 18992) (unknown-int35 int32 :offset 18996) (unknown-int36 int32 :offset 19000) diff --git a/decompiler/config/jak1_pal.jsonc b/decompiler/config/jak1_pal.jsonc index 22d3f108f7..0379e3cbf0 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": ["fisher"], + "allowed_objects": ["target", "eichar-ag"], "banned_objects": [], //////////////////////////// diff --git a/decompiler/config/jak1_pal/label_types.jsonc b/decompiler/config/jak1_pal/label_types.jsonc index b33c9e9d02..9464982810 100644 --- a/decompiler/config/jak1_pal/label_types.jsonc +++ b/decompiler/config/jak1_pal/label_types.jsonc @@ -1419,105 +1419,6 @@ "sidekick": [["L29", "vector"]], - "target": [ - ["L720", "float", true], - ["L721", "float", true], - ["L722", "float", true], - ["L723", "float", true], - ["L724", "float", true], - ["L725", "float", true], - ["L726", "float", true], - ["L727", "float", true], - ["L728", "float", true], - ["L729", "float", true], - ["L730", "float", true], - ["L731", "float", true], - ["L732", "float", true], - ["L733", "float", true], - ["L734", "float", true], - ["L735", "float", true], - ["L736", "float", true], - ["L737", "float", true], - ["L738", "float", true], - ["L739", "float", true], - ["L740", "float", true], - ["L741", "float", true], - ["L742", "float", true], - ["L743", "float", true], - ["L744", "float", true], - ["L745", "float", true], - ["L746", "float", true], - ["L747", "float", true], - ["L748", "float", true], - ["L749", "float", true], - ["L750", "float", true], - ["L751", "float", true], - ["L752", "float", true], - ["L753", "float", true], - ["L754", "float", true], - ["L755", "float", true], - ["L756", "float", true], - ["L757", "float", true], - ["L758", "float", true], - ["L759", "float", true], - ["L760", "float", true], - ["L761", "float", true], - ["L762", "float", true], - ["L763", "float", true], - ["L764", "float", true], - ["L765", "float", true], - ["L766", "float", true], - ["L767", "float", true], - ["L768", "float", true], - ["L769", "float", true], - ["L770", "float", true], - ["L771", "float", true], - ["L772", "float", true], - ["L773", "float", true], - ["L774", "float", true], - ["L775", "float", true], - ["L776", "float", true], - ["L777", "float", true], - ["L778", "float", true], - ["L779", "float", true], - ["L780", "float", true], - ["L781", "float", true], - ["L782", "float", true], - ["L783", "float", true], - ["L784", "float", true], - ["L785", "float", true], - ["L786", "float", true], - ["L787", "float", true], - ["L788", "float", true], - ["L789", "float", true], - ["L790", "float", true], - ["L791", "float", true], - ["L792", "float", true], - ["L793", "float", true], - ["L794", "float", true], - ["L795", "float", true], - ["L796", "float", true], - ["L797", "float", true], - ["L798", "float", true], - ["L799", "float", true], - ["L800", "float", true], - ["L801", "float", true], - ["L802", "float", true], - ["L803", "float", true], - ["L804", "float", true], - ["L805", "float", true], - ["L806", "float", true], - ["L807", "float", true], - ["L808", "float", true], - ["L809", "float", true], - ["L810", "float", true], - ["L811", "float", true], - ["L812", "float", true], - ["L813", "float", true], - ["L814", "float", true], - ["L815", "uint64", true] - ], - "target-handler": [ ["L195", "attack-info"], ["L197", "float", true], @@ -2144,6 +2045,106 @@ ["L190", "vector"] ], + "target": [ + ["L728", "float", true], + ["L729", "float", true], + ["L730", "float", true], + ["L731", "float", true], + ["L732", "float", true], + ["L733", "float", true], + ["L734", "float", true], + ["L735", "float", true], + ["L736", "float", true], + ["L737", "float", true], + ["L738", "float", true], + ["L739", "float", true], + ["L740", "float", true], + ["L741", "float", true], + ["L742", "float", true], + ["L743", "float", true], + ["L744", "float", true], + ["L745", "float", true], + ["L746", "float", true], + ["L747", "float", true], + ["L748", "float", true], + ["L749", "float", true], + ["L750", "float", true], + ["L751", "float", true], + ["L752", "float", true], + ["L753", "float", true], + ["L754", "float", true], + ["L755", "float", true], + ["L756", "float", true], + ["L757", "float", true], + ["L758", "float", true], + ["L759", "float", true], + ["L760", "float", true], + ["L761", "float", true], + ["L762", "float", true], + ["L763", "float", true], + ["L764", "float", true], + ["L765", "float", true], + ["L766", "float", true], + ["L767", "float", true], + ["L768", "float", true], + ["L769", "float", true], + ["L770", "float", true], + ["L771", "float", true], + ["L772", "float", true], + ["L773", "float", true], + ["L774", "float", true], + ["L775", "float", true], + ["L776", "float", true], + ["L777", "float", true], + ["L778", "float", true], + ["L779", "float", true], + ["L780", "float", true], + ["L781", "float", true], + ["L782", "float", true], + ["L783", "float", true], + ["L784", "float", true], + ["L785", "float", true], + ["L786", "float", true], + ["L787", "float", true], + ["L788", "float", true], + ["L789", "float", true], + ["L790", "float", true], + ["L791", "float", true], + ["L792", "float", true], + ["L793", "float", true], + ["L794", "float", true], + ["L795", "float", true], + ["L796", "float", true], + ["L797", "float", true], + ["L798", "float", true], + ["L799", "float", true], + ["L800", "float", true], + ["L801", "float", true], + ["L802", "float", true], + ["L803", "float", true], + ["L804", "float", true], + ["L805", "float", true], + ["L806", "float", true], + ["L807", "float", true], + ["L808", "float", true], + ["L809", "float", true], + ["L810", "float", true], + ["L811", "float", true], + ["L812", "float", true], + ["L813", "float", true], + ["L814", "float", true], + ["L815", "float", true], + ["L816", "float", true], + ["L817", "float", true], + ["L818", "float", true], + ["L819", "float", true], + ["L820", "float", true], + ["L821", "float", true], + ["L822", "float", true], + ["L823", "uint64", true], + ["L824", "uint64", true] + ], + // please do not add things after this entry! git is dumb. "object-file-that-doesnt-actually-exist-and-i-just-put-this-here-to-prevent-merge-conflicts-with-this-file": [] } diff --git a/decompiler/config/jak1_pal/type_casts.jsonc b/decompiler/config/jak1_pal/type_casts.jsonc index 6136d3d536..d6ea7709bf 100644 --- a/decompiler/config/jak1_pal/type_casts.jsonc +++ b/decompiler/config/jak1_pal/type_casts.jsonc @@ -7716,5 +7716,8 @@ "(trans fisher-done)": [], + "(code target-duck-high-jump)": [[77, "v0", "sound-rpc-set-param"]], + "(trans target-duck-high-jump-jump)": [[9, "v0", "sound-rpc-set-param"]], + "placeholder-do-not-add-below": [] } diff --git a/goal_src/engine/target/target.gc b/goal_src/engine/target/target.gc index c29628d8a6..09d170fd93 100644 --- a/goal_src/engine/target/target.gc +++ b/goal_src/engine/target/target.gc @@ -1737,8 +1737,27 @@ ) (case arg2 (('launch) + ;; PAL patch here + (set! (-> self control unknown-soundid01) (sound-play "launch-fire")) (ja-no-eval :group! eichar-launch-jump-ja :num! (seek! (ja-aframe (the-as float 16.0) 0)) :frame-num 0.0) (until (ja-done? 0) + (let ((s3-2 (the-as sound-rpc-set-param (get-sound-buffer-entry)))) + (set! (-> s3-2 command) (sound-command set-param)) + (set! (-> s3-2 id) (-> self control unknown-soundid01)) + (let ((a1-5 (ear-trans))) + (let ((s2-1 self)) + (when (= a1-5 #t) + (if (and s2-1 (type-type? (-> s2-1 type) process-drawable) (nonzero? (-> s2-1 control))) + (set! a1-5 (-> s2-1 control trans)) + (set! a1-5 (the-as vector #f)) + ) + ) + ) + (sound-trans-convert (-> s3-2 parms trans) a1-5) + ) + (set! (-> s3-2 parms mask) (sound-mask trans)) + (-> s3-2 id) + ) (suspend) (ja :num! (seek! (ja-aframe (the-as float 16.0) 0))) ) @@ -1776,7 +1795,32 @@ (none) ) :exit target-exit - :trans (-> target-high-jump trans) + ;; PAL patch here + :trans (behavior () + ((-> target-high-jump trans)) + (case (-> self control unknown-int37) + (('launch) + (let ((gp-0 (the-as sound-rpc-set-param (get-sound-buffer-entry)))) + (set! (-> gp-0 command) (sound-command set-param)) + (set! (-> gp-0 id) (-> self control unknown-soundid01)) + (let ((a1-0 (ear-trans))) + (let ((s5-0 self)) + (when (= a1-0 #t) + (if (and s5-0 (type-type? (-> s5-0 type) process-drawable) (nonzero? (-> s5-0 control))) + (set! a1-0 (-> s5-0 control trans)) + (set! a1-0 (the-as vector #f)) + ) + ) + ) + (sound-trans-convert (-> gp-0 parms trans) a1-0) + ) + (set! (-> gp-0 parms mask) (sound-mask trans)) + (-> gp-0 id) + ) + ) + ) + (none) + ) :code (behavior ((arg0 float) (arg1 float) (arg2 symbol)) (let ((f30-0 (the-as float (if (= arg2 'launch) 110.0