diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/credits.h | 11 | ||||
-rw-r--r-- | include/decoration.h | 6 | ||||
-rwxr-xr-x | include/ewram.h | 6 | ||||
-rw-r--r-- | include/gba/macro.h | 2 | ||||
-rw-r--r-- | include/graphics.h | 9 | ||||
-rw-r--r-- | include/hof_pc.h | 12 | ||||
-rw-r--r-- | include/main.h | 2 | ||||
-rw-r--r-- | include/mon_markings.h | 31 | ||||
-rw-r--r-- | include/pc_screen_effect.h | 21 | ||||
-rw-r--r-- | include/pokemon.h | 10 | ||||
-rw-r--r-- | include/pokemon_icon.h | 4 | ||||
-rw-r--r-- | include/pokemon_storage_system.h | 228 | ||||
-rw-r--r-- | include/sprite.h | 1 | ||||
-rw-r--r-- | include/text.h | 2 |
14 files changed, 328 insertions, 17 deletions
diff --git a/include/credits.h b/include/credits.h new file mode 100644 index 000000000..dabe24048 --- /dev/null +++ b/include/credits.h @@ -0,0 +1,11 @@ +#ifndef GUARD_credits_H +#define GUARD_credits_H + +// Exported type declarations + +// Exported RAM declarations + +// Exported ROM declarations +void sub_81439D0(void); + +#endif //GUARD_credits_H diff --git a/include/decoration.h b/include/decoration.h index 972e82faf..4ac26998e 100644 --- a/include/decoration.h +++ b/include/decoration.h @@ -127,17 +127,12 @@ extern u8 gUnknown_020388F5; extern u8 gUnknown_020388F6; extern u8 gUnknown_020388D6[16]; extern u8 gUnknown_020388E6[12]; -extern u16 gSpecialVar_0x8004; -extern u16 gSpecialVar_0x8005; -extern u16 gSpecialVar_0x8006; -extern u16 gSpecialVar_0x8007; extern u16 gUnknown_020391A4; extern u16 gUnknown_020391A6; extern u8 gUnknown_020391A8; extern u8 gUnknown_020391A9; extern u8 gUnknown_020391AA; extern u8 gUnknown_02039234; -extern void (*gFieldCallback)(void); extern const struct YesNoFuncTable gUnknown_083EC96C[]; extern struct UnkStruct_020391B4 gUnknown_020391B4[16]; @@ -161,7 +156,6 @@ extern const struct YesNoFuncTable gUnknown_083ECAA0; extern u8 sub_8134194(u8); // src/decoration_inventory extern bool8 sub_81341D4(void); // src/decoration_inventory extern void sub_8134104(u8); // src/decoration_inventory -extern bool8 sub_807D770(void); extern void sub_8109DAC(u8); // src/trader extern void ReshowPlayerPC(u8); // src/player_pc void Task_SecretBasePC_Decoration(u8); diff --git a/include/ewram.h b/include/ewram.h index b07820090..3f627878f 100755 --- a/include/ewram.h +++ b/include/ewram.h @@ -28,6 +28,7 @@ extern u8 gSharedMem[]; #define ewram0_9(i) (u8 *)(ewram_addr + (i * 0x20)) #define ewram0_10 (*(struct UnknownPokenav0*)(gSharedMem + 0)) #define ewram0_11 (*(struct UnknownPokenav0_1*)(gSharedMem + 0)) +#define ePokemonStorageSystem (*(struct PokemonStorageSystemData *)(gSharedMem + 0)) #define ewram4 (*(struct UnknownStruct8 *)(gSharedMem + 0x4)) #define ewram520 ((struct UnknownStruct7 *)(gSharedMem + 0x00520)) #define ewram520_2 (u8 *)(ewram_addr + 0x520) @@ -38,10 +39,6 @@ extern u8 gSharedMem[]; #define ewram01000 (*(struct Unk2001000 *)(gSharedMem + 0x1000)) #define ewramBerryPicTemp (gSharedMem + 0x1000) #define EWRAM_1000 (*(struct Struct2001000 *)(gSharedMem + 0x1000)) -#define gUnk20011fa (u8 *)(&gSharedMem[0x11FA]) -#define gUnk2002694 (u8 *)(&gSharedMem[0x2694]) -#define gUnk20026A6 (u8 *)(&gSharedMem[0x26A6]) -#define gUnk20026e4 (u8 *)(&gSharedMem[0x26E4]) #define ewram4000 (gSharedMem + 0x4000) #define gUnknown_02007000 (*(ewramStruct_02007000 *)(gSharedMem + 0x7000)) #define ARRAY_2007800 ((struct EasyChatPair *)(gSharedMem + 0x7800)) @@ -244,6 +241,7 @@ extern u8 gSharedMem[]; #define ewram1C000 (*(struct Unk201C000 *)(gSharedMem + 0x1C000)) #define ewram1c000 (*(struct Unk201C000 *)(gSharedMem + 0x1C000)) // FIXME, names too similar #define eHallOfFameMons1 (struct HallofFameMons*)(&gSharedMem[0x1C000]) +#define eHOFPCScreenEffect (*(struct PCScreenEffectStruct *)(gSharedMem + 0x1c000)) #define EWRAM_1C800 (*(struct Unk201C800 *)(gSharedMem + 0x1C800)) #define ewram1D000 ((struct Pokemon *)(gSharedMem + 0x1D000)) #define ewram1D000_2 ((u16 *)(gSharedMem + 0x1D000)) diff --git a/include/gba/macro.h b/include/gba/macro.h index dcad009e1..59b22758e 100644 --- a/include/gba/macro.h +++ b/include/gba/macro.h @@ -105,7 +105,7 @@ #define DmaClearLarge(dmaNum, dest, size, block, bit) \ { \ - const void *_dest = dest; \ + void *_dest = dest; \ u32 _size = size; \ while (1) \ { \ diff --git a/include/graphics.h b/include/graphics.h index 00a210350..a8ac2783d 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -2743,4 +2743,13 @@ extern const u16 gCableCar_Pal[]; extern const u16 gCableCarBG_Pal[]; extern const u8 gCableCarBG_Gfx[]; +extern const u8 gPSSMenuHeader_Gfx[]; +extern const u8 gPSSMenuHeader_Tilemap[]; +extern const u16 gPSSMenu1_Pal[]; +extern const u16 gPSSMenu2_Pal[]; +extern const u8 gPSSMenuMisc_Gfx[]; +extern const u8 gPSSMenuMisc_Tilemap[]; +extern const u16 gPSSMenu3_Pal[]; +extern const u16 gPSSMenu4_Pal[]; + #endif // GUARD_GRAPHICS_H diff --git a/include/hof_pc.h b/include/hof_pc.h new file mode 100644 index 000000000..c6df4e9a1 --- /dev/null +++ b/include/hof_pc.h @@ -0,0 +1,12 @@ +#ifndef GUARD_hof_pc_H +#define GUARD_hof_pc_H + +// Exported type declarations + +// Exported RAM declarations + +// Exported ROM declarations + +void ReturnFromHallOfFamePC(void); + +#endif //GUARD_hof_pc_H diff --git a/include/main.h b/include/main.h index ff9bb89c7..78403225e 100644 --- a/include/main.h +++ b/include/main.h @@ -51,6 +51,8 @@ extern bool8 gLinkVSyncDisabled; extern const u8 gGameVersion; extern const u8 gGameLanguage; +extern u16 gKeyRepeatStartDelay; + void AgbMain(void); void SetMainCallback2(MainCallback callback); void InitKeys(void); diff --git a/include/mon_markings.h b/include/mon_markings.h new file mode 100644 index 000000000..d06264865 --- /dev/null +++ b/include/mon_markings.h @@ -0,0 +1,31 @@ +#ifndef POKERUBY_MON_MARKINGS_H +#define POKERUBY_MON_MARKINGS_H + +struct PokemonMarkMenu +{ + /*0x0000*/ u16 baseTileTag; + /*0x0002*/ u16 basePaletteTag; + /*0x0004*/ u8 markings; // bit flags + /*0x0005*/ s8 cursorPos; + /*0x0006*/ bool8 markingsArray[4]; + /*0x000A*/ u8 cursorBaseY; + /*0x000B*/ bool8 spriteSheetLoadRequired; + /*0x000C*/ struct Sprite *menuWindowSprites[2]; // upper and lower halves of menu window + /*0x0014*/ struct Sprite *menuMarkingSprites[4]; + /*0x0024*/ struct Sprite *menuTextSprite; + /*0x0028*/ const u8 *frameTiles; + /*0x002C*/ const u16 *framePalette; + /*0x0030*/ u8 menuWindowSpriteTiles[0x1000]; + /*0x1030*/ u8 filler1030[0x80]; + /*0x10B0*/ u8 tileLoadState; +}; // 10b4 + +void sub_80F727C(struct PokemonMarkMenu *ptr); +void sub_80F7404(void); +void sub_80F7418(u8 markings, s16 x, s16 y); +void sub_80F7470(void); +bool8 sub_80F7500(void); +struct Sprite *sub_80F7940(u16 tileTag, u16 paletteTag, const u16 *palette); +void sub_80F7A10(u8 markings, void *dest); + +#endif //POKERUBY_MON_MARKINGS_H diff --git a/include/pc_screen_effect.h b/include/pc_screen_effect.h new file mode 100644 index 000000000..36661bc3b --- /dev/null +++ b/include/pc_screen_effect.h @@ -0,0 +1,21 @@ +#ifndef POKERUBY_PC_SCREEN_EFFECT_H +#define POKERUBY_PC_SCREEN_EFFECT_H + +struct PCScreenEffectStruct +{ + /*0x00*/ u16 tileTag; + /*0x02*/ u16 paletteTag; + /*0x04*/ u16 unk04; + /*0x06*/ u16 unk06; + /*0x08*/ u16 unk08; + /*0x0A*/ u16 unk0A; + /*0x0C*/ s16 unk0C; + /*0x10*/ u32 selectedPalettes; +}; + +void sub_80C5CD4(struct PCScreenEffectStruct *unkStruct); +bool8 sub_80C5DCC(void); +void sub_80C5E38(struct PCScreenEffectStruct *unkStruct); +bool8 sub_80C5F98(void); + +#endif //POKERUBY_PC_SCREEN_EFFECT_H diff --git a/include/pokemon.h b/include/pokemon.h index 71b35e65c..af65599f8 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -428,10 +428,10 @@ struct BattleMove struct PokemonStorage { - /*0x00*/ u8 currentBox; - /*0x01*/ struct BoxPokemon boxes[14][30]; - u8 boxNames[14][9]; - u8 unkArray[14]; + /*0x0000*/ u8 currentBox; + /*0x0004*/ struct BoxPokemon boxes[14][30]; + /*0x8344*/ u8 boxNames[14][9]; + /*0x83c2*/ u8 wallpaper[14]; }; struct SpindaSpot @@ -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_icon.h b/include/pokemon_icon.h index 7e26c1c9b..a1a965d81 100644 --- a/include/pokemon_icon.h +++ b/include/pokemon_icon.h @@ -1,6 +1,9 @@ #ifndef GUARD_POKEMON_ICON_H #define GUARD_POKEMON_ICON_H +extern const u8 * const gMonIconTable[]; +extern const u8 gMonIconPaletteIndices[]; + u8 CreateMonIcon(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority, u32 personality); u8 UpdateMonIconFrame(struct Sprite *sprite); u8 sub_809D3A4(u16 arg0, void (*)(struct Sprite *), int, u8 arg3, u32 arg4); @@ -12,5 +15,6 @@ void sub_809D580(u16); void sub_809D608(u16); void sub_809D62C(struct Sprite *sprite); void sub_809D824(struct Sprite *sprite, u8 animNum); +u16 mon_icon_convert_unown_species_id(u16 species, u32 personality); #endif // GUARD_POKEMON_ICON_H diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h index 9fe3436ef..129202934 100644 --- a/include/pokemon_storage_system.h +++ b/include/pokemon_storage_system.h @@ -1,8 +1,234 @@ #ifndef GUARD_POKEMON_STORAGE_SYSTEM_H #define GUARD_POKEMON_STORAGE_SYSTEM_H +#include "pc_screen_effect.h" +#include "mon_markings.h" + +enum { + PC_TEXT_EXIT_BOX, + PC_TEXT_WHAT_YOU_DO, + PC_TEXT_PICK_A_THEME, + PC_TEXT_PICK_A_WALLPAPER, + PC_TEXT_IS_SELECTED, + PC_TEXT_JUMP_TO_WHICH_BOX, + PC_TEXT_DEPOSIT_IN_WHICH_BOX, + PC_TEXT_WAS_DEPOSITED, + PC_TEXT_BOX_IS_FULL, + PC_TEXT_RELEASE_POKE, + PC_TEXT_WAS_RELEASED, + PC_TEXT_BYE_BYE, + PC_TEXT_MARK_POKE, + PC_TEXT_LAST_POKE, + PC_TEXT_PARTY_FULL, + PC_TEXT_HOLDING_POKE, + PC_TEXT_WHICH_ONE_WILL_TAKE, + PC_TEXT_CANT_RELEASE_EGG, + PC_TEXT_CONTINUE_BOX, + PC_TEXT_CAME_BACK, + PC_TEXT_WORRIED, + PC_TEXT_SURPRISE, + PC_TEXT_PLEASE_REMOVE_MAIL +}; + +enum { + PC_TEXT_FMT_NORMAL, + PC_TEXT_FMT_MON_NAME, + PC_TEXT_FMT_UNK_02, + PC_TEXT_FMT_UNK_03, + PC_TEXT_FMT_MON_NAME_2, + PC_TEXT_FMT_UNK_05, + PC_TEXT_FMT_MON_NAME_AFTER_EXCL_MARK +}; + +struct StorageAction { + const u8 *text; + u8 format; +}; + +struct PSS_MenuStringPtrs { + const u8 *text; + const u8 *desc; +}; + +struct UnkStruct_2000028 { + void *unk_00; + void *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]; + u8 curBox; + u8 unk_023d; + u8 unk_023e; + u16 unk_0240; + u16 unk_0242; +}; // 0244 + +struct PokemonStorageSystemData { + void (*unk_0000)(void); + u8 unk_0004; + u8 unk_0005; + u8 unk_0006; + u8 unk_0007; + u16 unk_0008; + u16 unk_000a; + struct PCScreenEffectStruct unk_000c; + struct UnkStruct_2000020 unk_0020; + struct UnkStruct_2000028 unk_0028[8]; + u16 unk_00a8[0x400]; + u16 unk_08a8; + u16 unk_08aa; + u8 unk_08ac; + u8 unk_08ad; + u8 unk_08ae; + u8 unk_08af; + u8 unk_08b0; + bool8 unk_08b1; + s16 unk_08b2; + u16 unk_08b4; + u8 filler_08b6[0x4a6]; + u16 unk_0d5c; + s16 unk_0d5e; + s16 unk_0d60; + u8 filler_0d62[0x2d2]; + struct Sprite *unk_1034; + struct Sprite *unk_1038[6]; // party + struct Sprite *unk_1050[30]; // box + struct Sprite **unk_10c8; + struct Sprite **unk_10cc; + u16 unk_10d0[40]; + u16 unk_1120[40]; + u8 unk_1170; + u8 unk_1171; + u16 unk_1172; + s16 unk_1174; + s16 unk_1176; + u16 unk_1178; + u8 unk_117a; + s8 unk_117b; + u8 unk_117c; + u8 unk_117d; + u8 filler_117e[0x42]; + struct Sprite *unk_11c0; + u8 filler_11c4[0x24]; + u8 *unk_11e8; + u32 unk_11ec; + u16 unk_11f0; + u16 unk_11f2; + u8 filler_11f4[2]; + u8 unk_11f6; + u8 unk_11f7; + u8 unk_11f8; + u8 unk_11f9; + u8 unk_11fa[0x15]; + u8 unk_120f[0x25]; + u8 unk_1234[0x25]; + u8 unk_1259[0x21]; + u8 unk_127a[0x32]; + struct Sprite *unk_12ac; + struct Sprite *unk_12b0[2]; + u16 *unk_12b8; + struct PokemonMarkMenu unk_12bc; + struct UnkPSSStruct_2002370 unk_2370; + struct Pokemon unk_25b4; + u8 filler_2618[0x74]; + u8 unk_268c; + u8 unk_268d; + u8 unk_268e; + struct Pokemon *unk_2690; + u8 unk_2694[18]; + u8 unk_26a6[62]; + u8 unk_26e4[0x16]; + u16 unk_26fa; + u16 *unk_26fc; + struct Sprite *unk_2700; + u16 unk_2704[0x10]; + u8 filler_2724[0x60]; + u8 unk_2784[0x800]; + u8 filler_2f84[0x1800]; + u8 unk_4784[0x800]; +}; + +extern u16 gUnknown_02039760[0x600]; +extern struct UnkPSSStruct_2002370 *gUnknown_02038478; +extern struct PokemonStorageSystemData *const gPokemonStorageSystemPtr; +extern u8 *const gUnknown_083B6DB8; + +u8 CountPokemonInBoxN(u8 boxId); +void sub_8096264(struct UnkPSSStruct_2002370 *a0, u16 tileTag, u16 palTag, u8 a3); +void sub_809634C(u8 curBox); +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 ResetPSSMonIconSprites(void); +void sub_8099200(bool8 a0); +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_2000028 *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/include/sprite.h b/include/sprite.h index b72c09989..3ad418356 100644 --- a/include/sprite.h +++ b/include/sprite.h @@ -235,6 +235,7 @@ extern const union AffineAnimCmd *const gDummySpriteAffineAnimTable[]; extern s16 gSpriteCoordOffsetX; extern s16 gSpriteCoordOffsetY; extern u8 gReservedSpritePaletteCount; +extern u16 gReservedSpriteTileCount; extern u8 gOamLimit; diff --git a/include/text.h b/include/text.h index f0d039d45..71afd1d00 100644 --- a/include/text.h +++ b/include/text.h @@ -253,4 +253,6 @@ void Text_StripExtCtrlCodes(u8 *str); s32 StringCompareWithoutExtCtrlCodes(const u8 *str1, const u8 *str2); u8 sub_8004FD0(struct Window *win, u8 *dest, const u8 *src, u16 tileDataStartOffset, u8 left, u16 top, u8 width, u32 a8); +extern const u16 gUnknownPalette_81E6692[]; + #endif // GUARD_TEXT_H |