summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorSlawter666 <38655737+Slawter666@users.noreply.github.com>2018-05-05 18:50:26 +0100
committerSlawter666 <38655737+Slawter666@users.noreply.github.com>2018-05-05 18:50:26 +0100
commit22ec43a6eddfc63bbb1f9a883c7b1cdda05f0d64 (patch)
treeb5d33877dbe736022815a40c6ff2af3977e36d77 /include
parent39fd42faeadeb73bf57018f69a6d69463635847a (diff)
parent83ea8d0cd9f8141181d09718c79b8916df945752 (diff)
resolve merge conflicts
Diffstat (limited to 'include')
-rw-r--r--include/battle_records.h12
-rw-r--r--include/bg.h2
-rw-r--r--include/constants/decorations.h1
-rw-r--r--include/constants/items.h40
-rw-r--r--include/decoration.h3
-rw-r--r--include/global.h95
-rw-r--r--include/item.h63
-rw-r--r--include/item_menu.h2
-rw-r--r--include/load_save.h26
-rw-r--r--include/palette.h2
-rw-r--r--include/script_menu.h1
-rw-r--r--include/secret_base.h1
-rw-r--r--include/strings.h21
-rw-r--r--include/trainer_card.h35
14 files changed, 193 insertions, 111 deletions
diff --git a/include/battle_records.h b/include/battle_records.h
new file mode 100644
index 000000000..88ff6adc9
--- /dev/null
+++ b/include/battle_records.h
@@ -0,0 +1,12 @@
+#ifndef GUARD_BATTLE_RECORDS_H
+#define GUARD_BATTLE_RECORDS_H
+
+extern u8 gRecordsWindowId;
+
+void ClearPlayerLinkBattleRecords(void);
+void UpdatePlayerLinkBattleRecords(s32 battlerId);
+void ShowLinkBattleRecords(void);
+void RemoveRecordsWindow(void);
+void ShowTrainerHillRecords(void);
+
+#endif // GUARD_BATTLE_RECORDS_H
diff --git a/include/bg.h b/include/bg.h
index de3897fa4..ea84c1573 100644
--- a/include/bg.h
+++ b/include/bg.h
@@ -68,7 +68,7 @@ void UnsetBgTilemapBuffer(u8 bg);
void* GetBgTilemapBuffer(u8 bg);
void CopyToBgTilemapBuffer(u8 bg, const void *src, u16 mode, u16 destOffset);
void CopyBgTilemapBufferToVram(u8 bg);
-void CopyToBgTilemapBufferRect(u8 bg, void* src, u8 destX, u8 destY, u8 width, u8 height);
+void CopyToBgTilemapBufferRect(u8 bg, const void* src, u8 destX, u8 destY, u8 width, u8 height);
void CopyToBgTilemapBufferRect_ChangePalette(u8 bg, void *src, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette);
void CopyRectToBgTilemapBufferRect(u8 bg, const void *src, u8 srcX, u8 srcY, u8 srcWidth, u8 srcHeight, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette1, u16 tileOffset, u16 palette2);
void FillBgTilemapBufferRect_Palette0(u8 bg, u16 tileNum, u8 x, u8 y, u8 width, u8 height);
diff --git a/include/constants/decorations.h b/include/constants/decorations.h
index 2e3558721..b9f626d24 100644
--- a/include/constants/decorations.h
+++ b/include/constants/decorations.h
@@ -122,5 +122,6 @@
#define DECOR_REGIROCK_DOLL 118
#define DECOR_REGICE_DOLL 119
#define DECOR_REGISTEEL_DOLL 120
+#define NUM_DECORATIONS DECOR_REGISTEEL_DOLL
#endif // GUARD_CONSTANTS_DECORATIONS_H
diff --git a/include/constants/items.h b/include/constants/items.h
index a1269414f..4ca5cb7df 100644
--- a/include/constants/items.h
+++ b/include/constants/items.h
@@ -1,12 +1,6 @@
#ifndef GUARD_CONSTANTS_ITEMS_H
#define GUARD_CONSTANTS_ITEMS_H
-#define POCKET_ITEMS 1
-#define POCKET_POKE_BALLS 2
-#define POCKET_TM_HM 3
-#define POCKET_BERRIES 4
-#define POCKET_KEY_ITEMS 5
-
#define ITEM_NONE 0
// Balls
@@ -23,7 +17,7 @@
#define ITEM_LUXURY_BALL 11
#define ITEM_PREMIER_BALL 12
-// Medicine
+// Pokemon Items
#define ITEM_POTION 13
#define ITEM_ANTIDOTE 14
#define ITEM_BURN_HEAL 15
@@ -57,15 +51,12 @@
#define ITEM_WHITE_FLUTE 43
#define ITEM_BERRY_JUICE 44
#define ITEM_SACRED_ASH 45
-
-// Collectibles
#define ITEM_SHOAL_SALT 46
#define ITEM_SHOAL_SHELL 47
#define ITEM_RED_SHARD 48
#define ITEM_BLUE_SHARD 49
#define ITEM_YELLOW_SHARD 50
#define ITEM_GREEN_SHARD 51
-
#define ITEM_034 52
#define ITEM_035 53
#define ITEM_036 54
@@ -77,8 +68,6 @@
#define ITEM_03C 60
#define ITEM_03D 61
#define ITEM_03E 62
-
-// Vitamins
#define ITEM_HP_UP 63
#define ITEM_PROTEIN 64
#define ITEM_IRON 65
@@ -88,10 +77,7 @@
#define ITEM_PP_UP 69
#define ITEM_ZINC 70
#define ITEM_PP_MAX 71
-
#define ITEM_048 72
-
-// Battle items
#define ITEM_GUARD_SPEC 73
#define ITEM_DIRE_HIT 74
#define ITEM_X_ATTACK 75
@@ -101,36 +87,29 @@
#define ITEM_X_SPECIAL 79
#define ITEM_POKE_DOLL 80
#define ITEM_FLUFFY_TAIL 81
-
#define ITEM_052 82
-
-// Field items
#define ITEM_SUPER_REPEL 83
#define ITEM_MAX_REPEL 84
#define ITEM_ESCAPE_ROPE 85
#define ITEM_REPEL 86
-
#define ITEM_057 87
#define ITEM_058 88
#define ITEM_059 89
#define ITEM_05A 90
#define ITEM_05B 91
#define ITEM_05C 92
-
-//Evolution stones
#define ITEM_SUN_STONE 93
#define ITEM_MOON_STONE 94
#define ITEM_FIRE_STONE 95
#define ITEM_THUNDER_STONE 96
#define ITEM_WATER_STONE 97
#define ITEM_LEAF_STONE 98
-
#define ITEM_063 99
#define ITEM_064 100
#define ITEM_065 101
#define ITEM_066 102
-//Valuable items
+// Unusable
#define ITEM_TINY_MUSHROOM 103
#define ITEM_BIG_MUSHROOM 104
#define ITEM_069 105
@@ -140,7 +119,6 @@
#define ITEM_STAR_PIECE 109
#define ITEM_NUGGET 110
#define ITEM_HEART_SCALE 111
-
#define ITEM_070 112
#define ITEM_071 113
#define ITEM_072 114
@@ -151,7 +129,7 @@
#define ITEM_077 119
#define ITEM_078 120
-// Mail
+// Mails
#define ITEM_ORANGE_MAIL 121
#define ITEM_HARBOR_MAIL 122
#define ITEM_GLITTER_MAIL 123
@@ -165,7 +143,7 @@
#define ITEM_FAB_MAIL 131
#define ITEM_RETRO_MAIL 132
-//Berries
+// Berries
#define ITEM_CHERI_BERRY 133
#define ITEM_CHESTO_BERRY 134
#define ITEM_PECHA_BERRY 135
@@ -209,12 +187,11 @@
#define ITEM_LANSAT_BERRY 173
#define ITEM_STARF_BERRY 174
#define ITEM_ENIGMA_BERRY 175
-
#define ITEM_0B0 176
#define ITEM_0B1 177
#define ITEM_0B2 178
-// Hold items
+// Battle Held items
#define ITEM_BRIGHT_POWDER 179
#define ITEM_WHITE_HERB 180
#define ITEM_MACHO_BRACE 181
@@ -262,7 +239,6 @@
#define ITEM_METAL_POWDER 223
#define ITEM_THICK_CLUB 224
#define ITEM_STICK 225
-
#define ITEM_0E2 226
#define ITEM_0E3 227
#define ITEM_0E4 228
@@ -292,6 +268,7 @@
#define ITEM_0FC 252
#define ITEM_0FD 253
+// Contest held items
#define ITEM_RED_SCARF 254
#define ITEM_BLUE_SCARF 255
#define ITEM_PINK_SCARF 256
@@ -449,10 +426,11 @@
#define ITEM_HM07_WATERFALL ITEM_HM07
#define ITEM_HM08_DIVE ITEM_HM08
+// Unknown
#define ITEM_15B 347
#define ITEM_15C 348
-// FireRed/LeafGreen key items
+// FireRed/LeafGreen
#define ITEM_OAKS_PARCEL 349
#define ITEM_POKE_FLUTE 350
#define ITEM_SECRET_KEY 351
@@ -480,7 +458,7 @@
#define ITEM_RUBY 373
#define ITEM_SAPPHIRE 374
-// Emerald-specific key items
+// Emerald
#define ITEM_MAGMA_EMBLEM 375
#define ITEM_OLD_SEA_MAP 376
diff --git a/include/decoration.h b/include/decoration.h
index a51d9ccce..76b2f2ec4 100644
--- a/include/decoration.h
+++ b/include/decoration.h
@@ -70,5 +70,8 @@ void sub_8126968(void);
void sub_8126AD8(u8 taskId);
void sub_8127D38(u16 mapX, u16 mapY, u16 decor);
void sub_8126B2C(u8 taskId);
+void sub_8127208(u8 taskId);
+void sub_8127250(u8 *dest, u8 decorCat);
+bool8 IsSelectedDecorInThePC(void);
#endif //GUARD_DECORATION_H
diff --git a/include/global.h b/include/global.h
index f88203c90..ce9a96b6f 100644
--- a/include/global.h
+++ b/include/global.h
@@ -43,9 +43,6 @@
#define PARTY_SIZE 6
-#define POKEMON_NAME_LENGTH 10
-#define OT_NAME_LENGTH 7
-
#define min(a, b) ((a) < (b) ? (a) : (b))
#define max(a, b) ((a) >= (b) ? (a) : (b))
@@ -97,6 +94,31 @@ enum LanguageId
#define GAME_VERSION (VERSION_EMERALD)
#define GAME_LANGUAGE (LANGUAGE_ENGLISH)
+// capacities of various saveblock objects
+#define DAYCARE_MON_COUNT 2
+#define POKEBLOCKS_COUNT 40
+#define MAP_OBJECTS_COUNT 16
+#define BERRY_TREES_COUNT 128
+#define FLAGS_COUNT 300
+#define VARS_COUNT 256
+#define MAIL_COUNT 16
+#define SECRET_BASES_COUNT 20
+#define PC_ITEMS_COUNT 50
+#define BAG_ITEMS_COUNT 30
+#define BAG_KEYITEMS_COUNT 30
+#define BAG_POKEBALLS_COUNT 16
+#define BAG_TMHM_COUNT 64
+#define BAG_BERRIES_COUNT 46
+
+#define PYRAMID_BAG_ITEMS_COUNT 10
+
+// string lengths
+#define ITEM_NAME_LENGTH 14
+#define POKEMON_NAME_LENGTH 10
+#define OT_NAME_LENGTH 7
+#define PLAYER_NAME_LENGTH 8
+#define MAIL_WORDS_COUNT 9
+
enum
{
MALE,
@@ -129,15 +151,6 @@ enum
OPTIONS_BATTLE_STYLE_SET
};
-enum
-{
- BAG_ITEMS = 1,
- BAG_POKEBALLS,
- BAG_TMsHMs,
- BAG_BERRIES,
- BAG_KEYITEMS
-};
-
struct Coords16
{
s16 x;
@@ -209,11 +222,11 @@ struct BerryPickingResults // possibly used in the game itself? Size may be wron
u8 field_F;
};
+// two arrays for lvl50 and open level
struct PyramidBag
{
- u16 items_Lvl50[10];
- u16 items_OpenLvl[10];
- u8 quantity[10];
+ u16 itemId[2][PYRAMID_BAG_ITEMS_COUNT];
+ u8 quantity[2][PYRAMID_BAG_ITEMS_COUNT];
};
struct BerryCrush
@@ -223,8 +236,6 @@ struct BerryCrush
u32 unk;
};
-#define PLAYER_NAME_LENGTH 8
-
struct UnknownSaveBlock2Struct
{
u8 field_0;
@@ -303,7 +314,7 @@ struct SaveBlock2
/*0xE1A*/ u16 battlePyramidFloor; // possibly?
/*0xE1C*/ u8 field_E1C[16];
/*0xE2C*/ struct PyramidBag pyramidBag;
- /*0x???*/ u8 field_notSure[13];
+ /*0x???*/ u8 field_unkown[6];
/*0xE6E*/ u16 battleTentWinStreak;
/*0xE70*/ u8 field_E70[72];
/*0xEB8*/ u16 frontierBattlePoints;
@@ -417,8 +428,6 @@ struct EasyChatPair
u16 words[2];
}; /*size = 0x8*/
-#define MAIL_WORDS_COUNT 9
-
struct MailStruct
{
/*0x00*/ u16 words[MAIL_WORDS_COUNT];
@@ -452,10 +461,11 @@ struct UnkMauvilleOldManStruct2
struct MauvilleOldManTrader
{
- u8 unk0;
- u8 unk1[4];
- u8 unk5[4][11];
- u8 unk31;
+ /* 0x2E28 */ u8 id;
+ /* 0x2E29 */ u8 unk1[4];
+ /* 0x2E2D */ u8 unk5[4][11];
+ /* 0x2E59 */ bool8 alreadyTraded;
+ /* 0x2E5A */ u8 language[4];
};
typedef union OldMan
@@ -480,6 +490,8 @@ struct RecordMixing_UnknownStruct
u16 unk74[0x2];
};
+#define LINK_B_RECORDS_COUNT 5
+
struct LinkBattleRecord
{
u8 name[8];
@@ -489,6 +501,12 @@ struct LinkBattleRecord
u16 draws;
};
+struct LinkBattleRecords
+{
+ struct LinkBattleRecord entries[LINK_B_RECORDS_COUNT];
+ u8 languages[LINK_B_RECORDS_COUNT];
+};
+
struct RecordMixingGiftData
{
u8 unk0;
@@ -530,8 +548,6 @@ struct DaycareMon
u32 steps;
};
-#define DAYCARE_MON_COUNT 2
-
struct DayCare
{
struct DaycareMon mons[DAYCARE_MON_COUNT];
@@ -552,13 +568,6 @@ struct RecordMixingDayCareMail
bool16 holdsItem[DAYCARE_MON_COUNT];
};
-#define POKEBLOCKS_COUNT 40
-#define MAP_OBJECTS_COUNT 16
-#define BERRY_TREES_COUNT 128
-#define FLAGS_COUNT 300
-#define VARS_COUNT 256
-#define MAIL_COUNT 16
-
enum
{
LILYCOVE_LADY_QUIZ,
@@ -645,16 +654,16 @@ struct SaveBlock1
/*0x32*/ u16 mapDataId;
/*0x34*/ u16 mapView[0x100];
/*0x234*/ u8 playerPartyCount;
- /*0x238*/ struct Pokemon playerParty[6];
+ /*0x238*/ struct Pokemon playerParty[PARTY_SIZE];
/*0x490*/ u32 money;
/*0x494*/ u16 coins;
/*0x496*/ u16 registeredItem; // registered for use with SELECT button
- /*0x498*/ struct ItemSlot pcItems[50];
- /*0x560*/ struct ItemSlot bagPocket_Items[30];
- /*0x5D8*/ struct ItemSlot bagPocket_KeyItems[30];
- /*0x650*/ struct ItemSlot bagPocket_PokeBalls[16];
- /*0x690*/ struct ItemSlot bagPocket_TMHM[64];
- /*0x790*/ struct ItemSlot bagPocket_Berries[46];
+ /*0x498*/ struct ItemSlot pcItems[PC_ITEMS_COUNT];
+ /*0x560*/ struct ItemSlot bagPocket_Items[BAG_ITEMS_COUNT];
+ /*0x5D8*/ struct ItemSlot bagPocket_KeyItems[BAG_KEYITEMS_COUNT];
+ /*0x650*/ struct ItemSlot bagPocket_PokeBalls[BAG_POKEBALLS_COUNT];
+ /*0x690*/ struct ItemSlot bagPocket_TMHM[BAG_TMHM_COUNT];
+ /*0x790*/ struct ItemSlot bagPocket_Berries[BAG_BERRIES_COUNT];
/*0x848*/ struct Pokeblock pokeblocks[POKEBLOCKS_COUNT];
/*0x988*/ u8 seen1[52];
/*0x9BC*/ u16 berryBlenderRecords[3];
@@ -667,7 +676,7 @@ struct SaveBlock1
/*0x139C*/ u16 vars[VARS_COUNT];
/*0x159C*/ u32 gameStats[NUM_GAME_STATS];
/*0x169C*/ struct BerryTree berryTrees[BERRY_TREES_COUNT];
- /*0x1A9C*/ struct SecretBaseRecord secretBases[20];
+ /*0x1A9C*/ struct SecretBaseRecord secretBases[SECRET_BASES_COUNT];
/*0x271C*/ u8 playerRoomDecor[12];
/*0x2728*/ u8 playerRoomDecorPos[12];
/*0x2734*/ u8 decorDesk[10];
@@ -703,9 +712,7 @@ struct SaveBlock1
/*0x2e64*/ struct EasyChatPair easyChatPairs[5]; //Dewford trend [0] and some other stuff
/*0x2e90*/ struct ContestWinner contestWinners[13]; // 0 - 5 used in contest hall, 6 - 7 unused?, 8 - 12 museum
/*0x3030*/ struct DayCare daycare;
- /*0x3150*/ struct LinkBattleRecord linkBattleRecords[5];
- /*0x31A0*/ u8 unk_31A0;
- /*0x31A1*/ u8 filler_31A1[7];
+ /*0x3150*/ struct LinkBattleRecords linkBattleRecords;
/*0x31A8*/ u8 giftRibbons[52];
/*0x31DC*/ struct Roamer roamer;
/*0x31F8*/ struct EnigmaBerry enigmaBerry;
diff --git a/include/item.h b/include/item.h
index 33d434f78..881d3a3d4 100644
--- a/include/item.h
+++ b/include/item.h
@@ -1,11 +1,32 @@
-#ifndef ITEM_H
-#define ITEM_H
+#ifndef GUARD_ITEM_H
+#define GUARD_ITEM_H
+
+// These constants are used in gItems
+enum
+{
+ POCKET_NONE,
+ POCKET_ITEMS,
+ POCKET_POKE_BALLS,
+ POCKET_TM_HM,
+ POCKET_BERRIES,
+ POCKET_KEY_ITEMS,
+};
+
+enum
+{
+ ITEMS_POCKET,
+ BALLS_POCKET,
+ TMHM_POCKET,
+ BERRIES_POCKET,
+ KEYITEMS_POCKET,
+ POCKETS_COUNT
+};
typedef void (*ItemUseFunc)(u8);
struct Item
{
- u8 name[14];
+ u8 name[ITEM_NAME_LENGTH];
u16 itemId;
u16 price;
u8 holdEffect;
@@ -29,28 +50,41 @@ struct BagPocket
extern struct BagPocket gBagPockets[];
-void GetBerryCountString(u8* dst, const u8* berryName, u32 quantity);
-void CopyItemName(u16 itemId, u8 *string);
-void CopyItemNameHandlePlural(u16 itemId, u8 *string, u32 quantity);
+void ApplyNewEncryptionKeyToBagItems(u32 newKey);
+void ApplyNewEncryptionKeyToBagItems_(u32 newKey);
+void SetBagItemsPointers(void);
+void CopyItemName(u16 itemId, u8 *dst);
+void CopyItemNameHandlePlural(u16 itemId, u8 *dst, u32 quantity);
+void GetBerryCountString(u8 *dst, const u8 *berryName, u32 quantity);
bool8 IsBagPocketNonEmpty(u8 pocket);
bool8 CheckBagHasItem(u16 itemId, u16 count);
+bool8 HasAtLeastOneBerry(void);
bool8 CheckBagHasSpace(u16 itemId, u16 count);
bool8 AddBagItem(u16 itemId, u16 count);
bool8 RemoveBagItem(u16 itemId, u16 count);
u8 GetPocketByItemId(u16 itemId);
-void ClearItemSlots(struct ItemSlot *itemSlots, u8 b);
+void ClearItemSlots(struct ItemSlot *itemSlots, u8 itemCount);
u8 CountUsedPCItemSlots(void);
bool8 CheckPCHasItem(u16 itemId, u16 count);
bool8 AddPCItem(u16 itemId, u16 count);
void RemovePCItem(u8 index, u16 count);
+void CompactPCItems(void);
void SwapRegisteredBike(void);
-const struct Item *ItemId_GetItem(u16 itemId);
+u16 BagGetItemIdByPocketPosition(u8 pocketId, u16 pocketPos);
+u16 BagGetQuantityByPocketPosition(u8 pocketId, u16 pocketPos);
+void CompactItemsInBagPocket(struct BagPocket *bagPocket);
+void SortBerriesOrTMHMs(struct BagPocket *bagPocket);
+void MoveItemSlotInList(struct ItemSlot* itemSlots_, u32 from, u32 to_);
+void ClearBag(void);
+u16 CountTotalItemQuantityInBag(u16 itemId);
+bool8 AddPyramidBagItem(u16 itemId, u16 count);
+bool8 RemovePyramidBagItem(u16 itemId, u16 count);
+const u8 *ItemId_GetName(u16 itemId);
u16 ItemId_GetId(u16 itemId);
u16 ItemId_GetPrice(u16 itemId);
u8 ItemId_GetHoldEffect(u16 itemId);
u8 ItemId_GetHoldEffectParam(u16 itemId);
const u8 *ItemId_GetDescription(u16 itemId);
-bool32 ItemId_CopyDescription(u8 *a, u32 itemId, u32 c);
u8 ItemId_GetImportance(u16 itemId);
u8 ItemId_GetUnknownValue(u16 itemId);
u8 ItemId_GetPocket(u16 itemId);
@@ -59,14 +93,5 @@ ItemUseFunc ItemId_GetFieldFunc(u16 itemId);
u8 ItemId_GetBattleUsage(u16 itemId);
ItemUseFunc ItemId_GetBattleFunc(u16 itemId);
u8 ItemId_GetSecondaryId(u16 itemId);
-u16 itemid_get_market_price(u16 itemId);
-u16 BagGetItemIdByPocketPosition(u8 pocketId, u16 pocketPos);
-void sub_80D6FB4(struct BagPocket*);
-void sub_80D6F64(struct BagPocket*);
-void sub_80D702C(struct ItemSlot*, s16, u16);
-u8 sub_80D6CE4();
-bool8 itemid_is_unique(u16 itemId);
-void sub_80D6E48(u8, u16);
-void sub_80D6E84(void);
-#endif // ITEM_H
+#endif // GUARD_ITEM_H
diff --git a/include/item_menu.h b/include/item_menu.h
index 68393c9ee..40c015a8e 100644
--- a/include/item_menu.h
+++ b/include/item_menu.h
@@ -55,7 +55,7 @@ void sub_81AAC14(void);
void sub_81AAC50(void);
void sub_81AAC70(void);
void bag_menu_mail_related(void);
-
void CB2_BagMenuFromStartMenu(void);
+u8 sub_81ABB2C(u8 pocketId);
#endif //GUARD_item_menu_H
diff --git a/include/load_save.h b/include/load_save.h
index 460cdf6f3..0868316c8 100644
--- a/include/load_save.h
+++ b/include/load_save.h
@@ -1,27 +1,35 @@
#ifndef GUARD_LOAD_SAVE_H
#define GUARD_LOAD_SAVE_H
-extern bool32 gFlashMemoryPresent;
+extern struct SaveBlock1 gSaveblock1;
extern struct SaveBlock2 gSaveblock2;
extern struct PokemonStorage gPokemonStorage;
+extern bool32 gFlashMemoryPresent;
+extern struct SaveBlock1 *gSaveBlock1Ptr;
+extern struct SaveBlock2 *gSaveBlock2Ptr;
+extern struct PokemonStorage *gPokemonStoragePtr;
+
+void CheckForFlashMemory(void);
void ClearSav2(void);
void ClearSav1(void);
-void CheckForFlashMemory(void);
+void SetSaveBlocksPointers(u16 offset);
void MoveSaveBlocks_ResetHeap(void);
-bool32 GetSecretBase2Field_9(void);
+u32 GetSecretBase2Field_9(void);
void ClearSecretBase2Field_9(void);
-void SetSecretBase2Field_9(void);
-void SetSecretBase2Field_9_AndHideBG(void);
-void ClearSecretBase2Field_9_2(void);
+void sub_8076D48(void);
+void sub_8076D5C(void);
+void sav2_gender2_inplace_and_xFE(void);
void SavePlayerParty(void);
void LoadPlayerParty(void);
+void SaveMapObjects(void);
+void LoadMapObjects(void);
void SaveSerializedGame(void);
void LoadSerializedGame(void);
void LoadPlayerBag(void);
void SavePlayerBag(void);
-void SetSaveBlocksPointers(u16);
-void sub_8076D5C(void);
-void sav2_gender2_inplace_and_xFE(void);
+void ApplyNewEncryptionKeyToHword(u16 *hWord, u32 newKey);
+void ApplyNewEncryptionKeyToWord(u32 *word, u32 newKey);
+void ApplyNewEncryptionKeyToAllEncryptedData(u32 encryptionKey);
#endif // GUARD_LOAD_SAVE_H
diff --git a/include/palette.h b/include/palette.h
index 41cef4048..a1259d327 100644
--- a/include/palette.h
+++ b/include/palette.h
@@ -1,8 +1,6 @@
#ifndef GUARD_PALETTE_H
#define GUARD_PALETTE_H
-#include "global.h"
-
#define gPaletteFade_selectedPalettes (gPaletteFade.multipurpose1) // normal and fast fade
#define gPaletteFade_blendCnt (gPaletteFade.multipurpose1) // hardware fade
#define gPaletteFade_delay (gPaletteFade.multipurpose2) // normal and hardware fade
diff --git a/include/script_menu.h b/include/script_menu.h
index 717eda041..810e84dcb 100644
--- a/include/script_menu.h
+++ b/include/script_menu.h
@@ -9,5 +9,6 @@ bool8 ScriptMenu_YesNo(u8 var1, u8 var2);
bool8 ScriptMenu_MultichoiceGrid(u8 left, u8 top, u8 multichoiceId, u8 a4, u8 columnCount);
bool8 ScriptMenu_ShowPokemonPic(u16 var1, u8 var2, u8 var3);
bool8 (*ScriptMenu_GetPicboxWaitFunc(void))(void);
+s32 convert_pixel_width_to_tile_width(s32 pixelWidth);
#endif //GUARD_SCRIPT_MENU_H
diff --git a/include/secret_base.h b/include/secret_base.h
index b2502889c..3e8a80987 100644
--- a/include/secret_base.h
+++ b/include/secret_base.h
@@ -10,5 +10,6 @@ void sub_80E9578(void);
void sub_80E980C(void);
u8 *GetSecretBaseMapName(u8 *dest);
const u8 *GetSecretBaseTrainerLoseText(void);
+bool8 CurrentMapIsSecretBase(void);
#endif //GUARD_SECRET_BASE_H
diff --git a/include/strings.h b/include/strings.h
index 7c81dbcfb..f61dd5319 100644
--- a/include/strings.h
+++ b/include/strings.h
@@ -74,6 +74,10 @@ extern const u8 gText_DecorationWillBeDiscarded[];
extern const u8 gText_CantThrowAwayInUse[];
extern const u8 gText_DecorationThrownAway[];
+extern const u8 gText_PokeBalls[];
+extern const u8 gText_Berries[];
+extern const u8 gText_Berry[];
+
extern const u8 gText_Desk[];
extern const u8 gText_Chair[];
extern const u8 gText_Plant[];
@@ -336,7 +340,7 @@ extern const u8 gText_Var1DotVar2[];
extern const u8 gText_ThreeMarks[];
extern const u8 gText_FirmSlash[];
-//item menu screen text
+// item menu screen text
extern const u8 gText_CloseBag[];
extern const u8 gText_ClearTo11Var1Clear5Var2[];
extern const u8 gText_UnkF908Var1Clear7Var2[];
@@ -362,11 +366,11 @@ extern const u8 gText_DepositedVar2Var1s[];
extern const u8 gText_NoRoomForItems[];
extern const u8 gText_ThreeDashes[];
-//party menu text
+// party menu text
extern const u8 gText_PkmnHPRestoredByVar2[];
extern const u8 gText_CantBeUsedOnPkmn[];
-//birch dex rating text
+// birch dex rating text
extern const u8 gBirchDexRatingText_LessThan10[];
extern const u8 gBirchDexRatingText_LessThan20[];
extern const u8 gBirchDexRatingText_LessThan30[];
@@ -389,7 +393,7 @@ extern const u8 gBirchDexRatingText_LessThan190[];
extern const u8 gBirchDexRatingText_LessThan200[];
extern const u8 gBirchDexRatingText_DexCompleted[];
-//player pc text
+// player pc text
extern const u8 gText_WhatWouldYouLike[];
extern const u8 gText_NoMailHere[];
@@ -429,5 +433,14 @@ extern const u8 gText_TooImportantToToss[];
extern const u8 gText_ConfirmTossItems[];
extern const u8 gText_MoveVar1Where[];
+extern const u8 gText_Tristan[];
+extern const u8 gText_Philip[];
+extern const u8 gText_Dennis[];
+extern const u8 gText_Roberto[];
+extern const u8 gText_FiveMarks[];
+
+extern const u8 gText_TotalRecordWLD[];
+extern const u8 gText_PlayersBattleResults[];
+extern const u8 gText_WinLoseDraw[];
#endif //GUARD_STRINGS_H
diff --git a/include/trainer_card.h b/include/trainer_card.h
new file mode 100644
index 000000000..5cb93dba0
--- /dev/null
+++ b/include/trainer_card.h
@@ -0,0 +1,35 @@
+#ifndef GUARD_TRAINER_CARD_H
+#define GUARD_TRAINER_CARD_H
+
+struct TrainerCard
+{
+ /*0x00*/ u8 gender;
+ /*0x01*/ u8 stars;
+ /*0x02*/ bool8 hasPokedex;
+ /*0x03*/ bool8 var_3;
+ /*0x04*/ bool8 var_4;
+ /*0x05*/ u8 var_5;
+ /*0x06*/ u16 firstHallOfFameA;
+ /*0x08*/ u16 firstHallOfFameB;
+ /*0x0A*/ u16 firstHallOfFameC;
+ /*0x0C*/ u16 pokedexSeen;
+ /*0x0E*/ u16 trainerId;
+ /*0x10*/ u16 playTimeHours;
+ /*0x12*/ u16 playTimeMinutes;
+ /*0x14*/ u16 linkBattleWins;
+ /*0x16*/ u16 linkBattleLosses;
+ /*0x18*/ u16 battleTowerWins;
+ /*0x1A*/ u16 battleTowerLosses;
+ /*0x1C*/ u16 contestsWithFriends;
+ /*0x1E*/ u16 pokeblocksWithFriends;
+ /*0x20*/ u16 pokemonTrades;
+ /*0x22*/ u16 var_22;
+ /*0x24*/ u32 money;
+ /*0x28*/ u16 var_28[4];
+ /*0x30*/ u8 playerName[8];
+ /*0x38*/ u8 emeraldAddedUnknownFields[0x64-0x38];
+};
+
+extern struct TrainerCard gTrainerCards[4];
+
+#endif // GUARD_TRAINER_CARD_H