diff --git a/.vscode/settings.json b/.vscode/settings.json index f6b26adec..023166ced 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -11,20 +11,38 @@ "filterFileRegex": ".*ir2\\.asm", "decorations": [ { - "overviewRulerColor": "transparent", // TODO - fix this bug, it extends beyond the line match + "overviewRulerColor": "transparent", "color": "#41f041", "fontWeight": "bold" } ] }, + "()": { + "filterFileRegex": ".*ir2\\.asm", + "decorations": [ + { + "overviewRulerColor": "transparent", + "color": "#c72855" + } + ] + }, "(INFO:.*)": { "filterFileRegex": ".*ir2\\.asm", "decorations": [ { "overviewRulerColor": "transparent", "color": "yellow", - "fontWeight": "bold", - "filterFileRegex": ".*ir2\\.asm" + "fontWeight": "bold" + } + ] + }, + "(sp, -?\\d+ )": { + "filterFileRegex": ".*ir2\\.asm", + "decorations": [ + { + "overviewRulerColor": "transparent", + "color": "#00ff08", + "fontWeight": "bold" } ] }, @@ -57,6 +75,24 @@ } ] }, + "(lwu t9)": { + "filterFileRegex": ".*ir2\\.asm", + "decorations": [ + { + "overviewRulerColor": "transparent", + "color": "magenta" + } + ] + }, + "(jalr)": { + "filterFileRegex": ".*ir2\\.asm", + "decorations": [ + { + "overviewRulerColor": "transparent", + "color": "magenta" + } + ] + }, "(L\\d+)": { "filterFileRegex": ".*ir2\\.asm", "decorations": [ @@ -75,117 +111,130 @@ } ] }, - "(at)": { + "([\\s\\(])(at)([\\s\\),:-])": { "filterFileRegex": ".*ir2\\.asm", "decorations": [ + {}, { "overviewRulerColor": "transparent", "color": "red" } ] }, - "(gp)": { + "([\\s\\(])(gp)([\\s\\),:-])": { "filterFileRegex": ".*ir2\\.asm", "decorations": [ + {}, { "overviewRulerColor": "transparent", "color": "#64c5e3" } ] }, - "(v0)": { + "([\\s\\(])(v0)([\\s\\),:-])": { "filterFileRegex": ".*ir2\\.asm", "decorations": [ + {}, { "overviewRulerColor": "transparent", "color": "#c6c1e6" } ] }, - "(v1)": { + "([\\s\\(])(v1)([\\s\\),:-])": { "filterFileRegex": ".*ir2\\.asm", "decorations": [ + {}, { "overviewRulerColor": "transparent", "color": "#dae6be" } ] }, - "(s6)": { + "([\\s\\(])(s6)([\\s\\),:-])": { "filterFileRegex": ".*ir2\\.asm", "decorations": [ + {}, { "overviewRulerColor": "transparent", "color": "#41f0b0" } ] }, - "(a0)": { + "([\\s\\(])(a0)([\\s\\),:-])": { "filterFileRegex": ".*ir2\\.asm", "decorations": [ + {}, { "overviewRulerColor": "transparent", "color": "pink" } ] }, - "(a1)": { + "([\\s\\(])(a1)([\\s\\),:-])": { "filterFileRegex": ".*ir2\\.asm", "decorations": [ + {}, { "overviewRulerColor": "transparent", "color": "#e065bb" } ] }, - "(a2)": { + "([\\s\\(])(a2)([\\s\\),:-])": { "filterFileRegex": ".*ir2\\.asm", "decorations": [ + {}, { "overviewRulerColor": "transparent", "color": "#6dd1a6" } ] }, - "(a3)": { + "([\\s\\(])(a3)([\\s\\),:-])": { "filterFileRegex": ".*ir2\\.asm", "decorations": [ + {}, { "overviewRulerColor": "transparent", "color": "#bad192" } ] }, - "(t0)": { + "([\\s\\(])(t0)([\\s\\),:-])": { "filterFileRegex": ".*ir2\\.asm", "decorations": [ + {}, { "overviewRulerColor": "transparent", "color": "#b56b82" } ] }, - "(t1)": { + "([\\s\\(])(t1)([\\s\\),:-])": { "filterFileRegex": ".*ir2\\.asm", "decorations": [ + {}, { "overviewRulerColor": "transparent", "color": "#6d32ba" } ] }, - "(t2)": { + "([\\s\\(])(t2)([\\s\\),:-])": { "filterFileRegex": ".*ir2\\.asm", "decorations": [ + {}, { "overviewRulerColor": "transparent", "color": "#db9267" } ] }, - "(t3)": { + "([\\s\\(])(t3)([\\s\\),:-])": { "filterFileRegex": ".*ir2\\.asm", "decorations": [ + {}, { "overviewRulerColor": "transparent", "color": "#92db67" diff --git a/decompiler/config/all-types.gc b/decompiler/config/all-types.gc index 63fb1dc7b..ea28db328 100644 --- a/decompiler/config/all-types.gc +++ b/decompiler/config/all-types.gc @@ -9708,15 +9708,18 @@ (declare-type collide-shape basic) (declare-type water-control basic) (declare-type sparticle-launch-control basic) +(declare-type nav-control basic) +(declare-type path-control basic) +(declare-type vol-control basic) (deftype process-drawable (process) ((root trsqv :offset-assert 112) (node-list cspace-array :offset-assert 116) (draw draw-control :offset-assert 120) (skel joint-control :offset-assert 124) - (nav basic :offset-assert 128) + (nav nav-control :offset-assert 128) (align align-control :offset-assert 132) - (path basic :offset-assert 136) - (vol basic :offset-assert 140) + (path path-control :offset-assert 136) + (vol vol-control :offset-assert 140) (fact fact-info :offset-assert 144) (link basic :offset-assert 148) (part sparticle-launch-control :offset-assert 152) @@ -10813,8 +10816,8 @@ (pat-ignore-mask uint32 :offset-assert 148) (event-self basic :offset-assert 152) (event-other basic :offset-assert 156) - (root-prim basic :offset-assert 160) - (riders basic :offset-assert 164) + (root-prim collide-shape-prim :offset-assert 160) + (riders collide-sticky-rider-group :offset-assert 164) (backup-collide-as uint64 :offset-assert 168) (backup-collide-with uint64 :offset-assert 176) ) @@ -10866,8 +10869,8 @@ (old-status uint64 :offset-assert 280) (prev-status uint64 :offset-assert 288) (reaction-flag uint32 :offset-assert 296) - (reaction basic :offset-assert 300) - (no-reaction basic :offset-assert 304) + (reaction function :offset-assert 300) + (no-reaction function :offset-assert 304) (local-normal vector :inline :offset-assert 320) (surface-normal vector :inline :offset-assert 336) (poly-normal vector :inline :offset-assert 352) @@ -10879,7 +10882,7 @@ (poly-angle float :offset-assert 424) (touch-angle float :offset-assert 428) (coverage float :offset-assert 432) - (dynam basic :offset-assert 436) + (dynam dynamics :offset-assert 436) (surf basic :offset-assert 440) ) :method-count-assert 65 @@ -21892,13 +21895,14 @@ ) (deftype nav-enemy (process-drawable) - ((hit-from-dir vector :inline :offset-assert 176) + ((collide-info collide-shape-moving :score 100 :offset 112) + (hit-from-dir vector :inline :offset-assert 176) (event-param-point vector :inline :offset-assert 192) (frustration-point vector :inline :offset-assert 208) (jump-dest vector :inline :offset-assert 224) (jump-trajectory trajectory :inline :offset-assert 240) (jump-time uint64 :offset-assert 280) - (nav-info basic :offset-assert 288) + (nav-info nav-enemy-info :offset-assert 288) (target-speed float :offset-assert 292) (momentum-speed float :offset-assert 296) (acceleration float :offset-assert 300) @@ -21906,7 +21910,7 @@ (turn-time uint64 :offset-assert 312) (frustration-time uint64 :offset-assert 320) (speed-scale float :offset-assert 328) - (neck basic :offset-assert 332) + (neck basic :offset-assert 332) ; WHAT IS THIS (look at mother-spider / pelican) (reaction-time uint64 :offset-assert 336) (notice-time uint64 :offset-assert 344) (state-timeout uint64 :offset-assert 352) @@ -21915,7 +21919,7 @@ (nav-enemy-flags uint32 :offset-assert 376) (incomming-attack-id uint64 :offset-assert 384) (jump-return-state basic :offset-assert 392) - (rand-gen basic :offset-assert 396) + (rand-gen random-generator :offset-assert 396) ) :heap-base #x120 :method-count-assert 76 @@ -21923,62 +21927,62 @@ :flag-assert #x4c01200190 ;; inherited inspect of process-drawable (:methods - (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) - (dummy-30 () none 30) - (dummy-31 () none 31) - (dummy-32 () none 32) - (dummy-33 () none 33) - (dummy-34 () none 34) - (dummy-35 () none 35) - (dummy-36 () none 36) - (dummy-37 () none 37) - (dummy-38 () none 38) - (dummy-39 () none 39) - (dummy-40 () none 40) - (dummy-41 () none 41) - (dummy-42 () none 42) - (dummy-43 () none 43) - (dummy-44 () none 44) - (dummy-45 () none 45) - (dummy-46 () none 46) - (dummy-47 () none 47) - (dummy-48 () none 48) - (dummy-49 () none 49) - (dummy-50 () none 50) - (dummy-51 () none 51) - (dummy-52 () none 52) - (dummy-53 () none 53) - (dummy-54 () none 54) - (dummy-55 () none 55) - (dummy-56 () none 56) - (dummy-57 () none 57) - (dummy-58 () none 58) - (dummy-59 () none 59) - (dummy-60 () none 60) - (dummy-61 () none 61) - (dummy-62 () none 62) - (dummy-63 () none 63) - (dummy-64 () none 64) - (dummy-65 () none 65) - (dummy-66 () none 66) - (dummy-67 () none 67) - (dummy-68 () none 68) - (dummy-69 () none 69) - (dummy-70 () none 70) - (dummy-71 () none 71) - (dummy-72 () none 72) - (dummy-73 () none 73) - (dummy-74 () none 74) - (dummy-75 () none 75) + (dummy-20 (_type_) none 20) + (dummy-21 (_type_) none 21) + (dummy-22 (_type_) none 22) + (dummy-23 (_type_) none 23) + (dummy-24 (_type_) none 24) + (dummy-25 (_type_) none 25) + (dummy-26 (_type_) none 26) + (dummy-27 (_type_) none 27) + (dummy-28 (_type_) none 28) + (dummy-29 (_type_) none 29) + (dummy-30 (_type_) none 30) + (dummy-31 (_type_) none 31) + (dummy-32 (_type_) none 32) + (dummy-33 (_type_) none 33) + (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 + (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-51 (_type_) none 51) + (dummy-52 (_type_) none 52) + (dummy-53 (_type_) none 53) + (dummy-54 (_type_) none 54) + (dummy-55 (_type_) none 55) + (dummy-56 (_type_) none 56) + (dummy-57 (_type_) none 57) + (dummy-58 (_type_) none 58) + (dummy-59 (_type_) none 59) + (dummy-60 (_type_) none 60) + (dummy-61 (_type_) none 61) + (dummy-62 (_type_) none 62) + (dummy-63 (_type_) none 63) + (dummy-64 (_type_) none 64) + (dummy-65 (_type_) none 65) + (dummy-66 (_type_) none 66) + (dummy-67 (_type_) none 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-74 (_type_) none 74) + (dummy-75 (_type_) none 75) ) ) @@ -21991,14 +21995,14 @@ ;; - Functions -(define-extern nav-enemy-rnd-int-range function) +(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) +(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) @@ -22008,7 +22012,7 @@ (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-rnd-go-idle? function) +(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) @@ -22017,9 +22021,9 @@ (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-rnd-int-count function) -(define-extern nav-enemy-rnd-float function) -(define-extern nav-enemy-rnd-percent? function) +(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) @@ -22477,97 +22481,28 @@ ;; - Types -; (deftype sharkey (nav-enemy) -; ((dir vector :inline :offset-assert 400) -; (spawn-point vector :inline :offset-assert 416) -; (scale float :offset-assert 432) -; (anim-speed float :offset-assert 436) -; (y-max meters :offset-assert 440) -; (y-min meters :offset-assert 444) -; (attack-time float :offset-assert 448) -; (player-water-time uint64 :offset-assert 456) -; (player-in-water basic :offset-assert 464) -; (last-y float :offset-assert 468) -; (spawn-distance meters :offset-assert 472) -; (chase-speed meters :offset-assert 476) -; (y-speed meters :offset-assert 480) -; (sound-id sound-id :offset-assert 484) -; (enable-patrol basic :offset-assert 488) -; ) -; :method-count-assert 76 -; :size-assert #x1ec -; :flag-assert #x4c018001ec -; ;; inherited inspect of nav-enemy -; (: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) -; (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) -; (dummy-30 () none 30) -; (dummy-31 () none 31) -; (dummy-32 () none 32) -; (dummy-33 () none 33) -; (dummy-34 () none 34) -; (dummy-35 () none 35) -; (dummy-36 () none 36) -; (dummy-37 () none 37) -; (dummy-38 () none 38) -; (dummy-39 () none 39) -; (dummy-40 () none 40) -; (dummy-41 () none 41) -; (dummy-42 () none 42) -; (dummy-43 () none 43) -; (dummy-44 () none 44) -; (dummy-45 () none 45) -; (dummy-46 () none 46) -; (dummy-47 () none 47) -; (dummy-48 () none 48) -; (dummy-49 () none 49) -; (dummy-50 () none 50) -; (dummy-51 () none 51) -; (dummy-52 () none 52) -; (dummy-53 () none 53) -; (dummy-54 () none 54) -; (dummy-55 () none 55) -; (dummy-56 () none 56) -; (dummy-57 () none 57) -; (dummy-58 () none 58) -; (dummy-59 () none 59) -; (dummy-60 () none 60) -; (dummy-61 () none 61) -; (dummy-62 () none 62) -; (dummy-63 () none 63) -; (dummy-64 () none 64) -; (dummy-65 () none 65) -; (dummy-66 () none 66) -; (dummy-67 () none 67) -; (dummy-68 () none 68) -; (dummy-69 () none 69) -; (dummy-70 () none 70) -; (dummy-71 () none 71) -; (dummy-72 () none 72) -; (dummy-73 () none 73) -; (dummy-74 () none 74) -; (dummy-75 () none 75) -; ) -; ) +(deftype sharkey (nav-enemy) + ((dir vector :inline :offset-assert 400) + (spawn-point vector :inline :offset-assert 416) + (scale float :offset-assert 432) + (anim-speed float :offset-assert 436) + (y-max float :offset-assert 440) ; meters + (y-min float :offset-assert 444) ; meters + (attack-time float :offset-assert 448) + (player-water-time uint64 :offset-assert 456) + (player-in-water symbol :offset-assert 464) + (last-y float :offset-assert 468) + (spawn-distance float :offset-assert 472) ; meters + (chase-speed float :offset-assert 476) ; meters + (y-speed float :offset-assert 480) ; meters + (sound-id sound-id :offset-assert 484) + (enable-patrol symbol :offset-assert 488) + ) + :method-count-assert 76 + :heap-base #x180 + :size-assert #x1ec + :flag-assert #x4c018001ec + ) ;; - Functions @@ -23946,34 +23881,24 @@ ;; - Types -; (deftype lurkerworm (process-drawable) -; ((twister basic :offset-assert 176) -; (head-tilt float :offset-assert 180) -; (strike-count int32 :offset-assert 184) -; (angle float :offset-assert 188) -; (vulnerable basic :offset-assert 192) -; (part2 basic :offset-assert 196) -; ) -; :method-count-assert 22 -; :size-assert #xc8 -; :flag-assert #x16006000c8 -; ;; inherited inspect of process-drawable -; (: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) -; (dummy-20 () none 20) -; (dummy-21 () none 21) -; ) -; ) +(deftype lurkerworm (process-drawable) + ((twister basic :offset-assert 176) + (head-tilt float :offset-assert 180) + (strike-count int32 :offset-assert 184) + (angle float :offset-assert 188) + (vulnerable basic :offset-assert 192) + (part2 basic :offset-assert 196) + ) + :method-count-assert 22 + :heap-base #x60 + :size-assert #xc8 + :flag-assert #x16006000c8 + ;; inherited inspect of process-drawable + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + ) + ) ;; - Functions @@ -24002,83 +23927,14 @@ ;; - Types -; (deftype lurkercrab (nav-enemy) -; ((orient basic :offset-assert 400) -; ) -; :method-count-assert 76 -; :size-assert #x194 -; :flag-assert #x4c01300194 -; ;; inherited inspect of nav-enemy -; (: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) -; (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) -; (dummy-30 () none 30) -; (dummy-31 () none 31) -; (dummy-32 () none 32) -; (dummy-33 () none 33) -; (dummy-34 () none 34) -; (dummy-35 () none 35) -; (dummy-36 () none 36) -; (dummy-37 () none 37) -; (dummy-38 () none 38) -; (dummy-39 () none 39) -; (dummy-40 () none 40) -; (dummy-41 () none 41) -; (dummy-42 () none 42) -; (dummy-43 () none 43) -; (dummy-44 () none 44) -; (dummy-45 () none 45) -; (dummy-46 () none 46) -; (dummy-47 () none 47) -; (dummy-48 () none 48) -; (dummy-49 () none 49) -; (dummy-50 () none 50) -; (dummy-51 () none 51) -; (dummy-52 () none 52) -; (dummy-53 () none 53) -; (dummy-54 () none 54) -; (dummy-55 () none 55) -; (dummy-56 () none 56) -; (dummy-57 () none 57) -; (dummy-58 () none 58) -; (dummy-59 () none 59) -; (dummy-60 () none 60) -; (dummy-61 () none 61) -; (dummy-62 () none 62) -; (dummy-63 () none 63) -; (dummy-64 () none 64) -; (dummy-65 () none 65) -; (dummy-66 () none 66) -; (dummy-67 () none 67) -; (dummy-68 () none 68) -; (dummy-69 () none 69) -; (dummy-70 () none 70) -; (dummy-71 () none 71) -; (dummy-72 () none 72) -; (dummy-73 () none 73) -; (dummy-74 () none 74) -; (dummy-75 () none 75) -; ) -; ) +(deftype lurkercrab (nav-enemy) + ((orient basic :offset-assert 400) + ) + :method-count-assert 76 + :heap-base #x130 + :size-assert #x194 + :flag-assert #x4c01300194 + ) ;; - Functions @@ -24100,82 +23956,13 @@ ;; - Types -; (deftype lurkerpuppy (nav-enemy) -; () -; :method-count-assert 76 -; :size-assert #x190 -; :flag-assert #x4c01200190 -; ;; not enough basic ops -; (: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) -; (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) -; (dummy-30 () none 30) -; (dummy-31 () none 31) -; (dummy-32 () none 32) -; (dummy-33 () none 33) -; (dummy-34 () none 34) -; (dummy-35 () none 35) -; (dummy-36 () none 36) -; (dummy-37 () none 37) -; (dummy-38 () none 38) -; (dummy-39 () none 39) -; (dummy-40 () none 40) -; (dummy-41 () none 41) -; (dummy-42 () none 42) -; (dummy-43 () none 43) -; (dummy-44 () none 44) -; (dummy-45 () none 45) -; (dummy-46 () none 46) -; (dummy-47 () none 47) -; (dummy-48 () none 48) -; (dummy-49 () none 49) -; (dummy-50 () none 50) -; (dummy-51 () none 51) -; (dummy-52 () none 52) -; (dummy-53 () none 53) -; (dummy-54 () none 54) -; (dummy-55 () none 55) -; (dummy-56 () none 56) -; (dummy-57 () none 57) -; (dummy-58 () none 58) -; (dummy-59 () none 59) -; (dummy-60 () none 60) -; (dummy-61 () none 61) -; (dummy-62 () none 62) -; (dummy-63 () none 63) -; (dummy-64 () none 64) -; (dummy-65 () none 65) -; (dummy-66 () none 66) -; (dummy-67 () none 67) -; (dummy-68 () none 68) -; (dummy-69 () none 69) -; (dummy-70 () none 70) -; (dummy-71 () none 71) -; (dummy-72 () none 72) -; (dummy-73 () none 73) -; (dummy-74 () none 74) -; (dummy-75 () none 75) -; ) -; ) +(deftype lurkerpuppy (nav-enemy) + () + :method-count-assert 76 + :heap-base #x120 + :size-assert #x190 + :flag-assert #x4c01200190 + ) ;; - Unknowns diff --git a/decompiler/config/jak1_ntsc_black_label.jsonc b/decompiler/config/jak1_ntsc_black_label.jsonc index a421fab0a..ae49fc34d 100644 --- a/decompiler/config/jak1_ntsc_black_label.jsonc +++ b/decompiler/config/jak1_ntsc_black_label.jsonc @@ -3,7 +3,7 @@ // if you want to filter to only some object names. // it will make the decompiler much faster. - "allowed_objects": ["crates"], + "allowed_objects": ["nav-enemy"], //////////////////////////// // CODE ANALYSIS OPTIONS diff --git a/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc b/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc index 6a8048bbe..2b618dabb 100644 --- a/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc @@ -1154,5 +1154,9 @@ [6, "a3", "symbol"] ], + "(method 42 nav-enemy)": [ + [[5, 9], "t9", "(function object object)"] + ], + "placeholder-do-not-add-below": [] }