diff options
-rw-r--r-- | asm/pokemon_storage_system.s | 122 | ||||
-rw-r--r-- | include/pokemon.h | 2 | ||||
-rw-r--r-- | include/pokemon_storage_system.h | 55 | ||||
-rw-r--r-- | src/pokemon/pokemon_storage_system_2.c | 107 |
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(); +} |