diff options
-rw-r--r-- | asm/intro.s | 4 | ||||
-rw-r--r-- | asm/link_rfu_4.s | 2316 | ||||
-rw-r--r-- | asm/main_menu.s | 8 | ||||
-rw-r--r-- | asm/mystery_gift_menu.s | 2379 | ||||
-rw-r--r-- | asm/title_screen.s | 6 | ||||
-rw-r--r-- | data/mystery_gift_menu.s (renamed from data/link_rfu_4.s) | 0 | ||||
-rw-r--r-- | include/mystery_gift_menu.h | 6 | ||||
-rw-r--r-- | include/title_screen.h | 6 | ||||
-rw-r--r-- | ld_script.txt | 3 | ||||
-rw-r--r-- | src/mevent.c | 4 | ||||
-rw-r--r-- | src/mevent_8145654.c | 4 | ||||
-rw-r--r-- | src/mystery_gift_menu.c | 67 | ||||
-rw-r--r-- | sym_ewram.txt | 7 |
13 files changed, 2352 insertions, 2458 deletions
diff --git a/asm/intro.s b/asm/intro.s index 309b636c8..909fee72e 100644 --- a/asm/intro.s +++ b/asm/intro.s @@ -2742,14 +2742,14 @@ _080EDC0C: bl DisableInterrupts movs r0, 0 bl SetHBlankCallback - ldr r0, _080EDC3C @ =sub_8078914 + ldr r0, _080EDC3C @ =CB2_InitTitleScreen bl SetMainCallback2 _080EDC34: pop {r4} pop {r0} bx r0 .align 2, 0 -_080EDC3C: .4byte sub_8078914 +_080EDC3C: .4byte CB2_InitTitleScreen thumb_func_end sub_80EDBE8 thumb_func_start sub_80EDC40 diff --git a/asm/link_rfu_4.s b/asm/link_rfu_4.s deleted file mode 100644 index dd9c498a4..000000000 --- a/asm/link_rfu_4.s +++ /dev/null @@ -1,2316 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_814240C -sub_814240C: @ 814240C - push {lr} - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x1 - movs r2, 0xF - bl sub_8150048 - pop {r0} - bx r0 - thumb_func_end sub_814240C - - thumb_func_start sub_8142420 -sub_8142420: @ 8142420 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - movs r0, 0 - mov r8, r0 - movs r0, 0x20 - str r0, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x11 - str r0, [sp, 0x8] - movs r0, 0x3 - movs r1, 0x3 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect - movs r4, 0x1 - movs r1, 0x11 - mov r10, r1 -_0814244E: - movs r7, 0 - mov r0, r8 - adds r0, 0x2 - movs r1, 0x1 - add r1, r8 - mov r9, r1 - lsls r5, r0, 24 - movs r6, 0 -_0814245E: - mov r1, r8 - ands r1, r4 - adds r0, r7, 0 - ands r0, r4 - cmp r1, r0 - beq _08142480 - lsrs r2, r6, 24 - str r4, [sp] - str r4, [sp, 0x4] - mov r0, r10 - str r0, [sp, 0x8] - movs r0, 0x3 - movs r1, 0x1 - lsrs r3, r5, 24 - bl FillBgTilemapBufferRect - b _08142494 -_08142480: - lsrs r2, r6, 24 - str r4, [sp] - str r4, [sp, 0x4] - mov r1, r10 - str r1, [sp, 0x8] - movs r0, 0x3 - movs r1, 0x2 - lsrs r3, r5, 24 - bl FillBgTilemapBufferRect -_08142494: - movs r0, 0x80 - lsls r0, 17 - adds r6, r0 - adds r7, 0x1 - cmp r7, 0x1F - ble _0814245E - mov r8, r9 - mov r1, r8 - cmp r1, 0x11 - ble _0814244E - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8142420 - - thumb_func_start sub_81424B8 -sub_81424B8: @ 81424B8 - push {lr} - sub sp, 0xC - cmp r0, 0 - beq _081424C6 - cmp r0, 0x1 - beq _081424DE - b _081424F6 -_081424C6: - movs r0, 0x20 - str r0, [sp] - str r0, [sp, 0x4] - movs r0, 0x11 - str r0, [sp, 0x8] - movs r0, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect - b _081424F6 -_081424DE: - movs r0, 0x20 - str r0, [sp] - movs r0, 0x1E - str r0, [sp, 0x4] - movs r0, 0x11 - str r0, [sp, 0x8] - movs r0, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0x2 - bl FillBgTilemapBufferRect -_081424F6: - movs r0, 0 - bl CopyBgTilemapBufferToVram - add sp, 0xC - pop {r0} - bx r0 - thumb_func_end sub_81424B8 - - thumb_func_start sub_8142504 -sub_8142504: @ 8142504 - push {r4,lr} - sub sp, 0x14 - adds r1, r0, 0 - ldr r4, _08142558 @ =gStringVar4 - adds r0, r4, 0 - bl StringExpandPlaceholders - movs r0, 0x1 - movs r1, 0x11 - bl FillWindowPixelBuffer - movs r1, 0 - str r1, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - ldr r0, _0814255C @ =gUnknown_8466EF0 - str r0, [sp, 0x8] - str r1, [sp, 0xC] - str r4, [sp, 0x10] - movs r0, 0x1 - movs r1, 0x2 - movs r2, 0 - movs r3, 0x2 - bl AddTextPrinterParametrized2 - movs r0, 0x1 - movs r1, 0x1 - movs r2, 0xF - bl sub_8150048 - movs r0, 0x1 - bl PutWindowTilemap - movs r0, 0x1 - movs r1, 0x3 - bl CopyWindowToVram - add sp, 0x14 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08142558: .4byte gStringVar4 -_0814255C: .4byte gUnknown_8466EF0 - thumb_func_end sub_8142504 - - thumb_func_start sub_8142560 -sub_8142560: @ 8142560 - push {lr} - movs r0, 0x1 - bl rbox_fill_rectangle - movs r0, 0x1 - bl ClearWindowTilemap - movs r0, 0x1 - movs r1, 0x1 - bl CopyWindowToVram - pop {r0} - bx r0 - thumb_func_end sub_8142560 - - thumb_func_start mevent_0814257C -mevent_0814257C: @ 814257C - push {r4,lr} - sub sp, 0xC - adds r4, r0, 0 - adds r0, r1, 0 - ldrb r2, [r4] - cmp r2, 0x1 - beq _081425A4 - cmp r2, 0x1 - bgt _08142594 - cmp r2, 0 - beq _0814259E - b _08142604 -_08142594: - cmp r2, 0x2 - beq _081425D8 - cmp r2, 0xFF - beq _08142600 - b _08142604 -_0814259E: - bl sub_8142504 - b _081425C8 -_081425A4: - movs r0, 0 - str r0, [sp] - ldr r0, _081425D0 @ =gUnknown_203F3B0 - str r0, [sp, 0x4] - adds r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x1 - movs r1, 0xD0 - movs r2, 0x14 - movs r3, 0x1 - bl DrawDownArrow - ldr r0, _081425D4 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _08142604 -_081425C8: - ldrb r0, [r4] - adds r0, 0x1 - b _08142602 - .align 2, 0 -_081425D0: .4byte gUnknown_203F3B0 -_081425D4: .4byte gMain -_081425D8: - movs r0, 0x1 - str r0, [sp] - ldr r0, _081425FC @ =gUnknown_203F3B0 - str r0, [sp, 0x4] - adds r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x1 - movs r1, 0xD0 - movs r2, 0x14 - movs r3, 0x1 - bl DrawDownArrow - movs r0, 0 - strb r0, [r4] - bl sub_8142560 - movs r0, 0x1 - b _08142606 - .align 2, 0 -_081425FC: .4byte gUnknown_203F3B0 -_08142600: - movs r0, 0x2 -_08142602: - strb r0, [r4] -_08142604: - movs r0, 0 -_08142606: - add sp, 0xC - pop {r4} - pop {r1} - bx r1 - thumb_func_end mevent_0814257C - - thumb_func_start sub_8142610 -sub_8142610: @ 8142610 - push {lr} - sub sp, 0xC - movs r0, 0 - str r0, [sp] - ldr r0, _08142634 @ =gUnknown_203F3B0 - str r0, [sp, 0x4] - adds r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x1 - movs r1, 0xD0 - movs r2, 0x14 - movs r3, 0x1 - bl DrawDownArrow - add sp, 0xC - pop {r0} - bx r0 - .align 2, 0 -_08142634: .4byte gUnknown_203F3B0 - thumb_func_end sub_8142610 - - thumb_func_start sub_8142638 -sub_8142638: @ 8142638 - push {lr} - sub sp, 0xC - movs r0, 0x1 - str r0, [sp] - ldr r0, _0814265C @ =gUnknown_203F3B0 - str r0, [sp, 0x4] - adds r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x1 - movs r1, 0xD0 - movs r2, 0x14 - movs r3, 0x1 - bl DrawDownArrow - add sp, 0xC - pop {r0} - bx r0 - .align 2, 0 -_0814265C: .4byte gUnknown_203F3B0 - thumb_func_end sub_8142638 - - thumb_func_start sub_8142660 -sub_8142660: @ 8142660 - push {r4,lr} - adds r4, r0, 0 - ldrb r0, [r4] - cmp r0, 0 - beq _08142670 - cmp r0, 0x1 - beq _0814268C - b _08142698 -_08142670: - bl sub_8142610 - ldr r0, _08142688 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _08142698 - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - b _08142698 - .align 2, 0 -_08142688: .4byte gMain -_0814268C: - bl sub_8142638 - movs r0, 0 - strb r0, [r4] - movs r0, 0x1 - b _0814269A -_08142698: - movs r0, 0 -_0814269A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8142660 - - thumb_func_start sub_81426A0 -sub_81426A0: @ 81426A0 - push {r4,lr} - adds r4, r0, 0 - ldrb r0, [r4] - cmp r0, 0 - bne _081426B0 - adds r0, r1, 0 - bl sub_8142504 -_081426B0: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x78 - bhi _081426C2 - movs r0, 0 - b _081426CC -_081426C2: - movs r0, 0 - strb r0, [r4] - bl sub_8142560 - movs r0, 0x1 -_081426CC: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81426A0 - - thumb_func_start sub_81426D4 -sub_81426D4: @ 81426D4 - push {r4-r7,lr} - sub sp, 0x24 - lsls r2, 24 - add r1, sp, 0x4 - ldr r0, _081426F8 @ =gUnknown_8466E00 - ldm r0!, {r3-r5} - stm r1!, {r3-r5} - ldm r0!, {r3-r5} - stm r1!, {r3-r5} - ldr r0, _081426FC @ =gUnknown_8466DA8 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp, 0x1C] - str r1, [sp, 0x20] - cmp r2, 0 - bne _08142704 - ldr r0, _08142700 @ =gUnknown_8466DD0 - b _08142706 - .align 2, 0 -_081426F8: .4byte gUnknown_8466E00 -_081426FC: .4byte gUnknown_8466DA8 -_08142700: .4byte gUnknown_8466DD0 -_08142704: - ldr r0, _08142794 @ =gUnknown_8466DE8 -_08142706: - str r0, [sp, 0x4] - movs r6, 0 - movs r4, 0 - add r0, sp, 0x4 - add r7, sp, 0x1C - ldrh r0, [r0, 0xC] - cmp r6, r0 - bcs _0814273A - add r5, sp, 0x4 -_08142718: - ldr r1, [sp, 0x4] - lsls r0, r4, 3 - adds r0, r1 - ldr r1, [r0] - ldrb r2, [r5, 0x16] - lsls r2, 29 - lsrs r2, 29 - movs r0, 0x2 - bl GetStringWidth - cmp r0, r6 - bls _08142732 - adds r6, r0, 0 -_08142732: - adds r4, 0x1 - ldrh r0, [r5, 0xC] - cmp r4, r0 - bcc _08142718 -_0814273A: - adds r2, r6, 0 - adds r2, 0x9 - lsrs r2, 3 - adds r2, 0x2 - movs r0, 0x2 - negs r0, r0 - ands r2, r0 - lsls r3, r2, 24 - ldr r0, _08142798 @ =0x00ffffff - ldr r1, [sp, 0x1C] - ands r1, r0 - orrs r1, r3 - movs r0, 0x1E - subs r0, r2 - lsls r0, 23 - lsrs r0, 16 - ldr r2, _0814279C @ =0xffff00ff - ands r1, r2 - orrs r1, r0 - str r1, [sp, 0x1C] - movs r0, 0xE0 - str r0, [sp] - adds r0, r7, 0 - add r1, sp, 0x4 - movs r2, 0x1 - movs r3, 0xA - bl DoMysteryGiftListMenu - adds r4, r0, 0 - movs r0, 0x1 - negs r0, r0 - cmp r4, r0 - beq _0814278A - movs r0, 0x2 - bl ClearWindowTilemap - movs r0, 0x2 - movs r1, 0x1 - bl CopyWindowToVram -_0814278A: - adds r0, r4, 0 - add sp, 0x24 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08142794: .4byte gUnknown_8466DE8 -_08142798: .4byte 0x00ffffff -_0814279C: .4byte 0xffff00ff - thumb_func_end sub_81426D4 - - thumb_func_start sub_81427A0 -sub_81427A0: @ 81427A0 - push {r4-r6,lr} - sub sp, 0x1C - adds r5, r0, 0 - adds r4, r1, 0 - adds r1, r3, 0 - lsls r2, 24 - lsrs r6, r2, 24 - ldrb r0, [r5] - cmp r0, 0x1 - beq _08142834 - cmp r0, 0x1 - bgt _081427BE - cmp r0, 0 - beq _081427CA - b _081428E6 -_081427BE: - cmp r0, 0x2 - beq _0814288C - cmp r0, 0xFF - bne _081427C8 - b _081428C2 -_081427C8: - b _081428E6 -_081427CA: - ldr r0, _081427D8 @ =gStringVar4 - bl StringExpandPlaceholders - cmp r6, 0 - bne _081427E0 - ldr r0, _081427DC @ =gUnknown_8466D90 - b _081427E2 - .align 2, 0 -_081427D8: .4byte gStringVar4 -_081427DC: .4byte gUnknown_8466D90 -_081427E0: - ldr r0, _08142828 @ =gUnknown_8466D98 -_081427E2: - bl AddWindow - strh r0, [r4] - ldrb r0, [r4] - movs r1, 0x11 - bl FillWindowPixelBuffer - ldrb r0, [r4] - movs r2, 0 - str r2, [sp] - movs r1, 0x2 - str r1, [sp, 0x4] - ldr r1, _0814282C @ =gUnknown_8466EF0 - str r1, [sp, 0x8] - str r2, [sp, 0xC] - ldr r1, _08142830 @ =gStringVar4 - str r1, [sp, 0x10] - movs r1, 0x2 - movs r3, 0x2 - bl AddTextPrinterParametrized2 - ldrb r0, [r4] - movs r1, 0x1 - movs r2, 0xF - bl sub_8150048 - ldrb r0, [r4] - movs r1, 0x2 - bl CopyWindowToVram - ldrb r0, [r4] - bl PutWindowTilemap - b _0814287E - .align 2, 0 -_08142828: .4byte gUnknown_8466D98 -_0814282C: .4byte gUnknown_8466EF0 -_08142830: .4byte gStringVar4 -_08142834: - ldr r0, _08142850 @ =gUnknown_8466DB0 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp, 0x14] - str r1, [sp, 0x18] - cmp r6, 0 - bne _08142858 - ldr r0, _08142854 @ =0xff00ffff - ldr r1, [sp, 0x14] - ands r1, r0 - movs r0, 0x90 - lsls r0, 12 - b _08142862 - .align 2, 0 -_08142850: .4byte gUnknown_8466DB0 -_08142854: .4byte 0xff00ffff -_08142858: - ldr r0, _08142888 @ =0xff00ffff - ldr r1, [sp, 0x14] - ands r1, r0 - movs r0, 0xF0 - lsls r0, 12 -_08142862: - orrs r1, r0 - str r1, [sp, 0x14] - movs r0, 0xA - str r0, [sp] - movs r0, 0xE - str r0, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0x8] - add r0, sp, 0x14 - movs r1, 0x2 - movs r2, 0 - movs r3, 0x2 - bl sub_810FF60 -_0814287E: - ldrb r0, [r5] - adds r0, 0x1 - strb r0, [r5] - b _081428E6 - .align 2, 0 -_08142888: .4byte 0xff00ffff -_0814288C: - bl ProcessMenuInputNoWrap_ - lsls r0, 24 - asrs r6, r0, 24 - movs r1, 0x80 - lsls r1, 17 - adds r0, r1 - lsrs r0, 24 - cmp r0, 0x2 - bhi _081428E6 - movs r0, 0 - strb r0, [r5] - ldrb r0, [r4] - bl rbox_fill_rectangle - ldrb r0, [r4] - bl ClearWindowTilemap - ldrb r0, [r4] - movs r1, 0x1 - bl CopyWindowToVram - ldrb r0, [r4] - bl RemoveWindow - adds r0, r6, 0 - b _081428EA -_081428C2: - movs r0, 0 - strb r0, [r5] - ldrb r0, [r4] - bl rbox_fill_rectangle - ldrb r0, [r4] - bl ClearWindowTilemap - ldrb r0, [r4] - movs r1, 0x1 - bl CopyWindowToVram - ldrb r0, [r4] - bl RemoveWindow - movs r0, 0x1 - negs r0, r0 - b _081428EA -_081428E6: - movs r0, 0x2 - negs r0, r0 -_081428EA: - add sp, 0x1C - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_81427A0 - - thumb_func_start sub_81428F4 -sub_81428F4: @ 81428F4 - push {r4-r6,lr} - sub sp, 0x14 - adds r6, r0, 0 - adds r5, r1, 0 - ldrb r0, [r6] - cmp r0, 0x1 - beq _08142994 - cmp r0, 0x1 - bgt _0814290C - cmp r0, 0 - beq _08142914 - b _08142A38 -_0814290C: - cmp r0, 0xFF - bne _08142912 - b _08142A14 -_08142912: - b _08142A38 -_08142914: - cmp r2, 0 - bne _0814292C - ldr r0, _08142924 @ =gStringVar4 - ldr r1, _08142928 @ =gUnknown_841EA86 - bl StringExpandPlaceholders - b _08142934 - .align 2, 0 -_08142924: .4byte gStringVar4 -_08142928: .4byte gUnknown_841EA86 -_0814292C: - ldr r0, _08142984 @ =gStringVar4 - ldr r1, _08142988 @ =gUnknown_841EAB7 - bl StringExpandPlaceholders -_08142934: - ldr r0, _0814298C @ =gUnknown_8466DA0 - bl AddWindow - strh r0, [r5] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x11 - bl FillWindowPixelBuffer - ldrb r0, [r5] - movs r2, 0 - str r2, [sp] - movs r1, 0x2 - str r1, [sp, 0x4] - ldr r1, _08142990 @ =gUnknown_8466EF0 - str r1, [sp, 0x8] - str r2, [sp, 0xC] - ldr r1, _08142984 @ =gStringVar4 - str r1, [sp, 0x10] - movs r1, 0x2 - movs r3, 0x2 - bl AddTextPrinterParametrized2 - ldrb r0, [r5] - movs r1, 0x1 - movs r2, 0xF - bl sub_8150048 - ldrb r0, [r5] - movs r1, 0x2 - bl CopyWindowToVram - ldrb r0, [r5] - bl PutWindowTilemap - ldrb r0, [r6] - adds r0, 0x1 - strb r0, [r6] - b _08142A38 - .align 2, 0 -_08142984: .4byte gStringVar4 -_08142988: .4byte gUnknown_841EAB7 -_0814298C: .4byte gUnknown_8466DA0 -_08142990: .4byte gUnknown_8466EF0 -_08142994: - cmp r3, 0 - beq _081429BC - cmp r2, 0 - bne _081429AC - ldr r0, _081429A4 @ =gUnknown_8466DC0 - ldr r1, _081429A8 @ =gUnknown_8466E90 - b _081429D4 - .align 2, 0 -_081429A4: .4byte gUnknown_8466DC0 -_081429A8: .4byte gUnknown_8466E90 -_081429AC: - ldr r0, _081429B4 @ =gUnknown_8466DC8 - ldr r1, _081429B8 @ =gUnknown_8466EC0 - b _081429D4 - .align 2, 0 -_081429B4: .4byte gUnknown_8466DC8 -_081429B8: .4byte gUnknown_8466EC0 -_081429BC: - cmp r2, 0 - bne _081429D0 - ldr r0, _081429C8 @ =gUnknown_8466DB8 - ldr r1, _081429CC @ =gUnknown_8466E78 - b _081429D4 - .align 2, 0 -_081429C8: .4byte gUnknown_8466DB8 -_081429CC: .4byte gUnknown_8466E78 -_081429D0: - ldr r0, _08142A0C @ =gUnknown_8466DC0 - ldr r1, _08142A10 @ =gUnknown_8466EA8 -_081429D4: - movs r2, 0xE0 - str r2, [sp] - movs r2, 0x1 - movs r3, 0xA - bl DoMysteryGiftListMenu - adds r4, r0, 0 - movs r0, 0x1 - negs r0, r0 - cmp r4, r0 - beq _08142A38 - movs r0, 0 - strb r0, [r6] - ldrb r0, [r5] - bl rbox_fill_rectangle - ldrb r0, [r5] - bl ClearWindowTilemap - ldrb r0, [r5] - movs r1, 0x1 - bl CopyWindowToVram - ldrb r0, [r5] - bl RemoveWindow - adds r0, r4, 0 - b _08142A3C - .align 2, 0 -_08142A0C: .4byte gUnknown_8466DC0 -_08142A10: .4byte gUnknown_8466EA8 -_08142A14: - movs r0, 0 - strb r0, [r6] - ldrb r0, [r5] - bl rbox_fill_rectangle - ldrb r0, [r5] - bl ClearWindowTilemap - ldrb r0, [r5] - movs r1, 0x1 - bl CopyWindowToVram - ldrb r0, [r5] - bl RemoveWindow - movs r0, 0x2 - negs r0, r0 - b _08142A3C -_08142A38: - movs r0, 0x1 - negs r0, r0 -_08142A3C: - add sp, 0x14 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_81428F4 - - thumb_func_start sub_8142A44 -sub_8142A44: @ 8142A44 - push {lr} - cmp r0, 0 - beq _08142A50 - bl sub_8143E1C - b _08142A54 -_08142A50: - bl sub_8143FC8 -_08142A54: - pop {r1} - bx r1 - thumb_func_end sub_8142A44 - - thumb_func_start sub_8142A58 -sub_8142A58: @ 8142A58 - push {r4,r5,lr} - adds r5, r0, 0 - ldrb r0, [r5] - cmp r0, 0 - beq _08142A68 - cmp r0, 0x1 - beq _08142A90 - b _08142AAC -_08142A68: - cmp r1, 0 - bne _08142A80 - bl sav1_get_mevent_buffer_1 - adds r4, r0, 0 - bl sav1_get_mevent_buffer_2 - adds r1, r0, 0 - adds r0, r4, 0 - bl sub_8145654 - b _08142A88 -_08142A80: - bl sub_8143D58 - bl sub_8146288 -_08142A88: - ldrb r0, [r5] - adds r0, 0x1 - strb r0, [r5] - b _08142AAC -_08142A90: - cmp r1, 0 - bne _08142A9E - bl sub_814571C -_08142A98: - cmp r0, 0 - bne _08142AA4 - b _08142AAC -_08142A9E: - bl sub_8146318 - b _08142A98 -_08142AA4: - movs r0, 0 - strb r0, [r5] - movs r0, 0x1 - b _08142AAE -_08142AAC: - movs r0, 0 -_08142AAE: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8142A58 - - thumb_func_start sub_8142AB4 -sub_8142AB4: @ 8142AB4 - push {lr} - cmp r0, 0 - bne _08142AC0 - bl sub_8143F38 - b _08142AC4 -_08142AC0: - bl sub_8143DBC -_08142AC4: - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_8142AB4 - - thumb_func_start sub_8142ACC -sub_8142ACC: @ 8142ACC - push {lr} - cmp r0, 0 - bne _08142AE2 - adds r0, r1, 0 - bl sub_814593C - cmp r0, 0 - beq _08142AEC - bl sub_81456F0 - b _08142AF4 -_08142AE2: - adds r0, r1, 0 - bl sub_8146604 - cmp r0, 0 - bne _08142AF0 -_08142AEC: - movs r0, 0 - b _08142AF6 -_08142AF0: - bl sub_81462EC -_08142AF4: - movs r0, 0x1 -_08142AF6: - pop {r1} - bx r1 - thumb_func_end sub_8142ACC - - thumb_func_start sub_8142AFC -sub_8142AFC: @ 8142AFC - push {lr} - cmp r2, 0 - beq _08142B0C - ldr r3, _08142B08 @ =gUnknown_841ECD3 - b _08142B0E - .align 2, 0 -_08142B08: .4byte gUnknown_841ECD3 -_08142B0C: - ldr r3, _08142B1C @ =gUnknown_841EC99 -_08142B0E: - movs r2, 0x1 - bl sub_81427A0 - lsls r0, 24 - asrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_08142B1C: .4byte gUnknown_841EC99 - thumb_func_end sub_8142AFC - - thumb_func_start mevent_message_was_thrown_away -mevent_message_was_thrown_away: @ 8142B20 - push {lr} - cmp r1, 0 - beq _08142B30 - ldr r1, _08142B2C @ =gUnknown_841ED9C - b _08142B32 - .align 2, 0 -_08142B2C: .4byte gUnknown_841ED9C -_08142B30: - ldr r1, _08142B3C @ =gUnknown_841ED7B -_08142B32: - bl mevent_0814257C - pop {r1} - bx r1 - .align 2, 0 -_08142B3C: .4byte gUnknown_841ED7B - thumb_func_end mevent_message_was_thrown_away - - thumb_func_start mevent_save_game -mevent_save_game: @ 8142B40 - push {r4,lr} - adds r4, r0, 0 - ldrb r0, [r4] - cmp r0, 0x4 - bhi _08142BB0 - lsls r0, 2 - ldr r1, _08142B54 @ =_08142B58 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08142B54: .4byte _08142B58 - .align 2, 0 -_08142B58: - .4byte _08142B6C - .4byte _08142B78 - .4byte _08142B80 - .4byte _08142B8C - .4byte _08142BA4 -_08142B6C: - ldr r0, _08142B74 @ =gUnknown_841ED2F - bl sub_8142504 - b _08142B98 - .align 2, 0 -_08142B74: .4byte gUnknown_841ED2F -_08142B78: - movs r0, 0 - bl TrySavingData - b _08142B98 -_08142B80: - ldr r0, _08142B88 @ =gUnknown_841ED50 - bl sub_8142504 - b _08142B98 - .align 2, 0 -_08142B88: .4byte gUnknown_841ED50 -_08142B8C: - ldr r0, _08142BA0 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _08142BB0 -_08142B98: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - b _08142BB0 - .align 2, 0 -_08142BA0: .4byte gMain -_08142BA4: - movs r0, 0 - strb r0, [r4] - bl sub_8142560 - movs r0, 0x1 - b _08142BB2 -_08142BB0: - movs r0, 0 -_08142BB2: - pop {r4} - pop {r1} - bx r1 - thumb_func_end mevent_save_game - - thumb_func_start mevent_message -mevent_message: @ 8142BB8 - push {r4-r6,lr} - adds r4, r0, 0 - lsls r1, 24 - lsrs r6, r1, 24 - lsls r2, 24 - lsrs r5, r2, 24 - movs r2, 0 - str r2, [r4] - cmp r3, 0xE - bls _08142BCE - b _08142CE0 -_08142BCE: - lsls r0, r3, 2 - ldr r1, _08142BD8 @ =_08142BDC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08142BD8: .4byte _08142BDC - .align 2, 0 -_08142BDC: - .4byte _08142C18 - .4byte _08142C24 - .4byte _08142C30 - .4byte _08142C48 - .4byte _08142C60 - .4byte _08142C6C - .4byte _08142C78 - .4byte _08142C84 - .4byte _08142C90 - .4byte _08142C9C - .4byte _08142CA8 - .4byte _08142CC0 - .4byte _08142CCC - .4byte _08142CD8 - .4byte _08142CDC -_08142C18: - movs r0, 0 - str r0, [r4] - ldr r2, _08142C20 @ =gUnknown_841EA6F - b _08142CE0 - .align 2, 0 -_08142C20: .4byte gUnknown_841EA6F -_08142C24: - movs r0, 0 - str r0, [r4] - ldr r2, _08142C2C @ =gUnknown_841E9D3 - b _08142CE0 - .align 2, 0 -_08142C2C: .4byte gUnknown_841E9D3 -_08142C30: - movs r0, 0x1 - str r0, [r4] - ldr r2, _08142C40 @ =gUnknown_841E866 - cmp r5, 0 - bne _08142CE0 - ldr r2, _08142C44 @ =gUnknown_841E8BD - b _08142CE0 - .align 2, 0 -_08142C40: .4byte gUnknown_841E866 -_08142C44: .4byte gUnknown_841E8BD -_08142C48: - movs r0, 0x1 - str r0, [r4] - ldr r2, _08142C58 @ =gUnknown_841E88F - cmp r5, 0 - bne _08142CE0 - ldr r2, _08142C5C @ =gUnknown_841E8E2 - b _08142CE0 - .align 2, 0 -_08142C58: .4byte gUnknown_841E88F -_08142C5C: .4byte gUnknown_841E8E2 -_08142C60: - movs r0, 0x1 - str r0, [r4] - ldr r2, _08142C68 @ =gUnknown_841E90C - b _08142CE0 - .align 2, 0 -_08142C68: .4byte gUnknown_841E90C -_08142C6C: - movs r0, 0 - str r0, [r4] - ldr r2, _08142C74 @ =gUnknown_841E946 - b _08142CE0 - .align 2, 0 -_08142C74: .4byte gUnknown_841E946 -_08142C78: - movs r0, 0 - str r0, [r4] - ldr r2, _08142C80 @ =gUnknown_841E98F - b _08142CE0 - .align 2, 0 -_08142C80: .4byte gUnknown_841E98F -_08142C84: - movs r0, 0 - str r0, [r4] - ldr r2, _08142C8C @ =gUnknown_841E968 - b _08142CE0 - .align 2, 0 -_08142C8C: .4byte gUnknown_841E968 -_08142C90: - movs r0, 0 - str r0, [r4] - ldr r2, _08142C98 @ =gUnknown_841E9AB - b _08142CE0 - .align 2, 0 -_08142C98: .4byte gUnknown_841E9AB -_08142C9C: - movs r0, 0 - str r0, [r4] - ldr r2, _08142CA4 @ =gUnknown_841E7D1 - b _08142CE0 - .align 2, 0 -_08142CA4: .4byte gUnknown_841E7D1 -_08142CA8: - movs r0, 0 - str r0, [r4] - ldr r2, _08142CB8 @ =gUnknown_841EA3F - cmp r6, 0 - bne _08142CE0 - ldr r2, _08142CBC @ =gUnknown_841EA0D - b _08142CE0 - .align 2, 0 -_08142CB8: .4byte gUnknown_841EA3F -_08142CBC: .4byte gUnknown_841EA0D -_08142CC0: - movs r0, 0 - str r0, [r4] - ldr r2, _08142CC8 @ =gUnknown_841E7BC - b _08142CE0 - .align 2, 0 -_08142CC8: .4byte gUnknown_841E7BC -_08142CCC: - movs r0, 0x1 - str r0, [r4] - ldr r2, _08142CD4 @ =gUnknown_841E92B - b _08142CE0 - .align 2, 0 -_08142CD4: .4byte gUnknown_841E92B -_08142CD8: - movs r0, 0x1 - b _08142CDE -_08142CDC: - movs r0, 0 -_08142CDE: - str r0, [r4] -_08142CE0: - adds r0, r2, 0 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end mevent_message - - thumb_func_start mevent_08142CE8 -mevent_08142CE8: @ 8142CE8 - push {r4-r6,lr} - adds r6, r0, 0 - adds r0, r1, 0 - adds r5, r2, 0 - ldrb r4, [r6] - cmp r4, 0x1 - beq _08142D1A - cmp r4, 0x1 - bgt _08142D00 - cmp r4, 0 - beq _08142D06 - b _08142D46 -_08142D00: - cmp r4, 0x2 - beq _08142D30 - b _08142D46 -_08142D06: - cmp r0, 0 - beq _08142D0E - bl sub_8142504 -_08142D0E: - movs r0, 0x81 - lsls r0, 1 - bl PlayFanfare - strh r4, [r5] - b _08142D28 -_08142D1A: - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r5] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xF0 - bls _08142D46 -_08142D28: - ldrb r0, [r6] - adds r0, 0x1 - strb r0, [r6] - b _08142D46 -_08142D30: - bl IsFanfareTaskInactive - lsls r0, 24 - cmp r0, 0 - beq _08142D46 - movs r0, 0 - strb r0, [r6] - bl sub_8142560 - movs r0, 0x1 - b _08142D48 -_08142D46: - movs r0, 0 -_08142D48: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end mevent_08142CE8 - - thumb_func_start mevent_message_stamp_card_etc_send_status -mevent_message_stamp_card_etc_send_status: @ 8142D50 - push {r4,lr} - adds r3, r0, 0 - ldr r1, _08142D6C @ =gUnknown_841E7BC - movs r0, 0 - str r0, [r3] - adds r4, r1, 0 - cmp r2, 0xE - bhi _08142E12 - lsls r0, r2, 2 - ldr r1, _08142D70 @ =_08142D74 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08142D6C: .4byte gUnknown_841E7BC -_08142D70: .4byte _08142D74 - .align 2, 0 -_08142D74: - .4byte _08142DB0 - .4byte _08142DB8 - .4byte _08142DC0 - .4byte _08142DC8 - .4byte _08142DD4 - .4byte _08142DDC - .4byte _08142DE4 - .4byte _08142DEC - .4byte _08142DF4 - .4byte _08142DFC - .4byte _08142E10 - .4byte _08142E04 - .4byte _08142E08 - .4byte _08142E08 - .4byte _08142E10 -_08142DB0: - ldr r1, _08142DB4 @ =gUnknown_841EA6F - b _08142E12 - .align 2, 0 -_08142DB4: .4byte gUnknown_841EA6F -_08142DB8: - ldr r1, _08142DBC @ =gUnknown_841E9D3 - b _08142E12 - .align 2, 0 -_08142DBC: .4byte gUnknown_841E9D3 -_08142DC0: - ldr r1, _08142DC4 @ =gUnknown_841EB20 - b _08142DCA - .align 2, 0 -_08142DC4: .4byte gUnknown_841EB20 -_08142DC8: - ldr r1, _08142DD0 @ =gUnknown_841EB46 -_08142DCA: - movs r0, 0x1 - str r0, [r3] - b _08142E12 - .align 2, 0 -_08142DD0: .4byte gUnknown_841EB46 -_08142DD4: - ldr r1, _08142DD8 @ =gUnknown_841EB71 - b _08142E12 - .align 2, 0 -_08142DD8: .4byte gUnknown_841EB71 -_08142DDC: - ldr r1, _08142DE0 @ =gUnknown_841EBAA - b _08142E12 - .align 2, 0 -_08142DE0: .4byte gUnknown_841EBAA -_08142DE4: - ldr r1, _08142DE8 @ =gUnknown_841EC12 - b _08142E12 - .align 2, 0 -_08142DE8: .4byte gUnknown_841EC12 -_08142DEC: - ldr r1, _08142DF0 @ =gUnknown_841EBDE - b _08142E12 - .align 2, 0 -_08142DF0: .4byte gUnknown_841EBDE -_08142DF4: - ldr r1, _08142DF8 @ =gUnknown_841E9AB - b _08142E12 - .align 2, 0 -_08142DF8: .4byte gUnknown_841E9AB -_08142DFC: - ldr r1, _08142E00 @ =gUnknown_841EC40 - b _08142E12 - .align 2, 0 -_08142E00: .4byte gUnknown_841EC40 -_08142E04: - adds r1, r4, 0 - b _08142E12 -_08142E08: - ldr r1, _08142E0C @ =gUnknown_841EB8E - b _08142E12 - .align 2, 0 -_08142E0C: .4byte gUnknown_841EB8E -_08142E10: - ldr r1, _08142E1C @ =gUnknown_841EC6A -_08142E12: - adds r0, r1, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08142E1C: .4byte gUnknown_841EC6A - thumb_func_end mevent_message_stamp_card_etc_send_status - - thumb_func_start sub_8142E20 -sub_8142E20: @ 8142E20 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - adds r1, r2, 0 - adds r2, r3, 0 - lsls r1, 24 - lsrs r1, 24 - mov r0, sp - bl mevent_message_stamp_card_etc_send_status - adds r1, r0, 0 - ldr r0, [sp] - cmp r0, 0 - bne _08142E46 - adds r0, r4, 0 - bl mevent_0814257C - b _08142E4E -_08142E46: - adds r0, r4, 0 - adds r2, r5, 0 - bl mevent_08142CE8 -_08142E4E: - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8142E20 - - thumb_func_start task_add_00_mystery_gift -task_add_00_mystery_gift: @ 8142E58 - push {r4,lr} - ldr r0, _08142E98 @ =sub_8142EA0 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, _08142E9C @ =gTasks+0x8 - adds r4, r0 - movs r0, 0 - strb r0, [r4, 0x8] - strb r0, [r4, 0x9] - strb r0, [r4, 0xA] - strb r0, [r4, 0xB] - strb r0, [r4, 0xC] - strb r0, [r4, 0xD] - movs r1, 0 - strh r0, [r4] - strh r0, [r4, 0x2] - strh r0, [r4, 0x4] - strh r0, [r4, 0x6] - strb r1, [r4, 0xE] - movs r0, 0x40 - bl AllocZeroed - str r0, [r4, 0x10] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08142E98: .4byte sub_8142EA0 -_08142E9C: .4byte gTasks+0x8 - thumb_func_end task_add_00_mystery_gift - - thumb_func_start sub_8142EA0 -sub_8142EA0: @ 8142EA0 - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _08142EC4 @ =gTasks+0x8 - adds r5, r0, r1 - ldrb r0, [r5, 0x8] - cmp r0, 0x25 - bls _08142EBA - b _081435C6 -_08142EBA: - lsls r0, 2 - ldr r1, _08142EC8 @ =_08142ECC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08142EC4: .4byte gTasks+0x8 -_08142EC8: .4byte _08142ECC - .align 2, 0 -_08142ECC: - .4byte _08142F64 - .4byte _08142F6A - .4byte _08142FAC - .4byte _08142FE4 - .4byte _08143008 - .4byte _08143058 - .4byte _081430B8 - .4byte _081430EC - .4byte _081430FC - .4byte _08143174 - .4byte _08143198 - .4byte _081431B0 - .4byte _081431E0 - .4byte _0814321C - .4byte _08143232 - .4byte _08143264 - .4byte _0814358C - .4byte _081432C2 - .4byte _081432CC - .4byte _081435C6 - .4byte _081432DE - .4byte _0814332C - .4byte _081433A2 - .4byte _081433D2 - .4byte _08143408 - .4byte _08143422 - .4byte _08143436 - .4byte _08143442 - .4byte _08143456 - .4byte _0814346A - .4byte _0814349C - .4byte _081434D0 - .4byte _08143514 - .4byte _08143528 - .4byte _08143544 - .4byte _08143558 - .4byte _0814358C - .4byte _081435AC -_08142F64: - movs r0, 0x1 - strb r0, [r5, 0x8] - b _081435C6 -_08142F6A: - adds r0, r5, 0 - adds r0, 0x9 - adds r1, r5, 0 - movs r2, 0 - bl sub_81426D4 - adds r1, r0, 0 - cmp r1, 0x1 - beq _08142F94 - cmp r1, 0x1 - bcc _08142F8A - movs r0, 0x2 - negs r0, r0 - cmp r1, r0 - beq _08142FA6 - b _081435C6 -_08142F8A: - movs r0, 0 - strb r0, [r5, 0xC] - bl sub_8143FC8 - b _08142F9A -_08142F94: - strb r1, [r5, 0xC] - bl sub_8143E1C -_08142F9A: - cmp r0, 0x1 - bne _08142FA0 - b _081434C4 -_08142FA0: - movs r0, 0x2 - strb r0, [r5, 0x8] - b _081435C6 -_08142FA6: - movs r0, 0x25 - strb r0, [r5, 0x8] - b _081435C6 -_08142FAC: - ldrb r0, [r5, 0xC] - cmp r0, 0 - bne _08142FC0 - adds r0, r5, 0 - adds r0, 0x9 - ldr r1, _08142FBC @ =gUnknown_841E6A1 - b _08142FC6 - .align 2, 0 -_08142FBC: .4byte gUnknown_841E6A1 -_08142FC0: - adds r0, r5, 0 - adds r0, 0x9 - ldr r1, _08142FE0 @ =gUnknown_841E6DC -_08142FC6: - bl mevent_0814257C - cmp r0, 0 - bne _08142FD0 - b _081435C6 -_08142FD0: - movs r0, 0x3 - strb r0, [r5, 0x8] - movs r0, 0 - movs r1, 0x1 - bl sub_8142344 - b _081435C6 - .align 2, 0 -_08142FE0: .4byte gUnknown_841E6DC -_08142FE4: - ldrb r0, [r5, 0xC] - cmp r0, 0 - bne _08142FF8 - ldr r0, _08142FF4 @ =gUnknown_841E717 - bl sub_8142504 - b _08142FFE - .align 2, 0 -_08142FF4: .4byte gUnknown_841E717 -_08142FF8: - ldr r0, _08143004 @ =gUnknown_841E741 - bl sub_8142504 -_08142FFE: - movs r0, 0x4 - strb r0, [r5, 0x8] - b _081435C6 - .align 2, 0 -_08143004: .4byte gUnknown_841E741 -_08143008: - adds r0, r5, 0 - adds r0, 0x9 - adds r1, r5, 0 - movs r2, 0x1 - bl sub_81426D4 - adds r4, r0, 0 - cmp r4, 0x1 - beq _08143036 - cmp r4, 0x1 - bcc _08143028 - movs r0, 0x2 - negs r0, r0 - cmp r4, r0 - beq _08143042 - b _081435C6 -_08143028: - bl sub_8142560 - movs r1, 0 - movs r0, 0x5 - strb r0, [r5, 0x8] - strb r1, [r5, 0xD] - b _081435C6 -_08143036: - bl sub_8142560 - movs r0, 0x5 - strb r0, [r5, 0x8] - strb r4, [r5, 0xD] - b _081435C6 -_08143042: - bl sub_8142560 - ldrb r0, [r5, 0xC] - bl sub_8142A44 - cmp r0, 0 - beq _08143052 - b _081434C4 -_08143052: - strb r0, [r5, 0x8] - movs r0, 0 - b _0814359E -_08143058: - ldr r0, _08143074 @ =gStringVar1 - movs r1, 0xFF - strb r1, [r0] - ldr r0, _08143078 @ =gStringVar2 - strb r1, [r0] - ldr r0, _0814307C @ =gStringVar3 - strb r1, [r0] - ldrb r0, [r5, 0xC] - cmp r0, 0 - beq _08143080 - cmp r0, 0x1 - beq _0814309A - b _081430B2 - .align 2, 0 -_08143074: .4byte gStringVar1 -_08143078: .4byte gStringVar2 -_0814307C: .4byte gStringVar3 -_08143080: - ldrb r0, [r5, 0xD] - cmp r0, 0x1 - bne _0814308E - movs r0, 0x15 - bl sub_8117ED4 - b _081430B2 -_0814308E: - cmp r0, 0 - bne _081430B2 - movs r0, 0x15 - bl sub_8118290 - b _081430B2 -_0814309A: - ldrb r0, [r5, 0xD] - cmp r0, 0x1 - bne _081430A8 - movs r0, 0x16 - bl sub_8117ED4 - b _081430B2 -_081430A8: - cmp r0, 0 - bne _081430B2 - movs r0, 0x16 - bl sub_8118290 -_081430B2: - movs r0, 0x6 - strb r0, [r5, 0x8] - b _081435C6 -_081430B8: - ldr r0, _081430D0 @ =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - beq _081430D4 - movs r0, 0x1 - bl sub_81424B8 - movs r0, 0x7 - strb r0, [r5, 0x8] - bl mevent_srv_ish_do_init - b _081435C6 - .align 2, 0 -_081430D0: .4byte gReceivedRemoteLinkPlayers -_081430D4: - ldr r0, _081430E8 @ =gSpecialVar_Result - ldrh r0, [r0] - cmp r0, 0x5 - beq _081430DE - b _081435C6 -_081430DE: - movs r0, 0x1 - bl sub_81424B8 - b _08143464 - .align 2, 0 -_081430E8: .4byte gSpecialVar_Result -_081430EC: - ldr r0, _081430F8 @ =gUnknown_841E794 - bl sub_8142504 - movs r0, 0x8 - strb r0, [r5, 0x8] - b _081435C6 - .align 2, 0 -_081430F8: .4byte gUnknown_841E794 -_081430FC: - adds r0, r5, 0 - bl mevent_srv_ish_do_exec - subs r0, 0x2 - cmp r0, 0x4 - bls _0814310A - b _081435C6 -_0814310A: - lsls r0, 2 - ldr r1, _08143114 @ =_08143118 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08143114: .4byte _08143118 - .align 2, 0 -_08143118: - .4byte _08143156 - .4byte _08143150 - .4byte _0814315C - .4byte _0814313A - .4byte _0814312C -_0814312C: - bl task_add_05_task_del_08FA224_when_no_RfuFunc - ldrh r0, [r5] - strb r0, [r5, 0xE] - movs r0, 0xD - strb r0, [r5, 0x8] - b _081435C6 -_0814313A: - ldr r4, [r5, 0x10] - bl mevent_srv_ish_get_buffer - adds r1, r0, 0 - adds r0, r4, 0 - movs r2, 0x40 - bl memcpy - bl mevent_srv_ish_inc_flag - b _081435C6 -_08143150: - movs r0, 0xA - strb r0, [r5, 0x8] - b _081435C6 -_08143156: - movs r0, 0x9 - strb r0, [r5, 0x8] - b _081435C6 -_0814315C: - movs r0, 0xB - strb r0, [r5, 0x8] - ldr r0, _0814316C @ =gStringVar1 - ldr r1, _08143170 @ =gLinkPlayers + 8 - bl StringCopy - b _081435C6 - .align 2, 0 -_0814316C: .4byte gStringVar1 -_08143170: .4byte gLinkPlayers + 8 -_08143174: - adds r4, r5, 0 - adds r4, 0x9 - bl mevent_srv_ish_get_buffer - adds r3, r0, 0 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0 - bl sub_81427A0 - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0x1 - beq _0814320C - cmp r1, 0x1 - bcs _081431FA - movs r0, 0 - b _0814320E -_08143198: - adds r4, r5, 0 - adds r4, 0x9 - bl mevent_srv_ish_get_buffer - adds r1, r0, 0 - adds r0, r4, 0 - bl mevent_0814257C - cmp r0, 0 - bne _081431AE - b _081435C6 -_081431AE: - b _08143212 -_081431B0: - adds r0, r5, 0 - adds r0, 0x9 - ldr r3, _081431D8 @ =gUnknown_841E7F2 - adds r1, r5, 0 - movs r2, 0 - bl sub_81427A0 - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0x1 - beq _0814320C - cmp r1, 0x1 - bcs _081431FA - bl sub_8144144 - cmp r0, 0x1 - bne _081431DC - movs r0, 0xC - strb r0, [r5, 0x8] - b _081435C6 - .align 2, 0 -_081431D8: .4byte gUnknown_841E7F2 -_081431DC: - movs r0, 0 - b _0814320E -_081431E0: - adds r0, r5, 0 - adds r0, 0x9 - ldr r3, _08143204 @ =gUnknown_841E823 - adds r1, r5, 0 - movs r2, 0 - bl sub_81427A0 - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0x1 - beq _0814320C - cmp r1, 0x1 - bcc _08143208 -_081431FA: - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _0814320C - b _081435C6 - .align 2, 0 -_08143204: .4byte gUnknown_841E823 -_08143208: - movs r0, 0 - b _0814320E -_0814320C: - movs r0, 0x1 -_0814320E: - bl mevent_srv_ish_set_param -_08143212: - bl mevent_srv_ish_inc_flag - movs r0, 0x7 - strb r0, [r5, 0x8] - b _081435C6 -_0814321C: - bl sub_80FA4F8 - lsls r0, 24 - cmp r0, 0 - bne _08143228 - b _081435C6 -_08143228: - bl sub_80FCE44 - movs r0, 0xE - strb r0, [r5, 0x8] - b _081435C6 -_08143232: - adds r0, r5, 0 - adds r0, 0x9 - ldr r1, _08143258 @ =gUnknown_841E7A3 - bl sub_81426A0 - cmp r0, 0 - bne _08143242 - b _081435C6 -_08143242: - ldrb r0, [r5, 0xD] - cmp r0, 0x1 - bne _08143250 - ldr r0, _0814325C @ =gStringVar1 - ldr r1, _08143260 @ =gLinkPlayers + 8 - bl StringCopy -_08143250: - movs r0, 0xF - strb r0, [r5, 0x8] - b _081435C6 - .align 2, 0 -_08143258: .4byte gUnknown_841E7A3 -_0814325C: .4byte gStringVar1 -_08143260: .4byte gLinkPlayers + 8 -_08143264: - ldrb r1, [r5, 0xC] - ldrb r2, [r5, 0xD] - ldrb r3, [r5, 0xE] - mov r0, sp - bl mevent_message - adds r1, r0, 0 - cmp r1, 0 - bne _08143278 - ldr r1, [r5, 0x10] -_08143278: - ldr r0, [sp] - cmp r0, 0 - beq _0814328A - adds r0, r5, 0 - adds r0, 0x9 - adds r2, r5, 0 - bl mevent_08142CE8 - b _08143292 -_0814328A: - adds r0, r5, 0 - adds r0, 0x9 - bl mevent_0814257C -_08143292: - adds r1, r0, 0 - cmp r1, 0 - bne _0814329A - b _081435C6 -_0814329A: - ldrb r0, [r5, 0xE] - cmp r0, 0x3 - bne _081432B4 - ldrb r0, [r5, 0xD] - cmp r0, 0x1 - bne _081432AE - movs r0, 0x1 - bl sub_8146C30 - b _081432B4 -_081432AE: - movs r0, 0x2 - bl sub_8146C30 -_081432B4: - ldr r0, [sp] - cmp r0, 0 - beq _081432BC - b _0814357C -_081432BC: - strb r0, [r5, 0x8] - movs r0, 0 - b _0814359E -_081432C2: - adds r0, r5, 0 - adds r0, 0x9 - bl mevent_save_game - b _08143596 -_081432CC: - adds r0, r5, 0 - adds r0, 0x9 - ldrb r1, [r5, 0xC] - bl sub_8142A58 - cmp r0, 0 - bne _081432DC - b _081435C6 -_081432DC: - b _0814339C -_081432DE: - ldrb r0, [r5, 0xC] - cmp r0, 0 - bne _08143308 - ldr r2, _08143304 @ =gMain - ldrh r1, [r2, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _081432F4 - movs r0, 0x15 - strb r0, [r5, 0x8] -_081432F4: - ldrh r1, [r2, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _08143300 - b _081435C6 -_08143300: - b _08143326 - .align 2, 0 -_08143304: .4byte gMain -_08143308: - ldr r0, _0814331C @ =gMain - ldrh r0, [r0, 0x2E] - bl sub_8146884 - cmp r0, 0 - beq _08143320 - cmp r0, 0x1 - beq _08143326 - b _081435C6 - .align 2, 0 -_0814331C: .4byte gMain -_08143320: - bl sub_81467EC - b _08143402 -_08143326: - movs r0, 0x1B - strb r0, [r5, 0x8] - b _081435C6 -_0814332C: - ldrb r0, [r5, 0xC] - cmp r0, 0 - bne _08143346 - bl sub_8144054 - cmp r0, 0 - beq _0814335A - adds r0, r5, 0 - adds r0, 0x9 - ldrb r2, [r5, 0xC] - adds r1, r5, 0 - movs r3, 0 - b _08143364 -_08143346: - bl sub_8143E78 - cmp r0, 0 - beq _0814335A - adds r0, r5, 0 - adds r0, 0x9 - ldrb r2, [r5, 0xC] - adds r1, r5, 0 - movs r3, 0 - b _08143364 -_0814335A: - adds r0, r5, 0 - adds r0, 0x9 - ldrb r2, [r5, 0xC] - adds r1, r5, 0 - movs r3, 0x1 -_08143364: - bl sub_81428F4 - adds r1, r0, 0 - cmp r1, 0x1 - beq _08143386 - cmp r1, 0x1 - bcc _08143380 - cmp r1, 0x2 - beq _0814338C - movs r0, 0x2 - negs r0, r0 - cmp r1, r0 - beq _08143392 - b _081435C6 -_08143380: - movs r0, 0x1C - strb r0, [r5, 0x8] - b _081435C6 -_08143386: - movs r0, 0x1D - strb r0, [r5, 0x8] - b _081435C6 -_0814338C: - movs r0, 0x16 - strb r0, [r5, 0x8] - b _081435C6 -_08143392: - ldrb r0, [r5, 0xC] - cmp r0, 0x1 - bne _0814339C - bl sub_8146834 -_0814339C: - movs r0, 0x14 - strb r0, [r5, 0x8] - b _081435C6 -_081433A2: - adds r0, r5, 0 - adds r0, 0x9 - ldrb r2, [r5, 0xC] - adds r1, r5, 0 - bl sub_8142AFC - adds r1, r0, 0 - cmp r1, 0 - beq _081433BE - cmp r1, 0 - ble _081433EC - cmp r1, 0x1 - beq _08143402 - b _081435C6 -_081433BE: - ldrb r0, [r5, 0xC] - cmp r0, 0 - bne _081433FC - bl sub_8144144 - cmp r0, 0x1 - bne _081433FC - movs r0, 0x17 - strb r0, [r5, 0x8] - b _081435C6 -_081433D2: - adds r0, r5, 0 - adds r0, 0x9 - ldr r3, _081433F8 @ =gUnknown_841ECF9 - adds r1, r5, 0 - movs r2, 0x1 - bl sub_81427A0 - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0x1 - beq _08143402 - cmp r1, 0x1 - bcc _081433FC -_081433EC: - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _08143402 - b _081435C6 - .align 2, 0 -_081433F8: .4byte gUnknown_841ECF9 -_081433FC: - movs r0, 0x18 - strb r0, [r5, 0x8] - b _081435C6 -_08143402: - movs r0, 0x15 - strb r0, [r5, 0x8] - b _081435C6 -_08143408: - ldrb r0, [r5, 0xC] - movs r1, 0x1 - bl sub_8142ACC - cmp r0, 0 - bne _08143416 - b _081435C6 -_08143416: - ldrb r0, [r5, 0xC] - bl sub_8142AB4 - movs r0, 0x19 - strb r0, [r5, 0x8] - b _081435C6 -_08143422: - adds r0, r5, 0 - adds r0, 0x9 - bl mevent_save_game - cmp r0, 0 - bne _08143430 - b _081435C6 -_08143430: - movs r0, 0x1A - strb r0, [r5, 0x8] - b _081435C6 -_08143436: - adds r0, r5, 0 - adds r0, 0x9 - ldrb r1, [r5, 0xC] - bl mevent_message_was_thrown_away - b _08143596 -_08143442: - ldrb r0, [r5, 0xC] - movs r1, 0 - bl sub_8142ACC - cmp r0, 0 - bne _08143450 - b _081435C6 -_08143450: - movs r0, 0 - strb r0, [r5, 0x8] - b _081435C6 -_08143456: - ldrb r0, [r5, 0xC] - movs r1, 0x1 - bl sub_8142ACC - cmp r0, 0 - bne _08143464 - b _081435C6 -_08143464: - movs r0, 0x3 - strb r0, [r5, 0x8] - b _081435C6 -_0814346A: - ldrb r0, [r5, 0xC] - movs r1, 0x1 - bl sub_8142ACC - cmp r0, 0 - bne _08143478 - b _081435C6 -_08143478: - ldrb r0, [r5, 0xC] - cmp r0, 0 - beq _08143484 - cmp r0, 0x1 - beq _0814348C - b _08143492 -_08143484: - movs r0, 0x15 - bl sub_81179CC - b _08143492 -_0814348C: - movs r0, 0x16 - bl sub_81179CC -_08143492: - movs r0, 0x1 - strb r0, [r5, 0xD] - movs r0, 0x1E - strb r0, [r5, 0x8] - b _081435C6 -_0814349C: - ldr r0, _081434B0 @ =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - beq _081434B4 - movs r0, 0x1 - bl sub_81424B8 - movs r0, 0x1F - strb r0, [r5, 0x8] - b _081435C6 - .align 2, 0 -_081434B0: .4byte gReceivedRemoteLinkPlayers -_081434B4: - ldr r0, _081434CC @ =gSpecialVar_Result - ldrh r0, [r0] - cmp r0, 0x5 - beq _081434BE - b _081435C6 -_081434BE: - movs r0, 0x1 - bl sub_81424B8 -_081434C4: - movs r0, 0x12 - strb r0, [r5, 0x8] - b _081435C6 - .align 2, 0 -_081434CC: .4byte gSpecialVar_Result -_081434D0: - ldr r0, _081434F0 @ =gStringVar1 - movs r1, 0xFF - strb r1, [r0] - ldr r0, _081434F4 @ =gStringVar2 - strb r1, [r0] - ldr r0, _081434F8 @ =gStringVar3 - strb r1, [r0] - ldrb r0, [r5, 0xC] - cmp r0, 0 - bne _08143500 - ldr r0, _081434FC @ =gUnknown_841EAE7 - bl sub_8142504 - bl mevent_srv_common_do_init_2 - b _0814350A - .align 2, 0 -_081434F0: .4byte gStringVar1 -_081434F4: .4byte gStringVar2 -_081434F8: .4byte gStringVar3 -_081434FC: .4byte gUnknown_841EAE7 -_08143500: - ldr r0, _08143510 @ =gUnknown_841EB01 - bl sub_8142504 - bl mevent_srv_common_do_init_1 -_0814350A: - movs r0, 0x20 - strb r0, [r5, 0x8] - b _081435C6 - .align 2, 0 -_08143510: .4byte gUnknown_841EB01 -_08143514: - adds r0, r5, 0 - bl mevent_srv_init_do_exec - cmp r0, 0x3 - bne _081435C6 - ldrh r0, [r5] - strb r0, [r5, 0xE] - movs r0, 0x21 - strb r0, [r5, 0x8] - b _081435C6 -_08143528: - bl task_add_05_task_del_08FA224_when_no_RfuFunc - ldr r0, _0814353C @ =gStringVar1 - ldr r1, _08143540 @ =gLinkPlayers + 0x24 - bl StringCopy - movs r0, 0x22 - strb r0, [r5, 0x8] - b _081435C6 - .align 2, 0 -_0814353C: .4byte gStringVar1 -_08143540: .4byte gLinkPlayers + 0x24 -_08143544: - bl sub_80FA4F8 - lsls r0, 24 - cmp r0, 0 - beq _081435C6 - bl sub_80FCE44 - movs r0, 0x23 - strb r0, [r5, 0x8] - b _081435C6 -_08143558: - adds r0, r5, 0 - adds r0, 0x9 - ldrb r2, [r5, 0xD] - ldrb r3, [r5, 0xE] - adds r1, r5, 0 - bl sub_8142E20 - cmp r0, 0 - beq _081435C6 - ldr r0, [r5, 0xC] - ldr r1, _08143584 @ =0x00ffff00 - ands r0, r1 - ldr r1, _08143588 @ =0x00030100 - cmp r0, r1 - bne _0814359A - movs r0, 0x3 - bl sub_8146C30 -_0814357C: - movs r0, 0x11 - strb r0, [r5, 0x8] - b _081435C6 - .align 2, 0 -_08143584: .4byte 0x00ffff00 -_08143588: .4byte 0x00030100 -_0814358C: - adds r0, r5, 0 - adds r0, 0x9 - ldr r1, _081435A8 @ =gUnknown_841E7BC - bl mevent_0814257C -_08143596: - cmp r0, 0 - beq _081435C6 -_0814359A: - movs r0, 0 - strb r0, [r5, 0x8] -_0814359E: - movs r1, 0 - bl sub_8142344 - b _081435C6 - .align 2, 0 -_081435A8: .4byte gUnknown_841E7BC -_081435AC: - bl sub_80098B8 - bl sub_812B484 - ldr r0, [r5, 0x10] - bl Free - adds r0, r4, 0 - bl DestroyTask - ldr r0, _081435D0 @ =sub_81422FC - bl SetMainCallback2 -_081435C6: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_081435D0: .4byte sub_81422FC - thumb_func_end sub_8142EA0 - - thumb_func_start sub_81435D4 -sub_81435D4: @ 81435D4 - ldr r0, _081435D8 @ =0x0000019b - bx lr - .align 2, 0 -_081435D8: .4byte 0x0000019b - thumb_func_end sub_81435D4 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/main_menu.s b/asm/main_menu.s index b170db136..d7bf1e406 100644 --- a/asm/main_menu.s +++ b/asm/main_menu.s @@ -1005,7 +1005,7 @@ _0800CB64: .4byte gPlttBufferUnfaded _0800CB68: .4byte gPlttBufferFaded _0800CB6C: .4byte gUnknown_2031DE0 _0800CB70: - ldr r0, _0800CB8C @ =sub_81422AC + ldr r0, _0800CB8C @ =c2_mystery_gift bl SetMainCallback2 bl sub_812B478 bl FreeAllWindowBuffers @@ -1017,7 +1017,7 @@ _0800CB84: pop {r0} bx r0 .align 2, 0 -_0800CB8C: .4byte sub_81422AC +_0800CB8C: .4byte c2_mystery_gift thumb_func_end sub_800CA94 thumb_func_start sub_800CB90 @@ -1141,7 +1141,7 @@ sub_800CC68: @ 800CC68 ands r0, r1 cmp r0, 0 bne _0800CC86 - ldr r0, _0800CC90 @ =sub_8078914 + ldr r0, _0800CC90 @ =CB2_InitTitleScreen bl SetMainCallback2 adds r0, r4, 0 bl DestroyTask @@ -1151,7 +1151,7 @@ _0800CC86: bx r0 .align 2, 0 _0800CC8C: .4byte gPaletteFade -_0800CC90: .4byte sub_8078914 +_0800CC90: .4byte CB2_InitTitleScreen thumb_func_end sub_800CC68 thumb_func_start sub_800CC94 diff --git a/asm/mystery_gift_menu.s b/asm/mystery_gift_menu.s index baf5b55f5..e96bdf803 100644 --- a/asm/mystery_gift_menu.s +++ b/asm/mystery_gift_menu.s @@ -5,167 +5,2312 @@ .text - thumb_func_start sub_81422AC -sub_81422AC: @ 81422AC + thumb_func_start sub_814240C +sub_814240C: @ 814240C push {lr} + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x1 + movs r2, 0xF + bl sub_8150048 + pop {r0} + bx r0 + thumb_func_end sub_814240C + + thumb_func_start sub_8142420 +sub_8142420: @ 8142420 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC movs r0, 0 - bl HandleMysteryGiftOrEReaderSetup + mov r8, r0 + movs r0, 0x20 + str r0, [sp] + movs r0, 0x2 + str r0, [sp, 0x4] + movs r0, 0x11 + str r0, [sp, 0x8] + movs r0, 0x3 + movs r1, 0x3 + movs r2, 0 + movs r3, 0 + bl FillBgTilemapBufferRect + movs r4, 0x1 + movs r1, 0x11 + mov r10, r1 +_0814244E: + movs r7, 0 + mov r0, r8 + adds r0, 0x2 + movs r1, 0x1 + add r1, r8 + mov r9, r1 + lsls r5, r0, 24 + movs r6, 0 +_0814245E: + mov r1, r8 + ands r1, r4 + adds r0, r7, 0 + ands r0, r4 + cmp r1, r0 + beq _08142480 + lsrs r2, r6, 24 + str r4, [sp] + str r4, [sp, 0x4] + mov r0, r10 + str r0, [sp, 0x8] + movs r0, 0x3 + movs r1, 0x1 + lsrs r3, r5, 24 + bl FillBgTilemapBufferRect + b _08142494 +_08142480: + lsrs r2, r6, 24 + str r4, [sp] + str r4, [sp, 0x4] + mov r1, r10 + str r1, [sp, 0x8] + movs r0, 0x3 + movs r1, 0x2 + lsrs r3, r5, 24 + bl FillBgTilemapBufferRect +_08142494: + movs r0, 0x80 + lsls r0, 17 + adds r6, r0 + adds r7, 0x1 + cmp r7, 0x1F + ble _0814245E + mov r8, r9 + mov r1, r8 + cmp r1, 0x11 + ble _0814244E + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8142420 + + thumb_func_start sub_81424B8 +sub_81424B8: @ 81424B8 + push {lr} + sub sp, 0xC cmp r0, 0 - beq _081422C8 - ldr r0, _081422CC @ =c2_mystery_gift_e_reader_run - bl SetMainCallback2 - ldr r1, _081422D0 @ =gUnknown_203F3B8 + beq _081424C6 + cmp r0, 0x1 + beq _081424DE + b _081424F6 +_081424C6: + movs r0, 0x20 + str r0, [sp] + str r0, [sp, 0x4] + movs r0, 0x11 + str r0, [sp, 0x8] movs r0, 0 - strb r0, [r1] - bl task_add_00_mystery_gift -_081422C8: + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl FillBgTilemapBufferRect + b _081424F6 +_081424DE: + movs r0, 0x20 + str r0, [sp] + movs r0, 0x1E + str r0, [sp, 0x4] + movs r0, 0x11 + str r0, [sp, 0x8] + movs r0, 0 + movs r1, 0 + movs r2, 0 + movs r3, 0x2 + bl FillBgTilemapBufferRect +_081424F6: + movs r0, 0 + bl CopyBgTilemapBufferToVram + add sp, 0xC + pop {r0} + bx r0 + thumb_func_end sub_81424B8 + + thumb_func_start sub_8142504 +sub_8142504: @ 8142504 + push {r4,lr} + sub sp, 0x14 + adds r1, r0, 0 + ldr r4, _08142558 @ =gStringVar4 + adds r0, r4, 0 + bl StringExpandPlaceholders + movs r0, 0x1 + movs r1, 0x11 + bl FillWindowPixelBuffer + movs r1, 0 + str r1, [sp] + movs r0, 0x2 + str r0, [sp, 0x4] + ldr r0, _0814255C @ =gUnknown_8466EF0 + str r0, [sp, 0x8] + str r1, [sp, 0xC] + str r4, [sp, 0x10] + movs r0, 0x1 + movs r1, 0x2 + movs r2, 0 + movs r3, 0x2 + bl AddTextPrinterParametrized2 + movs r0, 0x1 + movs r1, 0x1 + movs r2, 0xF + bl sub_8150048 + movs r0, 0x1 + bl PutWindowTilemap + movs r0, 0x1 + movs r1, 0x3 + bl CopyWindowToVram + add sp, 0x14 + pop {r4} pop {r0} bx r0 .align 2, 0 -_081422CC: .4byte c2_mystery_gift_e_reader_run -_081422D0: .4byte gUnknown_203F3B8 - thumb_func_end sub_81422AC +_08142558: .4byte gStringVar4 +_0814255C: .4byte gUnknown_8466EF0 + thumb_func_end sub_8142504 - thumb_func_start sub_81422D4 -sub_81422D4: @ 81422D4 + thumb_func_start sub_8142560 +sub_8142560: @ 8142560 push {lr} movs r0, 0x1 - bl HandleMysteryGiftOrEReaderSetup + bl rbox_fill_rectangle + movs r0, 0x1 + bl ClearWindowTilemap + movs r0, 0x1 + movs r1, 0x1 + bl CopyWindowToVram + pop {r0} + bx r0 + thumb_func_end sub_8142560 + + thumb_func_start mevent_0814257C +mevent_0814257C: @ 814257C + push {r4,lr} + sub sp, 0xC + adds r4, r0, 0 + adds r0, r1, 0 + ldrb r2, [r4] + cmp r2, 0x1 + beq _081425A4 + cmp r2, 0x1 + bgt _08142594 + cmp r2, 0 + beq _0814259E + b _08142604 +_08142594: + cmp r2, 0x2 + beq _081425D8 + cmp r2, 0xFF + beq _08142600 + b _08142604 +_0814259E: + bl sub_8142504 + b _081425C8 +_081425A4: + movs r0, 0 + str r0, [sp] + ldr r0, _081425D0 @ =sDownArrowCounterAndYCoordIdx + str r0, [sp, 0x4] + adds r0, 0x1 + str r0, [sp, 0x8] + movs r0, 0x1 + movs r1, 0xD0 + movs r2, 0x14 + movs r3, 0x1 + bl DrawDownArrow + ldr r0, _081425D4 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x3 + ands r0, r1 cmp r0, 0 - beq _081422F0 - ldr r0, _081422F4 @ =c2_mystery_gift_e_reader_run - bl SetMainCallback2 - ldr r1, _081422F8 @ =gUnknown_203F3B8 + beq _08142604 +_081425C8: + ldrb r0, [r4] + adds r0, 0x1 + b _08142602 + .align 2, 0 +_081425D0: .4byte sDownArrowCounterAndYCoordIdx +_081425D4: .4byte gMain +_081425D8: + movs r0, 0x1 + str r0, [sp] + ldr r0, _081425FC @ =sDownArrowCounterAndYCoordIdx + str r0, [sp, 0x4] + adds r0, 0x1 + str r0, [sp, 0x8] + movs r0, 0x1 + movs r1, 0xD0 + movs r2, 0x14 + movs r3, 0x1 + bl DrawDownArrow + movs r0, 0 + strb r0, [r4] + bl sub_8142560 + movs r0, 0x1 + b _08142606 + .align 2, 0 +_081425FC: .4byte sDownArrowCounterAndYCoordIdx +_08142600: + movs r0, 0x2 +_08142602: + strb r0, [r4] +_08142604: + movs r0, 0 +_08142606: + add sp, 0xC + pop {r4} + pop {r1} + bx r1 + thumb_func_end mevent_0814257C + + thumb_func_start sub_8142610 +sub_8142610: @ 8142610 + push {lr} + sub sp, 0xC + movs r0, 0 + str r0, [sp] + ldr r0, _08142634 @ =sDownArrowCounterAndYCoordIdx + str r0, [sp, 0x4] + adds r0, 0x1 + str r0, [sp, 0x8] movs r0, 0x1 - strb r0, [r1] - bl sub_81438A0 -_081422F0: + movs r1, 0xD0 + movs r2, 0x14 + movs r3, 0x1 + bl DrawDownArrow + add sp, 0xC pop {r0} bx r0 .align 2, 0 -_081422F4: .4byte c2_mystery_gift_e_reader_run -_081422F8: .4byte gUnknown_203F3B8 - thumb_func_end sub_81422D4 +_08142634: .4byte sDownArrowCounterAndYCoordIdx + thumb_func_end sub_8142610 - thumb_func_start sub_81422FC -sub_81422FC: @ 81422FC + thumb_func_start sub_8142638 +sub_8142638: @ 8142638 push {lr} - ldr r1, _0814233C @ =gUnknown_203F3B8 + sub sp, 0xC + movs r0, 0x1 + str r0, [sp] + ldr r0, _0814265C @ =sDownArrowCounterAndYCoordIdx + str r0, [sp, 0x4] + adds r0, 0x1 + str r0, [sp, 0x8] + movs r0, 0x1 + movs r1, 0xD0 + movs r2, 0x14 + movs r3, 0x1 + bl DrawDownArrow + add sp, 0xC + pop {r0} + bx r0 + .align 2, 0 +_0814265C: .4byte sDownArrowCounterAndYCoordIdx + thumb_func_end sub_8142638 + + thumb_func_start sub_8142660 +sub_8142660: @ 8142660 + push {r4,lr} + adds r4, r0, 0 + ldrb r0, [r4] + cmp r0, 0 + beq _08142670 + cmp r0, 0x1 + beq _0814268C + b _08142698 +_08142670: + bl sub_8142610 + ldr r0, _08142688 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + beq _08142698 + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + b _08142698 + .align 2, 0 +_08142688: .4byte gMain +_0814268C: + bl sub_8142638 movs r0, 0 - strb r0, [r1] - bl FreeAllWindowBuffers + strb r0, [r4] + movs r0, 0x1 + b _0814269A +_08142698: movs r0, 0 - bl GetBgTilemapBuffer - bl Free +_0814269A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8142660 + + thumb_func_start sub_81426A0 +sub_81426A0: @ 81426A0 + push {r4,lr} + adds r4, r0, 0 + ldrb r0, [r4] + cmp r0, 0 + bne _081426B0 + adds r0, r1, 0 + bl sub_8142504 +_081426B0: + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x78 + bhi _081426C2 + movs r0, 0 + b _081426CC +_081426C2: + movs r0, 0 + strb r0, [r4] + bl sub_8142560 movs r0, 0x1 - bl GetBgTilemapBuffer - bl Free +_081426CC: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81426A0 + + thumb_func_start sub_81426D4 +sub_81426D4: @ 81426D4 + push {r4-r7,lr} + sub sp, 0x24 + lsls r2, 24 + add r1, sp, 0x4 + ldr r0, _081426F8 @ =gUnknown_8466E00 + ldm r0!, {r3-r5} + stm r1!, {r3-r5} + ldm r0!, {r3-r5} + stm r1!, {r3-r5} + ldr r0, _081426FC @ =gUnknown_8466DA8 + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [sp, 0x1C] + str r1, [sp, 0x20] + cmp r2, 0 + bne _08142704 + ldr r0, _08142700 @ =gUnknown_8466DD0 + b _08142706 + .align 2, 0 +_081426F8: .4byte gUnknown_8466E00 +_081426FC: .4byte gUnknown_8466DA8 +_08142700: .4byte gUnknown_8466DD0 +_08142704: + ldr r0, _08142794 @ =gUnknown_8466DE8 +_08142706: + str r0, [sp, 0x4] + movs r6, 0 + movs r4, 0 + add r0, sp, 0x4 + add r7, sp, 0x1C + ldrh r0, [r0, 0xC] + cmp r6, r0 + bcs _0814273A + add r5, sp, 0x4 +_08142718: + ldr r1, [sp, 0x4] + lsls r0, r4, 3 + adds r0, r1 + ldr r1, [r0] + ldrb r2, [r5, 0x16] + lsls r2, 29 + lsrs r2, 29 movs r0, 0x2 - bl GetBgTilemapBuffer - bl Free - movs r0, 0x3 - bl GetBgTilemapBuffer - bl Free - ldr r0, _08142340 @ =sub_8078914 - bl SetMainCallback2 - pop {r0} - bx r0 + bl GetStringWidth + cmp r0, r6 + bls _08142732 + adds r6, r0, 0 +_08142732: + adds r4, 0x1 + ldrh r0, [r5, 0xC] + cmp r4, r0 + bcc _08142718 +_0814273A: + adds r2, r6, 0 + adds r2, 0x9 + lsrs r2, 3 + adds r2, 0x2 + movs r0, 0x2 + negs r0, r0 + ands r2, r0 + lsls r3, r2, 24 + ldr r0, _08142798 @ =0x00ffffff + ldr r1, [sp, 0x1C] + ands r1, r0 + orrs r1, r3 + movs r0, 0x1E + subs r0, r2 + lsls r0, 23 + lsrs r0, 16 + ldr r2, _0814279C @ =0xffff00ff + ands r1, r2 + orrs r1, r0 + str r1, [sp, 0x1C] + movs r0, 0xE0 + str r0, [sp] + adds r0, r7, 0 + add r1, sp, 0x4 + movs r2, 0x1 + movs r3, 0xA + bl DoMysteryGiftListMenu + adds r4, r0, 0 + movs r0, 0x1 + negs r0, r0 + cmp r4, r0 + beq _0814278A + movs r0, 0x2 + bl ClearWindowTilemap + movs r0, 0x2 + movs r1, 0x1 + bl CopyWindowToVram +_0814278A: + adds r0, r4, 0 + add sp, 0x24 + pop {r4-r7} + pop {r1} + bx r1 .align 2, 0 -_0814233C: .4byte gUnknown_203F3B8 -_08142340: .4byte sub_8078914 - thumb_func_end sub_81422FC +_08142794: .4byte gUnknown_8466DE8 +_08142798: .4byte 0x00ffffff +_0814279C: .4byte 0xffff00ff + thumb_func_end sub_81426D4 - thumb_func_start sub_8142344 -sub_8142344: @ 8142344 + thumb_func_start sub_81427A0 +sub_81427A0: @ 81427A0 push {r4-r6,lr} - sub sp, 0x14 + sub sp, 0x1C + adds r5, r0, 0 adds r4, r1, 0 - lsls r0, 24 - lsrs r5, r0, 24 - movs r0, 0 - movs r1, 0 + adds r1, r3, 0 + lsls r2, 24 + lsrs r6, r2, 24 + ldrb r0, [r5] + cmp r0, 0x1 + beq _08142834 + cmp r0, 0x1 + bgt _081427BE + cmp r0, 0 + beq _081427CA + b _081428E6 +_081427BE: + cmp r0, 0x2 + beq _0814288C + cmp r0, 0xFF + bne _081427C8 + b _081428C2 +_081427C8: + b _081428E6 +_081427CA: + ldr r0, _081427D8 @ =gStringVar4 + bl StringExpandPlaceholders + cmp r6, 0 + bne _081427E0 + ldr r0, _081427DC @ =gUnknown_8466D90 + b _081427E2 + .align 2, 0 +_081427D8: .4byte gStringVar4 +_081427DC: .4byte gUnknown_8466D90 +_081427E0: + ldr r0, _08142828 @ =gUnknown_8466D98 +_081427E2: + bl AddWindow + strh r0, [r4] + ldrb r0, [r4] + movs r1, 0x11 bl FillWindowPixelBuffer - cmp r5, 0 - bne _081423B4 - ldr r6, _081423A4 @ =gUnknown_841EDCA - cmp r4, 0x1 - bne _08142362 - ldr r6, _081423A8 @ =gUnknown_8415F51 -_08142362: - str r5, [sp] - str r5, [sp, 0x4] - ldr r4, _081423AC @ =gUnknown_8466EE8 - str r4, [sp, 0x8] - str r5, [sp, 0xC] - ldr r0, _081423B0 @ =gUnknown_841EDBD - str r0, [sp, 0x10] - movs r0, 0 + ldrb r0, [r4] + movs r2, 0 + str r2, [sp] + movs r1, 0x2 + str r1, [sp, 0x4] + ldr r1, _0814282C @ =gUnknown_8466EF0 + str r1, [sp, 0x8] + str r2, [sp, 0xC] + ldr r1, _08142830 @ =gStringVar4 + str r1, [sp, 0x10] movs r1, 0x2 - movs r2, 0x2 movs r3, 0x2 bl AddTextPrinterParametrized2 + ldrb r0, [r4] + movs r1, 0x1 + movs r2, 0xF + bl sub_8150048 + ldrb r0, [r4] + movs r1, 0x2 + bl CopyWindowToVram + ldrb r0, [r4] + bl PutWindowTilemap + b _0814287E + .align 2, 0 +_08142828: .4byte gUnknown_8466D98 +_0814282C: .4byte gUnknown_8466EF0 +_08142830: .4byte gStringVar4 +_08142834: + ldr r0, _08142850 @ =gUnknown_8466DB0 + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [sp, 0x14] + str r1, [sp, 0x18] + cmp r6, 0 + bne _08142858 + ldr r0, _08142854 @ =0xff00ffff + ldr r1, [sp, 0x14] + ands r1, r0 + movs r0, 0x90 + lsls r0, 12 + b _08142862 + .align 2, 0 +_08142850: .4byte gUnknown_8466DB0 +_08142854: .4byte 0xff00ffff +_08142858: + ldr r0, _08142888 @ =0xff00ffff + ldr r1, [sp, 0x14] + ands r1, r0 + movs r0, 0xF0 + lsls r0, 12 +_08142862: + orrs r1, r0 + str r1, [sp, 0x14] + movs r0, 0xA + str r0, [sp] + movs r0, 0xE + str r0, [sp, 0x4] movs r0, 0 - adds r1, r6, 0 + str r0, [sp, 0x8] + add r0, sp, 0x14 + movs r1, 0x2 movs r2, 0 - bl GetStringWidth - movs r2, 0xDE - subs r2, r0 - lsls r2, 24 - lsrs r2, 24 - str r5, [sp] - str r5, [sp, 0x4] - str r4, [sp, 0x8] - str r5, [sp, 0xC] - str r6, [sp, 0x10] - movs r0, 0 - movs r1, 0 movs r3, 0x2 - bl AddTextPrinterParametrized2 - b _081423E8 + bl sub_810FF60 +_0814287E: + ldrb r0, [r5] + adds r0, 0x1 + strb r0, [r5] + b _081428E6 .align 2, 0 -_081423A4: .4byte gUnknown_841EDCA -_081423A8: .4byte gUnknown_8415F51 -_081423AC: .4byte gUnknown_8466EE8 -_081423B0: .4byte gUnknown_841EDBD -_081423B4: - movs r4, 0 - str r4, [sp] - str r4, [sp, 0x4] - ldr r5, _08142400 @ =gUnknown_8466EE8 - str r5, [sp, 0x8] - str r4, [sp, 0xC] - ldr r0, _08142404 @ =gUnknown_841DE50 - str r0, [sp, 0x10] +_08142888: .4byte 0xff00ffff +_0814288C: + bl ProcessMenuInputNoWrap_ + lsls r0, 24 + asrs r6, r0, 24 + movs r1, 0x80 + lsls r1, 17 + adds r0, r1 + lsrs r0, 24 + cmp r0, 0x2 + bhi _081428E6 movs r0, 0 - movs r1, 0x2 - movs r2, 0x2 - movs r3, 0x2 - bl AddTextPrinterParametrized2 - str r4, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - str r4, [sp, 0xC] - ldr r0, _08142408 @ =gUnknown_841DE51 - str r0, [sp, 0x10] + strb r0, [r5] + ldrb r0, [r4] + bl rbox_fill_rectangle + ldrb r0, [r4] + bl ClearWindowTilemap + ldrb r0, [r4] + movs r1, 0x1 + bl CopyWindowToVram + ldrb r0, [r4] + bl RemoveWindow + adds r0, r6, 0 + b _081428EA +_081428C2: movs r0, 0 - movs r1, 0 - movs r2, 0x78 + strb r0, [r5] + ldrb r0, [r4] + bl rbox_fill_rectangle + ldrb r0, [r4] + bl ClearWindowTilemap + ldrb r0, [r4] + movs r1, 0x1 + bl CopyWindowToVram + ldrb r0, [r4] + bl RemoveWindow + movs r0, 0x1 + negs r0, r0 + b _081428EA +_081428E6: + movs r0, 0x2 + negs r0, r0 +_081428EA: + add sp, 0x1C + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_81427A0 + + thumb_func_start sub_81428F4 +sub_81428F4: @ 81428F4 + push {r4-r6,lr} + sub sp, 0x14 + adds r6, r0, 0 + adds r5, r1, 0 + ldrb r0, [r6] + cmp r0, 0x1 + beq _08142994 + cmp r0, 0x1 + bgt _0814290C + cmp r0, 0 + beq _08142914 + b _08142A38 +_0814290C: + cmp r0, 0xFF + bne _08142912 + b _08142A14 +_08142912: + b _08142A38 +_08142914: + cmp r2, 0 + bne _0814292C + ldr r0, _08142924 @ =gStringVar4 + ldr r1, _08142928 @ =gUnknown_841EA86 + bl StringExpandPlaceholders + b _08142934 + .align 2, 0 +_08142924: .4byte gStringVar4 +_08142928: .4byte gUnknown_841EA86 +_0814292C: + ldr r0, _08142984 @ =gStringVar4 + ldr r1, _08142988 @ =gUnknown_841EAB7 + bl StringExpandPlaceholders +_08142934: + ldr r0, _0814298C @ =gUnknown_8466DA0 + bl AddWindow + strh r0, [r5] + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x11 + bl FillWindowPixelBuffer + ldrb r0, [r5] + movs r2, 0 + str r2, [sp] + movs r1, 0x2 + str r1, [sp, 0x4] + ldr r1, _08142990 @ =gUnknown_8466EF0 + str r1, [sp, 0x8] + str r2, [sp, 0xC] + ldr r1, _08142984 @ =gStringVar4 + str r1, [sp, 0x10] + movs r1, 0x2 movs r3, 0x2 bl AddTextPrinterParametrized2 -_081423E8: - movs r0, 0 + ldrb r0, [r5] + movs r1, 0x1 + movs r2, 0xF + bl sub_8150048 + ldrb r0, [r5] movs r1, 0x2 bl CopyWindowToVram - movs r0, 0 + ldrb r0, [r5] bl PutWindowTilemap + ldrb r0, [r6] + adds r0, 0x1 + strb r0, [r6] + b _08142A38 + .align 2, 0 +_08142984: .4byte gStringVar4 +_08142988: .4byte gUnknown_841EAB7 +_0814298C: .4byte gUnknown_8466DA0 +_08142990: .4byte gUnknown_8466EF0 +_08142994: + cmp r3, 0 + beq _081429BC + cmp r2, 0 + bne _081429AC + ldr r0, _081429A4 @ =gUnknown_8466DC0 + ldr r1, _081429A8 @ =gUnknown_8466E90 + b _081429D4 + .align 2, 0 +_081429A4: .4byte gUnknown_8466DC0 +_081429A8: .4byte gUnknown_8466E90 +_081429AC: + ldr r0, _081429B4 @ =gUnknown_8466DC8 + ldr r1, _081429B8 @ =gUnknown_8466EC0 + b _081429D4 + .align 2, 0 +_081429B4: .4byte gUnknown_8466DC8 +_081429B8: .4byte gUnknown_8466EC0 +_081429BC: + cmp r2, 0 + bne _081429D0 + ldr r0, _081429C8 @ =gUnknown_8466DB8 + ldr r1, _081429CC @ =gUnknown_8466E78 + b _081429D4 + .align 2, 0 +_081429C8: .4byte gUnknown_8466DB8 +_081429CC: .4byte gUnknown_8466E78 +_081429D0: + ldr r0, _08142A0C @ =gUnknown_8466DC0 + ldr r1, _08142A10 @ =gUnknown_8466EA8 +_081429D4: + movs r2, 0xE0 + str r2, [sp] + movs r2, 0x1 + movs r3, 0xA + bl DoMysteryGiftListMenu + adds r4, r0, 0 + movs r0, 0x1 + negs r0, r0 + cmp r4, r0 + beq _08142A38 + movs r0, 0 + strb r0, [r6] + ldrb r0, [r5] + bl rbox_fill_rectangle + ldrb r0, [r5] + bl ClearWindowTilemap + ldrb r0, [r5] + movs r1, 0x1 + bl CopyWindowToVram + ldrb r0, [r5] + bl RemoveWindow + adds r0, r4, 0 + b _08142A3C + .align 2, 0 +_08142A0C: .4byte gUnknown_8466DC0 +_08142A10: .4byte gUnknown_8466EA8 +_08142A14: + movs r0, 0 + strb r0, [r6] + ldrb r0, [r5] + bl rbox_fill_rectangle + ldrb r0, [r5] + bl ClearWindowTilemap + ldrb r0, [r5] + movs r1, 0x1 + bl CopyWindowToVram + ldrb r0, [r5] + bl RemoveWindow + movs r0, 0x2 + negs r0, r0 + b _08142A3C +_08142A38: + movs r0, 0x1 + negs r0, r0 +_08142A3C: add sp, 0x14 pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_81428F4 + + thumb_func_start sub_8142A44 +sub_8142A44: @ 8142A44 + push {lr} + cmp r0, 0 + beq _08142A50 + bl sub_8143E1C + b _08142A54 +_08142A50: + bl sub_8143FC8 +_08142A54: + pop {r1} + bx r1 + thumb_func_end sub_8142A44 + + thumb_func_start sub_8142A58 +sub_8142A58: @ 8142A58 + push {r4,r5,lr} + adds r5, r0, 0 + ldrb r0, [r5] + cmp r0, 0 + beq _08142A68 + cmp r0, 0x1 + beq _08142A90 + b _08142AAC +_08142A68: + cmp r1, 0 + bne _08142A80 + bl sav1_get_mevent_buffer_1 + adds r4, r0, 0 + bl sav1_get_mevent_buffer_2 + adds r1, r0, 0 + adds r0, r4, 0 + bl sub_8145654 + b _08142A88 +_08142A80: + bl sub_8143D58 + bl sub_8146288 +_08142A88: + ldrb r0, [r5] + adds r0, 0x1 + strb r0, [r5] + b _08142AAC +_08142A90: + cmp r1, 0 + bne _08142A9E + bl sub_814571C +_08142A98: + cmp r0, 0 + bne _08142AA4 + b _08142AAC +_08142A9E: + bl sub_8146318 + b _08142A98 +_08142AA4: + movs r0, 0 + strb r0, [r5] + movs r0, 0x1 + b _08142AAE +_08142AAC: + movs r0, 0 +_08142AAE: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8142A58 + + thumb_func_start sub_8142AB4 +sub_8142AB4: @ 8142AB4 + push {lr} + cmp r0, 0 + bne _08142AC0 + bl sub_8143F38 + b _08142AC4 +_08142AC0: + bl sub_8143DBC +_08142AC4: + movs r0, 0x1 + pop {r1} + bx r1 + thumb_func_end sub_8142AB4 + + thumb_func_start sub_8142ACC +sub_8142ACC: @ 8142ACC + push {lr} + cmp r0, 0 + bne _08142AE2 + adds r0, r1, 0 + bl sub_814593C + cmp r0, 0 + beq _08142AEC + bl sub_81456F0 + b _08142AF4 +_08142AE2: + adds r0, r1, 0 + bl sub_8146604 + cmp r0, 0 + bne _08142AF0 +_08142AEC: + movs r0, 0 + b _08142AF6 +_08142AF0: + bl sub_81462EC +_08142AF4: + movs r0, 0x1 +_08142AF6: + pop {r1} + bx r1 + thumb_func_end sub_8142ACC + + thumb_func_start sub_8142AFC +sub_8142AFC: @ 8142AFC + push {lr} + cmp r2, 0 + beq _08142B0C + ldr r3, _08142B08 @ =gUnknown_841ECD3 + b _08142B0E + .align 2, 0 +_08142B08: .4byte gUnknown_841ECD3 +_08142B0C: + ldr r3, _08142B1C @ =gUnknown_841EC99 +_08142B0E: + movs r2, 0x1 + bl sub_81427A0 + lsls r0, 24 + asrs r0, 24 + pop {r1} + bx r1 + .align 2, 0 +_08142B1C: .4byte gUnknown_841EC99 + thumb_func_end sub_8142AFC + + thumb_func_start mevent_message_was_thrown_away +mevent_message_was_thrown_away: @ 8142B20 + push {lr} + cmp r1, 0 + beq _08142B30 + ldr r1, _08142B2C @ =gUnknown_841ED9C + b _08142B32 + .align 2, 0 +_08142B2C: .4byte gUnknown_841ED9C +_08142B30: + ldr r1, _08142B3C @ =gUnknown_841ED7B +_08142B32: + bl mevent_0814257C + pop {r1} + bx r1 + .align 2, 0 +_08142B3C: .4byte gUnknown_841ED7B + thumb_func_end mevent_message_was_thrown_away + + thumb_func_start mevent_save_game +mevent_save_game: @ 8142B40 + push {r4,lr} + adds r4, r0, 0 + ldrb r0, [r4] + cmp r0, 0x4 + bhi _08142BB0 + lsls r0, 2 + ldr r1, _08142B54 @ =_08142B58 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08142B54: .4byte _08142B58 + .align 2, 0 +_08142B58: + .4byte _08142B6C + .4byte _08142B78 + .4byte _08142B80 + .4byte _08142B8C + .4byte _08142BA4 +_08142B6C: + ldr r0, _08142B74 @ =gUnknown_841ED2F + bl sub_8142504 + b _08142B98 + .align 2, 0 +_08142B74: .4byte gUnknown_841ED2F +_08142B78: + movs r0, 0 + bl TrySavingData + b _08142B98 +_08142B80: + ldr r0, _08142B88 @ =gUnknown_841ED50 + bl sub_8142504 + b _08142B98 + .align 2, 0 +_08142B88: .4byte gUnknown_841ED50 +_08142B8C: + ldr r0, _08142BA0 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + beq _08142BB0 +_08142B98: + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + b _08142BB0 + .align 2, 0 +_08142BA0: .4byte gMain +_08142BA4: + movs r0, 0 + strb r0, [r4] + bl sub_8142560 + movs r0, 0x1 + b _08142BB2 +_08142BB0: + movs r0, 0 +_08142BB2: + pop {r4} + pop {r1} + bx r1 + thumb_func_end mevent_save_game + + thumb_func_start mevent_message +mevent_message: @ 8142BB8 + push {r4-r6,lr} + adds r4, r0, 0 + lsls r1, 24 + lsrs r6, r1, 24 + lsls r2, 24 + lsrs r5, r2, 24 + movs r2, 0 + str r2, [r4] + cmp r3, 0xE + bls _08142BCE + b _08142CE0 +_08142BCE: + lsls r0, r3, 2 + ldr r1, _08142BD8 @ =_08142BDC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08142BD8: .4byte _08142BDC + .align 2, 0 +_08142BDC: + .4byte _08142C18 + .4byte _08142C24 + .4byte _08142C30 + .4byte _08142C48 + .4byte _08142C60 + .4byte _08142C6C + .4byte _08142C78 + .4byte _08142C84 + .4byte _08142C90 + .4byte _08142C9C + .4byte _08142CA8 + .4byte _08142CC0 + .4byte _08142CCC + .4byte _08142CD8 + .4byte _08142CDC +_08142C18: + movs r0, 0 + str r0, [r4] + ldr r2, _08142C20 @ =gUnknown_841EA6F + b _08142CE0 + .align 2, 0 +_08142C20: .4byte gUnknown_841EA6F +_08142C24: + movs r0, 0 + str r0, [r4] + ldr r2, _08142C2C @ =gUnknown_841E9D3 + b _08142CE0 + .align 2, 0 +_08142C2C: .4byte gUnknown_841E9D3 +_08142C30: + movs r0, 0x1 + str r0, [r4] + ldr r2, _08142C40 @ =gUnknown_841E866 + cmp r5, 0 + bne _08142CE0 + ldr r2, _08142C44 @ =gUnknown_841E8BD + b _08142CE0 + .align 2, 0 +_08142C40: .4byte gUnknown_841E866 +_08142C44: .4byte gUnknown_841E8BD +_08142C48: + movs r0, 0x1 + str r0, [r4] + ldr r2, _08142C58 @ =gUnknown_841E88F + cmp r5, 0 + bne _08142CE0 + ldr r2, _08142C5C @ =gUnknown_841E8E2 + b _08142CE0 + .align 2, 0 +_08142C58: .4byte gUnknown_841E88F +_08142C5C: .4byte gUnknown_841E8E2 +_08142C60: + movs r0, 0x1 + str r0, [r4] + ldr r2, _08142C68 @ =gUnknown_841E90C + b _08142CE0 + .align 2, 0 +_08142C68: .4byte gUnknown_841E90C +_08142C6C: + movs r0, 0 + str r0, [r4] + ldr r2, _08142C74 @ =gUnknown_841E946 + b _08142CE0 + .align 2, 0 +_08142C74: .4byte gUnknown_841E946 +_08142C78: + movs r0, 0 + str r0, [r4] + ldr r2, _08142C80 @ =gUnknown_841E98F + b _08142CE0 + .align 2, 0 +_08142C80: .4byte gUnknown_841E98F +_08142C84: + movs r0, 0 + str r0, [r4] + ldr r2, _08142C8C @ =gUnknown_841E968 + b _08142CE0 + .align 2, 0 +_08142C8C: .4byte gUnknown_841E968 +_08142C90: + movs r0, 0 + str r0, [r4] + ldr r2, _08142C98 @ =gUnknown_841E9AB + b _08142CE0 + .align 2, 0 +_08142C98: .4byte gUnknown_841E9AB +_08142C9C: + movs r0, 0 + str r0, [r4] + ldr r2, _08142CA4 @ =gUnknown_841E7D1 + b _08142CE0 + .align 2, 0 +_08142CA4: .4byte gUnknown_841E7D1 +_08142CA8: + movs r0, 0 + str r0, [r4] + ldr r2, _08142CB8 @ =gUnknown_841EA3F + cmp r6, 0 + bne _08142CE0 + ldr r2, _08142CBC @ =gUnknown_841EA0D + b _08142CE0 + .align 2, 0 +_08142CB8: .4byte gUnknown_841EA3F +_08142CBC: .4byte gUnknown_841EA0D +_08142CC0: + movs r0, 0 + str r0, [r4] + ldr r2, _08142CC8 @ =gUnknown_841E7BC + b _08142CE0 + .align 2, 0 +_08142CC8: .4byte gUnknown_841E7BC +_08142CCC: + movs r0, 0x1 + str r0, [r4] + ldr r2, _08142CD4 @ =gUnknown_841E92B + b _08142CE0 + .align 2, 0 +_08142CD4: .4byte gUnknown_841E92B +_08142CD8: + movs r0, 0x1 + b _08142CDE +_08142CDC: + movs r0, 0 +_08142CDE: + str r0, [r4] +_08142CE0: + adds r0, r2, 0 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end mevent_message + + thumb_func_start mevent_08142CE8 +mevent_08142CE8: @ 8142CE8 + push {r4-r6,lr} + adds r6, r0, 0 + adds r0, r1, 0 + adds r5, r2, 0 + ldrb r4, [r6] + cmp r4, 0x1 + beq _08142D1A + cmp r4, 0x1 + bgt _08142D00 + cmp r4, 0 + beq _08142D06 + b _08142D46 +_08142D00: + cmp r4, 0x2 + beq _08142D30 + b _08142D46 +_08142D06: + cmp r0, 0 + beq _08142D0E + bl sub_8142504 +_08142D0E: + movs r0, 0x81 + lsls r0, 1 + bl PlayFanfare + strh r4, [r5] + b _08142D28 +_08142D1A: + ldrh r0, [r5] + adds r0, 0x1 + strh r0, [r5] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xF0 + bls _08142D46 +_08142D28: + ldrb r0, [r6] + adds r0, 0x1 + strb r0, [r6] + b _08142D46 +_08142D30: + bl IsFanfareTaskInactive + lsls r0, 24 + cmp r0, 0 + beq _08142D46 + movs r0, 0 + strb r0, [r6] + bl sub_8142560 + movs r0, 0x1 + b _08142D48 +_08142D46: + movs r0, 0 +_08142D48: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end mevent_08142CE8 + + thumb_func_start mevent_message_stamp_card_etc_send_status +mevent_message_stamp_card_etc_send_status: @ 8142D50 + push {r4,lr} + adds r3, r0, 0 + ldr r1, _08142D6C @ =gUnknown_841E7BC + movs r0, 0 + str r0, [r3] + adds r4, r1, 0 + cmp r2, 0xE + bhi _08142E12 + lsls r0, r2, 2 + ldr r1, _08142D70 @ =_08142D74 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08142D6C: .4byte gUnknown_841E7BC +_08142D70: .4byte _08142D74 + .align 2, 0 +_08142D74: + .4byte _08142DB0 + .4byte _08142DB8 + .4byte _08142DC0 + .4byte _08142DC8 + .4byte _08142DD4 + .4byte _08142DDC + .4byte _08142DE4 + .4byte _08142DEC + .4byte _08142DF4 + .4byte _08142DFC + .4byte _08142E10 + .4byte _08142E04 + .4byte _08142E08 + .4byte _08142E08 + .4byte _08142E10 +_08142DB0: + ldr r1, _08142DB4 @ =gUnknown_841EA6F + b _08142E12 + .align 2, 0 +_08142DB4: .4byte gUnknown_841EA6F +_08142DB8: + ldr r1, _08142DBC @ =gUnknown_841E9D3 + b _08142E12 + .align 2, 0 +_08142DBC: .4byte gUnknown_841E9D3 +_08142DC0: + ldr r1, _08142DC4 @ =gUnknown_841EB20 + b _08142DCA + .align 2, 0 +_08142DC4: .4byte gUnknown_841EB20 +_08142DC8: + ldr r1, _08142DD0 @ =gUnknown_841EB46 +_08142DCA: + movs r0, 0x1 + str r0, [r3] + b _08142E12 + .align 2, 0 +_08142DD0: .4byte gUnknown_841EB46 +_08142DD4: + ldr r1, _08142DD8 @ =gUnknown_841EB71 + b _08142E12 + .align 2, 0 +_08142DD8: .4byte gUnknown_841EB71 +_08142DDC: + ldr r1, _08142DE0 @ =gUnknown_841EBAA + b _08142E12 + .align 2, 0 +_08142DE0: .4byte gUnknown_841EBAA +_08142DE4: + ldr r1, _08142DE8 @ =gUnknown_841EC12 + b _08142E12 + .align 2, 0 +_08142DE8: .4byte gUnknown_841EC12 +_08142DEC: + ldr r1, _08142DF0 @ =gUnknown_841EBDE + b _08142E12 + .align 2, 0 +_08142DF0: .4byte gUnknown_841EBDE +_08142DF4: + ldr r1, _08142DF8 @ =gUnknown_841E9AB + b _08142E12 + .align 2, 0 +_08142DF8: .4byte gUnknown_841E9AB +_08142DFC: + ldr r1, _08142E00 @ =gUnknown_841EC40 + b _08142E12 + .align 2, 0 +_08142E00: .4byte gUnknown_841EC40 +_08142E04: + adds r1, r4, 0 + b _08142E12 +_08142E08: + ldr r1, _08142E0C @ =gUnknown_841EB8E + b _08142E12 + .align 2, 0 +_08142E0C: .4byte gUnknown_841EB8E +_08142E10: + ldr r1, _08142E1C @ =gUnknown_841EC6A +_08142E12: + adds r0, r1, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08142E1C: .4byte gUnknown_841EC6A + thumb_func_end mevent_message_stamp_card_etc_send_status + + thumb_func_start sub_8142E20 +sub_8142E20: @ 8142E20 + push {r4,r5,lr} + sub sp, 0x4 + adds r4, r0, 0 + adds r5, r1, 0 + adds r1, r2, 0 + adds r2, r3, 0 + lsls r1, 24 + lsrs r1, 24 + mov r0, sp + bl mevent_message_stamp_card_etc_send_status + adds r1, r0, 0 + ldr r0, [sp] + cmp r0, 0 + bne _08142E46 + adds r0, r4, 0 + bl mevent_0814257C + b _08142E4E +_08142E46: + adds r0, r4, 0 + adds r2, r5, 0 + bl mevent_08142CE8 +_08142E4E: + add sp, 0x4 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8142E20 + + thumb_func_start task_add_00_mystery_gift +task_add_00_mystery_gift: @ 8142E58 + push {r4,lr} + ldr r0, _08142E98 @ =sub_8142EA0 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r0, _08142E9C @ =gTasks+0x8 + adds r4, r0 + movs r0, 0 + strb r0, [r4, 0x8] + strb r0, [r4, 0x9] + strb r0, [r4, 0xA] + strb r0, [r4, 0xB] + strb r0, [r4, 0xC] + strb r0, [r4, 0xD] + movs r1, 0 + strh r0, [r4] + strh r0, [r4, 0x2] + strh r0, [r4, 0x4] + strh r0, [r4, 0x6] + strb r1, [r4, 0xE] + movs r0, 0x40 + bl AllocZeroed + str r0, [r4, 0x10] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08142E98: .4byte sub_8142EA0 +_08142E9C: .4byte gTasks+0x8 + thumb_func_end task_add_00_mystery_gift + + thumb_func_start sub_8142EA0 +sub_8142EA0: @ 8142EA0 + push {r4,r5,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, _08142EC4 @ =gTasks+0x8 + adds r5, r0, r1 + ldrb r0, [r5, 0x8] + cmp r0, 0x25 + bls _08142EBA + b _081435C6 +_08142EBA: + lsls r0, 2 + ldr r1, _08142EC8 @ =_08142ECC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08142EC4: .4byte gTasks+0x8 +_08142EC8: .4byte _08142ECC + .align 2, 0 +_08142ECC: + .4byte _08142F64 + .4byte _08142F6A + .4byte _08142FAC + .4byte _08142FE4 + .4byte _08143008 + .4byte _08143058 + .4byte _081430B8 + .4byte _081430EC + .4byte _081430FC + .4byte _08143174 + .4byte _08143198 + .4byte _081431B0 + .4byte _081431E0 + .4byte _0814321C + .4byte _08143232 + .4byte _08143264 + .4byte _0814358C + .4byte _081432C2 + .4byte _081432CC + .4byte _081435C6 + .4byte _081432DE + .4byte _0814332C + .4byte _081433A2 + .4byte _081433D2 + .4byte _08143408 + .4byte _08143422 + .4byte _08143436 + .4byte _08143442 + .4byte _08143456 + .4byte _0814346A + .4byte _0814349C + .4byte _081434D0 + .4byte _08143514 + .4byte _08143528 + .4byte _08143544 + .4byte _08143558 + .4byte _0814358C + .4byte _081435AC +_08142F64: + movs r0, 0x1 + strb r0, [r5, 0x8] + b _081435C6 +_08142F6A: + adds r0, r5, 0 + adds r0, 0x9 + adds r1, r5, 0 + movs r2, 0 + bl sub_81426D4 + adds r1, r0, 0 + cmp r1, 0x1 + beq _08142F94 + cmp r1, 0x1 + bcc _08142F8A + movs r0, 0x2 + negs r0, r0 + cmp r1, r0 + beq _08142FA6 + b _081435C6 +_08142F8A: + movs r0, 0 + strb r0, [r5, 0xC] + bl sub_8143FC8 + b _08142F9A +_08142F94: + strb r1, [r5, 0xC] + bl sub_8143E1C +_08142F9A: + cmp r0, 0x1 + bne _08142FA0 + b _081434C4 +_08142FA0: + movs r0, 0x2 + strb r0, [r5, 0x8] + b _081435C6 +_08142FA6: + movs r0, 0x25 + strb r0, [r5, 0x8] + b _081435C6 +_08142FAC: + ldrb r0, [r5, 0xC] + cmp r0, 0 + bne _08142FC0 + adds r0, r5, 0 + adds r0, 0x9 + ldr r1, _08142FBC @ =gUnknown_841E6A1 + b _08142FC6 + .align 2, 0 +_08142FBC: .4byte gUnknown_841E6A1 +_08142FC0: + adds r0, r5, 0 + adds r0, 0x9 + ldr r1, _08142FE0 @ =gUnknown_841E6DC +_08142FC6: + bl mevent_0814257C + cmp r0, 0 + bne _08142FD0 + b _081435C6 +_08142FD0: + movs r0, 0x3 + strb r0, [r5, 0x8] + movs r0, 0 + movs r1, 0x1 + bl PrintMysteryGiftOrEReaderTopMenu + b _081435C6 + .align 2, 0 +_08142FE0: .4byte gUnknown_841E6DC +_08142FE4: + ldrb r0, [r5, 0xC] + cmp r0, 0 + bne _08142FF8 + ldr r0, _08142FF4 @ =gUnknown_841E717 + bl sub_8142504 + b _08142FFE + .align 2, 0 +_08142FF4: .4byte gUnknown_841E717 +_08142FF8: + ldr r0, _08143004 @ =gUnknown_841E741 + bl sub_8142504 +_08142FFE: + movs r0, 0x4 + strb r0, [r5, 0x8] + b _081435C6 + .align 2, 0 +_08143004: .4byte gUnknown_841E741 +_08143008: + adds r0, r5, 0 + adds r0, 0x9 + adds r1, r5, 0 + movs r2, 0x1 + bl sub_81426D4 + adds r4, r0, 0 + cmp r4, 0x1 + beq _08143036 + cmp r4, 0x1 + bcc _08143028 + movs r0, 0x2 + negs r0, r0 + cmp r4, r0 + beq _08143042 + b _081435C6 +_08143028: + bl sub_8142560 + movs r1, 0 + movs r0, 0x5 + strb r0, [r5, 0x8] + strb r1, [r5, 0xD] + b _081435C6 +_08143036: + bl sub_8142560 + movs r0, 0x5 + strb r0, [r5, 0x8] + strb r4, [r5, 0xD] + b _081435C6 +_08143042: + bl sub_8142560 + ldrb r0, [r5, 0xC] + bl sub_8142A44 + cmp r0, 0 + beq _08143052 + b _081434C4 +_08143052: + strb r0, [r5, 0x8] + movs r0, 0 + b _0814359E +_08143058: + ldr r0, _08143074 @ =gStringVar1 + movs r1, 0xFF + strb r1, [r0] + ldr r0, _08143078 @ =gStringVar2 + strb r1, [r0] + ldr r0, _0814307C @ =gStringVar3 + strb r1, [r0] + ldrb r0, [r5, 0xC] + cmp r0, 0 + beq _08143080 + cmp r0, 0x1 + beq _0814309A + b _081430B2 + .align 2, 0 +_08143074: .4byte gStringVar1 +_08143078: .4byte gStringVar2 +_0814307C: .4byte gStringVar3 +_08143080: + ldrb r0, [r5, 0xD] + cmp r0, 0x1 + bne _0814308E + movs r0, 0x15 + bl sub_8117ED4 + b _081430B2 +_0814308E: + cmp r0, 0 + bne _081430B2 + movs r0, 0x15 + bl sub_8118290 + b _081430B2 +_0814309A: + ldrb r0, [r5, 0xD] + cmp r0, 0x1 + bne _081430A8 + movs r0, 0x16 + bl sub_8117ED4 + b _081430B2 +_081430A8: + cmp r0, 0 + bne _081430B2 + movs r0, 0x16 + bl sub_8118290 +_081430B2: + movs r0, 0x6 + strb r0, [r5, 0x8] + b _081435C6 +_081430B8: + ldr r0, _081430D0 @ =gReceivedRemoteLinkPlayers + ldrb r0, [r0] + cmp r0, 0 + beq _081430D4 + movs r0, 0x1 + bl sub_81424B8 + movs r0, 0x7 + strb r0, [r5, 0x8] + bl mevent_srv_ish_do_init + b _081435C6 + .align 2, 0 +_081430D0: .4byte gReceivedRemoteLinkPlayers +_081430D4: + ldr r0, _081430E8 @ =gSpecialVar_Result + ldrh r0, [r0] + cmp r0, 0x5 + beq _081430DE + b _081435C6 +_081430DE: + movs r0, 0x1 + bl sub_81424B8 + b _08143464 + .align 2, 0 +_081430E8: .4byte gSpecialVar_Result +_081430EC: + ldr r0, _081430F8 @ =gUnknown_841E794 + bl sub_8142504 + movs r0, 0x8 + strb r0, [r5, 0x8] + b _081435C6 + .align 2, 0 +_081430F8: .4byte gUnknown_841E794 +_081430FC: + adds r0, r5, 0 + bl mevent_srv_ish_do_exec + subs r0, 0x2 + cmp r0, 0x4 + bls _0814310A + b _081435C6 +_0814310A: + lsls r0, 2 + ldr r1, _08143114 @ =_08143118 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08143114: .4byte _08143118 + .align 2, 0 +_08143118: + .4byte _08143156 + .4byte _08143150 + .4byte _0814315C + .4byte _0814313A + .4byte _0814312C +_0814312C: + bl task_add_05_task_del_08FA224_when_no_RfuFunc + ldrh r0, [r5] + strb r0, [r5, 0xE] + movs r0, 0xD + strb r0, [r5, 0x8] + b _081435C6 +_0814313A: + ldr r4, [r5, 0x10] + bl mevent_srv_ish_get_buffer + adds r1, r0, 0 + adds r0, r4, 0 + movs r2, 0x40 + bl memcpy + bl mevent_srv_ish_inc_flag + b _081435C6 +_08143150: + movs r0, 0xA + strb r0, [r5, 0x8] + b _081435C6 +_08143156: + movs r0, 0x9 + strb r0, [r5, 0x8] + b _081435C6 +_0814315C: + movs r0, 0xB + strb r0, [r5, 0x8] + ldr r0, _0814316C @ =gStringVar1 + ldr r1, _08143170 @ =gLinkPlayers + 8 + bl StringCopy + b _081435C6 + .align 2, 0 +_0814316C: .4byte gStringVar1 +_08143170: .4byte gLinkPlayers + 8 +_08143174: + adds r4, r5, 0 + adds r4, 0x9 + bl mevent_srv_ish_get_buffer + adds r3, r0, 0 + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0 + bl sub_81427A0 + lsls r0, 24 + asrs r1, r0, 24 + cmp r1, 0x1 + beq _0814320C + cmp r1, 0x1 + bcs _081431FA + movs r0, 0 + b _0814320E +_08143198: + adds r4, r5, 0 + adds r4, 0x9 + bl mevent_srv_ish_get_buffer + adds r1, r0, 0 + adds r0, r4, 0 + bl mevent_0814257C + cmp r0, 0 + bne _081431AE + b _081435C6 +_081431AE: + b _08143212 +_081431B0: + adds r0, r5, 0 + adds r0, 0x9 + ldr r3, _081431D8 @ =gUnknown_841E7F2 + adds r1, r5, 0 + movs r2, 0 + bl sub_81427A0 + lsls r0, 24 + asrs r1, r0, 24 + cmp r1, 0x1 + beq _0814320C + cmp r1, 0x1 + bcs _081431FA + bl sub_8144144 + cmp r0, 0x1 + bne _081431DC + movs r0, 0xC + strb r0, [r5, 0x8] + b _081435C6 + .align 2, 0 +_081431D8: .4byte gUnknown_841E7F2 +_081431DC: + movs r0, 0 + b _0814320E +_081431E0: + adds r0, r5, 0 + adds r0, 0x9 + ldr r3, _08143204 @ =gUnknown_841E823 + adds r1, r5, 0 + movs r2, 0 + bl sub_81427A0 + lsls r0, 24 + asrs r1, r0, 24 + cmp r1, 0x1 + beq _0814320C + cmp r1, 0x1 + bcc _08143208 +_081431FA: + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _0814320C + b _081435C6 + .align 2, 0 +_08143204: .4byte gUnknown_841E823 +_08143208: + movs r0, 0 + b _0814320E +_0814320C: + movs r0, 0x1 +_0814320E: + bl mevent_srv_ish_set_param +_08143212: + bl mevent_srv_ish_inc_flag + movs r0, 0x7 + strb r0, [r5, 0x8] + b _081435C6 +_0814321C: + bl sub_80FA4F8 + lsls r0, 24 + cmp r0, 0 + bne _08143228 + b _081435C6 +_08143228: + bl sub_80FCE44 + movs r0, 0xE + strb r0, [r5, 0x8] + b _081435C6 +_08143232: + adds r0, r5, 0 + adds r0, 0x9 + ldr r1, _08143258 @ =gUnknown_841E7A3 + bl sub_81426A0 + cmp r0, 0 + bne _08143242 + b _081435C6 +_08143242: + ldrb r0, [r5, 0xD] + cmp r0, 0x1 + bne _08143250 + ldr r0, _0814325C @ =gStringVar1 + ldr r1, _08143260 @ =gLinkPlayers + 8 + bl StringCopy +_08143250: + movs r0, 0xF + strb r0, [r5, 0x8] + b _081435C6 + .align 2, 0 +_08143258: .4byte gUnknown_841E7A3 +_0814325C: .4byte gStringVar1 +_08143260: .4byte gLinkPlayers + 8 +_08143264: + ldrb r1, [r5, 0xC] + ldrb r2, [r5, 0xD] + ldrb r3, [r5, 0xE] + mov r0, sp + bl mevent_message + adds r1, r0, 0 + cmp r1, 0 + bne _08143278 + ldr r1, [r5, 0x10] +_08143278: + ldr r0, [sp] + cmp r0, 0 + beq _0814328A + adds r0, r5, 0 + adds r0, 0x9 + adds r2, r5, 0 + bl mevent_08142CE8 + b _08143292 +_0814328A: + adds r0, r5, 0 + adds r0, 0x9 + bl mevent_0814257C +_08143292: + adds r1, r0, 0 + cmp r1, 0 + bne _0814329A + b _081435C6 +_0814329A: + ldrb r0, [r5, 0xE] + cmp r0, 0x3 + bne _081432B4 + ldrb r0, [r5, 0xD] + cmp r0, 0x1 + bne _081432AE + movs r0, 0x1 + bl sub_8146C30 + b _081432B4 +_081432AE: + movs r0, 0x2 + bl sub_8146C30 +_081432B4: + ldr r0, [sp] + cmp r0, 0 + beq _081432BC + b _0814357C +_081432BC: + strb r0, [r5, 0x8] + movs r0, 0 + b _0814359E +_081432C2: + adds r0, r5, 0 + adds r0, 0x9 + bl mevent_save_game + b _08143596 +_081432CC: + adds r0, r5, 0 + adds r0, 0x9 + ldrb r1, [r5, 0xC] + bl sub_8142A58 + cmp r0, 0 + bne _081432DC + b _081435C6 +_081432DC: + b _0814339C +_081432DE: + ldrb r0, [r5, 0xC] + cmp r0, 0 + bne _08143308 + ldr r2, _08143304 @ =gMain + ldrh r1, [r2, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _081432F4 + movs r0, 0x15 + strb r0, [r5, 0x8] +_081432F4: + ldrh r1, [r2, 0x2E] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + bne _08143300 + b _081435C6 +_08143300: + b _08143326 + .align 2, 0 +_08143304: .4byte gMain +_08143308: + ldr r0, _0814331C @ =gMain + ldrh r0, [r0, 0x2E] + bl sub_8146884 + cmp r0, 0 + beq _08143320 + cmp r0, 0x1 + beq _08143326 + b _081435C6 + .align 2, 0 +_0814331C: .4byte gMain +_08143320: + bl sub_81467EC + b _08143402 +_08143326: + movs r0, 0x1B + strb r0, [r5, 0x8] + b _081435C6 +_0814332C: + ldrb r0, [r5, 0xC] + cmp r0, 0 + bne _08143346 + bl sub_8144054 + cmp r0, 0 + beq _0814335A + adds r0, r5, 0 + adds r0, 0x9 + ldrb r2, [r5, 0xC] + adds r1, r5, 0 + movs r3, 0 + b _08143364 +_08143346: + bl sub_8143E78 + cmp r0, 0 + beq _0814335A + adds r0, r5, 0 + adds r0, 0x9 + ldrb r2, [r5, 0xC] + adds r1, r5, 0 + movs r3, 0 + b _08143364 +_0814335A: + adds r0, r5, 0 + adds r0, 0x9 + ldrb r2, [r5, 0xC] + adds r1, r5, 0 + movs r3, 0x1 +_08143364: + bl sub_81428F4 + adds r1, r0, 0 + cmp r1, 0x1 + beq _08143386 + cmp r1, 0x1 + bcc _08143380 + cmp r1, 0x2 + beq _0814338C + movs r0, 0x2 + negs r0, r0 + cmp r1, r0 + beq _08143392 + b _081435C6 +_08143380: + movs r0, 0x1C + strb r0, [r5, 0x8] + b _081435C6 +_08143386: + movs r0, 0x1D + strb r0, [r5, 0x8] + b _081435C6 +_0814338C: + movs r0, 0x16 + strb r0, [r5, 0x8] + b _081435C6 +_08143392: + ldrb r0, [r5, 0xC] + cmp r0, 0x1 + bne _0814339C + bl sub_8146834 +_0814339C: + movs r0, 0x14 + strb r0, [r5, 0x8] + b _081435C6 +_081433A2: + adds r0, r5, 0 + adds r0, 0x9 + ldrb r2, [r5, 0xC] + adds r1, r5, 0 + bl sub_8142AFC + adds r1, r0, 0 + cmp r1, 0 + beq _081433BE + cmp r1, 0 + ble _081433EC + cmp r1, 0x1 + beq _08143402 + b _081435C6 +_081433BE: + ldrb r0, [r5, 0xC] + cmp r0, 0 + bne _081433FC + bl sub_8144144 + cmp r0, 0x1 + bne _081433FC + movs r0, 0x17 + strb r0, [r5, 0x8] + b _081435C6 +_081433D2: + adds r0, r5, 0 + adds r0, 0x9 + ldr r3, _081433F8 @ =gUnknown_841ECF9 + adds r1, r5, 0 + movs r2, 0x1 + bl sub_81427A0 + lsls r0, 24 + asrs r1, r0, 24 + cmp r1, 0x1 + beq _08143402 + cmp r1, 0x1 + bcc _081433FC +_081433EC: + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _08143402 + b _081435C6 + .align 2, 0 +_081433F8: .4byte gUnknown_841ECF9 +_081433FC: + movs r0, 0x18 + strb r0, [r5, 0x8] + b _081435C6 +_08143402: + movs r0, 0x15 + strb r0, [r5, 0x8] + b _081435C6 +_08143408: + ldrb r0, [r5, 0xC] + movs r1, 0x1 + bl sub_8142ACC + cmp r0, 0 + bne _08143416 + b _081435C6 +_08143416: + ldrb r0, [r5, 0xC] + bl sub_8142AB4 + movs r0, 0x19 + strb r0, [r5, 0x8] + b _081435C6 +_08143422: + adds r0, r5, 0 + adds r0, 0x9 + bl mevent_save_game + cmp r0, 0 + bne _08143430 + b _081435C6 +_08143430: + movs r0, 0x1A + strb r0, [r5, 0x8] + b _081435C6 +_08143436: + adds r0, r5, 0 + adds r0, 0x9 + ldrb r1, [r5, 0xC] + bl mevent_message_was_thrown_away + b _08143596 +_08143442: + ldrb r0, [r5, 0xC] + movs r1, 0 + bl sub_8142ACC + cmp r0, 0 + bne _08143450 + b _081435C6 +_08143450: + movs r0, 0 + strb r0, [r5, 0x8] + b _081435C6 +_08143456: + ldrb r0, [r5, 0xC] + movs r1, 0x1 + bl sub_8142ACC + cmp r0, 0 + bne _08143464 + b _081435C6 +_08143464: + movs r0, 0x3 + strb r0, [r5, 0x8] + b _081435C6 +_0814346A: + ldrb r0, [r5, 0xC] + movs r1, 0x1 + bl sub_8142ACC + cmp r0, 0 + bne _08143478 + b _081435C6 +_08143478: + ldrb r0, [r5, 0xC] + cmp r0, 0 + beq _08143484 + cmp r0, 0x1 + beq _0814348C + b _08143492 +_08143484: + movs r0, 0x15 + bl sub_81179CC + b _08143492 +_0814348C: + movs r0, 0x16 + bl sub_81179CC +_08143492: + movs r0, 0x1 + strb r0, [r5, 0xD] + movs r0, 0x1E + strb r0, [r5, 0x8] + b _081435C6 +_0814349C: + ldr r0, _081434B0 @ =gReceivedRemoteLinkPlayers + ldrb r0, [r0] + cmp r0, 0 + beq _081434B4 + movs r0, 0x1 + bl sub_81424B8 + movs r0, 0x1F + strb r0, [r5, 0x8] + b _081435C6 + .align 2, 0 +_081434B0: .4byte gReceivedRemoteLinkPlayers +_081434B4: + ldr r0, _081434CC @ =gSpecialVar_Result + ldrh r0, [r0] + cmp r0, 0x5 + beq _081434BE + b _081435C6 +_081434BE: + movs r0, 0x1 + bl sub_81424B8 +_081434C4: + movs r0, 0x12 + strb r0, [r5, 0x8] + b _081435C6 + .align 2, 0 +_081434CC: .4byte gSpecialVar_Result +_081434D0: + ldr r0, _081434F0 @ =gStringVar1 + movs r1, 0xFF + strb r1, [r0] + ldr r0, _081434F4 @ =gStringVar2 + strb r1, [r0] + ldr r0, _081434F8 @ =gStringVar3 + strb r1, [r0] + ldrb r0, [r5, 0xC] + cmp r0, 0 + bne _08143500 + ldr r0, _081434FC @ =gUnknown_841EAE7 + bl sub_8142504 + bl mevent_srv_common_do_init_2 + b _0814350A + .align 2, 0 +_081434F0: .4byte gStringVar1 +_081434F4: .4byte gStringVar2 +_081434F8: .4byte gStringVar3 +_081434FC: .4byte gUnknown_841EAE7 +_08143500: + ldr r0, _08143510 @ =gUnknown_841EB01 + bl sub_8142504 + bl mevent_srv_common_do_init_1 +_0814350A: + movs r0, 0x20 + strb r0, [r5, 0x8] + b _081435C6 + .align 2, 0 +_08143510: .4byte gUnknown_841EB01 +_08143514: + adds r0, r5, 0 + bl mevent_srv_init_do_exec + cmp r0, 0x3 + bne _081435C6 + ldrh r0, [r5] + strb r0, [r5, 0xE] + movs r0, 0x21 + strb r0, [r5, 0x8] + b _081435C6 +_08143528: + bl task_add_05_task_del_08FA224_when_no_RfuFunc + ldr r0, _0814353C @ =gStringVar1 + ldr r1, _08143540 @ =gLinkPlayers + 0x24 + bl StringCopy + movs r0, 0x22 + strb r0, [r5, 0x8] + b _081435C6 + .align 2, 0 +_0814353C: .4byte gStringVar1 +_08143540: .4byte gLinkPlayers + 0x24 +_08143544: + bl sub_80FA4F8 + lsls r0, 24 + cmp r0, 0 + beq _081435C6 + bl sub_80FCE44 + movs r0, 0x23 + strb r0, [r5, 0x8] + b _081435C6 +_08143558: + adds r0, r5, 0 + adds r0, 0x9 + ldrb r2, [r5, 0xD] + ldrb r3, [r5, 0xE] + adds r1, r5, 0 + bl sub_8142E20 + cmp r0, 0 + beq _081435C6 + ldr r0, [r5, 0xC] + ldr r1, _08143584 @ =0x00ffff00 + ands r0, r1 + ldr r1, _08143588 @ =0x00030100 + cmp r0, r1 + bne _0814359A + movs r0, 0x3 + bl sub_8146C30 +_0814357C: + movs r0, 0x11 + strb r0, [r5, 0x8] + b _081435C6 + .align 2, 0 +_08143584: .4byte 0x00ffff00 +_08143588: .4byte 0x00030100 +_0814358C: + adds r0, r5, 0 + adds r0, 0x9 + ldr r1, _081435A8 @ =gUnknown_841E7BC + bl mevent_0814257C +_08143596: + cmp r0, 0 + beq _081435C6 +_0814359A: + movs r0, 0 + strb r0, [r5, 0x8] +_0814359E: + movs r1, 0 + bl PrintMysteryGiftOrEReaderTopMenu + b _081435C6 + .align 2, 0 +_081435A8: .4byte gUnknown_841E7BC +_081435AC: + bl sub_80098B8 + bl sub_812B484 + ldr r0, [r5, 0x10] + bl Free + adds r0, r4, 0 + bl DestroyTask + ldr r0, _081435D0 @ =MainCB_FreeAllBuffersAndReturnToInitTitleScreen + bl SetMainCallback2 +_081435C6: + add sp, 0x4 + pop {r4,r5} pop {r0} bx r0 .align 2, 0 -_08142400: .4byte gUnknown_8466EE8 -_08142404: .4byte gUnknown_841DE50 -_08142408: .4byte gUnknown_841DE51 - thumb_func_end sub_8142344 +_081435D0: .4byte MainCB_FreeAllBuffersAndReturnToInitTitleScreen + thumb_func_end sub_8142EA0 + + thumb_func_start sub_81435D4 +sub_81435D4: @ 81435D4 + ldr r0, _081435D8 @ =0x0000019b + bx lr + .align 2, 0 +_081435D8: .4byte 0x0000019b + thumb_func_end sub_81435D4 .align 2, 0 @ Don't pad with nop. diff --git a/asm/title_screen.s b/asm/title_screen.s index c8261c1d3..a60bc959c 100644 --- a/asm/title_screen.s +++ b/asm/title_screen.s @@ -5,8 +5,8 @@ .text - thumb_func_start sub_8078914 -sub_8078914: @ 8078914 + thumb_func_start CB2_InitTitleScreen +CB2_InitTitleScreen: @ 8078914 push {r4-r6,lr} sub sp, 0xC ldr r0, _08078930 @ =gMain @@ -230,7 +230,7 @@ _08078B26: bx r0 .align 2, 0 _08078B30: .4byte gMain - thumb_func_end sub_8078914 + thumb_func_end CB2_InitTitleScreen thumb_func_start sub_8078B34 sub_8078B34: @ 8078B34 diff --git a/data/link_rfu_4.s b/data/mystery_gift_menu.s index 20f235a80..20f235a80 100644 --- a/data/link_rfu_4.s +++ b/data/mystery_gift_menu.s diff --git a/include/mystery_gift_menu.h b/include/mystery_gift_menu.h index 24bf85a13..c7b047f56 100644 --- a/include/mystery_gift_menu.h +++ b/include/mystery_gift_menu.h @@ -1,9 +1,9 @@ #ifndef GUARD_MYSTERY_GIFT_MENU_H #define GUARD_MYSTERY_GIFT_MENU_H -extern bool8 gUnknown_203F3B8; +extern bool8 gGiftIsFromEReader; -void sub_81422FC(void); -void sub_8142344(bool8, bool32); +void MainCB_FreeAllBuffersAndReturnToInitTitleScreen(void); +void PrintMysteryGiftOrEReaderTopMenu(bool8, bool32); #endif //GUARD_MYSTERY_GIFT_MENU_H diff --git a/include/title_screen.h b/include/title_screen.h new file mode 100644 index 000000000..8e7a6a275 --- /dev/null +++ b/include/title_screen.h @@ -0,0 +1,6 @@ +#ifndef GUARD_TITLE_SCREEN_H +#define GUARD_TITLE_SCREEN_H + +void CB2_InitTitleScreen(void); + +#endif //GUARD_TITLE_SCREEN_H diff --git a/ld_script.txt b/ld_script.txt index 6c50d0e5a..429cc7533 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -243,7 +243,6 @@ SECTIONS { src/roamer.o(.text); src/mystery_gift_menu.o(.text); asm/mystery_gift_menu.o(.text); - asm/link_rfu_4.o(.text); src/mevent.o(.text); src/mevent_server_helpers.o(.text); src/mevent_server.o(.text); @@ -411,7 +410,7 @@ SECTIONS { data/slot_machine.o(.rodata); src/roamer.o(.rodata); src/mystery_gift_menu.o(.rodata); - data/link_rfu_4.o(.rodata); + data/mystery_gift_menu.o(.rodata); src/mevent.o(.rodata); src/mevent_server_helpers.o(.rodata); src/mevent_server.o(.rodata); diff --git a/src/mevent.c b/src/mevent.c index a62286f21..564df6c7a 100644 --- a/src/mevent.c +++ b/src/mevent.c @@ -240,7 +240,7 @@ u32 sub_8143770(u8 * r4, u16 * r5) return 0; } -void sub_81438A0(void) +void task_add_00_ereader(void) { u8 taskId = CreateTask(sub_8143910, 0); struct MEventTaskData1 *data = (struct MEventTaskData1 *)gTasks[taskId].data; @@ -478,7 +478,7 @@ void sub_8143910(u8 taskId) sub_812B484(); Free(data->t10); DestroyTask(taskId); - SetMainCallback2(sub_81422FC); + SetMainCallback2(MainCB_FreeAllBuffersAndReturnToInitTitleScreen); break; } } diff --git a/src/mevent_8145654.c b/src/mevent_8145654.c index 65f515d1b..7695f18ce 100644 --- a/src/mevent_8145654.c +++ b/src/mevent_8145654.c @@ -252,7 +252,7 @@ s32 sub_814593C(bool32 flag) FreeMonIconPalettes(); break; case 5: - sub_8142344(gUnknown_203F3B8, flag); + PrintMysteryGiftOrEReaderTopMenu(gGiftIsFromEReader, flag); break; case 6: CopyBgTilemapBufferToVram(0); @@ -653,7 +653,7 @@ s32 sub_8146604(bool32 flag) } break; case 5: - sub_8142344(gUnknown_203F3B8, flag); + PrintMysteryGiftOrEReaderTopMenu(gGiftIsFromEReader, flag); break; case 6: sub_8142420(); diff --git a/src/mystery_gift_menu.c b/src/mystery_gift_menu.c index 7b7fd71a1..0085786c3 100644 --- a/src/mystery_gift_menu.c +++ b/src/mystery_gift_menu.c @@ -9,15 +9,22 @@ #include "text.h" #include "window.h" #include "text_window.h" +#include "menu.h" #include "new_menu_helpers.h" #include "sound.h" #include "mystery_gift_menu.h" +#include "title_screen.h" #include "link_rfu.h" #include "constants/songs.h" +extern const struct TextColor gUnknown_8466EE8; + EWRAM_DATA u8 sDownArrowCounterAndYCoordIdx[8] = {}; EWRAM_DATA bool8 gGiftIsFromEReader = FALSE; +void task_add_00_mystery_gift(void); +void task_add_00_ereader(void); + static const u16 gUnkTextboxBorderPal[] = INCBIN_U16("graphics/interface/unk_textbox_border.gbapal"); static const u32 gUnkTextboxBorderGfx[] = INCBIN_U32("graphics/interface/unk_textbox_border.4bpp.lz"); @@ -164,7 +171,7 @@ bool32 HandleMysteryGiftOrEReaderSetup(s32 mg_or_ereader) FillBgTilemapBufferRect(1, 0x000, 0, 0, 32, 32, 0x11); FillBgTilemapBufferRect(2, 0x000, 0, 0, 32, 32, 0x11); sub_8142420(); - sub_8142344(mg_or_ereader, 0); + PrintMysteryGiftOrEReaderTopMenu(mg_or_ereader, 0); gMain.state++; break; case 2: @@ -186,3 +193,61 @@ bool32 HandleMysteryGiftOrEReaderSetup(s32 mg_or_ereader) return FALSE; } +void c2_mystery_gift(void) +{ + if (HandleMysteryGiftOrEReaderSetup(0)) + { + SetMainCallback2(c2_mystery_gift_e_reader_run); + gGiftIsFromEReader = FALSE; + task_add_00_mystery_gift(); + } +} + +void c2_ereader(void) +{ + if (HandleMysteryGiftOrEReaderSetup(1)) + { + SetMainCallback2(c2_mystery_gift_e_reader_run); + gGiftIsFromEReader = TRUE; + task_add_00_ereader(); + } +} + +void MainCB_FreeAllBuffersAndReturnToInitTitleScreen(void) +{ + gGiftIsFromEReader = FALSE; + FreeAllWindowBuffers(); + Free(GetBgTilemapBuffer(0)); + Free(GetBgTilemapBuffer(1)); + Free(GetBgTilemapBuffer(2)); + Free(GetBgTilemapBuffer(3)); + SetMainCallback2(CB2_InitTitleScreen); +} + +extern const u8 gUnknown_8415F51[]; +extern const u8 gUnknown_841EDCA[]; +extern const u8 gUnknown_841EDBD[]; +extern const u8 gUnknown_841DE50[]; +extern const u8 gUnknown_841DE51[]; + +void PrintMysteryGiftOrEReaderTopMenu(bool8 mg_or_ereader, bool32 usePickOkCancel) +{ + const u8 * src; + s32 width; + FillWindowPixelBuffer(0, 0x00); + if (!mg_or_ereader) + { + src = usePickOkCancel == TRUE ? gUnknown_8415F51 : gUnknown_841EDCA; + AddTextPrinterParametrized2(0, 2, 2, 2, 0, 0, &gUnknown_8466EE8, 0, gUnknown_841EDBD); + width = 222 - GetStringWidth(0, src, 0); + AddTextPrinterParametrized2(0, 0, width, 2, 0, 0, &gUnknown_8466EE8, 0, src); + } + else + { + AddTextPrinterParametrized2(0, 2, 2, 2, 0, 0, &gUnknown_8466EE8, 0, gUnknown_841DE50); + AddTextPrinterParametrized2(0, 0, 0x78, 2, 0, 0, &gUnknown_8466EE8, 0, gUnknown_841DE51); + } + CopyWindowToVram(0, 2); + PutWindowTilemap(0); +} + diff --git a/sym_ewram.txt b/sym_ewram.txt index 258f3d849..016de3ab7 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -1615,12 +1615,7 @@ sLocationHistory: @ 203F3A8 sRoamerLocation: @ 203F3AE .space 0x2 -gUnknown_203F3B0: @ 203F3B0 - .space 0x8 - -gUnknown_203F3B8: @ 203F3B8 - .space 0x4 - + .include "src/mystery_gift_menu.o" .include "src/mevent.o" .include "src/mevent_server_helpers.o" .include "src/mevent_server.o" |