[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
+1 -1
View File
@@ -1964,7 +1964,7 @@ nav-enemy-default-event-handler
(defbehavior nav-enemy-jump-land-post nav-enemy ()
(TODO-RENAME-9 (-> self align))
(dummy-11 (-> self nav) (-> self nav target-pos))
(set! (-> self target-speed) (seek (-> self target-speed) (-> self nav-info run-travel-speed) 2048.0))
(seek! (-> self target-speed) (-> self nav-info run-travel-speed) 2048.0)
(set! (-> self momentum-speed) (-> self target-speed))
(let* ((f0-7
(fmin
+6 -9
View File
@@ -198,9 +198,7 @@
)
(set! s3-0 #f)
)
(set! (-> obj basetrans y)
(seek (-> obj basetrans y) (+ (-> obj root-pos) f30-0) (* 40960.0 (-> *display* seconds-per-frame)))
)
(seek! (-> obj basetrans y) (+ (-> obj root-pos) f30-0) (* 40960.0 (-> *display* seconds-per-frame)))
(if (not (= (-> obj basetrans y) (+ (-> obj root-pos) f30-0)))
(set! s5-1 #f)
)
@@ -209,12 +207,11 @@
(set! (-> s4-1 quad)
(-> (the-as process-drawable (handle->process (-> obj money-list s2-0))) root trans quad)
)
(set! (-> obj money-pos-actual s2-0) (seek
(-> obj money-pos-actual s2-0)
(-> obj money-pos-list s2-0)
(* 40960.0 (-> *display* seconds-per-frame))
)
)
(seek!
(-> obj money-pos-actual s2-0)
(-> obj money-pos-list s2-0)
(* 40960.0 (-> *display* seconds-per-frame))
)
(if (not (= (-> obj money-pos-actual s2-0) (-> obj money-pos-list s2-0)))
(set! s5-1 #f)
)
+1 -7
View File
@@ -269,9 +269,7 @@
:trans
(behavior ()
(when (!= (-> self sync-offset-faux) (-> self sync-offset-dest))
(set! (-> self sync-offset-faux)
(seek (-> self sync-offset-faux) (-> self sync-offset-dest) (* 12.0 (-> *display* seconds-per-frame)))
)
(seek! (-> self sync-offset-faux) (-> self sync-offset-dest) (* 12.0 (-> *display* seconds-per-frame)))
(let* ((f0-7 (the float (-> self sync period)))
(f1-3 (+ (-> self sync-offset-faux) f0-7))
)
@@ -361,7 +359,3 @@
)
(none)
)
+9 -17
View File
@@ -336,10 +336,8 @@ nav-enemy-default-event-handler
(set! (-> a0-7 param 0) (-> self anim-speed))
(joint-control-channel-group-eval! a0-7 (the-as art-joint-anim #f) num-func-loop!)
)
(set! (-> self anim-speed) (seek (-> self anim-speed) 1.0 0.05))
(set! (-> self collide-info trans y)
(seek (-> self collide-info trans y) (-> self y-min) (* (-> self y-speed) (-> *display* seconds-per-frame)))
)
(seek! (-> self anim-speed) 1.0 0.05)
(seek! (-> self collide-info trans y) (-> self y-min) (* (-> self y-speed) (-> *display* seconds-per-frame)))
(dummy-10 (-> self water))
(ja-post)
(suspend)
@@ -390,12 +388,10 @@ nav-enemy-default-event-handler
)
)
(until (ja-done? 0)
(set! (-> self anim-speed) (seek (-> self anim-speed) 1.0 0.05))
(seek! (-> self anim-speed) 1.0 0.05)
(cond
((-> self enable-patrol)
(set! (-> self collide-info trans y)
(seek (-> self collide-info trans y) (-> self y-max) (* (-> self y-speed) (-> *display* seconds-per-frame)))
)
(seek! (-> self collide-info trans y) (-> self y-max) (* (-> self y-speed) (-> *display* seconds-per-frame)))
)
(else
(if (< (- (-> self collide-info trans y) (-> self y-min)) 409.6)
@@ -646,7 +642,7 @@ nav-enemy-default-event-handler
)
)
(until (ja-done? 0)
(set! (-> self anim-speed) (seek (-> self anim-speed) 1.0 (* 3.0 (-> *display* seconds-per-frame))))
(seek! (-> self anim-speed) 1.0 (* 3.0 (-> *display* seconds-per-frame)))
(suspend)
(let ((a0-5 (-> self skel root-channel 0)))
(set! (-> a0-5 param 0) (the float (+ (-> a0-5 frame-group data 0 length) -1)))
@@ -709,10 +705,8 @@ nav-enemy-default-event-handler
)
)
(until (ja-done? 0)
(set! (-> self anim-speed) (seek (-> self anim-speed) 1.0 0.05))
(set! (-> self collide-info trans y)
(seek (-> self collide-info trans y) (-> self y-max) (* (-> self y-speed) (-> *display* seconds-per-frame)))
)
(seek! (-> self anim-speed) 1.0 0.05)
(seek! (-> self collide-info trans y) (-> self y-max) (* (-> self y-speed) (-> *display* seconds-per-frame)))
(suspend)
(let ((a0-4 (-> self skel root-channel 0)))
(set! (-> a0-4 param 0) (the float (+ (-> a0-4 frame-group data 0 length) -1)))
@@ -760,10 +754,8 @@ nav-enemy-default-event-handler
(set! (-> a0-7 param 0) (-> self anim-speed))
(joint-control-channel-group-eval! a0-7 (the-as art-joint-anim #f) num-func-loop!)
)
(set! (-> self anim-speed) (seek (-> self anim-speed) 1.0 0.05))
(set! (-> self collide-info trans y)
(seek (-> self collide-info trans y) (-> self y-max) (* (-> self y-speed) (-> *display* seconds-per-frame)))
)
(seek! (-> self anim-speed) 1.0 0.05)
(seek! (-> self collide-info trans y) (-> self y-max) (* (-> self y-speed) (-> *display* seconds-per-frame)))
(suspend)
)
(none)