mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-10-01 23:52:03 -04:00
be38b94147
The 400-ins giant func_80132784 (S11 prologue-weave; cracked T4, banked ×1) is now shared across ALL 134 overlays byte-identical — the highest single byte-weight lever in the project. - Blocker (T4-deferred): dedup_propagate's single-`--addr` plan is all-or-nothing; ONE straggler overlay (ov_SC02_005) failed to compile the shared macro -> the whole fn dropped, kept ×1. - Root cause: ov_SC02_005 declared a CONFLICTING caller extern `void func_80132784(s32,s32,s32)` while the def is `(s32,s32,u32)` (3rd param s32 vs u32) -> `conflicting types`. The call site casts `((void(*)(u8*,u8*,u16))func_80132784)(...)` so the extern type is codegen-irrelevant. - Fix (T6 integration-recovery pattern, proven): reconcile the straggler's caller extern to the def's canonical signature (s32->u32, byte-neutral), then propagate. dedup_propagate then rebuilt all 134 overlays BYTE-IDENTICAL; registered group E_func_80132784 (134 members). - dedup-check: 1784 validated, 0 failed. Verified by a clean R22 fleet check-all (136/136). - This is the concrete spec for the T6 tool: detect a straggler's conflicting caller decl, reconcile to the def's canonical sig, re-gate, propagate full (vs. the all-or-nothing drop).