;;-*-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