diff options
author | scnorton <scnorton@biociphers.org> | 2017-07-20 15:21:32 -0400 |
---|---|---|
committer | scnorton <scnorton@biociphers.org> | 2017-07-20 15:21:32 -0400 |
commit | 3339df8b2fb8644bc57820a446e094d75afd3879 (patch) | |
tree | a1aa690bf3cadf038338fbdc72220e684cf466a0 | |
parent | 071a1ff58d550078427310f695113d8d44938f31 (diff) |
sub_80BC6B0
-rw-r--r-- | asm/secret_base.s | 149 | ||||
-rw-r--r-- | src/secret_base.c | 43 |
2 files changed, 43 insertions, 149 deletions
diff --git a/asm/secret_base.s b/asm/secret_base.s index e47516d57..817f2e4f8 100644 --- a/asm/secret_base.s +++ b/asm/secret_base.s @@ -6,155 +6,6 @@ .section .text_80BC1D0 - thumb_func_start sub_80BC6B0 -sub_80BC6B0: @ 80BC6B0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080BC6D8 @ =gTasks + 0x8 - adds r1, r0 - mov r8, r1 - movs r4, 0 - movs r6, 0 - movs r5, 0x1 - movs r2, 0x4 - ldrsh r0, [r1, r2] - cmp r6, r0 - bne _080BC6DC - movs r4, 0x1 - b _080BC706 - .align 2, 0 -_080BC6D8: .4byte gTasks + 0x8 -_080BC6DC: - adds r0, r5, 0 - bl sub_80BC268 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080BC6F0 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 -_080BC6F0: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x13 - bhi _080BC706 - mov r1, r8 - movs r2, 0x4 - ldrsh r0, [r1, r2] - cmp r4, r0 - bne _080BC6DC - adds r4, r5, 0 -_080BC706: - adds r5, r4, 0 - cmp r5, 0x13 - bhi _080BC75A - ldr r7, _080BC7A0 @ =gStringVar1 -_080BC70E: - adds r0, r5, 0 - bl sub_80BC268 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080BC750 - adds r0, r7, 0 - adds r1, r5, 0 - bl sub_80BC190 - lsls r3, r6, 1 - adds r4, r3, 0x2 - lsls r4, 24 - lsrs r4, 24 - adds r3, 0x3 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x12 - adds r1, r4, 0 - movs r2, 0x1C - bl MenuFillWindowRectWithBlankTile - adds r0, r7, 0 - movs r1, 0x12 - adds r2, r4, 0 - bl MenuPrint - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x8 - beq _080BC75A -_080BC750: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x13 - bls _080BC70E -_080BC75A: - cmp r6, 0x7 - bhi _080BC7A8 - lsls r3, r6, 1 - adds r4, r3, 0x2 - lsls r4, 24 - lsrs r4, 24 - adds r3, 0x3 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x12 - adds r1, r4, 0 - movs r2, 0x1C - bl MenuFillWindowRectWithBlankTile - ldr r0, _080BC7A4 @ =gUnknownText_Exit - movs r1, 0x12 - adds r2, r4, 0 - bl MenuPrint - movs r0, 0x1 - bl DestroyVerticalScrollIndicator - cmp r6, 0x7 - beq _080BC7B2 - lsls r1, r6, 25 - movs r0, 0x80 - lsls r0, 19 - adds r1, r0 - lsrs r1, 24 - movs r0, 0x12 - movs r2, 0x1C - movs r3, 0x12 - bl MenuFillWindowRectWithBlankTile - b _080BC7B2 - .align 2, 0 -_080BC7A0: .4byte gStringVar1 -_080BC7A4: .4byte gUnknownText_Exit -_080BC7A8: - movs r0, 0x1 - movs r1, 0xBC - movs r2, 0x98 - bl CreateVerticalScrollIndicators -_080BC7B2: - mov r1, r8 - movs r2, 0x4 - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _080BC7C4 - movs r0, 0 - bl DestroyVerticalScrollIndicator - b _080BC7CE -_080BC7C4: - movs r0, 0 - movs r1, 0xBC - movs r2, 0x8 - bl CreateVerticalScrollIndicators -_080BC7CE: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80BC6B0 - thumb_func_start sub_80BC7D8 sub_80BC7D8: @ 80BC7D8 push {r4,r5,lr} diff --git a/src/secret_base.c b/src/secret_base.c index bf98b0b4c..a4776719e 100644 --- a/src/secret_base.c +++ b/src/secret_base.c @@ -1187,3 +1187,46 @@ void Task_SecretBasePC_Registry(u8 taskId) "_080BC6AC: .4byte sub_80BCC54"); } #endif + +void sub_80BC6B0(u8 taskId) +{ + u8 i; + s16 *data = gTasks[taskId].data; + u8 m = 0; + u8 n = 0; + for (i=1; i<20; i++) + { + if (m == data[2]) + { + m = i; + break; + } + if (sub_80BC268(i) == TRUE) + m ++; + } + for (i=m; i<20; i++) + { + if (sub_80BC268(i) == TRUE) + { + sub_80BC190(gStringVar1, i); + MenuFillWindowRectWithBlankTile(18, 2 * n + 2, 28, 2 * n + 3); + MenuPrint(gStringVar1, 18, 2 * n + 2); + if (++n == 8) + break; + } + } + if (n < 8) + { + MenuFillWindowRectWithBlankTile(18, 2 * n + 2, 28, 2 * n + 3); + MenuPrint(gUnknownText_Exit, 18, 2 * n + 2); + DestroyVerticalScrollIndicator(1); + if (n != 7) + MenuFillWindowRectWithBlankTile(18, ((n << 25) + (1 << 26)) >> 24, 28, 18); // needed to match + } + else + CreateVerticalScrollIndicators(1, 0xbc, 0x98); + if (data[2] == 0) + DestroyVerticalScrollIndicator(0); + else + CreateVerticalScrollIndicators(0, 0xbc, 0x08); +} |