Merge branch 'master' of github.com:water111/jak-project into w/sprite-distort-stub

This commit is contained in:
water
2021-08-14 13:07:17 -04:00
32 changed files with 8887 additions and 960 deletions
+5 -1
View File
@@ -56,4 +56,8 @@ tasks:
ignore_error: true
- python ./scripts/update_decomp_reference.py ./failures ./test/decompiler/reference/
- task: offline-tests
find-label-types:
cmds:
- python ./scripts/next-decomp-file.py --file "{{.FILE}}"
- task: decomp
- python ./scripts/find-label-types.py --file "{{.FILE}}"
+240 -553
View File
@@ -640,15 +640,18 @@
:bitfield #t
:type uint32
(display-marks 0)
(bit0 0) ;; TODO - nav-enemy::45
(bit1 1)
(bit2 2)
(bit3 3)
(bit3 3) ;; TODO - nav-enemy::45
(bit4 4)
(bit5 5)
(bit6 6)
(bit7 7)
(bit5 5) ;; TODO - nav-enemy::45
(bit6 6) ;; TODO - nav-enemy::45
(bit7 7) ;; TODO - nav-enemy::45
(bit8 8)
(bit10 10) ;; TODO - nav-enemy::nav-enemy-patrol-post
(bit13 13)
(bit19 19) ;; TODO - nav-enemy::lambda::17
)
(defenum task-status
@@ -9746,7 +9749,7 @@
:flag-assert #xc00000028
(:methods
(new (symbol type process pickup-type float) _type_ 0)
(dummy-9 () none 9)
(TODO-RENAME-9 (_type_ symbol process-tree fact-info int) uint 9) ;; See nav-enemy::process-drawable-death-event-handler
(reset! (_type_ symbol) none 10)
(dummy-11 (_type_) float 11)
)
@@ -10836,30 +10839,11 @@
:flag-assert #x1c0000004c
(:methods
(new (symbol type basic uint) _type_ 0)
(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)
)
)
(deftype collide-shape-prim-mesh (collide-shape-prim)
((mesh basic :offset-assert 72)
((mesh collide-mesh :offset-assert 72)
(mesh-id int32 :offset-assert 76)
(mesh-cache-id uint64 :offset-assert 80)
(mesh-cache-tris uint32 :offset-assert 88)
@@ -10869,25 +10853,6 @@
:flag-assert #x1d0000005c
(:methods
(new (symbol type basic uint uint) _type_ 0)
(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)
)
)
@@ -10902,25 +10867,6 @@
:flag-assert #x1e00000054
(:methods
(new (symbol type basic uint int) _type_ 0)
(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)
)
@@ -10934,8 +10880,8 @@
(pat-ignore-mask pat-surface :offset-assert 148)
(event-self basic :offset-assert 152)
(event-other basic :offset-assert 156)
(root-prim collide-shape-prim :offset-assert 160)
(riders basic :offset-assert 164)
(root-prim collide-shape-prim :offset-assert 160)
(riders collide-sticky-rider-group :offset-assert 164)
(backup-collide-as uint64 :offset-assert 168)
(backup-collide-with uint64 :offset-assert 176)
)
@@ -10949,7 +10895,7 @@
(dummy-30 () none 30)
(dummy-31 () none 31)
(dummy-32 () none 32)
(dummy-33 () none 33)
(dummy-33 (_type_ vector uint) none 33)
(dummy-34 () none 34)
(dummy-35 (_type_) none 35)
(dummy-36 () none 36)
@@ -10970,7 +10916,7 @@
(dummy-51 () none 51)
(dummy-52 () none 52)
(dummy-53 () none 53)
(dummy-54 () none 54)
(dummy-54 (_type_ int int) none 54)
(dummy-55 () none 55)
)
)
@@ -11007,12 +10953,12 @@
:flag-assert #x41000001bc
(:methods
(dummy-56 () none 56)
(dummy-57 () none 57)
(dummy-58 () none 58)
(dummy-59 () none 59)
(dummy-60 () none 60)
(dummy-57 (_type_ vector) none 57)
(dummy-58 (_type_ vector) none 58)
(dummy-59 (_type_ vector uint float symbol symbol symbol) none 59)
(dummy-60 (_type_ float float symbol uint) none 60)
(dummy-61 () none 61)
(dummy-62 () none 62)
(dummy-62 (_type_ vector float) vector 62)
(dummy-63 () none 63)
(dummy-64 () none 64)
)
@@ -11087,8 +11033,8 @@
;; - Types
(deftype touching-prim (structure)
((cprim basic :offset-assert 0)
(has-tri? basic :offset-assert 4)
((cprim collide-shape-prim :offset-assert 0) ;; a big guess, there's a few that meet this name
(has-tri? symbol :offset-assert 4)
(tri collide-tri-result :inline :offset-assert 16)
)
:method-count-assert 9
@@ -11099,7 +11045,7 @@
(deftype touching-prims-entry (structure)
((next touching-prims-entry :offset-assert 0)
(prev touching-prims-entry :offset-assert 4)
(allocated? basic :offset-assert 8)
(allocated? symbol :offset-assert 8)
(u float :offset-assert 12)
(prim1 touching-prim :inline :offset-assert 16)
(prim2 touching-prim :inline :offset-assert 128)
@@ -11132,8 +11078,8 @@
)
(deftype touching-shapes-entry (structure)
((cshape1 basic :offset-assert 0)
(cshape2 basic :offset-assert 4)
((cshape1 collide-shape :offset-assert 0)
(cshape2 collide-shape :offset-assert 4)
(resolve-u int8 :offset-assert 8)
(head touching-prims-entry :offset-assert 12)
)
@@ -11145,7 +11091,7 @@
(dummy-9 () none 9)
(dummy-10 () none 10)
(dummy-11 () none 11)
(dummy-12 () none 12)
(prims-touching? (_type_ collide-shape-moving uint) touching-prims-entry 12) ; this one!
(dummy-13 () none 13)
(dummy-14 () none 14)
(dummy-15 () none 15)
@@ -14505,24 +14451,24 @@
(new (symbol type collide-shape int float) _type_)
(dummy-9 () none 9)
(point-in-bounds? (_type_ vector) symbol 10)
(dummy-11 () none 11)
(dummy-11 (_type_ vector) none 11)
(dummy-12 () none 12)
(dummy-13 () none 13)
(dummy-14 () none 14)
(set-target-pos! (_type_ vector) none 15)
(dummy-16 () none 16)
(dummy-16 (_type_ vector) symbol 16) ; see - nav-enemy-test-point-in-nav-mesh?
(dummy-17 () none 17)
(dummy-18 () none 18)
(dummy-19 () none 19)
(dummy-19 (_type_ vector collide-shape-moving vector float) 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-24 (_type_ float symbol) none 24)
(dummy-25 (_type_ vector float) symbol 25) ; see - nav-enemy-test-point-near-nav-mesh?
(dummy-26 (_type_) none 26)
(dummy-27 () none 27)
(dummy-28 () none 28)
(dummy-28 (_type_ int) none 28)
(should-display? (_type_) symbol 29)
(dummy-30 () none 30)
(dummy-31 () none 31)
@@ -20172,7 +20118,7 @@
(define-extern vent-standard-event-handler function)
(define-extern ecovalve-init-by-other function)
(define-extern birth-pickup-at-point function)
(define-extern birth-pickup-at-point (function vector int float symbol process symbol basic)) ;; TODO - not confirmed at all! (the symbols are wrong)
(define-extern fuel-cell-pick-anim function)
(define-extern othercam-init-by-other function)
(define-extern fuel-cell-animate function)
@@ -20283,7 +20229,7 @@
;; - Functions
(define-extern eco-blue-glow function)
(define-extern cloud-track function)
(define-extern cloud-track (function none))
;; ----------------------
@@ -20294,15 +20240,15 @@
;; - Types
; (deftype crate-bank (basic)
; ((COLLIDE_YOFF float :offset-assert 4)
; (COLLIDE_RADIUS float :offset-assert 8)
; (DARKECO_EXPLODE_RADIUS float :offset-assert 12)
; )
; :method-count-assert 9
; :size-assert #x10
; :flag-assert #x900000010
; )
(deftype crate-bank (basic)
((COLLIDE_YOFF float :offset-assert 4)
(COLLIDE_RADIUS float :offset-assert 8)
(DARKECO_EXPLODE_RADIUS float :offset-assert 12)
)
:method-count-assert 9
:size-assert #x10
:flag-assert #x900000010
)
(deftype crate (process-drawable)
((smush smush-control :inline :offset-assert 176)
@@ -20333,134 +20279,38 @@
)
)
; (deftype barrel (crate)
; ()
; :method-count-assert 30
; :size-assert #x100
; :heap-base #x90
; :flag-assert #x1e00900100
; ;; not enough basic ops
; (: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)
; )
; )
(deftype barrel (crate)
()
:method-count-assert 30
:heap-base #x90
:size-assert #x100
:flag-assert #x1e00900100
)
; (deftype bucket (crate)
; ()
; :method-count-assert 30
; :size-assert #x100
; :heap-base #x90
; :flag-assert #x1e00900100
; ;; not enough basic ops
; (: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)
; )
; )
(deftype bucket (crate)
()
:method-count-assert 30
:heap-base #x90
:size-assert #x100
:flag-assert #x1e00900100
)
; (deftype crate-buzzer (crate)
; ()
; :method-count-assert 30
; :size-assert #x100
; :heap-base #x90
; :flag-assert #x1e00900100
; ;; not enough basic ops
; (: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)
; )
; )
(deftype crate-buzzer (crate)
()
:method-count-assert 30
:heap-base #x90
:size-assert #x100
:flag-assert #x1e00900100
)
; (deftype pickup-spawner (crate)
; ((blocker basic :offset-assert 256)
; )
; :method-count-assert 30
; :size-assert #x104
; :heap-base #xa0
; :flag-assert #x1e00a00104
; ;; inherited inspect of crate
; (: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)
; )
; )
(deftype pickup-spawner (crate)
((blocker basic :offset-assert 256)
)
:method-count-assert 30
:heap-base #xa0
:size-assert #x104
:flag-assert #x1e00a00104
)
;; - Functions
@@ -22175,18 +22025,18 @@
(shadow-max-y meters :offset-assert 168)
(shadow-min-y meters :offset-assert 172)
(shadow-locus-dist meters :offset-assert 176)
(use-align basic :offset-assert 180)
(draw-shadow basic :offset-assert 184)
(move-to-ground basic :offset-assert 188)
(hover-if-no-ground basic :offset-assert 192)
(use-momentum basic :offset-assert 196)
(use-flee basic :offset-assert 200)
(use-proximity-notice basic :offset-assert 204)
(use-jump-blocked basic :offset-assert 208)
(use-jump-patrol basic :offset-assert 212)
(use-align symbol :offset-assert 180)
(draw-shadow symbol :offset-assert 184)
(move-to-ground symbol :offset-assert 188)
(hover-if-no-ground symbol :offset-assert 192)
(use-momentum symbol :offset-assert 196)
(use-flee symbol :offset-assert 200)
(use-proximity-notice symbol :offset-assert 204)
(use-jump-blocked symbol :offset-assert 208)
(use-jump-patrol symbol :offset-assert 212)
(gnd-collide-with uint64 :offset-assert 216)
(debug-draw-neck basic :offset-assert 224)
(debug-draw-jump basic :offset-assert 228)
(debug-draw-neck symbol :offset-assert 224)
(debug-draw-jump symbol :offset-assert 228)
)
:method-count-assert 9
:size-assert #xe8
@@ -22194,7 +22044,9 @@
)
(deftype nav-enemy (process-drawable)
((hit-from-dir vector :inline :offset-assert 176)
((collide-info collide-shape-moving :score 100 :offset 112)
(enemy-info fact-info-enemy :score 100 :offset 144)
(hit-from-dir vector :inline :offset-assert 176)
(event-param-point vector :inline :offset-assert 192)
(frustration-point vector :inline :offset-assert 208)
(jump-dest vector :inline :offset-assert 224)
@@ -22208,7 +22060,7 @@
(turn-time uint64 :offset-assert 312)
(frustration-time uint64 :offset-assert 320)
(speed-scale float :offset-assert 328)
(neck basic :offset-assert 332)
(neck joint-mod :offset-assert 332) ; this is what `neck` is on the pelican
(reaction-time uint64 :offset-assert 336)
(notice-time uint64 :offset-assert 344)
(state-timeout uint64 :offset-assert 352)
@@ -22217,7 +22069,7 @@
(nav-enemy-flags uint32 :offset-assert 376)
(incomming-attack-id uint64 :offset-assert 384)
(jump-return-state basic :offset-assert 392)
(rand-gen basic :offset-assert 396)
(rand-gen random-generator :offset-assert 396)
)
:heap-base #x120
:method-count-assert 76
@@ -22239,48 +22091,48 @@
(nav-enemy-stare () none 31) ;; state
(nav-enemy-stop-chase () none 32) ;; state
(nav-enemy-victory () none 33) ;; state
(dummy-34 () none 34)
(dummy-35 () none 35)
(dummy-36 () none 36)
(dummy-37 () none 37)
(dummy-38 () none 38)
(dummy-39 () none 39)
(dummy-40 () none 40)
(dummy-41 () none 41)
(dummy-42 () none 42)
(dummy-43 () none 43)
(dummy-44 () none 44)
(dummy-45 () none 45)
(dummy-46 () none 46)
(dummy-47 () none 47)
(dummy-48 () none 48)
(dummy-49 () none 49)
(dummy-50 () none 50)
(dummy-51 () none 51)
(dummy-52 () none 52)
(dummy-53 () none 53)
(dummy-54 () none 54)
(dummy-55 () none 55)
(dummy-56 () none 56)
(dummy-57 () none 57)
(dummy-58 () none 58)
(dummy-59 () none 59)
(dummy-60 () none 60)
(dummy-61 () none 61)
(dummy-62 () none 62)
(dummy-63 () none 63)
(dummy-64 () none 64)
(dummy-65 () none 65)
(dummy-66 () none 66)
(dummy-67 () none 67)
(dummy-68 () none 68)
(dummy-69 () none 69)
(dummy-70 () none 70)
(dummy-71 () none 71)
(dummy-72 () none 72)
(dummy-73 () none 73)
(dummy-74 () none 74)
(dummy-75 () none 75)
(dummy-34 (_type_) none 34)
(dummy-35 (_type_) none 35)
(dummy-36 (_type_) none 36)
(TODO-RENAME-37 (_type_) none 37)
(TODO-RENAME-38 (_type_) none 38)
(TODO-RENAME-39 (_type_) none 39)
(dummy-40 (_type_) none 40)
(dummy-41 (_type_) none 41)
(TODO-RENAME-42 (_type_) int 42)
(dummy-43 (_type_ process event-message-block) object 43)
(dummy-44 (_type_ process event-message-block) object 44)
(TODO-RENAME-45 (_type_ nav-enemy-info) none 45)
(TODO-RENAME-46 (_type_ float) basic 46)
(TODO-RENAME-47 (_type_) none 47) ;; - Stubbed
(TODO-RENAME-48 (_type_) none 48) ;; - Stubbed
(TODO-RENAME-49 (_type_ nav-enemy-info) float 49)
(TODO-RENAME-50 (_type_ vector) symbol 50)
(dummy-51 (_type_) none 51)
(dummy-52 (_type_) none 52)
(dummy-53 (_type_) none 53)
(dummy-54 (_type_) none 54)
(dummy-55 (_type_) none 55)
(dummy-56 (_type_) none 56)
(dummy-57 (_type_) none 57)
(dummy-58 (_type_) none 58)
(TODO-RENAME-59 (_type_) none 59)
(dummy-60 (_type_) none 60)
(dummy-61 (_type_) none 61)
(dummy-62 (_type_) none 62)
(dummy-63 (_type_) none 63)
(dummy-64 (_type_) none 64)
(dummy-65 (_type_) none 65)
(dummy-66 (_type_) none 66)
(dummy-67 (_type_) symbol 67)
(dummy-68 (_type_) none 68)
(dummy-69 (_type_) none 69)
(dummy-70 (_type_) none 70)
(dummy-71 (_type_) none 71)
(dummy-72 (_type_ process event-message-block) object 72) ;; TODO - args unknown, 3rd arg contains a touching-shapes-entry offset 16/20
(TODO-RENAME-73 (_type_ process) symbol 73)
(dummy-74 (_type_) none 74)
(dummy-75 (_type_) none 75)
)
)
@@ -22293,57 +22145,57 @@
;; - Functions
(define-extern nav-enemy-rnd-int-range function)
(define-extern nav-enemy-initialize-jump function)
(define-extern nav-enemy-neck-control-look-at function)
(define-extern nav-enemy-facing-point? function)
(define-extern nav-enemy-turn-to-face-point function)
(define-extern nav-enemy-execute-jump function)
(define-extern nav-enemy-jump-land-anim function)
(define-extern nav-enemy-rnd-float-range function)
(define-extern nav-enemy-common-post function)
(define-extern nav-enemy-execute-custom-jump function)
(define-extern nav-enemy-initialize-custom-jump function)
(define-extern nav-enemy-simple-post function)
(define-extern nav-enemy-fall-and-play-death-anim function)
(define-extern nav-enemy-neck-control-inactive function)
(define-extern nav-enemy-frustrated? function)
(define-extern nav-enemy-player-at-frustration-point? function)
(define-extern nav-enemy-reset-frustration function)
(define-extern nav-enemy-rnd-go-idle? function)
(define-extern nav-enemy-notice-player? function)
(define-extern nav-enemy-turn-to-face-dir function)
(define-extern nav-enemy-facing-direction? function)
(define-extern nav-enemy-test-point-near-nav-mesh? function)
(define-extern nav-enemy-travel-post function)
(define-extern nav-enemy-get-new-patrol-point function)
(define-extern nav-enemy-set-hit-from-direction function)
(define-extern nav-enemy-send-attack function)
(define-extern nav-enemy-rnd-int-count function)
(define-extern nav-enemy-rnd-float function)
(define-extern nav-enemy-rnd-percent? function)
(define-extern nav-enemy-default-event-handler function)
(define-extern nav-enemy-jump-event-handler function)
(define-extern process-drawable-death-event-handler function)
(define-extern nav-enemy-patrol-post function)
(define-extern nav-enemy-chase-post function)
(define-extern nav-enemy-flee-post function)
(define-extern nav-enemy-face-player-post function)
(define-extern nav-enemy-falling-post function)
(define-extern nav-enemy-death-post function)
(define-extern nav-enemy-player-vulnerable? function)
(define-extern nav-enemy-facing-player? function)
(define-extern nav-enemy-test-nav-mesh-intersection-xz? function)
(define-extern nav-enemy-test-point-in-nav-mesh? function)
(define-extern nav-enemy-set-base-collide-sphere-collide-with function)
(define-extern ja-group-index? function)
(define-extern nav-enemy-jump-post function)
(define-extern nav-enemy-jump-land-post function)
(define-extern nav-enemy-init-by-other function)
(define-extern nav-enemy-rnd-int-range (function int int int))
(define-extern nav-enemy-initialize-jump (function vector none :behavior nav-enemy))
(define-extern nav-enemy-neck-control-look-at (function none :behavior nav-enemy))
(define-extern nav-enemy-facing-point? (function vector float symbol :behavior nav-enemy))
(define-extern nav-enemy-turn-to-face-point (function vector float none :behavior nav-enemy))
(define-extern nav-enemy-execute-jump (function none :behavior nav-enemy))
(define-extern nav-enemy-jump-land-anim (function none :behavior nav-enemy)) ;; TODO
(define-extern nav-enemy-rnd-float-range (function float float float :behavior nav-enemy))
(define-extern nav-enemy-common-post (function none :behavior nav-enemy)) ;; TODO not confirmed
(define-extern nav-enemy-execute-custom-jump (function int float float none :behavior nav-enemy))
(define-extern nav-enemy-initialize-custom-jump (function vector symbol float float float none :behavior nav-enemy))
(define-extern nav-enemy-simple-post (function none :behavior nav-enemy)) ;; TODO not confirmed
(define-extern nav-enemy-fall-and-play-death-anim (function art-joint-anim float float float int none :behavior nav-enemy)) ;; second arg is whatever is passed to align-control::11
(define-extern nav-enemy-neck-control-inactive (function none :behavior nav-enemy))
(define-extern nav-enemy-frustrated? (function symbol :behavior nav-enemy))
(define-extern nav-enemy-player-at-frustration-point? (function symbol :behavior nav-enemy))
(define-extern nav-enemy-reset-frustration (function none :behavior nav-enemy))
(define-extern nav-enemy-rnd-go-idle? (function float symbol))
(define-extern nav-enemy-notice-player? (function symbol :behavior nav-enemy))
(define-extern nav-enemy-turn-to-face-dir (function vector float none :behavior nav-enemy))
(define-extern nav-enemy-facing-direction? (function vector float symbol :behavior nav-enemy))
(define-extern nav-enemy-test-point-near-nav-mesh? (function vector symbol :behavior nav-enemy))
(define-extern nav-enemy-travel-post (function none :behavior nav-enemy))
(define-extern nav-enemy-get-new-patrol-point (function int :behavior nav-enemy))
(define-extern nav-enemy-set-hit-from-direction (function process none :behavior nav-enemy))
(define-extern nav-enemy-send-attack (function process touching-shapes-entry symbol object :behavior nav-enemy))
(define-extern nav-enemy-rnd-int-count (function int int))
(define-extern nav-enemy-rnd-float (function float))
(define-extern nav-enemy-rnd-percent? (function float symbol))
(define-extern nav-enemy-default-event-handler (function process int symbol event-message-block object :behavior nav-enemy)) ;; TODO - last arg is definitely a vector...but also not?
(define-extern nav-enemy-jump-event-handler (function process int symbol event-message-block object :behavior nav-enemy))
(define-extern process-drawable-death-event-handler (function process int symbol event-message-block uint :behavior process-drawable)) ;; First two args are unused
(define-extern nav-enemy-patrol-post (function none :behavior nav-enemy))
(define-extern nav-enemy-chase-post (function none :behavior nav-enemy))
(define-extern nav-enemy-flee-post (function none :behavior nav-enemy))
(define-extern nav-enemy-face-player-post (function none :behavior nav-enemy))
(define-extern nav-enemy-falling-post (function none :behavior nav-enemy))
(define-extern nav-enemy-death-post (function none :behavior nav-enemy))
(define-extern nav-enemy-player-vulnerable? (function symbol))
(define-extern nav-enemy-facing-player? (function float symbol))
(define-extern nav-enemy-test-nav-mesh-intersection-xz? (function vector symbol :behavior nav-enemy)) ;; TODO - vector is a guess, check nav-control::16
(define-extern nav-enemy-test-point-in-nav-mesh? (function vector symbol :behavior nav-enemy)) ;; TODO - vector is a guess, check nav-control::16
(define-extern nav-enemy-set-base-collide-sphere-collide-with (function uint none :behavior nav-enemy)) ;; unused
(define-extern ja-group-index? (function int symbol :behavior nav-enemy))
(define-extern nav-enemy-jump-post (function none :behavior nav-enemy))
(define-extern nav-enemy-jump-land-post (function none :behavior nav-enemy))
(define-extern nav-enemy-init-by-other (function nav-enemy vector vector nav-enemy :behavior nav-enemy))
;; - Unknowns
;;(define-extern *nav-enemy-dummy-shadow-control* object) ;; unknown type
(define-extern *nav-enemy-dummy-shadow-control* shadow-control) ;; unknown type
;; ----------------------
@@ -23977,50 +23829,36 @@
; :flag-assert #x900000050
; )
; (deftype pelican (process-drawable)
; ((query gui-query :inline :offset-assert 176)
; (fuel-cell uint64 :offset-assert 208)
; (cam-tracker uint64 :offset-assert 216)
; (path-data UNKNOWN 8 :offset-assert 224)
; (path-circle basic :offset-assert 224)
; (path-dive0 basic :offset-assert 228)
; (path-to-nest0 basic :offset-assert 232)
; (path-from-nest0 basic :offset-assert 236)
; (path-spit0 basic :offset-assert 240)
; (path-dive1 basic :offset-assert 244)
; (path-to-nest1 basic :offset-assert 248)
; (path-to-nest2 basic :offset-assert 252)
; (path-cache basic :offset-assert 256)
; (time-cache uint64 :offset-assert 264)
; (path-pos float :offset-assert 272)
; (path-speed float :offset-assert 276)
; (path-max float :offset-assert 280)
; (path-vector vector :inline :offset-assert 288)
; (state-vector vector :inline :offset-assert 304)
; (state-vector1 vector :inline :offset-assert 320)
; (state-float UNKNOWN 2 :offset-assert 336)
; (state-object basic :offset-assert 344)
; (neck basic :offset-assert 348)
; )
; :method-count-assert 20
; :size-assert #x160
; :heap-base #xf0
; :flag-assert #x1400f00160
; ;; inherited inspect of process-drawablefield ~Tstate-object is a basic loaded with a signed load
; (: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)
; )
; )
(deftype pelican (process-drawable)
((query gui-query :inline :offset-assert 176)
(fuel-cell uint64 :offset-assert 208)
(cam-tracker uint64 :offset-assert 216)
(path-data curve-control 8 :offset-assert 224)
(path-circle curve-control :offset 224)
(path-dive0 curve-control :offset 228)
(path-to-nest0 curve-control :offset 232)
(path-from-nest0 curve-control :offset 236)
(path-spit0 curve-control :offset 240)
(path-dive1 curve-control :offset 244)
(path-to-nest1 curve-control :offset 248)
(path-to-nest2 curve-control :offset 252)
(path-cache basic :offset-assert 256)
(time-cache uint64 :offset-assert 264)
(path-pos float :offset-assert 272)
(path-speed float :offset-assert 276)
(path-max float :offset-assert 280)
(path-vector vector :inline :offset-assert 288)
(state-vector vector :inline :offset-assert 304)
(state-vector1 vector :inline :offset-assert 320)
(state-float float 2 :offset-assert 336)
(state-object basic :offset-assert 344)
(neck joint-mod :offset-assert 348)
)
:method-count-assert 20
:heap-base #xf0
:size-assert #x160
:flag-assert #x1400f00160
)
;; - Functions
@@ -24052,35 +23890,24 @@
;; - Types
; (deftype lurkerworm (process-drawable)
; ((twister basic :offset-assert 176)
; (head-tilt float :offset-assert 180)
; (strike-count int32 :offset-assert 184)
; (angle float :offset-assert 188)
; (vulnerable basic :offset-assert 192)
; (part2 basic :offset-assert 196)
; )
; :method-count-assert 22
; :size-assert #xc8
; :heap-base #x60
; :flag-assert #x16006000c8
; ;; inherited inspect of process-drawable
; (: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)
; )
; )
(deftype lurkerworm (process-drawable)
((twister basic :offset-assert 176)
(head-tilt float :offset-assert 180)
(strike-count int32 :offset-assert 184)
(angle float :offset-assert 188)
(vulnerable basic :offset-assert 192)
(part2 basic :offset-assert 196)
)
:method-count-assert 22
:heap-base #x60
:size-assert #xc8
:flag-assert #x16006000c8
;; inherited inspect of process-drawable
(:methods
(dummy-20 () none 20)
(dummy-21 () none 21)
)
)
;; - Functions
@@ -24109,84 +23936,14 @@
;; - Types
; (deftype lurkercrab (nav-enemy)
; ((orient basic :offset-assert 400)
; )
; :method-count-assert 76
; :size-assert #x194
; :heap-base #x130
; :flag-assert #x4c01300194
; ;; inherited inspect of nav-enemy
; (: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)
; (dummy-33 () none 33)
; (dummy-34 () none 34)
; (dummy-35 () none 35)
; (dummy-36 () none 36)
; (dummy-37 () none 37)
; (dummy-38 () none 38)
; (dummy-39 () none 39)
; (dummy-40 () none 40)
; (dummy-41 () none 41)
; (dummy-42 () none 42)
; (dummy-43 () none 43)
; (dummy-44 () none 44)
; (dummy-45 () none 45)
; (dummy-46 () none 46)
; (dummy-47 () none 47)
; (dummy-48 () none 48)
; (dummy-49 () none 49)
; (dummy-50 () none 50)
; (dummy-51 () none 51)
; (dummy-52 () none 52)
; (dummy-53 () none 53)
; (dummy-54 () none 54)
; (dummy-55 () none 55)
; (dummy-56 () none 56)
; (dummy-57 () none 57)
; (dummy-58 () none 58)
; (dummy-59 () none 59)
; (dummy-60 () none 60)
; (dummy-61 () none 61)
; (dummy-62 () none 62)
; (dummy-63 () none 63)
; (dummy-64 () none 64)
; (dummy-65 () none 65)
; (dummy-66 () none 66)
; (dummy-67 () none 67)
; (dummy-68 () none 68)
; (dummy-69 () none 69)
; (dummy-70 () none 70)
; (dummy-71 () none 71)
; (dummy-72 () none 72)
; (dummy-73 () none 73)
; (dummy-74 () none 74)
; (dummy-75 () none 75)
; )
; )
(deftype lurkercrab (nav-enemy)
((orient basic :offset-assert 400)
)
:method-count-assert 76
:heap-base #x130
:size-assert #x194
:flag-assert #x4c01300194
)
;; - Functions
@@ -24208,83 +23965,13 @@
;; - Types
; (deftype lurkerpuppy (nav-enemy)
; ()
; :method-count-assert 76
; :size-assert #x190
; :heap-base #x120
; :flag-assert #x4c01200190
; ;; not enough basic ops
; (: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)
; (dummy-33 () none 33)
; (dummy-34 () none 34)
; (dummy-35 () none 35)
; (dummy-36 () none 36)
; (dummy-37 () none 37)
; (dummy-38 () none 38)
; (dummy-39 () none 39)
; (dummy-40 () none 40)
; (dummy-41 () none 41)
; (dummy-42 () none 42)
; (dummy-43 () none 43)
; (dummy-44 () none 44)
; (dummy-45 () none 45)
; (dummy-46 () none 46)
; (dummy-47 () none 47)
; (dummy-48 () none 48)
; (dummy-49 () none 49)
; (dummy-50 () none 50)
; (dummy-51 () none 51)
; (dummy-52 () none 52)
; (dummy-53 () none 53)
; (dummy-54 () none 54)
; (dummy-55 () none 55)
; (dummy-56 () none 56)
; (dummy-57 () none 57)
; (dummy-58 () none 58)
; (dummy-59 () none 59)
; (dummy-60 () none 60)
; (dummy-61 () none 61)
; (dummy-62 () none 62)
; (dummy-63 () none 63)
; (dummy-64 () none 64)
; (dummy-65 () none 65)
; (dummy-66 () none 66)
; (dummy-67 () none 67)
; (dummy-68 () none 68)
; (dummy-69 () none 69)
; (dummy-70 () none 70)
; (dummy-71 () none 71)
; (dummy-72 () none 72)
; (dummy-73 () none 73)
; (dummy-74 () none 74)
; (dummy-75 () none 75)
; )
; )
(deftype lurkerpuppy (nav-enemy)
()
:method-count-assert 76
:heap-base #x120
:size-assert #x190
:flag-assert #x4c01200190
)
;; - Unknowns
@@ -3,7 +3,7 @@
// if you want to filter to only some object names.
// it will make the decompiler much faster.
"allowed_objects": [],
"allowed_objects": ["nav-enemy"],
////////////////////////////
// CODE ANALYSIS OPTIONS
@@ -628,5 +628,52 @@
[6, "(function int :behavior sunken-elevator)"]
],
"nav-enemy": [
[8, "(function none :behavior nav-enemy)"],
[9, "(function none)"], // stubbed
[10, "(function uint :behavior nav-enemy)"],
[11, "(function object :behavior nav-enemy)"],
[12, "(function none :behavior nav-enemy)"],
[13, "(function object :behavior nav-enemy)"],
[14, "(function uint :behavior nav-enemy)"],
[15, "(function object :behavior nav-enemy)"],
[16, "(function object :behavior nav-enemy)"],
[17, "(function vector :behavior nav-enemy)"],
[19, "(function object :behavior nav-enemy)"],
[20, "(function uint :behavior nav-enemy)"],
[21, "(function none :behavior nav-enemy)"],
[28, "(function symbol :behavior nav-enemy)"],
[29, "(function symbol :behavior nav-enemy)"],
[30, "(function object :behavior nav-enemy)"],
[31, "(function object :behavior nav-enemy)"],
[32, "(function vector :behavior nav-enemy)"],
[33, "(function object :behavior nav-enemy)"],
[34, "(function object :behavior nav-enemy)"],
[35, "(function object :behavior nav-enemy)"],
[36, "(function uint :behavior nav-enemy)"],
[37, "(function object :behavior nav-enemy)"],
[38, "(function object :behavior nav-enemy)"],
[39, "(function uint :behavior nav-enemy)"],
[40, "(function vector :behavior nav-enemy)"],
[41, "(function none :behavior nav-enemy)"],
[42, "(function object :behavior nav-enemy)"],
[43, "(function uint :behavior nav-enemy)"],
[44, "(function none :behavior nav-enemy)"],
[45, "(function object :behavior nav-enemy)"],
[46, "(function none :behavior nav-enemy)"],
[50, "(function none :behavior nav-enemy)"],
[51, "(function object :behavior nav-enemy)"],
[52, "(function uint :behavior nav-enemy)"],
[54, "(function object :behavior nav-enemy)"],
[55, "(function uint :behavior nav-enemy)"],
[56, "(function none :behavior nav-enemy)"],
[57, "(function object :behavior nav-enemy)"],
[58, "(function uint :behavior nav-enemy)"],
[59, "(function uint :behavior nav-enemy)"],
[60, "(function none :behavior nav-enemy)"],
[61, "(function object :behavior nav-enemy)"],
[62, "(function int :behavior nav-enemy)"]
],
"placeholder-do-not-add-below": []
}
@@ -359,7 +359,6 @@
"(method 32 nav-control)",
// collectables BUG
"birth-pickup-at-point",
"add-blue-motion",
// ocean
@@ -370,7 +369,7 @@
"ocean-interp-wave",
// nav-enemy BUG
"(anon-function 28 nav-enemy)",
// "(anon-function 28 nav-enemy)",
// orb-cache BUG
"(method 27 orb-cache-top)",
@@ -392,7 +391,6 @@
"(anon-function 8 game-save)",
"(anon-function 9 game-save)",
"(anon-function 10 game-save)",
"(anon-function 28 nav-enemy)",
"mistycannon-find-best-solution",
"target-flut-falling-anim-trans",
"kermit-check-to-hit-player?",
@@ -1585,6 +1585,105 @@
["L191", "uint64", true],
["L186", "uint64", true]
],
"nav-enemy": [
["L16", "_lambda_", true],
["L18", "_lambda_", true],
["L19", "_lambda_", true],
["L20", "_lambda_", true],
["L24", "_lambda_", true],
["L29", "_lambda_", true],
["L31", "_lambda_", true],
["L32", "_lambda_", true],
["L33", "_lambda_", true],
["L36", "_lambda_", true],
["L41", "_lambda_", true],
["L44", "_lambda_", true],
["L45", "_lambda_", true],
["L76", "_lambda_", true],
["L82", "_lambda_", true],
["L86", "_lambda_", true],
["L88", "_lambda_", true],
["L90", "_lambda_", true],
["L91", "_lambda_", true],
["L92", "_lambda_", true],
["L93", "_lambda_", true],
["L95", "_lambda_", true],
["L96", "_lambda_", true],
["L97", "_lambda_", true],
["L109", "_lambda_", true],
["L110", "_lambda_", true],
["L111", "_lambda_", true],
["L113", "_lambda_", true],
["L120", "_lambda_", true],
["L122", "_lambda_", true],
["L124", "_lambda_", true],
["L135", "_lambda_", true],
["L142", "_lambda_", true],
["L146", "_lambda_", true],
["L150", "_lambda_", true],
["L153", "_lambda_", true],
["L155", "_lambda_", true],
["L157", "_lambda_", true],
["L165", "_lambda_", true],
["L175", "_lambda_", true],
["L176", "_lambda_", true],
["L177", "_lambda_", true],
["L179", "_lambda_", true],
["L183", "_lambda_", true],
["L331", "shadow-control", true],
["L332", "state", true],
["L333", "state", true],
["L334", "state", true],
["L335", "state", true],
["L336", "state", true],
["L337", "state", true],
["L338", "state", true],
["L339", "state", true],
["L340", "state", true],
["L341", "state", true],
["L342", "state", true],
["L343", "state", true],
["L344", "state", true],
["L345", "state", true],
["L346", "state", true],
["L347", "state", true],
["L348", "state", true],
["L349", "attack-info", true],
["L353", "float", true],
["L354", "float", true],
["L355", "float", true],
["L356", "float", true],
["L357", "float", true],
["L358", "float", true],
["L360", "float", true],
["L361", "float", true],
["L362", "float", true],
["L365", "float", true],
["L367", "float", true],
["L369", "float", true],
["L370", "float", true],
["L371", "float", true],
["L372", "float", true],
["L373", "float", true],
["L374", "float", true],
["L375", "float", true],
["L376", "float", true],
["L377", "float", true],
["L379", "float", true],
["L380", "float", true],
["L381", "float", true],
["L382", "float", true],
["L383", "float", true],
["L385", "float", true],
["L386", "float", true],
["L387", "float", true],
["L391", "float", true],
["L389", "float", true],
["L392", "rgba", true],
["L393", "rgba", 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": []
}
@@ -937,5 +937,91 @@
"draw-string-xy": [
[16, "font-context"]
],
"(method 50 nav-enemy)": [
[16, "vector"]
],
"nav-enemy-init-by-other": [
[16, "vector"]
],
"nav-enemy-turn-to-face-point": [
[16, "vector"]
],
"nav-enemy-facing-point?": [
[16, "vector"]
],
"nav-enemy-jump-post": [
[16, "vector"]
],
"(method 41 nav-enemy)": [
[16, "vector"],
[32, "vector"]
],
"nav-enemy-falling-post": [
[16, "vector"] // TODO - check collide-shape-moving::62(type, vector, float)
],
"nav-enemy-death-post": [
[16, "vector"] // TODO - check collide-shape-moving::62(type, vector, float)
],
"nav-enemy-jump-land-post": [
[16, "vector"],
[32, "vector"]
],
"nav-enemy-facing-direction?": [
[16, "vector"],
[32, "vector"]
],
"nav-enemy-initialize-custom-jump": [
[16, "vector"],
[32, "vector"]
],
"nav-enemy-flee-post": [
[16, "vector"],
[32, "vector"]
],
"(anon-function 17 nav-enemy)": [
[16, "vector"]
],
"(anon-function 29 nav-enemy)": [
[16, "event-message-block"]
],
"(anon-function 30 nav-enemy)": [
[16, "event-message-block"]
],
"(anon-function 51 nav-enemy)": [
[16, "event-message-block"]
],
"(anon-function 57 nav-enemy)": [
[16, "event-message-block"]
],
"(method 73 nav-enemy)": [
[16, "event-message-block"]
],
"(method 43 nav-enemy)": [
[16, "event-message-block"]
],
"nav-enemy-send-attack": [
[16, "event-message-block"]
],
"birth-pickup-at-point": [
[16, "vector"]
],
"placeholder-do-not-add-below!": []
}
@@ -1998,5 +1998,160 @@
[37, "v1", "art-joint-anim"]
],
"nav-enemy-set-base-collide-sphere-collide-with": [
[19, "v1", "collide-shape-prim-group"],
[23, "s2", "collide-shape-prim"],
[32, "v1", "collide-shape-prim-sphere"],
[33, "s5", "collide-shape-prim-group"],
[37, "v1", "collide-shape-prim-sphere"],
[38, "s5", "collide-shape-prim-group"],
[42, "v1", "collide-shape-prim-sphere"],
[43, "s5", "collide-shape-prim-group"],
[50, "s4", "collide-shape-prim-group"],
[54, "s5", "collide-shape-prim"],
[55, "s5", "collide-shape-prim"]
],
"nav-enemy-jump-land-anim": [
[39, "v1", "art-joint-anim"]
],
"(anon-function 8 nav-enemy)": [
[[42, 46], "t9", "(function object)"]
],
"(anon-function 31 nav-enemy)": [
[27, "v1", "art-joint-anim"],
[[70, 74], "t9", "(function object)"]
],
"(anon-function 51 nav-enemy)": [
[[39, 43], "t9", "(function object)"]
],
"(anon-function 54 nav-enemy)": [
[27, "v1", "art-joint-anim"],
[[80, 84], "t9", "(function object)"]
],
"(anon-function 55 nav-enemy)": [
[[9, 13], "t9", "(function object)"]
],
"(anon-function 56 nav-enemy)": [
[23, "v1", "art-joint-anim"],
[105, "v1", "art-joint-anim"],
[167, "v1", "art-joint-anim"],
[249, "v1", "art-joint-anim"]
],
"(anon-function 61 nav-enemy)": [
[[35, 39], "t9", "(function object)"]
],
"(anon-function 57 nav-enemy)": [
[[47, 51], "t9", "(function object)"],
[[89, 93], "t9", "(function object)"],
[[98, 102], "t9", "(function object)"]
],
"(anon-function 42 nav-enemy)": [
[[10, 14], "t9", "(function object)"],
[[31, 35], "t9", "(function object)"],
[[67, 71], "t9", "(function object)"]
],
"(anon-function 43 nav-enemy)": [
[[33, 37], "t9", "(function object)"]
],
"(anon-function 50 nav-enemy)": [
[27, "v1", "art-joint-anim"],
[91, "v1", "art-joint-anim"]
],
"(anon-function 45 nav-enemy)": [
[[5, 9], "t9", "(function object)"],
[[14, 18], "t9", "(function object)"],
[[75, 79], "t9", "(function object)"],
[[91, 95], "t9", "(function object)"]
],
"(anon-function 37 nav-enemy)": [
[[1, 5], "t9", "(function object)"]
],
"(anon-function 38 nav-enemy)": [
[[10, 14], "t9", "(function object)"],
[[38, 42], "t9", "(function object)"],
[[94, 98], "t9", "(function object)"],
[[124, 128], "t9", "(function object)"]
],
"(anon-function 33 nav-enemy)": [
[[1, 5], "t9", "(function object)"]
],
"(anon-function 34 nav-enemy)": [
[[1, 5], "t9", "(function object)"]
],
"(anon-function 35 nav-enemy)": [
[[15, 20], "t9", "(function object)"]
],
"(anon-function 29 nav-enemy)": [
[[36, 40], "t9", "(function object)"]
],
"(anon-function 21 nav-enemy)": [
[[15, 19], "t9", "(function object)"]
],
"(anon-function 19 nav-enemy)": [
[[19, 23], "t9", "(function object)"]
],
"(anon-function 16 nav-enemy)": [
[[15, 19], "t9", "(function object)"]
],
"(anon-function 15 nav-enemy)": [
[[3, 6], "t9", "(function object)"]
],
"(anon-function 13 nav-enemy)": [
[[6, 9], "t9", "(function object)"]
],
"(anon-function 11 nav-enemy)": [
[[80, 84], "t9", "(function object)"]
],
"nav-enemy-init-by-other": [
[[54, 58], "t9", "(function object object)"]
],
"nav-enemy-set-hit-from-direction": [
[19, "v1", "process-drawable"]
],
"(method 59 nav-enemy)": [
[[1, 5], "t9", "(function object)"]
],
"(method 73 nav-enemy)": [
[[19, 23], "t9", "(function object)"]
],
"(method 43 nav-enemy)": [
[[22, 26], "t9", "(function object)"]
],
"(method 45 nav-enemy)": [
[14, "v1", "process-mask"]
],
"nav-enemy-default-event-handler": [
[62, "a0", "vector"],
[82, "a0", "vector"],
[[49, 53], "t9", "(function object)"],
[[70, 74], "t9", "(function object)"],
[[92, 96], "t9", "(function object)"],
[[100, 104], "t9", "(function object)"],
[[108, 112], "t9", "(function object)"]
],
"(method 7 nav-enemy)": [
[5, "v1", "int"],
[10, "v1", "int"],
[19, "t9", "(function process-drawable int none)"]
],
"(anon-function 59 nav-enemy)": [
[8, "v1", "int"]
],
"(anon-function 28 nav-enemy)": [
[31, "v1", "int"]
],
"placeholder-do-not-add-below": []
}
+1 -1
View File
@@ -2,7 +2,7 @@
"jak1": {
"fileProgress": {
"src_files_total": 514,
"src_files_finished": 71,
"src_files_finished": 77,
"src_files_started": 174,
"data_files_total": 584,
"data_files_started": 4
+1 -1
View File
@@ -1 +1 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="/jak-project/favicon.png"><title>OpenGOAL Tooling</title><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:100,300,400,500,700,900"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@mdi/font@latest/css/materialdesignicons.min.css"><link href="/jak-project/css/about.c2633d65.css" rel="prefetch"><link href="/jak-project/js/about.31420eeb.js" rel="prefetch"><link href="/jak-project/css/chunk-vendors.b018c88a.css" rel="preload" as="style"><link href="/jak-project/js/app.3bcfc435.js" rel="preload" as="script"><link href="/jak-project/js/chunk-vendors.b495df31.js" rel="preload" as="script"><link href="/jak-project/css/chunk-vendors.b018c88a.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but docs-and-tooling doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div><script src="/jak-project/js/chunk-vendors.b495df31.js"></script><script src="/jak-project/js/app.3bcfc435.js"></script></body></html>
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="/jak-project/favicon.png"><title>OpenGOAL Tooling</title><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:100,300,400,500,700,900"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@mdi/font@latest/css/materialdesignicons.min.css"><link href="/jak-project/css/about.c2633d65.css" rel="prefetch"><link href="/jak-project/js/about.aa90f682.js" rel="prefetch"><link href="/jak-project/css/chunk-vendors.b018c88a.css" rel="preload" as="style"><link href="/jak-project/js/app.1f599053.js" rel="preload" as="script"><link href="/jak-project/js/chunk-vendors.b495df31.js" rel="preload" as="script"><link href="/jak-project/css/chunk-vendors.b018c88a.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but docs-and-tooling doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div><script src="/jak-project/js/chunk-vendors.b495df31.js"></script><script src="/jak-project/js/app.1f599053.js"></script></body></html>
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,2 +1,2 @@
(function(e){function t(t){for(var n,o,i=t[0],c=t[1],l=t[2],s=0,p=[];s<i.length;s++)o=i[s],Object.prototype.hasOwnProperty.call(a,o)&&a[o]&&p.push(a[o][0]),a[o]=0;for(n in c)Object.prototype.hasOwnProperty.call(c,n)&&(e[n]=c[n]);f&&f(t);while(p.length)p.shift()();return u.push.apply(u,l||[]),r()}function r(){for(var e,t=0;t<u.length;t++){for(var r=u[t],n=!0,o=1;o<r.length;o++){var i=r[o];0!==a[i]&&(n=!1)}n&&(u.splice(t--,1),e=c(c.s=r[0]))}return e}var n={},o={app:0},a={app:0},u=[];function i(e){return c.p+"js/"+({about:"about"}[e]||e)+"."+{about:"31420eeb"}[e]+".js"}function c(t){if(n[t])return n[t].exports;var r=n[t]={i:t,l:!1,exports:{}};return e[t].call(r.exports,r,r.exports,c),r.l=!0,r.exports}c.e=function(e){var t=[],r={about:1};o[e]?t.push(o[e]):0!==o[e]&&r[e]&&t.push(o[e]=new Promise((function(t,r){for(var n="css/"+({about:"about"}[e]||e)+"."+{about:"c2633d65"}[e]+".css",a=c.p+n,u=document.getElementsByTagName("link"),i=0;i<u.length;i++){var l=u[i],s=l.getAttribute("data-href")||l.getAttribute("href");if("stylesheet"===l.rel&&(s===n||s===a))return t()}var p=document.getElementsByTagName("style");for(i=0;i<p.length;i++){l=p[i],s=l.getAttribute("data-href");if(s===n||s===a)return t()}var f=document.createElement("link");f.rel="stylesheet",f.type="text/css",f.onload=t,f.onerror=function(t){var n=t&&t.target&&t.target.src||a,u=new Error("Loading CSS chunk "+e+" failed.\n("+n+")");u.code="CSS_CHUNK_LOAD_FAILED",u.request=n,delete o[e],f.parentNode.removeChild(f),r(u)},f.href=a;var d=document.getElementsByTagName("head")[0];d.appendChild(f)})).then((function(){o[e]=0})));var n=a[e];if(0!==n)if(n)t.push(n[2]);else{var u=new Promise((function(t,r){n=a[e]=[t,r]}));t.push(n[2]=u);var l,s=document.createElement("script");s.charset="utf-8",s.timeout=120,c.nc&&s.setAttribute("nonce",c.nc),s.src=i(e);var p=new Error;l=function(t){s.onerror=s.onload=null,clearTimeout(f);var r=a[e];if(0!==r){if(r){var n=t&&("load"===t.type?"missing":t.type),o=t&&t.target&&t.target.src;p.message="Loading chunk "+e+" failed.\n("+n+": "+o+")",p.name="ChunkLoadError",p.type=n,p.request=o,r[1](p)}a[e]=void 0}};var f=setTimeout((function(){l({type:"timeout",target:s})}),12e4);s.onerror=s.onload=l,document.head.appendChild(s)}return Promise.all(t)},c.m=e,c.c=n,c.d=function(e,t,r){c.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},c.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},c.t=function(e,t){if(1&t&&(e=c(e)),8&t)return e;if(4&t&&"object"===typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(c.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)c.d(r,n,function(t){return e[t]}.bind(null,n));return r},c.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return c.d(t,"a",t),t},c.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},c.p="/jak-project/",c.oe=function(e){throw console.error(e),e};var l=window["webpackJsonp"]=window["webpackJsonp"]||[],s=l.push.bind(l);l.push=t,l=l.slice();for(var p=0;p<l.length;p++)t(l[p]);var f=s;u.push([0,"chunk-vendors"]),r()})({0:function(e,t,r){e.exports=r("56d7")},"56d7":function(e,t,r){"use strict";r.r(t);r("e260"),r("e6cf"),r("cca6"),r("a79d");var n=r("2b0e"),o=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("v-app",[r("v-main",[r("router-view")],1)],1)},a=[],u={name:"App",components:{},data:function(){return{}}},i=u,c=r("2877"),l=r("6544"),s=r.n(l),p=r("7496"),f=r("f6c4"),d=Object(c["a"])(i,o,a,!1,null,null,null),h=d.exports;s()(d,{VApp:p["a"],VMain:f["a"]});var m=r("f309");n["a"].use(m["a"]);var v=new m["a"]({theme:{dark:!0}}),b=(r("d3b7"),r("3ca3"),r("ddb0"),r("8c4f"));n["a"].use(b["a"]);var g=[{path:"/",name:"Home",component:function(){return r.e("about").then(r.bind(null,"bb51"))}}],y=new b["a"]({mode:"history",base:"/jak-project/",routes:g}),w=y;n["a"].config.productionTip=!1,new n["a"]({vuetify:v,router:w,render:function(e){return e(h)}}).$mount("#app")}});
//# sourceMappingURL=app.3bcfc435.js.map
(function(e){function t(t){for(var n,o,i=t[0],c=t[1],l=t[2],s=0,p=[];s<i.length;s++)o=i[s],Object.prototype.hasOwnProperty.call(a,o)&&a[o]&&p.push(a[o][0]),a[o]=0;for(n in c)Object.prototype.hasOwnProperty.call(c,n)&&(e[n]=c[n]);f&&f(t);while(p.length)p.shift()();return u.push.apply(u,l||[]),r()}function r(){for(var e,t=0;t<u.length;t++){for(var r=u[t],n=!0,o=1;o<r.length;o++){var i=r[o];0!==a[i]&&(n=!1)}n&&(u.splice(t--,1),e=c(c.s=r[0]))}return e}var n={},o={app:0},a={app:0},u=[];function i(e){return c.p+"js/"+({about:"about"}[e]||e)+"."+{about:"aa90f682"}[e]+".js"}function c(t){if(n[t])return n[t].exports;var r=n[t]={i:t,l:!1,exports:{}};return e[t].call(r.exports,r,r.exports,c),r.l=!0,r.exports}c.e=function(e){var t=[],r={about:1};o[e]?t.push(o[e]):0!==o[e]&&r[e]&&t.push(o[e]=new Promise((function(t,r){for(var n="css/"+({about:"about"}[e]||e)+"."+{about:"c2633d65"}[e]+".css",a=c.p+n,u=document.getElementsByTagName("link"),i=0;i<u.length;i++){var l=u[i],s=l.getAttribute("data-href")||l.getAttribute("href");if("stylesheet"===l.rel&&(s===n||s===a))return t()}var p=document.getElementsByTagName("style");for(i=0;i<p.length;i++){l=p[i],s=l.getAttribute("data-href");if(s===n||s===a)return t()}var f=document.createElement("link");f.rel="stylesheet",f.type="text/css",f.onload=t,f.onerror=function(t){var n=t&&t.target&&t.target.src||a,u=new Error("Loading CSS chunk "+e+" failed.\n("+n+")");u.code="CSS_CHUNK_LOAD_FAILED",u.request=n,delete o[e],f.parentNode.removeChild(f),r(u)},f.href=a;var d=document.getElementsByTagName("head")[0];d.appendChild(f)})).then((function(){o[e]=0})));var n=a[e];if(0!==n)if(n)t.push(n[2]);else{var u=new Promise((function(t,r){n=a[e]=[t,r]}));t.push(n[2]=u);var l,s=document.createElement("script");s.charset="utf-8",s.timeout=120,c.nc&&s.setAttribute("nonce",c.nc),s.src=i(e);var p=new Error;l=function(t){s.onerror=s.onload=null,clearTimeout(f);var r=a[e];if(0!==r){if(r){var n=t&&("load"===t.type?"missing":t.type),o=t&&t.target&&t.target.src;p.message="Loading chunk "+e+" failed.\n("+n+": "+o+")",p.name="ChunkLoadError",p.type=n,p.request=o,r[1](p)}a[e]=void 0}};var f=setTimeout((function(){l({type:"timeout",target:s})}),12e4);s.onerror=s.onload=l,document.head.appendChild(s)}return Promise.all(t)},c.m=e,c.c=n,c.d=function(e,t,r){c.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},c.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},c.t=function(e,t){if(1&t&&(e=c(e)),8&t)return e;if(4&t&&"object"===typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(c.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)c.d(r,n,function(t){return e[t]}.bind(null,n));return r},c.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return c.d(t,"a",t),t},c.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},c.p="/jak-project/",c.oe=function(e){throw console.error(e),e};var l=window["webpackJsonp"]=window["webpackJsonp"]||[],s=l.push.bind(l);l.push=t,l=l.slice();for(var p=0;p<l.length;p++)t(l[p]);var f=s;u.push([0,"chunk-vendors"]),r()})({0:function(e,t,r){e.exports=r("56d7")},"56d7":function(e,t,r){"use strict";r.r(t);r("e260"),r("e6cf"),r("cca6"),r("a79d");var n=r("2b0e"),o=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("v-app",[r("v-main",[r("router-view")],1)],1)},a=[],u={name:"App",components:{},data:function(){return{}}},i=u,c=r("2877"),l=r("6544"),s=r.n(l),p=r("7496"),f=r("f6c4"),d=Object(c["a"])(i,o,a,!1,null,null,null),h=d.exports;s()(d,{VApp:p["a"],VMain:f["a"]});var m=r("f309");n["a"].use(m["a"]);var v=new m["a"]({theme:{dark:!0}}),b=(r("d3b7"),r("3ca3"),r("ddb0"),r("8c4f"));n["a"].use(b["a"]);var g=[{path:"/",name:"Home",component:function(){return r.e("about").then(r.bind(null,"bb51"))}}],y=new b["a"]({mode:"history",base:"/jak-project/",routes:g}),w=y;n["a"].config.productionTip=!1,new n["a"]({vuetify:v,router:w,render:function(e){return e(h)}}).$mount("#app")}});
//# sourceMappingURL=app.1f599053.js.map
File diff suppressed because one or more lines are too long
+20 -77
View File
@@ -185,33 +185,14 @@
:size-assert #x4c
:flag-assert #x1c0000004c
(:methods
(new (symbol type basic uint) _type_ 0)
(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)
)
(new (symbol type basic uint) _type_ 0)
)
)
;; mesh collision
;; the pats are stored per tri in the mesh.
(deftype collide-shape-prim-mesh (collide-shape-prim)
((mesh basic :offset-assert 72)
((mesh collide-mesh :offset-assert 72)
(mesh-id int32 :offset-assert 76)
(mesh-cache-id uint64 :offset-assert 80)
(mesh-cache-tris uint32 :offset-assert 88)
@@ -220,63 +201,25 @@
:size-assert #x5c
:flag-assert #x1d0000005c
(:methods
(new (symbol type basic uint uint) _type_ 0)
(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)
)
(new (symbol type basic uint uint) _type_ 0)
(dummy-28 () none 28)
)
)
;; A group of collide-shape-prim's
(deftype collide-shape-prim-group (collide-shape-prim)
((num-prims int32 :offset-assert 72)
(allocated-prims int32 :offset-assert 76)
(prim uint32 1 :offset-assert 80) ;; array of references.
(prim uint32 1 :offset-assert 80) ; array of references
)
:method-count-assert 30
:size-assert #x54
:flag-assert #x1e00000054
(:methods
(new (symbol type basic uint int) _type_ 0)
(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)
)
(new (symbol type basic uint int) _type_ 0)
(dummy-28 () none 28)
(dummy-29 () none 29)
)
)
(defenum collide-list-enum
@@ -295,8 +238,8 @@
(pat-ignore-mask pat-surface :offset-assert 148)
(event-self basic :offset-assert 152)
(event-other basic :offset-assert 156)
(root-prim collide-shape-prim :offset-assert 160)
(riders basic :offset-assert 164)
(root-prim collide-shape-prim :offset-assert 160)
(riders collide-sticky-rider-group :offset-assert 164)
(backup-collide-as uint64 :offset-assert 168)
(backup-collide-with uint64 :offset-assert 176)
)
@@ -310,7 +253,7 @@
(dummy-30 () none 30)
(dummy-31 () none 31)
(dummy-32 () none 32)
(dummy-33 () none 33)
(dummy-33 (_type_ vector uint) none 33)
(dummy-34 () none 34)
(dummy-35 (_type_) none 35)
(dummy-36 () none 36)
@@ -331,7 +274,7 @@
(dummy-51 () none 51)
(dummy-52 () none 52)
(dummy-53 () none 53)
(dummy-54 () none 54)
(dummy-54 (_type_ int int) none 54)
(dummy-55 () none 55)
)
)
@@ -369,12 +312,12 @@
:flag-assert #x41000001bc
(:methods
(dummy-56 () none 56)
(dummy-57 () none 57)
(dummy-58 () none 58)
(dummy-59 () none 59)
(dummy-60 () none 60)
(dummy-57 (_type_ vector) none 57)
(dummy-58 (_type_ vector) none 58)
(dummy-59 (_type_ vector uint float symbol symbol symbol) none 59)
(dummy-60 (_type_ float float symbol uint) none 60)
(dummy-61 () none 61)
(dummy-62 () none 62)
(dummy-62 (_type_ vector float) vector 62)
(dummy-63 () none 63)
(dummy-64 () none 64)
)
+20 -20
View File
@@ -6,8 +6,8 @@
;; dgos: GAME, ENGINE
(deftype touching-prim (structure)
((cprim basic :offset-assert 0)
(has-tri? basic :offset-assert 4)
((cprim collide-shape-prim :offset-assert 0) ;; a big guess, there's a few that meet this name
(has-tri? symbol :offset-assert 4)
(tri collide-tri-result :inline :offset-assert 16)
)
:method-count-assert 9
@@ -18,7 +18,7 @@
(deftype touching-prims-entry (structure)
((next touching-prims-entry :offset-assert 0)
(prev touching-prims-entry :offset-assert 4)
(allocated? basic :offset-assert 8)
(allocated? symbol :offset-assert 8)
(u float :offset-assert 12)
(prim1 touching-prim :inline :offset-assert 16)
(prim2 touching-prim :inline :offset-assert 128)
@@ -27,11 +27,11 @@
:size-assert #xe4
:flag-assert #xd000000e4
(:methods
(dummy-9 () none 9)
(dummy-10 () none 10)
(dummy-11 () none 11)
(dummy-12 () none 12)
)
(dummy-9 () none 9)
(dummy-10 () none 10)
(dummy-11 () none 11)
(dummy-12 () none 12)
)
)
(deftype touching-prims-entry-pool (structure)
@@ -88,8 +88,8 @@
)
(deftype touching-shapes-entry (structure)
((cshape1 basic :offset-assert 0)
(cshape2 basic :offset-assert 4)
((cshape1 collide-shape :offset-assert 0)
(cshape2 collide-shape :offset-assert 4)
(resolve-u int8 :offset-assert 8)
(head touching-prims-entry :offset-assert 12)
)
@@ -98,16 +98,16 @@
:size-assert #x10
:flag-assert #x1200000010
(: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)
(get-head (_type_) touching-prims-entry 16)
(unknown1 (_type_ (pointer uint32)) uint 17)
)
(dummy-9 () none 9)
(dummy-10 () none 10)
(dummy-11 () none 11)
(prims-touching? (_type_ collide-shape-moving uint) touching-prims-entry 12) ; this one!
(dummy-13 () none 13)
(dummy-14 () none 14)
(dummy-15 () none 15)
(get-head (_type_) touching-prims-entry 16)
(unknown1 (_type_ (pointer uint32)) uint 17)
)
)
(deftype touching-list (structure)
+5
View File
@@ -15,3 +15,8 @@
(define-extern ja-done? (function int symbol))
;; TODO - for misty-warehouse
(define-extern rider-trans (function int))
;; TODO - for nav-enemy
(define-extern ja-blend-eval (function int))
(define-extern process-drawable-fuel-cell-handler (function process-drawable object symbol (pointer int64) symbol))
(define-extern ja-aframe-num (function int float))
(define-extern ja-aframe (function float int float))
+2
View File
@@ -5,3 +5,5 @@
;; name in dgo: collectables
;; dgos: GAME, ENGINE
;; TODO - for nav-enemy
(define-extern birth-pickup-at-point (function vector int float symbol process symbol basic)) ;; TODO - not confirmed at all! (the symbols are wrong)
+1 -1
View File
@@ -82,7 +82,7 @@
:flag-assert #xc00000028
(:methods
(new (symbol type process pickup-type float) _type_ 0)
(dummy-9 () none 9)
(TODO-RENAME-9 (_type_ symbol process-tree fact-info int) uint 9) ;; See nav-enemy::process-drawable-death-event-handler
(reset! (_type_ symbol) none 10)
(dummy-11 (_type_) float 11)
)
+41 -38
View File
@@ -9,15 +9,18 @@
:bitfield #t
:type uint32
(display-marks 0)
(bit0 0) ;; TODO - nav-enemy::45
(bit1 1)
(bit2 2)
(bit3 3)
(bit3 3) ;; TODO - nav-enemy::45
(bit4 4)
(bit5 5)
(bit6 6)
(bit7 7)
(bit5 5) ;; TODO - nav-enemy::45
(bit6 6) ;; TODO - nav-enemy::45
(bit7 7) ;; TODO - nav-enemy::45
(bit8 8)
(bit10 10) ;; TODO - nav-enemy::nav-enemy-patrol-post
(bit13 13)
(bit19 19) ;; TODO - nav-enemy::lambda::17
)
(deftype nav-poly (structure)
@@ -201,58 +204,58 @@
)
(deftype nav-control (basic)
((flags nav-control-flags :offset-assert 4)
(process basic :offset-assert 8)
(shape collide-shape :offset-assert 12)
(mesh nav-mesh :offset-assert 16)
(gap-event basic :offset-assert 20)
(block-event basic :offset-assert 24)
(current-poly nav-poly :offset-assert 28)
(next-poly nav-poly :offset-assert 32)
(target-poly nav-poly :offset-assert 36)
(portal nav-route-portal 2 :offset-assert 40)
(nearest-y-threshold meters :offset-assert 48)
(event-temp vector :inline :offset-assert 64)
(old-travel vector :inline :offset-assert 80)
(blocked-travel vector :inline :offset-assert 96)
(prev-pos vector :inline :offset-assert 112)
(extra-nav-sphere vector :inline :offset-assert 128)
(travel vector :inline :offset-assert 144)
(target-pos vector :inline :offset-assert 160)
(destination-pos vector :inline :offset-assert 176)
(block-time uint64 :offset-assert 192)
(block-count float :offset-assert 200)
(user-poly nav-poly :offset-assert 204)
(nav-cull-radius float :offset-assert 208)
(num-spheres int16 :offset-assert 212)
(max-spheres int16 :offset-assert 214)
(sphere sphere :inline :dynamic :offset-assert 224)
((flags nav-control-flags :offset-assert 4)
(process basic :offset-assert 8)
(shape collide-shape :offset-assert 12)
(mesh nav-mesh :offset-assert 16)
(gap-event basic :offset-assert 20)
(block-event basic :offset-assert 24)
(current-poly nav-poly :offset-assert 28)
(next-poly nav-poly :offset-assert 32)
(target-poly nav-poly :offset-assert 36)
(portal nav-route-portal 2 :offset-assert 40) ;; guess
(nearest-y-threshold meters :offset-assert 48)
(event-temp vector :inline :offset-assert 64)
(old-travel vector :inline :offset-assert 80)
(blocked-travel vector :inline :offset-assert 96)
(prev-pos vector :inline :offset-assert 112)
(extra-nav-sphere vector :inline :offset-assert 128)
(travel vector :inline :offset-assert 144)
(target-pos vector :inline :offset-assert 160)
(destination-pos vector :inline :offset-assert 176)
(block-time uint64 :offset-assert 192)
(block-count float :offset-assert 200)
(user-poly nav-poly :offset-assert 204)
(nav-cull-radius float :offset-assert 208)
(num-spheres int16 :offset-assert 212)
(max-spheres int16 :offset-assert 214)
(sphere sphere :inline :dynamic :offset-assert 224) ;; guess
)
:method-count-assert 36
:size-assert #xe0
:flag-assert #x24000000e0
(:methods
(new (symbol type collide-shape int float) _type_ 0)
(new (symbol type collide-shape int float) _type_)
(dummy-9 () none 9)
(point-in-bounds? (_type_ vector) symbol 10)
(dummy-11 () none 11)
(dummy-11 (_type_ vector) none 11)
(dummy-12 () none 12)
(dummy-13 () none 13)
(dummy-14 () none 14)
(set-target-pos! (_type_ vector) none 15)
(dummy-16 () none 16)
(dummy-16 (_type_ vector) symbol 16) ; see - nav-enemy-test-point-in-nav-mesh?
(dummy-17 () none 17)
(dummy-18 () none 18)
(dummy-19 () none 19)
(dummy-19 (_type_ vector collide-shape-moving vector float) 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-24 (_type_ float symbol) none 24)
(dummy-25 (_type_ vector float) symbol 25) ; see - nav-enemy-test-point-near-nav-mesh?
(dummy-26 (_type_) none 26)
(dummy-27 () none 27)
(dummy-28 () none 28)
(dummy-28 (_type_ int) none 28)
(should-display? (_type_) symbol 29)
(dummy-30 () none 30)
(dummy-31 () none 31)
+65 -56
View File
@@ -45,18 +45,18 @@
(shadow-max-y meters :offset-assert 168)
(shadow-min-y meters :offset-assert 172)
(shadow-locus-dist meters :offset-assert 176)
(use-align basic :offset-assert 180)
(draw-shadow basic :offset-assert 184)
(move-to-ground basic :offset-assert 188)
(hover-if-no-ground basic :offset-assert 192)
(use-momentum basic :offset-assert 196)
(use-flee basic :offset-assert 200)
(use-proximity-notice basic :offset-assert 204)
(use-jump-blocked basic :offset-assert 208)
(use-jump-patrol basic :offset-assert 212)
(use-align symbol :offset-assert 180)
(draw-shadow symbol :offset-assert 184)
(move-to-ground symbol :offset-assert 188)
(hover-if-no-ground symbol :offset-assert 192)
(use-momentum symbol :offset-assert 196)
(use-flee symbol :offset-assert 200)
(use-proximity-notice symbol :offset-assert 204)
(use-jump-blocked symbol :offset-assert 208)
(use-jump-patrol symbol :offset-assert 212)
(gnd-collide-with uint64 :offset-assert 216)
(debug-draw-neck basic :offset-assert 224)
(debug-draw-jump basic :offset-assert 228)
(debug-draw-neck symbol :offset-assert 224)
(debug-draw-jump symbol :offset-assert 228)
)
:method-count-assert 9
:size-assert #xe8
@@ -64,7 +64,9 @@
)
(deftype nav-enemy (process-drawable)
((hit-from-dir vector :inline :offset-assert 176)
((collide-info collide-shape-moving :score 100 :offset 112)
(enemy-info fact-info-enemy :score 100 :offset 144)
(hit-from-dir vector :inline :offset-assert 176)
(event-param-point vector :inline :offset-assert 192)
(frustration-point vector :inline :offset-assert 208)
(jump-dest vector :inline :offset-assert 224)
@@ -78,7 +80,7 @@
(turn-time uint64 :offset-assert 312)
(frustration-time uint64 :offset-assert 320)
(speed-scale float :offset-assert 328)
(neck basic :offset-assert 332)
(neck joint-mod :offset-assert 332) ; this is what `neck` is on the pelican
(reaction-time uint64 :offset-assert 336)
(notice-time uint64 :offset-assert 344)
(state-timeout uint64 :offset-assert 352)
@@ -87,12 +89,13 @@
(nav-enemy-flags uint32 :offset-assert 376)
(incomming-attack-id uint64 :offset-assert 384)
(jump-return-state basic :offset-assert 392)
(rand-gen basic :offset-assert 396)
(rand-gen random-generator :offset-assert 396)
)
:heap-base #x120
:method-count-assert 76
:size-assert #x190
:flag-assert #x4c01200190
;; inherited inspect of process-drawable
(:methods
(nav-enemy-attack () none 20) ;; state
(nav-enemy-chase () none 21) ;; state
@@ -108,47 +111,53 @@
(nav-enemy-stare () none 31) ;; state
(nav-enemy-stop-chase () none 32) ;; state
(nav-enemy-victory () none 33) ;; state
(dummy-34 () none 34)
(dummy-35 () none 35)
(dummy-36 () none 36)
(dummy-37 () none 37)
(dummy-38 () none 38)
(dummy-39 () none 39)
(dummy-40 () none 40)
(dummy-41 () none 41)
(dummy-42 () none 42)
(dummy-43 () none 43)
(dummy-44 () none 44)
(dummy-45 () none 45)
(dummy-46 () none 46)
(dummy-47 () none 47)
(dummy-48 () none 48)
(dummy-49 () none 49)
(dummy-50 () none 50)
(dummy-51 () none 51)
(dummy-52 () none 52)
(dummy-53 () none 53)
(dummy-54 () none 54)
(dummy-55 () none 55)
(dummy-56 () none 56)
(dummy-57 () none 57)
(dummy-58 () none 58)
(dummy-59 () none 59)
(dummy-60 () none 60)
(dummy-61 () none 61)
(dummy-62 () none 62)
(dummy-63 () none 63)
(dummy-64 () none 64)
(dummy-65 () none 65)
(dummy-66 () none 66)
(dummy-67 () none 67)
(dummy-68 () none 68)
(dummy-69 () none 69)
(dummy-70 () none 70)
(dummy-71 () none 71)
(dummy-72 () none 72)
(dummy-73 () none 73)
(dummy-74 () none 74)
(dummy-75 () none 75)
(dummy-34 (_type_) none 34)
(dummy-35 (_type_) none 35)
(dummy-36 (_type_) none 36)
(TODO-RENAME-37 (_type_) none 37)
(TODO-RENAME-38 (_type_) none 38)
(TODO-RENAME-39 (_type_) none 39)
(dummy-40 (_type_) none 40)
(dummy-41 (_type_) none 41)
(TODO-RENAME-42 (_type_) int 42)
(dummy-43 (_type_ process event-message-block) object 43)
(dummy-44 (_type_ process event-message-block) object 44)
(TODO-RENAME-45 (_type_ nav-enemy-info) none 45)
(TODO-RENAME-46 (_type_ float) basic 46)
(TODO-RENAME-47 (_type_) none 47) ;; - Stubbed
(TODO-RENAME-48 (_type_) none 48) ;; - Stubbed
(TODO-RENAME-49 (_type_ nav-enemy-info) float 49)
(TODO-RENAME-50 (_type_ vector) symbol 50)
(dummy-51 (_type_) none 51)
(dummy-52 (_type_) none 52)
(dummy-53 (_type_) none 53)
(dummy-54 (_type_) none 54)
(dummy-55 (_type_) none 55)
(dummy-56 (_type_) none 56)
(dummy-57 (_type_) none 57)
(dummy-58 (_type_) none 58)
(TODO-RENAME-59 (_type_) none 59)
(dummy-60 (_type_) none 60)
(dummy-61 (_type_) none 61)
(dummy-62 (_type_) none 62)
(dummy-63 (_type_) none 63)
(dummy-64 (_type_) none 64)
(dummy-65 (_type_) none 65)
(dummy-66 (_type_) none 66)
(dummy-67 (_type_) symbol 67)
(dummy-68 (_type_) none 68)
(dummy-69 (_type_) none 69)
(dummy-70 (_type_) none 70)
(dummy-71 (_type_) none 71)
(dummy-72 (_type_ process event-message-block) object 72) ;; TODO - args unknown, 3rd arg contains a touching-shapes-entry offset 16/20
(TODO-RENAME-73 (_type_ process) symbol 73)
(dummy-74 (_type_) none 74)
(dummy-75 (_type_) none 75)
)
)
;; NOTE - some forward declarations
(define-extern nav-enemy-send-attack (function process touching-shapes-entry symbol object :behavior nav-enemy))
(define-extern nav-enemy-set-hit-from-direction (function process none :behavior nav-enemy))
(define-extern nav-enemy-get-new-patrol-point (function int :behavior nav-enemy))
(define-extern nav-enemy-test-point-near-nav-mesh? (function vector symbol :behavior nav-enemy))
File diff suppressed because it is too large Load Diff
+44 -42
View File
@@ -164,52 +164,54 @@
(lambda :behavior teetertotter
((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(when (= arg2 'touch)
(-> arg3 param 0)
(let ((t9-0 (method-of-type touching-shapes-entry dummy-12)))
(-> self root)
1
(when (and (t9-0) (-> self rock-is-dangerous))
(let ((a1-2 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-2 from) self)
(set! (-> a1-2 num-params) 2)
(set! (-> a1-2 message) 'attack)
(set! (-> a1-2 param 0) (-> arg3 param 0))
(let ((a0-2 (new 'static 'attack-info :mask #x20)))
(set! (-> a0-2 mode) 'deadly)
(set! (-> a1-2 param 1) (the-as uint a0-2))
)
(send-event-function arg0 a1-2)
(when
(and
((method-of-type touching-shapes-entry prims-touching?)
(the-as touching-shapes-entry (-> arg3 param 0))
(the-as collide-shape-moving (-> self root))
(the-as uint 1)
)
(-> self rock-is-dangerous)
)
(let ((a1-2 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-2 from) self)
(set! (-> a1-2 num-params) 2)
(set! (-> a1-2 message) 'attack)
(set! (-> a1-2 param 0) (-> arg3 param 0))
(let ((a0-2 (new 'static 'attack-info :mask #x20)))
(set! (-> a0-2 mode) 'deadly)
(set! (-> a1-2 param 1) (the-as uint a0-2))
)
(send-event-function arg0 a1-2)
)
)
(-> arg3 param 0)
(let ((t9-2 (method-of-type touching-shapes-entry dummy-12)))
(-> self root)
2
(when
(and
(t9-2)
(target-on-end-of-teetertotter? self)
(not (-> self launched-player))
(-> self in-launch-window)
(when
(and
((method-of-type touching-shapes-entry prims-touching?)
(the-as touching-shapes-entry (-> arg3 param 0))
(the-as collide-shape-moving (-> self root))
(the-as uint 2)
)
(let ((a1-4 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-4 from) self)
(set! (-> a1-4 num-params) 2)
(set! (-> a1-4 message) 'shove)
(set! (-> a1-4 param 0) (the-as uint #f))
(let ((v1-16 (new 'static 'attack-info :mask #xcc0)))
(set! (-> v1-16 shove-back) 0.0)
(set! (-> v1-16 shove-up) 53248.0)
(set! (-> v1-16 angle) 'jump)
(set! (-> v1-16 control) 1.0)
(set! (-> a1-4 param 1) (the-as uint v1-16))
)
(when (send-event-function arg0 a1-4)
(let ((v0-0 #t))
(set! (-> self launched-player) v0-0)
v0-0
)
(target-on-end-of-teetertotter? self)
(not (-> self launched-player))
(-> self in-launch-window)
)
(let ((a1-4 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-4 from) self)
(set! (-> a1-4 num-params) 2)
(set! (-> a1-4 message) 'shove)
(set! (-> a1-4 param 0) (the-as uint #f))
(let ((v1-16 (new 'static 'attack-info :mask #xcc0)))
(set! (-> v1-16 shove-back) 0.0)
(set! (-> v1-16 shove-up) 53248.0)
(set! (-> v1-16 angle) 'jump)
(set! (-> v1-16 control) 1.0)
(set! (-> a1-4 param 1) (the-as uint v1-16))
)
(when (send-event-function arg0 a1-4)
(let ((v0-0 #t))
(set! (-> self launched-player) v0-0)
v0-0
)
)
)
+55
View File
@@ -0,0 +1,55 @@
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("--file")
args = parser.parse_args()
import re
labels_with_no_type = []
file_path = "decompiler_out/jak1/{}_disasm.gc".format(args.file)
with open(file_path) as f:
# Find all
content = f.readlines()
for line in content:
labels_with_no_type = labels_with_no_type + re.findall(r'L\d+', line)
# dedup list
labels_with_no_type = list(dict.fromkeys(labels_with_no_type))
# let's go try to identify the types from the IR2 file if we can
label_lines = []
file_path = "decompiler_out/jak1/{}_ir2.asm".format(args.file)
with open(file_path) as f:
# Find all
content = f.readlines()
prev_line = ""
for i, line in enumerate(content):
if line.startswith("L"):
for label in labels_with_no_type:
if line.startswith("{}:".format(label)):
# Check if the previous line has a `.type`
prev_line = content[i-1]
if ".type" in prev_line:
the_type = prev_line.split(".type ")[1].strip()
label_lines.append("[\"{}\", \"{}\", true]".format(label, the_type))
labels_with_no_type.remove(label)
break
# Otherwise, lets see if it's a lambda, check the last 10 lines (hopefully this is enough)
found_it = False
for j in range(20):
temp_line = content[i-j]
if "anon-function" in temp_line:
label_lines.append("[\"{}\", \"_lambda_\", true]".format(label))
labels_with_no_type.remove(label)
found_it = True
break
if found_it:
break
# Print out the labels
print("Here are the labels I couldn't find a type for:")
for label in labels_with_no_type:
print("- {}".format(label))
print("And here are the ones I could:")
print(",\n".join(label_lines))
@@ -314,10 +314,10 @@
;; definition of type collide-shape-prim-mesh
(deftype collide-shape-prim-mesh (collide-shape-prim)
((mesh basic :offset-assert 72)
(mesh-id int32 :offset-assert 76)
(mesh-cache-id uint64 :offset-assert 80)
(mesh-cache-tris uint32 :offset-assert 88)
((mesh collide-mesh :offset-assert 72)
(mesh-id int32 :offset-assert 76)
(mesh-cache-id uint64 :offset-assert 80)
(mesh-cache-tris uint32 :offset-assert 88)
)
:method-count-assert 29
:size-assert #x5c
@@ -389,17 +389,17 @@
;; definition of type collide-shape
(deftype collide-shape (trsqv)
((process process :offset-assert 140)
(max-iteration-count uint8 :offset-assert 144)
(nav-flags uint8 :offset-assert 145)
(pad-byte uint8 2 :offset-assert 146)
(pat-ignore-mask pat-surface :offset-assert 148)
(event-self basic :offset-assert 152)
(event-other basic :offset-assert 156)
(root-prim collide-shape-prim :offset-assert 160)
(riders basic :offset-assert 164)
(backup-collide-as uint64 :offset-assert 168)
(backup-collide-with uint64 :offset-assert 176)
((process process :offset-assert 140)
(max-iteration-count uint8 :offset-assert 144)
(nav-flags uint8 :offset-assert 145)
(pad-byte uint8 2 :offset-assert 146)
(pat-ignore-mask pat-surface :offset-assert 148)
(event-self basic :offset-assert 152)
(event-other basic :offset-assert 156)
(root-prim collide-shape-prim :offset-assert 160)
(riders collide-sticky-rider-group :offset-assert 164)
(backup-collide-as uint64 :offset-assert 168)
(backup-collide-with uint64 :offset-assert 176)
)
:method-count-assert 56
:size-assert #xb8
@@ -411,7 +411,7 @@
(dummy-30 () none 30)
(dummy-31 () none 31)
(dummy-32 () none 32)
(dummy-33 () none 33)
(dummy-33 (_type_ vector uint) none 33)
(dummy-34 () none 34)
(dummy-35 (_type_) none 35)
(dummy-36 () none 36)
@@ -432,7 +432,7 @@
(dummy-51 () none 51)
(dummy-52 () none 52)
(dummy-53 () none 53)
(dummy-54 () none 54)
(dummy-54 (_type_ int int) none 54)
(dummy-55 () none 55)
)
)
@@ -503,12 +503,12 @@
:flag-assert #x41000001bc
(:methods
(dummy-56 () none 56)
(dummy-57 () none 57)
(dummy-58 () none 58)
(dummy-59 () none 59)
(dummy-60 () none 60)
(dummy-57 (_type_ vector) none 57)
(dummy-58 (_type_ vector) none 58)
(dummy-59 (_type_ vector uint float symbol symbol symbol) none 59)
(dummy-60 (_type_ float float symbol uint) none 60)
(dummy-61 () none 61)
(dummy-62 () none 62)
(dummy-62 (_type_ vector float) vector 62)
(dummy-63 () none 63)
(dummy-64 () none 64)
)
@@ -3,8 +3,8 @@
;; definition of type touching-prim
(deftype touching-prim (structure)
((cprim basic :offset-assert 0)
(has-tri? basic :offset-assert 4)
((cprim collide-shape-prim :offset-assert 0)
(has-tri? symbol :offset-assert 4)
(tri collide-tri-result :inline :offset-assert 16)
)
:method-count-assert 9
@@ -25,7 +25,7 @@
(deftype touching-prims-entry (structure)
((next touching-prims-entry :offset-assert 0)
(prev touching-prims-entry :offset-assert 4)
(allocated? basic :offset-assert 8)
(allocated? symbol :offset-assert 8)
(u float :offset-assert 12)
(prim1 touching-prim :inline :offset-assert 16)
(prim2 touching-prim :inline :offset-assert 128)
@@ -120,8 +120,8 @@
;; definition of type touching-shapes-entry
(deftype touching-shapes-entry (structure)
((cshape1 basic :offset-assert 0)
(cshape2 basic :offset-assert 4)
((cshape1 collide-shape :offset-assert 0)
(cshape2 collide-shape :offset-assert 4)
(resolve-u int8 :offset-assert 8)
(head touching-prims-entry :offset-assert 12)
)
@@ -132,7 +132,7 @@
(dummy-9 () none 9)
(dummy-10 () none 10)
(dummy-11 () none 11)
(dummy-12 () none 12)
(prims-touching? (_type_ collide-shape-moving uint) touching-prims-entry 12)
(dummy-13 () none 13)
(dummy-14 () none 14)
(dummy-15 () none 15)
+1 -1
View File
@@ -119,7 +119,7 @@
:flag-assert #xc00000028
(:methods
(new (symbol type process pickup-type float) _type_ 0)
(dummy-9 () none 9)
(TODO-RENAME-9 (_type_ symbol process-tree fact-info int) uint 9)
(reset! (_type_ symbol) none 10)
(dummy-11 (_type_) float 11)
)
+8 -8
View File
@@ -381,24 +381,24 @@
(new (symbol type collide-shape int float) _type_ 0)
(dummy-9 () none 9)
(point-in-bounds? (_type_ vector) symbol 10)
(dummy-11 () none 11)
(dummy-11 (_type_ vector) none 11)
(dummy-12 () none 12)
(dummy-13 () none 13)
(dummy-14 () none 14)
(set-target-pos! (_type_ vector) none 15)
(dummy-16 () none 16)
(dummy-16 (_type_ vector) symbol 16)
(dummy-17 () none 17)
(dummy-18 () none 18)
(dummy-19 () none 19)
(dummy-19 (_type_ vector collide-shape-moving vector float) 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-24 (_type_ float symbol) none 24)
(dummy-25 (_type_ vector float) symbol 25)
(dummy-26 (_type_) none 26)
(dummy-27 () none 27)
(dummy-28 () none 28)
(dummy-28 (_type_ int) none 28)
(should-display? (_type_) symbol 29)
(dummy-30 () none 30)
(dummy-31 () none 31)
@@ -594,7 +594,7 @@
(defmethod should-display? nav-control ((obj nav-control))
(and
*display-nav-marks*
(nonzero? (logand (-> obj flags) (nav-control-flags display-marks)))
(nonzero? (logand (-> obj flags) (nav-control-flags display-marks bit0)))
)
)
+1 -4
View File
@@ -2,6 +2,7 @@
(in-package goal)
;; definition for method 9 of type trajectory
;; INFO: this function exists in multiple non-identical object files
;; Used lq/sq
(defmethod
eval-position!
@@ -136,7 +137,3 @@
0
(none)
)
+79 -77
View File
@@ -42,18 +42,18 @@
(shadow-max-y meters :offset-assert 168)
(shadow-min-y meters :offset-assert 172)
(shadow-locus-dist meters :offset-assert 176)
(use-align basic :offset-assert 180)
(draw-shadow basic :offset-assert 184)
(move-to-ground basic :offset-assert 188)
(hover-if-no-ground basic :offset-assert 192)
(use-momentum basic :offset-assert 196)
(use-flee basic :offset-assert 200)
(use-proximity-notice basic :offset-assert 204)
(use-jump-blocked basic :offset-assert 208)
(use-jump-patrol basic :offset-assert 212)
(use-align symbol :offset-assert 180)
(draw-shadow symbol :offset-assert 184)
(move-to-ground symbol :offset-assert 188)
(hover-if-no-ground symbol :offset-assert 192)
(use-momentum symbol :offset-assert 196)
(use-flee symbol :offset-assert 200)
(use-proximity-notice symbol :offset-assert 204)
(use-jump-blocked symbol :offset-assert 208)
(use-jump-patrol symbol :offset-assert 212)
(gnd-collide-with uint64 :offset-assert 216)
(debug-draw-neck basic :offset-assert 224)
(debug-draw-jump basic :offset-assert 228)
(debug-draw-neck symbol :offset-assert 224)
(debug-draw-jump symbol :offset-assert 228)
)
:method-count-assert 9
:size-assert #xe8
@@ -139,30 +139,32 @@
;; definition of type nav-enemy
(deftype nav-enemy (process-drawable)
((hit-from-dir vector :inline :offset-assert 176)
(event-param-point vector :inline :offset-assert 192)
(frustration-point vector :inline :offset-assert 208)
(jump-dest vector :inline :offset-assert 224)
(jump-trajectory trajectory :inline :offset-assert 240)
(jump-time uint64 :offset-assert 280)
(nav-info nav-enemy-info :offset-assert 288)
(target-speed float :offset-assert 292)
(momentum-speed float :offset-assert 296)
(acceleration float :offset-assert 300)
(rotate-speed float :offset-assert 304)
(turn-time uint64 :offset-assert 312)
(frustration-time uint64 :offset-assert 320)
(speed-scale float :offset-assert 328)
(neck basic :offset-assert 332)
(reaction-time uint64 :offset-assert 336)
(notice-time uint64 :offset-assert 344)
(state-timeout uint64 :offset-assert 352)
(free-time uint64 :offset-assert 360)
(touch-time uint64 :offset-assert 368)
(nav-enemy-flags uint32 :offset-assert 376)
(incomming-attack-id uint64 :offset-assert 384)
(jump-return-state basic :offset-assert 392)
(rand-gen basic :offset-assert 396)
((collide-info collide-shape-moving :offset 112)
(enemy-info fact-info-enemy :offset 144)
(hit-from-dir vector :inline :offset-assert 176)
(event-param-point vector :inline :offset-assert 192)
(frustration-point vector :inline :offset-assert 208)
(jump-dest vector :inline :offset-assert 224)
(jump-trajectory trajectory :inline :offset-assert 240)
(jump-time uint64 :offset-assert 280)
(nav-info nav-enemy-info :offset-assert 288)
(target-speed float :offset-assert 292)
(momentum-speed float :offset-assert 296)
(acceleration float :offset-assert 300)
(rotate-speed float :offset-assert 304)
(turn-time uint64 :offset-assert 312)
(frustration-time uint64 :offset-assert 320)
(speed-scale float :offset-assert 328)
(neck joint-mod :offset-assert 332)
(reaction-time uint64 :offset-assert 336)
(notice-time uint64 :offset-assert 344)
(state-timeout uint64 :offset-assert 352)
(free-time uint64 :offset-assert 360)
(touch-time uint64 :offset-assert 368)
(nav-enemy-flags uint32 :offset-assert 376)
(incomming-attack-id uint64 :offset-assert 384)
(jump-return-state basic :offset-assert 392)
(rand-gen random-generator :offset-assert 396)
)
:heap-base #x120
:method-count-assert 76
@@ -183,48 +185,48 @@
(nav-enemy-stare () none 31)
(nav-enemy-stop-chase () none 32)
(nav-enemy-victory () none 33)
(dummy-34 () none 34)
(dummy-35 () none 35)
(dummy-36 () none 36)
(dummy-37 () none 37)
(dummy-38 () none 38)
(dummy-39 () none 39)
(dummy-40 () none 40)
(dummy-41 () none 41)
(dummy-42 () none 42)
(dummy-43 () none 43)
(dummy-44 () none 44)
(dummy-45 () none 45)
(dummy-46 () none 46)
(dummy-47 () none 47)
(dummy-48 () none 48)
(dummy-49 () none 49)
(dummy-50 () none 50)
(dummy-51 () none 51)
(dummy-52 () none 52)
(dummy-53 () none 53)
(dummy-54 () none 54)
(dummy-55 () none 55)
(dummy-56 () none 56)
(dummy-57 () none 57)
(dummy-58 () none 58)
(dummy-59 () none 59)
(dummy-60 () none 60)
(dummy-61 () none 61)
(dummy-62 () none 62)
(dummy-63 () none 63)
(dummy-64 () none 64)
(dummy-65 () none 65)
(dummy-66 () none 66)
(dummy-67 () none 67)
(dummy-68 () none 68)
(dummy-69 () none 69)
(dummy-70 () none 70)
(dummy-71 () none 71)
(dummy-72 () none 72)
(dummy-73 () none 73)
(dummy-74 () none 74)
(dummy-75 () none 75)
(dummy-34 (_type_) none 34)
(dummy-35 (_type_) none 35)
(dummy-36 (_type_) none 36)
(TODO-RENAME-37 (_type_) none 37)
(TODO-RENAME-38 (_type_) none 38)
(TODO-RENAME-39 (_type_) none 39)
(dummy-40 (_type_) none 40)
(dummy-41 (_type_) none 41)
(TODO-RENAME-42 (_type_) int 42)
(dummy-43 (_type_ process event-message-block) object 43)
(dummy-44 (_type_ process event-message-block) object 44)
(TODO-RENAME-45 (_type_ nav-enemy-info) none 45)
(TODO-RENAME-46 (_type_ float) basic 46)
(TODO-RENAME-47 (_type_) none 47)
(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_) none 51)
(dummy-52 (_type_) none 52)
(dummy-53 (_type_) none 53)
(dummy-54 (_type_) none 54)
(dummy-55 (_type_) none 55)
(dummy-56 (_type_) none 56)
(dummy-57 (_type_) none 57)
(dummy-58 (_type_) none 58)
(TODO-RENAME-59 (_type_) none 59)
(dummy-60 (_type_) none 60)
(dummy-61 (_type_) none 61)
(dummy-62 (_type_) none 62)
(dummy-63 (_type_) none 63)
(dummy-64 (_type_) none 64)
(dummy-65 (_type_) none 65)
(dummy-66 (_type_) none 66)
(dummy-67 (_type_) symbol 67)
(dummy-68 (_type_) none 68)
(dummy-69 (_type_) none 69)
(dummy-70 (_type_) none 70)
(dummy-71 (_type_) none 71)
(dummy-72 (_type_ process event-message-block) object 72)
(TODO-RENAME-73 (_type_ process) symbol 73)
(dummy-74 (_type_) none 74)
(dummy-75 (_type_) none 75)
)
)
File diff suppressed because it is too large Load Diff
@@ -166,52 +166,54 @@
(lambda :behavior teetertotter
((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(when (= arg2 'touch)
(-> arg3 param 0)
(let ((t9-0 (method-of-type touching-shapes-entry dummy-12)))
(-> self root)
1
(when (and (t9-0) (-> self rock-is-dangerous))
(let ((a1-2 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-2 from) self)
(set! (-> a1-2 num-params) 2)
(set! (-> a1-2 message) 'attack)
(set! (-> a1-2 param 0) (-> arg3 param 0))
(let ((a0-2 (new 'static 'attack-info :mask #x20)))
(set! (-> a0-2 mode) 'deadly)
(set! (-> a1-2 param 1) (the-as uint a0-2))
)
(send-event-function arg0 a1-2)
(when
(and
((method-of-type touching-shapes-entry prims-touching?)
(the-as touching-shapes-entry (-> arg3 param 0))
(the-as collide-shape-moving (-> self root))
(the-as uint 1)
)
(-> self rock-is-dangerous)
)
(let ((a1-2 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-2 from) self)
(set! (-> a1-2 num-params) 2)
(set! (-> a1-2 message) 'attack)
(set! (-> a1-2 param 0) (-> arg3 param 0))
(let ((a0-2 (new 'static 'attack-info :mask #x20)))
(set! (-> a0-2 mode) 'deadly)
(set! (-> a1-2 param 1) (the-as uint a0-2))
)
(send-event-function arg0 a1-2)
)
)
(-> arg3 param 0)
(let ((t9-2 (method-of-type touching-shapes-entry dummy-12)))
(-> self root)
2
(when
(and
(t9-2)
(target-on-end-of-teetertotter? self)
(not (-> self launched-player))
(-> self in-launch-window)
(when
(and
((method-of-type touching-shapes-entry prims-touching?)
(the-as touching-shapes-entry (-> arg3 param 0))
(the-as collide-shape-moving (-> self root))
(the-as uint 2)
)
(let ((a1-4 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-4 from) self)
(set! (-> a1-4 num-params) 2)
(set! (-> a1-4 message) 'shove)
(set! (-> a1-4 param 0) (the-as uint #f))
(let ((v1-16 (new 'static 'attack-info :mask #xcc0)))
(set! (-> v1-16 shove-back) 0.0)
(set! (-> v1-16 shove-up) 53248.0)
(set! (-> v1-16 angle) 'jump)
(set! (-> v1-16 control) 1.0)
(set! (-> a1-4 param 1) (the-as uint v1-16))
)
(when (send-event-function arg0 a1-4)
(let ((v0-0 #t))
(set! (-> self launched-player) v0-0)
v0-0
)
(target-on-end-of-teetertotter? self)
(not (-> self launched-player))
(-> self in-launch-window)
)
(let ((a1-4 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-4 from) self)
(set! (-> a1-4 num-params) 2)
(set! (-> a1-4 message) 'shove)
(set! (-> a1-4 param 0) (the-as uint #f))
(let ((v1-16 (new 'static 'attack-info :mask #xcc0)))
(set! (-> v1-16 shove-back) 0.0)
(set! (-> v1-16 shove-up) 53248.0)
(set! (-> v1-16 angle) 'jump)
(set! (-> v1-16 control) 1.0)
(set! (-> a1-4 param 1) (the-as uint v1-16))
)
(when (send-event-function arg0 a1-4)
(let ((v0-0 #t))
(set! (-> self launched-player) v0-0)
v0-0
)
)
)
@@ -479,3 +481,7 @@
(go teetertotter-idle)
(none)
)