mirror of
https://github.com/pret/pokeruby.git
synced 2026-10-02 14:58:31 -05:00
sub_80F6250
This commit is contained in:
160
asm/pokenav.s
160
asm/pokenav.s
@@ -5,166 +5,6 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_80F6250
|
||||
sub_80F6250: @ 80F6250
|
||||
push {r4-r7,lr}
|
||||
mov r7, r9
|
||||
mov r6, r8
|
||||
push {r6,r7}
|
||||
ldr r0, _080F6270 @ =gPokenavStructPtr
|
||||
ldr r2, [r0]
|
||||
ldr r0, _080F6274 @ =0x00008fe8
|
||||
adds r3, r2, r0
|
||||
movs r1, 0
|
||||
ldrsb r1, [r3, r1]
|
||||
movs r0, 0x1
|
||||
negs r0, r0
|
||||
cmp r1, r0
|
||||
beq _080F6278
|
||||
_080F626C:
|
||||
movs r0, 0
|
||||
b _080F637E
|
||||
.align 2, 0
|
||||
_080F6270: .4byte gPokenavStructPtr
|
||||
_080F6274: .4byte 0x00008fe8
|
||||
_080F6278:
|
||||
ldr r1, _080F630C @ =0x00008fe6
|
||||
adds r0, r2, r1
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0x7
|
||||
beq _080F631C
|
||||
cmp r0, 0x8
|
||||
beq _080F626C
|
||||
movs r6, 0
|
||||
adds r7, r2, 0
|
||||
adds r5, r7, r1
|
||||
ldr r0, _080F6310 @ =0x00008fe7
|
||||
adds r4, r7, r0
|
||||
ldr r1, _080F6314 @ =gPokemonStorage + 0x4
|
||||
mov r8, r1
|
||||
ldr r0, _080F6318 @ =0x000041a0
|
||||
add r0, r8
|
||||
mov r9, r0
|
||||
_080F629A:
|
||||
ldrb r0, [r5]
|
||||
lsls r1, r0, 2
|
||||
adds r1, r0
|
||||
lsls r0, r1, 4
|
||||
subs r0, r1
|
||||
lsls r0, 5
|
||||
ldrb r2, [r4]
|
||||
lsls r1, r2, 2
|
||||
adds r1, r2
|
||||
lsls r1, 4
|
||||
add r1, r8
|
||||
adds r0, r1
|
||||
movs r1, 0x51
|
||||
bl GetBoxMonData
|
||||
cmp r0, 0
|
||||
bne _080F636C
|
||||
ldrb r0, [r5]
|
||||
lsls r1, r0, 2
|
||||
adds r1, r0
|
||||
lsls r0, r1, 4
|
||||
subs r0, r1
|
||||
lsls r0, 5
|
||||
ldrb r2, [r4]
|
||||
lsls r1, r2, 2
|
||||
adds r1, r2
|
||||
lsls r1, 4
|
||||
add r1, r9
|
||||
adds r0, r1
|
||||
movs r1, 0x51
|
||||
bl GetBoxMonData
|
||||
adds r1, r0, 0
|
||||
cmp r1, 0
|
||||
bne _080F636C
|
||||
ldrb r0, [r4]
|
||||
adds r0, 0x1
|
||||
strb r0, [r4]
|
||||
movs r2, 0xFF
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1D
|
||||
bls _080F62FE
|
||||
strb r1, [r4]
|
||||
ldrb r0, [r5]
|
||||
adds r0, 0x1
|
||||
strb r0, [r5]
|
||||
ands r0, r2
|
||||
cmp r0, 0x6
|
||||
bhi _080F637C
|
||||
_080F62FE:
|
||||
adds r0, r6, 0x1
|
||||
lsls r0, 16
|
||||
lsrs r6, r0, 16
|
||||
cmp r6, 0x9
|
||||
bls _080F629A
|
||||
b _080F637C
|
||||
.align 2, 0
|
||||
_080F630C: .4byte 0x00008fe6
|
||||
_080F6310: .4byte 0x00008fe7
|
||||
_080F6314: .4byte gPokemonStorage + 0x4
|
||||
_080F6318: .4byte 0x000041a0
|
||||
_080F631C:
|
||||
movs r0, 0
|
||||
strb r0, [r3]
|
||||
movs r6, 0
|
||||
b _080F632A
|
||||
_080F6324:
|
||||
adds r0, r6, 0x1
|
||||
lsls r0, 16
|
||||
lsrs r6, r0, 16
|
||||
_080F632A:
|
||||
cmp r6, 0x5
|
||||
bhi _080F634C
|
||||
movs r0, 0x64
|
||||
muls r0, r6
|
||||
ldr r1, _080F635C @ =gPlayerParty
|
||||
adds r0, r1
|
||||
movs r1, 0x51
|
||||
bl GetMonData
|
||||
cmp r0, 0
|
||||
beq _080F6324
|
||||
ldr r0, _080F6360 @ =gPokenavStructPtr
|
||||
ldr r0, [r0]
|
||||
ldr r1, _080F6364 @ =0x00008fe8
|
||||
adds r0, r1
|
||||
movs r1, 0x1
|
||||
strb r1, [r0]
|
||||
_080F634C:
|
||||
ldr r0, _080F6360 @ =gPokenavStructPtr
|
||||
ldr r1, [r0]
|
||||
ldr r0, _080F6368 @ =0x00008fe6
|
||||
adds r1, r0
|
||||
ldrb r0, [r1]
|
||||
adds r0, 0x1
|
||||
b _080F6372
|
||||
.align 2, 0
|
||||
_080F635C: .4byte gPlayerParty
|
||||
_080F6360: .4byte gPokenavStructPtr
|
||||
_080F6364: .4byte 0x00008fe8
|
||||
_080F6368: .4byte 0x00008fe6
|
||||
_080F636C:
|
||||
ldr r0, _080F6378 @ =0x00008fe8
|
||||
adds r1, r7, r0
|
||||
movs r0, 0x1
|
||||
_080F6372:
|
||||
strb r0, [r1]
|
||||
b _080F626C
|
||||
.align 2, 0
|
||||
_080F6378: .4byte 0x00008fe8
|
||||
_080F637C:
|
||||
movs r0, 0x1
|
||||
_080F637E:
|
||||
pop {r3,r4}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
pop {r4-r7}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_80F6250
|
||||
|
||||
thumb_func_start sub_80F638C
|
||||
sub_80F638C: @ 80F638C
|
||||
push {r4,lr}
|
||||
|
||||
@@ -5862,3 +5862,53 @@ void sub_80F6208(void)
|
||||
;
|
||||
}
|
||||
}
|
||||
|
||||
bool8 sub_80F6250(void)
|
||||
{
|
||||
u16 i;
|
||||
|
||||
if (gPokenavStructPtr->unk8FE8 != -1)
|
||||
return FALSE;
|
||||
|
||||
switch (gPokenavStructPtr->unk8FE6)
|
||||
{
|
||||
default:
|
||||
for (i = 0; i < 10; i++)
|
||||
{
|
||||
if (GetBoxMonData(&gPokemonStorage.boxes[gPokenavStructPtr->unk8FE6 + 0][gPokenavStructPtr->unk8FE7], MON_DATA_RIBBON_COUNT) != 0)
|
||||
{
|
||||
gPokenavStructPtr->unk8FE8 = 1;
|
||||
return FALSE;
|
||||
}
|
||||
if (GetBoxMonData(&gPokemonStorage.boxes[gPokenavStructPtr->unk8FE6 + 7][gPokenavStructPtr->unk8FE7], MON_DATA_RIBBON_COUNT) != 0)
|
||||
{
|
||||
gPokenavStructPtr->unk8FE8 = 1;
|
||||
return FALSE;
|
||||
}
|
||||
if (++gPokenavStructPtr->unk8FE7 >= 30)
|
||||
{
|
||||
gPokenavStructPtr->unk8FE7 = 0;
|
||||
if (++gPokenavStructPtr->unk8FE6 >= 7)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 8:
|
||||
return FALSE;
|
||||
case 7:
|
||||
gPokenavStructPtr->unk8FE8 = 0;
|
||||
for (i = 0; i < 6; i++)
|
||||
{
|
||||
if (GetMonData(&gPlayerParty[i], MON_DATA_RIBBON_COUNT) != 0)
|
||||
{
|
||||
gPokenavStructPtr->unk8FE8 = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
gPokenavStructPtr->unk8FE6++;
|
||||
return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user