mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-10-06 17:11:04 -04:00
feat(phase-31): propagate func_80186D88 (gate lane)
This commit is contained in:
@@ -14922,3 +14922,10 @@ groups:
|
||||
func: DEFINE_func_801829F8
|
||||
vram: 0x801829F8
|
||||
binaries: [ov_SC02_000, ov_SC02_003]
|
||||
- id: E_func_80186D88
|
||||
tier: h_exact
|
||||
hash: 6ce35974c320da5f8ee8b38ff75eb2d2a5cdef64
|
||||
source: src/shared/engine_core.h
|
||||
func: DEFINE_func_80186D88
|
||||
vram: 0x80186D88
|
||||
binaries: [ov_SC02_000, ov_SC02_003]
|
||||
|
||||
@@ -4692,41 +4692,7 @@ void func_80186CE8(s32 a0) {
|
||||
|
||||
#include "common.h"
|
||||
|
||||
extern s32 func_80143BDC(u16 *a0);
|
||||
extern void func_80187558();
|
||||
extern void func_8002D4C8(s32 a0, s32 a1);
|
||||
extern void func_8012C218(void *a0);
|
||||
|
||||
void func_80186D88(void *s0) {
|
||||
void *a0;
|
||||
s16 v0, v1;
|
||||
u16 sp[3];
|
||||
s32 result;
|
||||
void *v3;
|
||||
|
||||
a0 = *(void **)((char *)s0 + 0x64);
|
||||
v0 = *(s16 *)((char *)a0 + 0xE);
|
||||
v1 = *(s16 *)((char *)s0 + 0xE);
|
||||
|
||||
if ((v0 - 0x80) < v1) {
|
||||
*(s16 *)((char *)a0 + 0xFE) = 1;
|
||||
|
||||
sp[0] = *(u16 *)((char *)s0 + 0x6);
|
||||
sp[1] = *(u16 *)((char *)s0 + 0xA) - 0x40;
|
||||
sp[2] = *(u16 *)((char *)s0 + 0xE);
|
||||
|
||||
result = func_80143BDC(sp);
|
||||
if (result) {
|
||||
v3 = *(void **)((char *)result + 0xCC);
|
||||
*(s16 *)((char *)v3 + 0x1A) = 0x5000;
|
||||
*(s16 *)((char *)v3 + 0x18) = 0x5000;
|
||||
}
|
||||
|
||||
func_80187558(s0);
|
||||
func_8002D4C8(0x4DC, 0);
|
||||
func_8012C218(s0);
|
||||
}
|
||||
}
|
||||
DEFINE_func_80186D88() /* dedup: shared engine-core @0x80186D88 (src/shared) */
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -3303,7 +3303,7 @@ void func_80186CAC(void *a0) {
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003_jr_8018173C", func_80186CE8);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003_jr_8018173C", func_80186D88);
|
||||
DEFINE_func_80186D88() /* dedup: shared engine-core @0x80186D88 (src/shared) */
|
||||
|
||||
|
||||
extern void (*D_8018F3C4[])(void);
|
||||
|
||||
@@ -61378,6 +61378,37 @@
|
||||
} \
|
||||
}
|
||||
|
||||
#define DEFINE_func_80186D88() \
|
||||
extern s32 func_80143BDC(u16 *a0); \
|
||||
extern void func_80187558(); \
|
||||
extern void func_8002D4C8(s32 a0, s32 a1); \
|
||||
extern void func_8012C218(void *a0); \
|
||||
void func_80186D88(void *s0) { \
|
||||
void *a0; \
|
||||
s16 v0, v1; \
|
||||
u16 sp[3]; \
|
||||
s32 result; \
|
||||
void *v3; \
|
||||
a0 = *(void **)((char *)s0 + 0x64); \
|
||||
v0 = *(s16 *)((char *)a0 + 0xE); \
|
||||
v1 = *(s16 *)((char *)s0 + 0xE); \
|
||||
if ((v0 - 0x80) < v1) { \
|
||||
*(s16 *)((char *)a0 + 0xFE) = 1; \
|
||||
sp[0] = *(u16 *)((char *)s0 + 0x6); \
|
||||
sp[1] = *(u16 *)((char *)s0 + 0xA) - 0x40; \
|
||||
sp[2] = *(u16 *)((char *)s0 + 0xE); \
|
||||
result = func_80143BDC(sp); \
|
||||
if (result) { \
|
||||
v3 = *(void **)((char *)result + 0xCC); \
|
||||
*(s16 *)((char *)v3 + 0x1A) = 0x5000; \
|
||||
*(s16 *)((char *)v3 + 0x18) = 0x5000; \
|
||||
} \
|
||||
func_80187558(s0); \
|
||||
func_8002D4C8(0x4DC, 0); \
|
||||
func_8012C218(s0); \
|
||||
} \
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#define DEFINE_func_80128EA8() \
|
||||
@@ -152161,4 +152192,35 @@
|
||||
} \
|
||||
}
|
||||
|
||||
#define DEFINE_func_80186D88() \
|
||||
extern s32 func_80143BDC(u16 *a0); \
|
||||
extern void func_80187558(); \
|
||||
extern void func_8002D4C8(s32 a0, s32 a1); \
|
||||
extern void func_8012C218(void *a0); \
|
||||
void func_80186D88(void *s0) { \
|
||||
void *a0; \
|
||||
s16 v0, v1; \
|
||||
u16 sp[3]; \
|
||||
s32 result; \
|
||||
void *v3; \
|
||||
a0 = *(void **)((char *)s0 + 0x64); \
|
||||
v0 = *(s16 *)((char *)a0 + 0xE); \
|
||||
v1 = *(s16 *)((char *)s0 + 0xE); \
|
||||
if ((v0 - 0x80) < v1) { \
|
||||
*(s16 *)((char *)a0 + 0xFE) = 1; \
|
||||
sp[0] = *(u16 *)((char *)s0 + 0x6); \
|
||||
sp[1] = *(u16 *)((char *)s0 + 0xA) - 0x40; \
|
||||
sp[2] = *(u16 *)((char *)s0 + 0xE); \
|
||||
result = func_80143BDC(sp); \
|
||||
if (result) { \
|
||||
v3 = *(void **)((char *)result + 0xCC); \
|
||||
*(s16 *)((char *)v3 + 0x1A) = 0x5000; \
|
||||
*(s16 *)((char *)v3 + 0x18) = 0x5000; \
|
||||
} \
|
||||
func_80187558(s0); \
|
||||
func_8002D4C8(0x4DC, 0); \
|
||||
func_8012C218(s0); \
|
||||
} \
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user