jak-project/goal_src/levels/common/nav-enemy-h.gc
ManDude 24578b64b9
proper support for hardcoded "time" types (#1141)
* hardcode `time-frame`things

* Update cam-states_REF.gc

* Update level-info_REF.gc

* update refs 1

* update refs 2

* update refs 3

* update refs 4

* update refs 5

* update detection and casting

* Update FormExpressionAnalysis.cpp

* update refs 6

* update mood decomp

* update refs 7

* update refs 8

* remove temp entity birth code

* update time-frame casts

* fix compiler

* hardcode stuff and fix some types

* fix some bitfield detection being wrong

* bug fixes

* detect seconds on adds with immediate

* update refs 9

* fix casts and rand-vu-int-range bugs (update refs 10)

* update refs 11

* update 12

* update 13

* update 14

* Update game-info_REF.gc

* improve cpad macros detection

* remove unused code

* update refs

* clang

* update source code

* Update cam-states.gc

* `lavatube-energy` finish

* update refs

* fix actor bank stuff

* Update navigate.gc

* reduce entity default stack size

* Update transformq-h.gc

* oops forgot these

* fix code and tests

* fix mood sound stuff

* Update load-dgo.gc

* Update README.md
2022-02-12 12:26:19 -05:00

173 lines
8.2 KiB
Common Lisp

;;-*-Lisp-*-
(in-package goal)
;; name: nav-enemy-h.gc
;; name in dgo: nav-enemy-h
;; dgos: GAME, COMMON, L1
(declare-type nav-enemy process-drawable)
(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))
;; DECOMP BEGINS
(deftype nav-enemy-info (basic)
((idle-anim int32 :offset-assert 4)
(walk-anim int32 :offset-assert 8)
(turn-anim int32 :offset-assert 12)
(notice-anim int32 :offset-assert 16)
(run-anim int32 :offset-assert 20)
(jump-anim int32 :offset-assert 24)
(jump-land-anim int32 :offset-assert 28)
(victory-anim int32 :offset-assert 32)
(taunt-anim int32 :offset-assert 36)
(die-anim int32 :offset-assert 40)
(neck-joint int32 :offset-assert 44)
(player-look-at-joint int32 :offset-assert 48)
(run-travel-speed meters :offset-assert 52)
(run-rotate-speed degrees :offset-assert 56)
(run-acceleration meters :offset-assert 60)
(run-turn-time seconds :offset-assert 64)
(walk-travel-speed meters :offset-assert 72)
(walk-rotate-speed degrees :offset-assert 76)
(walk-acceleration meters :offset-assert 80)
(walk-turn-time seconds :offset-assert 88)
(attack-shove-back meters :offset-assert 96)
(attack-shove-up meters :offset-assert 100)
(shadow-size meters :offset-assert 104)
(notice-nav-radius meters :offset-assert 108)
(nav-nearest-y-threshold meters :offset-assert 112)
(notice-distance meters :offset-assert 116)
(proximity-notice-distance meters :offset-assert 120)
(stop-chase-distance meters :offset-assert 124)
(frustration-distance meters :offset-assert 128)
(frustration-time time-frame :offset-assert 136)
(die-anim-hold-frame float :offset-assert 144)
(jump-anim-start-frame float :offset-assert 148)
(jump-land-anim-end-frame float :offset-assert 152)
(jump-height-min meters :offset-assert 156)
(jump-height-factor float :offset-assert 160)
(jump-start-anim-speed float :offset-assert 164)
(shadow-max-y meters :offset-assert 168)
(shadow-min-y meters :offset-assert 172)
(shadow-locus-dist meters :offset-assert 176)
(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 symbol :offset-assert 224)
(debug-draw-jump symbol :offset-assert 228)
)
:method-count-assert 9
:size-assert #xe8
:flag-assert #x9000000e8
)
(deftype nav-enemy (process-drawable)
((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 time-frame :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 time-frame :offset-assert 312)
(frustration-time time-frame :offset-assert 320)
(speed-scale float :offset-assert 328)
(neck joint-mod :offset-assert 332)
(reaction-time time-frame :offset-assert 336)
(notice-time time-frame :offset-assert 344)
(state-timeout time-frame :offset-assert 352)
(free-time time-frame :offset-assert 360)
(touch-time time-frame :offset-assert 368)
(nav-enemy-flags uint32 :offset-assert 376)
(incomming-attack-id handle :offset-assert 384)
(jump-return-state (state process) :offset-assert 392)
(rand-gen random-generator :offset-assert 396)
)
:heap-base #x120
:method-count-assert 76
:size-assert #x190
:flag-assert #x4c01200190
(:methods
(nav-enemy-attack () _type_ :state 20)
(nav-enemy-chase () _type_ :state 21)
(nav-enemy-flee () _type_ :state 22)
(nav-enemy-die () _type_ :state 23)
(nav-enemy-fuel-cell () _type_ :state 24)
(nav-enemy-give-up () _type_ :state 25)
(nav-enemy-jump () _type_ :state 26)
(nav-enemy-jump-land () _type_ :state 27)
(nav-enemy-idle () _type_ :state 28)
(nav-enemy-notice () _type_ :state 29)
(nav-enemy-patrol () _type_ :state 30)
(nav-enemy-stare () _type_ :state 31)
(nav-enemy-stop-chase () _type_ :state 32)
(nav-enemy-victory () _type_ :state 33)
(dummy-34 (_type_) none 34)
(nav-enemy-wait-for-cue () _type_ :state 35)
(nav-enemy-jump-to-point () _type_ :state 36)
(TODO-RENAME-37 (_type_) none 37)
(TODO-RENAME-38 (_type_) none 38)
(common-post (_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)
(initialize-collision (_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_ vector) symbol 52)
(dummy-53 (_type_) symbol 53)
(dummy-54 (_type_ vector) symbol 54)
(dummy-55 (_type_) symbol 55)
(set-jump-height-factor! (_type_ int) none 56)
(dummy-57 (_type_) none 57)
(dummy-58 (_type_) none 58)
(TODO-RENAME-59 (_type_) none 59)
(dummy-60 (_type_ symbol) symbol 60)
(snow-bunny-attack () _type_ :state 61)
(snow-bunny-chase-hop () _type_ :state 62)
(snow-bunny-defend () _type_ :state 63)
(dummy-64 () _type_ :state 64)
(snow-bunny-lunge () _type_ :state 65)
(snow-bunny-nav-resume () _type_ :state 66)
(snow-bunny-patrol-hop () _type_ :state 67)
(snow-bunny-patrol-idle () _type_ :state 68)
(dummy-69 () _type_ :state 69)
(snow-bunny-retreat-hop () _type_ :state 70)
(snow-bunny-tune-spheres () _type_ :state 71)
(nav-enemy-touch-handler (_type_ process event-message-block) object 72)
(nav-enemy-attack-handler (_type_ process event-message-block) object 73)
(nav-enemy-jump-blocked () _type_ :state 74)
(dummy-75 () _type_ :state 75)
)
)
0