summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xasm/pokemon_storage_system.s4
-rw-r--r--data/pokemon_storage_system.s141
-rw-r--r--data/strings.s20
-rw-r--r--include/strings.h11
-rw-r--r--ld_script.txt1
-rw-r--r--src/pokemon_storage_system.c67
6 files changed, 206 insertions, 38 deletions
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
-
-gUnknown_0857291C:: @ 857291C
- .incbin "baserom.gba", 0x57291c, 0x4c58
+ spr_template 0x12, 0xDAC0, gOamData_85728EC, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .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;