mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-09-30 23:37:39 -04:00
phase-36: S104 s104_e21 — func_80037FC4 banked at 0 through the whole-object gate + propagated — e21 sibling: the same two loops
This commit is contained in:
+11
-21
@@ -2368,27 +2368,22 @@ void func_80037FC4(void)
|
||||
extern void func_8003C23C(s32, s32);
|
||||
extern void func_8003B250(s32, void *);
|
||||
|
||||
register u8 *p __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus9)
|
||||
u8 *p;
|
||||
s32 i;
|
||||
u32 mask;
|
||||
u8 *base;
|
||||
|
||||
if (D_800A4F1D == 0) {
|
||||
func_80038A58();
|
||||
}
|
||||
|
||||
i = 0;
|
||||
mask = 0xFFF9FFFF;
|
||||
p = D_800C6E2E;
|
||||
do {
|
||||
for (i = 0; i < 0x10; i++) {
|
||||
p = &D_800C6E2E[i * 0x60];
|
||||
if (p[-4] != 0 && p[-1] == 0 && p[0] != 0) {
|
||||
func_8003D3B4(i, 8);
|
||||
*(u32 *)(p - 0x4A) &= mask;
|
||||
*(u32 *)(p - 0x4A) &= ~0x60000;
|
||||
p[0] = 0;
|
||||
}
|
||||
i++;
|
||||
p += 0x60;
|
||||
} while (i < 0x10);
|
||||
}
|
||||
|
||||
if ((D_800A2B98 & 0xFFFF) != 0) {
|
||||
func_8003C23C(0, D_800A2B98 & 0xFFFF);
|
||||
@@ -2401,19 +2396,14 @@ void func_80037FC4(void)
|
||||
}
|
||||
|
||||
base = D_800C6DD0;
|
||||
i = 0;
|
||||
p = base + 0x5E;
|
||||
do {
|
||||
if (p[-4] != 0 && p[-1] != 0) {
|
||||
for (i = 0; i < 0x10; i++, base += 0x60) {
|
||||
if (base[0x5A] != 0 && base[0x5D] != 0) {
|
||||
func_8003B250(i, base + 0x10);
|
||||
*(u32 *)(p - 0x4A) = 0;
|
||||
p[-1] = 0;
|
||||
p[0] = 0;
|
||||
*(u32 *)(base + 0x14) = 0;
|
||||
base[0x5D] = 0;
|
||||
base[0x5E] = 0;
|
||||
}
|
||||
i++;
|
||||
p += 0x60;
|
||||
base += 0x60;
|
||||
} while (i < 0x10);
|
||||
}
|
||||
|
||||
if ((D_800C7D20 & 0xFFFF) != 0) {
|
||||
func_8003C23C(1, D_800C7D20 & 0xFFFF);
|
||||
|
||||
Reference in New Issue
Block a user