support non-virtual gos in decompiler (#707)

This commit is contained in:
water111
2021-07-17 18:07:21 -04:00
committed by GitHub
parent 0ed587cba9
commit b70fcb2f7a
48 changed files with 824 additions and 733 deletions
@@ -3,7 +3,7 @@
;; definition for method 9 of type drawable-tree-collide-fragment
(defmethod
dummy-9
login
drawable-tree-collide-fragment
((obj drawable-tree-collide-fragment))
obj
@@ -11,12 +11,12 @@
;; definition for method 10 of type drawable-tree-collide-fragment
(defmethod
dummy-10
draw
drawable-tree-collide-fragment
((obj drawable-tree-collide-fragment) (arg0 drawable) (arg1 display-frame))
(when *display-render-collision*
(dotimes (s4-0 (-> obj length))
(dummy-10 (-> obj data s4-0) (-> obj data s4-0) arg1)
(draw (-> obj data s4-0) (-> obj data s4-0) arg1)
)
)
0
@@ -102,7 +102,7 @@
;; definition for method 9 of type drawable-inline-array-collide-fragment
(defmethod
dummy-9
login
drawable-inline-array-collide-fragment
((obj drawable-inline-array-collide-fragment))
obj
@@ -110,7 +110,7 @@
;; definition for method 10 of type collide-fragment
(defmethod
dummy-10
draw
collide-fragment
((obj collide-fragment) (arg0 drawable) (arg1 display-frame))
0
@@ -118,7 +118,7 @@
;; definition for method 10 of type drawable-inline-array-collide-fragment
(defmethod
dummy-10
draw
drawable-inline-array-collide-fragment
((obj drawable-inline-array-collide-fragment)
(arg0 drawable)
@@ -127,7 +127,7 @@
(dotimes (s4-0 (-> obj length))
(let ((s3-0 (-> obj data s4-0)))
(if (sphere-cull (-> s3-0 bsphere))
(dummy-10 s3-0 s3-0 arg1)
(draw s3-0 s3-0 arg1)
)
)
)
@@ -3,10 +3,10 @@
;; definition of type collide-tri-result
(deftype collide-tri-result (structure)
((vertex vector 3 :inline :offset-assert 0)
(intersect vector :inline :offset-assert 48)
(normal vector :inline :offset-assert 64)
(pat uint32 :offset-assert 80)
((vertex vector 3 :inline :offset-assert 0)
(intersect vector :inline :offset-assert 48)
(normal vector :inline :offset-assert 64)
(pat pat-surface :offset-assert 80)
)
:method-count-assert 9
:size-assert #x54
@@ -25,9 +25,9 @@
;; definition of type collide-mesh-tri
(deftype collide-mesh-tri (structure)
((vertex-index uint8 3 :offset-assert 0)
(unused uint8 :offset-assert 3)
(pat uint32 :offset-assert 4)
((vertex-index uint8 3 :offset-assert 0)
(unused uint8 :offset-assert 3)
(pat pat-surface :offset-assert 4)
)
:pack-me
:method-count-assert 9
@@ -117,7 +117,7 @@
((vertex vector 3 :inline :offset-assert 0)
(normal vector :inline :offset-assert 48)
(bbox4w bounding-box4w :inline :offset-assert 64)
(pat uint32 :offset 60)
(pat pat-surface :offset 60)
)
:method-count-assert 9
:size-assert #x60
@@ -283,7 +283,7 @@
;; definition of type collide-shape-prim-sphere
(deftype collide-shape-prim-sphere (collide-shape-prim)
((pat uint32 :offset-assert 72)
((pat pat-surface :offset-assert 72)
)
:method-count-assert 28
:size-assert #x4c
@@ -389,17 +389,17 @@
;; definition of type collide-shape
(deftype collide-shape (trsqv)
((process process :offset-assert 140)
(max-iteration-count uint8 :offset-assert 144)
(nav-flags uint8 :offset-assert 145)
(pad-byte uint8 2 :offset-assert 146)
(pat-ignore-mask uint32 :offset-assert 148)
(event-self basic :offset-assert 152)
(event-other basic :offset-assert 156)
(root-prim basic :offset-assert 160)
(riders basic :offset-assert 164)
(backup-collide-as uint64 :offset-assert 168)
(backup-collide-with uint64 :offset-assert 176)
((process process :offset-assert 140)
(max-iteration-count uint8 :offset-assert 144)
(nav-flags uint8 :offset-assert 145)
(pad-byte uint8 2 :offset-assert 146)
(pat-ignore-mask pat-surface :offset-assert 148)
(event-self basic :offset-assert 152)
(event-other basic :offset-assert 156)
(root-prim basic :offset-assert 160)
(riders basic :offset-assert 164)
(backup-collide-as uint64 :offset-assert 168)
(backup-collide-with uint64 :offset-assert 176)
)
:method-count-assert 56
:size-assert #xb8
@@ -472,31 +472,31 @@
;; definition of type collide-shape-moving
(deftype collide-shape-moving (collide-shape)
((rider-time uint64 :offset-assert 184)
(rider-last-move vector :inline :offset-assert 192)
(trans-old vector 3 :inline :offset-assert 208)
(poly-pat uint32 :offset-assert 256)
(cur-pat uint32 :offset-assert 260)
(ground-pat uint32 :offset-assert 264)
(status uint64 :offset-assert 272)
(old-status uint64 :offset-assert 280)
(prev-status uint64 :offset-assert 288)
(reaction-flag uint32 :offset-assert 296)
(reaction basic :offset-assert 300)
(no-reaction basic :offset-assert 304)
(local-normal vector :inline :offset-assert 320)
(surface-normal vector :inline :offset-assert 336)
(poly-normal vector :inline :offset-assert 352)
(ground-poly-normal vector :inline :offset-assert 368)
(ground-touch-point vector :inline :offset-assert 384)
(shadow-pos vector :inline :offset-assert 400)
(ground-impact-vel meters :offset-assert 416)
(surface-angle float :offset-assert 420)
(poly-angle float :offset-assert 424)
(touch-angle float :offset-assert 428)
(coverage float :offset-assert 432)
(dynam basic :offset-assert 436)
(surf basic :offset-assert 440)
((rider-time uint64 :offset-assert 184)
(rider-last-move vector :inline :offset-assert 192)
(trans-old vector 3 :inline :offset-assert 208)
(poly-pat pat-surface :offset-assert 256)
(cur-pat pat-surface :offset-assert 260)
(ground-pat pat-surface :offset-assert 264)
(status uint64 :offset-assert 272)
(old-status uint64 :offset-assert 280)
(prev-status uint64 :offset-assert 288)
(reaction-flag uint32 :offset-assert 296)
(reaction basic :offset-assert 300)
(no-reaction basic :offset-assert 304)
(local-normal vector :inline :offset-assert 320)
(surface-normal vector :inline :offset-assert 336)
(poly-normal vector :inline :offset-assert 352)
(ground-poly-normal vector :inline :offset-assert 368)
(ground-touch-point vector :inline :offset-assert 384)
(shadow-pos vector :inline :offset-assert 400)
(ground-impact-vel meters :offset-assert 416)
(surface-angle float :offset-assert 420)
(poly-angle float :offset-assert 424)
(touch-angle float :offset-assert 428)
(coverage float :offset-assert 432)
(dynam basic :offset-assert 436)
(surf basic :offset-assert 440)
)
:method-count-assert 65
:size-assert #x1bc
@@ -615,7 +615,7 @@
)
)
)
(set! (-> obj pat) (the-as uint 16))
(set! (-> obj pat) (new 'static 'pat-surface :mode (pat-mode obstacle)))
(set! (-> obj prim-core prim-type) -1)
(the-as collide-shape-prim-sphere obj)
)
@@ -728,10 +728,16 @@
(set! (-> obj root-prim) #f)
(case (-> proc type symbol)
(('camera)
(set! (-> obj pat-ignore-mask) (the-as uint 2))
(set!
(-> obj pat-ignore-mask)
(new 'static 'pat-surface :skip #x2 :nocamera #x1)
)
)
(else
(set! (-> obj pat-ignore-mask) (the-as uint 1))
(set!
(-> obj pat-ignore-mask)
(new 'static 'pat-surface :skip #x1 :noentity #x1)
)
)
)
(set! (-> obj trans w) 1.0)
@@ -3,16 +3,16 @@
;; definition of type collide-history
(deftype collide-history (structure)
((intersect vector :inline :offset-assert 0)
(trans vector :inline :offset-assert 16)
(transv vector :inline :offset-assert 32)
(transv-out vector :inline :offset-assert 48)
(local-normal vector :inline :offset-assert 64)
(surface-normal vector :inline :offset-assert 80)
(time uint64 :offset-assert 96)
(status uint64 :offset-assert 104)
(pat uint32 :offset-assert 112)
(reaction-flag uint32 :offset-assert 116)
((intersect vector :inline :offset-assert 0)
(trans vector :inline :offset-assert 16)
(transv vector :inline :offset-assert 32)
(transv-out vector :inline :offset-assert 48)
(local-normal vector :inline :offset-assert 64)
(surface-normal vector :inline :offset-assert 80)
(time uint64 :offset-assert 96)
(status uint64 :offset-assert 104)
(pat pat-surface :offset-assert 112)
(reaction-flag uint32 :offset-assert 116)
)
:method-count-assert 10
:size-assert #x78