diff --git a/decompiler/config/all-types.gc b/decompiler/config/all-types.gc index ea28db3285..f39c674719 100644 --- a/decompiler/config/all-types.gc +++ b/decompiler/config/all-types.gc @@ -620,8 +620,15 @@ :bitfield #t :type uint32 (display-marks 0) + (bit0 0) ;; TODO - nav-enemy::45 + (bit3 3) ;; TODO - nav-enemy::45 + (bit5 5) ;; TODO - nav-enemy::45 + (bit6 6) ;; TODO - nav-enemy::45 + (bit7 7) ;; TODO - nav-enemy::45 (bit8 8) + (bit10 10) ;; TODO - nav-enemy::nav-enemy-patrol-post (bit13 13) + (bit19 19) ;; TODO - nav-enemy::lambda::17 ) (defenum task-status @@ -9689,7 +9696,7 @@ (:methods (new (symbol type process) _type_ :behavior process-drawable 0) (dummy-9 () none 9) - (dummy-10 () none 10) + (dummy-10 (_type_ int vector int float) none 10) (dummy-11 () none 11) (dummy-12 () none 12) (dummy-13 () none 13) @@ -10718,30 +10725,11 @@ :flag-assert #x1c0000004c (:methods (new (symbol type basic uint) _type_ 0) - (dummy-9 () none 9) - (dummy-10 () none 10) - (dummy-11 () none 11) - (dummy-12 () none 12) - (dummy-13 () none 13) - (dummy-14 () none 14) - (dummy-15 () none 15) - (dummy-16 () none 16) - (dummy-17 () none 17) - (dummy-18 () none 18) - (dummy-19 () none 19) - (dummy-20 () none 20) - (dummy-21 () none 21) - (dummy-22 () none 22) - (dummy-23 () none 23) - (dummy-24 () none 24) - (dummy-25 () none 25) - (dummy-26 () none 26) - (dummy-27 () none 27) ) ) (deftype collide-shape-prim-mesh (collide-shape-prim) - ((mesh basic :offset-assert 72) + ((mesh collide-mesh :offset-assert 72) (mesh-id int32 :offset-assert 76) (mesh-cache-id uint64 :offset-assert 80) (mesh-cache-tris uint32 :offset-assert 88) @@ -10751,25 +10739,6 @@ :flag-assert #x1d0000005c (:methods (new (symbol type basic uint uint) _type_ 0) - (dummy-9 () none 9) - (dummy-10 () none 10) - (dummy-11 () none 11) - (dummy-12 () none 12) - (dummy-13 () none 13) - (dummy-14 () none 14) - (dummy-15 () none 15) - (dummy-16 () none 16) - (dummy-17 () none 17) - (dummy-18 () none 18) - (dummy-19 () none 19) - (dummy-20 () none 20) - (dummy-21 () none 21) - (dummy-22 () none 22) - (dummy-23 () none 23) - (dummy-24 () none 24) - (dummy-25 () none 25) - (dummy-26 () none 26) - (dummy-27 () none 27) (dummy-28 () none 28) ) ) @@ -10784,25 +10753,6 @@ :flag-assert #x1e00000054 (:methods (new (symbol type basic uint int) _type_ 0) - (dummy-9 () none 9) - (dummy-10 () none 10) - (dummy-11 () none 11) - (dummy-12 () none 12) - (dummy-13 () none 13) - (dummy-14 () none 14) - (dummy-15 () none 15) - (dummy-16 () none 16) - (dummy-17 () none 17) - (dummy-18 () none 18) - (dummy-19 () none 19) - (dummy-20 () none 20) - (dummy-21 () none 21) - (dummy-22 () none 22) - (dummy-23 () none 23) - (dummy-24 () none 24) - (dummy-25 () none 25) - (dummy-26 () none 26) - (dummy-27 () none 27) (dummy-28 () none 28) (dummy-29 () none 29) ) @@ -10970,8 +10920,8 @@ ;; - Types (deftype touching-prim (structure) - ((cprim basic :offset-assert 0) - (has-tri? basic :offset-assert 4) + ((cprim collide-shape-prim :offset-assert 0) ;; a big guess, there's a few that meet this name + (has-tri? symbol :offset-assert 4) (tri collide-tri-result :inline :offset-assert 16) ) :method-count-assert 9 @@ -10982,7 +10932,7 @@ (deftype touching-prims-entry (structure) ((next touching-prims-entry :offset-assert 0) (prev touching-prims-entry :offset-assert 4) - (allocated? basic :offset-assert 8) + (allocated? symbol :offset-assert 8) (u float :offset-assert 12) (prim1 touching-prim :inline :offset-assert 16) (prim2 touching-prim :inline :offset-assert 128) @@ -11015,8 +10965,8 @@ ) (deftype touching-shapes-entry (structure) - ((cshape1 basic :offset-assert 0) - (cshape2 basic :offset-assert 4) + ((cshape1 collide-shape :offset-assert 0) + (cshape2 collide-shape :offset-assert 4) (resolve-u int8 :offset-assert 8) (head touching-prims-entry :offset-assert 12) ) @@ -11028,7 +10978,7 @@ (dummy-9 () none 9) (dummy-10 () none 10) (dummy-11 () none 11) - (dummy-12 () none 12) + (prims-touching? (_type_ collide-shape-moving uint) touching-prims-entry 12) ; this one! (dummy-13 () none 13) (dummy-14 () none 14) (dummy-15 () none 15) @@ -14393,7 +14343,7 @@ (dummy-13 () none 13) (dummy-14 () none 14) (set-target-pos! (_type_ vector) none 15) - (dummy-16 () none 16) + (dummy-16 (_type_ vector) symbol 16) ; see - nav-enemy-test-point-in-nav-mesh? (dummy-17 () none 17) (dummy-18 () none 18) (dummy-19 () none 19) @@ -14402,7 +14352,7 @@ (dummy-22 () none 22) (dummy-23 () none 23) (dummy-24 () none 24) - (dummy-25 () none 25) + (dummy-25 (_type_ vector float) symbol 25) ; see - nav-enemy-test-point-near-nav-mesh? (dummy-26 () none 26) (dummy-27 () none 27) (dummy-28 () none 28) @@ -21896,6 +21846,7 @@ (deftype nav-enemy (process-drawable) ((collide-info collide-shape-moving :score 100 :offset 112) + (enemy-info fact-info-enemy :score 100 :offset 144) (hit-from-dir vector :inline :offset-assert 176) (event-param-point vector :inline :offset-assert 192) (frustration-point vector :inline :offset-assert 208) @@ -21910,7 +21861,7 @@ (turn-time uint64 :offset-assert 312) (frustration-time uint64 :offset-assert 320) (speed-scale float :offset-assert 328) - (neck basic :offset-assert 332) ; WHAT IS THIS (look at mother-spider / pelican) + (neck joint-mod :offset-assert 332) ; this is what `neck` is on the pelican (reaction-time uint64 :offset-assert 336) (notice-time uint64 :offset-assert 344) (state-timeout uint64 :offset-assert 352) @@ -21944,20 +21895,20 @@ (dummy-34 (_type_) none 34) (dummy-35 (_type_) none 35) (dummy-36 (_type_) none 36) - (dummy-37 (_type_) none 37) - (dummy-38 (_type_) none 38) - (dummy-39 (_type_) none 39) ;; TODO - what the hell is neck + (TODO-RENAME-37 (_type_) none 37) + (TODO-RENAME-38 (_type_) none 38) + (TODO-RENAME-39 (_type_) none 39) (dummy-40 (_type_) none 40) (dummy-41 (_type_) none 41) (TODO-RENAME-42 (_type_) int 42) - (dummy-43 (_type_) none 43) - (dummy-44 (_type_) none 44) - (dummy-45 (_type_) none 45) - (dummy-46 (_type_) none 46) - (dummy-47 (_type_) none 47) - (dummy-48 (_type_) none 48) - (dummy-49 (_type_) none 49) - (dummy-50 (_type_) none 50) + (dummy-43 (_type_ process) none 43) + (dummy-44 (_type_ process) none 44) + (TODO-RENAME-45 (_type_ nav-enemy-info) none 45) + (TODO-RENAME-46 (_type_ float) basic 46) + (TODO-RENAME-47 (_type_) none 47) ;; - Stubbed + (TODO-RENAME-48 (_type_) none 48) ;; - Stubbed + (TODO-RENAME-49 (_type_ nav-enemy-info) float 49) + (TODO-RENAME-50 (_type_ vector) symbol 50) (dummy-51 (_type_) none 51) (dummy-52 (_type_) none 52) (dummy-53 (_type_) none 53) @@ -21966,7 +21917,7 @@ (dummy-56 (_type_) none 56) (dummy-57 (_type_) none 57) (dummy-58 (_type_) none 58) - (dummy-59 (_type_) none 59) + (TODO-RENAME-59 (_type_) none 59) (dummy-60 (_type_) none 60) (dummy-61 (_type_) none 61) (dummy-62 (_type_) none 62) @@ -21974,13 +21925,13 @@ (dummy-64 (_type_) none 64) (dummy-65 (_type_) none 65) (dummy-66 (_type_) none 66) - (dummy-67 (_type_) none 67) + (dummy-67 (_type_) symbol 67) (dummy-68 (_type_) none 68) (dummy-69 (_type_) none 69) (dummy-70 (_type_) none 70) (dummy-71 (_type_) none 71) - (dummy-72 (_type_) none 72) - (dummy-73 (_type_) none 73) + (dummy-72 (_type_ process) none 72) ;; TODO - args unknown, 3rd arg contains a touching-shapes-entry offset 16/20 + (TODO-RENAME-73 (_type_ process) symbol 73) (dummy-74 (_type_) none 74) (dummy-75 (_type_) none 75) ) @@ -21996,56 +21947,56 @@ ;; - Functions (define-extern nav-enemy-rnd-int-range (function int int int)) -(define-extern nav-enemy-initialize-jump function) -(define-extern nav-enemy-neck-control-look-at function) -(define-extern nav-enemy-facing-point? function) -(define-extern nav-enemy-turn-to-face-point function) -(define-extern nav-enemy-execute-jump function) -(define-extern nav-enemy-jump-land-anim function) -(define-extern nav-enemy-rnd-float-range (function float float float)) -(define-extern nav-enemy-common-post function) -(define-extern nav-enemy-execute-custom-jump function) -(define-extern nav-enemy-initialize-custom-jump function) -(define-extern nav-enemy-simple-post function) -(define-extern nav-enemy-fall-and-play-death-anim function) -(define-extern nav-enemy-neck-control-inactive function) -(define-extern nav-enemy-frustrated? function) -(define-extern nav-enemy-player-at-frustration-point? function) -(define-extern nav-enemy-reset-frustration function) +(define-extern nav-enemy-initialize-jump (function vector none :behavior nav-enemy)) +(define-extern nav-enemy-neck-control-look-at (function none :behavior nav-enemy)) +(define-extern nav-enemy-facing-point? (function vector float symbol :behavior nav-enemy)) +(define-extern nav-enemy-turn-to-face-point (function vector float none :behavior nav-enemy)) +(define-extern nav-enemy-execute-jump (function none :behavior nav-enemy)) +(define-extern nav-enemy-jump-land-anim (function none :behavior nav-enemy)) ;; TODO +(define-extern nav-enemy-rnd-float-range (function float float float :behavior nav-enemy)) +(define-extern nav-enemy-common-post (function none)) ;; TODO not confirmed +(define-extern nav-enemy-execute-custom-jump (function int float float none :behavior nav-enemy)) +(define-extern nav-enemy-initialize-custom-jump (function vector symbol float float float none :behavior nav-enemy)) +(define-extern nav-enemy-simple-post (function none)) ;; TODO not confirmed +(define-extern nav-enemy-fall-and-play-death-anim (function art-joint-anim int float none)) ;; second arg is whatever is passed to align-control::11 +(define-extern nav-enemy-neck-control-inactive (function none :behavior nav-enemy)) +(define-extern nav-enemy-frustrated? (function symbol :behavior nav-enemy)) +(define-extern nav-enemy-player-at-frustration-point? (function symbol :behavior nav-enemy)) +(define-extern nav-enemy-reset-frustration (function none :behavior nav-enemy)) (define-extern nav-enemy-rnd-go-idle? (function float symbol)) -(define-extern nav-enemy-notice-player? function) -(define-extern nav-enemy-turn-to-face-dir function) -(define-extern nav-enemy-facing-direction? function) -(define-extern nav-enemy-test-point-near-nav-mesh? function) -(define-extern nav-enemy-travel-post function) -(define-extern nav-enemy-get-new-patrol-point function) -(define-extern nav-enemy-set-hit-from-direction function) -(define-extern nav-enemy-send-attack function) +(define-extern nav-enemy-notice-player? (function symbol :behavior nav-enemy)) +(define-extern nav-enemy-turn-to-face-dir (function vector float none :behavior nav-enemy)) +(define-extern nav-enemy-facing-direction? (function vector float symbol)) +(define-extern nav-enemy-test-point-near-nav-mesh? (function vector symbol :behavior nav-enemy)) +(define-extern nav-enemy-travel-post (function none :behavior nav-enemy)) +(define-extern nav-enemy-get-new-patrol-point (function int :behavior nav-enemy)) +(define-extern nav-enemy-set-hit-from-direction (function process none :behavior nav-enemy)) +(define-extern nav-enemy-send-attack (function process touching-shapes-entry symbol symbol :behavior nav-enemy)) (define-extern nav-enemy-rnd-int-count (function int int)) (define-extern nav-enemy-rnd-float (function float)) (define-extern nav-enemy-rnd-percent? (function float symbol)) -(define-extern nav-enemy-default-event-handler function) -(define-extern nav-enemy-jump-event-handler function) -(define-extern process-drawable-death-event-handler function) -(define-extern nav-enemy-patrol-post function) -(define-extern nav-enemy-chase-post function) -(define-extern nav-enemy-flee-post function) -(define-extern nav-enemy-face-player-post function) -(define-extern nav-enemy-falling-post function) -(define-extern nav-enemy-death-post function) -(define-extern nav-enemy-player-vulnerable? function) -(define-extern nav-enemy-facing-player? function) -(define-extern nav-enemy-test-nav-mesh-intersection-xz? function) -(define-extern nav-enemy-test-point-in-nav-mesh? function) -(define-extern nav-enemy-set-base-collide-sphere-collide-with function) -(define-extern ja-group-index? function) -(define-extern nav-enemy-jump-post function) -(define-extern nav-enemy-jump-land-post function) -(define-extern nav-enemy-init-by-other function) +(define-extern nav-enemy-default-event-handler (function process int symbol vector none :behavior nav-enemy)) ;; TODO - last arg is definitely a vector...but also not? +(define-extern nav-enemy-jump-event-handler (function process int symbol vector none :behavior nav-enemy)) +(define-extern process-drawable-death-event-handler (function process int symbol none :behavior process-drawable)) ;; First two args are unused +(define-extern nav-enemy-patrol-post (function none :behavior nav-enemy)) +(define-extern nav-enemy-chase-post (function none :behavior nav-enemy)) +(define-extern nav-enemy-flee-post (function none :behavior nav-enemy)) +(define-extern nav-enemy-face-player-post (function none :behavior nav-enemy)) +(define-extern nav-enemy-falling-post (function none :behavior nav-enemy)) +(define-extern nav-enemy-death-post (function none :behavior nav-enemy)) +(define-extern nav-enemy-player-vulnerable? (function symbol)) +(define-extern nav-enemy-facing-player? (function float symbol)) +(define-extern nav-enemy-test-nav-mesh-intersection-xz? (function vector symbol :behavior nav-enemy)) ;; TODO - vector is a guess, check nav-control::16 +(define-extern nav-enemy-test-point-in-nav-mesh? (function vector symbol :behavior nav-enemy)) ;; TODO - vector is a guess, check nav-control::16 +(define-extern nav-enemy-set-base-collide-sphere-collide-with (function uint none)) ;; unused +(define-extern ja-group-index? (function int symbol :behavior nav-enemy)) +(define-extern nav-enemy-jump-post (function none :behavior nav-enemy)) +(define-extern nav-enemy-jump-land-post (function none :behavior nav-enemy)) +(define-extern nav-enemy-init-by-other (function nav-enemy vector vector nav-enemy :behavior nav-enemy)) ;; - Unknowns -;;(define-extern *nav-enemy-dummy-shadow-control* object) ;; unknown type +(define-extern *nav-enemy-dummy-shadow-control* shadow-control) ;; unknown type ;; ---------------------- @@ -23807,49 +23758,36 @@ ; :flag-assert #x900000050 ; ) -; (deftype pelican (process-drawable) -; ((query gui-query :inline :offset-assert 176) -; (fuel-cell uint64 :offset-assert 208) -; (cam-tracker uint64 :offset-assert 216) -; (path-data UNKNOWN 8 :offset-assert 224) -; (path-circle basic :offset-assert 224) -; (path-dive0 basic :offset-assert 228) -; (path-to-nest0 basic :offset-assert 232) -; (path-from-nest0 basic :offset-assert 236) -; (path-spit0 basic :offset-assert 240) -; (path-dive1 basic :offset-assert 244) -; (path-to-nest1 basic :offset-assert 248) -; (path-to-nest2 basic :offset-assert 252) -; (path-cache basic :offset-assert 256) -; (time-cache uint64 :offset-assert 264) -; (path-pos float :offset-assert 272) -; (path-speed float :offset-assert 276) -; (path-max float :offset-assert 280) -; (path-vector vector :inline :offset-assert 288) -; (state-vector vector :inline :offset-assert 304) -; (state-vector1 vector :inline :offset-assert 320) -; (state-float UNKNOWN 2 :offset-assert 336) -; (state-object basic :offset-assert 344) -; (neck basic :offset-assert 348) -; ) -; :method-count-assert 20 -; :size-assert #x160 -; :flag-assert #x1400f00160 -; ;; inherited inspect of process-drawablefield ~Tstate-object is a basic loaded with a signed load -; (:methods -; (dummy-9 () none 9) -; (dummy-10 () none 10) -; (dummy-11 () none 11) -; (dummy-12 () none 12) -; (dummy-13 () none 13) -; (dummy-14 () none 14) -; (dummy-15 () none 15) -; (dummy-16 () none 16) -; (dummy-17 () none 17) -; (dummy-18 () none 18) -; (dummy-19 () none 19) -; ) -; ) +(deftype pelican (process-drawable) + ((query gui-query :inline :offset-assert 176) + (fuel-cell uint64 :offset-assert 208) + (cam-tracker uint64 :offset-assert 216) + (path-data curve-control 8 :offset-assert 224) + (path-circle curve-control :offset 224) + (path-dive0 curve-control :offset 228) + (path-to-nest0 curve-control :offset 232) + (path-from-nest0 curve-control :offset 236) + (path-spit0 curve-control :offset 240) + (path-dive1 curve-control :offset 244) + (path-to-nest1 curve-control :offset 248) + (path-to-nest2 curve-control :offset 252) + (path-cache basic :offset-assert 256) + (time-cache uint64 :offset-assert 264) + (path-pos float :offset-assert 272) + (path-speed float :offset-assert 276) + (path-max float :offset-assert 280) + (path-vector vector :inline :offset-assert 288) + (state-vector vector :inline :offset-assert 304) + (state-vector1 vector :inline :offset-assert 320) + (state-float float 2 :offset-assert 336) + (state-object basic :offset-assert 344) + (neck joint-mod :offset-assert 348) + ) + :method-count-assert 20 + :heap-base #xf0 + :size-assert #x160 + :flag-assert #x1400f00160 + ) ;; - Functions diff --git a/decompiler/config/jak1_ntsc_black_label/anonymous_function_types.jsonc b/decompiler/config/jak1_ntsc_black_label/anonymous_function_types.jsonc index 1d9207344e..095f7b819b 100644 --- a/decompiler/config/jak1_ntsc_black_label/anonymous_function_types.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/anonymous_function_types.jsonc @@ -573,5 +573,51 @@ [2, "(function process symbol)"] ], + "nav-enemy": [ + [8, "(function none)"], // TODO - NECK! + [9, "(function none)"], // stubbed + [10, "(function uint :behavior nav-enemy)"], + [11, "(function object :behavior nav-enemy)"], + [12, "(function none :behavior nav-enemy)"], + [13, "(function object :behavior nav-enemy)"], + [14, "(function uint :behavior nav-enemy)"], + [15, "(function object :behavior nav-enemy)"], + [16, "(function object :behavior nav-enemy)"], + [17, "(function vector :behavior nav-enemy)"], + [19, "(function object :behavior nav-enemy)"], + [20, "(function uint :behavior nav-enemy)"], + [21, "(function none :behavior nav-enemy)"], + [29, "(function symbol :behavior nav-enemy)"], + [30, "(function object :behavior nav-enemy)"], + [31, "(function object :behavior nav-enemy)"], // TODO - art-element confusion + [32, "(function vector :behavior nav-enemy)"], + [33, "(function object :behavior nav-enemy)"], + [34, "(function object :behavior nav-enemy)"], + [35, "(function object :behavior nav-enemy)"], + [36, "(function uint :behavior nav-enemy)"], + [37, "(function object :behavior nav-enemy)"], + [38, "(function object :behavior nav-enemy)"], + [39, "(function uint :behavior nav-enemy)"], + [40, "(function vector :behavior nav-enemy)"], + [41, "(function none :behavior nav-enemy)"], + [42, "(function object :behavior nav-enemy)"], + [43, "(function uint :behavior nav-enemy)"], + [44, "(function none :behavior nav-enemy)"], + [45, "(function object :behavior nav-enemy)"], + [46, "(function object :behavior nav-enemy)"], // TODO - neck! + [50, "(function object :behavior nav-enemy)"], // TODO - art element + [51, "(function object :behavior nav-enemy)"], + [52, "(function uint :behavior nav-enemy)"], + [54, "(function uint :behavior nav-enemy)"], // TODO - art element + [55, "(function uint :behavior nav-enemy)"], // TODO - art element + [56, "(function uint :behavior nav-enemy)"], // TODO - art element + [57, "(function object :behavior nav-enemy)"], + [58, "(function uint :behavior nav-enemy)"], + [59, "(function uint :behavior nav-enemy)"], + [60, "(function none :behavior nav-enemy)"], + [61, "(function object :behavior nav-enemy)"], + [62, "(function int :behavior nav-enemy)"] + ], + "placeholder-do-not-add-below": [] } diff --git a/decompiler/config/jak1_ntsc_black_label/label_types.jsonc b/decompiler/config/jak1_ntsc_black_label/label_types.jsonc index b9f31659f1..edcf3c5afe 100644 --- a/decompiler/config/jak1_ntsc_black_label/label_types.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/label_types.jsonc @@ -1174,6 +1174,38 @@ ["L79", "rgba", true] ], + "nav-enemy": [ + ["L353", "float", true], + ["L354", "float", true], + ["L356", "float", true], + ["L357", "float", true], + ["L358", "float", true], + ["L360", "float", true], + ["L361", "float", true], + ["L362", "float", true], + ["L365", "float", true], + ["L367", "float", true], + ["L369", "float", true], + ["L370", "float", true], + ["L371", "float", true], + ["L372", "float", true], + ["L373", "float", true], + ["L374", "float", true], + ["L375", "float", true], + ["L376", "float", true], + ["L377", "float", true], + ["L379", "float", true], + ["L380", "float", true], + ["L381", "float", true], + ["L382", "float", true], + ["L383", "float", true], + ["L385", "float", true], + ["L386", "float", true], + ["L387", "float", true], + ["L391", "float", true], + ["L389", "float", 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_ntsc_black_label/stack_structures.jsonc b/decompiler/config/jak1_ntsc_black_label/stack_structures.jsonc index 82a5c0ad26..ccc492f120 100644 --- a/decompiler/config/jak1_ntsc_black_label/stack_structures.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/stack_structures.jsonc @@ -540,5 +540,86 @@ [64, "vector"] ], + "(method 50 nav-enemy)": [ + [16, "vector"] + ], + + "nav-enemy-init-by-other": [ + [16, "vector"] + ], + + "nav-enemy-turn-to-face-point": [ + [16, "vector"] + ], + + "nav-enemy-facing-point?": [ + [16, "vector"] + ], + + "nav-enemy-jump-post": [ + [16, "vector"] + ], + + "(method 41 nav-enemy)": [ + [16, "vector"], + [32, "vector"] + ], + + "nav-enemy-falling-post": [ + [16, "vector"] // TODO - check collide-shape-moving::62(type, vector, float) + ], + + "nav-enemy-death-post": [ + [16, "vector"] // TODO - check collide-shape-moving::62(type, vector, float) + ], + + "nav-enemy-jump-land-post": [ + [16, "vector"], + [32, "vector"] + ], + + "nav-enemy-facing-direction?": [ + [16, "vector"], + [32, "vector"] + ], + + "nav-enemy-initialize-custom-jump": [ + [16, "vector"], + [32, "vector"] + ], + + "nav-enemy-flee-post": [ + [16, "vector"], + [32, "vector"] + ], + + "(anon-function 17 nav-enemy)": [ + [16, "vector"] + ], + "(anon-function 29 nav-enemy)": [ + [16, "event-message-block"] + ], + "(anon-function 30 nav-enemy)": [ + [16, "event-message-block"] + ], + "(anon-function 51 nav-enemy)": [ + [16, "event-message-block"] + ], + "(anon-function 57 nav-enemy)": [ + [16, "event-message-block"] + ], + + "(method 73 nav-enemy)": [ + [16, "event-message-block"] + ], + + "(method 43 nav-enemy)": [ + [16, "event-message-block"] + ], + + "nav-enemy-send-attack": [ + [16, "event-message-block"] + ], + "placeholder-do-not-add-below!": [] } diff --git a/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc b/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc index 2b618dabbe..a7b8aafedf 100644 --- a/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc @@ -1158,5 +1158,329 @@ [[5, 9], "t9", "(function object object)"] ], + "nav-enemy-test-point-near-nav-mesh?": [ + [[0, 999], "s6", "nav-enemy"] + ], + + "nav-enemy-get-new-patrol-point": [ + [[0, 999], "s6", "nav-enemy"] + ], + + "nav-enemy-set-base-collide-sphere-collide-with": [ + [[0, 999], "s6", "nav-enemy"] + ], + + "nav-enemy-turn-to-face-dir": [ + [[0, 999], "s6", "nav-enemy"] + ], + + "nav-enemy-facing-direction?": [ + [[0, 999], "s6", "nav-enemy"] + ], + + "nav-enemy-facing-point?": [ + [[0, 999], "s6", "nav-enemy"] + ], + + "nav-enemy-test-nav-mesh-intersection-xz?": [ + [[0, 999], "s6", "nav-enemy"] + ], + + "nav-enemy-test-point-in-nav-mesh?": [ + [[0, 999], "s6", "nav-enemy"] + ], + + "nav-enemy-turn-to-face-point": [ + [[0, 999], "s6", "nav-enemy"] + ], + + "ja-group-index?": [ + [[0, 999], "s6", "nav-enemy"] + ], + + "nav-enemy-reset-frustration": [ + [[0, 999], "s6", "nav-enemy"] + ], + + "nav-enemy-player-at-frustration-point?": [ + [[0, 999], "s6", "nav-enemy"] + ], + + "nav-enemy-frustrated?": [ + [[0, 999], "s6", "nav-enemy"] + ], + + "nav-enemy-jump-post": [ + [[0, 999], "s6", "nav-enemy"] + ], + + "nav-enemy-initialize-custom-jump": [ + [[0, 999], "s6", "nav-enemy"] + ], + + "nav-enemy-initialize-jump": [ + [[0, 999], "s6", "nav-enemy"] + ], + + "nav-enemy-execute-custom-jump": [ + [[0, 999], "s6", "nav-enemy"] + ], + + "nav-enemy-execute-jump": [ + [[0, 999], "s6", "nav-enemy"] + ], + + "nav-enemy-jump-land-anim": [ + [[0, 999], "s6", "nav-enemy"] + ], + + "nav-enemy-jump-land-post": [ + [[0, 999], "s6", "nav-enemy"] + ], + + "nav-enemy-travel-post": [ + [[0, 999], "s6", "nav-enemy"] + ], + + "nav-enemy-patrol-post": [ + [[0, 999], "s6", "nav-enemy"] + ], + + "nav-enemy-falling-post": [ + [[0, 999], "s6", "nav-enemy"] + ], + + "nav-enemy-death-post": [ + [[0, 999], "s6", "nav-enemy"] + ], + + "nav-enemy-chase-post": [ + [[0, 999], "s6", "nav-enemy"] + ], + + "nav-enemy-flee-post": [ + [[0, 999], "s6", "nav-enemy"] + ], + + "nav-enemy-face-player-post": [ + [[0, 999], "s6", "nav-enemy"] + ], + + "nav-enemy-notice-player?": [ + [[0, 999], "s6", "nav-enemy"] + ], + + "(anon-function 8 nav-enemy)": [ + [[0, 999], "s6", "nav-enemy"], + [[42, 46], "t9", "(function object)"] + ], + "(anon-function 10 nav-enemy)": [ + [[0, 999], "s6", "nav-enemy"] + ], + "(anon-function 12 nav-enemy)": [ + [[0, 999], "s6", "nav-enemy"] + ], + "(anon-function 14 nav-enemy)": [ + [[0, 999], "s6", "nav-enemy"] + ], + "(anon-function 17 nav-enemy)": [ + [[0, 999], "s6", "nav-enemy"] + ], + "(anon-function 20 nav-enemy)": [ + [[0, 999], "s6", "nav-enemy"] + ], + "(anon-function 30 nav-enemy)": [ + [[0, 999], "s6", "nav-enemy"] + ], + "(anon-function 31 nav-enemy)": [ + [[0, 999], "s6", "nav-enemy"] + ], + "(anon-function 32 nav-enemy)": [ + [[0, 999], "s6", "nav-enemy"] + ], + "(anon-function 36 nav-enemy)": [ + [[0, 999], "s6", "nav-enemy"] + ], + "(anon-function 39 nav-enemy)": [ + [[0, 999], "s6", "nav-enemy"] + ], + "(anon-function 40 nav-enemy)": [ + [[0, 999], "s6", "nav-enemy"] + ], + "(anon-function 41 nav-enemy)": [ + [[0, 999], "s6", "nav-enemy"] + ], + "(anon-function 51 nav-enemy)": [ + [[0, 999], "s6", "nav-enemy"], + [[39, 43], "t9", "(function object)"] + ], + "(anon-function 54 nav-enemy)": [ + [[0, 999], "s6", "nav-enemy"] + ], + "(anon-function 55 nav-enemy)": [ + [[0, 999], "s6", "nav-enemy"], + [[9, 13], "t9", "(function object)"] + ], + "(anon-function 56 nav-enemy)": [ + [[0, 999], "s6", "nav-enemy"] + ], + "(anon-function 58 nav-enemy)": [ + [[0, 999], "s6", "nav-enemy"] + ], + "(anon-function 59 nav-enemy)": [ + [[0, 999], "s6", "nav-enemy"] + ], + "(anon-function 60 nav-enemy)": [ + [[0, 999], "s6", "nav-enemy"] + ], + "(anon-function 61 nav-enemy)": [ + [[0, 999], "s6", "nav-enemy"], + [[35, 39], "t9", "(function object)"] + ], + "(anon-function 57 nav-enemy)": [ + [[0, 999], "s6", "nav-enemy"], + [[47, 51], "t9", "(function object)"], + [[89, 93], "t9", "(function object)"], + [[98, 102], "t9", "(function object)"] + ], + "(anon-function 42 nav-enemy)": [ + [[0, 999], "s6", "nav-enemy"], + [[10, 14], "t9", "(function object)"], + [[31, 35], "t9", "(function object)"], + [[67, 71], "t9", "(function object)"] + ], + "(anon-function 43 nav-enemy)": [ + [[0, 999], "s6", "nav-enemy"], + [[33, 37], "t9", "(function object)"] + ], + "(anon-function 44 nav-enemy)": [ + [[0, 999], "s6", "nav-enemy"] + ], + "(anon-function 46 nav-enemy)": [ + [[0, 999], "s6", "nav-enemy"] + ], + "(anon-function 50 nav-enemy)": [ + [[0, 999], "s6", "nav-enemy"] + ], + "(anon-function 45 nav-enemy)": [ + [[0, 999], "s6", "nav-enemy"], + [[5, 9], "t9", "(function object)"], + [[14, 18], "t9", "(function object)"], + [[75, 79], "t9", "(function object)"], + [[91, 95], "t9", "(function object)"] + ], + "(anon-function 37 nav-enemy)": [ + [[0, 999], "s6", "nav-enemy"], + [[1, 5], "t9", "(function object)"] + ], + "(anon-function 38 nav-enemy)": [ + [[0, 999], "s6", "nav-enemy"], + [[10, 14], "t9", "(function object)"], + [[38, 42], "t9", "(function object)"], + [[94, 98], "t9", "(function object)"], + [[124, 128], "t9", "(function object)"] + ], + "(anon-function 33 nav-enemy)": [ + [[0, 999], "s6", "nav-enemy"], + [[1, 5], "t9", "(function object)"] + ], + "(anon-function 34 nav-enemy)": [ + [[0, 999], "s6", "nav-enemy"], + [[1, 5], "t9", "(function object)"] + ], + "(anon-function 35 nav-enemy)": [ + [[0, 999], "s6", "nav-enemy"], + [[15, 20], "t9", "(function object)"] + ], + "(anon-function 29 nav-enemy)": [ + [[0, 999], "s6", "nav-enemy"], + [[36, 40], "t9", "(function object)"] + ], + "(anon-function 62 nav-enemy)": [ + [[0, 999], "s6", "nav-enemy"] + ], + "(anon-function 21 nav-enemy)": [ + [[0, 999], "s6", "nav-enemy"], + [[15, 19], "t9", "(function object)"] + ], + "(anon-function 19 nav-enemy)": [ + [[0, 999], "s6", "nav-enemy"], + [[19, 23], "t9", "(function object)"] + ], + "(anon-function 16 nav-enemy)": [ + [[0, 999], "s6", "nav-enemy"], + [[15, 19], "t9", "(function object object)"] + ], + "(anon-function 15 nav-enemy)": [ + [[0, 999], "s6", "nav-enemy"], + [[3, 6], "t9", "(function object)"] + ], + "(anon-function 13 nav-enemy)": [ + [[0, 999], "s6", "nav-enemy"], + [[6, 9], "t9", "(function object object)"] + ], + "(anon-function 11 nav-enemy)": [ + [[0, 999], "s6", "nav-enemy"], + [[80, 84], "t9", "(function object object object object)"] + ], + + "nav-enemy-init-by-other": [ + [[0, 999], "s6", "nav-enemy"], + [[54, 58], "t9", "(function object object object object)"] + ], + + "nav-enemy-set-hit-from-direction": [ + [[0, 999], "s6", "nav-enemy"], + [19, "v1", "process-drawable"] + ], + + "(method 59 nav-enemy)": [ + [[1, 5], "t9", "(function object object)"] + ], + + "(method 73 nav-enemy)": [ + [[19, 23], "t9", "(function object object)"] + ], + + "(method 43 nav-enemy)": [ + [[22, 26], "t9", "(function object object)"] + ], + + "nav-enemy-send-attack": [ + [[0, 999], "s6", "nav-enemy"] + ], + + "nav-enemy-default-event-handler": [ + [[0, 999], "s6", "nav-enemy"] + ], + + "nav-enemy-jump-event-handler": [ + [[0, 999], "s6", "nav-enemy"] + ], + + "nav-enemy-common-post": [ + [[0, 999], "s6", "nav-enemy"] + ], + + "nav-enemy-simple-post": [ + [[0, 999], "s6", "nav-enemy"] + ], + + "nav-enemy-neck-control-look-at": [ + [[0, 999], "s6", "nav-enemy"] + ], + + "nav-enemy-neck-control-inactive": [ + [[0, 999], "s6", "nav-enemy"] + ], + + "nav-enemy-fall-and-play-death-anim": [ + [[0, 999], "s6", "nav-enemy"] + ], + + "process-drawable-death-event-handler": [ + [[0, 999], "s6", "process-drawable"] + ], + "placeholder-do-not-add-below": [] }