[game] edge grab, small fixes, add zoomer (#1083)

* fix a few small things

* fix tests

* another fix

* fix tests
This commit is contained in:
water111
2022-01-17 14:36:29 -05:00
committed by GitHub
parent dc77c3ccd2
commit dc663d8a1f
27 changed files with 2442 additions and 187 deletions
+9 -9
View File
@@ -21,7 +21,7 @@
:flag-assert #xb00000144
(:methods
(dummy-9 (_type_) symbol 9)
(dummy-10 (_type_) symbol 10)
(debug-draw (_type_) symbol 10)
)
)
@@ -124,7 +124,7 @@
:flag-assert #xb00000810
(:methods
(debug-draw (_type_) object 9)
(dummy-10 (_type_ collide-edge-hold-item) none 10)
(add-to-list! (_type_ collide-edge-hold-item) none 10)
)
)
@@ -172,17 +172,17 @@
:size-assert #x2690
:flag-assert #x1400002690
(:methods
(dummy-9 (_type_ collide-edge-hold-list) symbol 9)
(search-for-edges (_type_ collide-edge-hold-list) symbol 9)
(debug-draw-edges (_type_) object 10)
(dummy-11 (_type_) none 11)
(debug-draw-tris (_type_) none 11)
(debug-draw-sphere (_type_) symbol 12)
(dummy-13 (_type_ collide-edge-hold-item vector) none 13)
(compute-center-point! (_type_ collide-edge-edge vector) float 13)
(dummy-14 (_type_ vector vector int) float 14)
(dummy-15 (_type_) none 15)
(find-grabbable-edges! (_type_) none 15)
(find-grabbable-tris! (_type_) none 16)
(dummy-17 (_type_) none 17)
(dummy-18 (_type_ collide-edge-hold-list edge-grab-info) none 18)
(dummy-19 (_type_ collide-edge-hold-item edge-grab-info) symbol 19)
(should-add-to-list? (_type_ collide-edge-hold-item collide-edge-edge) symbol 17)
(find-best-grab! (_type_ collide-edge-hold-list edge-grab-info) symbol 18)
(check-grab-for-collisions (_type_ collide-edge-hold-item edge-grab-info) symbol 19)
)
)
+67 -1
View File
@@ -921,7 +921,73 @@
)
;; definition for method 19 of type process-drawable
;; ERROR: function was not converted to expressions. Cannot decompile.
;; INFO: Return type mismatch int vs none.
;; WARN: Unsupported inline assembly instruction kind - [lw ra, return-from-thread(s7)]
;; WARN: Unsupported inline assembly instruction kind - [jr ra]
(defmethod dummy-19 process-drawable ((obj process-drawable))
(local-vars (s7-0 none) (ra-0 int))
(let ((gp-0 (-> obj skel)))
(label cfg-1)
(let ((s4-0 (-> gp-0 active-channels)))
(b! (logtest? (-> obj draw status) (draw-status drwf01)) cfg-27 :delay (empty-form))
(let ((s3-0 0))
(b! #t cfg-13 :delay (nop!))
(label cfg-3)
(let ((s2-0 (-> gp-0 channel s3-0)))
(let ((v1-7 (-> s2-0 command)))
(b! (!= v1-7 'stack) cfg-6 :delay (nop!))
(joint-control-channel-eval s2-0)
(b! (!= s4-0 (-> gp-0 active-channels)) cfg-1 :delay (nop!))
(b! #t cfg-12 :delay (nop!))
(label cfg-6)
(b! (!= v1-7 'stack1) cfg-9 :delay (nop!))
)
(joint-control-channel-eval s2-0)
(b! (!= s4-0 (-> gp-0 active-channels)) cfg-1 :delay (nop!))
(set! (-> gp-0 channel (+ s3-0 -1) frame-interp) (-> s2-0 frame-interp))
(b! #t cfg-12 :delay (nop!))
(label cfg-9)
(let ((s1-0 (-> s2-0 frame-group)))
(let ((v1-16 art-joint-anim))
(b! (= (-> s1-0 type) v1-16) cfg-11 :delay (empty-form))
)
(go process-drawable-art-error "joint-anim")
(.lw ra-0 return-from-thread s7-0)
(.jr ra-0)
(nop!)
0
(label cfg-11)
(set! (-> s2-0 frame-num) (fmax 0.0 (fmin (-> s2-0 frame-num) (the float (+ (-> s1-0 data 0 length) -1)))))
)
)
(label cfg-12)
(+! s3-0 1)
(label cfg-13)
(b! (< s3-0 s4-0) cfg-3)
)
(dotimes (v1-26 s4-0)
(set! (-> gp-0 channel v1-26 frame-interp) (fmax 0.0 (fmin 1.0 (-> gp-0 channel v1-26 frame-interp))))
)
(if (or (zero? s4-0) (not (-> gp-0 root-channel 0 frame-group)))
(logior! (-> obj draw status) (draw-status drwf02))
)
)
(if (logtest? (-> obj skel status) 72)
(merc-blend-shape obj)
)
(if (logtest? (-> obj skel status) 384)
(merc-eye-anim obj)
)
(label cfg-27)
(let ((a0-17 (-> gp-0 effect)))
(if a0-17
(TODO-RENAME-9 a0-17)
)
)
)
0
(none)
)
;; definition for function ja-post
;; INFO: Return type mismatch int vs none.
+2 -2
View File
@@ -1282,7 +1282,7 @@
(send-event self 'end-mode)
)
(if *display-edge-collision-marks*
(dummy-10 s5-0)
(debug-draw s5-0)
)
(set! (-> self control ground-pat) (the-as pat-surface (-> s5-0 edge-tri-pat)))
(vector-normalize!
@@ -1341,7 +1341,7 @@
(send-event self 'end-mode)
)
(if *display-edge-collision-marks*
(dummy-10 gp-0)
(debug-draw gp-0)
)
(vector-normalize!
(vector-! (-> self control unknown-vector100) (the-as vector (-> gp-0 world-vertex)) (-> gp-0 world-vertex 1))
+3 -1
View File
@@ -213,7 +213,9 @@
// not in use in PC port
"tie-near-init-engine",
"tie-near-end-buffer"
"tie-near-end-buffer",
"(method 19 process-drawable)"
],
"skip_compile_states": {