diff --git a/asm/enemy/gleerok.s b/asm/enemy/gleerok.s index dd341326..5c60ac94 100644 --- a/asm/enemy/gleerok.s +++ b/asm/enemy/gleerok.s @@ -6,35 +6,6 @@ .text - - thumb_func_start sub_0802EA18 -sub_0802EA18: @ 0x0802EA18 - push {lr} - adds r3, r2, #0 - movs r2, #0x80 - lsls r2, r2, #5 - adds r1, r1, r2 - subs r1, r1, r0 - ldr r0, _0802EA40 @ =0x00001FFF - ands r1, r0 - lsls r3, r3, #8 - subs r2, r2, r3 - cmp r1, r2 - blo _0802EA44 - movs r2, #0x80 - lsls r2, r2, #5 - adds r0, r3, r2 - cmp r1, r0 - bhi _0802EA44 - movs r0, #0 - b _0802EA46 - .align 2, 0 -_0802EA40: .4byte 0x00001FFF -_0802EA44: - movs r0, #1 -_0802EA46: - pop {pc} - thumb_func_start sub_0802EA48 sub_0802EA48: @ 0x0802EA48 push {r4, lr} diff --git a/src/enemy/gleerok.c b/src/enemy/gleerok.c index bdafc0a8..e6fa9f9b 100644 --- a/src/enemy/gleerok.c +++ b/src/enemy/gleerok.c @@ -70,7 +70,7 @@ extern void sub_0802EBC4(GleerokEntity* this); extern void sub_0802E9B0(GleerokEntity* this); extern bool32 sub_0802EB08(Gleerok_HeapStruct* param_1, u32 param_2, u32 param_3); -extern bool32 sub_0802EA18(u16 param_1, u16 param_2, u32 param_3); +extern bool32 sub_0802EA18(u32 param_1, u32 param_2, u32 param_3); extern bool32 sub_0802EA48(Gleerok_HeapStruct* param_1, u32 param_2, u32 param_3, u32 param_4); extern bool32 sub_0802EA68(Gleerok_HeapStruct* param_1, u32 param_2, u32 param_3, u32 param_4); extern bool32 sub_0802E7CC(Gleerok_HeapStruct* param_1, u32 param_2, u32 param_3, u32 param_4); @@ -1287,3 +1287,19 @@ void sub_0802E9B0(GleerokEntity* this) { } } } + +bool32 sub_0802EA18(u32 arg0, u32 arg1, u32 arg2) { + u32 r1; + + r1 = arg1 + 0x1000; + r1 -= arg0; + r1 &= 0x1FFF; + arg2 <<= 8; + + if (r1 >= 0x1000 - arg2) { + if (r1 <= 0x1000 + arg2) { + return FALSE; + } + } + return TRUE; +}