mirror of
https://github.com/open-goal/jak-project
synced 2026-08-22 07:04:29 -04:00
[decomp] finish actor-link-h and a few more (#592)
* finish actor-link-h * decompile files * fix pp issue
This commit is contained in:
@@ -200,12 +200,12 @@
|
||||
|
||||
;; definition for function remove-exit
|
||||
(defun remove-exit ()
|
||||
(local-vars (pp process))
|
||||
(when (-> pp stack-frame-top)
|
||||
(let ((v0-0 (-> pp stack-frame-top next)))
|
||||
(set! (-> pp stack-frame-top) v0-0)
|
||||
v0-0
|
||||
)
|
||||
(with-pp (when (-> pp stack-frame-top)
|
||||
(let ((v0-0 (-> pp stack-frame-top next)))
|
||||
(set! (-> pp stack-frame-top) v0-0)
|
||||
v0-0
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -1515,14 +1515,14 @@
|
||||
new
|
||||
protect-frame
|
||||
((allocation symbol) (type-to-make type) (arg0 (function object)))
|
||||
(local-vars (pp process))
|
||||
(let ((v0-0 (the-as object (+ (the-as int allocation) 4))))
|
||||
(set! (-> (the-as protect-frame v0-0) type) type-to-make)
|
||||
(set! (-> (the-as protect-frame v0-0) name) 'protect-frame)
|
||||
(set! (-> (the-as protect-frame v0-0) exit) arg0)
|
||||
(set! (-> (the-as protect-frame v0-0) next) (-> pp stack-frame-top))
|
||||
(set! (-> pp stack-frame-top) (the-as protect-frame v0-0))
|
||||
(the-as protect-frame v0-0)
|
||||
(with-pp (let ((v0-0 (the-as object (+ (the-as int allocation) 4))))
|
||||
(set! (-> (the-as protect-frame v0-0) type) type-to-make)
|
||||
(set! (-> (the-as protect-frame v0-0) name) 'protect-frame)
|
||||
(set! (-> (the-as protect-frame v0-0) exit) arg0)
|
||||
(set! (-> (the-as protect-frame v0-0) next) (-> pp stack-frame-top))
|
||||
(set! (-> pp stack-frame-top) (the-as protect-frame v0-0))
|
||||
(the-as protect-frame v0-0)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -1814,59 +1814,60 @@
|
||||
;; WARN: Unsupported inline assembly instruction kind - [lw ra, return-from-thread(s7)]
|
||||
;; WARN: Unsupported inline assembly instruction kind - [jr ra]
|
||||
(defmethod deactivate process ((obj process))
|
||||
(local-vars (pp process) (s7-0 none) (ra-0 int))
|
||||
(when (!= (-> obj status) 'dead)
|
||||
(set! (-> obj next-state) dead-state)
|
||||
(if (-> obj entity)
|
||||
(entity-deactivate-handler obj (-> obj entity))
|
||||
)
|
||||
(let ((s5-0 pp))
|
||||
(let ((s4-0 (-> obj stack-frame-top)))
|
||||
(while (the-as protect-frame s4-0)
|
||||
(let ((v1-5 (-> s4-0 type)))
|
||||
(if (or (= v1-5 protect-frame) (= v1-5 state))
|
||||
((-> (the-as protect-frame s4-0) exit))
|
||||
)
|
||||
)
|
||||
(set! (the-as protect-frame s4-0) (-> (the-as protect-frame s4-0) next))
|
||||
)
|
||||
)
|
||||
(let ((s6-2 s5-0))
|
||||
)
|
||||
)
|
||||
(process-disconnect obj)
|
||||
(let ((v1-11 (-> obj child)))
|
||||
(while v1-11
|
||||
(let ((s5-1 (-> v1-11 0 brother)))
|
||||
(deactivate (-> v1-11 0))
|
||||
(set! v1-11 s5-1)
|
||||
)
|
||||
)
|
||||
)
|
||||
(return-process (-> obj pool) obj)
|
||||
(set! (-> obj state) #f)
|
||||
(set! (-> obj next-state) #f)
|
||||
(set! (-> obj entity) #f)
|
||||
(set! (-> obj pid) 0)
|
||||
(cond
|
||||
((= (-> *kernel-context* current-process) obj)
|
||||
(set! (-> obj status) 'dead)
|
||||
(.lw ra-0 return-from-thread s7-0)
|
||||
(.jr ra-0)
|
||||
(nop!)
|
||||
(let ((v1-21 0))
|
||||
)
|
||||
)
|
||||
((= (-> obj status) 'initialize)
|
||||
(set! (-> obj status) 'dead)
|
||||
(throw 'initialize #f)
|
||||
)
|
||||
)
|
||||
(set! (-> obj status) 'dead)
|
||||
(let ((v0-7 0))
|
||||
)
|
||||
(local-vars (s7-0 none) (ra-0 int))
|
||||
(with-pp (when (!= (-> obj status) 'dead)
|
||||
(set! (-> obj next-state) dead-state)
|
||||
(if (-> obj entity)
|
||||
(entity-deactivate-handler obj (-> obj entity))
|
||||
)
|
||||
(let ((s5-0 pp))
|
||||
(let ((s4-0 (-> obj stack-frame-top)))
|
||||
(while (the-as protect-frame s4-0)
|
||||
(let ((v1-5 (-> s4-0 type)))
|
||||
(if (or (= v1-5 protect-frame) (= v1-5 state))
|
||||
((-> (the-as protect-frame s4-0) exit))
|
||||
)
|
||||
)
|
||||
(set! s4-0 (-> (the-as protect-frame s4-0) next))
|
||||
)
|
||||
)
|
||||
(let ((s6-2 s5-0))
|
||||
)
|
||||
)
|
||||
(process-disconnect obj)
|
||||
(let ((v1-11 (-> obj child)))
|
||||
(while v1-11
|
||||
(let ((s5-1 (-> v1-11 0 brother)))
|
||||
(deactivate (-> v1-11 0))
|
||||
(set! v1-11 s5-1)
|
||||
)
|
||||
)
|
||||
)
|
||||
(return-process (-> obj pool) obj)
|
||||
(set! (-> obj state) #f)
|
||||
(set! (-> obj next-state) #f)
|
||||
(set! (-> obj entity) #f)
|
||||
(set! (-> obj pid) 0)
|
||||
(cond
|
||||
((= (-> *kernel-context* current-process) obj)
|
||||
(set! (-> obj status) 'dead)
|
||||
(.lw ra-0 return-from-thread s7-0)
|
||||
(.jr ra-0)
|
||||
(nop!)
|
||||
(let ((v1-21 0))
|
||||
)
|
||||
)
|
||||
((= (-> obj status) 'initialize)
|
||||
(set! (-> obj status) 'dead)
|
||||
(throw 'initialize #f)
|
||||
)
|
||||
)
|
||||
(set! (-> obj status) 'dead)
|
||||
(let ((v0-7 0))
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
|
||||
@@ -62,83 +62,78 @@
|
||||
(arg4 object)
|
||||
(arg5 object)
|
||||
)
|
||||
(local-vars
|
||||
(pp process)
|
||||
(s7-0 none)
|
||||
(sp-0 none)
|
||||
(sp-1 int)
|
||||
(ra-0 int)
|
||||
(sv-0 none)
|
||||
)
|
||||
(set!
|
||||
(-> pp mask)
|
||||
(logand (lognot (process-mask sleep sleep-code)) (-> pp mask))
|
||||
)
|
||||
(set! (-> pp mask) (logior (-> pp mask) (process-mask going)))
|
||||
(cond
|
||||
((= (-> pp status) 'initialize)
|
||||
(set! (-> pp trans-hook) #f)
|
||||
(set-to-run (-> pp main-thread) enter-state arg0 arg1 arg2 arg3 arg4 arg5)
|
||||
(set! (-> pp status) 'initialize-go)
|
||||
(throw 'initialize #t)
|
||||
#t
|
||||
(local-vars (s7-0 none) (sp-0 none) (sp-1 int) (ra-0 int) (sv-0 none))
|
||||
(with-pp
|
||||
(set!
|
||||
(-> pp mask)
|
||||
(logand (lognot (process-mask sleep sleep-code)) (-> pp mask))
|
||||
)
|
||||
((!= (-> *kernel-context* current-process) pp)
|
||||
(let ((s0-0 (-> pp status)))
|
||||
(set! (-> pp mask) (logior (-> pp mask) (process-mask going)))
|
||||
(cond
|
||||
((= (-> pp status) 'initialize)
|
||||
(set! (-> pp trans-hook) #f)
|
||||
(set-to-run (-> pp main-thread) enter-state arg0 arg1 arg2 arg3 arg4 arg5)
|
||||
(set! (-> pp status) s0-0)
|
||||
(set! (-> pp status) 'initialize-go)
|
||||
(throw 'initialize #t)
|
||||
#t
|
||||
)
|
||||
#t
|
||||
)
|
||||
((= (-> pp main-thread) (-> pp top-thread))
|
||||
(set! (-> pp state) (-> pp next-state))
|
||||
(let ((s0-1 (-> pp stack-frame-top)))
|
||||
(while s0-1
|
||||
(let ((v1-10 (-> s0-1 type)))
|
||||
(if (or (= v1-10 protect-frame) (= v1-10 state))
|
||||
((-> (the-as protect-frame s0-1) exit))
|
||||
((!= (-> *kernel-context* current-process) pp)
|
||||
(let ((s0-0 (-> pp status)))
|
||||
(set! (-> pp trans-hook) #f)
|
||||
(set-to-run (-> pp main-thread) enter-state arg0 arg1 arg2 arg3 arg4 arg5)
|
||||
(set! (-> pp status) s0-0)
|
||||
)
|
||||
#t
|
||||
)
|
||||
((= (-> pp main-thread) (-> pp top-thread))
|
||||
(set! (-> pp state) (-> pp next-state))
|
||||
(let ((s0-1 (-> pp stack-frame-top)))
|
||||
(while s0-1
|
||||
(let ((v1-10 (-> s0-1 type)))
|
||||
(if (or (= v1-10 protect-frame) (= v1-10 state))
|
||||
((-> (the-as protect-frame s0-1) exit))
|
||||
)
|
||||
)
|
||||
(set! s0-1 (-> s0-1 next))
|
||||
)
|
||||
)
|
||||
(set! (-> pp mask) (logand (lognot (process-mask going)) (-> pp mask)))
|
||||
(let ((s0-2 (-> pp state)))
|
||||
(set! (-> pp event-hook) (-> s0-2 event))
|
||||
(if (-> s0-2 exit)
|
||||
(set! (-> pp stack-frame-top) s0-2)
|
||||
(set! (-> pp stack-frame-top) #f)
|
||||
)
|
||||
(set! (-> pp post-hook) (-> s0-2 post))
|
||||
(set! (-> pp trans-hook) (-> s0-2 trans))
|
||||
(let ((t9-4 (-> s0-2 enter)))
|
||||
(if t9-4
|
||||
(t9-4 arg0 arg1 arg2 arg3 arg4 arg5)
|
||||
)
|
||||
)
|
||||
(set! s0-1 (-> s0-1 next))
|
||||
)
|
||||
)
|
||||
(set! (-> pp mask) (logand (lognot (process-mask going)) (-> pp mask)))
|
||||
(let ((s0-2 (-> pp state)))
|
||||
(set! (-> pp event-hook) (-> s0-2 event))
|
||||
(if (-> s0-2 exit)
|
||||
(set! (-> pp stack-frame-top) s0-2)
|
||||
(set! (-> pp stack-frame-top) #f)
|
||||
)
|
||||
(set! (-> pp post-hook) (-> s0-2 post))
|
||||
(set! (-> pp trans-hook) (-> s0-2 trans))
|
||||
(let ((t9-4 (-> s0-2 enter)))
|
||||
(if t9-4
|
||||
(t9-4 arg0 arg1 arg2 arg3 arg4 arg5)
|
||||
(let ((t9-5 (-> s0-2 trans)))
|
||||
(if t9-5
|
||||
(t9-5)
|
||||
)
|
||||
)
|
||||
(let ((v1-28 (-> pp main-thread)))
|
||||
(.lwu sp-1 28 v1-28)
|
||||
)
|
||||
(let ((t9-6 (-> s0-2 code)))
|
||||
(.lw ra-0 return-from-thread-dead s7-0)
|
||||
(.jr t9-6)
|
||||
)
|
||||
)
|
||||
(let ((t9-5 (-> s0-2 trans)))
|
||||
(if t9-5
|
||||
(t9-5)
|
||||
)
|
||||
)
|
||||
(let ((v1-28 (-> pp main-thread)))
|
||||
(.lwu sp-1 28 v1-28)
|
||||
)
|
||||
(let ((t9-6 (-> s0-2 code)))
|
||||
(.lw ra-0 return-from-thread-dead s7-0)
|
||||
(.jr t9-6)
|
||||
)
|
||||
arg4
|
||||
)
|
||||
arg4
|
||||
)
|
||||
(else
|
||||
(set! (-> pp trans-hook) #f)
|
||||
(set-to-run (-> pp main-thread) enter-state arg0 arg1 arg2 arg3 arg4 arg5)
|
||||
(when (!= (-> pp top-thread name) 'post)
|
||||
(let ((v0-2 (the-as object return-from-thread)))
|
||||
(.sw (the-as (function none) v0-2) 0 sp-0)
|
||||
v0-2
|
||||
(else
|
||||
(set! (-> pp trans-hook) #f)
|
||||
(set-to-run (-> pp main-thread) enter-state arg0 arg1 arg2 arg3 arg4 arg5)
|
||||
(when (!= (-> pp top-thread name) 'post)
|
||||
(let ((v0-2 (the-as object return-from-thread)))
|
||||
(.sw (the-as (function none) v0-2) 0 sp-0)
|
||||
v0-2
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
@@ -147,24 +142,25 @@
|
||||
|
||||
;; definition for function send-event-function
|
||||
(defun send-event-function ((arg0 process) (arg1 event-message-block))
|
||||
(local-vars (pp process))
|
||||
(when (and arg0 (!= (-> arg0 type) process-tree) (-> arg0 event-hook))
|
||||
(let ((gp-0 pp))
|
||||
(let ((s6-1 arg0))
|
||||
)
|
||||
(let
|
||||
((v0-0
|
||||
((-> arg0 event-hook)
|
||||
(-> arg1 from)
|
||||
(-> arg1 num-params)
|
||||
(-> arg1 message)
|
||||
arg1
|
||||
(with-pp
|
||||
(when (and arg0 (!= (-> arg0 type) process-tree) (-> arg0 event-hook))
|
||||
(let ((gp-0 pp))
|
||||
(let ((s6-1 arg0))
|
||||
)
|
||||
(let
|
||||
((v0-0
|
||||
((-> arg0 event-hook)
|
||||
(-> arg1 from)
|
||||
(-> arg1 num-params)
|
||||
(-> arg1 message)
|
||||
arg1
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((s6-2 gp-0))
|
||||
)
|
||||
v0-0
|
||||
)
|
||||
(let ((s6-2 gp-0))
|
||||
)
|
||||
v0-0
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user