mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-09-26 21:36:06 -04:00
feat(phase-31): propagate func_80186E6C (gate lane)
This commit is contained in:
@@ -15034,3 +15034,10 @@ groups:
|
||||
func: DEFINE_func_80184A08
|
||||
vram: 0x80184A08
|
||||
binaries: [ov_SC02_000, ov_SC02_003]
|
||||
- id: E_func_80186E6C
|
||||
tier: h_exact
|
||||
hash: 621bba09bb15bb39a04790ed442c30b4f7c47d2b
|
||||
source: src/shared/engine_core.h
|
||||
func: DEFINE_func_80186E6C
|
||||
vram: 0x80186E6C
|
||||
binaries: [ov_SC02_000, ov_SC02_003]
|
||||
|
||||
@@ -4208,50 +4208,7 @@ void func_80186E30(void *a0) {
|
||||
|
||||
#include "common.h"
|
||||
|
||||
extern void func_8012C1B8(void);
|
||||
extern void func_8012CAE4(void *a0);
|
||||
extern void func_8001C214(s32 a0, s32 a1);
|
||||
extern void func_8001D0E8(s32 a0, s32 a1, s32 a2);
|
||||
extern void func_8012A828(s32 a0, void *a1);
|
||||
extern void func_8012B200(u8 *a0);
|
||||
|
||||
extern u8 D_801E071C;
|
||||
extern u8 D_801E2164;
|
||||
extern M2C_UNK D_8018AF28;
|
||||
extern s32 D_8018F3B4;
|
||||
|
||||
void func_80186E6C(s32 param_1)
|
||||
{
|
||||
s32 v0;
|
||||
s32 addr;
|
||||
u8 v2;
|
||||
|
||||
v0 = ((s32 (*)(void))func_8012C1B8)();
|
||||
*(s32 *)(param_1 + 0x20) = v0;
|
||||
if (v0 == 0) {
|
||||
((void (*)(s32))func_8012CAE4)(param_1);
|
||||
return;
|
||||
}
|
||||
|
||||
((void (*)(s32, void *))func_8001C214)(
|
||||
v0, (*(s16 *)(param_1 + 0x70) != 0) ? &D_801E2164 : &D_801E071C);
|
||||
|
||||
func_8001D0E8(*(s32 *)(param_1 + 0x20), 0x140, 0xF0);
|
||||
|
||||
addr = (s32)&D_8018F3B4;
|
||||
*(s32 *)(param_1 + 0x58) = addr | 0x40000000;
|
||||
*(u16 *)(param_1 + 0x5C) |= 0xC00;
|
||||
func_8012A828(param_1, &(*(u8 *)&D_8018AF28));
|
||||
|
||||
v2 = 4;
|
||||
if (*(s16 *)(param_1 + 0x70) != 0) {
|
||||
v2 = 1;
|
||||
}
|
||||
*(u8 *)(param_1 + 0x75) = v2;
|
||||
func_8012B200((u8 *)param_1);
|
||||
|
||||
*(u16 *)(param_1 + 2) = *(u16 *)(param_1 + 2) + 1;
|
||||
}
|
||||
DEFINE_func_80186E6C() /* dedup: shared engine-core @0x80186E6C (src/shared) */
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000_jr_8018173C", func_80186F44);
|
||||
|
||||
@@ -3313,7 +3313,7 @@ void func_80186E30(void *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003_jr_8018173C", func_80186E6C);
|
||||
DEFINE_func_80186E6C() /* dedup: shared engine-core @0x80186E6C (src/shared) */
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003_jr_8018173C", func_80186F44);
|
||||
|
||||
|
||||
@@ -62079,6 +62079,44 @@
|
||||
} \
|
||||
}
|
||||
|
||||
#define DEFINE_func_80186E6C() \
|
||||
extern void func_8012C1B8(void); \
|
||||
extern void func_8012CAE4(void *a0); \
|
||||
extern void func_8001C214(s32 a0, s32 a1); \
|
||||
extern void func_8001D0E8(s32 a0, s32 a1, s32 a2); \
|
||||
extern void func_8012A828(s32 a0, void *a1); \
|
||||
extern void func_8012B200(u8 *a0); \
|
||||
extern u8 D_801E071C; \
|
||||
extern u8 D_801E2164; \
|
||||
extern M2C_UNK D_8018AF28; \
|
||||
extern s32 D_8018F3B4; \
|
||||
void func_80186E6C(s32 param_1) \
|
||||
{ \
|
||||
s32 v0; \
|
||||
s32 addr; \
|
||||
u8 v2; \
|
||||
v0 = ((s32 (*)(void))func_8012C1B8)(); \
|
||||
*(s32 *)(param_1 + 0x20) = v0; \
|
||||
if (v0 == 0) { \
|
||||
((void (*)(s32))func_8012CAE4)(param_1); \
|
||||
return; \
|
||||
} \
|
||||
((void (*)(s32, void *))func_8001C214)( \
|
||||
v0, (*(s16 *)(param_1 + 0x70) != 0) ? &D_801E2164 : &D_801E071C); \
|
||||
func_8001D0E8(*(s32 *)(param_1 + 0x20), 0x140, 0xF0); \
|
||||
addr = (s32)&D_8018F3B4; \
|
||||
*(s32 *)(param_1 + 0x58) = addr | 0x40000000; \
|
||||
*(u16 *)(param_1 + 0x5C) |= 0xC00; \
|
||||
func_8012A828(param_1, &(*(u8 *)&D_8018AF28)); \
|
||||
v2 = 4; \
|
||||
if (*(s16 *)(param_1 + 0x70) != 0) { \
|
||||
v2 = 1; \
|
||||
} \
|
||||
*(u8 *)(param_1 + 0x75) = v2; \
|
||||
func_8012B200((u8 *)param_1); \
|
||||
*(u16 *)(param_1 + 2) = *(u16 *)(param_1 + 2) + 1; \
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#define DEFINE_func_80128EA8() \
|
||||
@@ -153563,4 +153601,42 @@
|
||||
} \
|
||||
}
|
||||
|
||||
#define DEFINE_func_80186E6C() \
|
||||
extern void func_8012C1B8(void); \
|
||||
extern void func_8012CAE4(void *a0); \
|
||||
extern void func_8001C214(s32 a0, s32 a1); \
|
||||
extern void func_8001D0E8(s32 a0, s32 a1, s32 a2); \
|
||||
extern void func_8012A828(s32 a0, void *a1); \
|
||||
extern void func_8012B200(u8 *a0); \
|
||||
extern u8 D_801E071C; \
|
||||
extern u8 D_801E2164; \
|
||||
extern M2C_UNK D_8018AF28; \
|
||||
extern s32 D_8018F3B4; \
|
||||
void func_80186E6C(s32 param_1) \
|
||||
{ \
|
||||
s32 v0; \
|
||||
s32 addr; \
|
||||
u8 v2; \
|
||||
v0 = ((s32 (*)(void))func_8012C1B8)(); \
|
||||
*(s32 *)(param_1 + 0x20) = v0; \
|
||||
if (v0 == 0) { \
|
||||
((void (*)(s32))func_8012CAE4)(param_1); \
|
||||
return; \
|
||||
} \
|
||||
((void (*)(s32, void *))func_8001C214)( \
|
||||
v0, (*(s16 *)(param_1 + 0x70) != 0) ? &D_801E2164 : &D_801E071C); \
|
||||
func_8001D0E8(*(s32 *)(param_1 + 0x20), 0x140, 0xF0); \
|
||||
addr = (s32)&D_8018F3B4; \
|
||||
*(s32 *)(param_1 + 0x58) = addr | 0x40000000; \
|
||||
*(u16 *)(param_1 + 0x5C) |= 0xC00; \
|
||||
func_8012A828(param_1, &(*(u8 *)&D_8018AF28)); \
|
||||
v2 = 4; \
|
||||
if (*(s16 *)(param_1 + 0x70) != 0) { \
|
||||
v2 = 1; \
|
||||
} \
|
||||
*(u8 *)(param_1 + 0x75) = v2; \
|
||||
func_8012B200((u8 *)param_1); \
|
||||
*(u16 *)(param_1 + 2) = *(u16 *)(param_1 + 2) + 1; \
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user