diff --git a/asm/code_0807CC3C.s b/asm/code_0807CC3C.s index 9a9ab84d..3cdcaae2 100644 --- a/asm/code_0807CC3C.s +++ b/asm/code_0807CC3C.s @@ -187,35 +187,3 @@ _0807D0E8: _0807D0EA: pop {r4, r5, r6, r7, pc} - thumb_func_start sub_0807D0EC -sub_0807D0EC: @ 0x0807D0EC - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r4, r1, #0 - movs r2, #8 - bl sub_0807D1D8 - cmp r0, #0 - bne _0807D100 - movs r5, #0 - b _0807D10C -_0807D100: - adds r0, r4, #0 - bl sub_0807D128 - adds r5, r0, #0 - cmp r5, #0 - bne _0807D124 -_0807D10C: - adds r0, r6, #0 - adds r0, #8 - adds r1, r4, #0 - movs r2, #8 - bl sub_0807D1D8 - cmp r0, #0 - beq _0807D124 - adds r0, r4, #0 - bl sub_0807D128 - adds r5, r0, #0 -_0807D124: - adds r0, r5, #0 - pop {r4, r5, r6, pc} - diff --git a/src/code_0807CC3C.c b/src/code_0807CC3C.c index 35513d3b..2bb8c81d 100644 --- a/src/code_0807CC3C.c +++ b/src/code_0807CC3C.c @@ -25,6 +25,23 @@ extern u16 sub_080B18DC(u16, const char*); void sub_0807DB88(ScriptExecutionContext* context, u32 unk1); void sub_0807DAF0(Entity* entity, ScriptExecutionContext* context, u32 unk1); +u32 sub_0807D1D8(u32 unk_1, const char* unk_2, u32 unk_3); +u32 sub_0807D128(u16* unk_1); +u16 sub_0807D1A4(u16* unk_1, u32 unk_2); + +u32 sub_0807D0EC(u32 unk_1, const char* unk_2) { + u32 ret; + + if (!sub_0807D1D8(unk_1, unk_2, 8)) { + ret = 0; + } else { + ret = sub_0807D128((u16*)unk_2); + } + if (!ret && sub_0807D1D8(unk_1 + 8, unk_2, 8)) { + ret = sub_0807D128((u16*)unk_2); + } + return ret; +} u32 sub_0807D128(u16* unk_1) { u32 ret;