diff options
-rw-r--r-- | asm/pokemon_storage_system.s | 2096 | ||||
-rw-r--r-- | data/pokemon_storage_system.s | 231 | ||||
-rw-r--r-- | graphics/interface/pss_unk_83CEA30.pal | 19 | ||||
-rw-r--r-- | include/box_party_pokemon_dropdown.h | 22 | ||||
-rw-r--r-- | include/graphics.h | 7 | ||||
-rw-r--r-- | include/pokemon_storage_system_internal.h | 108 | ||||
-rw-r--r-- | include/strings.h | 31 | ||||
-rw-r--r-- | src/box_party_pokemon_dropdown.c | 120 | ||||
-rw-r--r-- | src/graphics.c | 4 | ||||
-rw-r--r-- | src/pokemon_storage_system_3.c | 1046 | ||||
-rw-r--r-- | src/strings.c | 60 |
11 files changed, 1250 insertions, 2494 deletions
diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s index 0b03b6a23..4c6f57d22 100644 --- a/asm/pokemon_storage_system.s +++ b/asm/pokemon_storage_system.s @@ -5,2012 +5,6 @@ .text - thumb_func_start FreePSSData -FreePSSData: @ 808EF68 - push {r4,lr} - bl sub_80F7B2C - bl sub_80950A4 - ldr r4, _0808EF88 @ =sPSSData - ldr r0, [r4] - bl Free - movs r0, 0 - str r0, [r4] - bl FreeAllWindowBuffers - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808EF88: .4byte sPSSData - thumb_func_end FreePSSData - - thumb_func_start SetScrollingBackground -SetScrollingBackground: @ 808EF8C - push {lr} - sub sp, 0x4 - ldr r1, _0808EFB8 @ =0x00001f0f - movs r0, 0xE - bl SetGpuReg - ldr r1, _0808EFBC @ =gUnknown_83CE438 - movs r0, 0 - str r0, [sp] - movs r0, 0x3 - movs r2, 0 - movs r3, 0 - bl DecompressAndLoadBgGfxUsingHeap - ldr r0, _0808EFC0 @ =gUnknown_83CE4D0 - ldr r1, _0808EFC4 @ =0x0600f800 - bl LZ77UnCompVram - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_0808EFB8: .4byte 0x00001f0f -_0808EFBC: .4byte gUnknown_83CE438 -_0808EFC0: .4byte gUnknown_83CE4D0 -_0808EFC4: .4byte 0x0600f800 - thumb_func_end SetScrollingBackground - - thumb_func_start sub_808EFC8 -sub_808EFC8: @ 808EFC8 - push {lr} - movs r0, 0x3 - movs r1, 0x80 - movs r2, 0x1 - bl ChangeBgX - movs r0, 0x3 - movs r1, 0x80 - movs r2, 0x2 - bl ChangeBgY - pop {r0} - bx r0 - thumb_func_end sub_808EFC8 - - thumb_func_start LoadPSSMenuGfx -LoadPSSMenuGfx: @ 808EFE4 - push {r4,r5,lr} - sub sp, 0x4 - ldr r1, _0808F030 @ =gUnknown_83CEA50 - movs r0, 0 - movs r2, 0x4 - bl InitBgsFromTemplates - ldr r1, _0808F034 @ =gUnknown_8E9C438 - movs r0, 0 - str r0, [sp] - movs r0, 0x1 - movs r2, 0 - movs r3, 0 - bl DecompressAndLoadBgGfxUsingHeap - ldr r0, _0808F038 @ =gUnknown_83CE5FC - ldr r5, _0808F03C @ =sPSSData - ldr r1, [r5] - ldr r4, _0808F040 @ =0x00005abc - adds r1, r4 - bl LZ77UnCompWram - ldr r1, [r5] - adds r1, r4 - movs r0, 0x1 - bl SetBgTilemapBuffer - movs r0, 0x1 - bl ShowBg - movs r0, 0x1 - bl ScheduleBgCopyTilemapToVram - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0808F030: .4byte gUnknown_83CEA50 -_0808F034: .4byte gUnknown_8E9C438 -_0808F038: .4byte gUnknown_83CE5FC -_0808F03C: .4byte sPSSData -_0808F040: .4byte 0x00005abc - thumb_func_end LoadPSSMenuGfx - - thumb_func_start InitPSSWindows -InitPSSWindows: @ 808F044 - push {lr} - ldr r0, _0808F05C @ =gUnknown_83CEA30 - bl InitWindows - lsls r0, 16 - cmp r0, 0 - beq _0808F060 - bl DeactivateAllTextPrinters - movs r0, 0x1 - b _0808F062 - .align 2, 0 -_0808F05C: .4byte gUnknown_83CEA30 -_0808F060: - movs r0, 0 -_0808F062: - pop {r1} - bx r1 - thumb_func_end InitPSSWindows - - thumb_func_start LoadWaveformSpritePalette -LoadWaveformSpritePalette: @ 808F068 - push {lr} - ldr r0, _0808F074 @ =gUnknown_83CEA60 - bl LoadSpritePalette - pop {r0} - bx r0 - .align 2, 0 -_0808F074: .4byte gUnknown_83CEA60 - thumb_func_end LoadWaveformSpritePalette - - thumb_func_start sub_808F078 -sub_808F078: @ 808F078 - push {lr} - ldr r0, _0808F0B0 @ =gUnknown_8E9C3F8 - movs r1, 0 - movs r2, 0x20 - bl LoadPalette - ldr r0, _0808F0B4 @ =gUnknown_8E9C418 - movs r1, 0x20 - movs r2, 0x20 - bl LoadPalette - ldr r0, _0808F0B8 @ =gUnknown_83CEA10 - movs r1, 0xF0 - movs r2, 0x20 - bl LoadPalette - ldr r0, _0808F0BC @ =sPSSData - ldr r0, [r0] - ldrb r0, [r0, 0x1] - cmp r0, 0x3 - beq _0808F0C4 - ldr r0, _0808F0C0 @ =gUnknown_83CE738 - movs r1, 0x30 - movs r2, 0x20 - bl LoadPalette - b _0808F0CE - .align 2, 0 -_0808F0B0: .4byte gUnknown_8E9C3F8 -_0808F0B4: .4byte gUnknown_8E9C418 -_0808F0B8: .4byte gUnknown_83CEA10 -_0808F0BC: .4byte sPSSData -_0808F0C0: .4byte gUnknown_83CE738 -_0808F0C4: - ldr r0, _0808F0EC @ =gUnknown_83CE758 - movs r1, 0x30 - movs r2, 0x20 - bl LoadPalette -_0808F0CE: - ldr r1, _0808F0F0 @ =0x00001e05 - movs r0, 0xA - bl SetGpuReg - bl sub_808F2BC - bl sub_808F0F4 - bl sub_808F164 - bl RefreshCursorMonData - pop {r0} - bx r0 - .align 2, 0 -_0808F0EC: .4byte gUnknown_83CE758 -_0808F0F0: .4byte 0x00001e05 - thumb_func_end sub_808F078 - - thumb_func_start sub_808F0F4 -sub_808F0F4: @ 808F0F4 - push {r4,lr} - ldr r1, _0808F154 @ =0x0000dac8 - movs r0, 0x10 - movs r2, 0 - bl CreateMonMarkingSprite_AllOff - ldr r4, _0808F158 @ =sPSSData - ldr r1, [r4] - movs r3, 0xD9 - lsls r3, 4 - adds r1, r3 - str r0, [r1] - ldrb r2, [r0, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0, 0x5] - ldr r0, [r4] - adds r0, r3 - ldr r0, [r0] - adds r0, 0x43 - movs r1, 0x1 - strb r1, [r0] - ldr r0, [r4] - adds r0, r3 - ldr r2, [r0] - movs r1, 0x28 - strh r1, [r2, 0x20] - ldr r1, [r0] - movs r0, 0x96 - strh r0, [r1, 0x22] - movs r0, 0x10 - bl GetSpriteTileStartByTag - ldr r1, [r4] - ldr r2, _0808F15C @ =0x00000d9c - adds r1, r2 - lsls r0, 16 - lsrs r0, 11 - ldr r2, _0808F160 @ =0x06010000 - adds r0, r2 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808F154: .4byte 0x0000dac8 -_0808F158: .4byte sPSSData -_0808F15C: .4byte 0x00000d9c -_0808F160: .4byte 0x06010000 - thumb_func_end sub_808F0F4 - - thumb_func_start sub_808F164 -sub_808F164: @ 808F164 - push {r4,lr} - sub sp, 0x8 - ldr r0, _0808F1BC @ =gUnknown_83CEA68 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp] - str r1, [sp, 0x4] - mov r0, sp - bl LoadSpriteSheet - movs r4, 0 -_0808F17A: - lsls r1, r4, 6 - subs r1, r4 - adds r1, 0x8 - lsls r1, 16 - asrs r1, 16 - ldr r0, _0808F1C0 @ =gUnknown_83CEBD8 - movs r2, 0x9 - movs r3, 0x2 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0808F1C4 @ =sPSSData - ldr r2, [r1] - lsls r1, r4, 2 - ldr r3, _0808F1C8 @ =0x00000d94 - adds r2, r3 - adds r2, r1 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, _0808F1CC @ =gSprites - adds r1, r0 - str r1, [r2] - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1 - bls _0808F17A - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808F1BC: .4byte gUnknown_83CEA68 -_0808F1C0: .4byte gUnknown_83CEBD8 -_0808F1C4: .4byte sPSSData -_0808F1C8: .4byte 0x00000d94 -_0808F1CC: .4byte gSprites - thumb_func_end sub_808F164 - - thumb_func_start RefreshCursorMonData -RefreshCursorMonData: @ 808F1D0 - push {lr} - ldr r0, _0808F1FC @ =sPSSData - ldr r1, [r0] - movs r2, 0xCE - lsls r2, 4 - adds r0, r1, r2 - ldrh r0, [r0] - subs r2, 0x4 - adds r1, r2 - ldr r1, [r1] - bl sub_808F3F8 - bl PrintCursorMonInfo - bl sub_808F5E8 - movs r0, 0 - bl ScheduleBgCopyTilemapToVram - pop {r0} - bx r0 - .align 2, 0 -_0808F1FC: .4byte sPSSData - thumb_func_end RefreshCursorMonData - - thumb_func_start BoxSetMosaic -BoxSetMosaic: @ 808F200 - push {lr} - bl RefreshCursorMonData - ldr r3, _0808F24C @ =sPSSData - ldr r0, [r3] - ldr r1, _0808F250 @ =0x00002238 - adds r0, r1 - ldr r2, [r0] - cmp r2, 0 - beq _0808F248 - ldrb r0, [r2, 0x1] - movs r1, 0x10 - orrs r0, r1 - strb r0, [r2, 0x1] - ldr r1, [r3] - ldr r0, _0808F250 @ =0x00002238 - adds r1, r0 - ldr r2, [r1] - movs r0, 0xA - strh r0, [r2, 0x2E] - ldr r2, [r1] - movs r0, 0x1 - strh r0, [r2, 0x30] - ldr r2, [r1] - ldr r0, _0808F254 @ =BoxSetMosaic2 - str r0, [r2, 0x1C] - ldr r0, [r1] - ldrh r0, [r0, 0x2E] - lsls r1, r0, 12 - lsls r0, 8 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x4C - bl SetGpuReg -_0808F248: - pop {r0} - bx r0 - .align 2, 0 -_0808F24C: .4byte sPSSData -_0808F250: .4byte 0x00002238 -_0808F254: .4byte BoxSetMosaic2 - thumb_func_end BoxSetMosaic - - thumb_func_start sub_808F258 -sub_808F258: @ 808F258 - ldr r0, _0808F26C @ =sPSSData - ldr r0, [r0] - ldr r1, _0808F270 @ =0x00002238 - adds r0, r1 - ldr r0, [r0] - ldrb r0, [r0, 0x1] - lsls r0, 27 - lsrs r0, 31 - bx lr - .align 2, 0 -_0808F26C: .4byte sPSSData -_0808F270: .4byte 0x00002238 - thumb_func_end sub_808F258 - - thumb_func_start BoxSetMosaic2 -BoxSetMosaic2: @ 808F274 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - ldrh r1, [r4, 0x30] - subs r0, r1 - strh r0, [r4, 0x2E] - lsls r0, 16 - cmp r0, 0 - bge _0808F28A - movs r0, 0 - strh r0, [r4, 0x2E] -_0808F28A: - ldrh r0, [r4, 0x2E] - lsls r1, r0, 12 - lsls r0, 8 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x4C - bl SetGpuReg - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _0808F2B2 - ldrb r0, [r4, 0x1] - movs r1, 0x11 - negs r1, r1 - ands r1, r0 - strb r1, [r4, 0x1] - ldr r0, _0808F2B8 @ =SpriteCallbackDummy - str r0, [r4, 0x1C] -_0808F2B2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808F2B8: .4byte SpriteCallbackDummy - thumb_func_end BoxSetMosaic2 - - thumb_func_start sub_808F2BC -sub_808F2BC: @ 808F2BC - push {r4-r7,lr} - sub sp, 0x28 - ldr r0, _0808F350 @ =sPSSData - mov r12, r0 - ldr r1, [r0] - ldr r4, _0808F354 @ =0x000022bc - adds r0, r1, r4 - str r0, [sp, 0x18] - add r3, sp, 0x18 - movs r0, 0x82 - lsls r0, 10 - str r0, [r3, 0x4] - ldr r5, _0808F358 @ =0x0000223c - adds r1, r5 - str r1, [sp, 0x20] - ldr r0, _0808F35C @ =0x0000dac6 - add r2, sp, 0x20 - str r0, [r2, 0x4] - mov r1, sp - ldr r0, _0808F360 @ =gUnknown_83CEA70 - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - movs r6, 0 - adds r7, r2, 0 - mov r5, r12 - movs r2, 0 - ldr r1, _0808F364 @ =0x000007ff -_0808F2F6: - ldr r0, [r5] - adds r0, r4 - adds r0, r6 - strb r2, [r0] - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, r1 - bls _0808F2F6 - movs r6, 0 - ldr r5, _0808F350 @ =sPSSData - ldr r4, _0808F358 @ =0x0000223c - movs r2, 0 -_0808F310: - ldr r0, [r5] - lsls r1, r6, 1 - adds r0, r4 - adds r0, r1 - strh r2, [r0] - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0xF - bls _0808F310 - ldr r0, _0808F350 @ =sPSSData - ldr r0, [r0] - ldr r6, _0808F368 @ =0x00002238 - adds r0, r6 - movs r1, 0 - str r1, [r0] - adds r0, r3, 0 - bl LoadSpriteSheet - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0 - beq _0808F3C8 - adds r0, r7, 0 - bl LoadSpritePalette - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xFF - beq _0808F3C8 - b _0808F3B4 - .align 2, 0 -_0808F350: .4byte sPSSData -_0808F354: .4byte 0x000022bc -_0808F358: .4byte 0x0000223c -_0808F35C: .4byte 0x0000dac6 -_0808F360: .4byte gUnknown_83CEA70 -_0808F364: .4byte 0x000007ff -_0808F368: .4byte 0x00002238 -_0808F36C: - ldr r0, _0808F39C @ =sPSSData - ldr r2, [r0] - ldr r7, _0808F3A0 @ =0x00002238 - adds r3, r2, r7 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0808F3A4 @ =gSprites - adds r0, r1 - str r0, [r3] - lsls r0, r4, 4 - movs r1, 0x80 - lsls r1, 1 - adds r0, r1 - ldr r3, _0808F3A8 @ =0x00002232 - adds r1, r2, r3 - strh r0, [r1] - ldr r6, _0808F3AC @ =0x00002234 - adds r2, r6 - lsls r0, r5, 5 - ldr r7, _0808F3B0 @ =0x06010000 - adds r0, r7 - str r0, [r2] - b _0808F3C8 - .align 2, 0 -_0808F39C: .4byte sPSSData -_0808F3A0: .4byte 0x00002238 -_0808F3A4: .4byte gSprites -_0808F3A8: .4byte 0x00002232 -_0808F3AC: .4byte 0x00002234 -_0808F3B0: .4byte 0x06010000 -_0808F3B4: - mov r0, sp - movs r1, 0x28 - movs r2, 0x30 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - bne _0808F36C -_0808F3C8: - ldr r0, _0808F3EC @ =sPSSData - ldr r0, [r0] - ldr r1, _0808F3F0 @ =0x00002238 - adds r0, r1 - ldr r0, [r0] - cmp r0, 0 - bne _0808F3E2 - movs r0, 0x2 - bl FreeSpriteTilesByTag - ldr r0, _0808F3F4 @ =0x0000dac6 - bl FreeSpritePaletteByTag -_0808F3E2: - add sp, 0x28 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0808F3EC: .4byte sPSSData -_0808F3F0: .4byte 0x00002238 -_0808F3F4: .4byte 0x0000dac6 - thumb_func_end sub_808F2BC - - thumb_func_start sub_808F3F8 -sub_808F3F8: @ 808F3F8 - push {r4-r7,lr} - adds r3, r1, 0 - lsls r0, 16 - lsrs r2, r0, 16 - ldr r6, _0808F468 @ =sPSSData - ldr r4, [r6] - ldr r7, _0808F46C @ =0x00002238 - adds r0, r4, r7 - ldr r0, [r0] - cmp r0, 0 - beq _0808F496 - cmp r2, 0 - beq _0808F48C - lsls r0, r2, 3 - ldr r1, _0808F470 @ =gMonFrontPicTable - adds r0, r1 - ldr r5, _0808F474 @ =0x000022bc - adds r1, r4, r5 - bl HandleLoadSpecialPokePic - ldr r1, [r6] - ldr r2, _0808F478 @ =0x00000cd8 - adds r0, r1, r2 - ldr r0, [r0] - ldr r4, _0808F47C @ =0x0000223c - adds r1, r4 - bl LZ77UnCompWram - ldr r0, [r6] - adds r5, r0, r5 - ldr r1, _0808F480 @ =0x00002234 - adds r0, r1 - ldr r1, [r0] - ldr r2, _0808F484 @ =0x04000200 - adds r0, r5, 0 - bl CpuSet - ldr r0, [r6] - adds r4, r0, r4 - ldr r2, _0808F488 @ =0x00002232 - adds r0, r2 - ldrh r1, [r0] - adds r0, r4, 0 - movs r2, 0x20 - bl LoadPalette - ldr r0, [r6] - adds r0, r7 - ldr r1, [r0] - adds r1, 0x3E - ldrb r2, [r1] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - b _0808F496 - .align 2, 0 -_0808F468: .4byte sPSSData -_0808F46C: .4byte 0x00002238 -_0808F470: .4byte gMonFrontPicTable -_0808F474: .4byte 0x000022bc -_0808F478: .4byte 0x00000cd8 -_0808F47C: .4byte 0x0000223c -_0808F480: .4byte 0x00002234 -_0808F484: .4byte 0x04000200 -_0808F488: .4byte 0x00002232 -_0808F48C: - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] -_0808F496: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_808F3F8 - - thumb_func_start PrintCursorMonInfo -PrintCursorMonInfo: @ 808F49C - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0xC - movs r0, 0 - movs r1, 0x11 - bl FillWindowPixelBuffer - ldr r6, _0808F51C @ =sPSSData - ldr r2, [r6] - ldrb r0, [r2, 0x1] - cmp r0, 0x3 - beq _0808F528 - movs r4, 0 - movs r5, 0 - mov r8, r6 -_0808F4BC: - lsls r0, r4, 3 - adds r0, r4 - lsls r0, 2 - ldr r1, _0808F520 @ =0x00000cf5 - adds r0, r1 - mov r2, r8 - ldr r1, [r2] - adds r2, r1, r0 - movs r3, 0x6 - cmp r4, 0x2 - bne _0808F4D4 - movs r3, 0xA -_0808F4D4: - lsls r0, r5, 24 - lsrs r0, 24 - str r0, [sp] - movs r7, 0xFF - str r7, [sp, 0x4] - movs r6, 0 - str r6, [sp, 0x8] - movs r0, 0 - movs r1, 0x2 - bl AddTextPrinterParameterized - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r5, 0 - adds r0, 0xE - lsls r0, 16 - lsrs r5, r0, 16 - cmp r4, 0x2 - bls _0808F4BC - ldr r0, _0808F51C @ =sPSSData - ldr r2, [r0] - ldr r0, _0808F524 @ =0x00000d61 - adds r2, r0 - adds r0, r5, 0x2 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - str r7, [sp, 0x4] - str r6, [sp, 0x8] - movs r0, 0 - movs r1, 0 - movs r3, 0x6 - bl AddTextPrinterParameterized - b _0808F57E - .align 2, 0 -_0808F51C: .4byte sPSSData -_0808F520: .4byte 0x00000cf5 -_0808F524: .4byte 0x00000d61 -_0808F528: - ldr r1, _0808F5BC @ =0x00000d61 - adds r2, r1 - movs r1, 0 - str r1, [sp] - movs r0, 0xFF - str r0, [sp, 0x4] - str r1, [sp, 0x8] - movs r0, 0 - movs r3, 0x6 - bl AddTextPrinterParameterized - movs r4, 0 - movs r5, 0xF -_0808F542: - lsls r0, r4, 3 - adds r0, r4 - lsls r0, 2 - ldr r2, _0808F5C0 @ =0x00000cf5 - adds r0, r2 - ldr r1, [r6] - adds r2, r1, r0 - movs r3, 0x6 - cmp r4, 0x2 - bne _0808F558 - movs r3, 0xA -_0808F558: - lsls r0, r5, 24 - lsrs r0, 24 - str r0, [sp] - movs r0, 0xFF - str r0, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0x8] - movs r1, 0x2 - bl AddTextPrinterParameterized - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r5, 0 - adds r0, 0xE - lsls r0, 16 - lsrs r5, r0, 16 - cmp r4, 0x2 - bls _0808F542 -_0808F57E: - movs r0, 0 - movs r1, 0x2 - bl CopyWindowToVram - ldr r4, _0808F5C4 @ =sPSSData - ldr r1, [r4] - movs r2, 0xCE - lsls r2, 4 - adds r0, r1, r2 - ldrh r0, [r0] - cmp r0, 0 - beq _0808F5C8 - adds r2, 0x7 - adds r0, r1, r2 - ldrb r0, [r0] - adds r2, 0xB5 - adds r1, r2 - ldr r1, [r1] - bl sub_80BEBD0 - ldr r0, [r4] - movs r1, 0xD9 - lsls r1, 4 - adds r0, r1 - ldr r1, [r0] - adds r1, 0x3E - ldrb r2, [r1] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - b _0808F5D8 - .align 2, 0 -_0808F5BC: .4byte 0x00000d61 -_0808F5C0: .4byte 0x00000cf5 -_0808F5C4: .4byte sPSSData -_0808F5C8: - movs r2, 0xD9 - lsls r2, 4 - adds r0, r1, r2 - ldr r1, [r0] - adds r1, 0x3E - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 -_0808F5D8: - strb r0, [r1] - add sp, 0xC - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end PrintCursorMonInfo - - thumb_func_start sub_808F5E8 -sub_808F5E8: @ 808F5E8 - push {r4,lr} - sub sp, 0x4 - ldr r0, _0808F634 @ =sPSSData - ldr r0, [r0] - movs r1, 0xCE - lsls r1, 4 - adds r0, r1 - ldrh r0, [r0] - cmp r0, 0 - beq _0808F63C - movs r0, 0x2 - str r0, [sp] - movs r0, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0x8 - bl sub_80F7CE8 - movs r4, 0 -_0808F60E: - ldr r0, _0808F634 @ =sPSSData - ldr r0, [r0] - lsls r1, r4, 2 - ldr r2, _0808F638 @ =0x00000d94 - adds r0, r2 - adds r0, r1 - ldr r0, [r0] - lsls r1, r4, 1 - adds r1, 0x1 - lsls r1, 24 - lsrs r1, 24 - bl StartSpriteAnimIfDifferent - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1 - bls _0808F60E - b _0808F66E - .align 2, 0 -_0808F634: .4byte sPSSData -_0808F638: .4byte 0x00000d94 -_0808F63C: - movs r0, 0x2 - str r0, [sp] - movs r0, 0 - movs r1, 0 - movs r2, 0x2 - movs r3, 0x8 - bl sub_80F7CE8 - movs r4, 0 -_0808F64E: - ldr r0, _0808F684 @ =sPSSData - ldr r0, [r0] - lsls r1, r4, 2 - ldr r2, _0808F688 @ =0x00000d94 - adds r0, r2 - adds r0, r1 - ldr r0, [r0] - lsls r1, r4, 25 - lsrs r1, 24 - bl StartSpriteAnim - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1 - bls _0808F64E -_0808F66E: - movs r0, 0 - bl sub_80F7E54 - movs r0, 0x1 - bl ScheduleBgCopyTilemapToVram - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808F684: .4byte sPSSData -_0808F688: .4byte 0x00000d94 - thumb_func_end sub_808F5E8 - - thumb_func_start sub_808F68C -sub_808F68C: @ 808F68C - push {r4,lr} - sub sp, 0x4 - ldr r0, _0808F704 @ =gUnknown_8E9CAEC - ldr r4, _0808F708 @ =sPSSData - ldr r1, [r4] - adds r1, 0xB0 - bl LZ77UnCompWram - ldr r0, _0808F70C @ =gUnknown_8E9C3D8 - movs r1, 0x10 - movs r2, 0x20 - bl LoadPalette - ldr r2, [r4] - adds r2, 0xB0 - movs r0, 0x16 - str r0, [sp] - movs r0, 0x1 - movs r1, 0x1 - movs r3, 0xC - bl SetBoxPartyPokemonDropdownMap2 - ldr r2, _0808F710 @ =gUnknown_83CE778 - movs r0, 0x4 - str r0, [sp] - movs r0, 0x2 - movs r1, 0x1 - movs r3, 0x9 - bl SetBoxPartyPokemonDropdownMap2 - movs r0, 0x1 - movs r1, 0xA - movs r2, 0 - bl SetBoxPartyPokemonDropdownMap2Pos - movs r0, 0x2 - movs r1, 0x15 - movs r2, 0 - bl SetBoxPartyPokemonDropdownMap2Pos - bl sub_808F9FC - ldr r0, _0808F714 @ =sInPartyMenu - ldrb r0, [r0] - cmp r0, 0 - beq _0808F718 - movs r0, 0x1 - bl sub_808F90C - movs r0, 0x1 - bl sub_809088C - movs r0, 0x2 - bl sub_80F7E54 - movs r0, 0x1 - bl sub_80F7E54 - b _0808F73A - .align 2, 0 -_0808F704: .4byte gUnknown_8E9CAEC -_0808F708: .4byte sPSSData -_0808F70C: .4byte gUnknown_8E9C3D8 -_0808F710: .4byte gUnknown_83CE778 -_0808F714: .4byte sInPartyMenu -_0808F718: - movs r0, 0x2 - str r0, [sp] - movs r0, 0x1 - movs r1, 0 - movs r2, 0x14 - movs r3, 0xC - bl sub_80F7CE8 - movs r0, 0x1 - bl sub_808F90C - movs r0, 0x1 - bl sub_80F7E54 - movs r0, 0x2 - bl sub_80F7E54 -_0808F73A: - movs r0, 0x1 - bl ScheduleBgCopyTilemapToVram - ldr r0, _0808F754 @ =sPSSData - ldr r0, [r0] - ldr r1, _0808F758 @ =0x000002c7 - adds r0, r1 - movs r1, 0 - strb r1, [r0] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808F754: .4byte sPSSData -_0808F758: .4byte 0x000002c7 - thumb_func_end sub_808F68C - - thumb_func_start sub_808F75C -sub_808F75C: @ 808F75C - push {lr} - ldr r0, _0808F788 @ =sPSSData - ldr r1, [r0] - movs r0, 0xB0 - lsls r0, 2 - adds r2, r1, r0 - movs r3, 0 - movs r0, 0x14 - strh r0, [r2] - ldr r0, _0808F78C @ =0x000002c2 - adds r2, r1, r0 - movs r0, 0x2 - strh r0, [r2] - ldr r0, _0808F790 @ =0x000002c5 - adds r1, r0 - strb r3, [r1] - movs r0, 0 - bl sub_809088C - pop {r0} - bx r0 - .align 2, 0 -_0808F788: .4byte sPSSData -_0808F78C: .4byte 0x000002c2 -_0808F790: .4byte 0x000002c5 - thumb_func_end sub_808F75C - - thumb_func_start sub_808F794 -sub_808F794: @ 808F794 - push {r4,lr} - ldr r4, _0808F7F0 @ =sPSSData - ldr r2, [r4] - ldr r1, _0808F7F4 @ =0x000002c5 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0x14 - beq _0808F802 - movs r0, 0xB0 - lsls r0, 2 - adds r1, r2, r0 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - ldr r0, _0808F7F8 @ =0x000002c2 - adds r1, r2, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - movs r0, 0x1 - movs r1, 0x3 - movs r2, 0x1 - bl sub_80F7D30 - movs r0, 0x1 - bl sub_80F7E54 - movs r0, 0x1 - bl ScheduleBgCopyTilemapToVram - movs r0, 0x8 - bl sub_8090B98 - ldr r1, [r4] - ldr r0, _0808F7F4 @ =0x000002c5 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x14 - beq _0808F7FC - movs r0, 0x1 - b _0808F804 - .align 2, 0 -_0808F7F0: .4byte sPSSData -_0808F7F4: .4byte 0x000002c5 -_0808F7F8: .4byte 0x000002c2 -_0808F7FC: - ldr r1, _0808F80C @ =sInPartyMenu - movs r0, 0x1 - strb r0, [r1] -_0808F802: - movs r0, 0 -_0808F804: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0808F80C: .4byte sInPartyMenu - thumb_func_end sub_808F794 - - thumb_func_start SetUpHidePartyMenu -SetUpHidePartyMenu: @ 808F810 - push {r4,lr} - ldr r4, _0808F844 @ =sPSSData - ldr r1, [r4] - movs r0, 0xB0 - lsls r0, 2 - adds r2, r1, r0 - movs r3, 0 - movs r0, 0 - strh r0, [r2] - ldr r0, _0808F848 @ =0x000002c2 - adds r2, r1, r0 - movs r0, 0x16 - strh r0, [r2] - ldr r0, _0808F84C @ =0x000002c5 - adds r1, r0 - strb r3, [r1] - ldr r0, [r4] - ldrb r0, [r0, 0x1] - cmp r0, 0x3 - bne _0808F83C - bl sub_80960C0 -_0808F83C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808F844: .4byte sPSSData -_0808F848: .4byte 0x000002c2 -_0808F84C: .4byte 0x000002c5 - thumb_func_end SetUpHidePartyMenu - - thumb_func_start HidePartyMenu -HidePartyMenu: @ 808F850 - push {r4,r5,lr} - sub sp, 0x8 - ldr r5, _0808F8C8 @ =sPSSData - ldr r2, [r5] - ldr r1, _0808F8CC @ =0x000002c5 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0x14 - beq _0808F8FC - movs r0, 0xB0 - lsls r0, 2 - adds r1, r2, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - ldr r4, _0808F8D0 @ =0x000002c2 - adds r1, r2, r4 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - movs r2, 0x1 - negs r2, r2 - movs r0, 0x1 - movs r1, 0x3 - bl sub_80F7D30 - movs r0, 0x1 - bl sub_80F7E54 - movs r1, 0x80 - lsls r1, 1 - ldr r0, [r5] - adds r0, r4 - ldrb r3, [r0] - movs r0, 0xC - str r0, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - movs r2, 0xA - bl FillBgTilemapBufferRect_Palette0 - movs r0, 0x8 - negs r0, r0 - bl sub_8090B98 - ldr r1, [r5] - ldr r0, _0808F8CC @ =0x000002c5 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x14 - beq _0808F8D4 - movs r0, 0x1 - bl ScheduleBgCopyTilemapToVram - movs r0, 0x1 - b _0808F8FE - .align 2, 0 -_0808F8C8: .4byte sPSSData -_0808F8CC: .4byte 0x000002c5 -_0808F8D0: .4byte 0x000002c2 -_0808F8D4: - ldr r0, _0808F908 @ =sInPartyMenu - movs r1, 0 - strb r1, [r0] - bl sub_8090C44 - bl CompactPartySlots - movs r0, 0x2 - str r0, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x9 - bl sub_80F7CE8 - movs r0, 0x2 - bl sub_80F7E54 - movs r0, 0x1 - bl ScheduleBgCopyTilemapToVram -_0808F8FC: - movs r0, 0 -_0808F8FE: - add sp, 0x8 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0808F908: .4byte sInPartyMenu - thumb_func_end HidePartyMenu - - thumb_func_start sub_808F90C -sub_808F90C: @ 808F90C - push {lr} - sub sp, 0x4 - lsls r0, 24 - cmp r0, 0 - beq _0808F926 - movs r0, 0x2 - str r0, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x9 - bl sub_80F7CE8 - b _0808F934 -_0808F926: - movs r0, 0x2 - str r0, [sp] - movs r1, 0 - movs r2, 0x2 - movs r3, 0x9 - bl sub_80F7CE8 -_0808F934: - movs r0, 0x2 - bl sub_80F7E54 - movs r0, 0x1 - bl ScheduleBgCopyTilemapToVram - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end sub_808F90C - - thumb_func_start sub_808F948 -sub_808F948: @ 808F948 - ldr r2, _0808F968 @ =sPSSData - ldr r0, [r2] - ldr r1, _0808F96C @ =0x000002c7 - adds r0, r1 - movs r3, 0x1 - strb r3, [r0] - ldr r0, [r2] - adds r1, 0x1 - adds r0, r1 - movs r1, 0x1E - strb r1, [r0] - ldr r0, [r2] - ldr r1, _0808F970 @ =0x000002c9 - adds r0, r1 - strb r3, [r0] - bx lr - .align 2, 0 -_0808F968: .4byte sPSSData -_0808F96C: .4byte 0x000002c7 -_0808F970: .4byte 0x000002c9 - thumb_func_end sub_808F948 - - thumb_func_start sub_808F974 -sub_808F974: @ 808F974 - push {lr} - ldr r0, _0808F994 @ =sPSSData - ldr r0, [r0] - ldr r2, _0808F998 @ =0x000002c7 - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, 0 - beq _0808F98E - movs r0, 0 - strb r0, [r1] - movs r0, 0x1 - bl sub_808F90C -_0808F98E: - pop {r0} - bx r0 - .align 2, 0 -_0808F994: .4byte sPSSData -_0808F998: .4byte 0x000002c7 - thumb_func_end sub_808F974 - - thumb_func_start sub_808F99C -sub_808F99C: @ 808F99C - push {r4,lr} - ldr r3, _0808F9F0 @ =sPSSData - ldr r1, [r3] - ldr r2, _0808F9F4 @ =0x000002c7 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0 - beq _0808F9E8 - movs r0, 0xB2 - lsls r0, 2 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1E - bls _0808F9E8 - ldr r0, [r3] - movs r1, 0xB2 - lsls r1, 2 - adds r0, r1 - movs r1, 0 - strb r1, [r0] - ldr r0, [r3] - movs r2, 0 - ldr r4, _0808F9F8 @ =0x000002c9 - adds r1, r0, r4 - ldrb r0, [r1] - cmp r0, 0 - bne _0808F9DC - movs r2, 0x1 -_0808F9DC: - strb r2, [r1] - ldr r0, [r3] - adds r0, r4 - ldrb r0, [r0] - bl sub_808F90C -_0808F9E8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808F9F0: .4byte sPSSData -_0808F9F4: .4byte 0x000002c7 -_0808F9F8: .4byte 0x000002c9 - thumb_func_end sub_808F99C - - thumb_func_start sub_808F9FC -sub_808F9FC: @ 808F9FC - push {r4,lr} - movs r4, 0x1 -_0808FA00: - movs r0, 0x64 - muls r0, r4 - ldr r1, _0808FA2C @ =gPlayerParty - adds r0, r1 - movs r1, 0xB - bl GetMonData - negs r1, r0 - orrs r1, r0 - lsrs r1, 31 - adds r0, r4, 0 - bl sub_808FA30 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x5 - bls _0808FA00 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808FA2C: .4byte gPlayerParty - thumb_func_end sub_808F9FC - - thumb_func_start sub_808FA30 -sub_808FA30: @ 808FA30 - push {r4-r7,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - ldr r7, _0808FA9C @ =gUnknown_83CE7D8 - cmp r1, 0 - beq _0808FA40 - ldr r7, _0808FAA0 @ =gUnknown_83CE7C0 -_0808FA40: - subs r0, 0x1 - lsls r1, r0, 1 - adds r1, r0 - adds r1, 0x1 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 18 - movs r1, 0xE0 - lsls r1, 11 - adds r0, r1 - lsrs r3, r0, 16 - movs r0, 0 - ldr r1, _0808FAA4 @ =sPSSData - mov r12, r1 -_0808FA5C: - movs r2, 0 - adds r4, r7, 0 - adds r4, 0x8 - adds r5, r3, 0 - adds r5, 0xC - adds r6, r0, 0x1 -_0808FA68: - mov r0, r12 - ldr r1, [r0] - adds r0, r3, r2 - lsls r0, 1 - adds r1, 0xB0 - adds r1, r0 - lsls r0, r2, 1 - adds r0, r7 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x3 - bls _0808FA68 - adds r7, r4, 0 - lsls r0, r5, 16 - lsrs r3, r0, 16 - lsls r0, r6, 16 - lsrs r0, 16 - cmp r0, 0x2 - bls _0808FA5C - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0808FA9C: .4byte gUnknown_83CE7D8 -_0808FAA0: .4byte gUnknown_83CE7C0 -_0808FAA4: .4byte sPSSData - thumb_func_end sub_808FA30 - - thumb_func_start sub_808FAA8 -sub_808FAA8: @ 808FAA8 - push {lr} - sub sp, 0x4 - bl sub_808F9FC - movs r0, 0x16 - str r0, [sp] - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - movs r3, 0xC - bl sub_80F7CE8 - movs r0, 0x1 - bl sub_80F7E54 - movs r0, 0x1 - bl ScheduleBgCopyTilemapToVram - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end sub_808FAA8 - - thumb_func_start SetUpDoShowPartyMenu -SetUpDoShowPartyMenu: @ 808FAD4 - push {lr} - ldr r0, _0808FAF0 @ =sPSSData - ldr r0, [r0] - ldr r1, _0808FAF4 @ =0x000002c6 - adds r0, r1 - movs r1, 0 - strb r1, [r0] - movs r0, 0x6 - bl PlaySE - bl sub_808F75C - pop {r0} - bx r0 - .align 2, 0 -_0808FAF0: .4byte sPSSData -_0808FAF4: .4byte 0x000002c6 - thumb_func_end SetUpDoShowPartyMenu - - thumb_func_start DoShowPartyMenu -DoShowPartyMenu: @ 808FAF8 - push {r4,r5,lr} - ldr r4, _0808FB14 @ =sPSSData - ldr r0, [r4] - ldr r5, _0808FB18 @ =0x000002c6 - adds r0, r5 - ldrb r0, [r0] - cmp r0, 0x1 - beq _0808FB32 - cmp r0, 0x1 - bgt _0808FB1C - cmp r0, 0 - beq _0808FB22 - b _0808FB60 - .align 2, 0 -_0808FB14: .4byte sPSSData -_0808FB18: .4byte 0x000002c6 -_0808FB1C: - cmp r0, 0x2 - beq _0808FB5C - b _0808FB60 -_0808FB22: - bl sub_808F794 - lsls r0, 24 - cmp r0, 0 - bne _0808FB60 - bl sub_8092AE4 - b _0808FB4C -_0808FB32: - bl sub_80924A8 - lsls r0, 24 - cmp r0, 0 - bne _0808FB60 - ldr r0, [r4] - ldr r1, _0808FB58 @ =0x00000ce6 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _0808FB4C - bl BoxSetMosaic -_0808FB4C: - ldr r1, [r4] - adds r1, r5 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0808FB60 - .align 2, 0 -_0808FB58: .4byte 0x00000ce6 -_0808FB5C: - movs r0, 0 - b _0808FB62 -_0808FB60: - movs r0, 0x1 -_0808FB62: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end DoShowPartyMenu - - thumb_func_start sub_808FB68 -sub_808FB68: @ 808FB68 - push {lr} - sub sp, 0xC - movs r1, 0xE8 - lsls r1, 5 - movs r0, 0x8 - bl SetGpuReg - movs r0, 0x1 - movs r1, 0x2 - movs r2, 0xD0 - bl TextWindow_SetStdFrame0_WithPal - movs r0, 0x20 - str r0, [sp] - movs r0, 0x14 - str r0, [sp, 0x4] - movs r0, 0x11 - str r0, [sp, 0x8] - movs r0, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect - movs r0, 0 - bl CopyBgTilemapBufferToVram - add sp, 0xC - pop {r0} - bx r0 - thumb_func_end sub_808FB68 - - thumb_func_start PrintStorageActionText -PrintStorageActionText: @ 808FBA4 - push {r4-r6,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r6, r0, 24 - bl DynamicPlaceholderTextUtil_Reset - ldr r1, _0808FBC8 @ =gUnknown_83CEA88 - lsls r0, r6, 3 - adds r0, r1 - ldrb r0, [r0, 0x4] - cmp r0, 0x7 - bhi _0808FC7C - lsls r0, 2 - ldr r1, _0808FBCC @ =_0808FBD0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0808FBC8: .4byte gUnknown_83CEA88 -_0808FBCC: .4byte _0808FBD0 - .align 2, 0 -_0808FBD0: - .4byte _0808FC7C - .4byte _0808FBF0 - .4byte _0808FBF0 - .4byte _0808FBF0 - .4byte _0808FC04 - .4byte _0808FC04 - .4byte _0808FC04 - .4byte _0808FC1C -_0808FBF0: - ldr r0, _0808FBFC @ =sPSSData - ldr r1, [r0] - ldr r0, _0808FC00 @ =0x00000cea - adds r1, r0 - b _0808FC0C - .align 2, 0 -_0808FBFC: .4byte sPSSData -_0808FC00: .4byte 0x00000cea -_0808FC04: - ldr r0, _0808FC14 @ =sPSSData - ldr r1, [r0] - ldr r2, _0808FC18 @ =0x000021d0 - adds r1, r2 -_0808FC0C: - movs r0, 0 - bl DynamicPlaceholderTextUtil_SetPlaceholderPtr - b _0808FC7C - .align 2, 0 -_0808FC14: .4byte sPSSData -_0808FC18: .4byte 0x000021d0 -_0808FC1C: - bl IsActiveItemMoving - lsls r0, 24 - cmp r0, 0 - beq _0808FC40 - ldr r0, _0808FC38 @ =sPSSData - ldr r4, [r0] - ldr r0, _0808FC3C @ =0x000021db - adds r4, r0 - bl sub_80961A8 - adds r1, r0, 0 - adds r0, r4, 0 - b _0808FC4C - .align 2, 0 -_0808FC38: .4byte sPSSData -_0808FC3C: .4byte 0x000021db -_0808FC40: - ldr r0, _0808FC54 @ =sPSSData - ldr r1, [r0] - ldr r2, _0808FC58 @ =0x000021db - adds r0, r1, r2 - ldr r2, _0808FC5C @ =0x00000d61 - adds r1, r2 -_0808FC4C: - bl StringCopy - adds r2, r0, 0 - b _0808FC62 - .align 2, 0 -_0808FC54: .4byte sPSSData -_0808FC58: .4byte 0x000021db -_0808FC5C: .4byte 0x00000d61 -_0808FC60: - adds r2, r1, 0 -_0808FC62: - subs r1, r2, 0x1 - ldrb r0, [r1] - cmp r0, 0 - beq _0808FC60 - movs r0, 0xFF - strb r0, [r2] - ldr r0, _0808FCDC @ =sPSSData - ldr r1, [r0] - ldr r0, _0808FCE0 @ =0x000021db - adds r1, r0 - movs r0, 0 - bl DynamicPlaceholderTextUtil_SetPlaceholderPtr -_0808FC7C: - ldr r5, _0808FCDC @ =sPSSData - ldr r0, [r5] - movs r4, 0x86 - lsls r4, 6 - adds r0, r4 - ldr r2, _0808FCE4 @ =gUnknown_83CEA88 - lsls r1, r6, 3 - adds r1, r2 - ldr r1, [r1] - bl DynamicPlaceholderTextUtil_ExpandPlaceholders - movs r0, 0x1 - movs r1, 0x11 - bl FillWindowPixelBuffer - ldr r2, [r5] - adds r2, r4 - movs r0, 0x2 - str r0, [sp] - movs r0, 0xFF - str r0, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0x8] - movs r0, 0x1 - movs r1, 0x1 - movs r3, 0 - bl AddTextPrinterParameterized - movs r0, 0x1 - movs r1, 0x2 - movs r2, 0xD - bl DrawTextBorderOuter - movs r0, 0x1 - bl PutWindowTilemap - movs r0, 0x1 - movs r1, 0x2 - bl CopyWindowToVram - movs r0, 0 - bl ScheduleBgCopyTilemapToVram - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0808FCDC: .4byte sPSSData -_0808FCE0: .4byte 0x000021db -_0808FCE4: .4byte gUnknown_83CEA88 - thumb_func_end PrintStorageActionText - - thumb_func_start ShowYesNoWindow -ShowYesNoWindow: @ 808FCE8 - push {r4,lr} - sub sp, 0xC - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _0808FD1C @ =gUnknown_83CEB80 - movs r1, 0xB - str r1, [sp] - movs r1, 0xE - str r1, [sp, 0x4] - movs r1, 0x1 - str r1, [sp, 0x8] - movs r2, 0 - movs r3, 0x2 - bl CreateYesNoMenu - lsls r4, 24 - asrs r4, 24 - adds r0, r4, 0 - bl Menu_MoveCursorNoWrapAround - add sp, 0xC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808FD1C: .4byte gUnknown_83CEB80 - thumb_func_end ShowYesNoWindow - - thumb_func_start ClearBottomWindow -ClearBottomWindow: @ 808FD20 - push {lr} - movs r0, 0x1 - movs r1, 0 - bl ClearStdWindowAndFrameToTransparent - movs r0, 0 - bl ScheduleBgCopyTilemapToVram - pop {r0} - bx r0 - thumb_func_end ClearBottomWindow - - thumb_func_start AddWallpaperSetsMenu -AddWallpaperSetsMenu: @ 808FD34 - push {lr} - bl sub_8094DA8 - movs r0, 0x12 - bl sub_8094DEC - movs r0, 0x13 - bl sub_8094DEC - movs r0, 0x14 - bl sub_8094DEC - movs r0, 0x15 - bl sub_8094DEC - bl AddMenu - pop {r0} - bx r0 - thumb_func_end AddWallpaperSetsMenu - - thumb_func_start AddWallpapersMenu -AddWallpapersMenu: @ 808FD5C - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r5, r4, 0 - bl sub_8094DA8 - cmp r4, 0x1 - beq _0808FD9A - cmp r4, 0x1 - bgt _0808FD76 - cmp r4, 0 - beq _0808FD80 - b _0808FDE6 -_0808FD76: - cmp r5, 0x2 - beq _0808FDB4 - cmp r5, 0x3 - beq _0808FDCE - b _0808FDE6 -_0808FD80: - movs r0, 0x16 - bl sub_8094DEC - movs r0, 0x17 - bl sub_8094DEC - movs r0, 0x18 - bl sub_8094DEC - movs r0, 0x19 - bl sub_8094DEC - b _0808FDE6 -_0808FD9A: - movs r0, 0x1A - bl sub_8094DEC - movs r0, 0x1B - bl sub_8094DEC - movs r0, 0x1C - bl sub_8094DEC - movs r0, 0x1D - bl sub_8094DEC - b _0808FDE6 -_0808FDB4: - movs r0, 0x1E - bl sub_8094DEC - movs r0, 0x1F - bl sub_8094DEC - movs r0, 0x20 - bl sub_8094DEC - movs r0, 0x21 - bl sub_8094DEC - b _0808FDE6 -_0808FDCE: - movs r0, 0x22 - bl sub_8094DEC - movs r0, 0x23 - bl sub_8094DEC - movs r0, 0x24 - bl sub_8094DEC - movs r0, 0x25 - bl sub_8094DEC -_0808FDE6: - bl AddMenu - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end AddWallpapersMenu - - thumb_func_start GetCurrentBoxOption -GetCurrentBoxOption: @ 808FDF0 - ldr r0, _0808FDF8 @ =sCurrentBoxOption - ldrb r0, [r0] - bx lr - .align 2, 0 -_0808FDF8: .4byte sCurrentBoxOption - thumb_func_end GetCurrentBoxOption - - thumb_func_start sub_808FDFC -sub_808FDFC: @ 808FDFC - push {lr} - bl sub_80939AC - lsls r0, 24 - cmp r0, 0 - bne _0808FE38 - ldr r0, _0808FE24 @ =sInPartyMenu - ldrb r0, [r0] - cmp r0, 0 - beq _0808FE28 - bl GetBoxCursorPosition - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0x1 - bl sub_8095C84 - b _0808FE38 - .align 2, 0 -_0808FE24: .4byte sInPartyMenu -_0808FE28: - bl GetBoxCursorPosition - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0 - bl sub_8095C84 -_0808FE38: - ldr r1, _0808FE50 @ =gUnknown_20397BA - ldrh r0, [r1] - cmp r0, 0 - beq _0808FE4A - bl sub_8095E2C - movs r0, 0x3 - bl sub_8094D14 -_0808FE4A: - pop {r0} - bx r0 - .align 2, 0 -_0808FE50: .4byte gUnknown_20397BA - thumb_func_end sub_808FDFC - - thumb_func_start sub_808FE54 -sub_808FE54: @ 808FE54 - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - bl sub_8094D34 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0808FE90 @ =sPSSData - ldr r0, [r0] - movs r1, 0xCE - lsls r1, 4 - adds r0, r1 - ldrh r7, [r0] - ldr r0, _0808FE94 @ =sInPartyMenu - ldrb r0, [r0] - cmp r0, 0 - beq _0808FE9C - movs r6, 0xE - bl GetBoxCursorPosition - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, _0808FE98 @ =gPlayerParty - adds r0, r1 - movs r1, 0x41 - bl GetMonData - b _0808FEB2 - .align 2, 0 -_0808FE90: .4byte sPSSData -_0808FE94: .4byte sInPartyMenu -_0808FE98: .4byte gPlayerParty -_0808FE9C: - bl StorageGetCurrentBox - lsls r0, 24 - lsrs r6, r0, 24 - bl GetBoxCursorPosition - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x41 - bl GetCurrentBoxMonData -_0808FEB2: - lsls r0, 16 - lsrs r3, r0, 16 - ldr r0, _0808FECC @ =sPSSData - ldr r0, [r0] - ldr r2, _0808FED0 @ =0x00002228 - adds r1, r0, r2 - cmp r5, 0x1 - beq _0808FF08 - cmp r5, 0x1 - bgt _0808FED4 - cmp r5, 0 - beq _0808FEDE - b _0808FF6A - .align 2, 0 -_0808FECC: .4byte sPSSData -_0808FED0: .4byte 0x00002228 -_0808FED4: - cmp r5, 0x2 - beq _0808FF3E - cmp r5, 0x3 - beq _0808FF58 - b _0808FF6A -_0808FEDE: - ldr r0, _0808FEF0 @ =sInPartyMenu - ldrb r0, [r0] - cmp r0, 0 - beq _0808FEF4 - cmp r4, 0xE - beq _0808FF6A -_0808FEEA: - movs r2, 0x16 - b _0808FF02 - .align 2, 0 -_0808FEF0: .4byte sInPartyMenu -_0808FEF4: - cmp r4, 0xE - beq _0808FEEA - movs r0, 0x15 - cmp r4, r6 - beq _0808FF00 - movs r0, 0x14 -_0808FF00: - adds r2, r0, 0 -_0808FF02: - strh r7, [r1] - strh r3, [r1, 0x2] - b _0808FF60 -_0808FF08: - movs r0, 0 - strh r7, [r1] - strh r0, [r1, 0x2] - strb r4, [r1, 0x4] - movs r0, 0xFF - strb r0, [r1, 0x5] - ldr r0, _0808FF24 @ =sInPartyMenu - ldrb r0, [r0] - cmp r0, 0 - beq _0808FF28 - cmp r4, 0xE - beq _0808FF6A - movs r2, 0x19 - b _0808FF64 - .align 2, 0 -_0808FF24: .4byte sInPartyMenu -_0808FF28: - cmp r4, 0xE - bne _0808FF32 - movs r2, 0x1A - strb r6, [r1, 0x4] - b _0808FF64 -_0808FF32: - cmp r4, r6 - beq _0808FF3A - movs r2, 0x17 - b _0808FF62 -_0808FF3A: - movs r2, 0x18 - b _0808FF64 -_0808FF3E: - movs r2, 0x1A - movs r0, 0 - strh r7, [r1] - strh r0, [r1, 0x2] - ldr r0, _0808FF54 @ =gUnknown_20397B6 - ldrb r0, [r0] - strb r0, [r1, 0x4] - movs r0, 0xFF - strb r0, [r1, 0x5] - b _0808FF64 - .align 2, 0 -_0808FF54: .4byte gUnknown_20397B6 -_0808FF58: - movs r2, 0x1B - movs r0, 0 - strh r0, [r1] - strh r0, [r1, 0x2] -_0808FF60: - strb r4, [r1, 0x4] -_0808FF62: - strb r6, [r1, 0x5] -_0808FF64: - adds r0, r2, 0 - bl SetQuestLogEvent -_0808FF6A: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_808FE54 - thumb_func_start sub_808FF70 sub_808FF70: @ 808FF70 push {r4,lr} @@ -3200,8 +1194,8 @@ _08090884: .4byte sPSSData _08090888: .4byte 0x00000a84 thumb_func_end sub_8090850 - thumb_func_start sub_809088C -sub_809088C: @ 809088C + thumb_func_start CreatePartyMonsSprites +CreatePartyMonsSprites: @ 809088C push {r4-r7,lr} mov r7, r8 push {r7} @@ -3378,7 +1372,7 @@ _080909DA: _080909E8: .4byte sPSSData _080909EC: .4byte 0x00000a6c _080909F0: .4byte gPlayerParty - thumb_func_end sub_809088C + thumb_func_end CreatePartyMonsSprites thumb_func_start sub_80909F4 sub_80909F4: @ 80909F4 @@ -3705,8 +1699,8 @@ _08090C3C: .4byte sPSSData _08090C40: .4byte 0x00000a6c thumb_func_end sub_8090C10 - thumb_func_start sub_8090C44 -sub_8090C44: @ 8090C44 + thumb_func_start DestroyAllPartyMonIcons +DestroyAllPartyMonIcons: @ 8090C44 push {r4-r6,lr} movs r5, 0 ldr r6, _08090C7C @ =sPSSData @@ -3738,7 +1732,7 @@ _08090C6A: .align 2, 0 _08090C7C: .4byte sPSSData _08090C80: .4byte 0x00000a6c - thumb_func_end sub_8090C44 + thumb_func_end DestroyAllPartyMonIcons thumb_func_start sub_8090C84 sub_8090C84: @ 8090C84 @@ -6243,7 +4237,7 @@ _08091FDC: lsrs r5, r0, 16 cmp r5, 0x1 bls _08091F8A - bl sub_80939AC + bl IsCursorOnBox lsls r0, 24 cmp r0, 0 beq _08091FF6 @@ -6628,6 +4622,8 @@ _080922B6: bx r1 thumb_func_end sub_809223C + @ file boundary? + thumb_func_start sub_80922C0 sub_80922C0: @ 80922C0 push {lr} @@ -9551,8 +7547,8 @@ IsMonBeingMoved: @ 80939A0 _080939A8: .4byte sIsMonBeingMoved thumb_func_end IsMonBeingMoved - thumb_func_start sub_80939AC -sub_80939AC: @ 80939AC + thumb_func_start IsCursorOnBox +IsCursorOnBox: @ 80939AC push {lr} movs r1, 0 ldr r0, _080939C4 @ =sBoxCursorArea @@ -9568,7 +7564,7 @@ _080939BE: bx r1 .align 2, 0 _080939C4: .4byte sBoxCursorArea - thumb_func_end sub_80939AC + thumb_func_end IsCursorOnBox thumb_func_start IsCursorOnCloseBox IsCursorOnCloseBox: @ 80939C8 @@ -11504,15 +9500,15 @@ _080948FA: thumb_func_start sub_8094900 sub_8094900: @ 8094900 push {lr} - bl sub_8094DA8 + bl InitMenu movs r0, 0x9 - bl sub_8094DEC + bl SetMenuText movs r0, 0xA - bl sub_8094DEC + bl SetMenuText movs r0, 0xB - bl sub_8094DEC + bl SetMenuText movs r0, 0 - bl sub_8094DEC + bl SetMenuText pop {r0} bx r0 thumb_func_end sub_8094900 @@ -11520,7 +9516,7 @@ sub_8094900: @ 8094900 thumb_func_start sub_8094924 sub_8094924: @ 8094924 push {lr} - bl sub_8094DA8 + bl InitMenu ldr r0, _0809493C @ =sPSSData ldr r0, [r0] ldrb r0, [r0, 0x1] @@ -11565,13 +9561,13 @@ _08094976: cmp r1, 0 beq _080949BC movs r0, 0x1 - bl sub_8094DEC + bl SetMenuText b _080949C0 _08094982: cmp r1, 0 beq _080949BC movs r0, 0x2 - bl sub_8094DEC + bl SetMenuText b _080949C0 _0809498E: ldr r0, _080949A4 @ =sIsMonBeingMoved @@ -11581,26 +9577,26 @@ _0809498E: cmp r1, 0 beq _080949A8 movs r0, 0x4 - bl sub_8094DEC + bl SetMenuText b _080949C0 .align 2, 0 _080949A4: .4byte sIsMonBeingMoved _080949A8: movs r0, 0x5 - bl sub_8094DEC + bl SetMenuText b _080949C0 _080949B0: cmp r1, 0 beq _080949BC movs r0, 0x3 - bl sub_8094DEC + bl SetMenuText b _080949C0 _080949BC: movs r0, 0 b _08094A06 _080949C0: movs r0, 0x6 - bl sub_8094DEC + bl SetMenuText ldr r0, _080949E4 @ =sPSSData ldr r0, [r0] ldrb r0, [r0, 0x1] @@ -11613,21 +9609,21 @@ _080949C0: cmp r0, 0 bne _080949EC movs r0, 0x2 - bl sub_8094DEC + bl SetMenuText b _080949F2 .align 2, 0 _080949E4: .4byte sPSSData _080949E8: .4byte sBoxCursorArea _080949EC: movs r0, 0x1 - bl sub_8094DEC + bl SetMenuText _080949F2: movs r0, 0x8 - bl sub_8094DEC + bl SetMenuText movs r0, 0x7 - bl sub_8094DEC + bl SetMenuText movs r0, 0 - bl sub_8094DEC + bl SetMenuText movs r0, 0x1 _08094A06: pop {r1} @@ -11662,7 +9658,7 @@ sub_8094A0C: @ 8094A0C cmp r0, 0 beq _08094A9E movs r0, 0xE - bl sub_8094DEC + bl SetMenuText b _08094AA8 .align 2, 0 _08094A48: .4byte sPSSData @@ -11674,12 +9670,12 @@ _08094A50: cmp r0, 0 bne _08094A68 movs r0, 0xC - bl sub_8094DEC + bl SetMenuText movs r0, 0x10 - bl sub_8094DEC + bl SetMenuText _08094A68: movs r0, 0x11 - bl sub_8094DEC + bl SetMenuText b _08094AA8 _08094A70: ldr r2, [r4] @@ -11693,7 +9689,7 @@ _08094A70: cmp r0, 0 beq _08094A9E movs r0, 0xD - bl sub_8094DEC + bl SetMenuText b _08094AA8 .align 2, 0 _08094A8C: .4byte 0x00000ce2 @@ -11709,10 +9705,10 @@ _08094A9E: b _08094AB0 _08094AA2: movs r0, 0xF - bl sub_8094DEC + bl SetMenuText _08094AA8: movs r0, 0 - bl sub_8094DEC + bl SetMenuText movs r0, 0x1 _08094AB0: pop {r4,r5} @@ -12107,8 +10103,10 @@ _08094DA0: .4byte sBoxCursorArea _08094DA4: .4byte sBoxCursorPosition thumb_func_end sub_8094D84 - thumb_func_start sub_8094DA8 -sub_8094DA8: @ 8094DA8 + @ file boundary? + + thumb_func_start InitMenu +InitMenu: @ 8094DA8 ldr r2, _08094DDC @ =sPSSData ldr r0, [r2] ldr r1, _08094DE0 @ =0x00000ca8 @@ -12139,10 +10137,10 @@ _08094DDC: .4byte sPSSData _08094DE0: .4byte 0x00000ca8 _08094DE4: .4byte 0x00000ca9 _08094DE8: .4byte 0x00000c6d - thumb_func_end sub_8094DA8 + thumb_func_end InitMenu - thumb_func_start sub_8094DEC -sub_8094DEC: @ 8094DEC + thumb_func_start SetMenuText +SetMenuText: @ 8094DEC push {r4,r5,lr} lsls r0, 24 lsrs r3, r0, 24 @@ -12190,7 +10188,7 @@ _08094E40: .4byte sPSSData _08094E44: .4byte 0x00000ca8 _08094E48: .4byte gUnknown_83D353C _08094E4C: .4byte 0x00000ca9 - thumb_func_end sub_8094DEC + thumb_func_end SetMenuText thumb_func_start sub_8094E50 sub_8094E50: @ 8094E50 @@ -14711,8 +12709,8 @@ _080961A2: bx r1 thumb_func_end IsActiveItemMoving - thumb_func_start sub_80961A8 -sub_80961A8: @ 80961A8 + thumb_func_start GetMovingItemName +GetMovingItemName: @ 80961A8 push {lr} ldr r0, _080961BC @ =sPSSData ldr r0, [r0] @@ -14725,7 +12723,7 @@ sub_80961A8: @ 80961A8 .align 2, 0 _080961BC: .4byte sPSSData _080961C0: .4byte 0x00002224 - thumb_func_end sub_80961A8 + thumb_func_end GetMovingItemName thumb_func_start GetMovingItem GetMovingItem: @ 80961C4 diff --git a/data/pokemon_storage_system.s b/data/pokemon_storage_system.s index b09148603..70a682949 100644 --- a/data/pokemon_storage_system.s +++ b/data/pokemon_storage_system.s @@ -6,237 +6,6 @@ .section .rodata .align 2 -gUnknown_83CE438:: @ 83CE438 4bpp.lz - .incbin "graphics/interface/pss_unk_83CE438.4bpp.lz" - -gUnknown_83CE4D0:: @ 83CE4D0 bin.lz - .incbin "graphics/interface/pss_unk_83CE4D0.bin.lz" - .incbin "graphics/interface/pss_unk_83CE5DC.gbapal" - -gUnknown_83CE5FC:: @ 83CE5FC bin.lz - .incbin "graphics/interface/pss_unk_83CE5FC.bin.lz" - -gUnknown_83CE6F8:: @ 83CE6F8 data16 - .2byte 0x0101, 0x0102, 0x0103, 0x0104, 0x0105, 0x0106, 0x0107, 0x0108 - .2byte 0x0111, 0x0112, 0x0113, 0x0114, 0x0115, 0x0116, 0x0117, 0x0118 - .2byte 0x2101, 0x2102, 0x2103, 0x2104, 0x2105, 0x2106, 0x2107, 0x2108 - .2byte 0x2111, 0x2112, 0x2113, 0x2114, 0x2115, 0x2116, 0x2117, 0x2118 - -gUnknown_83CE738:: @ 83CE738 gbapal - .incbin "graphics/interface/pss_unk_83CE738.gbapal" - -gUnknown_83CE758:: @ 83CE758 gbapal - .incbin "graphics/interface/pss_unk_83CE758.gbapal" - -gUnknown_83CE778:: @ 83CE778 @ raw16 - .2byte 0x014c, 0x014d, 0x014e, 0x014f, 0x0170, 0x0171, 0x0172, 0x0173, 0x0174, 0x015c, 0x015d, 0x015e, 0x015f, 0x0180, 0x0181, 0x0182 - .2byte 0x0183, 0x0184, 0x0175, 0x0176, 0x0177, 0x0178, 0x0179, 0x017a, 0x017b, 0x017c, 0x017d, 0x0185, 0x0186, 0x0187, 0x0188, 0x0189 - .2byte 0x018a, 0x018b, 0x018c, 0x018d - -gUnknown_83CE7C0:: @ 83CE7C0 @ raw8 - .byte 0x40, 0x11, 0x41, 0x11, 0x41, 0x11, 0x42, 0x11, 0x50, 0x11, 0x51, 0x11, 0x51, 0x11, 0x52, 0x11, 0x60, 0x11, 0x61, 0x11, 0x61, 0x11, 0x62, 0x11 - -gUnknown_83CE7D8:: @ 83CE7D8 @ raw8 - .byte 0x43, 0x11, 0x44, 0x11, 0x44, 0x11, 0x45, 0x11, 0x53, 0x11, 0x54, 0x11, 0x54, 0x11, 0x55, 0x11, 0x63, 0x11, 0x64, 0x11, 0x64, 0x11, 0x65, 0x11 - -gUnknown_83CE7F0:: @ 83CE7F0 gbapal - .incbin "graphics/interface/pss_unk_83CE810.gbapal" - -gUnknown_83CE810:: @ 83CE810 4bpp - .incbin "graphics/interface/pss_unk_83CE810.4bpp" - .incbin "graphics/interface/pss_unk_83CE9D0.gbapal" - -gUnknown_83CEA10:: @ 83CEA10 gbapal - .incbin "graphics/interface/pss_unk_83CEA10.gbapal" - -gUnknown_83CEA30:: @ 83CEA30 gbapal - .incbin "graphics/interface/pss_unk_83CEA30.gbapal" - -gUnknown_83CEA50:: @ 83CEA50 bg_template - .4byte 0x000001d0 - @ { - @ .bg = 0, - @ .charBaseIndex = 0, - @ .mapBaseIndex = 29, - @ .screenSize = 0, - @ .paletteMode = 0, - @ .priority = 0, - @ .baseTile = 0x0000 - @ } - .4byte 0x004011e5 - @ { - @ .bg = 1, - @ .charBaseIndex = 1, - @ .mapBaseIndex = 30, - @ .screenSize = 0, - @ .paletteMode = 0, - @ .priority = 1, - @ .baseTile = 0x0100 - @ } - .4byte 0x000023ba - @ { - @ .bg = 2, - @ .charBaseIndex = 2, - @ .mapBaseIndex = 27, - @ .screenSize = 1, - @ .paletteMode = 0, - @ .priority = 2, - @ .baseTile = 0x0000 - @ } - .4byte 0x000031ff - @ { - @ .bg = 3, - @ .charBaseIndex = 3, - @ .mapBaseIndex = 31, - @ .screenSize = 0, - @ .paletteMode = 0, - @ .priority = 3, - @ .baseTile = 0x0000 - @ } - -gUnknown_83CEA60:: @ 83CEA60 sprite_palette - obj_pal gUnknown_83CE7F0, 56010 - -gUnknown_83CEA68:: @ 83CEA68 sprite_sheet - obj_tiles gUnknown_83CE810, 0x01c0, 5 - -gUnknown_83CEA70:: @ 83CEA70 spr_template - spr_template 2, 56006, gUnknown_83CEB88, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy - -gUnknown_83CEA88:: @ 83CEA88 struct {const u8 *; u8;} - .4byte gUnknown_8418208 - .byte 0 - .align 2 - .4byte gUnknown_841821B - .byte 0 - .align 2 - .4byte gUnknown_8418233 - .byte 0 - .align 2 - .4byte gUnknown_8418248 - .byte 0 - .align 2 - .4byte gUnknown_841825C - .byte 1 - .align 2 - .4byte gUnknown_841826C - .byte 0 - .align 2 - .4byte gUnknown_841827F - .byte 0 - .align 2 - .4byte gUnknown_8418295 - .byte 1 - .align 2 - .4byte gUnknown_84182A7 - .byte 0 - .align 2 - .4byte gUnknown_84182B8 - .byte 0 - .align 2 - .4byte gUnknown_84182CE - .byte 4 - .align 2 - .4byte gUnknown_84182DF - .byte 6 - .align 2 - .4byte gUnknown_84182EC - .byte 0 - .align 2 - .4byte gUnknown_84182FF - .byte 0 - .align 2 - .4byte gUnknown_8418319 - .byte 0 - .align 2 - .4byte gUnknown_841832C - .byte 0 - .align 2 - .4byte gUnknown_8418346 - .byte 0 - .align 2 - .4byte gUnknown_841835F - .byte 0 - .align 2 - .4byte gUnknown_8418379 - .byte 0 - .align 2 - .4byte gUnknown_8418392 - .byte 1 - .align 2 - .4byte gUnknown_84183A0 - .byte 0 - .align 2 - .4byte gUnknown_84183BA - .byte 0 - .align 2 - .4byte gUnknown_84183C5 - .byte 0 - .align 2 - .4byte gUnknown_841825C - .byte 7 - .align 2 - .4byte gUnknown_84183DD - .byte 0 - .align 2 - .4byte gUnknown_84183F0 - .byte 7 - .align 2 - .4byte gUnknown_8418408 - .byte 0 - .align 2 - .4byte gUnknown_8418419 - .byte 0 - .align 2 - .4byte gUnknown_8418433 - .byte 7 - .align 2 - .4byte gUnknown_8418443 - .byte 7 - .align 2 - .4byte gUnknown_8418452 - .byte 0 - .align 2 - -gUnknown_83CEB80:: @ 83CEB80 window_template - .byte 0, 24, 11, 5, 4, 15 - .2byte 0x005c - -gUnknown_83CEB88:: - .4byte 0xc0000000, 0x00000000 - -gUnknown_83CEB90:: - .4byte 0x00004000, 0x00000000 - -gUnknown_83CEB98:: - obj_image_anim_frame 0x0000, 5 - obj_image_anim_end - -gUnknown_83CEBA0:: - obj_image_anim_frame 0x0002, 8 - obj_image_anim_frame 0x0004, 8 - obj_image_anim_frame 0x0006, 8 - obj_image_anim_jump 0 - -gUnknown_83CEBB0:: - obj_image_anim_frame 0x0008, 5 - obj_image_anim_end - -gUnknown_83CEBB8:: - obj_image_anim_frame 0x000a, 8 - obj_image_anim_frame 0x0004, 8 - obj_image_anim_frame 0x000c, 8 - obj_image_anim_jump 0 - -gUnknown_83CEBC8:: - .4byte gUnknown_83CEB98 - .4byte gUnknown_83CEBA0 - .4byte gUnknown_83CEBB0 - .4byte gUnknown_83CEBB8 - -gUnknown_83CEBD8:: @ 83CEBD8 spr_template - spr_template 5, 56010, gUnknown_83CEB90, gUnknown_83CEBC8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy - gUnknown_83CEBF0:: @ 83CEBF0 spr_template spr_template 18, 56000, gUnknown_83CEC08, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy diff --git a/graphics/interface/pss_unk_83CEA30.pal b/graphics/interface/pss_unk_83CEA30.pal deleted file mode 100644 index dcc6395db..000000000 --- a/graphics/interface/pss_unk_83CEA30.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -8 0 0 -90 65 16 -57 197 0 -0 49 0 -0 197 16 -139 131 32 -16 65 24 -164 0 0 -0 0 0 -98 65 49 -65 197 24 -164 0 0 -255 57 0 -0 0 0 -0 0 0 -0 0 0 diff --git a/include/box_party_pokemon_dropdown.h b/include/box_party_pokemon_dropdown.h index c2df93f1e..52e620956 100644 --- a/include/box_party_pokemon_dropdown.h +++ b/include/box_party_pokemon_dropdown.h @@ -1,14 +1,24 @@ #ifndef GUARD_BOX_PARTY_POKEMON_DROPDOWN_H #define GUARD_BOX_PARTY_POKEMON_DROPDOWN_H +enum +{ + BPPD_MOVE_INNER_LEFT = 0, + BPPD_MOVE_OUTER_LEFT, + BPPD_MOVE_INNER_TOP, + BPPD_MOVE_OUTER_TOP, + BPPD_MOVE_INNER_X, + BPPD_MOVE_INNER_Y +}; + void AllocBoxPartyPokemonDropdowns(u8 num); -void sub_80F7B2C(void); -void sub_80F7B40(void); +void FreeBoxPartyPokemonDropdowns(void); +void CopyAllBoxPartyPokemonDropdownsToVram(void); void SetBoxPartyPokemonDropdownMap2(u8 idx, u8 bgId, const void * src, u16 width, u16 height); -void sub_80F7C7C(u8 a0, const void * a1); +void SetBoxPartyPokemonDropdownMap1Tiles(u8 idx, const void * src); void SetBoxPartyPokemonDropdownMap2Pos(u8 idx, u16 x, u16 y); -void sub_80F7CE8(u8 a0, u16 a1, u16 a2, u16 a3, u16 a4); -void sub_80F7D30(u8 a0, u8 a1, s8 a2); -void sub_80F7E54(u8 a0); +void SetBoxPartyPokemonDropdownMap2Rect(u8 idx, u16 x, u16 y, u16 width, u16 height); +void AdjustBoxPartyPokemonDropdownPos(u8 a0, u8 a1, s8 a2); +void CopyBoxPartyPokemonDropdownToBgTilemapBuffer(u8 idx); #endif //GUARD_BOX_PARTY_POKEMON_DROPDOWN_H diff --git a/include/graphics.h b/include/graphics.h index d84371e3a..3930861f8 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -4917,4 +4917,11 @@ extern const u16 gUnknown_8E98F38[]; extern const u16 gUnknown_8E990D8[]; extern const u16 gUnknown_8E990F8[]; +// pokemon_storage_system +extern const u32 gPSSMenu_Gfx[]; +extern const u32 gUnknown_8E9CAEC[]; +extern const u16 gPSSMenu_Pal[]; +extern const u16 gUnknown_8E9C3F8[]; +extern const u16 gUnknown_8E9C418[]; + #endif //GUARD_GRAPHICS_H diff --git a/include/pokemon_storage_system_internal.h b/include/pokemon_storage_system_internal.h index 9a4dcdfaa..1e7430dd9 100644 --- a/include/pokemon_storage_system_internal.h +++ b/include/pokemon_storage_system_internal.h @@ -50,6 +50,18 @@ enum enum { + PC_TEXT_FMT_NORMAL, + PC_TEXT_FMT_MON_NAME_1, + PC_TEXT_FMT_MON_NAME_2, + PC_TEXT_FMT_MON_NAME_3, + PC_TEXT_FMT_MON_NAME_4, + PC_TEXT_FMT_MON_NAME_5, + PC_TEXT_FMT_MON_NAME_6, + PC_TEXT_FMT_ITEM_NAME, +}; + +enum +{ CURSOR_AREA_IN_BOX, CURSOR_AREA_IN_PARTY, CURSOR_AREA_BOX, @@ -85,6 +97,12 @@ enum #define TAG_TILE_0 0x0 #define TAG_TILE_1 0x1 +struct StorageAction +{ + const u8 *text; + u8 format; +}; + struct UnkPSSStruct_2002370 { struct Sprite *unk_0000; @@ -136,10 +154,10 @@ struct UnkStorageStruct struct PssQuestLogBuffer { - u16 a0; - u16 a2; - u8 a4; - u8 a5; + u16 species; + u16 species2; + u8 fromBox; + u8 toBox; }; struct PokemonStorageSystemData @@ -157,7 +175,7 @@ struct PokemonStorageSystemData u8 field_2C4; u8 field_2C5; u8 showPartyMenuState; - u8 unk_02C7; + bool8 unk_02C7; u8 unk_02C8; bool8 unk_02C9; s16 newCurrBoxId; @@ -248,10 +266,7 @@ struct PokemonStorageSystemData /* 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]; + /* 0cf5 */ u8 cursorMonTexts[4][36]; /* 0d88 */ bool8 (*monPlaceChangeFunc)(void); /* 0d8c */ u8 monPlaceChangeState; /* 0d8d */ u8 field_D91; @@ -289,8 +304,9 @@ struct PokemonStorageSystemData /* 21f4 */ struct UnkStorageStruct field_2204[3]; /* 2224 */ u16 movingItem; /* 2226 */ u16 field_2236; - /* 2228 */ struct PssQuestLogBuffer field_2238; - /* 2230 */ u16 field_223A; + /* 2228 */ struct PssQuestLogBuffer qlogBuffer; + /* 2230 */ u16 field_2238; + /* 2232 */ u16 field_223A; /* 2234 */ u16 *field_223C; /* 2238 */ struct Sprite *cursorMonSprite; /* 223c */ u16 field_2244[0x40]; @@ -310,5 +326,75 @@ void sub_808C950(void); u8 HandleBoxChooseSelectionInput(void); void sub_808C854(struct UnkPSSStruct_2002370 *a0, u16 tileTag, u16 palTag, u8 a3, bool32 loadPal); void SetCurrentBoxMonData(u8 boxPosition, s32 request, const void *value); +u32 GetCurrentBoxMonData(u8 boxPosition, s32 request); + +void sub_80922C0(void); +void sub_8092340(void); +bool8 sub_80924A8(void); +void sub_8092AE4(void); +void sub_8092B3C(u8 a0); +void sub_8092B50(void); +void sub_8092B5C(void); +u8 sub_8092B70(void); +void sub_8092F54(void); +void sub_8093174(void); +void sub_8093194(void); +bool8 sub_80931EC(void); +void sub_8093264(void); +void sub_8093630(void); +void sub_8093660(void); +void sub_80936B8(void); +void sub_80937B4(void); +void sub_8094D14(u8 a0); +u8 sub_8094D34(void); +void sub_8094D60(void); +void sub_8094D84(void); +bool8 sub_8094F90(void); +s16 sub_8094F94(void); +void sub_8095024(void); +bool8 sub_8095050(void); +void sub_80950A4(void); +void sub_80950BC(u8 a0); +bool8 sub_80950D0(void); +void sub_8095B5C(void); +void sub_8096088(void); +void sub_80960C0(void); +bool8 sub_809610C(void); +const u8 *GetMovingItemName(void); +void sub_80966F4(void); +bool8 sub_8096728(void); +bool8 sub_80967C0(void); +void sub_8096BE4(struct UnkStruct_2000020 *arg0, struct UnkStruct_2000028 *arg1, u32 arg2); +void sub_8096BF8(void); +void AddMenu(void); +bool8 CanMovePartyMon(void); +bool8 CanShiftMon(void); +bool8 DoMonPlaceChange(void); +bool8 DoWallpaperGfxChange(void); +u8 GetBoxCursorPosition(void); +u16 GetMovingItem(void); +u8 HandleInput(void); +void InitCanReleaseMonVars(void); +void InitMonPlaceChange(u8 a0); +bool8 IsActiveItemMoving(void); +bool8 IsCursorOnCloseBox(void); +bool8 IsMonBeingMoved(void); +void Item_FromMonToMoving(u8 cursorArea, u8 cursorPos); +void Item_GiveMovingToMon(u8 cursorArea, u8 cursorPos); +void Item_SwitchMonsWithMoving(u8 cursorArea, u8 cursorPos); +void Item_TakeMons(u8 cursorArea, u8 cursorPos); +void PrintItemDescription(void); +void ReleaseMon(void); +s8 RunCanReleaseMon(void); +bool8 ScrollToBox(void); +void SetMonMarkings(u8 markings); +void SetMovingMonPriority(u8 priority); +void SetUpScrollToBox(u8 targetBox); +void SetWallpaperForCurrentBox(u8 wallpaper); +bool8 TryStorePartyMonInBox(u8 boxId); +void InitMenu(void); +void SetMenuText(u8 textId); +void sub_8095C84(u8 cursorArea, u8 cursorPos); +void sub_8095E2C(u16 itemId); #endif //GUARD_POKEMON_STORAGE_SYSTEM_INTERNAL_H diff --git a/include/strings.h b/include/strings.h index 06851c983..0b3e61dba 100644 --- a/include/strings.h +++ b/include/strings.h @@ -1372,5 +1372,36 @@ extern const u8 gText_SeeYaDescription[]; extern const u8 gText_PartyFull[]; extern const u8 gText_JustOnePkmn[]; extern const u8 gText_Box[]; +extern const u8 gText_ExitFromBox[]; +extern const u8 gText_WhatDoYouWantToDo[]; +extern const u8 gText_PleasePickATheme[]; +extern const u8 gText_PickTheWallpaper[]; +extern const u8 gText_PkmnIsSelected[]; +extern const u8 gText_JumpToWhichBox[]; +extern const u8 gText_DepositInWhichBox[]; +extern const u8 gText_PkmnWasDeposited[]; +extern const u8 gText_BoxIsFull2[]; +extern const u8 gText_ReleaseThisPokemon[]; +extern const u8 gText_PkmnWasReleased[]; +extern const u8 gText_ByeByePkmn[]; +extern const u8 gText_MarkYourPkmn[]; +extern const u8 gText_ThatsYourLastPkmn[]; +extern const u8 gText_YourPartysFull[]; +extern const u8 gText_YoureHoldingAPkmn[]; +extern const u8 gText_WhichOneWillYouTake[]; +extern const u8 gText_YouCantReleaseAnEgg[]; +extern const u8 gText_ContinueBoxOperations[]; +extern const u8 gText_PkmnCameBack[]; +extern const u8 gText_WasItWorriedAboutYou[]; +extern const u8 gText_FourEllipsesExclamation[]; +extern const u8 gText_PleaseRemoveTheMail[]; +extern const u8 gText_PkmnIsSelected[]; +extern const u8 gText_GiveToAPkmn[]; +extern const u8 gText_PlacedItemInBag[]; +extern const u8 gText_BagIsFull2[]; +extern const u8 gText_PutItemInBag[]; +extern const u8 gText_ItemIsNowHeld[]; +extern const u8 gText_ChangedToNewItem[]; +extern const u8 gText_MailCantBeStored[]; #endif //GUARD_STRINGS_H diff --git a/src/box_party_pokemon_dropdown.c b/src/box_party_pokemon_dropdown.c index 2e0becdf9..b194777f3 100644 --- a/src/box_party_pokemon_dropdown.c +++ b/src/box_party_pokemon_dropdown.c @@ -3,7 +3,7 @@ #include "box_party_pokemon_dropdown.h" #include "malloc.h" -struct UnkStruct_203ABE4_Sub +struct BPPD_MapRect { s16 destX; s16 destY; @@ -13,10 +13,10 @@ struct UnkStruct_203ABE4_Sub s16 destY2; }; -struct UnkStruct_203ABE4 +struct BPPD_Struct { - struct UnkStruct_203ABE4_Sub map1Rect; - struct UnkStruct_203ABE4_Sub map2Rect; + struct BPPD_MapRect map1Rect; + struct BPPD_MapRect map2Rect; const void * src1; const void * src2; u16 src1Height; @@ -29,11 +29,11 @@ struct UnkStruct_203ABE4 bool8 bgUpdateScheduled; }; -static EWRAM_DATA struct UnkStruct_203ABE4 * sBoxPartyPokemonDropdownPtr = NULL; +static EWRAM_DATA struct BPPD_Struct * sBoxPartyPokemonDropdownPtr = NULL; static EWRAM_DATA u16 sBoxPartyPokemonDropdownCount = 0; -static void PushMap1(u8 a0); -static void PushMap2(u8 a0); +static void PushMap1(u8 idx); +static void PushMap2(u8 idx); static const struct { u16 height; @@ -55,7 +55,7 @@ static const struct { void AllocBoxPartyPokemonDropdowns(u8 num) { u16 i; - sBoxPartyPokemonDropdownPtr = Alloc(num * sizeof(struct UnkStruct_203ABE4)); + sBoxPartyPokemonDropdownPtr = Alloc(num * sizeof(struct BPPD_Struct)); sBoxPartyPokemonDropdownCount = sBoxPartyPokemonDropdownPtr == NULL ? 0 : num; for (i = 0; i < sBoxPartyPokemonDropdownCount; i++) { @@ -64,19 +64,19 @@ void AllocBoxPartyPokemonDropdowns(u8 num) } } -void sub_80F7B2C(void) +void FreeBoxPartyPokemonDropdowns(void) { Free(sBoxPartyPokemonDropdownPtr); } -void sub_80F7B40(void) +void CopyAllBoxPartyPokemonDropdownsToVram(void) { int i; for (i = 0; i < sBoxPartyPokemonDropdownCount; i++) { if (sBoxPartyPokemonDropdownPtr[i].bgUpdateScheduled == TRUE) - sub_80F7E54(i); + CopyBoxPartyPokemonDropdownToBgTilemapBuffer(i); } } @@ -112,12 +112,12 @@ void SetBoxPartyPokemonDropdownMap2(u8 idx, u8 bgId, const void * src, u16 width } } -void sub_80F7C7C(u8 a0, const void * a1) +void SetBoxPartyPokemonDropdownMap1Tiles(u8 idx, const void * src) { - if (a0 < sBoxPartyPokemonDropdownCount) + if (idx < sBoxPartyPokemonDropdownCount) { - sBoxPartyPokemonDropdownPtr[a0].src1 = a1; - sBoxPartyPokemonDropdownPtr[a0].bgUpdateScheduled = TRUE; + sBoxPartyPokemonDropdownPtr[idx].src1 = src; + sBoxPartyPokemonDropdownPtr[idx].bgUpdateScheduled = TRUE; } } @@ -131,82 +131,82 @@ void SetBoxPartyPokemonDropdownMap2Pos(u8 idx, u16 x, u16 y) } } -void sub_80F7CE8(u8 a0, u16 a1, u16 a2, u16 a3, u16 a4) +void SetBoxPartyPokemonDropdownMap2Rect(u8 idx, u16 x, u16 y, u16 width, u16 height) { - if (a0 < sBoxPartyPokemonDropdownCount) + if (idx < sBoxPartyPokemonDropdownCount) { - sBoxPartyPokemonDropdownPtr[a0].map2Rect.destX = a1; - sBoxPartyPokemonDropdownPtr[a0].map2Rect.destY = a2; - sBoxPartyPokemonDropdownPtr[a0].map2Rect.width = a3; - sBoxPartyPokemonDropdownPtr[a0].map2Rect.height = a4; - sBoxPartyPokemonDropdownPtr[a0].bgUpdateScheduled = TRUE; + sBoxPartyPokemonDropdownPtr[idx].map2Rect.destX = x; + sBoxPartyPokemonDropdownPtr[idx].map2Rect.destY = y; + sBoxPartyPokemonDropdownPtr[idx].map2Rect.width = width; + sBoxPartyPokemonDropdownPtr[idx].map2Rect.height = height; + sBoxPartyPokemonDropdownPtr[idx].bgUpdateScheduled = TRUE; } } -void sub_80F7D30(u8 a0, u8 a1, s8 a2) +void AdjustBoxPartyPokemonDropdownPos(u8 idx, u8 op, s8 param) { - if (a0 < sBoxPartyPokemonDropdownCount) + if (idx < sBoxPartyPokemonDropdownCount) { - switch (a1) + switch (op) { - case 0: - sBoxPartyPokemonDropdownPtr[a0].map2Rect.destX2 += a2; - sBoxPartyPokemonDropdownPtr[a0].map2Rect.width -= a2; + case BPPD_MOVE_INNER_LEFT: + sBoxPartyPokemonDropdownPtr[idx].map2Rect.destX2 += param; + sBoxPartyPokemonDropdownPtr[idx].map2Rect.width -= param; break; - case 1: - sBoxPartyPokemonDropdownPtr[a0].map2Rect.destX += a2; - sBoxPartyPokemonDropdownPtr[a0].map2Rect.width += a2; + case BPPD_MOVE_OUTER_LEFT: + sBoxPartyPokemonDropdownPtr[idx].map2Rect.destX += param; + sBoxPartyPokemonDropdownPtr[idx].map2Rect.width += param; break; - case 2: - sBoxPartyPokemonDropdownPtr[a0].map2Rect.destY2 += a2; - sBoxPartyPokemonDropdownPtr[a0].map2Rect.height -= a2; + case BPPD_MOVE_INNER_TOP: + sBoxPartyPokemonDropdownPtr[idx].map2Rect.destY2 += param; + sBoxPartyPokemonDropdownPtr[idx].map2Rect.height -= param; break; - case 3: - sBoxPartyPokemonDropdownPtr[a0].map2Rect.destY -= a2; - sBoxPartyPokemonDropdownPtr[a0].map2Rect.height += a2; + case BPPD_MOVE_OUTER_TOP: + sBoxPartyPokemonDropdownPtr[idx].map2Rect.destY -= param; + sBoxPartyPokemonDropdownPtr[idx].map2Rect.height += param; break; - case 4: - sBoxPartyPokemonDropdownPtr[a0].map2Rect.destX2 += a2; + case BPPD_MOVE_INNER_X: + sBoxPartyPokemonDropdownPtr[idx].map2Rect.destX2 += param; break; - case 5: - sBoxPartyPokemonDropdownPtr[a0].map2Rect.destY2 += a2; + case BPPD_MOVE_INNER_Y: + sBoxPartyPokemonDropdownPtr[idx].map2Rect.destY2 += param; break; } - sBoxPartyPokemonDropdownPtr[a0].bgUpdateScheduled = TRUE; + sBoxPartyPokemonDropdownPtr[idx].bgUpdateScheduled = TRUE; } } -void sub_80F7E54(u8 a0) +void CopyBoxPartyPokemonDropdownToBgTilemapBuffer(u8 idx) { - if (a0 < sBoxPartyPokemonDropdownCount) + if (idx < sBoxPartyPokemonDropdownCount) { - if (sBoxPartyPokemonDropdownPtr[a0].src1 != NULL) - PushMap1(a0); - PushMap2(a0); - sBoxPartyPokemonDropdownPtr[a0].map1Rect = sBoxPartyPokemonDropdownPtr[a0].map2Rect; + if (sBoxPartyPokemonDropdownPtr[idx].src1 != NULL) + PushMap1(idx); + PushMap2(idx); + sBoxPartyPokemonDropdownPtr[idx].map1Rect = sBoxPartyPokemonDropdownPtr[idx].map2Rect; } } -static void PushMap1(u8 a0) +static void PushMap1(u8 idx) { int i; - int r9 = sBoxPartyPokemonDropdownPtr[a0].mapSize * sBoxPartyPokemonDropdownPtr[a0].src1Height; - const void * addr = sBoxPartyPokemonDropdownPtr[a0].src1 + r9 * sBoxPartyPokemonDropdownPtr[a0].map1Rect.destY2 + sBoxPartyPokemonDropdownPtr[a0].map1Rect.destX2 * sBoxPartyPokemonDropdownPtr[a0].mapSize; - for (i = 0; i < sBoxPartyPokemonDropdownPtr[a0].map1Rect.height; i++) + int run = sBoxPartyPokemonDropdownPtr[idx].mapSize * sBoxPartyPokemonDropdownPtr[idx].src1Height; + const void * addr = sBoxPartyPokemonDropdownPtr[idx].src1 + run * sBoxPartyPokemonDropdownPtr[idx].map1Rect.destY2 + sBoxPartyPokemonDropdownPtr[idx].map1Rect.destX2 * sBoxPartyPokemonDropdownPtr[idx].mapSize; + for (i = 0; i < sBoxPartyPokemonDropdownPtr[idx].map1Rect.height; i++) { - CopyToBgTilemapBufferRect(sBoxPartyPokemonDropdownPtr[a0].bgId, addr, sBoxPartyPokemonDropdownPtr[a0].map1Rect.destX2, sBoxPartyPokemonDropdownPtr[a0].map1Rect.destY2 + i, sBoxPartyPokemonDropdownPtr[a0].map1Rect.width, 1); - addr += r9; + CopyToBgTilemapBufferRect(sBoxPartyPokemonDropdownPtr[idx].bgId, addr, sBoxPartyPokemonDropdownPtr[idx].map1Rect.destX2, sBoxPartyPokemonDropdownPtr[idx].map1Rect.destY2 + i, sBoxPartyPokemonDropdownPtr[idx].map1Rect.width, 1); + addr += run; } } -static void PushMap2(u8 a0) +static void PushMap2(u8 idx) { int i; - int r9 = sBoxPartyPokemonDropdownPtr[a0].mapSize * sBoxPartyPokemonDropdownPtr[a0].src2Width; - const void * addr = sBoxPartyPokemonDropdownPtr[a0].src2 + r9 * sBoxPartyPokemonDropdownPtr[a0].map2Rect.destY + sBoxPartyPokemonDropdownPtr[a0].map2Rect.destX * sBoxPartyPokemonDropdownPtr[a0].mapSize; - for (i = 0; i < sBoxPartyPokemonDropdownPtr[a0].map2Rect.height; i++) + int run = sBoxPartyPokemonDropdownPtr[idx].mapSize * sBoxPartyPokemonDropdownPtr[idx].src2Width; + const void * addr = sBoxPartyPokemonDropdownPtr[idx].src2 + run * sBoxPartyPokemonDropdownPtr[idx].map2Rect.destY + sBoxPartyPokemonDropdownPtr[idx].map2Rect.destX * sBoxPartyPokemonDropdownPtr[idx].mapSize; + for (i = 0; i < sBoxPartyPokemonDropdownPtr[idx].map2Rect.height; i++) { - CopyToBgTilemapBufferRect(sBoxPartyPokemonDropdownPtr[a0].bgId, addr, sBoxPartyPokemonDropdownPtr[a0].map2Rect.destX2, sBoxPartyPokemonDropdownPtr[a0].map2Rect.destY2 + i, sBoxPartyPokemonDropdownPtr[a0].map2Rect.width, 1); - addr += r9; + CopyToBgTilemapBufferRect(sBoxPartyPokemonDropdownPtr[idx].bgId, addr, sBoxPartyPokemonDropdownPtr[idx].map2Rect.destX2, sBoxPartyPokemonDropdownPtr[idx].map2Rect.destY2 + i, sBoxPartyPokemonDropdownPtr[idx].map2Rect.width, 1); + addr += run; } } diff --git a/src/graphics.c b/src/graphics.c index 69e804fd9..5a802cd35 100644 --- a/src/graphics.c +++ b/src/graphics.c @@ -1247,10 +1247,10 @@ const u32 gUnknown_8E9BF48[] = INCBIN_U32("graphics/interface/link_rfu_status.4b const u16 gUnknown_8E9C14C[] = INCBIN_U16("graphics/interface/pokedex_abc.gbapal"); const u32 gUnknown_8E9C16C[] = INCBIN_U32("graphics/interface/pokedex_abc.4bpp.lz"); -const u16 gUnknown_8E9C3D8[] = INCBIN_U16("graphics/interface/box_tiles_pal1.gbapal"); +const u16 gPSSMenu_Pal[] = INCBIN_U16("graphics/interface/box_tiles_pal1.gbapal"); const u16 gUnknown_8E9C3F8[] = INCBIN_U16("graphics/interface/box_tiles_pal2.gbapal"); const u16 gUnknown_8E9C418[] = INCBIN_U16("graphics/interface/box_tiles_pal3.gbapal"); -const u32 gUnknown_8E9C438[] = INCBIN_U32("graphics/interface/box_tiles.4bpp.lz"); +const u32 gPSSMenu_Gfx[] = INCBIN_U32("graphics/interface/box_tiles.4bpp.lz"); const u32 gUnknown_8E9CAEC[] = INCBIN_U32("graphics/unknown/unknown_E9CAEC.bin.lz"); diff --git a/src/pokemon_storage_system_3.c b/src/pokemon_storage_system_3.c index 8cf2e1953..3378bcef5 100644 --- a/src/pokemon_storage_system_3.c +++ b/src/pokemon_storage_system_3.c @@ -1,6 +1,10 @@ #include "global.h" #include "gflib.h" #include "box_party_pokemon_dropdown.h" +#include "data.h" +#include "decompress.h" +#include "dynamic_placeholder_text_util.h" +#include "graphics.h" #include "help_system.h" #include "item.h" #include "item_menu.h" @@ -11,6 +15,8 @@ #include "pc_screen_effect.h" #include "pokemon_storage_system_internal.h" #include "pokemon_summary_screen.h" +#include "quest_log.h" +#include "strings.h" #include "task.h" #include "text_window.h" #include "constants/items.h" @@ -56,104 +62,297 @@ void Cb_OnCloseBoxPressed(u8 taskId); void Cb_OnBPressed(u8 taskId); void Cb_ChangeScreen(u8 taskId); void GiveChosenBagItem(void); -void sub_80920FC(bool8 a0); -void sub_8094D14(u8 a0); -void Item_FromMonToMoving(u8 cursorArea, u8 cursorPos); -void Item_GiveMovingToMon(u8 cursorArea, u8 cursorPos); -void Item_TakeMons(u8 cursorArea, u8 cursorPos); -void Item_SwitchMonsWithMoving(u8 cursorArea, u8 cursorPos); -u8 GetBoxCursorPosition(void); -void PrintCursorMonInfo(void); -void InitMonPlaceChange(u8 a0); -bool8 DoMonPlaceChange(void); -void SetUpDoShowPartyMenu(void); -bool8 DoShowPartyMenu(void); -bool8 InitPSSWindows(void); +void FreePSSData(void); +void SetScrollingBackground(void); +void ScrollBackground(void); void LoadPSSMenuGfx(void); +bool8 InitPSSWindows(void); void LoadWaveformSpritePalette(void); -void SetScrollingBackground(void); -void SetMonMarkings(u8 markings); -void AddWallpaperSetsMenu(void); -void sub_8095024(void); -void AddWallpapersMenu(u8 wallpaperSet); -void SetWallpaperForCurrentBox(u8 wallpaper); -bool8 DoWallpaperGfxChange(void); -void sub_808EFC8(void); void sub_808F078(void); -bool8 sub_808F258(void); +void sub_808F0F4(void); +void sub_808F164(void); +void RefreshCursorMonData(void); +void BoxSetMosaic(void); +void SpriteCB_CursorMon_Mosaic(struct Sprite * sprite); +bool8 BoxGetMosaic(void); +void LoadCursorMonSprite(void); +void LoadCursorMonGfx(u16 species, u32 pid); +void PrintCursorMonInfo(void); +void sub_808F5E8(void); void sub_808F68C(void); +void SetUpHidePartyMenu(void); +bool8 HidePartyMenu(void); +void sub_808F90C(bool8 species); void sub_808F948(void); void sub_808F974(void); void sub_808F99C(void); +void sub_808F9FC(void); +void sub_808FA30(u8 pos, bool8 isPartyMon); +void sub_808FAA8(void); +void SetUpDoShowPartyMenu(void); +bool8 DoShowPartyMenu(void); void sub_808FB68(void); +void PrintStorageActionText(u8 textId); +void ShowYesNoWindow(s8 species); +void ClearBottomWindow(void); +void AddWallpaperSetsMenu(void); +void AddWallpapersMenu(u8 wallpaperSet); void sub_808FDFC(void); -void sub_808FE54(u8 a0); +void sub_808FE54(u8 species); +bool8 IsCursorOnBox(void); +void sub_808FF70(void); void sub_808FFAC(void); -void sub_80913DC(u8 box); -bool8 sub_809140C(void); -void SetUpHidePartyMenu(void); -bool8 HidePartyMenu(void); -void sub_80922C0(void); -void sub_8092340(void); -void sub_8092B3C(u8 a0); -void sub_8092B50(void); -u8 sub_8092B70(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 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); -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); -bool8 IsActiveItemMoving(void); -void AddMenu(void); -bool8 sub_8094F90(void); -s16 sub_8094F94(void); -void sub_8092B5C(void); -void SetMovingMonPriority(u8 priority); -void sub_808FAA8(void); -bool8 TryStorePartyMonInBox(u8 boxId); +void CreatePartyMonsSprites(bool8 species); void sub_80909F4(void); bool8 sub_8090A60(void); -void sub_8093174(void); -void ShowYesNoWindow(u8 a0); -void InitCanReleaseMonVars(void); -void sub_8093194(void); -s8 RunCanReleaseMon(void); -bool8 sub_80931EC(void); -void ReleaseMon(void); -void RefreshCursorMonData(void); +void sub_8090B98(s16 yDelta); +void DestroyAllPartyMonIcons(void); void sub_8091114(void); bool8 sub_8091150(void); -void sub_8093264(void); -void PrintItemDescription(void); -void sub_80966F4(void); -bool8 sub_8096728(void); -bool8 sub_80967C0(void); -void sub_8096088(void); -void sub_8093630(void); -void sub_80936B8(void); -void sub_808FF70(void); -u16 GetMovingItem(void); -void FreePSSData(void); +void sub_80913DC(u8 box); +bool8 sub_809140C(void); +void sub_80920FC(bool8 species); + +const u32 gPokemonStorageScrollingBGTileset[] = INCBIN_U32("graphics/interface/pss_unk_83CE438.4bpp.lz"); +const u32 gPokemonStorageScrollingBGTilemap[] = INCBIN_U32("graphics/interface/pss_unk_83CE4D0.bin.lz"); +const u16 gPokemonStorageScrollingBGPalette[] = INCBIN_U16("graphics/interface/pss_unk_83CE5DC.gbapal"); +const u32 gUnknown_83CE5FC[] = INCBIN_U32("graphics/interface/pss_unk_83CE5FC.bin.lz"); + +const u16 gUnknown_83CE6F8[] = { + 0x0101, 0x0102, 0x0103, 0x0104, 0x0105, 0x0106, 0x0107, 0x0108, + 0x0111, 0x0112, 0x0113, 0x0114, 0x0115, 0x0116, 0x0117, 0x0118, + 0x2101, 0x2102, 0x2103, 0x2104, 0x2105, 0x2106, 0x2107, 0x2108, + 0x2111, 0x2112, 0x2113, 0x2114, 0x2115, 0x2116, 0x2117, 0x2118, +}; + +const u16 gUnknown_83CE738[] = INCBIN_U16("graphics/interface/pss_unk_83CE738.gbapal"); +const u16 gUnknown_83CE758[] = INCBIN_U16("graphics/interface/pss_unk_83CE758.gbapal"); + +const u16 gUnknown_83CE778[] = { + 0x014c, 0x014d, 0x014e, 0x014f, 0x0170, 0x0171, 0x0172, 0x0173, 0x0174, + 0x015c, 0x015d, 0x015e, 0x015f, 0x0180, 0x0181, 0x0182, 0x0183, 0x0184, + 0x0175, 0x0176, 0x0177, 0x0178, 0x0179, 0x017a, 0x017b, 0x017c, 0x017d, + 0x0185, 0x0186, 0x0187, 0x0188, 0x0189, 0x018a, 0x018b, 0x018c, 0x018d, +}; -extern const u16 gUnknown_83CE6F8[]; +const u16 gUnknown_83CE7C0[] = { + 0x1140, 0x1141, 0x1141, 0x1142, + 0x1150, 0x1151, 0x1151, 0x1152, + 0x1160, 0x1161, 0x1161, 0x1162, +}; + +const u16 gUnknown_83CE7D8[] = { + 0x1143, 0x1144, 0x1144, 0x1145, + 0x1153, 0x1154, 0x1154, 0x1155, + 0x1163, 0x1164, 0x1164, 0x1165, +}; + +const u16 gUnknown_83CE7F0[] = INCBIN_U16("graphics/interface/pss_unk_83CE810.gbapal"); +const u16 gUnknown_83CE810[] = INCBIN_U16("graphics/interface/pss_unk_83CE810.4bpp"); +const u16 gUnknown_83CE9D0[] = INCBIN_U16("graphics/interface/pss_unk_83CE9D0.gbapal"); +const u16 gUnknown_83CEA10[] = INCBIN_U16("graphics/interface/pss_unk_83CEA10.gbapal"); + +const struct WindowTemplate gUnknown_83CEA30[] = { + { + .bg = 1, + .tilemapLeft = 0, + .tilemapTop = 11, + .width = 9, + .height = 7, + .paletteNum = 3, + .baseBlock = 0x0c0 + }, { + .bg = 0, + .tilemapLeft = 11, + .tilemapTop = 17, + .width = 18, + .height = 2, + .paletteNum = 13, + .baseBlock = 0x014 + }, { + .bg = 0, + .tilemapLeft = 0, + .tilemapTop = 12, + .width = 25, + .height = 8, + .paletteNum = 15, + .baseBlock = 0x014 + }, DUMMY_WIN_TEMPLATE +}; + +const struct BgTemplate gUnknown_83CEA50[] = { + { + .bg = 0, + .charBaseIndex = 0, + .mapBaseIndex = 29, + .screenSize = 0, + .paletteMode = 0, + .priority = 0, + .baseTile = 0x000 + }, { + .bg = 1, + .charBaseIndex = 1, + .mapBaseIndex = 30, + .screenSize = 0, + .paletteMode = 0, + .priority = 1, + .baseTile = 0x100 + }, { + .bg = 2, + .charBaseIndex = 2, + .mapBaseIndex = 27, + .screenSize = 1, + .paletteMode = 0, + .priority = 2, + .baseTile = 0x000 + }, { + .bg = 3, + .charBaseIndex = 3, + .mapBaseIndex = 31, + .screenSize = 0, + .paletteMode = 0, + .priority = 3, + .baseTile = 0x000 + } +}; + +const struct SpritePalette gWaveformSpritePalette = { + gUnknown_83CE7F0, TAG_PAL_WAVEFORM +}; + +const struct SpriteSheet gWaveformSpriteSheet = { + gUnknown_83CE810, 0x01c0, TAG_TILE_WAVEFORM +}; + +const struct OamData gUnknown_83CEB88; + +const struct SpriteTemplate sSpriteTemplate_CursorMon = { + .tileTag = TAG_TILE_2, + .paletteTag = TAG_PAL_DAC6, + .oam = &gUnknown_83CEB88, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy +}; + +const struct StorageAction gPCStorageActionTexts[] = { + [PC_TEXT_EXIT_BOX] = {gText_ExitFromBox, PC_TEXT_FMT_NORMAL}, + [PC_TEXT_WHAT_YOU_DO] = {gText_WhatDoYouWantToDo, PC_TEXT_FMT_NORMAL}, + [PC_TEXT_PICK_A_THEME] = {gText_PleasePickATheme, PC_TEXT_FMT_NORMAL}, + [PC_TEXT_PICK_A_WALLPAPER] = {gText_PickTheWallpaper, PC_TEXT_FMT_NORMAL}, + [PC_TEXT_IS_SELECTED] = {gText_PkmnIsSelected, PC_TEXT_FMT_MON_NAME_1}, + [PC_TEXT_JUMP_TO_WHICH_BOX] = {gText_JumpToWhichBox, PC_TEXT_FMT_NORMAL}, + [PC_TEXT_DEPOSIT_IN_WHICH_BOX] = {gText_DepositInWhichBox, PC_TEXT_FMT_NORMAL}, + [PC_TEXT_WAS_DEPOSITED] = {gText_PkmnWasDeposited, PC_TEXT_FMT_MON_NAME_1}, + [PC_TEXT_BOX_IS_FULL] = {gText_BoxIsFull2, PC_TEXT_FMT_NORMAL}, + [PC_TEXT_RELEASE_POKE] = {gText_ReleaseThisPokemon, PC_TEXT_FMT_NORMAL}, + [PC_TEXT_WAS_RELEASED] = {gText_PkmnWasReleased, PC_TEXT_FMT_MON_NAME_4}, + [PC_TEXT_BYE_BYE] = {gText_ByeByePkmn, PC_TEXT_FMT_MON_NAME_6}, + [PC_TEXT_MARK_POKE] = {gText_MarkYourPkmn, PC_TEXT_FMT_NORMAL}, + [PC_TEXT_LAST_POKE] = {gText_ThatsYourLastPkmn, PC_TEXT_FMT_NORMAL}, + [PC_TEXT_PARTY_FULL] = {gText_YourPartysFull, PC_TEXT_FMT_NORMAL}, + [PC_TEXT_HOLDING_POKE] = {gText_YoureHoldingAPkmn, PC_TEXT_FMT_NORMAL}, + [PC_TEXT_WHICH_ONE_WILL_TAKE] = {gText_WhichOneWillYouTake, PC_TEXT_FMT_NORMAL}, + [PC_TEXT_CANT_RELEASE_EGG] = {gText_YouCantReleaseAnEgg, PC_TEXT_FMT_NORMAL}, + [PC_TEXT_CONTINUE_BOX] = {gText_ContinueBoxOperations, PC_TEXT_FMT_NORMAL}, + [PC_TEXT_CAME_BACK] = {gText_PkmnCameBack, PC_TEXT_FMT_MON_NAME_1}, + [PC_TEXT_WORRIED] = {gText_WasItWorriedAboutYou, PC_TEXT_FMT_NORMAL}, + [PC_TEXT_SURPRISE] = {gText_FourEllipsesExclamation, PC_TEXT_FMT_NORMAL}, + [PC_TEXT_PLEASE_REMOVE_MAIL] = {gText_PleaseRemoveTheMail, PC_TEXT_FMT_NORMAL}, + [PC_TEXT_IS_SELECTED2] = {gText_PkmnIsSelected, PC_TEXT_FMT_ITEM_NAME}, + [PC_TEXT_GIVE_TO_MON] = {gText_GiveToAPkmn, PC_TEXT_FMT_NORMAL}, + [PC_TEXT_PLACED_IN_BAG] = {gText_PlacedItemInBag, PC_TEXT_FMT_ITEM_NAME}, + [PC_TEXT_BAG_FULL] = {gText_BagIsFull2, PC_TEXT_FMT_NORMAL}, + [PC_TEXT_PUT_IN_BAG] = {gText_PutItemInBag, PC_TEXT_FMT_NORMAL}, + [PC_TEXT_ITEM_IS_HELD] = {gText_ItemIsNowHeld, PC_TEXT_FMT_ITEM_NAME}, + [PC_TEXT_CHANGED_TO_ITEM] = {gText_ChangedToNewItem, PC_TEXT_FMT_ITEM_NAME}, + [PC_TEXT_CANT_STORE_MAIL] = {gText_MailCantBeStored, PC_TEXT_FMT_NORMAL}, +}; + +// Yes/No menu +const struct WindowTemplate sYesNoWindowTemplate = { + .bg = 0, + .tilemapLeft = 24, + .tilemapTop = 11, + .width = 5, + .height = 4, + .paletteNum = 15, + .baseBlock = 0x05c +}; + +const struct OamData gUnknown_83CEB88 = { + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .mosaic = FALSE, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(64x64), + .x = 0, + .matrixNum = 0, + .size = SPRITE_SIZE(64x64), + .tileNum = 0x000, + .priority = 0, + .paletteNum = 0 +}; + +// Waveform + +const struct OamData gUnknown_83CEB90 = { + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .mosaic = FALSE, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(16x8), + .x = 0, + .matrixNum = 0, + .size = SPRITE_SIZE(16x8), + .tileNum = 0x000, + .priority = 0, + .paletteNum = 0 +}; + +const union AnimCmd gUnknown_83CEB98[] = { + ANIMCMD_FRAME(0, 5), + ANIMCMD_END +}; + +const union AnimCmd gUnknown_83CEBA0[] = { + ANIMCMD_FRAME(2, 8), + ANIMCMD_FRAME(4, 8), + ANIMCMD_FRAME(6, 8), + ANIMCMD_JUMP(0) +}; + +const union AnimCmd gUnknown_83CEBB0[] = { + ANIMCMD_FRAME(8, 5), + ANIMCMD_END +}; + +const union AnimCmd gUnknown_83CEBB8[] = { + ANIMCMD_FRAME(10, 8), + ANIMCMD_FRAME(4, 8), + ANIMCMD_FRAME(12, 8), + ANIMCMD_JUMP(0) +}; + +const union AnimCmd *const gUnknown_83CEBC8[] = { + gUnknown_83CEB98, + gUnknown_83CEBA0, + gUnknown_83CEBB0, + gUnknown_83CEBB8 +}; + +const struct SpriteTemplate sSpriteTemplate_Waveform = { + .tileTag = TAG_TILE_WAVEFORM, + .paletteTag = TAG_PAL_WAVEFORM, + .oam = &gUnknown_83CEB90, + .anims = gUnknown_83CEBC8, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, +}; void VblankCb_PSS(void) { @@ -168,7 +367,7 @@ void Cb2_PSS(void) { RunTasks(); DoScheduledBgTilemapCopiesToVram(); - sub_808EFC8(); + ScrollBackground(); sub_808F99C(); AnimateSprites(); BuildOamBuffer(); @@ -237,7 +436,7 @@ void sub_808CF10(void) AllocBoxPartyPokemonDropdowns(3); SetBoxPartyPokemonDropdownMap2(0, 1, gUnknown_83CE6F8, 8, 4); SetBoxPartyPokemonDropdownMap2Pos(0, 1, 0); - sPSSData->unk_02C7 = 0; + sPSSData->unk_02C7 = FALSE; } void sub_808CF94(void) @@ -716,7 +915,7 @@ void Cb_OnSelectedMon(u8 taskId) switch (sPSSData->state) { case 0: - if (!sub_808F258()) + if (!BoxGetMosaic()) { PlaySE(SE_SELECT); if (sPSSData->boxOption != BOX_OPTION_MOVE_ITEMS) @@ -1900,3 +2099,678 @@ void GiveChosenBagItem(void) RemoveBagItem(item, 1); } } + +void FreePSSData(void) +{ + FreeBoxPartyPokemonDropdowns(); + sub_80950A4(); + FREE_AND_SET_NULL(sPSSData); + FreeAllWindowBuffers(); +} + +// ****************************************************************** +// Graphics util +// ****************************************************************** + +void SetScrollingBackground(void) +{ + SetGpuReg(REG_OFFSET_BG3CNT, BGCNT_PRIORITY(3) | BGCNT_CHARBASE(3) | BGCNT_16COLOR | BGCNT_SCREENBASE(31)); + DecompressAndLoadBgGfxUsingHeap(3, gPokemonStorageScrollingBGTileset, 0, 0, 0); + LZ77UnCompVram(gPokemonStorageScrollingBGTilemap, (void *)BG_SCREEN_ADDR(31)); +} + +void ScrollBackground(void) +{ + ChangeBgX(3, 128, 1); + ChangeBgY(3, 128, 2); +} + +void LoadPSSMenuGfx(void) +{ + InitBgsFromTemplates(0, gUnknown_83CEA50, NELEMS(gUnknown_83CEA50)); + DecompressAndLoadBgGfxUsingHeap(1, gPSSMenu_Gfx, 0, 0, 0); + LZ77UnCompWram(gUnknown_83CE5FC, sPSSData->field_5AC4); + SetBgTilemapBuffer(1, sPSSData->field_5AC4); + ShowBg(1); + ScheduleBgCopyTilemapToVram(1); +} + +bool8 InitPSSWindows(void) +{ + if (!InitWindows(gUnknown_83CEA30)) + { + return FALSE; + } + else + { + DeactivateAllTextPrinters(); + return TRUE; + } +} + +void LoadWaveformSpritePalette(void) +{ + LoadSpritePalette(&gWaveformSpritePalette); +} + +void sub_808F078(void) +{ + LoadPalette(gUnknown_8E9C3F8, 0, 0x20); + LoadPalette(gUnknown_8E9C418, 0x20, 0x20); + LoadPalette(gUnknown_83CEA10, 0xF0, 0x20); + if (sPSSData->boxOption != BOX_OPTION_MOVE_ITEMS) + LoadPalette(gUnknown_83CE738, 0x30, 0x20); + else + LoadPalette(gUnknown_83CE758, 0x30, 0x20); + + SetGpuReg(REG_OFFSET_BG1CNT, BGCNT_PRIORITY(1) | BGCNT_CHARBASE(1) | BGCNT_16COLOR | BGCNT_SCREENBASE(30)); + LoadCursorMonSprite(); + sub_808F0F4(); + sub_808F164(); + RefreshCursorMonData(); +} + +void sub_808F0F4(void) +{ + sPSSData->field_D94 = CreateMonMarkingSprite_AllOff(TAG_TILE_10, TAG_PAL_DAC8, NULL); + sPSSData->field_D94->oam.priority = 1; + sPSSData->field_D94->subpriority = 1; + sPSSData->field_D94->pos1.x = 40; + sPSSData->field_D94->pos1.y = 150; + sPSSData->field_DA0 = (void *)OBJ_VRAM0 + 32 * GetSpriteTileStartByTag(TAG_TILE_10); +} + +void sub_808F164(void) +{ + u16 i; + struct SpriteSheet sheet = gWaveformSpriteSheet; + + LoadSpriteSheet(&sheet); + for (i = 0; i < 2; i++) + { + u8 spriteId = CreateSprite(&sSpriteTemplate_Waveform, i * 63 + 8, 9, 2); + sPSSData->field_D98[i] = &gSprites[spriteId]; + } +} + +void RefreshCursorMonData(void) +{ + LoadCursorMonGfx(sPSSData->cursorMonSpecies, sPSSData->cursorMonPersonality); + PrintCursorMonInfo(); + sub_808F5E8(); + ScheduleBgCopyTilemapToVram(0); +} + +void BoxSetMosaic(void) +{ + RefreshCursorMonData(); + if (sPSSData->cursorMonSprite) + { + sPSSData->cursorMonSprite->oam.mosaic = TRUE; + sPSSData->cursorMonSprite->data[0] = 10; + sPSSData->cursorMonSprite->data[1] = 1; + sPSSData->cursorMonSprite->callback = SpriteCB_CursorMon_Mosaic; + SetGpuReg(REG_OFFSET_MOSAIC, (sPSSData->cursorMonSprite->data[0] << 12) | (sPSSData->cursorMonSprite->data[0] << 8)); + } +} + +u8 BoxGetMosaic(void) +{ + return sPSSData->cursorMonSprite->oam.mosaic; +} + +void SpriteCB_CursorMon_Mosaic(struct Sprite *sprite) +{ + sprite->data[0] -= sprite->data[1]; + if (sprite->data[0] < 0) + sprite->data[0] = 0; + SetGpuReg(REG_OFFSET_MOSAIC, (sprite->data[0] << 12) | (sprite->data[0] << 8)); + if (sprite->data[0] == 0) + { + sprite->oam.mosaic = FALSE; + sprite->callback = SpriteCallbackDummy; + } +} + +void LoadCursorMonSprite(void) +{ + u16 i; + u16 tileStart; + u8 palSlot; + u8 spriteId; + struct SpriteSheet sheet = {sPSSData->field_22C4, 0x800, TAG_TILE_2}; + struct SpritePalette palette = {sPSSData->field_2244, TAG_PAL_DAC6}; + struct SpriteTemplate template = sSpriteTemplate_CursorMon; + + for (i = 0; i < 0x800; i++) + sPSSData->field_22C4[i] = 0; + for (i = 0; i < 0x10; i++) + sPSSData->field_2244[i] = 0; + + sPSSData->cursorMonSprite = NULL; + + do + { + tileStart = LoadSpriteSheet(&sheet); + if (tileStart == 0) + break; + + palSlot = LoadSpritePalette(&palette); + if (palSlot == 0xFF) + break; + + spriteId = CreateSprite(&template, 40, 48, 0); + if (spriteId == MAX_SPRITES) + break; + + sPSSData->cursorMonSprite = &gSprites[spriteId]; + sPSSData->field_223A = palSlot * 16 + 0x100; + sPSSData->field_223C = (void *)OBJ_VRAM0 + tileStart * 32; + } while (0); + + if (sPSSData->cursorMonSprite == NULL) + { + FreeSpriteTilesByTag(TAG_TILE_2); + FreeSpritePaletteByTag(TAG_PAL_DAC6); + } +} + +void LoadCursorMonGfx(u16 species, u32 pid) +{ + if (sPSSData->cursorMonSprite == NULL) + return; + + if (species != SPECIES_NONE) + { + HandleLoadSpecialPokePic(&gMonFrontPicTable[species], sPSSData->field_22C4, species, pid); + LZ77UnCompWram(sPSSData->cursorMonPalette, sPSSData->field_2244); + CpuCopy32(sPSSData->field_22C4, sPSSData->field_223C, 0x800); + LoadPalette(sPSSData->field_2244, sPSSData->field_223A, 0x20); + sPSSData->cursorMonSprite->invisible = FALSE; + } + else + { + sPSSData->cursorMonSprite->invisible = TRUE; + } +} + +void PrintCursorMonInfo(void) +{ + u16 i; + u16 y; + FillWindowPixelBuffer(0, PIXEL_FILL(1)); + if (sPSSData->boxOption != BOX_OPTION_MOVE_ITEMS) + { + for (i = 0, y = 0; i < 3; i++, y += 14) + { + AddTextPrinterParameterized(0, 2, sPSSData->cursorMonTexts[i], i == 2 ? 10 : 6, y, TEXT_SPEED_FF, NULL); + } + AddTextPrinterParameterized(0, 0, sPSSData->cursorMonTexts[3], 6, y + 2, TEXT_SPEED_FF, NULL); + } + else + { + AddTextPrinterParameterized(0, 0, sPSSData->cursorMonTexts[3], 6, 0, TEXT_SPEED_FF, NULL); + for (i = 0, y = 15; i < 3; i++, y += 14) + { + AddTextPrinterParameterized(0, 2, sPSSData->cursorMonTexts[i], i == 2 ? 10 : 6, y, TEXT_SPEED_FF, NULL); + } + } + + CopyWindowToVram(0, 2); + if (sPSSData->cursorMonSpecies != SPECIES_NONE) + { + sub_80BEBD0(sPSSData->cursorMonMarkings, sPSSData->field_DA0); + sPSSData->field_D94->invisible = FALSE; + } + else + { + sPSSData->field_D94->invisible = TRUE; + } +} + +void sub_808F5E8(void) +{ + u16 i; + + if (sPSSData->cursorMonSpecies != SPECIES_NONE) + { + SetBoxPartyPokemonDropdownMap2Rect(0, 0, 0, 8, 2); + for (i = 0; i < 2; i++) + StartSpriteAnimIfDifferent(sPSSData->field_D98[i], i * 2 + 1); + } + else + { + SetBoxPartyPokemonDropdownMap2Rect(0, 0, 2, 8, 2); + for (i = 0; i < 2; i++) + StartSpriteAnim(sPSSData->field_D98[i], i * 2); + } + + CopyBoxPartyPokemonDropdownToBgTilemapBuffer(0); + ScheduleBgCopyTilemapToVram(1); +} + +void sub_808F68C(void) +{ + LZ77UnCompWram(gUnknown_8E9CAEC, sPSSData->field_B0); + LoadPalette(gPSSMenu_Pal, 0x10, 0x20); + SetBoxPartyPokemonDropdownMap2(1, 1, sPSSData->field_B0, 12, 22); + SetBoxPartyPokemonDropdownMap2(2, 1, gUnknown_83CE778, 9, 4); + SetBoxPartyPokemonDropdownMap2Pos(1, 10, 0); + SetBoxPartyPokemonDropdownMap2Pos(2, 21, 0); + sub_808F9FC(); + if (sInPartyMenu) + { + sub_808F90C(TRUE); + CreatePartyMonsSprites(TRUE); + CopyBoxPartyPokemonDropdownToBgTilemapBuffer(2); + CopyBoxPartyPokemonDropdownToBgTilemapBuffer(1); + } + else + { + SetBoxPartyPokemonDropdownMap2Rect(1, 0, 20, 12, 2); + sub_808F90C(TRUE); + CopyBoxPartyPokemonDropdownToBgTilemapBuffer(1); + CopyBoxPartyPokemonDropdownToBgTilemapBuffer(2); + } + + ScheduleBgCopyTilemapToVram(1); + sPSSData->unk_02C7 = FALSE; +} + +void SetUpShowPartyMenu(void) +{ + sPSSData->field_2C0 = 20; + sPSSData->field_2C2 = 2; + sPSSData->field_2C5 = 0; + CreatePartyMonsSprites(FALSE); +} + +bool8 ShowPartyMenu(void) +{ + if (sPSSData->field_2C5 == 20) + return FALSE; + + sPSSData->field_2C0--; + sPSSData->field_2C2++; + AdjustBoxPartyPokemonDropdownPos(1, 3, 1); + CopyBoxPartyPokemonDropdownToBgTilemapBuffer(1); + ScheduleBgCopyTilemapToVram(1); + sub_8090B98(8); + if (++sPSSData->field_2C5 == 20) + { + sInPartyMenu = TRUE; + return FALSE; + } + else + { + return TRUE; + } +} + +void SetUpHidePartyMenu(void) +{ + sPSSData->field_2C0 = 0; + sPSSData->field_2C2 = 22; + sPSSData->field_2C5 = 0; + if (sPSSData->boxOption == BOX_OPTION_MOVE_ITEMS) + sub_80960C0(); +} + +bool8 HidePartyMenu(void) +{ + if (sPSSData->field_2C5 != 20) + { + sPSSData->field_2C0++; + sPSSData->field_2C2--; + AdjustBoxPartyPokemonDropdownPos(1, 3, -1); + CopyBoxPartyPokemonDropdownToBgTilemapBuffer(1); + FillBgTilemapBufferRect_Palette0(1, 0x100, 10, sPSSData->field_2C2, 12, 1); + sub_8090B98(-8); + if (++sPSSData->field_2C5 != 20) + { + ScheduleBgCopyTilemapToVram(1); + return TRUE; + } + else + { + sInPartyMenu = FALSE; + DestroyAllPartyMonIcons(); + CompactPartySlots(); + SetBoxPartyPokemonDropdownMap2Rect(2, 0, 0, 9, 2); + CopyBoxPartyPokemonDropdownToBgTilemapBuffer(2); + ScheduleBgCopyTilemapToVram(1); + return FALSE; + } + } + + return FALSE; +} + +void sub_808F90C(bool8 arg0) +{ + if (arg0) + SetBoxPartyPokemonDropdownMap2Rect(2, 0, 0, 9, 2); + else + SetBoxPartyPokemonDropdownMap2Rect(2, 0, 2, 9, 2); + + CopyBoxPartyPokemonDropdownToBgTilemapBuffer(2); + ScheduleBgCopyTilemapToVram(1); +} + +void sub_808F948(void) +{ + sPSSData->unk_02C7 = TRUE; + sPSSData->unk_02C8 = 30; + sPSSData->unk_02C9 = TRUE; +} + +void sub_808F974(void) +{ + if (sPSSData->unk_02C7) + { + sPSSData->unk_02C7 = FALSE; + sub_808F90C(TRUE); + } +} + +void sub_808F99C(void) +{ + if (sPSSData->unk_02C7 && ++sPSSData->unk_02C8 > 30) + { + sPSSData->unk_02C8 = 0; + sPSSData->unk_02C9 = (sPSSData->unk_02C9 == FALSE); + sub_808F90C(sPSSData->unk_02C9); + } +} + +void sub_808F9FC(void) +{ + u8 i; + + for (i = 1; i < PARTY_SIZE; i++) + { + s32 species = GetMonData(gPlayerParty + i, MON_DATA_SPECIES); + sub_808FA30(i, (species != SPECIES_NONE)); + } +} + +void sub_808FA30(u8 pos, bool8 isPartyMon) +{ + u16 i, j, index; + const u16 *data; + + if (isPartyMon) + data = gUnknown_83CE7C0; + else + data = gUnknown_83CE7D8; + + index = 3 * (3 * (pos - 1) + 1); + index *= 4; + index += 7; + for (i = 0; i < 3; i++) + { + for (j = 0; j < 4; j++) + { + sPSSData->field_B0[index + j] = data[j]; + } + data += 4; + index += 12; + } +} + +void sub_808FAA8(void) +{ + sub_808F9FC(); + SetBoxPartyPokemonDropdownMap2Rect(1, 0, 0, 12, 22); + CopyBoxPartyPokemonDropdownToBgTilemapBuffer(1); + ScheduleBgCopyTilemapToVram(1); +} + +void SetUpDoShowPartyMenu(void) +{ + sPSSData->showPartyMenuState = 0; + PlaySE(SE_WIN_OPEN); + SetUpShowPartyMenu(); +} + +bool8 DoShowPartyMenu(void) +{ + switch (sPSSData->showPartyMenuState) + { + case 0: + if (!ShowPartyMenu()) + { + sub_8092AE4(); + sPSSData->showPartyMenuState++; + } + break; + case 1: + if (!sub_80924A8()) + { + if (sPSSData->setMosaic) + BoxSetMosaic(); + sPSSData->showPartyMenuState++; + } + break; + case 2: + return FALSE; + } + return TRUE; +} + +void sub_808FB68(void) +{ + SetGpuReg(REG_OFFSET_BG0CNT, BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(29)); + TextWindow_SetStdFrame0_WithPal(1, 2, 208); + FillBgTilemapBufferRect(0, 0, 0, 0, 32, 20, 17); + CopyBgTilemapBufferToVram(0); +} + +void PrintStorageActionText(u8 id) +{ + u8 *txtPtr; + + DynamicPlaceholderTextUtil_Reset(); + switch (gPCStorageActionTexts[id].format) + { + case PC_TEXT_FMT_NORMAL: + break; + case PC_TEXT_FMT_MON_NAME_1: + case PC_TEXT_FMT_MON_NAME_2: + case PC_TEXT_FMT_MON_NAME_3: + DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, sPSSData->cursorMonNick); + break; + case PC_TEXT_FMT_MON_NAME_4: + case PC_TEXT_FMT_MON_NAME_5: + case PC_TEXT_FMT_MON_NAME_6: + DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, sPSSData->field_21E0); + break; + case PC_TEXT_FMT_ITEM_NAME: + if (IsActiveItemMoving()) + txtPtr = StringCopy(sPSSData->itemName, GetMovingItemName()); + else + txtPtr = StringCopy(sPSSData->itemName, sPSSData->cursorMonTexts[3]); + + while (*(txtPtr - 1) == CHAR_SPACE) + txtPtr--; + + *txtPtr = EOS; + DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, sPSSData->itemName); + break; + } + + DynamicPlaceholderTextUtil_ExpandPlaceholders(sPSSData->field_2190, gPCStorageActionTexts[id].text); + FillWindowPixelBuffer(1, PIXEL_FILL(1)); + AddTextPrinterParameterized(1, 1, sPSSData->field_2190, 0, 2, TEXT_SPEED_FF, NULL); + DrawTextBorderOuter(1, 2, 13); + PutWindowTilemap(1); + CopyWindowToVram(1, 2); + ScheduleBgCopyTilemapToVram(0); +} + +void ShowYesNoWindow(s8 cursorPos) +{ + CreateYesNoMenu(&sYesNoWindowTemplate, 1, 0, 2, 0x00b, 14, 1); + Menu_MoveCursorNoWrapAround(cursorPos); +} + +void ClearBottomWindow(void) +{ + ClearStdWindowAndFrameToTransparent(1, FALSE); + ScheduleBgCopyTilemapToVram(0); +} + +void AddWallpaperSetsMenu(void) +{ + InitMenu(); + SetMenuText(18); + SetMenuText(19); + SetMenuText(20); + SetMenuText(21); + AddMenu(); +} +void AddWallpapersMenu(u8 wallpaperSet) +{ + InitMenu(); + switch (wallpaperSet) + { + case 0: + SetMenuText(22); + SetMenuText(23); + SetMenuText(24); + SetMenuText(25); + break; + case 1: + SetMenuText(26); + SetMenuText(27); + SetMenuText(28); + SetMenuText(29); + break; + case 2: + SetMenuText(30); + SetMenuText(31); + SetMenuText(32); + SetMenuText(33); + break; + case 3: + SetMenuText(34); + SetMenuText(35); + SetMenuText(36); + SetMenuText(37); + break; + } + AddMenu(); +} + +u8 GetCurrentBoxOption(void) +{ + return sCurrentBoxOption; +} + +void sub_808FDFC(void) +{ + if (!IsCursorOnBox()) + { + if (sInPartyMenu) + sub_8095C84(CURSOR_AREA_IN_PARTY, GetBoxCursorPosition()); + else + sub_8095C84(CURSOR_AREA_IN_BOX, GetBoxCursorPosition()); + } + + if (gUnknown_20397BA != ITEM_NONE) + { + sub_8095E2C(gUnknown_20397BA); + sub_8094D14(3); + } +} + +void sub_808FE54(u8 action) +{ + u16 event; + u8 fromBox = sub_8094D34(); + u16 species = sPSSData->cursorMonSpecies; + u16 species2; + u8 toBox; + struct PssQuestLogBuffer * qlogBuffer; + if (sInPartyMenu) + { + toBox = 14; + species2 = GetMonData(&gPlayerParty[GetBoxCursorPosition()], MON_DATA_SPECIES2); + } + else + { + toBox = StorageGetCurrentBox(); + species2 = GetCurrentBoxMonData(GetBoxCursorPosition(), MON_DATA_SPECIES2); + } + qlogBuffer = &sPSSData->qlogBuffer; + + switch (action) + { + default: + return; + case 0: + if (sInPartyMenu) + { + if (fromBox == 14) + return; + else + event = QL_EVENT_SWITCHED_PARTY_MON_FOR_PC_MON; + } + else + { + if (fromBox == 14) + // Should upmerge but doesn't + event = QL_EVENT_SWITCHED_PARTY_MON_FOR_PC_MON; + else + event = fromBox != toBox ? QL_EVENT_SWITCHED_MONS_BETWEEN_BOXES : QL_EVENT_SWITCHED_MONS_WITHIN_BOX; + } + qlogBuffer->species = species; + qlogBuffer->species2 = species2; + qlogBuffer->fromBox = fromBox; + qlogBuffer->toBox = toBox; + break; + case 1: + qlogBuffer->species = species; + qlogBuffer->species2 = SPECIES_NONE; + qlogBuffer->fromBox = fromBox; + qlogBuffer->toBox = 0xFF; + if (sInPartyMenu) + { + if (fromBox == 14) + return; + else + event = QL_EVENT_WITHDREW_MON_PC; + } + else + { + if (fromBox == 14) + { + event = QL_EVENT_DEPOSITED_MON_PC; + qlogBuffer->fromBox = toBox; + } + else if (fromBox != toBox) + { + event = QL_EVENT_MOVED_MON_BETWEEN_BOXES; + qlogBuffer->toBox = toBox; + } + else + event = QL_EVENT_MOVED_MON_WITHIN_BOX; + } + break; + case 2: + event = QL_EVENT_DEPOSITED_MON_PC; + qlogBuffer->species = species; + qlogBuffer->species2 = SPECIES_NONE; + qlogBuffer->fromBox = gUnknown_20397B6; + qlogBuffer->toBox = 0xFF; + break; + case 3: + event = QL_EVENT_SWITCHED_MULTIPLE_MONS; + qlogBuffer->species = SPECIES_NONE; + qlogBuffer->species2 = SPECIES_NONE; + qlogBuffer->fromBox = fromBox; + qlogBuffer->toBox = toBox; + break; + } + SetQuestLogEvent(event, (const void *)qlogBuffer); +} diff --git a/src/strings.c b/src/strings.c index ee67c6dae..751d1e7bd 100644 --- a/src/strings.c +++ b/src/strings.c @@ -601,36 +601,36 @@ const u8 gString_BattleRecords_4Dashes[] = _("----"); const u8 gFameCheckerText_FameCheckerWillBeClosed[] = _("The FAME CHECKER will be closed."); const u8 gFameCheckerText_ClearTextbox[] = _("\n "); const u8 gUnknown_8418204[] = _("やめる"); -const u8 gUnknown_8418208[] = _("Exit from the BOX."); -const u8 gUnknown_841821B[] = _("What do you want to do?"); -const u8 gUnknown_8418233[] = _("Please pick a theme."); -const u8 gUnknown_8418248[] = _("Pick the wallpaper."); -const u8 gUnknown_841825C[] = _("{DYNAMIC 0x00} is selected."); -const u8 gUnknown_841826C[] = _("Jump to which BOX?"); -const u8 gUnknown_841827F[] = _("Deposit in which BOX?"); -const u8 gUnknown_8418295[] = _("{DYNAMIC 0x00} was deposited."); -const u8 gUnknown_84182A7[] = _("The BOX is full."); -const u8 gUnknown_84182B8[] = _("Release this POKéMON?"); -const u8 gUnknown_84182CE[] = _("{DYNAMIC 0x00} was released."); -const u8 gUnknown_84182DF[] = _("Bye-bye, {DYNAMIC 0x00}!"); -const u8 gUnknown_84182EC[] = _("Mark your POKéMON."); -const u8 gUnknown_84182FF[] = _("That's your last POKéMON!"); -const u8 gUnknown_8418319[] = _("Your party's full!"); -const u8 gUnknown_841832C[] = _("You're holding a POKéMON!"); -const u8 gUnknown_8418346[] = _("Which one will you take?"); -const u8 gUnknown_841835F[] = _("You can't release an EGG."); -const u8 gUnknown_8418379[] = _("Continue BOX operations?"); -const u8 gUnknown_8418392[] = _("{DYNAMIC 0x00} came back!"); -const u8 gUnknown_84183A0[] = _("Was it worried about you?"); -const u8 gUnknown_84183BA[] = _("‥ ‥ ‥ ‥ ‥!"); -const u8 gUnknown_84183C5[] = _("Please remove the MAIL."); -const u8 gUnknown_84183DD[] = _("GIVE to a POKéMON?"); -const u8 gUnknown_84183F0[] = _("Placed item in the BAG."); -const u8 gUnknown_8418408[] = _("The BAG is full."); -const u8 gUnknown_8418419[] = _("Put this item in the BAG?"); -const u8 gUnknown_8418433[] = _("{DYNAMIC 0x00} is now held."); -const u8 gUnknown_8418443[] = _("Changed to {DYNAMIC 0x00}."); -const u8 gUnknown_8418452[] = _("MAIL can't be stored!"); +const u8 gText_ExitFromBox[] = _("Exit from the BOX."); +const u8 gText_WhatDoYouWantToDo[] = _("What do you want to do?"); +const u8 gText_PleasePickATheme[] = _("Please pick a theme."); +const u8 gText_PickTheWallpaper[] = _("Pick the wallpaper."); +const u8 gText_PkmnIsSelected[] = _("{DYNAMIC 0x00} is selected."); +const u8 gText_JumpToWhichBox[] = _("Jump to which BOX?"); +const u8 gText_DepositInWhichBox[] = _("Deposit in which BOX?"); +const u8 gText_PkmnWasDeposited[] = _("{DYNAMIC 0x00} was deposited."); +const u8 gText_BoxIsFull2[] = _("The BOX is full."); +const u8 gText_ReleaseThisPokemon[] = _("Release this POKéMON?"); +const u8 gText_PkmnWasReleased[] = _("{DYNAMIC 0x00} was released."); +const u8 gText_ByeByePkmn[] = _("Bye-bye, {DYNAMIC 0x00}!"); +const u8 gText_MarkYourPkmn[] = _("Mark your POKéMON."); +const u8 gText_ThatsYourLastPkmn[] = _("That's your last POKéMON!"); +const u8 gText_YourPartysFull[] = _("Your party's full!"); +const u8 gText_YoureHoldingAPkmn[] = _("You're holding a POKéMON!"); +const u8 gText_WhichOneWillYouTake[] = _("Which one will you take?"); +const u8 gText_YouCantReleaseAnEgg[] = _("You can't release an EGG."); +const u8 gText_ContinueBoxOperations[] = _("Continue BOX operations?"); +const u8 gText_PkmnCameBack[] = _("{DYNAMIC 0x00} came back!"); +const u8 gText_WasItWorriedAboutYou[] = _("Was it worried about you?"); +const u8 gText_FourEllipsesExclamation[] = _("‥ ‥ ‥ ‥ ‥!"); +const u8 gText_PleaseRemoveTheMail[] = _("Please remove the MAIL."); +const u8 gText_GiveToAPkmn[] = _("GIVE to a POKéMON?"); +const u8 gText_PlacedItemInBag[] = _("Placed item in the BAG."); +const u8 gText_BagIsFull2[] = _("The BAG is full."); +const u8 gText_PutItemInBag[] = _("Put this item in the BAG?"); +const u8 gText_ItemIsNowHeld[] = _("{DYNAMIC 0x00} is now held."); +const u8 gText_ChangedToNewItem[] = _("Changed to {DYNAMIC 0x00}."); +const u8 gText_MailCantBeStored[] = _("MAIL can't be stored!"); const u8 gUnknown_8418468[] = _("CANCEL"); const u8 gUnknown_841846F[] = _("STORE"); const u8 gUnknown_8418475[] = _("WITHDRAW"); |