diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2019-04-05 13:53:41 -0400 |
---|---|---|
committer | huderlem <huderlem@gmail.com> | 2019-04-06 08:16:13 -0500 |
commit | 9b78b1d88e2fea38fec4e12e7bfabd8b8dfd9904 (patch) | |
tree | 9d900e88dddfbf954d44d288de76e87019de2870 | |
parent | 732fe126544143e468ac193c2a057c5ac6076767 (diff) |
through sub_80F6010
-rw-r--r-- | asm/pokenav.s | 203 | ||||
-rw-r--r-- | src/menu_specialized.c | 62 |
2 files changed, 62 insertions, 203 deletions
diff --git a/asm/pokenav.s b/asm/pokenav.s index 087e6f4d2..1847337f2 100644 --- a/asm/pokenav.s +++ b/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} diff --git a/src/menu_specialized.c b/src/menu_specialized.c index cd80f1603..d92648ff0 100644 --- a/src/menu_specialized.c +++ b/src/menu_specialized.c @@ -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; +} + |