;;-*-Lisp-*-
(in-package goal)

;; name: collide-target-h.gc
;; name in dgo: collide-target-h
;; dgos: 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-quat39                                 quaternion                 :inline     :offset 5680)
   (unknown-quat40                                 quaternion                 :inline     :offset 5696)
   (sliding-start-time                             time-frame                             :offset 5712)
   (unknown-time-frame18                           time-frame                             :offset 5720)
   (unknown-sound-id00                             sound-id                               :offset 5776)
   (lightjak-sound-id                              sound-id                               :offset 5780)
   (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)
   (unknown-float0000                              float                                  :offset 6416)
   )
  )
