summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2018-10-09 07:56:00 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2018-10-09 07:56:18 -0400
commit6617a6e2a3148daa0d6b6f11d645f770a46d7025 (patch)
treefd6a2272256a3868fd70a89a4da6f16660c8e87c
parentba183710e0c15a812f35db5724319d919e6dc3d5 (diff)
sub_810D1CC
-rw-r--r--asm/vs_seeker.s67
-rw-r--r--include/field_map_obj.h1
-rw-r--r--include/unk_810c3a4.h7
-rw-r--r--src/vs_seeker.c33
4 files changed, 32 insertions, 76 deletions
diff --git a/asm/vs_seeker.s b/asm/vs_seeker.s
index 8fe1af153..933a4753e 100644
--- a/asm/vs_seeker.s
+++ b/asm/vs_seeker.s
@@ -5,73 +5,6 @@
.text
- thumb_func_start sub_810D1CC
-sub_810D1CC: @ 810D1CC
- push {r4-r7,lr}
- sub sp, 0x4
- movs r5, 0
- ldr r6, _0810D220 @ =gUnknown_203ADB8
- ldr r0, [r6]
- ldrb r0, [r0, 0x6]
- cmp r0, 0xFF
- beq _0810D23C
- adds r7, r6, 0
-_0810D1DE:
- lsls r4, r5, 4
- ldr r0, [r7]
- adds r0, r4
- bl sub_810D0FC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0810D228
- ldr r0, [r6]
- adds r0, r4
- ldrh r0, [r0, 0x4]
- bl HasTrainerAlreadyBeenFought
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0810D216
- ldr r0, [r7]
- adds r0, r4
- ldrh r1, [r0, 0x4]
- ldr r0, _0810D224 @ =gUnknown_845318C
- mov r2, sp
- bl sub_810D164
- lsls r0, 24
- cmp r0, 0
- beq _0810D228
-_0810D216:
- ldr r0, [r7]
- adds r0, r4
- ldrb r0, [r0, 0x6]
- b _0810D23E
- .align 2, 0
-_0810D220: .4byte gUnknown_203ADB8
-_0810D224: .4byte gUnknown_845318C
-_0810D228:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r6, _0810D248 @ =gUnknown_203ADB8
- ldr r0, [r6]
- lsls r1, r5, 4
- adds r0, r1
- ldrb r0, [r0, 0x6]
- cmp r0, 0xFF
- bne _0810D1DE
-_0810D23C:
- movs r0, 0xFF
-_0810D23E:
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0810D248: .4byte gUnknown_203ADB8
- thumb_func_end sub_810D1CC
-
thumb_func_start sub_810D24C
sub_810D24C: @ 810D24C
push {r4,r5,lr}
diff --git a/include/field_map_obj.h b/include/field_map_obj.h
index 803ed275b..0cba810d7 100644
--- a/include/field_map_obj.h
+++ b/include/field_map_obj.h
@@ -77,6 +77,7 @@ bool8 FieldObjectIsSpecialAnimActive(struct MapObject *);
u8 FieldObjectClearAnimIfSpecialAnimFinished(struct MapObject *);
u8 GetFieldObjectIdByXYZ(u16 x, u16 y, u8 z);
void npc_coords_shift_still(struct MapObject *);
+void sub_805FE7C(struct MapObject *, u8);
// Exported data declarations
diff --git a/include/unk_810c3a4.h b/include/unk_810c3a4.h
new file mode 100644
index 000000000..3f85ab00f
--- /dev/null
+++ b/include/unk_810c3a4.h
@@ -0,0 +1,7 @@
+#ifndef GUARD_UNK_810C3A4_H
+#define GUARD_UNK_810C3A4_H
+
+void sub_810C604(void);
+void sub_810C640(void);
+
+#endif //GUARD_UNK_810C3A4_H
diff --git a/src/vs_seeker.c b/src/vs_seeker.c
index 43b0191ab..dda31d170 100644
--- a/src/vs_seeker.c
+++ b/src/vs_seeker.c
@@ -19,6 +19,7 @@
#include "random.h"
#include "field_map_obj.h"
#include "field_player_avatar.h"
+#include "unk_810c3a4.h"
#include "vs_seeker.h"
// static types
@@ -45,20 +46,17 @@ u8 sub_810CD80(const struct UnkStruct_845318C *, u16);
u8 sub_810CDB4(const struct UnkStruct_845318C *, u16);
int sub_810CE10(const struct UnkStruct_845318C * a0, u16 a1);
bool8 sub_810CED0(const struct UnkStruct_845318C *, u16);
-bool32 sub_810D0A8(u32);
+u8 sub_810CF54(struct MapObjectTemplate *);
+u8 sub_810CF90(u8);
+u16 sub_810D074(const u8 *);
int sub_810D084(const struct UnkStruct_845318C *, u16);
-void sub_810D304(void);
-void sub_810C604(void);
+bool32 sub_810D0A8(u32);
bool8 sub_810D0FC(struct VsSeekerSubstruct *);
-u16 sub_810D074(const u8 *);
+u8 sub_810D164(const struct UnkStruct_845318C *, u16, u8 *);
u8 sub_810D1CC(void);
void sub_810D24C(struct VsSeekerSubstruct *, const u8 *);
-u8 sub_810D164(const struct UnkStruct_845318C *, u16, u8 *);
u8 sub_810D280(int, u16);
-u8 sub_810CF90(u8);
-void sub_810C640(void);
-u8 sub_810CF54(struct MapObjectTemplate *);
-void sub_805FE7C(struct MapObject *, u8);
+void sub_810D304(void);
// rodata
const struct UnkStruct_845318C gUnknown_845318C[] = {
@@ -1028,3 +1026,20 @@ u8 sub_810D164(const struct UnkStruct_845318C * a0, u16 a1, u8 * a2)
*a2 = 0;
return 0;
}
+
+u8 sub_810D1CC(void)
+{
+ u8 sp0;
+ u8 r5;
+
+ for (r5 = 0; gUnknown_203ADB8->unk_000[r5].unk_6 != 0xFF; r5++)
+ {
+ if (sub_810D0FC(&gUnknown_203ADB8->unk_000[r5]) == 1)
+ {
+ if (HasTrainerAlreadyBeenFought(gUnknown_203ADB8->unk_000[r5].unk_4) != 1 || sub_810D164(gUnknown_845318C, gUnknown_203ADB8->unk_000[r5].unk_4, &sp0))
+ return gUnknown_203ADB8->unk_000[r5].unk_6;
+ }
+ }
+
+ return 0xFF;
+}