The last two blocks that under-covered their vertex pool were f102_break.dat and f104_break.dat in ptc_pack.xpr, each reading a neighbouring block's index buffer against the wrong declaration (414 verts indexed to 404; 160 indexed to 79). Their marker lists do not map onto the stored blocks -- only 2 of 9 and 4 of 10 sub-meshes decoded at all. Requiring coverage (max_idx + 4 >= vtx_count) for pre-pivot sub-meshes drops exactly the mismatched pieces. Every decoded sub-mesh disc-wide now covers its pool: 8580 at slack 0, 49 within tolerance, none beyond, none negative. Coverage 6069/6294, inconsistency 56, truth table 46/46 -- all unchanged. Suite green. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
103 KiB
103 KiB