diff options
-rw-r--r-- | asm/pokenav.s | 419 | ||||
-rw-r--r-- | include/pokenav.h | 2 | ||||
-rw-r--r-- | ld_script.txt | 1 | ||||
-rw-r--r-- | src/pokenav.c | 334 |
4 files changed, 335 insertions, 421 deletions
diff --git a/asm/pokenav.s b/asm/pokenav.s deleted file mode 100644 index c1cc37229..000000000 --- a/asm/pokenav.s +++ /dev/null @@ -1,419 +0,0 @@ - .include "constants/gba_constants.inc" - .include "include/macros.inc" - - .syntax unified - - .text - - thumb_func_start sub_80F68E8 -sub_80F68E8: @ 80F68E8 - push {r4-r7,lr} - ldr r3, _080F6918 @ =gPokenavStructPtr - ldr r0, [r3] - ldr r2, _080F691C @ =0x0000bc90 - adds r1, r0, r2 - ldrb r5, [r1] - ldr r6, _080F6920 @ =0x0000bc91 - adds r0, r6 - ldrb r4, [r0] - movs r0, 0x1 - mov r12, r0 - ldr r2, _080F6924 @ =gMain - ldrh r1, [r2, 0x30] - movs r0, 0x40 - ands r0, r1 - adds r6, r3, 0 - adds r7, r2, 0 - cmp r0, 0 - beq _080F692E - lsls r0, r4, 24 - cmp r0, 0 - ble _080F692E - b _080F69BC - .align 2, 0 -_080F6918: .4byte gPokenavStructPtr -_080F691C: .4byte 0x0000bc90 -_080F6920: .4byte 0x0000bc91 -_080F6924: .4byte gMain -_080F6928: - ldr r1, _080F69B0 @ =0x0000bc91 - adds r0, r2, r1 - ldrb r4, [r0] -_080F692E: - ldrh r1, [r7, 0x30] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080F6978 - lsls r0, r4, 24 - asrs r0, 24 - cmp r0, 0x2 - bgt _080F6978 - ldr r3, _080F69B4 @ =gPokenavStructPtr - ldr r2, _080F69B8 @ =0x0000bc96 -_080F6944: - lsls r0, r4, 24 - asrs r0, 24 - cmp r0, 0x2 - bgt _080F6960 - adds r0, 0x1 - lsls r0, 24 - ldr r1, [r3] - lsrs r4, r0, 24 - asrs r0, 24 - adds r1, r2 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0 - beq _080F6944 -_080F6960: - ldr r2, [r6] - lsls r0, r4, 24 - asrs r0, 24 - ldr r3, _080F69B8 @ =0x0000bc96 - adds r1, r2, r3 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0 - bne _080F69EC - ldr r1, _080F69B0 @ =0x0000bc91 - adds r0, r2, r1 - ldrb r4, [r0] -_080F6978: - ldrh r2, [r7, 0x30] - movs r0, 0x20 - ands r0, r2 - cmp r0, 0 - beq _080F698A - lsls r0, r5, 24 - asrs r0, 24 - cmp r0, 0 - bgt _080F6A3C -_080F698A: - movs r0, 0x10 - ands r0, r2 - cmp r0, 0 - beq _080F69AA - lsls r0, r5, 24 - asrs r2, r0, 24 - ldr r1, [r6] - lsls r0, r4, 24 - asrs r0, 24 - ldr r3, _080F69B8 @ =0x0000bc96 - adds r1, r3 - adds r1, r0 - ldrb r0, [r1] - subs r0, 0x1 - cmp r2, r0 - blt _080F6A38 -_080F69AA: - movs r0, 0 - mov r12, r0 - b _080F69FC - .align 2, 0 -_080F69B0: .4byte 0x0000bc91 -_080F69B4: .4byte gPokenavStructPtr -_080F69B8: .4byte 0x0000bc96 -_080F69BC: - lsls r0, r4, 24 - asrs r0, 24 - cmp r0, 0 - ble _080F69DA - subs r0, 0x1 - lsls r0, 24 - ldr r1, [r6] - lsrs r4, r0, 24 - asrs r0, 24 - ldr r2, _080F6A2C @ =0x0000bc96 - adds r1, r2 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0 - beq _080F69BC -_080F69DA: - ldr r2, [r6] - lsls r0, r4, 24 - asrs r0, 24 - ldr r3, _080F6A2C @ =0x0000bc96 - adds r1, r2, r3 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0 - beq _080F6928 -_080F69EC: - lsls r0, r5, 24 - asrs r0, 24 - ldrb r1, [r1] - cmp r0, r1 - blt _080F69FC - subs r0, r1, 0x1 -_080F69F8: - lsls r0, 24 - lsrs r5, r0, 24 -_080F69FC: - mov r0, r12 - cmp r0, 0 - beq _080F6A44 - lsls r0, r5, 24 - asrs r0, 24 - ldr r3, [r6] - ldr r1, _080F6A30 @ =0x0000bc90 - adds r2, r3, r1 - ldrb r6, [r2] - cmp r0, r6 - bne _080F6A20 - lsls r0, r4, 24 - asrs r0, 24 - ldr r6, _080F6A34 @ =0x0000bc91 - adds r1, r3, r6 - ldrb r1, [r1] - cmp r0, r1 - beq _080F6A40 -_080F6A20: - strb r5, [r2] - ldr r1, _080F6A34 @ =0x0000bc91 - adds r0, r3, r1 - strb r4, [r0] - b _080F6A44 - .align 2, 0 -_080F6A2C: .4byte 0x0000bc96 -_080F6A30: .4byte 0x0000bc90 -_080F6A34: .4byte 0x0000bc91 -_080F6A38: - adds r0, r2, 0x1 - b _080F69F8 -_080F6A3C: - subs r0, 0x1 - b _080F69F8 -_080F6A40: - movs r2, 0 - mov r12, r2 -_080F6A44: - mov r0, r12 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80F68E8 - - thumb_func_start sub_80F6A4C -sub_80F6A4C: @ 80F6A4C - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - adds r4, r0, 0 - ldr r0, _080F6AC4 @ =gPokenavStructPtr - ldr r3, [r0] - ldr r0, _080F6AC8 @ =0x0000876e - adds r2, r3, r0 - lsls r0, r4, 24 - asrs r0, 24 - ldrh r1, [r2] - adds r0, r1 - strh r0, [r2] - lsls r0, 16 - cmp r0, 0 - bge _080F6A74 - ldr r5, _080F6ACC @ =0x00008774 - adds r0, r3, r5 - ldrh r0, [r0] - strh r0, [r2] -_080F6A74: - ldr r1, _080F6ACC @ =0x00008774 - adds r0, r3, r1 - movs r5, 0 - ldrsh r1, [r2, r5] - movs r5, 0 - ldrsh r0, [r0, r5] - cmp r1, r0 - ble _080F6A88 - movs r0, 0 - strh r0, [r2] -_080F6A88: - ldr r1, _080F6AD0 @ =0x0000bc94 - adds r0, r3, r1 - strb r4, [r0] - ldrh r1, [r2] - ldr r2, _080F6AD4 @ =0x000087dc - adds r0, r3, r2 - strh r1, [r0] - ldr r1, _080F6AD8 @ =REG_WININ - ldr r5, _080F6ADC @ =0x00003f37 - adds r0, r5, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r2, _080F6AE0 @ =0x00003f3f - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0xA - ldr r5, _080F6AE4 @ =0x000058f0 - adds r0, r5, 0 - strh r0, [r1] - adds r1, 0x4 - ldr r2, _080F6AE8 @ =0x00002060 - adds r0, r2, 0 - strh r0, [r1] - ldr r5, _080F6AEC @ =0x000087de - adds r1, r3, r5 - movs r0, 0 - strb r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F6AC4: .4byte gPokenavStructPtr -_080F6AC8: .4byte 0x0000876e -_080F6ACC: .4byte 0x00008774 -_080F6AD0: .4byte 0x0000bc94 -_080F6AD4: .4byte 0x000087dc -_080F6AD8: .4byte REG_WININ -_080F6ADC: .4byte 0x00003f37 -_080F6AE0: .4byte 0x00003f3f -_080F6AE4: .4byte 0x000058f0 -_080F6AE8: .4byte 0x00002060 -_080F6AEC: .4byte 0x000087de - thumb_func_end sub_80F6A4C - - thumb_func_start sub_80F6AF0 -sub_80F6AF0: @ 80F6AF0 - push {r4,lr} - ldr r1, _080F6B10 @ =gPokenavStructPtr - ldr r0, [r1] - ldr r2, _080F6B14 @ =0x000087de - adds r0, r2 - ldrb r0, [r0] - adds r4, r1, 0 - cmp r0, 0x6 - bls _080F6B04 - b _080F6C08 -_080F6B04: - lsls r0, 2 - ldr r1, _080F6B18 @ =_080F6B1C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F6B10: .4byte gPokenavStructPtr -_080F6B14: .4byte 0x000087de -_080F6B18: .4byte _080F6B1C - .align 2, 0 -_080F6B1C: - .4byte _080F6B38 - .4byte _080F6B54 - .4byte _080F6B6E - .4byte _080F6B84 - .4byte _080F6B9C - .4byte _080F6BC0 - .4byte _080F6BE0 -_080F6B38: - bl sub_80F173C - lsls r0, 24 - cmp r0, 0 - bne _080F6C18 - ldr r0, _080F6B4C @ =gPokenavStructPtr - ldr r1, [r0] - ldr r3, _080F6B50 @ =0x000087de - adds r1, r3 - b _080F6BCE - .align 2, 0 -_080F6B4C: .4byte gPokenavStructPtr -_080F6B50: .4byte 0x000087de -_080F6B54: - movs r2, 0x80 - lsls r2, 19 - ldrh r0, [r2] - movs r3, 0x80 - lsls r3, 6 - adds r1, r3, 0 - orrs r0, r1 - strh r0, [r2] - bl sub_80F1480 - bl sub_80F66E0 - b _080F6BC6 -_080F6B6E: - bl DrawMonRibbonIcons - ldr r0, _080F6B7C @ =gPokenavStructPtr - ldr r1, [r0] - ldr r2, _080F6B80 @ =0x000087de - adds r1, r2 - b _080F6BCE - .align 2, 0 -_080F6B7C: .4byte gPokenavStructPtr -_080F6B80: .4byte 0x000087de -_080F6B84: - bl sub_80F13FC - ldr r0, _080F6B94 @ =gPokenavStructPtr - ldr r1, [r0] - ldr r3, _080F6B98 @ =0x000087de - adds r1, r3 - b _080F6BCE - .align 2, 0 -_080F6B94: .4byte gPokenavStructPtr -_080F6B98: .4byte 0x000087de -_080F6B9C: - ldr r4, [r4] - ldr r1, _080F6BB8 @ =0x0000876e - adds r0, r4, r1 - movs r2, 0 - ldrsh r0, [r0, r2] - movs r1, 0 - bl sub_80F4824 - ldr r3, _080F6BBC @ =0x000087de - adds r4, r3 - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - b _080F6C18 - .align 2, 0 -_080F6BB8: .4byte 0x0000876e -_080F6BBC: .4byte 0x000087de -_080F6BC0: - movs r0, 0 - bl sub_80F2E18 -_080F6BC6: - ldr r0, _080F6BD8 @ =gPokenavStructPtr - ldr r1, [r0] - ldr r0, _080F6BDC @ =0x000087de - adds r1, r0 -_080F6BCE: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _080F6C18 - .align 2, 0 -_080F6BD8: .4byte gPokenavStructPtr -_080F6BDC: .4byte 0x000087de -_080F6BE0: - bl sub_80F170C - lsls r0, 24 - cmp r0, 0 - bne _080F6C18 - bl sub_80F1438 - movs r2, 0x80 - lsls r2, 19 - ldrh r1, [r2] - ldr r0, _080F6C0C @ =0x0000dfff - ands r0, r1 - strh r0, [r2] - ldr r0, _080F6C10 @ =gPokenavStructPtr - ldr r1, [r0] - ldr r2, _080F6C14 @ =0x000087de - adds r1, r2 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_080F6C08: - movs r0, 0 - b _080F6C1A - .align 2, 0 -_080F6C0C: .4byte 0x0000dfff -_080F6C10: .4byte gPokenavStructPtr -_080F6C14: .4byte 0x000087de -_080F6C18: - movs r0, 0x1 -_080F6C1A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80F6AF0 - - .align 2, 0 @ Don't pad with nop. diff --git a/include/pokenav.h b/include/pokenav.h index 49ca7cb7a..654911593 100644 --- a/include/pokenav.h +++ b/include/pokenav.h @@ -434,7 +434,7 @@ bool8 sub_80F70FC(); void sub_80F708C(s8); void sub_80F6F10(); void sub_80F15A8(void); -void sub_80F6A4C(); +void sub_80F6A4C(s8); bool8 sub_80F6AF0(); u8 sub_80F68E8(); void sub_80F66E0(); diff --git a/ld_script.txt b/ld_script.txt index 01a273d26..9bed253db 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -296,7 +296,6 @@ SECTIONS { src/easy_chat_2.o(.text); src/pokenav_before.o(.text); src/pokenav.o(.text); - asm/pokenav.o(.text); src/trainers_eye.o(.text); src/mon_markings.o(.text); src/mauville_man.o(.text); diff --git a/src/pokenav.c b/src/pokenav.c index 229e0a948..4f8aba7a0 100644 --- a/src/pokenav.c +++ b/src/pokenav.c @@ -6146,3 +6146,337 @@ void sub_80F66E0(void) } gPokenavStructPtr->unkBC96[i] = gPokenavStructPtr->unkBC8F; } + +// FIXME: wtf is this control flow +#ifdef NONMATCHING +u8 sub_80F68E8(void) +{ + s8 r5 = gPokenavStructPtr->unkBC90; + s8 r4 = gPokenavStructPtr->unkBC91; + u8 r12 = 1; + if (({gMain.newAndRepeatedKeys & DPAD_UP;}) && r4 > 0) + { + while (r4 > 0) + { + r4--; + if (gPokenavStructPtr->unkBC96[r4] != 0) + { + break; + } + } + if (gPokenavStructPtr->unkBC96[r4] != 0) + { + goto check_r5; + } + r4 = gPokenavStructPtr->unkBC91; + } + if (({gMain.newAndRepeatedKeys & DPAD_DOWN;}) && r4 < 3) + { + while (r4 < 3) + { + r4++; + if (gPokenavStructPtr->unkBC96[r4] != 0) + { + break; + } + } + if (gPokenavStructPtr->unkBC96[r4] != 0) + { + goto check_r5; + } + r4 = gPokenavStructPtr->unkBC91; + } + if (({gMain.newAndRepeatedKeys & DPAD_LEFT;}) && r5 > 0) + { + r5--; + } + else if (({gMain.newAndRepeatedKeys & DPAD_RIGHT;}) && r5 < gPokenavStructPtr->unkBC96[r4] - 1) + { + r5++; + } + else + { + r12 = 0; + } + goto end; + + check_r5: + if (r5 >= gPokenavStructPtr->unkBC96[r4]) + { + r5--; + } + end: + if (r12) + { + if (r5 != gPokenavStructPtr->unkBC90 || r4 != gPokenavStructPtr->unkBC91) + { + gPokenavStructPtr->unkBC90 = r5; + gPokenavStructPtr->unkBC91 = r4; + } + else + { + r12 = 0; + } + } + return r12; +} +#else +NAKED +bool8 sub_80F68E8(void) +{ + asm_unified("\tpush {r4-r7,lr}\n" + "\tldr r3, _080F6918 @ =gPokenavStructPtr\n" + "\tldr r0, [r3]\n" + "\tldr r2, _080F691C @ =0x0000bc90\n" + "\tadds r1, r0, r2\n" + "\tldrb r5, [r1]\n" + "\tldr r6, _080F6920 @ =0x0000bc91\n" + "\tadds r0, r6\n" + "\tldrb r4, [r0]\n" + "\tmovs r0, 0x1\n" + "\tmov r12, r0\n" + "\tldr r2, _080F6924 @ =gMain\n" + "\tldrh r1, [r2, 0x30]\n" + "\tmovs r0, 0x40\n" + "\tands r0, r1\n" + "\tadds r6, r3, 0\n" + "\tadds r7, r2, 0\n" + "\tcmp r0, 0\n" + "\tbeq _080F692E\n" + "\tlsls r0, r4, 24\n" + "\tcmp r0, 0\n" + "\tble _080F692E\n" + "\tb _080F69BC\n" + "\t.align 2, 0\n" + "_080F6918: .4byte gPokenavStructPtr\n" + "_080F691C: .4byte 0x0000bc90\n" + "_080F6920: .4byte 0x0000bc91\n" + "_080F6924: .4byte gMain\n" + "_080F6928:\n" + "\tldr r1, _080F69B0 @ =0x0000bc91\n" + "\tadds r0, r2, r1\n" + "\tldrb r4, [r0]\n" + "_080F692E:\n" + "\tldrh r1, [r7, 0x30]\n" + "\tmovs r0, 0x80\n" + "\tands r0, r1\n" + "\tcmp r0, 0\n" + "\tbeq _080F6978\n" + "\tlsls r0, r4, 24\n" + "\tasrs r0, 24\n" + "\tcmp r0, 0x2\n" + "\tbgt _080F6978\n" + "\tldr r3, _080F69B4 @ =gPokenavStructPtr\n" + "\tldr r2, _080F69B8 @ =0x0000bc96\n" + "_080F6944:\n" + "\tlsls r0, r4, 24\n" + "\tasrs r0, 24\n" + "\tcmp r0, 0x2\n" + "\tbgt _080F6960\n" + "\tadds r0, 0x1\n" + "\tlsls r0, 24\n" + "\tldr r1, [r3]\n" + "\tlsrs r4, r0, 24\n" + "\tasrs r0, 24\n" + "\tadds r1, r2\n" + "\tadds r1, r0\n" + "\tldrb r0, [r1]\n" + "\tcmp r0, 0\n" + "\tbeq _080F6944\n" + "_080F6960:\n" + "\tldr r2, [r6]\n" + "\tlsls r0, r4, 24\n" + "\tasrs r0, 24\n" + "\tldr r3, _080F69B8 @ =0x0000bc96\n" + "\tadds r1, r2, r3\n" + "\tadds r1, r0\n" + "\tldrb r0, [r1]\n" + "\tcmp r0, 0\n" + "\tbne _080F69EC\n" + "\tldr r1, _080F69B0 @ =0x0000bc91\n" + "\tadds r0, r2, r1\n" + "\tldrb r4, [r0]\n" + "_080F6978:\n" + "\tldrh r2, [r7, 0x30]\n" + "\tmovs r0, 0x20\n" + "\tands r0, r2\n" + "\tcmp r0, 0\n" + "\tbeq _080F698A\n" + "\tlsls r0, r5, 24\n" + "\tasrs r0, 24\n" + "\tcmp r0, 0\n" + "\tbgt _080F6A3C\n" + "_080F698A:\n" + "\tmovs r0, 0x10\n" + "\tands r0, r2\n" + "\tcmp r0, 0\n" + "\tbeq _080F69AA\n" + "\tlsls r0, r5, 24\n" + "\tasrs r2, r0, 24\n" + "\tldr r1, [r6]\n" + "\tlsls r0, r4, 24\n" + "\tasrs r0, 24\n" + "\tldr r3, _080F69B8 @ =0x0000bc96\n" + "\tadds r1, r3\n" + "\tadds r1, r0\n" + "\tldrb r0, [r1]\n" + "\tsubs r0, 0x1\n" + "\tcmp r2, r0\n" + "\tblt _080F6A38\n" + "_080F69AA:\n" + "\tmovs r0, 0\n" + "\tmov r12, r0\n" + "\tb _080F69FC\n" + "\t.align 2, 0\n" + "_080F69B0: .4byte 0x0000bc91\n" + "_080F69B4: .4byte gPokenavStructPtr\n" + "_080F69B8: .4byte 0x0000bc96\n" + "_080F69BC:\n" + "\tlsls r0, r4, 24\n" + "\tasrs r0, 24\n" + "\tcmp r0, 0\n" + "\tble _080F69DA\n" + "\tsubs r0, 0x1\n" + "\tlsls r0, 24\n" + "\tldr r1, [r6]\n" + "\tlsrs r4, r0, 24\n" + "\tasrs r0, 24\n" + "\tldr r2, _080F6A2C @ =0x0000bc96\n" + "\tadds r1, r2\n" + "\tadds r1, r0\n" + "\tldrb r0, [r1]\n" + "\tcmp r0, 0\n" + "\tbeq _080F69BC\n" + "_080F69DA:\n" + "\tldr r2, [r6]\n" + "\tlsls r0, r4, 24\n" + "\tasrs r0, 24\n" + "\tldr r3, _080F6A2C @ =0x0000bc96\n" + "\tadds r1, r2, r3\n" + "\tadds r1, r0\n" + "\tldrb r0, [r1]\n" + "\tcmp r0, 0\n" + "\tbeq _080F6928\n" + "_080F69EC:\n" + "\tlsls r0, r5, 24\n" + "\tasrs r0, 24\n" + "\tldrb r1, [r1]\n" + "\tcmp r0, r1\n" + "\tblt _080F69FC\n" + "\tsubs r0, r1, 0x1\n" + "_080F69F8:\n" + "\tlsls r0, 24\n" + "\tlsrs r5, r0, 24\n" + "_080F69FC:\n" + "\tmov r0, r12\n" + "\tcmp r0, 0\n" + "\tbeq _080F6A44\n" + "\tlsls r0, r5, 24\n" + "\tasrs r0, 24\n" + "\tldr r3, [r6]\n" + "\tldr r1, _080F6A30 @ =0x0000bc90\n" + "\tadds r2, r3, r1\n" + "\tldrb r6, [r2]\n" + "\tcmp r0, r6\n" + "\tbne _080F6A20\n" + "\tlsls r0, r4, 24\n" + "\tasrs r0, 24\n" + "\tldr r6, _080F6A34 @ =0x0000bc91\n" + "\tadds r1, r3, r6\n" + "\tldrb r1, [r1]\n" + "\tcmp r0, r1\n" + "\tbeq _080F6A40\n" + "_080F6A20:\n" + "\tstrb r5, [r2]\n" + "\tldr r1, _080F6A34 @ =0x0000bc91\n" + "\tadds r0, r3, r1\n" + "\tstrb r4, [r0]\n" + "\tb _080F6A44\n" + "\t.align 2, 0\n" + "_080F6A2C: .4byte 0x0000bc96\n" + "_080F6A30: .4byte 0x0000bc90\n" + "_080F6A34: .4byte 0x0000bc91\n" + "_080F6A38:\n" + "\tadds r0, r2, 0x1\n" + "\tb _080F69F8\n" + "_080F6A3C:\n" + "\tsubs r0, 0x1\n" + "\tb _080F69F8\n" + "_080F6A40:\n" + "\tmovs r2, 0\n" + "\tmov r12, r2\n" + "_080F6A44:\n" + "\tmov r0, r12\n" + "\tpop {r4-r7}\n" + "\tpop {r1}\n" + "\tbx r1"); +} +#endif //NONMATCHING + +void sub_80F6A4C(s8 a0) +{ + gPokenavStructPtr->unk876E += a0; + if (gPokenavStructPtr->unk876E < 0) + { + gPokenavStructPtr->unk876E = gPokenavStructPtr->unk8774; + } + if (gPokenavStructPtr->unk876E > gPokenavStructPtr->unk8774) + { + gPokenavStructPtr->unk876E = 0; + } + gPokenavStructPtr->unkBC94 = a0; + gPokenavStructPtr->unk87DC = gPokenavStructPtr->unk876E; + REG_WININ = 0x3F37; + REG_WINOUT = 0x3F3F; + REG_WIN0H = 0x58F0; + REG_WIN0V = 0x2060; + gPokenavStructPtr->unk87DE = 0; +} + +bool8 sub_80F6AF0(void) +{ + switch (gPokenavStructPtr->unk87DE) + { + case 0: + if (!sub_80F173C()) + { + gPokenavStructPtr->unk87DE++; + } + break; + case 1: + REG_DISPCNT |= DISPCNT_WIN0_ON; + sub_80F1480(); + sub_80F66E0(); + gPokenavStructPtr->unk87DE++; + break; + case 2: + DrawMonRibbonIcons(); + gPokenavStructPtr->unk87DE++; + break; + case 3: + sub_80F13FC(); + gPokenavStructPtr->unk87DE++; + break; + case 4: + sub_80F4824(gPokenavStructPtr->unk876E, 0); + gPokenavStructPtr->unk87DE++; + break; + case 5: + sub_80F2E18(0); + gPokenavStructPtr->unk87DE++; + break; + case 6: + if (!sub_80F170C()) + { + sub_80F1438(); + REG_DISPCNT &= ~DISPCNT_WIN0_ON; + gPokenavStructPtr->unk87DE++; + return FALSE; + } + break; + default: + return FALSE; + } + + return TRUE; +} |