[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
+13 -17
View File
@@ -744,12 +744,11 @@
(let ((f0-4 (- (vector-dot s4-0 (-> self dest-point)) (vector-dot s4-0 gp-0)))
(f2-2 (- (vector-dot (the-as vector s5-0) (-> self dest-point)) (vector-dot (the-as vector s5-0) gp-0)))
)
(set! (-> self rudder-control) (seek
(-> self rudder-control)
(fmax -1.0 (fmin 1.0 (/ f2-2 (fmax 4096.0 f0-4))))
(* 4.0 (-> *display* seconds-per-frame))
)
)
(seek!
(-> self rudder-control)
(fmax -1.0 (fmin 1.0 (/ f2-2 (fmax 4096.0 f0-4))))
(* 4.0 (-> *display* seconds-per-frame))
)
)
(let ((f0-12 0.0)
(f1-7 1.0)
@@ -763,22 +762,19 @@
)
(else
(let ((f0-14 (analog-input (the-as int (-> *cpad-list* cpads 1 leftx)) 128.0 48.0 110.0 -1.0)))
(set! (-> self rudder-control) (seek (-> self rudder-control) f0-14 (* 2.0 (-> *display* seconds-per-frame))))
(seek! (-> self rudder-control) f0-14 (* 2.0 (-> *display* seconds-per-frame)))
)
(if (cpad-hold? 1 x)
(set! (-> self throttle-control) (seek (-> self throttle-control) 1.0 (-> *display* seconds-per-frame)))
(set! (-> self throttle-control)
(seek (-> self throttle-control) 0.0 (* 0.25 (-> *display* seconds-per-frame)))
)
(seek! (-> self throttle-control) 1.0 (-> *display* seconds-per-frame))
(seek! (-> self throttle-control) 0.0 (* 0.25 (-> *display* seconds-per-frame)))
)
)
)
(set! (-> self engine-thrust) (seek
(-> self engine-thrust)
(* (-> self throttle-control) (-> *BALLOONLURKER-bank* max-engine-thrust))
(* 0.005 (-> *BALLOONLURKER-bank* max-engine-thrust))
)
)
(seek!
(-> self engine-thrust)
(* (-> self throttle-control) (-> *BALLOONLURKER-bank* max-engine-thrust))
(* 0.005 (-> *BALLOONLURKER-bank* max-engine-thrust))
)
(let ((f0-31 60.0)
(f1-14 1820.4445)
(f2-6 6735.6445)
+2 -6
View File
@@ -1991,18 +1991,14 @@
)
)
(let ((f30-1 -4096.0))
(set! (-> self float-height-offset)
(seek (-> self float-height-offset) f30-1 (* 2048.0 (-> *display* seconds-per-frame)))
)
(seek! (-> self float-height-offset) f30-1 (* 2048.0 (-> *display* seconds-per-frame)))
(if (= (-> self float-height-offset) f30-1)
(go-virtual rigid-body-platform-idle)
)
)
)
(else
(set! (-> self float-height-offset)
(seek (-> self float-height-offset) 4096.0 (* 2048.0 (-> *display* seconds-per-frame)))
)
(seek! (-> self float-height-offset) 4096.0 (* 2048.0 (-> *display* seconds-per-frame)))
)
)
(none)
+3 -9
View File
@@ -956,15 +956,9 @@
(-> self root-override transv)
(-> self root-override root-prim collide-with)
)
(set! (-> self root-override scale x)
(seek (-> self root-override scale x) 0.0 (* 0.01 (-> *display* time-adjust-ratio)))
)
(set! (-> self root-override scale y)
(seek (-> self root-override scale y) 0.0 (* 0.01 (-> *display* time-adjust-ratio)))
)
(set! (-> self root-override scale z)
(seek (-> self root-override scale z) 0.0 (* 0.01 (-> *display* time-adjust-ratio)))
)
(seek! (-> self root-override scale x) 0.0 (* 0.01 (-> *display* time-adjust-ratio)))
(seek! (-> self root-override scale y) 0.0 (* 0.01 (-> *display* time-adjust-ratio)))
(seek! (-> self root-override scale z) 0.0 (* 0.01 (-> *display* time-adjust-ratio)))
(when (< 0.05 (-> self root-override scale x))
(suspend)
(goto cfg-3)
+5 -10
View File
@@ -236,9 +236,7 @@ nav-enemy-default-event-handler
)
:trans
(behavior ()
(set! (-> self sprint-distance)
(seek (-> self sprint-distance) 61440.0 (* 8192.0 (-> *display* seconds-per-frame)))
)
(seek! (-> self sprint-distance) 61440.0 (* 8192.0 (-> *display* seconds-per-frame)))
(if (and *target* (>= 102400.0 (vector-vector-distance (-> self collide-info trans) (-> *target* control trans))))
(level-hint-spawn (game-text-id zero) (the-as string #f) (-> self entity) *entity-pool* (game-task none))
)
@@ -329,10 +327,9 @@ nav-enemy-default-event-handler
(go muse-idle)
)
)
((or (not *target*)
(< (-> self sprint-distance)
(vector-vector-distance (-> self collide-info trans) (-> *target* control trans))
)
((or (not *target*) (< (-> self sprint-distance)
(vector-vector-distance (-> self collide-info trans) (-> *target* control trans))
)
)
(set! (-> self target-speed) 40960.0)
)
@@ -340,9 +337,7 @@ nav-enemy-default-event-handler
(set! (-> self target-speed) 61440.0)
)
)
(set! (-> self sprint-distance)
(seek (-> self sprint-distance) 0.0 (* 4096.0 (-> *display* seconds-per-frame)))
)
(seek! (-> self sprint-distance) 0.0 (* 4096.0 (-> *display* seconds-per-frame)))
(muse-check-dest-point)
(none)
)
+2 -2
View File
@@ -722,13 +722,13 @@
((or (not *target*)
(< 163840.0 (vector-vector-distance (-> self root-override trans) (-> *target* control trans)))
)
(set! (-> self y-offset) (seek (-> self y-offset) -6553.6 (* 20480.0 (-> *display* seconds-per-frame))))
(seek! (-> self y-offset) -6553.6 (* 20480.0 (-> *display* seconds-per-frame)))
(if (= (-> self y-offset) -6553.6)
(go quicksandlurker-idle)
)
)
(else
(set! (-> self y-offset) (seek (-> self y-offset) 1228.8 (* 20480.0 (-> *display* seconds-per-frame))))
(seek! (-> self y-offset) 1228.8 (* 20480.0 (-> *display* seconds-per-frame)))
)
)
(none)