Files
jak-project/test/decompiler/reference/levels/common/rigid-body-h_REF.gc
T
water111 a6d5c4eda3 [decompiler] clean up vector detection and add vector float product detection (#638)
* change

* recognize vector float product and update tests
2021-06-27 17:24:35 -04:00

106 lines
4.1 KiB
Common Lisp

;;-*-Lisp-*-
(in-package goal)
;; definition of type rigid-body
(deftype rigid-body (structure)
((mass float :offset-assert 0)
(inv-mass float :offset-assert 4)
(lin-momentum-damping-factor float :offset-assert 8)
(ang-momentum-damping-factor float :offset-assert 12)
(inertial-tensor matrix :inline :offset-assert 16)
(inv-inertial-tensor matrix :inline :offset-assert 80)
(cm-offset-joint vector :inline :offset-assert 144)
(position vector :inline :offset-assert 160)
(rotation quaternion :inline :offset-assert 176)
(lin-momentum vector :inline :offset-assert 192)
(ang-momentum vector :inline :offset-assert 208)
(lin-velocity vector :inline :offset-assert 224)
(ang-velocity vector :inline :offset-assert 240)
(inv-i-world matrix :inline :offset-assert 256)
(matrix matrix :inline :offset-assert 320)
(force vector :inline :offset-assert 384)
(torque vector :inline :offset-assert 400)
(max-ang-momentum float :offset-assert 416)
(max-ang-velocity float :offset-assert 420)
)
:method-count-assert 23
:size-assert #x1a8
:flag-assert #x17000001a8
(:methods
(dummy-9 () none 9)
(dummy-10 () none 10)
(dummy-11 () none 11)
(dummy-12 () none 12)
(dummy-13 () none 13)
(dummy-14 () none 14)
(dummy-15 () none 15)
(dummy-16 () none 16)
(dummy-17 () none 17)
(dummy-18 () none 18)
(dummy-19 () none 19)
(dummy-20 () none 20)
(dummy-21 () none 21)
(dummy-22 () none 22)
)
)
;; definition for method 3 of type rigid-body
(defmethod inspect rigid-body ((obj rigid-body))
(format #t "[~8x] ~A~%" obj 'rigid-body)
(format #t "~Tmass: ~f~%" (-> obj mass))
(format #t "~Tinv-mass: ~f~%" (-> obj inv-mass))
(format
#t
"~Tlin-momentum-damping-factor: ~f~%"
(-> obj lin-momentum-damping-factor)
)
(format
#t
"~Tang-momentum-damping-factor: ~f~%"
(-> obj ang-momentum-damping-factor)
)
(format #t "~Tinertial-tensor: #<matrix @ #x~X>~%" (-> obj inertial-tensor))
(format
#t
"~Tinv-inertial-tensor: #<matrix @ #x~X>~%"
(-> obj inv-inertial-tensor)
)
(format #t "~Tcm-offset-joint: #<vector @ #x~X>~%" (-> obj cm-offset-joint))
(format #t "~Tposition: #<vector @ #x~X>~%" (-> obj position))
(format #t "~Trotation: #<quaternion @ #x~X>~%" (-> obj rotation))
(format #t "~Tlin-momentum: #<vector @ #x~X>~%" (-> obj lin-momentum))
(format #t "~Tang-momentum: #<vector @ #x~X>~%" (-> obj ang-momentum))
(format #t "~Tlin-velocity: #<vector @ #x~X>~%" (-> obj lin-velocity))
(format #t "~Tang-velocity: #<vector @ #x~X>~%" (-> obj ang-velocity))
(format #t "~Tinv-i-world: #<matrix @ #x~X>~%" (-> obj inv-i-world))
(format #t "~Tmatrix: #<matrix @ #x~X>~%" (-> obj matrix))
(format #t "~Tforce: #<vector @ #x~X>~%" (-> obj force))
(format #t "~Ttorque: #<vector @ #x~X>~%" (-> obj torque))
(format #t "~Tmax-ang-momentum: ~f~%" (-> obj max-ang-momentum))
(format #t "~Tmax-ang-velocity: ~f~%" (-> obj max-ang-velocity))
obj
)
;; definition of type rigid-body-control-point
(deftype rigid-body-control-point (structure)
((local-pos vector :inline :offset-assert 0)
(world-pos vector :inline :offset-assert 16)
(velocity vector :inline :offset-assert 32)
)
:method-count-assert 9
:size-assert #x30
:flag-assert #x900000030
)
;; definition for method 3 of type rigid-body-control-point
(defmethod inspect rigid-body-control-point ((obj rigid-body-control-point))
(format #t "[~8x] ~A~%" obj 'rigid-body-control-point)
(format #t "~Tlocal-pos: #<vector @ #x~X>~%" (-> obj local-pos))
(format #t "~Tworld-pos: #<vector @ #x~X>~%" (-> obj world-pos))
(format #t "~Tvelocity: #<vector @ #x~X>~%" (-> obj velocity))
obj
)
;; failed to figure out what this is:
0