mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-09-26 21:36:06 -04:00
feat(decomp): propagate func_801860C0 (gate lane)
This commit is contained in:
@@ -15160,3 +15160,10 @@ groups:
|
||||
func: DEFINE_func_8018655C
|
||||
vram: 0x8018655C
|
||||
binaries: [ov_SC03_014, ov_SC03_015]
|
||||
- id: E_func_801860C0
|
||||
tier: h_exact
|
||||
hash: e5cac5b36df8b42b6858b4f2d80a3c9a171b1cb6
|
||||
source: src/shared/engine_core.h
|
||||
func: DEFINE_func_801860C0
|
||||
vram: 0x801860C0
|
||||
binaries: [ov_SC04_018, ov_SC04_019]
|
||||
|
||||
@@ -3220,32 +3220,7 @@ void func_8018602C(s32 a0, s32 a1) {
|
||||
|
||||
DEFINE_func_80186084() /* dedup: shared engine-core @0x80186084 (src/shared) */
|
||||
|
||||
extern void func_8012C1B8(void);
|
||||
extern void func_8012CAE4(void *a0);
|
||||
extern void func_8001C214(s32, s32);
|
||||
extern s32 D_801B8A2C;
|
||||
|
||||
void func_801860C0(void *a0)
|
||||
{
|
||||
s32 v0;
|
||||
u16 v0_2;
|
||||
|
||||
v0 = ((s32 (*)(void))func_8012C1B8)();
|
||||
*(s32 *)((u8 *)a0 + 0x20) = v0;
|
||||
|
||||
if (v0 == 0) {
|
||||
((void (*)(void *))func_8012CAE4)(a0);
|
||||
} else {
|
||||
((void (*)(s32, s32))func_8001C214)(v0, 0);
|
||||
|
||||
*(s32 *)((u8 *)a0 + 0x58) = (s32)&D_801B8A2C | 0x40000000;
|
||||
v0_2 = *(u16 *)((u8 *)a0 + 0x2);
|
||||
*(u16 *)((u8 *)a0 + 0x34) = 0;
|
||||
*(s32 *)((u8 *)a0 + 0x1C) = 0;
|
||||
*(u16 *)((u8 *)a0 + 0x5C) = 0x800;
|
||||
*(u16 *)((u8 *)a0 + 0x2) = v0_2 + 1;
|
||||
}
|
||||
}
|
||||
DEFINE_func_801860C0() /* dedup: shared engine-core @0x801860C0 (src/shared) */
|
||||
|
||||
|
||||
/* func_8018613C — scan the 96-entry / 0x10C-stride D_801202A0 actor table for
|
||||
|
||||
@@ -3182,33 +3182,7 @@ DEFINE_func_80186084() /* dedup: shared engine-core @0x80186084 (src/shared) */
|
||||
|
||||
|
||||
|
||||
extern void func_8012C1B8(void);
|
||||
extern void func_8012CAE4(void *a0);
|
||||
extern void func_8001C214(s32, s32);
|
||||
|
||||
void func_801860C0(void *a0)
|
||||
{
|
||||
|
||||
extern s32 D_801B8A2C;
|
||||
s32 v0;
|
||||
u16 v0_2;
|
||||
|
||||
v0 = ((s32 (*)(void))func_8012C1B8)();
|
||||
*(s32 *)((u8 *)a0 + 0x20) = v0;
|
||||
|
||||
if (v0 == 0) {
|
||||
((void (*)(void *))func_8012CAE4)(a0);
|
||||
} else {
|
||||
((void (*)(s32, s32))func_8001C214)(v0, 0);
|
||||
|
||||
*(s32 *)((u8 *)a0 + 0x58) = (s32)&D_801B8A2C | 0x40000000;
|
||||
v0_2 = *(u16 *)((u8 *)a0 + 0x2);
|
||||
*(u16 *)((u8 *)a0 + 0x34) = 0;
|
||||
*(s32 *)((u8 *)a0 + 0x1C) = 0;
|
||||
*(u16 *)((u8 *)a0 + 0x5C) = 0x800;
|
||||
*(u16 *)((u8 *)a0 + 0x2) = v0_2 + 1;
|
||||
}
|
||||
}
|
||||
DEFINE_func_801860C0() /* dedup: shared engine-core @0x801860C0 (src/shared) */
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -65565,6 +65565,30 @@
|
||||
} \
|
||||
}
|
||||
|
||||
#define DEFINE_func_801860C0() \
|
||||
extern void func_8012C1B8(void); \
|
||||
extern void func_8012CAE4(void *a0); \
|
||||
extern void func_8001C214(s32, s32); \
|
||||
extern s32 D_801B8A2C; \
|
||||
void func_801860C0(void *a0) \
|
||||
{ \
|
||||
s32 v0; \
|
||||
u16 v0_2; \
|
||||
v0 = ((s32 (*)(void))func_8012C1B8)(); \
|
||||
*(s32 *)((u8 *)a0 + 0x20) = v0; \
|
||||
if (v0 == 0) { \
|
||||
((void (*)(void *))func_8012CAE4)(a0); \
|
||||
} else { \
|
||||
((void (*)(s32, s32))func_8001C214)(v0, 0); \
|
||||
*(s32 *)((u8 *)a0 + 0x58) = (s32)&D_801B8A2C | 0x40000000; \
|
||||
v0_2 = *(u16 *)((u8 *)a0 + 0x2); \
|
||||
*(u16 *)((u8 *)a0 + 0x34) = 0; \
|
||||
*(s32 *)((u8 *)a0 + 0x1C) = 0; \
|
||||
*(u16 *)((u8 *)a0 + 0x5C) = 0x800; \
|
||||
*(u16 *)((u8 *)a0 + 0x2) = v0_2 + 1; \
|
||||
} \
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#define DEFINE_func_80128EA8() \
|
||||
@@ -160535,4 +160559,28 @@
|
||||
} \
|
||||
}
|
||||
|
||||
#define DEFINE_func_801860C0() \
|
||||
extern void func_8012C1B8(void); \
|
||||
extern void func_8012CAE4(void *a0); \
|
||||
extern void func_8001C214(s32, s32); \
|
||||
extern s32 D_801B8A2C; \
|
||||
void func_801860C0(void *a0) \
|
||||
{ \
|
||||
s32 v0; \
|
||||
u16 v0_2; \
|
||||
v0 = ((s32 (*)(void))func_8012C1B8)(); \
|
||||
*(s32 *)((u8 *)a0 + 0x20) = v0; \
|
||||
if (v0 == 0) { \
|
||||
((void (*)(void *))func_8012CAE4)(a0); \
|
||||
} else { \
|
||||
((void (*)(s32, s32))func_8001C214)(v0, 0); \
|
||||
*(s32 *)((u8 *)a0 + 0x58) = (s32)&D_801B8A2C | 0x40000000; \
|
||||
v0_2 = *(u16 *)((u8 *)a0 + 0x2); \
|
||||
*(u16 *)((u8 *)a0 + 0x34) = 0; \
|
||||
*(s32 *)((u8 *)a0 + 0x1C) = 0; \
|
||||
*(u16 *)((u8 *)a0 + 0x5C) = 0x800; \
|
||||
*(u16 *)((u8 *)a0 + 0x2) = v0_2 + 1; \
|
||||
} \
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user