jak3: fix ragdolls settling too early (#3775)

`none` methods strike again

Fixes #3774
This commit is contained in:
Hat Kid
2024-11-22 02:36:50 +01:00
committed by GitHub
parent 8f445bda3e
commit 2ff49b9905
9 changed files with 15 additions and 12 deletions
+5 -1
View File
@@ -294,7 +294,7 @@
(disable-for-duration (_type_ time-frame) none)
(ragdoll-proc-method-17 (_type_ ragdoll-edit-info) none)
(ragdoll-proc-method-18 (_type_ ragdoll-edit-info) none)
(ragdoll-proc-method-19 (_type_) none)
(ragdoll-proc-method-19 (_type_) symbol)
)
)
@@ -334,3 +334,7 @@
;; failed to figure out what this is:
0
+4 -2
View File
@@ -1616,13 +1616,11 @@
)
;; definition for method 19 of type ragdoll-proc
;; WARN: Return type mismatch symbol vs none.
(defmethod ragdoll-proc-method-19 ((this ragdoll-proc))
(if (nonzero? (-> this ragdoll))
(logtest? (-> this ragdoll ragdoll-flags) (ragdoll-flag rf2))
#t
)
(none)
)
;; failed to figure out what this is:
@@ -1748,3 +1746,7 @@
)
(go-virtual idle)
)
@@ -2164,7 +2164,7 @@
)
)
:code (behavior ()
(local-vars (v1-31 object) (v1-72 symbol))
(local-vars (v1-31 symbol) (v1-72 symbol))
(cond
((handle->process (-> self ragdoll-proc))
(ja-channel-push! 1 0)
+1 -1
View File
@@ -1790,7 +1790,7 @@
(defstate knocked-recover (grunt)
:virtual #t
:code (behavior ()
(local-vars (v1-49 object))
(local-vars (v1-49 symbol))
(ja-channel-push! 1 0)
(let ((gp-0 (-> (the-as ragdoll-proc (handle->process (-> self ragdoll-proc))) ragdoll)))
(when gp-0