diff --git a/config/dedup.us.yaml b/config/dedup.us.yaml index 0c00e043bf..120a2cf3b1 100644 --- a/config/dedup.us.yaml +++ b/config/dedup.us.yaml @@ -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] diff --git a/src/ov_SC02_000/ov_SC02_000_jr_8018173C.c b/src/ov_SC02_000/ov_SC02_000_jr_8018173C.c index 9ff93220eb..ad22e09883 100644 --- a/src/ov_SC02_000/ov_SC02_000_jr_8018173C.c +++ b/src/ov_SC02_000/ov_SC02_000_jr_8018173C.c @@ -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) */ diff --git a/src/ov_SC02_003/ov_SC02_003_jr_8018173C.c b/src/ov_SC02_003/ov_SC02_003_jr_8018173C.c index 3d611f8d24..acff1ffec1 100644 --- a/src/ov_SC02_003/ov_SC02_003_jr_8018173C.c +++ b/src/ov_SC02_003/ov_SC02_003_jr_8018173C.c @@ -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); diff --git a/src/shared/engine_core.h b/src/shared/engine_core.h index 5d44d77e63..29fdc19689 100644 --- a/src/shared/engine_core.h +++ b/src/shared/engine_core.h @@ -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