From f7e1e7380949783c825e38dc8cedc59292f3e8d5 Mon Sep 17 00:00:00 2001 From: Brent Hickey Date: Tue, 11 Oct 2022 16:39:45 -0700 Subject: [PATCH] Decompile los-control-h (#1844) Co-authored-by: Tyler Wilding --- decompiler/config/jak2/all-types.gc | 8 ++-- goal_src/jak2/engine/collide/los-control-h.gc | 24 +++++++++- .../jak2/engine/collide/los-control-h_REF.gc | 47 +++++++++++++++++++ 3 files changed, 73 insertions(+), 6 deletions(-) create mode 100644 test/decompiler/reference/jak2/engine/collide/los-control-h_REF.gc diff --git a/decompiler/config/jak2/all-types.gc b/decompiler/config/jak2/all-types.gc index 02f733fc33..38513e68e8 100644 --- a/decompiler/config/jak2/all-types.gc +++ b/decompiler/config/jak2/all-types.gc @@ -31572,16 +31572,16 @@ ;; los-control-h ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -#| + (deftype los-control (structure) ((src-proc uint64 :offset-assert 0) (dst-proc uint64 :offset-assert 8) (have-los uint64 :offset-assert 16) (have-no-los uint64 :offset-assert 24) (check-interval uint64 :offset-assert 32) - (last-check-time time-frame :offset-assert 40) + (last-check-time time-frame :offset-assert 40) (last-collide-result collide-tri-result :inline :offset-assert 48) - (collide-with uint32 :offset-assert 144) + (collide-with uint32 :offset 144) ;; collide-tri-result is 88 so tries to place at 136 ) :method-count-assert 14 :size-assert #x94 @@ -31594,7 +31594,7 @@ (los-control-method-13 () none 13) ) ) -|# + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; diff --git a/goal_src/jak2/engine/collide/los-control-h.gc b/goal_src/jak2/engine/collide/los-control-h.gc index 723f51716b..6c2317ef4b 100644 --- a/goal_src/jak2/engine/collide/los-control-h.gc +++ b/goal_src/jak2/engine/collide/los-control-h.gc @@ -5,5 +5,25 @@ ;; name in dgo: los-control-h ;; dgos: GAME, COMMON -;; DECOMP BEGINS - +;; definition of type los-control +(deftype los-control (structure) + ((src-proc uint64 :offset-assert 0) + (dst-proc uint64 :offset-assert 8) + (have-los uint64 :offset-assert 16) + (have-no-los uint64 :offset-assert 24) + (check-interval uint64 :offset-assert 32) + (last-check-time time-frame :offset-assert 40) + (last-collide-result collide-tri-result :inline :offset-assert 48) + (collide-with uint32 :offset 144) + ) + :method-count-assert 14 + :size-assert #x94 + :flag-assert #xe00000094 + (:methods + (los-control-method-9 () none 9) + (los-control-method-10 () none 10) + (los-control-method-11 () none 11) + (los-control-method-12 () none 12) + (los-control-method-13 () none 13) + ) + ) diff --git a/test/decompiler/reference/jak2/engine/collide/los-control-h_REF.gc b/test/decompiler/reference/jak2/engine/collide/los-control-h_REF.gc new file mode 100644 index 0000000000..0fe8f5f615 --- /dev/null +++ b/test/decompiler/reference/jak2/engine/collide/los-control-h_REF.gc @@ -0,0 +1,47 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition of type los-control +(deftype los-control (structure) + ((src-proc uint64 :offset-assert 0) + (dst-proc uint64 :offset-assert 8) + (have-los uint64 :offset-assert 16) + (have-no-los uint64 :offset-assert 24) + (check-interval uint64 :offset-assert 32) + (last-check-time time-frame :offset-assert 40) + (last-collide-result collide-tri-result :inline :offset-assert 48) + (collide-with uint32 :offset 144) + ) + :method-count-assert 14 + :size-assert #x94 + :flag-assert #xe00000094 + (:methods + (los-control-method-9 () none 9) + (los-control-method-10 () none 10) + (los-control-method-11 () none 11) + (los-control-method-12 () none 12) + (los-control-method-13 () none 13) + ) + ) + +;; definition for method 3 of type los-control +(defmethod inspect los-control ((obj los-control)) + (when (not obj) + (set! obj obj) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" obj 'los-control) + (format #t "~1Tsrc-proc: ~D~%" (-> obj src-proc)) + (format #t "~1Tdst-proc: ~D~%" (-> obj dst-proc)) + (format #t "~1Thave-los: ~D~%" (-> obj have-los)) + (format #t "~1Thave-no-los: ~D~%" (-> obj have-no-los)) + (format #t "~1Tcheck-interval: ~D~%" (-> obj check-interval)) + (format #t "~1Tlast-check-time: ~D~%" (-> obj last-check-time)) + (format #t "~1Tlast-collide-result: #~%" (-> obj last-collide-result)) + (format #t "~1Tcollide-with: ~D~%" (-> obj collide-with)) + (label cfg-4) + obj + ) + +;; failed to figure out what this is: +0