summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2019-04-05 12:51:32 -0400
committerhuderlem <huderlem@gmail.com>2019-04-06 08:16:13 -0500
commit92c1318ec41e38d7abd26376063b6f77dead7d4f (patch)
treed75b3a4f99b08c01f0fc1e8f36625abe9c40b8c5
parent3783de2c4bc7a58ee53084490534f1aad91d33aa (diff)
sub_80F5A1C
-rw-r--r--asm/pokenav.s148
-rw-r--r--src/menu_specialized.c46
2 files changed, 45 insertions, 149 deletions
diff --git a/asm/pokenav.s b/asm/pokenav.s
index e73eb0222..89e9cd163 100644
--- a/asm/pokenav.s
+++ b/asm/pokenav.s
@@ -5,154 +5,6 @@
.text
- thumb_func_start sub_80F5A1C
-sub_80F5A1C: @ 80F5A1C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r5, r0, 0
- ldrh r0, [r5, 0x2]
- ldrh r1, [r5, 0x12]
- cmp r0, r1
- bcs _080F5A54
- adds r7, r0, 0
- ldr r0, _080F5A4C @ =gPokenavStructPtr
- ldr r0, [r0]
- ldr r2, _080F5A50 @ =0x00009238
- adds r0, r2
- adds r4, r5, 0
- adds r4, 0x10
- movs r1, 0
- str r1, [sp]
- adds r1, r5, 0
- adds r2, r4, 0
- movs r3, 0
- bl sub_80F5688
- b _080F5A70
- .align 2, 0
-_080F5A4C: .4byte gPokenavStructPtr
-_080F5A50: .4byte 0x00009238
-_080F5A54:
- ldrh r7, [r5, 0x12]
- ldr r0, _080F5B28 @ =gPokenavStructPtr
- ldr r0, [r0]
- ldr r4, _080F5B2C @ =0x00009238
- adds r0, r4
- adds r4, r5, 0
- adds r4, 0x10
- movs r1, 0
- str r1, [sp]
- adds r1, r4, 0
- adds r2, r5, 0
- movs r3, 0x1
- bl sub_80F5688
-_080F5A70:
- adds r1, r4, 0
- ldr r0, _080F5B28 @ =gPokenavStructPtr
- ldr r0, [r0]
- mov r8, r0
- ldr r4, _080F5B2C @ =0x00009238
- add r4, r8
- adds r2, r5, 0
- adds r2, 0xC
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- movs r3, 0
- bl sub_80F5688
- movs r2, 0x38
- cmp r2, r7
- bcs _080F5AB2
- adds r6, r4, 0
- movs r3, 0
- ldr r4, _080F5B30 @ =0x0000923a
- add r4, r8
-_080F5A9A:
- adds r0, r2, 0
- subs r0, 0x38
- lsls r0, 2
- adds r1, r6, r0
- strh r3, [r1]
- adds r0, r4, r0
- strh r3, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, r7
- bcc _080F5A9A
-_080F5AB2:
- ldrh r2, [r5, 0x2]
- ldr r0, _080F5B28 @ =gPokenavStructPtr
- ldr r3, [r0]
- ldr r4, _080F5B34 @ =0x00009340
- adds r1, r3, r4
- adds r6, r0, 0
- ldrh r0, [r1]
- cmp r2, r0
- bhi _080F5AE0
- ldr r4, _080F5B30 @ =0x0000923a
- adds r3, r4
- movs r4, 0x9B
-_080F5ACA:
- adds r0, r2, 0
- subs r0, 0x38
- lsls r0, 2
- adds r0, r3, r0
- strh r4, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- ldrh r0, [r1]
- cmp r2, r0
- bls _080F5ACA
-_080F5AE0:
- ldrh r0, [r5, 0xE]
- adds r1, r0, 0x1
- ldr r3, [r6]
- ldr r2, _080F5B34 @ =0x00009340
- adds r0, r3, r2
- ldrh r0, [r0]
- cmp r0, r1
- bge _080F5AF2
- adds r0, r1, 0
-_080F5AF2:
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x79
- bhi _080F5B1C
- ldr r4, _080F5B2C @ =0x00009238
- adds r5, r3, r4
- movs r4, 0
- ldr r0, _080F5B30 @ =0x0000923a
- adds r3, r0
-_080F5B04:
- adds r0, r2, 0
- subs r0, 0x38
- lsls r0, 2
- adds r1, r5, r0
- strh r4, [r1]
- adds r0, r3, r0
- strh r4, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x79
- bls _080F5B04
-_080F5B1C:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F5B28: .4byte gPokenavStructPtr
-_080F5B2C: .4byte 0x00009238
-_080F5B30: .4byte 0x0000923a
-_080F5B34: .4byte 0x00009340
- thumb_func_end sub_80F5A1C
-
thumb_func_start sub_80F5B38
sub_80F5B38: @ 80F5B38
ldr r0, _080F5B48 @ =gPokenavStructPtr
diff --git a/src/menu_specialized.c b/src/menu_specialized.c
index cef13b51d..c55a51763 100644
--- a/src/menu_specialized.c
+++ b/src/menu_specialized.c
@@ -365,10 +365,54 @@ void sub_80F58DC(struct UnkPokenav11 * a0)
gPokenavStructPtr->unk9130[i - 56][0] = 0;
gPokenavStructPtr->unk9130[i - 56][1] = 0;
}
-//
+
// for (i = 56; i < 122; i++)
// {
// if (gPokenavStructPtr->unk9130[i - 56][0] == 0 && gPokenavStructPtr->unk9130[i - 56][1] != 0)
// gPokenavStructPtr->unk9130[i - 56][0] = 155;
// }
}
+
+void sub_80F5A1C(struct UnkPokenav11 *arg0)
+{
+ u16 i, r6, varMax;
+
+ if (arg0[0].unk2 < arg0[4].unk2)
+ {
+ r6 = arg0[0].unk2;
+ sub_80F5688(gPokenavStructPtr->unk9238, &arg0[0], &arg0[4], 0, NULL);
+ }
+ else
+ {
+ r6 = arg0[4].unk2;
+ sub_80F5688(gPokenavStructPtr->unk9238, &arg0[4], &arg0[0], 1, NULL);
+ }
+
+ sub_80F5688(gPokenavStructPtr->unk9238, &arg0[4], &arg0[3], 0, NULL);
+
+ for (i = 56; i < r6; i++)
+ {
+ gPokenavStructPtr->unk9238[i - 56][0] = 0;
+ gPokenavStructPtr->unk9238[i - 56][1] = 0;
+ }
+
+ for (i = arg0[0].unk2; i <= gPokenavStructPtr->unk9340; i++)
+ gPokenavStructPtr->unk9238[i - 56][1] = 155;
+
+ varMax = max(gPokenavStructPtr->unk9340, arg0[3].unk2 + 1);
+ for (i = varMax; i < 122; i++)
+ {
+ gPokenavStructPtr->unk9238[i - 56][0] = 0;
+ gPokenavStructPtr->unk9238[i - 56][1] = 0;
+ }
+
+// for (i = 0; i < 66; i++)
+// {
+// if (gPokenavStructPtr->unk9238[i][0] >= gPokenavStructPtr->unk9238[i][1])
+// {
+// gPokenavStructPtr->unk9238[i][1] = 0;
+// gPokenavStructPtr->unk9238[i][0] = 0;
+// }
+// }
+}
+