Files
TeslaRel410/restoration/source410/BT/NAMEFILT.NOTES.md
T
CydandClaude Fable 5 efc41f165b Mech milestone: reconstruct NameFilter (helper 3/3) -- helpers phase complete
NameFilter is the Mech's mechNameFilter (@0x36c), a small fixed debounce record
the ctor initialises. Reconstructed from FUN_00435a7c: a 10-word (0x28) struct,
Initialize() sets [2]=1 / [8]=[9]=-1 / rest 0 exactly. Header-only. Field
semantics unresolved (only caller is Initialize; reader is the unbuilt HUD) --
names best-effort, but size + init values are binary-exact, which is all the
Mech layout + ctor need.

All 3 missing embedded helper classes now reconstructed + compile-verified under
BC4.52 (AlarmIndicator, SequenceController struct+Init, NameFilter). MECH-LAYOUT.md
step 1 marked done. Next: MechSubsystem base + the subsystem roster, then finalize
MECH.HPP (probe sizeof==0x854), then the ctor + segment-table walk.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-19 20:56:06 -05:00

34 lines
1.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# NAMEFILT.HPP — reconstruction notes
**Status: struct + Initialize RECONSTRUCTED (compile-verified). Helper 3/3 of the
Mech embedded helpers ([[MECH-LAYOUT]] step 1) — helpers phase COMPLETE.**
`NameFilter` — the Mech's `mechNameFilter` (@0x36c). A small fixed-size
debounce/hysteresis record the Mech ctor initialises. Absent from the 4.10
archive; BT411 mis-proxied it as a no-op running-average (`ReconFiltered`).
## Evidence
`Initialize()` decomp `FUN_00435a7c` (BT411 reference/decomp part_004.c) sets a
10-word (0x28 byte) object: `[2]=1`, `[8]=[9]=0xffffffff` (invalid ids), all
other words 0. No allocation — a fixed inline struct (NOT AverageOf, which owns a
heap array). Reconstructed to reproduce those writes exactly.
## Known vs unknown
- **Known (from the binary):** the layout size (0x28) and the exact Initialize()
values.
- **Unknown:** the field SEMANTICS. The only caller in the reconstructed mech
family is `Initialize()` (ctor); the reader is presumably the HUD subsystem
(not yet reconstructed). Member names (value0/1, count, sample0..4,
candidateID, confirmedID) are best-effort from the init pattern (count=1, two
1 ids) and will be refined when the HUD reader is reconstructed. Semantics do
not affect the build — only the size + init values matter for the Mech layout
and ctor.
## Placement
1995 filename/location unknown (decomp-only). Filed as BT/NAMEFILT.HPP,
header-only (Initialize inlined — functionally identical to the out-of-line
binary; no new .cpp / lib member needed).