[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
+6 -4
View File
@@ -21,8 +21,7 @@
)
(define
*FISHER-bank*
(define *FISHER-bank*
(new 'static 'fisher-bank :width (meters 3.3) :net-radius (meters 0.7) :max-caught #xc8 :max-missed 20)
)
@@ -847,7 +846,10 @@
(defmethod draw-npc-shadow fisher ((obj fisher))
(-> obj draw shadow-ctrl)
(cond
((and (-> obj draw shadow) (zero? (-> obj draw cur-lod)) (logtest? (-> obj draw status) (draw-status was-drawn)))
((and (-> obj draw shadow)
(zero? (-> obj draw cur-lod))
(logtest? (-> obj draw status) (draw-status was-drawn))
)
(let ((v1-9 (-> obj draw shadow-ctrl)))
(set! (-> v1-9 settings flags) (logand -33 (-> v1-9 settings flags)))
)
@@ -1591,7 +1593,7 @@
(let ((f1-14 (analog-input (the-as int (-> *cpad-list* cpads 0 leftx)) 128.0 32.0 110.0 28.0)))
(+! (-> self paddle-vel) (* f1-14 (-> *display* seconds-per-frame)))
)
(set! (-> self paddle-vel) (seek (-> self paddle-vel) 0.0 (* 15.0 (-> *display* seconds-per-frame))))
(seek! (-> self paddle-vel) 0.0 (* 15.0 (-> *display* seconds-per-frame)))
(set! (-> self paddle-vel) (fmax -2.0 (fmin 2.0 (-> self paddle-vel))))
(+! (-> self paddle) (* (-> self paddle-vel) (-> *display* seconds-per-frame)))
(set! (-> self paddle) (fmax 0.0 (fmin 1.0 (-> self paddle))))
+7 -21
View File
@@ -1342,15 +1342,9 @@
1
(the-as symbol (-> self base))
)
(set! (-> self y-offset)
(seek (-> self y-offset) (-> self height) (* 16384.0 (-> *display* seconds-per-frame)))
)
(set! (-> self turn)
(seek (-> self turn) (-> self target-turn) (* 7281.778 (-> *display* seconds-per-frame)))
)
(set! (-> self tilt)
(seek (-> self tilt) (-> self target-tilt) (* 7281.778 (-> *display* seconds-per-frame)))
)
(seek! (-> self y-offset) (-> self height) (* 16384.0 (-> *display* seconds-per-frame)))
(seek! (-> self turn) (-> self target-turn) (* 7281.778 (-> *display* seconds-per-frame)))
(seek! (-> self tilt) (-> self target-tilt) (* 7281.778 (-> *display* seconds-per-frame)))
(set! (-> self raised?) (< (+ -12288.0 (-> self height)) (-> self y-offset)))
(periscope-update-joints)
(suspend)
@@ -1371,9 +1365,7 @@
(set! (-> self raised?) #t)
(let ((f30-0 (+ -20480.0 (-> self height))))
(until (= (-> self y-offset-grips) f30-0)
(set! (-> self y-offset-grips)
(seek (-> self y-offset-grips) f30-0 (* 16384.0 (-> *display* seconds-per-frame)))
)
(seek! (-> self y-offset-grips) f30-0 (* 16384.0 (-> *display* seconds-per-frame)))
(periscope-update-joints)
(suspend)
)
@@ -1457,9 +1449,7 @@
1
(the-as symbol (-> self grips transform))
)
(set! (-> self y-offset-grips)
(seek (-> self y-offset-grips) f30-0 (* 16384.0 (-> *display* seconds-per-frame)))
)
(seek! (-> self y-offset-grips) f30-0 (* 16384.0 (-> *display* seconds-per-frame)))
(periscope-update-joints)
(suspend)
)
@@ -1479,9 +1469,7 @@
(when (and *target* (>= f30-1 (vector-vector-distance a0-10 (-> *target* control trans))))
(when (logtest? (-> *target* control status) 1)
(let ((f0-7 (fmax 4096.0 (fmin 12288.0 (+ (- 5120.0 (-> self base y)) (-> *target* control trans y))))))
(set! (-> self y-offset-grips)
(seek (-> self y-offset-grips) f0-7 (* 16384.0 (-> *display* seconds-per-frame)))
)
(seek! (-> self y-offset-grips) f0-7 (* 16384.0 (-> *display* seconds-per-frame)))
)
)
(vector-! gp-1 (target-pos 0) (-> self base))
@@ -1808,9 +1796,7 @@
(set! (-> self tilt) (-> self target-tilt))
(let ((f30-0 (+ -20480.0 (-> self height))))
(until (= (-> self y-offset-grips) f30-0)
(set! (-> self y-offset-grips)
(seek (-> self y-offset-grips) f30-0 (* 16384.0 (-> *display* seconds-per-frame)))
)
(seek! (-> self y-offset-grips) f30-0 (* 16384.0 (-> *display* seconds-per-frame)))
(periscope-update-joints)
(sound-play-by-name
(static-sound-name "site-moves")