mirror of
https://github.com/open-goal/jak-project
synced 2026-06-17 23:21:41 -04:00
[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:
+5
-5
@@ -294,8 +294,8 @@
|
||||
(case item
|
||||
(('life)
|
||||
(if (>= amount 0.0)
|
||||
(set! (-> obj life) (seek (-> obj life) (-> obj life-max) amount))
|
||||
(set! (-> obj life) (seek (-> obj life) 0.0 (- amount)))
|
||||
(seek! (-> obj life) (-> obj life-max) amount)
|
||||
(seek! (-> obj life) 0.0 (- amount))
|
||||
)
|
||||
(-> obj life)
|
||||
)
|
||||
@@ -466,10 +466,10 @@
|
||||
)
|
||||
)
|
||||
(set! (-> obj health-pickup-time) (-> *display* base-frame-counter))
|
||||
(set! (-> obj health) (seek (-> obj health) (-> obj health-max) amount))
|
||||
(seek! (-> obj health) (-> obj health-max) amount)
|
||||
)
|
||||
(else
|
||||
(set! (-> obj health) (seek (-> obj health) 0.0 (- amount)))
|
||||
(seek! (-> obj health) 0.0 (- amount))
|
||||
(if (>= amount -10.0)
|
||||
(pickup-collectable! obj (pickup-type eco-pill) 0.0 source-handle)
|
||||
)
|
||||
@@ -491,7 +491,7 @@
|
||||
(((pickup-type eco-pill))
|
||||
(when (>= amount 0.0)
|
||||
(set! (-> obj eco-pill-pickup-time) (-> *display* base-frame-counter))
|
||||
(set! (-> obj eco-pill) (seek (-> obj eco-pill) (-> obj eco-pill-max) amount))
|
||||
(seek! (-> obj eco-pill) (-> obj eco-pill-max) amount)
|
||||
(when (and (>= (-> obj eco-pill) (-> *FACT-bank* eco-pill-max-default)) (< (-> obj health) (-> obj health-max)))
|
||||
(set! (-> obj eco-pill) (- (-> obj eco-pill) (-> *FACT-bank* eco-pill-max-default)))
|
||||
(pickup-collectable!
|
||||
|
||||
+1
-1
@@ -1645,7 +1645,7 @@ auto-save-post
|
||||
(else
|
||||
(case (-> self mode)
|
||||
(('auto-save)
|
||||
(set! (-> *game-info* auto-save-count) (seekl (-> *game-info* auto-save-count) 0 1))
|
||||
(seekl! (-> *game-info* auto-save-count) 0 1)
|
||||
)
|
||||
)
|
||||
(go-virtual error (-> self result))
|
||||
|
||||
+1
-3
@@ -650,9 +650,7 @@
|
||||
)
|
||||
(set! f0-8 (* 0.75 f0-8))
|
||||
)
|
||||
(set! (-> self control unknown-float141)
|
||||
(seek (-> self control unknown-float141) f0-8 (* 100.0 (-> *display* seconds-per-frame)))
|
||||
)
|
||||
(seek! (-> self control unknown-float141) f0-8 (* 100.0 (-> *display* seconds-per-frame)))
|
||||
)
|
||||
(let ((f30-0 (-> self control unknown-float141))
|
||||
(f0-13 (lerp-scale -0.3 0.3 (-> self control unknown-float01) 0.0 81920.0))
|
||||
|
||||
+3
-3
@@ -739,14 +739,14 @@
|
||||
(dummy-28 self)
|
||||
((-> self update-velocity) self)
|
||||
(when (logtest? (-> self options) 2)
|
||||
(set! (-> self tween) (seek (-> self tween) 1.0 (* 0.5 (-> *display* seconds-per-frame))))
|
||||
(seek! (-> self tween) 1.0 (* 0.5 (-> *display* seconds-per-frame)))
|
||||
(let ((f0-6 (vector-vector-distance (-> self root-override trans) (-> self target))))
|
||||
(cond
|
||||
((< f0-6 20480.0)
|
||||
(set! (-> self tween) (seek (-> self tween) 1.0 (* 3.0 (-> *display* seconds-per-frame))))
|
||||
(seek! (-> self tween) 1.0 (* 3.0 (-> *display* seconds-per-frame)))
|
||||
)
|
||||
((< f0-6 40960.0)
|
||||
(set! (-> self tween) (seek (-> self tween) 1.0 (-> *display* seconds-per-frame)))
|
||||
(seek! (-> self tween) 1.0 (-> *display* seconds-per-frame))
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
+5
-15
@@ -269,27 +269,19 @@
|
||||
(let ((s5-1 (-> obj target)))
|
||||
(when *sound-player-enable*
|
||||
(when (!= (-> gp-0 sfx-volume) (-> s5-1 sfx-volume))
|
||||
(set! (-> gp-0 sfx-volume)
|
||||
(seek (-> gp-0 sfx-volume) (-> s5-1 sfx-volume) (* 100.0 (-> *display* seconds-per-frame)))
|
||||
)
|
||||
(seek! (-> gp-0 sfx-volume) (-> s5-1 sfx-volume) (* 100.0 (-> *display* seconds-per-frame)))
|
||||
(sound-set-volume (the-as uint 1) (-> gp-0 sfx-volume))
|
||||
)
|
||||
(when (!= (-> gp-0 music-volume) (-> s5-1 music-volume))
|
||||
(set! (-> gp-0 music-volume)
|
||||
(seek (-> gp-0 music-volume) (-> s5-1 music-volume) (* 100.0 (-> *display* seconds-per-frame)))
|
||||
)
|
||||
(seek! (-> gp-0 music-volume) (-> s5-1 music-volume) (* 100.0 (-> *display* seconds-per-frame)))
|
||||
(sound-set-volume (the-as uint 2) (-> gp-0 music-volume))
|
||||
)
|
||||
(when (!= (-> gp-0 dialog-volume) (-> s5-1 dialog-volume))
|
||||
(set! (-> gp-0 dialog-volume)
|
||||
(seek (-> gp-0 dialog-volume) (-> s5-1 dialog-volume) (* 100.0 (-> *display* seconds-per-frame)))
|
||||
)
|
||||
(seek! (-> gp-0 dialog-volume) (-> s5-1 dialog-volume) (* 100.0 (-> *display* seconds-per-frame)))
|
||||
(sound-set-volume (the-as uint 4) (-> gp-0 dialog-volume))
|
||||
)
|
||||
(when (!= (-> gp-0 ambient-volume) (-> s5-1 ambient-volume))
|
||||
(set! (-> gp-0 ambient-volume)
|
||||
(seek (-> gp-0 ambient-volume) (-> s5-1 ambient-volume) (* 100.0 (-> *display* seconds-per-frame)))
|
||||
)
|
||||
(seek! (-> gp-0 ambient-volume) (-> s5-1 ambient-volume) (* 100.0 (-> *display* seconds-per-frame)))
|
||||
(sound-set-volume (the-as uint 16) (-> gp-0 ambient-volume))
|
||||
)
|
||||
)
|
||||
@@ -342,9 +334,7 @@
|
||||
(set! (-> gp-0 bg-r) (-> s5-1 bg-r))
|
||||
(set! (-> gp-0 bg-g) (-> s5-1 bg-g))
|
||||
(set! (-> gp-0 bg-b) (-> s5-1 bg-b))
|
||||
(set! (-> gp-0 bg-a)
|
||||
(seek (-> gp-0 bg-a) (-> s5-1 bg-a) (* (-> s5-1 bg-a-speed) (-> *display* seconds-per-frame)))
|
||||
)
|
||||
(seek! (-> gp-0 bg-a) (-> s5-1 bg-a) (* (-> s5-1 bg-a-speed) (-> *display* seconds-per-frame)))
|
||||
)
|
||||
(let ((v1-60 (-> *display* frames (-> *display* on-screen) display))
|
||||
(f0-39 (-> gp-0 bg-a))
|
||||
|
||||
+2
-4
@@ -329,9 +329,7 @@
|
||||
(defun increment-success-for-hint ((arg0 game-text-id))
|
||||
(let ((gp-0 (find-hint-control-index arg0)))
|
||||
(when (>= gp-0 0)
|
||||
(set! (-> *game-info* hint-control gp-0 num-success)
|
||||
(seekl (-> *game-info* hint-control gp-0 num-success) 127 1)
|
||||
)
|
||||
(seekl! (-> *game-info* hint-control gp-0 num-success) 127 1)
|
||||
0
|
||||
)
|
||||
)
|
||||
@@ -398,7 +396,7 @@
|
||||
)
|
||||
(cond
|
||||
(v1-21
|
||||
(set! (-> gp-1 num-attempts) (seekl (-> gp-1 num-attempts) 127 1))
|
||||
(seekl! (-> gp-1 num-attempts) 127 1)
|
||||
(and (>= (-> gp-1 num-attempts) (-> gp-1 num-attempts-before-playing))
|
||||
(or (= (-> gp-1 num-success-before-killing) -1)
|
||||
(< (-> gp-1 num-success) (-> gp-1 num-success-before-killing))
|
||||
|
||||
+2
-2
@@ -104,8 +104,8 @@
|
||||
)
|
||||
)
|
||||
(if (< 0.0 f0-8)
|
||||
(set! (-> self twist) (seek (-> self twist) -0.4 (* 0.3 (-> *display* seconds-per-frame))))
|
||||
(set! (-> self twist) (seek (-> self twist) 0.4 (* 0.3 (-> *display* seconds-per-frame))))
|
||||
(seek! (-> self twist) -0.4 (* 0.3 (-> *display* seconds-per-frame)))
|
||||
(seek! (-> self twist) 0.4 (* 0.3 (-> *display* seconds-per-frame)))
|
||||
)
|
||||
)
|
||||
(let ((a1-9 (new 'stack-no-clear 'event-message-block)))
|
||||
|
||||
Reference in New Issue
Block a user