mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-10-03 08:07:25 -04:00
feat(decomp): propagate func_80188828 (gate lane)
This commit is contained in:
@@ -65234,6 +65234,54 @@
|
||||
func_8012C658(0x3DE, 0, a0); \
|
||||
}
|
||||
|
||||
#define DEFINE_func_80188828() \
|
||||
extern void func_8013CABC(void); \
|
||||
extern void func_801890F8(void *a0); \
|
||||
extern s32 func_8012BEE8(s32 a0); \
|
||||
extern void func_80188A80(s32 a0); \
|
||||
extern void func_801889B4(s32 a0); \
|
||||
extern s32 func_801846E4(void); \
|
||||
extern int func_80178970(void); \
|
||||
extern s32 D_801EAC90; \
|
||||
void func_80188828(s32 a0) { \
|
||||
s32 self; \
|
||||
self = a0; \
|
||||
if (*(s32 *)(self + 0x1C) == 0x30) { \
|
||||
func_8013CABC(); \
|
||||
} else if (*(s32 *)(self + 0x1C) == 0x10) { \
|
||||
func_801890F8((void *)*(s32 *)(self + 0xD0)); \
|
||||
} \
|
||||
if (*(u16 *)(self + 0x84) & 1) { \
|
||||
*(u16 *)(*(s32 *)(self + 0x64) + 6) = *(u16 *)(*(s32 *)(self + 0x64) + 6) - 3; \
|
||||
*(u16 *)(*(s32 *)(*(s32 *)(self + 0x64) + 0x20) + 8) = \
|
||||
*(u16 *)(*(s32 *)(*(s32 *)(self + 0x64) + 0x20) + 8) - 3; \
|
||||
*(u16 *)(self + 6) = *(u16 *)(self + 6) - 3; \
|
||||
} else { \
|
||||
*(u16 *)(*(s32 *)(self + 0x64) + 6) = *(u16 *)(*(s32 *)(self + 0x64) + 6) + 3; \
|
||||
*(u16 *)(*(s32 *)(*(s32 *)(self + 0x64) + 0x20) + 8) = \
|
||||
*(u16 *)(*(s32 *)(*(s32 *)(self + 0x64) + 0x20) + 8) + 3; \
|
||||
*(u16 *)(self + 6) = *(u16 *)(self + 6) + 3; \
|
||||
} \
|
||||
{ \
|
||||
s32 t; \
|
||||
t = D_801EAC90; \
|
||||
*(u16 *)(self + 0x84) = *(u16 *)(self + 0x84) + 1; \
|
||||
if (t == 0) { \
|
||||
D_801EAC90 = func_801846E4(); \
|
||||
} \
|
||||
} \
|
||||
if (func_8012BEE8(self) && D_801EAC90) { \
|
||||
func_80188A80(self); \
|
||||
} else { \
|
||||
if (*(s32 *)(self + 0x1C) < 0x48) { \
|
||||
if ((*(u16 *)(self + 0x84) & 3) == 0) { \
|
||||
func_801889B4(self); \
|
||||
} \
|
||||
} \
|
||||
} \
|
||||
((void (*)(s32))func_80178970)(self); \
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#define DEFINE_func_80128EA8() \
|
||||
@@ -159873,4 +159921,52 @@
|
||||
func_8012C658(0x3DE, 0, a0); \
|
||||
}
|
||||
|
||||
#define DEFINE_func_80188828() \
|
||||
extern void func_8013CABC(void); \
|
||||
extern void func_801890F8(void *a0); \
|
||||
extern s32 func_8012BEE8(s32 a0); \
|
||||
extern void func_80188A80(s32 a0); \
|
||||
extern void func_801889B4(s32 a0); \
|
||||
extern s32 func_801846E4(void); \
|
||||
extern int func_80178970(void); \
|
||||
extern s32 D_801EAC90; \
|
||||
void func_80188828(s32 a0) { \
|
||||
s32 self; \
|
||||
self = a0; \
|
||||
if (*(s32 *)(self + 0x1C) == 0x30) { \
|
||||
func_8013CABC(); \
|
||||
} else if (*(s32 *)(self + 0x1C) == 0x10) { \
|
||||
func_801890F8((void *)*(s32 *)(self + 0xD0)); \
|
||||
} \
|
||||
if (*(u16 *)(self + 0x84) & 1) { \
|
||||
*(u16 *)(*(s32 *)(self + 0x64) + 6) = *(u16 *)(*(s32 *)(self + 0x64) + 6) - 3; \
|
||||
*(u16 *)(*(s32 *)(*(s32 *)(self + 0x64) + 0x20) + 8) = \
|
||||
*(u16 *)(*(s32 *)(*(s32 *)(self + 0x64) + 0x20) + 8) - 3; \
|
||||
*(u16 *)(self + 6) = *(u16 *)(self + 6) - 3; \
|
||||
} else { \
|
||||
*(u16 *)(*(s32 *)(self + 0x64) + 6) = *(u16 *)(*(s32 *)(self + 0x64) + 6) + 3; \
|
||||
*(u16 *)(*(s32 *)(*(s32 *)(self + 0x64) + 0x20) + 8) = \
|
||||
*(u16 *)(*(s32 *)(*(s32 *)(self + 0x64) + 0x20) + 8) + 3; \
|
||||
*(u16 *)(self + 6) = *(u16 *)(self + 6) + 3; \
|
||||
} \
|
||||
{ \
|
||||
s32 t; \
|
||||
t = D_801EAC90; \
|
||||
*(u16 *)(self + 0x84) = *(u16 *)(self + 0x84) + 1; \
|
||||
if (t == 0) { \
|
||||
D_801EAC90 = func_801846E4(); \
|
||||
} \
|
||||
} \
|
||||
if (func_8012BEE8(self) && D_801EAC90) { \
|
||||
func_80188A80(self); \
|
||||
} else { \
|
||||
if (*(s32 *)(self + 0x1C) < 0x48) { \
|
||||
if ((*(u16 *)(self + 0x84) & 3) == 0) { \
|
||||
func_801889B4(self); \
|
||||
} \
|
||||
} \
|
||||
} \
|
||||
((void (*)(s32))func_80178970)(self); \
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user