diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2020-03-12 14:14:16 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2020-03-12 14:14:16 -0400 |
commit | 748b4eafacb3a04bd4de64a0be30eab1a6704d7e (patch) | |
tree | 42c02ce83ca3e662fdda662ba172bf13a017545e | |
parent | 5422315db5069ba93ddfea39a705122751db2a6d (diff) |
through Cb_MainPSS
-rw-r--r-- | asm/pokemon_storage_system.s | 1566 | ||||
-rw-r--r-- | include/pokemon_storage_system_internal.h | 194 | ||||
-rw-r--r-- | src/pokemon_storage_system_3.c | 498 |
3 files changed, 928 insertions, 1330 deletions
diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s index 0fc4422b9..eb0349dea 100644 --- a/asm/pokemon_storage_system.s +++ b/asm/pokemon_storage_system.s @@ -5,966 +5,8 @@ .text - thumb_func_start sub_808CF94 -sub_808CF94: @ 808CF94 - push {lr} - bl sub_8092B50 - ldr r2, _0808CFB8 @ =sInPartyMenu - movs r1, 0 - ldr r0, _0808CFBC @ =sPSSData - ldr r0, [r0] - ldrb r0, [r0, 0x1] - cmp r0, 0x1 - bne _0808CFAA - movs r1, 0x1 -_0808CFAA: - strb r1, [r2] - ldr r1, _0808CFC0 @ =gUnknown_20397B6 - movs r0, 0 - strb r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0808CFB8: .4byte sInPartyMenu -_0808CFBC: .4byte sPSSData -_0808CFC0: .4byte gUnknown_20397B6 - thumb_func_end sub_808CF94 - - thumb_func_start sub_808CFC4 -sub_808CFC4: @ 808CFC4 - push {lr} - ldr r0, _0808CFF0 @ =sPSSData - ldr r0, [r0] - ldrb r0, [r0, 0x1] - cmp r0, 0x3 - bne _0808CFE2 - movs r1, 0xFC - lsls r1, 6 - movs r0, 0x50 - bl SetGpuReg - ldr r1, _0808CFF4 @ =0x00000b07 - movs r0, 0x52 - bl SetGpuReg -_0808CFE2: - movs r1, 0xFA - lsls r1, 5 - movs r0, 0 - bl SetGpuReg - pop {r0} - bx r0 - .align 2, 0 -_0808CFF0: .4byte sPSSData -_0808CFF4: .4byte 0x00000b07 - thumb_func_end sub_808CFC4 - - thumb_func_start add_to_c3_somehow -add_to_c3_somehow: @ 808CFF8 - push {r4,lr} - ldr r4, _0808D018 @ =gTasks - ldr r1, _0808D01C @ =sPSSData - ldr r3, [r1] - ldrb r2, [r3, 0x4] - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r1, r4 - str r0, [r1] - movs r0, 0 - strb r0, [r3] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808D018: .4byte gTasks -_0808D01C: .4byte sPSSData - thumb_func_end add_to_c3_somehow - - thumb_func_start task_box_related_3 -task_box_related_3: @ 808D020 - push {lr} - sub sp, 0x4 - ldr r0, _0808D03C @ =sPSSData - ldr r0, [r0] - ldrb r0, [r0] - cmp r0, 0xA - bls _0808D030 - b _0808D216 -_0808D030: - lsls r0, 2 - ldr r1, _0808D040 @ =_0808D044 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0808D03C: .4byte sPSSData -_0808D040: .4byte _0808D044 - .align 2, 0 -_0808D044: - .4byte _0808D070 - .4byte _0808D0C8 - .4byte _0808D0D6 - .4byte _0808D104 - .4byte _0808D120 - .4byte _0808D13E - .4byte _0808D15E - .4byte _0808D164 - .4byte _0808D16A - .4byte _0808D178 - .4byte _0808D1BE -_0808D070: - movs r0, 0 - bl SetVBlankCallback - movs r0, 0 - movs r1, 0 - bl SetGpuReg - bl sub_808CF10 - ldr r0, _0808D0A0 @ =sPSSData - ldr r0, [r0] - ldrb r0, [r0, 0x3] - cmp r0, 0 - beq _0808D0BE - ldr r0, _0808D0A4 @ =sWhichToReshow - ldrb r0, [r0] - cmp r0, 0x1 - beq _0808D0AE - cmp r0, 0x1 - bgt _0808D0A8 - cmp r0, 0 - beq _0808D0B4 - b _0808D0BE - .align 2, 0 -_0808D0A0: .4byte sPSSData -_0808D0A4: .4byte sWhichToReshow -_0808D0A8: - cmp r0, 0x2 - beq _0808D0BA - b _0808D0BE -_0808D0AE: - bl sub_8093660 - b _0808D0BE -_0808D0B4: - bl sub_80937B4 - b _0808D0BE -_0808D0BA: - bl sub_808EF0C -_0808D0BE: - bl sub_808EFE4 - bl sub_808F068 - b _0808D20C -_0808D0C8: - bl sub_808F044 - lsls r0, 24 - cmp r0, 0 - beq _0808D0D4 - b _0808D20C -_0808D0D4: - b _0808D148 -_0808D0D6: - movs r0, 0 - bl PutWindowTilemap - movs r0, 0x1 - bl ClearWindowTilemap - movs r0, 0 - str r0, [sp] - movs r1, 0xC0 - lsls r1, 19 - ldr r2, _0808D100 @ =0x05000080 - mov r0, sp - bl CpuSet - movs r0, 0x1 - movs r1, 0xB - movs r2, 0xE0 - bl TextWindow_SetUserSelectedFrame - b _0808D20C - .align 2, 0 -_0808D100: .4byte 0x05000080 -_0808D104: - bl ResetAllBgCoords - ldr r0, _0808D11C @ =sPSSData - ldr r0, [r0] - ldrb r0, [r0, 0x3] - cmp r0, 0 - beq _0808D114 - b _0808D20C -_0808D114: - bl sub_808CF94 - b _0808D20C - .align 2, 0 -_0808D11C: .4byte sPSSData -_0808D120: - bl sub_808FFAC - ldr r0, _0808D134 @ =sPSSData - ldr r0, [r0] - ldrb r0, [r0, 0x3] - cmp r0, 0 - bne _0808D138 - bl sub_80922C0 - b _0808D20C - .align 2, 0 -_0808D134: .4byte sPSSData -_0808D138: - bl sub_8092340 - b _0808D20C -_0808D13E: - bl sub_8095050 - lsls r0, 24 - cmp r0, 0 - bne _0808D154 -_0808D148: - ldr r0, _0808D150 @ =sub_808EE18 - bl add_to_c3_somehow - b _0808D216 - .align 2, 0 -_0808D150: .4byte sub_808EE18 -_0808D154: - bl sub_808EF8C - bl sub_808FB68 - b _0808D20C -_0808D15E: - bl sub_808F078 - b _0808D20C -_0808D164: - bl sub_808F68C - b _0808D20C -_0808D16A: - bl StorageGetCurrentBox - lsls r0, 24 - lsrs r0, 24 - bl sub_80913DC - b _0808D20C -_0808D178: - bl sub_809140C - lsls r0, 24 - cmp r0, 0 - bne _0808D216 - ldr r0, _0808D1A8 @ =sPSSData - ldr r2, [r0] - ldrb r0, [r2, 0x1] - cmp r0, 0x3 - beq _0808D1B4 - movs r1, 0xDA - lsls r1, 4 - adds r0, r2, r1 - movs r1, 0xD - strh r1, [r0] - ldr r1, _0808D1AC @ =0x00000da2 - adds r2, r1 - ldr r1, _0808D1B0 @ =0x0000dace - strh r1, [r2] - bl SetMonMarkingsMenuPointer - bl LoadMonMarkingsFrameGfx - b _0808D20C - .align 2, 0 -_0808D1A8: .4byte sPSSData -_0808D1AC: .4byte 0x00000da2 -_0808D1B0: .4byte 0x0000dace -_0808D1B4: - bl sub_8095B5C - bl sub_808FDFC - b _0808D20C -_0808D1BE: - bl sub_808CFC4 - ldr r0, _0808D1E0 @ =sPSSData - ldr r0, [r0] - ldrb r0, [r0, 0x3] - cmp r0, 0 - bne _0808D1E8 - movs r0, 0x1 - negs r0, r0 - movs r1, 0x10 - movs r2, 0 - bl BlendPalettes - ldr r0, _0808D1E4 @ =sub_808D220 - bl add_to_c3_somehow - b _0808D1FA - .align 2, 0 -_0808D1E0: .4byte sPSSData -_0808D1E4: .4byte sub_808D220 -_0808D1E8: - movs r0, 0x1 - negs r0, r0 - movs r1, 0x10 - movs r2, 0 - bl BlendPalettes - ldr r0, _0808D204 @ =sub_808D26C - bl add_to_c3_somehow -_0808D1FA: - ldr r0, _0808D208 @ =VblankCb_PSS - bl SetVBlankCallback - b _0808D216 - .align 2, 0 -_0808D204: .4byte sub_808D26C -_0808D208: .4byte VblankCb_PSS -_0808D20C: - ldr r0, _0808D21C @ =sPSSData - ldr r1, [r0] - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_0808D216: - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_0808D21C: .4byte sPSSData - thumb_func_end task_box_related_3 - - thumb_func_start sub_808D220 -sub_808D220: @ 808D220 - push {r4,lr} - ldr r4, _0808D234 @ =sPSSData - ldr r0, [r4] - ldrb r0, [r0] - cmp r0, 0 - beq _0808D238 - cmp r0, 0x1 - beq _0808D252 - b _0808D262 - .align 2, 0 -_0808D234: .4byte sPSSData -_0808D238: - movs r0, 0x2 - bl PlaySE - movs r0, 0x14 - movs r1, 0 - movs r2, 0x1 - bl sub_80A0A48 - ldr r1, [r4] - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0808D262 -_0808D252: - bl sub_80A0A98 - lsls r0, 24 - cmp r0, 0 - bne _0808D262 - ldr r0, _0808D268 @ =sub_808D2BC - bl add_to_c3_somehow -_0808D262: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808D268: .4byte sub_808D2BC - thumb_func_end sub_808D220 - - thumb_func_start sub_808D26C -sub_808D26C: @ 808D26C - push {r4,lr} - sub sp, 0x4 - ldr r4, _0808D280 @ =sPSSData - ldr r0, [r4] - ldrb r0, [r0] - cmp r0, 0 - beq _0808D284 - cmp r0, 0x1 - beq _0808D29E - b _0808D2AE - .align 2, 0 -_0808D280: .4byte sPSSData -_0808D284: - movs r1, 0x1 - negs r1, r1 - str r0, [sp] - adds r0, r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r1, [r4] - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0808D2AE -_0808D29E: - bl UpdatePaletteFade - lsls r0, 24 - cmp r0, 0 - bne _0808D2AE - ldr r0, _0808D2B8 @ =sub_808D2BC - bl add_to_c3_somehow -_0808D2AE: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808D2B8: .4byte sub_808D2BC - thumb_func_end sub_808D26C - - thumb_func_start sub_808D2BC -sub_808D2BC: @ 808D2BC - push {r4,r5,lr} - ldr r0, _0808D2D4 @ =sPSSData - ldr r0, [r0] - ldrb r0, [r0] - cmp r0, 0xB - bls _0808D2CA - b _0808D7B2 -_0808D2CA: - lsls r0, 2 - ldr r1, _0808D2D8 @ =_0808D2DC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0808D2D4: .4byte sPSSData -_0808D2D8: .4byte _0808D2DC - .align 2, 0 -_0808D2DC: - .4byte _0808D30C - .4byte _0808D630 - .4byte _0808D670 - .4byte _0808D6C8 - .4byte _0808D6EC - .4byte _0808D6F6 - .4byte _0808D710 - .4byte _0808D730 - .4byte _0808D736 - .4byte _0808D74C - .4byte _0808D778 - .4byte _0808D7A0 -_0808D30C: - bl sub_80948B4 - lsls r0, 24 - lsrs r0, 24 - subs r0, 0x1 - cmp r0, 0x19 - bls _0808D31C - b _0808D7B2 -_0808D31C: - lsls r0, 2 - ldr r1, _0808D328 @ =_0808D32C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0808D328: .4byte _0808D32C - .align 2, 0 -_0808D32C: - .4byte _0808D394 - .4byte _0808D7B2 - .4byte _0808D7B2 - .4byte _0808D424 - .4byte _0808D3A8 - .4byte _0808D3DC - .4byte _0808D43C - .4byte _0808D450 - .4byte _0808D45C - .4byte _0808D494 - .4byte _0808D4D8 - .4byte _0808D55C - .4byte _0808D51C - .4byte _0808D52E - .4byte _0808D570 - .4byte _0808D584 - .4byte _0808D598 - .4byte _0808D5AC - .4byte _0808D430 - .4byte _0808D5C0 - .4byte _0808D5E0 - .4byte _0808D5CA - .4byte _0808D5EA - .4byte _0808D628 - .4byte _0808D5EE - .4byte _0808D608 -_0808D394: - movs r0, 0x5 - bl PlaySE - ldr r0, _0808D3A4 @ =sPSSData - ldr r1, [r0] - movs r0, 0x1 - strb r0, [r1] - b _0808D7B2 - .align 2, 0 -_0808D3A4: .4byte sPSSData -_0808D3A8: - ldr r4, _0808D3C8 @ =sPSSData - ldr r0, [r4] - ldrb r0, [r0, 0x1] - subs r0, 0x2 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bls _0808D3CC - movs r0, 0x10 - bl sub_808FBA4 - ldr r1, [r4] - movs r0, 0x3 - strb r0, [r1] - b _0808D7B2 - .align 2, 0 -_0808D3C8: .4byte sPSSData -_0808D3CC: - bl sub_8092B50 - ldr r0, _0808D3D8 @ =sub_808D7BC - bl add_to_c3_somehow - b _0808D7B2 - .align 2, 0 -_0808D3D8: .4byte sub_808D7BC -_0808D3DC: - ldr r4, _0808D408 @ =sPSSData - ldr r0, [r4] - ldrb r0, [r0, 0x1] - cmp r0, 0x2 - bne _0808D410 - bl sub_80939A0 - lsls r0, 24 - cmp r0, 0 - beq _0808D416 - ldr r0, [r4] - ldr r1, _0808D40C @ =0x00000ce2 - adds r0, r1 - ldrh r0, [r0] - bl ItemIsMail - lsls r0, 24 - cmp r0, 0 - beq _0808D404 - b _0808D4F6 -_0808D404: - b _0808D416 - .align 2, 0 -_0808D408: .4byte sPSSData -_0808D40C: .4byte 0x00000ce2 -_0808D410: - cmp r0, 0x3 - beq _0808D416 - b _0808D7B2 -_0808D416: - ldr r0, _0808D420 @ =sub_808D7FC - bl add_to_c3_somehow - b _0808D7B2 - .align 2, 0 -_0808D420: .4byte sub_808D7FC -_0808D424: - ldr r0, _0808D42C @ =sub_808EBB0 - bl add_to_c3_somehow - b _0808D7B2 - .align 2, 0 -_0808D42C: .4byte sub_808EBB0 -_0808D430: - ldr r0, _0808D438 @ =sub_808ECE4 - bl add_to_c3_somehow - b _0808D7B2 - .align 2, 0 -_0808D438: .4byte sub_808ECE4 -_0808D43C: - movs r0, 0x5 - bl PlaySE - ldr r0, _0808D44C @ =box_related - bl add_to_c3_somehow - b _0808D7B2 - .align 2, 0 -_0808D44C: .4byte box_related -_0808D450: - ldr r0, _0808D458 @ =sub_808D878 - bl add_to_c3_somehow - b _0808D7B2 - .align 2, 0 -_0808D458: .4byte sub_808D878 -_0808D45C: - movs r0, 0x5 - bl PlaySE - bl StorageGetCurrentBox - ldr r4, _0808D48C @ =sPSSData - ldr r1, [r4] - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x1 - ldr r2, _0808D490 @ =0x000002ca - adds r1, r2 - strh r0, [r1] - cmp r0, 0xD - ble _0808D47E - movs r0, 0 - strh r0, [r1] -_0808D47E: - ldr r1, [r4] - ldrb r0, [r1, 0x1] - cmp r0, 0x3 - beq _0808D4CC - adds r0, r1, r2 - b _0808D78A - .align 2, 0 -_0808D48C: .4byte sPSSData -_0808D490: .4byte 0x000002ca -_0808D494: - movs r0, 0x5 - bl PlaySE - bl StorageGetCurrentBox - ldr r4, _0808D4C4 @ =sPSSData - ldr r1, [r4] - lsls r0, 24 - lsrs r0, 24 - subs r0, 0x1 - ldr r2, _0808D4C8 @ =0x000002ca - adds r1, r2 - strh r0, [r1] - cmp r0, 0 - bge _0808D4B6 - movs r0, 0xD - strh r0, [r1] -_0808D4B6: - ldr r1, [r4] - ldrb r0, [r1, 0x1] - cmp r0, 0x3 - beq _0808D4CC - adds r0, r1, r2 - b _0808D78A - .align 2, 0 -_0808D4C4: .4byte sPSSData -_0808D4C8: .4byte 0x000002ca -_0808D4CC: - bl sub_8094D60 - ldr r1, [r4] - movs r0, 0xA - strb r0, [r1] - b _0808D7B2 -_0808D4D8: - bl sub_8093900 - lsls r0, 24 - cmp r0, 0 - bne _0808D538 - ldr r4, _0808D500 @ =sPSSData - ldr r0, [r4] - ldr r1, _0808D504 @ =0x00000ce2 - adds r0, r1 - ldrh r0, [r0] - bl ItemIsMail - lsls r0, 24 - cmp r0, 0 - beq _0808D508 -_0808D4F6: - ldr r1, [r4] - movs r0, 0x5 - strb r0, [r1] - b _0808D7B2 - .align 2, 0 -_0808D500: .4byte sPSSData -_0808D504: .4byte 0x00000ce2 -_0808D508: - movs r0, 0x5 - bl PlaySE - ldr r0, _0808D518 @ =sub_808DD88 - bl add_to_c3_somehow - b _0808D7B2 - .align 2, 0 -_0808D518: .4byte sub_808DD88 -_0808D51C: - bl sub_8093900 - lsls r0, 24 - cmp r0, 0 - bne _0808D538 - movs r0, 0x5 - bl PlaySE - b _0808D740 -_0808D52E: - bl sub_809393C - lsls r0, 24 - cmp r0, 0 - bne _0808D548 -_0808D538: - ldr r0, _0808D544 @ =sPSSData - ldr r1, [r0] - movs r0, 0x4 - strb r0, [r1] - b _0808D7B2 - .align 2, 0 -_0808D544: .4byte sPSSData -_0808D548: - movs r0, 0x5 - bl PlaySE - ldr r0, _0808D558 @ =sub_808DC50 - bl add_to_c3_somehow - b _0808D7B2 - .align 2, 0 -_0808D558: .4byte sub_808DC50 -_0808D55C: - movs r0, 0x5 - bl PlaySE - ldr r0, _0808D56C @ =sub_808DC9C - bl add_to_c3_somehow - b _0808D7B2 - .align 2, 0 -_0808D56C: .4byte sub_808DC9C -_0808D570: - movs r0, 0x5 - bl PlaySE - ldr r0, _0808D580 @ =sub_808DBF0 - bl add_to_c3_somehow - b _0808D7B2 - .align 2, 0 -_0808D580: .4byte sub_808DBF0 -_0808D584: - movs r0, 0x5 - bl PlaySE - ldr r0, _0808D594 @ =sub_808E140 - bl add_to_c3_somehow - b _0808D7B2 - .align 2, 0 -_0808D594: .4byte sub_808E140 -_0808D598: - movs r0, 0x5 - bl PlaySE - ldr r0, _0808D5A8 @ =sub_808E1F4 - bl add_to_c3_somehow - b _0808D7B2 - .align 2, 0 -_0808D5A8: .4byte sub_808E1F4 -_0808D5AC: - movs r0, 0x5 - bl PlaySE - ldr r0, _0808D5BC @ =sub_808E3C8 - bl add_to_c3_somehow - b _0808D7B2 - .align 2, 0 -_0808D5BC: .4byte sub_808E3C8 -_0808D5C0: - movs r0, 0x5 - bl PlaySE - movs r0, 0 - b _0808D616 -_0808D5CA: - movs r0, 0x1 - bl sub_80950BC - ldr r0, _0808D5DC @ =sPSSData - ldr r1, [r0] - movs r0, 0x8 - strb r0, [r1] - b _0808D7B2 - .align 2, 0 -_0808D5DC: .4byte sPSSData -_0808D5E0: - movs r0, 0x5 - bl PlaySE - movs r0, 0x2 - b _0808D5F6 -_0808D5EA: - movs r0, 0x3 - b _0808D616 -_0808D5EE: - movs r0, 0x5 - bl PlaySE - movs r0, 0x4 -_0808D5F6: - bl sub_80950BC - ldr r0, _0808D604 @ =sPSSData - ldr r1, [r0] - movs r0, 0x9 - strb r0, [r1] - b _0808D7B2 - .align 2, 0 -_0808D604: .4byte sPSSData -_0808D608: - movs r0, 0x5 - bl PlaySE - movs r0, 0x3 - bl sub_808FE54 - movs r0, 0x5 -_0808D616: - bl sub_80950BC - ldr r0, _0808D624 @ =sPSSData - ldr r1, [r0] - movs r0, 0x7 - strb r0, [r1] - b _0808D7B2 - .align 2, 0 -_0808D624: .4byte sPSSData -_0808D628: - movs r0, 0x1A - bl PlaySE - b _0808D7B2 -_0808D630: - bl sub_80924A8 - lsls r0, 24 - cmp r0, 0 - beq _0808D63C - b _0808D7B2 -_0808D63C: - bl sub_80939C8 - lsls r0, 24 - cmp r0, 0 - beq _0808D64C - bl sub_808F948 - b _0808D650 -_0808D64C: - bl sub_808F974 -_0808D650: - ldr r4, _0808D668 @ =sPSSData - ldr r0, [r4] - ldr r1, _0808D66C @ =0x00000ce6 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _0808D662 - bl BoxSetMosaic -_0808D662: - ldr r1, [r4] - b _0808D6DC - .align 2, 0 -_0808D668: .4byte sPSSData -_0808D66C: .4byte 0x00000ce6 -_0808D670: - bl sub_80915FC - lsls r0, 24 - cmp r0, 0 - beq _0808D67C - b _0808D7B2 -_0808D67C: - ldr r0, _0808D6BC @ =sPSSData - ldr r0, [r0] - ldr r1, _0808D6C0 @ =0x000002ca - adds r0, r1 - ldrb r0, [r0] - bl SetCurrentBox - ldr r0, _0808D6C4 @ =sInPartyMenu - ldrb r0, [r0] - cmp r0, 0 - bne _0808D6A4 - bl sub_80939A0 - lsls r0, 24 - cmp r0, 0 - bne _0808D6A4 - bl sub_8092F54 - bl BoxSetMosaic -_0808D6A4: - ldr r4, _0808D6BC @ =sPSSData - ldr r1, [r4] - ldrb r0, [r1, 0x1] - cmp r0, 0x3 - bne _0808D6DC - bl sub_8094D84 - ldr r1, [r4] - movs r0, 0xB - strb r0, [r1] - b _0808D7B2 - .align 2, 0 -_0808D6BC: .4byte sPSSData -_0808D6C0: .4byte 0x000002ca -_0808D6C4: .4byte sInPartyMenu -_0808D6C8: - ldr r0, _0808D6E4 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0xF3 - ands r0, r1 - cmp r0, 0 - beq _0808D7B2 - bl sub_808FD20 - ldr r0, _0808D6E8 @ =sPSSData - ldr r1, [r0] -_0808D6DC: - movs r0, 0 - strb r0, [r1] - b _0808D7B2 - .align 2, 0 -_0808D6E4: .4byte gMain -_0808D6E8: .4byte sPSSData -_0808D6EC: - movs r0, 0x1A - bl PlaySE - movs r0, 0xD - b _0808D6FE -_0808D6F6: - movs r0, 0x1A - bl PlaySE - movs r0, 0x16 -_0808D6FE: - bl sub_808FBA4 - ldr r0, _0808D70C @ =sPSSData - ldr r1, [r0] - movs r0, 0x6 - strb r0, [r1] - b _0808D7B2 - .align 2, 0 -_0808D70C: .4byte sPSSData -_0808D710: - ldr r0, _0808D728 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0xF3 - ands r0, r1 - cmp r0, 0 - beq _0808D7B2 - bl sub_808FD20 - ldr r0, _0808D72C @ =sub_808D2BC - bl add_to_c3_somehow - b _0808D7B2 - .align 2, 0 -_0808D728: .4byte gMain -_0808D72C: .4byte sub_808D2BC -_0808D730: - bl sub_80950D0 - b _0808D7A4 -_0808D736: - bl sub_80950D0 - lsls r0, 24 - cmp r0, 0 - bne _0808D7B2 -_0808D740: - ldr r0, _0808D748 @ =sub_808DB94 - bl add_to_c3_somehow - b _0808D7B2 - .align 2, 0 -_0808D748: .4byte sub_808DB94 -_0808D74C: - bl sub_80950D0 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _0808D7B2 - ldr r5, _0808D770 @ =sPSSData - ldr r0, [r5] - ldr r1, _0808D774 @ =0x00000ce6 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _0808D76A - bl BoxSetMosaic -_0808D76A: - ldr r0, [r5] - strb r4, [r0] - b _0808D7B2 - .align 2, 0 -_0808D770: .4byte sPSSData -_0808D774: .4byte 0x00000ce6 -_0808D778: - bl sub_809610C - lsls r0, 24 - cmp r0, 0 - bne _0808D7B2 - ldr r4, _0808D798 @ =sPSSData - ldr r0, [r4] - ldr r1, _0808D79C @ =0x000002ca - adds r0, r1 -_0808D78A: - ldrb r0, [r0] - bl sub_8091514 - ldr r1, [r4] - movs r0, 0x2 - strb r0, [r1] - b _0808D7B2 - .align 2, 0 -_0808D798: .4byte sPSSData -_0808D79C: .4byte 0x000002ca -_0808D7A0: - bl sub_809610C -_0808D7A4: - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _0808D7B2 - ldr r0, _0808D7B8 @ =sPSSData - ldr r0, [r0] - strb r1, [r0] -_0808D7B2: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0808D7B8: .4byte sPSSData - thumb_func_end sub_808D2BC - - thumb_func_start sub_808D7BC -sub_808D7BC: @ 808D7BC + thumb_func_start Cb_ShowPartyPokemon +Cb_ShowPartyPokemon: @ 808D7BC push {r4,lr} ldr r4, _0808D7D0 @ =sPSSData ldr r0, [r4] @@ -988,18 +30,18 @@ _0808D7E2: lsls r0, 24 cmp r0, 0 bne _0808D7F2 - ldr r0, _0808D7F8 @ =sub_808D2BC - bl add_to_c3_somehow + ldr r0, _0808D7F8 @ =Cb_MainPSS + bl SetPSSCallback _0808D7F2: pop {r4} pop {r0} bx r0 .align 2, 0 -_0808D7F8: .4byte sub_808D2BC - thumb_func_end sub_808D7BC +_0808D7F8: .4byte Cb_MainPSS + thumb_func_end Cb_ShowPartyPokemon - thumb_func_start sub_808D7FC -sub_808D7FC: @ 808D7FC + thumb_func_start Cb_HidePartyPokemon +Cb_HidePartyPokemon: @ 808D7FC push {r4,lr} ldr r4, _0808D814 @ =sPSSData ldr r0, [r4] @@ -1050,19 +92,19 @@ _0808D84A: beq _0808D864 bl BoxSetMosaic _0808D864: - ldr r0, _0808D874 @ =sub_808D2BC - bl add_to_c3_somehow + ldr r0, _0808D874 @ =Cb_MainPSS + bl SetPSSCallback _0808D86A: pop {r4} pop {r0} bx r0 .align 2, 0 _0808D870: .4byte 0x00000ce6 -_0808D874: .4byte sub_808D2BC - thumb_func_end sub_808D7FC +_0808D874: .4byte Cb_MainPSS + thumb_func_end Cb_HidePartyPokemon - thumb_func_start sub_808D878 -sub_808D878: @ 808D878 + thumb_func_start Cb_OnSelectedMon +Cb_OnSelectedMon: @ 808D878 push {r4,lr} ldr r0, _0808D890 @ =sPSSData ldr r0, [r0] @@ -1103,7 +145,7 @@ _0808D8C0: cmp r0, 0x3 beq _0808D8DC movs r0, 0x4 - bl sub_808FBA4 + bl PrintStorageActionText b _0808D906 .align 2, 0 _0808D8D8: .4byte sPSSData @@ -1120,13 +162,13 @@ _0808D8DC: beq _0808D900 _0808D8F2: movs r0, 0x17 - bl sub_808FBA4 + bl PrintStorageActionText b _0808D906 .align 2, 0 _0808D8FC: .4byte 0x00000ce2 _0808D900: movs r0, 0x18 - bl sub_808FBA4 + bl PrintStorageActionText _0808D906: bl sub_8094E88 ldr r0, _0808D914 @ =sPSSData @@ -1188,58 +230,58 @@ _0808D954: .4byte _0808DB10 .4byte _0808DB34 _0808D9A0: - bl sub_808FD20 - ldr r0, _0808D9AC @ =sub_808D2BC - bl add_to_c3_somehow + bl ClearBottomWindow + ldr r0, _0808D9AC @ =Cb_MainPSS + bl SetPSSCallback b _0808DB86 .align 2, 0 -_0808D9AC: .4byte sub_808D2BC +_0808D9AC: .4byte Cb_MainPSS _0808D9B0: - bl sub_8093900 + bl CanMovePartyMon lsls r0, 24 cmp r0, 0 bne _0808DA66 movs r0, 0x5 bl PlaySE - bl sub_808FD20 - ldr r0, _0808D9CC @ =sub_808DB94 - bl add_to_c3_somehow + bl ClearBottomWindow + ldr r0, _0808D9CC @ =Cb_MoveMon + bl SetPSSCallback b _0808DB86 .align 2, 0 -_0808D9CC: .4byte sub_808DB94 +_0808D9CC: .4byte Cb_MoveMon _0808D9D0: movs r0, 0x5 bl PlaySE - bl sub_808FD20 - ldr r0, _0808D9E4 @ =sub_808DBF0 - bl add_to_c3_somehow + bl ClearBottomWindow + ldr r0, _0808D9E4 @ =Cb_PlaceMon + bl SetPSSCallback b _0808DB86 .align 2, 0 -_0808D9E4: .4byte sub_808DBF0 +_0808D9E4: .4byte Cb_PlaceMon _0808D9E8: - bl sub_809393C + bl CanShiftMon lsls r0, 24 cmp r0, 0 beq _0808DA66 movs r0, 0x5 bl PlaySE - bl sub_808FD20 - ldr r0, _0808DA04 @ =sub_808DC50 - bl add_to_c3_somehow + bl ClearBottomWindow + ldr r0, _0808DA04 @ =Cb_ShiftMon + bl SetPSSCallback b _0808DB86 .align 2, 0 -_0808DA04: .4byte sub_808DC50 +_0808DA04: .4byte Cb_ShiftMon _0808DA08: movs r0, 0x5 bl PlaySE - bl sub_808FD20 - ldr r0, _0808DA1C @ =sub_808DC9C - bl add_to_c3_somehow + bl ClearBottomWindow + ldr r0, _0808DA1C @ =Cb_WithdrawMon + bl SetPSSCallback b _0808DB86 .align 2, 0 -_0808DA1C: .4byte sub_808DC9C +_0808DA1C: .4byte Cb_WithdrawMon _0808DA20: - bl sub_8093900 + bl CanMovePartyMon lsls r0, 24 cmp r0, 0 bne _0808DA66 @@ -1254,16 +296,16 @@ _0808DA20: bne _0808DAA0 movs r0, 0x5 bl PlaySE - bl sub_808FD20 - ldr r0, _0808DA58 @ =sub_808DD88 - bl add_to_c3_somehow + bl ClearBottomWindow + ldr r0, _0808DA58 @ =Cb_DepositMenu + bl SetPSSCallback b _0808DB86 .align 2, 0 _0808DA50: .4byte sPSSData _0808DA54: .4byte 0x00000ce2 -_0808DA58: .4byte sub_808DD88 +_0808DA58: .4byte Cb_DepositMenu _0808DA5C: - bl sub_8093900 + bl CanMovePartyMon lsls r0, 24 cmp r0, 0 beq _0808DA74 @@ -1308,7 +350,7 @@ _0808DAAC: movs r0, 0x5 bl PlaySE ldr r0, _0808DABC @ =sub_808DECC - bl add_to_c3_somehow + bl SetPSSCallback b _0808DB86 .align 2, 0 _0808DABC: .4byte sub_808DECC @@ -1316,7 +358,7 @@ _0808DAC0: movs r0, 0x5 bl PlaySE ldr r0, _0808DAD0 @ =sub_808EAF0 - bl add_to_c3_somehow + bl SetPSSCallback b _0808DB86 .align 2, 0 _0808DAD0: .4byte sub_808EAF0 @@ -1324,47 +366,47 @@ _0808DAD4: movs r0, 0x5 bl PlaySE ldr r0, _0808DAE4 @ =sub_808E0BC - bl add_to_c3_somehow + bl SetPSSCallback b _0808DB86 .align 2, 0 _0808DAE4: .4byte sub_808E0BC _0808DAE8: movs r0, 0x5 bl PlaySE - ldr r0, _0808DAF8 @ =sub_808E140 - bl add_to_c3_somehow + ldr r0, _0808DAF8 @ =Cb_TakeItemForMoving + bl SetPSSCallback b _0808DB86 .align 2, 0 -_0808DAF8: .4byte sub_808E140 +_0808DAF8: .4byte Cb_TakeItemForMoving _0808DAFC: movs r0, 0x5 bl PlaySE - ldr r0, _0808DB0C @ =sub_808E1F4 - bl add_to_c3_somehow + ldr r0, _0808DB0C @ =Cb_GiveMovingItemToMon + bl SetPSSCallback b _0808DB86 .align 2, 0 -_0808DB0C: .4byte sub_808E1F4 +_0808DB0C: .4byte Cb_GiveMovingItemToMon _0808DB10: ldr r0, _0808DB18 @ =sub_808E2B0 - bl add_to_c3_somehow + bl SetPSSCallback b _0808DB86 .align 2, 0 _0808DB18: .4byte sub_808E2B0 _0808DB1C: - ldr r0, _0808DB24 @ =sub_808E3C8 - bl add_to_c3_somehow + ldr r0, _0808DB24 @ =Cb_SwitchSelectedItem + bl SetPSSCallback b _0808DB86 .align 2, 0 -_0808DB24: .4byte sub_808E3C8 +_0808DB24: .4byte Cb_SwitchSelectedItem _0808DB28: ldr r0, _0808DB30 @ =sub_808EB50 - bl add_to_c3_somehow + bl SetPSSCallback b _0808DB86 .align 2, 0 _0808DB30: .4byte sub_808EB50 _0808DB34: ldr r0, _0808DB3C @ =sub_808E4B0 - bl add_to_c3_somehow + bl SetPSSCallback b _0808DB86 .align 2, 0 _0808DB3C: .4byte sub_808E4B0 @@ -1383,7 +425,7 @@ _0808DB54: bl PlaySE movs r0, 0x16 _0808DB5C: - bl sub_808FBA4 + bl PrintStorageActionText ldr r0, _0808DB6C @ =sPSSData ldr r1, [r0] movs r0, 0x6 @@ -1398,20 +440,20 @@ _0808DB70: ands r0, r1 cmp r0, 0 beq _0808DB86 - bl sub_808FD20 - ldr r0, _0808DB90 @ =sub_808D2BC - bl add_to_c3_somehow + bl ClearBottomWindow + ldr r0, _0808DB90 @ =Cb_MainPSS + bl SetPSSCallback _0808DB86: pop {r4} pop {r0} bx r0 .align 2, 0 _0808DB8C: .4byte gMain -_0808DB90: .4byte sub_808D2BC - thumb_func_end sub_808D878 +_0808DB90: .4byte Cb_MainPSS + thumb_func_end Cb_OnSelectedMon - thumb_func_start sub_808DB94 -sub_808DB94: @ 808DB94 + thumb_func_start Cb_MoveMon +Cb_MoveMon: @ 808DB94 push {r4,lr} ldr r4, _0808DBA8 @ =sPSSData ldr r0, [r4] @@ -1441,24 +483,24 @@ _0808DBBC: cmp r0, 0 beq _0808DBE0 ldr r0, _0808DBDC @ =sub_808E688 - bl add_to_c3_somehow + bl SetPSSCallback b _0808DBE6 .align 2, 0 _0808DBD8: .4byte sInPartyMenu _0808DBDC: .4byte sub_808E688 _0808DBE0: - ldr r0, _0808DBEC @ =sub_808D2BC - bl add_to_c3_somehow + ldr r0, _0808DBEC @ =Cb_MainPSS + bl SetPSSCallback _0808DBE6: pop {r4} pop {r0} bx r0 .align 2, 0 -_0808DBEC: .4byte sub_808D2BC - thumb_func_end sub_808DB94 +_0808DBEC: .4byte Cb_MainPSS + thumb_func_end Cb_MoveMon - thumb_func_start sub_808DBF0 -sub_808DBF0: @ 808DBF0 + thumb_func_start Cb_PlaceMon +Cb_PlaceMon: @ 808DBF0 push {r4,lr} ldr r4, _0808DC04 @ =sPSSData ldr r0, [r4] @@ -1490,24 +532,24 @@ _0808DC1E: cmp r0, 0 beq _0808DC40 ldr r0, _0808DC3C @ =sub_808E688 - bl add_to_c3_somehow + bl SetPSSCallback b _0808DC46 .align 2, 0 _0808DC38: .4byte sInPartyMenu _0808DC3C: .4byte sub_808E688 _0808DC40: - ldr r0, _0808DC4C @ =sub_808D2BC - bl add_to_c3_somehow + ldr r0, _0808DC4C @ =Cb_MainPSS + bl SetPSSCallback _0808DC46: pop {r4} pop {r0} bx r0 .align 2, 0 -_0808DC4C: .4byte sub_808D2BC - thumb_func_end sub_808DBF0 +_0808DC4C: .4byte Cb_MainPSS + thumb_func_end Cb_PlaceMon - thumb_func_start sub_808DC50 -sub_808DC50: @ 808DC50 + thumb_func_start Cb_ShiftMon +Cb_ShiftMon: @ 808DC50 push {r4,lr} ldr r4, _0808DC64 @ =sPSSData ldr r0, [r4] @@ -1535,18 +577,18 @@ _0808DC7E: cmp r0, 0 bne _0808DC92 bl BoxSetMosaic - ldr r0, _0808DC98 @ =sub_808D2BC - bl add_to_c3_somehow + ldr r0, _0808DC98 @ =Cb_MainPSS + bl SetPSSCallback _0808DC92: pop {r4} pop {r0} bx r0 .align 2, 0 -_0808DC98: .4byte sub_808D2BC - thumb_func_end sub_808DC50 +_0808DC98: .4byte Cb_MainPSS + thumb_func_end Cb_ShiftMon - thumb_func_start sub_808DC9C -sub_808DC9C: @ 808DC9C + thumb_func_start Cb_WithdrawMon +Cb_WithdrawMon: @ 808DC9C push {lr} ldr r0, _0808DCB4 @ =sPSSData ldr r0, [r0] @@ -1576,7 +618,7 @@ _0808DCD4: cmp r0, 0x6 bne _0808DCF4 movs r0, 0xE - bl sub_808FBA4 + bl PrintStorageActionText ldr r0, _0808DCF0 @ =sPSSData ldr r1, [r0] movs r0, 0x1 @@ -1602,13 +644,13 @@ _0808DD0C: ands r0, r1 cmp r0, 0 beq _0808DD7E - bl sub_808FD20 - ldr r0, _0808DD28 @ =sub_808D2BC - bl add_to_c3_somehow + bl ClearBottomWindow + ldr r0, _0808DD28 @ =Cb_MainPSS + bl SetPSSCallback b _0808DD7E .align 2, 0 _0808DD24: .4byte gMain -_0808DD28: .4byte sub_808D2BC +_0808DD28: .4byte Cb_MainPSS _0808DD2C: bl sub_8092BF8 lsls r0, 24 @@ -1644,17 +686,17 @@ _0808DD68: .align 2, 0 _0808DD74: .4byte sPSSData _0808DD78: - ldr r0, _0808DD84 @ =sub_808D7FC - bl add_to_c3_somehow + ldr r0, _0808DD84 @ =Cb_HidePartyPokemon + bl SetPSSCallback _0808DD7E: pop {r0} bx r0 .align 2, 0 -_0808DD84: .4byte sub_808D7FC - thumb_func_end sub_808DC9C +_0808DD84: .4byte Cb_HidePartyPokemon + thumb_func_end Cb_WithdrawMon - thumb_func_start sub_808DD88 -sub_808DD88: @ 808DD88 + thumb_func_start Cb_DepositMenu +Cb_DepositMenu: @ 808DD88 push {r4,lr} sub sp, 0x4 ldr r0, _0808DDA4 @ =sPSSData @@ -1681,7 +723,7 @@ _0808DDAC: .4byte _0808DEA0 _0808DDC0: movs r0, 0x6 - bl sub_808FBA4 + bl PrintStorageActionText ldr r4, _0808DDEC @ =sPSSData ldr r0, [r4] ldr r1, _0808DDF0 @ =0x00001e58 @@ -1713,7 +755,7 @@ _0808DDFC: beq _0808DEBA cmp r0, 0xC9 bne _0808DE1C - bl sub_808FD20 + bl ClearBottomWindow bl sub_808C950 bl sub_808C8FC b _0808DE92 @@ -1727,7 +769,7 @@ _0808DE1C: strb r4, [r0] movs r0, 0x2 bl sub_808FE54 - bl sub_808FD20 + bl ClearBottomWindow bl sub_808C950 bl sub_808C8FC ldr r0, _0808DE4C @ =sPSSData @@ -1739,7 +781,7 @@ _0808DE48: .4byte gUnknown_20397B6 _0808DE4C: .4byte sPSSData _0808DE50: movs r0, 0x8 - bl sub_808FBA4 + bl PrintStorageActionText ldr r0, _0808DE60 @ =sPSSData ldr r1, [r0] movs r0, 0x4 @@ -1765,11 +807,11 @@ _0808DE7C: bl BoxSetMosaic bl sub_808FAA8 _0808DE92: - ldr r0, _0808DE9C @ =sub_808D2BC - bl add_to_c3_somehow + ldr r0, _0808DE9C @ =Cb_MainPSS + bl SetPSSCallback b _0808DEBA .align 2, 0 -_0808DE9C: .4byte sub_808D2BC +_0808DE9C: .4byte Cb_MainPSS _0808DEA0: ldr r0, _0808DEC4 @ =gMain ldrh r1, [r0, 0x2E] @@ -1778,7 +820,7 @@ _0808DEA0: cmp r0, 0 beq _0808DEBA movs r0, 0x6 - bl sub_808FBA4 + bl PrintStorageActionText ldr r0, _0808DEC8 @ =sPSSData ldr r1, [r0] movs r0, 0x1 @@ -1792,7 +834,7 @@ _0808DEBA: .align 2, 0 _0808DEC4: .4byte gMain _0808DEC8: .4byte sPSSData - thumb_func_end sub_808DD88 + thumb_func_end Cb_DepositMenu thumb_func_start sub_808DECC sub_808DECC: @ 808DECC @@ -1830,7 +872,7 @@ _0808DEEC: .4byte _0808E098 _0808DF24: movs r0, 0x9 - bl sub_808FBA4 + bl PrintStorageActionText movs r0, 0x1 bl sub_808FCE8 ldr r0, _0808DF54 @ =sPSSData @@ -1858,10 +900,10 @@ _0808DF58: beq _0808DF5E b _0808E0AE _0808DF5E: - bl sub_808FD20 + bl ClearBottomWindow b _0808E010 _0808DF64: - bl sub_808FD20 + bl ClearBottomWindow bl sub_809328C bl sub_8093194 b _0808E074 @@ -1910,7 +952,7 @@ _0808DFBC: ands r0, r1 cmp r0, 0 beq _0808E0AE - bl sub_808FD20 + bl ClearBottomWindow ldr r0, _0808DFE4 @ =sInPartyMenu ldrb r0, [r0] cmp r0, 0 @@ -1939,11 +981,11 @@ _0808DFF8: bl sub_808FAA8 b _0808E074 _0808E010: - ldr r0, _0808E018 @ =sub_808D2BC - bl add_to_c3_somehow + ldr r0, _0808E018 @ =Cb_MainPSS + bl SetPSSCallback b _0808E0AE .align 2, 0 -_0808E018: .4byte sub_808D2BC +_0808E018: .4byte Cb_MainPSS _0808E01C: movs r0, 0xA b _0808E070 @@ -1965,7 +1007,7 @@ _0808E034: ands r0, r1 cmp r0, 0 beq _0808E0AE - bl sub_808FD20 + bl ClearBottomWindow bl sub_8091114 b _0808E074 .align 2, 0 @@ -1987,7 +1029,7 @@ _0808E062: beq _0808E0AE movs r0, 0x14 _0808E070: - bl sub_808FBA4 + bl PrintStorageActionText _0808E074: ldr r0, _0808E084 @ =sPSSData ldr r1, [r0] @@ -2013,15 +1055,15 @@ _0808E098: ands r0, r1 cmp r0, 0 beq _0808E0AE - bl sub_808FD20 - ldr r0, _0808E0B8 @ =sub_808D2BC - bl add_to_c3_somehow + bl ClearBottomWindow + ldr r0, _0808E0B8 @ =Cb_MainPSS + bl SetPSSCallback _0808E0AE: pop {r0} bx r0 .align 2, 0 _0808E0B4: .4byte gMain -_0808E0B8: .4byte sub_808D2BC +_0808E0B8: .4byte Cb_MainPSS thumb_func_end sub_808DECC thumb_func_start sub_808E0BC @@ -2039,7 +1081,7 @@ sub_808E0BC: @ 808E0BC _0808E0D0: .4byte sPSSData _0808E0D4: movs r0, 0xC - bl sub_808FBA4 + bl PrintStorageActionText ldr r0, [r4] ldr r2, _0808E100 @ =0x00000ce7 adds r1, r0, r2 @@ -2067,26 +1109,26 @@ _0808E108: cmp r0, 0 bne _0808E130 bl TeardownMonMarkingsMenu - bl sub_808FD20 + bl ClearBottomWindow ldr r0, [r4] ldr r1, _0808E138 @ =0x00000da4 adds r0, r1 ldrb r0, [r0] bl sub_8093878 bl sub_808F1D0 - ldr r0, _0808E13C @ =sub_808D2BC - bl add_to_c3_somehow + ldr r0, _0808E13C @ =Cb_MainPSS + bl SetPSSCallback _0808E130: pop {r4} pop {r0} bx r0 .align 2, 0 _0808E138: .4byte 0x00000da4 -_0808E13C: .4byte sub_808D2BC +_0808E13C: .4byte Cb_MainPSS thumb_func_end sub_808E0BC - thumb_func_start sub_808E140 -sub_808E140: @ 808E140 + thumb_func_start Cb_TakeItemForMoving +Cb_TakeItemForMoving: @ 808E140 push {r4,r5,lr} ldr r5, _0808E158 @ =sPSSData ldr r0, [r5] @@ -2114,13 +1156,13 @@ _0808E166: lsls r0, 24 cmp r0, 0 bne _0808E180 - bl sub_808FD20 + bl ClearBottomWindow b _0808E1D0 .align 2, 0 _0808E17C: .4byte 0x00000ce2 _0808E180: ldr r0, _0808E188 @ =sub_808E6D0 - bl add_to_c3_somehow + bl SetPSSCallback b _0808E1EA .align 2, 0 _0808E188: .4byte sub_808E6D0 @@ -2148,7 +1190,7 @@ _0808E1B4: bne _0808E1EA movs r0, 0x3 bl sub_8094D14 - bl sub_808FD20 + bl ClearBottomWindow bl sub_8092F54 bl sub_808F49C _0808E1D0: @@ -2162,18 +1204,18 @@ _0808E1DA: lsls r0, 24 cmp r0, 0 bne _0808E1EA - ldr r0, _0808E1F0 @ =sub_808D2BC - bl add_to_c3_somehow + ldr r0, _0808E1F0 @ =Cb_MainPSS + bl SetPSSCallback _0808E1EA: pop {r4,r5} pop {r0} bx r0 .align 2, 0 -_0808E1F0: .4byte sub_808D2BC - thumb_func_end sub_808E140 +_0808E1F0: .4byte Cb_MainPSS + thumb_func_end Cb_TakeItemForMoving - thumb_func_start sub_808E1F4 -sub_808E1F4: @ 808E1F4 + thumb_func_start Cb_GiveMovingItemToMon +Cb_GiveMovingItemToMon: @ 808E1F4 push {r4,lr} ldr r0, _0808E20C @ =sPSSData ldr r0, [r0] @@ -2222,7 +1264,7 @@ _0808E250: bl sub_8092F54 bl sub_808F49C movs r0, 0x1C - bl sub_808FBA4 + bl PrintStorageActionText b _0808E280 _0808E270: ldr r0, _0808E28C @ =gMain @@ -2232,7 +1274,7 @@ _0808E270: cmp r0, 0 beq _0808E2A4 _0808E27C: - bl sub_808FD20 + bl ClearBottomWindow _0808E280: ldr r0, _0808E290 @ =sPSSData ldr r1, [r0] @@ -2248,15 +1290,15 @@ _0808E294: lsls r0, 24 cmp r0, 0 bne _0808E2A4 - ldr r0, _0808E2AC @ =sub_808D2BC - bl add_to_c3_somehow + ldr r0, _0808E2AC @ =Cb_MainPSS + bl SetPSSCallback _0808E2A4: pop {r4} pop {r0} bx r0 .align 2, 0 -_0808E2AC: .4byte sub_808D2BC - thumb_func_end sub_808E1F4 +_0808E2AC: .4byte Cb_MainPSS + thumb_func_end Cb_GiveMovingItemToMon thumb_func_start sub_808E2B0 sub_808E2B0: @ 808E2B0 @@ -2297,7 +1339,7 @@ _0808E2E8: movs r0, 0x1A bl PlaySE movs r0, 0x1A - bl sub_808FBA4 + bl PrintStorageActionText ldr r1, [r5] movs r0, 0x3 strb r0, [r1] @@ -2330,7 +1372,7 @@ _0808E340: cmp r0, 0 bne _0808E3BA movs r0, 0x19 - bl sub_808FBA4 + bl PrintStorageActionText ldr r0, _0808E35C @ =sPSSData ldr r1, [r0] movs r0, 0x2 @@ -2345,7 +1387,7 @@ _0808E360: ands r0, r1 cmp r0, 0 beq _0808E3BA - bl sub_808FD20 + bl ClearBottomWindow bl sub_8092F54 bl sub_808F49C ldr r0, _0808E388 @ =sPSSData @@ -2361,11 +1403,11 @@ _0808E38C: lsls r0, 24 cmp r0, 0 bne _0808E3BA - ldr r0, _0808E3A0 @ =sub_808D2BC - bl add_to_c3_somehow + ldr r0, _0808E3A0 @ =Cb_MainPSS + bl SetPSSCallback b _0808E3BA .align 2, 0 -_0808E3A0: .4byte sub_808D2BC +_0808E3A0: .4byte Cb_MainPSS _0808E3A4: ldr r0, _0808E3C0 @ =gMain ldrh r1, [r0, 0x2E] @@ -2373,20 +1415,20 @@ _0808E3A4: ands r0, r1 cmp r0, 0 beq _0808E3BA - bl sub_808FD20 - ldr r0, _0808E3C4 @ =sub_808D2BC - bl add_to_c3_somehow + bl ClearBottomWindow + ldr r0, _0808E3C4 @ =Cb_MainPSS + bl SetPSSCallback _0808E3BA: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0808E3C0: .4byte gMain -_0808E3C4: .4byte sub_808D2BC +_0808E3C4: .4byte Cb_MainPSS thumb_func_end sub_808E2B0 - thumb_func_start sub_808E3C8 -sub_808E3C8: @ 808E3C8 + thumb_func_start Cb_SwitchSelectedItem +Cb_SwitchSelectedItem: @ 808E3C8 push {r4,lr} ldr r1, _0808E3E0 @ =sPSSData ldr r0, [r1] @@ -2418,14 +1460,14 @@ _0808E3FC: lsls r0, 24 cmp r0, 0 bne _0808E41C - bl sub_808FD20 + bl ClearBottomWindow ldr r1, [r4] b _0808E484 .align 2, 0 _0808E418: .4byte 0x00000ce2 _0808E41C: ldr r0, _0808E424 @ =sub_808E6D0 - bl add_to_c3_somehow + bl SetPSSCallback b _0808E4A4 .align 2, 0 _0808E424: .4byte sub_808E6D0 @@ -2456,7 +1498,7 @@ _0808E450: bl sub_8092F54 bl sub_808F49C movs r0, 0x1D - bl sub_808FBA4 + bl PrintStorageActionText b _0808E480 _0808E470: ldr r0, _0808E48C @ =gMain @@ -2465,7 +1507,7 @@ _0808E470: ands r0, r1 cmp r0, 0 beq _0808E4A4 - bl sub_808FD20 + bl ClearBottomWindow _0808E480: ldr r0, _0808E490 @ =sPSSData ldr r1, [r0] @@ -2482,15 +1524,15 @@ _0808E494: lsls r0, 24 cmp r0, 0 bne _0808E4A4 - ldr r0, _0808E4AC @ =sub_808D2BC - bl add_to_c3_somehow + ldr r0, _0808E4AC @ =Cb_MainPSS + bl SetPSSCallback _0808E4A4: pop {r4} pop {r0} bx r0 .align 2, 0 -_0808E4AC: .4byte sub_808D2BC - thumb_func_end sub_808E3C8 +_0808E4AC: .4byte Cb_MainPSS + thumb_func_end Cb_SwitchSelectedItem thumb_func_start sub_808E4B0 sub_808E4B0: @ 808E4B0 @@ -2518,7 +1560,7 @@ _0808E4D0: .4byte _0808E530 .4byte _0808E54C _0808E4EC: - bl sub_808FD20 + bl ClearBottomWindow b _0808E53A _0808E4F2: bl IsDma3ManagerBusyWithBgCopy @@ -2568,13 +1610,13 @@ _0808E54C: lsls r0, 24 cmp r0, 0 bne _0808E55C - ldr r0, _0808E560 @ =sub_808D2BC - bl add_to_c3_somehow + ldr r0, _0808E560 @ =Cb_MainPSS + bl SetPSSCallback _0808E55C: pop {r0} bx r0 .align 2, 0 -_0808E560: .4byte sub_808D2BC +_0808E560: .4byte Cb_MainPSS thumb_func_end sub_808E4B0 thumb_func_start sub_808E564 @@ -2607,7 +1649,7 @@ _0808E59C: movs r0, 0x5 bl PlaySE movs r0, 0x1B - bl sub_808FBA4 + bl PrintStorageActionText movs r0, 0 bl sub_808FCE8 ldr r0, _0808E5B8 @ =sPSSData @@ -2634,7 +1676,7 @@ _0808E5D6: cmp r1, 0x1 bne _0808E67C _0808E5DA: - bl sub_808FD20 + bl ClearBottomWindow b _0808E660 _0808E5E0: ldr r4, _0808E604 @ =sPSSData @@ -2648,7 +1690,7 @@ _0808E5E0: lsrs r0, 24 cmp r0, 0x1 bne _0808E60C - bl sub_808FD20 + bl ClearBottomWindow ldr r1, [r4] movs r0, 0x3 strb r0, [r1] @@ -2658,7 +1700,7 @@ _0808E604: .4byte sPSSData _0808E608: .4byte 0x00002224 _0808E60C: movs r0, 0x1A - bl sub_808FBA4 + bl PrintStorageActionText ldr r1, [r4] movs r0, 0x2 strb r0, [r1] @@ -2670,7 +1712,7 @@ _0808E61A: ands r0, r1 cmp r0, 0 beq _0808E67C - bl sub_808FD20 + bl ClearBottomWindow ldr r0, _0808E638 @ =sPSSData ldr r1, [r0] movs r0, 0x5 @@ -2696,24 +1738,24 @@ _0808E650: movs r0, 0 bl sub_8094D14 _0808E660: - ldr r0, _0808E668 @ =sub_808D2BC - bl add_to_c3_somehow + ldr r0, _0808E668 @ =Cb_MainPSS + bl SetPSSCallback b _0808E67C .align 2, 0 -_0808E668: .4byte sub_808D2BC +_0808E668: .4byte Cb_MainPSS _0808E66C: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _0808E67C - ldr r0, _0808E684 @ =sub_808D2BC - bl add_to_c3_somehow + ldr r0, _0808E684 @ =Cb_MainPSS + bl SetPSSCallback _0808E67C: pop {r4} pop {r0} bx r0 .align 2, 0 -_0808E684: .4byte sub_808D2BC +_0808E684: .4byte Cb_MainPSS thumb_func_end sub_808E564 thumb_func_start sub_808E688 @@ -2743,14 +1785,14 @@ _0808E6B2: cmp r0, 0 bne _0808E6C6 bl sub_808FAA8 - ldr r0, _0808E6CC @ =sub_808D2BC - bl add_to_c3_somehow + ldr r0, _0808E6CC @ =Cb_MainPSS + bl SetPSSCallback _0808E6C6: pop {r4} pop {r0} bx r0 .align 2, 0 -_0808E6CC: .4byte sub_808D2BC +_0808E6CC: .4byte Cb_MainPSS thumb_func_end sub_808E688 thumb_func_start sub_808E6D0 @@ -2776,7 +1818,7 @@ _0808E6EC: b _0808E738 _0808E6F6: movs r0, 0x1E - bl sub_808FBA4 + bl PrintStorageActionText b _0808E71A _0808E6FE: bl IsDma3ManagerBusyWithBgCopy @@ -2791,7 +1833,7 @@ _0808E70A: ands r0, r1 cmp r0, 0 beq _0808E738 - bl sub_808FD20 + bl ClearBottomWindow _0808E71A: ldr r1, [r4] ldrb r0, [r1] @@ -2805,18 +1847,18 @@ _0808E728: lsls r0, 24 cmp r0, 0 bne _0808E738 - ldr r0, _0808E740 @ =sub_808D2BC - bl add_to_c3_somehow + ldr r0, _0808E740 @ =Cb_MainPSS + bl SetPSSCallback _0808E738: pop {r4} pop {r0} bx r0 .align 2, 0 -_0808E740: .4byte sub_808D2BC +_0808E740: .4byte Cb_MainPSS thumb_func_end sub_808E6D0 - thumb_func_start box_related -box_related: @ 808E744 + thumb_func_start Cb_HandleBoxOptions +Cb_HandleBoxOptions: @ 808E744 push {r4,lr} ldr r4, _0808E75C @ =sPSSData ldr r0, [r4] @@ -2836,7 +1878,7 @@ _0808E760: b _0808E830 _0808E766: movs r0, 0x1 - bl sub_808FBA4 + bl PrintStorageActionText bl sub_8094E88 ldr r1, [r4] ldrb r0, [r1] @@ -2884,42 +1926,42 @@ _0808E7A8: _0808E7DC: movs r0, 0x1 bl sub_80920FC - bl sub_808FD20 - ldr r0, _0808E7F0 @ =sub_808D2BC - bl add_to_c3_somehow + bl ClearBottomWindow + ldr r0, _0808E7F0 @ =Cb_MainPSS + bl SetPSSCallback b _0808E830 .align 2, 0 -_0808E7F0: .4byte sub_808D2BC +_0808E7F0: .4byte Cb_MainPSS _0808E7F4: movs r0, 0x5 bl PlaySE ldr r0, _0808E804 @ =sub_808EA90 - bl add_to_c3_somehow + bl SetPSSCallback b _0808E830 .align 2, 0 _0808E804: .4byte sub_808EA90 _0808E808: movs r0, 0x5 bl PlaySE - bl sub_808FD20 + bl ClearBottomWindow ldr r0, _0808E81C @ =sub_808E83C - bl add_to_c3_somehow + bl SetPSSCallback b _0808E830 .align 2, 0 _0808E81C: .4byte sub_808E83C _0808E820: movs r0, 0x5 bl PlaySE - bl sub_808FD20 + bl ClearBottomWindow ldr r0, _0808E838 @ =sub_808E9A0 - bl add_to_c3_somehow + bl SetPSSCallback _0808E830: pop {r4} pop {r0} bx r0 .align 2, 0 _0808E838: .4byte sub_808E9A0 - thumb_func_end box_related + thumb_func_end Cb_HandleBoxOptions thumb_func_start sub_808E83C sub_808E83C: @ 808E83C @@ -2950,7 +1992,7 @@ _0808E85C: _0808E874: bl sub_808FD34 movs r0, 0x2 - bl sub_808FBA4 + bl PrintStorageActionText ldr r0, _0808E884 @ =sPSSData ldr r1, [r0] b _0808E976 @@ -2983,14 +2025,14 @@ _0808E8A0: bne _0808E8D8 movs r0, 0x1 bl sub_80920FC - bl sub_808FD20 - ldr r0, _0808E8D4 @ =sub_808D2BC - bl add_to_c3_somehow + bl ClearBottomWindow + ldr r0, _0808E8D4 @ =Cb_MainPSS + bl SetPSSCallback b _0808E994 .align 2, 0 _0808E8CC: .4byte sPSSData _0808E8D0: .4byte 0x0000078e -_0808E8D4: .4byte sub_808D2BC +_0808E8D4: .4byte Cb_MainPSS _0808E8D8: cmp r0, r1 blt _0808E994 @@ -3019,7 +2061,7 @@ _0808E8FA: ldrb r0, [r0] bl sub_808FD5C movs r0, 0x3 - bl sub_808FBA4 + bl PrintStorageActionText b _0808E974 .align 2, 0 _0808E91C: .4byte sPSSData @@ -3041,7 +2083,7 @@ _0808E924: adds r0, 0x1 cmp r1, r0 bne _0808E958 - bl sub_808FD20 + bl ClearBottomWindow ldr r1, [r4] movs r0, 0 strb r0, [r1] @@ -3051,7 +2093,7 @@ _0808E954: .4byte sPSSData _0808E958: movs r0, 0x5 bl PlaySE - bl sub_808FD20 + bl ClearBottomWindow ldr r1, [r4] adds r1, r5 ldrh r0, [r1] @@ -3074,14 +2116,14 @@ _0808E97E: bne _0808E994 movs r0, 0x1 bl sub_80920FC - ldr r0, _0808E99C @ =sub_808D2BC - bl add_to_c3_somehow + ldr r0, _0808E99C @ =Cb_MainPSS + bl SetPSSCallback _0808E994: pop {r4,r5} pop {r0} bx r0 .align 2, 0 -_0808E99C: .4byte sub_808D2BC +_0808E99C: .4byte Cb_MainPSS thumb_func_end sub_808E83C thumb_func_start sub_808E9A0 @@ -3108,7 +2150,7 @@ _0808E9BC: b _0808EA80 _0808E9C6: movs r0, 0x5 - bl sub_808FBA4 + bl PrintStorageActionText ldr r0, [r5] ldr r1, _0808E9EC @ =0x00001e58 adds r0, r1 @@ -3137,7 +2179,7 @@ _0808E9F4: ldrsh r0, [r1, r2] cmp r0, 0xC8 beq _0808EA80 - bl sub_808FD20 + bl ClearBottomWindow bl sub_808C950 bl sub_808C8FC ldr r0, [r5] @@ -3156,17 +2198,17 @@ _0808E9F4: _0808EA34: movs r0, 0x1 bl sub_80920FC - ldr r0, _0808EA48 @ =sub_808D2BC - bl add_to_c3_somehow + ldr r0, _0808EA48 @ =Cb_MainPSS + bl SetPSSCallback b _0808EA80 .align 2, 0 _0808EA44: .4byte 0x000002ca -_0808EA48: .4byte sub_808D2BC +_0808EA48: .4byte Cb_MainPSS _0808EA4C: ldr r1, _0808EA60 @ =0x000002ca adds r0, r1 ldrb r0, [r0] - bl sub_8091514 + bl SetUpScrollToBox _0808EA56: ldr r1, [r5] ldrb r0, [r1] @@ -3176,7 +2218,7 @@ _0808EA56: .align 2, 0 _0808EA60: .4byte 0x000002ca _0808EA64: - bl sub_80915FC + bl ScrollToBox lsls r0, 24 cmp r0, 0 bne _0808EA80 @@ -3185,8 +2227,8 @@ _0808EA64: adds r0, r2 ldrb r0, [r0] bl SetCurrentBox - ldr r0, _0808EA8C @ =sub_808D2BC - bl add_to_c3_somehow + ldr r0, _0808EA8C @ =Cb_MainPSS + bl SetPSSCallback _0808EA80: add sp, 0x4 pop {r4,r5} @@ -3194,7 +2236,7 @@ _0808EA80: bx r0 .align 2, 0 _0808EA88: .4byte 0x000002ca -_0808EA8C: .4byte sub_808D2BC +_0808EA8C: .4byte Cb_MainPSS thumb_func_end sub_808E9A0 thumb_func_start sub_808EA90 @@ -3235,8 +2277,8 @@ _0808EAC6: ldr r1, [r5] movs r0, 0x2 strb r0, [r1, 0x2] - ldr r0, _0808EAEC @ =sub_808EE18 - bl add_to_c3_somehow + ldr r0, _0808EAEC @ =Cb_ChangeScreen + bl SetPSSCallback _0808EAE0: add sp, 0x4 pop {r4,r5} @@ -3244,7 +2286,7 @@ _0808EAE0: bx r0 .align 2, 0 _0808EAE8: .4byte sWhichToReshow -_0808EAEC: .4byte sub_808EE18 +_0808EAEC: .4byte Cb_ChangeScreen thumb_func_end sub_808EA90 thumb_func_start sub_808EAF0 @@ -3285,8 +2327,8 @@ _0808EB26: strb r1, [r0] ldr r0, [r5] strb r4, [r0, 0x2] - ldr r0, _0808EB4C @ =sub_808EE18 - bl add_to_c3_somehow + ldr r0, _0808EB4C @ =Cb_ChangeScreen + bl SetPSSCallback _0808EB40: add sp, 0x4 pop {r4,r5} @@ -3294,7 +2336,7 @@ _0808EB40: bx r0 .align 2, 0 _0808EB48: .4byte sWhichToReshow -_0808EB4C: .4byte sub_808EE18 +_0808EB4C: .4byte Cb_ChangeScreen thumb_func_end sub_808EAF0 thumb_func_start sub_808EB50 @@ -3335,8 +2377,8 @@ _0808EB82: ldr r1, [r4] movs r0, 0x3 strb r0, [r1, 0x2] - ldr r0, _0808EBAC @ =sub_808EE18 - bl add_to_c3_somehow + ldr r0, _0808EBAC @ =Cb_ChangeScreen + bl SetPSSCallback _0808EB9E: add sp, 0x4 pop {r4} @@ -3344,11 +2386,11 @@ _0808EB9E: bx r0 .align 2, 0 _0808EBA8: .4byte sWhichToReshow -_0808EBAC: .4byte sub_808EE18 +_0808EBAC: .4byte Cb_ChangeScreen thumb_func_end sub_808EB50 - thumb_func_start sub_808EBB0 -sub_808EBB0: @ 808EBB0 + thumb_func_start Cb_OnCloseBoxPressed +Cb_OnCloseBoxPressed: @ 808EBB0 push {r4,lr} ldr r0, _0808EBC8 @ =sPSSData ldr r0, [r0] @@ -3373,14 +2415,14 @@ _0808EBD0: .4byte _0808EC90 .4byte _0808ECAC _0808EBE4: - bl sub_80939A0 + bl IsMonBeingMoved lsls r0, 24 cmp r0, 0 beq _0808EC08 movs r0, 0x1A bl PlaySE movs r0, 0xF - bl sub_808FBA4 + bl PrintStorageActionText ldr r0, _0808EC04 @ =sPSSData ldr r1, [r0] movs r0, 0x1 @@ -3394,7 +2436,7 @@ _0808EC08: cmp r0, 0 beq _0808EC20 ldr r0, _0808EC1C @ =sub_808E564 - bl add_to_c3_somehow + bl SetPSSCallback b _0808ECD0 .align 2, 0 _0808EC1C: .4byte sub_808E564 @@ -3402,7 +2444,7 @@ _0808EC20: movs r0, 0x5 bl PlaySE movs r0, 0 - bl sub_808FBA4 + bl PrintStorageActionText movs r0, 0 bl sub_808FCE8 ldr r0, _0808EC3C @ =sPSSData @@ -3439,16 +2481,16 @@ _0808EC6E: cmp r1, 0x1 bne _0808ECD0 _0808EC72: - bl sub_808FD20 - ldr r0, _0808EC80 @ =sub_808D2BC - bl add_to_c3_somehow + bl ClearBottomWindow + ldr r0, _0808EC80 @ =Cb_MainPSS + bl SetPSSCallback b _0808ECD0 .align 2, 0 -_0808EC80: .4byte sub_808D2BC +_0808EC80: .4byte Cb_MainPSS _0808EC84: movs r0, 0x3 bl PlaySE - bl sub_808FD20 + bl ClearBottomWindow b _0808EC9A _0808EC90: movs r0, 0x14 @@ -3477,8 +2519,8 @@ _0808ECAC: ldr r0, _0808ECDC @ =sPSSData ldr r0, [r0] strb r4, [r0, 0x2] - ldr r0, _0808ECE0 @ =sub_808EE18 - bl add_to_c3_somehow + ldr r0, _0808ECE0 @ =Cb_ChangeScreen + bl SetPSSCallback _0808ECD0: pop {r4} pop {r0} @@ -3486,11 +2528,11 @@ _0808ECD0: .align 2, 0 _0808ECD8: .4byte gPlayerPartyCount _0808ECDC: .4byte sPSSData -_0808ECE0: .4byte sub_808EE18 - thumb_func_end sub_808EBB0 +_0808ECE0: .4byte Cb_ChangeScreen + thumb_func_end Cb_OnCloseBoxPressed - thumb_func_start sub_808ECE4 -sub_808ECE4: @ 808ECE4 + thumb_func_start Cb_OnBPressed +Cb_OnBPressed: @ 808ECE4 push {r4,lr} ldr r0, _0808ECFC @ =sPSSData ldr r0, [r0] @@ -3515,14 +2557,14 @@ _0808ED04: .4byte _0808EDC4 .4byte _0808EDE0 _0808ED18: - bl sub_80939A0 + bl IsMonBeingMoved lsls r0, 24 cmp r0, 0 beq _0808ED3C movs r0, 0x1A bl PlaySE movs r0, 0xF - bl sub_808FBA4 + bl PrintStorageActionText ldr r0, _0808ED38 @ =sPSSData ldr r1, [r0] movs r0, 0x1 @@ -3536,7 +2578,7 @@ _0808ED3C: cmp r0, 0 beq _0808ED54 ldr r0, _0808ED50 @ =sub_808E564 - bl add_to_c3_somehow + bl SetPSSCallback b _0808EE04 .align 2, 0 _0808ED50: .4byte sub_808E564 @@ -3544,7 +2586,7 @@ _0808ED54: movs r0, 0x5 bl PlaySE movs r0, 0x12 - bl sub_808FBA4 + bl PrintStorageActionText movs r0, 0 bl sub_808FCE8 ldr r0, _0808ED70 @ =sPSSData @@ -3582,16 +2624,16 @@ _0808EDA2: beq _0808EDB8 b _0808EE04 _0808EDA8: - bl sub_808FD20 - ldr r0, _0808EDB4 @ =sub_808D2BC - bl add_to_c3_somehow + bl ClearBottomWindow + ldr r0, _0808EDB4 @ =Cb_MainPSS + bl SetPSSCallback b _0808EE04 .align 2, 0 -_0808EDB4: .4byte sub_808D2BC +_0808EDB4: .4byte Cb_MainPSS _0808EDB8: movs r0, 0x3 bl PlaySE - bl sub_808FD20 + bl ClearBottomWindow b _0808EDCE _0808EDC4: movs r0, 0x14 @@ -3620,8 +2662,8 @@ _0808EDE0: ldr r0, _0808EE10 @ =sPSSData ldr r0, [r0] strb r4, [r0, 0x2] - ldr r0, _0808EE14 @ =sub_808EE18 - bl add_to_c3_somehow + ldr r0, _0808EE14 @ =Cb_ChangeScreen + bl SetPSSCallback _0808EE04: pop {r4} pop {r0} @@ -3629,11 +2671,11 @@ _0808EE04: .align 2, 0 _0808EE0C: .4byte gPlayerPartyCount _0808EE10: .4byte sPSSData -_0808EE14: .4byte sub_808EE18 - thumb_func_end sub_808ECE4 +_0808EE14: .4byte Cb_ChangeScreen + thumb_func_end Cb_OnBPressed - thumb_func_start sub_808EE18 -sub_808EE18: @ 808EE18 + thumb_func_start Cb_ChangeScreen +Cb_ChangeScreen: @ 808EE18 push {r4-r7,lr} mov r7, r8 push {r7} @@ -3742,10 +2784,10 @@ _0808EEF6: bx r0 .align 2, 0 _0808EF08: .4byte Cb2_ReturnToPSS - thumb_func_end sub_808EE18 + thumb_func_end Cb_ChangeScreen - thumb_func_start sub_808EF0C -sub_808EF0C: @ 808EF0C + thumb_func_start GiveChosenBagItem +GiveChosenBagItem: @ 808EF0C push {lr} sub sp, 0x4 ldr r0, _0808EF40 @ =gSpecialVar_ItemId @@ -3787,7 +2829,7 @@ _0808EF60: add sp, 0x4 pop {r0} bx r0 - thumb_func_end sub_808EF0C + thumb_func_end GiveChosenBagItem thumb_func_start sub_808EF68 sub_808EF68: @ 808EF68 @@ -3807,8 +2849,8 @@ sub_808EF68: @ 808EF68 _0808EF88: .4byte sPSSData thumb_func_end sub_808EF68 - thumb_func_start sub_808EF8C -sub_808EF8C: @ 808EF8C + thumb_func_start SetScrollingBackground +SetScrollingBackground: @ 808EF8C push {lr} sub sp, 0x4 ldr r1, _0808EFB8 @ =0x00001f0f @@ -3832,7 +2874,7 @@ _0808EFB8: .4byte 0x00001f0f _0808EFBC: .4byte gUnknown_83CE438 _0808EFC0: .4byte gUnknown_83CE4D0 _0808EFC4: .4byte 0x0600f800 - thumb_func_end sub_808EF8C + thumb_func_end SetScrollingBackground thumb_func_start sub_808EFC8 sub_808EFC8: @ 808EFC8 @@ -3849,8 +2891,8 @@ sub_808EFC8: @ 808EFC8 bx r0 thumb_func_end sub_808EFC8 - thumb_func_start sub_808EFE4 -sub_808EFE4: @ 808EFE4 + thumb_func_start LoadPSSMenuGfx +LoadPSSMenuGfx: @ 808EFE4 push {r4,r5,lr} sub sp, 0x4 ldr r1, _0808F030 @ =gUnknown_83CEA50 @@ -3888,10 +2930,10 @@ _0808F034: .4byte gUnknown_8E9C438 _0808F038: .4byte gUnknown_83CE5FC _0808F03C: .4byte sPSSData _0808F040: .4byte 0x00005abc - thumb_func_end sub_808EFE4 + thumb_func_end LoadPSSMenuGfx - thumb_func_start sub_808F044 -sub_808F044: @ 808F044 + thumb_func_start InitPSSWindows +InitPSSWindows: @ 808F044 push {lr} ldr r0, _0808F05C @ =gUnknown_83CEA30 bl InitWindows @@ -3908,10 +2950,10 @@ _0808F060: _0808F062: pop {r1} bx r1 - thumb_func_end sub_808F044 + thumb_func_end InitPSSWindows - thumb_func_start sub_808F068 -sub_808F068: @ 808F068 + thumb_func_start LoadWaveformSpritePalette +LoadWaveformSpritePalette: @ 808F068 push {lr} ldr r0, _0808F074 @ =gUnknown_83CEA60 bl LoadSpritePalette @@ -3919,7 +2961,7 @@ sub_808F068: @ 808F068 bx r0 .align 2, 0 _0808F074: .4byte gUnknown_83CEA60 - thumb_func_end sub_808F068 + thumb_func_end LoadWaveformSpritePalette thumb_func_start sub_808F078 sub_808F078: @ 808F078 @@ -5323,8 +4365,8 @@ sub_808FB68: @ 808FB68 bx r0 thumb_func_end sub_808FB68 - thumb_func_start sub_808FBA4 -sub_808FBA4: @ 808FBA4 + thumb_func_start PrintStorageActionText +PrintStorageActionText: @ 808FBA4 push {r4-r6,lr} sub sp, 0xC lsls r0, 24 @@ -5466,7 +4508,7 @@ _0808FC7C: _0808FCDC: .4byte sPSSData _0808FCE0: .4byte 0x000021db _0808FCE4: .4byte gUnknown_83CEA88 - thumb_func_end sub_808FBA4 + thumb_func_end PrintStorageActionText thumb_func_start sub_808FCE8 sub_808FCE8: @ 808FCE8 @@ -5497,8 +4539,8 @@ sub_808FCE8: @ 808FCE8 _0808FD1C: .4byte gUnknown_83CEB80 thumb_func_end sub_808FCE8 - thumb_func_start sub_808FD20 -sub_808FD20: @ 808FD20 + thumb_func_start ClearBottomWindow +ClearBottomWindow: @ 808FD20 push {lr} movs r0, 0x1 movs r1, 0 @@ -5507,7 +4549,7 @@ sub_808FD20: @ 808FD20 bl ScheduleBgCopyTilemapToVram pop {r0} bx r0 - thumb_func_end sub_808FD20 + thumb_func_end ClearBottomWindow thumb_func_start sub_808FD34 sub_808FD34: @ 808FD34 @@ -8655,8 +7697,8 @@ _0809150E: bx r0 thumb_func_end sub_8091420 - thumb_func_start sub_8091514 -sub_8091514: @ 8091514 + thumb_func_start SetUpScrollToBox +SetUpScrollToBox: @ 8091514 push {r4-r7,lr} mov r7, r8 push {r7} @@ -8769,10 +7811,10 @@ _080915EC: .4byte 0x000002de _080915F0: .4byte 0x00000a64 _080915F4: .4byte 0x00000a65 _080915F8: .4byte 0x00000a63 - thumb_func_end sub_8091514 + thumb_func_end SetUpScrollToBox - thumb_func_start sub_80915FC -sub_80915FC: @ 80915FC + thumb_func_start ScrollToBox +ScrollToBox: @ 80915FC push {r4-r6,lr} ldr r4, _08091618 @ =sPSSData ldr r1, [r4] @@ -8890,7 +7932,7 @@ _080916E4: .align 2, 0 _080916EC: .4byte sPSSData _080916F0: .4byte 0x00000a63 - thumb_func_end sub_80915FC + thumb_func_end ScrollToBox thumb_func_start sub_80916F4 sub_80916F4: @ 80916F4 @@ -13245,8 +12287,8 @@ _080938F8: .4byte sBoxCursorPosition _080938FC: .4byte gPlayerParty thumb_func_end sub_8093878 - thumb_func_start sub_8093900 -sub_8093900: @ 8093900 + thumb_func_start CanMovePartyMon +CanMovePartyMon: @ 8093900 push {lr} ldr r0, _08093928 @ =sBoxCursorArea ldrb r0, [r0] @@ -13275,10 +12317,10 @@ _08093934: _08093936: pop {r1} bx r1 - thumb_func_end sub_8093900 + thumb_func_end CanMovePartyMon - thumb_func_start sub_809393C -sub_809393C: @ 809393C + thumb_func_start CanShiftMon +CanShiftMon: @ 809393C push {lr} ldr r0, _08093980 @ =sIsMonBeingMoved ldrb r0, [r0] @@ -13324,16 +12366,16 @@ _08093998: _0809399A: pop {r1} bx r1 - thumb_func_end sub_809393C + thumb_func_end CanShiftMon - thumb_func_start sub_80939A0 -sub_80939A0: @ 80939A0 + thumb_func_start IsMonBeingMoved +IsMonBeingMoved: @ 80939A0 ldr r0, _080939A8 @ =sIsMonBeingMoved ldrb r0, [r0] bx lr .align 2, 0 _080939A8: .4byte sIsMonBeingMoved - thumb_func_end sub_80939A0 + thumb_func_end IsMonBeingMoved thumb_func_start sub_80939AC sub_80939AC: @ 80939AC @@ -13354,8 +12396,8 @@ _080939BE: _080939C4: .4byte sBoxCursorArea thumb_func_end sub_80939AC - thumb_func_start sub_80939C8 -sub_80939C8: @ 80939C8 + thumb_func_start IsCursorOnCloseBox +IsCursorOnCloseBox: @ 80939C8 push {lr} movs r1, 0 ldr r0, _080939EC @ =sBoxCursorArea @@ -13378,7 +12420,7 @@ _080939E6: .align 2, 0 _080939EC: .4byte sBoxCursorArea _080939F0: .4byte sBoxCursorPosition - thumb_func_end sub_80939C8 + thumb_func_end IsCursorOnCloseBox thumb_func_start sub_80939F4 sub_80939F4: @ 80939F4 @@ -15241,8 +14283,8 @@ _080948AA: bx r1 thumb_func_end sub_80947A0 - thumb_func_start sub_80948B4 -sub_80948B4: @ 80948B4 + thumb_func_start HandleInput +HandleInput: @ 80948B4 push {r4,r5,lr} movs r3, 0 ldr r0, _080948E0 @ =gUnknown_83D3478 @@ -15283,7 +14325,7 @@ _080948FA: pop {r4,r5} pop {r1} bx r1 - thumb_func_end sub_80948B4 + thumb_func_end HandleInput thumb_func_start sub_8094900 sub_8094900: @ 8094900 diff --git a/include/pokemon_storage_system_internal.h b/include/pokemon_storage_system_internal.h index 6171d9137..37dd63110 100644 --- a/include/pokemon_storage_system_internal.h +++ b/include/pokemon_storage_system_internal.h @@ -4,6 +4,71 @@ #include "pokemon_storage_system.h" #include "mon_markings.h" +enum +{ + BOX_OPTION_WITHDRAW, + BOX_OPTION_DEPOSIT, + BOX_OPTION_MOVE_MONS, + BOX_OPTION_MOVE_ITEMS, + BOX_OPTION_EXIT, +}; + +enum +{ + PC_TEXT_EXIT_BOX, + PC_TEXT_WHAT_YOU_DO, + PC_TEXT_PICK_A_THEME, + PC_TEXT_PICK_A_WALLPAPER, + PC_TEXT_IS_SELECTED, + PC_TEXT_JUMP_TO_WHICH_BOX, + PC_TEXT_DEPOSIT_IN_WHICH_BOX, + PC_TEXT_WAS_DEPOSITED, + PC_TEXT_BOX_IS_FULL, + PC_TEXT_RELEASE_POKE, + PC_TEXT_WAS_RELEASED, + PC_TEXT_BYE_BYE, + PC_TEXT_MARK_POKE, + PC_TEXT_LAST_POKE, + PC_TEXT_PARTY_FULL, + PC_TEXT_HOLDING_POKE, + PC_TEXT_WHICH_ONE_WILL_TAKE, + PC_TEXT_CANT_RELEASE_EGG, + PC_TEXT_CONTINUE_BOX, + PC_TEXT_CAME_BACK, + PC_TEXT_WORRIED, + PC_TEXT_SURPRISE, + PC_TEXT_PLEASE_REMOVE_MAIL, + PC_TEXT_IS_SELECTED2, + PC_TEXT_GIVE_TO_MON, + PC_TEXT_PLACED_IN_BAG, + PC_TEXT_BAG_FULL, + PC_TEXT_PUT_IN_BAG, + PC_TEXT_ITEM_IS_HELD, + PC_TEXT_CHANGED_TO_ITEM, + PC_TEXT_CANT_STORE_MAIL, +}; + +#define TAG_PAL_WAVEFORM 0xDACA +#define TAG_PAL_DAC8 0xDAC8 +#define TAG_PAL_DAC6 0xDAC6 +#define TAG_PAL_DACE 0xDACE +#define TAG_PAL_DAC7 0xDAC7 +#define TAG_PAL_DAC9 0xDAC9 +#define TAG_PAL_DAC0 0xDAC0 +#define TAG_PAL_DACB 0xDACB + +#define TAG_TILE_WAVEFORM 0x5 +#define TAG_TILE_10 0x10 +#define TAG_TILE_2 0x2 +#define TAG_TILE_D 0xD +#define TAG_TILE_A 0xA +#define TAG_TILE_3 0x3 +#define TAG_TILE_4 0x4 +#define TAG_TILE_12 0x12 +#define TAG_TILE_7 0x7 +#define TAG_TILE_0 0x0 +#define TAG_TILE_1 0x1 + struct UnkPSSStruct_2002370 { struct Sprite *unk_0000; @@ -114,69 +179,70 @@ struct PokemonStorageSystemData u8 field_A63; u8 field_A64; s8 field_A65; - u8 *wallpaperTiles; - struct Sprite *movingMonSprite; - struct Sprite *partySprites[PARTY_SIZE]; - struct Sprite *boxMonsSprites[IN_BOX_COUNT]; - struct Sprite **field_B00; - struct Sprite **field_B04; - u16 field_B08[40]; - u16 field_B58[40]; - u16 boxSpecies[IN_BOX_COUNT]; - u32 boxPersonalities[IN_BOX_COUNT]; - u8 field_C5C; - u8 field_C5D; - u8 field_C5E; - u16 field_C60; - s16 field_C62; - s16 field_C64; - u16 field_C66; - u8 field_C68; - s8 field_C69; - u8 field_C6A; - u8 field_C6B; - struct WindowTemplate menuWindow; - struct StorageMenu menuItems[7]; - u8 menuItemsCount; - u8 menuWidth; - u8 field_CAE; - u16 field_CB0; - struct Sprite *field_CB4; - struct Sprite *field_CB8; - s32 field_CBC; - s32 field_CC0; - u32 field_CC4; - u32 field_CC8; - s16 field_CCC; - s16 field_CCE; - u16 field_CD0; - s8 field_CD2; - s8 field_CD3; - u8 field_CD4; - u8 field_CD5; - u8 field_CD6; - u8 field_CD7; - u8 field_CD8[2]; - const u32 *cursorMonPalette; - u32 cursorMonPersonality; - u16 cursorMonSpecies; - u16 cursorMonItem; - u16 field_CE8; - bool8 setMosaic; - u8 cursorMonMarkings; - u8 cursorMonLevel; - bool8 cursorMonIsEgg; - u8 cursorMonNick[POKEMON_NAME_LENGTH + 1]; - u8 cursorMonNickText[36]; - u8 cursorMonSpeciesName[36]; - u8 cursorMonGenderLvlText[36]; - u8 cursorMonItemName[36]; - bool8 (*monPlaceChangeFunc)(void); - u8 monPlaceChangeState; - u8 field_D91; - struct Sprite *field_D94; - struct Sprite *field_D98[2]; - struct PokemonMarkMenu field_DA4; + // u8 *wallpaperTiles; // used only in Emerald for Walda + /* 0a68 */ struct Sprite *movingMonSprite; + /* 0a6c */ struct Sprite *partySprites[PARTY_SIZE]; + /* 0a84 */ struct Sprite *boxMonsSprites[IN_BOX_COUNT]; + /* 0afc */ struct Sprite **field_B00; + /* 0b00 */ struct Sprite **field_B04; + /* 0b04 */ u16 field_B08[40]; + /* 0b54 */ u16 field_B58[40]; + /* 0ba4 */ u16 boxSpecies[IN_BOX_COUNT]; + /* 0be0 */ u32 boxPersonalities[IN_BOX_COUNT]; + /* 0c58 */ u8 field_C5C; + /* 0c59 */ u8 field_C5D; + /* 0c5a */ u8 field_C5E; + /* 0c5c */ u16 field_C60; + /* 0c5e */ s16 field_C62; + /* 0c60 */ s16 field_C64; + /* 0c62 */ u16 field_C66; + /* 0c64 */ u8 field_C68; + /* 0c65 */ s8 field_C69; + /* 0c66 */ u8 field_C6A; + /* 0c67 */ u8 field_C6B; + /* 0c68 */ struct WindowTemplate menuWindow; + /* 0c70 */ struct StorageMenu menuItems[7]; + /* 0ca8 */ u8 menuItemsCount; + /* 0ca9 */ u8 menuWidth; + /* 0caa */ u8 field_CAE; + /* 0cac */ u16 field_CB0; + /* 0cb0 */ struct Sprite *field_CB4; + /* 0cb4 */ struct Sprite *field_CB8; + /* 0cb8 */ s32 field_CBC; + /* 0cbc */ s32 field_CC0; + /* 0cc0 */ u32 field_CC4; + /* 0cc4 */ u32 field_CC8; + /* 0cc8 */ s16 field_CCC; + /* 0cca */ s16 field_CCE; + /* 0ccc */ u16 field_CD0; + /* 0cce */ s8 field_CD2; + /* 0ccf */ s8 field_CD3; + /* 0cd0 */ u8 field_CD4; + /* 0cd1 */ u8 field_CD5; + /* 0cd2 */ u8 field_CD6; + /* 0cd3 */ u8 field_CD7; + /* 0cd4 */ u8 field_CD8[2]; + /* 0cd8 */ const u32 *cursorMonPalette; + /* 0cdc */ u32 cursorMonPersonality; + /* 0ce0 */ u16 cursorMonSpecies; + /* 0ce2 */ u16 cursorMonItem; + /* 0ce4 */ u16 field_CE8; + /* 0ce6 */ bool8 setMosaic; + /* 0ce7 */ u8 cursorMonMarkings; + /* 0ce8 */ u8 cursorMonLevel; + /* 0ce9 */ bool8 cursorMonIsEgg; + /* 0cea */ u8 cursorMonNick[POKEMON_NAME_LENGTH + 1]; + /* 0cf5 */ u8 cursorMonNickText[36]; + /* 0d19 */ u8 cursorMonSpeciesName[36]; + /* 0d3d */ u8 cursorMonGenderLvlText[36]; + /* 0d61 */ u8 cursorMonItemName[36]; + /* 0d88 */ bool8 (*monPlaceChangeFunc)(void); + /* 0d8c */ u8 monPlaceChangeState; + /* 0d8d */ u8 field_D91; + /* 0d90 */ struct Sprite *field_D94; + /* 0d94 */ struct Sprite *field_D98[2]; + /* 0d9c */ u16 *field_DA0; + /* 0da0 */ struct PokemonMarkMenu field_DA4; /* 1e58 */ struct UnkPSSStruct_2002370 field_1E5C; /* 20a0 */ struct Pokemon movingMon; /* 2104 */ struct Pokemon field_2108; @@ -217,7 +283,7 @@ struct PokemonStorageSystemData /* 42bc */ u8 field_42C4[0x800]; /* 4abc */ u8 field_4AC4[0x1000]; /* 5abc */ u8 field_5AC4[0x800]; -}; +}; // size=62bc extern struct PokemonStorageSystemData *sPSSData; diff --git a/src/pokemon_storage_system_3.c b/src/pokemon_storage_system_3.c index 0af833855..dec837612 100644 --- a/src/pokemon_storage_system_3.c +++ b/src/pokemon_storage_system_3.c @@ -2,10 +2,14 @@ #include "gflib.h" #include "box_party_pokemon_dropdown.h" #include "help_system.h" +#include "mail_data.h" #include "new_menu_helpers.h" +#include "pc_screen_effect.h" #include "pokemon_storage_system_internal.h" #include "task.h" +#include "text_window.h" #include "constants/help_system.h" +#include "constants/songs.h" EWRAM_DATA struct PokemonStorageSystemData *sPSSData = NULL; EWRAM_DATA bool8 sInPartyMenu = 0; @@ -15,11 +19,68 @@ EWRAM_DATA u8 sWhichToReshow = 0; EWRAM_DATA u8 sLastUsedBox = 0; EWRAM_DATA u16 gUnknown_20397BA = 0; +void Cb_InitPSS(u8 taskId); +void Cb_ShowPSS(u8 taskId); +void Cb_ReshowPSS(u8 taskId); +void Cb_MainPSS(u8 taskId); +void Cb_ChangeScreen(u8 taskId); +void GiveChosenBagItem(void); +bool8 InitPSSWindows(void); +void LoadPSSMenuGfx(void); +void LoadWaveformSpritePalette(void); +void SetScrollingBackground(void); void sub_808EFC8(void); +void sub_808F078(void); +void sub_808F68C(void); void sub_808F99C(void); -void sub_8096BF8(void); -void task_box_related_3(u8 taskId); +void sub_808FB68(void); +void sub_808FDFC(void); +void sub_808FFAC(void); +void sub_80913DC(u8 box); +bool8 sub_809140C(void); +void sub_80922C0(void); +void sub_8092340(void); +void sub_8092B50(void); +void sub_8093660(void); +void sub_80937B4(void); +bool8 sub_8095050(void); +void sub_8095B5C(void); void sub_8096BE4(struct UnkStruct_2000020 *arg0, struct UnkStruct_2000028 *arg1, u32 arg2); +void sub_8096BF8(void); +void Cb_DepositMenu(u8 taskId); +void Cb_GiveMovingItemToMon(u8 taskId); +void Cb_HandleBoxOptions(u8 taskId); +void Cb_HidePartyPokemon(u8 taskId); +void Cb_MoveMon(u8 taskId); +void Cb_OnBPressed(u8 taskId); +void Cb_OnCloseBoxPressed(u8 taskId); +void Cb_OnSelectedMon(u8 taskId); +void Cb_PlaceMon(u8 taskId); +void Cb_ShiftMon(u8 taskId); +void Cb_ShowPartyPokemon(u8 taskId); +void Cb_SwitchSelectedItem(u8 taskId); +void Cb_TakeItemForMoving(u8 taskId); +void Cb_WithdrawMon(u8 taskId); +void BoxSetMosaic(void); +bool8 CanMovePartyMon(void); +bool8 CanShiftMon(void); +void ClearBottomWindow(void); +u8 HandleInput(void); +bool8 IsCursorOnCloseBox(void); +bool8 IsMonBeingMoved(void); +void PrintStorageActionText(u8 textId); +bool8 ScrollToBox(void); +void SetUpScrollToBox(u8 targetBox); +void sub_808FE54(u8 a0); +void sub_808F948(void); +void sub_808F974(void); +bool8 sub_80924A8(void); +void sub_8092F54(void); +void sub_8094D60(void); +void sub_8094D84(void); +void sub_80950BC(u8 a0); +bool8 sub_80950D0(void); +bool8 sub_809610C(void); extern const u16 gUnknown_83CE6F8[]; @@ -55,7 +116,7 @@ void Cb2_EnterPSS(u8 boxOption) sPSSData->isReshowingPSS = FALSE; gUnknown_20397BA = 0; sPSSData->state = 0; - sPSSData->taskId = CreateTask(task_box_related_3, 3); + sPSSData->taskId = CreateTask(Cb_InitPSS, 3); SetHelpContext(HELPCONTEXT_BILLS_PC); sLastUsedBox = StorageGetCurrentBox(); SetMainCallback2(Cb2_PSS); @@ -73,7 +134,7 @@ void Cb2_ReturnToPSS(void) sPSSData->boxOption = sCurrentBoxOption; sPSSData->isReshowingPSS = TRUE; sPSSData->state = 0; - sPSSData->taskId = CreateTask(task_box_related_3, 3); + sPSSData->taskId = CreateTask(Cb_InitPSS, 3); SetHelpContext(HELPCONTEXT_BILLS_PC); SetMainCallback2(Cb2_PSS); } @@ -107,3 +168,432 @@ void sub_808CF10(void) SetBoxPartyPokemonDropdownMap2Pos(0, 1, 0); sPSSData->unk_02C7 = 0; } + +void sub_808CF94(void) +{ + sub_8092B50(); + sInPartyMenu = sPSSData->boxOption == BOX_OPTION_DEPOSIT; + gUnknown_20397B6 = 0; +} + +void sub_808CFC4(void) +{ + if (sPSSData->boxOption == BOX_OPTION_MOVE_ITEMS) + { + SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL); + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(7, 11)); + } + SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_BG_ALL_ON | DISPCNT_OBJ_1D_MAP); +} + +void SetPSSCallback(TaskFunc newFunc) +{ + gTasks[sPSSData->taskId].func = newFunc; + sPSSData->state = 0; +} + +void Cb_InitPSS(u8 taskId) +{ + switch (sPSSData->state) + { + case 0: + SetVBlankCallback(NULL); + SetGpuReg(REG_OFFSET_DISPCNT, 0); + sub_808CF10(); + if (sPSSData->isReshowingPSS) + { + switch (sWhichToReshow) + { + case 1: + sub_8093660(); + break; + case 0: + sub_80937B4(); + break; + case 2: + GiveChosenBagItem(); + break; + } + } + LoadPSSMenuGfx(); + LoadWaveformSpritePalette(); + break; + case 1: + if (!InitPSSWindows()) + { + SetPSSCallback(Cb_ChangeScreen); + return; + } + break; + case 2: + PutWindowTilemap(0); + ClearWindowTilemap(1); + CpuFill32(0, (void *)VRAM, 0x200); + TextWindow_SetUserSelectedFrame(1, 0xB, 0xE0); + break; + case 3: + ResetAllBgCoords(); + if (!sPSSData->isReshowingPSS) + sub_808CF94(); + break; + case 4: + sub_808FFAC(); + if (!sPSSData->isReshowingPSS) + sub_80922C0(); + else + sub_8092340(); + break; + case 5: + if (!sub_8095050()) + { + SetPSSCallback(Cb_ChangeScreen); + return; + } + else + { + SetScrollingBackground(); + sub_808FB68(); + } + break; + case 6: + sub_808F078(); + break; + case 7: + sub_808F68C(); + break; + case 8: + sub_80913DC(StorageGetCurrentBox()); + break; + case 9: + if (sub_809140C()) + return; + + if (sPSSData->boxOption != BOX_OPTION_MOVE_ITEMS) + { + sPSSData->field_DA4.baseTileTag = TAG_TILE_D; + sPSSData->field_DA4.basePaletteTag = TAG_PAL_DACE; + SetMonMarkingsMenuPointer(&sPSSData->field_DA4); + LoadMonMarkingsFrameGfx(); + } + else + { + sub_8095B5C(); + sub_808FDFC(); + } + break; + case 10: + sub_808CFC4(); + if (!sPSSData->isReshowingPSS) + { + BlendPalettes(0xFFFFFFFF, 0x10, RGB_BLACK); + SetPSSCallback(Cb_ShowPSS); + } + else + { + BlendPalettes(0xFFFFFFFF, 0x10, RGB_BLACK); + SetPSSCallback(Cb_ReshowPSS); + } + SetVBlankCallback(VblankCb_PSS); + return; + default: + return; + } + + sPSSData->state++; +} + +void Cb_ShowPSS(u8 taskId) +{ + switch (sPSSData->state) + { + case 0: + PlaySE(SE_PC_LOGIN); + sub_80A0A48(0x14, 0, 1); + sPSSData->state++; + break; + case 1: + if (!sub_80A0A98()) + SetPSSCallback(Cb_MainPSS); + break; + } +} + +void Cb_ReshowPSS(u8 taskId) +{ + switch (sPSSData->state) + { + case 0: + BeginNormalPaletteFade(0xFFFFFFFF, -1, 0x10, 0, RGB_BLACK); + sPSSData->state++; + break; + case 1: + if (!UpdatePaletteFade()) + { + SetPSSCallback(Cb_MainPSS); + } + break; + } +} + +void Cb_MainPSS(u8 taskId) +{ + switch (sPSSData->state) + { + case 0: + switch (HandleInput()) + { + case 1: + PlaySE(SE_SELECT); + sPSSData->state = 1; + break; + case 5: + if (sPSSData->boxOption != BOX_OPTION_MOVE_MONS && sPSSData->boxOption != BOX_OPTION_MOVE_ITEMS) + { + PrintStorageActionText(PC_TEXT_WHICH_ONE_WILL_TAKE); + sPSSData->state = 3; + } + else + { + sub_8092B50(); + SetPSSCallback(Cb_ShowPartyPokemon); + } + break; + case 6: + if (sPSSData->boxOption == BOX_OPTION_MOVE_MONS) + { + if (IsMonBeingMoved() && ItemIsMail(sPSSData->cursorMonItem)) + sPSSData->state = 5; + else + SetPSSCallback(Cb_HidePartyPokemon); + } + else if (sPSSData->boxOption == BOX_OPTION_MOVE_ITEMS) + { + SetPSSCallback(Cb_HidePartyPokemon); + } + break; + case 4: + SetPSSCallback(Cb_OnCloseBoxPressed); + break; + case 19: + SetPSSCallback(Cb_OnBPressed); + break; + case 7: + PlaySE(SE_SELECT); + SetPSSCallback(Cb_HandleBoxOptions); + break; + case 8: + SetPSSCallback(Cb_OnSelectedMon); + break; + case 9: + PlaySE(SE_SELECT); + sPSSData->newCurrBoxId = StorageGetCurrentBox() + 1; + if (sPSSData->newCurrBoxId >= TOTAL_BOXES_COUNT) + sPSSData->newCurrBoxId = 0; + if (sPSSData->boxOption != BOX_OPTION_MOVE_ITEMS) + { + SetUpScrollToBox(sPSSData->newCurrBoxId); + sPSSData->state = 2; + } + else + { + sub_8094D60(); + sPSSData->state = 10; + } + break; + case 10: + PlaySE(SE_SELECT); + sPSSData->newCurrBoxId = StorageGetCurrentBox() - 1; + if (sPSSData->newCurrBoxId < 0) + sPSSData->newCurrBoxId = TOTAL_BOXES_COUNT - 1; + if (sPSSData->boxOption != BOX_OPTION_MOVE_ITEMS) + { + SetUpScrollToBox(sPSSData->newCurrBoxId); + sPSSData->state = 2; + } + else + { + sub_8094D60(); + sPSSData->state = 10; + } + break; + case 11: + if (!CanMovePartyMon()) + { + if (ItemIsMail(sPSSData->cursorMonItem)) + { + sPSSData->state = 5; + } + else + { + PlaySE(SE_SELECT); + SetPSSCallback(Cb_DepositMenu); + } + } + else + { + sPSSData->state = 4; + } + break; + case 13: + if (CanMovePartyMon()) + { + sPSSData->state = 4; + } + else + { + PlaySE(SE_SELECT); + SetPSSCallback(Cb_MoveMon); + } + break; + case 14: + if (!CanShiftMon()) + { + sPSSData->state = 4; + } + else + { + PlaySE(SE_SELECT); + SetPSSCallback(Cb_ShiftMon); + } + break; + case 12: + PlaySE(SE_SELECT); + SetPSSCallback(Cb_WithdrawMon); + break; + case 15: + PlaySE(SE_SELECT); + SetPSSCallback(Cb_PlaceMon); + break; + case 16: + PlaySE(SE_SELECT); + SetPSSCallback(Cb_TakeItemForMoving); + break; + case 17: + PlaySE(SE_SELECT); + SetPSSCallback(Cb_GiveMovingItemToMon); + break; + case 18: + PlaySE(SE_SELECT); + SetPSSCallback(Cb_SwitchSelectedItem); + break; + case 20: + PlaySE(SE_SELECT); + sub_80950BC(0); + sPSSData->state = 7; + break; + case 22: + sub_80950BC(1); + sPSSData->state = 8; + break; + case 21: + PlaySE(SE_SELECT); + sub_80950BC(2); + sPSSData->state = 9; + break; + case 23: + sub_80950BC(3); + sPSSData->state = 7; + break; + case 25: + PlaySE(SE_SELECT); + sub_80950BC(4); + sPSSData->state = 9; + break; + case 26: + PlaySE(SE_SELECT); + sub_808FE54(3); + sub_80950BC(5); + sPSSData->state = 7; + break; + case 24: + PlaySE(SE_HAZURE); + break; + } + break; + case 1: + if (!sub_80924A8()) + { + if (IsCursorOnCloseBox()) + sub_808F948(); + else + sub_808F974(); + + if (sPSSData->setMosaic) + BoxSetMosaic(); + sPSSData->state = 0; + } + break; + case 2: + if (!ScrollToBox()) + { + SetCurrentBox(sPSSData->newCurrBoxId); + if (!sInPartyMenu && !IsMonBeingMoved()) + { + sub_8092F54(); + BoxSetMosaic(); + } + + if (sPSSData->boxOption == BOX_OPTION_MOVE_ITEMS) + { + sub_8094D84(); + sPSSData->state = 11; + } + else + { + sPSSData->state = 0; + } + } + break; + case 3: + if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) + { + ClearBottomWindow(); + sPSSData->state = 0; + } + break; + case 4: + PlaySE(SE_HAZURE); + PrintStorageActionText(PC_TEXT_LAST_POKE); + sPSSData->state = 6; + break; + case 5: + PlaySE(SE_HAZURE); + PrintStorageActionText(PC_TEXT_PLEASE_REMOVE_MAIL); + sPSSData->state = 6; + break; + case 6: + if (gMain.newKeys & (A_BUTTON | B_BUTTON | DPAD_ANY)) + { + ClearBottomWindow(); + SetPSSCallback(Cb_MainPSS); + } + break; + case 7: + if (!sub_80950D0()) + sPSSData->state = 0; + break; + case 8: + if (!sub_80950D0()) + SetPSSCallback(Cb_MoveMon); + break; + case 9: + if (!sub_80950D0()) + { + if (sPSSData->setMosaic) + BoxSetMosaic(); + sPSSData->state = 0; + } + break; + case 10: + if (!sub_809610C()) + { + SetUpScrollToBox(sPSSData->newCurrBoxId); + sPSSData->state = 2; + } + break; + case 11: + if (!sub_809610C()) + sPSSData->state = 0; + break; + } +} |