mirror of
https://github.com/open-goal/jak-project
synced 2026-08-16 13:17:34 -04:00
decomp: finish pelican | double-lurker | rolling-race-ring (#1020)
* decomp: finish `pelican` * decomp: finish `double-lurker` * decomp: finish `rolling-race-ring` * decomp: update draw-status related code * fix mistakes
This commit is contained in:
@@ -22907,7 +22907,7 @@
|
||||
(TODO-RENAME-48 (_type_) none 48) ;; object past to method 60 -- see citb-bunny
|
||||
(TODO-RENAME-49 (_type_ nav-enemy-info) float 49)
|
||||
(TODO-RENAME-50 (_type_ vector) symbol 50)
|
||||
(dummy-51 (_type_ vector) object 51) ;; ret - float | symbol
|
||||
(dummy-51 (_type_) object 51) ;; ret - float | symbol
|
||||
(dummy-52 (_type_ vector) symbol 52) ;; ret - symbol | vector
|
||||
(dummy-53 (_type_) symbol 53) ;; ret - symbol | none
|
||||
(dummy-54 (_type_) none 54)
|
||||
@@ -24225,28 +24225,29 @@
|
||||
:heap-base #xf0
|
||||
:size-assert #x160
|
||||
:flag-assert #x1400f00160
|
||||
(:states
|
||||
(pelican-wait-at-end symbol)
|
||||
(pelican-wait-at-nest symbol)
|
||||
pelican-circle
|
||||
(pelican-dive path-control curve-control uint)
|
||||
pelican-from-nest
|
||||
(pelican-explode symbol)
|
||||
pelican-spit
|
||||
(pelican-fly-to-end path-control int)
|
||||
(pelican-to-nest path-control int))
|
||||
)
|
||||
|
||||
;; - Functions
|
||||
|
||||
(define-extern pelican-fly (function (function int) (function int) none :behavior pelican))
|
||||
(define-extern pelican-fly (function (function pelican int) (function pelican int) none :behavior pelican))
|
||||
(define-extern pelican-path-update (function float int float float symbol quaternion :behavior pelican))
|
||||
(define-extern pelican-post (function none :behavior pelican))
|
||||
|
||||
;; - Unknowns
|
||||
|
||||
(define-extern *pelican-sg* skeleton-group)
|
||||
(define-extern pelican-wait-at-end (state pelican))
|
||||
(define-extern pelican-wait-at-nest (state symbol pelican))
|
||||
(define-extern pelican-circle (state pelican))
|
||||
(define-extern zero-func (function int))
|
||||
(define-extern *PELICAN-bank* pelican-bank)
|
||||
(define-extern pelican-dive (state path-control curve-control uint pelican))
|
||||
(define-extern pelican-from-nest (state pelican))
|
||||
(define-extern pelican-explode (state symbol pelican))
|
||||
(define-extern pelican-spit (state pelican))
|
||||
(define-extern pelican-fly-to-end (state path-control int pelican))
|
||||
(define-extern pelican-to-nest (state path-control int pelican))
|
||||
|
||||
|
||||
;; ----------------------
|
||||
@@ -26959,6 +26960,8 @@
|
||||
:size-assert #x1d8
|
||||
:heap-base #x170
|
||||
:flag-assert #x4c017001d8
|
||||
(:methods
|
||||
(dummy-51 (_type_ vector) symbol :replace 51))
|
||||
(:states
|
||||
green-eco-lurker-appear
|
||||
green-eco-lurker-appear-land
|
||||
@@ -33670,6 +33673,11 @@
|
||||
:size-assert #x1a0
|
||||
:heap-base #x130
|
||||
:flag-assert #x4c013001a0
|
||||
(:states
|
||||
double-lurker-top-on-shoulders
|
||||
double-lurker-top-resume
|
||||
(double-lurker-top-knocked-down object vector vector)
|
||||
double-lurker-top-on-shoulders-die)
|
||||
)
|
||||
|
||||
(deftype double-lurker (nav-enemy)
|
||||
@@ -33679,10 +33687,22 @@
|
||||
(buddy-dead? symbol :offset-assert 412)
|
||||
(buddy-handle handle :offset-assert 416) ; double-lurker-top
|
||||
)
|
||||
(:methods
|
||||
(initialize-collision (_type_) collide-shape-moving :replace 47)
|
||||
(dummy-53 (_type_ vector) symbol :replace 53))
|
||||
:method-count-assert 76
|
||||
:size-assert #x1a8
|
||||
:heap-base #x140
|
||||
:flag-assert #x4c014001a8
|
||||
(:states
|
||||
double-lurker-waiting-to-die
|
||||
double-lurker-resume
|
||||
double-lurker-break-apart
|
||||
double-lurker-both-knocked-back
|
||||
double-lurker-buddy-was-hit
|
||||
double-lurker-show-anims
|
||||
double-lurker-knocked-back
|
||||
)
|
||||
)
|
||||
|
||||
;; - Functions
|
||||
@@ -33692,22 +33712,11 @@
|
||||
|
||||
;; - Unknowns
|
||||
|
||||
(define-extern double-lurker-waiting-to-die (state double-lurker)) ;; unknown type
|
||||
(define-extern *double-lurker-sg* skeleton-group)
|
||||
(define-extern *double-lurker-when-both-nav-enemy-info* nav-enemy-info)
|
||||
(define-extern *double-lurker-nav-enemy-info* nav-enemy-info)
|
||||
(define-extern double-lurker-resume (state double-lurker)) ;; unknown type
|
||||
(define-extern double-lurker-break-apart (state double-lurker)) ;; unknown type
|
||||
(define-extern double-lurker-buddy-was-hit (state object object double-lurker-top double-lurker)) ;; unknown type
|
||||
(define-extern double-lurker-both-knocked-back (state double-lurker)) ;; unknown type
|
||||
(define-extern double-lurker-top-on-shoulders (state double-lurker-top)) ;; unknown type
|
||||
(define-extern double-lurker-top-resume (state double-lurker-top)) ;; unknown type
|
||||
(define-extern *double-lurker-top-sg* skeleton-group)
|
||||
(define-extern *double-lurker-top-nav-enemy-info* nav-enemy-info)
|
||||
(define-extern double-lurker-top-knocked-down (state object vector vector double-lurker-top)) ;; unknown type
|
||||
(define-extern double-lurker-top-on-shoulders-die (state double-lurker-top)) ;; unknown type
|
||||
(define-extern double-lurker-show-anims (state double-lurker)) ;; unknown type
|
||||
(define-extern double-lurker-knocked-back (state double-lurker)) ;; unknown type
|
||||
|
||||
|
||||
;; ----------------------
|
||||
@@ -34306,6 +34315,10 @@
|
||||
:size-assert #x130
|
||||
:heap-base #xc0
|
||||
:flag-assert #x1400c00130
|
||||
(:states
|
||||
race-ring-active
|
||||
race-ring-wait
|
||||
race-ring-idle)
|
||||
)
|
||||
|
||||
;; - Functions
|
||||
@@ -34318,9 +34331,6 @@
|
||||
;; - Unknowns
|
||||
|
||||
(define-extern *race-ring-sg* skeleton-group)
|
||||
(define-extern race-ring-active (state race-ring)) ;; unknown type
|
||||
(define-extern race-ring-wait (state race-ring)) ;; unknown type
|
||||
(define-extern race-ring-idle (state race-ring)) ;; unknown type
|
||||
|
||||
|
||||
;; ----------------------
|
||||
|
||||
@@ -3749,7 +3749,7 @@
|
||||
"(method 52 double-lurker)": [
|
||||
[16, "vector"],
|
||||
[32, "vector"],
|
||||
[48, "collide-mesh-cache-tri"]
|
||||
[48, "collide-tri-result"]
|
||||
],
|
||||
|
||||
"double-lurker-default-event-handler": [
|
||||
|
||||
@@ -3510,11 +3510,9 @@
|
||||
],
|
||||
|
||||
"(code race-ring-active)": [
|
||||
[242, "v1", "handle"],
|
||||
[245, "v1", "handle"],
|
||||
[[241, 249], "v1", "handle"],
|
||||
[253, "gp", "handle"],
|
||||
[269, "s5", "handle"],
|
||||
[272, "s5", "handle"]
|
||||
[[269, 276], "s5", "handle"]
|
||||
],
|
||||
|
||||
"(trans race-ring-active)": [[26, "a0", "part-tracker"]],
|
||||
@@ -5335,6 +5333,7 @@
|
||||
],
|
||||
|
||||
"(method 51 double-lurker)": [
|
||||
[6, "v1", "collide-shape-prim-group"],
|
||||
[18, "v1", "collide-shape-prim-group"],
|
||||
[22, "v1", "collide-shape-prim-group"]
|
||||
],
|
||||
@@ -7361,5 +7360,9 @@
|
||||
// [25, "a0", "uint"]
|
||||
],
|
||||
|
||||
"(anon-function 15 pelican)": [
|
||||
[24, "v1", "collectable"]
|
||||
],
|
||||
|
||||
"placeholder-do-not-add-below": []
|
||||
}
|
||||
|
||||
@@ -3842,5 +3842,20 @@
|
||||
}
|
||||
},
|
||||
|
||||
"(code pelican-spit)": {
|
||||
"vars": {
|
||||
"gp-1": ["gp-1", "handle"],
|
||||
"s4-0": ["s4-0", "handle"]
|
||||
}
|
||||
},
|
||||
|
||||
"(code race-ring-active)": {
|
||||
"vars": {
|
||||
"gp-2": ["gp-2", "handle"],
|
||||
"v1-65": ["v1-65", "handle"],
|
||||
"s5-2": ["s5-2", "handle"]
|
||||
}
|
||||
},
|
||||
|
||||
"aaaaaaaaaaaaaaaaaaaaaaa": {}
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -136,7 +136,7 @@
|
||||
(TODO-RENAME-48 (_type_) none 48)
|
||||
(TODO-RENAME-49 (_type_ nav-enemy-info) float 49)
|
||||
(TODO-RENAME-50 (_type_ vector) symbol 50)
|
||||
(dummy-51 (_type_ vector) object 51)
|
||||
(dummy-51 (_type_) object 51)
|
||||
(dummy-52 (_type_ vector) symbol 52)
|
||||
(dummy-53 (_type_) symbol 53)
|
||||
(dummy-54 (_type_) none 54)
|
||||
|
||||
@@ -17,6 +17,9 @@
|
||||
:method-count-assert 76
|
||||
:size-assert #x1d8
|
||||
:flag-assert #x4c017001d8
|
||||
(:methods
|
||||
(dummy-51 (_type_ vector) symbol :replace 51)
|
||||
)
|
||||
(:states
|
||||
green-eco-lurker-appear
|
||||
green-eco-lurker-appear-land
|
||||
@@ -392,7 +395,7 @@
|
||||
(set! (-> v1-3 w) (-> obj collide-info root-prim local-sphere w))
|
||||
)
|
||||
(if (not (TODO-RENAME-50 obj arg0))
|
||||
(return (the-as object #t))
|
||||
(return #t)
|
||||
)
|
||||
)
|
||||
#f
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
+430
-723
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
+1218
File diff suppressed because it is too large
Load Diff
+1
-1
@@ -182,7 +182,7 @@
|
||||
(TODO-RENAME-48 (_type_) none 48)
|
||||
(TODO-RENAME-49 (_type_ nav-enemy-info) float 49)
|
||||
(TODO-RENAME-50 (_type_ vector) symbol 50)
|
||||
(dummy-51 (_type_ vector) object 51)
|
||||
(dummy-51 (_type_) object 51)
|
||||
(dummy-52 (_type_ vector) symbol 52)
|
||||
(dummy-53 (_type_) symbol 53)
|
||||
(dummy-54 (_type_) none 54)
|
||||
|
||||
+4
-2
@@ -12,6 +12,9 @@
|
||||
:method-count-assert 76
|
||||
:size-assert #x1d8
|
||||
:flag-assert #x4c017001d8
|
||||
(:methods
|
||||
(dummy-51 (_type_ vector) symbol :replace 51)
|
||||
)
|
||||
(:states
|
||||
green-eco-lurker-appear
|
||||
green-eco-lurker-appear-land
|
||||
@@ -418,7 +421,6 @@
|
||||
)
|
||||
|
||||
;; definition for method 51 of type green-eco-lurker
|
||||
;; INFO: Return type mismatch symbol vs object.
|
||||
;; Used lq/sq
|
||||
(defmethod dummy-51 green-eco-lurker ((obj green-eco-lurker) (arg0 vector))
|
||||
(when (or (not *target*) (>= (vector-vector-xz-distance arg0 (target-pos 0)) 36864.0))
|
||||
@@ -427,7 +429,7 @@
|
||||
(set! (-> v1-3 w) (-> obj collide-info root-prim local-sphere w))
|
||||
)
|
||||
(if (not (TODO-RENAME-50 obj arg0))
|
||||
(return (the-as object #t))
|
||||
(return #t)
|
||||
)
|
||||
)
|
||||
#f
|
||||
|
||||
+17
-20
@@ -288,7 +288,7 @@ baby-spider-default-event-handler
|
||||
|
||||
;; definition for method 51 of type baby-spider
|
||||
;; INFO: Return type mismatch float vs object.
|
||||
(defmethod dummy-51 baby-spider ((obj baby-spider) (arg0 vector))
|
||||
(defmethod dummy-51 baby-spider ((obj baby-spider))
|
||||
(let* ((f0-0 (rand-vu-float-range 0.0 1.0))
|
||||
(f1-1 (+ 1.0 (* 2.0 f0-0)))
|
||||
(f2-2 f1-1)
|
||||
@@ -575,26 +575,23 @@ baby-spider-default-event-handler
|
||||
(set! (-> self wiggle-angle) 0.0)
|
||||
(set! (-> self chase-rest-time) (rand-vu-int-range 300 1200))
|
||||
(ja-channel-push! 1 51)
|
||||
(let* ((gp-0 (-> self skel root-channel 0))
|
||||
(t9-2 joint-control-channel-group-eval!)
|
||||
(a0-2 gp-0)
|
||||
(a1-2 (-> self draw art-group data 7))
|
||||
)
|
||||
(t9-2 a0-2 (the-as art-joint-anim a1-2) num-func-identity)
|
||||
(let ((gp-0 (-> self skel root-channel 0)))
|
||||
(joint-control-channel-group-eval!
|
||||
gp-0
|
||||
(the-as art-joint-anim (-> self draw art-group data 7))
|
||||
num-func-identity
|
||||
)
|
||||
(set! (-> gp-0 frame-num) 0.0)
|
||||
(while #t
|
||||
(when (>= (- (-> *display* base-frame-counter) (-> self wiggle-time)) 300)
|
||||
(set! (-> self wiggle-time) (-> *display* base-frame-counter))
|
||||
(dummy-51 self (the-as vector a1-2))
|
||||
)
|
||||
(suspend)
|
||||
(let ((a0-5 (-> self skel root-channel 0)))
|
||||
(set! (-> a0-5 param 0) 1.0)
|
||||
(let ((t9-4 joint-control-channel-group-eval!))
|
||||
(set! a1-2 (the-as art-element #f))
|
||||
(t9-4 a0-5 (the-as art-joint-anim a1-2) num-func-loop!)
|
||||
)
|
||||
)
|
||||
)
|
||||
(while #t
|
||||
(when (>= (- (-> *display* base-frame-counter) (-> self wiggle-time)) 300)
|
||||
(set! (-> self wiggle-time) (-> *display* base-frame-counter))
|
||||
(dummy-51 self)
|
||||
)
|
||||
(suspend)
|
||||
(let ((a0-5 (-> self skel root-channel 0)))
|
||||
(set! (-> a0-5 param 0) 1.0)
|
||||
(joint-control-channel-group-eval! a0-5 (the-as art-joint-anim #f) num-func-loop!)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
|
||||
+15
-34
@@ -175,7 +175,7 @@
|
||||
|
||||
;; definition for method 51 of type muse
|
||||
;; INFO: Return type mismatch int vs object.
|
||||
(defmethod dummy-51 muse ((obj muse) (arg0 vector))
|
||||
(defmethod dummy-51 muse ((obj muse))
|
||||
(dotimes (s5-0 2)
|
||||
(let ((v1-2 (rand-vu-int-range 3 (+ (-> obj node-list length) -1))))
|
||||
(sp-launch-particles-var
|
||||
@@ -193,13 +193,8 @@
|
||||
|
||||
;; definition for method 39 of type muse
|
||||
(defmethod common-post muse ((obj muse))
|
||||
(let* ((a0-1 *art-control*)
|
||||
(t9-0 (method-of-object a0-1 spool-push))
|
||||
(a1-0 (-> obj anim name))
|
||||
)
|
||||
(t9-0 a0-1 a1-0 0 obj -99.0)
|
||||
(dummy-51 obj (the-as vector a1-0))
|
||||
)
|
||||
(spool-push *art-control* (-> obj anim name) 0 obj -99.0)
|
||||
(dummy-51 obj)
|
||||
((method-of-type nav-enemy common-post) obj)
|
||||
(none)
|
||||
)
|
||||
@@ -289,13 +284,8 @@ nav-enemy-default-event-handler
|
||||
(joint-control-channel-group! a0-9 (the-as art-joint-anim (-> self draw art-group data 3)) num-func-seek!)
|
||||
)
|
||||
(until (ja-done? 0)
|
||||
(let* ((a0-10 *art-control*)
|
||||
(t9-7 (method-of-object a0-10 spool-push))
|
||||
(a1-5 (-> self anim name))
|
||||
)
|
||||
(t9-7 a0-10 a1-5 0 self -99.0)
|
||||
(dummy-51 self (the-as vector a1-5))
|
||||
)
|
||||
(spool-push *art-control* (-> self anim name) 0 self -99.0)
|
||||
(dummy-51 self)
|
||||
(suspend)
|
||||
(let ((a0-12 (-> self skel root-channel 0)))
|
||||
(set! (-> a0-12 param 0) (the float (+ (-> a0-12 frame-group data 0 length) -1)))
|
||||
@@ -556,18 +546,16 @@ nav-enemy-default-event-handler
|
||||
(ja-post)
|
||||
(clear-collide-with-as (-> self collide-info))
|
||||
(send-event *target* 'trans 'reset)
|
||||
(let ((gp-4
|
||||
(ppointer->handle
|
||||
(birth-pickup-at-point
|
||||
(target-pos 0)
|
||||
(pickup-type fuel-cell)
|
||||
(the float (-> self entity extra perm task))
|
||||
#f
|
||||
self
|
||||
(the-as fact-info #f)
|
||||
(let ((gp-4 (ppointer->handle (birth-pickup-at-point
|
||||
(target-pos 0)
|
||||
(pickup-type fuel-cell)
|
||||
(the float (-> self entity extra perm task))
|
||||
#f
|
||||
self
|
||||
(the-as fact-info #f)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(send-event (handle->process (the-as handle gp-4)) 'pickup)
|
||||
(while (handle->process (the-as handle gp-4))
|
||||
@@ -586,14 +574,7 @@ nav-enemy-default-event-handler
|
||||
(none)
|
||||
)
|
||||
:post
|
||||
(behavior ()
|
||||
(local-vars (a1-0 none))
|
||||
(dummy-51 self (the-as vector a1-0))
|
||||
(level-hint-surpress!)
|
||||
(kill-current-level-hint '() '() 'exit)
|
||||
(ja-post)
|
||||
(none)
|
||||
)
|
||||
(behavior () (dummy-51 self) (level-hint-surpress!) (kill-current-level-hint '() '() 'exit) (ja-post) (none))
|
||||
)
|
||||
|
||||
;; definition for symbol *muse-nav-enemy-info*, type nav-enemy-info
|
||||
|
||||
+1320
File diff suppressed because it is too large
Load Diff
+1325
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user