[decompiler] as-type and font method support (#3855)

Add support for `as-type` macro, and detecting inline font methods. This
works in all three games but I've only updated jak 3's goal_src for now.
Eventually I will go back and work through the others, but I want to get
more decompiler features in first.


![image](https://github.com/user-attachments/assets/5c31bf85-97b4-437c-bc4b-dc054e60551e)

---------

Co-authored-by: water111 <awaterford1111445@gmail.com>
This commit is contained in:
water111
2025-02-01 21:23:11 -05:00
committed by GitHub
parent d5590ab638
commit 48cb9bb787
645 changed files with 5391 additions and 16694 deletions
+2 -12
View File
@@ -424,12 +424,7 @@
(dotimes (s4-0 (-> s5-0 art-group-array length))
(let ((s3-0 (-> s5-0 art-group-array s4-0)))
(dotimes (s2-0 (-> s3-0 length))
(let* ((s1-0 (-> s3-0 data s2-0))
(a0-3 (if (type? s1-0 merc-ctrl)
s1-0
)
)
)
(let ((a0-3 (the-as art-element (as-type (-> s3-0 data s2-0) merc-ctrl))))
(if a0-3
(merc-stats-display (the-as merc-ctrl a0-3))
)
@@ -453,12 +448,7 @@
(dotimes (s4-0 (-> s5-0 art-group-array length))
(let ((s3-0 (-> s5-0 art-group-array s4-0)))
(dotimes (s2-0 (-> s3-0 length))
(let* ((s1-0 (-> s3-0 data s2-0))
(v1-9 (if (type? s1-0 merc-ctrl)
s1-0
)
)
)
(let ((v1-9 (the-as art-element (as-type (-> s3-0 data s2-0) merc-ctrl))))
(if v1-9
(format #t "~30s: ~f~%" (-> v1-9 name) (-> (the-as merc-ctrl v1-9) header longest-edge))
)