mirror of
https://github.com/open-goal/jak-project.git
synced 2024-10-21 07:37:45 -04:00
b50b9eadb2
Fixes empty boxed arrays of strings breaking some decomp (`ctywide-speech` and `race-info`). Adds `decomp-as` tag to decompiler types so that the static data decompiler can use macros like `meters` and `seconds` on fields that aren't of type `meters` or `time-frame`. Adds `override` tag to decompiler types which overrides the type of field with that name. The type must be a child type of the original field's type (or the same type, but why would you do this?). Fixes the camera being offset for `drillmtn` after loading `palout` once. This is a huge refactor sadly.
127 lines
5.4 KiB
Common Lisp
127 lines
5.4 KiB
Common Lisp
;;-*-Lisp-*-
|
|
(in-package goal)
|
|
|
|
;; name: nav-enemy-h.gc
|
|
;; name in dgo: nav-enemy-h
|
|
;; dgos: GAME, COMMON
|
|
|
|
;; grunt
|
|
(declare-type nav-enemy enemy)
|
|
(define-extern nav-enemy-falling-post (function none :behavior nav-enemy))
|
|
(define-extern nav-enemy-chase-post (function none :behavior nav-enemy))
|
|
(define-extern nav-enemy-simple-post (function none :behavior nav-enemy))
|
|
|
|
(declare-type nav-callback-info structure)
|
|
(define-extern *nav-enemy-null-callback-info* nav-callback-info)
|
|
|
|
;; flitter
|
|
(define-extern nav-enemy-travel-post (function none :behavior nav-enemy))
|
|
|
|
;; DECOMP BEGINS
|
|
|
|
(deftype nav-enemy-info (enemy-info)
|
|
((callback-info nav-callback-info :offset-assert 384)
|
|
(use-momentum symbol :offset-assert 388)
|
|
(use-frustration symbol :offset-assert 392)
|
|
(use-stop-chase symbol :offset-assert 396)
|
|
(use-circling symbol :offset-assert 400)
|
|
(use-pacing symbol :offset-assert 404)
|
|
(walk-anim int32 :offset-assert 408)
|
|
(turn-anim int32 :offset-assert 412)
|
|
(run-anim int32 :offset-assert 416)
|
|
(taunt-anim int32 :offset-assert 420)
|
|
(run-travel-speed meters :offset-assert 424)
|
|
(run-acceleration meters :offset-assert 428)
|
|
(run-turning-acceleration meters :offset-assert 432)
|
|
(walk-travel-speed meters :offset-assert 436)
|
|
(walk-acceleration meters :offset-assert 440)
|
|
(walk-turning-acceleration meters :offset-assert 444)
|
|
(maximum-rotation-rate degrees :offset-assert 448)
|
|
(notice-nav-radius meters :offset-assert 452)
|
|
(frustration-distance meters :offset-assert 456)
|
|
(frustration-time time-frame :offset-assert 464)
|
|
(blocked-time time-frame :offset-assert 472)
|
|
(circle-dist-lo float :offset-assert 480)
|
|
(circle-dist-hi float :offset-assert 484)
|
|
(nav-mesh nav-mesh :offset-assert 488)
|
|
)
|
|
:method-count-assert 11
|
|
:size-assert #x1ec
|
|
:flag-assert #xb000001ec
|
|
(:methods
|
|
(copy-nav-enemy-info! (_type_ nav-enemy-info) none 10)
|
|
)
|
|
)
|
|
|
|
|
|
(deftype nav-enemy (enemy)
|
|
((enemy-info nav-enemy-info :override)
|
|
(frustration-point vector :inline :offset-assert 544)
|
|
(move-dest vector :inline :offset-assert 560)
|
|
(frustration-time time-frame :offset-assert 576)
|
|
(blocked-start-time time-frame :offset-assert 584)
|
|
(restore-nav-radius-time time-frame :offset-assert 592)
|
|
(nav-radius-backup float :offset-assert 600)
|
|
)
|
|
:heap-base #x1e0
|
|
:method-count-assert 178
|
|
:size-assert #x25c
|
|
:flag-assert #xb201e0025c
|
|
(:methods
|
|
(set-enemy-info! (_type_ nav-enemy-info) none :replace 112)
|
|
(init-enemy-behaviour-and-stats! (_type_ nav-enemy-info) none :replace 113)
|
|
(taunt () _type_ :state 137)
|
|
(pacing () _type_ :state 138)
|
|
(circling () _type_ :state 139)
|
|
(stop-chase () _type_ :state 140)
|
|
(debug-control () _type_ :state 141)
|
|
(nav-enemy-method-142 (_type_ nav-control) none 142)
|
|
(nav-enemy-method-143 (_type_ nav-control) none 143)
|
|
(nav-enemy-method-144 (_type_) time-frame :behavior nav-enemy 144)
|
|
(nav-enemy-method-145 (_type_ nav-control) none 145)
|
|
(nav-enemy-method-146 (_type_ nav-control) none 146)
|
|
(nav-enemy-method-147 (_type_ nav-control) none 147)
|
|
(nav-enemy-method-148 (_type_ nav-control) none 148)
|
|
(nav-enemy-method-149 (_type_ nav-control) none 149)
|
|
(nav-enemy-method-150 (_type_ nav-control) none 150)
|
|
(nav-enemy-method-151 (_type_ nav-control) none 151)
|
|
(nav-enemy-method-152 (_type_ nav-control) none 152)
|
|
(nav-enemy-method-153 (_type_ nav-control) none 153)
|
|
(nav-enemy-method-154 (_type_ nav-control) none 154)
|
|
(nav-enemy-method-155 (_type_) none 155)
|
|
(nav-enemy-method-156 (_type_) none 156)
|
|
(nav-enemy-method-157 (_type_ vector) nav-poly 157)
|
|
(nav-enemy-method-158 (_type_ vector) object 158)
|
|
(nav-enemy-method-159 (_type_ vector) symbol 159)
|
|
(nav-enemy-method-160 (_type_) none 160)
|
|
(nav-enemy-method-161 (_type_) none 161)
|
|
(nav-enemy-method-162 (_type_) none 162)
|
|
(nav-enemy-method-163 (_type_) symbol 163)
|
|
(nav-enemy-method-164 (_type_) none 164)
|
|
(nav-enemy-method-165 (_type_) none 165)
|
|
(nav-enemy-method-166 (_type_) none 166)
|
|
(nav-enemy-method-167 (_type_) none 167)
|
|
(nav-enemy-method-168 (_type_) float 168)
|
|
(nav-enemy-method-169 (_type_ float symbol) float 169)
|
|
(nav-enemy-method-170 (_type_) none 170)
|
|
(nav-enemy-method-171 (_type_) none 171)
|
|
(nav-enemy-method-172 (_type_) none 172)
|
|
(nav-enemy-method-173 (_type_) none 173)
|
|
(nav-enemy-method-174 (_type_) symbol 174)
|
|
(nav-enemy-method-175 (_type_) symbol 175)
|
|
(nav-enemy-method-176 (_type_) none :behavior nav-enemy 176)
|
|
(nav-enemy-method-177 (_type_) none 177)
|
|
)
|
|
)
|
|
|
|
|
|
(deftype nav-enemy-debug-control-info (basic)
|
|
((enable basic :offset-assert 4)
|
|
(steering float :offset-assert 8)
|
|
(throttle float :offset-assert 12)
|
|
)
|
|
:method-count-assert 9
|
|
:size-assert #x10
|
|
:flag-assert #x900000010
|
|
)
|