summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2018-01-14 19:10:31 -0500
committerPikalaxALT <pikalaxalt@gmail.com>2018-01-14 19:10:31 -0500
commit5fcd1184d8a189887e44559edb12417717afca5b (patch)
tree5147c936812f6c673e81fd56fdd15d30e919108e
parentf33a73ed931885507b1a5f199044d85255078bc2 (diff)
through sub_809A860
-rw-r--r--asm/pokemon_storage_system.s259
-rw-r--r--data/pokemon_storage_system.s25
-rw-r--r--include/pokemon_storage_system.h4
-rw-r--r--src/pokemon/pokemon_storage_system_2.c8
-rw-r--r--src/pokemon/pokemon_storage_system_4.c384
5 files changed, 255 insertions, 425 deletions
diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s
index dafd8ce71..136d528f8 100644
--- a/asm/pokemon_storage_system.s
+++ b/asm/pokemon_storage_system.s
@@ -5,265 +5,6 @@
.text
- thumb_func_start sub_809A6DC
-sub_809A6DC: @ 809A6DC
- push {r4,r5,lr}
- ldr r0, _0809A760 @ =gUnknown_083BB288
- bl LoadSpriteSheet
- ldr r0, _0809A764 @ =gUnknown_083BB290
- bl LoadSpritePalette
- movs r5, 0
-_0809A6EC:
- lsls r1, r5, 4
- adds r1, r5
- lsls r1, 19
- movs r0, 0xB8
- lsls r0, 15
- adds r1, r0
- asrs r1, 16
- ldr r0, _0809A768 @ =gSpriteTemplate_83BB2F0
- movs r2, 0x1C
- movs r3, 0x15
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _0809A73E
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0809A76C @ =gSprites
- adds r4, r0, r1
- lsls r1, r5, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- movs r0, 0x1
- cmp r5, 0
- bne _0809A72C
- movs r1, 0x1
- negs r1, r1
- adds r0, r1, 0
-_0809A72C:
- strh r0, [r4, 0x34]
- ldr r0, _0809A770 @ =gPokemonStorageSystemPtr
- ldr r0, [r0]
- lsls r1, r5, 2
- movs r2, 0xD0
- lsls r2, 4
- adds r0, r2
- adds r0, r1
- str r4, [r0]
-_0809A73E:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x1
- bls _0809A6EC
- bl sub_809BF2C
- lsls r0, 24
- cmp r0, 0
- beq _0809A758
- movs r0, 0x1
- bl sub_809A860
-_0809A758:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809A760: .4byte gUnknown_083BB288
-_0809A764: .4byte gUnknown_083BB290
-_0809A768: .4byte gSpriteTemplate_83BB2F0
-_0809A76C: .4byte gSprites
-_0809A770: .4byte gPokemonStorageSystemPtr
- thumb_func_end sub_809A6DC
-
- thumb_func_start sub_809A774
-sub_809A774: @ 809A774
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r2, 0
- ldr r7, _0809A7C4 @ =gPokemonStorageSystemPtr
- ldr r0, [r7]
- movs r1, 0xD0
- lsls r1, 4
- adds r3, r0, r1
- movs r5, 0
- movs r4, 0x2
-_0809A78A:
- lsls r1, r2, 2
- adds r1, r3, r1
- ldr r0, [r1]
- strh r5, [r0, 0x24]
- ldr r0, [r1]
- strh r4, [r0, 0x2E]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x1
- bls _0809A78A
- lsls r0, r6, 24
- cmp r0, 0
- bge _0809A7CC
- ldr r1, [r7]
- movs r2, 0xD0
- lsls r2, 4
- adds r3, r1, r2
- ldr r2, [r3]
- movs r0, 0x1D
- strh r0, [r2, 0x30]
- ldr r0, _0809A7C8 @ =0x00000d04
- adds r1, r0
- ldr r2, [r1]
- movs r0, 0x5
- strh r0, [r2, 0x30]
- ldr r0, [r3]
- movs r2, 0x48
- b _0809A7E8
- .align 2, 0
-_0809A7C4: .4byte gPokemonStorageSystemPtr
-_0809A7C8: .4byte 0x00000d04
-_0809A7CC:
- ldr r1, [r7]
- movs r2, 0xD0
- lsls r2, 4
- adds r3, r1, r2
- ldr r2, [r3]
- movs r0, 0x5
- strh r0, [r2, 0x30]
- ldr r0, _0809A80C @ =0x00000d04
- adds r1, r0
- ldr r2, [r1]
- movs r0, 0x1D
- strh r0, [r2, 0x30]
- ldr r0, [r3]
- movs r2, 0xF8
-_0809A7E8:
- strh r2, [r0, 0x32]
- ldr r0, [r1]
- strh r2, [r0, 0x32]
- ldr r1, [r7]
- movs r2, 0xD0
- lsls r2, 4
- adds r0, r1, r2
- ldr r2, [r0]
- movs r0, 0
- strh r0, [r2, 0x3C]
- ldr r0, _0809A80C @ =0x00000d04
- adds r1, r0
- ldr r1, [r1]
- movs r0, 0x1
- strh r0, [r1, 0x3C]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0809A80C: .4byte 0x00000d04
- thumb_func_end sub_809A774
-
- thumb_func_start sub_809A810
-sub_809A810: @ 809A810
- push {r4-r6,lr}
- movs r3, 0
- ldr r0, _0809A85C @ =gPokemonStorageSystemPtr
- ldr r0, [r0]
- movs r1, 0xD0
- lsls r1, 4
- adds r4, r0, r1
- movs r5, 0
- movs r6, 0x5
- negs r6, r6
-_0809A824:
- lsls r1, r3, 2
- adds r1, r4, r1
- ldr r2, [r1]
- lsls r0, r3, 4
- adds r0, r3
- lsls r0, 3
- adds r0, 0x5C
- strh r0, [r2, 0x20]
- ldr r0, [r1]
- strh r5, [r0, 0x24]
- ldr r1, [r1]
- adds r1, 0x3E
- ldrb r2, [r1]
- adds r0, r6, 0
- ands r0, r2
- strb r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x1
- bls _0809A824
- movs r0, 0x1
- bl sub_809A860
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809A85C: .4byte gPokemonStorageSystemPtr
- thumb_func_end sub_809A810
-
- thumb_func_start sub_809A860
-sub_809A860: @ 809A860
- push {r4,r5,lr}
- lsls r0, 24
- cmp r0, 0
- beq _0809A89C
- movs r2, 0
- ldr r0, _0809A898 @ =gPokemonStorageSystemPtr
- ldr r0, [r0]
- movs r1, 0xD0
- lsls r1, 4
- adds r4, r0, r1
- movs r3, 0
- movs r5, 0x1
-_0809A878:
- lsls r1, r2, 2
- adds r1, r4, r1
- ldr r0, [r1]
- strh r5, [r0, 0x2E]
- ldr r0, [r1]
- strh r3, [r0, 0x30]
- ldr r0, [r1]
- strh r3, [r0, 0x32]
- ldr r0, [r1]
- strh r3, [r0, 0x36]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x1
- bls _0809A878
- b _0809A8BC
- .align 2, 0
-_0809A898: .4byte gPokemonStorageSystemPtr
-_0809A89C:
- movs r2, 0
- ldr r0, _0809A8C4 @ =gPokemonStorageSystemPtr
- ldr r0, [r0]
- movs r3, 0xD0
- lsls r3, 4
- adds r1, r0, r3
- movs r3, 0
-_0809A8AA:
- lsls r0, r2, 2
- adds r0, r1, r0
- ldr r0, [r0]
- strh r3, [r0, 0x2E]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x1
- bls _0809A8AA
-_0809A8BC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809A8C4: .4byte gPokemonStorageSystemPtr
- thumb_func_end sub_809A860
-
thumb_func_start sub_809A8C8
sub_809A8C8: @ 809A8C8
push {lr}
diff --git a/data/pokemon_storage_system.s b/data/pokemon_storage_system.s
index aa9767dfa..2af123090 100644
--- a/data/pokemon_storage_system.s
+++ b/data/pokemon_storage_system.s
@@ -4,31 +4,6 @@
.section .rodata
.align 2
-gOamData_83BB2D0:: @ 83BB2D0
- .2byte 0x8000
- .2byte 0x0000
- .2byte 0x0800
-
- .align 2
-gSpriteAnim_83BB2D8:: @ 83BB2D8
- obj_image_anim_frame 0, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83BB2E0:: @ 83BB2E0
- obj_image_anim_frame 2, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83BB2E8:: @ 83BB2E8
- .4byte gSpriteAnim_83BB2D8
- .4byte gSpriteAnim_83BB2E0
-
- .align 2
-gSpriteTemplate_83BB2F0:: @ 83BB2F0
- spr_template 6, 56015, gOamData_83BB2D0, gSpriteAnimTable_83BB2E8, NULL, gDummySpriteAffineAnimTable, sub_809A8C8
-
- .align 2
HandCursorPalette: @ 83BB308
.incbin "graphics/pokemon_storage/hand_cursor_pal.bin"
diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h
index 85ffeaefe..0131ce18b 100644
--- a/include/pokemon_storage_system.h
+++ b/include/pokemon_storage_system.h
@@ -117,7 +117,7 @@ struct PokemonStorageSystemData {
u16 unk_0cee;
struct Sprite *unk_0cf0[2];
struct Sprite *unk_0cf8[2];
- u8 filler_0cd0[8];
+ struct Sprite *unk_0d00[2];
u32 unk_0d08;
u8 filler_0d0c[0x50];
u16 unk_0d5c;
@@ -215,7 +215,7 @@ void sub_8099C70(u8 whichBox);
bool8 sub_8099D34(void);
void sub_8099DCC(u8 a0);
bool8 sub_8099E08(void);
-void sub_809A860(u8 a0);
+void sub_809A860(bool8 a0);
void sub_809AA24(void);
void sub_809AA98(void);
bool8 sub_809AC00(void);
diff --git a/src/pokemon/pokemon_storage_system_2.c b/src/pokemon/pokemon_storage_system_2.c
index 290fa120a..4657ed158 100644
--- a/src/pokemon/pokemon_storage_system_2.c
+++ b/src/pokemon/pokemon_storage_system_2.c
@@ -1096,7 +1096,7 @@ void sub_809789C(void)
{
case -1:
case 0:
- sub_809A860(1);
+ sub_809A860(TRUE);
sub_8098A5C();
SetPSSCallback(sub_8096C84);
break;
@@ -1133,7 +1133,7 @@ void sub_8097974(void)
switch (gPokemonStorageSystemPtr->unk_0d5e)
{
case -1:
- sub_809A860(1);
+ sub_809A860(TRUE);
sub_8098A5C();
SetPSSCallback(sub_8096C84);
break;
@@ -1168,7 +1168,7 @@ void sub_8097974(void)
case 3:
if (!sub_8099E08())
{
- sub_809A860(1);
+ sub_809A860(TRUE);
SetPSSCallback(sub_8096C84);
}
break;
@@ -1197,7 +1197,7 @@ void sub_8097A64(void)
sub_8096310();
if (gPokemonStorageSystemPtr->unk_08b2 == 201 || gPokemonStorageSystemPtr->unk_08b2 == gPokemonStorage.currentBox)
{
- sub_809A860(1);
+ sub_809A860(TRUE);
SetPSSCallback(sub_8096C84);
}
else
diff --git a/src/pokemon/pokemon_storage_system_4.c b/src/pokemon/pokemon_storage_system_4.c
index b48b20d5c..b40cc916c 100644
--- a/src/pokemon/pokemon_storage_system_4.c
+++ b/src/pokemon/pokemon_storage_system_4.c
@@ -44,107 +44,10 @@ void sub_809A6DC(void);
void sub_809A774(s8 a0);
void sub_809A810(void);
void sub_809A8C8(struct Sprite *sprite);
+bool8 sub_809BF2C(void);
// .rodata
-// .text
-
-void sub_8099BF8(u8 boxId)
-{
- gPokemonStorageSystemPtr->unk_08ba = FALSE;
- gPokemonStorageSystemPtr->unk_08b4 = 0;
- DmaFill32(3, 0, BG_SCREEN_ADDR(26), 0x1000);
- sub_8099EB0(boxId, 0);
- sub_809A23C(boxId);
- sub_809A6DC();
- SpawnBoxIconSprites(boxId);
- REG_BG2CNT = BGCNT_PRIORITY(2) | BGCNT_CHARBASE(2) | BGCNT_SCREENBASE(26) | BGCNT_TXT512x256;
-}
-
-void sub_8099C70(u8 whichBox)
-{
- s8 r4 = sub_8099D90(whichBox);
- sub_8099EB0(whichBox, r4);
- gPokemonStorageSystemPtr->unk_08b6 = r4 * 6;
- gPokemonStorageSystemPtr->unk_08b8 = 0x20;
- gPokemonStorageSystemPtr->unk_08bb = whichBox;
- gPokemonStorageSystemPtr->unk_08bc = r4 > 0 ? 0 : 5;
- gPokemonStorageSystemPtr->unk_08be = r4;
- gPokemonStorageSystemPtr->unk_08c0 = r4 > 0 ? 0x108 : 0x38;
- gPokemonStorageSystemPtr->unk_08c2 = r4 > 0 ? 0 : 5;
- gPokemonStorageSystemPtr->unk_08c4 = r4;
- gPokemonStorageSystemPtr->unk_08c6 = 0;
- gPokemonStorageSystemPtr->unk_08c8 = 2;
- sub_809900C(whichBox, r4);
- sub_809A3D0(whichBox, r4);
- sub_809A774(r4);
-}
-
-bool8 sub_8099D34(void)
-{
- bool8 retVal = sub_80990AC();
- if (gPokemonStorageSystemPtr->unk_08b8 != 0)
- {
- gPokemonStorageSystemPtr->unk_08b4 += gPokemonStorageSystemPtr->unk_08b6;
- gPokemonStorageSystemPtr->unk_08b4 &= 0x1ff;
- if (--gPokemonStorageSystemPtr->unk_08b8 == 0)
- {
- sub_809A598();
- sub_809A810();
- }
- return TRUE;
- }
- return retVal;
-}
-
-s8 sub_8099D90(u8 boxId)
-{
- u8 curBox = get_preferred_box();
- u8 i;
-
- for (i = 0; curBox != boxId; i++)
- {
- if (++curBox >= 14)
- curBox = 0;
- }
- return i <= 6 ? 1 : -1;
-}
-
-void sub_8099DCC(u8 wallpaperId)
-{
- u8 curBox = get_preferred_box();
- gPokemonStorage.wallpaper[curBox] = wallpaperId;
- gPokemonStorageSystemPtr->unk_1032 = 0;
-}
-
-bool8 sub_8099E08(void)
-{
- switch (gPokemonStorageSystemPtr->unk_1032)
- {
- case 0:
- BeginNormalPaletteFade(gPokemonStorageSystemPtr->unk_0d08, 1, 0, 0x10, 0xffff);
- gPokemonStorageSystemPtr->unk_1032++;
- break;
- case 1:
- if (!UpdatePaletteFade())
- {
- u8 curBox = get_preferred_box();
- sub_8099EB0(curBox, 0);
- sub_809A654();
- BeginNormalPaletteFade(gPokemonStorageSystemPtr->unk_0d08, 1, 0x10, 0, 0xffff);
- gPokemonStorageSystemPtr->unk_1032++;
- }
- break;
- case 2:
- if (!UpdatePaletteFade())
- gPokemonStorageSystemPtr->unk_1032++;
- break;
- case 3:
- return FALSE;
- }
- return TRUE;
-}
-
const u16 gWallpaperPalettes_Forest[] = INCBIN_U16("graphics/pokemon_storage/box_bg1.gbapal");
const u16 gWallpaperPalettes_Forest_2[] = INCBIN_U16("graphics/pokemon_storage/forest_frame.gbapal");
const u16 gWallpaperPalettes_Forest_2_3[] = INCBIN_U16("graphics/pokemon_storage/forest_bg.gbapal");
@@ -314,6 +217,171 @@ const struct WallpaperTable gWallpaperTable[] = {
{gWallpaperTiles_Plain, 0xFC, gWallpaperTilemap_Plain, gWallpaperPalettes_Plain} // Plain
};
+const u16 PCPal_Arrow[] = INCBIN_U16("graphics/pokemon_storage/arrow.gbapal");
+const u8 PCGfx_Arrow[] = INCBIN_U8("graphics/pokemon_storage/arrow.4bpp");
+
+const struct SpriteSheet gUnknown_083BB288 = {PCGfx_Arrow, 0x80, 6};
+const struct SpritePalette gUnknown_083BB290 = {PCPal_Arrow, 0xdacf};
+
+const struct OamData gOamData_83BB298 = {
+ .shape = ST_OAM_H_RECTANGLE,
+ .size = 2,
+ .priority = 2
+};
+
+const union AnimCmd gSpriteAnim_83BB2A0[] = {
+ ANIMCMD_FRAME(0, 5),
+ ANIMCMD_END
+};
+
+const union AnimCmd gSpriteAnim_83BB2A8[] = {
+ ANIMCMD_FRAME(8, 5),
+ ANIMCMD_END
+};
+
+const union AnimCmd *const gSpriteAnimTable_83BB2B0[] = {
+ gSpriteAnim_83BB2A0,
+ gSpriteAnim_83BB2A8
+};
+
+const struct SpriteTemplate gSpriteTemplate_83BB2B8 = {
+ 3,
+ 0xdac8,
+ &gOamData_83BB298,
+ gSpriteAnimTable_83BB2B0,
+ NULL,
+ gDummySpriteAffineAnimTable,
+ SpriteCallbackDummy
+};
+
+const struct OamData gOamData_83BB2D0 = {
+ .shape = ST_OAM_V_RECTANGLE,
+ .priority = 2
+};
+
+const union AnimCmd gSpriteAnim_83BB2D8[] = {
+ ANIMCMD_FRAME(0, 5),
+ ANIMCMD_END
+};
+
+const union AnimCmd gSpriteAnim_83BB2E0[] = {
+ ANIMCMD_FRAME(2, 5),
+ ANIMCMD_END
+};
+
+const union AnimCmd *const gSpriteAnimTable_83BB2E8[] = {
+ gSpriteAnim_83BB2D8,
+ gSpriteAnim_83BB2E0
+};
+
+const struct SpriteTemplate gSpriteTemplate_83BB2F0 = {
+ 6,
+ 0xdacf,
+ &gOamData_83BB2D0,
+ gSpriteAnimTable_83BB2E8,
+ NULL,
+ gDummySpriteAffineAnimTable,
+ sub_809A8C8
+};
+
+// .text
+
+void sub_8099BF8(u8 boxId)
+{
+ gPokemonStorageSystemPtr->unk_08ba = FALSE;
+ gPokemonStorageSystemPtr->unk_08b4 = 0;
+ DmaFill32(3, 0, BG_SCREEN_ADDR(26), 0x1000);
+ sub_8099EB0(boxId, 0);
+ sub_809A23C(boxId);
+ sub_809A6DC();
+ SpawnBoxIconSprites(boxId);
+ REG_BG2CNT = BGCNT_PRIORITY(2) | BGCNT_CHARBASE(2) | BGCNT_SCREENBASE(26) | BGCNT_TXT512x256;
+}
+
+void sub_8099C70(u8 whichBox)
+{
+ s8 r4 = sub_8099D90(whichBox);
+ sub_8099EB0(whichBox, r4);
+ gPokemonStorageSystemPtr->unk_08b6 = r4 * 6;
+ gPokemonStorageSystemPtr->unk_08b8 = 0x20;
+ gPokemonStorageSystemPtr->unk_08bb = whichBox;
+ gPokemonStorageSystemPtr->unk_08bc = r4 > 0 ? 0 : 5;
+ gPokemonStorageSystemPtr->unk_08be = r4;
+ gPokemonStorageSystemPtr->unk_08c0 = r4 > 0 ? 0x108 : 0x38;
+ gPokemonStorageSystemPtr->unk_08c2 = r4 > 0 ? 0 : 5;
+ gPokemonStorageSystemPtr->unk_08c4 = r4;
+ gPokemonStorageSystemPtr->unk_08c6 = 0;
+ gPokemonStorageSystemPtr->unk_08c8 = 2;
+ sub_809900C(whichBox, r4);
+ sub_809A3D0(whichBox, r4);
+ sub_809A774(r4);
+}
+
+bool8 sub_8099D34(void)
+{
+ bool8 retVal = sub_80990AC();
+ if (gPokemonStorageSystemPtr->unk_08b8 != 0)
+ {
+ gPokemonStorageSystemPtr->unk_08b4 += gPokemonStorageSystemPtr->unk_08b6;
+ gPokemonStorageSystemPtr->unk_08b4 &= 0x1ff;
+ if (--gPokemonStorageSystemPtr->unk_08b8 == 0)
+ {
+ sub_809A598();
+ sub_809A810();
+ }
+ return TRUE;
+ }
+ return retVal;
+}
+
+s8 sub_8099D90(u8 boxId)
+{
+ u8 curBox = get_preferred_box();
+ u8 i;
+
+ for (i = 0; curBox != boxId; i++)
+ {
+ if (++curBox >= 14)
+ curBox = 0;
+ }
+ return i <= 6 ? 1 : -1;
+}
+
+void sub_8099DCC(u8 wallpaperId)
+{
+ u8 curBox = get_preferred_box();
+ gPokemonStorage.wallpaper[curBox] = wallpaperId;
+ gPokemonStorageSystemPtr->unk_1032 = 0;
+}
+
+bool8 sub_8099E08(void)
+{
+ switch (gPokemonStorageSystemPtr->unk_1032)
+ {
+ case 0:
+ BeginNormalPaletteFade(gPokemonStorageSystemPtr->unk_0d08, 1, 0, 0x10, 0xffff);
+ gPokemonStorageSystemPtr->unk_1032++;
+ break;
+ case 1:
+ if (!UpdatePaletteFade())
+ {
+ u8 curBox = get_preferred_box();
+ sub_8099EB0(curBox, 0);
+ sub_809A654();
+ BeginNormalPaletteFade(gPokemonStorageSystemPtr->unk_0d08, 1, 0x10, 0, 0xffff);
+ gPokemonStorageSystemPtr->unk_1032++;
+ }
+ break;
+ case 2:
+ if (!UpdatePaletteFade())
+ gPokemonStorageSystemPtr->unk_1032++;
+ break;
+ case 3:
+ return FALSE;
+ }
+ return TRUE;
+}
+
void sub_8099EB0(u8 boxId, s8 a1)
{
const struct WallpaperTable *wallpaperTable;
@@ -855,43 +923,6 @@ void sub_809A3D0(u8 boxId, s8 a1)
}
}
-const u16 PCPal_Arrow[] = INCBIN_U16("graphics/pokemon_storage/arrow.gbapal");
-const u8 PCGfx_Arrow[] = INCBIN_U8("graphics/pokemon_storage/arrow.4bpp");
-
-const struct SpriteSheet gUnknown_083BB288 = {PCGfx_Arrow, 0x80, 6};
-const struct SpritePalette gUnknown_083BB290 = {PCPal_Arrow, 0xdacf};
-
-const struct OamData gOamData_83BB298 = {
- .shape = ST_OAM_H_RECTANGLE,
- .size = 2,
- .priority = 2
-};
-
-const union AnimCmd gSpriteAnim_83BB2A0[] = {
- ANIMCMD_FRAME(0, 5),
- ANIMCMD_END
-};
-
-const union AnimCmd gSpriteAnim_83BB2A8[] = {
- ANIMCMD_FRAME(8, 5),
- ANIMCMD_END
-};
-
-const union AnimCmd *const gSpriteAnimTable_83BB2B0[] = {
- gSpriteAnim_83BB2A0,
- gSpriteAnim_83BB2A8
-};
-
-const struct SpriteTemplate gSpriteTemplate_83BB2B8 = {
- 3,
- 0xdac8,
- &gOamData_83BB298,
- gSpriteAnimTable_83BB2B0,
- NULL,
- gDummySpriteAffineAnimTable,
- SpriteCallbackDummy
-};
-
void sub_809A598(void)
{
if (gPokemonStorageSystemPtr->unk_0cca == 0)
@@ -937,3 +968,86 @@ s16 sub_809A6D0(u8 width)
{
return 0xb0 - width / 2;
}
+
+void sub_809A6DC(void)
+{
+ u16 i;
+
+ LoadSpriteSheet(&gUnknown_083BB288);
+ LoadSpritePalette(&gUnknown_083BB290);
+ for (i = 0; i < 2; i++)
+ {
+ u8 spriteId = CreateSprite(&gSpriteTemplate_83BB2F0, 0x5c + i * 0x88, 0x1c, 21);
+ if (spriteId != MAX_SPRITES)
+ {
+ struct Sprite *sprite = gSprites + spriteId;
+ StartSpriteAnim(sprite, i);
+ sprite->data[3] = (i == 0) ? -1 : 1;
+ gPokemonStorageSystemPtr->unk_0d00[i] = sprite;
+ }
+ }
+ if (sub_809BF2C())
+ sub_809A860(TRUE);
+}
+
+void sub_809A774(s8 a0)
+{
+ u16 i;
+
+ for (i = 0; i < 2; i++)
+ {
+ gPokemonStorageSystemPtr->unk_0d00[i]->pos2.x = 0;
+ gPokemonStorageSystemPtr->unk_0d00[i]->data[0] = 2;
+ }
+ if (a0 < 0)
+ {
+ gPokemonStorageSystemPtr->unk_0d00[0]->data[1] = 29;
+ gPokemonStorageSystemPtr->unk_0d00[1]->data[1] = 5;
+ gPokemonStorageSystemPtr->unk_0d00[0]->data[2] = 0x48;
+ gPokemonStorageSystemPtr->unk_0d00[1]->data[2] = 0x48;
+ }
+ else
+ {
+ gPokemonStorageSystemPtr->unk_0d00[0]->data[1] = 5;
+ gPokemonStorageSystemPtr->unk_0d00[1]->data[1] = 29;
+ gPokemonStorageSystemPtr->unk_0d00[0]->data[2] = 0xF8;
+ gPokemonStorageSystemPtr->unk_0d00[1]->data[2] = 0xF8;
+ }
+ gPokemonStorageSystemPtr->unk_0d00[0]->data[7] = 0;
+ gPokemonStorageSystemPtr->unk_0d00[1]->data[7] = 1;
+}
+
+void sub_809A810(void)
+{
+ u16 i;
+
+ for (i = 0; i < 2; i++)
+ {
+ gPokemonStorageSystemPtr->unk_0d00[i]->pos1.x = 0x88 * i + 0x5c;
+ gPokemonStorageSystemPtr->unk_0d00[i]->pos2.x = 0;
+ gPokemonStorageSystemPtr->unk_0d00[i]->invisible = FALSE;
+ }
+ sub_809A860(TRUE);
+}
+
+void sub_809A860(bool8 a0)
+{
+ u16 i;
+ if (a0)
+ {
+ for (i = 0; i < 2; i++)
+ {
+ gPokemonStorageSystemPtr->unk_0d00[i]->data[0] = 1;
+ gPokemonStorageSystemPtr->unk_0d00[i]->data[1] = 0;
+ gPokemonStorageSystemPtr->unk_0d00[i]->data[2] = 0;
+ gPokemonStorageSystemPtr->unk_0d00[i]->data[4] = 0;
+ }
+ }
+ else
+ {
+ for (i = 0; i < 2; i++)
+ {
+ gPokemonStorageSystemPtr->unk_0d00[i]->data[0] = 0;
+ }
+ }
+}