diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2019-04-05 17:39:38 -0400 |
---|---|---|
committer | huderlem <huderlem@gmail.com> | 2019-04-06 08:16:13 -0500 |
commit | 0ab30dbcd559fd5c53fc52166a46eff60d2a0e86 (patch) | |
tree | 7973b7eb74f0e3d18be839e08283760192ffca4f | |
parent | 5ad5b69050697a1acf2a9ab668475ae775014e00 (diff) |
sub_80F6250
-rw-r--r-- | asm/pokenav.s | 160 | ||||
-rw-r--r-- | src/pokenav.c | 50 |
2 files changed, 50 insertions, 160 deletions
diff --git a/asm/pokenav.s b/asm/pokenav.s index b78d462b1..67ec8f510 100644 --- a/asm/pokenav.s +++ b/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} diff --git a/src/pokenav.c b/src/pokenav.c index 0992cef90..e074b83e8 100644 --- a/src/pokenav.c +++ b/src/pokenav.c @@ -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; +} |