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

1.5 KiB
Raw Blame History

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).