summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2018-10-09 09:46:18 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2018-10-09 09:46:18 -0400
commit76262efe7d75825eea49fe2a6f5cd969884032e6 (patch)
tree154b2fedfed02bda9359221dc37d6a9b39279f29
parent656924e7db5d88692f66492c7d33c8078d203735 (diff)
sub_810D304
-rw-r--r--asm/vs_seeker.s121
-rw-r--r--include/field_map_obj.h1
-rw-r--r--src/vs_seeker.c22
3 files changed, 23 insertions, 121 deletions
diff --git a/asm/vs_seeker.s b/asm/vs_seeker.s
index 9ae4c3153..2428f2984 100644
--- a/asm/vs_seeker.s
+++ b/asm/vs_seeker.s
@@ -5,125 +5,4 @@
.text
- thumb_func_start sub_810D304
-sub_810D304: @ 810D304
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- movs r1, 0
- mov r0, sp
- strb r1, [r0]
- movs r7, 0
- ldr r2, _0810D328 @ =gUnknown_203ADB8
- ldr r0, [r2]
- movs r1, 0x86
- lsls r1, 3
- adds r0, r1
- mov r10, r2
- b _0810D3CC
- .align 2, 0
-_0810D328: .4byte gUnknown_203ADB8
-_0810D32C:
- ldr r0, [r2]
- ldrb r0, [r0, 0x6]
- adds r3, r7, 0x1
- mov r8, r3
- cmp r0, 0xFF
- beq _0810D3C0
- adds r5, r2, 0
- mov r10, r5
- movs r6, 0
- mov r9, r5
-_0810D340:
- ldr r0, [r5]
- adds r2, r0, r6
- lsls r1, r7, 1
- movs r3, 0x80
- lsls r3, 3
- adds r0, r3
- adds r0, r1
- ldrh r1, [r2, 0x4]
- ldrh r0, [r0]
- cmp r1, r0
- bne _0810D3B2
- ldrb r0, [r2, 0x7]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r2, _0810D3E4 @ =gUnknown_2036E38
- adds r4, r1, r2
- bl sub_810CF04
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0810D380
- ldr r0, [r5]
- movs r1, 0x84
- lsls r1, 3
- adds r0, r1
- adds r0, r7
- ldrb r1, [r0]
- adds r0, r4, 0
- bl npc_set_running_behaviour_etc
-_0810D380:
- ldr r0, [r5]
- movs r3, 0x84
- lsls r3, 3
- adds r0, r3
- adds r0, r7
- ldrb r1, [r0]
- adds r0, r4, 0
- bl sub_805FE7C
- ldr r0, [r5]
- adds r0, r6
- ldrh r1, [r0, 0x4]
- ldr r0, _0810D3E8 @ =gUnknown_845318C
- mov r2, sp
- bl sub_810D164
- ldr r1, _0810D3EC @ =gSaveBlock1Ptr
- ldr r1, [r1]
- ldr r2, [r5]
- adds r2, r6
- ldr r3, _0810D3F0 @ =0x0000063a
- adds r1, r3
- ldrb r2, [r2, 0x6]
- adds r1, r2
- strb r0, [r1]
-_0810D3B2:
- adds r6, 0x10
- mov r1, r9
- ldr r0, [r1]
- adds r0, r6
- ldrb r0, [r0, 0x6]
- cmp r0, 0xFF
- bne _0810D340
-_0810D3C0:
- mov r7, r8
- mov r2, r10
- ldr r0, [r2]
- movs r3, 0x86
- lsls r3, 3
- adds r0, r3
-_0810D3CC:
- ldrb r0, [r0]
- cmp r7, r0
- blt _0810D32C
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810D3E4: .4byte gUnknown_2036E38
-_0810D3E8: .4byte gUnknown_845318C
-_0810D3EC: .4byte gSaveBlock1Ptr
-_0810D3F0: .4byte 0x0000063a
- thumb_func_end sub_810D304
-
.align 2, 0 @ Don't pad with nop.
diff --git a/include/field_map_obj.h b/include/field_map_obj.h
index 0cba810d7..304dcb825 100644
--- a/include/field_map_obj.h
+++ b/include/field_map_obj.h
@@ -78,6 +78,7 @@ 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);
+void npc_set_running_behaviour_etc(struct MapObject *, u8);
// Exported data declarations
diff --git a/src/vs_seeker.c b/src/vs_seeker.c
index 30a777c19..5e2e41e62 100644
--- a/src/vs_seeker.c
+++ b/src/vs_seeker.c
@@ -1070,3 +1070,25 @@ u8 sub_810D280(int a0, u16 a1)
}
return 0;
}
+
+void sub_810D304(void)
+{
+ u8 sp0 = 0;
+ s32 r7;
+ s32 r8;
+
+ for (r7 = 0; r7 < gUnknown_203ADB8->unk_430; r7++)
+ {
+ for (r8 = 0; gUnknown_203ADB8->unk_000[r8].unk_6 != 0xFF; r8++)
+ {
+ if (gUnknown_203ADB8->unk_000[r8].unk_4 == gUnknown_203ADB8->unk_400[r7])
+ {
+ struct MapObject *r4 = &gUnknown_2036E38[gUnknown_203ADB8->unk_000[r8].unk_7];
+ if (sub_810CF04(gUnknown_203ADB8->unk_000[r8].unk_7) == 1)
+ npc_set_running_behaviour_etc(r4, gUnknown_203ADB8->unk_420[r7]);
+ sub_805FE7C(r4, gUnknown_203ADB8->unk_420[r7]);
+ gSaveBlock1Ptr->trainerRematches[gUnknown_203ADB8->unk_000[r8].unk_6] = sub_810D164(gUnknown_845318C, gUnknown_203ADB8->unk_000[r8].unk_4, &sp0);
+ }
+ }
+ }
+}