hit-location cylinder: raw-bytes audit of the shipped tables + chassis->table map + wedge orientation
Audit of Cyd's hit-model artifact against THE BINARY (user mandate: not vs the port). res29_scan.py parses the type-29 streams straight from BTL4.RES bytes: 18 streams / 8 distinct confirmed; the 7-wedge cells (BLH band 6, VUL band 4) and the all-fixed BLH/OWN twist patterns are authored fact; every artifact spot-check cell matched the raw bytes verbatim. Chassis->table resolved by live-dump matching (MadCat and Avatar ride DIFFERENT same-zone-set tables). Authored slice names fix the wedge orientation: FRONT = the +Z arc, W1|W2 seam = dead ahead -- corrects the #92 comment's W6-frontal claim. Collision type-0 divert re-grounded at 0x4a0361/0x4a036d: rams never touch the cylinder. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
07072fc9f0
commit
47d9a61402
@@ -965,6 +965,37 @@ returned NULL) -- the cascade "ran" and touched nothing, which is why blown-off
|
||||
arms left firing gun pods across every chassis (Conn Man's three-chassis audit).
|
||||
See reconstruction-gotchas #25.
|
||||
|
||||
## The hit-location CYLINDER -- raw-bytes audit + chassis->table map (2026-08-02) [T1]
|
||||
|
||||
Full independent verification of the type-29 DamageLookupTable streams, parsed
|
||||
STRAIGHT from BTL4.RES bytes with `scratchpad/night9/res29_scan.py` (no port
|
||||
code involved; grammar = the binary ctors @0x49ea48/@0x49e5e4). Results:
|
||||
|
||||
* **18 streams, 8 distinct by content** (copies 3,3,2,2,2,2,2,2). All 7-layer.
|
||||
* **Slice counts are authored, not fixed 8**: Black Hawk band 6 and the
|
||||
Vulture/Battlemaster band 4 are **7-wedge** rings; everything else 8.
|
||||
* rotateWithTorso: layers 3-6 on six tables; **all-zero on Black Hawk + Owens**.
|
||||
* Chassis -> content hash (live-dump matched, dump-identical rounding):
|
||||
ava1->1b9958b4, bhk1->5150f823, lok1->b0a0e692, **mad1->c02bfc7a**,
|
||||
own1->f0f03c87, snd1->0e1a9ca0, thr1->0163740f, vul1->739b1a6b.
|
||||
The two same-zone-set "Avatar/MadCat" tables ARE distinguishable by loader:
|
||||
**the Mad Cat rides one (c02bfc7a), the Avatar the other (1b9958b4)**.
|
||||
* **Wedge orientation, from the AUTHORED slice names** [T1 data]: W0/W7 =
|
||||
"Right*", W1/W2 = "Front*" -- with theta = atan2(z,x) from +X toward +Z, the
|
||||
mech-local FRONT is the **+Z arc (theta 45-135 deg)** and dead-ahead is the
|
||||
W1|W2 SEAM. (Corrects the earlier #92 comment that put frontal hits in W6.)
|
||||
Frontal unaimed foot-band hits therefore straddle the RightFoot/LeftFoot
|
||||
cells by impact-x sign, and the authored cross-bleed (20% opposite foot,
|
||||
10+10% opposite leg) is a data-true source of "hit the opposite leg" reports.
|
||||
* Resolver mechanics re-confirmed from the decomp (@0049eb54/@0049e678/
|
||||
@0049de14): WorldToLocal; local y CLAMPED to [0, heightRef] BEFORE scaling
|
||||
(heightRef = live collision cylinder, owner+0x2ec->+0xc); layer floor+clamp;
|
||||
atan2(z,x) +2pi wrap, on-axis -> random angle; rotateWithTorso adds the live
|
||||
torso heading (torso+0x1d8) BEFORE slicing; uniform roll vs ascending
|
||||
cumulatives, -1 fallthrough. **Collision damage (type 0) NEVER reaches the
|
||||
cylinder** -- diverted at the handler head (0x4a0361: test type; 0x4a036d:
|
||||
call 0x49ffcc; jmp out) [T1 disasm].
|
||||
|
||||
## Key Relationships
|
||||
- Weapons/roster: [[subsystems]]. Aim source: [[locomotion]] (drive/facing). Effects: [[rendering]].
|
||||
- P5 forensics: `docs/HARD_PROBLEMS.md`. Data: [[decomp-reference]] §4-5.
|
||||
|
||||
Reference in New Issue
Block a user