mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-09-28 14:59:48 -04:00
feat(decomp): bank func_8005EC00 by syncing two declarations from the TU
Same §378 class as func_8005EB28, two symbols deep: the draft declared D_800729DC as void* where the TU says u32, and D_80072974 as void(*)() where the TU says void(*)(void*). Copying the TU's own extern verbatim for each, in the order the gate named them, banked it in two rounds. 143dbb89 BYTE-IDENTICAL. The loop is the §378 chain's essence: ask the gate which symbol conflicts, copy the TU's declaration into the draft, re-gate, repeat. No judgement required — the gate names the symbol and the TU holds the authoritative spelling.
This commit is contained in:
+38
-1
@@ -1307,7 +1307,44 @@ void func_8005EB28(void *param_1) {
|
||||
* return 0;
|
||||
* }
|
||||
*/
|
||||
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005EC00);
|
||||
extern u32 D_800729DC;
|
||||
extern void (*D_80072974)(void *);
|
||||
extern s32 D_800729A8;
|
||||
extern s32 D_800729D4;
|
||||
|
||||
|
||||
s32 func_8005EC00(void *arg0) {
|
||||
s32 v1;
|
||||
s32 v0;
|
||||
s32 a1;
|
||||
|
||||
if (D_800729DC != 0) {
|
||||
(*D_80072974)((void *)(*(s32 *)((char *)arg0 + 0xC) + 0x1E0));
|
||||
(*D_80072974)((void *)(*(s32 *)((char *)arg0 + 0xC) + 0x2D0));
|
||||
}
|
||||
|
||||
a1 = 0;
|
||||
if (*(u8 *)((char *)arg0 + 0x36) == 0) {
|
||||
a1 = D_800729A8;
|
||||
}
|
||||
|
||||
v1 = func_8005DE78((s32)arg0, a1);
|
||||
if (v1 < 0) {
|
||||
return v1;
|
||||
}
|
||||
|
||||
v0 = v1 & 0xF0;
|
||||
if (v0 == 0) {
|
||||
return -9;
|
||||
}
|
||||
|
||||
v0 = (v1 & 0xF) * 2;
|
||||
D_800729D4 = v0;
|
||||
if (v0 == 0) {
|
||||
D_800729D4 = 0x20;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005ECC0);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user