summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/vs_seeker.s81
-rw-r--r--include/vs_seeker.h4
-rw-r--r--src/vs_seeker.c27
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;
+}