From f9788fdc0731f2518c1d2ec7c04f274d34d05c91 Mon Sep 17 00:00:00 2001 From: Seth Barberee Date: Sun, 23 Jul 2023 20:37:52 -0700 Subject: [PATCH] split out and decomp most of wigglytuff shop --- asm/code_801EE10_mid.s | 2174 ---------------------------------------- asm/code_8023144.s | 664 ++++++++++++ asm/wigglytuff_shop.s | 112 +++ ld_script.txt | 3 + src/wigglytuff_shop.c | 628 ++++++++++++ 5 files changed, 1407 insertions(+), 2174 deletions(-) create mode 100644 asm/code_8023144.s create mode 100644 asm/wigglytuff_shop.s create mode 100644 src/wigglytuff_shop.c diff --git a/asm/code_801EE10_mid.s b/asm/code_801EE10_mid.s index 6de3e3bf2..46aa15a3e 100644 --- a/asm/code_801EE10_mid.s +++ b/asm/code_801EE10_mid.s @@ -4464,2178 +4464,4 @@ _08021B94: bx r1 thumb_func_end sub_8021B58 - thumb_func_start CreateWigglytuffShop -CreateWigglytuffShop: - push {r4-r6,lr} - adds r4, r0, 0 - bl ResetUnusedInputStruct - movs r0, 0 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - ldr r5, _08021BF8 - movs r0, 0x9C - lsls r0, 1 - movs r1, 0x8 - bl MemoryAlloc - str r0, [r5] - movs r6, 0 - str r6, [r0, 0x14] - str r6, [r0, 0x18] - str r4, [r0] - ldr r0, _08021BFC - movs r1, 0x28 - bl CopyYellowMonsterNametoBuffer - ldr r4, _08021C00 - adds r0, r4, 0 - movs r1, 0x28 - bl CopyYellowMonsterNametoBuffer - movs r0, 0x28 - bl GetMonSpecies - adds r1, r0, 0 - subs r4, 0x50 - adds r0, r4, 0 - bl strcpy - ldr r5, [r5] - ldr r0, [r5] - cmp r0, 0x1 - bne _08021C04 - adds r0, r5, 0 - adds r0, 0xCC - str r6, [r0] - b _08021C0E - .align 2, 0 -_08021BF8: .4byte gUnknown_203B290 -_08021BFC: .4byte gUnknown_202E5D8 -_08021C00: .4byte gUnknown_202E1C8 -_08021C04: - adds r1, r5, 0 - adds r1, 0xCC - adds r0, r5, 0 - adds r0, 0xBC - str r0, [r1] -_08021C0E: - movs r0, 0x28 - bl GetDialogueSpriteDataPtr - ldr r2, _08021C58 - ldr r3, [r2] - adds r1, r3, 0 - adds r1, 0xBC - str r0, [r1] - adds r1, 0x4 - ldr r0, [r0, 0x4] - str r0, [r1] - adds r0, r3, 0 - adds r0, 0xC8 - movs r1, 0 - strb r1, [r0] - ldr r0, [r2] - adds r0, 0xC9 - strb r1, [r0] - ldr r0, [r2] - adds r0, 0xCA - strb r1, [r0] - ldr r1, [r2] - adds r2, r1, 0 - adds r2, 0xC4 - movs r0, 0x2 - strh r0, [r2] - adds r1, 0xC6 - movs r0, 0x8 - strh r0, [r1] - movs r0, 0 - bl sub_8021D44 - movs r0, 0x1 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08021C58: .4byte gUnknown_203B290 - thumb_func_end CreateWigglytuffShop - - thumb_func_start sub_8021C5C -sub_8021C5C: - push {lr} - ldr r0, _08021C74 - ldr r0, [r0] - ldr r0, [r0, 0x4] - cmp r0, 0x17 - bhi _08021D10 - lsls r0, 2 - ldr r1, _08021C78 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08021C74: .4byte gUnknown_203B290 -_08021C78: .4byte _08021C7C - .align 2, 0 -_08021C7C: - .4byte _08021CDC - .4byte _08021CDC - .4byte _08021D10 - .4byte _08021D10 - .4byte _08021D0C - .4byte _08021D10 - .4byte _08021D10 - .4byte _08021D10 - .4byte _08021D10 - .4byte _08021CE2 - .4byte _08021CE2 - .4byte _08021CE8 - .4byte _08021D10 - .4byte _08021CF4 - .4byte _08021CFA - .4byte _08021D10 - .4byte _08021D00 - .4byte _08021CEE - .4byte _08021D10 - .4byte _08021D10 - .4byte _08021D10 - .4byte _08021D10 - .4byte _08021D06 - .4byte _08021D06 -_08021CDC: - bl sub_8022460 - b _08021D14 -_08021CE2: - bl sub_8022538 - b _08021D14 -_08021CE8: - bl sub_80225C8 - b _08021D14 -_08021CEE: - bl sub_80224D4 - b _08021D14 -_08021CF4: - bl sub_80226F0 - b _08021D14 -_08021CFA: - bl sub_8022790 - b _08021D14 -_08021D00: - bl sub_8022668 - b _08021D14 -_08021D06: - bl sub_8022684 - b _08021D14 -_08021D0C: - movs r0, 0x3 - b _08021D16 -_08021D10: - bl sub_80226CC -_08021D14: - movs r0, 0 -_08021D16: - pop {r1} - bx r1 - thumb_func_end sub_8021C5C - - thumb_func_start sub_8021D1C -sub_8021D1C: - push {r4,lr} - ldr r4, _08021D40 - ldr r0, [r4] - cmp r0, 0 - beq _08021D38 - adds r0, 0xBC - ldr r0, [r0] - bl CloseFile - ldr r0, [r4] - bl MemoryFree - movs r0, 0 - str r0, [r4] -_08021D38: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08021D40: .4byte gUnknown_203B290 - thumb_func_end sub_8021D1C - - thumb_func_start sub_8021D44 -sub_8021D44: - push {lr} - ldr r1, _08021D58 - ldr r1, [r1] - str r0, [r1, 0x4] - bl sub_8021D5C - bl UpdateWigglytuffDialogue - pop {r0} - bx r0 - .align 2, 0 -_08021D58: .4byte gUnknown_203B290 - thumb_func_end sub_8021D44 - - thumb_func_start sub_8021D5C -sub_8021D5C: - push {r4-r7,lr} - ldr r4, _08021D7C - ldr r0, [r4] - adds r0, 0xD0 - bl sub_8006518 - ldr r1, [r4] - ldr r0, [r1, 0x4] - cmp r0, 0x9 - blt _08021DC8 - cmp r0, 0xA - ble _08021D80 - cmp r0, 0xB - beq _08021DB0 - b _08021DC8 - .align 2, 0 -_08021D7C: .4byte gUnknown_203B290 -_08021D80: - ldr r2, _08021DA8 - adds r1, 0xD0 - adds r0, r2, 0 - ldm r0!, {r3,r5,r6} - stm r1!, {r3,r5,r6} - ldm r0!, {r3,r5,r7} - stm r1!, {r3,r5,r7} - ldr r0, [r4] - movs r6, 0x80 - lsls r6, 1 - adds r0, r6 - ldm r2!, {r1,r3,r7} - stm r0!, {r1,r3,r7} - ldm r2!, {r5-r7} - stm r0!, {r5-r7} - ldr r1, [r4] - adds r1, 0xE8 - ldr r0, _08021DAC - b _08021DB8 - .align 2, 0 -_08021DA8: .4byte gUnknown_80DC534 -_08021DAC: .4byte gUnknown_80DC564 -_08021DB0: - movs r0, 0x80 - lsls r0, 1 - adds r1, r0 - ldr r0, _08021DC4 -_08021DB8: - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - b _08021DEC - .align 2, 0 -_08021DC4: .4byte gUnknown_80DC54C -_08021DC8: - ldr r0, _08021E04 - mov r12, r0 - ldr r4, _08021E08 - movs r3, 0 - movs r2, 0x3 -_08021DD2: - mov r5, r12 - ldr r1, [r5] - adds r1, r3 - adds r1, 0xD0 - 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 _08021DD2 -_08021DEC: - bl ResetUnusedInputStruct - ldr r0, _08021E04 - ldr r0, [r0] - adds r0, 0xD0 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08021E04: .4byte gUnknown_203B290 -_08021E08: .4byte gUnknown_80DC534 - thumb_func_end sub_8021D5C - - thumb_func_start UpdateWigglytuffDialogue -UpdateWigglytuffDialogue: - push {r4,lr} - sub sp, 0x20 - ldr r1, _08021E28 - ldr r0, [r1] - ldr r0, [r0, 0x4] - adds r4, r1, 0 - cmp r0, 0x1C - bls _08021E1E - b _080222B6 -_08021E1E: - lsls r0, 2 - ldr r1, _08021E2C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08021E28: .4byte gUnknown_203B290 -_08021E2C: .4byte _08021E30 - .align 2, 0 -_08021E30: - .4byte _08021EA4 - .4byte _08021EC0 - .4byte _08021F38 - .4byte _08021F50 - .4byte _080222B6 - .4byte _08021F78 - .4byte _08021F90 - .4byte _08021F08 - .4byte _08021F20 - .4byte _08021FD8 - .4byte _08021FE2 - .4byte _08021FF0 - .4byte _0802208E - .4byte _080220B8 - .4byte _080220D8 - .4byte _080220EA - .4byte _08022080 - .4byte _08022024 - .4byte _08021FA8 - .4byte _08021FC0 - .4byte _08022138 - .4byte _08022150 - .4byte _08022168 - .4byte _08022176 - .4byte _0802217E - .4byte _08022238 - .4byte _08022250 - .4byte _08022268 - .4byte _08022294 -_08021EA4: - bl sub_80222C8 - ldr r2, _08021EB8 - ldr r0, _08021EBC - ldr r4, [r0] - ldr r1, [r4] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 4 - b _08021ED4 - .align 2, 0 -_08021EB8: .4byte gWigglytuffDialogue -_08021EBC: .4byte gUnknown_203B290 -_08021EC0: - bl sub_80222C8 - ldr r2, _08021F00 - ldr r0, _08021F04 - ldr r4, [r0] - ldr r1, [r4] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 4 - adds r2, 0x4 -_08021ED4: - adds r0, r2 - ldr r0, [r0] - ldr r2, [r4, 0x14] - adds r3, r4, 0 - adds r3, 0x1C - adds r1, r4, 0 - adds r1, 0x5C - str r1, [sp] - movs r1, 0x4 - str r1, [sp, 0x4] - movs r1, 0 - str r1, [sp, 0x8] - adds r1, r4, 0 - adds r1, 0xCC - ldr r1, [r1] - str r1, [sp, 0xC] - movs r1, 0xC - str r1, [sp, 0x10] - movs r1, 0 - bl sub_8014248 - b _080222B6 - .align 2, 0 -_08021F00: .4byte gWigglytuffDialogue -_08021F04: .4byte gUnknown_203B290 -_08021F08: - ldr r3, [r4] - movs r0, 0x9 - str r0, [r3, 0x8] - ldr r2, _08021F1C - ldr r1, [r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 4 - adds r2, 0xC - b _0802227A - .align 2, 0 -_08021F1C: .4byte gWigglytuffDialogue -_08021F20: - ldr r3, [r4] - movs r0, 0xA - str r0, [r3, 0x8] - ldr r2, _08021F34 - ldr r1, [r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 4 - adds r2, 0x10 - b _0802227A - .align 2, 0 -_08021F34: .4byte gWigglytuffDialogue -_08021F38: - ldr r3, [r4] - movs r0, 0x1 - str r0, [r3, 0x8] - ldr r2, _08021F4C - ldr r1, [r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 4 - adds r2, 0x4C - b _0802227A - .align 2, 0 -_08021F4C: .4byte gWigglytuffDialogue -_08021F50: - ldr r3, [r4] - movs r0, 0x4 - str r0, [r3, 0x8] - ldr r2, _08021F70 - ldr r1, [r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 4 - adds r2, 0x8 - adds r0, r2 - ldr r0, [r0] - adds r3, 0xCC - ldr r2, [r3] - ldr r3, _08021F74 - b _08022284 - .align 2, 0 -_08021F70: .4byte gWigglytuffDialogue -_08021F74: .4byte 0x0000030d -_08021F78: - ldr r3, [r4] - movs r0, 0x3 - str r0, [r3, 0x8] - ldr r2, _08021F8C - ldr r1, [r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 4 - adds r2, 0x20 - b _0802227A - .align 2, 0 -_08021F8C: .4byte gWigglytuffDialogue -_08021F90: - ldr r3, [r4] - movs r0, 0xA - str r0, [r3, 0x8] - ldr r2, _08021FA4 - ldr r1, [r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 4 - adds r2, 0x24 - b _0802227A - .align 2, 0 -_08021FA4: .4byte gWigglytuffDialogue -_08021FA8: - ldr r3, [r4] - movs r0, 0x3 - str r0, [r3, 0x8] - ldr r2, _08021FBC - ldr r1, [r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 4 - adds r2, 0x28 - b _0802227A - .align 2, 0 -_08021FBC: .4byte gWigglytuffDialogue -_08021FC0: - ldr r3, [r4] - movs r0, 0xA - str r0, [r3, 0x8] - ldr r2, _08021FD4 - ldr r1, [r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 4 - adds r2, 0x2C - b _0802227A - .align 2, 0 -_08021FD4: .4byte gWigglytuffDialogue -_08021FD8: - movs r0, 0x2 - movs r1, 0x3 - bl sub_80211AC - b _08021FE8 -_08021FE2: - movs r0, 0x1 - bl sub_8021354 -_08021FE8: - movs r0, 0x1 - bl DrawTeamMoneyBox - b _080222B6 -_08021FF0: - bl sub_8021494 - movs r0, 0x1 - bl DrawTeamMoneyBox - bl sub_8022380 - ldr r0, _08022020 - ldr r2, [r0] - adds r0, r2, 0 - adds r0, 0x6C - adds r1, r2, 0 - adds r1, 0x1C - adds r3, r2, 0 - adds r3, 0x5C - ldr r2, [r2, 0x18] - str r2, [sp] - movs r2, 0x2 - str r2, [sp, 0x4] - movs r2, 0 - bl sub_8012D60 - b _080222B6 - .align 2, 0 -_08022020: .4byte gUnknown_203B290 -_08022024: - bl sub_8022420 - ldr r0, _08022070 - ldr r4, _08022074 - ldr r1, [r4] - ldrb r1, [r1, 0x10] - movs r2, 0 - bl sub_8092578 - ldr r1, _08022078 - ldr r4, [r4] - ldr r0, [r4, 0xC] - str r0, [r1] - ldr r2, _0802207C - ldr r1, [r4] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 4 - adds r2, 0x14 - adds r0, r2 - ldr r0, [r0] - adds r3, r4, 0 - adds r3, 0x1C - movs r2, 0 - str r2, [sp] - movs r1, 0x4 - str r1, [sp, 0x4] - str r2, [sp, 0x8] - adds r4, 0xCC - ldr r1, [r4] - str r1, [sp, 0xC] - movs r1, 0xC - str r1, [sp, 0x10] - movs r1, 0 - movs r2, 0x5 - bl sub_8014248 - b _080222B6 - .align 2, 0 -_08022070: .4byte gUnknown_202E628 -_08022074: .4byte gUnknown_203B290 -_08022078: .4byte gUnknown_202DE30 -_0802207C: .4byte gWigglytuffDialogue -_08022080: - ldr r0, [r4] - ldrb r0, [r0, 0x10] - movs r1, 0 - movs r2, 0x2 - bl sub_8021774 - b _080222B6 -_0802208E: - ldr r1, [r4] - movs r0, 0xD - str r0, [r1, 0x8] - ldr r0, _080220B0 - ldrb r1, [r1, 0x10] - movs r2, 0 - bl sub_8092578 - ldr r2, _080220B4 - ldr r3, [r4] - ldr r1, [r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 4 - adds r2, 0x18 - b _0802227A - .align 2, 0 -_080220B0: .4byte gUnknown_202E628 -_080220B4: .4byte gWigglytuffDialogue -_080220B8: - ldr r1, [r4] - movs r0, 0xE - str r0, [r1, 0x8] - ldr r0, _080220D4 - bl PlaySound - ldr r0, [r4] - movs r1, 0x98 - lsls r1, 1 - adds r0, r1 - movs r1, 0x1 - str r1, [r0] - b _080222B6 - .align 2, 0 -_080220D4: .4byte 0x0000025b -_080220D8: - ldr r0, [r4] - movs r1, 0xF - str r1, [r0, 0x8] - movs r1, 0x9A - lsls r1, 1 - adds r0, r1 - movs r1, 0x1E - str r1, [r0] - b _080222B6 -_080220EA: - movs r0, 0x2 - bl sub_8021700 - lsls r0, 24 - cmp r0, 0 - beq _08022108 - bl sub_80213A0 - ldr r0, _08022104 - ldr r1, [r0] - movs r0, 0x12 - b _0802210E - .align 2, 0 -_08022104: .4byte gUnknown_203B290 -_08022108: - ldr r0, _08022130 - ldr r1, [r0] - movs r0, 0x8 -_0802210E: - str r0, [r1, 0x8] - movs r0, 0xCE - bl PlaySound - ldr r3, _08022134 - ldr r0, _08022130 - ldr r2, [r0] - ldr r1, [r2] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 4 - adds r3, 0x1C - adds r0, r3 - ldr r0, [r0] - adds r2, 0xCC - ldr r2, [r2] - b _08022282 - .align 2, 0 -_08022130: .4byte gUnknown_203B290 -_08022134: .4byte gWigglytuffDialogue -_08022138: - ldr r3, [r4] - movs r0, 0x16 - str r0, [r3, 0x8] - ldr r2, _0802214C - ldr r1, [r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 4 - adds r2, 0x30 - b _0802227A - .align 2, 0 -_0802214C: .4byte gWigglytuffDialogue -_08022150: - ldr r3, [r4] - movs r0, 0x17 - str r0, [r3, 0x8] - ldr r2, _08022164 - ldr r1, [r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 4 - adds r2, 0x34 - b _0802227A - .align 2, 0 -_08022164: .4byte gWigglytuffDialogue -_08022168: - movs r0, 0 - movs r1, 0x3 - movs r2, 0 - movs r3, 0xA - bl sub_8023144 - b _080222B6 -_08022176: - movs r0, 0x1 - bl sub_8023354 - b _080222B6 -_0802217E: - ldr r4, _080221A0 - ldr r0, [r4] - ldrb r0, [r0, 0x10] - add r1, sp, 0x14 - movs r2, 0 - movs r3, 0 - bl sub_8092638 - add r0, sp, 0x14 - ldrb r0, [r0, 0x4] - cmp r0, 0 - beq _080221A4 - ldr r1, [r4] - movs r0, 0x19 - str r0, [r1, 0x8] - b _080221FA - .align 2, 0 -_080221A0: .4byte gUnknown_203B290 -_080221A4: - ldr r0, [r4] - ldrb r0, [r0, 0x10] - bl GetFriendAreaUnlockCondition - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - beq _080221E0 - cmp r0, 0x2 - bgt _080221BE - cmp r0, 0x1 - beq _080221C4 - b _080221F0 -_080221BE: - cmp r0, 0x3 - beq _080221E8 - b _080221F0 -_080221C4: - movs r0, 0x6 - bl sub_80023E4 - lsls r0, 24 - cmp r0, 0 - beq _080221D8 - ldr r1, [r4] - movs r0, 0x15 - str r0, [r1, 0x8] - b _080221FA -_080221D8: - ldr r1, [r4] - movs r0, 0x1A - str r0, [r1, 0x8] - b _080221FA -_080221E0: - ldr r1, [r4] - movs r0, 0x1B - str r0, [r1, 0x8] - b _080221FA -_080221E8: - ldr r1, [r4] - movs r0, 0x1C - str r0, [r1, 0x8] - b _080221FA -_080221F0: - ldr r2, _08022228 - ldr r1, [r2] - movs r0, 0x15 - str r0, [r1, 0x8] - adds r4, r2, 0 -_080221FA: - ldr r0, [r4] - movs r1, 0x12 - ldrsh r0, [r0, r1] - bl GetMonSpecies - adds r1, r0, 0 - ldr r0, _0802222C - bl strcpy - ldr r0, _08022230 - ldr r1, [r4] - ldrb r1, [r1, 0x10] - movs r2, 0 - bl sub_8092578 - ldr r2, _08022234 - ldr r3, [r4] - ldr r1, [r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 4 - adds r2, 0x38 - b _0802227A - .align 2, 0 -_08022228: .4byte gUnknown_203B290 -_0802222C: .4byte gAvailablePokemonNames -_08022230: .4byte gUnknown_202E628 -_08022234: .4byte gWigglytuffDialogue -_08022238: - ldr r3, [r4] - movs r0, 0x15 - str r0, [r3, 0x8] - ldr r2, _0802224C - ldr r1, [r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 4 - adds r2, 0x3C - b _0802227A - .align 2, 0 -_0802224C: .4byte gWigglytuffDialogue -_08022250: - ldr r3, [r4] - movs r0, 0x15 - str r0, [r3, 0x8] - ldr r2, _08022264 - ldr r1, [r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 4 - adds r2, 0x40 - b _0802227A - .align 2, 0 -_08022264: .4byte gWigglytuffDialogue -_08022268: - ldr r3, [r4] - movs r0, 0x15 - str r0, [r3, 0x8] - ldr r2, _0802228C - ldr r1, [r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 4 - adds r2, 0x44 -_0802227A: - adds r0, r2 - ldr r0, [r0] - adds r3, 0xCC - ldr r2, [r3] -_08022282: - ldr r3, _08022290 -_08022284: - movs r1, 0 - bl sub_80141B4 - b _080222B6 - .align 2, 0 -_0802228C: .4byte gWigglytuffDialogue -_08022290: .4byte 0x0000010d -_08022294: - ldr r3, [r4] - movs r0, 0x15 - str r0, [r3, 0x8] - ldr r2, _080222C0 - ldr r1, [r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 4 - adds r2, 0x48 - adds r0, r2 - ldr r0, [r0] - adds r3, 0xCC - ldr r2, [r3] - ldr r3, _080222C4 - movs r1, 0 - bl sub_80141B4 -_080222B6: - add sp, 0x20 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080222C0: .4byte gWigglytuffDialogue -_080222C4: .4byte 0x0000010d - thumb_func_end UpdateWigglytuffDialogue - - thumb_func_start sub_80222C8 -sub_80222C8: - push {r4-r7,lr} - ldr r4, _08022344 - ldr r0, [r4] - adds r0, 0x5C - movs r1, 0 - movs r2, 0x10 - bl MemoryFill16 - ldr r1, [r4] - movs r5, 0 - ldr r0, _08022348 - ldr r0, [r0] - str r0, [r1, 0x1C] - adds r3, r1, 0 - adds r3, 0x20 - movs r0, 0x2 - str r0, [r1, 0x20] - movs r2, 0x1 - ldr r0, _0802234C - ldr r0, [r0] - str r0, [r1, 0x24] - movs r0, 0x3 - str r0, [r1, 0x28] - ldr r0, _08022350 - ldr r0, [r0] - str r0, [r1, 0x2C] - movs r0, 0x4 - str r0, [r1, 0x30] - ldr r0, _08022354 - ldr r0, [r0] - str r0, [r1, 0x34] - str r2, [r1, 0x38] - movs r7, 0x4 - str r5, [r1, 0x3C] - str r2, [r3, 0x20] - adds r6, r1, 0 - adds r2, r6, 0 - adds r2, 0x5C -_08022314: - ldrh r0, [r2] - cmp r0, 0 - bne _08022322 - ldr r1, [r3] - ldr r0, [r6, 0x14] - cmp r1, r0 - beq _0802237A -_08022322: - adds r3, 0x8 - adds r2, 0x2 - adds r5, 0x1 - cmp r5, r7 - blt _08022314 - movs r5, 0 - cmp r5, r7 - bge _0802237A - ldr r1, [r4] - adds r0, r1, 0 - adds r0, 0x5C - ldrh r0, [r0] - cmp r0, 0 - bne _08022358 - ldr r0, [r1, 0x20] - str r0, [r1, 0x14] - b _0802237A - .align 2, 0 -_08022344: .4byte gUnknown_203B290 -_08022348: .4byte gUnknown_80D4978 -_0802234C: .4byte gWigglytuffCheck -_08022350: .4byte gUnknown_80D4970 -_08022354: .4byte gUnknown_80D4934 -_08022358: - adds r5, 0x1 - cmp r5, r7 - bge _0802237A - ldr r2, [r4] - lsls r0, r5, 1 - adds r1, r2, 0 - adds r1, 0x5C - adds r1, r0 - ldrh r0, [r1] - cmp r0, 0 - bne _08022358 - lsls r0, r5, 3 - adds r1, r2, 0 - adds r1, 0x20 - adds r1, r0 - ldr r0, [r1] - str r0, [r2, 0x14] -_0802237A: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80222C8 - - thumb_func_start sub_8022380 -sub_8022380: - push {r4-r7,lr} - ldr r4, _080223EC - ldr r0, [r4] - adds r0, 0x5C - movs r1, 0 - movs r2, 0x10 - bl MemoryFill16 - ldr r3, [r4] - movs r2, 0 - ldr r0, _080223F0 - ldr r0, [r0] - str r0, [r3, 0x1C] - movs r0, 0x2 - str r0, [r3, 0x20] - movs r1, 0x1 - ldr r0, _080223F4 - ldr r0, [r0] - str r0, [r3, 0x24] - movs r0, 0x4 - str r0, [r3, 0x28] - movs r6, 0x2 - str r2, [r3, 0x2C] - str r1, [r3, 0x30] - movs r5, 0 - mov r12, r3 - adds r3, 0x20 - mov r2, r12 - adds r2, 0x5C -_080223BA: - ldrh r0, [r2] - cmp r0, 0 - bne _080223CA - ldr r1, [r3] - mov r7, r12 - ldr r0, [r7, 0x18] - cmp r1, r0 - beq _0802241A -_080223CA: - adds r3, 0x8 - adds r2, 0x2 - adds r5, 0x1 - cmp r5, r6 - blt _080223BA - movs r5, 0 - cmp r5, r6 - bge _0802241A - ldr r1, [r4] - adds r0, r1, 0 - adds r0, 0x5C - ldrh r0, [r0] - cmp r0, 0 - bne _080223F8 - ldr r0, [r1, 0x20] - str r0, [r1, 0x18] - b _0802241A - .align 2, 0 -_080223EC: .4byte gUnknown_203B290 -_080223F0: .4byte gUnknown_80D4978 -_080223F4: .4byte gUnknown_80D4970 -_080223F8: - adds r5, 0x1 - cmp r5, r6 - bge _0802241A - ldr r2, [r4] - lsls r0, r5, 1 - adds r1, r2, 0 - adds r1, 0x5C - adds r1, r0 - ldrh r0, [r1] - cmp r0, 0 - bne _080223F8 - lsls r0, r5, 3 - adds r1, r2, 0 - adds r1, 0x20 - adds r1, r0 - ldr r0, [r1] - str r0, [r2, 0x18] -_0802241A: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8022380 - - thumb_func_start sub_8022420 -sub_8022420: - push {r4,lr} - ldr r4, _08022454 - ldr r0, [r4] - adds r0, 0x5C - movs r1, 0 - movs r2, 0x10 - bl MemoryFill16 - ldr r1, [r4] - movs r3, 0 - ldr r0, _08022458 - ldr r0, [r0] - str r0, [r1, 0x1C] - movs r0, 0x5 - str r0, [r1, 0x20] - movs r2, 0x1 - ldr r0, _0802245C - ldr r0, [r0] - str r0, [r1, 0x24] - movs r0, 0x6 - str r0, [r1, 0x28] - str r3, [r1, 0x2C] - str r2, [r1, 0x30] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08022454: .4byte gUnknown_203B290 -_08022458: .4byte gUnknown_80D4920 -_0802245C: .4byte gUnknown_80D4928 - thumb_func_end sub_8022420 - - thumb_func_start sub_8022460 -sub_8022460: - push {lr} - sub sp, 0x4 - mov r0, sp - bl sub_80144A4 - cmp r0, 0 - bne _080224CC - ldr r1, [sp] - cmp r1, 0x1 - beq _0802247A - ldr r0, _0802248C - ldr r0, [r0] - str r1, [r0, 0x14] -_0802247A: - ldr r0, [sp] - cmp r0, 0x2 - beq _0802249A - cmp r0, 0x2 - bgt _08022490 - cmp r0, 0x1 - beq _080224C6 - b _080224CC - .align 2, 0 -_0802248C: .4byte gUnknown_203B290 -_08022490: - cmp r0, 0x3 - beq _080224B6 - cmp r0, 0x4 - beq _080224BE - b _080224CC -_0802249A: - movs r0, 0x2 - bl sub_8021700 - lsls r0, 24 - cmp r0, 0 - beq _080224AE - movs r0, 0x5 - bl sub_8021D44 - b _080224CC -_080224AE: - movs r0, 0x7 - bl sub_8021D44 - b _080224CC -_080224B6: - movs r0, 0x14 - bl sub_8021D44 - b _080224CC -_080224BE: - movs r0, 0x2 - bl sub_8021D44 - b _080224CC -_080224C6: - movs r0, 0x3 - bl sub_8021D44 -_080224CC: - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end sub_8022460 - - thumb_func_start sub_80224D4 -sub_80224D4: - push {lr} - sub sp, 0x4 - mov r0, sp - bl sub_80144A4 - cmp r0, 0 - bne _08022532 - ldr r0, [sp] - cmp r0, 0x5 - beq _080224F8 - cmp r0, 0x5 - bgt _080224F2 - cmp r0, 0x1 - beq _0802252C - b _08022532 -_080224F2: - cmp r0, 0x6 - beq _0802252C - b _08022532 -_080224F8: - ldr r0, _08022524 - ldr r2, [r0] - movs r0, 0x98 - lsls r0, 2 - adds r2, r0 - ldr r0, _08022528 - ldr r3, [r0] - ldr r0, [r2] - ldr r1, [r3, 0xC] - subs r0, r1 - str r0, [r2] - ldrb r0, [r3, 0x10] - bl UnlockFriendArea - movs r0, 0xA6 - lsls r0, 1 - bl PlaySound - movs r0, 0xC - bl sub_8021D44 - b _08022532 - .align 2, 0 -_08022524: .4byte gTeamInventory_203B460 -_08022528: .4byte gUnknown_203B290 -_0802252C: - movs r0, 0xA - bl sub_8021D44 -_08022532: - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end sub_80224D4 - - thumb_func_start sub_8022538 -sub_8022538: - push {r4,lr} - movs r0, 0x1 - bl sub_8021274 - cmp r0, 0x4 - bhi _080225BC - lsls r0, 2 - ldr r1, _08022550 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08022550: .4byte _08022554 - .align 2, 0 -_08022554: - .4byte _080225C2 - .4byte _080225BC - .4byte _080225B0 - .4byte _08022568 - .4byte _0802258C -_08022568: - bl sub_802132C - ldr r4, _08022588 - ldr r1, [r4] - strb r0, [r1, 0x10] - ldr r0, [r4] - ldrb r0, [r0, 0x10] - bl GetFriendAreaPrice - ldr r1, [r4] - str r0, [r1, 0xC] - movs r0, 0xB - bl sub_8021D44 - b _080225C2 - .align 2, 0 -_08022588: .4byte gUnknown_203B290 -_0802258C: - bl sub_802132C - ldr r4, _080225AC - ldr r1, [r4] - strb r0, [r1, 0x10] - ldr r0, [r4] - ldrb r0, [r0, 0x10] - bl GetFriendAreaPrice - ldr r1, [r4] - str r0, [r1, 0xC] - movs r0, 0x10 - bl sub_8021D44 - b _080225C2 - .align 2, 0 -_080225AC: .4byte gUnknown_203B290 -_080225B0: - bl sub_80213A0 - movs r0, 0x1 - bl sub_8021D44 - b _080225C2 -_080225BC: - movs r0, 0x1 - bl DrawTeamMoneyBox -_080225C2: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8022538 - - thumb_func_start sub_80225C8 -sub_80225C8: - push {r4,lr} - sub sp, 0x4 - movs r0, 0 - str r0, [sp] - bl sub_8021274 - ldr r4, _08022608 - ldr r0, [r4] - adds r0, 0x6C - bl sub_8012FD8 - lsls r0, 24 - cmp r0, 0 - bne _080225F8 - ldr r0, [r4] - adds r0, 0x6C - mov r1, sp - bl sub_8013114 - ldr r1, [sp] - cmp r1, 0x1 - beq _080225F8 - ldr r0, [r4] - str r1, [r0, 0x18] -_080225F8: - ldr r0, [sp] - cmp r0, 0x2 - beq _08022612 - cmp r0, 0x2 - bgt _0802260C - cmp r0, 0x1 - beq _08022658 - b _0802265E - .align 2, 0 -_08022608: .4byte gUnknown_203B290 -_0802260C: - cmp r0, 0x4 - beq _08022650 - b _0802265E -_08022612: - ldr r0, _0802262C - ldr r0, [r0] - movs r1, 0x98 - lsls r1, 2 - adds r0, r1 - ldr r1, [r0] - cmp r1, 0 - bne _08022630 - movs r0, 0x6 - bl sub_8021D44 - b _0802265E - .align 2, 0 -_0802262C: .4byte gTeamInventory_203B460 -_08022630: - ldr r0, _08022644 - ldr r0, [r0] - ldr r0, [r0, 0xC] - cmp r0, r1 - ble _08022648 - movs r0, 0x13 - bl sub_8021D44 - b _0802265E - .align 2, 0 -_08022644: .4byte gUnknown_203B290 -_08022648: - movs r0, 0x11 - bl sub_8021D44 - b _0802265E -_08022650: - movs r0, 0x10 - bl sub_8021D44 - b _0802265E -_08022658: - movs r0, 0xA - bl sub_8021D44 -_0802265E: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80225C8 - - thumb_func_start sub_8022668 -sub_8022668: - push {lr} - bl sub_80217EC - cmp r0, 0x1 - bls _08022680 - cmp r0, 0x3 - bhi _08022680 - bl sub_8021830 - movs r0, 0xA - bl sub_8021D44 -_08022680: - pop {r0} - bx r0 - thumb_func_end sub_8022668 - - thumb_func_start sub_8022684 -sub_8022684: - push {r4,lr} - movs r0, 0x1 - bl sub_8023278 - cmp r0, 0x2 - beq _080226BC - cmp r0, 0x2 - bcc _080226C6 - cmp r0, 0x3 - bne _080226C6 - bl sub_802331C - ldr r4, _080226B8 - ldr r1, [r4] - strh r0, [r1, 0x12] - movs r2, 0x12 - ldrsh r0, [r1, r2] - bl GetFriendArea - ldr r1, [r4] - strb r0, [r1, 0x10] - movs r0, 0x18 - bl sub_8021D44 - b _080226C6 - .align 2, 0 -_080226B8: .4byte gUnknown_203B290 -_080226BC: - bl sub_80233A0 - movs r0, 0x1 - bl sub_8021D44 -_080226C6: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8022684 - - thumb_func_start sub_80226CC -sub_80226CC: - push {lr} - sub sp, 0x4 - mov r0, sp - bl sub_80144A4 - cmp r0, 0 - bne _080226E4 - ldr r0, _080226EC - ldr r0, [r0] - ldr r0, [r0, 0x8] - bl sub_8021D44 -_080226E4: - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_080226EC: .4byte gUnknown_203B290 - thumb_func_end sub_80226CC - - thumb_func_start sub_80226F0 -sub_80226F0: - push {r4,lr} - sub sp, 0x4 - mov r1, sp - movs r2, 0 - movs r0, 0x80 - strb r0, [r1] - strb r0, [r1, 0x1] - movs r0, 0x10 - strb r0, [r1, 0x2] - strb r2, [r1, 0x3] - bl sub_8099B94 - lsls r0, 24 - cmp r0, 0 - bne _08022782 - ldr r0, _08022728 - ldr r0, [r0] - movs r1, 0x98 - lsls r1, 1 - adds r0, r1 - ldr r0, [r0] - cmp r0, 0x4 - bhi _0802275C - lsls r0, 2 - ldr r1, _0802272C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08022728: .4byte gUnknown_203B290 -_0802272C: .4byte _08022730 - .align 2, 0 -_08022730: - .4byte _0802275C - .4byte _08022744 - .4byte _08022750 - .4byte _08022744 - .4byte _08022750 -_08022744: - movs r0, 0x5 - movs r1, 0x2 - ldr r2, [sp] - bl sub_8099AFC - b _08022772 -_08022750: - movs r0, 0x5 - movs r1, 0x2 - ldr r2, [sp] - bl sub_8099A5C - b _08022772 -_0802275C: - ldr r4, _0802278C - ldr r0, [r4] - ldr r0, [r0, 0x8] - bl sub_8021D44 - ldr r0, [r4] - movs r1, 0x98 - lsls r1, 1 - adds r0, r1 - movs r1, 0 - str r1, [r0] -_08022772: - ldr r0, _0802278C - ldr r1, [r0] - movs r0, 0x98 - lsls r0, 1 - adds r1, r0 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] -_08022782: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802278C: .4byte gUnknown_203B290 - thumb_func_end sub_80226F0 - - thumb_func_start sub_8022790 -sub_8022790: - push {lr} - ldr r0, _080227A8 - ldr r2, [r0] - movs r0, 0x9A - lsls r0, 1 - adds r1, r2, r0 - ldr r0, [r1] - cmp r0, 0 - beq _080227AC - subs r0, 0x1 - str r0, [r1] - b _080227B2 - .align 2, 0 -_080227A8: .4byte gUnknown_203B290 -_080227AC: - ldr r0, [r2, 0x8] - bl sub_8021D44 -_080227B2: - pop {r0} - bx r0 - thumb_func_end sub_8022790 - - thumb_func_start sub_80227B8 -sub_80227B8: - push {r4,r5,lr} - adds r5, r0, 0 - bl ResetUnusedInputStruct - movs r0, 0 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - ldr r4, _08022810 - movs r0, 0xD4 - lsls r0, 1 - movs r1, 0x8 - bl MemoryAlloc - str r0, [r4] - adds r2, r0, 0 - adds r2, 0xF4 - movs r1, 0 - str r1, [r2] - str r5, [r0, 0x48] - cmp r5, 0 - beq _08022820 - ldr r4, _08022814 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x7 - bl PrintColoredPokeNameToBuffer - adds r4, 0x50 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x6 - bl PrintColoredPokeNameToBuffer - bl HasGummiItem - lsls r0, 24 - cmp r0, 0 - beq _08022818 - movs r0, 0 - bl sub_8022924 - b _08022856 - .align 2, 0 -_08022810: .4byte gUnknown_203B294 -_08022814: .4byte gAvailablePokemonNames -_08022818: - movs r0, 0x11 - bl sub_8022924 - b _08022856 -_08022820: - ldr r4, _08022848 - ldr r5, _0802284C - adds r0, r4, 0 - adds r1, r5, 0 - bl strcpy - adds r4, 0x50 - adds r0, r4, 0 - adds r1, r5, 0 - bl strcpy - bl GetNumberOfFilledInventorySlots - cmp r0, 0 - bne _08022850 - movs r0, 0x12 - bl sub_8022924 - b _08022856 - .align 2, 0 -_08022848: .4byte gAvailablePokemonNames -_0802284C: .4byte gUnknown_80DC5EC -_08022850: - movs r0, 0 - bl sub_8022924 -_08022856: - movs r0, 0x1 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80227B8 - - thumb_func_start sub_8022860 -sub_8022860: - push {lr} - ldr r0, _08022878 - ldr r0, [r0] - ldr r0, [r0] - cmp r0, 0x16 - bhi _080228FE - lsls r0, 2 - ldr r1, _0802287C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08022878: .4byte gUnknown_203B294 -_0802287C: .4byte _08022880 - .align 2, 0 -_08022880: - .4byte _080228DC - .4byte _080228DC - .4byte _080228E2 - .4byte _080228E8 - .4byte _080228EE - .4byte _080228FE - .4byte _080228FE - .4byte _080228FE - .4byte _080228FE - .4byte _080228FE - .4byte _080228FE - .4byte _080228FE - .4byte _080228FE - .4byte _080228FE - .4byte _080228FE - .4byte _080228FE - .4byte _080228FE - .4byte _080228FE - .4byte _080228FE - .4byte _080228FE - .4byte _080228FE - .4byte _080228F4 - .4byte _080228FA -_080228DC: - bl sub_8022E78 - b _08022902 -_080228E2: - bl sub_8022EF4 - b _08022902 -_080228E8: - bl sub_8023068 - b _08022902 -_080228EE: - bl sub_80230E8 - b _08022902 -_080228F4: - bl sub_8023104 - b _08022902 -_080228FA: - movs r0, 0x3 - b _08022904 -_080228FE: - bl sub_8023120 -_08022902: - movs r0, 0 -_08022904: - pop {r1} - bx r1 - thumb_func_end sub_8022860 - - thumb_func_start sub_8022908 -sub_8022908: - push {r4,lr} - ldr r4, _08022920 - ldr r0, [r4] - cmp r0, 0 - beq _0802291A - bl MemoryFree - movs r0, 0 - str r0, [r4] -_0802291A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08022920: .4byte gUnknown_203B294 - thumb_func_end sub_8022908 - - thumb_func_start sub_8022924 -sub_8022924: - push {lr} - ldr r1, _08022938 - ldr r1, [r1] - str r0, [r1] - bl sub_802293C - bl sub_8022A10 - pop {r0} - bx r0 - .align 2, 0 -_08022938: .4byte gUnknown_203B294 - thumb_func_end sub_8022924 - - thumb_func_start sub_802293C -sub_802293C: - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r4, _08022964 - ldr r0, [r4] - movs r1, 0xA4 - lsls r1, 1 - adds r0, r1 - bl sub_8006518 - ldr r1, [r4] - ldr r0, [r1] - cmp r0, 0x3 - beq _080229A4 - cmp r0, 0x3 - bgt _08022968 - cmp r0, 0x2 - beq _08022972 - b _080229BC - .align 2, 0 -_08022964: .4byte gUnknown_203B294 -_08022968: - cmp r0, 0x10 - bgt _080229BC - cmp r0, 0xA - blt _080229BC - b _080229E6 -_08022972: - bl sub_8022D2C - ldr r2, [r4] - movs r0, 0xBC - lsls r0, 1 - adds r2, r0 - ldr r1, _080229A0 - 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, 0xF8 - bl sub_8012CAC - ldr r0, [r4] - movs r6, 0xC2 - lsls r6, 1 - adds r0, r6 - movs r1, 0x6 - strh r1, [r0] - b _080229E6 - .align 2, 0 -_080229A0: .4byte gUnknown_80DC5BC -_080229A4: - movs r7, 0xB0 - lsls r7, 1 - adds r1, r7 - ldr r0, _080229B8 - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - b _080229E6 - .align 2, 0 -_080229B8: .4byte gUnknown_80DC5D4 -_080229BC: - ldr r0, _08022A08 - mov r12, r0 - movs r1, 0xA4 - lsls r1, 1 - mov r8, r1 - ldr r4, _08022A0C - movs r3, 0 - movs r2, 0x3 -_080229CC: - mov r5, r12 - ldr r1, [r5] - adds r1, r3 - add r1, r8 - 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 _080229CC -_080229E6: - bl ResetUnusedInputStruct - ldr r0, _08022A08 - ldr r0, [r0] - movs r6, 0xA4 - lsls r6, 1 - adds r0, r6 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08022A08: .4byte gUnknown_203B294 -_08022A0C: .4byte gUnknown_80DC5A4 - thumb_func_end sub_802293C - - thumb_func_start sub_8022A10 -sub_8022A10: - push {r4-r7,lr} - sub sp, 0x8 - ldr r1, _08022A2C - ldr r0, [r1] - ldr r0, [r0] - adds r4, r1, 0 - cmp r0, 0x16 - bls _08022A22 - b _08022D1E -_08022A22: - lsls r0, 2 - ldr r1, _08022A30 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08022A2C: .4byte gUnknown_203B294 -_08022A30: .4byte _08022A34 - .align 2, 0 -_08022A34: - .4byte _08022A90 - .4byte _08022AAA - .4byte _08022AB2 - .4byte _08022AE0 - .4byte _08022B10 - .4byte _08022B1A - .4byte _08022B24 - .4byte _08022B34 - .4byte _08022B44 - .4byte _08022B54 - .4byte _08022B64 - .4byte _08022C28 - .4byte _08022CA0 - .4byte _08022CA8 - .4byte _08022CB0 - .4byte _08022CB8 - .4byte _08022CC0 - .4byte _08022CC8 - .4byte _08022CD8 - .4byte _08022CE8 - .4byte _08022CF8 - .4byte _08022D14 - .4byte _08022D1E -_08022A90: - ldr r0, [r4] - ldr r0, [r0, 0x48] - cmp r0, 0 - beq _08022A9C - movs r0, 0x5 - b _08022A9E -_08022A9C: - movs r0, 0x1 -_08022A9E: - movs r1, 0x3 - movs r2, 0 - movs r3, 0xA - bl sub_801A5D8 - b _08022D22 -_08022AAA: - movs r0, 0x1 - bl sub_801A8D0 - b _08022D22 -_08022AB2: - bl sub_801A9E0 - ldr r0, _08022ADC - ldr r2, [r0] - adds r0, r2, 0 - adds r0, 0x54 - adds r1, r2, 0 - adds r1, 0xF8 - movs r4, 0x9C - lsls r4, 1 - adds r3, r2, r4 - adds r2, 0xF4 - ldr r2, [r2] - str r2, [sp] - movs r2, 0x2 - str r2, [sp, 0x4] - movs r2, 0 - bl sub_8012D60 - b _08022D22 - .align 2, 0 -_08022ADC: .4byte gUnknown_203B294 -_08022AE0: - bl sub_801A9E0 - ldr r4, _08022B08 - ldr r0, [r4] - adds r0, 0x54 - movs r1, 0 - bl sub_8012EA4 - ldr r0, [r4] - adds r0, 0xA4 - ldr r1, _08022B0C - movs r2, 0x3 - str r2, [sp] - movs r2, 0x1 - str r2, [sp, 0x4] - movs r2, 0 - movs r3, 0 - bl sub_8012D60 - b _08022D22 - .align 2, 0 -_08022B08: .4byte gUnknown_203B294 -_08022B0C: .4byte gUnknown_80DC584 -_08022B10: - ldr r0, [r4] - adds r0, 0x50 - bl sub_801B3C0 - b _08022D22 -_08022B1A: - ldr r0, _08022B20 - b _08022D00 - .align 2, 0 -_08022B20: .4byte gUnknown_80DC5F4 -_08022B24: - ldr r0, _08022B2C - ldr r3, _08022B30 - b _08022D02 - .align 2, 0 -_08022B2C: .4byte gUnknown_80DC618 -_08022B30: .4byte 0x00000101 -_08022B34: - ldr r0, _08022B3C - ldr r3, _08022B40 - b _08022D02 - .align 2, 0 -_08022B3C: .4byte gUnknown_80DC674 -_08022B40: .4byte 0x00000101 -_08022B44: - ldr r0, _08022B4C - ldr r3, _08022B50 - b _08022D02 - .align 2, 0 -_08022B4C: .4byte gUnknown_80DC6CC -_08022B50: .4byte 0x00000101 -_08022B54: - ldr r0, _08022B5C - ldr r3, _08022B60 - b _08022D02 - .align 2, 0 -_08022B5C: .4byte gUnknown_80DC728 -_08022B60: .4byte 0x00000101 -_08022B64: - ldr r7, _08022B68 - b _08022B78 - .align 2, 0 -_08022B68: .4byte gUnknown_203B294 -_08022B6C: - ldr r1, [r4] - ldr r0, [r1, 0x40] - adds r0, 0x1 - str r0, [r1, 0x40] - cmp r0, 0x17 - bgt _08022C10 -_08022B78: - movs r5, 0 - movs r6, 0 - movs r3, 0 - ldr r2, [r4] - ldr r0, [r2, 0x38] - cmp r5, r0 - bge _08022BA4 - ldrb r1, [r2, 0x8] - b _08022B9C -_08022B8A: - adds r3, 0x1 - ldr r2, [r4] - ldr r0, [r2, 0x38] - cmp r3, r0 - bge _08022BA4 - adds r0, r2, 0 - adds r0, 0x8 - adds r0, r3 - ldrb r1, [r0] -_08022B9C: - ldr r0, [r2, 0x40] - cmp r1, r0 - bne _08022B8A - movs r5, 0x1 -_08022BA4: - movs r3, 0 - ldr r2, [r4] - ldr r0, [r2, 0x3C] - cmp r3, r0 - bge _08022BCE - adds r0, r2, 0 - adds r0, 0x20 - b _08022BC4 -_08022BB4: - adds r3, 0x1 - ldr r2, [r4] - ldr r0, [r2, 0x3C] - cmp r3, r0 - bge _08022BCE - adds r0, r2, 0 - adds r0, 0x20 - adds r0, r3 -_08022BC4: - ldrb r1, [r0] - ldr r0, [r2, 0x40] - cmp r1, r0 - bne _08022BB4 - movs r6, 0x1 -_08022BCE: - cmp r5, r6 - beq _08022B6C - ldr r1, [r7] - movs r0, 0xA - str r0, [r1, 0x4] - ldr r0, [r1, 0x40] - lsls r0, 24 - lsrs r0, 24 - bl GetIQSkillName - adds r1, r0, 0 - ldr r0, _08022C18 - bl strcpy - movs r0, 0xCB - bl PlaySound - ldr r0, _08022C1C - movs r1, 0 - movs r2, 0 - ldr r3, _08022C20 - bl sub_80141B4 - ldr r1, [r7] - ldr r0, [r1, 0x40] - adds r0, 0x1 - str r0, [r1, 0x40] - ldr r0, _08022C24 - ldr r0, [r0] - ldr r0, [r0, 0x40] - cmp r0, 0x17 - bgt _08022C10 - b _08022D22 -_08022C10: - movs r0, 0xB - bl sub_8022924 - b _08022D22 - .align 2, 0 -_08022C18: .4byte gUnknown_202DEA8 -_08022C1C: .4byte gUnknown_80DC788 -_08022C20: .4byte 0x00000101 -_08022C24: .4byte gUnknown_203B294 -_08022C28: - ldr r1, [r4] - movs r0, 0x16 - str r0, [r1, 0x4] - bl nullsub_104 - ldr r0, [r4] - adds r0, 0x46 - ldrh r0, [r0] - cmp r0, 0x8 - bhi _08022C98 - lsls r0, 2 - ldr r1, _08022C48 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08022C48: .4byte _08022C4C - .align 2, 0 -_08022C4C: - .4byte _08022C70 - .4byte _08022C78 - .4byte _08022C80 - .4byte _08022C98 - .4byte _08022C88 - .4byte _08022C98 - .4byte _08022C98 - .4byte _08022C98 - .4byte _08022C90 -_08022C70: - movs r0, 0x16 - bl sub_8022924 - b _08022D22 -_08022C78: - movs r0, 0xD - bl sub_8022924 - b _08022D22 -_08022C80: - movs r0, 0xE - bl sub_8022924 - b _08022D22 -_08022C88: - movs r0, 0xF - bl sub_8022924 - b _08022D22 -_08022C90: - movs r0, 0x10 - bl sub_8022924 - b _08022D22 -_08022C98: - movs r0, 0xC - bl sub_8022924 - b _08022D22 -_08022CA0: - ldr r0, _08022CA4 - b _08022D00 - .align 2, 0 -_08022CA4: .4byte gUnknown_80DC7B4 -_08022CA8: - ldr r0, _08022CAC - b _08022D00 - .align 2, 0 -_08022CAC: .4byte gUnknown_80DC7FC -_08022CB0: - ldr r0, _08022CB4 - b _08022D00 - .align 2, 0 -_08022CB4: .4byte gUnknown_80DC81C -_08022CB8: - ldr r0, _08022CBC - b _08022D00 - .align 2, 0 -_08022CBC: .4byte gUnknown_80DC844 -_08022CC0: - ldr r0, _08022CC4 - b _08022D00 - .align 2, 0 -_08022CC4: .4byte gUnknown_80DC864 -_08022CC8: - ldr r1, [r4] - movs r0, 0x16 - str r0, [r1, 0x4] - ldr r0, _08022CD4 - b _08022D00 - .align 2, 0 -_08022CD4: .4byte gUnknown_80DC88C -_08022CD8: - ldr r1, [r4] - movs r0, 0x16 - str r0, [r1, 0x4] - ldr r0, _08022CE4 - b _08022D00 - .align 2, 0 -_08022CE4: .4byte gUnknown_80DC8AC -_08022CE8: - ldr r1, [r4] - movs r0, 0x16 - str r0, [r1, 0x4] - ldr r0, _08022CF4 - b _08022D00 - .align 2, 0 -_08022CF4: .4byte gUnknown_80DC8C8 -_08022CF8: - ldr r1, [r4] - movs r0, 0x16 - str r0, [r1, 0x4] - ldr r0, _08022D0C -_08022D00: - ldr r3, _08022D10 -_08022D02: - movs r1, 0 - movs r2, 0 - bl sub_80141B4 - b _08022D22 - .align 2, 0 -_08022D0C: .4byte gUnknown_80DC8DC -_08022D10: .4byte 0x00000301 -_08022D14: - ldr r0, [r4] - ldr r0, [r0, 0x4C] - bl sub_801AFA4 - b _08022D22 -_08022D1E: - bl sub_801A928 -_08022D22: - add sp, 0x8 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8022A10 - .align 2,0 diff --git a/asm/code_8023144.s b/asm/code_8023144.s new file mode 100644 index 000000000..e4e3b8f38 --- /dev/null +++ b/asm/code_8023144.s @@ -0,0 +1,664 @@ + #include "asm/constants/gba_constants.inc" + #include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start sub_80227B8 +sub_80227B8: + push {r4,r5,lr} + adds r5, r0, 0 + bl ResetUnusedInputStruct + movs r0, 0 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + ldr r4, _08022810 + movs r0, 0xD4 + lsls r0, 1 + movs r1, 0x8 + bl MemoryAlloc + str r0, [r4] + adds r2, r0, 0 + adds r2, 0xF4 + movs r1, 0 + str r1, [r2] + str r5, [r0, 0x48] + cmp r5, 0 + beq _08022820 + ldr r4, _08022814 + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0x7 + bl PrintColoredPokeNameToBuffer + adds r4, 0x50 + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0x6 + bl PrintColoredPokeNameToBuffer + bl HasGummiItem + lsls r0, 24 + cmp r0, 0 + beq _08022818 + movs r0, 0 + bl sub_8022924 + b _08022856 + .align 2, 0 +_08022810: .4byte gUnknown_203B294 +_08022814: .4byte gAvailablePokemonNames +_08022818: + movs r0, 0x11 + bl sub_8022924 + b _08022856 +_08022820: + ldr r4, _08022848 + ldr r5, _0802284C + adds r0, r4, 0 + adds r1, r5, 0 + bl strcpy + adds r4, 0x50 + adds r0, r4, 0 + adds r1, r5, 0 + bl strcpy + bl GetNumberOfFilledInventorySlots + cmp r0, 0 + bne _08022850 + movs r0, 0x12 + bl sub_8022924 + b _08022856 + .align 2, 0 +_08022848: .4byte gAvailablePokemonNames +_0802284C: .4byte gUnknown_80DC5EC +_08022850: + movs r0, 0 + bl sub_8022924 +_08022856: + movs r0, 0x1 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80227B8 + + thumb_func_start sub_8022860 +sub_8022860: + push {lr} + ldr r0, _08022878 + ldr r0, [r0] + ldr r0, [r0] + cmp r0, 0x16 + bhi _080228FE + lsls r0, 2 + ldr r1, _0802287C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08022878: .4byte gUnknown_203B294 +_0802287C: .4byte _08022880 + .align 2, 0 +_08022880: + .4byte _080228DC + .4byte _080228DC + .4byte _080228E2 + .4byte _080228E8 + .4byte _080228EE + .4byte _080228FE + .4byte _080228FE + .4byte _080228FE + .4byte _080228FE + .4byte _080228FE + .4byte _080228FE + .4byte _080228FE + .4byte _080228FE + .4byte _080228FE + .4byte _080228FE + .4byte _080228FE + .4byte _080228FE + .4byte _080228FE + .4byte _080228FE + .4byte _080228FE + .4byte _080228FE + .4byte _080228F4 + .4byte _080228FA +_080228DC: + bl sub_8022E78 + b _08022902 +_080228E2: + bl sub_8022EF4 + b _08022902 +_080228E8: + bl sub_8023068 + b _08022902 +_080228EE: + bl sub_80230E8 + b _08022902 +_080228F4: + bl sub_8023104 + b _08022902 +_080228FA: + movs r0, 0x3 + b _08022904 +_080228FE: + bl sub_8023120 +_08022902: + movs r0, 0 +_08022904: + pop {r1} + bx r1 + thumb_func_end sub_8022860 + + thumb_func_start sub_8022908 +sub_8022908: + push {r4,lr} + ldr r4, _08022920 + ldr r0, [r4] + cmp r0, 0 + beq _0802291A + bl MemoryFree + movs r0, 0 + str r0, [r4] +_0802291A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08022920: .4byte gUnknown_203B294 + thumb_func_end sub_8022908 + + thumb_func_start sub_8022924 +sub_8022924: + push {lr} + ldr r1, _08022938 + ldr r1, [r1] + str r0, [r1] + bl sub_802293C + bl sub_8022A10 + pop {r0} + bx r0 + .align 2, 0 +_08022938: .4byte gUnknown_203B294 + thumb_func_end sub_8022924 + + thumb_func_start sub_802293C +sub_802293C: + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r4, _08022964 + ldr r0, [r4] + movs r1, 0xA4 + lsls r1, 1 + adds r0, r1 + bl sub_8006518 + ldr r1, [r4] + ldr r0, [r1] + cmp r0, 0x3 + beq _080229A4 + cmp r0, 0x3 + bgt _08022968 + cmp r0, 0x2 + beq _08022972 + b _080229BC + .align 2, 0 +_08022964: .4byte gUnknown_203B294 +_08022968: + cmp r0, 0x10 + bgt _080229BC + cmp r0, 0xA + blt _080229BC + b _080229E6 +_08022972: + bl sub_8022D2C + ldr r2, [r4] + movs r0, 0xBC + lsls r0, 1 + adds r2, r0 + ldr r1, _080229A0 + 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, 0xF8 + bl sub_8012CAC + ldr r0, [r4] + movs r6, 0xC2 + lsls r6, 1 + adds r0, r6 + movs r1, 0x6 + strh r1, [r0] + b _080229E6 + .align 2, 0 +_080229A0: .4byte gUnknown_80DC5BC +_080229A4: + movs r7, 0xB0 + lsls r7, 1 + adds r1, r7 + ldr r0, _080229B8 + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldm r0!, {r5-r7} + stm r1!, {r5-r7} + b _080229E6 + .align 2, 0 +_080229B8: .4byte gUnknown_80DC5D4 +_080229BC: + ldr r0, _08022A08 + mov r12, r0 + movs r1, 0xA4 + lsls r1, 1 + mov r8, r1 + ldr r4, _08022A0C + movs r3, 0 + movs r2, 0x3 +_080229CC: + mov r5, r12 + ldr r1, [r5] + adds r1, r3 + add r1, r8 + 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 _080229CC +_080229E6: + bl ResetUnusedInputStruct + ldr r0, _08022A08 + ldr r0, [r0] + movs r6, 0xA4 + lsls r6, 1 + adds r0, r6 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08022A08: .4byte gUnknown_203B294 +_08022A0C: .4byte gUnknown_80DC5A4 + thumb_func_end sub_802293C + + thumb_func_start sub_8022A10 +sub_8022A10: + push {r4-r7,lr} + sub sp, 0x8 + ldr r1, _08022A2C + ldr r0, [r1] + ldr r0, [r0] + adds r4, r1, 0 + cmp r0, 0x16 + bls _08022A22 + b _08022D1E +_08022A22: + lsls r0, 2 + ldr r1, _08022A30 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08022A2C: .4byte gUnknown_203B294 +_08022A30: .4byte _08022A34 + .align 2, 0 +_08022A34: + .4byte _08022A90 + .4byte _08022AAA + .4byte _08022AB2 + .4byte _08022AE0 + .4byte _08022B10 + .4byte _08022B1A + .4byte _08022B24 + .4byte _08022B34 + .4byte _08022B44 + .4byte _08022B54 + .4byte _08022B64 + .4byte _08022C28 + .4byte _08022CA0 + .4byte _08022CA8 + .4byte _08022CB0 + .4byte _08022CB8 + .4byte _08022CC0 + .4byte _08022CC8 + .4byte _08022CD8 + .4byte _08022CE8 + .4byte _08022CF8 + .4byte _08022D14 + .4byte _08022D1E +_08022A90: + ldr r0, [r4] + ldr r0, [r0, 0x48] + cmp r0, 0 + beq _08022A9C + movs r0, 0x5 + b _08022A9E +_08022A9C: + movs r0, 0x1 +_08022A9E: + movs r1, 0x3 + movs r2, 0 + movs r3, 0xA + bl sub_801A5D8 + b _08022D22 +_08022AAA: + movs r0, 0x1 + bl sub_801A8D0 + b _08022D22 +_08022AB2: + bl sub_801A9E0 + ldr r0, _08022ADC + ldr r2, [r0] + adds r0, r2, 0 + adds r0, 0x54 + adds r1, r2, 0 + adds r1, 0xF8 + movs r4, 0x9C + lsls r4, 1 + adds r3, r2, r4 + adds r2, 0xF4 + ldr r2, [r2] + str r2, [sp] + movs r2, 0x2 + str r2, [sp, 0x4] + movs r2, 0 + bl sub_8012D60 + b _08022D22 + .align 2, 0 +_08022ADC: .4byte gUnknown_203B294 +_08022AE0: + bl sub_801A9E0 + ldr r4, _08022B08 + ldr r0, [r4] + adds r0, 0x54 + movs r1, 0 + bl sub_8012EA4 + ldr r0, [r4] + adds r0, 0xA4 + ldr r1, _08022B0C + movs r2, 0x3 + str r2, [sp] + movs r2, 0x1 + str r2, [sp, 0x4] + movs r2, 0 + movs r3, 0 + bl sub_8012D60 + b _08022D22 + .align 2, 0 +_08022B08: .4byte gUnknown_203B294 +_08022B0C: .4byte gUnknown_80DC584 +_08022B10: + ldr r0, [r4] + adds r0, 0x50 + bl sub_801B3C0 + b _08022D22 +_08022B1A: + ldr r0, _08022B20 + b _08022D00 + .align 2, 0 +_08022B20: .4byte gUnknown_80DC5F4 +_08022B24: + ldr r0, _08022B2C + ldr r3, _08022B30 + b _08022D02 + .align 2, 0 +_08022B2C: .4byte gUnknown_80DC618 +_08022B30: .4byte 0x00000101 +_08022B34: + ldr r0, _08022B3C + ldr r3, _08022B40 + b _08022D02 + .align 2, 0 +_08022B3C: .4byte gUnknown_80DC674 +_08022B40: .4byte 0x00000101 +_08022B44: + ldr r0, _08022B4C + ldr r3, _08022B50 + b _08022D02 + .align 2, 0 +_08022B4C: .4byte gUnknown_80DC6CC +_08022B50: .4byte 0x00000101 +_08022B54: + ldr r0, _08022B5C + ldr r3, _08022B60 + b _08022D02 + .align 2, 0 +_08022B5C: .4byte gUnknown_80DC728 +_08022B60: .4byte 0x00000101 +_08022B64: + ldr r7, _08022B68 + b _08022B78 + .align 2, 0 +_08022B68: .4byte gUnknown_203B294 +_08022B6C: + ldr r1, [r4] + ldr r0, [r1, 0x40] + adds r0, 0x1 + str r0, [r1, 0x40] + cmp r0, 0x17 + bgt _08022C10 +_08022B78: + movs r5, 0 + movs r6, 0 + movs r3, 0 + ldr r2, [r4] + ldr r0, [r2, 0x38] + cmp r5, r0 + bge _08022BA4 + ldrb r1, [r2, 0x8] + b _08022B9C +_08022B8A: + adds r3, 0x1 + ldr r2, [r4] + ldr r0, [r2, 0x38] + cmp r3, r0 + bge _08022BA4 + adds r0, r2, 0 + adds r0, 0x8 + adds r0, r3 + ldrb r1, [r0] +_08022B9C: + ldr r0, [r2, 0x40] + cmp r1, r0 + bne _08022B8A + movs r5, 0x1 +_08022BA4: + movs r3, 0 + ldr r2, [r4] + ldr r0, [r2, 0x3C] + cmp r3, r0 + bge _08022BCE + adds r0, r2, 0 + adds r0, 0x20 + b _08022BC4 +_08022BB4: + adds r3, 0x1 + ldr r2, [r4] + ldr r0, [r2, 0x3C] + cmp r3, r0 + bge _08022BCE + adds r0, r2, 0 + adds r0, 0x20 + adds r0, r3 +_08022BC4: + ldrb r1, [r0] + ldr r0, [r2, 0x40] + cmp r1, r0 + bne _08022BB4 + movs r6, 0x1 +_08022BCE: + cmp r5, r6 + beq _08022B6C + ldr r1, [r7] + movs r0, 0xA + str r0, [r1, 0x4] + ldr r0, [r1, 0x40] + lsls r0, 24 + lsrs r0, 24 + bl GetIQSkillName + adds r1, r0, 0 + ldr r0, _08022C18 + bl strcpy + movs r0, 0xCB + bl PlaySound + ldr r0, _08022C1C + movs r1, 0 + movs r2, 0 + ldr r3, _08022C20 + bl sub_80141B4 + ldr r1, [r7] + ldr r0, [r1, 0x40] + adds r0, 0x1 + str r0, [r1, 0x40] + ldr r0, _08022C24 + ldr r0, [r0] + ldr r0, [r0, 0x40] + cmp r0, 0x17 + bgt _08022C10 + b _08022D22 +_08022C10: + movs r0, 0xB + bl sub_8022924 + b _08022D22 + .align 2, 0 +_08022C18: .4byte gUnknown_202DEA8 +_08022C1C: .4byte gUnknown_80DC788 +_08022C20: .4byte 0x00000101 +_08022C24: .4byte gUnknown_203B294 +_08022C28: + ldr r1, [r4] + movs r0, 0x16 + str r0, [r1, 0x4] + bl nullsub_104 + ldr r0, [r4] + adds r0, 0x46 + ldrh r0, [r0] + cmp r0, 0x8 + bhi _08022C98 + lsls r0, 2 + ldr r1, _08022C48 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08022C48: .4byte _08022C4C + .align 2, 0 +_08022C4C: + .4byte _08022C70 + .4byte _08022C78 + .4byte _08022C80 + .4byte _08022C98 + .4byte _08022C88 + .4byte _08022C98 + .4byte _08022C98 + .4byte _08022C98 + .4byte _08022C90 +_08022C70: + movs r0, 0x16 + bl sub_8022924 + b _08022D22 +_08022C78: + movs r0, 0xD + bl sub_8022924 + b _08022D22 +_08022C80: + movs r0, 0xE + bl sub_8022924 + b _08022D22 +_08022C88: + movs r0, 0xF + bl sub_8022924 + b _08022D22 +_08022C90: + movs r0, 0x10 + bl sub_8022924 + b _08022D22 +_08022C98: + movs r0, 0xC + bl sub_8022924 + b _08022D22 +_08022CA0: + ldr r0, _08022CA4 + b _08022D00 + .align 2, 0 +_08022CA4: .4byte gUnknown_80DC7B4 +_08022CA8: + ldr r0, _08022CAC + b _08022D00 + .align 2, 0 +_08022CAC: .4byte gUnknown_80DC7FC +_08022CB0: + ldr r0, _08022CB4 + b _08022D00 + .align 2, 0 +_08022CB4: .4byte gUnknown_80DC81C +_08022CB8: + ldr r0, _08022CBC + b _08022D00 + .align 2, 0 +_08022CBC: .4byte gUnknown_80DC844 +_08022CC0: + ldr r0, _08022CC4 + b _08022D00 + .align 2, 0 +_08022CC4: .4byte gUnknown_80DC864 +_08022CC8: + ldr r1, [r4] + movs r0, 0x16 + str r0, [r1, 0x4] + ldr r0, _08022CD4 + b _08022D00 + .align 2, 0 +_08022CD4: .4byte gUnknown_80DC88C +_08022CD8: + ldr r1, [r4] + movs r0, 0x16 + str r0, [r1, 0x4] + ldr r0, _08022CE4 + b _08022D00 + .align 2, 0 +_08022CE4: .4byte gUnknown_80DC8AC +_08022CE8: + ldr r1, [r4] + movs r0, 0x16 + str r0, [r1, 0x4] + ldr r0, _08022CF4 + b _08022D00 + .align 2, 0 +_08022CF4: .4byte gUnknown_80DC8C8 +_08022CF8: + ldr r1, [r4] + movs r0, 0x16 + str r0, [r1, 0x4] + ldr r0, _08022D0C +_08022D00: + ldr r3, _08022D10 +_08022D02: + movs r1, 0 + movs r2, 0 + bl sub_80141B4 + b _08022D22 + .align 2, 0 +_08022D0C: .4byte gUnknown_80DC8DC +_08022D10: .4byte 0x00000301 +_08022D14: + ldr r0, [r4] + ldr r0, [r0, 0x4C] + bl sub_801AFA4 + b _08022D22 +_08022D1E: + bl sub_801A928 +_08022D22: + add sp, 0x8 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8022A10 + + .align 2,0 diff --git a/asm/wigglytuff_shop.s b/asm/wigglytuff_shop.s new file mode 100644 index 000000000..2c0eea2c1 --- /dev/null +++ b/asm/wigglytuff_shop.s @@ -0,0 +1,112 @@ + #include "asm/constants/gba_constants.inc" + #include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start sub_80226F0 +sub_80226F0: + push {r4,lr} + sub sp, 0x4 + mov r1, sp + movs r2, 0 + movs r0, 0x80 + strb r0, [r1] + strb r0, [r1, 0x1] + movs r0, 0x10 + strb r0, [r1, 0x2] + strb r2, [r1, 0x3] + bl sub_8099B94 + lsls r0, 24 + cmp r0, 0 + bne _08022782 + ldr r0, _08022728 + ldr r0, [r0] + movs r1, 0x98 + lsls r1, 1 + adds r0, r1 + ldr r0, [r0] + cmp r0, 0x4 + bhi _0802275C + lsls r0, 2 + ldr r1, _0802272C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08022728: .4byte gUnknown_203B290 +_0802272C: .4byte _08022730 + .align 2, 0 +_08022730: + .4byte _0802275C + .4byte _08022744 + .4byte _08022750 + .4byte _08022744 + .4byte _08022750 +_08022744: + movs r0, 0x5 + movs r1, 0x2 + ldr r2, [sp] + bl sub_8099AFC + b _08022772 +_08022750: + movs r0, 0x5 + movs r1, 0x2 + ldr r2, [sp] + bl sub_8099A5C + b _08022772 +_0802275C: + ldr r4, _0802278C + ldr r0, [r4] + ldr r0, [r0, 0x8] + bl UpdateWigglytuffState + ldr r0, [r4] + movs r1, 0x98 + lsls r1, 1 + adds r0, r1 + movs r1, 0 + str r1, [r0] +_08022772: + ldr r0, _0802278C + ldr r1, [r0] + movs r0, 0x98 + lsls r0, 1 + adds r1, r0 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] +_08022782: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802278C: .4byte gUnknown_203B290 + thumb_func_end sub_80226F0 + + thumb_func_start sub_8022790 +sub_8022790: + push {lr} + ldr r0, _080227A8 + ldr r2, [r0] + movs r0, 0x9A + lsls r0, 1 + adds r1, r2, r0 + ldr r0, [r1] + cmp r0, 0 + beq _080227AC + subs r0, 0x1 + str r0, [r1] + b _080227B2 + .align 2, 0 +_080227A8: .4byte gUnknown_203B290 +_080227AC: + ldr r0, [r2, 0x8] + bl UpdateWigglytuffState +_080227B2: + pop {r0} + bx r0 + thumb_func_end sub_8022790 + + .align 2,0 diff --git a/ld_script.txt b/ld_script.txt index e183f77af..fe02fbcd6 100755 --- a/ld_script.txt +++ b/ld_script.txt @@ -118,6 +118,9 @@ SECTIONS { asm/code_801EE10.o(.text); src/code_801EE10_mid.o(.text); asm/code_801EE10_mid.o(.text); + src/wigglytuff_shop.o(.text); + asm/wigglytuff_shop.o(.text); + asm/code_8023144.o(.text); src/code_8023144.o(.text); asm/code_801EE10_1.o(.text); src/code_801EE10_1.o(.text); diff --git a/src/wigglytuff_shop.c b/src/wigglytuff_shop.c new file mode 100644 index 000000000..c8f38e672 --- /dev/null +++ b/src/wigglytuff_shop.c @@ -0,0 +1,628 @@ +#include "global.h" +#include "constants/friend_area.h" +#include "file_system.h" +#include "menu.h" +#include "pokemon.h" +#include "input.h" +#include "team_inventory.h" +#include "text.h" +#include "memory.h" +#include "menu_input.h" +#include "friend_area.h" + +struct unkStruct_8092638 +{ + u32 unk0; + u8 unk4; + u32 unk5; +}; +extern u8 gUnknown_202E628[]; +extern u32 gUnknown_202DE30[2]; +extern u8 gUnknown_202E5D8[]; +extern u8 gUnknown_202E1C8[]; +extern u8 gAvailablePokemonNames[]; + +extern u8 *gWigglytuffDialogue[2][20]; +extern u8 *gWigglytuffCheck[]; +extern u8 *gUnknown_80D4920[]; +extern u8 *gUnknown_80D4928[]; +extern u8 *gUnknown_80D4934[]; +extern u8 *gUnknown_80D4970[]; +extern u8 *gUnknown_80D4978[]; + +extern struct UnkTextStruct2 gUnknown_80DC534; +extern struct UnkTextStruct2 gUnknown_80DC564; +extern struct UnkTextStruct2 gUnknown_80DC54C; +extern struct UnkTextStruct2 gUnknown_80DC534; + +s32 sub_80144A4(s32 *); +u8 sub_8021700(u32); +void sub_8092578(u8 *buffer, u8 index, u8 r2); +void sub_80222C8(void); +extern void sub_8014248(const char *r0, u32, u32, const struct MenuItem *r4, u16 *, u32, u32,u8 *r5, u32); +extern void sub_80141B4(const u8 *, u32, u8*, u32); +extern void DrawTeamMoneyBox(u32); +extern void sub_80211AC(u32, u32); +extern void sub_8021354(u32); +extern void sub_8021494(); +extern void sub_803AA34(); +extern void sub_8021774(u8,u32, u32); +extern void sub_809249C(u8, u32); +extern void sub_8021830(void); +extern u32 sub_80217EC(void); +extern u8 sub_803ABC8(void); +extern u32 sub_8021274(u32); +extern u8 sub_802132C(void); +extern void sub_80213A0(void); +extern void sub_8022380(void); +extern void PlaySound(u32); +bool8 sub_8023144(s32 param_1, s32 index, struct UnkTextStruct2_sub *sub, u32 param_4); +void sub_8023354(u8 param_1); +extern bool8 sub_80023E4(u32); +extern void sub_8022420(void); +extern void sub_8092638(u8,struct unkStruct_8092638 *, u32, u32); + +extern u32 sub_8023278(u32); +void sub_80233A0(void); +s16 sub_802331C(void); +extern void sub_8022460(void); +extern void sub_8022538(void); +extern void sub_80225C8(void); +extern void sub_80224D4(void); +extern void sub_80226F0(void); +extern void sub_8022790(void); +extern void sub_8022668(void); +extern void sub_8022684(void); +extern void sub_80226CC(void); + +void UpdateWigglytuffState(s32); +void sub_8021D5C(void); +void UpdateWigglytuffDialogue(void); + +struct unkStruct_203B290 +{ + // size: 0x138 + bool32 isAsleep; + s32 state; + s32 fallbackState; + s32 friendAreaPrice; + u8 chosenFriendArea; + s16 chosenSpecies; + u32 menuAction1; + u32 menuAction2; + struct MenuItem unk1C[8]; + u16 unk5C[0x8]; + struct MenuStruct unk6C; + /* 0xBC */ struct OpenedFile *faceFile; + /* 0xC0 */ u8 *faceData; + u16 unkC4; + u16 unkC6; + u8 unkC8; + u8 unkC9; + u8 unkCA; + u8 fillCB; + u8 *unkCC; + struct UnkTextStruct2 unkD0[4]; + u32 unk130; + u32 unk134; +}; + +extern struct unkStruct_203B290 *gUnknown_203B290; + +bool8 CreateWigglytuffShop(bool32 isAsleep) +{ + char *string; + struct OpenedFile *file; + + ResetUnusedInputStruct(); + sub_800641C(0, 1, 1); + gUnknown_203B290 = MemoryAlloc(sizeof(struct unkStruct_203B290), 8); + gUnknown_203B290->menuAction1 = 0; + gUnknown_203B290->menuAction2 = 0; + gUnknown_203B290->isAsleep = isAsleep; + CopyYellowMonsterNametoBuffer(gUnknown_202E5D8,MONSTER_WIGGLYTUFF); + CopyYellowMonsterNametoBuffer(gUnknown_202E1C8,MONSTER_WIGGLYTUFF); + string = GetMonSpecies(MONSTER_WIGGLYTUFF); + strcpy(gUnknown_202E1C8 - 0x50, string); + if (gUnknown_203B290->isAsleep == TRUE) { + gUnknown_203B290->unkCC = NULL; + } + else { + gUnknown_203B290->unkCC = (u8 *)&gUnknown_203B290->faceFile; + } + file = GetDialogueSpriteDataPtr(MONSTER_WIGGLYTUFF); + gUnknown_203B290->faceFile = file; + gUnknown_203B290->faceData = file->data; + gUnknown_203B290->unkC8 = 0; + gUnknown_203B290->unkC9 = 0; + gUnknown_203B290->unkCA = 0; + gUnknown_203B290->unkC4 = 2; + gUnknown_203B290->unkC6 = 8; + UpdateWigglytuffState(0); + return TRUE; +} + +u32 sub_8021C5C(void) +{ + switch(gUnknown_203B290->state) + { + case 0: + case 1: + sub_8022460(); + break; + case 9: + case 10: + sub_8022538(); + break; + case 0xb: + sub_80225C8(); + break; + case 0x11: + sub_80224D4(); + break; + case 0xd: + sub_80226F0(); + break; + case 0xe: + sub_8022790(); + break; + case 0x10: + sub_8022668(); + break; + case 0x16: + case 0x17: + sub_8022684(); + break; + case 4: + return 3; + default: + sub_80226CC(); + break; + } + return 0; +} + +void sub_8021D1C(void) +{ + if(gUnknown_203B290) + { + CloseFile(gUnknown_203B290->faceFile); + MemoryFree(gUnknown_203B290); + gUnknown_203B290 = NULL; + } +} + +void UpdateWigglytuffState(s32 newState) +{ + gUnknown_203B290->state = newState; + sub_8021D5C(); + UpdateWigglytuffDialogue(); +} + +void sub_8021D5C(void) +{ + s32 index; + + sub_8006518(gUnknown_203B290->unkD0); + switch(gUnknown_203B290->state) + { + case 0x9: + case 0xA: + gUnknown_203B290->unkD0[0] = gUnknown_80DC534; + gUnknown_203B290->unkD0[2] = gUnknown_80DC534; + gUnknown_203B290->unkD0[1] = gUnknown_80DC564; + break; + case 0xB: + gUnknown_203B290->unkD0[2] = gUnknown_80DC54C; + break; + break; + default: + for(index = 0; index < 4; index++) + { + gUnknown_203B290->unkD0[index] = gUnknown_80DC534; + } + break; + + } + ResetUnusedInputStruct(); + sub_800641C(gUnknown_203B290->unkD0, 1, 1); +} + +void UpdateWigglytuffDialogue(void) +{ + char *string; + struct unkStruct_8092638 uStack_14; + + switch(gUnknown_203B290->state) + { + case 0: + sub_80222C8(); + sub_8014248(gWigglytuffDialogue[gUnknown_203B290->isAsleep][0],0,gUnknown_203B290->menuAction1,gUnknown_203B290->unk1C,gUnknown_203B290->unk5C,4,0,gUnknown_203B290->unkCC,0xc); + break; + case 1: + sub_80222C8(); + sub_8014248(gWigglytuffDialogue[gUnknown_203B290->isAsleep][1],0,gUnknown_203B290->menuAction1,gUnknown_203B290->unk1C,gUnknown_203B290->unk5C,4,0,gUnknown_203B290->unkCC,0xc); + break; + case 7: + gUnknown_203B290->fallbackState = 9; + sub_80141B4(gWigglytuffDialogue[gUnknown_203B290->isAsleep][3],0,gUnknown_203B290->unkCC,0x10d); + break; + case 8: + gUnknown_203B290->fallbackState = 10; + sub_80141B4(gWigglytuffDialogue[gUnknown_203B290->isAsleep][4],0,gUnknown_203B290->unkCC,0x10d); + break; + case 2: + gUnknown_203B290->fallbackState = 1; + sub_80141B4(gWigglytuffDialogue[gUnknown_203B290->isAsleep][19],0,gUnknown_203B290->unkCC,0x10d); + break; + case 3: + gUnknown_203B290->fallbackState = 4; + sub_80141B4(gWigglytuffDialogue[gUnknown_203B290->isAsleep][2],0,gUnknown_203B290->unkCC,0x30d); + break; + default: + break; + case 5: + gUnknown_203B290->fallbackState = 3; + sub_80141B4(gWigglytuffDialogue[gUnknown_203B290->isAsleep][8],0,gUnknown_203B290->unkCC,0x10d); + break; + case 6: + gUnknown_203B290->fallbackState = 10; + sub_80141B4(gWigglytuffDialogue[gUnknown_203B290->isAsleep][9],0,gUnknown_203B290->unkCC,0x10d); + break; + case 0x12: + gUnknown_203B290->fallbackState = 3; + sub_80141B4(gWigglytuffDialogue[gUnknown_203B290->isAsleep][10],0,gUnknown_203B290->unkCC,0x10d); + break; + case 0x13: + gUnknown_203B290->fallbackState = 10; + sub_80141B4(gWigglytuffDialogue[gUnknown_203B290->isAsleep][11],0,gUnknown_203B290->unkCC,0x10d); + break; + case 9: + sub_80211AC(2,3); + DrawTeamMoneyBox(1); + break; + case 10: + sub_8021354(1); + DrawTeamMoneyBox(1); + break; + case 0xb: + sub_8021494(); + DrawTeamMoneyBox(1); + sub_8022380(); + sub_8012D60(&gUnknown_203B290->unk6C,gUnknown_203B290->unk1C,0,gUnknown_203B290->unk5C, gUnknown_203B290->menuAction2,2); + break; + case 0x11: + sub_8022420(); + sub_8092578(gUnknown_202E628,gUnknown_203B290->chosenFriendArea,0); + gUnknown_202DE30[0] = gUnknown_203B290->friendAreaPrice; + sub_8014248(gWigglytuffDialogue[gUnknown_203B290->isAsleep][5],0,5,gUnknown_203B290->unk1C,0,4,0,gUnknown_203B290->unkCC,0xc); + break; + case 0x10: + sub_8021774(gUnknown_203B290->chosenFriendArea,0,2); + break; + case 0xc: + gUnknown_203B290->fallbackState = 0xd; + sub_8092578(gUnknown_202E628,gUnknown_203B290->chosenFriendArea,0); + sub_80141B4(gWigglytuffDialogue[gUnknown_203B290->isAsleep][6],0,gUnknown_203B290->unkCC,0x10d); + break; + case 0xd: + gUnknown_203B290->fallbackState = 0xe; + PlaySound(0x25b); + gUnknown_203B290->unk130 = 1; + break; + case 0xe: + gUnknown_203B290->fallbackState = 0xf; + gUnknown_203B290->unk134 = 0x1e; + break; + case 0xf: + if (sub_8021700(2) != 0) { + sub_80213A0(); + gUnknown_203B290->fallbackState = 0x12; + } + else { + gUnknown_203B290->fallbackState = 8; + } + PlaySound(0xce); + sub_80141B4(gWigglytuffDialogue[gUnknown_203B290->isAsleep][7],0,gUnknown_203B290->unkCC,0x10d); + break; + case 0x14: + gUnknown_203B290->fallbackState = 0x16; + sub_80141B4(gWigglytuffDialogue[gUnknown_203B290->isAsleep][12],0,gUnknown_203B290->unkCC,0x10d); + break; + case 0x15: + gUnknown_203B290->fallbackState = 0x17; + sub_80141B4(gWigglytuffDialogue[gUnknown_203B290->isAsleep][13],0,gUnknown_203B290->unkCC,0x10d); + break; + case 0x16: + sub_8023144(0,3,0,10); + break; + case 0x17: + sub_8023354(1); + break; + case 0x18: + sub_8092638(gUnknown_203B290->chosenFriendArea,&uStack_14,0,0); + if (uStack_14.unk4 != 0) { + gUnknown_203B290->fallbackState = 0x19; + } + else + { + switch(GetFriendAreaUnlockCondition(gUnknown_203B290->chosenFriendArea)) + { + case UNLOCK_SHOP_POST_GAME: + if (sub_80023E4(6) != 0) { + gUnknown_203B290->fallbackState = 0x15; + } + else { + gUnknown_203B290->fallbackState = 0x1a; + } + break; + case UNLOCK_WONDER_MAIL: + gUnknown_203B290->fallbackState = 0x1b; + break; + case UNLOCK_LEGENDARY_REQUEST: + gUnknown_203B290->fallbackState = 0x1c; + break; + default: + gUnknown_203B290->fallbackState = 0x15; + break; + } + } + string = GetMonSpecies(gUnknown_203B290->chosenSpecies); + strcpy(gAvailablePokemonNames,string); + sub_8092578(gUnknown_202E628,gUnknown_203B290->chosenFriendArea,0); + sub_80141B4(gWigglytuffDialogue[gUnknown_203B290->isAsleep][14],0,gUnknown_203B290->unkCC,0x10d); + break; + case 0x19: + gUnknown_203B290->fallbackState = 0x15; + sub_80141B4(gWigglytuffDialogue[gUnknown_203B290->isAsleep][15],0,gUnknown_203B290->unkCC,0x10d); + break; + case 0x1a: + gUnknown_203B290->fallbackState = 0x15; + sub_80141B4(gWigglytuffDialogue[gUnknown_203B290->isAsleep][16],0,gUnknown_203B290->unkCC,0x10d); + break; + case 0x1b: + gUnknown_203B290->fallbackState = 0x15; + sub_80141B4(gWigglytuffDialogue[gUnknown_203B290->isAsleep][17],0,gUnknown_203B290->unkCC,0x10d); + break; + case 0x1c: + gUnknown_203B290->fallbackState = 0x15; + sub_80141B4(gWigglytuffDialogue[gUnknown_203B290->isAsleep][18],0,gUnknown_203B290->unkCC,0x10d); + break; + } +} + +void sub_80222C8(void) +{ + s32 i; + s32 index = 0; + MemoryFill16(gUnknown_203B290->unk5C, 0, sizeof(gUnknown_203B290->unk5C)); + gUnknown_203B290->unk1C[index].text = *gUnknown_80D4978; + gUnknown_203B290->unk1C[index].menuAction = 2; + index++; + gUnknown_203B290->unk1C[index].text = *gWigglytuffCheck; + gUnknown_203B290->unk1C[index].menuAction = 3; + index++; + gUnknown_203B290->unk1C[index].text = *gUnknown_80D4970; + gUnknown_203B290->unk1C[index].menuAction = 4; + index++; + gUnknown_203B290->unk1C[index].text = *gUnknown_80D4934; + gUnknown_203B290->unk1C[index].menuAction = 1; + index++; + gUnknown_203B290->unk1C[index].text = NULL; + gUnknown_203B290->unk1C[index].menuAction = 1; + + for(i = 0; i < index; i++) + { + if(gUnknown_203B290->unk5C[i] == 0 && gUnknown_203B290->unk1C[i].menuAction == gUnknown_203B290->menuAction1) + return; + } + for(i = 0; i < index; i++) + { + if(gUnknown_203B290->unk5C[i] == 0) + { + gUnknown_203B290->menuAction1 = gUnknown_203B290->unk1C[i].menuAction; + break; + } + } +} + +void sub_8022380(void) +{ + s32 i; + s32 index = 0; + MemoryFill16(gUnknown_203B290->unk5C, 0, sizeof(gUnknown_203B290->unk5C)); + gUnknown_203B290->unk1C[index].text = *gUnknown_80D4978; + gUnknown_203B290->unk1C[index].menuAction = 2; + index++; + gUnknown_203B290->unk1C[index].text = *gUnknown_80D4970; + gUnknown_203B290->unk1C[index].menuAction = 4; + index++; + gUnknown_203B290->unk1C[index].text = NULL; + gUnknown_203B290->unk1C[index].menuAction = 1; + + for(i = 0; i < index; i++) + { + if(gUnknown_203B290->unk5C[i] == 0 && gUnknown_203B290->unk1C[i].menuAction == gUnknown_203B290->menuAction2) + return; + } + for(i = 0; i < index; i++) + { + if(gUnknown_203B290->unk5C[i] == 0) + { + gUnknown_203B290->menuAction2 = gUnknown_203B290->unk1C[i].menuAction; + break; + } + } +} + +void sub_8022420(void) +{ + s32 index = 0; + MemoryFill16(gUnknown_203B290->unk5C, 0, sizeof(gUnknown_203B290->unk5C)); + gUnknown_203B290->unk1C[index].text = *gUnknown_80D4920; + gUnknown_203B290->unk1C[index].menuAction = 5; + index++; + gUnknown_203B290->unk1C[index].text = *gUnknown_80D4928; + gUnknown_203B290->unk1C[index].menuAction = 6; + index++; + gUnknown_203B290->unk1C[index].text = NULL; + gUnknown_203B290->unk1C[index].menuAction = 1; +} + +void sub_8022460(void) +{ + s32 menuAction; + + if (sub_80144A4(&menuAction) == 0) + { + if (menuAction != 1) { + gUnknown_203B290->menuAction1 = menuAction; + } + switch(menuAction) + { + case 2: + if (sub_8021700(2) != 0) { + UpdateWigglytuffState(5); + } + else { + UpdateWigglytuffState(7); + } + break; + case 3: + UpdateWigglytuffState(0x14); + break; + case 4: + UpdateWigglytuffState(2); + break; + case 1: + UpdateWigglytuffState(3); + break; + } + } +} + +void sub_80224D4(void) +{ + s32 menuAction; + + if (sub_80144A4(&menuAction) == 0) { + switch(menuAction) + { + case 5: + gTeamInventory_203B460->teamMoney -= gUnknown_203B290->friendAreaPrice; + UnlockFriendArea(gUnknown_203B290->chosenFriendArea); + PlaySound(0x14C); + UpdateWigglytuffState(0xC); + break; + case 1: + case 6: + UpdateWigglytuffState(0xA); + break; + } + } +} + +void sub_8022538(void) +{ + switch(sub_8021274(1)) + { + case 3: + gUnknown_203B290->chosenFriendArea = sub_802132C(); + gUnknown_203B290->friendAreaPrice = GetFriendAreaPrice(gUnknown_203B290->chosenFriendArea); + UpdateWigglytuffState(0xB); + break; + case 4: + gUnknown_203B290->chosenFriendArea = sub_802132C(); + gUnknown_203B290->friendAreaPrice = GetFriendAreaPrice(gUnknown_203B290->chosenFriendArea); + UpdateWigglytuffState(0x10); + break; + case 0: + break; + case 2: + sub_80213A0(); + UpdateWigglytuffState(1); + break; + case 1: + default: + DrawTeamMoneyBox(1); + break; + } +} + +void sub_80225C8(void) +{ + s32 menuAction = 0; + sub_8021274(0); + if(sub_8012FD8(&gUnknown_203B290->unk6C) == 0) + { + sub_8013114(&gUnknown_203B290->unk6C, &menuAction); + if(menuAction != 1) gUnknown_203B290->menuAction2 = menuAction; + } + switch(menuAction) + { + case 2: + if(gTeamInventory_203B460->teamMoney == 0) + { + UpdateWigglytuffState(6); + } + else if(gUnknown_203B290->friendAreaPrice > gTeamInventory_203B460->teamMoney) + { + UpdateWigglytuffState(0x13); + } + else + { + UpdateWigglytuffState(0x11); + } + break; + case 4: + UpdateWigglytuffState(0x10); + break; + case 1: + UpdateWigglytuffState(10); + break; + } +} + +void sub_8022668(void) +{ + switch(sub_80217EC()) + { + case 2: + case 3: + sub_8021830(); + UpdateWigglytuffState(0xA); + break; + case 0: + case 1: + break; + } +} + +void sub_8022684(void) +{ + switch(sub_8023278(1)) + { + case 3: + gUnknown_203B290->chosenSpecies = sub_802331C(); + gUnknown_203B290->chosenFriendArea = GetFriendArea(gUnknown_203B290->chosenSpecies); + UpdateWigglytuffState(0x18); + break; + case 2: + sub_80233A0(); + UpdateWigglytuffState(1); + break; + case 0: + case 1: + break; + } +} + +void sub_80226CC(void) +{ + s32 temp; + + if (sub_80144A4(&temp) == 0) + { + UpdateWigglytuffState(gUnknown_203B290->fallbackState); + } +}