diff --git a/config/dedup.us.yaml b/config/dedup.us.yaml index 81d01aa14..175170c11 100644 --- a/config/dedup.us.yaml +++ b/config/dedup.us.yaml @@ -14866,3 +14866,10 @@ groups: func: DEFINE_func_8018AD3C vram: 0x8018AD3C binaries: [ov_SC04_018, ov_SC04_019] + - id: E_func_80187354 + tier: h_exact + hash: de9edbad022910d06cd17328fff92a2fd0785082 + source: src/shared/engine_core.h + func: DEFINE_func_80187354 + vram: 0x80187354 + 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 34b2b0eeb..34838c147 100644 --- a/src/ov_SC02_000/ov_SC02_000_jr_8018173C.c +++ b/src/ov_SC02_000/ov_SC02_000_jr_8018173C.c @@ -5054,28 +5054,7 @@ void func_801872D8(int param_1) { #include "common.h" -extern s32 D_8018F424[3]; -extern s32 D_8018F430[]; -extern s16 D_8018F3E4[]; - -extern void func_80188C0C(void *a0, s16 a1); - -void func_80187354(s32 a0) { - s16 buf[3]; - s16 vec[3]; - s32 i; - - buf[0] = *(u16 *)(a0 + 0x6) - 0xE1; - buf[1] = *(u16 *)(a0 + 0xA) + 0x40; - buf[2] = *(u16 *)(a0 + 0xE) - 0x75; - - for (i = 0; i < 16; i++) { - vec[1] = buf[1] + D_8018F424[rand() % 3]; - vec[2] = buf[2] + D_8018F430[rand() % 5]; - vec[0] = buf[0] + i * 0x20; - func_80188C0C(vec, *(s16 *)((s32)D_8018F3E4 + i * 4)); - } -} +DEFINE_func_80187354() /* dedup: shared engine-core @0x80187354 (src/shared) */ INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000_jr_8018173C", func_80187480); 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 14c42c2a0..1a58c9d0f 100644 --- a/src/ov_SC02_003/ov_SC02_003_jr_8018173C.c +++ b/src/ov_SC02_003/ov_SC02_003_jr_8018173C.c @@ -3370,7 +3370,7 @@ void func_801872D8(int param_1) { } -INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003_jr_8018173C", func_80187354); +DEFINE_func_80187354() /* dedup: shared engine-core @0x80187354 (src/shared) */ INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003_jr_8018173C", func_80187480); diff --git a/src/shared/engine_core.h b/src/shared/engine_core.h index b0b56140a..de19d8e8c 100644 --- a/src/shared/engine_core.h +++ b/src/shared/engine_core.h @@ -61138,6 +61138,26 @@ func_8018A168(0x474, 0x4B0); \ } +#define DEFINE_func_80187354() \ + extern s32 D_8018F424[3]; \ + extern s32 D_8018F430[]; \ + extern s16 D_8018F3E4[]; \ + extern void func_80188C0C(void *a0, s16 a1); \ + void func_80187354(s32 a0) { \ + s16 buf[3]; \ + s16 vec[3]; \ + s32 i; \ + buf[0] = *(u16 *)(a0 + 0x6) - 0xE1; \ + buf[1] = *(u16 *)(a0 + 0xA) + 0x40; \ + buf[2] = *(u16 *)(a0 + 0xE) - 0x75; \ + for (i = 0; i < 16; i++) { \ + vec[1] = buf[1] + D_8018F424[rand() % 3]; \ + vec[2] = buf[2] + D_8018F430[rand() % 5]; \ + vec[0] = buf[0] + i * 0x20; \ + func_80188C0C(vec, *(s16 *)((s32)D_8018F3E4 + i * 4)); \ + } \ + } + #endif #define DEFINE_func_80128EA8() \ @@ -151681,4 +151701,24 @@ func_8018A168(0x474, 0x4B0); \ } +#define DEFINE_func_80187354() \ + extern s32 D_8018F424[3]; \ + extern s32 D_8018F430[]; \ + extern s16 D_8018F3E4[]; \ + extern void func_80188C0C(void *a0, s16 a1); \ + void func_80187354(s32 a0) { \ + s16 buf[3]; \ + s16 vec[3]; \ + s32 i; \ + buf[0] = *(u16 *)(a0 + 0x6) - 0xE1; \ + buf[1] = *(u16 *)(a0 + 0xA) + 0x40; \ + buf[2] = *(u16 *)(a0 + 0xE) - 0x75; \ + for (i = 0; i < 16; i++) { \ + vec[1] = buf[1] + D_8018F424[rand() % 3]; \ + vec[2] = buf[2] + D_8018F430[rand() % 5]; \ + vec[0] = buf[0] + i * 0x20; \ + func_80188C0C(vec, *(s16 *)((s32)D_8018F3E4 + i * 4)); \ + } \ + } + #endif