diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2017-06-26 08:35:22 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2017-06-26 08:35:22 -0400 |
commit | d7ab13d3a9b969b0267786e566595689338ae7c4 (patch) | |
tree | f7ae008a49b3111a30905f69986058406abad2e3 | |
parent | 01890a2020676ad2567f21d9f11deeb2e3a0e2db (diff) |
sub_806972C
-rwxr-xr-x | asm/field_tasks.s | 82 | ||||
-rwxr-xr-x | src/field_tasks.c | 34 |
2 files changed, 34 insertions, 82 deletions
diff --git a/asm/field_tasks.s b/asm/field_tasks.s index 0cccd07ba..dcc3858ee 100755 --- a/asm/field_tasks.s +++ b/asm/field_tasks.s @@ -6,88 +6,6 @@ .text - thumb_func_start sub_806972C -sub_806972C: @ 806972C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - mov r10, r8 - lsls r1, 16 - lsrs r7, r1, 16 - mov r9, r7 - lsls r2, 16 - asrs r6, r2, 16 - lsls r3, 16 - asrs r5, r3, 16 - adds r0, r6, 0 - adds r1, r5, 0 - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl sub_80576A0 - lsls r0, 24 - cmp r0, 0 - beq _08069770 - lsls r0, r7, 16 - asrs r0, 16 - cmp r0, r5 - ble _080697B6 -_0806976C: - movs r0, 0 - b _080697B8 -_08069770: - adds r0, r4, 0 - bl sub_80576B4 - lsls r0, 24 - cmp r0, 0 - beq _08069788 - mov r1, r9 - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, r5 - bge _080697B6 - b _0806976C -_08069788: - adds r0, r4, 0 - bl sub_80576C8 - lsls r0, 24 - cmp r0, 0 - beq _080697A0 - mov r1, r8 - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, r6 - ble _080697B6 - b _0806976C -_080697A0: - adds r0, r4, 0 - bl sub_80576DC - lsls r0, 24 - cmp r0, 0 - beq _080697B6 - mov r1, r10 - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, r6 - blt _0806976C -_080697B6: - movs r0, 0x1 -_080697B8: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_806972C - thumb_func_start sub_80697C8 sub_80697C8: @ 80697C8 push {r4-r7,lr} diff --git a/src/field_tasks.c b/src/field_tasks.c index 11f67c330..6682d01c3 100755 --- a/src/field_tasks.c +++ b/src/field_tasks.c @@ -283,3 +283,37 @@ void sub_8069708(s16 x, s16 y, bool32 flag) { sub_8069638(gUnknown_083763C4, x, y, flag); } + +bool8 sub_806972C(s16 x1, s16 y1, s16 x2, s16 y2) +{ + s8 metatileBehavior = MapGridGetMetatileBehaviorAt(x2, y2); + if (sub_80576A0(metatileBehavior)) + { + if (y1 > y2) + { + return FALSE; + } + } + else if (sub_80576B4(metatileBehavior)) + { + if (y1 < y2) + { + return FALSE; + } + } + else if (sub_80576C8(metatileBehavior)) + { + if (x1 > x2) + { + return FALSE; + } + } + else if (sub_80576DC(metatileBehavior)) + { + if (x1 < x2) + { + return FALSE; + } + } + return TRUE; +} |