[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
+3 -9
View File
@@ -920,15 +920,9 @@
(set! *external-cam-mode* #f)
)
:trans (behavior ()
(let ((gp-0 *collision-edit-info*)
(s5-0 (method-of-type collision-edit-info draw-menu))
(s4-0 (handle->process (-> self proc)))
)
(s5-0 gp-0 (the-as process-drawable (if (type? s4-0 process-drawable)
s4-0
)
)
)
(draw-menu
*collision-edit-info*
(the-as process-drawable (as-type (handle->process (-> self proc)) process-drawable))
)
)
:code sleep-code
+2 -14
View File
@@ -1021,13 +1021,7 @@
(draw-string "..." s1-0 s5-0)
(set! arg4 (and (zero? arg3) arg4))
(when arg4
(let ((v1-18 s5-0)
(a1-7 20)
(a0-10 379)
)
(set! (-> v1-18 origin x) (the float a1-7))
(set! (-> v1-18 origin y) (the float a0-10))
)
(set-origin! s5-0 20 379)
(draw-string-adv (-> arg0 name) s1-0 s5-0)
(draw-string-adv ":" s1-0 s5-0)
(draw-string (-> arg0 display-str) s1-0 s5-0)
@@ -1115,13 +1109,7 @@
(font-color menu)
)
)
(let ((v1-20 (-> arg0 context font))
(a1-5 s3-1)
(a0-15 s2-1)
)
(set! (-> v1-20 origin x) (the float a1-5))
(set! (-> v1-20 origin y) (the float a0-15))
)
(set-origin! (-> arg0 context font) s3-1 s2-1)
(set! sv-16 (-> *display* frames (-> *display* on-screen) debug-buf))
(set! sv-32 (-> sv-16 base))
(set-context! *font-work* (-> arg0 context font))