decomp: finish mistycannon (#1009)

* stuck: a bit more progress in `snow-ball`

* decomp: finish `mistycannon`

* address feedback
This commit is contained in:
Tyler Wilding 2021-12-15 21:19:22 -05:00 committed by GitHub
parent 604a8630f3
commit 574a61e02a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 4229 additions and 49 deletions

View File

@ -977,6 +977,7 @@
(daxter-screaming-jump #x290)
(daxter-wahoo-jump #x291)
(daxter-get-some #x292)
(collectables-scout-flies-red-boxes #x295)
(found-all-scout-flies #x296)
@ -23625,6 +23626,10 @@
(:methods
(spawn-part (_type_) none 20)
)
(:states
mistycannon-missile-idle
mistycannon-missile-explode
mistycannon-missile-in-water)
)
(deftype mistycannon-init-data (structure)
@ -23669,9 +23674,15 @@
(:methods
(rotate! (_type_ float) none 20)
(tilt! (_type_ float) none 21)
(dummy-22 (_type_ float float float) none 22)
(dummy-22 (_type_ float float float) none 22) ;; can return a #f is postbindinfo-ok is false
(dummy-23 (_type_) none 23)
)
(:states
mistycannon-idle
mistycannon-waiting-for-player
mistycannon-waiting-for-player-to-fuck-off
mistycannon-aim-at-player
mistycannon-player-control)
)
(deftype quadratic-solution (structure)
@ -23698,12 +23709,12 @@
;; - Functions
(define-extern mistycannon-prebind-function (function mistycannon object))
(define-extern mistycannon-prebind-function (function mistycannon int mistycannon none))
(define-extern mistycannon-postbind-function (function mistycannon none))
(define-extern angle-tracker-init-range! (function angle-tracker float float float none))
(define-extern mistycannon-pick-random-target-point (function float :behavior mistycannon))
(define-extern angle-tracker-seek! (function angle-tracker float symbol))
(define-extern mistycannon-do-aim (function vector vector none :behavior mistycannon))
(define-extern mistycannon-do-aim (function vector vector none :behavior mistycannon)) ;; can return a #f is postbindinfo-ok is false
(define-extern mistycannon-find-trajectory (function trajectory-params none :behavior mistycannon))
(define-extern solve-missile-velocity (function trajectory-params float none))
(define-extern spawn-mistycannon-missile (function process-tree vector vector float float float float entity none))
@ -23712,22 +23723,14 @@
(define-extern mistycannon-collision-reaction (function collide-shape-moving collide-shape-intersect none))
(define-extern angle-tracker-get-value (function angle-tracker float))
(define-extern angle-tracker-set-value (function angle-tracker float float))
(define-extern solve-missile-tilt (function trajectory-params float float float float symbol))
(define-extern mistycannon-find-best-solution (function quadratic-solution none :behavior mistycannon))
(define-extern solve-missile-tilt (function quadratic-solution float float float float symbol))
(define-extern mistycannon-find-best-solution (function quadratic-solution int :behavior mistycannon))
;; - Unknowns
(define-extern *mistycannon-sg* skeleton-group)
(define-extern mistycannon-idle (state mistycannon)) ;; unknown type
(define-extern mistycannon-waiting-for-player (state mistycannon)) ;; unknown type
(define-extern cam-mistycannon (state camera-slave)) ;; unknown type
(define-extern mistycannon-waiting-for-player-to-fuck-off (state mistycannon)) ;; unknown type
(define-extern mistycannon-aim-at-player (state mistycannon)) ;; unknown type
(define-extern mistycannon-player-control (state mistycannon)) ;; unknown type
(define-extern *mistycannon-missile-sg* skeleton-group)
(define-extern mistycannon-missile-idle (state mistycannon-missile)) ;; unknown type
(define-extern mistycannon-missile-explode (state mistycannon-missile)) ;; unknown type
(define-extern mistycannon-missile-in-water (state mistycannon-missile)) ;; unknown type
;; ----------------------
@ -35232,7 +35235,8 @@
)
(deftype snow-ball (process)
((state-time uint64 :offset-assert 112)
((child-override (pointer snow-ball-roller) :score 100 :offset 20)
(state-time uint64 :offset-assert 112)
(last-path-picked int32 :offset-assert 120)
(same-path-picked-count int32 :offset-assert 124)
(delay-til-next int32 :offset-assert 128)
@ -35243,8 +35247,8 @@
:heap-base #x20
:flag-assert #x100020008c
(:methods
(dummy-14 (_type_ vector float int) none 14) ;; TODO - im pretty sure the 2nd arg is snow-ball-junction related!
(dummy-15 (_type_ vector int) none 15) ;; TODO - same type as above
(dummy-14 (_type_ (inline-array snow-ball-junction) float int) symbol 14)
(dummy-15 (_type_ (inline-array snow-ball-junction) int) none 15) ;; TODO - same type as above
)
)

View File

@ -312,9 +312,7 @@
// all unchecked and in level DGO code
"(anon-function 21 plant-boss)", // CFG
"mistycannon-find-best-solution",
"target-flut-falling-anim-trans", // CFG failure
"(anon-function 36 mistycannon)",
"(anon-function 6 title-obs)",
"(anon-function 43 maincave-obs)",
"(anon-function 2 target-tube)",

View File

@ -1895,8 +1895,8 @@
],
"snow-ball": [
["L86", "snow-ball-path-info"],
["L87", "snow-ball-path-info"],
["L86", "(inline-array vector)", 2], // likely wrong, but its 8 floats -- maybe its timing related, like a ticky? but those are int64s
["L87", "(inline-array vector)", 2], // likely wrong, but its 8 floats -- maybe its timing related, like a ticky? but those are int64s
["L89", "attack-info"]
],

View File

@ -5437,7 +5437,7 @@
],
"(code mistycannon-missile-in-water)": [
[16, "event-message-block"],
[16, "vector"],
[32, "vector"]
],
@ -5450,7 +5450,7 @@
],
"(code mistycannon-missile-explode)": [
[16, "vector2w"]
[16, "overlaps-others-params"]
],
"(event mistycannon-missile-explode)": [

View File

@ -6698,6 +6698,7 @@
],
"(code mistycannon-missile-idle)": [
[110, "v0", "sound-rpc-set-param"],
[207, "v1", "art-joint-anim"],
[257, "v1", "art-joint-anim"]
],
@ -6985,5 +6986,23 @@
[[3, 99], "s4", "joint-mod-tracker"]
],
"(method 14 snow-ball)": [
[16, "v1", "vector"],
[23, "v1", "vector"],
[30, "v1", "vector"]
],
"(method 7 snow-ball)": [
[26, "t9", "(function process-drawable int process-drawable)"]
],
"(method 11 mistycannon)": [
["_stack_", 16, "res-tag"],
["_stack_", 32, "res-tag"],
["_stack_", 48, "res-tag"],
[337, "v0", "(pointer float)"],
[367, "v0", "(pointer float)"]
],
"placeholder-do-not-add-below": []
}

View File

@ -194,6 +194,7 @@
(daxter-screaming-jump #x290)
(daxter-wahoo-jump #x291)
(daxter-get-some #x292)
(collectables-scout-flies-red-boxes #x295)
(found-all-scout-flies #x296)

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff