[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
+12
View File
@@ -256,6 +256,18 @@ This is the main vector type."
#f
)
(defmacro as-type (this type)
"If this is the specified type, return this cast to that type. Otherwise, return #f."
(with-gensyms (obj)
`(the ,type (let ((,obj ,this))
(if (type? ,obj ,type)
,obj
)
)
)
)
)
(defun find-parent-method ((typ type) (method-id int))
"Find the closest parent type that has a different implementation of the given method and return that method.
If it does not exist, return `nothing` function.