mirror of
https://github.com/open-goal/jak-project
synced 2026-08-13 12:19:35 -04:00
[game] edge grab, small fixes, add zoomer (#1083)
* fix a few small things * fix tests * another fix * fix tests
This commit is contained in:
+9
-9
@@ -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
@@ -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
@@ -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))
|
||||
|
||||
@@ -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": {
|
||||
|
||||
Reference in New Issue
Block a user