diff options
35 files changed, 3676 insertions, 4551 deletions
diff --git a/asm/code_801C620.s b/asm/code_801C620.s index 1f2dd00..367553b 100644 --- a/asm/code_801C620.s +++ b/asm/code_801C620.s @@ -1578,7 +1578,7 @@ _0801D4FE: str r0, [r1, 0x78] movs r0, 0x9 str r0, [r1, 0x7C] - bl sub_802C83C + bl HasNoAcceptedJobs lsls r0, 24 cmp r0, 0 beq _0801D532 diff --git a/asm/code_80958E8.s b/asm/code_80958E8.s index 9928fb0..dd2376c 100644 --- a/asm/code_80958E8.s +++ b/asm/code_80958E8.s @@ -602,7 +602,7 @@ sub_8095F8C: _08095F92: lsls r0, r4, 24 lsrs r0, 24 - bl sub_8096000 + bl CheckMailSlot lsls r0, 24 cmp r0, 0 bne _08095FA2 @@ -666,8 +666,8 @@ sub_8095FE8: _08095FFC: .4byte gUnknown_203B490 thumb_func_end sub_8095FE8 - thumb_func_start sub_8096000 -sub_8096000: + thumb_func_start CheckMailSlot +CheckMailSlot: push {lr} lsls r0, 24 lsrs r0, 24 @@ -689,7 +689,7 @@ _08096020: _08096022: pop {r1} bx r1 - thumb_func_end sub_8096000 + thumb_func_end CheckMailSlot thumb_func_start sub_8096028 sub_8096028: @@ -1994,7 +1994,7 @@ sub_80969AC: _080969B2: lsls r0, r4, 24 lsrs r0, 24 - bl sub_8096ACC + bl CheckJobSlot lsls r0, 24 cmp r0, 0 bne _080969C2 @@ -2155,8 +2155,8 @@ sub_8096AB4: _08096AC8: .4byte gUnknown_203B490 thumb_func_end sub_8096AB4 - thumb_func_start sub_8096ACC -sub_8096ACC: + thumb_func_start CheckJobSlot +CheckJobSlot: push {lr} lsls r0, 24 lsrs r0, 24 @@ -2179,7 +2179,7 @@ _08096AF0: _08096AF2: pop {r1} bx r1 - thumb_func_end sub_8096ACC + thumb_func_end CheckJobSlot thumb_func_start sub_8096AF8 sub_8096AF8: @@ -2632,8 +2632,8 @@ sub_8096DF8: _08096E10: .4byte gUnknown_203B490 thumb_func_end sub_8096DF8 - thumb_func_start sub_8096E14 -sub_8096E14: + thumb_func_start CheckPKMNNewsSlot +CheckPKMNNewsSlot: lsls r0, 24 lsrs r0, 24 ldr r1, _08096E28 @@ -2646,7 +2646,7 @@ sub_8096E14: bx lr .align 2, 0 _08096E28: .4byte gUnknown_203B490 - thumb_func_end sub_8096E14 + thumb_func_end CheckPKMNNewsSlot thumb_func_start sub_8096E2C sub_8096E2C: diff --git a/asm/mailbox.s b/asm/mailbox.s new file mode 100644 index 0000000..6ddf963 --- /dev/null +++ b/asm/mailbox.s @@ -0,0 +1,560 @@ + .include "constants/gba_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start CreateMailboxMenu +CreateMailboxMenu: + push {r4-r7,lr} + ldr r4, _0802E380 + ldr r0, [r4] + adds r0, 0xFC + movs r1, 0 + movs r2, 0x10 + bl MemoryFill16 + ldr r1, [r4] + adds r2, r1, 0 + adds r2, 0xBC + ldr r0, _0802E384 + str r0, [r2] + adds r1, 0xC0 + movs r0, 0x2 + str r0, [r1] + bl HasNoMailinMailbox + lsls r0, 24 + cmp r0, 0 + beq _0802E2E6 + ldr r0, [r4] + adds r0, 0xFC + movs r1, 0x1 + strh r1, [r0] +_0802E2E6: + movs r5, 0x1 + ldr r1, [r4] + movs r6, 0x1 + adds r2, r1, 0 + adds r2, 0xC4 + ldr r0, _0802E388 + str r0, [r2] + adds r1, 0xC8 + movs r0, 0x3 + str r0, [r1] + bl HasNoAcceptedJobs + lsls r0, 24 + cmp r0, 0 + beq _0802E30A + ldr r0, [r4] + adds r0, 0xFE + strh r5, [r0] +_0802E30A: + ldr r1, [r4] + adds r2, r1, 0 + adds r2, 0xCC + ldr r0, _0802E38C + str r0, [r2] + adds r1, 0xD0 + movs r0, 0x4 + str r0, [r1] + bl HasNoPKMNNews + lsls r0, 24 + cmp r0, 0 + beq _0802E32E + ldr r0, [r4] + movs r1, 0x80 + lsls r1, 1 + adds r0, r1 + strh r6, [r0] +_0802E32E: + movs r5, 0x3 + ldr r2, [r4] + adds r0, r2, 0 + adds r0, 0xD4 + movs r1, 0 + str r1, [r0] + adds r0, 0x4 + str r6, [r0] + movs r3, 0 + adds r6, r4, 0 + mov r12, r2 + mov r4, r12 + adds r4, 0xFC + adds r2, 0xC0 +_0802E34A: + ldrh r0, [r4] + cmp r0, 0 + bne _0802E35A + ldr r1, [r2] + mov r7, r12 + ldr r0, [r7, 0x64] + cmp r1, r0 + beq _0802E3B2 +_0802E35A: + adds r4, 0x2 + adds r2, 0x8 + adds r3, 0x1 + cmp r3, r5 + blt _0802E34A + movs r3, 0 + cmp r3, r5 + bge _0802E3B2 + ldr r1, [r6] + adds r0, r1, 0 + adds r0, 0xFC + ldrh r0, [r0] + cmp r0, 0 + bne _0802E390 + adds r0, r1, 0 + adds r0, 0xC0 + ldr r0, [r0] + str r0, [r1, 0x64] + b _0802E3B2 + .align 2, 0 +_0802E380: .4byte gUnknown_203B304 +_0802E384: .4byte gMailboxCheckMail +_0802E388: .4byte gMailboxJobList +_0802E38C: .4byte gMailboxPKMNNews +_0802E390: + adds r3, 0x1 + cmp r3, r5 + bge _0802E3B2 + ldr r2, [r6] + lsls r0, r3, 1 + adds r1, r2, 0 + adds r1, 0xFC + adds r1, r0 + ldrh r0, [r1] + cmp r0, 0 + bne _0802E390 + lsls r0, r3, 3 + adds r1, r2, 0 + adds r1, 0xC0 + adds r1, r0 + ldr r0, [r1] + str r0, [r2, 0x64] +_0802E3B2: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end CreateMailboxMenu + + thumb_func_start CreateMailActionMenu +CreateMailActionMenu: + push {r4-r7,lr} + movs r5, 0 + ldr r4, _0802E3F0 + ldr r0, [r4] + ldrb r0, [r0, 0x8] + bl sub_8095FE8 + adds r7, r0, 0 + ldrb r0, [r7] + cmp r0, 0x1 + bne _0802E3FC + ldr r2, [r4] + adds r1, r2, 0 + adds r1, 0xBC + ldr r0, _0802E3F4 + str r0, [r1] + adds r1, 0x4 + movs r0, 0x6 + str r0, [r1] + adds r1, 0x4 + ldr r0, _0802E3F8 + str r0, [r1] + adds r1, 0x4 + movs r0, 0x7 + str r0, [r1] + movs r5, 0x2 + b _0802E44A + .align 2, 0 +_0802E3F0: .4byte gUnknown_203B304 +_0802E3F4: .4byte gMailActionStore +_0802E3F8: .4byte gMailActionRead +_0802E3FC: + ldr r1, [r4] + adds r2, r1, 0 + adds r2, 0xBC + ldr r0, _0802E494 + ldr r0, [r0] + str r0, [r2] + adds r1, 0xC0 + movs r0, 0x5 + str r0, [r1] + adds r0, r7, 0 + bl sub_80968B0 + lsls r0, 24 + cmp r0, 0 + bne _0802E422 + bl sub_80969AC + cmp r0, 0x7 + ble _0802E42C +_0802E422: + ldr r0, [r4] + adds r0, 0xC0 + movs r1, 0x1 + negs r1, r1 + str r1, [r0] +_0802E42C: + adds r5, 0x1 + ldr r4, _0802E498 + ldr r2, [r4] + lsls r3, r5, 3 + adds r0, r2, 0 + adds r0, 0xBC + adds r0, r3 + ldr r1, _0802E49C + ldr r1, [r1] + str r1, [r0] + adds r2, 0xC0 + adds r2, r3 + movs r0, 0x8 + str r0, [r2] + adds r5, 0x1 +_0802E44A: + mov r12, r4 + mov r0, r12 + ldr r4, [r0] + lsls r2, r5, 3 + adds r0, r4, 0 + adds r0, 0xBC + adds r0, r2 + movs r1, 0 + str r1, [r0] + adds r1, r4, 0 + adds r1, 0xC0 + adds r2, r1, r2 + movs r0, 0x1 + str r0, [r2] + movs r3, 0 + cmp r3, r5 + bge _0802E486 + movs r6, 0x1 + negs r6, r6 + adds r2, r1, 0 +_0802E472: + ldr r1, [r2] + cmp r1, r6 + beq _0802E47E + ldr r0, [r4, 0x68] + cmp r1, r0 + beq _0802E4A8 +_0802E47E: + adds r2, 0x8 + adds r3, 0x1 + cmp r3, r5 + blt _0802E472 +_0802E486: + ldrb r0, [r7] + cmp r0, 0x1 + bne _0802E4A0 + mov r0, r12 + ldr r1, [r0] + movs r0, 0x7 + b _0802E4A6 + .align 2, 0 +_0802E494: .4byte gUnknown_80D4990 +_0802E498: .4byte gUnknown_203B304 +_0802E49C: .4byte gUnknown_80D4970 +_0802E4A0: + mov r0, r12 + ldr r1, [r0] + movs r0, 0x8 +_0802E4A6: + str r0, [r1, 0x68] +_0802E4A8: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end CreateMailActionMenu + + thumb_func_start sub_802E4B0 +sub_802E4B0: + push {r4,lr} + sub sp, 0x4 + movs r0, 0 + str r0, [sp] + ldr r4, _0802E4F0 + ldr r0, [r4] + adds r0, 0x6C + bl sub_8012FD8 + lsls r0, 24 + cmp r0, 0 + bne _0802E4DC + ldr r0, [r4] + adds r0, 0x6C + mov r1, sp + bl sub_8013114 + ldr r1, [sp] + cmp r1, 0x1 + beq _0802E4DC + ldr r0, [r4] + str r1, [r0, 0x64] +_0802E4DC: + ldr r0, [sp] + subs r0, 0x1 + cmp r0, 0x7 + bhi _0802E56E + lsls r0, 2 + ldr r1, _0802E4F4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802E4F0: .4byte gUnknown_203B304 +_0802E4F4: .4byte _0802E4F8 + .align 2, 0 +_0802E4F8: + .4byte _0802E568 + .4byte _0802E518 + .4byte _0802E52A + .4byte _0802E53C + .4byte _0802E56E + .4byte _0802E56E + .4byte _0802E56E + .4byte _0802E560 +_0802E518: + bl HasNoMailinMailbox + lsls r0, 24 + cmp r0, 0 + bne _0802E54E + movs r0, 0x4 + bl SetMailboxState + b _0802E56E +_0802E52A: + bl HasNoAcceptedJobs + lsls r0, 24 + cmp r0, 0 + bne _0802E54E + movs r0, 0x8 + bl SetMailboxState + b _0802E56E +_0802E53C: + bl HasNoPKMNNews + lsls r0, 24 + cmp r0, 0 + bne _0802E54E + movs r0, 0x9 + bl SetMailboxState + b _0802E56E +_0802E54E: + ldr r0, _0802E55C + ldr r0, [r0] + adds r0, 0x6C + movs r1, 0x1 + bl sub_8012EA4 + b _0802E56E + .align 2, 0 +_0802E55C: .4byte gUnknown_203B304 +_0802E560: + movs r0, 0x2 + bl SetMailboxState + b _0802E56E +_0802E568: + movs r0, 0x3 + bl SetMailboxState +_0802E56E: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_802E4B0 + + thumb_func_start sub_802E578 +sub_802E578: + push {r4,lr} + movs r0, 0x1 + bl sub_802BDEC + cmp r0, 0x4 + bhi _0802E606 + lsls r0, 2 + ldr r1, _0802E590 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802E590: .4byte _0802E594 + .align 2, 0 +_0802E594: + .4byte _0802E606 + .4byte _0802E606 + .4byte _0802E5FC + .4byte _0802E5A8 + .4byte _0802E5C0 +_0802E5A8: + bl sub_802BE74 + ldr r1, _0802E5BC + ldr r1, [r1] + strb r0, [r1, 0x8] + movs r0, 0x6 + bl SetMailboxState + b _0802E606 + .align 2, 0 +_0802E5BC: .4byte gUnknown_203B304 +_0802E5C0: + bl sub_802BE74 + ldr r4, _0802E5F0 + ldr r1, [r4] + strb r0, [r1, 0x8] + ldr r0, [r4] + ldrb r0, [r0, 0x8] + bl sub_8095FE8 + adds r2, r0, 0 + ldrb r0, [r2] + cmp r0, 0x1 + bne _0802E5F4 + ldr r1, [r4] + ldrb r0, [r2, 0x5] + strb r0, [r1, 0x9] + ldr r1, [r4] + movs r0, 0x5 + str r0, [r1, 0x4] + movs r0, 0xB + bl SetMailboxState + b _0802E606 + .align 2, 0 +_0802E5F0: .4byte gUnknown_203B304 +_0802E5F4: + movs r0, 0x7 + bl SetMailboxState + b _0802E606 +_0802E5FC: + bl sub_802BEDC + movs r0, 0x1 + bl SetMailboxState +_0802E606: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_802E578 + + thumb_func_start sub_802E60C +sub_802E60C: + push {r4,lr} + sub sp, 0x4 + movs r0, 0 + str r0, [sp] + bl sub_802BDEC + ldr r4, _0802E650 + ldr r0, [r4] + adds r0, 0x6C + bl sub_8012FD8 + lsls r0, 24 + cmp r0, 0 + bne _0802E63C + ldr r0, [r4] + adds r0, 0x6C + mov r1, sp + bl sub_8013114 + ldr r1, [sp] + cmp r1, 0x1 + beq _0802E63C + ldr r0, [r4] + str r1, [r0, 0x68] +_0802E63C: + ldr r0, [sp] + subs r0, 0x1 + cmp r0, 0x7 + bhi _0802E732 + lsls r0, 2 + ldr r1, _0802E654 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802E650: .4byte gUnknown_203B304 +_0802E654: .4byte _0802E658 + .align 2, 0 +_0802E658: + .4byte _0802E72C + .4byte _0802E732 + .4byte _0802E732 + .4byte _0802E732 + .4byte _0802E678 + .4byte _0802E6BC + .4byte _0802E704 + .4byte _0802E6B4 +_0802E678: + ldr r0, _0802E6AC + bl PlaySound + ldr r4, _0802E6B0 + ldr r0, [r4] + ldrb r0, [r0, 0x8] + bl sub_8095FE8 + bl sub_8096A78 + bl sub_8096C80 + bl sub_8096D24 + ldr r0, [r4] + ldrb r0, [r0, 0x8] + bl sub_8096040 + bl sub_8096078 + bl HasNoMailinMailbox + lsls r0, 24 + cmp r0, 0 + bne _0802E6E8 + b _0802E6FC + .align 2, 0 +_0802E6AC: .4byte 0x00000133 +_0802E6B0: .4byte gUnknown_203B304 +_0802E6B4: + movs r0, 0x7 + bl SetMailboxState + b _0802E732 +_0802E6BC: + ldr r0, _0802E6F4 + bl PlaySound + ldr r4, _0802E6F8 + ldr r0, [r4] + ldrb r0, [r0, 0x8] + bl sub_8095FE8 + ldrb r0, [r0, 0x5] + bl sub_8096DF8 + ldr r0, [r4] + ldrb r0, [r0, 0x8] + bl sub_8096040 + bl sub_8096078 + bl HasNoMailinMailbox + lsls r0, 24 + cmp r0, 0 + beq _0802E6FC +_0802E6E8: + bl sub_802BEDC + movs r0, 0x1 + bl SetMailboxState + b _0802E732 + .align 2, 0 +_0802E6F4: .4byte 0x00000133 +_0802E6F8: .4byte gUnknown_203B304 +_0802E6FC: + movs r0, 0x5 + bl SetMailboxState + b _0802E732 +_0802E704: + movs r0, 0 + bl PlayMenuSoundEffect + ldr r4, _0802E728 + ldr r0, [r4] + ldrb r0, [r0, 0x8] + bl sub_8095FE8 + ldr r1, [r4] + ldrb r0, [r0, 0x5] + strb r0, [r1, 0x9] + ldr r1, [r4] + movs r0, 0x5 + str r0, [r1, 0x4] + movs r0, 0xB + bl SetMailboxState + b _0802E732 + .align 2, 0 +_0802E728: .4byte gUnknown_203B304 +_0802E72C: + movs r0, 0x5 + bl SetMailboxState +_0802E732: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_802E60C + + .align 2,0 diff --git a/asm/pelipper_board.s b/asm/pelipper_board.s new file mode 100644 index 0000000..679f1de --- /dev/null +++ b/asm/pelipper_board.s @@ -0,0 +1,448 @@ + .include "constants/gba_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start CreatePelipperBoardMenu +CreatePelipperBoardMenu: + push {r4-r7,lr} + ldr r4, _0802EBDC + ldr r0, [r4] + adds r0, 0xFC + movs r1, 0 + movs r2, 0x10 + bl MemoryFill16 + ldr r1, [r4] + adds r2, r1, 0 + adds r2, 0xBC + ldr r0, _0802EBE0 + str r0, [r2] + adds r1, 0xC0 + movs r0, 0x2 + str r0, [r1] + bl sub_802C4A4 + lsls r0, 24 + cmp r0, 0 + beq _0802EB66 + ldr r0, [r4] + adds r0, 0xFC + movs r1, 0x1 + strh r1, [r0] +_0802EB66: + movs r5, 0x1 + ldr r1, [r4] + adds r2, r1, 0 + adds r2, 0xC4 + ldr r0, _0802EBE4 + str r0, [r2] + adds r1, 0xC8 + movs r0, 0x3 + str r0, [r1] + bl HasNoAcceptedJobs + lsls r0, 24 + cmp r0, 0 + beq _0802EB88 + ldr r0, [r4] + adds r0, 0xFE + strh r5, [r0] +_0802EB88: + movs r5, 0x2 + ldr r2, [r4] + adds r1, r2, 0 + adds r1, 0xCC + movs r0, 0 + str r0, [r1] + adds r1, 0x4 + movs r0, 0x1 + str r0, [r1] + movs r3, 0 + adds r6, r4, 0 + mov r12, r2 + mov r4, r12 + adds r4, 0xFC + adds r2, 0xC0 +_0802EBA6: + ldrh r0, [r4] + cmp r0, 0 + bne _0802EBB6 + ldr r1, [r2] + mov r7, r12 + ldr r0, [r7, 0x64] + cmp r1, r0 + beq _0802EC0A +_0802EBB6: + adds r4, 0x2 + adds r2, 0x8 + adds r3, 0x1 + cmp r3, r5 + blt _0802EBA6 + movs r3, 0 + cmp r3, r5 + bge _0802EC0A + ldr r1, [r6] + adds r0, r1, 0 + adds r0, 0xFC + ldrh r0, [r0] + cmp r0, 0 + bne _0802EBE8 + adds r0, r1, 0 + adds r0, 0xC0 + ldr r0, [r0] + str r0, [r1, 0x64] + b _0802EC0A + .align 2, 0 +_0802EBDC: .4byte gUnknown_203B308 +_0802EBE0: .4byte gPelipperBoard_BulletinBoard +_0802EBE4: .4byte gPelipperBoard_JobList +_0802EBE8: + adds r3, 0x1 + cmp r3, r5 + bge _0802EC0A + ldr r2, [r6] + lsls r0, r3, 1 + adds r1, r2, 0 + adds r1, 0xFC + adds r1, r0 + ldrh r0, [r1] + cmp r0, 0 + bne _0802EBE8 + lsls r0, r3, 3 + adds r1, r2, 0 + adds r1, 0xC0 + adds r1, r0 + ldr r0, [r1] + str r0, [r2, 0x64] +_0802EC0A: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end CreatePelipperBoardMenu + + thumb_func_start sub_802EC10 +sub_802EC10: + push {r4-r7,lr} + movs r6, 0 + ldr r4, _0802ECA8 + ldr r2, [r4] + adds r1, r2, 0 + adds r1, 0xBC + ldr r0, _0802ECAC + ldr r0, [r0] + str r0, [r1] + adds r1, 0x4 + movs r0, 0x4 + str r0, [r1] + ldrb r0, [r2, 0x8] + bl sub_8096574 + bl sub_80968B0 + lsls r0, 24 + cmp r0, 0 + bne _0802EC40 + bl sub_80969AC + cmp r0, 0x7 + ble _0802EC4A +_0802EC40: + ldr r0, [r4] + adds r0, 0xC0 + movs r1, 0x1 + negs r1, r1 + str r1, [r0] +_0802EC4A: + adds r6, 0x1 + ldr r4, _0802ECA8 + ldr r5, [r4] + lsls r1, r6, 3 + adds r2, r5, 0 + adds r2, 0xBC + adds r3, r2, r1 + ldr r0, _0802ECB0 + ldr r0, [r0] + str r0, [r3] + adds r3, r5, 0 + adds r3, 0xC0 + adds r1, r3, r1 + movs r0, 0x5 + str r0, [r1] + adds r6, 0x1 + lsls r1, r6, 3 + adds r2, r1 + movs r0, 0 + str r0, [r2] + adds r1, r3, r1 + movs r0, 0x1 + str r0, [r1] + movs r2, 0 + adds r7, r4, 0 + cmp r2, r6 + bge _0802EC9C + adds r4, r5, 0 + movs r5, 0x1 + negs r5, r5 + adds r1, r3, 0 +_0802EC88: + ldr r3, [r1] + cmp r3, r5 + beq _0802EC94 + ldr r0, [r4, 0x68] + cmp r3, r0 + beq _0802ECA2 +_0802EC94: + adds r1, 0x8 + adds r2, 0x1 + cmp r2, r6 + blt _0802EC88 +_0802EC9C: + ldr r1, [r7] + movs r0, 0x5 + str r0, [r1, 0x68] +_0802ECA2: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802ECA8: .4byte gUnknown_203B308 +_0802ECAC: .4byte gUnknown_80D4990 +_0802ECB0: .4byte gUnknown_80D4970 + thumb_func_end sub_802EC10 + + thumb_func_start sub_802ECB4 +sub_802ECB4: + push {r4,lr} + sub sp, 0x4 + movs r0, 0 + str r0, [sp] + ldr r4, _0802ECF0 + ldr r0, [r4] + adds r0, 0x6C + bl sub_8012FD8 + lsls r0, 24 + cmp r0, 0 + bne _0802ECE0 + ldr r0, [r4] + adds r0, 0x6C + mov r1, sp + bl sub_8013114 + ldr r1, [sp] + cmp r1, 0x1 + beq _0802ECE0 + ldr r0, [r4] + str r1, [r0, 0x64] +_0802ECE0: + ldr r0, [sp] + cmp r0, 0x2 + beq _0802ECFE + cmp r0, 0x2 + bgt _0802ECF4 + cmp r0, 0x1 + beq _0802ED3C + b _0802ED42 + .align 2, 0 +_0802ECF0: .4byte gUnknown_203B308 +_0802ECF4: + cmp r0, 0x3 + beq _0802ED10 + cmp r0, 0x5 + beq _0802ED34 + b _0802ED42 +_0802ECFE: + bl sub_802C4A4 + lsls r0, 24 + cmp r0, 0 + bne _0802ED22 + movs r0, 0x4 + bl SetPelipperBoardState + b _0802ED42 +_0802ED10: + bl HasNoAcceptedJobs + lsls r0, 24 + cmp r0, 0 + bne _0802ED22 + movs r0, 0x8 + bl SetPelipperBoardState + b _0802ED42 +_0802ED22: + ldr r0, _0802ED30 + ldr r0, [r0] + adds r0, 0x6C + movs r1, 0x1 + bl sub_8012EA4 + b _0802ED42 + .align 2, 0 +_0802ED30: .4byte gUnknown_203B308 +_0802ED34: + movs r0, 0x2 + bl SetPelipperBoardState + b _0802ED42 +_0802ED3C: + movs r0, 0x3 + bl SetPelipperBoardState +_0802ED42: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_802ECB4 + + thumb_func_start sub_802ED4C +sub_802ED4C: + push {lr} + movs r0, 0x1 + bl sub_802C1E4 + cmp r0, 0x4 + bhi _0802EDB6 + lsls r0, 2 + ldr r1, _0802ED64 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802ED64: .4byte _0802ED68 + .align 2, 0 +_0802ED68: + .4byte _0802EDB6 + .4byte _0802EDB6 + .4byte _0802EDAC + .4byte _0802ED7C + .4byte _0802ED94 +_0802ED7C: + bl sub_802C26C + ldr r1, _0802ED90 + ldr r1, [r1] + strb r0, [r1, 0x8] + movs r0, 0x6 + bl SetPelipperBoardState + b _0802EDB6 + .align 2, 0 +_0802ED90: .4byte gUnknown_203B308 +_0802ED94: + bl sub_802C26C + ldr r1, _0802EDA8 + ldr r1, [r1] + strb r0, [r1, 0x8] + movs r0, 0x7 + bl SetPelipperBoardState + b _0802EDB6 + .align 2, 0 +_0802EDA8: .4byte gUnknown_203B308 +_0802EDAC: + bl sub_802C2D4 + movs r0, 0x1 + bl SetPelipperBoardState +_0802EDB6: + pop {r0} + bx r0 + thumb_func_end sub_802ED4C + + thumb_func_start sub_802EDBC +sub_802EDBC: + push {r4,lr} + sub sp, 0x4 + movs r0, 0 + str r0, [sp] + bl sub_802C1E4 + ldr r4, _0802EDFC + ldr r0, [r4] + adds r0, 0x6C + bl sub_8012FD8 + lsls r0, 24 + cmp r0, 0 + bne _0802EDEC + ldr r0, [r4] + adds r0, 0x6C + mov r1, sp + bl sub_8013114 + ldr r1, [sp] + cmp r1, 0x1 + beq _0802EDEC + ldr r0, [r4] + str r1, [r0, 0x68] +_0802EDEC: + ldr r0, [sp] + cmp r0, 0x4 + beq _0802EE06 + cmp r0, 0x4 + bgt _0802EE00 + cmp r0, 0x1 + beq _0802EE90 + b _0802EE96 + .align 2, 0 +_0802EDFC: .4byte gUnknown_203B308 +_0802EE00: + cmp r0, 0x5 + beq _0802EE88 + b _0802EE96 +_0802EE06: + ldr r0, _0802EE28 + bl PlaySound + ldr r4, _0802EE2C + ldr r0, [r4] + ldrb r0, [r0, 0x8] + bl sub_8096574 + ldrb r1, [r0] + cmp r1, 0x3 + beq _0802EE3C + cmp r1, 0x3 + bgt _0802EE30 + cmp r1, 0x2 + beq _0802EE36 + b _0802EE5E + .align 2, 0 +_0802EE28: .4byte 0x00000133 +_0802EE2C: .4byte gUnknown_203B308 +_0802EE30: + cmp r1, 0x4 + beq _0802EE42 + b _0802EE5E +_0802EE36: + ldr r0, [r4] + movs r1, 0x1 + b _0802EE46 +_0802EE3C: + ldr r0, [r4] + movs r1, 0x2 + b _0802EE46 +_0802EE42: + ldr r0, [r4] + movs r1, 0x3 +_0802EE46: + str r1, [r0, 0x4] + ldrb r0, [r0, 0x8] + bl sub_80965B8 + bl sub_80965F4 + bl sub_802C2D4 + movs r0, 0x3 + bl SetPelipperBoardState + b _0802EE96 +_0802EE5E: + bl sub_8096A78 + bl sub_8096C80 + bl sub_8096D24 + bl sub_802C4A4 + lsls r0, 24 + cmp r0, 0 + beq _0802EE80 + bl sub_802C2D4 + movs r0, 0x1 + bl SetPelipperBoardState + b _0802EE96 +_0802EE80: + movs r0, 0x5 + bl SetPelipperBoardState + b _0802EE96 +_0802EE88: + movs r0, 0x7 + bl SetPelipperBoardState + b _0802EE96 +_0802EE90: + movs r0, 0x5 + bl SetPelipperBoardState +_0802EE96: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_802EDBC + + .align 2,0 diff --git a/asm/wonder_mail_2.s b/asm/wonder_mail_2.s index f1ec9b6..9564a47 100644 --- a/asm/wonder_mail_2.s +++ b/asm/wonder_mail_2.s @@ -156,7 +156,7 @@ sub_802B9A8: _0802B9AE: lsls r0, r4, 24 lsrs r0, 24 - bl sub_8096E14 + bl CheckPKMNNewsSlot lsls r0, 24 cmp r0, 0 beq _0802B9C6 @@ -177,14 +177,14 @@ _0802B9C6: _0802B9D4: .4byte gUnknown_203B2CC thumb_func_end sub_802B9A8 - thumb_func_start sub_802B9D8 -sub_802B9D8: + thumb_func_start HasNoPKMNNews +HasNoPKMNNews: push {r4,lr} movs r4, 0 _0802B9DC: lsls r0, r4, 24 lsrs r0, 24 - bl sub_8096E14 + bl CheckPKMNNewsSlot lsls r0, 24 cmp r0, 0 beq _0802B9EE @@ -199,7 +199,7 @@ _0802B9F6: pop {r4} pop {r1} bx r1 - thumb_func_end sub_802B9D8 + thumb_func_end HasNoPKMNNews thumb_func_start sub_802B9FC sub_802B9FC: @@ -622,7 +622,7 @@ sub_802BD14: adds r6, r0, 0 adds r4, r1, 0 mov r8, r2 - bl sub_802C0E8 + bl HasNoMailinMailbox lsls r0, 24 cmp r0, 0 beq _0802BD2E @@ -1074,7 +1074,7 @@ sub_802C0B8: _0802C0BE: lsls r0, r4, 24 lsrs r0, 24 - bl sub_8096000 + bl CheckMailSlot lsls r0, 24 cmp r0, 0 bne _0802C0D6 @@ -1095,14 +1095,14 @@ _0802C0D6: _0802C0E4: .4byte gUnknown_203B2D8 thumb_func_end sub_802C0B8 - thumb_func_start sub_802C0E8 -sub_802C0E8: + thumb_func_start HasNoMailinMailbox +HasNoMailinMailbox: push {r4,lr} movs r4, 0 _0802C0EC: lsls r0, r4, 24 lsrs r0, 24 - bl sub_8096000 + bl CheckMailSlot lsls r0, 24 cmp r0, 0 bne _0802C0FE @@ -1117,7 +1117,7 @@ _0802C106: pop {r4} pop {r1} bx r1 - thumb_func_end sub_802C0E8 + thumb_func_end HasNoMailinMailbox thumb_func_start sub_802C10C sub_802C10C: @@ -1605,7 +1605,7 @@ sub_802C4C8: adds r6, r0, 0 adds r4, r1, 0 mov r8, r2 - bl sub_802C83C + bl HasNoAcceptedJobs lsls r0, 24 cmp r0, 0 beq _0802C4E2 @@ -2013,7 +2013,7 @@ sub_802C80C: _0802C812: lsls r0, r4, 24 lsrs r0, 24 - bl sub_8096ACC + bl CheckJobSlot lsls r0, 24 cmp r0, 0 bne _0802C82A @@ -2034,14 +2034,14 @@ _0802C82A: _0802C838: .4byte gUnknown_203B2E8 thumb_func_end sub_802C80C - thumb_func_start sub_802C83C -sub_802C83C: + thumb_func_start HasNoAcceptedJobs +HasNoAcceptedJobs: push {r4,lr} movs r4, 0 _0802C840: lsls r0, r4, 24 lsrs r0, 24 - bl sub_8096ACC + bl CheckJobSlot lsls r0, 24 cmp r0, 0 bne _0802C852 @@ -2056,13 +2056,13 @@ _0802C85A: pop {r4} pop {r1} bx r1 - thumb_func_end sub_802C83C + thumb_func_end HasNoAcceptedJobs thumb_func_start sub_802C860 sub_802C860: push {r4-r6,lr} adds r6, r0, 0 - bl sub_802C83C + bl HasNoAcceptedJobs lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 @@ -2717,7 +2717,7 @@ _0802CD88: ldrb r0, [r0, 0xC] bl sub_8096C3C bl sub_8096C80 - bl sub_802C83C + bl HasNoAcceptedJobs lsls r0, 24 cmp r0, 0 beq _0802CDAA diff --git a/asm/wonder_mail_3.s b/asm/wonder_mail_3.s index 4fc8c85..3d5781b 100644 --- a/asm/wonder_mail_3.s +++ b/asm/wonder_mail_3.s @@ -1667,3687 +1667,4 @@ sub_802DF88: _0802DFAC: .4byte gUnknown_203B300 thumb_func_end sub_802DF88 - thumb_func_start sub_802DFB0 -sub_802DFB0: - push {r4,lr} - ldr r4, _0802DFD4 - movs r0, 0xB6 - lsls r0, 1 - movs r1, 0x8 - bl MemoryAlloc - str r0, [r4] - movs r1, 0 - str r1, [r0, 0x64] - str r1, [r0, 0x68] - movs r0, 0 - bl sub_802E088 - movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0802DFD4: .4byte gUnknown_203B304 - thumb_func_end sub_802DFB0 - - thumb_func_start sub_802DFD8 -sub_802DFD8: - push {lr} - ldr r0, _0802DFF0 - ldr r0, [r0] - ldr r0, [r0] - cmp r0, 0xB - bhi _0802E060 - lsls r0, 2 - ldr r1, _0802DFF4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802DFF0: .4byte gUnknown_203B304 -_0802DFF4: .4byte _0802DFF8 - .align 2, 0 -_0802DFF8: - .4byte _0802E028 - .4byte _0802E030 - .4byte _0802E036 - .4byte _0802E060 - .4byte _0802E03C - .4byte _0802E03C - .4byte _0802E042 - .4byte _0802E048 - .4byte _0802E04E - .4byte _0802E054 - .4byte _0802E054 - .4byte _0802E05A -_0802E028: - movs r0, 0x1 - bl sub_802E088 - b _0802E064 -_0802E030: - bl sub_802E4B0 - b _0802E064 -_0802E036: - bl nullsub_133 - b _0802E064 -_0802E03C: - bl sub_802E578 - b _0802E064 -_0802E042: - bl sub_802E60C - b _0802E064 -_0802E048: - bl sub_802E73C - b _0802E064 -_0802E04E: - bl sub_802E758 - b _0802E064 -_0802E054: - bl sub_802E774 - b _0802E064 -_0802E05A: - bl sub_802E7D0 - b _0802E064 -_0802E060: - movs r0, 0x3 - b _0802E066 -_0802E064: - movs r0, 0 -_0802E066: - pop {r1} - bx r1 - thumb_func_end sub_802DFD8 - - thumb_func_start sub_802E06C -sub_802E06C: - push {r4,lr} - ldr r4, _0802E084 - ldr r0, [r4] - cmp r0, 0 - beq _0802E07E - bl MemoryFree - movs r0, 0 - str r0, [r4] -_0802E07E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802E084: .4byte gUnknown_203B304 - thumb_func_end sub_802E06C - - thumb_func_start sub_802E088 -sub_802E088: - push {lr} - ldr r1, _0802E09C - ldr r1, [r1] - str r0, [r1] - bl sub_802E0A0 - bl sub_802E1AC - pop {r0} - bx r0 - .align 2, 0 -_0802E09C: .4byte gUnknown_203B304 - thumb_func_end sub_802E088 - - thumb_func_start sub_802E0A0 -sub_802E0A0: - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r4, _0802E0C8 - ldr r0, [r4] - movs r6, 0x86 - lsls r6, 1 - adds r0, r6 - bl sub_8006518 - ldr r0, [r4] - ldr r5, [r0] - cmp r5, 0x1 - beq _0802E0D0 - cmp r5, 0x6 - beq _0802E124 - movs r3, 0 - ldr r2, _0802E0CC - b _0802E168 - .align 2, 0 -_0802E0C8: .4byte gUnknown_203B304 -_0802E0CC: .4byte gUnknown_80E0284 -_0802E0D0: - mov r12, r6 - ldr r0, _0802E118 - mov r8, r0 - movs r2, 0 - movs r3, 0x3 -_0802E0DA: - ldr r1, [r4] - adds r1, r2 - add r1, r12 - mov r0, r8 - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - adds r2, 0x18 - subs r3, 0x1 - cmp r3, 0 - bge _0802E0DA - bl CreateMailboxMenu - ldr r3, _0802E11C - ldr r2, [r3] - movs r0, 0x9E - lsls r0, 1 - adds r2, r0 - ldr r1, _0802E120 - ldm r1!, {r4-r6} - stm r2!, {r4-r6} - ldm r1!, {r4,r5,r7} - stm r2!, {r4,r5,r7} - ldr r1, [r3] - adds r0, r1, r0 - adds r1, 0xBC - bl sub_8012CAC - b _0802E188 - .align 2, 0 -_0802E118: .4byte gUnknown_80E0284 -_0802E11C: .4byte gUnknown_203B304 -_0802E120: .4byte gUnknown_80E029C -_0802E124: - bl CreateMailActionMenu - ldr r2, [r4] - movs r0, 0x9E - lsls r0, 1 - adds r2, r0 - ldr r1, _0802E160 - ldm r1!, {r3,r6,r7} - stm r2!, {r3,r6,r7} - ldm r1!, {r3,r6,r7} - stm r2!, {r3,r6,r7} - ldr r1, [r4] - adds r0, r1, r0 - adds r1, 0xBC - bl sub_8012CAC - ldr r1, [r4] - movs r4, 0xA4 - lsls r4, 1 - adds r0, r1, r4 - strh r5, [r0] - movs r5, 0xAA - lsls r5, 1 - adds r1, r5 - ldr r0, _0802E164 - ldm r0!, {r2,r6,r7} - stm r1!, {r2,r6,r7} - ldm r0!, {r3-r5} - stm r1!, {r3-r5} - b _0802E188 - .align 2, 0 -_0802E160: .4byte gUnknown_80E02B4 -_0802E164: .4byte gUnknown_80E02CC -_0802E168: - ldr r0, [r4] - lsls r1, r3, 1 - adds r1, r3 - lsls r1, 3 - adds r0, r1 - movs r6, 0x86 - lsls r6, 1 - adds r0, r6 - adds r1, r2, 0 - ldm r1!, {r5-r7} - stm r0!, {r5-r7} - ldm r1!, {r5-r7} - stm r0!, {r5-r7} - adds r3, 0x1 - cmp r3, 0x3 - ble _0802E168 -_0802E188: - bl ResetUnusedInputStruct - ldr r0, _0802E1A8 - ldr r0, [r0] - movs r7, 0x86 - lsls r7, 1 - adds r0, r7 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0802E1A8: .4byte gUnknown_203B304 - thumb_func_end sub_802E0A0 - - thumb_func_start sub_802E1AC -sub_802E1AC: - push {r4,lr} - sub sp, 0x8 - ldr r1, _0802E1C8 - ldr r0, [r1] - ldr r0, [r0] - adds r4, r1, 0 - cmp r0, 0xB - bhi _0802E2AA - lsls r0, 2 - ldr r1, _0802E1CC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802E1C8: .4byte gUnknown_203B304 -_0802E1CC: .4byte _0802E1D0 - .align 2, 0 -_0802E1D0: - .4byte _0802E2AA - .4byte _0802E200 - .4byte _0802E2AA - .4byte _0802E2AA - .4byte _0802E21E - .4byte _0802E22A - .4byte _0802E232 - .4byte _0802E260 - .4byte _0802E286 - .4byte _0802E28E - .4byte _0802E29A - .4byte _0802E2A2 -_0802E200: - ldr r2, [r4] - adds r0, r2, 0 - adds r0, 0x6C - adds r1, r2, 0 - adds r1, 0xBC - adds r3, r2, 0 - adds r3, 0xFC - ldr r2, [r2, 0x64] - str r2, [sp] - movs r2, 0x2 - str r2, [sp, 0x4] - movs r2, 0 - bl sub_8012D60 - b _0802E2AA -_0802E21E: - movs r0, 0 - movs r1, 0 - movs r2, 0x4 - bl sub_802BD14 - b _0802E2AA -_0802E22A: - movs r0, 0x1 - bl sub_802BE94 - b _0802E2AA -_0802E232: - bl CreateMailMenu - movs r0, 0x3 - bl CreateMailAcceptedStatusBox - ldr r0, _0802E25C - ldr r2, [r0] - adds r0, r2, 0 - adds r0, 0x6C - adds r1, r2, 0 - adds r1, 0xBC - ldr r2, [r2, 0x68] - str r2, [sp] - movs r2, 0x2 - str r2, [sp, 0x4] - movs r2, 0 - movs r3, 0 - bl sub_8012D60 - b _0802E2AA - .align 2, 0 -_0802E25C: .4byte gUnknown_203B304 -_0802E260: - ldr r0, [r4] - ldrb r0, [r0, 0x8] - bl sub_8095FE8 - ldr r1, [r4] - adds r1, 0xC - bl sub_803B35C - ldr r0, [r4] - movs r1, 0x3 - str r1, [r0, 0xC] - adds r0, 0x50 - movs r1, 0 - strb r1, [r0] - ldr r0, [r4] - adds r0, 0xC - bl sub_802DE84 - b _0802E2AA -_0802E286: - movs r0, 0 - bl sub_802C860 - b _0802E2AA -_0802E28E: - movs r0, 0 - movs r1, 0 - movs r2, 0x8 - bl sub_802B640 - b _0802E2AA -_0802E29A: - movs r0, 0x1 - bl sub_802B7D0 - b _0802E2AA -_0802E2A2: - ldr r0, [r4] - ldrb r0, [r0, 0x9] - bl sub_802B9FC -_0802E2AA: - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_802E1AC - - thumb_func_start CreateMailboxMenu -CreateMailboxMenu: - push {r4-r7,lr} - ldr r4, _0802E380 - ldr r0, [r4] - adds r0, 0xFC - movs r1, 0 - movs r2, 0x10 - bl MemoryFill16 - ldr r1, [r4] - adds r2, r1, 0 - adds r2, 0xBC - ldr r0, _0802E384 - str r0, [r2] - adds r1, 0xC0 - movs r0, 0x2 - str r0, [r1] - bl sub_802C0E8 - lsls r0, 24 - cmp r0, 0 - beq _0802E2E6 - ldr r0, [r4] - adds r0, 0xFC - movs r1, 0x1 - strh r1, [r0] -_0802E2E6: - movs r5, 0x1 - ldr r1, [r4] - movs r6, 0x1 - adds r2, r1, 0 - adds r2, 0xC4 - ldr r0, _0802E388 - str r0, [r2] - adds r1, 0xC8 - movs r0, 0x3 - str r0, [r1] - bl sub_802C83C - lsls r0, 24 - cmp r0, 0 - beq _0802E30A - ldr r0, [r4] - adds r0, 0xFE - strh r5, [r0] -_0802E30A: - ldr r1, [r4] - adds r2, r1, 0 - adds r2, 0xCC - ldr r0, _0802E38C - str r0, [r2] - adds r1, 0xD0 - movs r0, 0x4 - str r0, [r1] - bl sub_802B9D8 - lsls r0, 24 - cmp r0, 0 - beq _0802E32E - ldr r0, [r4] - movs r1, 0x80 - lsls r1, 1 - adds r0, r1 - strh r6, [r0] -_0802E32E: - movs r5, 0x3 - ldr r2, [r4] - adds r0, r2, 0 - adds r0, 0xD4 - movs r1, 0 - str r1, [r0] - adds r0, 0x4 - str r6, [r0] - movs r3, 0 - adds r6, r4, 0 - mov r12, r2 - mov r4, r12 - adds r4, 0xFC - adds r2, 0xC0 -_0802E34A: - ldrh r0, [r4] - cmp r0, 0 - bne _0802E35A - ldr r1, [r2] - mov r7, r12 - ldr r0, [r7, 0x64] - cmp r1, r0 - beq _0802E3B2 -_0802E35A: - adds r4, 0x2 - adds r2, 0x8 - adds r3, 0x1 - cmp r3, r5 - blt _0802E34A - movs r3, 0 - cmp r3, r5 - bge _0802E3B2 - ldr r1, [r6] - adds r0, r1, 0 - adds r0, 0xFC - ldrh r0, [r0] - cmp r0, 0 - bne _0802E390 - adds r0, r1, 0 - adds r0, 0xC0 - ldr r0, [r0] - str r0, [r1, 0x64] - b _0802E3B2 - .align 2, 0 -_0802E380: .4byte gUnknown_203B304 -_0802E384: .4byte gMailboxCheckMail -_0802E388: .4byte gMailboxJobList -_0802E38C: .4byte gMailboxPKMNNews -_0802E390: - adds r3, 0x1 - cmp r3, r5 - bge _0802E3B2 - ldr r2, [r6] - lsls r0, r3, 1 - adds r1, r2, 0 - adds r1, 0xFC - adds r1, r0 - ldrh r0, [r1] - cmp r0, 0 - bne _0802E390 - lsls r0, r3, 3 - adds r1, r2, 0 - adds r1, 0xC0 - adds r1, r0 - ldr r0, [r1] - str r0, [r2, 0x64] -_0802E3B2: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end CreateMailboxMenu - - thumb_func_start CreateMailActionMenu -CreateMailActionMenu: - push {r4-r7,lr} - movs r5, 0 - ldr r4, _0802E3F0 - ldr r0, [r4] - ldrb r0, [r0, 0x8] - bl sub_8095FE8 - adds r7, r0, 0 - ldrb r0, [r7] - cmp r0, 0x1 - bne _0802E3FC - ldr r2, [r4] - adds r1, r2, 0 - adds r1, 0xBC - ldr r0, _0802E3F4 - str r0, [r1] - adds r1, 0x4 - movs r0, 0x6 - str r0, [r1] - adds r1, 0x4 - ldr r0, _0802E3F8 - str r0, [r1] - adds r1, 0x4 - movs r0, 0x7 - str r0, [r1] - movs r5, 0x2 - b _0802E44A - .align 2, 0 -_0802E3F0: .4byte gUnknown_203B304 -_0802E3F4: .4byte gMailActionStore -_0802E3F8: .4byte gMailActionRead -_0802E3FC: - ldr r1, [r4] - adds r2, r1, 0 - adds r2, 0xBC - ldr r0, _0802E494 - ldr r0, [r0] - str r0, [r2] - adds r1, 0xC0 - movs r0, 0x5 - str r0, [r1] - adds r0, r7, 0 - bl sub_80968B0 - lsls r0, 24 - cmp r0, 0 - bne _0802E422 - bl sub_80969AC - cmp r0, 0x7 - ble _0802E42C -_0802E422: - ldr r0, [r4] - adds r0, 0xC0 - movs r1, 0x1 - negs r1, r1 - str r1, [r0] -_0802E42C: - adds r5, 0x1 - ldr r4, _0802E498 - ldr r2, [r4] - lsls r3, r5, 3 - adds r0, r2, 0 - adds r0, 0xBC - adds r0, r3 - ldr r1, _0802E49C - ldr r1, [r1] - str r1, [r0] - adds r2, 0xC0 - adds r2, r3 - movs r0, 0x8 - str r0, [r2] - adds r5, 0x1 -_0802E44A: - mov r12, r4 - mov r0, r12 - ldr r4, [r0] - lsls r2, r5, 3 - adds r0, r4, 0 - adds r0, 0xBC - adds r0, r2 - movs r1, 0 - str r1, [r0] - adds r1, r4, 0 - adds r1, 0xC0 - adds r2, r1, r2 - movs r0, 0x1 - str r0, [r2] - movs r3, 0 - cmp r3, r5 - bge _0802E486 - movs r6, 0x1 - negs r6, r6 - adds r2, r1, 0 -_0802E472: - ldr r1, [r2] - cmp r1, r6 - beq _0802E47E - ldr r0, [r4, 0x68] - cmp r1, r0 - beq _0802E4A8 -_0802E47E: - adds r2, 0x8 - adds r3, 0x1 - cmp r3, r5 - blt _0802E472 -_0802E486: - ldrb r0, [r7] - cmp r0, 0x1 - bne _0802E4A0 - mov r0, r12 - ldr r1, [r0] - movs r0, 0x7 - b _0802E4A6 - .align 2, 0 -_0802E494: .4byte gUnknown_80D4990 -_0802E498: .4byte gUnknown_203B304 -_0802E49C: .4byte gUnknown_80D4970 -_0802E4A0: - mov r0, r12 - ldr r1, [r0] - movs r0, 0x8 -_0802E4A6: - str r0, [r1, 0x68] -_0802E4A8: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end CreateMailActionMenu - - thumb_func_start sub_802E4B0 -sub_802E4B0: - push {r4,lr} - sub sp, 0x4 - movs r0, 0 - str r0, [sp] - ldr r4, _0802E4F0 - ldr r0, [r4] - adds r0, 0x6C - bl sub_8012FD8 - lsls r0, 24 - cmp r0, 0 - bne _0802E4DC - ldr r0, [r4] - adds r0, 0x6C - mov r1, sp - bl sub_8013114 - ldr r1, [sp] - cmp r1, 0x1 - beq _0802E4DC - ldr r0, [r4] - str r1, [r0, 0x64] -_0802E4DC: - ldr r0, [sp] - subs r0, 0x1 - cmp r0, 0x7 - bhi _0802E56E - lsls r0, 2 - ldr r1, _0802E4F4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802E4F0: .4byte gUnknown_203B304 -_0802E4F4: .4byte _0802E4F8 - .align 2, 0 -_0802E4F8: - .4byte _0802E568 - .4byte _0802E518 - .4byte _0802E52A - .4byte _0802E53C - .4byte _0802E56E - .4byte _0802E56E - .4byte _0802E56E - .4byte _0802E560 -_0802E518: - bl sub_802C0E8 - lsls r0, 24 - cmp r0, 0 - bne _0802E54E - movs r0, 0x4 - bl sub_802E088 - b _0802E56E -_0802E52A: - bl sub_802C83C - lsls r0, 24 - cmp r0, 0 - bne _0802E54E - movs r0, 0x8 - bl sub_802E088 - b _0802E56E -_0802E53C: - bl sub_802B9D8 - lsls r0, 24 - cmp r0, 0 - bne _0802E54E - movs r0, 0x9 - bl sub_802E088 - b _0802E56E -_0802E54E: - ldr r0, _0802E55C - ldr r0, [r0] - adds r0, 0x6C - movs r1, 0x1 - bl sub_8012EA4 - b _0802E56E - .align 2, 0 -_0802E55C: .4byte gUnknown_203B304 -_0802E560: - movs r0, 0x2 - bl sub_802E088 - b _0802E56E -_0802E568: - movs r0, 0x3 - bl sub_802E088 -_0802E56E: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_802E4B0 - - thumb_func_start sub_802E578 -sub_802E578: - push {r4,lr} - movs r0, 0x1 - bl sub_802BDEC - cmp r0, 0x4 - bhi _0802E606 - lsls r0, 2 - ldr r1, _0802E590 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802E590: .4byte _0802E594 - .align 2, 0 -_0802E594: - .4byte _0802E606 - .4byte _0802E606 - .4byte _0802E5FC - .4byte _0802E5A8 - .4byte _0802E5C0 -_0802E5A8: - bl sub_802BE74 - ldr r1, _0802E5BC - ldr r1, [r1] - strb r0, [r1, 0x8] - movs r0, 0x6 - bl sub_802E088 - b _0802E606 - .align 2, 0 -_0802E5BC: .4byte gUnknown_203B304 -_0802E5C0: - bl sub_802BE74 - ldr r4, _0802E5F0 - ldr r1, [r4] - strb r0, [r1, 0x8] - ldr r0, [r4] - ldrb r0, [r0, 0x8] - bl sub_8095FE8 - adds r2, r0, 0 - ldrb r0, [r2] - cmp r0, 0x1 - bne _0802E5F4 - ldr r1, [r4] - ldrb r0, [r2, 0x5] - strb r0, [r1, 0x9] - ldr r1, [r4] - movs r0, 0x5 - str r0, [r1, 0x4] - movs r0, 0xB - bl sub_802E088 - b _0802E606 - .align 2, 0 -_0802E5F0: .4byte gUnknown_203B304 -_0802E5F4: - movs r0, 0x7 - bl sub_802E088 - b _0802E606 -_0802E5FC: - bl sub_802BEDC - movs r0, 0x1 - bl sub_802E088 -_0802E606: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_802E578 - - thumb_func_start sub_802E60C -sub_802E60C: - push {r4,lr} - sub sp, 0x4 - movs r0, 0 - str r0, [sp] - bl sub_802BDEC - ldr r4, _0802E650 - ldr r0, [r4] - adds r0, 0x6C - bl sub_8012FD8 - lsls r0, 24 - cmp r0, 0 - bne _0802E63C - ldr r0, [r4] - adds r0, 0x6C - mov r1, sp - bl sub_8013114 - ldr r1, [sp] - cmp r1, 0x1 - beq _0802E63C - ldr r0, [r4] - str r1, [r0, 0x68] -_0802E63C: - ldr r0, [sp] - subs r0, 0x1 - cmp r0, 0x7 - bhi _0802E732 - lsls r0, 2 - ldr r1, _0802E654 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802E650: .4byte gUnknown_203B304 -_0802E654: .4byte _0802E658 - .align 2, 0 -_0802E658: - .4byte _0802E72C - .4byte _0802E732 - .4byte _0802E732 - .4byte _0802E732 - .4byte _0802E678 - .4byte _0802E6BC - .4byte _0802E704 - .4byte _0802E6B4 -_0802E678: - ldr r0, _0802E6AC - bl PlaySound - ldr r4, _0802E6B0 - ldr r0, [r4] - ldrb r0, [r0, 0x8] - bl sub_8095FE8 - bl sub_8096A78 - bl sub_8096C80 - bl sub_8096D24 - ldr r0, [r4] - ldrb r0, [r0, 0x8] - bl sub_8096040 - bl sub_8096078 - bl sub_802C0E8 - lsls r0, 24 - cmp r0, 0 - bne _0802E6E8 - b _0802E6FC - .align 2, 0 -_0802E6AC: .4byte 0x00000133 -_0802E6B0: .4byte gUnknown_203B304 -_0802E6B4: - movs r0, 0x7 - bl sub_802E088 - b _0802E732 -_0802E6BC: - ldr r0, _0802E6F4 - bl PlaySound - ldr r4, _0802E6F8 - ldr r0, [r4] - ldrb r0, [r0, 0x8] - bl sub_8095FE8 - ldrb r0, [r0, 0x5] - bl sub_8096DF8 - ldr r0, [r4] - ldrb r0, [r0, 0x8] - bl sub_8096040 - bl sub_8096078 - bl sub_802C0E8 - lsls r0, 24 - cmp r0, 0 - beq _0802E6FC -_0802E6E8: - bl sub_802BEDC - movs r0, 0x1 - bl sub_802E088 - b _0802E732 - .align 2, 0 -_0802E6F4: .4byte 0x00000133 -_0802E6F8: .4byte gUnknown_203B304 -_0802E6FC: - movs r0, 0x5 - bl sub_802E088 - b _0802E732 -_0802E704: - movs r0, 0 - bl PlayMenuSoundEffect - ldr r4, _0802E728 - ldr r0, [r4] - ldrb r0, [r0, 0x8] - bl sub_8095FE8 - ldr r1, [r4] - ldrb r0, [r0, 0x5] - strb r0, [r1, 0x9] - ldr r1, [r4] - movs r0, 0x5 - str r0, [r1, 0x4] - movs r0, 0xB - bl sub_802E088 - b _0802E732 - .align 2, 0 -_0802E728: .4byte gUnknown_203B304 -_0802E72C: - movs r0, 0x5 - bl sub_802E088 -_0802E732: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_802E60C - - thumb_func_start sub_802E73C -sub_802E73C: - push {lr} - bl sub_802DEE0 - cmp r0, 0x1 - bls _0802E754 - cmp r0, 0x3 - bhi _0802E754 - bl sub_802DF24 - movs r0, 0x5 - bl sub_802E088 -_0802E754: - pop {r0} - bx r0 - thumb_func_end sub_802E73C - - thumb_func_start sub_802E758 -sub_802E758: - push {lr} - bl sub_802C898 - cmp r0, 0x1 - bls _0802E770 - cmp r0, 0x3 - bhi _0802E770 - bl sub_802C8F4 - movs r0, 0x1 - bl sub_802E088 -_0802E770: - pop {r0} - bx r0 - thumb_func_end sub_802E758 - - thumb_func_start sub_802E774 -sub_802E774: - push {lr} - movs r0, 0x1 - bl sub_802B720 - cmp r0, 0x4 - bhi _0802E7CA - lsls r0, 2 - ldr r1, _0802E78C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802E78C: .4byte _0802E790 - .align 2, 0 -_0802E790: - .4byte _0802E7CA - .4byte _0802E7CA - .4byte _0802E7C0 - .4byte _0802E7A4 - .4byte _0802E7A4 -_0802E7A4: - bl sub_802B7A8 - ldr r2, _0802E7BC - ldr r1, [r2] - strb r0, [r1, 0x9] - ldr r1, [r2] - movs r0, 0xA - str r0, [r1, 0x4] - movs r0, 0xB - bl sub_802E088 - b _0802E7CA - .align 2, 0 -_0802E7BC: .4byte gUnknown_203B304 -_0802E7C0: - bl sub_802B81C - movs r0, 0x1 - bl sub_802E088 -_0802E7CA: - pop {r0} - bx r0 - thumb_func_end sub_802E774 - - thumb_func_start sub_802E7D0 -sub_802E7D0: - push {lr} - bl sub_802BA8C - cmp r0, 0x1 - bls _0802E7EC - cmp r0, 0x3 - bhi _0802E7EC - bl sub_802BACC - ldr r0, _0802E7F0 - ldr r0, [r0] - ldr r0, [r0, 0x4] - bl sub_802E088 -_0802E7EC: - pop {r0} - bx r0 - .align 2, 0 -_0802E7F0: .4byte gUnknown_203B304 - thumb_func_end sub_802E7D0 - - thumb_func_start nullsub_133 -nullsub_133: - bx lr - thumb_func_end nullsub_133 - - thumb_func_start CreateMailAcceptedStatusBox -CreateMailAcceptedStatusBox: - push {r4-r6,lr} - sub sp, 0x8 - adds r4, r0, 0 - bl sub_8008C54 - adds r0, r4, 0 - bl sub_80073B8 - ldr r2, _0802E85C - movs r6, 0 - str r6, [sp] - movs r0, 0x3 - movs r1, 0 - adds r3, r4, 0 - bl xxx_call_draw_string - bl sub_80969AC - adds r2, r0, 0 - movs r5, 0x7 - str r5, [sp] - str r4, [sp, 0x4] - movs r0, 0x12 - movs r1, 0xD - movs r3, 0x2 - bl sub_8012BC4 - ldr r2, _0802E860 - str r6, [sp] - movs r0, 0x16 - movs r1, 0xD - adds r3, r4, 0 - bl xxx_call_draw_string - str r5, [sp] - str r4, [sp, 0x4] - movs r0, 0x23 - movs r1, 0xD - movs r2, 0x8 - movs r3, 0x2 - bl sub_8012BC4 - adds r0, r4, 0 - bl sub_80073E0 - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0802E85C: .4byte gMailAccepted -_0802E860: .4byte gUnknown_80E0324 - thumb_func_end CreateMailAcceptedStatusBox - - thumb_func_start sub_802E864 -sub_802E864: - push {r4,lr} - ldr r4, _0802E88C - movs r0, 0xB6 - lsls r0, 1 - movs r1, 0x8 - bl MemoryAlloc - str r0, [r4] - movs r1, 0 - str r1, [r0, 0x64] - str r1, [r0, 0x68] - str r1, [r0, 0x4] - movs r0, 0 - bl sub_802E934 - movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0802E88C: .4byte gUnknown_203B308 - thumb_func_end sub_802E864 - - thumb_func_start sub_802E890 -sub_802E890: - push {lr} - ldr r0, _0802E8A8 - ldr r0, [r0] - ldr r0, [r0] - cmp r0, 0x8 - bhi _0802E900 - lsls r0, 2 - ldr r1, _0802E8AC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802E8A8: .4byte gUnknown_203B308 -_0802E8AC: .4byte _0802E8B0 - .align 2, 0 -_0802E8B0: - .4byte _0802E8D4 - .4byte _0802E8DC - .4byte _0802E8E2 - .4byte _0802E900 - .4byte _0802E8E8 - .4byte _0802E8E8 - .4byte _0802E8EE - .4byte _0802E8F4 - .4byte _0802E8FA -_0802E8D4: - movs r0, 0x1 - bl sub_802E934 - b _0802E904 -_0802E8DC: - bl sub_802ECB4 - b _0802E904 -_0802E8E2: - bl nullsub_134 - b _0802E904 -_0802E8E8: - bl sub_802ED4C - b _0802E904 -_0802E8EE: - bl sub_802EDBC - b _0802E904 -_0802E8F4: - bl sub_802EEA0 - b _0802E904 -_0802E8FA: - bl sub_802EEBC - b _0802E904 -_0802E900: - movs r0, 0x3 - b _0802E906 -_0802E904: - movs r0, 0 -_0802E906: - pop {r1} - bx r1 - thumb_func_end sub_802E890 - - thumb_func_start sub_802E90C -sub_802E90C: - ldr r0, _0802E914 - ldr r0, [r0] - ldr r0, [r0, 0x4] - bx lr - .align 2, 0 -_0802E914: .4byte gUnknown_203B308 - thumb_func_end sub_802E90C - - thumb_func_start sub_802E918 -sub_802E918: - push {r4,lr} - ldr r4, _0802E930 - ldr r0, [r4] - cmp r0, 0 - beq _0802E92A - bl MemoryFree - movs r0, 0 - str r0, [r4] -_0802E92A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802E930: .4byte gUnknown_203B308 - thumb_func_end sub_802E918 - - thumb_func_start sub_802E934 -sub_802E934: - push {lr} - ldr r1, _0802E948 - ldr r1, [r1] - str r0, [r1] - bl sub_802E94C - bl sub_802EA58 - pop {r0} - bx r0 - .align 2, 0 -_0802E948: .4byte gUnknown_203B308 - thumb_func_end sub_802E934 - - thumb_func_start sub_802E94C -sub_802E94C: - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r4, _0802E974 - ldr r0, [r4] - movs r6, 0x86 - lsls r6, 1 - adds r0, r6 - bl sub_8006518 - ldr r0, [r4] - ldr r5, [r0] - cmp r5, 0x1 - beq _0802E97C - cmp r5, 0x6 - beq _0802E9D0 - movs r3, 0 - ldr r2, _0802E978 - b _0802EA14 - .align 2, 0 -_0802E974: .4byte gUnknown_203B308 -_0802E978: .4byte gUnknown_80E0330 -_0802E97C: - mov r12, r6 - ldr r0, _0802E9C4 - mov r8, r0 - movs r2, 0 - movs r3, 0x3 -_0802E986: - ldr r1, [r4] - adds r1, r2 - add r1, r12 - mov r0, r8 - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - adds r2, 0x18 - subs r3, 0x1 - cmp r3, 0 - bge _0802E986 - bl CreatePelliperBoardMenu - ldr r3, _0802E9C8 - ldr r2, [r3] - movs r0, 0x9E - lsls r0, 1 - adds r2, r0 - ldr r1, _0802E9CC - ldm r1!, {r4-r6} - stm r2!, {r4-r6} - ldm r1!, {r4,r5,r7} - stm r2!, {r4,r5,r7} - ldr r1, [r3] - adds r0, r1, r0 - adds r1, 0xBC - bl sub_8012CAC - b _0802EA34 - .align 2, 0 -_0802E9C4: .4byte gUnknown_80E0330 -_0802E9C8: .4byte gUnknown_203B308 -_0802E9CC: .4byte gUnknown_80E0348 -_0802E9D0: - bl sub_802EC10 - ldr r2, [r4] - movs r0, 0x9E - lsls r0, 1 - adds r2, r0 - ldr r1, _0802EA0C - ldm r1!, {r3,r6,r7} - stm r2!, {r3,r6,r7} - ldm r1!, {r3,r6,r7} - stm r2!, {r3,r6,r7} - ldr r1, [r4] - adds r0, r1, r0 - adds r1, 0xBC - bl sub_8012CAC - ldr r1, [r4] - movs r4, 0xA4 - lsls r4, 1 - adds r0, r1, r4 - strh r5, [r0] - movs r5, 0xAA - lsls r5, 1 - adds r1, r5 - ldr r0, _0802EA10 - ldm r0!, {r2,r6,r7} - stm r1!, {r2,r6,r7} - ldm r0!, {r3-r5} - stm r1!, {r3-r5} - b _0802EA34 - .align 2, 0 -_0802EA0C: .4byte gUnknown_80E0360 -_0802EA10: .4byte gUnknown_80E0378 -_0802EA14: - ldr r0, [r4] - lsls r1, r3, 1 - adds r1, r3 - lsls r1, 3 - adds r0, r1 - movs r6, 0x86 - lsls r6, 1 - adds r0, r6 - adds r1, r2, 0 - ldm r1!, {r5-r7} - stm r0!, {r5-r7} - ldm r1!, {r5-r7} - stm r0!, {r5-r7} - adds r3, 0x1 - cmp r3, 0x3 - ble _0802EA14 -_0802EA34: - bl ResetUnusedInputStruct - ldr r0, _0802EA54 - ldr r0, [r0] - movs r7, 0x86 - lsls r7, 1 - adds r0, r7 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0802EA54: .4byte gUnknown_203B308 - thumb_func_end sub_802E94C - - thumb_func_start sub_802EA58 -sub_802EA58: - push {r4,lr} - sub sp, 0x8 - ldr r1, _0802EA74 - ldr r0, [r1] - ldr r0, [r0] - adds r4, r1, 0 - cmp r0, 0x8 - bhi _0802EB2C - lsls r0, 2 - ldr r1, _0802EA78 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802EA74: .4byte gUnknown_203B308 -_0802EA78: .4byte _0802EA7C - .align 2, 0 -_0802EA7C: - .4byte _0802EB2C - .4byte _0802EAA0 - .4byte _0802EB2C - .4byte _0802EB2C - .4byte _0802EABE - .4byte _0802EACA - .4byte _0802EAD2 - .4byte _0802EB00 - .4byte _0802EB26 -_0802EAA0: - ldr r2, [r4] - adds r0, r2, 0 - adds r0, 0x6C - adds r1, r2, 0 - adds r1, 0xBC - adds r3, r2, 0 - adds r3, 0xFC - ldr r2, [r2, 0x64] - str r2, [sp] - movs r2, 0x2 - str r2, [sp, 0x4] - movs r2, 0 - bl sub_8012D60 - b _0802EB2C -_0802EABE: - movs r0, 0 - movs r1, 0 - movs r2, 0x4 - bl sub_802C10C - b _0802EB2C -_0802EACA: - movs r0, 0x1 - bl sub_802C28C - b _0802EB2C -_0802EAD2: - bl sub_802C39C - movs r0, 0x3 - bl CreatePelliperAcceptedStatusBox - ldr r0, _0802EAFC - ldr r2, [r0] - adds r0, r2, 0 - adds r0, 0x6C - adds r1, r2, 0 - adds r1, 0xBC - ldr r2, [r2, 0x68] - str r2, [sp] - movs r2, 0x2 - str r2, [sp, 0x4] - movs r2, 0 - movs r3, 0 - bl sub_8012D60 - b _0802EB2C - .align 2, 0 -_0802EAFC: .4byte gUnknown_203B308 -_0802EB00: - ldr r0, [r4] - ldrb r0, [r0, 0x8] - bl sub_8096574 - ldr r1, [r4] - adds r1, 0xC - bl sub_803B35C - ldr r0, [r4] - movs r1, 0x3 - str r1, [r0, 0xC] - adds r0, 0x50 - movs r1, 0 - strb r1, [r0] - ldr r0, [r4] - adds r0, 0xC - bl sub_802DE84 - b _0802EB2C -_0802EB26: - movs r0, 0 - bl sub_802C860 -_0802EB2C: - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_802EA58 - - thumb_func_start CreatePelliperBoardMenu -CreatePelliperBoardMenu: - push {r4-r7,lr} - ldr r4, _0802EBDC - ldr r0, [r4] - adds r0, 0xFC - movs r1, 0 - movs r2, 0x10 - bl MemoryFill16 - ldr r1, [r4] - adds r2, r1, 0 - adds r2, 0xBC - ldr r0, _0802EBE0 - str r0, [r2] - adds r1, 0xC0 - movs r0, 0x2 - str r0, [r1] - bl sub_802C4A4 - lsls r0, 24 - cmp r0, 0 - beq _0802EB66 - ldr r0, [r4] - adds r0, 0xFC - movs r1, 0x1 - strh r1, [r0] -_0802EB66: - movs r5, 0x1 - ldr r1, [r4] - adds r2, r1, 0 - adds r2, 0xC4 - ldr r0, _0802EBE4 - str r0, [r2] - adds r1, 0xC8 - movs r0, 0x3 - str r0, [r1] - bl sub_802C83C - lsls r0, 24 - cmp r0, 0 - beq _0802EB88 - ldr r0, [r4] - adds r0, 0xFE - strh r5, [r0] -_0802EB88: - movs r5, 0x2 - ldr r2, [r4] - adds r1, r2, 0 - adds r1, 0xCC - movs r0, 0 - str r0, [r1] - adds r1, 0x4 - movs r0, 0x1 - str r0, [r1] - movs r3, 0 - adds r6, r4, 0 - mov r12, r2 - mov r4, r12 - adds r4, 0xFC - adds r2, 0xC0 -_0802EBA6: - ldrh r0, [r4] - cmp r0, 0 - bne _0802EBB6 - ldr r1, [r2] - mov r7, r12 - ldr r0, [r7, 0x64] - cmp r1, r0 - beq _0802EC0A -_0802EBB6: - adds r4, 0x2 - adds r2, 0x8 - adds r3, 0x1 - cmp r3, r5 - blt _0802EBA6 - movs r3, 0 - cmp r3, r5 - bge _0802EC0A - ldr r1, [r6] - adds r0, r1, 0 - adds r0, 0xFC - ldrh r0, [r0] - cmp r0, 0 - bne _0802EBE8 - adds r0, r1, 0 - adds r0, 0xC0 - ldr r0, [r0] - str r0, [r1, 0x64] - b _0802EC0A - .align 2, 0 -_0802EBDC: .4byte gUnknown_203B308 -_0802EBE0: .4byte gPelliperBoard_BulletinBoard -_0802EBE4: .4byte gPelliperBoard_JobList -_0802EBE8: - adds r3, 0x1 - cmp r3, r5 - bge _0802EC0A - ldr r2, [r6] - lsls r0, r3, 1 - adds r1, r2, 0 - adds r1, 0xFC - adds r1, r0 - ldrh r0, [r1] - cmp r0, 0 - bne _0802EBE8 - lsls r0, r3, 3 - adds r1, r2, 0 - adds r1, 0xC0 - adds r1, r0 - ldr r0, [r1] - str r0, [r2, 0x64] -_0802EC0A: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end CreatePelliperBoardMenu - - thumb_func_start sub_802EC10 -sub_802EC10: - push {r4-r7,lr} - movs r6, 0 - ldr r4, _0802ECA8 - ldr r2, [r4] - adds r1, r2, 0 - adds r1, 0xBC - ldr r0, _0802ECAC - ldr r0, [r0] - str r0, [r1] - adds r1, 0x4 - movs r0, 0x4 - str r0, [r1] - ldrb r0, [r2, 0x8] - bl sub_8096574 - bl sub_80968B0 - lsls r0, 24 - cmp r0, 0 - bne _0802EC40 - bl sub_80969AC - cmp r0, 0x7 - ble _0802EC4A -_0802EC40: - ldr r0, [r4] - adds r0, 0xC0 - movs r1, 0x1 - negs r1, r1 - str r1, [r0] -_0802EC4A: - adds r6, 0x1 - ldr r4, _0802ECA8 - ldr r5, [r4] - lsls r1, r6, 3 - adds r2, r5, 0 - adds r2, 0xBC - adds r3, r2, r1 - ldr r0, _0802ECB0 - ldr r0, [r0] - str r0, [r3] - adds r3, r5, 0 - adds r3, 0xC0 - adds r1, r3, r1 - movs r0, 0x5 - str r0, [r1] - adds r6, 0x1 - lsls r1, r6, 3 - adds r2, r1 - movs r0, 0 - str r0, [r2] - adds r1, r3, r1 - movs r0, 0x1 - str r0, [r1] - movs r2, 0 - adds r7, r4, 0 - cmp r2, r6 - bge _0802EC9C - adds r4, r5, 0 - movs r5, 0x1 - negs r5, r5 - adds r1, r3, 0 -_0802EC88: - ldr r3, [r1] - cmp r3, r5 - beq _0802EC94 - ldr r0, [r4, 0x68] - cmp r3, r0 - beq _0802ECA2 -_0802EC94: - adds r1, 0x8 - adds r2, 0x1 - cmp r2, r6 - blt _0802EC88 -_0802EC9C: - ldr r1, [r7] - movs r0, 0x5 - str r0, [r1, 0x68] -_0802ECA2: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0802ECA8: .4byte gUnknown_203B308 -_0802ECAC: .4byte gUnknown_80D4990 -_0802ECB0: .4byte gUnknown_80D4970 - thumb_func_end sub_802EC10 - - thumb_func_start sub_802ECB4 -sub_802ECB4: - push {r4,lr} - sub sp, 0x4 - movs r0, 0 - str r0, [sp] - ldr r4, _0802ECF0 - ldr r0, [r4] - adds r0, 0x6C - bl sub_8012FD8 - lsls r0, 24 - cmp r0, 0 - bne _0802ECE0 - ldr r0, [r4] - adds r0, 0x6C - mov r1, sp - bl sub_8013114 - ldr r1, [sp] - cmp r1, 0x1 - beq _0802ECE0 - ldr r0, [r4] - str r1, [r0, 0x64] -_0802ECE0: - ldr r0, [sp] - cmp r0, 0x2 - beq _0802ECFE - cmp r0, 0x2 - bgt _0802ECF4 - cmp r0, 0x1 - beq _0802ED3C - b _0802ED42 - .align 2, 0 -_0802ECF0: .4byte gUnknown_203B308 -_0802ECF4: - cmp r0, 0x3 - beq _0802ED10 - cmp r0, 0x5 - beq _0802ED34 - b _0802ED42 -_0802ECFE: - bl sub_802C4A4 - lsls r0, 24 - cmp r0, 0 - bne _0802ED22 - movs r0, 0x4 - bl sub_802E934 - b _0802ED42 -_0802ED10: - bl sub_802C83C - lsls r0, 24 - cmp r0, 0 - bne _0802ED22 - movs r0, 0x8 - bl sub_802E934 - b _0802ED42 -_0802ED22: - ldr r0, _0802ED30 - ldr r0, [r0] - adds r0, 0x6C - movs r1, 0x1 - bl sub_8012EA4 - b _0802ED42 - .align 2, 0 -_0802ED30: .4byte gUnknown_203B308 -_0802ED34: - movs r0, 0x2 - bl sub_802E934 - b _0802ED42 -_0802ED3C: - movs r0, 0x3 - bl sub_802E934 -_0802ED42: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_802ECB4 - - thumb_func_start sub_802ED4C -sub_802ED4C: - push {lr} - movs r0, 0x1 - bl sub_802C1E4 - cmp r0, 0x4 - bhi _0802EDB6 - lsls r0, 2 - ldr r1, _0802ED64 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802ED64: .4byte _0802ED68 - .align 2, 0 -_0802ED68: - .4byte _0802EDB6 - .4byte _0802EDB6 - .4byte _0802EDAC - .4byte _0802ED7C - .4byte _0802ED94 -_0802ED7C: - bl sub_802C26C - ldr r1, _0802ED90 - ldr r1, [r1] - strb r0, [r1, 0x8] - movs r0, 0x6 - bl sub_802E934 - b _0802EDB6 - .align 2, 0 -_0802ED90: .4byte gUnknown_203B308 -_0802ED94: - bl sub_802C26C - ldr r1, _0802EDA8 - ldr r1, [r1] - strb r0, [r1, 0x8] - movs r0, 0x7 - bl sub_802E934 - b _0802EDB6 - .align 2, 0 -_0802EDA8: .4byte gUnknown_203B308 -_0802EDAC: - bl sub_802C2D4 - movs r0, 0x1 - bl sub_802E934 -_0802EDB6: - pop {r0} - bx r0 - thumb_func_end sub_802ED4C - - thumb_func_start sub_802EDBC -sub_802EDBC: - push {r4,lr} - sub sp, 0x4 - movs r0, 0 - str r0, [sp] - bl sub_802C1E4 - ldr r4, _0802EDFC - ldr r0, [r4] - adds r0, 0x6C - bl sub_8012FD8 - lsls r0, 24 - cmp r0, 0 - bne _0802EDEC - ldr r0, [r4] - adds r0, 0x6C - mov r1, sp - bl sub_8013114 - ldr r1, [sp] - cmp r1, 0x1 - beq _0802EDEC - ldr r0, [r4] - str r1, [r0, 0x68] -_0802EDEC: - ldr r0, [sp] - cmp r0, 0x4 - beq _0802EE06 - cmp r0, 0x4 - bgt _0802EE00 - cmp r0, 0x1 - beq _0802EE90 - b _0802EE96 - .align 2, 0 -_0802EDFC: .4byte gUnknown_203B308 -_0802EE00: - cmp r0, 0x5 - beq _0802EE88 - b _0802EE96 -_0802EE06: - ldr r0, _0802EE28 - bl PlaySound - ldr r4, _0802EE2C - ldr r0, [r4] - ldrb r0, [r0, 0x8] - bl sub_8096574 - ldrb r1, [r0] - cmp r1, 0x3 - beq _0802EE3C - cmp r1, 0x3 - bgt _0802EE30 - cmp r1, 0x2 - beq _0802EE36 - b _0802EE5E - .align 2, 0 -_0802EE28: .4byte 0x00000133 -_0802EE2C: .4byte gUnknown_203B308 -_0802EE30: - cmp r1, 0x4 - beq _0802EE42 - b _0802EE5E -_0802EE36: - ldr r0, [r4] - movs r1, 0x1 - b _0802EE46 -_0802EE3C: - ldr r0, [r4] - movs r1, 0x2 - b _0802EE46 -_0802EE42: - ldr r0, [r4] - movs r1, 0x3 -_0802EE46: - str r1, [r0, 0x4] - ldrb r0, [r0, 0x8] - bl sub_80965B8 - bl sub_80965F4 - bl sub_802C2D4 - movs r0, 0x3 - bl sub_802E934 - b _0802EE96 -_0802EE5E: - bl sub_8096A78 - bl sub_8096C80 - bl sub_8096D24 - bl sub_802C4A4 - lsls r0, 24 - cmp r0, 0 - beq _0802EE80 - bl sub_802C2D4 - movs r0, 0x1 - bl sub_802E934 - b _0802EE96 -_0802EE80: - movs r0, 0x5 - bl sub_802E934 - b _0802EE96 -_0802EE88: - movs r0, 0x7 - bl sub_802E934 - b _0802EE96 -_0802EE90: - movs r0, 0x5 - bl sub_802E934 -_0802EE96: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_802EDBC - - thumb_func_start sub_802EEA0 -sub_802EEA0: - push {lr} - bl sub_802DEE0 - cmp r0, 0x1 - bls _0802EEB8 - cmp r0, 0x3 - bhi _0802EEB8 - bl sub_802DF24 - movs r0, 0x5 - bl sub_802E934 -_0802EEB8: - pop {r0} - bx r0 - thumb_func_end sub_802EEA0 - - thumb_func_start sub_802EEBC -sub_802EEBC: - push {lr} - bl sub_802C898 - cmp r0, 0x1 - bls _0802EED4 - cmp r0, 0x3 - bhi _0802EED4 - bl sub_802C8F4 - movs r0, 0x1 - bl sub_802E934 -_0802EED4: - pop {r0} - bx r0 - thumb_func_end sub_802EEBC - - thumb_func_start nullsub_134 -nullsub_134: - bx lr - thumb_func_end nullsub_134 - - thumb_func_start CreatePelliperAccepedStatusBox -CreatePelliperAcceptedStatusBox: - push {r4-r6,lr} - sub sp, 0x8 - adds r4, r0, 0 - bl sub_8008C54 - adds r0, r4, 0 - bl sub_80073B8 - ldr r2, _0802EF40 - movs r6, 0 - str r6, [sp] - movs r0, 0x3 - movs r1, 0 - adds r3, r4, 0 - bl xxx_call_draw_string - bl sub_80969AC - adds r2, r0, 0 - movs r5, 0x7 - str r5, [sp] - str r4, [sp, 0x4] - movs r0, 0x12 - movs r1, 0xD - movs r3, 0x2 - bl sub_8012BC4 - ldr r2, _0802EF44 - str r6, [sp] - movs r0, 0x16 - movs r1, 0xD - adds r3, r4, 0 - bl xxx_call_draw_string - str r5, [sp] - str r4, [sp, 0x4] - movs r0, 0x23 - movs r1, 0xD - movs r2, 0x8 - movs r3, 0x2 - bl sub_8012BC4 - adds r0, r4, 0 - bl sub_80073E0 - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0802EF40: .4byte gUnknown_80E03AC -_0802EF44: .4byte gUnknown_80E03B8 - thumb_func_end CreatePelliperAcceptedStatusBox - - thumb_func_start sub_802EF48 -sub_802EF48: - push {r4,lr} - ldr r4, _0802EF68 - movs r0, 0xA8 - lsls r0, 1 - movs r1, 0x8 - bl MemoryAlloc - str r0, [r4] - movs r0, 0 - bl sub_802EFEC - movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0802EF68: .4byte gUnknown_203B30C - thumb_func_end sub_802EF48 - - thumb_func_start sub_802EF6C -sub_802EF6C: - push {lr} - ldr r0, _0802EF84 - ldr r0, [r0] - ldr r0, [r0] - cmp r0, 0x5 - bhi _0802EFBA - lsls r0, 2 - ldr r1, _0802EF88 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802EF84: .4byte gUnknown_203B30C -_0802EF88: .4byte _0802EF8C - .align 2, 0 -_0802EF8C: - .4byte _0802EFA4 - .4byte _0802EFA4 - .4byte _0802EFAA - .4byte _0802EFB0 - .4byte _0802EFB6 - .4byte _0802EFBA -_0802EFA4: - bl sub_802F148 - b _0802EFBE -_0802EFAA: - bl sub_802F184 - b _0802EFBE -_0802EFB0: - bl sub_802F1E8 - b _0802EFBE -_0802EFB6: - movs r0, 0x3 - b _0802EFC0 -_0802EFBA: - movs r0, 0x2 - b _0802EFC0 -_0802EFBE: - movs r0, 0 -_0802EFC0: - pop {r1} - bx r1 - thumb_func_end sub_802EF6C - - thumb_func_start sub_802EFC4 -sub_802EFC4: - ldr r0, _0802EFCC - ldr r0, [r0] - ldrb r0, [r0, 0x4] - bx lr - .align 2, 0 -_0802EFCC: .4byte gUnknown_203B30C - thumb_func_end sub_802EFC4 - - thumb_func_start sub_802EFD0 -sub_802EFD0: - push {r4,lr} - ldr r4, _0802EFE8 - ldr r0, [r4] - cmp r0, 0 - beq _0802EFE2 - bl MemoryFree - movs r0, 0 - str r0, [r4] -_0802EFE2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802EFE8: .4byte gUnknown_203B30C - thumb_func_end sub_802EFD0 - - thumb_func_start sub_802EFEC -sub_802EFEC: - push {lr} - ldr r1, _0802F000 - ldr r1, [r1] - str r0, [r1] - bl sub_802F004 - bl sub_802F088 - pop {r0} - bx r0 - .align 2, 0 -_0802F000: .4byte gUnknown_203B30C - thumb_func_end sub_802EFEC - - thumb_func_start sub_802F004 -sub_802F004: - push {r4-r7,lr} - ldr r4, _0802F03C - ldr r0, [r4] - adds r0, 0xF0 - bl sub_8006518 - ldr r0, [r4] - ldr r0, [r0] - cmp r0, 0x2 - bne _0802F044 - bl sub_802F108 - ldr r2, [r4] - movs r0, 0x90 - lsls r0, 1 - adds r2, r0 - ldr r1, _0802F040 - ldm r1!, {r3,r5,r6} - stm r2!, {r3,r5,r6} - ldm r1!, {r3,r5,r7} - stm r2!, {r3,r5,r7} - ldr r1, [r4] - adds r0, r1, r0 - adds r1, 0xB0 - bl sub_8012CAC - b _0802F066 - .align 2, 0 -_0802F03C: .4byte gUnknown_203B30C -_0802F040: .4byte gUnknown_80E03F4 -_0802F044: - mov r12, r4 - ldr r4, _0802F080 - movs r2, 0 - movs r3, 0x3 -_0802F04C: - mov r6, r12 - ldr r1, [r6] - adds r1, r2 - adds r1, 0xF0 - adds r0, r4, 0 - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - adds r2, 0x18 - subs r3, 0x1 - cmp r3, 0 - bge _0802F04C -_0802F066: - bl ResetUnusedInputStruct - ldr r0, _0802F084 - ldr r0, [r0] - adds r0, 0xF0 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0802F080: .4byte gUnknown_80E03C4 -_0802F084: .4byte gUnknown_203B30C - thumb_func_end sub_802F004 - - thumb_func_start sub_802F088 -sub_802F088: - push {r4-r6,lr} - sub sp, 0x8 - ldr r6, _0802F0A0 - ldr r0, [r6] - ldr r5, [r0] - cmp r5, 0x1 - beq _0802F0B6 - cmp r5, 0x1 - bgt _0802F0A4 - cmp r5, 0 - beq _0802F0AE - b _0802F100 - .align 2, 0 -_0802F0A0: .4byte gUnknown_203B30C -_0802F0A4: - cmp r5, 0x2 - beq _0802F0BE - cmp r5, 0x3 - beq _0802F0DA - b _0802F100 -_0802F0AE: - movs r0, 0 - bl sub_802CDD4 - b _0802F100 -_0802F0B6: - movs r0, 0x1 - bl sub_802CED8 - b _0802F100 -_0802F0BE: - bl sub_802CFD0 - ldr r1, [r6] - adds r0, r1, 0 - adds r0, 0x60 - adds r1, 0xB0 - movs r2, 0x3 - str r2, [sp] - str r5, [sp, 0x4] - movs r2, 0 - movs r3, 0 - bl sub_8012D60 - b _0802F100 -_0802F0DA: - ldrb r0, [r0, 0x4] - bl sub_803B344 - adds r4, r0, 0 - ldr r1, [r6] - adds r1, 0x8 - bl sub_803B35C - ldr r0, [r6] - str r5, [r0, 0x8] - adds r0, 0x4C - movs r1, 0 - strb r1, [r0] - ldr r0, [r6] - ldr r1, [r4, 0x18] - str r1, [r0, 0x58] - adds r0, 0x8 - bl sub_802DE84 -_0802F100: - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_802F088 - - thumb_func_start sub_802F108 -sub_802F108: - ldr r0, _0802F13C - ldr r0, [r0] - mov r12, r0 - movs r3, 0 - mov r1, r12 - adds r1, 0xB0 - ldr r0, _0802F140 - str r0, [r1] - adds r1, 0x4 - movs r0, 0x2 - str r0, [r1] - movs r2, 0x1 - adds r1, 0x4 - ldr r0, _0802F144 - ldr r0, [r0] - str r0, [r1] - adds r1, 0x4 - movs r0, 0x3 - str r0, [r1] - mov r0, r12 - adds r0, 0xC0 - str r3, [r0] - adds r0, 0x4 - str r2, [r0] - bx lr - .align 2, 0 -_0802F13C: .4byte gUnknown_203B30C -_0802F140: .4byte gUnknown_80E040C -_0802F144: .4byte gUnknown_80D4970 - thumb_func_end sub_802F108 - - thumb_func_start sub_802F148 -sub_802F148: - push {lr} - movs r0, 0x1 - bl sub_802CE5C - cmp r0, 0x2 - beq _0802F174 - cmp r0, 0x2 - bcc _0802F17E - cmp r0, 0x3 - bne _0802F17E - bl sub_802CEBC - ldr r1, _0802F170 - ldr r1, [r1] - strb r0, [r1, 0x4] - movs r0, 0x2 - bl sub_802EFEC - b _0802F17E - .align 2, 0 -_0802F170: .4byte gUnknown_203B30C -_0802F174: - bl sub_802CF14 - movs r0, 0x5 - bl sub_802EFEC -_0802F17E: - pop {r0} - bx r0 - thumb_func_end sub_802F148 - - thumb_func_start sub_802F184 -sub_802F184: - push {r4,lr} - sub sp, 0x4 - movs r0, 0 - str r0, [sp] - bl sub_802CE5C - ldr r4, _0802F1BC - ldr r0, [r4] - adds r0, 0x60 - bl sub_8012FD8 - lsls r0, 24 - cmp r0, 0 - bne _0802F1AA - ldr r0, [r4] - adds r0, 0x60 - mov r1, sp - bl sub_8013114 -_0802F1AA: - ldr r0, [sp] - cmp r0, 0x2 - beq _0802F1C6 - cmp r0, 0x2 - bgt _0802F1C0 - cmp r0, 0x1 - beq _0802F1DA - b _0802F1E0 - .align 2, 0 -_0802F1BC: .4byte gUnknown_203B30C -_0802F1C0: - cmp r0, 0x3 - beq _0802F1D2 - b _0802F1E0 -_0802F1C6: - bl sub_802CF14 - movs r0, 0x4 - bl sub_802EFEC - b _0802F1E0 -_0802F1D2: - movs r0, 0x3 - bl sub_802EFEC - b _0802F1E0 -_0802F1DA: - movs r0, 0x1 - bl sub_802EFEC -_0802F1E0: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_802F184 - - thumb_func_start sub_802F1E8 -sub_802F1E8: - push {lr} - bl sub_802DEE0 - cmp r0, 0x1 - bls _0802F200 - cmp r0, 0x3 - bhi _0802F200 - bl sub_802DF24 - movs r0, 0x1 - bl sub_802EFEC -_0802F200: - pop {r0} - bx r0 - thumb_func_end sub_802F1E8 - - thumb_func_start sub_802F204 -sub_802F204: - push {r4-r6,lr} - adds r6, r0, 0 - lsls r4, r1, 24 - lsrs r4, 24 - bl ResetUnusedInputStruct - movs r0, 0 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - ldr r5, _0802F28C - movs r0, 0x84 - movs r1, 0x8 - bl MemoryAlloc - str r0, [r5] - str r6, [r0, 0x10] - movs r6, 0 - str r6, [r0, 0xC] - strb r4, [r0, 0x8] - ldr r1, [r5] - ldr r0, _0802F290 - ldr r1, [r1, 0x10] - bl strcpy - ldr r4, _0802F294 - bl sub_808D33C - adds r1, r0, 0 - adds r0, r4, 0 - bl sub_808DA34 - ldr r0, [r5] - ldr r0, [r0, 0x10] - movs r1, 0x14 - ldrsh r0, [r0, r1] - bl GetDialogueSpriteDataPtr - ldr r1, [r5] - str r0, [r1, 0x14] - str r6, [r1, 0x18] - adds r1, 0x20 - strb r6, [r1] - ldr r0, [r5] - adds r0, 0x21 - strb r6, [r0] - ldr r0, [r5] - adds r0, 0x22 - strb r6, [r0] - ldr r5, [r5] - movs r0, 0x2 - strh r0, [r5, 0x1C] - movs r0, 0x8 - strh r0, [r5, 0x1E] - ldr r0, [r5, 0x14] - cmp r0, 0 - beq _0802F27C - ldr r0, [r0, 0x4] - str r0, [r5, 0x18] -_0802F27C: - movs r0, 0 - bl sub_802F2E8 - movs r0, 0x1 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0802F28C: .4byte gUnknown_203B310 -_0802F290: .4byte gUnknown_202E5D8 -_0802F294: .4byte gAvailablePokemonNames - thumb_func_end sub_802F204 - - thumb_func_start sub_802F298 -sub_802F298: - push {lr} - ldr r0, _0802F2AC - ldr r0, [r0] - ldr r0, [r0] - cmp r0, 0x5 - beq _0802F2B0 - cmp r0, 0x9 - bne _0802F2B6 - movs r0, 0x3 - b _0802F2BC - .align 2, 0 -_0802F2AC: .4byte gUnknown_203B310 -_0802F2B0: - bl sub_802F6FC - b _0802F2BA -_0802F2B6: - bl sub_802F718 -_0802F2BA: - movs r0, 0 -_0802F2BC: - pop {r1} - bx r1 - thumb_func_end sub_802F298 - - thumb_func_start sub_802F2C0 -sub_802F2C0: - push {r4,lr} - ldr r4, _0802F2E4 - ldr r0, [r4] - cmp r0, 0 - beq _0802F2DE - ldr r0, [r0, 0x14] - cmp r0, 0 - beq _0802F2D4 - bl CloseFile -_0802F2D4: - ldr r0, [r4] - bl MemoryFree - movs r0, 0 - str r0, [r4] -_0802F2DE: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802F2E4: .4byte gUnknown_203B310 - thumb_func_end sub_802F2C0 - - thumb_func_start sub_802F2E8 -sub_802F2E8: - push {lr} - ldr r1, _0802F2FC - ldr r1, [r1] - str r0, [r1] - bl sub_802F300 - bl HandleMissionReward - pop {r0} - bx r0 - .align 2, 0 -_0802F2FC: .4byte gUnknown_203B310 - thumb_func_end sub_802F2E8 - - thumb_func_start sub_802F300 -sub_802F300: - push {r4-r7,lr} - ldr r4, _0802F350 - ldr r1, [r4] - ldr r0, [r1] - cmp r0, 0 - bne _0802F348 - adds r0, r1, 0 - adds r0, 0x24 - bl sub_8006518 - mov r12, r4 - ldr r4, _0802F354 - movs r3, 0 - movs r2, 0x3 -_0802F31C: - mov r0, r12 - ldr r1, [r0] - adds r1, r3 - adds r1, 0x24 - adds r0, r4, 0 - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - adds r3, 0x18 - subs r2, 0x1 - cmp r2, 0 - bge _0802F31C - bl ResetUnusedInputStruct - ldr r0, _0802F350 - ldr r0, [r0] - adds r0, 0x24 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C -_0802F348: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0802F350: .4byte gUnknown_203B310 -_0802F354: .4byte gUnknown_80E041C - thumb_func_end sub_802F300 - - thumb_func_start HandleMissionReward -HandleMissionReward: - push {r4-r6,lr} - sub sp, 0x10 - ldr r1, _0802F374 - ldr r0, [r1] - ldr r0, [r0] - adds r6, r1, 0 - cmp r0, 0x9 - bls _0802F36A - b _0802F6E4 -_0802F36A: - lsls r0, 2 - ldr r1, _0802F378 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802F374: .4byte gUnknown_203B310 -_0802F378: .4byte _0802F37C - .align 2, 0 -_0802F37C: - .4byte _0802F3A4 - .4byte _0802F3E8 - .4byte _0802F444 - .4byte _0802F494 - .4byte _0802F524 - .4byte _0802F5CC - .4byte _0802F614 - .4byte _0802F630 - .4byte _0802F6A4 - .4byte _0802F6E4 -_0802F3A4: - ldr r2, [r6] - ldr r0, [r2, 0x10] - ldr r1, [r0, 0x18] - cmp r1, 0 - bne _0802F3B6 - movs r0, 0x2 - bl sub_802F2E8 - b _0802F6E4 -_0802F3B6: - ldr r0, _0802F3D4 - str r1, [r0] - ldrb r0, [r2, 0x8] - cmp r0, 0 - beq _0802F3E0 - ldr r0, _0802F3D8 - adds r2, 0x14 - ldr r3, _0802F3DC - movs r1, 0 - bl sub_80141B4 - ldr r1, [r6] - movs r0, 0x1 - str r0, [r1, 0x4] - b _0802F6E4 - .align 2, 0 -_0802F3D4: .4byte gUnknown_202DE30 -_0802F3D8: .4byte gUnknown_80E0434 -_0802F3DC: .4byte 0x0000010d -_0802F3E0: - movs r0, 0x1 - bl sub_802F2E8 - b _0802F6E4 -_0802F3E8: - movs r0, 0xCB - bl PlaySound - ldr r0, _0802F414 - ldr r0, [r0] - ldr r0, [r0, 0x10] - ldr r0, [r0, 0x18] - bl AddToTeamMoney - movs r0, 0 - bl sub_808D544 - cmp r0, 0x1 - bgt _0802F420 - ldr r0, _0802F418 - ldr r3, _0802F41C - movs r1, 0 - movs r2, 0 - bl sub_80141B4 - b _0802F42C - .align 2, 0 -_0802F414: .4byte gUnknown_203B310 -_0802F418: .4byte gUnknown_80E045C -_0802F41C: .4byte 0x00000101 -_0802F420: - ldr r0, _0802F438 - ldr r3, _0802F43C - movs r1, 0 - movs r2, 0 - bl sub_80141B4 -_0802F42C: - ldr r0, _0802F440 - ldr r1, [r0] - movs r0, 0x2 - str r0, [r1, 0x4] - b _0802F6E4 - .align 2, 0 -_0802F438: .4byte gUnknown_80E0484 -_0802F43C: .4byte 0x00000101 -_0802F440: .4byte gUnknown_203B310 -_0802F444: - ldr r0, [r6] - ldr r0, [r0, 0x10] - adds r1, r0, 0 - adds r1, 0x20 - ldrb r0, [r1] - cmp r0, 0 - bne _0802F45A - movs r0, 0x4 - bl sub_802F2E8 - b _0802F6E4 -_0802F45A: - ldr r0, _0802F480 - ldrb r1, [r1] - movs r2, 0 - bl sub_8092578 - ldr r2, [r6] - ldrb r0, [r2, 0x8] - cmp r0, 0 - beq _0802F48C - ldr r0, _0802F484 - adds r2, 0x14 - ldr r3, _0802F488 - movs r1, 0 - bl sub_80141B4 - ldr r1, [r6] - movs r0, 0x3 - str r0, [r1, 0x4] - b _0802F6E4 - .align 2, 0 -_0802F480: .4byte gUnknown_202E628 -_0802F484: .4byte gUnknown_80E04B4 -_0802F488: .4byte 0x0000010d -_0802F48C: - movs r0, 0x3 - bl sub_802F2E8 - b _0802F6E4 -_0802F494: - ldr r4, _0802F4B4 - ldr r0, [r4] - ldr r0, [r0, 0x10] - adds r0, 0x20 - ldrb r0, [r0] - bl GetFriendAreaStatus - lsls r0, 24 - cmp r0, 0 - beq _0802F4BC - movs r0, 0xFA - lsls r0, 2 - bl AddToTeamMoney - ldr r0, _0802F4B8 - b _0802F4DA - .align 2, 0 -_0802F4B4: .4byte gUnknown_203B310 -_0802F4B8: .4byte gUnknown_80E04F4 -_0802F4BC: - movs r0, 0 - bl sub_808D544 - cmp r0, 0x1 - bgt _0802F4F0 - ldr r0, [r4] - ldr r0, [r0, 0x10] - adds r0, 0x20 - ldrb r0, [r0] - bl UnlockFriendArea - movs r0, 0xCE - bl PlaySound - ldr r0, _0802F4E8 -_0802F4DA: - ldr r3, _0802F4EC - movs r1, 0 - movs r2, 0 - bl sub_80141B4 - b _0802F50E - .align 2, 0 -_0802F4E8: .4byte gUnknown_80E05C0 -_0802F4EC: .4byte 0x00000101 -_0802F4F0: - ldr r0, [r4] - ldr r0, [r0, 0x10] - adds r0, 0x20 - ldrb r0, [r0] - bl UnlockFriendArea - movs r0, 0xCE - bl PlaySound - ldr r0, _0802F518 - ldr r3, _0802F51C - movs r1, 0 - movs r2, 0 - bl sub_80141B4 -_0802F50E: - ldr r0, _0802F520 - ldr r1, [r0] - movs r0, 0x4 - str r0, [r1, 0x4] - b _0802F6E4 - .align 2, 0 -_0802F518: .4byte gUnknown_80E05FC -_0802F51C: .4byte 0x00000101 -_0802F520: .4byte gUnknown_203B310 -_0802F524: - ldr r0, [r6] - ldr r0, [r0, 0x10] - ldrb r2, [r0, 0x1C] - cmp r2, 0 - beq _0802F628 - ldr r0, [r0, 0x18] - cmp r0, 0 - bne _0802F620 - lsls r2, 16 - ldr r1, _0802F564 - ldr r0, [sp, 0xC] - ands r0, r1 - orrs r0, r2 - str r0, [sp, 0xC] - lsrs r0, 16 - lsls r0, 24 - lsrs r0, 24 - bl IsThrowableItem - lsls r0, 24 - cmp r0, 0 - beq _0802F56C - ldr r0, [r6] - ldr r0, [r0, 0x10] - ldrb r1, [r0, 0x1F] - lsls r1, 8 - ldr r2, _0802F568 - ldr r0, [sp, 0xC] - ands r0, r2 - orrs r0, r1 - b _0802F572 - .align 2, 0 -_0802F564: .4byte 0xff00ffff -_0802F568: .4byte 0xffff00ff -_0802F56C: - ldr r1, _0802F5B4 - ldr r0, [sp, 0xC] - ands r0, r1 -_0802F572: - str r0, [sp, 0xC] - ldr r1, _0802F5B8 - ldr r0, [sp, 0xC] - ands r0, r1 - movs r2, 0x1 - orrs r0, r2 - str r0, [sp, 0xC] - movs r1, 0 - str r1, [sp] - mov r0, sp - strb r1, [r0, 0x4] - strb r2, [r0, 0x8] - ldr r0, _0802F5BC - add r1, sp, 0xC - mov r2, sp - bl sub_8090E14 - ldr r4, _0802F5C0 - ldr r2, [r4] - ldrb r0, [r2, 0x8] - cmp r0, 0 - beq _0802F620 - ldr r0, _0802F5C4 - adds r2, 0x14 - ldr r3, _0802F5C8 - movs r1, 0 - bl sub_80141B4 - ldr r1, [r4] - movs r0, 0x5 - str r0, [r1, 0x4] - b _0802F6E4 - .align 2, 0 -_0802F5B4: .4byte 0xffff00ff -_0802F5B8: .4byte 0xffffff00 -_0802F5BC: .4byte gUnknown_202DEA8 -_0802F5C0: .4byte gUnknown_203B310 -_0802F5C4: .4byte gUnknown_80E0640 -_0802F5C8: .4byte 0x0000010d -_0802F5CC: - ldr r0, [r6] - ldr r2, [r0, 0x10] - adds r1, r2, 0 - adds r1, 0x1C - ldr r3, [r0, 0xC] - adds r1, r3 - ldrb r0, [r1] - cmp r0, 0 - bne _0802F5E6 - movs r0, 0x6 - bl sub_802F2E8 - b _0802F6E4 -_0802F5E6: - cmp r3, 0 - bne _0802F5FC - ldr r0, [r2, 0x18] - cmp r0, 0 - bne _0802F5FC - ldrb r1, [r2, 0x1C] - ldrb r2, [r2, 0x1F] - movs r0, 0 - bl sub_801B60C - b _0802F6E4 -_0802F5FC: - ldr r1, [r6] - ldr r2, [r1, 0x10] - adds r0, r2, 0 - adds r0, 0x1C - ldr r1, [r1, 0xC] - adds r0, r1 - ldrb r1, [r0] - ldrb r2, [r2, 0x1F] - movs r0, 0x1 - bl sub_801B60C - b _0802F6E4 -_0802F614: - ldr r1, [r6] - ldr r0, [r1, 0xC] - adds r0, 0x1 - str r0, [r1, 0xC] - cmp r0, 0x2 - bgt _0802F628 -_0802F620: - movs r0, 0x5 - bl sub_802F2E8 - b _0802F6E4 -_0802F628: - movs r0, 0x7 - bl sub_802F2E8 - b _0802F6E4 -_0802F630: - adds r5, r6, 0 - ldr r0, [r5] - ldr r0, [r0, 0x10] - ldr r0, [r0, 0x24] - cmp r0, 0 - bne _0802F644 - movs r0, 0x9 - bl sub_802F2E8 - b _0802F6E4 -_0802F644: - bl GetRescueTeamRank - ldr r1, [r5] - strb r0, [r1, 0x9] - ldr r0, [r5] - ldr r0, [r0, 0x10] - ldr r0, [r0, 0x24] - bl AddToTeamRankPts - movs r0, 0xCB - bl PlaySound - ldr r4, [r5] - bl GetRescueTeamRank - ldrb r1, [r4, 0x9] - lsls r0, 24 - lsrs r0, 24 - cmp r1, r0 - beq _0802F672 - ldr r1, [r5] - movs r0, 0x8 - b _0802F676 -_0802F672: - ldr r1, [r6] - movs r0, 0x9 -_0802F676: - str r0, [r1, 0x4] - ldr r1, _0802F694 - ldr r0, _0802F698 - ldr r0, [r0] - ldr r0, [r0, 0x10] - ldr r0, [r0, 0x24] - str r0, [r1] - ldr r0, _0802F69C - ldr r3, _0802F6A0 - movs r1, 0 - movs r2, 0 - bl sub_80141B4 - b _0802F6E4 - .align 2, 0 -_0802F694: .4byte gUnknown_202DE30 -_0802F698: .4byte gUnknown_203B310 -_0802F69C: .4byte gUnknown_80E0670 -_0802F6A0: .4byte 0x00000101 -_0802F6A4: - movs r0, 0xC9 - bl PlaySound - ldr r0, _0802F6EC - ldr r1, [r0] - movs r0, 0x9 - str r0, [r1, 0x4] - ldrb r0, [r1, 0x9] - bl GetTeamRankString - adds r1, r0, 0 - ldr r4, _0802F6F0 - adds r0, r4, 0 - bl strcpy - bl GetRescueTeamRank - lsls r0, 24 - lsrs r0, 24 - bl GetTeamRankString - adds r1, r0, 0 - adds r4, 0x50 - adds r0, r4, 0 - bl strcpy - ldr r0, _0802F6F4 - ldr r3, _0802F6F8 - movs r1, 0 - movs r2, 0 - bl sub_80141B4 -_0802F6E4: - add sp, 0x10 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0802F6EC: .4byte gUnknown_203B310 -_0802F6F0: .4byte gUnknown_202E038 -_0802F6F4: .4byte gUnknown_80E06A8 -_0802F6F8: .4byte 0x00000101 - thumb_func_end HandleMissionReward - - thumb_func_start sub_802F6FC -sub_802F6FC: - push {lr} - bl sub_801B6AC - cmp r0, 0x1 - bls _0802F714 - cmp r0, 0x3 - bhi _0802F714 - bl sub_801B72C - movs r0, 0x6 - bl sub_802F2E8 -_0802F714: - pop {r0} - bx r0 - thumb_func_end sub_802F6FC - - thumb_func_start sub_802F718 -sub_802F718: - push {lr} - sub sp, 0x4 - mov r0, sp - bl sub_80144A4 - cmp r0, 0 - bne _0802F730 - ldr r0, _0802F738 - ldr r0, [r0] - ldr r0, [r0, 0x4] - bl sub_802F2E8 -_0802F730: - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_0802F738: .4byte gUnknown_203B310 - thumb_func_end sub_802F718 - - thumb_func_start sub_802F73C -sub_802F73C: - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r5, r0, 0 - adds r7, r1, 0 - mov r8, r2 - lsls r3, 24 - lsrs r6, r3, 24 - bl sub_802FCF0 - lsls r0, 24 - cmp r0, 0 - beq _0802F75A - movs r0, 0 - b _0802F836 -_0802F75A: - ldr r4, _0802F7AC - ldr r0, [r4] - cmp r0, 0 - bne _0802F76E - movs r0, 0xAE - lsls r0, 1 - movs r1, 0x8 - bl MemoryAlloc - str r0, [r4] -_0802F76E: - ldr r0, [r4] - adds r0, 0xB8 - strb r6, [r0] - ldr r0, [r4] - adds r1, r0, 0 - adds r1, 0xF0 - str r5, [r1] - adds r2, r0, 0 - adds r2, 0xF4 - lsls r1, r5, 1 - adds r1, r5 - lsls r1, 3 - adds r1, 0xF8 - adds r1, r0, r1 - str r1, [r2] - adds r0, 0xF8 - bl sub_8006518 - cmp r6, 0 - beq _0802F7B4 - ldr r1, [r4] - adds r0, r1, 0 - adds r0, 0xF0 - ldr r2, [r0] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r1, 0xF8 - ldr r0, _0802F7B0 - b _0802F7C8 - .align 2, 0 -_0802F7AC: .4byte gUnknown_203B314 -_0802F7B0: .4byte gUnknown_80E072C -_0802F7B4: - ldr r1, [r4] - adds r0, r1, 0 - adds r0, 0xF0 - ldr r2, [r0] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r1, 0xF8 - ldr r0, _0802F840 -_0802F7C8: - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldr r4, _0802F844 - ldr r2, [r4] - adds r0, r2, 0 - adds r0, 0xF4 - ldr r1, [r0] - movs r3, 0xAC - lsls r3, 1 - adds r0, r2, r3 - str r0, [r1, 0x14] - cmp r7, 0 - beq _0802F7FC - adds r0, r2, 0 - adds r0, 0xF0 - ldr r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - subs r3, 0x58 - adds r1, r2, r3 - adds r1, r0 - ldr r0, [r7] - str r0, [r1] -_0802F7FC: - ldr r0, [r4] - adds r0, 0xF4 - ldr r0, [r0] - mov r1, r8 - bl sub_8012D08 - bl ResetUnusedInputStruct - ldr r0, [r4] - adds r0, 0xF8 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - ldr r4, [r4] - adds r4, 0xBC - bl sub_802FBF4 - adds r1, r0, 0 - adds r0, r4, 0 - mov r2, r8 - adds r3, r5, 0 - bl sub_8013818 - bl sub_802F9C0 - bl sub_802FA50 - movs r0, 0x1 -_0802F836: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0802F840: .4byte gUnknown_80E0714 -_0802F844: .4byte gUnknown_203B314 - thumb_func_end sub_802F73C - - thumb_func_start sub_802F848 -sub_802F848: - push {r4,r5,lr} - lsls r0, 16 - asrs r4, r0, 16 - movs r3, 0 - ldr r1, _0802F858 - ldr r0, [r1] - b _0802F884 - .align 2, 0 -_0802F858: .4byte gUnknown_203B314 -_0802F85C: - ldr r2, [r1] - lsls r0, r3, 1 - adds r0, r2, r0 - movs r5, 0 - ldrsh r0, [r0, r5] - cmp r0, r4 - bne _0802F880 - adds r0, r2, 0 - adds r0, 0xBC - adds r1, r3, 0 - bl sub_8013878 - bl sub_802F9C0 - bl sub_802FA50 - movs r0, 0x1 - b _0802F89A -_0802F880: - adds r3, 0x1 - adds r0, r2, 0 -_0802F884: - adds r0, 0xDE - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r3, r0 - blt _0802F85C - ldr r0, [r1] - adds r0, 0xBC - movs r1, 0 - bl sub_8013878 - movs r0, 0 -_0802F89A: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_802F848 - - thumb_func_start sub_802F8A0 -sub_802F8A0: - push {r4,lr} - lsls r0, 24 - cmp r0, 0 - bne _0802F8BC - ldr r0, _0802F8B8 - ldr r0, [r0] - adds r0, 0xBC - bl sub_8013660 - movs r0, 0 - b _0802F904 - .align 2, 0 -_0802F8B8: .4byte gUnknown_203B314 -_0802F8BC: - ldr r4, _0802F8D8 - ldr r0, [r4] - adds r0, 0xBC - bl GetKeyPress - cmp r0, 0x1 - beq _0802F8DC - cmp r0, 0x2 - bne _0802F8E6 - movs r0, 0x1 - bl PlayMenuSoundEffect - movs r0, 0x2 - b _0802F904 - .align 2, 0 -_0802F8D8: .4byte gUnknown_203B314 -_0802F8DC: - movs r0, 0 - bl PlayMenuSoundEffect - movs r0, 0x3 - b _0802F904 -_0802F8E6: - ldr r0, [r4] - adds r0, 0xBC - movs r1, 0x1 - bl sub_80138B8 - lsls r0, 24 - cmp r0, 0 - bne _0802F8FA - movs r0, 0 - b _0802F904 -_0802F8FA: - bl sub_802F9C0 - bl sub_802FA50 - movs r0, 0x1 -_0802F904: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_802F8A0 - - thumb_func_start sub_802F90C -sub_802F90C: - ldr r0, _0802F934 - ldr r2, [r0] - adds r0, r2, 0 - adds r0, 0xDA - movs r3, 0 - ldrsh r1, [r0, r3] - subs r0, 0x2 - movs r3, 0 - ldrsh r0, [r0, r3] - muls r0, r1 - adds r1, r2, 0 - adds r1, 0xD4 - movs r3, 0 - ldrsh r1, [r1, r3] - adds r0, r1 - lsls r0, 1 - adds r0, r2, r0 - movs r1, 0 - ldrsh r0, [r0, r1] - bx lr - .align 2, 0 -_0802F934: .4byte gUnknown_203B314 - thumb_func_end sub_802F90C - - thumb_func_start sub_802F938 -sub_802F938: - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_802FBF4 - adds r1, r0, 0 - ldr r5, _0802F970 - ldr r0, [r5] - adds r2, r0, 0 - adds r2, 0xDE - strh r1, [r2] - adds r0, 0xBC - bl sub_8013984 - bl sub_802F9C0 - bl sub_802FA50 - cmp r4, 0 - beq _0802F96A - ldr r0, [r5] - adds r0, 0xBC - bl AddMenuCursorSprite -_0802F96A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0802F970: .4byte gUnknown_203B314 - thumb_func_end sub_802F938 - - thumb_func_start sub_802F974 -sub_802F974: - push {r4,r5,lr} - ldr r4, _0802F9B8 - ldr r2, [r4] - cmp r2, 0 - beq _0802F9B2 - adds r0, r2, 0 - adds r0, 0xF0 - ldr r0, [r0] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 3 - adds r1, r2, r1 - adds r1, 0xF8 - ldr r0, _0802F9BC - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - bl ResetUnusedInputStruct - ldr r0, [r4] - adds r0, 0xF8 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - ldr r0, [r4] - bl MemoryFree - movs r0, 0 - str r0, [r4] -_0802F9B2: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0802F9B8: .4byte gUnknown_203B314 -_0802F9BC: .4byte gUnknown_80E06FC - thumb_func_end sub_802F974 - - thumb_func_start sub_802F9C0 -sub_802F9C0: - push {r4,r5,lr} - ldr r4, _0802FA44 - ldr r0, [r4] - movs r1, 0xAC - lsls r1, 1 - adds r0, r1 - movs r2, 0 - movs r1, 0x1 - strb r1, [r0] - ldr r0, [r4] - ldr r3, _0802FA48 - adds r0, r3 - strb r2, [r0] - ldr r0, [r4] - adds r3, 0x1 - adds r1, r0, r3 - movs r0, 0x8 - strb r0, [r1] - ldr r0, [r4] - ldr r1, _0802FA4C - adds r0, r1 - strb r2, [r0] - ldr r0, [r4] - adds r0, 0xD6 - movs r2, 0 - ldrsh r0, [r0, r2] - movs r1, 0xC - bl sub_80095E4 - adds r0, 0x2 - lsls r0, 16 - ldr r3, [r4] - adds r5, r3, 0 - adds r5, 0xF0 - ldr r2, [r5] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 3 - adds r1, r3, r1 - movs r2, 0x83 - lsls r2, 1 - adds r1, r2 - asrs r2, r0, 16 - lsrs r0, 16 - strh r0, [r1] - ldr r1, [r5] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - adds r3, r0 - adds r2, 0x2 - movs r0, 0x84 - lsls r0, 1 - adds r3, r0 - strh r2, [r3] - bl ResetUnusedInputStruct - ldr r0, [r4] - adds r0, 0xF8 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0802FA44: .4byte gUnknown_203B314 -_0802FA48: .4byte 0x00000159 -_0802FA4C: .4byte 0x0000015b - thumb_func_end sub_802F9C0 - - thumb_func_start sub_802FA50 -sub_802FA50: - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - ldr r4, _0802FB1C - ldr r0, [r4] - adds r0, 0xF0 - ldr r0, [r0] - bl sub_8008C54 - ldr r0, [r4] - adds r0, 0xF0 - ldr r0, [r0] - bl sub_80073B8 - ldr r2, _0802FB20 - ldr r0, [r4] - adds r0, 0xF0 - ldr r3, [r0] - movs r0, 0 - str r0, [sp] - movs r0, 0xA - movs r1, 0 - bl xxx_call_draw_string - ldr r3, [r4] - movs r1, 0xAD - lsls r1, 1 - adds r0, r3, r1 - ldrb r0, [r0] - lsls r0, 3 - adds r0, 0x4 - adds r1, r3, 0 - adds r1, 0xDA - movs r5, 0 - ldrsh r2, [r1, r5] - adds r2, 0x1 - movs r1, 0x7 - str r1, [sp] - adds r1, r3, 0 - adds r1, 0xF0 - ldr r1, [r1] - str r1, [sp, 0x4] - movs r1, 0 - movs r3, 0x2 - bl sub_8012BC4 - ldr r1, [r4] - adds r0, r1, 0 - adds r0, 0xB8 - ldrb r0, [r0] - cmp r0, 0 - beq _0802FB78 - movs r6, 0 - adds r0, r1, 0 - adds r0, 0xD6 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r6, r0 - blt _0802FACA - b _0802FBD6 -_0802FACA: - mov r8, r4 -_0802FACC: - mov r2, r8 - ldr r0, [r2] - adds r0, 0xBC - adds r1, r6, 0 - bl sub_8013800 - adds r5, r0, 0 - mov r3, r8 - ldr r2, [r3] - adds r0, r2, 0 - adds r0, 0xDA - movs r3, 0 - ldrsh r1, [r0, r3] - subs r0, 0x2 - movs r3, 0 - ldrsh r0, [r0, r3] - muls r0, r1 - adds r1, r0, r6 - lsls r0, r1, 1 - adds r0, r2, r0 - movs r3, 0 - ldrsh r7, [r0, r3] - adds r0, r2, 0 - adds r0, 0x5C - adds r0, r1 - ldrb r4, [r0] - cmp r4, 0 - beq _0802FB28 - adds r0, r2, 0 - adds r0, 0xF0 - ldr r3, [r0] - movs r0, 0 - str r0, [sp] - movs r0, 0xA - adds r1, r5, 0 - ldr r2, _0802FB24 - bl xxx_call_draw_string - b _0802FB46 - .align 2, 0 -_0802FB1C: .4byte gUnknown_203B314 -_0802FB20: .4byte gUnknown_80E0744 -_0802FB24: .4byte gUnknown_80E0750 -_0802FB28: - adds r0, r2, 0 - adds r0, 0x8A - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _0802FB46 - adds r0, r2, 0 - adds r0, 0xF0 - ldr r3, [r0] - str r4, [sp] - movs r0, 0xA - adds r1, r5, 0 - ldr r2, _0802FB74 - bl xxx_call_draw_string -_0802FB46: - adds r0, r7, 0 - bl sub_80974A0 - adds r2, r0, 0 - mov r1, r8 - ldr r0, [r1] - adds r0, 0xF0 - ldr r3, [r0] - movs r0, 0 - str r0, [sp] - movs r0, 0x18 - adds r1, r5, 0 - bl xxx_call_draw_string - adds r6, 0x1 - mov r2, r8 - ldr r0, [r2] - adds r0, 0xD6 - movs r3, 0 - ldrsh r0, [r0, r3] - cmp r6, r0 - blt _0802FACC - b _0802FBD6 - .align 2, 0 -_0802FB74: .4byte gUnknown_80E0754 -_0802FB78: - movs r6, 0 - adds r0, r1, 0 - adds r0, 0xD6 - movs r5, 0 - ldrsh r0, [r0, r5] - cmp r6, r0 - bge _0802FBD6 - adds r5, r4, 0 -_0802FB88: - ldr r0, [r5] - adds r0, 0xBC - adds r1, r6, 0 - bl sub_8013800 - adds r4, r0, 0 - ldr r1, [r5] - adds r0, r1, 0 - adds r0, 0xDA - movs r3, 0 - ldrsh r2, [r0, r3] - subs r0, 0x2 - movs r3, 0 - ldrsh r0, [r0, r3] - muls r0, r2 - adds r0, r6 - lsls r0, 1 - adds r1, r0 - movs r2, 0 - ldrsh r0, [r1, r2] - bl sub_80974A0 - adds r2, r0, 0 - ldr r0, [r5] - adds r0, 0xF0 - ldr r3, [r0] - movs r0, 0 - str r0, [sp] - movs r0, 0x8 - adds r1, r4, 0 - bl xxx_call_draw_string - adds r6, 0x1 - ldr r0, [r5] - adds r0, 0xD6 - movs r3, 0 - ldrsh r0, [r0, r3] - cmp r6, r0 - blt _0802FB88 -_0802FBD6: - ldr r0, _0802FBF0 - ldr r0, [r0] - adds r0, 0xF0 - ldr r0, [r0] - bl sub_80073E0 - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0802FBF0: .4byte gUnknown_203B314 - thumb_func_end sub_802FA50 - - thumb_func_start sub_802FBF4 -sub_802FBF4: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - movs r0, 0 - mov r8, r0 - movs r1, 0 - str r1, [sp] -_0802FC08: - ldr r1, [sp] - lsls r0, r1, 16 - asrs r4, r0, 16 - mov r10, r4 - adds r0, r4, 0 - bl sub_80A27CC - lsls r0, 24 - cmp r0, 0 - beq _0802FCCE - cmp r4, 0x13 - beq _0802FCCE - cmp r4, 0x1D - beq _0802FCCE - ldr r7, _0802FC88 - ldr r1, [r7] - mov r0, r8 - lsls r6, r0, 1 - adds r0, r1, r6 - strh r4, [r0] - adds r1, 0x5C - add r1, r8 - movs r0, 0 - strb r0, [r1] - ldr r0, [r7] - adds r0, 0x8A - add r0, r8 - movs r1, 0 - strb r1, [r0] - ldr r0, [r7] - adds r0, 0xB8 - ldrb r0, [r0] - cmp r0, 0 - beq _0802FCCA - cmp r4, 0xD - beq _0802FCCA - adds r0, r4, 0 - bl sub_80A270C - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - movs r5, 0 - cmp r4, 0x1E - bgt _0802FCA8 - adds r0, r4, 0 - bl sub_8097384 - lsls r0, 24 - cmp r0, 0 - bne _0802FCA6 - cmp r4, 0x6 - bne _0802FC8C - movs r0, 0x13 - bl sub_8097384 - lsls r0, 24 - cmp r0, 0 - beq _0802FCA8 - ldr r0, [r7] - adds r0, r6 - movs r1, 0x13 - b _0802FCA4 - .align 2, 0 -_0802FC88: .4byte gUnknown_203B314 -_0802FC8C: - mov r0, r10 - cmp r0, 0xA - bne _0802FCA8 - movs r0, 0x1D - bl sub_8097384 - lsls r0, 24 - cmp r0, 0 - beq _0802FCA8 - ldr r0, [r7] - adds r0, r6 - movs r1, 0x1D -_0802FCA4: - strh r1, [r0] -_0802FCA6: - movs r5, 0x1 -_0802FCA8: - ldr r4, _0802FCEC - ldr r0, [r4] - adds r0, 0x5C - add r0, r8 - strb r5, [r0] - cmp r5, 0 - bne _0802FCCA - mov r0, r9 - bl sub_80969D0 - cmp r0, 0 - ble _0802FCCA - ldr r0, [r4] - adds r0, 0x8A - add r0, r8 - movs r1, 0x1 - strb r1, [r0] -_0802FCCA: - movs r1, 0x1 - add r8, r1 -_0802FCCE: - ldr r0, [sp] - adds r0, 0x1 - str r0, [sp] - cmp r0, 0x2D - ble _0802FC08 - mov r0, r8 - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0802FCEC: .4byte gUnknown_203B314 - thumb_func_end sub_802FBF4 - .align 2,0 diff --git a/asm/wonder_mail_3_mid.s b/asm/wonder_mail_3_mid.s new file mode 100644 index 0000000..208805c --- /dev/null +++ b/asm/wonder_mail_3_mid.s @@ -0,0 +1,1740 @@ + .include "constants/gba_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start sub_802EF48 +sub_802EF48: + push {r4,lr} + ldr r4, _0802EF68 + movs r0, 0xA8 + lsls r0, 1 + movs r1, 0x8 + bl MemoryAlloc + str r0, [r4] + movs r0, 0 + bl sub_802EFEC + movs r0, 0x1 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0802EF68: .4byte gUnknown_203B30C + thumb_func_end sub_802EF48 + + thumb_func_start sub_802EF6C +sub_802EF6C: + push {lr} + ldr r0, _0802EF84 + ldr r0, [r0] + ldr r0, [r0] + cmp r0, 0x5 + bhi _0802EFBA + lsls r0, 2 + ldr r1, _0802EF88 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802EF84: .4byte gUnknown_203B30C +_0802EF88: .4byte _0802EF8C + .align 2, 0 +_0802EF8C: + .4byte _0802EFA4 + .4byte _0802EFA4 + .4byte _0802EFAA + .4byte _0802EFB0 + .4byte _0802EFB6 + .4byte _0802EFBA +_0802EFA4: + bl sub_802F148 + b _0802EFBE +_0802EFAA: + bl sub_802F184 + b _0802EFBE +_0802EFB0: + bl sub_802F1E8 + b _0802EFBE +_0802EFB6: + movs r0, 0x3 + b _0802EFC0 +_0802EFBA: + movs r0, 0x2 + b _0802EFC0 +_0802EFBE: + movs r0, 0 +_0802EFC0: + pop {r1} + bx r1 + thumb_func_end sub_802EF6C + + thumb_func_start sub_802EFC4 +sub_802EFC4: + ldr r0, _0802EFCC + ldr r0, [r0] + ldrb r0, [r0, 0x4] + bx lr + .align 2, 0 +_0802EFCC: .4byte gUnknown_203B30C + thumb_func_end sub_802EFC4 + + thumb_func_start sub_802EFD0 +sub_802EFD0: + push {r4,lr} + ldr r4, _0802EFE8 + ldr r0, [r4] + cmp r0, 0 + beq _0802EFE2 + bl MemoryFree + movs r0, 0 + str r0, [r4] +_0802EFE2: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802EFE8: .4byte gUnknown_203B30C + thumb_func_end sub_802EFD0 + + thumb_func_start sub_802EFEC +sub_802EFEC: + push {lr} + ldr r1, _0802F000 + ldr r1, [r1] + str r0, [r1] + bl sub_802F004 + bl sub_802F088 + pop {r0} + bx r0 + .align 2, 0 +_0802F000: .4byte gUnknown_203B30C + thumb_func_end sub_802EFEC + + thumb_func_start sub_802F004 +sub_802F004: + push {r4-r7,lr} + ldr r4, _0802F03C + ldr r0, [r4] + adds r0, 0xF0 + bl sub_8006518 + ldr r0, [r4] + ldr r0, [r0] + cmp r0, 0x2 + bne _0802F044 + bl sub_802F108 + ldr r2, [r4] + movs r0, 0x90 + lsls r0, 1 + adds r2, r0 + ldr r1, _0802F040 + ldm r1!, {r3,r5,r6} + stm r2!, {r3,r5,r6} + ldm r1!, {r3,r5,r7} + stm r2!, {r3,r5,r7} + ldr r1, [r4] + adds r0, r1, r0 + adds r1, 0xB0 + bl sub_8012CAC + b _0802F066 + .align 2, 0 +_0802F03C: .4byte gUnknown_203B30C +_0802F040: .4byte gUnknown_80E03F4 +_0802F044: + mov r12, r4 + ldr r4, _0802F080 + movs r2, 0 + movs r3, 0x3 +_0802F04C: + mov r6, r12 + ldr r1, [r6] + adds r1, r2 + adds r1, 0xF0 + adds r0, r4, 0 + ldm r0!, {r5-r7} + stm r1!, {r5-r7} + ldm r0!, {r5-r7} + stm r1!, {r5-r7} + adds r2, 0x18 + subs r3, 0x1 + cmp r3, 0 + bge _0802F04C +_0802F066: + bl ResetUnusedInputStruct + ldr r0, _0802F084 + ldr r0, [r0] + adds r0, 0xF0 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802F080: .4byte gUnknown_80E03C4 +_0802F084: .4byte gUnknown_203B30C + thumb_func_end sub_802F004 + + thumb_func_start sub_802F088 +sub_802F088: + push {r4-r6,lr} + sub sp, 0x8 + ldr r6, _0802F0A0 + ldr r0, [r6] + ldr r5, [r0] + cmp r5, 0x1 + beq _0802F0B6 + cmp r5, 0x1 + bgt _0802F0A4 + cmp r5, 0 + beq _0802F0AE + b _0802F100 + .align 2, 0 +_0802F0A0: .4byte gUnknown_203B30C +_0802F0A4: + cmp r5, 0x2 + beq _0802F0BE + cmp r5, 0x3 + beq _0802F0DA + b _0802F100 +_0802F0AE: + movs r0, 0 + bl sub_802CDD4 + b _0802F100 +_0802F0B6: + movs r0, 0x1 + bl sub_802CED8 + b _0802F100 +_0802F0BE: + bl sub_802CFD0 + ldr r1, [r6] + adds r0, r1, 0 + adds r0, 0x60 + adds r1, 0xB0 + movs r2, 0x3 + str r2, [sp] + str r5, [sp, 0x4] + movs r2, 0 + movs r3, 0 + bl sub_8012D60 + b _0802F100 +_0802F0DA: + ldrb r0, [r0, 0x4] + bl sub_803B344 + adds r4, r0, 0 + ldr r1, [r6] + adds r1, 0x8 + bl sub_803B35C + ldr r0, [r6] + str r5, [r0, 0x8] + adds r0, 0x4C + movs r1, 0 + strb r1, [r0] + ldr r0, [r6] + ldr r1, [r4, 0x18] + str r1, [r0, 0x58] + adds r0, 0x8 + bl sub_802DE84 +_0802F100: + add sp, 0x8 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_802F088 + + thumb_func_start sub_802F108 +sub_802F108: + ldr r0, _0802F13C + ldr r0, [r0] + mov r12, r0 + movs r3, 0 + mov r1, r12 + adds r1, 0xB0 + ldr r0, _0802F140 + str r0, [r1] + adds r1, 0x4 + movs r0, 0x2 + str r0, [r1] + movs r2, 0x1 + adds r1, 0x4 + ldr r0, _0802F144 + ldr r0, [r0] + str r0, [r1] + adds r1, 0x4 + movs r0, 0x3 + str r0, [r1] + mov r0, r12 + adds r0, 0xC0 + str r3, [r0] + adds r0, 0x4 + str r2, [r0] + bx lr + .align 2, 0 +_0802F13C: .4byte gUnknown_203B30C +_0802F140: .4byte gUnknown_80E040C +_0802F144: .4byte gUnknown_80D4970 + thumb_func_end sub_802F108 + + thumb_func_start sub_802F148 +sub_802F148: + push {lr} + movs r0, 0x1 + bl sub_802CE5C + cmp r0, 0x2 + beq _0802F174 + cmp r0, 0x2 + bcc _0802F17E + cmp r0, 0x3 + bne _0802F17E + bl sub_802CEBC + ldr r1, _0802F170 + ldr r1, [r1] + strb r0, [r1, 0x4] + movs r0, 0x2 + bl sub_802EFEC + b _0802F17E + .align 2, 0 +_0802F170: .4byte gUnknown_203B30C +_0802F174: + bl sub_802CF14 + movs r0, 0x5 + bl sub_802EFEC +_0802F17E: + pop {r0} + bx r0 + thumb_func_end sub_802F148 + + thumb_func_start sub_802F184 +sub_802F184: + push {r4,lr} + sub sp, 0x4 + movs r0, 0 + str r0, [sp] + bl sub_802CE5C + ldr r4, _0802F1BC + ldr r0, [r4] + adds r0, 0x60 + bl sub_8012FD8 + lsls r0, 24 + cmp r0, 0 + bne _0802F1AA + ldr r0, [r4] + adds r0, 0x60 + mov r1, sp + bl sub_8013114 +_0802F1AA: + ldr r0, [sp] + cmp r0, 0x2 + beq _0802F1C6 + cmp r0, 0x2 + bgt _0802F1C0 + cmp r0, 0x1 + beq _0802F1DA + b _0802F1E0 + .align 2, 0 +_0802F1BC: .4byte gUnknown_203B30C +_0802F1C0: + cmp r0, 0x3 + beq _0802F1D2 + b _0802F1E0 +_0802F1C6: + bl sub_802CF14 + movs r0, 0x4 + bl sub_802EFEC + b _0802F1E0 +_0802F1D2: + movs r0, 0x3 + bl sub_802EFEC + b _0802F1E0 +_0802F1DA: + movs r0, 0x1 + bl sub_802EFEC +_0802F1E0: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_802F184 + + thumb_func_start sub_802F1E8 +sub_802F1E8: + push {lr} + bl sub_802DEE0 + cmp r0, 0x1 + bls _0802F200 + cmp r0, 0x3 + bhi _0802F200 + bl sub_802DF24 + movs r0, 0x1 + bl sub_802EFEC +_0802F200: + pop {r0} + bx r0 + thumb_func_end sub_802F1E8 + + thumb_func_start sub_802F204 +sub_802F204: + push {r4-r6,lr} + adds r6, r0, 0 + lsls r4, r1, 24 + lsrs r4, 24 + bl ResetUnusedInputStruct + movs r0, 0 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + ldr r5, _0802F28C + movs r0, 0x84 + movs r1, 0x8 + bl MemoryAlloc + str r0, [r5] + str r6, [r0, 0x10] + movs r6, 0 + str r6, [r0, 0xC] + strb r4, [r0, 0x8] + ldr r1, [r5] + ldr r0, _0802F290 + ldr r1, [r1, 0x10] + bl strcpy + ldr r4, _0802F294 + bl sub_808D33C + adds r1, r0, 0 + adds r0, r4, 0 + bl sub_808DA34 + ldr r0, [r5] + ldr r0, [r0, 0x10] + movs r1, 0x14 + ldrsh r0, [r0, r1] + bl GetDialogueSpriteDataPtr + ldr r1, [r5] + str r0, [r1, 0x14] + str r6, [r1, 0x18] + adds r1, 0x20 + strb r6, [r1] + ldr r0, [r5] + adds r0, 0x21 + strb r6, [r0] + ldr r0, [r5] + adds r0, 0x22 + strb r6, [r0] + ldr r5, [r5] + movs r0, 0x2 + strh r0, [r5, 0x1C] + movs r0, 0x8 + strh r0, [r5, 0x1E] + ldr r0, [r5, 0x14] + cmp r0, 0 + beq _0802F27C + ldr r0, [r0, 0x4] + str r0, [r5, 0x18] +_0802F27C: + movs r0, 0 + bl sub_802F2E8 + movs r0, 0x1 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_0802F28C: .4byte gUnknown_203B310 +_0802F290: .4byte gUnknown_202E5D8 +_0802F294: .4byte gAvailablePokemonNames + thumb_func_end sub_802F204 + + thumb_func_start sub_802F298 +sub_802F298: + push {lr} + ldr r0, _0802F2AC + ldr r0, [r0] + ldr r0, [r0] + cmp r0, 0x5 + beq _0802F2B0 + cmp r0, 0x9 + bne _0802F2B6 + movs r0, 0x3 + b _0802F2BC + .align 2, 0 +_0802F2AC: .4byte gUnknown_203B310 +_0802F2B0: + bl sub_802F6FC + b _0802F2BA +_0802F2B6: + bl sub_802F718 +_0802F2BA: + movs r0, 0 +_0802F2BC: + pop {r1} + bx r1 + thumb_func_end sub_802F298 + + thumb_func_start sub_802F2C0 +sub_802F2C0: + push {r4,lr} + ldr r4, _0802F2E4 + ldr r0, [r4] + cmp r0, 0 + beq _0802F2DE + ldr r0, [r0, 0x14] + cmp r0, 0 + beq _0802F2D4 + bl CloseFile +_0802F2D4: + ldr r0, [r4] + bl MemoryFree + movs r0, 0 + str r0, [r4] +_0802F2DE: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802F2E4: .4byte gUnknown_203B310 + thumb_func_end sub_802F2C0 + + thumb_func_start sub_802F2E8 +sub_802F2E8: + push {lr} + ldr r1, _0802F2FC + ldr r1, [r1] + str r0, [r1] + bl sub_802F300 + bl HandleMissionReward + pop {r0} + bx r0 + .align 2, 0 +_0802F2FC: .4byte gUnknown_203B310 + thumb_func_end sub_802F2E8 + + thumb_func_start sub_802F300 +sub_802F300: + push {r4-r7,lr} + ldr r4, _0802F350 + ldr r1, [r4] + ldr r0, [r1] + cmp r0, 0 + bne _0802F348 + adds r0, r1, 0 + adds r0, 0x24 + bl sub_8006518 + mov r12, r4 + ldr r4, _0802F354 + movs r3, 0 + movs r2, 0x3 +_0802F31C: + mov r0, r12 + ldr r1, [r0] + adds r1, r3 + adds r1, 0x24 + adds r0, r4, 0 + ldm r0!, {r5-r7} + stm r1!, {r5-r7} + ldm r0!, {r5-r7} + stm r1!, {r5-r7} + adds r3, 0x18 + subs r2, 0x1 + cmp r2, 0 + bge _0802F31C + bl ResetUnusedInputStruct + ldr r0, _0802F350 + ldr r0, [r0] + adds r0, 0x24 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C +_0802F348: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802F350: .4byte gUnknown_203B310 +_0802F354: .4byte gUnknown_80E041C + thumb_func_end sub_802F300 + + thumb_func_start HandleMissionReward +HandleMissionReward: + push {r4-r6,lr} + sub sp, 0x10 + ldr r1, _0802F374 + ldr r0, [r1] + ldr r0, [r0] + adds r6, r1, 0 + cmp r0, 0x9 + bls _0802F36A + b _0802F6E4 +_0802F36A: + lsls r0, 2 + ldr r1, _0802F378 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802F374: .4byte gUnknown_203B310 +_0802F378: .4byte _0802F37C + .align 2, 0 +_0802F37C: + .4byte _0802F3A4 + .4byte _0802F3E8 + .4byte _0802F444 + .4byte _0802F494 + .4byte _0802F524 + .4byte _0802F5CC + .4byte _0802F614 + .4byte _0802F630 + .4byte _0802F6A4 + .4byte _0802F6E4 +_0802F3A4: + ldr r2, [r6] + ldr r0, [r2, 0x10] + ldr r1, [r0, 0x18] + cmp r1, 0 + bne _0802F3B6 + movs r0, 0x2 + bl sub_802F2E8 + b _0802F6E4 +_0802F3B6: + ldr r0, _0802F3D4 + str r1, [r0] + ldrb r0, [r2, 0x8] + cmp r0, 0 + beq _0802F3E0 + ldr r0, _0802F3D8 + adds r2, 0x14 + ldr r3, _0802F3DC + movs r1, 0 + bl sub_80141B4 + ldr r1, [r6] + movs r0, 0x1 + str r0, [r1, 0x4] + b _0802F6E4 + .align 2, 0 +_0802F3D4: .4byte gUnknown_202DE30 +_0802F3D8: .4byte gUnknown_80E0434 +_0802F3DC: .4byte 0x0000010d +_0802F3E0: + movs r0, 0x1 + bl sub_802F2E8 + b _0802F6E4 +_0802F3E8: + movs r0, 0xCB + bl PlaySound + ldr r0, _0802F414 + ldr r0, [r0] + ldr r0, [r0, 0x10] + ldr r0, [r0, 0x18] + bl AddToTeamMoney + movs r0, 0 + bl sub_808D544 + cmp r0, 0x1 + bgt _0802F420 + ldr r0, _0802F418 + ldr r3, _0802F41C + movs r1, 0 + movs r2, 0 + bl sub_80141B4 + b _0802F42C + .align 2, 0 +_0802F414: .4byte gUnknown_203B310 +_0802F418: .4byte gUnknown_80E045C +_0802F41C: .4byte 0x00000101 +_0802F420: + ldr r0, _0802F438 + ldr r3, _0802F43C + movs r1, 0 + movs r2, 0 + bl sub_80141B4 +_0802F42C: + ldr r0, _0802F440 + ldr r1, [r0] + movs r0, 0x2 + str r0, [r1, 0x4] + b _0802F6E4 + .align 2, 0 +_0802F438: .4byte gUnknown_80E0484 +_0802F43C: .4byte 0x00000101 +_0802F440: .4byte gUnknown_203B310 +_0802F444: + ldr r0, [r6] + ldr r0, [r0, 0x10] + adds r1, r0, 0 + adds r1, 0x20 + ldrb r0, [r1] + cmp r0, 0 + bne _0802F45A + movs r0, 0x4 + bl sub_802F2E8 + b _0802F6E4 +_0802F45A: + ldr r0, _0802F480 + ldrb r1, [r1] + movs r2, 0 + bl sub_8092578 + ldr r2, [r6] + ldrb r0, [r2, 0x8] + cmp r0, 0 + beq _0802F48C + ldr r0, _0802F484 + adds r2, 0x14 + ldr r3, _0802F488 + movs r1, 0 + bl sub_80141B4 + ldr r1, [r6] + movs r0, 0x3 + str r0, [r1, 0x4] + b _0802F6E4 + .align 2, 0 +_0802F480: .4byte gUnknown_202E628 +_0802F484: .4byte gUnknown_80E04B4 +_0802F488: .4byte 0x0000010d +_0802F48C: + movs r0, 0x3 + bl sub_802F2E8 + b _0802F6E4 +_0802F494: + ldr r4, _0802F4B4 + ldr r0, [r4] + ldr r0, [r0, 0x10] + adds r0, 0x20 + ldrb r0, [r0] + bl GetFriendAreaStatus + lsls r0, 24 + cmp r0, 0 + beq _0802F4BC + movs r0, 0xFA + lsls r0, 2 + bl AddToTeamMoney + ldr r0, _0802F4B8 + b _0802F4DA + .align 2, 0 +_0802F4B4: .4byte gUnknown_203B310 +_0802F4B8: .4byte gUnknown_80E04F4 +_0802F4BC: + movs r0, 0 + bl sub_808D544 + cmp r0, 0x1 + bgt _0802F4F0 + ldr r0, [r4] + ldr r0, [r0, 0x10] + adds r0, 0x20 + ldrb r0, [r0] + bl UnlockFriendArea + movs r0, 0xCE + bl PlaySound + ldr r0, _0802F4E8 +_0802F4DA: + ldr r3, _0802F4EC + movs r1, 0 + movs r2, 0 + bl sub_80141B4 + b _0802F50E + .align 2, 0 +_0802F4E8: .4byte gUnknown_80E05C0 +_0802F4EC: .4byte 0x00000101 +_0802F4F0: + ldr r0, [r4] + ldr r0, [r0, 0x10] + adds r0, 0x20 + ldrb r0, [r0] + bl UnlockFriendArea + movs r0, 0xCE + bl PlaySound + ldr r0, _0802F518 + ldr r3, _0802F51C + movs r1, 0 + movs r2, 0 + bl sub_80141B4 +_0802F50E: + ldr r0, _0802F520 + ldr r1, [r0] + movs r0, 0x4 + str r0, [r1, 0x4] + b _0802F6E4 + .align 2, 0 +_0802F518: .4byte gUnknown_80E05FC +_0802F51C: .4byte 0x00000101 +_0802F520: .4byte gUnknown_203B310 +_0802F524: + ldr r0, [r6] + ldr r0, [r0, 0x10] + ldrb r2, [r0, 0x1C] + cmp r2, 0 + beq _0802F628 + ldr r0, [r0, 0x18] + cmp r0, 0 + bne _0802F620 + lsls r2, 16 + ldr r1, _0802F564 + ldr r0, [sp, 0xC] + ands r0, r1 + orrs r0, r2 + str r0, [sp, 0xC] + lsrs r0, 16 + lsls r0, 24 + lsrs r0, 24 + bl IsThrowableItem + lsls r0, 24 + cmp r0, 0 + beq _0802F56C + ldr r0, [r6] + ldr r0, [r0, 0x10] + ldrb r1, [r0, 0x1F] + lsls r1, 8 + ldr r2, _0802F568 + ldr r0, [sp, 0xC] + ands r0, r2 + orrs r0, r1 + b _0802F572 + .align 2, 0 +_0802F564: .4byte 0xff00ffff +_0802F568: .4byte 0xffff00ff +_0802F56C: + ldr r1, _0802F5B4 + ldr r0, [sp, 0xC] + ands r0, r1 +_0802F572: + str r0, [sp, 0xC] + ldr r1, _0802F5B8 + ldr r0, [sp, 0xC] + ands r0, r1 + movs r2, 0x1 + orrs r0, r2 + str r0, [sp, 0xC] + movs r1, 0 + str r1, [sp] + mov r0, sp + strb r1, [r0, 0x4] + strb r2, [r0, 0x8] + ldr r0, _0802F5BC + add r1, sp, 0xC + mov r2, sp + bl sub_8090E14 + ldr r4, _0802F5C0 + ldr r2, [r4] + ldrb r0, [r2, 0x8] + cmp r0, 0 + beq _0802F620 + ldr r0, _0802F5C4 + adds r2, 0x14 + ldr r3, _0802F5C8 + movs r1, 0 + bl sub_80141B4 + ldr r1, [r4] + movs r0, 0x5 + str r0, [r1, 0x4] + b _0802F6E4 + .align 2, 0 +_0802F5B4: .4byte 0xffff00ff +_0802F5B8: .4byte 0xffffff00 +_0802F5BC: .4byte gUnknown_202DEA8 +_0802F5C0: .4byte gUnknown_203B310 +_0802F5C4: .4byte gUnknown_80E0640 +_0802F5C8: .4byte 0x0000010d +_0802F5CC: + ldr r0, [r6] + ldr r2, [r0, 0x10] + adds r1, r2, 0 + adds r1, 0x1C + ldr r3, [r0, 0xC] + adds r1, r3 + ldrb r0, [r1] + cmp r0, 0 + bne _0802F5E6 + movs r0, 0x6 + bl sub_802F2E8 + b _0802F6E4 +_0802F5E6: + cmp r3, 0 + bne _0802F5FC + ldr r0, [r2, 0x18] + cmp r0, 0 + bne _0802F5FC + ldrb r1, [r2, 0x1C] + ldrb r2, [r2, 0x1F] + movs r0, 0 + bl sub_801B60C + b _0802F6E4 +_0802F5FC: + ldr r1, [r6] + ldr r2, [r1, 0x10] + adds r0, r2, 0 + adds r0, 0x1C + ldr r1, [r1, 0xC] + adds r0, r1 + ldrb r1, [r0] + ldrb r2, [r2, 0x1F] + movs r0, 0x1 + bl sub_801B60C + b _0802F6E4 +_0802F614: + ldr r1, [r6] + ldr r0, [r1, 0xC] + adds r0, 0x1 + str r0, [r1, 0xC] + cmp r0, 0x2 + bgt _0802F628 +_0802F620: + movs r0, 0x5 + bl sub_802F2E8 + b _0802F6E4 +_0802F628: + movs r0, 0x7 + bl sub_802F2E8 + b _0802F6E4 +_0802F630: + adds r5, r6, 0 + ldr r0, [r5] + ldr r0, [r0, 0x10] + ldr r0, [r0, 0x24] + cmp r0, 0 + bne _0802F644 + movs r0, 0x9 + bl sub_802F2E8 + b _0802F6E4 +_0802F644: + bl GetRescueTeamRank + ldr r1, [r5] + strb r0, [r1, 0x9] + ldr r0, [r5] + ldr r0, [r0, 0x10] + ldr r0, [r0, 0x24] + bl AddToTeamRankPts + movs r0, 0xCB + bl PlaySound + ldr r4, [r5] + bl GetRescueTeamRank + ldrb r1, [r4, 0x9] + lsls r0, 24 + lsrs r0, 24 + cmp r1, r0 + beq _0802F672 + ldr r1, [r5] + movs r0, 0x8 + b _0802F676 +_0802F672: + ldr r1, [r6] + movs r0, 0x9 +_0802F676: + str r0, [r1, 0x4] + ldr r1, _0802F694 + ldr r0, _0802F698 + ldr r0, [r0] + ldr r0, [r0, 0x10] + ldr r0, [r0, 0x24] + str r0, [r1] + ldr r0, _0802F69C + ldr r3, _0802F6A0 + movs r1, 0 + movs r2, 0 + bl sub_80141B4 + b _0802F6E4 + .align 2, 0 +_0802F694: .4byte gUnknown_202DE30 +_0802F698: .4byte gUnknown_203B310 +_0802F69C: .4byte gUnknown_80E0670 +_0802F6A0: .4byte 0x00000101 +_0802F6A4: + movs r0, 0xC9 + bl PlaySound + ldr r0, _0802F6EC + ldr r1, [r0] + movs r0, 0x9 + str r0, [r1, 0x4] + ldrb r0, [r1, 0x9] + bl GetTeamRankString + adds r1, r0, 0 + ldr r4, _0802F6F0 + adds r0, r4, 0 + bl strcpy + bl GetRescueTeamRank + lsls r0, 24 + lsrs r0, 24 + bl GetTeamRankString + adds r1, r0, 0 + adds r4, 0x50 + adds r0, r4, 0 + bl strcpy + ldr r0, _0802F6F4 + ldr r3, _0802F6F8 + movs r1, 0 + movs r2, 0 + bl sub_80141B4 +_0802F6E4: + add sp, 0x10 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0802F6EC: .4byte gUnknown_203B310 +_0802F6F0: .4byte gUnknown_202E038 +_0802F6F4: .4byte gUnknown_80E06A8 +_0802F6F8: .4byte 0x00000101 + thumb_func_end HandleMissionReward + + thumb_func_start sub_802F6FC +sub_802F6FC: + push {lr} + bl sub_801B6AC + cmp r0, 0x1 + bls _0802F714 + cmp r0, 0x3 + bhi _0802F714 + bl sub_801B72C + movs r0, 0x6 + bl sub_802F2E8 +_0802F714: + pop {r0} + bx r0 + thumb_func_end sub_802F6FC + + thumb_func_start sub_802F718 +sub_802F718: + push {lr} + sub sp, 0x4 + mov r0, sp + bl sub_80144A4 + cmp r0, 0 + bne _0802F730 + ldr r0, _0802F738 + ldr r0, [r0] + ldr r0, [r0, 0x4] + bl sub_802F2E8 +_0802F730: + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_0802F738: .4byte gUnknown_203B310 + thumb_func_end sub_802F718 + + thumb_func_start sub_802F73C +sub_802F73C: + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r5, r0, 0 + adds r7, r1, 0 + mov r8, r2 + lsls r3, 24 + lsrs r6, r3, 24 + bl sub_802FCF0 + lsls r0, 24 + cmp r0, 0 + beq _0802F75A + movs r0, 0 + b _0802F836 +_0802F75A: + ldr r4, _0802F7AC + ldr r0, [r4] + cmp r0, 0 + bne _0802F76E + movs r0, 0xAE + lsls r0, 1 + movs r1, 0x8 + bl MemoryAlloc + str r0, [r4] +_0802F76E: + ldr r0, [r4] + adds r0, 0xB8 + strb r6, [r0] + ldr r0, [r4] + adds r1, r0, 0 + adds r1, 0xF0 + str r5, [r1] + adds r2, r0, 0 + adds r2, 0xF4 + lsls r1, r5, 1 + adds r1, r5 + lsls r1, 3 + adds r1, 0xF8 + adds r1, r0, r1 + str r1, [r2] + adds r0, 0xF8 + bl sub_8006518 + cmp r6, 0 + beq _0802F7B4 + ldr r1, [r4] + adds r0, r1, 0 + adds r0, 0xF0 + ldr r2, [r0] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + adds r1, 0xF8 + ldr r0, _0802F7B0 + b _0802F7C8 + .align 2, 0 +_0802F7AC: .4byte gUnknown_203B314 +_0802F7B0: .4byte gUnknown_80E072C +_0802F7B4: + ldr r1, [r4] + adds r0, r1, 0 + adds r0, 0xF0 + ldr r2, [r0] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + adds r1, 0xF8 + ldr r0, _0802F840 +_0802F7C8: + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldr r4, _0802F844 + ldr r2, [r4] + adds r0, r2, 0 + adds r0, 0xF4 + ldr r1, [r0] + movs r3, 0xAC + lsls r3, 1 + adds r0, r2, r3 + str r0, [r1, 0x14] + cmp r7, 0 + beq _0802F7FC + adds r0, r2, 0 + adds r0, 0xF0 + ldr r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + subs r3, 0x58 + adds r1, r2, r3 + adds r1, r0 + ldr r0, [r7] + str r0, [r1] +_0802F7FC: + ldr r0, [r4] + adds r0, 0xF4 + ldr r0, [r0] + mov r1, r8 + bl sub_8012D08 + bl ResetUnusedInputStruct + ldr r0, [r4] + adds r0, 0xF8 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + ldr r4, [r4] + adds r4, 0xBC + bl sub_802FBF4 + adds r1, r0, 0 + adds r0, r4, 0 + mov r2, r8 + adds r3, r5, 0 + bl sub_8013818 + bl sub_802F9C0 + bl sub_802FA50 + movs r0, 0x1 +_0802F836: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0802F840: .4byte gUnknown_80E0714 +_0802F844: .4byte gUnknown_203B314 + thumb_func_end sub_802F73C + + thumb_func_start sub_802F848 +sub_802F848: + push {r4,r5,lr} + lsls r0, 16 + asrs r4, r0, 16 + movs r3, 0 + ldr r1, _0802F858 + ldr r0, [r1] + b _0802F884 + .align 2, 0 +_0802F858: .4byte gUnknown_203B314 +_0802F85C: + ldr r2, [r1] + lsls r0, r3, 1 + adds r0, r2, r0 + movs r5, 0 + ldrsh r0, [r0, r5] + cmp r0, r4 + bne _0802F880 + adds r0, r2, 0 + adds r0, 0xBC + adds r1, r3, 0 + bl sub_8013878 + bl sub_802F9C0 + bl sub_802FA50 + movs r0, 0x1 + b _0802F89A +_0802F880: + adds r3, 0x1 + adds r0, r2, 0 +_0802F884: + adds r0, 0xDE + movs r2, 0 + ldrsh r0, [r0, r2] + cmp r3, r0 + blt _0802F85C + ldr r0, [r1] + adds r0, 0xBC + movs r1, 0 + bl sub_8013878 + movs r0, 0 +_0802F89A: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_802F848 + + thumb_func_start sub_802F8A0 +sub_802F8A0: + push {r4,lr} + lsls r0, 24 + cmp r0, 0 + bne _0802F8BC + ldr r0, _0802F8B8 + ldr r0, [r0] + adds r0, 0xBC + bl sub_8013660 + movs r0, 0 + b _0802F904 + .align 2, 0 +_0802F8B8: .4byte gUnknown_203B314 +_0802F8BC: + ldr r4, _0802F8D8 + ldr r0, [r4] + adds r0, 0xBC + bl GetKeyPress + cmp r0, 0x1 + beq _0802F8DC + cmp r0, 0x2 + bne _0802F8E6 + movs r0, 0x1 + bl PlayMenuSoundEffect + movs r0, 0x2 + b _0802F904 + .align 2, 0 +_0802F8D8: .4byte gUnknown_203B314 +_0802F8DC: + movs r0, 0 + bl PlayMenuSoundEffect + movs r0, 0x3 + b _0802F904 +_0802F8E6: + ldr r0, [r4] + adds r0, 0xBC + movs r1, 0x1 + bl sub_80138B8 + lsls r0, 24 + cmp r0, 0 + bne _0802F8FA + movs r0, 0 + b _0802F904 +_0802F8FA: + bl sub_802F9C0 + bl sub_802FA50 + movs r0, 0x1 +_0802F904: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_802F8A0 + + thumb_func_start sub_802F90C +sub_802F90C: + ldr r0, _0802F934 + ldr r2, [r0] + adds r0, r2, 0 + adds r0, 0xDA + movs r3, 0 + ldrsh r1, [r0, r3] + subs r0, 0x2 + movs r3, 0 + ldrsh r0, [r0, r3] + muls r0, r1 + adds r1, r2, 0 + adds r1, 0xD4 + movs r3, 0 + ldrsh r1, [r1, r3] + adds r0, r1 + lsls r0, 1 + adds r0, r2, r0 + movs r1, 0 + ldrsh r0, [r0, r1] + bx lr + .align 2, 0 +_0802F934: .4byte gUnknown_203B314 + thumb_func_end sub_802F90C + + thumb_func_start sub_802F938 +sub_802F938: + push {r4,r5,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_802FBF4 + adds r1, r0, 0 + ldr r5, _0802F970 + ldr r0, [r5] + adds r2, r0, 0 + adds r2, 0xDE + strh r1, [r2] + adds r0, 0xBC + bl sub_8013984 + bl sub_802F9C0 + bl sub_802FA50 + cmp r4, 0 + beq _0802F96A + ldr r0, [r5] + adds r0, 0xBC + bl AddMenuCursorSprite +_0802F96A: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0802F970: .4byte gUnknown_203B314 + thumb_func_end sub_802F938 + + thumb_func_start sub_802F974 +sub_802F974: + push {r4,r5,lr} + ldr r4, _0802F9B8 + ldr r2, [r4] + cmp r2, 0 + beq _0802F9B2 + adds r0, r2, 0 + adds r0, 0xF0 + ldr r0, [r0] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 3 + adds r1, r2, r1 + adds r1, 0xF8 + ldr r0, _0802F9BC + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + bl ResetUnusedInputStruct + ldr r0, [r4] + adds r0, 0xF8 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + ldr r0, [r4] + bl MemoryFree + movs r0, 0 + str r0, [r4] +_0802F9B2: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0802F9B8: .4byte gUnknown_203B314 +_0802F9BC: .4byte gUnknown_80E06FC + thumb_func_end sub_802F974 + + thumb_func_start sub_802F9C0 +sub_802F9C0: + push {r4,r5,lr} + ldr r4, _0802FA44 + ldr r0, [r4] + movs r1, 0xAC + lsls r1, 1 + adds r0, r1 + movs r2, 0 + movs r1, 0x1 + strb r1, [r0] + ldr r0, [r4] + ldr r3, _0802FA48 + adds r0, r3 + strb r2, [r0] + ldr r0, [r4] + adds r3, 0x1 + adds r1, r0, r3 + movs r0, 0x8 + strb r0, [r1] + ldr r0, [r4] + ldr r1, _0802FA4C + adds r0, r1 + strb r2, [r0] + ldr r0, [r4] + adds r0, 0xD6 + movs r2, 0 + ldrsh r0, [r0, r2] + movs r1, 0xC + bl sub_80095E4 + adds r0, 0x2 + lsls r0, 16 + ldr r3, [r4] + adds r5, r3, 0 + adds r5, 0xF0 + ldr r2, [r5] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 3 + adds r1, r3, r1 + movs r2, 0x83 + lsls r2, 1 + adds r1, r2 + asrs r2, r0, 16 + lsrs r0, 16 + strh r0, [r1] + ldr r1, [r5] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + adds r3, r0 + adds r2, 0x2 + movs r0, 0x84 + lsls r0, 1 + adds r3, r0 + strh r2, [r3] + bl ResetUnusedInputStruct + ldr r0, [r4] + adds r0, 0xF8 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0802FA44: .4byte gUnknown_203B314 +_0802FA48: .4byte 0x00000159 +_0802FA4C: .4byte 0x0000015b + thumb_func_end sub_802F9C0 + + thumb_func_start sub_802FA50 +sub_802FA50: + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x8 + ldr r4, _0802FB1C + ldr r0, [r4] + adds r0, 0xF0 + ldr r0, [r0] + bl sub_8008C54 + ldr r0, [r4] + adds r0, 0xF0 + ldr r0, [r0] + bl sub_80073B8 + ldr r2, _0802FB20 + ldr r0, [r4] + adds r0, 0xF0 + ldr r3, [r0] + movs r0, 0 + str r0, [sp] + movs r0, 0xA + movs r1, 0 + bl xxx_call_draw_string + ldr r3, [r4] + movs r1, 0xAD + lsls r1, 1 + adds r0, r3, r1 + ldrb r0, [r0] + lsls r0, 3 + adds r0, 0x4 + adds r1, r3, 0 + adds r1, 0xDA + movs r5, 0 + ldrsh r2, [r1, r5] + adds r2, 0x1 + movs r1, 0x7 + str r1, [sp] + adds r1, r3, 0 + adds r1, 0xF0 + ldr r1, [r1] + str r1, [sp, 0x4] + movs r1, 0 + movs r3, 0x2 + bl sub_8012BC4 + ldr r1, [r4] + adds r0, r1, 0 + adds r0, 0xB8 + ldrb r0, [r0] + cmp r0, 0 + beq _0802FB78 + movs r6, 0 + adds r0, r1, 0 + adds r0, 0xD6 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r6, r0 + blt _0802FACA + b _0802FBD6 +_0802FACA: + mov r8, r4 +_0802FACC: + mov r2, r8 + ldr r0, [r2] + adds r0, 0xBC + adds r1, r6, 0 + bl sub_8013800 + adds r5, r0, 0 + mov r3, r8 + ldr r2, [r3] + adds r0, r2, 0 + adds r0, 0xDA + movs r3, 0 + ldrsh r1, [r0, r3] + subs r0, 0x2 + movs r3, 0 + ldrsh r0, [r0, r3] + muls r0, r1 + adds r1, r0, r6 + lsls r0, r1, 1 + adds r0, r2, r0 + movs r3, 0 + ldrsh r7, [r0, r3] + adds r0, r2, 0 + adds r0, 0x5C + adds r0, r1 + ldrb r4, [r0] + cmp r4, 0 + beq _0802FB28 + adds r0, r2, 0 + adds r0, 0xF0 + ldr r3, [r0] + movs r0, 0 + str r0, [sp] + movs r0, 0xA + adds r1, r5, 0 + ldr r2, _0802FB24 + bl xxx_call_draw_string + b _0802FB46 + .align 2, 0 +_0802FB1C: .4byte gUnknown_203B314 +_0802FB20: .4byte gUnknown_80E0744 +_0802FB24: .4byte gUnknown_80E0750 +_0802FB28: + adds r0, r2, 0 + adds r0, 0x8A + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _0802FB46 + adds r0, r2, 0 + adds r0, 0xF0 + ldr r3, [r0] + str r4, [sp] + movs r0, 0xA + adds r1, r5, 0 + ldr r2, _0802FB74 + bl xxx_call_draw_string +_0802FB46: + adds r0, r7, 0 + bl sub_80974A0 + adds r2, r0, 0 + mov r1, r8 + ldr r0, [r1] + adds r0, 0xF0 + ldr r3, [r0] + movs r0, 0 + str r0, [sp] + movs r0, 0x18 + adds r1, r5, 0 + bl xxx_call_draw_string + adds r6, 0x1 + mov r2, r8 + ldr r0, [r2] + adds r0, 0xD6 + movs r3, 0 + ldrsh r0, [r0, r3] + cmp r6, r0 + blt _0802FACC + b _0802FBD6 + .align 2, 0 +_0802FB74: .4byte gUnknown_80E0754 +_0802FB78: + movs r6, 0 + adds r0, r1, 0 + adds r0, 0xD6 + movs r5, 0 + ldrsh r0, [r0, r5] + cmp r6, r0 + bge _0802FBD6 + adds r5, r4, 0 +_0802FB88: + ldr r0, [r5] + adds r0, 0xBC + adds r1, r6, 0 + bl sub_8013800 + adds r4, r0, 0 + ldr r1, [r5] + adds r0, r1, 0 + adds r0, 0xDA + movs r3, 0 + ldrsh r2, [r0, r3] + subs r0, 0x2 + movs r3, 0 + ldrsh r0, [r0, r3] + muls r0, r2 + adds r0, r6 + lsls r0, 1 + adds r1, r0 + movs r2, 0 + ldrsh r0, [r1, r2] + bl sub_80974A0 + adds r2, r0, 0 + ldr r0, [r5] + adds r0, 0xF0 + ldr r3, [r0] + movs r0, 0 + str r0, [sp] + movs r0, 0x8 + adds r1, r4, 0 + bl xxx_call_draw_string + adds r6, 0x1 + ldr r0, [r5] + adds r0, 0xD6 + movs r3, 0 + ldrsh r0, [r0, r3] + cmp r6, r0 + blt _0802FB88 +_0802FBD6: + ldr r0, _0802FBF0 + ldr r0, [r0] + adds r0, 0xF0 + ldr r0, [r0] + bl sub_80073E0 + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802FBF0: .4byte gUnknown_203B314 + thumb_func_end sub_802FA50 + + thumb_func_start sub_802FBF4 +sub_802FBF4: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + movs r0, 0 + mov r8, r0 + movs r1, 0 + str r1, [sp] +_0802FC08: + ldr r1, [sp] + lsls r0, r1, 16 + asrs r4, r0, 16 + mov r10, r4 + adds r0, r4, 0 + bl sub_80A27CC + lsls r0, 24 + cmp r0, 0 + beq _0802FCCE + cmp r4, 0x13 + beq _0802FCCE + cmp r4, 0x1D + beq _0802FCCE + ldr r7, _0802FC88 + ldr r1, [r7] + mov r0, r8 + lsls r6, r0, 1 + adds r0, r1, r6 + strh r4, [r0] + adds r1, 0x5C + add r1, r8 + movs r0, 0 + strb r0, [r1] + ldr r0, [r7] + adds r0, 0x8A + add r0, r8 + movs r1, 0 + strb r1, [r0] + ldr r0, [r7] + adds r0, 0xB8 + ldrb r0, [r0] + cmp r0, 0 + beq _0802FCCA + cmp r4, 0xD + beq _0802FCCA + adds r0, r4, 0 + bl sub_80A270C + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + movs r5, 0 + cmp r4, 0x1E + bgt _0802FCA8 + adds r0, r4, 0 + bl sub_8097384 + lsls r0, 24 + cmp r0, 0 + bne _0802FCA6 + cmp r4, 0x6 + bne _0802FC8C + movs r0, 0x13 + bl sub_8097384 + lsls r0, 24 + cmp r0, 0 + beq _0802FCA8 + ldr r0, [r7] + adds r0, r6 + movs r1, 0x13 + b _0802FCA4 + .align 2, 0 +_0802FC88: .4byte gUnknown_203B314 +_0802FC8C: + mov r0, r10 + cmp r0, 0xA + bne _0802FCA8 + movs r0, 0x1D + bl sub_8097384 + lsls r0, 24 + cmp r0, 0 + beq _0802FCA8 + ldr r0, [r7] + adds r0, r6 + movs r1, 0x1D +_0802FCA4: + strh r1, [r0] +_0802FCA6: + movs r5, 0x1 +_0802FCA8: + ldr r4, _0802FCEC + ldr r0, [r4] + adds r0, 0x5C + add r0, r8 + strb r5, [r0] + cmp r5, 0 + bne _0802FCCA + mov r0, r9 + bl sub_80969D0 + cmp r0, 0 + ble _0802FCCA + ldr r0, [r4] + adds r0, 0x8A + add r0, r8 + movs r1, 0x1 + strb r1, [r0] +_0802FCCA: + movs r1, 0x1 + add r8, r1 +_0802FCCE: + ldr r0, [sp] + adds r0, 0x1 + str r0, [sp] + cmp r0, 0x2D + ble _0802FC08 + mov r0, r8 + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0802FCEC: .4byte gUnknown_203B314 + thumb_func_end sub_802FBF4 + + .align 2,0 diff --git a/charmap.txt b/charmap.txt index b45c14b..afc50a7 100644 --- a/charmap.txt +++ b/charmap.txt @@ -209,6 +209,7 @@ 'þ' = FE 'ÿ' = FF +'?' = 81 48 '♪' = 81 F4 'し' = 82 B5 diff --git a/data/data_80DED44.s b/data/data_80DED44.s index 5f992f8..74161c7 100644 --- a/data/data_80DED44.s +++ b/data/data_80DED44.s @@ -399,13 +399,13 @@ gUnknown_80E0378: @ 80E0378 .byte 0x03, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 - .global gPelliperBoard_BulletinBoard -gPelliperBoard_BulletinBoard: @ 80E0390 + .global gPelipperBoard_BulletinBoard +gPelipperBoard_BulletinBoard: @ 80E0390 .string "Bulletin Board\0" .align 2,0 - .global gPelliperBoard_JobList -gPelliperBoard_JobList: @ 80E03A0 + .global gPelipperBoard_JobList +gPelipperBoard_JobList: @ 80E03A0 .string "Job List\0" .align 2,0 diff --git a/data/data_80E2068.s b/data/data_80E2068.s index c2b9b2b..70b5242 100644 --- a/data/data_80E2068.s +++ b/data/data_80E2068.s @@ -2251,8 +2251,8 @@ gUnknown_80E762C: @ 80E762C .byte 0x03, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 - .global gUnknown_80E7644 -gUnknown_80E7644: @ 80E7644 + .global gResumeQuicksaveMenuItems +gResumeQuicksaveMenuItems: @ 80E7644 .4byte ResumeQuicksave_80E7668 .byte 0x05, 0x00, 0x00, 0x00 .4byte IsThatOK_80E765C @@ -2268,8 +2268,8 @@ gUnknown_80E7644: @ 80E7644 .string "Resuming from quicksave.\0" .align 2,0 - .global gUnknown_80E7684 -gUnknown_80E7684: @ 80E7684 + .global gResumeAdventureMenuItems +gResumeAdventureMenuItems: @ 80E7684 .4byte ResumeAdventure_80E769C .byte 0x05, 0x00, 0x00, 0x00 .4byte IsThatOK_80E765C @@ -2281,21 +2281,21 @@ gUnknown_80E7684: @ 80E7684 .string "Resuming saved adventure.\0" .align 2,0 - .global gUnknown_80E76B8 -gUnknown_80E76B8: @ 80E76B8 - .4byte QuitAwaitingResuce_80E76D0 + .global gQuitWaitingRescueMenuItems +gQuitWaitingRescueMenuItems: @ 80E76B8 + .4byte QuitAwaitingRescue_80E76D0 .byte 0x05, 0x00, 0x00, 0x00 .4byte IsThatOK_80E765C .byte 0x05, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .byte 0x03, 0x00, 0x00, 0x00 - QuitAwaitingResuce_80E76D0: + QuitAwaitingRescue_80E76D0: .string "Quit awaiting rescue?\0" .align 2,0 - .global gUnknown_80E76E8 -gUnknown_80E76E8: @ 80E76E8 + .global gDeleteSavePromptMenuItems +gDeleteSavePromptMenuItems: @ 80E76E8 .4byte Deleted_80E7718 .byte 0x05, 0x00, 0x00, 0x00 .4byte Deleted_80E7700 @@ -2311,8 +2311,8 @@ gUnknown_80E76E8: @ 80E76E8 .string "Your saved data will be\0" .align 2,0 - .global gUnknown_80E7730 -gUnknown_80E7730: @ 80E7730 + .global gDeleteSaveConfirmMenuItems +gDeleteSaveConfirmMenuItems: @ 80E7730 .4byte Deleted_80E7768 .byte 0x05, 0x00, 0x00, 0x00 .4byte Deleted_80E7748 @@ -2337,292 +2337,3 @@ gUnknown_80E7784: @ 80E7784 .byte 0x05, 0x00, 0x03, 0x00 .byte 0x03, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80E779C -gUnknown_80E779C: @ 80E779C - .4byte Yes_80E77B8 - .4byte 1 - .4byte No_80E77B4 - .4byte 2 - .4byte 0 - .4byte 3 - - .global No_80E77B4 - No_80E77B4: - .asciz "No" - .align 2,0 - - .global Yes_80E77B8 - Yes_80E77B8: - .asciz "Yes" - .align 2,0 - - .global gUnknown_80E77BC -gUnknown_80E77BC: @ 80E77BC - .string "Team:\0" - .align 2,0 - - .global gUnknown_80E77C4 -gUnknown_80E77C4: @ 80E77C4 - .string "Name:\0" - .align 2,0 - - .global gUnknown_80E77CC -gUnknown_80E77CC: @ 80E77CC - .string "Location:\0" - .align 2,0 - - .global gUnknown_80E77D8 -gUnknown_80E77D8: @ 80E77D8 - .string "Play time:\0" - .align 2,0 - - .global gUnknown_80E77E4 -gUnknown_80E77E4: @ 80E77E4 - .string "Adventures:\0" - .align 2,0 - - .global gUnknown_80E77F0 -gUnknown_80E77F0: @ 80E77F0 - .string "Helper:\0" - .align 2,0 - - .global gUnknown_80E77F8 -gUnknown_80E77F8: @ 80E77F8 - .byte 0x81, 0x48 - .byte 0x81, 0x48 - .byte 0x81, 0x48 - .byte 0x81, 0x48 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80E7804 -gUnknown_80E7804: @ 80E7804 - .string "%s \0" - .align 2,0 - - .global gUnknown_80E7808 -gUnknown_80E7808: @ 80E7808 - .string "???\0" - .align 2,0 - - .global gUnknown_80E780C -gUnknown_80E780C: @ 80E780C - .string "Quicksave data deleted.\0" - .align 2,0 - - .global gUnknown_80E7824 -gUnknown_80E7824: @ 80E7824 - .string "Location unknown.\0" - .align 2,0 - - .global gUnknown_80E7838 -gUnknown_80E7838: @ 80E7838 - .string "%d:%02d:%02d \0" - .align 2,0 - - .global gUnknown_80E7848 -gUnknown_80E7848: @ 80E7848 - .string "%d\0" - .align 2,0 - - .global gUnknown_80E784C -gUnknown_80E784C: @ 80E784C - .string "%s (%s)\0" - .align 2,0 - - .global gUnknown_80E7854 -gUnknown_80E7854: @ 80E7854 - .string "-----\0" - .align 2,0 - - .global gUnknown_80E785C -gUnknown_80E785C: @ 80E785C - .string "clmkpat\0" - .align 2,0 - .string "pksdir0\0" - .align 2,0 - - .global gUnknown_80E786C -gUnknown_80E786C: @ 80E786C - .4byte Send_80E788C - .4byte 1 - .4byte Receive_80E7884 - .4byte 2 - .4byte 0 - .4byte 0 - - .global Receive_80E7884 - Receive_80E7884: - .asciz "Receive" - .align 2,0 - - .global Send_80E788C - Send_80E788C: - .asciz "Send" - .align 2,0 - - .global gUnknown_80E7894 -gUnknown_80E7894: @ 80E7894 - .4byte GameLinkCable_80E78C8 - .4byte 3 - .4byte Password_80E78BC - .4byte -1 - .4byte Cancel_80E78B4 - .4byte 8 - .4byte 0 - .4byte 0 - - .global Cancel_80E78B4 - Cancel_80E78B4: - .asciz "Cancel" - .align 2,0 - - .global Password_80E78BC - Password_80E78BC: - .asciz "Password" - .align 2,0 - - .global GameLinkCable_80E78C8 - GameLinkCable_80E78C8: - .asciz "Game Link cable" - .align 2,0 - - .global gUnknown_80E78D8 -gUnknown_80E78D8: @ 80E78D8 - .4byte GameLinkCable_80E78C8 - .4byte 3 - .4byte Password_80E78BC - .4byte 5 - .4byte Cancel_80E78B4 - .4byte 8 - .4byte 0 - .4byte 0 - - .global gUnknown_80E78F8 -gUnknown_80E78F8: @ 80E78F8 - .4byte Yes_80E7910 - .4byte 6 - .4byte Cancel_80E78B4 - .4byte 0 - .4byte 0 - .4byte 0 - - .global Yes_80E7910 - Yes_80E7910: - .asciz "Yes" - .align 2,0 - - .global gUnknown_80E7914 -gUnknown_80E7914: @ 80E7914 - .asciz "There was a communication error." - .align 2,0 - - .global gUnknown_80E7938 -gUnknown_80E7938: @ 80E7938 - .string "An incorrect number of GBA systems are\n" - .string "connected.\n" - .asciz "Please redo this process from the start." - .align 2,0 - - .global gUnknown_80E7994 -gUnknown_80E7994: @ 80E7994 - .string "There is no response from your friend.\n" - .asciz "Please redo this process from the start." - .align 2,0 - - .global gUnknown_80E79E4 -gUnknown_80E79E4: @ 80E79E4 - .string "The sender and receiver appear to be\n" - .string "in different modes.\n" - .asciz "Please redo the process from the start." - .align 2,0 - - .global gUnknown_80E7A48 -gUnknown_80E7A48: @ 80E7A48 - .string "There is no response from your friend.\n" - .string "Please make sure the sender and receiver\n" - .string "are ready~2c then redo this from the start.\0" - .align 2,0 - - .global gUnknown_80E7AC4 -gUnknown_80E7AC4: @ 80E7AC4 - .asciz "What would you like to do?" - .align 2,0 - - .global gUnknown_80E7AE0 -gUnknown_80E7AE0: @ 80E7AE0 - .string "How would you like to send your\n" - .asciz "#CGWonder Mail#R?" - .align 2,0 - - .global gUnknown_80E7B14 -gUnknown_80E7B14: @ 80E7B14 - .string "How would you like to receive the\n" - .asciz "#CGWonder Mail#R?" - .align 2,0 - - .global gUnknown_80E7B48 -gUnknown_80E7B48: @ 80E7B48 - .asciz "Your adventure will be saved." - .align 2,0 - - .global gUnknown_80E7B68 -gUnknown_80E7B68: @ 80E7B68 - .asciz "Your #CGWonder Mail#R was sent." - .align 2,0 - - .global gUnknown_80E7B88 -gUnknown_80E7B88: @ 80E7B88 - .string "The received #CGWonder Mail#R was\n" - .string "added to the #CGJob List#R.\0" - .align 2,0 - - .global gUnknown_80E7BC8 -gUnknown_80E7BC8: @ 80E7BC8 - .asciz "The #CGWonder Mail#R was refused." - .align 2,0 - - .global gUnknown_80E7BEC -gUnknown_80E7BEC: @ 80E7BEC - .string "Connect a #CGGame Link cable#R.\n" - .string "When you and your friend are ready~2c\n" - .string "you may communicate. \0" - .align 2,0 - - .global gUnknown_80E7C48 -gUnknown_80E7C48: @ 80E7C48 - .string "#+In communication...\n" - .string "#+Please wait with the power on.\n" - .string "#+To cancel~2c press {B_BUTTON}.\0" - .align 2,0 - - .global gUnknown_80E7C98 -gUnknown_80E7C98: @ 80E7C98 - .string "Please enter the\n" - .string "#CGWonder Mail password#R.\0" - .align 2,0 - - .global gUnknown_80E7CC4 -gUnknown_80E7CC4: @ 80E7CC4 - .string "This password is incorrect.\n" - .string "Would you like to enter it again?\0" - .align 2,0 - .string "pksdir0\0" - .4byte Yes_80E7D2C - .byte 0x01, 0x00, 0x00, 0x00 - .4byte Cancel_80E7D24 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global Cancel_80E7D24 - Cancel_80E7D24: - .string "Cancel\0" - .align 2,0 - .global Yes_80E7D2C - Yes_80E7D2C: - .string "Yes\0" - .align 2,0 - .string "pksdir0\0" - .string "pksdir0\0" - diff --git a/data/data_80F4278.s b/data/data_80F4278.s index d2d3fde..d4e0f27 100644 --- a/data/data_80F4278.s +++ b/data/data_80F4278.s @@ -8092,8 +8092,8 @@ gUnknown_8108F50: @ 8108F50 gUnknown_8108F64: @ 8108F64 .incbin "baserom.gba", 0x108F64, 0x800 - .global gUnknown_8109764 -gUnknown_8109764: @ 8109764 + .global gItemParaFileName +gItemParaFileName: @ 8109764 .string "itempara\0" .align 2,0 diff --git a/include/item.h b/include/item.h index 1d81116..6c7b09f 100644 --- a/include/item.h +++ b/include/item.h @@ -342,6 +342,7 @@ enum ItemID { #define NUMBER_OF_GUMMIS 18 #define INVENTORY_SIZE 20 +#define STORAGE_SIZE NUMBER_OF_ITEM_IDS void LoadItemParameters(void); struct TeamInventory *GetMoneyItemsInfo(void); diff --git a/include/mailbox.h b/include/mailbox.h new file mode 100644 index 0000000..2c08a08 --- /dev/null +++ b/include/mailbox.h @@ -0,0 +1,27 @@ +#ifndef GUARD_MAILBOX_H +#define GUARD_MAILBOX_H + +struct unkStruct_203B304 +{ + // size: 0xB6 << 1 + u32 state; + u32 unk4; + u8 unk8; + u8 unk9; + u8 fillA[0xC - 0xA]; + u32 unkC; + u8 fill10[0x50 - 0x10]; + u8 unk50; + u8 fill51[0x64 - 0x51]; + u32 unk64; + u32 unk68; + u32 unk6C; + u8 fill70[0xBC - 0x70]; + struct MenuItem unkBC[8]; + u16 unkFC[8]; + struct UnkTextStruct2 unk10C[4]; +}; + +extern void SetMailboxState(u32); + +#endif // GUARD_MAILBOX_H diff --git a/include/personality_test.h b/include/personality_test.h index d1cc2c6..71d7bf9 100644 --- a/include/personality_test.h +++ b/include/personality_test.h @@ -42,7 +42,7 @@ struct PersonalityStruct_203B400 u32 unkb8; u32 unkbc; }; -extern struct PersonalityStruct_203B400 *gUnknown_203B400; +EWRAM_DATA struct PersonalityStruct_203B400 *gUnknown_203B400; struct PersonalityStruct_203B404 { @@ -62,7 +62,7 @@ struct PersonalityStruct_203B404 /* 0x54 */ struct UnkTextStruct2 unk54[4]; /* 0xB4 */ u8 unkb4[4]; }; -extern struct PersonalityStruct_203B404 *gUnknown_203B404; +EWRAM_DATA struct PersonalityStruct_203B404 *gUnknown_203B404; void InitializeTestStats(void); void GenerateNewQuestionOrGender(void); diff --git a/include/rescue_team_info.h b/include/rescue_team_info.h index 563b781..76976c4 100644 --- a/include/rescue_team_info.h +++ b/include/rescue_team_info.h @@ -22,7 +22,7 @@ struct RescueTeamData void LoadRescueTeamInfo(void); struct RescueTeamData *GetRescueTeamInfo(void); -void InitializeResuceTeamInfo(void); +void InitializeRescueTeamInfo(void); void sub_80920B8(u8 *buffer); void sub_80920D8(u8 *buffer); void SetRescueTeamName(u8 *buffer); diff --git a/include/save.h b/include/save.h index 69109b8..a0c7b66 100644 --- a/include/save.h +++ b/include/save.h @@ -78,6 +78,7 @@ char *sub_8011C4C(void); void sub_8011CA8(u32 *out, s32 size); u32 ReadSaveFromPak(u32 *a); u32 sub_8011F9C(s32 *r0, u8 *dest, s32 size); +u32 sub_8011FA8(void); bool8 IsSaveCorrupted(void); void sub_8012284(void); void sub_8012298(void); diff --git a/include/wonder_mail.h b/include/wonder_mail.h index ae4c701..2879f1f 100644 --- a/include/wonder_mail.h +++ b/include/wonder_mail.h @@ -120,6 +120,13 @@ enum WonderMailMethod { WONDER_MAIL_PASSWORD = 5, }; +enum WonderMailTypes { + WONDER_MAIL_TYPE_SOS = 1, + WONDER_MAIL_TYPE_AOK = 4, + WONDER_MAIL_TYPE_THANK_YOU = 5, + WONDER_MAIL_TYPE_WONDER = 5, +}; + #endif diff --git a/ld_script.txt b/ld_script.txt index 7fb46f6..6aca15d 100755 --- a/ld_script.txt +++ b/ld_script.txt @@ -127,6 +127,13 @@ SECTIONS { asm/wonder_mail_2.o(.text); src/wonder_mail_3.o(.text); asm/wonder_mail_3.o(.text); + src/mailbox.o(.text); + asm/mailbox.o(.text); + src/mailbox_1.o(.text); + src/pelipper_board.o(.text); + asm/pelipper_board.o(.text); + src/pelipper_board_1.o(.text); + asm/wonder_mail_3_mid.o(.text); src/wonder_mail_3_1.o(.text); src/makuhita_dojo.o(.text); asm/makuhita_dojo.o(.text); @@ -316,6 +323,8 @@ SECTIONS { data/data_80E1F30.o(.rodata); src/adventure_log.o(.rodata); data/data_80E2068.o(.rodata); + src/load_screen.o(.rodata); + src/wonder_mail_main_menu.o(.rodata); src/debug_menu.o(.rodata); data/data_80E7D40.o(.rodata); data/pokemon_mail.o(.rodata); diff --git a/src/bg_palette_buffer.c b/src/bg_palette_buffer.c index 9917adf..6a19362 100644 --- a/src/bg_palette_buffer.c +++ b/src/bg_palette_buffer.c @@ -3,8 +3,8 @@ #define BG_PALETTE_BUFFER_SIZE 512 #define BG_PALETTE_BUFFER_CHUNK_SIZE 16 -extern u16 gBGPaletteBuffer[BG_PALETTE_BUFFER_SIZE]; -extern bool8 gBGPaletteUsed[BG_PALETTE_BUFFER_SIZE / BG_PALETTE_BUFFER_CHUNK_SIZE]; +EWRAM_DATA u16 gBGPaletteBuffer[BG_PALETTE_BUFFER_SIZE]; +EWRAM_DATA bool8 gBGPaletteUsed[BG_PALETTE_BUFFER_SIZE / BG_PALETTE_BUFFER_CHUNK_SIZE]; extern void CpuCopy(void* src, void* dest, u32 size); diff --git a/src/code_80958E8.c b/src/code_80958E8.c index f32a41b..7674ed4 100644 --- a/src/code_80958E8.c +++ b/src/code_80958E8.c @@ -94,7 +94,7 @@ bool8 IsValidWonderMail(struct WonderMail *WonderMailData) // Has to equal 5 for Wonder Mail // https://web.archive.org/web/20080913124416/http://www.upokecenter.com/games/dungeon/guides/passwords.html // - if(WonderMailData->mailType != 5) + if(WonderMailData->mailType != WONDER_MAIL_TYPE_WONDER) { return FALSE; } diff --git a/src/friend_area.c b/src/friend_area.c index 329670e..034b783 100644 --- a/src/friend_area.c +++ b/src/friend_area.c @@ -3,8 +3,8 @@ #include "friend_area.h" #include "pokemon.h" -EWRAM_DATA bool8 gBoughtFriendAreas[NUM_FRIEND_AREAS]; -extern bool8 *gFriendAreas; +bool8 gBoughtFriendAreas[NUM_FRIEND_AREAS]; +EWRAM_DATA bool8 *gFriendAreas; extern struct unkStruct_203B45C *gRecruitedPokemonRef; diff --git a/src/input.c b/src/input.c index e13bb7d..d1fca00 100644 --- a/src/input.c +++ b/src/input.c @@ -1,13 +1,13 @@ #include "global.h" #include "input.h" -EWRAM_DATA struct UnusedInputStruct gUnusedInputsRelated; EWRAM_DATA struct Inputs gRealInputs; +EWRAM_DATA struct UnusedInputStruct gUnusedInputsRelated; +EWRAM_DATA u32 gUnusedScrambledInputJunk; EWRAM_DATA struct Inputs gBufferedInputs; EWRAM_DATA struct Inputs gCurrentInputs; EWRAM_DATA struct Inputs gLastInputs; EWRAM_DATA struct InputTimers gInputTimers; -EWRAM_DATA u32 gUnusedScrambledInputJunk; void ReadKeyInput(struct Inputs *r0); diff --git a/src/items.c b/src/items.c index f4f7170..5f6a626 100644 --- a/src/items.c +++ b/src/items.c @@ -12,7 +12,7 @@ extern struct TeamInventory *gTeamInventory_203B460; extern struct TeamInventory gUnknown_20389A8; extern struct FileArchive gSystemFileArchive; extern struct unkStruct_203B45C *gRecruitedPokemonRef; -extern const char gUnknown_8109764; +extern const char gItemParaFileName[]; extern const char gUnknown_8109794[]; extern const char gUnknown_81097A4[]; extern s32 gUnknown_81097B0[]; @@ -52,7 +52,7 @@ bool8 xxx_insert_unk250_8091C1C(u8); void LoadItemParameters(void) { gTeamInventory_203B460 = &gUnknown_20389A8; - gItemParametersFile = OpenFileAndGetFileDataPtr(&gUnknown_8109764,&gSystemFileArchive); + gItemParametersFile = OpenFileAndGetFileDataPtr(gItemParaFileName,&gSystemFileArchive); gItemParametersData = (struct Item *) gItemParametersFile->data; } @@ -70,7 +70,7 @@ void InitializeMoneyItems(void) gTeamInventory_203B460->teamItems[i].itemFlags = 0; } - for(i = 0; i < 0xF0; i++) + for(i = 0; i < STORAGE_SIZE; i++) { gTeamInventory_203B460->teamStorage[i] = 0; } @@ -1169,7 +1169,7 @@ s32 SaveTeamInventory(u8* unk0, u32 size) for (i = 0; i < INVENTORY_SIZE; i++) { SaveItemSlot(&unk, &gTeamInventory_203B460->teamItems[i]); } - for (i = 0; i < NUMBER_OF_ITEM_IDS; i++) { + for (i = 0; i < STORAGE_SIZE; i++) { SaveIntegerBits(&unk, &gTeamInventory_203B460->teamStorage[i], 10); } for (i = 0; i < 8; i++) { @@ -1190,10 +1190,10 @@ s32 RestoreTeamInventory(u8 *unk0, u32 size) s32 i; xxx_init_struct_8094924_restore_809485C(&unk, unk0, size); - for (i = 0; i < 20; i++) { + for (i = 0; i < INVENTORY_SIZE; i++) { RestoreItemSlot(&unk, &gTeamInventory_203B460->teamItems[i]); } - for (i = 0; i < 240; i++) { + for (i = 0; i < STORAGE_SIZE; i++) { RestoreIntegerBits(&unk, &gTeamInventory_203B460->teamStorage[i], 10); } for (i = 0; i < 8; i++) { diff --git a/src/load_screen.c b/src/load_screen.c index c0ff22d..cad8049 100644 --- a/src/load_screen.c +++ b/src/load_screen.c @@ -4,28 +4,25 @@ #include "play_time.h" #include "file_system.h" #include "memory.h" +#include "menu.h" #include "text.h" +#include "pokemon.h" +#include "save.h" extern struct PlayTimeStruct *gPlayTimeRef; extern struct PlayTimeStruct gPlayTime; extern const struct FileArchive gTitleMenuFileArchive; -struct unkStruct_808D33C -{ - u8 fill0[0x4C]; - u8 unk4C; -}; - struct unkStruct_203B484 { u8 fill0[0xC]; - s16 speciesIndex; + /* 0xC */ s16 speciesIndex; u8 fillE[0x50 - 0xE]; - u32 unk50; + /* 0x50 */ u8 helperName[10]; }; -struct unkStruct_203B374 +struct LoadScreen { // size: 0x27c u32 currMenu; @@ -44,65 +41,78 @@ struct unkStruct_203B374 /* 0x258 */ u8 formattedHelperInfo[0x24]; }; -extern struct unkStruct_203B374 *gUnknown_203B374; -extern u32 gUnknown_203B378; -extern u32 gUnknown_203B3B8[]; -extern u32 gUnknown_203B388[]; +EWRAM_DATA struct LoadScreen *gLoadScreen; +EWRAM_DATA struct MenuItem gUnknown_203B378[2]; +EWRAM_DATA u32 gUnknown_203B388[12]; +EWRAM_DATA u32 gUnknown_203B3B8[12]; + extern struct unkStruct_203B484 *gUnknown_203B484; extern struct UnkTextStruct2 gUnknown_80E75F8; extern struct UnkTextStruct2 gUnknown_80E7610; extern struct UnkTextStruct2 gUnknown_80E762C; -extern u32 gUnknown_80E7644; -extern u32 gUnknown_80E7684; -extern u32 gUnknown_80E76B8; -extern u32 gUnknown_80E76E8; -extern u32 gUnknown_80E7730; +extern struct MenuItem gResumeQuicksaveMenuItems[]; +extern struct MenuItem gResumeAdventureMenuItems[]; +extern struct MenuItem gQuitWaitingRescueMenuItems[]; +extern struct MenuItem gDeleteSavePromptMenuItems[]; +extern struct MenuItem gDeleteSaveConfirmMenuItems[]; extern struct UnkTextStruct2 gUnknown_80E7784; -extern u32 gUnknown_80E779C; -extern u8 gUnknown_80E77BC; -extern u8 gUnknown_80E77C4; -extern u8 gUnknown_80E77CC; -extern u8 gUnknown_80E77D8; -extern u8 gUnknown_80E77E4; -extern u8 gUnknown_80E77F0; -extern u8 gUnknown_80E77F8; -extern u8 gUnknown_80E7804; -extern u8 gUnknown_80E7808; -extern u8 gUnknown_80E780C; -extern u8 gUnknown_80E7824; -extern u8 gUnknown_80E7838; -extern u8 gUnknown_80E7848; -extern u8 gUnknown_80E784C; -extern u8 gUnknown_80E7854; -extern const char gUnknown_80E785C[]; // clmkpat + +extern const char No_80E77B4[]; +extern const char Yes_80E77B8[]; + +const struct MenuItem gLoadScreenYesNoMenu[3] = +{ + {Yes_80E77B8, 1}, + {No_80E77B4, 2}, + {NULL, 3}, +}; + +ALIGNED(4) const char No_80E77B4[] = "No"; +ALIGNED(4) const char Yes_80E77B8[] = "Yes"; + +ALIGNED(4) const char gTeamHeadingText[] = "Team:"; +ALIGNED(4) const char gNameHeadingText[] = "Name:"; +ALIGNED(4) const char gLocationHeadingText[] = "Location:"; +ALIGNED(4) const char gPlayTimeHeadingText[] = "Play time:"; +ALIGNED(4) const char gAdventuresHeadingText[] = "Adventures:"; +ALIGNED(4) const char gHelperHeadingText[] = "Helper:"; +ALIGNED(4) const char gNoTeamNamePlaceholder[] = _("????"); +ALIGNED(4) const char gUnknown_80E7804[] = "%s "; +ALIGNED(4) const char gNoNamePlaceholder[] = "???"; +ALIGNED(4) const char gQuicksaveDataDeletedText[] = "Quicksave data deleted."; +ALIGNED(4) const char gLocationUnknownText[] = "Location unknown."; +ALIGNED(4) const char gPlayTimePlaceholder[] = "%d:%02d:%02d "; +ALIGNED(4) const char gNumAdventurePlaceholder[] = "%d"; +ALIGNED(4) const char gHelperInfoPlaceholder[] = "%s (%s)"; +ALIGNED(4) const char gNoHelperText[] = "-----"; +ALIGNED(4) const char gClmkpatFileName[] = "clmkpat"; // clmkpat +ALIGNED(4) const char load_screen_fill[] = "pksdir0"; u8 IsQuickSave(void); void DrawLoadScreenText(void); +void sub_80397B4(void); + extern void sub_8035CF4(u32 *, u32, u32); -extern void SetMenuItems(u32 *, struct UnkTextStruct2 *, u32, struct UnkTextStruct2 *, u32 *, u32, u32, u32); +extern void SetMenuItems(u32 *, struct UnkTextStruct2 *, u32, struct UnkTextStruct2 *, const struct MenuItem *, u32, u32, u32); extern u8 sub_8012FD8(u32 *); extern void sub_8013114(u32 *, u32 *); extern void sub_8095240(u32); -extern void sub_80122A8(void); extern void sub_80920D8(u8 *); -extern struct unkStruct_808D33C *sub_808D33C(void); +extern struct PokemonStruct *sub_808D33C(void); extern u8 sub_80023E4(u32); extern u8 *sub_8098FB4(); -extern void ExpandPlaceholdersBuffer(u8 *buffer, u8 *text, ...); -extern s32 sub_8011C1C(void); +extern void ExpandPlaceholdersBuffer(u8 *buffer, const u8 *text, ...); extern u8 *GetDungeonLocationInfo(void); extern u32 GetNumAdventures(void); -extern void xxx_call_draw_string(u32 x, u32 y, u8 *, u32, u32); +extern void xxx_call_draw_string(u32 x, u32 y, const u8 *, u32, u32); extern void PrintDungeonLocationtoBuffer(u8 *, u8 *); -extern void sub_80922B4(u8 *, u8 *, u32); +extern void sub_80922B4(u8 *, const u8 *, u32); extern s32 sub_8095324(u32); extern u32 sub_8001658(u32, u32); -void sub_80397B4(void); extern void sub_80073E0(u32); -extern s32 sub_8011FA8(void); extern void sub_8008C54(u32); extern void sub_80073B8(u32); @@ -117,38 +127,38 @@ void CreateLoadScreen(u32 currMenu) { int iVar8; - if (gUnknown_203B374 == NULL) { - gUnknown_203B374 = MemoryAlloc(sizeof(struct unkStruct_203B374),8); - MemoryFill8((u8 *)gUnknown_203B374,0,sizeof(struct unkStruct_203B374)); + if (gLoadScreen == NULL) { + gLoadScreen = MemoryAlloc(sizeof(struct LoadScreen),8); + MemoryFill8((u8 *)gLoadScreen,0,sizeof(struct LoadScreen)); } - gUnknown_203B374->currMenu = currMenu; + gLoadScreen->currMenu = currMenu; for(iVar8 = 0; iVar8 < 4; iVar8++){ - gUnknown_203B374->unk144[iVar8] = gUnknown_80E75F8; + gLoadScreen->unk144[iVar8] = gUnknown_80E75F8; } ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B374->unk144,1,1); - SetMenuItems(&gUnknown_203B374->unk4,gUnknown_203B374->unk144,0,&gUnknown_80E7610,&gUnknown_203B378,0,6,0); - switch(gUnknown_203B374->currMenu){ + sub_800641C(gLoadScreen->unk144,1,1); + SetMenuItems(&gLoadScreen->unk4,gLoadScreen->unk144,0,&gUnknown_80E7610,gUnknown_203B378,0,6,0); + switch(gLoadScreen->currMenu){ case MENU_CONTINUE: if (IsQuickSave()) - SetMenuItems(&gUnknown_203B374->unk4,gUnknown_203B374->unk144,1,&gUnknown_80E762C,&gUnknown_80E7644,0,6,0); + SetMenuItems(&gLoadScreen->unk4,gLoadScreen->unk144,1,&gUnknown_80E762C,gResumeQuicksaveMenuItems,0,6,0); else - SetMenuItems(&gUnknown_203B374->unk4,gUnknown_203B374->unk144,1,&gUnknown_80E762C,&gUnknown_80E7684,0,6,0); + SetMenuItems(&gLoadScreen->unk4,gLoadScreen->unk144,1,&gUnknown_80E762C,gResumeAdventureMenuItems,0,6,0); break; case MENU_AWAITING_RESCUE: - SetMenuItems(&gUnknown_203B374->unk4,gUnknown_203B374->unk144,1,&gUnknown_80E762C,&gUnknown_80E76B8,0,6,0); + SetMenuItems(&gLoadScreen->unk4,gLoadScreen->unk144,1,&gUnknown_80E762C,gQuitWaitingRescueMenuItems,0,6,0); break; case MENU_DELETE_SAVE_PROMPT: - SetMenuItems(&gUnknown_203B374->unk4,gUnknown_203B374->unk144,1,&gUnknown_80E762C,&gUnknown_80E76E8,0,6,0); + SetMenuItems(&gLoadScreen->unk4,gLoadScreen->unk144,1,&gUnknown_80E762C,gDeleteSavePromptMenuItems,0,6,0); break; case MENU_DELETE_SAVE_CONFIRM: - SetMenuItems(&gUnknown_203B374->unk4,gUnknown_203B374->unk144,1,&gUnknown_80E762C, &gUnknown_80E7730,0,6,0); + SetMenuItems(&gLoadScreen->unk4,gLoadScreen->unk144,1,&gUnknown_80E762C, gDeleteSaveConfirmMenuItems,0,6,0); break; } - SetMenuItems(&gUnknown_203B374->unk4,gUnknown_203B374->unk144,2,&gUnknown_80E7784,&gUnknown_80E779C,1,2,0); - sub_8035CF4(&gUnknown_203B374->unk4,0,0); - sub_8035CF4(&gUnknown_203B374->unk4,1,0); - sub_8035CF4(&gUnknown_203B374->unk4,2,1); + SetMenuItems(&gLoadScreen->unk4,gLoadScreen->unk144,2,&gUnknown_80E7784,gLoadScreenYesNoMenu,1,2,0); + sub_8035CF4(&gLoadScreen->unk4,0,0); + sub_8035CF4(&gLoadScreen->unk4,1,0); + sub_8035CF4(&gLoadScreen->unk4,2,1); DrawLoadScreenText(); } @@ -156,10 +166,10 @@ void CleanLoadScreen(void) { ResetUnusedInputStruct(); sub_800641C(NULL, 1, 1); - if(gUnknown_203B374 != NULL) + if(gLoadScreen != NULL) { - MemoryFree(gUnknown_203B374); - gUnknown_203B374 = NULL; + MemoryFree(gLoadScreen); + gLoadScreen = NULL; } } @@ -170,9 +180,9 @@ u32 UpdateLoadScreenMenu(void) nextMenu = MENU_NO_SCREEN_CHANGE; menuAction = 4; - sub_8012FD8(&gUnknown_203B374->unk54); - if (sub_8012FD8(&gUnknown_203B374->unkA4) == '\0') { - sub_8013114(&gUnknown_203B374->unkA4,&menuAction); + sub_8012FD8(&gLoadScreen->unk54); + if (sub_8012FD8(&gLoadScreen->unkA4) == '\0') { + sub_8013114(&gLoadScreen->unkA4,&menuAction); } switch(menuAction) @@ -182,7 +192,7 @@ u32 UpdateLoadScreenMenu(void) nextMenu = MENU_MAIN_SCREEN; break; case 1: - switch(gUnknown_203B374->currMenu) + switch(gLoadScreen->currMenu) { case MENU_CONTINUE: nextMenu = 2; // MENU_??? @@ -207,7 +217,11 @@ u32 UpdateLoadScreenMenu(void) return nextMenu; } -#ifdef NONMATCHING +static inline u8 *DrawLoadScreenTextSub(u8 *teamNameBuffer) { + strcpy(teamNameBuffer,gNoTeamNamePlaceholder); + return teamNameBuffer; +} + void DrawLoadScreenText(void) { int iVar2; @@ -220,48 +234,48 @@ void DrawLoadScreenText(void) u32 hours; u32 minutes; u32 seconds; - struct unkStruct_808D33C *playerInfo; + struct PokemonStruct *playerInfo; + struct unkStruct_203B484 *temp2; + u8 *r2; iVar2 = sub_8011FA8(); sub_8008C54(0); sub_80073B8(0); - xxx_call_draw_string(8,0, &gUnknown_80E77BC,0,0); // Team: - xxx_call_draw_string(8,12,&gUnknown_80E77C4,0,0); // Name: - xxx_call_draw_string(8,24,&gUnknown_80E77CC,0,0); // Location: - xxx_call_draw_string(8,36,&gUnknown_80E77D8,0,0); // Play time: - xxx_call_draw_string(8,48,&gUnknown_80E77E4,0,0); // Adventures: - xxx_call_draw_string(8,60,&gUnknown_80E77F0,0,0); // Helper: + xxx_call_draw_string(8,0, gTeamHeadingText,0,0); // Team: + xxx_call_draw_string(8,12,gNameHeadingText,0,0); // Name: + xxx_call_draw_string(8,24,gLocationHeadingText,0,0); // Location: + xxx_call_draw_string(8,36,gPlayTimeHeadingText,0,0); // Play time: + xxx_call_draw_string(8,48,gAdventuresHeadingText,0,0); // Adventures: + xxx_call_draw_string(8,60,gHelperHeadingText,0,0); // Helper: // Draw Team Name if (sub_80023E4(0) != '\0') { sub_80920D8(teamNameBuffer); + r2 = teamNameBuffer; } else { - strcpy(teamNameBuffer,&gUnknown_80E77F8); + // NOTE: static inline was needed here to match -jiang + r2 = DrawLoadScreenTextSub(teamNameBuffer); } - ExpandPlaceholdersBuffer(gUnknown_203B374->formattedTeamName,&gUnknown_80E7804,teamNameBuffer); - xxx_call_draw_string(64,0,gUnknown_203B374->formattedTeamName,0,0); + + ExpandPlaceholdersBuffer(gLoadScreen->formattedTeamName,gUnknown_80E7804,r2); + xxx_call_draw_string(64,0,gLoadScreen->formattedTeamName,0,0); // Draw Player Name playerInfo = sub_808D33C(); - if (playerInfo == NULL) { - sub_80922B4(playerName,&gUnknown_80E7808,10); - } - else { - sub_80922B4(playerName,&playerInfo->unk4C,10); - } - ExpandPlaceholdersBuffer(gUnknown_203B374->formattedPlayerName,&gUnknown_80E7804,playerName); - xxx_call_draw_string(64,12,gUnknown_203B374->formattedPlayerName,0,0); + if (playerInfo == NULL) + sub_80922B4(playerName, gNoNamePlaceholder, POKEMON_NAME_LENGTH); + else + sub_80922B4(playerName, playerInfo->name, POKEMON_NAME_LENGTH); + ExpandPlaceholdersBuffer(gLoadScreen->formattedPlayerName,gUnknown_80E7804,playerName); + xxx_call_draw_string(64,12,gLoadScreen->formattedPlayerName,0,0); // Draw Location Info - // TODO: fix these branches.. correct logic but branching isn't right if ((sub_8095324(1) != 0) || (sub_8095324(7) != 0)) { - if (iVar2 == 0xf1207) { - PrintDungeonLocationtoBuffer(gUnknown_203B374->formattedLocation,GetDungeonLocationInfo()); - } - else { - ExpandPlaceholdersBuffer(gUnknown_203B374->formattedLocation,&gUnknown_80E780C); // Quicksave data deleted - } + if (iVar2 == 0xf1207) + PrintDungeonLocationtoBuffer(gLoadScreen->formattedLocation,GetDungeonLocationInfo()); + else + ExpandPlaceholdersBuffer(gLoadScreen->formattedLocation,gQuicksaveDataDeletedText); // Quicksave data deleted } else { switch(sub_8011C1C()) @@ -270,405 +284,59 @@ void DrawLoadScreenText(void) switch(sub_8001658(0,24)) { default: - ExpandPlaceholdersBuffer(auStack356,&gUnknown_80E7804,sub_8098FB4()); - xxx_format_string(auStack356,gUnknown_203B374->formattedLocation,gUnknown_203B374->formattedPlayTime,0); + ExpandPlaceholdersBuffer(auStack356,gUnknown_80E7804,sub_8098FB4()); + xxx_format_string(auStack356,gLoadScreen->formattedLocation,gLoadScreen->formattedPlayTime,0); break; case 0x7: case 0xB: - ExpandPlaceholdersBuffer(gUnknown_203B374->formattedLocation,&gUnknown_80E780C); // Quicksave data deleted + ExpandPlaceholdersBuffer(gLoadScreen->formattedLocation,gQuicksaveDataDeletedText); // Quicksave data deleted break; } break; case 2: if (iVar2 == 0xf1207) - { - PrintDungeonLocationtoBuffer(gUnknown_203B374->formattedLocation,GetDungeonLocationInfo()); - } else { - ExpandPlaceholdersBuffer(gUnknown_203B374->formattedLocation,&gUnknown_80E780C); // Quicksave data deleted - } + PrintDungeonLocationtoBuffer(gLoadScreen->formattedLocation,GetDungeonLocationInfo()); + else + ExpandPlaceholdersBuffer(gLoadScreen->formattedLocation,gQuicksaveDataDeletedText); // Quicksave data deleted break; default: - ExpandPlaceholdersBuffer(gUnknown_203B374->formattedLocation,&gUnknown_80E7824); // Location unknown + ExpandPlaceholdersBuffer(gLoadScreen->formattedLocation,gLocationUnknownText); // Location unknown break; } } - xxx_call_draw_string(64,24,gUnknown_203B374->formattedLocation,0,0); + xxx_call_draw_string(64,24,gLoadScreen->formattedLocation,0,0); // Draw Play Time DeconstructPlayTime(gPlayTimeRef,&hours,&minutes,&seconds); - ExpandPlaceholdersBuffer(gUnknown_203B374->formattedPlayTime,&gUnknown_80E7838,hours,minutes,seconds); - xxx_call_draw_string(64,36,gUnknown_203B374->formattedPlayTime,0,0); + ExpandPlaceholdersBuffer(gLoadScreen->formattedPlayTime,gPlayTimePlaceholder,hours,minutes,seconds); + xxx_call_draw_string(64,36,gLoadScreen->formattedPlayTime,0,0); // Draw Adventures Info numAdventures = GetNumAdventures(); - ExpandPlaceholdersBuffer(gUnknown_203B374->formattedAdventures,&gUnknown_80E7848,numAdventures); // %d - xxx_call_draw_string(64,48,gUnknown_203B374->formattedAdventures,0,0); + ExpandPlaceholdersBuffer(gLoadScreen->formattedAdventures,gNumAdventurePlaceholder,numAdventures); // %d + xxx_call_draw_string(64,48,gLoadScreen->formattedAdventures,0,0); // Draw Helper Info - if ((iVar2 == 0xf1207) && (gUnknown_203B484->speciesIndex != 0)) { - sub_808D930(speciesHelper,gUnknown_203B484->speciesIndex); - // TODO very hacky match here - sub_80922B4(nameHelper,(u8 *)(&gUnknown_203B484 + 0x14),10); - ExpandPlaceholdersBuffer(gUnknown_203B374->formattedHelperInfo,&gUnknown_80E784C,nameHelper,speciesHelper); // %s (%s) + if (iVar2 == 0xf1207){ + // NOTE: very hacky match here but needed var here to match + temp2 = gUnknown_203B484; + if(temp2->speciesIndex != SPECIES_NONE) { + sub_808D930(speciesHelper,temp2->speciesIndex); + sub_80922B4(nameHelper,temp2->helperName,POKEMON_NAME_LENGTH); + ExpandPlaceholdersBuffer(gLoadScreen->formattedHelperInfo,gHelperInfoPlaceholder,nameHelper,speciesHelper); // %s (%s) + } + else + goto print_helper_placeholder; } else { - ExpandPlaceholdersBuffer(gUnknown_203B374->formattedHelperInfo,&gUnknown_80E7854); // ----- + print_helper_placeholder: + ExpandPlaceholdersBuffer(gLoadScreen->formattedHelperInfo,gNoHelperText); // ----- } - xxx_call_draw_string(64,60,gUnknown_203B374->formattedHelperInfo,0,0); + xxx_call_draw_string(64,60,gLoadScreen->formattedHelperInfo,0,0); sub_80397B4(); // Draw event icons?? sub_80073E0(0); } -#else -NAKED -void DrawLoadScreenText(void) -{ - asm_unified("\tpush {r4-r7,lr}\n" - "\tmov r7, r8\n" - "\tpush {r7}\n" - "\tsub sp, 0x150\n" - "\tbl sub_8011FA8\n" - "\tmov r8, r0\n" - "\tmovs r0, 0\n" - "\tbl sub_8008C54\n" - "\tmovs r0, 0\n" - "\tbl sub_80073B8\n" - "\tldr r2, _0803952C\n" - "\tmovs r4, 0\n" - "\tstr r4, [sp]\n" - "\tmovs r0, 0x8\n" - "\tmovs r1, 0\n" - "\tmovs r3, 0\n" - "\tbl xxx_call_draw_string\n" - "\tldr r2, _08039530\n" - "\tstr r4, [sp]\n" - "\tmovs r0, 0x8\n" - "\tmovs r1, 0xC\n" - "\tmovs r3, 0\n" - "\tbl xxx_call_draw_string\n" - "\tldr r2, _08039534\n" - "\tstr r4, [sp]\n" - "\tmovs r0, 0x8\n" - "\tmovs r1, 0x18\n" - "\tmovs r3, 0\n" - "\tbl xxx_call_draw_string\n" - "\tldr r2, _08039538\n" - "\tstr r4, [sp]\n" - "\tmovs r0, 0x8\n" - "\tmovs r1, 0x24\n" - "\tmovs r3, 0\n" - "\tbl xxx_call_draw_string\n" - "\tldr r2, _0803953C\n" - "\tstr r4, [sp]\n" - "\tmovs r0, 0x8\n" - "\tmovs r1, 0x30\n" - "\tmovs r3, 0\n" - "\tbl xxx_call_draw_string\n" - "\tldr r2, _08039540\n" - "\tstr r4, [sp]\n" - "\tmovs r0, 0x8\n" - "\tmovs r1, 0x3C\n" - "\tmovs r3, 0\n" - "\tbl xxx_call_draw_string\n" - "\tmovs r0, 0\n" - "\tbl sub_80023E4\n" - "\tlsls r0, 24\n" - "\tcmp r0, 0\n" - "\tbeq _08039544\n" - "\tadd r4, sp, 0x68\n" - "\tadds r0, r4, 0\n" - "\tbl sub_80920D8\n" - "\tadds r2, r4, 0\n" - "\tb _0803954E\n" - "\t.align 2, 0\n" -"_0803952C: .4byte gUnknown_80E77BC\n" -"_08039530: .4byte gUnknown_80E77C4\n" -"_08039534: .4byte gUnknown_80E77CC\n" -"_08039538: .4byte gUnknown_80E77D8\n" -"_0803953C: .4byte gUnknown_80E77E4\n" -"_08039540: .4byte gUnknown_80E77F0\n" -"_08039544:\n" - "\tldr r1, _08039588\n" - "\tadd r0, sp, 0x68\n" - "\tbl strcpy\n" - "\tadd r2, sp, 0x68\n" -"_0803954E:\n" - "\tldr r5, _0803958C\n" - "\tldr r0, [r5]\n" - "\tmovs r4, 0xD2\n" - "\tlsls r4, 1\n" - "\tadds r0, r4\n" - "\tldr r1, _08039590\n" - "\tbl ExpandPlaceholdersBuffer\n" - "\tldr r2, [r5]\n" - "\tadds r2, r4\n" - "\tmovs r0, 0\n" - "\tstr r0, [sp]\n" - "\tmovs r0, 0x40\n" - "\tmovs r1, 0\n" - "\tmovs r3, 0\n" - "\tbl xxx_call_draw_string\n" - "\tbl sub_808D33C\n" - "\tcmp r0, 0\n" - "\tbne _08039598\n" - "\tadd r4, sp, 0x90\n" - "\tldr r1, _08039594\n" - "\tadds r0, r4, 0\n" - "\tmovs r2, 0xA\n" - "\tbl sub_80922B4\n" - "\tb _080395A6\n" - "\t.align 2, 0\n" -"_08039588: .4byte gUnknown_80E77F8\n" -"_0803958C: .4byte gUnknown_203B374\n" -"_08039590: .4byte gUnknown_80E7804\n" -"_08039594: .4byte gUnknown_80E7808\n" -"_08039598:\n" - "\tadd r4, sp, 0x90\n" - "\tadds r1, r0, 0\n" - "\tadds r1, 0x4C\n" - "\tadds r0, r4, 0\n" - "\tmovs r2, 0xA\n" - "\tbl sub_80922B4\n" -"_080395A6:\n" - "\tadds r2, r4, 0\n" - "\tldr r5, _080395F0\n" - "\tldr r0, [r5]\n" - "\tmovs r4, 0xE4\n" - "\tlsls r4, 1\n" - "\tadds r0, r4\n" - "\tldr r6, _080395F4\n" - "\tadds r1, r6, 0\n" - "\tbl ExpandPlaceholdersBuffer\n" - "\tldr r2, [r5]\n" - "\tadds r2, r4\n" - "\tmovs r0, 0\n" - "\tstr r0, [sp]\n" - "\tmovs r0, 0x40\n" - "\tmovs r1, 0xC\n" - "\tmovs r3, 0\n" - "\tbl xxx_call_draw_string\n" - "\tmovs r0, 0x1\n" - "\tbl sub_8095324\n" - "\tcmp r0, 0\n" - "\tbne _080395E0\n" - "\tmovs r0, 0x7\n" - "\tbl sub_8095324\n" - "\tcmp r0, 0\n" - "\tbeq _08039606\n" -"_080395E0:\n" - "\tldr r0, _080395F8\n" - "\tcmp r8, r0\n" - "\tbne _080395FC\n" - "\tldr r4, [r5]\n" - "\tmovs r0, 0xF6\n" - "\tlsls r0, 1\n" - "\tadds r4, r0\n" - "\tb _08039676\n" - "\t.align 2, 0\n" -"_080395F0: .4byte gUnknown_203B374\n" -"_080395F4: .4byte gUnknown_80E7804\n" -"_080395F8: .4byte 0x000f1207\n" -"_080395FC:\n" - "\tldr r0, [r5]\n" - "\tmovs r1, 0xF6\n" - "\tlsls r1, 1\n" - "\tadds r0, r1\n" - "\tb _08039690\n" -"_08039606:\n" - "\tbl sub_8011C1C\n" - "\tcmp r0, 0x1\n" - "\tbeq _08039624\n" - "\tcmp r0, 0x2\n" - "\tbeq _08039668\n" - "\tldr r0, [r5]\n" - "\tmovs r2, 0xF6\n" - "\tlsls r2, 1\n" - "\tadds r0, r2\n" - "\tldr r1, _08039620\n" - "\tb _08039692\n" - "\t.align 2, 0\n" -"_08039620: .4byte gUnknown_80E7824\n" -"_08039624:\n" - "\tmovs r0, 0\n" - "\tmovs r1, 0x18\n" - "\tbl sub_8001658\n" - "\tcmp r0, 0x7\n" - "\tbeq _08039658\n" - "\tcmp r0, 0xB\n" - "\tbeq _08039658\n" - "\tbl sub_8098FB4\n" - "\tadds r2, r0, 0\n" - "\tadd r0, sp, 0x4\n" - "\tadds r1, r6, 0\n" - "\tbl ExpandPlaceholdersBuffer\n" - "\tldr r0, [r5]\n" - "\tmovs r3, 0xF6\n" - "\tlsls r3, 1\n" - "\tadds r1, r0, r3\n" - "\tadds r3, 0x24\n" - "\tadds r2, r0, r3\n" - "\tadd r0, sp, 0x4\n" - "\tmovs r3, 0\n" - "\tbl xxx_format_string\n" - "\tb _08039696\n" -"_08039658:\n" - "\tldr r0, _08039664\n" - "\tldr r0, [r0]\n" - "\tmovs r1, 0xF6\n" - "\tlsls r1, 1\n" - "\tadds r0, r1\n" - "\tb _08039690\n" - "\t.align 2, 0\n" -"_08039664: .4byte gUnknown_203B374\n" -"_08039668:\n" - "\tldr r0, _08039684\n" - "\tcmp r8, r0\n" - "\tbne _08039688\n" - "\tldr r4, [r5]\n" - "\tmovs r2, 0xF6\n" - "\tlsls r2, 1\n" - "\tadds r4, r2\n" -"_08039676:\n" - "\tbl GetDungeonLocationInfo\n" - "\tadds r1, r0, 0\n" - "\tadds r0, r4, 0\n" - "\tbl PrintDungeonLocationtoBuffer\n" - "\tb _08039696\n" - "\t.align 2, 0\n" -"_08039684: .4byte 0x000f1207\n" -"_08039688:\n" - "\tldr r0, [r5]\n" - "\tmovs r3, 0xF6\n" - "\tlsls r3, 1\n" - "\tadds r0, r3\n" -"_08039690:\n" - "\tldr r1, _0803974C\n" -"_08039692:\n" - "\tbl ExpandPlaceholdersBuffer\n" -"_08039696:\n" - "\tldr r7, _08039750\n" - "\tldr r2, [r7]\n" - "\tmovs r0, 0xF6\n" - "\tlsls r0, 1\n" - "\tadds r2, r0\n" - "\tmovs r6, 0\n" - "\tstr r6, [sp]\n" - "\tmovs r0, 0x40\n" - "\tmovs r1, 0x18\n" - "\tmovs r3, 0\n" - "\tbl xxx_call_draw_string\n" - "\tldr r0, _08039754\n" - "\tldr r0, [r0]\n" - "\tadd r1, sp, 0x144\n" - "\tadd r2, sp, 0x148\n" - "\tadd r3, sp, 0x14C\n" - "\tbl DeconstructPlayTime\n" - "\tldr r0, [r7]\n" - "\tmovs r5, 0x84\n" - "\tlsls r5, 2\n" - "\tadds r0, r5\n" - "\tldr r1, _08039758\n" - "\tadd r2, sp, 0x144\n" - "\tldr r2, [r2]\n" - "\tadd r3, sp, 0x148\n" - "\tldr r3, [r3]\n" - "\tadd r4, sp, 0x14C\n" - "\tldr r4, [r4]\n" - "\tstr r4, [sp]\n" - "\tbl ExpandPlaceholdersBuffer\n" - "\tldr r2, [r7]\n" - "\tadds r2, r5\n" - "\tstr r6, [sp]\n" - "\tmovs r0, 0x40\n" - "\tmovs r1, 0x24\n" - "\tmovs r3, 0\n" - "\tbl xxx_call_draw_string\n" - "\tbl GetNumAdventures\n" - "\tadds r2, r0, 0\n" - "\tldr r0, [r7]\n" - "\tmovs r4, 0x8D\n" - "\tlsls r4, 2\n" - "\tadds r0, r4\n" - "\tldr r1, _0803975C\n" - "\tbl ExpandPlaceholdersBuffer\n" - "\tldr r2, [r7]\n" - "\tadds r2, r4\n" - "\tstr r6, [sp]\n" - "\tmovs r0, 0x40\n" - "\tmovs r1, 0x30\n" - "\tmovs r3, 0\n" - "\tbl xxx_call_draw_string\n" - "\tldr r0, _08039760\n" - "\tcmp r8, r0\n" - "\tbne _0803976C\n" - "\tldr r0, _08039764\n" - "\tldr r6, [r0]\n" - "\tmovs r1, 0xC\n" - "\tldrsh r0, [r6, r1]\n" - "\tcmp r0, 0\n" - "\tbeq _0803976C\n" - "\tadd r5, sp, 0x130\n" - "\tadds r1, r0, 0\n" - "\tadds r0, r5, 0\n" - "\tbl sub_808D930\n" - "\tadd r4, sp, 0xE0\n" - "\tadds r1, r6, 0\n" - "\tadds r1, 0x50\n" - "\tadds r0, r4, 0\n" - "\tmovs r2, 0xA\n" - "\tbl sub_80922B4\n" - "\tldr r0, [r7]\n" - "\tmovs r3, 0x96\n" - "\tlsls r3, 2\n" - "\tadds r0, r3\n" - "\tldr r1, _08039768\n" - "\tadds r2, r4, 0\n" - "\tadds r3, r5, 0\n" - "\tbl ExpandPlaceholdersBuffer\n" - "\tb _0803977C\n" - "\t.align 2, 0\n" -"_0803974C: .4byte gUnknown_80E780C\n" -"_08039750: .4byte gUnknown_203B374\n" -"_08039754: .4byte gPlayTimeRef\n" -"_08039758: .4byte gUnknown_80E7838\n" -"_0803975C: .4byte gUnknown_80E7848\n" -"_08039760: .4byte 0x000f1207\n" -"_08039764: .4byte gUnknown_203B484\n" -"_08039768: .4byte gUnknown_80E784C\n" -"_0803976C:\n" - "\tldr r0, _080397AC\n" - "\tldr r0, [r0]\n" - "\tmovs r1, 0x96\n" - "\tlsls r1, 2\n" - "\tadds r0, r1\n" - "\tldr r1, _080397B0\n" - "\tbl ExpandPlaceholdersBuffer\n" -"_0803977C:\n" - "\tldr r0, _080397AC\n" - "\tldr r2, [r0]\n" - "\tmovs r3, 0x96\n" - "\tlsls r3, 2\n" - "\tadds r2, r3\n" - "\tmovs r0, 0\n" - "\tstr r0, [sp]\n" - "\tmovs r0, 0x40\n" - "\tmovs r1, 0x3C\n" - "\tmovs r3, 0\n" - "\tbl xxx_call_draw_string\n" - "\tbl sub_80397B4\n" - "\tmovs r0, 0\n" - "\tbl sub_80073E0\n" - "\tadd sp, 0x150\n" - "\tpop {r3}\n" - "\tmov r8, r3\n" - "\tpop {r4-r7}\n" - "\tpop {r0}\n" - "\tbx r0\n" - "\t.align 2, 0\n" -"_080397AC: .4byte gUnknown_203B374\n" -"_080397B0: .4byte gUnknown_80E7854"); -} -#endif // Think structure of clmkFile is like Team Rank Badges except each pic has a diff pallete // TODO clean up but it matches so yea @@ -679,7 +347,7 @@ void sub_80397B4(void) int iVar4; s32 other_arg; - clmkFile = OpenFileAndGetFileDataPtr(gUnknown_80E785C,&gTitleMenuFileArchive); // clmkpat + clmkFile = OpenFileAndGetFileDataPtr(gClmkpatFileName,&gTitleMenuFileArchive); // clmkpat for(iVar3 = 0; iVar3 < 64; iVar3++) { @@ -688,6 +356,8 @@ void sub_80397B4(void) iVar4 = 8; other_arg = 0x49; + + // Draw the 12 legendary icons for(iVar3 = 0; iVar3 < 12; iVar3++) { if (sub_80023E4(gUnknown_203B3B8[iVar3]) != 0) { diff --git a/src/mailbox.c b/src/mailbox.c new file mode 100644 index 0000000..d7301db --- /dev/null +++ b/src/mailbox.c @@ -0,0 +1,186 @@ +#include "global.h" +#include "memory.h" +#include "text.h" +#include "menu.h" +#include "input.h" +#include "mailbox.h" + + +extern void sub_802E4B0(void); +extern void nullsub_133(void); +extern void sub_802E578(void); +extern void sub_802E60C(void); +extern void sub_802E73C(void); +extern void sub_802E758(void); +extern void sub_802E774(void); +extern void sub_802E7D0(void); + + +extern void sub_802E0A0(void); +extern void sub_802E1AC(void); + +extern struct UnkTextStruct2 gUnknown_80E0284; +extern struct UnkTextStruct2 gUnknown_80E029C; +extern struct UnkTextStruct2 gUnknown_80E02B4; +extern struct UnkTextStruct2 gUnknown_80E02CC; + + +extern struct unkStruct_203B304 *gUnknown_203B304; +extern void sub_802E088(u32); +extern void sub_8012CAC(struct UnkTextStruct2 *, struct MenuItem *); +extern void CreateMailboxMenu(void); +extern void CreateMailActionMenu(void); + +extern void sub_8012D60(u32 *, struct MenuItem *, u32, u16 *, u32, u32); +extern void sub_802BD14(u32, u32, u32); +extern void sub_802BE94(u32); +extern void CreateMailMenu(void); +extern void CreateMailAcceptedStatusBox(u32); +extern u32 sub_8095FE8(u32); +extern void sub_803B35C(u32, u32 *); +extern void sub_802DE84(u32 *); +extern void sub_802C860(u32); +extern void sub_802B640(u32, u32, u32); +extern void sub_802B7D0(u32); +extern void sub_802B9FC(u8); + +u32 sub_802DFB0(void) +{ + gUnknown_203B304 = MemoryAlloc(sizeof(struct unkStruct_203B304), 8); + gUnknown_203B304->unk64 = 0; + gUnknown_203B304->unk68 = 0; + SetMailboxState(0); + return 1; +} + +u32 sub_802DFD8(void) +{ + switch(gUnknown_203B304->state) + { + case 0: + SetMailboxState(1); + break; + case 1: + sub_802E4B0(); + break; + case 2: + nullsub_133(); + break; + case 4: + case 5: + sub_802E578(); + break; + case 6: + sub_802E60C(); + break; + case 7: + sub_802E73C(); + break; + case 8: + sub_802E758(); + break; + case 9: + case 0xA: + sub_802E774(); + break; + case 0xB: + sub_802E7D0(); + break; + case 3: + default: + return 3; + } + return 0; +} + +void sub_802E06C(void) +{ + if(gUnknown_203B304 != NULL) + { + MemoryFree(gUnknown_203B304); + gUnknown_203B304 = NULL; + } +} + +void SetMailboxState(u32 newState) +{ + gUnknown_203B304->state = newState; + sub_802E0A0(); + sub_802E1AC(); +} + +void sub_802E0A0(void) +{ + s32 iVar1; + sub_8006518(gUnknown_203B304->unk10C); + switch(gUnknown_203B304->state) + { + case 1: + for(iVar1 = 0; iVar1 < 4; iVar1++) + { + gUnknown_203B304->unk10C[iVar1] = gUnknown_80E0284; + } + CreateMailboxMenu(); + gUnknown_203B304->unk10C[2] = gUnknown_80E029C; + sub_8012CAC(&gUnknown_203B304->unk10C[2], gUnknown_203B304->unkBC); + break; + case 6: + CreateMailActionMenu(); + gUnknown_203B304->unk10C[2] = gUnknown_80E02B4; + sub_8012CAC(&gUnknown_203B304->unk10C[2], gUnknown_203B304->unkBC); + gUnknown_203B304->unk10C[2].unk0c = 6; + gUnknown_203B304->unk10C[3] = gUnknown_80E02CC; + break; + default: + for(iVar1 = 0; iVar1 < 4; iVar1++) + { + gUnknown_203B304->unk10C[iVar1] = gUnknown_80E0284; + } + break; + } + ResetUnusedInputStruct(); + sub_800641C(gUnknown_203B304->unk10C, 1, 1); +} + +void sub_802E1AC(void) +{ + switch(gUnknown_203B304->state) + { + case 1: + sub_8012D60(&gUnknown_203B304->unk6C, gUnknown_203B304->unkBC, 0, gUnknown_203B304->unkFC, gUnknown_203B304->unk64, 2); + break; + case 4: + sub_802BD14(0, 0, 4); + break; + case 5: + sub_802BE94(1); + break; + case 6: + CreateMailMenu(); + CreateMailAcceptedStatusBox(3); + sub_8012D60(&gUnknown_203B304->unk6C, gUnknown_203B304->unkBC, 0, 0, gUnknown_203B304->unk68, 2); + break; + case 7: + sub_803B35C(sub_8095FE8(gUnknown_203B304->unk8), &gUnknown_203B304->unkC); + gUnknown_203B304->unkC = 3; + gUnknown_203B304->unk50 = 0; + sub_802DE84(&gUnknown_203B304->unkC); + break; + case 8: + sub_802C860(0); + break; + case 9: + sub_802B640(0, 0, 8); + break; + case 0xA: + sub_802B7D0(1); + break; + case 0xB: + sub_802B9FC(gUnknown_203B304->unk9); + break; + case 0: + case 2: + case 3: + break; + } +} diff --git a/src/mailbox_1.c b/src/mailbox_1.c new file mode 100644 index 0000000..ee212ae --- /dev/null +++ b/src/mailbox_1.c @@ -0,0 +1,104 @@ +#include "global.h" +#include "memory.h" +#include "text.h" +#include "menu.h" +#include "input.h" +#include "mailbox.h" + +extern u8 gMailAccepted[]; +extern u8 gUnknown_80E0324[]; +extern void xxx_call_draw_string(s32 x, u32 y, u8 *, u32 , u32); +extern void sub_8012BC4(u32 x, u32 y, u32, u32, u32, u32); +extern u32 sub_80969AC(void); +extern void sub_8008C54(u32); +extern void sub_80073B8(u32); +extern void sub_80073E0(u32); +extern u32 sub_802BA8C(void); +extern void sub_802BACC(void); +extern u8 sub_802B7A8(void); +extern void sub_802B81C(void); +extern u32 sub_802B720(u32); +extern u32 sub_802C898(void); +extern void sub_802C8F4(void); +extern u32 sub_802DEE0(void); +extern void sub_802DF24(void); + +extern struct unkStruct_203B304 *gUnknown_203B304; + + +void sub_802E73C(void) +{ + switch(sub_802DEE0()) + { + case 2: + case 3: + sub_802DF24(); + SetMailboxState(5); + case 0: + case 1: + break; + } +} + +void sub_802E758(void) +{ + switch(sub_802C898()) + { + case 2: + case 3: + sub_802C8F4(); + SetMailboxState(1); + case 0: + case 1: + break; + } +} + +void sub_802E774(void) +{ + switch(sub_802B720(1)) + { + case 0: + case 1: + break; + case 3: + case 4: + gUnknown_203B304->unk9 = sub_802B7A8(); + gUnknown_203B304->unk4 = 0xA; + SetMailboxState(0xB); + break; + case 2: + sub_802B81C(); + SetMailboxState(0x1); + break; + } +} + +void sub_802E7D0(void) +{ + switch(sub_802BA8C()) + { + case 2: + case 3: + sub_802BACC(); + SetMailboxState(gUnknown_203B304->unk4); + case 0: + case 1: + break; + } +} + +void nullsub_133(void) +{ +} + +void CreateMailAcceptedStatusBox(u32 r0) +{ + sub_8008C54(r0); + sub_80073B8(r0); + xxx_call_draw_string(3, 0, gMailAccepted, r0, 0); + sub_8012BC4(0x12, 0xD, sub_80969AC(), 2, 7, r0); + xxx_call_draw_string(0x16, 0xD, gUnknown_80E0324, r0, 0); + sub_8012BC4(0x23, 0xD, 0x8, 0x2, 7, r0); + sub_80073E0(r0); +} diff --git a/src/pelipper_board.c b/src/pelipper_board.c new file mode 100644 index 0000000..41bb023 --- /dev/null +++ b/src/pelipper_board.c @@ -0,0 +1,184 @@ +#include "global.h" +#include "memory.h" +#include "text.h" +#include "menu.h" +#include "input.h" + +// Guessing based off of 203B304 +struct unkStruct_203B308 +{ + // size: 0xB6 << 1 + u32 state; + u32 unk4; + u8 unk8; + u8 fill9[0xC - 9]; + u32 unkC; + u8 fill10[0x50 - 0x10]; + u8 unk50; + u8 fill51[0x64 - 0x51]; + u32 unk64; + u32 unk68; + u32 unk6C; + u8 fill70[0xBC - 0x70]; + struct MenuItem unkBC[8]; + u16 unkFC[8]; + struct UnkTextStruct2 unk10C[4]; +}; +extern struct unkStruct_203B308 *gUnknown_203B308; +extern void SetPelipperBoardState(u32); +extern struct UnkTextStruct2 gUnknown_80E0330; +extern struct UnkTextStruct2 gUnknown_80E0348; +extern struct UnkTextStruct2 gUnknown_80E0360; +extern struct UnkTextStruct2 gUnknown_80E0378; +extern void sub_8012CAC(struct UnkTextStruct2 *, struct MenuItem *); +extern void sub_802ECB4(void); +extern void nullsub_134(void); +extern void sub_802ED4C(void); +extern void sub_802EDBC(void); +extern void sub_802EEA0(void); +extern void sub_802EEBC(void); +extern void sub_802E94C(void); +extern void sub_802EA58(void); +extern void CreatePelipperBoardMenu(void); +extern void sub_802EC10(void); + +extern void sub_8012D60(u32 *, struct MenuItem *, u32, u16 *, u32, u32); +extern void sub_802C10C(u32, u32, u32); +extern void sub_802C28C(u32); +extern void sub_802C39C(void); +extern void CreatePelipperAcceptedStatusBox(u32); +extern u32 sub_8096574(u32); +extern void sub_803B35C(u32, u32 *); +extern void sub_802DE84(u32 *); +extern void sub_802C860(u32); + +u32 sub_802E864(void) +{ + gUnknown_203B308 = MemoryAlloc(sizeof(struct unkStruct_203B308), 8); + gUnknown_203B308->unk64 = 0; + gUnknown_203B308->unk68 = 0; + gUnknown_203B308->unk4 = 0; + SetPelipperBoardState(0); + return 1; +} + +u32 sub_802E890(void) +{ + switch(gUnknown_203B308->state) + { + case 0: + SetPelipperBoardState(1); + break; + case 1: + sub_802ECB4(); + break; + case 2: + nullsub_134(); + break; + case 4: + case 5: + sub_802ED4C(); + break; + case 6: + sub_802EDBC(); + break; + case 7: + sub_802EEA0(); + break; + case 8: + sub_802EEBC(); + break; + case 3: + default: + return 3; + } + return 0; +} + +u32 sub_802E90C(void) +{ + return gUnknown_203B308->unk4; +} + +void sub_802E918(void) +{ + if(gUnknown_203B308 != NULL) + { + MemoryFree(gUnknown_203B308); + gUnknown_203B308 = NULL; + } +} + +void SetPelipperBoardState(u32 newState) +{ + gUnknown_203B308->state = newState; + sub_802E94C(); + sub_802EA58(); +} + +void sub_802E94C(void) +{ + s32 iVar1; + sub_8006518(gUnknown_203B308->unk10C); + switch(gUnknown_203B308->state) + { + case 1: + for(iVar1 = 0; iVar1 < 4; iVar1++) + { + gUnknown_203B308->unk10C[iVar1] = gUnknown_80E0330; + } + CreatePelipperBoardMenu(); + gUnknown_203B308->unk10C[2] = gUnknown_80E0348; + sub_8012CAC(&gUnknown_203B308->unk10C[2], gUnknown_203B308->unkBC); + break; + case 6: + sub_802EC10(); + gUnknown_203B308->unk10C[2] = gUnknown_80E0360; + sub_8012CAC(&gUnknown_203B308->unk10C[2], gUnknown_203B308->unkBC); + gUnknown_203B308->unk10C[2].unk0c = 6; + gUnknown_203B308->unk10C[3] = gUnknown_80E0378; + break; + default: + for(iVar1 = 0; iVar1 < 4; iVar1++) + { + gUnknown_203B308->unk10C[iVar1] = gUnknown_80E0330; + } + break; + } + ResetUnusedInputStruct(); + sub_800641C(gUnknown_203B308->unk10C, 1, 1); +} + +void sub_802EA58(void) +{ + switch(gUnknown_203B308->state) + { + case 1: + sub_8012D60(&gUnknown_203B308->unk6C, gUnknown_203B308->unkBC, 0, gUnknown_203B308->unkFC, gUnknown_203B308->unk64, 2); + break; + case 4: + sub_802C10C(0, 0, 4); + break; + case 5: + sub_802C28C(1); + break; + case 6: + sub_802C39C(); + CreatePelipperAcceptedStatusBox(3); + sub_8012D60(&gUnknown_203B308->unk6C, gUnknown_203B308->unkBC, 0, 0, gUnknown_203B308->unk68, 2); + break; + case 7: + sub_803B35C(sub_8096574(gUnknown_203B308->unk8), &gUnknown_203B308->unkC); + gUnknown_203B308->unkC = 3; + gUnknown_203B308->unk50 = 0; + sub_802DE84(&gUnknown_203B308->unkC); + break; + case 8: + sub_802C860(0); + break; + case 0: + case 2: + case 3: + break; + } +} diff --git a/src/pelipper_board_1.c b/src/pelipper_board_1.c new file mode 100644 index 0000000..b8fabd0 --- /dev/null +++ b/src/pelipper_board_1.c @@ -0,0 +1,60 @@ +#include "global.h" + +extern u8 gUnknown_80E03AC[]; +extern u8 gUnknown_80E03B8[]; +extern void xxx_call_draw_string(s32 x, u32 y, u8 *, u32 , u32); +extern void sub_8012BC4(u32 x, u32 y, u32, u32, u32, u32); +extern u32 sub_80969AC(void); +extern void sub_8008C54(u32); +extern void sub_80073B8(u32); +extern void sub_80073E0(u32); +extern u32 sub_802C898(void); +extern void sub_802C8F4(void); +extern void SetPelipperBoardState(u32); +extern u32 sub_802DEE0(void); +extern void sub_802DF24(void); + + +void sub_802EEA0(void) +{ + switch(sub_802DEE0()) + { + case 2: + case 3: + sub_802DF24(); + SetPelipperBoardState(5); + case 0: + case 1: + break; + } +} + +void sub_802EEBC(void) +{ + switch(sub_802C898()) + { + case 2: + case 3: + sub_802C8F4(); + SetPelipperBoardState(1); + case 0: + case 1: + break; + } +} + + +void nullsub_134(void) +{ +} + +void CreatePelipperAcceptedStatusBox(u32 r0) +{ + sub_8008C54(r0); + sub_80073B8(r0); + xxx_call_draw_string(3, 0, gUnknown_80E03AC, r0, 0); + sub_8012BC4(0x12, 0xD, sub_80969AC(), 2, 7, r0); + xxx_call_draw_string(0x16, 0xD, gUnknown_80E03B8, r0, 0); + sub_8012BC4(0x23, 0xD, 0x8, 0x2, 7, r0); + sub_80073E0(r0); +} diff --git a/src/pokemon_mid.c b/src/pokemon_mid.c index 0af12d0..2c875ef 100644 --- a/src/pokemon_mid.c +++ b/src/pokemon_mid.c @@ -198,7 +198,7 @@ bool8 IsPokemonRenamed(struct PokemonStruct* pokemon) { char* species = GetMonSpecies(pokemon->speciesNum); s32 i; CopyStringtoBuffer(species_name, species); - for (i = 0; i < 10; i++) { + for (i = 0; i < POKEMON_NAME_LENGTH; i++) { if (pokemon->name[i] != species_name[i]) { return FALSE; } @@ -216,7 +216,7 @@ bool8 ComparePokemonNames(s16 a1, s16 a2) { u8* name2 = gRecruitedPokemonRef->pokemon[index2].name; s32 i; - for (i = 0; i < 10; i++) { + for (i = 0; i < POKEMON_NAME_LENGTH; i++) { s32 c1 = ReturnIntFromChar(*name1); s32 c2 = ReturnIntFromChar(*name2); if (c1 > c2) { @@ -544,7 +544,7 @@ void xxx_pokemonstruct_to_pokemon2_808DE50(struct PokemonStruct2 * a1, struct Po a1->unk18 = pokemon->unk1C; sub_8093F50(&a1->unk1C, &pokemon->unk2C); - for (i = 0; i < 10; i++) { + for (i = 0; i < POKEMON_NAME_LENGTH; i++) { a1->name[i] = pokemon->name[i]; } @@ -595,7 +595,7 @@ void xxx_pokemon2_to_pokemonstruct_808DF44(struct PokemonStruct* pokemon, struct pokemon->unk1C = a2->unk18; sub_8093FA8(pokemon->unk2C, a2->unk1C); - for (i = 0; i < 10; i++) { + for (i = 0; i < POKEMON_NAME_LENGTH; i++) { pokemon->name[i] = a2->name[i]; } diff --git a/src/post_office_guide.c b/src/post_office_guide.c index 063d0fa..9c96472 100644 --- a/src/post_office_guide.c +++ b/src/post_office_guide.c @@ -20,7 +20,7 @@ struct PostOfficeHelper u8 unk16; }; -extern struct PostOfficeHelper *gPostOfficeHelper; +EWRAM_DATA struct PostOfficeHelper *gPostOfficeHelper; struct unkStruct_203B330 @@ -35,7 +35,7 @@ struct unkStruct_203B330 struct UnkTextStruct2 *unk14; struct UnkTextStruct2 unk18[4]; }; -extern struct unkStruct_203B330 *gUnknown_203B330; +EWRAM_DATA struct unkStruct_203B330 *gUnknown_203B330; extern const char DeletingMailInfo_Text[]; diff --git a/src/rescue_team_info.c b/src/rescue_team_info.c index ccae32c..9de46ad 100644 --- a/src/rescue_team_info.c +++ b/src/rescue_team_info.c @@ -42,7 +42,7 @@ struct RescueTeamData *GetRescueTeamInfo(void) return &gRescueTeamInfo; } -void InitializeResuceTeamInfo(void) +void InitializeRescueTeamInfo(void) { BoundedCopyStringtoBuffer(gRescueTeamInfoRef->teamName, gTeamNamePlaceholder, TEAM_NAME_LENGTH); gRescueTeamInfoRef->teamRankPts = 0; @@ -8,6 +8,11 @@ #include "save.h" #include "exclusive_pokemon.h" + +EWRAM_DATA u32 gUnknown_203B17C; +EWRAM_DATA char *gUnknown_203B180; +EWRAM_DATA struct UnkStruct_203B184 *gUnknown_203B184; + struct unk_struct { // size: 0x800 @@ -26,7 +31,7 @@ struct SavePakRead u32 readStatus; }; -extern struct SavePakRead *gSavePakRead; +EWRAM_DATA struct SavePakRead *gSavePakRead; struct SavePakWrite { @@ -44,7 +49,7 @@ struct SavePakWrite u16 pokeID; }; -extern struct SavePakWrite *gSavePakWrite; +EWRAM_DATA struct SavePakWrite *gSavePakWrite; struct QuickSaveRead { @@ -53,7 +58,7 @@ struct QuickSaveRead u32 size; bool8 saveValid; }; -extern struct QuickSaveRead *gQuickSaveRead; +EWRAM_DATA struct QuickSaveRead *gQuickSaveRead; struct QuickSaveWrite { @@ -63,12 +68,10 @@ struct QuickSaveWrite u8 unkC; u32 quickSaveStatus; }; -extern struct QuickSaveWrite *gQuickSaveWrite; +EWRAM_DATA struct QuickSaveWrite *gQuickSaveWrite; extern s32 gUnknown_202DE28; -extern u32 gUnknown_203B17C; -extern char *gUnknown_203B180; extern struct unkStruct_203B45C *gRecruitedPokemonRef; extern struct TeamInventory *gTeamInventory_203B460; extern struct RescueTeamData *gRescueTeamInfoRef; @@ -141,7 +144,6 @@ ALIGNED(4) const char gSaveNotWritten2[] = _("{CENTER_ALIGN}The data could not b ALIGNED(4) const char gSaveFailed2[] = _("{CENTER_ALIGN}Save failed."); ALIGNED(4) const char fill_save7[] = _("pksdir0"); -extern volatile struct UnkStruct_203B184 *gUnknown_203B184; extern bool8 sub_800DAB0(u16, u8*, s32); extern bool8 sub_800DAB4(u16, u8*, s32); @@ -601,7 +603,7 @@ void InitializePlayerData(void) InitializeFriendAreas(); InitializeRecruitedPokemon(); InitializeMoneyItems(); - InitializeResuceTeamInfo(); + InitializeRescueTeamInfo(); sub_80972F4(); sub_8095118(); sub_8095900(); diff --git a/src/wonder_mail_2.c b/src/wonder_mail_2.c index cca9794..285c0d0 100644 --- a/src/wonder_mail_2.c +++ b/src/wonder_mail_2.c @@ -72,7 +72,7 @@ extern void sub_802B8D4(void); extern void sub_8013818(void *, u32, u32, u32); extern void sub_8012D08(struct UnkTextStruct2 *, s32); extern void sub_8013984(u32 *); -extern u8 sub_802B9D8(void); +extern u8 HasNoPKMNNews(void); extern u16 gUnknown_203B2D0; extern u16 gUnknown_203B2D2; @@ -330,10 +330,11 @@ void sub_802B624(void) } } +// Start of some Pokemon News related stuff u32 sub_802B640(u32 r0, struct UnkTextStruct2_sub *r1, u32 r2) { - if(sub_802B9D8()) + if(HasNoPKMNNews()) { return 0; } diff --git a/src/wonder_mail_main_menu.c b/src/wonder_mail_main_menu.c index 87166b9..84c0d25 100644 --- a/src/wonder_mail_main_menu.c +++ b/src/wonder_mail_main_menu.c @@ -5,7 +5,9 @@ #include "input.h" #include "sub_8095228.h" #include "wonder_mail.h" +#include "menu.h" +#define SELECT_WONDER_MAIL_MODE_MAIN_SCREEN 0 #define SEND_WONDER_MAIL_MAIN_SCREEN 1 #define SEND_GAME_LINK_CABLE 2 #define RECEIVE_WONDER_MAIL_MAIN_SCREEN 4 @@ -22,6 +24,120 @@ #define PASSWORD_INVALID 19 #define PASSWORD_ENTRY_SCREEN 18 +extern const char Cancel_80E7D24[]; +extern const char Cancel_80E78B4[]; +extern const char Yes_80E7D2C[]; +extern const char Yes_80E7910[]; +extern const char GameLinkCable_80E78C8[]; +extern const char Password_80E78BC[]; + +extern const char Receive_80E7884[]; +extern const char Send_80E788C[]; + +const struct MenuItem gSelectWonderMailModeMainMenuItems[3] = +{ + {Send_80E788C, WONDER_MAIL_MODE_SEND}, + {Receive_80E7884, WONDER_MAIL_MODE_RECEIVE}, + {NULL, 0} +}; + +ALIGNED(4) const char Receive_80E7884[] = "Receive"; +ALIGNED(4) const char Send_80E788C[] = "Send"; + + +const struct MenuItem gSendWonderMailMainMenuItems[4] = +{ + {GameLinkCable_80E78C8, WONDER_MAIL_GAME_LINK}, + {Password_80E78BC, -1}, + {Cancel_80E78B4, 8}, + {NULL, 0} + +}; + +ALIGNED(4) const char Cancel_80E78B4[] = "Cancel"; +ALIGNED(4) const char Password_80E78BC[] = "Password"; +ALIGNED(4) const char GameLinkCable_80E78C8[] = "Game Link cable"; + +const struct MenuItem gReceiveWonderMailMainMenuItems[4] = +{ + {GameLinkCable_80E78C8, WONDER_MAIL_GAME_LINK}, + {Password_80E78BC, WONDER_MAIL_PASSWORD}, + {Cancel_80E78B4, 8}, + {NULL, 0} +}; + +const struct MenuItem gUnknown_80E78F8[3] = +{ + {Yes_80E7910, 6}, + {Cancel_80E78B4, 0}, + {NULL, 0} +}; + +ALIGNED(4) const char Yes_80E7910[] = "Yes"; + +ALIGNED(4) const char gUnknown_80E7914[] = "There was a communication error."; + +ALIGNED(4) const char gUnknown_80E7938[] = "An incorrect number of GBA systems are\n" + "connected.\n" + "Please redo this process from the start."; + +ALIGNED(4) const char gUnknown_80E7994[] = "There is no response from your friend.\n" + "Please redo this process from the start."; + +ALIGNED(4) const char gUnknown_80E79E4[] = "The sender and receiver appear to be\n" + "in different modes.\n" + "Please redo the process from the start."; + +ALIGNED(4) const char gUnknown_80E7A48[] = "There is no response from your friend.\n" + "Please make sure the sender and receiver\n" + "are ready~2c then redo this from the start."; + +ALIGNED(4) const char gUnknown_80E7AC4[] = "What would you like to do?"; + +ALIGNED(4) const char gUnknown_80E7AE0[] = "How would you like to send your\n" + "#CGWonder Mail#R?"; + +ALIGNED(4) const char gUnknown_80E7B14[] = "How would you like to receive the\n" + "#CGWonder Mail#R?"; + +ALIGNED(4) const char gUnknown_80E7B48[] = "Your adventure will be saved."; + +ALIGNED(4) const char gUnknown_80E7B68[] = "Your #CGWonder Mail#R was sent."; + +ALIGNED(4) const char gUnknown_80E7B88[] = "The received #CGWonder Mail#R was\n" + "added to the #CGJob List#R."; + +ALIGNED(4) const char gUnknown_80E7BC8[] = "The #CGWonder Mail#R was refused."; + +ALIGNED(4) const char gUnknown_80E7BEC[] = _("Connect a #CGGame Link cable#R.\n" + "When you and your friend are ready~2c\n" + "you may communicate. "); + +ALIGNED(4) const char gUnknown_80E7C48[] = _("#+In communication...\n" + "#+Please wait with the power on.\n" + "#+To cancel~2c press {B_BUTTON}."); + +ALIGNED(4) const char gUnknown_80E7C98[] = "Please enter the\n" + "#CGWonder Mail password#R."; + +ALIGNED(4) const char gUnknown_80E7CC4[] = "This password is incorrect.\n" + "Would you like to enter it again?"; + +ALIGNED(4) const char wonder_mail_main_fill0[] = "pksdir0"; + +const struct MenuItem WonderMailMainUnused[3] = +{ + {Yes_80E7D2C, 1}, + {Cancel_80E7D24, 0}, + {NULL, 0}, +}; + +ALIGNED(4) const char Cancel_80E7D24[] = "Cancel"; +ALIGNED(4) const char Yes_80E7D2C[] = "Yes"; + +ALIGNED(4) const char wonder_mail_main_fill1[] = "pksdir0"; +ALIGNED(4) const char wonder_mail_main_fill2[] = "pksdir0"; + struct unkStruct_803B344 { @@ -64,10 +180,11 @@ struct unkStruct_203B3E8 u8 unk498; }; +EWRAM_DATA struct unkStruct_203B3E8 *gUnknown_203B3E8; + extern u32 sub_8095324(u32); extern u32 sub_80144A4(s32 *); extern u32 sub_8011C1C(void); -extern struct unkStruct_203B3E8 *gUnknown_203B3E8; extern void SetWonderMailMainMenuState(u8); extern void sub_8030DE4(void); extern void sub_801B450(void); @@ -82,7 +199,7 @@ extern s32 sub_80381F4(u32, void *, void *); extern void sub_8011830(void); extern void sub_80151C0(u32, u8 *); extern void xxx_call_start_bg_music(void); -extern void sub_8014248(u8 *, u32, u32, u8 *, u32, u32, u32, u32, u32); +extern void sub_8014248(const char *, u32, u32, const struct MenuItem *, u32, u32, u32, u32, u32); extern void nullsub_23(u32); extern void sub_802EF48(void); extern void sub_802D098(struct WonderMail *); @@ -92,21 +209,6 @@ extern struct unkStruct_803B344 *sub_803B344(u8); -extern u8 gUnknown_80E7CC4[]; -extern u8 gUnknown_80E78F8; -extern u8 gUnknown_80E7AC4[]; -extern u8 gUnknown_80E786C; -extern u8 gUnknown_80E7AE0[]; -extern u8 gUnknown_80E7894; -extern u8 gUnknown_80E7C48[]; -extern u8 gUnknown_80E7B14[]; -extern u8 gUnknown_80E78D8; -extern u8 gUnknown_80E7B68[]; -extern u8 gUnknown_80E7BEC[]; -extern u8 gUnknown_80E7BC8[]; -extern u8 gUnknown_80E7B88[]; -extern u8 gUnknown_80E7C98[]; -extern u8 gUnknown_80E7B48[]; extern s32 sub_8037B28(u32); extern u32 sub_802D0E0(); @@ -116,7 +218,7 @@ extern void sub_802D184(); extern s32 sub_80154F0(); extern bool8 DecodeWonderMailPassword(u8 *, struct WonderMail *); extern bool8 IsValidWonderMail(struct WonderMail *WonderMailData); -extern void sub_80141B4(u8 *r0, u32, u32 *r1, u32); +extern void sub_80141B4(const char *r0, u32, u32 *r1, u32); void PrintWonderMailMainMenuError(u32); void HandleWonderMailMainScreen(void); @@ -135,12 +237,6 @@ void HandlePasswordEntryScreen(void); void HandleInvalidPasswordMenu(void); -extern u8 gUnknown_80E7914[]; -extern u8 gUnknown_80E7938[]; -extern u8 gUnknown_80E7994[]; -extern u8 gUnknown_80E79E4[]; -extern u8 gUnknown_80E7A48[]; - bool8 sub_8039880(void) { return (sub_8095324(1) != 0 || sub_8095324(7) != 0 || sub_8011C1C() == 2); @@ -504,11 +600,11 @@ void WonderMailMainMenuCallback(void) struct unkStruct_803B344 *temp; switch(gUnknown_203B3E8->state) { - case 0: - sub_8014248(gUnknown_80E7AC4,0,1,&gUnknown_80E786C,0,4,0,0,0x101); + case SELECT_WONDER_MAIL_MODE_MAIN_SCREEN: + sub_8014248(gUnknown_80E7AC4,0,1,gSelectWonderMailModeMainMenuItems,0,4,0,0,0x101); break; case SEND_WONDER_MAIL_MAIN_SCREEN: - sub_8014248(gUnknown_80E7AE0,0,3,&gUnknown_80E7894,0,4,0,0,0x101); + sub_8014248(gUnknown_80E7AE0,0,3,gSendWonderMailMainMenuItems,0,4,0,0,0x101); break; case 3: ResetUnusedInputStruct(); @@ -516,7 +612,7 @@ void WonderMailMainMenuCallback(void) sub_802EF48(); break; case RECEIVE_WONDER_MAIL_MAIN_SCREEN: - sub_8014248(gUnknown_80E7B14,0,3,&gUnknown_80E78D8,0,4,0,0,0x101); + sub_8014248(gUnknown_80E7B14,0,3,gReceiveWonderMailMainMenuItems,0,4,0,0,0x101); break; case PASSWORD_SUCCESS: gUnknown_203B3E8->unk474 = gUnknown_203B3E8->unk3C0.unk0; @@ -561,7 +657,7 @@ void WonderMailMainMenuCallback(void) } break; case GAME_LINK_CABLE_MENU: - sub_8014248(gUnknown_80E7BEC,0,6,&gUnknown_80E78F8,0,4,0,0,0x101); + sub_8014248(gUnknown_80E7BEC,0,6,gUnknown_80E78F8,0,4,0,0,0x101); break; case 6: nullsub_23(0); @@ -620,7 +716,7 @@ void WonderMailMainMenuCallback(void) sub_80151C0(5,gUnknown_203B3E8->PasswordEntryBuffer); break; case PASSWORD_INVALID: - sub_8014248(gUnknown_80E7CC4,0,6,&gUnknown_80E78F8,0,4,0,0,0x101); + sub_8014248(gUnknown_80E7CC4,0,6,gUnknown_80E78F8,0,4,0,0,0x101); break; } } diff --git a/sym_ewram2.txt b/sym_ewram2.txt index 61444a8..60e3cfb 100644 --- a/sym_ewram2.txt +++ b/sym_ewram2.txt @@ -494,7 +494,7 @@ gUnknown_203B36C = .; /* 203B36C */ gRescuePasswordMenu = .; /* 203B370 */ . += 0x4; -gUnknown_203B374 = .; /* 203B374 */ +gLoadScreen = .; /* 203B374 */ . += 0x4; gUnknown_203B378 = .; /* 203B378 */ |