mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-10-02 07:59:52 -04:00
72e6a096ca
CAUGHT BY VERIFYING THE CHECKPOINT INSTEAD OF ASSERTING IT. `.run/wave22/` was covered by the blanket `/.run/*` ignore, so the 13 UNBANKED drafts — 6 NEAR with precise residual diagnoses and 7 that reached match_one MATCH but did not bank whole-binary — existed only on disk. My own checkpoint's "START HERE" list names them as next-session fuel, and they cost ~2.59M subagent tokens to produce. One `git clean -fdx` would have destroyed them: exactly the exposure the .run/giants Fable5 cracks had before Phase 27 curated them (R20). Now allowlisted: .run/wave22/*.c + .run/wave22_targets.json (the per-target canonical callee/data declarations resolved from the real TU scope — the §17a-1 lever the wave was built on). Also commits docs/family-hseq.md, regenerated by this session's family_hseq runs.
50 lines
1.4 KiB
C
50 lines
1.4 KiB
C
typedef signed char s8;
|
|
typedef unsigned char u8;
|
|
typedef short s16;
|
|
typedef unsigned short u16;
|
|
typedef int s32;
|
|
typedef unsigned int u32;
|
|
|
|
extern s32 D_80126B5C;
|
|
/* derived from asm %hi/%lo refs (not present in sig_hints) */
|
|
extern s32 D_80126B60;
|
|
extern s32 D_80126B64;
|
|
|
|
extern void func_80049CAC(s32, s32);
|
|
void func_8012F0BC(s32*, s32*, s32*);
|
|
void func_8012F1A4(s32*, s32, s32*);
|
|
|
|
void func_8012E014(s32 arg0) {
|
|
typedef struct { s32 vx, vy, vz, pad; } Vec_8012E014;
|
|
Vec_8012E014 sp10;
|
|
Vec_8012E014 sp20;
|
|
Vec_8012E014 sp30;
|
|
s32 obj;
|
|
s16 t;
|
|
|
|
sp10.vx = D_80126B5C;
|
|
sp10.vy = D_80126B60;
|
|
sp10.vz = D_80126B64;
|
|
func_8012F0BC((s32*)(*(s32*)(arg0 + 0x20) + 0x34), (s32*)&sp10, (s32*)&sp30);
|
|
obj = *(s32*)(arg0 + 0x20);
|
|
if (obj != 0) {
|
|
register s32 obj2 __asm__("$4");
|
|
func_80049CAC(obj + 0x10, obj + 0x34);
|
|
obj2 = *(s32*)(arg0 + 0x20);
|
|
t = *(u16*)(arg0 + 6) + *(u16*)(arg0 + 0x50);
|
|
*(s16*)(obj2 + 8) = t;
|
|
*(s32*)(obj2 + 0x48) = t;
|
|
t = *(u16*)(arg0 + 0xA) + *(u16*)(arg0 + 0x52);
|
|
*(s16*)(obj2 + 0xA) = t;
|
|
*(s32*)(obj2 + 0x4C) = t;
|
|
t = *(u16*)(arg0 + 0xE) + *(u16*)(arg0 + 0x54);
|
|
*(s16*)(obj2 + 0xC) = t;
|
|
*(u16*)(obj2 + 0x2C) |= 1;
|
|
*(s32*)(obj2 + 0x50) = t;
|
|
}
|
|
func_8012F1A4((s32*)(*(s32*)(arg0 + 0x20) + 0x34), (s32)&sp30, (s32*)&sp20);
|
|
D_80126B5C = sp20.vx;
|
|
D_80126B60 = sp20.vy;
|
|
D_80126B64 = sp20.vz;
|
|
}
|