Files
BFM-decomp/src/shared/ov/func_8017209C.h
T
Drew T 67e91ad4d4 phase-36: T7 sweep s5 — the TAIL closes at 36%: 285 of 800 bodies lever-free for zero tokens (29,527 → 29,204 sites, R22 218/218)
search: 285 of 800 exemplars matched lever-free in 2.32 h (285 of 800 bodies behind them; 94,627 compiles) — NO-MATCH 499 · MATCH 285 · UNSTRIPPABLE 9 · UNSCORED 7

- the first broad draw of non-head classes, at the cheap width, with the full generator set. By first move:
  R7 105, R10 59, R12 42, R6 26, R9 20, R18 13, R8 9, R3 6, R15 4, R14 1 — and 242 of the 285 closed in ONE move.
  These are not deep searches; they are bodies nobody had ever offered a single shape to. R18, one day old, is 13 of them.
- the contrast that steers the rest of T7: 36% of the tail closes mechanically, against 6 closes in ~128,000 compiles on
  the head. The head's 57 classes are the agents' work; everything else is the engine's, at zero tokens. Sweep the whole
  residue before spending another agent.
- check-all: 218 passed, 0 failed of 218
  lever_census --check: 29,204 pin/asm sites, 29,204 marked !FAKE, 0 UNMARKED — OK
- snapshot row 15.
2026-09-10 07:21:39 -06:00

28 lines
1.1 KiB
C

/* func_8017209C — shared body (overlay slot 0x80128158, h_exact 90614cf0). ONE source: instantiated by #include at each
* member's site in address order; the members are recorded in config/dedup.us.yaml (Phase 35). */
extern s32 func_80012DBC(s32 a0, s32 a1, s32 a2, s32 a3);
extern void func_80172170(s32 a0, s32 a1);
s32 func_8017209C(void *arg0, void *arg1, s32 arg2, s32 arg3) {
s32 ret;
s32 ang; /* $v1 */
s32 a3p; /* $s3 = arg3 */
u8 a2p;
a3p = arg3;
a2p = arg2;
ret = func_8017248C((s32)arg0, (s32)arg1);
if (ret != 0) {
func_80146D90((s32)arg0);
return ret;
}
ang = (ratan2((s32)*(s16 *)((u8 *)arg1 + 0) - (s32)*(s16 *)((u8 *)arg0 + 6),
(s32)*(s16 *)((u8 *)arg1 + 4) - (s32)*(s16 *)((u8 *)arg0 + 0xE))
+ 0x800) & 0xFFF;
if (a3p != 0) {
ang = (s16)func_80012DBC((s32)*(s16 *)(*(s32 *)((u8 *)arg0 + 0x20) + 0x12),
ang, (s16)a3p, 1);
}
*(s16 *)(*(s32 *)((u8 *)arg0 + 0x20) + 0x12) = ang;
func_80172170((s32)arg0, a2p & 0xFF);
return 0;
}