mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-09-28 23:00:29 -04:00
feat(phase-31): propagate func_80186CE8 (gate lane)
This commit is contained in:
@@ -14929,3 +14929,10 @@ groups:
|
||||
func: DEFINE_func_80186D88
|
||||
vram: 0x80186D88
|
||||
binaries: [ov_SC02_000, ov_SC02_003]
|
||||
- id: E_func_80186CE8
|
||||
tier: h_exact
|
||||
hash: da9c4677fb9c3f38f614118b56af49c093a78812
|
||||
source: src/shared/engine_core.h
|
||||
func: DEFINE_func_80186CE8
|
||||
vram: 0x80186CE8
|
||||
binaries: [ov_SC02_000, ov_SC02_003]
|
||||
|
||||
@@ -4655,39 +4655,7 @@ void func_80186CAC(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 arg0, s32 arg1, s32 arg2);
|
||||
extern void func_8012A828(s32, void *);
|
||||
extern void func_8012B200(u8 *a0);
|
||||
extern s16 D_801E0294[];
|
||||
extern M2C_UNK D_8018AF28;
|
||||
extern u8 D_8018F39C[];
|
||||
|
||||
void func_80186CE8(s32 a0) {
|
||||
register s32 v0 __asm__("$2");
|
||||
s32 v1;
|
||||
|
||||
v0 = ((s32 (*)(void))func_8012C1B8)();
|
||||
*(s32 *)(a0 + 0x20) = v0;
|
||||
if (v0 == 0) {
|
||||
func_8012CAE4((void *)a0);
|
||||
return;
|
||||
}
|
||||
func_8001C214(v0, (s32)D_801E0294);
|
||||
func_8001D0E8(*(s32 *)(a0 + 0x20), 0xDC, 0xB8);
|
||||
v0 = *(u16 *)(a0 + 0x5C);
|
||||
v1 = (s32)D_8018F39C;
|
||||
*(s32 *)(a0 + 0x58) = v1;
|
||||
v0 = v0 | 0xC00;
|
||||
*(u16 *)(a0 + 0x5C) = (u16)v0;
|
||||
func_8012A828(a0, &(*(s32 *)&D_8018AF28));
|
||||
func_8012B200((u8 *)a0);
|
||||
v0 = *(u16 *)(a0 + 0x2);
|
||||
v0 = v0 + 1;
|
||||
*(u16 *)(a0 + 0x2) = (u16)v0;
|
||||
}
|
||||
DEFINE_func_80186CE8() /* dedup: shared engine-core @0x80186CE8 (src/shared) */
|
||||
|
||||
|
||||
#include "common.h"
|
||||
|
||||
@@ -3301,7 +3301,7 @@ void func_80186CAC(void *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003_jr_8018173C", func_80186CE8);
|
||||
DEFINE_func_80186CE8() /* dedup: shared engine-core @0x80186CE8 (src/shared) */
|
||||
|
||||
DEFINE_func_80186D88() /* dedup: shared engine-core @0x80186D88 (src/shared) */
|
||||
|
||||
|
||||
@@ -61409,6 +61409,39 @@
|
||||
} \
|
||||
}
|
||||
|
||||
#define DEFINE_func_80186CE8() \
|
||||
extern void func_8012C1B8(void); \
|
||||
extern void func_8012CAE4(void *a0); \
|
||||
extern void func_8001C214(s32 a0, s32 a1); \
|
||||
extern void func_8001D0E8(s32 arg0, s32 arg1, s32 arg2); \
|
||||
extern void func_8012A828(s32, void *); \
|
||||
extern void func_8012B200(u8 *a0); \
|
||||
extern s16 D_801E0294[]; \
|
||||
extern M2C_UNK D_8018AF28; \
|
||||
extern u8 D_8018F39C[]; \
|
||||
void func_80186CE8(s32 a0) { \
|
||||
register s32 v0 __asm__("$2"); \
|
||||
s32 v1; \
|
||||
v0 = ((s32 (*)(void))func_8012C1B8)(); \
|
||||
*(s32 *)(a0 + 0x20) = v0; \
|
||||
if (v0 == 0) { \
|
||||
func_8012CAE4((void *)a0); \
|
||||
return; \
|
||||
} \
|
||||
func_8001C214(v0, (s32)D_801E0294); \
|
||||
func_8001D0E8(*(s32 *)(a0 + 0x20), 0xDC, 0xB8); \
|
||||
v0 = *(u16 *)(a0 + 0x5C); \
|
||||
v1 = (s32)D_8018F39C; \
|
||||
*(s32 *)(a0 + 0x58) = v1; \
|
||||
v0 = v0 | 0xC00; \
|
||||
*(u16 *)(a0 + 0x5C) = (u16)v0; \
|
||||
func_8012A828(a0, &(*(s32 *)&D_8018AF28)); \
|
||||
func_8012B200((u8 *)a0); \
|
||||
v0 = *(u16 *)(a0 + 0x2); \
|
||||
v0 = v0 + 1; \
|
||||
*(u16 *)(a0 + 0x2) = (u16)v0; \
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#define DEFINE_func_80128EA8() \
|
||||
@@ -152223,4 +152256,37 @@
|
||||
} \
|
||||
}
|
||||
|
||||
#define DEFINE_func_80186CE8() \
|
||||
extern void func_8012C1B8(void); \
|
||||
extern void func_8012CAE4(void *a0); \
|
||||
extern void func_8001C214(s32 a0, s32 a1); \
|
||||
extern void func_8001D0E8(s32 arg0, s32 arg1, s32 arg2); \
|
||||
extern void func_8012A828(s32, void *); \
|
||||
extern void func_8012B200(u8 *a0); \
|
||||
extern s16 D_801E0294[]; \
|
||||
extern M2C_UNK D_8018AF28; \
|
||||
extern u8 D_8018F39C[]; \
|
||||
void func_80186CE8(s32 a0) { \
|
||||
register s32 v0 __asm__("$2"); \
|
||||
s32 v1; \
|
||||
v0 = ((s32 (*)(void))func_8012C1B8)(); \
|
||||
*(s32 *)(a0 + 0x20) = v0; \
|
||||
if (v0 == 0) { \
|
||||
func_8012CAE4((void *)a0); \
|
||||
return; \
|
||||
} \
|
||||
func_8001C214(v0, (s32)D_801E0294); \
|
||||
func_8001D0E8(*(s32 *)(a0 + 0x20), 0xDC, 0xB8); \
|
||||
v0 = *(u16 *)(a0 + 0x5C); \
|
||||
v1 = (s32)D_8018F39C; \
|
||||
*(s32 *)(a0 + 0x58) = v1; \
|
||||
v0 = v0 | 0xC00; \
|
||||
*(u16 *)(a0 + 0x5C) = (u16)v0; \
|
||||
func_8012A828(a0, &(*(s32 *)&D_8018AF28)); \
|
||||
func_8012B200((u8 *)a0); \
|
||||
v0 = *(u16 *)(a0 + 0x2); \
|
||||
v0 = v0 + 1; \
|
||||
*(u16 *)(a0 + 0x2) = (u16)v0; \
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user