From e0f3de0b7483afe2b751ea9fb8204e7da49a371b Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 9 Dec 2018 16:44:01 +0100 Subject: Start pokemon storage system --- include/pokemon_storage_system.h | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) (limited to 'include/pokemon_storage_system.h') diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h index 9b5358f06..4a3adec78 100644 --- a/include/pokemon_storage_system.h +++ b/include/pokemon_storage_system.h @@ -69,8 +69,32 @@ struct PokemonStorageSystemData u8 unk_0002; u8 unk_0003; u8 taskId; - u8 unk_0005[710]; + u8 unk_0005; + struct UnkStruct_2000020 unk_0020; + struct UnkStruct_2000028 unk_0028[8]; + u8 unk_90[567]; + u8 unk_02C7; + u8 unk_02C8; + u8 unk_02C9; + s16 field_2CA; u16 bg2_X; + u8 field_2CE; + u8 field_2CF[1217]; + u8 changeWallpaper; + u8 field_791; + u8 wallpaperTilemap[180 * 4]; + u8 wallpaperChangeState; + u8 field_A63; + u8 field_A64; + u8 field_A65; + u8 field_A66; + u8 field_A67; + u8 *wallpaperTilemapPtr; + u8 field_A6C; + u8 field_A6D[633]; + u16 field_CE6; + u8 field_CE8[188]; + struct PokemonMarkMenu field_DA4; }; extern struct UnkPSSStruct_2002370 *gUnknown_02039D04; -- cgit v1.2.3 From 431e7e7e5c390db7fa809f7e8ef1a47c0009468a Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 9 Dec 2018 21:06:43 +0100 Subject: More storage work --- include/pokemon_storage_system.h | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) (limited to 'include/pokemon_storage_system.h') diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h index 4a3adec78..ed2b20f46 100644 --- a/include/pokemon_storage_system.h +++ b/include/pokemon_storage_system.h @@ -76,12 +76,12 @@ struct PokemonStorageSystemData u8 unk_02C7; u8 unk_02C8; u8 unk_02C9; - s16 field_2CA; + s16 newCurrBoxId; u16 bg2_X; u8 field_2CE; - u8 field_2CF[1217]; - u8 changeWallpaper; - u8 field_791; + u8 field_2CF[1215]; + s16 wallpaperSetId; + s16 wallpaperId; u8 wallpaperTilemap[180 * 4]; u8 wallpaperChangeState; u8 field_A63; @@ -92,9 +92,18 @@ struct PokemonStorageSystemData u8 *wallpaperTilemapPtr; u8 field_A6C; u8 field_A6D[633]; - u16 field_CE6; - u8 field_CE8[188]; + u16 selectedItem; + u16 field_CE8; + u8 field_CEA; + u8 field_CEB; + u8 field_CEC; + u8 field_CED; + u8 field_CEE; + u8 field_CEF[181]; struct PokemonMarkMenu field_DA4; + struct UnkPSSStruct_2002370 field_1E5C; + u8 field_20A4[400]; + u16 field_2234; }; extern struct UnkPSSStruct_2002370 *gUnknown_02039D04; -- cgit v1.2.3 From c2d887617492db009694e8715ff606418c691346 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Mon, 10 Dec 2018 21:36:52 +0100 Subject: Document PSS functions --- include/pokemon_storage_system.h | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) (limited to 'include/pokemon_storage_system.h') diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h index ed2b20f46..c045eb481 100644 --- a/include/pokemon_storage_system.h +++ b/include/pokemon_storage_system.h @@ -66,7 +66,7 @@ struct PokemonStorageSystemData { u8 state; u8 boxOption; - u8 unk_0002; + u8 screenChangeType; u8 unk_0003; u8 taskId; u8 unk_0005; @@ -102,8 +102,19 @@ struct PokemonStorageSystemData u8 field_CEF[181]; struct PokemonMarkMenu field_DA4; struct UnkPSSStruct_2002370 field_1E5C; - u8 field_20A4[400]; - u16 field_2234; + u8 field_20A4[220]; + u8 field_2180; + u8 field_2181; + u8 field_2182; + u8 field_2183; + u8 field_2184; + u8 field_2185; + u8 field_2186; + u8 field_2187; + u8 field_2188; + struct BoxPokemon *field_218C; + u8 field_2190[164]; + u16 movingItem; }; extern struct UnkPSSStruct_2002370 *gUnknown_02039D04; -- cgit v1.2.3 From c5b5f4bd777b4b255294818bb1dc7fe01bc38a6d Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Mon, 10 Dec 2018 23:42:44 +0100 Subject: More storage --- include/pokemon_storage_system.h | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'include/pokemon_storage_system.h') diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h index c045eb481..f582c2dc4 100644 --- a/include/pokemon_storage_system.h +++ b/include/pokemon_storage_system.h @@ -67,7 +67,7 @@ struct PokemonStorageSystemData u8 state; u8 boxOption; u8 screenChangeType; - u8 unk_0003; + bool8 isReshowingPSS; u8 taskId; u8 unk_0005; struct UnkStruct_2000020 unk_0020; @@ -99,7 +99,10 @@ struct PokemonStorageSystemData u8 field_CEC; u8 field_CED; u8 field_CEE; - u8 field_CEF[181]; + u8 field_CEF[165]; + struct Sprite *field_D94; + struct Sprite *field_D98[2]; + u16 *field_DA0; struct PokemonMarkMenu field_DA4; struct UnkPSSStruct_2002370 field_1E5C; u8 field_20A4[220]; @@ -115,6 +118,8 @@ struct PokemonStorageSystemData struct BoxPokemon *field_218C; u8 field_2190[164]; u16 movingItem; + u8 field_2236[14478]; + u8 field_5AC4[0x800]; }; extern struct UnkPSSStruct_2002370 *gUnknown_02039D04; -- cgit v1.2.3 From 74746603ada01fa9e5d6b355476f67d03c652e9b Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Tue, 11 Dec 2018 23:09:12 +0100 Subject: More pokemon storage --- include/pokemon_storage_system.h | 32 +++++++++++++++++++++++++++++--- 1 file changed, 29 insertions(+), 3 deletions(-) (limited to 'include/pokemon_storage_system.h') diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h index f582c2dc4..d3beb88ab 100644 --- a/include/pokemon_storage_system.h +++ b/include/pokemon_storage_system.h @@ -91,7 +91,10 @@ struct PokemonStorageSystemData u8 field_A67; u8 *wallpaperTilemapPtr; u8 field_A6C; - u8 field_A6D[633]; + u8 field_A6D[623]; + u32 *field_CDC; + u32 cursorMonPersonality; + u16 cursorMonSpecies; u16 selectedItem; u16 field_CE8; u8 field_CEA; @@ -99,7 +102,20 @@ struct PokemonStorageSystemData u8 field_CEC; u8 field_CED; u8 field_CEE; - u8 field_CEF[165]; + u8 field_CEF; + u8 field_CF0; + u8 field_CF1; + u8 field_CF2; + u8 field_CF3; + u8 field_CF4; + u8 field_CF5; + u8 field_CF6; + u8 field_CF7; + u8 field_CF8; + u8 cursorMonNick[36]; + u8 cursorMonSpeciesName[36]; + u8 cursorMonGenderLvlText[36]; + u8 cursorMonItemName[47]; struct Sprite *field_D94; struct Sprite *field_D98[2]; u16 *field_DA0; @@ -118,7 +134,17 @@ struct PokemonStorageSystemData struct BoxPokemon *field_218C; u8 field_2190[164]; u16 movingItem; - u8 field_2236[14478]; + u8 field_2236; + u8 field_2237; + u8 field_2238; + u8 field_2239; + u16 field_223A; + u16 *field_223C; + struct Sprite *cursorMonSprite; + u16 field_2244[16]; + u8 field_2264[96]; + u8 field_22C4[0x800]; + u8 field_2AC4[12288]; u8 field_5AC4[0x800]; }; -- cgit v1.2.3 From 59a69eb62769003a81c0f9f50be5ec5abde96242 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Wed, 12 Dec 2018 23:19:50 +0100 Subject: Storage up to icon palettes --- include/pokemon_storage_system.h | 39 ++++++++++++++++++++++----------------- 1 file changed, 22 insertions(+), 17 deletions(-) (limited to 'include/pokemon_storage_system.h') diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h index d3beb88ab..d36f4b358 100644 --- a/include/pokemon_storage_system.h +++ b/include/pokemon_storage_system.h @@ -72,14 +72,21 @@ struct PokemonStorageSystemData u8 unk_0005; struct UnkStruct_2000020 unk_0020; struct UnkStruct_2000028 unk_0028[8]; - u8 unk_90[567]; + u16 field_90[16]; + u16 field_B0[528 / 2]; + u16 field_2C0; + u16 field_2C2; + u8 field_2C4; + u8 field_2C5; + u8 showPartyMenuState; u8 unk_02C7; u8 unk_02C8; - u8 unk_02C9; + bool8 unk_02C9; s16 newCurrBoxId; u16 bg2_X; u8 field_2CE; - u8 field_2CF[1215]; + u8 field_2CF[1213]; + u16 field_78C; s16 wallpaperSetId; s16 wallpaperId; u8 wallpaperTilemap[180 * 4]; @@ -90,8 +97,13 @@ struct PokemonStorageSystemData u8 field_A66; u8 field_A67; u8 *wallpaperTilemapPtr; - u8 field_A6C; - u8 field_A6D[623]; + struct Sprite *field_A6C; + struct Sprite *partySprites[PARTY_SIZE]; + struct Sprite *boxMonsSprites[IN_BOX_COUNT]; + u8 field_B00[8]; + u16 field_B08[40]; + u16 field_B58[40]; + u8 field_BA8[308]; u32 *field_CDC; u32 cursorMonPersonality; u16 cursorMonSpecies; @@ -101,17 +113,7 @@ struct PokemonStorageSystemData u8 field_CEB; u8 field_CEC; u8 field_CED; - u8 field_CEE; - u8 field_CEF; - u8 field_CF0; - u8 field_CF1; - u8 field_CF2; - u8 field_CF3; - u8 field_CF4; - u8 field_CF5; - u8 field_CF6; - u8 field_CF7; - u8 field_CF8; + u8 field_CEE[POKEMON_NAME_LENGTH + 1]; u8 cursorMonNick[36]; u8 cursorMonSpeciesName[36]; u8 cursorMonGenderLvlText[36]; @@ -132,7 +134,10 @@ struct PokemonStorageSystemData u8 field_2187; u8 field_2188; struct BoxPokemon *field_218C; - u8 field_2190[164]; + u8 field_2190[80]; + u8 field_21E0[POKEMON_NAME_LENGTH + 1]; + u8 field_21EB[15]; // TODO: ITEM NAME LENGTH + 1 + u8 field_21FA[58]; u16 movingItem; u8 field_2236; u8 field_2237; -- cgit v1.2.3 From f1421d94c384c1bd76304fcb961ca28d7f0e7e20 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 15 Dec 2018 23:58:47 +0100 Subject: Up to sub 0x80ce580 --- include/pokemon_storage_system.h | 113 +++++++++++++++++++++++++++++++++------ 1 file changed, 98 insertions(+), 15 deletions(-) (limited to 'include/pokemon_storage_system.h') diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h index d36f4b358..e9b3302c0 100644 --- a/include/pokemon_storage_system.h +++ b/include/pokemon_storage_system.h @@ -2,7 +2,9 @@ #define GUARD_POKEMON_STORAGE_SYSTEM_H #define TOTAL_BOXES_COUNT 14 -#define IN_BOX_COUNT 30 +#define IN_BOX_ROWS 6 +#define IN_BOX_COLUMS 5 +#define IN_BOX_COUNT (IN_BOX_ROWS * IN_BOX_COLUMS) #include "pc_screen_effect.h" #include "mon_markings.h" @@ -69,7 +71,6 @@ struct PokemonStorageSystemData u8 screenChangeType; bool8 isReshowingPSS; u8 taskId; - u8 unk_0005; struct UnkStruct_2000020 unk_0020; struct UnkStruct_2000028 unk_0028[8]; u16 field_90[16]; @@ -84,26 +85,86 @@ struct PokemonStorageSystemData bool8 unk_02C9; s16 newCurrBoxId; u16 bg2_X; - u8 field_2CE; - u8 field_2CF[1213]; + s16 field_2CE; + u16 field_2D0; + u8 field_2D2; + u8 field_2D3; + u8 field_2D4; + u8 field_2D5; + u16 field_2D6; + s16 field_2D8; + u16 field_2DA; + u16 field_2DC; + u16 field_2DE; + u16 field_2E0; + u8 field_2E2; + u8 field_2E3; + u8 field_2E4[20]; + u8 field_2F8[1024]; + u8 field_6F8; + u8 field_6F9; + u8 field_6FA; + s8 field_6FB; + u16 field_6FC[16]; + u16 field_71C; + u16 field_71E; + struct Sprite *field_720[2]; + struct Sprite *field_728[2]; + struct Sprite *field_730[2]; + u32 field_738; + u8 field_73C[80]; u16 field_78C; s16 wallpaperSetId; s16 wallpaperId; - u8 wallpaperTilemap[180 * 4]; + u16 field_792[360]; u8 wallpaperChangeState; u8 field_A63; u8 field_A64; - u8 field_A65; + s8 field_A65; u8 field_A66; u8 field_A67; - u8 *wallpaperTilemapPtr; + u8 *wallpaperTiles; struct Sprite *field_A6C; struct Sprite *partySprites[PARTY_SIZE]; struct Sprite *boxMonsSprites[IN_BOX_COUNT]; - u8 field_B00[8]; + struct Sprite **field_B00; + struct Sprite **field_B04; u16 field_B08[40]; u16 field_B58[40]; - u8 field_BA8[308]; + u16 boxSpecies[IN_BOX_COUNT]; + u32 boxPersonalities[IN_BOX_COUNT]; + u8 field_C5C; + u8 field_C5D; + u8 field_C5E; + u8 field_C5F; + u16 field_C60; + s16 field_C62; + s16 field_C64; + u16 field_C66; + u8 field_C68; + s8 field_C69; + u8 field_C6A; + u8 field_C6B; + u8 field_C6C[72]; + struct Sprite *field_CB4; + struct Sprite *field_CB8; + s32 field_CBC; + s32 field_CC0; + u32 field_CC4; + u32 field_CC8; + s16 field_CCC; + s16 field_CCE; + u16 field_CD0; + s8 field_CD2; + s8 field_CD3; + u8 field_CD4; + u8 field_CD5; + u8 field_CD6; + u8 field_CD7; + u8 field_CD8; + u8 field_CD9; + u8 field_CDA; + u8 field_CDB; u32 *field_CDC; u32 cursorMonPersonality; u16 cursorMonSpecies; @@ -117,13 +178,26 @@ struct PokemonStorageSystemData u8 cursorMonNick[36]; u8 cursorMonSpeciesName[36]; u8 cursorMonGenderLvlText[36]; - u8 cursorMonItemName[47]; + u8 cursorMonItemName[36]; + bool8 (*monPlaceChangeFunc)(void); + u8 monPlaceChangeState; + u8 field_D91; struct Sprite *field_D94; struct Sprite *field_D98[2]; u16 *field_DA0; struct PokemonMarkMenu field_DA4; struct UnkPSSStruct_2002370 field_1E5C; - u8 field_20A4[220]; + struct Pokemon field_20A4; + struct Pokemon field_2108; + s8 field_216C; + u8 field_216D; + s8 field_216E; + s8 field_216F; + s8 field_2170; + s8 field_2171; + u16 field_2172; + u16 field_2174; + u16 field_2176[5]; u8 field_2180; u8 field_2181; u8 field_2182; @@ -134,10 +208,18 @@ struct PokemonStorageSystemData u8 field_2187; u8 field_2188; struct BoxPokemon *field_218C; - u8 field_2190[80]; + u8 field_2190[40]; + u8 field_21B8[40]; u8 field_21E0[POKEMON_NAME_LENGTH + 1]; u8 field_21EB[15]; // TODO: ITEM NAME LENGTH + 1 - u8 field_21FA[58]; + u8 field_21FA; + u8 field_21FB; + u8 field_21FC; + u8 field_21FD; + u8 field_21FE; + u8 field_21FF; + u8 field_2200; + u8 field_2201[51]; u16 movingItem; u8 field_2236; u8 field_2237; @@ -149,7 +231,8 @@ struct PokemonStorageSystemData u16 field_2244[16]; u8 field_2264[96]; u8 field_22C4[0x800]; - u8 field_2AC4[12288]; + u8 field_2AC4[8192]; + u8 field_4AC4[0x1000]; u8 field_5AC4[0x800]; }; @@ -160,7 +243,7 @@ u8* GetBoxNamePtr(u8 boxNumber); struct BoxPokemon *GetBoxedMonPtr(u8, u8); void SetBoxMonNickFromAnyBox(u8, u8, u8 *); void CompactPartySlots(void); -u32 GetBoxMonDataFromAnyBox(u8 boxId, u8 monPosition, u32 request); +u32 GetBoxMonDataAt(u8 boxId, u8 monPosition, u32 request); bool8 CheckFreePokemonStorageSpace(void); u8 StorageGetCurrentBox(void); u8 sub_80D214C(struct BoxPokemon *a, u8 b, u8 c, u8 d); -- cgit v1.2.3 From aae36b5653537a063560dc2c7df261cc7b950a4c Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 16 Dec 2018 21:10:01 +0100 Subject: 6k left --- include/pokemon_storage_system.h | 43 +++++++++++++++++++++++++--------------- 1 file changed, 27 insertions(+), 16 deletions(-) (limited to 'include/pokemon_storage_system.h') diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h index e9b3302c0..530fb7042 100644 --- a/include/pokemon_storage_system.h +++ b/include/pokemon_storage_system.h @@ -21,7 +21,7 @@ struct StorageAction u8 format; }; -struct StorageText +struct StorageMenu { const u8 *text; int textId; @@ -124,7 +124,7 @@ struct PokemonStorageSystemData u8 field_A66; u8 field_A67; u8 *wallpaperTiles; - struct Sprite *field_A6C; + struct Sprite *movingMonSprite; struct Sprite *partySprites[PARTY_SIZE]; struct Sprite *boxMonsSprites[IN_BOX_COUNT]; struct Sprite **field_B00; @@ -145,7 +145,15 @@ struct PokemonStorageSystemData s8 field_C69; u8 field_C6A; u8 field_C6B; - u8 field_C6C[72]; + struct WindowTemplate menuWindow; + struct StorageMenu menuItems[7]; + u8 menuItemsCount; + u8 menuWidth; + u8 field_CAE; + u8 field_CAF; + u16 field_CB0; + u8 field_CB2; + u8 field_CB3; struct Sprite *field_CB4; struct Sprite *field_CB8; s32 field_CBC; @@ -161,21 +169,20 @@ struct PokemonStorageSystemData u8 field_CD5; u8 field_CD6; u8 field_CD7; - u8 field_CD8; - u8 field_CD9; + u8 field_CD8[2]; u8 field_CDA; u8 field_CDB; - u32 *field_CDC; + const u32 *cursorMonPalette; u32 cursorMonPersonality; u16 cursorMonSpecies; - u16 selectedItem; + u16 cursorMonItem; u16 field_CE8; u8 field_CEA; - u8 field_CEB; - u8 field_CEC; - u8 field_CED; - u8 field_CEE[POKEMON_NAME_LENGTH + 1]; - u8 cursorMonNick[36]; + u8 cursorMonMarkings; + u8 cursorMonLevel; + bool8 cursorMonIsEgg; + u8 cursorMonNick[POKEMON_NAME_LENGTH + 1]; + u8 cursorMonNickText[36]; u8 cursorMonSpeciesName[36]; u8 cursorMonGenderLvlText[36]; u8 cursorMonItemName[36]; @@ -187,7 +194,7 @@ struct PokemonStorageSystemData u16 *field_DA0; struct PokemonMarkMenu field_DA4; struct UnkPSSStruct_2002370 field_1E5C; - struct Pokemon field_20A4; + struct Pokemon movingMon; struct Pokemon field_2108; s8 field_216C; u8 field_216D; @@ -207,7 +214,11 @@ struct PokemonStorageSystemData u8 field_2186; u8 field_2187; u8 field_2188; - struct BoxPokemon *field_218C; + union + { + struct Pokemon *mon; + struct BoxPokemon *box; + } field_218C; u8 field_2190[40]; u8 field_21B8[40]; u8 field_21E0[POKEMON_NAME_LENGTH + 1]; @@ -217,7 +228,7 @@ struct PokemonStorageSystemData u8 field_21FC; u8 field_21FD; u8 field_21FE; - u8 field_21FF; + u8 inBoxMovingMode; u8 field_2200; u8 field_2201[51]; u16 movingItem; @@ -242,7 +253,7 @@ extern struct PokemonStorageSystemData *gUnknown_02039D08; u8* GetBoxNamePtr(u8 boxNumber); struct BoxPokemon *GetBoxedMonPtr(u8, u8); void SetBoxMonNickFromAnyBox(u8, u8, u8 *); -void CompactPartySlots(void); +s16 CompactPartySlots(void); u32 GetBoxMonDataAt(u8 boxId, u8 monPosition, u32 request); bool8 CheckFreePokemonStorageSpace(void); u8 StorageGetCurrentBox(void); -- cgit v1.2.3 From 9ffd0c73829e5a0aded23518887007da9c3fc44c Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Mon, 17 Dec 2018 23:00:08 +0100 Subject: 3.5 asm left --- include/pokemon_storage_system.h | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'include/pokemon_storage_system.h') diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h index 530fb7042..9b880b2c9 100644 --- a/include/pokemon_storage_system.h +++ b/include/pokemon_storage_system.h @@ -64,6 +64,16 @@ struct UnkPSSStruct_2002370 u8 unk_0246; }; +struct UnkStorageStruct +{ + struct Sprite *sprite; + u8 *tiles; + u16 palIndex; + u8 unk8; + u8 unk9; + u8 unk10; +}; + struct PokemonStorageSystemData { u8 state; @@ -229,8 +239,8 @@ struct PokemonStorageSystemData u8 field_21FD; u8 field_21FE; u8 inBoxMovingMode; - u8 field_2200; - u8 field_2201[51]; + u16 field_2200; + struct UnkStorageStruct field_2204[3]; u16 movingItem; u8 field_2236; u8 field_2237; -- cgit v1.2.3 From 128239d65edefc9d290a642c269adcc5b859a6f4 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Wed, 19 Dec 2018 22:47:27 +0100 Subject: Almost there --- include/pokemon_storage_system.h | 305 +++++++-------------------------------- 1 file changed, 49 insertions(+), 256 deletions(-) (limited to 'include/pokemon_storage_system.h') diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h index 9b880b2c9..4f882ddaf 100644 --- a/include/pokemon_storage_system.h +++ b/include/pokemon_storage_system.h @@ -6,267 +6,60 @@ #define IN_BOX_COLUMS 5 #define IN_BOX_COUNT (IN_BOX_ROWS * IN_BOX_COLUMS) -#include "pc_screen_effect.h" -#include "mon_markings.h" - -struct PokemonStorageSystemFunc -{ - u8 (*func)(void); - s8 unk4; -}; - -struct StorageAction -{ - const u8 *text; - u8 format; -}; - -struct StorageMenu +struct PokemonStorage { - const u8 *text; - int textId; + /*0x0000*/ u8 currentBox; + /*0x0001*/ struct BoxPokemon boxes[TOTAL_BOXES_COUNT][IN_BOX_COUNT]; + /*0x8344*/ u8 boxNames[TOTAL_BOXES_COUNT][9]; + /*0x83C2*/ u8 boxWallpapers[TOTAL_BOXES_COUNT]; }; -struct PSS_MenuStringPtrs -{ - const u8 *text; - const u8 *desc; -}; +extern struct PokemonStorage* gPokemonStoragePtr; -struct UnkStruct_2000028 -{ - const u8 *unk_00; - u8 *unk_04; - u16 unk_08; - u16 unk_0a; - void (*unk_0c)(struct UnkStruct_2000028 *data); -}; - -struct UnkStruct_2000020 -{ - struct UnkStruct_2000028 *unk_00; - u8 unk_04; - u8 unk_05; -}; - -struct UnkPSSStruct_2002370 -{ - struct Sprite *unk_0000; - struct Sprite *unk_0004[4]; - u32 unk_0014[3]; - struct Sprite *unk_0020[2]; - u8 filler_0028[0x214]; - u32 unk_023c; - u16 unk_0240; - u16 unk_0242; - u8 curBox; - u8 unk_0245; - u8 unk_0246; -}; - -struct UnkStorageStruct -{ - struct Sprite *sprite; - u8 *tiles; - u16 palIndex; - u8 unk8; - u8 unk9; - u8 unk10; -}; - -struct PokemonStorageSystemData -{ - u8 state; - u8 boxOption; - u8 screenChangeType; - bool8 isReshowingPSS; - u8 taskId; - struct UnkStruct_2000020 unk_0020; - struct UnkStruct_2000028 unk_0028[8]; - u16 field_90[16]; - u16 field_B0[528 / 2]; - u16 field_2C0; - u16 field_2C2; - u8 field_2C4; - u8 field_2C5; - u8 showPartyMenuState; - u8 unk_02C7; - u8 unk_02C8; - bool8 unk_02C9; - s16 newCurrBoxId; - u16 bg2_X; - s16 field_2CE; - u16 field_2D0; - u8 field_2D2; - u8 field_2D3; - u8 field_2D4; - u8 field_2D5; - u16 field_2D6; - s16 field_2D8; - u16 field_2DA; - u16 field_2DC; - u16 field_2DE; - u16 field_2E0; - u8 field_2E2; - u8 field_2E3; - u8 field_2E4[20]; - u8 field_2F8[1024]; - u8 field_6F8; - u8 field_6F9; - u8 field_6FA; - s8 field_6FB; - u16 field_6FC[16]; - u16 field_71C; - u16 field_71E; - struct Sprite *field_720[2]; - struct Sprite *field_728[2]; - struct Sprite *field_730[2]; - u32 field_738; - u8 field_73C[80]; - u16 field_78C; - s16 wallpaperSetId; - s16 wallpaperId; - u16 field_792[360]; - u8 wallpaperChangeState; - u8 field_A63; - u8 field_A64; - s8 field_A65; - u8 field_A66; - u8 field_A67; - u8 *wallpaperTiles; - struct Sprite *movingMonSprite; - struct Sprite *partySprites[PARTY_SIZE]; - struct Sprite *boxMonsSprites[IN_BOX_COUNT]; - struct Sprite **field_B00; - struct Sprite **field_B04; - u16 field_B08[40]; - u16 field_B58[40]; - u16 boxSpecies[IN_BOX_COUNT]; - u32 boxPersonalities[IN_BOX_COUNT]; - u8 field_C5C; - u8 field_C5D; - u8 field_C5E; - u8 field_C5F; - u16 field_C60; - s16 field_C62; - s16 field_C64; - u16 field_C66; - u8 field_C68; - s8 field_C69; - u8 field_C6A; - u8 field_C6B; - struct WindowTemplate menuWindow; - struct StorageMenu menuItems[7]; - u8 menuItemsCount; - u8 menuWidth; - u8 field_CAE; - u8 field_CAF; - u16 field_CB0; - u8 field_CB2; - u8 field_CB3; - struct Sprite *field_CB4; - struct Sprite *field_CB8; - s32 field_CBC; - s32 field_CC0; - u32 field_CC4; - u32 field_CC8; - s16 field_CCC; - s16 field_CCE; - u16 field_CD0; - s8 field_CD2; - s8 field_CD3; - u8 field_CD4; - u8 field_CD5; - u8 field_CD6; - u8 field_CD7; - u8 field_CD8[2]; - u8 field_CDA; - u8 field_CDB; - const u32 *cursorMonPalette; - u32 cursorMonPersonality; - u16 cursorMonSpecies; - u16 cursorMonItem; - u16 field_CE8; - u8 field_CEA; - u8 cursorMonMarkings; - u8 cursorMonLevel; - bool8 cursorMonIsEgg; - u8 cursorMonNick[POKEMON_NAME_LENGTH + 1]; - u8 cursorMonNickText[36]; - u8 cursorMonSpeciesName[36]; - u8 cursorMonGenderLvlText[36]; - u8 cursorMonItemName[36]; - bool8 (*monPlaceChangeFunc)(void); - u8 monPlaceChangeState; - u8 field_D91; - struct Sprite *field_D94; - struct Sprite *field_D98[2]; - u16 *field_DA0; - struct PokemonMarkMenu field_DA4; - struct UnkPSSStruct_2002370 field_1E5C; - struct Pokemon movingMon; - struct Pokemon field_2108; - s8 field_216C; - u8 field_216D; - s8 field_216E; - s8 field_216F; - s8 field_2170; - s8 field_2171; - u16 field_2172; - u16 field_2174; - u16 field_2176[5]; - u8 field_2180; - u8 field_2181; - u8 field_2182; - u8 field_2183; - u8 field_2184; - u8 field_2185; - u8 field_2186; - u8 field_2187; - u8 field_2188; - union - { - struct Pokemon *mon; - struct BoxPokemon *box; - } field_218C; - u8 field_2190[40]; - u8 field_21B8[40]; - u8 field_21E0[POKEMON_NAME_LENGTH + 1]; - u8 field_21EB[15]; // TODO: ITEM NAME LENGTH + 1 - u8 field_21FA; - u8 field_21FB; - u8 field_21FC; - u8 field_21FD; - u8 field_21FE; - u8 inBoxMovingMode; - u16 field_2200; - struct UnkStorageStruct field_2204[3]; - u16 movingItem; - u8 field_2236; - u8 field_2237; - u8 field_2238; - u8 field_2239; - u16 field_223A; - u16 *field_223C; - struct Sprite *cursorMonSprite; - u16 field_2244[16]; - u8 field_2264[96]; - u8 field_22C4[0x800]; - u8 field_2AC4[8192]; - u8 field_4AC4[0x1000]; - u8 field_5AC4[0x800]; -}; - -extern struct UnkPSSStruct_2002370 *gUnknown_02039D04; -extern struct PokemonStorageSystemData *gUnknown_02039D08; - -u8* GetBoxNamePtr(u8 boxNumber); -struct BoxPokemon *GetBoxedMonPtr(u8, u8); -void SetBoxMonNickFromAnyBox(u8, u8, u8 *); +u8 CountMonsInBox(u8 boxId); +s16 GetFirstFreeBoxSpot(u8 boxId); +u8 CountPartyAliveNonEggMonsExcept(u8 slotToIgnore); +u16 CountPartyAliveNonEggMons_IgnoreVar0x8004Slot(void); +u8 CountPartyMons(void); +u8 *StringCopyAndFillWithSpaces(u8 *dst, const u8 *src, u16 n); +void ShowPokemonStorageSystemPC(void); +void ResetPokemonStorageSystem(void); s16 CompactPartySlots(void); -u32 GetBoxMonDataAt(u8 boxId, u8 monPosition, u32 request); -bool8 CheckFreePokemonStorageSpace(void); u8 StorageGetCurrentBox(void); -u8 sub_80D214C(struct BoxPokemon *a, u8 b, u8 c, u8 d); +u32 GetBoxMonDataAt(u8 boxId, u8 boxPosition, s32 request); +void SetBoxMonDataAt(u8 boxId, u8 boxPosition, s32 request, const void *value); +u32 GetCurrentBoxMonData(u8 boxPosition, s32 request); +void SetCurrentBoxMonData(u8 boxPosition, s32 request, const void *value); +void GetBoxMonNickAt(u8 boxId, u8 boxPosition, u8 *dst); +u32 GetBoxMonLevelAt(u8 boxId, u8 boxPosition); +void SetBoxMonNickAt(u8 boxId, u8 boxPosition, const u8 *nick); +u32 GetAndCopyBoxMonDataAt(u8 boxId, u8 boxPosition, s32 request, void *dst); +void SetBoxMonAt(u8 boxId, u8 boxPosition, struct BoxPokemon *src); +void CopyBoxMonAt(u8 boxId, u8 boxPosition, struct BoxPokemon *dst); +void CreateBoxMonAt(u8 boxId, u8 boxPosition, u16 species, u8 level, u8 fixedIV, u8 hasFixedPersonality, u32 personality, u8 otIDType, u32 otID); +void ZeroBoxMonAt(u8 boxId, u8 boxPosition); +void BoxMonAtToMon(u8 boxId, u8 boxPosition, struct Pokemon *dst); +struct BoxPokemon *GetBoxedMonPtr(u8 boxId, u8 boxPosition); +u8 *GetBoxNamePtr(u8 boxId); +u8 GetBoxWallpaper(u8 boxId); +void SetBoxWallpaper(u8 boxId, u8 wallpaperId); +s16 sub_80D214C(struct BoxPokemon *boxMons, s8 currIndex, u8 maxIndex, u8 arg3); +bool8 CheckFreePokemonStorageSpace(void); +bool32 CheckBoxedMonSanity(u32 boxId, u32 boxPosition); +u32 CountStorageNonEggMons(void); +u32 CountAllStorageMons(void); +bool32 AnyStorageMonWithMove(u16 moveId); +void ResetWaldaWallpaper(void); +void SetWaldaWallpaperLockedOrUnlocked(bool32 unlocked); +bool32 IsWaldaWallpaperUnlocked(void); +u32 GetWaldaWallpaperPatternId(void); +void SetWaldaWallpaperPatternId(u8 id); +u32 GetWaldaWallpaperIconId(void); +void SetWaldaWallpaperIconId(u8 id); +u16 *GetWaldaWallpaperColorsPtr(void); +void SetWaldaWallpaperColors(u16 color1, u16 color2); +u8 *GetWaldaPhrasePtr(void); +void SetWaldaPhrase(const u8 *src); +bool32 IsWaldaPhraseEmpty(void); #endif // GUARD_POKEMON_STORAGE_SYSTEM_H -- cgit v1.2.3 From 7dcb614cca6d61c5e51960826dddc004858ed9f1 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Thu, 20 Dec 2018 22:14:36 +0100 Subject: PSS is done --- include/pokemon_storage_system.h | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'include/pokemon_storage_system.h') diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h index 4f882ddaf..afc0516b6 100644 --- a/include/pokemon_storage_system.h +++ b/include/pokemon_storage_system.h @@ -6,6 +6,15 @@ #define IN_BOX_COLUMS 5 #define IN_BOX_COUNT (IN_BOX_ROWS * IN_BOX_COLUMS) +/* + ROWS +COLUMNS 0 1 2 3 4 5 + 6 7 8 9 10 11 + 12 13 14 15 16 17 + 18 19 20 21 22 23 + 24 25 26 27 28 29 +*/ + struct PokemonStorage { /*0x0000*/ u8 currentBox; -- cgit v1.2.3 From c805bab48324f946845e1f81002035e4bdb07e62 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 22 Dec 2018 23:00:22 +0100 Subject: Storage - review changes --- include/pokemon_storage_system.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'include/pokemon_storage_system.h') diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h index 4b84856bb..a85ee5ff4 100644 --- a/include/pokemon_storage_system.h +++ b/include/pokemon_storage_system.h @@ -3,8 +3,8 @@ #define TOTAL_BOXES_COUNT 14 #define IN_BOX_ROWS 6 -#define IN_BOX_COLUMS 5 -#define IN_BOX_COUNT (IN_BOX_ROWS * IN_BOX_COLUMS) +#define IN_BOX_COLUMNS 5 +#define IN_BOX_COUNT (IN_BOX_ROWS * IN_BOX_COLUMNS) /* ROWS @@ -23,7 +23,7 @@ struct PokemonStorage /*0x83C2*/ u8 boxWallpapers[TOTAL_BOXES_COUNT]; }; -extern struct PokemonStorage* gPokemonStoragePtr; +extern struct PokemonStorage *gPokemonStoragePtr; u8 CountMonsInBox(u8 boxId); s16 GetFirstFreeBoxSpot(u8 boxId); @@ -54,7 +54,7 @@ u8 GetBoxWallpaper(u8 boxId); void SetBoxWallpaper(u8 boxId, u8 wallpaperId); s16 sub_80D214C(struct BoxPokemon *boxMons, u8 currIndex, u8 maxIndex, u8 arg3); bool8 CheckFreePokemonStorageSpace(void); -bool32 CheckBoxedMonSanity(u32 boxId, u32 boxPosition); +bool32 CheckBoxMonSanityAt(u32 boxId, u32 boxPosition); u32 CountStorageNonEggMons(void); u32 CountAllStorageMons(void); bool32 AnyStorageMonWithMove(u16 moveId); -- cgit v1.2.3