decomp: finish basebutton (#762)

* decomp: finish `basebutton`

* decomp: finalize `basebutton` and fix `evilbro`

* fix some methods / args
This commit is contained in:
Tyler Wilding
2021-08-22 23:16:55 -04:00
committed by GitHub
parent 9befd8ed03
commit 05648e0a96
22 changed files with 2402 additions and 125 deletions
+44 -65
View File
@@ -10949,7 +10949,7 @@
(:methods
(new (symbol type process collide-list-enum) _type_)
(TODO-RENAME-28 (_type_) none 28)
(dummy-29 () none 29)
(dummy-29 (_type_ int) none 29)
(TODO-RENAME-30 (_type_ vector) none 30)
(dummy-31 () none 31)
(dummy-32 () none 32)
@@ -11150,7 +11150,10 @@
(unknown-dword40 int64 :offset 2160) ;; from logic-target::target-compute-edge
(unknown-dword41 int64 :offset 2168) ;; from logic-target::target-compute-edge
(unknown-handle10 handle :offset 2176) ;; from logic-target::target-compute-pole - probably a swingpole
(unknown-int11 int32 :offset 2184) ;; from (anon-function 1 basebutton)
(unknown-int20 int32 :offset 2188) ;; from logic-target::target-compute-pole
(unknown-vector102 vector :inline :offset 2224) ;; from (anon-function 3 basebutton)
(unknown-vector103 vector :inline :offset 2240) ;; from (anon-function 3 basebutton)
(unknown-vector110 vector :inline :offset 2320) ;; from logic-target::flag-setup
(unknown-vector111 vector :inline :offset 2336) ;; from logic-target::flag-setup
(unknown-int30 int32 :offset 2384) ;; from target-util::target-danger-set!
@@ -18035,7 +18038,7 @@
;; - Unknowns
;;(define-extern cam-fixed object) ;; unknown type
(define-extern cam-fixed state) ;; unknown type
;;(define-extern cam-decel object) ;; unknown type
;;(define-extern cam-eye object) ;; unknown type
@@ -19125,7 +19128,7 @@
(define-extern target-print-stats (function target symbol symbol ))
(define-extern activate-hud (function process none))
(define-extern reset-target-state (function symbol target :behavior target))
(define-extern init-sidekick (function none)) ;; TODO - not finished
(define-extern init-sidekick (function none))
(define-extern target-generic-event-handler (function process int symbol event-message-block object))
(define-extern level-setup (function none :behavior target))
(define-extern target-exit (function none))
@@ -22424,16 +22427,17 @@
;; - Types
(deftype basebutton (process-drawable)
((down? symbol :offset-assert 176)
((root-override collide-shape-moving :score 100 :offset 112)
(down? symbol :offset-assert 176)
(spawned-by-other? symbol :offset-assert 180)
(move-to? symbol :offset-assert 184)
(notify-actor basic :offset-assert 188)
(notify-actor entity-actor :offset-assert 188)
(timeout float :offset-assert 192)
(button-id int32 :offset-assert 196)
(event-going-down basic :offset-assert 200)
(event-down basic :offset-assert 204)
(event-going-up basic :offset-assert 208)
(event-up basic :offset-assert 212)
(event-going-down symbol :offset-assert 200)
(event-down symbol :offset-assert 204)
(event-going-up symbol :offset-assert 208)
(event-up symbol :offset-assert 212)
(anim-speed float :offset-assert 216)
(move-to-pos vector :inline :offset-assert 224)
(move-to-quat quaternion :inline :offset-assert 240)
@@ -22444,23 +22448,23 @@
:flag-assert #x2000900100
;; inherited inspect of process-drawable
(:methods
(basebutton-down-idle () none 20) ;; state
(basebutton-going-down () none 21) ;; state
(dummy-22 () none 22)
(dummy-23 () none 23)
(basebutton-up-idle () none 24) ;; state
(dummy-25 () none 25)
(dummy-26 () none 26)
(dummy-27 () none 27)
(dummy-28 () none 28)
(dummy-29 () none 29)
(dummy-30 () none 30)
(dummy-31 () none 31)
(basebutton-down-idle () _type_ :state 20) ;; state
(basebutton-going-down () _type_ :state 21) ;; state
(basebutton-going-up () _type_ :state 22)
(basebutton-startup () _type_ :state 23)
(basebutton-up-idle () _type_ :state 24) ;; state
(reset! (_type_) float 25)
(TODO-RENAME-26 (_type_) none 26)
(TODO-RENAME-27 (_type_) collide-shape-moving 27)
(arm-trigger-event! (_type_) symbol 28)
(TODO-RENAME-29 (_type_ symbol entity) none 29)
(move-to-vec-or-quat! (_type_ vector quaternion) quaternion 30) ;; args are optional
(press! (_type_ symbol) int 31)
)
)
(deftype warp-gate (process-drawable)
((level basic :offset-assert 176)
((level symbol :offset-assert 176)
(level-slot int32 :offset-assert 180)
(min-slot int32 :offset-assert 184)
(max-slot int32 :offset-assert 188)
@@ -22471,22 +22475,22 @@
:flag-assert #x18005000c0
;; inherited inspect of process-drawable
(:methods
(dummy-20 () none 20)
(unknown-state00 () _type_ :state 20)
(dummy-21 () none 21)
(dummy-22 () none 22)
(use (int level) _type_ :state 22)
(dummy-23 () none 23)
)
)
;; - Functions
(define-extern basebutton-init-by-other function)
(define-extern basebutton-init-by-other (function basebutton vector quaternion entity-actor symbol float none :behavior basebutton))
;; - Unknowns
;;(define-extern *warp-jump-mods* object) ;; unknown type
;;(define-extern target-warp-out object) ;; unknown type
;;(define-extern *warp-info* object) ;; unknown type
(define-extern *warp-jump-mods* surface) ;; unknown type
(define-extern target-warp-out (state vector vector target)) ;; unknown type
(define-extern *warp-info* (array string)) ;; unknown type
(define-extern *generic-button-sg* skeleton-group)
@@ -24573,41 +24577,17 @@
; )
; )
; (deftype warp-gate-switch (basebutton)
; ((warp uint64 :offset-assert 256)
; )
; :method-count-assert 33
; :size-assert #x108
; :heap-base #xa0
; :flag-assert #x2100a00108
; ;; inherited inspect of basebutton
; (:methods
; (dummy-9 () none 9)
; (dummy-10 () none 10)
; (dummy-11 () none 11)
; (dummy-12 () none 12)
; (dummy-13 () none 13)
; (dummy-14 () none 14)
; (dummy-15 () none 15)
; (dummy-16 () none 16)
; (dummy-17 () none 17)
; (dummy-18 () none 18)
; (dummy-19 () none 19)
; (dummy-20 () none 20)
; (dummy-21 () none 21)
; (dummy-22 () none 22)
; (dummy-23 () none 23)
; (dummy-24 () none 24)
; (dummy-25 () none 25)
; (dummy-26 () none 26)
; (dummy-27 () none 27)
; (dummy-28 () none 28)
; (dummy-29 () none 29)
; (dummy-30 () none 30)
; (dummy-31 () none 31)
; (dummy-32 () none 32)
; )
; )
(deftype warp-gate-switch (basebutton)
((warp uint64 :offset-assert 256)
)
:method-count-assert 33
:size-assert #x108
:heap-base #xa0
:flag-assert #x2100a00108
(:methods
(dummy-32 () none 32)
)
)
; (deftype village-cam (process)
; ((root basic :offset-assert 112)
@@ -28551,9 +28531,8 @@
;; - Types
(declare-type evilsis process-taskable)
(deftype evilbro (process-taskable)
((evilsis evilsis :offset-assert 380)
((evilsis entity :offset-assert 380)
)
:method-count-assert 53
:heap-base #x110
@@ -687,5 +687,9 @@
[6, "(function object :behavior evilbro)"]
],
"basebutton": [
[1, "(function symbol :behavior target)"]
],
"placeholder-do-not-add-below": []
}
@@ -2005,6 +2005,54 @@
["L18", "_lambda_", true]
],
"basebutton": [
["L1", "_lambda_", true],
["L4", "_lambda_", true],
["L10", "_lambda_", true],
["L11", "_lambda_", true],
["L12", "_lambda_", true],
["L15", "_lambda_", true],
["L26", "_lambda_", true],
["L50", "_lambda_", true],
["L52", "_lambda_", true],
["L54", "_lambda_", true],
["L55", "_lambda_", true],
["L58", "_lambda_", true],
["L60", "_lambda_", true],
["L63", "_lambda_", true],
["L65", "_lambda_", true],
["L66", "_lambda_", true],
["L69", "_lambda_", true],
["L71", "_lambda_", true],
["L73", "_lambda_", true],
["L74", "_lambda_", true],
["L77", "_lambda_", true],
["L79", "_lambda_", true],
["L81", "_lambda_", true],
["L82", "_lambda_", true],
["L87", "_lambda_", true],
["L96", "state", true],
["L97", "vector", true],
["L98", "surface", true],
["L99", "state", true],
["L100", "pair", true],
["L102", "vector", true],
["L103", "(array string)", true],
["L109", "state", true],
["L110", "state", true],
["L111", "state", true],
["L112", "state", true],
["L113", "state", true],
["L114", "skeleton-group", true],
["L116", "float", true],
["L119", "float", true],
["L124", "float", true],
["L125", "float", true],
["L129", "float", true],
["L130", "float", true],
["L131", "uint64", true]
],
// please do not add things after this entry! git is dumb.
"object-file-that-doesnt-actually-exist-and-i-just-put-this-here-to-prevent-merge-conflicts-with-this-file": []
}
@@ -1373,5 +1373,29 @@
[16, "event-message-block"]
],
"(method 29 basebutton)": [
[16, "event-message-block"]
],
"(code use warp-gate)": [
[16, "event-message-block"]
],
"(trans use warp-gate)": [
[16, "event-message-block"]
],
"(anon-function 1 basebutton)": [
[16, "vector"],
[32, "vector"],
[48, "event-message-block"]
],
"(code target-warp-out)": [
[16, "event-message-block"],
[96, "vector"],
[112, "vector"]
],
"placeholder-do-not-add-below!": []
}
@@ -2334,7 +2334,7 @@
],
"(method 32 evilbro)": [
[19, "v1", "handle"]
[20, "v1", "handle"]
],
"(code idle evilbro)": [
@@ -2343,5 +2343,9 @@
[171, "v1", "float"]
],
"(method 26 basebutton)": [
[31, "v1", "art-joint-anim"]
],
"placeholder-do-not-add-below": []
}
+3
View File
@@ -4,3 +4,6 @@
;; name: cam-master.gc
;; name in dgo: cam-master
;; dgos: GAME, ENGINE
;; TODO - for basebutton
(define-extern cam-fixed state)
+1 -1
View File
@@ -249,7 +249,7 @@
(:methods
(new (symbol type process collide-list-enum) _type_ 0)
(TODO-RENAME-28 (_type_) none 28)
(dummy-29 () none 29)
(dummy-29 (_type_ int) none 29)
(TODO-RENAME-30 (_type_ vector) none 30)
(dummy-31 () none 31)
(dummy-32 () none 32)
@@ -120,7 +120,10 @@
(unknown-dword40 int64 :offset 2160) ;; from logic-target::target-compute-edge
(unknown-dword41 int64 :offset 2168) ;; from logic-target::target-compute-edge
(unknown-handle10 handle :offset 2176) ;; from logic-target::target-compute-pole - probably a swingpole
(unknown-int11 int32 :offset 2184) ;; from (anon-function 1 basebutton)
(unknown-int20 int32 :offset 2188) ;; from logic-target::target-compute-pole
(unknown-vector102 vector :inline :offset 2224) ;; from (anon-function 3 basebutton)
(unknown-vector103 vector :inline :offset 2240) ;; from (anon-function 3 basebutton)
(unknown-vector110 vector :inline :offset 2320) ;; from logic-target::flag-setup
(unknown-vector111 vector :inline :offset 2336) ;; from logic-target::flag-setup
(unknown-int30 int32 :offset 2384) ;; from target-util::target-danger-set!
+2
View File
@@ -22,3 +22,5 @@
(define-extern ja-aframe (function float int float))
;; TODO - for sculptor
(define-extern ja-eval (function int))
;; TODO - for basebutton
(define-extern anim-loop (function symbol))
File diff suppressed because it is too large Load Diff
+1 -4
View File
@@ -1104,10 +1104,7 @@
(set! (-> s5-0 dynam) (copy *standard-dynamics* 'process))
(set! (-> s5-0 reaction) default-collision-reaction)
(set! (-> s5-0 no-reaction) nothing)
(let ((t9-2 (method-of-object s5-0 dummy-29)))
1
(t9-2)
)
(dummy-29 s5-0 1)
(let
((s4-0
(new
+5 -17
View File
@@ -9,9 +9,8 @@
(define-extern *evilbro-intro-sg* skeleton-group)
;; definition of type evilbro
(declare-type evilsis process-taskable)
(deftype evilbro (process-taskable)
((evilsis evilsis :offset-assert 380)
((evilsis entity :offset-assert 380)
)
:heap-base #x110
:method-count-assert 53
@@ -51,16 +50,8 @@
(set! (-> a1-2 from) pp)
(set! (-> a1-2 num-params) 1)
(set! (-> a1-2 message) 'clone)
(let ((v1-2 (process->ppointer obj)))
(set!
(-> a1-2 param 0)
(the-as
uint
(logior (shl (-> v1-2 0 pid) 32) (new 'static 'handle :process v1-2))
)
)
)
(send-event-function (-> obj evilsis ppointer 3) a1-2)
(set! (-> a1-2 param 0) (the-as uint (process->handle obj)))
(send-event-function (-> obj evilsis extra process) a1-2)
)
)
(else
@@ -93,7 +84,7 @@
(set! (-> a1-0 from) self)
(set! (-> a1-0 num-params) 0)
(set! (-> a1-0 message) 'end-mode)
(send-event-function (-> self evilsis ppointer 3) a1-0)
(send-event-function (-> self evilsis extra process) a1-0)
)
((-> (method-of-type process-taskable play-anim) exit))
(none)
@@ -245,10 +236,7 @@
(defmethod copy-defaults! evilbro ((obj evilbro) (arg0 res-lump))
(dummy-40 obj arg0 *evilbro-intro-sg* 3 40 (new 'static 'vector :w 4096.0) 5)
(set! (-> obj tasks) (get-task-control (game-task leaving-misty)))
(set!
(-> obj evilsis)
(the-as evilsis (entity-actor-lookup arg0 'alt-actor 0))
)
(set! (-> obj evilsis) (entity-actor-lookup arg0 'alt-actor 0))
(dummy-42 obj)
(none)
)
+1 -4
View File
@@ -307,10 +307,7 @@
(set! (-> s4-0 dynam) (copy *standard-dynamics* 'process))
(set! (-> s4-0 reaction) default-collision-reaction)
(set! (-> s4-0 no-reaction) nothing)
(let ((t9-2 (method-of-object s4-0 dummy-29)))
1
(t9-2)
)
(dummy-29 s4-0 1)
(let ((s3-0 (new 'process 'collide-shape-prim-group s4-0 (the-as uint 5) 0)))
(set! (-> s3-0 prim-core collide-as) (the-as uint 2048))
(set! (-> s3-0 collide-with) (the-as uint 16))
+1 -4
View File
@@ -231,10 +231,7 @@
(set! (-> s4-0 dynam) (copy *standard-dynamics* 'process))
(set! (-> s4-0 reaction) default-collision-reaction)
(set! (-> s4-0 no-reaction) nothing)
(let ((t9-2 (method-of-object s4-0 dummy-29)))
1
(t9-2)
)
(dummy-29 s4-0 1)
(let
((s3-0
(new
+5
View File
@@ -36,6 +36,11 @@ with open(file_path) as f:
labels_with_no_type.remove(label)
next_label_will_be_lambda = False
break
# special case for pairs
if "(offset 2)" in line:
label_lines.append("[\"{}\", \"pair\", true]".format(label))
labels_with_no_type.remove(label)
break
# Check if the previous line has a `.type`
prev_line = content[i-1]
if ".type" in prev_line:
@@ -407,7 +407,7 @@
(:methods
(new (symbol type process collide-list-enum) _type_ 0)
(TODO-RENAME-28 (_type_) none 28)
(dummy-29 () none 29)
(dummy-29 (_type_ int) none 29)
(TODO-RENAME-30 (_type_ vector) none 30)
(dummy-31 () none 31)
(dummy-32 () none 32)
@@ -127,7 +127,10 @@
(unknown-dword40 int64 :offset 2160)
(unknown-dword41 int64 :offset 2168)
(unknown-handle10 handle :offset 2176)
(unknown-int11 int32 :offset 2184)
(unknown-int20 int32 :offset 2188)
(unknown-vector102 vector :inline :offset 2224)
(unknown-vector103 vector :inline :offset 2240)
(unknown-vector110 vector :inline :offset 2320)
(unknown-vector111 vector :inline :offset 2336)
(unknown-int30 int32 :offset 2384)
File diff suppressed because it is too large Load Diff
+1 -4
View File
@@ -1100,10 +1100,7 @@
(set! (-> s5-0 dynam) (copy *standard-dynamics* 'process))
(set! (-> s5-0 reaction) default-collision-reaction)
(set! (-> s5-0 no-reaction) nothing)
(let ((t9-2 (method-of-object s5-0 dummy-29)))
1
(t9-2)
)
(dummy-29 s5-0 1)
(let
((s4-0
(new
+5 -16
View File
@@ -3,7 +3,7 @@
;; definition of type evilbro
(deftype evilbro (process-taskable)
((evilsis evilsis :offset-assert 380)
((evilsis entity :offset-assert 380)
)
:heap-base #x110
:method-count-assert 53
@@ -52,16 +52,8 @@
(set! (-> a1-2 from) pp)
(set! (-> a1-2 num-params) 1)
(set! (-> a1-2 message) 'clone)
(let ((v1-2 (process->ppointer obj)))
(set!
(-> a1-2 param 0)
(the-as
uint
(logior (shl (-> v1-2 0 pid) 32) (new 'static 'handle :process v1-2))
)
)
)
(send-event-function (-> obj evilsis ppointer 3) a1-2)
(set! (-> a1-2 param 0) (the-as uint (process->handle obj)))
(send-event-function (-> obj evilsis extra process) a1-2)
)
)
(else
@@ -94,7 +86,7 @@
(set! (-> a1-0 from) self)
(set! (-> a1-0 num-params) 0)
(set! (-> a1-0 message) 'end-mode)
(send-event-function (-> self evilsis ppointer 3) a1-0)
(send-event-function (-> self evilsis extra process) a1-0)
)
((-> (method-of-type process-taskable play-anim) exit))
(none)
@@ -246,10 +238,7 @@
(defmethod copy-defaults! evilbro ((obj evilbro) (arg0 res-lump))
(dummy-40 obj arg0 *evilbro-intro-sg* 3 40 (new 'static 'vector :w 4096.0) 5)
(set! (-> obj tasks) (get-task-control (game-task leaving-misty)))
(set!
(-> obj evilsis)
(the-as evilsis (entity-actor-lookup arg0 'alt-actor 0))
)
(set! (-> obj evilsis) (entity-actor-lookup arg0 'alt-actor 0))
(dummy-42 obj)
(none)
)
@@ -308,10 +308,7 @@
(set! (-> s4-0 dynam) (copy *standard-dynamics* 'process))
(set! (-> s4-0 reaction) default-collision-reaction)
(set! (-> s4-0 no-reaction) nothing)
(let ((t9-2 (method-of-object s4-0 dummy-29)))
1
(t9-2)
)
(dummy-29 s4-0 1)
(let ((s3-0 (new 'process 'collide-shape-prim-group s4-0 (the-as uint 5) 0)))
(set! (-> s3-0 prim-core collide-as) (the-as uint 2048))
(set! (-> s3-0 collide-with) (the-as uint 16))
@@ -228,10 +228,7 @@
(set! (-> s4-0 dynam) (copy *standard-dynamics* 'process))
(set! (-> s4-0 reaction) default-collision-reaction)
(set! (-> s4-0 no-reaction) nothing)
(let ((t9-2 (method-of-object s4-0 dummy-29)))
1
(t9-2)
)
(dummy-29 s4-0 1)
(let
((s3-0
(new