diff --git a/common/goos/TextDB.cpp b/common/goos/TextDB.cpp index d3213d286e..3a274741df 100644 --- a/common/goos/TextDB.cpp +++ b/common/goos/TextDB.cpp @@ -135,7 +135,7 @@ std::string TextDb::get_info_for(const Object& o, bool* terminate_compiler_error */ std::string TextDb::get_info_for(const std::shared_ptr& frag, int offset) const { std::string result = "text from " + frag->get_description() + - ", line: " + std::to_string(frag->get_line_idx(offset)) + "\n"; + ", line: " + std::to_string(frag->get_line_idx(offset) + 1) + "\n"; result += frag->get_line_containing_offset(offset) + "\n"; return result; } diff --git a/decompiler/config/all-types.gc b/decompiler/config/all-types.gc index d3df994e2f..5521e41dc8 100644 --- a/decompiler/config/all-types.gc +++ b/decompiler/config/all-types.gc @@ -9710,7 +9710,7 @@ :flag-assert #xc00000028 (:methods (new (symbol type process pickup-type float) _type_ 0) - (dummy-9 () uint 9) ;; See nav-enemy::process-drawable-death-event-handler + (TODO-RENAME-9 (_type_ symbol process-tree fact-info int) uint 9) ;; See nav-enemy::process-drawable-death-event-handler (reset! (_type_ symbol) none 10) (dummy-11 (_type_) float 11) ) @@ -10856,7 +10856,7 @@ (dummy-30 () none 30) (dummy-31 () none 31) (dummy-32 () none 32) - (dummy-33 () none 33) + (dummy-33 (_type_ vector uint) none 33) (dummy-34 () none 34) (dummy-35 (_type_) none 35) (dummy-36 () none 36) @@ -10877,7 +10877,7 @@ (dummy-51 () none 51) (dummy-52 () none 52) (dummy-53 () none 53) - (dummy-54 () none 54) + (dummy-54 (_type_ int int) none 54) (dummy-55 () none 55) ) ) @@ -10914,12 +10914,12 @@ :flag-assert #x41000001bc (:methods (dummy-56 () none 56) - (dummy-57 () none 57) - (dummy-58 () none 58) - (dummy-59 () none 59) - (dummy-60 () none 60) + (dummy-57 (_type_ vector) none 57) + (dummy-58 (_type_ vector) none 58) + (dummy-59 (_type_ vector uint float symbol symbol symbol) none 59) + (dummy-60 (_type_ float float symbol uint) none 60) (dummy-61 () none 61) - (dummy-62 () none 62) + (dummy-62 (_type_ vector float) vector 62) (dummy-63 () none 63) (dummy-64 () none 64) ) @@ -14412,7 +14412,7 @@ (new (symbol type collide-shape int float) _type_) (dummy-9 () none 9) (point-in-bounds? (_type_ vector) symbol 10) - (dummy-11 () none 11) + (dummy-11 (_type_ vector) none 11) (dummy-12 () none 12) (dummy-13 () none 13) (dummy-14 () none 14) @@ -14420,16 +14420,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) + (dummy-19 (_type_ vector collide-shape-moving vector float) none 19) (dummy-20 () none 20) (dummy-21 () none 21) (dummy-22 () none 22) (dummy-23 () none 23) - (dummy-24 () none 24) + (dummy-24 (_type_ float symbol) none 24) (dummy-25 (_type_ vector float) symbol 25) ; see - nav-enemy-test-point-near-nav-mesh? - (dummy-26 () none 26) + (dummy-26 (_type_) none 26) (dummy-27 () none 27) - (dummy-28 () none 28) + (dummy-28 (_type_ int) none 28) (should-display? (_type_) symbol 29) (dummy-30 () none 30) (dummy-31 () none 31) @@ -21986,18 +21986,18 @@ (shadow-max-y meters :offset-assert 168) (shadow-min-y meters :offset-assert 172) (shadow-locus-dist meters :offset-assert 176) - (use-align basic :offset-assert 180) - (draw-shadow basic :offset-assert 184) - (move-to-ground basic :offset-assert 188) - (hover-if-no-ground basic :offset-assert 192) - (use-momentum basic :offset-assert 196) - (use-flee basic :offset-assert 200) - (use-proximity-notice basic :offset-assert 204) - (use-jump-blocked basic :offset-assert 208) - (use-jump-patrol basic :offset-assert 212) + (use-align symbol :offset-assert 180) + (draw-shadow symbol :offset-assert 184) + (move-to-ground symbol :offset-assert 188) + (hover-if-no-ground symbol :offset-assert 192) + (use-momentum symbol :offset-assert 196) + (use-flee symbol :offset-assert 200) + (use-proximity-notice symbol :offset-assert 204) + (use-jump-blocked symbol :offset-assert 208) + (use-jump-patrol symbol :offset-assert 212) (gnd-collide-with uint64 :offset-assert 216) - (debug-draw-neck basic :offset-assert 224) - (debug-draw-jump basic :offset-assert 228) + (debug-draw-neck symbol :offset-assert 224) + (debug-draw-jump symbol :offset-assert 228) ) :method-count-assert 9 :size-assert #xe8 @@ -22118,7 +22118,7 @@ (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 :behavior nav-enemy)) ;; TODO not confirmed -(define-extern nav-enemy-fall-and-play-death-anim (function art-joint-anim int float none :behavior nav-enemy)) ;; second arg is whatever is passed to align-control::11 +(define-extern nav-enemy-fall-and-play-death-anim (function art-joint-anim float float float int none :behavior nav-enemy)) ;; 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)) diff --git a/decompiler/config/jak1_ntsc_black_label.jsonc b/decompiler/config/jak1_ntsc_black_label.jsonc index b157978891..b346771a87 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": [], + "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 0d61a2bb49..cbc865b79e 100644 --- a/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc @@ -1990,21 +1990,8 @@ "(method 27 sunken-elevator)": [ [37, "v1", "art-joint-anim"] ], - - "(method 42 nav-enemy)": [ - [[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"], [19, "v1", "collide-shape-prim-group"], [23, "s2", "collide-shape-prim"], [32, "v1", "collide-shape-prim-sphere"], diff --git a/goal_src/engine/collide/collide-shape-h.gc b/goal_src/engine/collide/collide-shape-h.gc index a0c6e970be..5dc98c35ef 100644 --- a/goal_src/engine/collide/collide-shape-h.gc +++ b/goal_src/engine/collide/collide-shape-h.gc @@ -253,7 +253,7 @@ (dummy-30 () none 30) (dummy-31 () none 31) (dummy-32 () none 32) - (dummy-33 () none 33) + (dummy-33 (_type_ vector uint) none 33) (dummy-34 () none 34) (dummy-35 (_type_) none 35) (dummy-36 () none 36) @@ -274,7 +274,7 @@ (dummy-51 () none 51) (dummy-52 () none 52) (dummy-53 () none 53) - (dummy-54 () none 54) + (dummy-54 (_type_ int int) none 54) (dummy-55 () none 55) ) ) @@ -312,12 +312,12 @@ :flag-assert #x41000001bc (:methods (dummy-56 () none 56) - (dummy-57 () none 57) - (dummy-58 () none 58) - (dummy-59 () none 59) - (dummy-60 () none 60) + (dummy-57 (_type_ vector) none 57) + (dummy-58 (_type_ vector) none 58) + (dummy-59 (_type_ vector uint float symbol symbol symbol) none 59) + (dummy-60 (_type_ float float symbol uint) none 60) (dummy-61 () none 61) - (dummy-62 () none 62) + (dummy-62 (_type_ vector float) vector 62) (dummy-63 () none 63) (dummy-64 () none 64) ) diff --git a/goal_src/engine/game/fact-h.gc b/goal_src/engine/game/fact-h.gc index 78c546e637..291c42786f 100644 --- a/goal_src/engine/game/fact-h.gc +++ b/goal_src/engine/game/fact-h.gc @@ -82,7 +82,7 @@ :flag-assert #xc00000028 (:methods (new (symbol type process pickup-type float) _type_ 0) - (dummy-9 () uint 9) ;; See nav-enemy::process-drawable-death-event-handler + (TODO-RENAME-9 (_type_ symbol process-tree fact-info int) uint 9) ;; See nav-enemy::process-drawable-death-event-handler (reset! (_type_ symbol) none 10) (dummy-11 (_type_) float 11) ) diff --git a/goal_src/engine/nav/navigate-h.gc b/goal_src/engine/nav/navigate-h.gc index 3b252ecbd3..b84e8b7cbc 100644 --- a/goal_src/engine/nav/navigate-h.gc +++ b/goal_src/engine/nav/navigate-h.gc @@ -238,7 +238,7 @@ (new (symbol type collide-shape int float) _type_) (dummy-9 () none 9) (point-in-bounds? (_type_ vector) symbol 10) - (dummy-11 () none 11) + (dummy-11 (_type_ vector) none 11) (dummy-12 () none 12) (dummy-13 () none 13) (dummy-14 () none 14) @@ -246,16 +246,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) + (dummy-19 (_type_ vector collide-shape-moving vector float) none 19) (dummy-20 () none 20) (dummy-21 () none 21) (dummy-22 () none 22) (dummy-23 () none 23) - (dummy-24 () none 24) + (dummy-24 (_type_ float symbol) none 24) (dummy-25 (_type_ vector float) symbol 25) ; see - nav-enemy-test-point-near-nav-mesh? - (dummy-26 () none 26) + (dummy-26 (_type_) none 26) (dummy-27 () none 27) - (dummy-28 () none 28) + (dummy-28 (_type_ int) none 28) (should-display? (_type_) symbol 29) (dummy-30 () none 30) (dummy-31 () none 31) diff --git a/goal_src/levels/common/nav-enemy-h.gc b/goal_src/levels/common/nav-enemy-h.gc index e450263abd..b7c806eefe 100644 --- a/goal_src/levels/common/nav-enemy-h.gc +++ b/goal_src/levels/common/nav-enemy-h.gc @@ -45,18 +45,18 @@ (shadow-max-y meters :offset-assert 168) (shadow-min-y meters :offset-assert 172) (shadow-locus-dist meters :offset-assert 176) - (use-align basic :offset-assert 180) - (draw-shadow basic :offset-assert 184) - (move-to-ground basic :offset-assert 188) - (hover-if-no-ground basic :offset-assert 192) - (use-momentum basic :offset-assert 196) - (use-flee basic :offset-assert 200) - (use-proximity-notice basic :offset-assert 204) - (use-jump-blocked basic :offset-assert 208) - (use-jump-patrol basic :offset-assert 212) + (use-align symbol :offset-assert 180) + (draw-shadow symbol :offset-assert 184) + (move-to-ground symbol :offset-assert 188) + (hover-if-no-ground symbol :offset-assert 192) + (use-momentum symbol :offset-assert 196) + (use-flee symbol :offset-assert 200) + (use-proximity-notice symbol :offset-assert 204) + (use-jump-blocked symbol :offset-assert 208) + (use-jump-patrol symbol :offset-assert 212) (gnd-collide-with uint64 :offset-assert 216) - (debug-draw-neck basic :offset-assert 224) - (debug-draw-jump basic :offset-assert 228) + (debug-draw-neck symbol :offset-assert 224) + (debug-draw-jump symbol :offset-assert 228) ) :method-count-assert 9 :size-assert #xe8 diff --git a/goal_src/levels/common/nav-enemy.gc b/goal_src/levels/common/nav-enemy.gc index f005ad816d..9461aa5140 100644 --- a/goal_src/levels/common/nav-enemy.gc +++ b/goal_src/levels/common/nav-enemy.gc @@ -82,32 +82,25 @@ ;; definition for method 42 of type nav-enemy (defmethod TODO-RENAME-42 nav-enemy ((obj nav-enemy)) (local-vars (v1-11 symbol)) - (with-pp - (when (<= (-> obj path curve num-cverts) 0) - (let ((t9-0 (the-as (function object object) enter-state)) - (a0-1 "no path") - ) - (set! (-> pp next-state) process-drawable-art-error) - (t9-0 a0-1) - ) - ) - (let ((s5-0 3)) - 0 - (let ((s4-0 (-> obj nav destination-pos))) - (until (or v1-11 (<= s5-0 0)) - (let ((v1-8 (nav-enemy-rnd-int-count (-> obj path curve num-cverts)))) - (eval-path-curve-div! (-> obj path) s4-0 (the float v1-8) 'interp) - ) - (+! s5-0 -1) - (set! - v1-11 - (< 4096.0 (vector-vector-xz-distance s4-0 (-> obj collide-info trans))) - ) + (if (<= (-> obj path curve num-cverts) 0) + (go process-drawable-art-error "no path") + ) + (let ((s5-0 3)) + 0 + (let ((s4-0 (-> obj nav destination-pos))) + (until (or v1-11 (<= s5-0 0)) + (let ((v1-8 (nav-enemy-rnd-int-count (-> obj path curve num-cverts)))) + (eval-path-curve-div! (-> obj path) s4-0 (the float v1-8) 'interp) + ) + (+! s5-0 -1) + (set! + v1-11 + (< 4096.0 (vector-vector-xz-distance s4-0 (-> obj collide-info trans))) ) ) ) - 0 ) + 0 ) ;; definition for method 39 of type nav-enemy @@ -127,11 +120,7 @@ ) ) ) - (let ((t9-0 (method-of-object (-> obj collide-info) dummy-54))) - 2 - 1 - (t9-0) - ) + (dummy-54 (-> obj collide-info) 2 1) (set! (-> obj nav-enemy-flags) (logand -257 (-> obj nav-enemy-flags))) ) ((method-of-object (-> obj draw shadow-ctrl) dummy-14)) @@ -281,11 +270,7 @@ (set! (-> v1-0 param 1) (the-as uint a1-1)) ) (when (send-event-function arg0 v1-0) - (let ((t9-1 (method-of-object (-> self collide-info) dummy-54))) - 2 - 0 - (t9-1) - ) + (dummy-54 (-> self collide-info) 2 0) (logior! (-> self nav-enemy-flags) 256) #t ) @@ -399,13 +384,7 @@ ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) (case arg2 (('death-start) - (let ((t9-0 (method-of-object (-> self fact) dummy-9))) - #t - *entity-pool* - (-> self fact) - 0 - (t9-0) - ) + (TODO-RENAME-9 (-> self fact) #t *entity-pool* (-> self fact) 0) ) (('death-end) (let ((v0-0 (logior (-> self draw status) 2))) @@ -438,10 +417,7 @@ nav-enemy-default-event-handler ;; definition for method 40 of type nav-enemy ;; INFO: Return type mismatch int vs none. (defmethod dummy-40 nav-enemy ((obj nav-enemy)) - (let ((t9-0 (method-of-object (-> obj nav) dummy-11))) - (-> obj nav target-pos) - (t9-0) - ) + (dummy-11 (-> obj nav) (-> obj nav target-pos)) 0 (none) ) @@ -502,14 +478,10 @@ nav-enemy-default-event-handler ) ) ) - (when (-> obj nav-info move-to-ground) - (let ((s5-0 vector-v++!) - (s4-0 (-> obj collide-info transv)) - (t9-3 (method-of-object (-> obj collide-info) dummy-62)) - ) - (set! (-> (new 'stack-no-clear 'vector) quad) (the-as uint128 0)) - 0.0 - (s5-0 s4-0 (the-as vector (t9-3))) + (if (-> obj nav-info move-to-ground) + (vector-v++! + (-> obj collide-info transv) + (dummy-62 (-> obj collide-info) (new-stack-vector0) 0.0) ) ) 0 @@ -546,23 +518,17 @@ nav-enemy-default-event-handler ;; definition for method 38 of type nav-enemy ;; INFO: Return type mismatch int vs none. (defmethod TODO-RENAME-38 nav-enemy ((obj nav-enemy)) - (cond - ((-> obj nav-info move-to-ground) - (let ((t9-0 (method-of-object (-> obj collide-info) dummy-59))) - (-> obj collide-info transv) - (-> obj nav-info gnd-collide-with) - 8192.0 - (-> obj nav-info hover-if-no-ground) - (nonzero? (logand (-> obj nav-enemy-flags) #x8000)) - (t9-0) - ) - ) - (else - (let ((t9-1 (method-of-object (-> obj collide-info) dummy-58))) - (-> obj collide-info transv) - (t9-1) - ) + (if (-> obj nav-info move-to-ground) + (dummy-59 + (-> obj collide-info) + (-> obj collide-info transv) + (-> obj nav-info gnd-collide-with) + 8192.0 + #f + (-> obj nav-info hover-if-no-ground) + (nonzero? (logand (-> obj nav-enemy-flags) #x8000)) ) + (dummy-58 (-> obj collide-info) (-> obj collide-info transv)) ) 0 (none) @@ -611,12 +577,12 @@ nav-enemy-default-event-handler (logior! (-> self nav flags) (nav-control-flags bit10)) (nav-enemy-get-new-patrol-point) ) - (let ((t9-1 (method-of-object (-> self nav) dummy-19))) + (dummy-19 + (-> self nav) (-> self nav target-pos) (-> self collide-info) (-> self nav destination-pos) (-> self rotate-speed) - (t9-1) ) (if (logtest? #x200000 (-> self nav flags)) (logclear! (-> self nav flags) (nav-control-flags bit10)) @@ -659,10 +625,7 @@ nav-enemy-default-event-handler (set! (-> self nav travel quad) (-> gp-1 quad)) ) (vector-normalize! (-> self nav travel) 409600.0) - (let ((t9-3 (method-of-object (-> self nav) dummy-24))) - 204.8 - (t9-3) - ) + (dummy-24 (-> self nav) 204.8 #f) (vector+! (-> self nav target-pos) (-> self collide-info trans) @@ -693,18 +656,14 @@ nav-enemy-default-event-handler ;; INFO: Return type mismatch int vs none. ;; Used lq/sq (defbehavior nav-enemy-falling-post nav-enemy () - (let ((gp-0 vector-v++!) - (s5-0 (-> self collide-info transv)) - (t9-0 (method-of-object (-> self collide-info) dummy-62)) - ) - (set! (-> (new 'stack-no-clear 'vector) quad) (the-as uint128 0)) - 0.0 - (gp-0 s5-0 (the-as vector (t9-0))) + (vector-v++! + (-> self collide-info transv) + (dummy-62 (-> self collide-info) (new-stack-vector0) 0.0) ) - (let ((t9-2 (method-of-object (-> self collide-info) dummy-33))) + (dummy-33 + (-> self collide-info) (-> self collide-info transv) (-> self collide-info root-prim collide-with) - (t9-2) ) (nav-enemy-common-post) 0 @@ -715,18 +674,11 @@ nav-enemy-default-event-handler ;; INFO: Return type mismatch int vs none. ;; Used lq/sq (defbehavior nav-enemy-death-post nav-enemy () - (let ((gp-0 vector-v++!) - (s5-0 (-> self collide-info transv)) - (t9-0 (method-of-object (-> self collide-info) dummy-62)) - ) - (set! (-> (new 'stack-no-clear 'vector) quad) (the-as uint128 0)) - 0.0 - (gp-0 s5-0 (the-as vector (t9-0))) - ) - (let ((t9-2 (method-of-object (-> self collide-info) dummy-57))) + (vector-v++! (-> self collide-info transv) - (t9-2) + (dummy-62 (-> self collide-info) (new-stack-vector0) 0.0) ) + (dummy-57 (-> self collide-info) (-> self collide-info transv)) (nav-enemy-common-post) 0 (none) @@ -1002,7 +954,7 @@ nav-enemy-default-event-handler ;; INFO: Return type mismatch int vs none. (defbehavior nav-enemy-fall-and-play-death-anim nav-enemy - ((arg0 art-joint-anim) (arg1 int) (arg2 float)) + ((arg0 art-joint-anim) (arg1 float) (arg2 float) (arg3 float) (arg4 int)) (nav-enemy-neck-control-inactive) (logclear! (-> self mask) (process-mask actor-pause)) (set! (-> self skel root-channel 0 frame-group) arg0) @@ -1049,7 +1001,7 @@ nav-enemy-default-event-handler ((nonzero? (-> self align)) (when (not s4-1) (TODO-RENAME-9 (-> self align)) - (TODO-RENAME-10 (-> self align) 4098 1.0 (the-as float arg1) 1.0) + (TODO-RENAME-10 (-> self align) 4098 1.0 arg1 1.0) (when (zero? (logand (-> self align flags) 1)) (let ((f0-6 @@ -1206,13 +1158,13 @@ nav-enemy-default-event-handler () (nav-enemy-neck-control-inactive) (set! (-> self state-time) (-> *display* base-frame-counter)) - (when (-> self nav-info move-to-ground) - (let ((t9-1 (method-of-object (-> self collide-info) dummy-60))) + (if (-> self nav-info move-to-ground) + (dummy-60 + (-> self collide-info) 40960.0 40960.0 #t (-> self nav-info gnd-collide-with) - (t9-1) ) ) (set! (-> self nav-enemy-flags) (logand -7 (-> self nav-enemy-flags))) @@ -1750,10 +1702,7 @@ nav-enemy-default-event-handler ) (set! (-> gp-0 target-pos quad) (-> v1-10 quad)) ) - (let ((t9-3 (method-of-object (-> self nav) dummy-11))) - (-> self nav target-pos) - (t9-3) - ) + (dummy-11 (-> self nav) (-> self nav target-pos)) (set! (-> self rotate-speed) (-> self nav-info run-rotate-speed)) (let ((v0-4 (-> self nav-info run-turn-time))) (set! (-> self turn-time) (the-as uint v0-4)) @@ -2876,14 +2825,15 @@ nav-enemy-default-event-handler () (ja-channel-push! 1 22) (dummy-48 (-> self collide-info)) - (let ((t9-2 nav-enemy-fall-and-play-death-anim) - (a0-4 (-> self draw art-group data (-> self nav-info die-anim))) - (a1-1 1.0) - (a2-0 1.0) - ) + (nav-enemy-fall-and-play-death-anim + (the-as + art-joint-anim + (-> self draw art-group data (-> self nav-info die-anim)) + ) + 1.0 + 1.0 1000000000000000.0 600 - (t9-2 (the-as art-joint-anim a0-4) (the-as int a1-1) a2-0) ) (let ((a1-2 (new 'stack-no-clear 'event-message-block))) (set! (-> a1-2 from) self) @@ -3383,10 +3333,7 @@ nav-enemy-default-event-handler ;; Used lq/sq (defbehavior nav-enemy-jump-land-post nav-enemy () (TODO-RENAME-9 (-> self align)) - (let ((t9-1 (method-of-object (-> self nav) dummy-11))) - (-> self nav target-pos) - (t9-1) - ) + (dummy-11 (-> self nav) (-> self nav target-pos)) (set! (-> self target-speed) (seek (-> self target-speed) (-> self nav-info run-travel-speed) 2048.0) @@ -3428,20 +3375,18 @@ nav-enemy-default-event-handler (the-as int (-> self turn-time)) ) ) - (let ((gp-0 vector-v++!) - (s5-0 (-> self collide-info transv)) - (t9-7 (method-of-object (-> self collide-info) dummy-62)) - ) - (set! (-> (new 'stack-no-clear 'vector) quad) (the-as uint128 0)) - 0.0 - (gp-0 s5-0 (the-as vector (t9-7))) + (vector-v++! + (-> self collide-info transv) + (dummy-62 (-> self collide-info) (new-stack-vector0) 0.0) ) - (let ((t9-9 (method-of-object (-> self collide-info) dummy-59))) + (dummy-59 + (-> self collide-info) (-> self collide-info transv) (-> self nav-info gnd-collide-with) 8192.0 + #f (-> self nav-info hover-if-no-ground) - (t9-9) + #f ) (nav-enemy-common-post) (none) @@ -3821,7 +3766,7 @@ nav-enemy-default-event-handler (nav-control-flags display-marks bit0 bit3 bit5 bit6 bit7) ) (set! (-> obj nav gap-event) 'jump) - ((method-of-object (-> obj nav) dummy-26)) + (dummy-26 (-> obj nav)) (set! (-> obj path) (new 'process 'path-control obj 'path 0.0)) (logior! (-> obj path flags) @@ -3950,10 +3895,7 @@ nav-enemy-default-event-handler (set! (-> s4-0 quad) (-> obj collide-info trans quad)) (set! (-> obj collide-info trans quad) (-> arg0 quad)) (let ((gp-0 (-> obj nav))) - (let ((t9-0 (method-of-object gp-0 dummy-28))) - -1 - (t9-0) - ) + (dummy-28 gp-0 -1) (set! (-> obj collide-info trans quad) (-> s4-0 quad)) (let* ((v1-8 (-> gp-0 mesh origin)) (f0-1 (- (-> arg0 x) (-> v1-8 x))) diff --git a/test/decompiler/reference/engine/collide/collide-shape-h_REF.gc b/test/decompiler/reference/engine/collide/collide-shape-h_REF.gc index 9bc41ace7d..4c04fafe39 100644 --- a/test/decompiler/reference/engine/collide/collide-shape-h_REF.gc +++ b/test/decompiler/reference/engine/collide/collide-shape-h_REF.gc @@ -411,7 +411,7 @@ (dummy-30 () none 30) (dummy-31 () none 31) (dummy-32 () none 32) - (dummy-33 () none 33) + (dummy-33 (_type_ vector uint) none 33) (dummy-34 () none 34) (dummy-35 (_type_) none 35) (dummy-36 () none 36) @@ -432,7 +432,7 @@ (dummy-51 () none 51) (dummy-52 () none 52) (dummy-53 () none 53) - (dummy-54 () none 54) + (dummy-54 (_type_ int int) none 54) (dummy-55 () none 55) ) ) @@ -503,12 +503,12 @@ :flag-assert #x41000001bc (:methods (dummy-56 () none 56) - (dummy-57 () none 57) - (dummy-58 () none 58) - (dummy-59 () none 59) - (dummy-60 () none 60) + (dummy-57 (_type_ vector) none 57) + (dummy-58 (_type_ vector) none 58) + (dummy-59 (_type_ vector uint float symbol symbol symbol) none 59) + (dummy-60 (_type_ float float symbol uint) none 60) (dummy-61 () none 61) - (dummy-62 () none 62) + (dummy-62 (_type_ vector float) vector 62) (dummy-63 () none 63) (dummy-64 () none 64) ) diff --git a/test/decompiler/reference/engine/game/fact-h_REF.gc b/test/decompiler/reference/engine/game/fact-h_REF.gc index 5abe8f8a6d..7bf5d72900 100644 --- a/test/decompiler/reference/engine/game/fact-h_REF.gc +++ b/test/decompiler/reference/engine/game/fact-h_REF.gc @@ -119,7 +119,7 @@ :flag-assert #xc00000028 (:methods (new (symbol type process pickup-type float) _type_ 0) - (dummy-9 () uint 9) + (TODO-RENAME-9 (_type_ symbol process-tree fact-info int) uint 9) (reset! (_type_ symbol) none 10) (dummy-11 (_type_) float 11) ) diff --git a/test/decompiler/reference/engine/nav/navigate-h_REF.gc b/test/decompiler/reference/engine/nav/navigate-h_REF.gc index 2f98cd91fd..e75a2bad6f 100644 --- a/test/decompiler/reference/engine/nav/navigate-h_REF.gc +++ b/test/decompiler/reference/engine/nav/navigate-h_REF.gc @@ -381,7 +381,7 @@ (new (symbol type collide-shape int float) _type_ 0) (dummy-9 () none 9) (point-in-bounds? (_type_ vector) symbol 10) - (dummy-11 () none 11) + (dummy-11 (_type_ vector) none 11) (dummy-12 () none 12) (dummy-13 () none 13) (dummy-14 () none 14) @@ -389,16 +389,16 @@ (dummy-16 (_type_ vector) symbol 16) (dummy-17 () none 17) (dummy-18 () none 18) - (dummy-19 () none 19) + (dummy-19 (_type_ vector collide-shape-moving vector float) none 19) (dummy-20 () none 20) (dummy-21 () none 21) (dummy-22 () none 22) (dummy-23 () none 23) - (dummy-24 () none 24) + (dummy-24 (_type_ float symbol) none 24) (dummy-25 (_type_ vector float) symbol 25) - (dummy-26 () none 26) + (dummy-26 (_type_) none 26) (dummy-27 () none 27) - (dummy-28 () none 28) + (dummy-28 (_type_ int) none 28) (should-display? (_type_) symbol 29) (dummy-30 () none 30) (dummy-31 () none 31) diff --git a/test/decompiler/reference/levels/common/nav-enemy-h_REF.gc b/test/decompiler/reference/levels/common/nav-enemy-h_REF.gc index f92d088432..2eb6e32acf 100644 --- a/test/decompiler/reference/levels/common/nav-enemy-h_REF.gc +++ b/test/decompiler/reference/levels/common/nav-enemy-h_REF.gc @@ -42,18 +42,18 @@ (shadow-max-y meters :offset-assert 168) (shadow-min-y meters :offset-assert 172) (shadow-locus-dist meters :offset-assert 176) - (use-align basic :offset-assert 180) - (draw-shadow basic :offset-assert 184) - (move-to-ground basic :offset-assert 188) - (hover-if-no-ground basic :offset-assert 192) - (use-momentum basic :offset-assert 196) - (use-flee basic :offset-assert 200) - (use-proximity-notice basic :offset-assert 204) - (use-jump-blocked basic :offset-assert 208) - (use-jump-patrol basic :offset-assert 212) + (use-align symbol :offset-assert 180) + (draw-shadow symbol :offset-assert 184) + (move-to-ground symbol :offset-assert 188) + (hover-if-no-ground symbol :offset-assert 192) + (use-momentum symbol :offset-assert 196) + (use-flee symbol :offset-assert 200) + (use-proximity-notice symbol :offset-assert 204) + (use-jump-blocked symbol :offset-assert 208) + (use-jump-patrol symbol :offset-assert 212) (gnd-collide-with uint64 :offset-assert 216) - (debug-draw-neck basic :offset-assert 224) - (debug-draw-jump basic :offset-assert 228) + (debug-draw-neck symbol :offset-assert 224) + (debug-draw-jump symbol :offset-assert 228) ) :method-count-assert 9 :size-assert #xe8 diff --git a/test/decompiler/reference/levels/common/nav-enemy_REF.gc b/test/decompiler/reference/levels/common/nav-enemy_REF.gc index aaf1ad0897..40f53811d2 100644 --- a/test/decompiler/reference/levels/common/nav-enemy_REF.gc +++ b/test/decompiler/reference/levels/common/nav-enemy_REF.gc @@ -78,32 +78,25 @@ ;; definition for method 42 of type nav-enemy (defmethod TODO-RENAME-42 nav-enemy ((obj nav-enemy)) (local-vars (v1-11 symbol)) - (with-pp - (when (<= (-> obj path curve num-cverts) 0) - (let ((t9-0 (the-as (function object object) enter-state)) - (a0-1 "no path") - ) - (set! (-> pp next-state) process-drawable-art-error) - (t9-0 a0-1) - ) - ) - (let ((s5-0 3)) - 0 - (let ((s4-0 (-> obj nav destination-pos))) - (until (or v1-11 (<= s5-0 0)) - (let ((v1-8 (nav-enemy-rnd-int-count (-> obj path curve num-cverts)))) - (eval-path-curve-div! (-> obj path) s4-0 (the float v1-8) 'interp) - ) - (+! s5-0 -1) - (set! - v1-11 - (< 4096.0 (vector-vector-xz-distance s4-0 (-> obj collide-info trans))) - ) + (if (<= (-> obj path curve num-cverts) 0) + (go process-drawable-art-error "no path") + ) + (let ((s5-0 3)) + 0 + (let ((s4-0 (-> obj nav destination-pos))) + (until (or v1-11 (<= s5-0 0)) + (let ((v1-8 (nav-enemy-rnd-int-count (-> obj path curve num-cverts)))) + (eval-path-curve-div! (-> obj path) s4-0 (the float v1-8) 'interp) + ) + (+! s5-0 -1) + (set! + v1-11 + (< 4096.0 (vector-vector-xz-distance s4-0 (-> obj collide-info trans))) ) ) ) - 0 ) + 0 ) ;; definition for method 39 of type nav-enemy @@ -123,11 +116,7 @@ ) ) ) - (let ((t9-0 (method-of-object (-> obj collide-info) dummy-54))) - 2 - 1 - (t9-0) - ) + (dummy-54 (-> obj collide-info) 2 1) (set! (-> obj nav-enemy-flags) (logand -257 (-> obj nav-enemy-flags))) ) ((method-of-object (-> obj draw shadow-ctrl) dummy-14)) @@ -277,11 +266,7 @@ (set! (-> v1-0 param 1) (the-as uint a1-1)) ) (when (send-event-function arg0 v1-0) - (let ((t9-1 (method-of-object (-> self collide-info) dummy-54))) - 2 - 0 - (t9-1) - ) + (dummy-54 (-> self collide-info) 2 0) (logior! (-> self nav-enemy-flags) 256) #t ) @@ -395,13 +380,7 @@ ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) (case arg2 (('death-start) - (let ((t9-0 (method-of-object (-> self fact) dummy-9))) - #t - *entity-pool* - (-> self fact) - 0 - (t9-0) - ) + (TODO-RENAME-9 (-> self fact) #t *entity-pool* (-> self fact) 0) ) (('death-end) (let ((v0-0 (logior (-> self draw status) 2))) @@ -434,10 +413,7 @@ nav-enemy-default-event-handler ;; definition for method 40 of type nav-enemy ;; INFO: Return type mismatch int vs none. (defmethod dummy-40 nav-enemy ((obj nav-enemy)) - (let ((t9-0 (method-of-object (-> obj nav) dummy-11))) - (-> obj nav target-pos) - (t9-0) - ) + (dummy-11 (-> obj nav) (-> obj nav target-pos)) 0 (none) ) @@ -498,14 +474,10 @@ nav-enemy-default-event-handler ) ) ) - (when (-> obj nav-info move-to-ground) - (let ((s5-0 vector-v++!) - (s4-0 (-> obj collide-info transv)) - (t9-3 (method-of-object (-> obj collide-info) dummy-62)) - ) - (set! (-> (new 'stack-no-clear 'vector) quad) (the-as uint128 0)) - 0.0 - (s5-0 s4-0 (the-as vector (t9-3))) + (if (-> obj nav-info move-to-ground) + (vector-v++! + (-> obj collide-info transv) + (dummy-62 (-> obj collide-info) (new-stack-vector0) 0.0) ) ) 0 @@ -542,23 +514,17 @@ nav-enemy-default-event-handler ;; definition for method 38 of type nav-enemy ;; INFO: Return type mismatch int vs none. (defmethod TODO-RENAME-38 nav-enemy ((obj nav-enemy)) - (cond - ((-> obj nav-info move-to-ground) - (let ((t9-0 (method-of-object (-> obj collide-info) dummy-59))) - (-> obj collide-info transv) - (-> obj nav-info gnd-collide-with) - 8192.0 - (-> obj nav-info hover-if-no-ground) - (nonzero? (logand (-> obj nav-enemy-flags) #x8000)) - (t9-0) - ) - ) - (else - (let ((t9-1 (method-of-object (-> obj collide-info) dummy-58))) - (-> obj collide-info transv) - (t9-1) - ) + (if (-> obj nav-info move-to-ground) + (dummy-59 + (-> obj collide-info) + (-> obj collide-info transv) + (-> obj nav-info gnd-collide-with) + 8192.0 + #f + (-> obj nav-info hover-if-no-ground) + (nonzero? (logand (-> obj nav-enemy-flags) #x8000)) ) + (dummy-58 (-> obj collide-info) (-> obj collide-info transv)) ) 0 (none) @@ -607,12 +573,12 @@ nav-enemy-default-event-handler (logior! (-> self nav flags) (nav-control-flags bit10)) (nav-enemy-get-new-patrol-point) ) - (let ((t9-1 (method-of-object (-> self nav) dummy-19))) + (dummy-19 + (-> self nav) (-> self nav target-pos) (-> self collide-info) (-> self nav destination-pos) (-> self rotate-speed) - (t9-1) ) (if (logtest? #x200000 (-> self nav flags)) (logclear! (-> self nav flags) (nav-control-flags bit10)) @@ -655,10 +621,7 @@ nav-enemy-default-event-handler (set! (-> self nav travel quad) (-> gp-1 quad)) ) (vector-normalize! (-> self nav travel) 409600.0) - (let ((t9-3 (method-of-object (-> self nav) dummy-24))) - 204.8 - (t9-3) - ) + (dummy-24 (-> self nav) 204.8 #f) (vector+! (-> self nav target-pos) (-> self collide-info trans) @@ -689,18 +652,14 @@ nav-enemy-default-event-handler ;; INFO: Return type mismatch int vs none. ;; Used lq/sq (defbehavior nav-enemy-falling-post nav-enemy () - (let ((gp-0 vector-v++!) - (s5-0 (-> self collide-info transv)) - (t9-0 (method-of-object (-> self collide-info) dummy-62)) - ) - (set! (-> (new 'stack-no-clear 'vector) quad) (the-as uint128 0)) - 0.0 - (gp-0 s5-0 (the-as vector (t9-0))) + (vector-v++! + (-> self collide-info transv) + (dummy-62 (-> self collide-info) (new-stack-vector0) 0.0) ) - (let ((t9-2 (method-of-object (-> self collide-info) dummy-33))) + (dummy-33 + (-> self collide-info) (-> self collide-info transv) (-> self collide-info root-prim collide-with) - (t9-2) ) (nav-enemy-common-post) 0 @@ -711,18 +670,11 @@ nav-enemy-default-event-handler ;; INFO: Return type mismatch int vs none. ;; Used lq/sq (defbehavior nav-enemy-death-post nav-enemy () - (let ((gp-0 vector-v++!) - (s5-0 (-> self collide-info transv)) - (t9-0 (method-of-object (-> self collide-info) dummy-62)) - ) - (set! (-> (new 'stack-no-clear 'vector) quad) (the-as uint128 0)) - 0.0 - (gp-0 s5-0 (the-as vector (t9-0))) - ) - (let ((t9-2 (method-of-object (-> self collide-info) dummy-57))) + (vector-v++! (-> self collide-info transv) - (t9-2) + (dummy-62 (-> self collide-info) (new-stack-vector0) 0.0) ) + (dummy-57 (-> self collide-info) (-> self collide-info transv)) (nav-enemy-common-post) 0 (none) @@ -998,7 +950,7 @@ nav-enemy-default-event-handler ;; INFO: Return type mismatch int vs none. (defbehavior nav-enemy-fall-and-play-death-anim nav-enemy - ((arg0 art-joint-anim) (arg1 int) (arg2 float)) + ((arg0 art-joint-anim) (arg1 float) (arg2 float) (arg3 float) (arg4 int)) (nav-enemy-neck-control-inactive) (logclear! (-> self mask) (process-mask actor-pause)) (set! (-> self skel root-channel 0 frame-group) arg0) @@ -1045,7 +997,7 @@ nav-enemy-default-event-handler ((nonzero? (-> self align)) (when (not s4-1) (TODO-RENAME-9 (-> self align)) - (TODO-RENAME-10 (-> self align) 4098 1.0 (the-as float arg1) 1.0) + (TODO-RENAME-10 (-> self align) 4098 1.0 arg1 1.0) (when (zero? (logand (-> self align flags) 1)) (let ((f0-6 @@ -1202,13 +1154,13 @@ nav-enemy-default-event-handler () (nav-enemy-neck-control-inactive) (set! (-> self state-time) (-> *display* base-frame-counter)) - (when (-> self nav-info move-to-ground) - (let ((t9-1 (method-of-object (-> self collide-info) dummy-60))) + (if (-> self nav-info move-to-ground) + (dummy-60 + (-> self collide-info) 40960.0 40960.0 #t (-> self nav-info gnd-collide-with) - (t9-1) ) ) (set! (-> self nav-enemy-flags) (logand -7 (-> self nav-enemy-flags))) @@ -1746,10 +1698,7 @@ nav-enemy-default-event-handler ) (set! (-> gp-0 target-pos quad) (-> v1-10 quad)) ) - (let ((t9-3 (method-of-object (-> self nav) dummy-11))) - (-> self nav target-pos) - (t9-3) - ) + (dummy-11 (-> self nav) (-> self nav target-pos)) (set! (-> self rotate-speed) (-> self nav-info run-rotate-speed)) (let ((v0-4 (-> self nav-info run-turn-time))) (set! (-> self turn-time) (the-as uint v0-4)) @@ -2872,14 +2821,15 @@ nav-enemy-default-event-handler () (ja-channel-push! 1 22) (dummy-48 (-> self collide-info)) - (let ((t9-2 nav-enemy-fall-and-play-death-anim) - (a0-4 (-> self draw art-group data (-> self nav-info die-anim))) - (a1-1 1.0) - (a2-0 1.0) - ) + (nav-enemy-fall-and-play-death-anim + (the-as + art-joint-anim + (-> self draw art-group data (-> self nav-info die-anim)) + ) + 1.0 + 1.0 1000000000000000.0 600 - (t9-2 (the-as art-joint-anim a0-4) (the-as int a1-1) a2-0) ) (let ((a1-2 (new 'stack-no-clear 'event-message-block))) (set! (-> a1-2 from) self) @@ -3379,10 +3329,7 @@ nav-enemy-default-event-handler ;; Used lq/sq (defbehavior nav-enemy-jump-land-post nav-enemy () (TODO-RENAME-9 (-> self align)) - (let ((t9-1 (method-of-object (-> self nav) dummy-11))) - (-> self nav target-pos) - (t9-1) - ) + (dummy-11 (-> self nav) (-> self nav target-pos)) (set! (-> self target-speed) (seek (-> self target-speed) (-> self nav-info run-travel-speed) 2048.0) @@ -3424,20 +3371,18 @@ nav-enemy-default-event-handler (the-as int (-> self turn-time)) ) ) - (let ((gp-0 vector-v++!) - (s5-0 (-> self collide-info transv)) - (t9-7 (method-of-object (-> self collide-info) dummy-62)) - ) - (set! (-> (new 'stack-no-clear 'vector) quad) (the-as uint128 0)) - 0.0 - (gp-0 s5-0 (the-as vector (t9-7))) + (vector-v++! + (-> self collide-info transv) + (dummy-62 (-> self collide-info) (new-stack-vector0) 0.0) ) - (let ((t9-9 (method-of-object (-> self collide-info) dummy-59))) + (dummy-59 + (-> self collide-info) (-> self collide-info transv) (-> self nav-info gnd-collide-with) 8192.0 + #f (-> self nav-info hover-if-no-ground) - (t9-9) + #f ) (nav-enemy-common-post) (none) @@ -3817,7 +3762,7 @@ nav-enemy-default-event-handler (nav-control-flags display-marks bit0 bit3 bit5 bit6 bit7) ) (set! (-> obj nav gap-event) 'jump) - ((method-of-object (-> obj nav) dummy-26)) + (dummy-26 (-> obj nav)) (set! (-> obj path) (new 'process 'path-control obj 'path 0.0)) (logior! (-> obj path flags) @@ -3946,10 +3891,7 @@ nav-enemy-default-event-handler (set! (-> s4-0 quad) (-> obj collide-info trans quad)) (set! (-> obj collide-info trans quad) (-> arg0 quad)) (let ((gp-0 (-> obj nav))) - (let ((t9-0 (method-of-object gp-0 dummy-28))) - -1 - (t9-0) - ) + (dummy-28 gp-0 -1) (set! (-> obj collide-info trans quad) (-> s4-0 quad)) (let* ((v1-8 (-> gp-0 mesh origin)) (f0-1 (- (-> arg0 x) (-> v1-8 x)))