diff --git a/src/ov_SC03_089/ov_SC03_089_jr_8017CA80.c b/src/ov_SC03_089/ov_SC03_089_jr_8017CA80.c index 8ab42d5a25..c8df6fa088 100644 --- a/src/ov_SC03_089/ov_SC03_089_jr_8017CA80.c +++ b/src/ov_SC03_089/ov_SC03_089_jr_8017CA80.c @@ -4185,7 +4185,40 @@ extern void func_8016EE40(s32 a0, s32 a1, s32 a2); } -INCLUDE_ASM("asm/ov_SC03_089/nonmatchings/ov_SC03_089_jr_8017CA80", func_80181538); +#include "common.h" + +/* A-prop sibling of the byte-matched seed func_8017D840 (ov_SC01_077, + * src/ov_SC01_077/ov_SC01_077_jr_8017AE2C.c). Same skeleton; the words that + * differ are the per-overlay callback symbol, the eight init constants, and the + * call order of func_8012A094 vs the callback. Symbol surface taken from + * asm/ov_SC03_089/nonmatchings/ov_SC03_089_jr_8017CA80/func_80181538.s. */ +extern void func_8012A018(s32 a0, s32 a1); +extern void func_8012A094(s32 a0); +extern void func_801817A4(void*); +extern u8 D_80126948[]; +extern s32 D_80126954; +extern s32 D_8012695C; +extern s16 D_80126968; +extern s16 D_8012696A; +extern s16 D_8012696C; +extern s16 D_80126976; +extern s16 D_80126978; +extern s16 D_8012697A; + +void func_80181538(void) { + D_80126954 = 0x190; + D_8012695C = 0x3E8; + D_80126968 = 0xA6; + D_8012696A = 0x800; + D_8012696C = 0; + D_80126976 = 0; + D_80126978 = -0x41; + D_8012697A = 0; + func_8012A018(func_801817A4, 0); + func_8012A094(&D_80126948); + ((s32 (*)(void *))func_801817A4)(&D_80126948); +} + extern void func_8012A018(s32 a, s32 b);