summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/pokemon_storage_system.s122
-rw-r--r--include/pokemon.h2
-rw-r--r--include/pokemon_storage_system.h55
-rw-r--r--src/pokemon/pokemon_storage_system_2.c107
4 files changed, 110 insertions, 176 deletions
diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s
index bf3d49532..a4cf34a2b 100644
--- a/asm/pokemon_storage_system.s
+++ b/asm/pokemon_storage_system.s
@@ -5,128 +5,6 @@
.text
- thumb_func_start sub_8098A38
-sub_8098A38: @ 8098A38
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x17
- movs r1, 0xA
- movs r2, 0
- bl DisplayYesNoMenu
- lsls r4, 24
- asrs r4, 24
- adds r0, r4, 0
- bl MoveMenuCursor
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8098A38
-
- thumb_func_start sub_8098A5C
-sub_8098A5C: @ 8098A5C
- push {lr}
- bl HandleDestroyMenuCursors
- movs r0, 0xA
- movs r1, 0x10
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- movs r0, 0x17
- movs r1, 0xA
- movs r2, 0x1D
- movs r3, 0xF
- bl MenuZeroFillWindowRect
- pop {r0}
- bx r0
- thumb_func_end sub_8098A5C
-
- thumb_func_start sub_8098A80
-sub_8098A80: @ 8098A80
- push {lr}
- bl sub_809CDCC
- movs r0, 0xC
- bl sub_809CDEC
- movs r0, 0xD
- bl sub_809CDEC
- movs r0, 0xE
- bl sub_809CDEC
- movs r0, 0xF
- bl sub_809CDEC
- bl sub_809CE84
- pop {r0}
- bx r0
- thumb_func_end sub_8098A80
-
- thumb_func_start sub_8098AA8
-sub_8098AA8: @ 8098AA8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- bl sub_809CDCC
- cmp r4, 0x1
- beq _08098AE6
- cmp r4, 0x1
- bgt _08098AC2
- cmp r4, 0
- beq _08098ACC
- b _08098B32
-_08098AC2:
- cmp r5, 0x2
- beq _08098B00
- cmp r5, 0x3
- beq _08098B1A
- b _08098B32
-_08098ACC:
- movs r0, 0x10
- bl sub_809CDEC
- movs r0, 0x11
- bl sub_809CDEC
- movs r0, 0x12
- bl sub_809CDEC
- movs r0, 0x13
- bl sub_809CDEC
- b _08098B32
-_08098AE6:
- movs r0, 0x14
- bl sub_809CDEC
- movs r0, 0x15
- bl sub_809CDEC
- movs r0, 0x16
- bl sub_809CDEC
- movs r0, 0x17
- bl sub_809CDEC
- b _08098B32
-_08098B00:
- movs r0, 0x18
- bl sub_809CDEC
- movs r0, 0x19
- bl sub_809CDEC
- movs r0, 0x1A
- bl sub_809CDEC
- movs r0, 0x1B
- bl sub_809CDEC
- b _08098B32
-_08098B1A:
- movs r0, 0x1C
- bl sub_809CDEC
- movs r0, 0x1D
- bl sub_809CDEC
- movs r0, 0x1E
- bl sub_809CDEC
- movs r0, 0x1F
- bl sub_809CDEC
-_08098B32:
- bl sub_809CE84
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8098AA8
-
-// File boundary
-
thumb_func_start get_preferred_box
get_preferred_box: @ 8098B3C
ldr r0, _08098B44 @ =gPokemonStorage
diff --git a/include/pokemon.h b/include/pokemon.h
index fd1709320..af65599f8 100644
--- a/include/pokemon.h
+++ b/include/pokemon.h
@@ -627,6 +627,6 @@ void RandomlyGivePartyPokerus(struct Pokemon *party);
void PartySpreadPokerus(struct Pokemon *party);
struct Sprite *sub_80F7920(u16, u16, const u16 *);
-
+void BoxMonRestorePP(struct BoxPokemon *);
#endif // GUARD_POKEMON_H
diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h
index b82213bb2..ab2a14362 100644
--- a/include/pokemon_storage_system.h
+++ b/include/pokemon_storage_system.h
@@ -142,11 +142,60 @@ u8 sub_8096368(void);
void sub_809635C(void);
void sub_8096310(void);
void sub_80961A8(void);
-
void task_intro_29(u8 whichMenu);
void ResetPokemonStorageSystem(void);
-void BoxMonRestorePP(struct BoxPokemon *);
-void party_compaction(void);
+void sub_8098B48(void);
+void sub_8099310(void);
+bool8 sub_8099374(void);
+void sub_80994A8(s16 a0);
+void sub_809954C(void);
+void sub_8099958(void);
+bool8 sub_8099990(void);
struct Sprite *sub_809A9A0(u16 a0, u16 a1, u8 a2, u8 a3, u8 a4);
+void sub_809BB90(void);
+void sub_8099BF8(u8 a0);
+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_809AA24(void);
+void sub_809AA98(void);
+bool8 sub_809AC00(void);
+void sub_809B0C0(u8 a0);
+void sub_809B0D4(void);
+void sub_809B0E0(void);
+u8 sub_809B0F4(void);
+void sub_809B068(void);
+void sub_809B100(u8 a0);
+bool8 sub_809B130(void);
+void sub_809B440(void);
+bool8 sub_809B62C(u8);
+void sub_809B6BC(void);
+void sub_809B6DC(void);
+bool8 sub_809B734(void);
+void sub_809B760(void);
+void sub_809B7AC(void);
+void sub_809B7D4(void);
+s8 sub_809B960(void);
+void sub_809BBC0(void);
+void sub_809BC18(void);
+void sub_809BD14(void);
+void party_compaction(void);
+void sub_809BDD8(u8 markings);
+bool8 sub_809BE80(void);
+bool8 sub_809BEBC(void);
+bool8 sub_809BF20(void);
+bool8 sub_809BF48(void);
+u8 sub_809CA40(void);
+void sub_809CDCC(void);
+void sub_809CDEC(u8 a0);
+void sub_809CE84(void);
+s16 sub_809CF30(void);
+void sub_809CFDC(struct UnkStruct_2000020 *a0, struct UnkStruct_2000020 *a1, u8 a2);
+void sub_809CFF0(void);
+void sub_809D034(void *dest, u16 dLeft, u16 dTop, const void *src, u16 sLeft, u16 sTop, u16 width, u16 height);
+void sub_809D104(void *dest, u16 dLeft, u16 dTop, const void *src, u16 sLeft, u16 sTop, u16 width, u16 height);
+void sub_809D16C(void *dest, u16 dLeft, u16 dTop, u16 width, u16 height);
#endif // GUARD_POKEMON_STORAGE_SYSTEM_H
diff --git a/src/pokemon/pokemon_storage_system_2.c b/src/pokemon/pokemon_storage_system_2.c
index ff6f1f587..474f16323 100644
--- a/src/pokemon/pokemon_storage_system_2.c
+++ b/src/pokemon/pokemon_storage_system_2.c
@@ -89,59 +89,10 @@ void sub_80987DC(void);
void sub_809880C(void);
bool8 sub_8098830(void);
void PrintStorageActionText(u8 index);
-void sub_8098A38(u8);
+void sub_8098A38(s8);
void sub_8098A5C(void);
void sub_8098A80(void);
void sub_8098AA8(u8 a0);
-void sub_8098B48(void);
-void sub_8099310(void);
-bool8 sub_8099374(void);
-void sub_80994A8(s16 a0);
-void sub_809954C(void);
-void sub_8099958(void);
-bool8 sub_8099990(void);
-void sub_809BB90(void);
-void sub_8099BF8(u8 a0);
-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_809AA24(void);
-void sub_809AA98(void);
-bool8 sub_809AC00(void);
-void sub_809B0C0(u8 a0);
-void sub_809B0D4(void);
-void sub_809B0E0(void);
-u8 sub_809B0F4(void);
-void sub_809B068(void);
-void sub_809B100(u8 a0);
-bool8 sub_809B130(void);
-void sub_809B440(void);
-bool8 sub_809B62C(u8);
-void sub_809B6BC(void);
-void sub_809B6DC(void);
-bool8 sub_809B734(void);
-void sub_809B760(void);
-void sub_809B7AC(void);
-void sub_809B7D4(void);
-s8 sub_809B960(void);
-void sub_809BBC0(void);
-void sub_809BC18(void);
-void sub_809BD14(void);
-void sub_809BDD8(u8 markings);
-bool8 sub_809BE80(void);
-bool8 sub_809BEBC(void);
-bool8 sub_809BF20(void);
-bool8 sub_809BF48(void);
-u8 sub_809CA40(void);
-void sub_809CE84(void);
-s16 sub_809CF30(void);
-void sub_809CFDC(struct UnkStruct_2000020 *a0, struct UnkStruct_2000020 *a1, u8 a2);
-void sub_809CFF0(void);
-void sub_809D034(void *dest, u16 dLeft, u16 dTop, const void *src, u16 sLeft, u16 sTop, u16 width, u16 height);
-void sub_809D104(void *dest, u16 dLeft, u16 dTop, const void *src, u16 sLeft, u16 sTop, u16 width, u16 height);
-void sub_809D16C(void *dest, u16 dLeft, u16 dTop, u16 width, u16 height);
// .rodata
@@ -2081,3 +2032,59 @@ const struct SpriteTemplate gSpriteTemplate_83B6F14 = {
const struct OamData gOamData_83B6F2C = {
.size = 2
};
+
+void sub_8098A38(s8 a0)
+{
+ DisplayYesNoMenu(23, 10, 0);
+ MoveMenuCursor(a0);
+}
+
+void sub_8098A5C(void)
+{
+ HandleDestroyMenuCursors();
+ MenuZeroFillWindowRect(10, 16, 29, 19);
+ MenuZeroFillWindowRect(23, 10, 29, 15);
+}
+
+void sub_8098A80(void)
+{
+ sub_809CDCC();
+ sub_809CDEC(12);
+ sub_809CDEC(13);
+ sub_809CDEC(14);
+ sub_809CDEC(15);
+ sub_809CE84();
+}
+
+void sub_8098AA8(u8 a0)
+{
+ sub_809CDCC();
+ switch (a0)
+ {
+ case 0:
+ sub_809CDEC(16);
+ sub_809CDEC(17);
+ sub_809CDEC(18);
+ sub_809CDEC(19);
+ break;
+ case 1:
+ sub_809CDEC(20);
+ sub_809CDEC(21);
+ sub_809CDEC(22);
+ sub_809CDEC(23);
+ break;
+ case 2:
+ sub_809CDEC(24);
+ sub_809CDEC(25);
+ sub_809CDEC(26);
+ sub_809CDEC(27);
+ break;
+ case 3:
+ sub_809CDEC(28);
+ sub_809CDEC(29);
+ sub_809CDEC(30);
+ sub_809CDEC(31);
+ break;
+ }
+ sub_809CE84();
+}