sub_810D304
This commit is contained in:
-121
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user