diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2018-10-09 07:56:00 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2018-10-09 07:56:18 -0400 |
commit | 6617a6e2a3148daa0d6b6f11d645f770a46d7025 (patch) | |
tree | fd6a2272256a3868fd70a89a4da6f16660c8e87c | |
parent | ba183710e0c15a812f35db5724319d919e6dc3d5 (diff) |
sub_810D1CC
-rw-r--r-- | asm/vs_seeker.s | 67 | ||||
-rw-r--r-- | include/field_map_obj.h | 1 | ||||
-rw-r--r-- | include/unk_810c3a4.h | 7 | ||||
-rw-r--r-- | src/vs_seeker.c | 33 |
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; +} |