mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-10-07 01:18:49 -04:00
feat(phase-31): propagate func_80187DB8 (gate lane)
This commit is contained in:
@@ -15048,3 +15048,10 @@ groups:
|
||||
func: DEFINE_func_801884FC
|
||||
vram: 0x801884FC
|
||||
binaries: [ov_SC02_000, ov_SC02_003]
|
||||
- id: E_func_80187DB8
|
||||
tier: h_exact
|
||||
hash: 2dfcb44952b0ef59cd8f9a6f45014dc41d7ca790
|
||||
source: src/shared/engine_core.h
|
||||
func: DEFINE_func_80187DB8
|
||||
vram: 0x80187DB8
|
||||
binaries: [ov_SC02_000, ov_SC02_003]
|
||||
|
||||
@@ -4437,48 +4437,7 @@ INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000_jr_8018173C", func_80187B4
|
||||
|
||||
#include "common.h"
|
||||
|
||||
extern s32 func_80187F30(void*, s32);
|
||||
extern s32 func_80143BDC(u16*);
|
||||
extern s32 func_8012BEE8(s32 a0);
|
||||
extern void func_8012C218(void *a0);
|
||||
extern u16 D_80126B66;
|
||||
|
||||
void func_80187DB8(s32 param_1) {
|
||||
u16 sp10[3];
|
||||
|
||||
*(u16 *)(*(s32 *)(param_1 + 0x20) + 0x12) =
|
||||
*(u16 *)(*(s32 *)(param_1 + 0x20) + 0x12) + 0x100;
|
||||
*(u16 *)(*(s32 *)(param_1 + 0x20) + 0x10) =
|
||||
*(u16 *)(*(s32 *)(param_1 + 0x20) + 0x10) + 0x40;
|
||||
*(u16 *)(*(s32 *)(param_1 + 0x20) + 0x14) =
|
||||
*(u16 *)(*(s32 *)(param_1 + 0x20) + 0x14) + 0x58;
|
||||
|
||||
if (((s32 (*)(s32, s32))func_80187F30)(param_1, 1) != 0) {
|
||||
s32 t0, t1, t2, t3;
|
||||
|
||||
sp10[0] = *(u16 *)(param_1 + 0x6);
|
||||
sp10[1] = *(u16 *)(param_1 + 0xA);
|
||||
sp10[2] = *(u16 *)(param_1 + 0xE);
|
||||
((void (*)(u16 *))func_80143BDC)(sp10);
|
||||
|
||||
t0 = *(s32 *)(param_1 + 0xE0);
|
||||
t1 = *(s32 *)(param_1 + 0xE4);
|
||||
t2 = *(s32 *)(param_1 + 0xE8);
|
||||
t3 = *(s32 *)(param_1 + 0xDC);
|
||||
|
||||
*(s32 *)(param_1 + 0x4C) = 0;
|
||||
*(s32 *)(param_1 + 0x44) = 0;
|
||||
*(s32 *)(param_1 + 0x10) = t0;
|
||||
*(s32 *)(param_1 + 0x14) = t1;
|
||||
*(s32 *)(param_1 + 0x18) = t2;
|
||||
*(s32 *)(param_1 + 0x48) = t3;
|
||||
}
|
||||
|
||||
if (func_8012BEE8(param_1) == 1 ||
|
||||
(s32)(s16)D_80126B66 - 0x200 < *(s16 *)(param_1 + 0x6)) {
|
||||
func_8012C218((void *)param_1);
|
||||
}
|
||||
}
|
||||
DEFINE_func_80187DB8() /* dedup: shared engine-core @0x80187DB8 (src/shared) */
|
||||
|
||||
|
||||
extern void func_8012AD80(s32 a0);
|
||||
|
||||
@@ -3420,7 +3420,7 @@ INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003_jr_8018173C", func_8018798
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003_jr_8018173C", func_80187B40);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003_jr_8018173C", func_80187DB8);
|
||||
DEFINE_func_80187DB8() /* dedup: shared engine-core @0x80187DB8 (src/shared) */
|
||||
|
||||
extern void func_8012AD80(s32 a0);
|
||||
extern void func_8012C218(void *a0);
|
||||
|
||||
@@ -62171,6 +62171,43 @@
|
||||
return 0; \
|
||||
}
|
||||
|
||||
#define DEFINE_func_80187DB8() \
|
||||
extern s32 func_80187F30(void*, s32); \
|
||||
extern s32 func_80143BDC(u16*); \
|
||||
extern s32 func_8012BEE8(s32 a0); \
|
||||
extern void func_8012C218(void *a0); \
|
||||
extern u16 D_80126B66; \
|
||||
void func_80187DB8(s32 param_1) { \
|
||||
u16 sp10[3]; \
|
||||
*(u16 *)(*(s32 *)(param_1 + 0x20) + 0x12) = \
|
||||
*(u16 *)(*(s32 *)(param_1 + 0x20) + 0x12) + 0x100; \
|
||||
*(u16 *)(*(s32 *)(param_1 + 0x20) + 0x10) = \
|
||||
*(u16 *)(*(s32 *)(param_1 + 0x20) + 0x10) + 0x40; \
|
||||
*(u16 *)(*(s32 *)(param_1 + 0x20) + 0x14) = \
|
||||
*(u16 *)(*(s32 *)(param_1 + 0x20) + 0x14) + 0x58; \
|
||||
if (((s32 (*)(s32, s32))func_80187F30)(param_1, 1) != 0) { \
|
||||
s32 t0, t1, t2, t3; \
|
||||
sp10[0] = *(u16 *)(param_1 + 0x6); \
|
||||
sp10[1] = *(u16 *)(param_1 + 0xA); \
|
||||
sp10[2] = *(u16 *)(param_1 + 0xE); \
|
||||
((void (*)(u16 *))func_80143BDC)(sp10); \
|
||||
t0 = *(s32 *)(param_1 + 0xE0); \
|
||||
t1 = *(s32 *)(param_1 + 0xE4); \
|
||||
t2 = *(s32 *)(param_1 + 0xE8); \
|
||||
t3 = *(s32 *)(param_1 + 0xDC); \
|
||||
*(s32 *)(param_1 + 0x4C) = 0; \
|
||||
*(s32 *)(param_1 + 0x44) = 0; \
|
||||
*(s32 *)(param_1 + 0x10) = t0; \
|
||||
*(s32 *)(param_1 + 0x14) = t1; \
|
||||
*(s32 *)(param_1 + 0x18) = t2; \
|
||||
*(s32 *)(param_1 + 0x48) = t3; \
|
||||
} \
|
||||
if (func_8012BEE8(param_1) == 1 || \
|
||||
(s32)(s16)D_80126B66 - 0x200 < *(s16 *)(param_1 + 0x6)) { \
|
||||
func_8012C218((void *)param_1); \
|
||||
} \
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#define DEFINE_func_80128EA8() \
|
||||
@@ -153747,4 +153784,41 @@
|
||||
return 0; \
|
||||
}
|
||||
|
||||
#define DEFINE_func_80187DB8() \
|
||||
extern s32 func_80187F30(void*, s32); \
|
||||
extern s32 func_80143BDC(u16*); \
|
||||
extern s32 func_8012BEE8(s32 a0); \
|
||||
extern void func_8012C218(void *a0); \
|
||||
extern u16 D_80126B66; \
|
||||
void func_80187DB8(s32 param_1) { \
|
||||
u16 sp10[3]; \
|
||||
*(u16 *)(*(s32 *)(param_1 + 0x20) + 0x12) = \
|
||||
*(u16 *)(*(s32 *)(param_1 + 0x20) + 0x12) + 0x100; \
|
||||
*(u16 *)(*(s32 *)(param_1 + 0x20) + 0x10) = \
|
||||
*(u16 *)(*(s32 *)(param_1 + 0x20) + 0x10) + 0x40; \
|
||||
*(u16 *)(*(s32 *)(param_1 + 0x20) + 0x14) = \
|
||||
*(u16 *)(*(s32 *)(param_1 + 0x20) + 0x14) + 0x58; \
|
||||
if (((s32 (*)(s32, s32))func_80187F30)(param_1, 1) != 0) { \
|
||||
s32 t0, t1, t2, t3; \
|
||||
sp10[0] = *(u16 *)(param_1 + 0x6); \
|
||||
sp10[1] = *(u16 *)(param_1 + 0xA); \
|
||||
sp10[2] = *(u16 *)(param_1 + 0xE); \
|
||||
((void (*)(u16 *))func_80143BDC)(sp10); \
|
||||
t0 = *(s32 *)(param_1 + 0xE0); \
|
||||
t1 = *(s32 *)(param_1 + 0xE4); \
|
||||
t2 = *(s32 *)(param_1 + 0xE8); \
|
||||
t3 = *(s32 *)(param_1 + 0xDC); \
|
||||
*(s32 *)(param_1 + 0x4C) = 0; \
|
||||
*(s32 *)(param_1 + 0x44) = 0; \
|
||||
*(s32 *)(param_1 + 0x10) = t0; \
|
||||
*(s32 *)(param_1 + 0x14) = t1; \
|
||||
*(s32 *)(param_1 + 0x18) = t2; \
|
||||
*(s32 *)(param_1 + 0x48) = t3; \
|
||||
} \
|
||||
if (func_8012BEE8(param_1) == 1 || \
|
||||
(s32)(s16)D_80126B66 - 0x200 < *(s16 *)(param_1 + 0x6)) { \
|
||||
func_8012C218((void *)param_1); \
|
||||
} \
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user