mirror of
https://github.com/pret/pokeruby.git
synced 2026-10-02 06:48:23 -05:00
through sub_80F6010
This commit is contained in:
203
asm/pokenav.s
203
asm/pokenav.s
@@ -5,209 +5,6 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_80F5EE4
|
||||
sub_80F5EE4: @ 80F5EE4
|
||||
push {r4-r6,lr}
|
||||
ldr r3, _080F5F04 @ =gPokenavStructPtr
|
||||
ldr r4, [r3]
|
||||
ldr r1, _080F5F08 @ =0x0000876e
|
||||
adds r0, r4, r1
|
||||
ldr r2, _080F5F0C @ =0x00008774
|
||||
adds r1, r4, r2
|
||||
movs r5, 0
|
||||
ldrsh r2, [r0, r5]
|
||||
movs r6, 0
|
||||
ldrsh r0, [r1, r6]
|
||||
adds r5, r3, 0
|
||||
cmp r2, r0
|
||||
bne _080F5F10
|
||||
movs r0, 0
|
||||
b _080F5F98
|
||||
.align 2, 0
|
||||
_080F5F04: .4byte gPokenavStructPtr
|
||||
_080F5F08: .4byte 0x0000876e
|
||||
_080F5F0C: .4byte 0x00008774
|
||||
_080F5F10:
|
||||
ldr r1, _080F5F38 @ =0x000087c9
|
||||
adds r0, r4, r1
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
beq _080F5F40
|
||||
ldr r2, _080F5F3C @ =0x0000876c
|
||||
adds r0, r4, r2
|
||||
movs r3, 0
|
||||
ldrsh r0, [r0, r3]
|
||||
cmp r0, 0x7
|
||||
bne _080F5F40
|
||||
movs r0, 0x1
|
||||
bl sub_80F063C
|
||||
movs r0, 0x1
|
||||
bl sub_80F6074
|
||||
movs r0, 0x2
|
||||
b _080F5F98
|
||||
.align 2, 0
|
||||
_080F5F38: .4byte 0x000087c9
|
||||
_080F5F3C: .4byte 0x0000876c
|
||||
_080F5F40:
|
||||
ldr r2, [r5]
|
||||
ldr r6, _080F5FA0 @ =0x0000876c
|
||||
adds r4, r2, r6
|
||||
ldrh r0, [r4]
|
||||
adds r1, r0, 0x1
|
||||
strh r1, [r4]
|
||||
ldr r3, _080F5FA4 @ =0x000087c9
|
||||
adds r0, r2, r3
|
||||
ldrb r3, [r0]
|
||||
cmp r3, 0
|
||||
bne _080F5F68
|
||||
adds r6, 0x6
|
||||
adds r0, r2, r6
|
||||
lsls r1, 16
|
||||
asrs r1, 16
|
||||
movs r2, 0
|
||||
ldrsh r0, [r0, r2]
|
||||
cmp r1, r0
|
||||
ble _080F5F68
|
||||
strh r3, [r4]
|
||||
_080F5F68:
|
||||
ldr r0, [r5]
|
||||
ldr r3, _080F5FA8 @ =0x00008770
|
||||
adds r2, r0, r3
|
||||
ldr r5, _080F5FA0 @ =0x0000876c
|
||||
adds r1, r0, r5
|
||||
ldrh r1, [r1]
|
||||
ldrh r2, [r2]
|
||||
adds r2, r1, r2
|
||||
ldr r6, _080F5FAC @ =0x0000876e
|
||||
adds r4, r0, r6
|
||||
strh r2, [r4]
|
||||
ldr r1, _080F5FB0 @ =0x00008774
|
||||
adds r0, r1
|
||||
lsls r1, r2, 16
|
||||
asrs r1, 16
|
||||
ldrh r3, [r0]
|
||||
movs r5, 0
|
||||
ldrsh r0, [r0, r5]
|
||||
cmp r1, r0
|
||||
ble _080F5F96
|
||||
subs r0, r2, 0x1
|
||||
subs r0, r3
|
||||
strh r0, [r4]
|
||||
_080F5F96:
|
||||
movs r0, 0x1
|
||||
_080F5F98:
|
||||
pop {r4-r6}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_080F5FA0: .4byte 0x0000876c
|
||||
_080F5FA4: .4byte 0x000087c9
|
||||
_080F5FA8: .4byte 0x00008770
|
||||
_080F5FAC: .4byte 0x0000876e
|
||||
_080F5FB0: .4byte 0x00008774
|
||||
thumb_func_end sub_80F5EE4
|
||||
|
||||
thumb_func_start sub_80F5FB4
|
||||
sub_80F5FB4: @ 80F5FB4
|
||||
push {r4,lr}
|
||||
ldr r0, _080F5FD8 @ =gPokenavStructPtr
|
||||
ldr r1, [r0]
|
||||
ldr r2, _080F5FDC @ =0x00008770
|
||||
adds r0, r1, r2
|
||||
ldrh r3, [r0]
|
||||
movs r4, 0
|
||||
ldrsh r2, [r0, r4]
|
||||
cmp r2, 0
|
||||
beq _080F5FD2
|
||||
ldr r4, _080F5FE0 @ =0x000087c9
|
||||
adds r0, r1, r4
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
bne _080F5FE4
|
||||
_080F5FD2:
|
||||
movs r0, 0
|
||||
b _080F6004
|
||||
.align 2, 0
|
||||
_080F5FD8: .4byte gPokenavStructPtr
|
||||
_080F5FDC: .4byte 0x00008770
|
||||
_080F5FE0: .4byte 0x000087c9
|
||||
_080F5FE4:
|
||||
cmp r2, 0x7
|
||||
bgt _080F5FF0
|
||||
negs r0, r3
|
||||
lsls r0, 16
|
||||
lsrs r0, 16
|
||||
b _080F5FF2
|
||||
_080F5FF0:
|
||||
ldr r0, _080F600C @ =0x0000fff8
|
||||
_080F5FF2:
|
||||
lsls r4, r0, 16
|
||||
asrs r4, 16
|
||||
adds r0, r4, 0
|
||||
bl sub_80F063C
|
||||
adds r0, r4, 0
|
||||
bl sub_80F6074
|
||||
movs r0, 0x2
|
||||
_080F6004:
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_080F600C: .4byte 0x0000fff8
|
||||
thumb_func_end sub_80F5FB4
|
||||
|
||||
thumb_func_start sub_80F6010
|
||||
sub_80F6010: @ 80F6010
|
||||
push {r4-r6,lr}
|
||||
ldr r0, _080F603C @ =gPokenavStructPtr
|
||||
ldr r3, [r0]
|
||||
ldr r1, _080F6040 @ =0x00008772
|
||||
adds r0, r3, r1
|
||||
ldr r2, _080F6044 @ =0x00008774
|
||||
adds r1, r3, r2
|
||||
ldrh r5, [r0]
|
||||
movs r4, 0
|
||||
ldrsh r2, [r0, r4]
|
||||
ldrh r4, [r1]
|
||||
movs r6, 0
|
||||
ldrsh r0, [r1, r6]
|
||||
cmp r2, r0
|
||||
beq _080F6038
|
||||
ldr r1, _080F6048 @ =0x000087c9
|
||||
adds r0, r3, r1
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
bne _080F604C
|
||||
_080F6038:
|
||||
movs r0, 0
|
||||
b _080F606C
|
||||
.align 2, 0
|
||||
_080F603C: .4byte gPokenavStructPtr
|
||||
_080F6040: .4byte 0x00008772
|
||||
_080F6044: .4byte 0x00008774
|
||||
_080F6048: .4byte 0x000087c9
|
||||
_080F604C:
|
||||
subs r0, r4, r5
|
||||
lsls r0, 16
|
||||
lsrs r4, r0, 16
|
||||
asrs r0, 16
|
||||
cmp r0, 0x8
|
||||
ble _080F605A
|
||||
movs r4, 0x8
|
||||
_080F605A:
|
||||
lsls r4, 16
|
||||
asrs r4, 16
|
||||
adds r0, r4, 0
|
||||
bl sub_80F063C
|
||||
adds r0, r4, 0
|
||||
bl sub_80F6074
|
||||
movs r0, 0x2
|
||||
_080F606C:
|
||||
pop {r4-r6}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_80F6010
|
||||
|
||||
thumb_func_start sub_80F6074
|
||||
sub_80F6074: @ 80F6074
|
||||
push {r4-r7,lr}
|
||||
|
||||
@@ -547,3 +547,65 @@ u8 sub_80F5E20(void)
|
||||
return 1;
|
||||
}
|
||||
|
||||
u8 sub_80F5EE4(void)
|
||||
{
|
||||
if (gPokenavStructPtr->unk876E == gPokenavStructPtr->unk8774)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
if (gPokenavStructPtr->unk87C9 != 0 && gPokenavStructPtr->unk876C == 7)
|
||||
{
|
||||
sub_80F063C(1);
|
||||
sub_80F6074(1);
|
||||
return 2;
|
||||
}
|
||||
gPokenavStructPtr->unk876C++;
|
||||
if (gPokenavStructPtr->unk87C9 == 0 && gPokenavStructPtr->unk876C > gPokenavStructPtr->unk8772)
|
||||
{
|
||||
gPokenavStructPtr->unk876C = 0;
|
||||
}
|
||||
gPokenavStructPtr->unk876E = gPokenavStructPtr->unk8770 + gPokenavStructPtr->unk876C;
|
||||
if (gPokenavStructPtr->unk876E > gPokenavStructPtr->unk8774)
|
||||
{
|
||||
gPokenavStructPtr->unk876E -= gPokenavStructPtr->unk8774 + 1;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
u8 sub_80F5FB4(void)
|
||||
{
|
||||
s16 r4;
|
||||
if (gPokenavStructPtr->unk8770 == 0 || gPokenavStructPtr->unk87C9 == 0)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
if (gPokenavStructPtr->unk8770 < 8)
|
||||
{
|
||||
r4 = -gPokenavStructPtr->unk8770;
|
||||
}
|
||||
else
|
||||
{
|
||||
r4 = -8;
|
||||
}
|
||||
sub_80F063C(r4);
|
||||
sub_80F6074(r4);
|
||||
return 2;
|
||||
}
|
||||
|
||||
u8 sub_80F6010(void)
|
||||
{
|
||||
s16 r4;
|
||||
if (gPokenavStructPtr->unk8772 == gPokenavStructPtr->unk8774 || gPokenavStructPtr->unk87C9 == 0)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
r4 = gPokenavStructPtr->unk8774 - gPokenavStructPtr->unk8772;
|
||||
if (r4 > 8)
|
||||
{
|
||||
r4 = 8;
|
||||
}
|
||||
sub_80F063C(r4);
|
||||
sub_80F6074(r4);
|
||||
return 2;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user