Skip to content

v1.4: fix section-boundary bleed and ambiguous compact shapes - #32

Draft
Datamining00 wants to merge 6 commits into
v1.4-consecutive-transform-pair-fixfrom
v1.4-parser-boundary-compact-fix
Draft

v1.4: fix section-boundary bleed and ambiguous compact shapes#32
Datamining00 wants to merge 6 commits into
v1.4-consecutive-transform-pair-fixfrom
v1.4-parser-boundary-compact-fix

Conversation

@Datamining00

@Datamining00 Datamining00 commented Aug 20, 2026

Copy link
Copy Markdown
Owner

Real-world fixes

  1. Left occlusion / section bleed

    • The supplied layer probe isolated the blocking artwork to the final Left layers, with layer 2761 at source offset 185644 matching the previously observed populated-section boundary drift.
    • Restore the conservative populated->populated boundary rule: if the next section begins immediately with a proven 32-byte placement, suppress the legacy unconditional 18-byte remnant skip.
  2. Right preview failure / shape word 0x0100

    • The supplied v3 diagnostic confirms the record exists at the corrected absolute raw offset, but it uses the ambiguous one-byte 0x02 compact form and 0x0100 has no pinned native FH6 resource mapping.
    • Full 00/01 02 placements remain untouched.
    • Only ambiguous one-byte 0x02 candidates are required to resolve through the pinned renderer's native resource map before they may become ShapeNodes. Unresolved compact candidates remain available to the normal parser grammar instead of being prematurely classified as native shapes.

Safety constraints

  • No layer reversal.
  • No car ID, livery name, section, layer index, source offset, coordinate, or shape-word hard-code in runtime behavior.
  • Existing bare-parent and consecutive-transform fixes remain unchanged.
  • Exact native asset validation in the renderer remains fail-closed.

Validation

  • Windows CI: success.
  • Full regression suite: 185 tests, OK.
  • New section-boundary regression tests: passed.
  • New compact-shape guard tests, including the supplied 0x0100 raw byte pattern: passed.
  • PyInstaller one-file build: success.
  • EXE SHA-256: 951d11df528f84b22d9bff483f0ccb1949d541453c01c5eaaed4a14a47237a21.
  • Artifact ZIP SHA-256: 6882c42286b2707dbeb65206a20cdd093cb84f4b96a95a73628b2650ff38e8bf.

Draft until the supplied Left and Right liveries are visually verified with the built EXE.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant