mirror of
https://github.com/open-goal/jak-project
synced 2026-08-12 20:03:14 -04:00
[decompiler] detect cpad-hold? and cpad-pressed? (#986)
* [decompiler] detect `cpad-hold?` and `cpad-pressed?` * cleanup cpad macro button lookup * better * fix
This commit is contained in:
+29
-48
@@ -1352,17 +1352,17 @@
|
||||
)
|
||||
((= v1-0 4)
|
||||
(cond
|
||||
((logtest? (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons up))
|
||||
((cpad-pressed? 0 up)
|
||||
(if (> (-> arg1 highlight-index) 0)
|
||||
(+! (-> arg1 highlight-index) -1)
|
||||
)
|
||||
)
|
||||
((logtest? (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons down))
|
||||
((cpad-pressed? 0 down)
|
||||
(if (< (-> arg1 highlight-index) (glst-num-elements (-> arg1 list)))
|
||||
(+! (-> arg1 highlight-index) 1)
|
||||
)
|
||||
)
|
||||
((logtest? (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons x))
|
||||
((cpad-pressed? 0 x)
|
||||
(let ((v1-38 (the-as object (-> arg1 list-owner))))
|
||||
(set! (-> arg1 current-index) (-> arg1 the-index))
|
||||
(set!
|
||||
@@ -1372,7 +1372,7 @@
|
||||
)
|
||||
(send-event (ppointer->process *anim-tester*) 'reset #f)
|
||||
)
|
||||
((logtest? (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons square))
|
||||
((cpad-pressed? 0 square)
|
||||
(logclear! (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons square))
|
||||
(logclear! (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons square))
|
||||
(set! (-> *debug-menu-context* is-hidden) #f)
|
||||
@@ -1492,7 +1492,7 @@
|
||||
)
|
||||
((= arg0 4)
|
||||
(cond
|
||||
((logtest? (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons up))
|
||||
((cpad-pressed? 0 up)
|
||||
(let ((v1-15 (-> arg1 list)))
|
||||
"is the list empty, #t = empty"
|
||||
(when (not (= (-> v1-15 tailpred) v1-15))
|
||||
@@ -1523,7 +1523,7 @@
|
||||
)
|
||||
(label cfg-25)
|
||||
)
|
||||
((logtest? (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons down))
|
||||
((cpad-pressed? 0 down)
|
||||
(let ((v1-21 (-> arg1 list)))
|
||||
"is the list empty, #t = empty"
|
||||
(when (not (= (-> v1-21 tailpred) v1-21))
|
||||
@@ -1558,7 +1558,7 @@
|
||||
)
|
||||
(else
|
||||
(cond
|
||||
((logtest? (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons x))
|
||||
((cpad-pressed? 0 x)
|
||||
(set! (-> arg1 current-index) (-> arg1 the-index))
|
||||
(set!
|
||||
(-> (the-as anim-test-obj v1-0) anim-index)
|
||||
@@ -1574,7 +1574,7 @@
|
||||
)
|
||||
(send-event (ppointer->process *anim-tester*) 'change-anim #f)
|
||||
)
|
||||
((logtest? (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons square))
|
||||
((cpad-pressed? 0 square)
|
||||
(logclear! (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons square))
|
||||
(logclear! (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons square))
|
||||
(set! (-> *debug-menu-context* is-hidden) #f)
|
||||
@@ -1700,7 +1700,7 @@
|
||||
)
|
||||
((= arg0 4)
|
||||
(cond
|
||||
((logtest? (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons up))
|
||||
((cpad-pressed? 0 up)
|
||||
(let ((v1-17 (-> arg1 list)))
|
||||
"is the list empty, #t = empty"
|
||||
(when (not (= (-> v1-17 tailpred) v1-17))
|
||||
@@ -1734,7 +1734,7 @@
|
||||
)
|
||||
(label cfg-28)
|
||||
)
|
||||
((logtest? (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons down))
|
||||
((cpad-pressed? 0 down)
|
||||
(let ((v1-23 (-> arg1 list)))
|
||||
"is the list empty, #t = empty"
|
||||
(when (not (= (-> v1-23 tailpred) v1-23))
|
||||
@@ -1768,7 +1768,7 @@
|
||||
)
|
||||
(label cfg-42)
|
||||
)
|
||||
((logtest? (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons x))
|
||||
((cpad-pressed? 0 x)
|
||||
(set! (-> arg1 current-index) (-> arg1 the-index))
|
||||
(set! (-> v1-0 seq-index) (-> arg1 current-index))
|
||||
(set! (-> v1-0 seq-hindex) (-> arg1 highlight-index))
|
||||
@@ -1776,7 +1776,7 @@
|
||||
(set! (-> *anim-tester* 0 edit-mode) 4)
|
||||
(send-event (ppointer->process *anim-tester*) 'change-anim #f)
|
||||
)
|
||||
((logtest? (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons square))
|
||||
((cpad-pressed? 0 square)
|
||||
(logclear! (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons square))
|
||||
(logclear! (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons square))
|
||||
(set! (-> *debug-menu-context* is-hidden) #f)
|
||||
@@ -1860,7 +1860,7 @@
|
||||
;; definition for function anim-tester-adjust-frame
|
||||
(defun anim-tester-adjust-frame ((arg0 float) (arg1 float))
|
||||
(cond
|
||||
((logtest? (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons down))
|
||||
((cpad-hold? 0 down)
|
||||
(cond
|
||||
((= arg0 (-> (new 'static 'array float 1 -2.0) 0))
|
||||
(set! arg0 (+ (-> (new 'static 'array float 1 -1.0) 0) arg1))
|
||||
@@ -1873,7 +1873,7 @@
|
||||
)
|
||||
)
|
||||
)
|
||||
((logtest? (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons up))
|
||||
((cpad-hold? 0 up)
|
||||
(cond
|
||||
((= arg0 (-> (new 'static 'array float 1 -1.0) 0))
|
||||
(set! arg0 (-> (new 'static 'array float 1 0.0) 0))
|
||||
@@ -2246,7 +2246,7 @@
|
||||
(cond
|
||||
((zero? v1-88)
|
||||
(cond
|
||||
((logtest? (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons x))
|
||||
((cpad-pressed? 0 x)
|
||||
(set!
|
||||
(-> *anim-tester* 0 flags)
|
||||
(logand -9 (-> *anim-tester* 0 flags))
|
||||
@@ -2280,10 +2280,7 @@
|
||||
)
|
||||
)
|
||||
)
|
||||
((logtest?
|
||||
(-> *cpad-list* cpads 0 button0-rel 0)
|
||||
(pad-buttons square)
|
||||
)
|
||||
((cpad-pressed? 0 square)
|
||||
(set!
|
||||
(-> *anim-tester* 0 flags)
|
||||
(logand -9 (-> *anim-tester* 0 flags))
|
||||
@@ -2301,7 +2298,7 @@
|
||||
(logand -9 (-> *anim-tester* 0 flags))
|
||||
)
|
||||
)
|
||||
((logtest? (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons up))
|
||||
((cpad-pressed? 0 up)
|
||||
(let ((v1-124 (the-as anim-test-seq-item gp-0)))
|
||||
"return the previous node in the list"
|
||||
(let* ((s3-1 (-> v1-124 prev))
|
||||
@@ -2326,7 +2323,7 @@
|
||||
)
|
||||
)
|
||||
)
|
||||
((logtest? (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons down))
|
||||
((cpad-pressed? 0 down)
|
||||
(let ((v1-142 (the-as anim-test-seq-item gp-0)))
|
||||
"return the next node in the list"
|
||||
(let* ((s3-2 (the-as anim-test-seq-item (-> v1-142 next)))
|
||||
@@ -2378,20 +2375,14 @@
|
||||
(case (-> *anim-tester* 0 item-field)
|
||||
((1)
|
||||
(cond
|
||||
((logtest?
|
||||
(-> *cpad-list* cpads 0 button0-abs 0)
|
||||
(pad-buttons down)
|
||||
)
|
||||
((cpad-hold? 0 down)
|
||||
(+! (-> (the-as anim-test-seq-item gp-0) speed) -10)
|
||||
(anim-test-seq-mark-as-edited (the-as anim-test-sequence s4-0))
|
||||
(if (< (-> (the-as anim-test-seq-item gp-0) speed) -300)
|
||||
(set! (-> (the-as anim-test-seq-item gp-0) speed) -300)
|
||||
)
|
||||
)
|
||||
((logtest?
|
||||
(-> *cpad-list* cpads 0 button0-abs 0)
|
||||
(pad-buttons up)
|
||||
)
|
||||
((cpad-hold? 0 up)
|
||||
(+! (-> (the-as anim-test-seq-item gp-0) speed) 10)
|
||||
(anim-test-seq-mark-as-edited (the-as anim-test-sequence s4-0))
|
||||
(if (< 1000 (-> (the-as anim-test-seq-item gp-0) speed))
|
||||
@@ -2402,10 +2393,7 @@
|
||||
)
|
||||
((2)
|
||||
(cond
|
||||
((logtest?
|
||||
(-> *cpad-list* cpads 0 button0-abs 0)
|
||||
(pad-buttons down)
|
||||
)
|
||||
((cpad-hold? 0 down)
|
||||
(+! (-> (the-as anim-test-seq-item gp-0) blend) -1)
|
||||
(anim-test-seq-mark-as-edited (the-as anim-test-sequence s4-0))
|
||||
(when (< (-> (the-as anim-test-seq-item gp-0) blend) 0)
|
||||
@@ -2413,10 +2401,7 @@
|
||||
0
|
||||
)
|
||||
)
|
||||
((logtest?
|
||||
(-> *cpad-list* cpads 0 button0-abs 0)
|
||||
(pad-buttons up)
|
||||
)
|
||||
((cpad-hold? 0 up)
|
||||
(+! (-> (the-as anim-test-seq-item gp-0) blend) 1)
|
||||
(anim-test-seq-mark-as-edited (the-as anim-test-sequence s4-0))
|
||||
(if (< 9999 (-> (the-as anim-test-seq-item gp-0) blend))
|
||||
@@ -2459,11 +2444,7 @@
|
||||
(+! (-> *anim-tester* 0 inc-timer) -1)
|
||||
)
|
||||
)
|
||||
(when
|
||||
(or
|
||||
(logtest? (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons down))
|
||||
(logtest? (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons up))
|
||||
)
|
||||
(when (or (cpad-pressed? 0 down) (cpad-pressed? 0 up))
|
||||
(set! (-> *anim-tester* 0 inc-delay) (-> *DISP_LIST-bank* INC_DELAY))
|
||||
(set! (-> *anim-tester* 0 inc-timer) 0)
|
||||
0
|
||||
@@ -2474,12 +2455,12 @@
|
||||
)
|
||||
(else
|
||||
(cond
|
||||
((logtest? (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons up))
|
||||
((cpad-pressed? 0 up)
|
||||
(if (> (-> arg1 highlight-index) 0)
|
||||
(+! (-> arg1 highlight-index) -1)
|
||||
)
|
||||
)
|
||||
((logtest? (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons down))
|
||||
((cpad-pressed? 0 down)
|
||||
(if
|
||||
(<
|
||||
(the-as int (the-as anim-test-seq-item (-> arg1 highlight-index)))
|
||||
@@ -2488,7 +2469,7 @@
|
||||
(+! (-> arg1 highlight-index) 1)
|
||||
)
|
||||
)
|
||||
((logtest? (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons left))
|
||||
((cpad-pressed? 0 left)
|
||||
(+! (-> *anim-tester* 0 item-field) -1)
|
||||
(if (< (-> *anim-tester* 0 item-field) 0)
|
||||
(set! (-> *anim-tester* 0 item-field) 11)
|
||||
@@ -2497,7 +2478,7 @@
|
||||
(set! (-> *anim-tester* 0 item-field) 5)
|
||||
)
|
||||
)
|
||||
((logtest? (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons right))
|
||||
((cpad-pressed? 0 right)
|
||||
(+! (-> *anim-tester* 0 item-field) 1)
|
||||
(when (>= (-> *anim-tester* 0 item-field) 12)
|
||||
(set! (-> *anim-tester* 0 item-field) 0)
|
||||
@@ -2507,13 +2488,13 @@
|
||||
(set! (-> *anim-tester* 0 item-field) 9)
|
||||
)
|
||||
)
|
||||
((logtest? (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons square))
|
||||
((cpad-pressed? 0 square)
|
||||
(logclear! (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons square))
|
||||
(logclear! (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons square))
|
||||
(set! (-> *anim-tester* 0 edit-mode) 3)
|
||||
(logior! (-> *anim-tester* 0 flags) 4)
|
||||
)
|
||||
((logtest? (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons x))
|
||||
((cpad-pressed? 0 x)
|
||||
(cond
|
||||
((logtest? (-> (the-as anim-test-seq-item gp-0) flags) 1)
|
||||
(let ((v1-318 (-> *anim-tester* 0 item-field)))
|
||||
|
||||
+1
-1
@@ -8981,7 +8981,7 @@
|
||||
(defun menu-respond-to-pause ()
|
||||
(case *master-mode*
|
||||
(('menu)
|
||||
(if (logtest? (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons l3))
|
||||
(if (cpad-hold? 0 l3)
|
||||
(debug-menu-context-send-msg
|
||||
*popup-menu-context*
|
||||
(debug-menu-msg activate)
|
||||
|
||||
+9
-11
@@ -595,17 +595,15 @@
|
||||
)
|
||||
)
|
||||
(when *stats-memory-short*
|
||||
(let
|
||||
((s2-2
|
||||
(if (logtest? (-> *cpad-list* cpads 1 button0-abs 0) (pad-buttons l3))
|
||||
#t
|
||||
arg1
|
||||
)
|
||||
)
|
||||
(s3-2 format)
|
||||
(s1-1 "heap-~5,'-DK/~5,'-DK----~D---~D/~D~%")
|
||||
(s0-1 (sar (memory-used *nk-dead-pool*) 10))
|
||||
)
|
||||
(let ((s2-2 (if (cpad-hold? 1 l3)
|
||||
#t
|
||||
arg1
|
||||
)
|
||||
)
|
||||
(s3-2 format)
|
||||
(s1-1 "heap-~5,'-DK/~5,'-DK----~D---~D/~D~%")
|
||||
(s0-1 (sar (memory-used *nk-dead-pool*) 10))
|
||||
)
|
||||
(set! sv-80 (sar (memory-total *nk-dead-pool*) 10))
|
||||
(let ((t0-1 (compact-time *nk-dead-pool*))
|
||||
(t1-1 (-> *nk-dead-pool* compact-count))
|
||||
|
||||
+14
-23
@@ -1723,7 +1723,7 @@
|
||||
(debug-menu-context-release-joypad a0-1)
|
||||
)
|
||||
(set! (-> arg0 grabbed-joypad-p) #f)
|
||||
(when (logtest? (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons circle))
|
||||
(when (cpad-pressed? 0 circle)
|
||||
(cond
|
||||
((-> arg0 float-p)
|
||||
(if (-> arg0 factivate-func)
|
||||
@@ -1766,28 +1766,19 @@
|
||||
)
|
||||
)
|
||||
((or
|
||||
(logtest? (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons right))
|
||||
(logtest? (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons left))
|
||||
(logtest? (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons down))
|
||||
(logtest? (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons up))
|
||||
(cpad-hold? 0 right)
|
||||
(cpad-hold? 0 left)
|
||||
(cpad-hold? 0 down)
|
||||
(cpad-hold? 0 up)
|
||||
)
|
||||
(let ((v1-39 (cond
|
||||
((logtest?
|
||||
(-> *cpad-list* cpads 0 button0-abs 0)
|
||||
(pad-buttons right)
|
||||
)
|
||||
((cpad-hold? 0 right)
|
||||
10
|
||||
)
|
||||
((logtest?
|
||||
(-> *cpad-list* cpads 0 button0-abs 0)
|
||||
(pad-buttons up)
|
||||
)
|
||||
((cpad-hold? 0 up)
|
||||
1
|
||||
)
|
||||
((logtest?
|
||||
(-> *cpad-list* cpads 0 button0-abs 0)
|
||||
(pad-buttons down)
|
||||
)
|
||||
((cpad-hold? 0 down)
|
||||
-1
|
||||
)
|
||||
(else
|
||||
@@ -2103,7 +2094,7 @@
|
||||
;; definition for function debug-menus-default-joypad-func
|
||||
(defun debug-menus-default-joypad-func ((arg0 debug-menu-context))
|
||||
(cond
|
||||
((logtest? (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons square))
|
||||
((cpad-pressed? 0 square)
|
||||
(cond
|
||||
((< 1 (-> arg0 sel-length))
|
||||
(debug-menu-context-close-submenu arg0)
|
||||
@@ -2112,19 +2103,19 @@
|
||||
)
|
||||
)
|
||||
)
|
||||
((logtest? (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons x))
|
||||
((cpad-pressed? 0 x)
|
||||
(debug-menu-context-activate-selection arg0)
|
||||
)
|
||||
((logtest? (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons up))
|
||||
((cpad-pressed? 0 up)
|
||||
(debug-menu-context-select-new-item arg0 -1)
|
||||
)
|
||||
((logtest? (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons down))
|
||||
((cpad-pressed? 0 down)
|
||||
(debug-menu-context-select-new-item arg0 1)
|
||||
)
|
||||
((logtest? (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons left))
|
||||
((cpad-pressed? 0 left)
|
||||
(debug-menu-context-select-new-item arg0 -5)
|
||||
)
|
||||
((logtest? (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons right))
|
||||
((cpad-pressed? 0 right)
|
||||
(debug-menu-context-select-new-item arg0 5)
|
||||
)
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user