summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2019-04-05 13:53:41 -0400
committerhuderlem <huderlem@gmail.com>2019-04-06 08:16:13 -0500
commit9b78b1d88e2fea38fec4e12e7bfabd8b8dfd9904 (patch)
tree9d900e88dddfbf954d44d288de76e87019de2870
parent732fe126544143e468ac193c2a057c5ac6076767 (diff)
through sub_80F6010
-rw-r--r--asm/pokenav.s203
-rw-r--r--src/menu_specialized.c62
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;
+}
+