mirror of
https://github.com/open-goal/jak-project.git
synced 2024-10-20 21:27:52 -04:00
cd68cb671e
Major change to how `deftype` shows up in our code: - the decompiler will no longer emit the `offset-assert`, `method-count-assert`, `size-assert` and `flag-assert` parameters. There are extremely few cases where having this in the decompiled code is helpful, as the types there come from `all-types` which already has those parameters. This also doesn't break type consistency because: - the asserts aren't compared. - the first step of the test uses `all-types`, which has the asserts, which will throw an error if they're bad. - the decompiler won't emit the `heap-base` parameter unless necessary now. - the decompiler will try its hardest to turn a fixed-offset field into an `overlay-at` field. It falls back to the old offset if all else fails. - `overlay-at` now supports field "dereferencing" to specify the offset that's within a field that's a structure, e.g.: ```lisp (deftype foobar (structure) ((vec vector :inline) (flags int32 :overlay-at (-> vec w)) ) ) ``` in this structure, the offset of `flags` will be 12 because that is the final offset of `vec`'s `w` field within this structure. - **removed ID from all method declarations.** IDs are only ever automatically assigned now. Fixes #3068. - added an `:overlay` parameter to method declarations, in order to declare a new method that goes on top of a previously-defined method. Syntax is `:overlay <method-name>`. Please do not ever use this. - added `state-methods` list parameter. This lets you quickly specify a list of states to be put in the method table. Same syntax as the `states` list parameter. The decompiler will try to put as many states in this as it can without messing with the method ID order. Also changes `defmethod` to make the first type definition (before the arguments) optional. The type can now be inferred from the first argument. Fixes #3093. --------- Co-authored-by: Hat Kid <6624576+Hat-Kid@users.noreply.github.com>
233 lines
23 KiB
Common Lisp
233 lines
23 KiB
Common Lisp
;;-*-Lisp-*-
|
|
(in-package goal)
|
|
|
|
;; name: collide-target-h.gc
|
|
;; name in dgo: collide-target-h
|
|
;; dgos: ENGINE, GAME
|
|
|
|
;; DECOMP BEGINS
|
|
|
|
(deftype control-info (collide-shape-moving)
|
|
((unknown-float00 float :overlay-at ground-impact-vel)
|
|
(unknown-float01 float :overlay-at surface-angle)
|
|
(unknown-float02 float :overlay-at poly-angle)
|
|
(unknown-float03 float :overlay-at touch-angle)
|
|
(transv-ctrl vector :inline :offset 480)
|
|
(target-transv vector :inline :offset 496)
|
|
(bent-gravity-normal vector :inline :offset 512)
|
|
(quat-for-control quaternion :inline :offset 528)
|
|
(override-quat quaternion :inline :offset 544)
|
|
(override-quat-alpha float :offset 560)
|
|
(ctrl-xz-vel float :offset 564)
|
|
(unknown-float003 float :offset 568)
|
|
(turn-go-the-long-way float :offset 572)
|
|
(velocity-after-thrust float :offset 576)
|
|
(turn-lockout-end-time time-frame :offset 584)
|
|
(turn-to-alt-heading vector :inline :offset 592)
|
|
(last-transv vector :inline :offset 608)
|
|
(last-quat-for-control quaternion :inline :offset 624)
|
|
(trans-log-trans vector 128 :inline :offset 640)
|
|
(trans-log-times time-frame 128 :offset 2688)
|
|
(trans-log-idx int32 :offset 3712)
|
|
(draw-offset vector :inline :offset 3728)
|
|
(cspace-offset vector :inline :offset 3744)
|
|
(anim-collide-offset-local vector :inline :offset 3760)
|
|
(anim-collide-offset-world vector :inline :offset 3776)
|
|
(old-anim-collide-offset-world vector :inline :offset 3792)
|
|
(anim-collide-offset-delta-world vector :inline :offset 3808)
|
|
(standard-dynamics dynamics :offset 3824)
|
|
(mod-surface surface :offset 3828)
|
|
(current-surface surface :offset 3832)
|
|
(prev-surf surface :offset 3836)
|
|
(time-of-last-surface-change time-frame :offset 3840)
|
|
(cpad cpad-info :offset 3848)
|
|
(turn-to-angle float :offset 3852)
|
|
(last-turn-to-angle float :offset 3856)
|
|
(turn-to-magnitude float :offset 3860)
|
|
(last-turn-to-magnitude float :offset 3864)
|
|
(to-target-pt-xz vector :inline :offset 3872)
|
|
(last-to-target-pt-xz vector :inline :offset 3888)
|
|
(turn-to-target vector :inline :offset 3904)
|
|
(last-turn-to-target vector :inline :offset 3920)
|
|
(turn-history-ctrl vector 7 :inline :offset 3936)
|
|
(pad-xz-dir vector :inline :offset 4064)
|
|
(last-pad-xz-dir vector :inline :offset 4080)
|
|
(pad-magnitude float :offset 4096)
|
|
(last-pad-magnitude float :offset 4100)
|
|
(time-of-last-pad-read time-frame :offset 4104)
|
|
(w-R-c matrix :inline :offset 4112)
|
|
(c-R-w matrix :inline :offset 4176)
|
|
(ctrl-orientation matrix :inline :offset 4240)
|
|
(pre-collide-local-normal vector :inline :offset 4320)
|
|
(camera-pos vector :inline :offset 4336)
|
|
(cam-R-w matrix :inline :offset 4352)
|
|
(update-cam-R-w-start-time int64 :offset 4416)
|
|
(force-turn-to-direction vector :inline :offset 4432)
|
|
(force-turn-to-speed float :offset 4448)
|
|
(unknown-floatiujh1bnb2n3i1 float :offset 4452)
|
|
(force-turn-to-strength float :offset 4456)
|
|
(tongue-counter int32 :offset 4460)
|
|
(collide-extra-velocity vector :inline :offset 4464)
|
|
(additional-decaying-velocity vector :inline :offset 4480)
|
|
(additional-decaying-velocity-end-time time-frame :offset 4496)
|
|
(additional-decaying-velocity-decay-start-time time-frame :offset 4504)
|
|
(gravity-normal vector :inline :offset 4512)
|
|
(last-gravity-normal vector :inline :offset 4528)
|
|
(last-trans-any-surf vector :inline :offset 4544)
|
|
(unknown-float16 float :overlay-at (-> last-trans-any-surf y))
|
|
(ground-contact-normal vector :inline :offset 4560)
|
|
(last-trans-on-ground vector :inline :offset 4576)
|
|
(ground-contact-sphere-center vector :inline :offset 4592)
|
|
(transv-on-last-impact vector :inline :offset 4608)
|
|
(list-time-on-ground time-frame :offset 4624)
|
|
(ground-local-norm-dot-grav float :offset 4632)
|
|
(local-slope-z float :offset 4636)
|
|
(local-slope-x float :offset 4640)
|
|
(surface-slope-z float :offset 4644)
|
|
(surface-slope-x float :offset 4648)
|
|
(last-time-on-surface time-frame :offset 4656)
|
|
(normal-impact-vel float :offset 4664)
|
|
(last-time-touching-actor time-frame :offset 4672)
|
|
(wall-contact-pat pat-surface :offset 4680)
|
|
(wall-contact-pt vector :inline :offset 4688)
|
|
(wall-contact-poly-normal vector :inline :offset 4704)
|
|
(wall-contact-normal vector :inline :offset 4720)
|
|
(actor-contact-pt vector :inline :offset 4736)
|
|
(actor-contact-normal vector :inline :offset 4752)
|
|
(actor-contact-handle handle :offset 4768)
|
|
(gspot-pat-surfce pat-surface :offset 4776)
|
|
(gspot-slope-z float :offset 4780)
|
|
(gspot-slope-x float :offset 4784)
|
|
(ctrl-slope-heading float :offset 4788)
|
|
(ctrl-slope-z float :offset 4792)
|
|
(ctrl-slope-x float :offset 4796)
|
|
(unknown-word000 int32 :offset 4800)
|
|
(unknown-float002 float :offset 4804)
|
|
(unknown-float-n12iuh3n1 float :offset 4808)
|
|
(unknown-float-ki1jhbn23hj float :offset 4812)
|
|
(time-of-last-lc time-frame :offset 4816)
|
|
(low-coverage-pat-next1 pat-surface :offset 4828)
|
|
(low-coverage-dist-to-next2 float :offset 4832)
|
|
(low-coverage-pat-next2 pat-surface :offset 4836)
|
|
(low-coverage-slope-to-next1 float :offset 4824)
|
|
(low-coverage-norm-of-next1 vector :inline :offset 4848)
|
|
(low-coverage-norm-of-next2 vector :inline :offset 4864)
|
|
(low-coverage-overhang-plane-normal vector :inline :offset 4912)
|
|
(low-coverage-tangent vector :inline :offset 4928)
|
|
(low-coverage-tangent-xz vector :inline :offset 4944)
|
|
(btransv vector :inline :offset 4976)
|
|
(blocked-factor float :offset 4992)
|
|
(blocked-in-air-factor float :offset 4996)
|
|
(time-of-last-clear-wall-in-jump time-frame :offset 5000)
|
|
(time-of-last-lc-touch-edge time-frame :offset 5008)
|
|
(collision-spheres collide-shape-prim-sphere 10 :offset 5016)
|
|
(unknown-word02 int32 :offset 5064)
|
|
(last-roll-end-time time-frame :offset 5072)
|
|
(last-running-attack-end-time time-frame :offset 5080)
|
|
(last-hands-attempt-time time-frame :offset 5088)
|
|
(last-attack-end-time time-frame :offset 5096)
|
|
(last-feet-attempt-time time-frame :offset 5104)
|
|
(unknown-time-frame13 time-frame :offset 5112)
|
|
(last-time-of-stuck time-frame :offset 5120)
|
|
(bend-amount float :offset 5132)
|
|
(bend-target float :offset 5136)
|
|
(bend-speed float :offset 5140)
|
|
(ctrl-to-head-offset vector :inline :offset 5152)
|
|
(lhand-cspace cspace :offset 5168)
|
|
(rhand-cspace cspace :offset 5172)
|
|
(midpoint-of-hands vector :inline :offset 5184)
|
|
(ctrl-to-hands-offset vector :inline :offset 5200)
|
|
(sidekick-root cspace :inline :offset 5216)
|
|
(collide-mode symbol :offset 5248)
|
|
(collide-mode-transition float :offset 5252)
|
|
(duck-gun-tube-transision float :offset 5256)
|
|
(transv-history vector 15 :inline :offset 5264)
|
|
(average-xz-vel float :offset 5520)
|
|
(idx-of-fastest-xz-vel int32 :offset 5524)
|
|
(hand-to-edge-dist float :offset 5528)
|
|
(unknown-symbol000 symbol :offset 5532)
|
|
(edge-grab-edge-dir vector :inline :offset 5536)
|
|
(unknown-vector35 vector :inline :offset 5552)
|
|
(edge-grab-across-edge-dir vector :inline :offset 5568)
|
|
(last-successful-compute-edge-time time-frame :offset 5584)
|
|
(edge-grab-start-time time-frame :offset 5592)
|
|
(unknown-handle000 handle :offset 5600)
|
|
(anim-handle handle :offset 5608)
|
|
(unknown-word04 uint32 :offset 5616)
|
|
(unknown-spool-anim00 spool-anim :overlay-at unknown-word04)
|
|
(unknown-word05 int32 :overlay-at unknown-spool-anim00)
|
|
(unknown-symbol01 symbol :overlay-at unknown-word05)
|
|
(unknown-float34 float :overlay-at unknown-symbol01)
|
|
(did-move-to-pole-or-max-jump-height float :offset 5620)
|
|
(unknown-symbol03 float :offset 5624)
|
|
(unknown-float35 float :offset 5628)
|
|
(unknown-float36 float :offset 5632)
|
|
(unknown-float37 float :offset 5636)
|
|
(unknown-vector37 vector :inline :offset 5648)
|
|
(unknown-vector38 vector :inline :offset 5664)
|
|
(unknown-vector39 vector :inline :offset 5680)
|
|
(unknown-vector40 vector :inline :offset 5696)
|
|
(sliding-start-time time-frame :offset 5712)
|
|
(unknown-time-frame18 time-frame :offset 5720)
|
|
(unknown-sound-id00 sound-id :offset 5776)
|
|
(unknown-handle02 handle :offset 5792)
|
|
(impact-ctrl impact-control :inline :offset 5824)
|
|
(unknown-word06 int32 :offset 5832)
|
|
(unknown-vector41 vector :inline :offset 5888)
|
|
(last-trans-leaving-surf vector :inline :offset 5904)
|
|
(unknown-float38 float :overlay-at (-> last-trans-leaving-surf y))
|
|
(highest-jump-mark vector :inline :offset 5920)
|
|
(unknown-float39 float :overlay-at (-> highest-jump-mark y))
|
|
(unknown-time-frame19 time-frame :offset 5936)
|
|
(time-of-last-debug-float time-frame :offset 5944)
|
|
(danger-mode symbol :offset 5984)
|
|
(target-attack-id uint32 :offset 5988)
|
|
(attacked-by-id int32 :offset 5992)
|
|
(bomb-scale float :offset 5996)
|
|
(attack-count uint64 :offset 6000)
|
|
(send-attack-dest handle :offset 6008)
|
|
(send-attack-time time-frame :offset 6016)
|
|
(unknown-combo-tracker00 combo-tracker :inline :offset 6032)
|
|
(unknown-time-frame21 time-frame :offset 6072)
|
|
(unknown-dword07 int64 :offset 6096)
|
|
(unknown-dword08 int64 :offset 6104)
|
|
(unknown-dword09 int64 :offset 6112)
|
|
(unknown-dword10 int64 :offset 6120)
|
|
(jump-kind symbol :offset 6144)
|
|
(unknown-quaternion04 quaternion :inline :offset 6160)
|
|
(unknown-sound-id01 sound-id :offset 6176)
|
|
(unknown-float41 float :offset 6180)
|
|
(unknown-float42 float :offset 6184)
|
|
(history-idx uint16 :offset 6188)
|
|
(history-length uint16 :offset 6190)
|
|
(remaining-ctrl-iterations int32 :offset 6192)
|
|
(invul1-on-time time-frame :offset 6200)
|
|
(invul1-off-time time-frame :offset 6208)
|
|
(invul2-on-time time-frame :offset 6216)
|
|
(invul2-off-time time-frame :offset 6224)
|
|
(unknown-float43 float :offset 6232)
|
|
(unknown-float001 float :offset 6236)
|
|
(board-jump-and-swim-sound sound-id :offset 6240)
|
|
(bubbles-sound sound-id :offset 6244)
|
|
(unknown-time-frame26 time-frame :offset 6248)
|
|
(unknown-time-frame27 time-frame :offset 6256)
|
|
(yellow-eco-last-use-time int64 :offset 6264)
|
|
(align-xz-vel vector :inline :offset 6272)
|
|
(zx-vel-frac float :offset 6288)
|
|
(unknown-sound-id04 sound-id :offset 6292)
|
|
(unknown-float45 float :offset 6296)
|
|
(default-collide-as-all collide-spec :offset 6300)
|
|
(default-collide-as-fgnd collide-spec :offset 6304)
|
|
(default-collide-with-all collide-spec :offset 6308)
|
|
(default-collide-with-fgnd collide-spec :offset 6312)
|
|
(time-of-last-zero-input time-frame :offset 6320)
|
|
(time-of-last-nonzero-input time-frame :offset 6328)
|
|
(time-between-zero-inputs time-frame :offset 6336)
|
|
(time-of-last-debug-heal time-frame :offset 6368)
|
|
(last-nonzero-input-dir-targ quaternion :inline :offset 6384)
|
|
(time-of-last-wall-hide-first-check-pass time-frame :offset 6400)
|
|
(time-of-first-wall-hide-first-check-pass time-frame :offset 6408)
|
|
(pad uint8 :offset 6415)
|
|
)
|
|
)
|