diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s index 1b93496a7..45d56160a 100755 --- a/asm/pokemon_storage_system.s +++ b/asm/pokemon_storage_system.s @@ -1106,7 +1106,7 @@ sub_80C7958: @ 80C7958 ldrh r0, [r3] adds r0, 0x1 strh r0, [r1] - ldr r0, =gUnknown_08571710 + ldr r0, =sSpriteAnimTable_8571710 str r0, [sp, 0xC] movs r4, 0 _080C7A10: @@ -9124,7 +9124,7 @@ _080CBF80: adds r1, r3 ldr r0, [r1] ldr r2, [r0] - ldr r0, =gUnknown_0857291C + ldr r0, =gSpriteAffineAnimTable_857291C str r0, [r2, 0x10] ldr r0, [r1] ldr r0, [r0] diff --git a/data/pokemon_storage_system.s b/data/pokemon_storage_system.s index 4f2815713..4c630c923 100644 --- a/data/pokemon_storage_system.s +++ b/data/pokemon_storage_system.s @@ -4,21 +4,6 @@ .section .rodata .align 2, 0 -gUnknown_085716C0:: @ 85716C0 - .incbin "baserom.gba", 0x5716c0, 0x28 - -gUnknown_085716E8:: @ 85716E8 - .incbin "baserom.gba", 0x5716e8, 0x28 - -gUnknown_08571710:: @ 8571710 - .incbin "baserom.gba", 0x571710, 0x24 - -gUnknown_08571734:: @ 8571734 - .incbin "baserom.gba", 0x571734, 0x3 - -gUnknown_08571737:: @ 8571737 - .incbin "baserom.gba", 0x571737, 0x5 - gUnknown_0857173C:: @ 857173C .incbin "baserom.gba", 0x57173c, 0x20 @@ -59,7 +44,13 @@ gUnknown_085724A4:: @ 85724A4 .incbin "baserom.gba", 0x5724a4, 0x18 gUnknown_085724BC:: @ 85724BC - .incbin "baserom.gba", 0x5724bc, 0x238 + .incbin "baserom.gba", 0x5724bc, 0x18 + +gUnknown_085724D4:: @ 85724D4 + .incbin "baserom.gba", 0x5724d4, 0x20 + +gUnknown_085724F4:: @ 85724F4 + .incbin "baserom.gba", 0x5724f4, 0x200 gUnknown_085726F4:: @ 85726F4 .incbin "baserom.gba", 0x5726f4, 0x20 @@ -71,28 +62,126 @@ gUnknown_08572734:: @ 8572734 .incbin "baserom.gba", 0x572734, 0x10 gUnknown_08572744:: @ 8572744 - .incbin "baserom.gba", 0x572744, 0x8 + obj_pal gUnknown_085724D4, 0xDACA gUnknown_0857274C:: @ 857274C - .incbin "baserom.gba", 0x57274c, 0x8 + obj_tiles gUnknown_085724F4, 0x1C0, 5 gUnknown_08572754:: @ 8572754 - .incbin "baserom.gba", 0x572754, 0x18 + spr_template 2, 0xDAC6, gOamData_857286C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy gUnknown_0857276C:: @ 857276C - .incbin "baserom.gba", 0x57276c, 0xf8 + .4byte gUnknown_085EB7EF, 0 + .4byte gUnknown_085EB802, 0 + .4byte gUnknown_085EB81A, 0 + .4byte gUnknown_085EB82F, 0 + .4byte gUnknown_085EB843, 1 + .4byte gUnknown_085EB853, 0 + .4byte gUnknown_085EB866, 0 + .4byte gUnknown_085EB87C, 1 + .4byte gUnknown_085EB88E, 0 + .4byte gUnknown_085EB89F, 0 + .4byte gUnknown_085EB8B5, 4 + .4byte gUnknown_085EB8C6, 6 + .4byte gUnknown_085EB8D3, 0 + .4byte gUnknown_085EB8E6, 0 + .4byte gUnknown_085EB900, 0 + .4byte gUnknown_085EB913, 0 + .4byte gUnknown_085EB92D, 0 + .4byte gUnknown_085EB946, 0 + .4byte gUnknown_085EB960, 0 + .4byte gUnknown_085EB979, 1 + .4byte gUnknown_085EB987, 0 + .4byte gUnknown_085EB9A1, 0 + .4byte gUnknown_085EB9AB, 0 + .4byte gUnknown_085EB843, 7 + .4byte gUnknown_085EB9C3, 0 + .4byte gUnknown_085EB9D6, 7 + .4byte gUnknown_085EB9EE, 0 + .4byte gUnknown_085EB9FF, 0 + .4byte gUnknown_085EBA19, 7 + .4byte gUnknown_085EBA29, 7 + .4byte gUnknown_085EBA38, 0 + + .align 2 gUnknown_08572864:: @ 8572864 - .incbin "baserom.gba", 0x572864, 0x58 + window_template 0, 0x18, 0xB, 5, 4, 0xF, 0x5C + + .align 2 +gOamData_857286C:: @ 857286C + .2byte 0x0000 + .2byte 0xC000 + .2byte 0x0000 + + .align 2 +gOamData_8572874:: @ 8572874 + .2byte 0x4000 + .2byte 0x0000 + .2byte 0x0000 + + .align 2 +gSpriteAnim_857287C:: @ 857287C + obj_image_anim_frame 0, 5 + obj_image_anim_end + + .align 2 +gSpriteAnim_8572884:: @ 8572884 + obj_image_anim_frame 2, 8 + obj_image_anim_frame 4, 8 + obj_image_anim_frame 6, 8 + obj_image_anim_jump 0 + + .align 2 +gSpriteAnim_8572894:: @ 8572894 + obj_image_anim_frame 8, 5 + obj_image_anim_end + + .align 2 +gSpriteAnim_857289C:: @ 857289C + obj_image_anim_frame 10, 8 + obj_image_anim_frame 4, 8 + obj_image_anim_frame 12, 8 + obj_image_anim_jump 0 + + .align 2 +gSpriteAnimTable_85728AC:: @ 85728AC + .4byte gSpriteAnim_857287C + .4byte gSpriteAnim_8572884 + .4byte gSpriteAnim_8572894 + .4byte gSpriteAnim_857289C gUnknown_085728BC:: @ 85728BC - .incbin "baserom.gba", 0x5728bc, 0x18 + spr_template 5, 0xDACA, gOamData_8572874, gSpriteAnimTable_85728AC, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + .align 2 gUnknown_085728D4:: @ 85728D4 - .incbin "baserom.gba", 0x5728d4, 0x48 + spr_template 0x12, 0xDAC0, gOamData_85728EC, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy -gUnknown_0857291C:: @ 857291C - .incbin "baserom.gba", 0x57291c, 0x4c58 + .align 2 +gOamData_85728EC:: @ 85728EC + .2byte 0x0000 + .2byte 0x8000 + .2byte 0x0000 + + .align 2 +gSpriteAffineAnim_85728F4:: @ 85728F4 + obj_rot_scal_anim_frame 0xFFFE, 0xFFFE, 0, 120 + obj_rot_scal_anim_end + + .align 2 +gSpriteAffineAnim_8572904:: @ 8572904 + obj_rot_scal_anim_frame 0x10, 0x10, 0, 0 + obj_rot_scal_anim_frame 0x10, 0x10, 0, 15 + obj_rot_scal_anim_end + + .align 2 +gSpriteAffineAnimTable_857291C:: @ 857291C + .4byte gSpriteAffineAnim_85728F4 + .4byte gSpriteAffineAnim_8572904 + +gUnknown_08572924:: @ 8572924 + .incbin "baserom.gba", 0x572924, 0x4c50 gUnknown_08577574:: @ 8577574 .incbin "baserom.gba", 0x577574, 0x44 diff --git a/data/strings.s b/data/strings.s index e217a81e0..f4d24f7ea 100644 --- a/data/strings.s +++ b/data/strings.s @@ -2705,34 +2705,34 @@ gUnknown_085EBB4F:: @ 85EBB4F gUnknown_085EBB56:: @ 85EBB56 .string "What would you like to do?$" -gUnknown_085EBB71:: @ 85EBB71 +gText_WithdrawPokemon:: @ 85EBB71 .string "WITHDRAW POKéMON$" -gUnknown_085EBB82:: @ 85EBB82 +gText_DepositPokemon:: @ 85EBB82 .string "DEPOSIT POKéMON$" -gUnknown_085EBB92:: @ 85EBB92 +gText_MovePokemon:: @ 85EBB92 .string "MOVE POKéMON$" -gUnknown_085EBB9F:: @ 85EBB9F +gText_MoveItems:: @ 85EBB9F .string "MOVE ITEMS$" -gUnknown_085EBBAA:: @ 85EBBAA +gText_SeeYa:: @ 85EBBAA .string "SEE YA!$" -gUnknown_085EBBB2:: @ 85EBBB2 +gText_WithdrawMonDescription:: @ 85EBBB2 .string "Move POKéMON stored in BOXES to\nyour party.$" -gUnknown_085EBBDE:: @ 85EBBDE +gText_DepositMonDescription:: @ 85EBBDE .string "Store POKéMON in your party in BOXES.$" -gUnknown_085EBC04:: @ 85EBC04 +gText_MoveMonDescription:: @ 85EBC04 .string "Organize the POKéMON in BOXES and\nin your party.$" -gUnknown_085EBC35:: @ 85EBC35 +gText_MoveItemsDescription:: @ 85EBC35 .string "Move items held by any POKéMON\nin a BOX or your party.$" -gUnknown_085EBC6C:: @ 85EBC6C +gText_SeeYaDescription:: @ 85EBC6C .string "Return to the previous menu.$" gText_JustOnePkmn:: @ 85EBC89 diff --git a/include/strings.h b/include/strings.h index 5521d828b..79e724833 100644 --- a/include/strings.h +++ b/include/strings.h @@ -137,4 +137,15 @@ extern const u8 gMenuText_Give2[]; extern const u8 gText_Cancel2[]; +extern const u8 gText_WithdrawPokemon[]; +extern const u8 gText_WithdrawMonDescription[]; +extern const u8 gText_DepositPokemon[]; +extern const u8 gText_DepositMonDescription[]; +extern const u8 gText_MovePokemon[]; +extern const u8 gText_MoveMonDescription[]; +extern const u8 gText_MoveItems[]; +extern const u8 gText_MoveItemsDescription[]; +extern const u8 gText_SeeYa[]; +extern const u8 gText_SeeYaDescription[]; + #endif //GUARD_STRINGS_H diff --git a/ld_script.txt b/ld_script.txt index b691014bc..b3b881731 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -391,6 +391,7 @@ SECTIONS { src/pokedex.o(.rodata); data/pokedex.o(.rodata); data/trainer_card.o(.rodata); + src/pokemon_storage_system.o(.rodata); data/pokemon_storage_system.o(.rodata); src/pokemon_icon.o(.rodata); data/fldeff_cut.o(.rodata); diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c index bdf4427c7..bb196dd27 100644 --- a/src/pokemon_storage_system.c +++ b/src/pokemon_storage_system.c @@ -5,9 +5,76 @@ #include "event_data.h" #include "string_util.h" #include "text.h" +#include "strings.h" +#include "window.h" IWRAM_DATA u8 gUnknown_03000F78[0x188]; +struct OptionAndDescription +{ + const u8 *optionTxt; + const u8 *descriptionTxt; +}; + +// const rom data +const struct OptionAndDescription gUnknown_085716C0[] = +{ + {gText_WithdrawPokemon, gText_WithdrawMonDescription}, + {gText_DepositPokemon, gText_DepositMonDescription}, + {gText_MovePokemon, gText_MoveMonDescription}, + {gText_MoveItems, gText_MoveItemsDescription}, + {gText_SeeYa, gText_SeeYaDescription} +}; + +const struct WindowTemplate gUnknown_085716E8 = {0, 1, 1, 0x11, 0xA, 0xF, 1}; + +static const union AnimCmd sSpriteAnim_85716F0[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnim_85716F8[] = +{ + ANIMCMD_FRAME(4, 5), + ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnim_8571700[] = +{ + ANIMCMD_FRAME(6, 5), + ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnim_8571708[] = +{ + ANIMCMD_FRAME(10, 5), + ANIMCMD_END +}; + +const union AnimCmd *const sSpriteAnimTable_8571710[] = +{ + sSpriteAnim_85716F0, + sSpriteAnim_85716F8, + sSpriteAnim_8571700, + sSpriteAnim_8571708 +}; + +static const union AffineAnimCmd sSpriteAffineAnim_8571720[] = +{ + AFFINEANIMCMD_FRAME(0xE0, 0xE0, 0, 0), + AFFINEANIMCMD_END +}; + +static const union AffineAnimCmd *const sSpriteAffineAnimTable_8571730[] = +{ + sSpriteAffineAnim_8571720 +}; + +const struct TextColor gUnknown_08571734[] = {4, 0xF, 0xE}; +const u8 gUnknown_08571737[] = _("/30"); + +// code u8 CountMonsInBox(u8 boxId) { u16 i, count;