diff --git a/src/ov_SC03_014/ov_SC03_014_jr_801848E4.c b/src/ov_SC03_014/ov_SC03_014_jr_801848E4.c index 1f2f6dccd..7831b258b 100644 --- a/src/ov_SC03_014/ov_SC03_014_jr_801848E4.c +++ b/src/ov_SC03_014/ov_SC03_014_jr_801848E4.c @@ -3865,7 +3865,38 @@ INCLUDE_ASM("asm/ov_SC03_014/nonmatchings/ov_SC03_014_jr_801848E4", func_8018931 INCLUDE_ASM("asm/ov_SC03_014/nonmatchings/ov_SC03_014_jr_801848E4", func_801893BC); -INCLUDE_ASM("asm/ov_SC03_014/nonmatchings/ov_SC03_014_jr_801848E4", func_8018942C); +#include "common.h" + +extern s32 func_8012BEE8(s32 a0); +extern void func_8012AD80(s32 a0); +extern void func_80188C60(s32 a0); +extern int func_80178970(void); + +void func_8018942C(s32 arg0) { + u16 val_34; + s16 val_fe, val_a; + + val_34 = *(u16 *)(arg0 + 0x34); + + if (val_34 == 0) { + if (func_8012BEE8(arg0) != 0) { + *(s32 *)(arg0 + 0x14) = 0x10000; + *(u16 *)(arg0 + 0x34) = *(u16 *)(arg0 + 0x34) + 1; + } + } else { + val_fe = *(s16 *)(arg0 + 0xFE); + val_a = *(s16 *)(arg0 + 0xA); + + if (val_a < (val_fe - 0xA0)) { + func_8012AD80(arg0); + } else { + func_80188C60(arg0); + } + } + + ((void (*)(s32))func_80178970)(arg0); +} + DEFINE_func_801894BC() /* dedup: shared engine-core @0x801894BC (src/shared) */