The browser currently draws the same oval under every visible settler. The supplied reference reads separate original shadow masks and attaches them to each body frame. The demo contains these masks, so the current oval loses the source shape, anchor, action frame and opacity.
Primary sources at paulwedeck/settlers-remake@6ad8c42:
- AdvancedDatFileReader: shadow section 0x5982, independent sequence alignment, the special file-11 specialist shift, and body-to-shadow attachment.
- ShadowTranslator: displaced headers; an opaque run emits the stored value 136 without consuming body-color bytes.
- SettlerImage and unified shader: signed layer bounds, body/torso precedence, shadow alpha and depth behavior.
Raw demo section inventory confirms body/torso/shadow sequence counts of 60/60/60 in file 10, 239/226/239 in file 11, and 34/25/26 in file 12. A body's direct table index, or the generic torso offset, is therefore not sufficient evidence of the right shadow. Follow the actual shadow mapping and source-version rules.
Acceptance:
- Import the available original shadow masks for the currently imported movable sequences. Keep exact source selectors, hashes, frame identity, transparent regions and signed anchors in the content provenance.
- Implement the bounded shadow RLE format at the DAT decoder source. Reject truncated tables, malformed runs, invalid dimensions and allocation bombs. Do not read nonexistent per-pixel color bytes.
- Resolve shadow mapping separately from torso mapping, including legitimate missing layers and the reference's file-specific alignments. Test absent prefixes, specialist shifts and differing frame counts with independent expected results.
- Replace the generic oval with the matching original shadow. Preserve source layer precedence and scene occlusion; a missing original shadow must not become a fabricated oval. Keep player colors and body pixels unchanged.
- Derive frame selection and visibility only from the same actual simulation scene as the body. Drawing stays read-only, fog conceals foreign shadows, and paused or reduced-motion rendering invents no work.
- Exercise representative carrier, soldier and geologist poses with independently decoded pixels, overlapping layers, signed anchors, missing shadows, fog, pause, save/reload and disposal. Keep memory bounded and verify real browser output.
- Run complete unit/browser, asset, type, lint and production build checks and retain verified CI diagnostics. Original media remains local under the existing publication policy.
Source owner: stacksjs/the-settlers-iii-remake. Parent #20; follows the RGB correction in #213 and separate player-color layers in #211. Full additional profession/faction animation coverage, Gold executable measurements and native presentation remain broader work.
This is supplied-reference fidelity work. No original Gold executable is available, and passing it must not be described as measured Gold runtime equivalence.