.include "constants/gba_constants.inc" .include "constants/species_constants.inc" .include "asm/macros.inc" .syntax unified .text thumb_func_start sub_80B5054 sub_80B5054: @ 80B5054 push {r4-r7,lr} sub sp, 0x8 lsls r0, 24 lsrs r7, r0, 24 lsls r1, 24 lsrs r6, r1, 24 lsls r2, 24 lsrs r4, r2, 24 lsls r3, 24 lsrs r5, r3, 24 ldr r0, _080B5098 @ =sub_80B52B4 bl FuncIsActiveTask lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080B50A4 ldr r1, _080B509C @ =gScriptResult movs r0, 0xFF strh r0, [r1] ldr r1, _080B50A0 @ =gMultichoiceLists lsls r0, r4, 3 adds r0, r1 ldrb r2, [r0, 0x4] ldr r3, [r0] str r5, [sp] movs r0, 0 str r0, [sp, 0x4] adds r0, r7, 0 adds r1, r6, 0 bl sub_80B5138 movs r0, 0x1 b _080B50A6 .align 2, 0 _080B5098: .4byte sub_80B52B4 _080B509C: .4byte gScriptResult _080B50A0: .4byte gMultichoiceLists _080B50A4: movs r0, 0 _080B50A6: add sp, 0x8 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80B5054 thumb_func_start sub_80B50B0 sub_80B50B0: @ 80B50B0 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 ldr r4, [sp, 0x20] lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r1, 24 lsrs r7, r1, 24 lsls r2, 24 lsrs r5, r2, 24 lsls r3, 24 lsrs r6, r3, 24 lsls r4, 24 lsrs r4, 24 ldr r0, _080B5100 @ =sub_80B52B4 bl FuncIsActiveTask lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080B510C ldr r1, _080B5104 @ =gScriptResult movs r0, 0xFF strh r0, [r1] ldr r1, _080B5108 @ =gMultichoiceLists lsls r0, r5, 3 adds r0, r1 ldrb r2, [r0, 0x4] ldr r3, [r0] str r6, [sp] str r4, [sp, 0x4] mov r0, r8 adds r1, r7, 0 bl sub_80B5138 movs r0, 0x1 b _080B510E .align 2, 0 _080B5100: .4byte sub_80B52B4 _080B5104: .4byte gScriptResult _080B5108: .4byte gMultichoiceLists _080B510C: movs r0, 0 _080B510E: add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80B50B0 thumb_func_start GetStringWidthInTilesForScriptMenu GetStringWidthInTilesForScriptMenu: @ 80B511C push {lr} adds r1, r0, 0 ldr r0, _080B5134 @ =gWindowConfig_81E6CE4 bl GetStringWidthGivenWindowConfig lsls r0, 24 lsrs r0, 24 adds r1, r0, 0x7 lsrs r0, r1, 3 pop {r1} bx r1 .align 2, 0 _080B5134: .4byte gWindowConfig_81E6CE4 thumb_func_end GetStringWidthInTilesForScriptMenu thumb_func_start sub_80B5138 sub_80B5138: @ 80B5138 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 mov r10, r3 ldr r3, [sp, 0x34] ldr r4, [sp, 0x38] lsls r0, 24 lsrs r0, 24 mov r9, r0 lsls r1, 24 lsrs r1, 24 str r1, [sp, 0x8] lsls r2, 24 lsrs r2, 24 mov r8, r2 lsls r3, 24 lsrs r3, 24 str r3, [sp, 0xC] lsls r4, 24 lsrs r4, 24 str r4, [sp, 0x10] mov r1, r10 ldr r0, [r1] bl GetStringWidthInTilesForScriptMenu lsls r0, 16 lsrs r5, r0, 16 movs r4, 0x1 cmp r4, r8 bcs _080B5198 _080B517A: lsls r0, r4, 3 add r0, r10 ldr r0, [r0] bl GetStringWidthInTilesForScriptMenu lsls r0, 16 lsrs r0, 16 cmp r5, r0 bcs _080B518E adds r5, r0, 0 _080B518E: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, r8 bcc _080B517A _080B5198: lsls r0, r5, 24 lsrs r7, r0, 24 mov r1, r9 adds r0, r7, r1 adds r0, 0x1 lsls r0, 24 lsrs r7, r0, 24 cmp r7, 0x1D bls _080B51B8 mov r0, r9 adds r0, 0x1D subs r0, r7 lsls r0, 24 lsrs r0, 24 mov r9, r0 movs r7, 0x1D _080B51B8: mov r1, r8 lsls r0, r1, 1 adds r0, 0x1 ldr r1, [sp, 0x8] lsls r4, r1, 24 asrs r4, 24 adds r4, r0 lsls r4, 24 lsrs r4, 24 mov r0, r9 adds r2, r7, 0 adds r3, r4, 0 bl MenuDrawTextWindow mov r6, r9 adds r6, 0x1 lsls r6, 24 lsrs r6, 24 ldr r5, [sp, 0x8] adds r5, 0x1 lsls r5, 24 lsrs r5, 24 adds r0, r6, 0 adds r1, r5, 0 mov r2, r8 mov r3, r10 bl PrintMenuItems ldr r0, [sp, 0x10] str r0, [sp] mov r1, r9 subs r0, r7, r1 subs r0, 0x1 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x4] movs r0, 0 adds r1, r6, 0 adds r2, r5, 0 mov r3, r8 bl InitMenu ldr r0, [sp, 0xC] str r0, [sp] mov r1, r8 str r1, [sp, 0x4] mov r0, r9 ldr r1, [sp, 0x8] adds r2, r7, 0 adds r3, r4, 0 bl sub_80B5230 add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80B5138 thumb_func_start sub_80B5230 sub_80B5230: @ 80B5230 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 adds r6, r2, 0 ldr r0, [sp, 0x1C] mov r8, r0 ldr r0, [sp, 0x20] mov r9, r0 lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 lsls r6, 24 lsrs r6, 24 lsls r3, 24 lsrs r3, 24 mov r0, r8 lsls r0, 24 lsrs r0, 24 mov r8, r0 mov r0, r9 lsls r0, 24 lsrs r0, 24 mov r9, r0 ldr r0, _080B5298 @ =sub_80B52B4 movs r1, 0x50 str r3, [sp] bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _080B529C @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 strh r4, [r1, 0x8] strh r5, [r1, 0xA] strh r6, [r1, 0xC] ldr r3, [sp] strh r3, [r1, 0xE] mov r0, r8 strh r0, [r1, 0x10] mov r0, r9 cmp r0, 0x3 bls _080B52A0 movs r0, 0x1 b _080B52A2 .align 2, 0 _080B5298: .4byte sub_80B52B4 _080B529C: .4byte gTasks _080B52A0: movs r0, 0 _080B52A2: strh r0, [r1, 0x12] add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80B5230 thumb_func_start sub_80B52B4 sub_80B52B4: @ 80B52B4 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080B52E0 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080B534E ldr r2, _080B52E4 @ =gTasks lsls r1, r4, 2 adds r0, r1, r4 lsls r0, 3 adds r0, r2 movs r2, 0x12 ldrsh r0, [r0, r2] adds r5, r1, 0 cmp r0, 0 bne _080B52E8 bl ProcessMenuInputNoWrap b _080B52EC .align 2, 0 _080B52E0: .4byte gPaletteFade _080B52E4: .4byte gTasks _080B52E8: bl ProcessMenuInput _080B52EC: lsls r0, 24 lsrs r0, 24 lsls r0, 24 asrs r1, r0, 24 movs r0, 0x2 negs r0, r0 cmp r1, r0 beq _080B534E adds r0, 0x1 cmp r1, r0 bne _080B5328 ldr r0, _080B5320 @ =gTasks adds r1, r5, r4 lsls r1, 3 adds r1, r0 movs r2, 0x10 ldrsh r0, [r1, r2] cmp r0, 0 bne _080B534E movs r0, 0x5 bl PlaySE ldr r1, _080B5324 @ =gScriptResult movs r0, 0x7F strh r0, [r1] b _080B532C .align 2, 0 _080B5320: .4byte gTasks _080B5324: .4byte gScriptResult _080B5328: ldr r0, _080B5354 @ =gScriptResult strh r1, [r0] _080B532C: bl sub_8072DEC ldr r0, _080B5358 @ =gTasks adds r3, r5, r4 lsls r3, 3 adds r3, r0 ldrb r0, [r3, 0x8] ldrb r1, [r3, 0xA] ldrb r2, [r3, 0xC] ldrb r3, [r3, 0xE] bl MenuZeroFillWindowRect adds r0, r4, 0 bl DestroyTask bl EnableBothScriptContexts _080B534E: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080B5354: .4byte gScriptResult _080B5358: .4byte gTasks thumb_func_end sub_80B52B4 thumb_func_start Multichoice Multichoice: @ 80B535C push {r4-r7,lr} sub sp, 0x4 lsls r0, 24 lsrs r7, r0, 24 lsls r1, 24 lsrs r6, r1, 24 lsls r2, 24 lsrs r4, r2, 24 lsls r3, 24 lsrs r5, r3, 24 ldr r0, _080B539C @ =sub_80B52B4 bl FuncIsActiveTask lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080B53A8 ldr r1, _080B53A0 @ =gScriptResult movs r0, 0xFF strh r0, [r1] ldr r1, _080B53A4 @ =gMultichoiceLists lsls r0, r4, 3 adds r0, r1 ldrb r2, [r0, 0x4] ldr r3, [r0] str r5, [sp] adds r0, r7, 0 adds r1, r6, 0 bl sub_80B53B4 movs r0, 0x1 b _080B53AA .align 2, 0 _080B539C: .4byte sub_80B52B4 _080B53A0: .4byte gScriptResult _080B53A4: .4byte gMultichoiceLists _080B53A8: movs r0, 0 _080B53AA: add sp, 0x4 pop {r4-r7} pop {r1} bx r1 thumb_func_end Multichoice thumb_func_start sub_80B53B4 sub_80B53B4: @ 80B53B4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 adds r7, r3, 0 ldr r3, [sp, 0x28] lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r1, 24 lsrs r1, 24 mov r9, r1 lsls r2, 24 lsrs r6, r2, 24 lsls r3, 24 lsrs r3, 24 mov r10, r3 ldr r0, [r7] bl GetStringWidthInTilesForScriptMenu lsls r0, 16 lsrs r4, r0, 16 movs r5, 0x1 cmp r5, r6 bcs _080B5408 _080B53EA: lsls r0, r5, 3 adds r0, r7 ldr r0, [r0] bl GetStringWidthInTilesForScriptMenu lsls r0, 16 lsrs r0, 16 cmp r4, r0 bcs _080B53FE adds r4, r0, 0 _080B53FE: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, r6 bcc _080B53EA _080B5408: lsls r4, 24 lsrs r4, 24 add r4, r8 adds r4, 0x2 lsls r4, 24 lsrs r4, 24 lsls r0, r6, 1 adds r0, 0x1 mov r1, r9 lsls r5, r1, 24 asrs r5, 24 adds r5, r0 lsls r5, 24 lsrs r5, 24 mov r0, r8 adds r2, r6, 0 adds r3, r7, 0 bl PrintMenuItems movs r0, 0 str r0, [sp] mov r1, r8 subs r0, r4, r1 subs r0, 0x1 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x4] movs r0, 0 mov r2, r9 adds r3, r6, 0 bl InitMenu mov r0, r10 str r0, [sp] str r6, [sp, 0x4] mov r0, r8 mov r1, r9 adds r2, r4, 0 adds r3, r5, 0 bl sub_80B5230 add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80B53B4 thumb_func_start yes_no_box yes_no_box: @ 80B546C push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r1, 24 lsrs r4, r1, 24 ldr r6, _080B54B4 @ =task_yes_no_maybe adds r0, r6, 0 bl FuncIsActiveTask lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080B54C0 ldr r1, _080B54B8 @ =gScriptResult movs r0, 0xFF strh r0, [r1] adds r0, r5, 0 adds r1, r4, 0 movs r2, 0x1 bl DisplayYesNoMenu adds r0, r6, 0 movs r1, 0x50 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _080B54BC @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 strh r5, [r1, 0x8] strh r4, [r1, 0xA] movs r0, 0x1 b _080B54C2 .align 2, 0 _080B54B4: .4byte task_yes_no_maybe _080B54B8: .4byte gScriptResult _080B54BC: .4byte gTasks _080B54C0: movs r0, 0 _080B54C2: pop {r4-r6} pop {r1} bx r1 thumb_func_end yes_no_box thumb_func_start unref_sub_80B54C8 unref_sub_80B54C8: @ 80B54C8 push {lr} ldr r0, _080B54D8 @ =gScriptResult ldrh r0, [r0] cmp r0, 0xFF beq _080B54DC movs r0, 0x1 b _080B54DE .align 2, 0 _080B54D8: .4byte gScriptResult _080B54DC: movs r0, 0 _080B54DE: pop {r1} bx r1 thumb_func_end unref_sub_80B54C8 thumb_func_start task_yes_no_maybe task_yes_no_maybe: @ 80B54E4 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r1, _080B5504 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r1, r0, r1 ldrh r2, [r1, 0xC] movs r3, 0xC ldrsh r0, [r1, r3] cmp r0, 0x4 bgt _080B5508 adds r0, r2, 0x1 strh r0, [r1, 0xC] b _080B556A .align 2, 0 _080B5504: .4byte gTasks _080B5508: bl ProcessMenuInputNoWrap lsls r0, 24 asrs r1, r0, 24 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _080B552C cmp r1, r0 bgt _080B5524 subs r0, 0x1 cmp r1, r0 beq _080B556A b _080B5542 _080B5524: cmp r1, 0 beq _080B553C cmp r1, 0x1 bne _080B5542 _080B552C: movs r0, 0x5 bl PlaySE ldr r1, _080B5538 @ =gScriptResult movs r0, 0 b _080B5540 .align 2, 0 _080B5538: .4byte gScriptResult _080B553C: ldr r1, _080B5570 @ =gScriptResult movs r0, 0x1 _080B5540: strh r0, [r1] _080B5542: ldr r0, _080B5574 @ =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldrb r0, [r1, 0x8] ldrb r1, [r1, 0xA] adds r2, r0, 0x6 lsls r2, 24 lsrs r2, 24 adds r3, r1, 0x5 lsls r3, 24 lsrs r3, 24 bl MenuZeroFillWindowRect adds r0, r4, 0 bl DestroyTask bl EnableBothScriptContexts _080B556A: pop {r4} pop {r0} bx r0 .align 2, 0 _080B5570: .4byte gScriptResult _080B5574: .4byte gTasks thumb_func_end task_yes_no_maybe thumb_func_start sub_80B5578 sub_80B5578: @ 80B5578 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 ldr r4, [sp, 0x30] lsls r0, 24 lsrs r0, 24 mov r9, r0 lsls r1, 24 lsrs r1, 24 mov r8, r1 lsls r2, 24 lsrs r6, r2, 24 lsls r3, 24 lsrs r3, 24 str r3, [sp, 0xC] lsls r4, 24 lsrs r5, r4, 24 movs r7, 0 ldr r0, _080B55B8 @ =sub_80B5684 mov r10, r0 bl FuncIsActiveTask lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080B55BC movs r0, 0 b _080B5670 .align 2, 0 _080B55B8: .4byte sub_80B5684 _080B55BC: ldr r1, _080B5620 @ =gScriptResult movs r0, 0xFF strh r0, [r1] ldr r0, _080B5624 @ =gMultichoiceLists lsls r4, r6, 3 adds r0, r4, r0 ldrb r6, [r0, 0x4] ldr r0, [r0] str r0, [sp] str r5, [sp, 0x4] str r7, [sp, 0x8] mov r0, r9 mov r1, r8 adds r2, r6, 0 movs r3, 0 bl sub_807274C mov r0, r10 movs r1, 0x50 bl CreateTask lsls r0, 24 lsrs r0, 24 mov r10, r0 lsls r0, r6, 24 lsrs r1, r0, 24 lsrs r0, 25 cmp r0, r5 bcc _080B55FE movs r0, 0x1 ands r0, r6 cmp r0, 0 beq _080B5606 _080B55FE: cmp r5, 0x1 beq _080B5606 cmp r1, r5 bne _080B5628 _080B5606: ldr r0, _080B5624 @ =gMultichoiceLists adds r0, r4, r0 ldrb r0, [r0, 0x4] adds r1, r5, 0 bl __udivsi3 lsls r0, 24 lsrs r0, 23 adds r0, 0x1 mov r2, r8 lsls r1, r2, 24 b _080B563A .align 2, 0 _080B5620: .4byte gScriptResult _080B5624: .4byte gMultichoiceLists _080B5628: adds r0, r6, 0 adds r1, r5, 0 bl __udivsi3 lsls r0, 24 lsrs r0, 23 adds r0, 0x3 mov r3, r8 lsls r1, r3, 24 _080B563A: asrs r1, 24 adds r1, r0 lsls r1, 24 lsrs r7, r1, 24 adds r0, r5, 0 bl sub_807288C lsls r0, 24 lsrs r0, 24 ldr r2, _080B5680 @ =gTasks mov r3, r10 lsls r1, r3, 2 add r1, r10 lsls r1, 3 adds r1, r2 mov r2, r9 strh r2, [r1, 0x8] mov r3, r8 strh r3, [r1, 0xA] add r0, r9 adds r0, 0x2 strh r0, [r1, 0xC] strh r7, [r1, 0xE] mov r0, sp ldrh r0, [r0, 0xC] strh r0, [r1, 0x10] movs r0, 0x1 _080B5670: add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080B5680: .4byte gTasks thumb_func_end sub_80B5578 thumb_func_start sub_80B5684 sub_80B5684: @ 80B5684 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 bl sub_80727CC lsls r0, 24 asrs r1, r0, 24 movs r0, 0x2 negs r0, r0 cmp r1, r0 beq _080B56F4 adds r0, 0x1 cmp r1, r0 bne _080B56CC ldr r2, _080B56C4 @ =gTasks lsls r1, r5, 2 adds r0, r1, r5 lsls r0, 3 adds r0, r2 movs r2, 0x10 ldrsh r0, [r0, r2] adds r4, r1, 0 cmp r0, 0 bne _080B56F4 movs r0, 0x5 bl PlaySE ldr r1, _080B56C8 @ =gScriptResult movs r0, 0x7F strh r0, [r1] b _080B56D2 .align 2, 0 _080B56C4: .4byte gTasks _080B56C8: .4byte gScriptResult _080B56CC: ldr r0, _080B56FC @ =gScriptResult strh r1, [r0] lsls r4, r5, 2 _080B56D2: bl sub_8072DEC ldr r0, _080B5700 @ =gTasks adds r3, r4, r5 lsls r3, 3 adds r3, r0 ldrb r0, [r3, 0x8] ldrb r1, [r3, 0xA] ldrb r2, [r3, 0xC] ldrb r3, [r3, 0xE] bl MenuZeroFillWindowRect adds r0, r5, 0 bl DestroyTask bl EnableBothScriptContexts _080B56F4: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080B56FC: .4byte gScriptResult _080B5700: .4byte gTasks thumb_func_end sub_80B5684 thumb_func_start sp109_CreatePCMenu sp109_CreatePCMenu: @ 80B5704 push {lr} ldr r0, _080B5724 @ =sub_80B52B4 bl FuncIsActiveTask lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080B572C ldr r1, _080B5728 @ =gScriptResult movs r0, 0xFF strh r0, [r1] bl CreatePCMenu movs r0, 0x1 b _080B572E .align 2, 0 _080B5724: .4byte sub_80B52B4 _080B5728: .4byte gScriptResult _080B572C: movs r0, 0 _080B572E: pop {r1} bx r1 thumb_func_end sp109_CreatePCMenu thumb_func_start CreatePCMenu CreatePCMenu: @ 80B5734 push {r4-r7,lr} sub sp, 0x8 ldr r0, _080B5758 @ =gPCText_PlayersPC bl GetStringWidthInTilesForScriptMenu lsls r0, 16 lsrs r4, r0, 16 ldr r0, _080B575C @ =gPCText_SomeonesPC bl GetStringWidthInTilesForScriptMenu lsls r0, 16 lsrs r0, 16 cmp r4, r0 bls _080B5760 lsls r0, r4, 24 lsrs r5, r0, 24 b _080B5762 .align 2, 0 _080B5758: .4byte gPCText_PlayersPC _080B575C: .4byte gPCText_SomeonesPC _080B5760: movs r5, 0x8 _080B5762: ldr r0, _080B5798 @ =0x00000804 bl FlagGet lsls r0, 24 cmp r0, 0 beq _080B57A4 movs r7, 0x4 adds r4, r5, 0x2 lsls r2, r4, 24 lsrs r2, 24 movs r0, 0 movs r1, 0 movs r3, 0x9 bl MenuDrawTextWindow ldr r0, _080B579C @ =gPCText_HallOfFame movs r1, 0x1 movs r2, 0x5 bl MenuPrint ldr r0, _080B57A0 @ =gPCText_LogOff movs r1, 0x1 movs r2, 0x7 bl MenuPrint b _080B57C0 .align 2, 0 _080B5798: .4byte 0x00000804 _080B579C: .4byte gPCText_HallOfFame _080B57A0: .4byte gPCText_LogOff _080B57A4: movs r7, 0x3 adds r4, r5, 0x2 lsls r2, r4, 24 lsrs r2, 24 movs r0, 0 movs r1, 0 movs r3, 0x7 bl MenuDrawTextWindow ldr r0, _080B57DC @ =gPCText_LogOff movs r1, 0x1 movs r2, 0x5 bl MenuPrint _080B57C0: adds r6, r4, 0 ldr r0, _080B57E0 @ =0x0000084b bl FlagGet lsls r0, 24 cmp r0, 0 beq _080B57E8 ldr r0, _080B57E4 @ =gPCText_LanettesPC movs r1, 0x1 movs r2, 0x1 bl MenuPrint b _080B57F2 .align 2, 0 _080B57DC: .4byte gPCText_LogOff _080B57E0: .4byte 0x0000084b _080B57E4: .4byte gPCText_LanettesPC _080B57E8: ldr r0, _080B5830 @ =gPCText_SomeonesPC movs r1, 0x1 movs r2, 0x1 bl MenuPrint _080B57F2: ldr r0, _080B5834 @ =gPCText_PlayersPC movs r1, 0x1 movs r2, 0x3 bl MenuPrint movs r4, 0 str r4, [sp] adds r0, r5, 0x1 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x4] movs r0, 0 movs r1, 0x1 movs r2, 0x1 adds r3, r7, 0 bl InitMenu lsls r2, r6, 24 lsrs r2, 24 lsls r3, r7, 1 adds r3, 0x1 str r4, [sp] str r7, [sp, 0x4] movs r0, 0 movs r1, 0 bl sub_80B5230 add sp, 0x8 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B5830: .4byte gPCText_SomeonesPC _080B5834: .4byte gPCText_PlayersPC thumb_func_end CreatePCMenu thumb_func_start sub_80B5838 sub_80B5838: @ 80B5838 push {lr} bl MenuDisplayMessageBox ldr r0, _080B584C @ =gUnknown_081A0A01 movs r1, 0x2 movs r2, 0xF bl MenuPrint pop {r0} bx r0 .align 2, 0 _080B584C: .4byte gUnknown_081A0A01 thumb_func_end sub_80B5838 thumb_func_start task_picbox task_picbox: @ 80B5850 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _080B5874 @ =gTasks adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x1 beq _080B58BE cmp r0, 0x1 bgt _080B5878 cmp r0, 0 beq _080B5894 b _080B58BE .align 2, 0 _080B5874: .4byte gTasks _080B5878: cmp r0, 0x2 beq _080B5882 cmp r0, 0x3 beq _080B58A0 b _080B58BE _080B5882: movs r0, 0xC ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080B589C @ =gSprites adds r0, r1 bl FreeResourcesAndDestroySprite _080B5894: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080B58BE .align 2, 0 _080B589C: .4byte gSprites _080B58A0: ldrb r2, [r4, 0xE] adds r0, r2, 0 ldrb r3, [r4, 0x10] adds r1, r3, 0 adds r2, 0x9 lsls r2, 24 lsrs r2, 24 adds r3, 0xA lsls r3, 24 lsrs r3, 24 bl MenuZeroFillWindowRect adds r0, r5, 0 bl DestroyTask _080B58BE: pop {r4,r5} pop {r0} bx r0 thumb_func_end task_picbox thumb_func_start sub_80B58C4 sub_80B58C4: @ 80B58C4 push {r4-r7,lr} lsls r0, 16 lsrs r7, r0, 16 lsls r1, 24 lsrs r6, r1, 24 lsls r2, 24 lsrs r5, r2, 24 ldr r4, _080B595C @ =task_picbox adds r0, r4, 0 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF bne _080B596C adds r2, r6, 0 adds r2, 0x9 lsls r2, 24 lsrs r2, 24 adds r3, r5, 0 adds r3, 0xA lsls r3, 24 lsrs r3, 24 adds r0, r6, 0 adds r1, r5, 0 bl MenuDrawTextWindow adds r0, r4, 0 movs r1, 0x50 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r1, _080B5960 @ =gTasks lsls r4, r0, 2 adds r4, r0 lsls r4, 3 adds r4, r1 movs r0, 0 strh r0, [r4, 0x8] strh r7, [r4, 0xA] lsls r1, r6, 19 movs r0, 0xA0 lsls r0, 14 adds r1, r0 asrs r1, 16 lsls r2, r5, 19 adds r2, r0 asrs r2, 16 adds r0, r7, 0 movs r3, 0 bl CreateMonSprite_PicBox lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0xC] strh r6, [r4, 0xE] strh r5, [r4, 0x10] ldr r3, _080B5964 @ =gSprites lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r0, r3, 0 adds r0, 0x1C adds r0, r1, r0 ldr r2, _080B5968 @ =SpriteCallbackDummy str r2, [r0] adds r1, r3 ldrb r2, [r1, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 strb r0, [r1, 0x5] movs r0, 0x1 b _080B596E .align 2, 0 _080B595C: .4byte task_picbox _080B5960: .4byte gTasks _080B5964: .4byte gSprites _080B5968: .4byte SpriteCallbackDummy _080B596C: movs r0, 0 _080B596E: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80B58C4 thumb_func_start picbox_close picbox_close: @ 80B5974 push {lr} ldr r0, _080B5998 @ =task_picbox bl FindTaskIdByFunc lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0xFF beq _080B59A4 ldr r0, _080B599C @ =gTasks lsls r1, r2, 2 adds r1, r2 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] ldr r0, _080B59A0 @ =sub_80B59AC b _080B59A6 .align 2, 0 _080B5998: .4byte task_picbox _080B599C: .4byte gTasks _080B59A0: .4byte sub_80B59AC _080B59A4: movs r0, 0 _080B59A6: pop {r1} bx r1 thumb_func_end picbox_close thumb_func_start sub_80B59AC sub_80B59AC: @ 80B59AC push {lr} ldr r0, _080B59C0 @ =task_picbox bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF beq _080B59C4 movs r0, 0 b _080B59C6 .align 2, 0 _080B59C0: .4byte task_picbox _080B59C4: movs r0, 0x1 _080B59C6: pop {r1} bx r1 thumb_func_end sub_80B59AC .align 2, 0 @ Don't pad with nop.