diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2018-10-09 09:46:18 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2018-10-09 09:46:18 -0400 |
commit | 76262efe7d75825eea49fe2a6f5cd969884032e6 (patch) | |
tree | 154b2fedfed02bda9359221dc37d6a9b39279f29 | |
parent | 656924e7db5d88692f66492c7d33c8078d203735 (diff) |
sub_810D304
-rw-r--r-- | asm/vs_seeker.s | 121 | ||||
-rw-r--r-- | include/field_map_obj.h | 1 | ||||
-rw-r--r-- | src/vs_seeker.c | 22 |
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); + } + } + } +} |