diff options
-rw-r--r-- | asm/vs_seeker.s | 81 | ||||
-rw-r--r-- | include/vs_seeker.h | 4 | ||||
-rw-r--r-- | src/vs_seeker.c | 27 |
3 files changed, 29 insertions, 83 deletions
diff --git a/asm/vs_seeker.s b/asm/vs_seeker.s index a842311bb..dfc23d6a6 100644 --- a/asm/vs_seeker.s +++ b/asm/vs_seeker.s @@ -5,87 +5,6 @@ .text - thumb_func_start sub_810D0D0 -sub_810D0D0: @ 810D0D0 - push {r4,lr} - movs r1, 0 - ldr r4, _0810D0F4 @ =gSaveBlock1Ptr - ldr r3, _0810D0F8 @ =0x0000063a - movs r2, 0 -_0810D0DA: - ldr r0, [r4] - adds r0, r3 - adds r0, r1 - strb r2, [r0] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x63 - bls _0810D0DA - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810D0F4: .4byte gSaveBlock1Ptr -_0810D0F8: .4byte 0x0000063a - thumb_func_end sub_810D0D0 - - thumb_func_start sub_810D0FC -sub_810D0FC: @ 810D0FC - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r0, 0 - mov r4, sp - adds r4, 0x2 - mov r0, sp - adds r1, r4, 0 - bl PlayerGetDestCoords - mov r1, sp - mov r0, sp - ldrh r0, [r0] - subs r0, 0x7 - strh r0, [r1] - ldrh r0, [r4] - subs r0, 0x7 - strh r0, [r4] - mov r0, sp - movs r1, 0 - ldrsh r2, [r0, r1] - subs r0, r2, 0x7 - movs r3, 0x8 - ldrsh r1, [r5, r3] - cmp r0, r1 - bgt _0810D15A - adds r0, r2, 0x7 - cmp r0, r1 - blt _0810D15A - movs r0, 0 - ldrsh r1, [r4, r0] - subs r0, r1, 0x5 - movs r3, 0xA - ldrsh r2, [r5, r3] - cmp r0, r2 - bgt _0810D15A - adds r0, r1, 0x5 - cmp r0, r2 - blt _0810D15A - ldrb r0, [r5, 0x7] - bl sub_810CF04 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0810D15A - movs r0, 0x1 - b _0810D15C -_0810D15A: - movs r0, 0 -_0810D15C: - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_810D0FC - thumb_func_start sub_810D164 sub_810D164: @ 810D164 push {r4-r7,lr} diff --git a/include/vs_seeker.h b/include/vs_seeker.h index d79035576..e69a80dba 100644 --- a/include/vs_seeker.h +++ b/include/vs_seeker.h @@ -9,8 +9,8 @@ struct VsSeekerSubstruct u16 unk_4; u8 unk_6; u8 unk_7; - u16 unk_8; - u16 unk_a; + s16 unk_8; + s16 unk_a; u8 unk_c; }; diff --git a/src/vs_seeker.c b/src/vs_seeker.c index df5ea3eec..6942ed9bd 100644 --- a/src/vs_seeker.c +++ b/src/vs_seeker.c @@ -18,6 +18,7 @@ #include "battle_setup.h" #include "random.h" #include "field_map_obj.h" +#include "field_player_avatar.h" #include "vs_seeker.h" // static types @@ -973,3 +974,29 @@ bool32 sub_810D0A8(u32 a0) return FALSE; return TRUE; } + +void sub_810D0D0(void) +{ + u8 i; + + for (i = 0; i < 100; i++) + gSaveBlock1Ptr->trainerRematches[i] = 0; +} + +bool8 sub_810D0FC(struct VsSeekerSubstruct * a0) +{ + s16 x; + s16 y; + + PlayerGetDestCoords(&x, &y); + x -= 7; + y -= 7; + + if ( x - 7 <= a0->unk_8 + && x + 7 >= a0->unk_8 + && y - 5 <= a0->unk_a + && y + 5 >= a0->unk_a + && sub_810CF04(a0->unk_7) == 1) + return TRUE; + return FALSE; +} |