diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2019-04-05 12:51:32 -0400 |
---|---|---|
committer | huderlem <huderlem@gmail.com> | 2019-04-06 08:16:13 -0500 |
commit | 92c1318ec41e38d7abd26376063b6f77dead7d4f (patch) | |
tree | d75b3a4f99b08c01f0fc1e8f36625abe9c40b8c5 | |
parent | 3783de2c4bc7a58ee53084490534f1aad91d33aa (diff) |
sub_80F5A1C
-rw-r--r-- | asm/pokenav.s | 148 | ||||
-rw-r--r-- | src/menu_specialized.c | 46 |
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; +// } +// } +} + |