[decompiler] detect seek! and seekl! macros (#1317)

* detect `seek!` and `seekl!`

* fancy struct instead of pair mess

* fixes

* i think this was wrong?

* update refs

* update source

* More logical branching

* even better branching
This commit is contained in:
ManDude
2022-04-18 20:01:44 +01:00
committed by GitHub
parent cbc6987351
commit 66e395d547
109 changed files with 952 additions and 1398 deletions
+2 -2
View File
@@ -767,13 +767,13 @@
)
(cond
((>= (- (-> *display* base-frame-counter) (-> self start-spin-time)) (-> self slow-down))
(set! (-> self speed-u) (seek (-> self speed-u) 0.0 (* 0.5555556 (-> *display* seconds-per-frame))))
(seek! (-> self speed-u) 0.0 (* 0.5555556 (-> *display* seconds-per-frame)))
(if (= (-> self speed-u) 0.0)
(go bully-stop-spinning)
)
)
(else
(set! (-> self speed-u) (seek (-> self speed-u) 1.0 (* 0.5555556 (-> *display* seconds-per-frame))))
(seek! (-> self speed-u) 1.0 (* 0.5555556 (-> *display* seconds-per-frame)))
)
)
(set! (-> self spin-vel) (* 196608.0 (-> self speed-u)))
+1 -1
View File
@@ -745,7 +745,7 @@
)
:trans
(behavior ()
(set! (-> self root scale y) (seek (-> self root scale y) 0.8 (* 0.667 (-> *display* seconds-per-frame))))
(seek! (-> self root scale y) 0.8 (* 0.667 (-> *display* seconds-per-frame)))
(when *target*
(let ((f0-4 (-> (target-pos 0) y)))
(when (zero? (logand (-> *target* state-flags) 256))
+4 -4
View File
@@ -1095,7 +1095,7 @@
(joint-control-channel-group! a0-32 (the-as art-joint-anim (-> self draw art-group data 6)) num-func-seek!)
)
(until (ja-done? 0)
(set! (-> self wave-scale) (seek (-> self wave-scale) 1.0 0.0016666667))
(seek! (-> self wave-scale) 1.0 0.0016666667)
(dummy-20 self (-> self wave-scale))
(if (and (-> self move-player?) (>= (ja-aframe-num 0) 310.0))
(set! (-> self move-player?) #f)
@@ -1130,7 +1130,7 @@
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.5))
(set! (-> self wave-scale) (seek (-> self wave-scale) 1.0 0.0016666667))
(seek! (-> self wave-scale) 1.0 0.0016666667)
(dummy-20 self (-> self wave-scale))
(suspend)
)
@@ -1139,7 +1139,7 @@
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 2.5))
(set! (-> self wave-scale) (seek (-> self wave-scale) 1.0 0.0016666667))
(seek! (-> self wave-scale) 1.0 0.0016666667)
(dummy-20 self (-> self wave-scale))
(suspend)
)
@@ -1264,7 +1264,7 @@
(if (not (-> self move-player?))
(rider-trans)
)
(set! (-> self wave-scale) (seek (-> self wave-scale) 0.0 0.0016666667))
(seek! (-> self wave-scale) 0.0 0.0016666667)
(dummy-20 self (-> self wave-scale))
(none)
)
+2 -2
View File
@@ -141,7 +141,7 @@
(cond
((< (get-current-phase (-> self sync)) (-> self deadly-time))
(when (!= (-> self deadly-fade) 1.0)
(set! (-> self deadly-fade) (seek (-> self deadly-fade) 1.0 (* 8.0 (-> *display* seconds-per-frame))))
(seek! (-> self deadly-fade) 1.0 (* 8.0 (-> *display* seconds-per-frame)))
(let ((f30-0 (-> self deadly-fade)))
(vector-lerp! (-> self draw color-mult) (-> self safe-color-mult) (-> self deadly-color-mult) f30-0)
(vector-lerp!
@@ -166,7 +166,7 @@
(else
(set! (-> self flags) (logand -524289 (-> self flags)))
(when (!= (-> self deadly-fade) 0.0)
(set! (-> self deadly-fade) (seek (-> self deadly-fade) 0.0 (* 8.0 (-> *display* seconds-per-frame))))
(seek! (-> self deadly-fade) 0.0 (* 8.0 (-> *display* seconds-per-frame)))
(let ((f30-1 (-> self deadly-fade)))
(vector-lerp! (-> self draw color-mult) (-> self safe-color-mult) (-> self deadly-color-mult) f30-1)
(vector-lerp!
+12 -15
View File
@@ -180,15 +180,14 @@
;; definition for function tube-sounds
(defbehavior tube-sounds target ()
(set! (-> self tube tube-sound-vol) (seek
(-> self tube tube-sound-vol)
(if (logtest? (-> self control status) 1)
100.0
0.0
)
(* 200.0 (-> *display* seconds-per-frame))
)
(seek!
(-> self tube tube-sound-vol)
(if (logtest? (-> self control status) 1)
100.0
0.0
)
(* 200.0 (-> *display* seconds-per-frame))
)
(let ((f30-0 (-> self tube tube-sound-vol))
(f0-5 (lerp-scale -0.3 0.3 (-> self control unknown-float01) 0.0 122880.0))
)
@@ -727,13 +726,11 @@
(go target-tube)
)
(mod-var-jump #t #t (cpad-hold? (-> self control unknown-cpad-info00 number) x) (-> self control transv))
(set! (-> self control unknown-float122)
(seek
(-> self control unknown-float122)
(fmax 0.0 (fmin 1.0 (* 0.00012207031 (+ -2048.0 (-> self control unknown-float01)))))
(-> *display* seconds-per-frame)
)
)
(seek!
(-> self control unknown-float122)
(fmax 0.0 (fmin 1.0 (* 0.00012207031 (+ -2048.0 (-> self control unknown-float01)))))
(-> *display* seconds-per-frame)
)
(none)
)
:code
+2 -2
View File
@@ -93,7 +93,7 @@
(restore-collide-with-as (-> self root-override))
(set! (-> self state-time) (-> *display* base-frame-counter))
(while #t
(set! (-> self extended-amount) (seek (-> self extended-amount) 1.0 (* 2.5 (-> *display* seconds-per-frame))))
(seek! (-> self extended-amount) 1.0 (* 2.5 (-> *display* seconds-per-frame)))
(let ((gp-0 (new 'stack-no-clear 'vector)))
(vector-lerp! gp-0 (-> self in-trans) (-> self out-trans) (-> self extended-amount))
(move-to-point! (-> self root-override) gp-0)
@@ -155,7 +155,7 @@
(behavior ()
(set! (-> self state-time) (-> *display* base-frame-counter))
(while #t
(set! (-> self extended-amount) (seek (-> self extended-amount) 0.0 (* 2.5 (-> *display* seconds-per-frame))))
(seek! (-> self extended-amount) 0.0 (* 2.5 (-> *display* seconds-per-frame)))
(let ((gp-0 (new 'stack-no-clear 'vector)))
(vector-lerp! gp-0 (-> self in-trans) (-> self out-trans) (-> self extended-amount))
(move-to-point! (-> self root-override) gp-0)