summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/vs_seeker.s75
-rw-r--r--src/vs_seeker.c20
2 files changed, 20 insertions, 75 deletions
diff --git a/asm/vs_seeker.s b/asm/vs_seeker.s
index 21b9763ec..9ae4c3153 100644
--- a/asm/vs_seeker.s
+++ b/asm/vs_seeker.s
@@ -5,81 +5,6 @@
.text
- thumb_func_start sub_810D280
-sub_810D280: @ 810D280
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- lsls r1, 16
- lsrs r1, 16
- mov r8, r1
- movs r5, 0
- cmp r5, r6
- bge _0810D2F8
- ldr r7, _0810D2E0 @ =gUnknown_203ADB8
- movs r4, 0
-_0810D298:
- ldr r0, [r7]
- adds r0, r4
- bl sub_810D0FC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0810D2F0
- ldr r1, [r7]
- adds r0, r1, r4
- ldrh r0, [r0, 0x4]
- cmp r0, r8
- bne _0810D2F0
- movs r3, 0
- movs r2, 0x86
- lsls r2, 3
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r3, r0
- bge _0810D2EC
- ldr r0, _0810D2E0 @ =gUnknown_203ADB8
- ldr r1, [r0]
- adds r0, r1, r4
- ldrh r4, [r0, 0x4]
- movs r0, 0x80
- lsls r0, 3
- adds r2, r1, r0
- adds r0, 0x30
- adds r1, r0
- ldrb r1, [r1]
-_0810D2D4:
- ldrh r0, [r2]
- cmp r0, r4
- bne _0810D2E4
- movs r0, 0x2
- b _0810D2FA
- .align 2, 0
-_0810D2E0: .4byte gUnknown_203ADB8
-_0810D2E4:
- adds r2, 0x2
- adds r3, 0x1
- cmp r3, r1
- blt _0810D2D4
-_0810D2EC:
- movs r0, 0x1
- b _0810D2FA
-_0810D2F0:
- adds r4, 0x10
- adds r5, 0x1
- cmp r5, r6
- blt _0810D298
-_0810D2F8:
- movs r0, 0
-_0810D2FA:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_810D280
-
thumb_func_start sub_810D304
sub_810D304: @ 810D304
push {r4-r7,lr}
diff --git a/src/vs_seeker.c b/src/vs_seeker.c
index 6a62bf5bf..30a777c19 100644
--- a/src/vs_seeker.c
+++ b/src/vs_seeker.c
@@ -1050,3 +1050,23 @@ void sub_810D24C(struct VsSeekerSubstruct * a0, const u8 * a1)
npc_sync_anim_pause_bits(&gUnknown_2036E38[a0->unk_7]);
ScriptMovement_StartObjectMovementScript(a0->unk_6, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, a1);
}
+
+u8 sub_810D280(int a0, u16 a1)
+{
+ int r5;
+ int r3;
+
+ for (r5 = 0; r5 < a0; r5++)
+ {
+ if (sub_810D0FC(&gUnknown_203ADB8->unk_000[r5]) == 1 && gUnknown_203ADB8->unk_000[r5].unk_4 == a1)
+ {
+ for (r3 = 0; r3 < gUnknown_203ADB8->unk_430; r3++)
+ {
+ if (gUnknown_203ADB8->unk_400[r3] == gUnknown_203ADB8->unk_000[r5].unk_4)
+ return 2;
+ }
+ return 1;
+ }
+ }
+ return 0;
+}