summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/battle_tower.h2
-rw-r--r--include/bg.h2
-rw-r--r--include/constants/battle.h2
-rw-r--r--include/constants/region_map_sections.h8
-rw-r--r--include/constants/vars.h1
-rw-r--r--include/event_scripts.h3
-rw-r--r--include/field_message_box.h1
-rw-r--r--include/frontier_pass.h7
-rw-r--r--include/global.h24
-rw-r--r--include/graphics.h28
-rw-r--r--include/main.h2
-rw-r--r--include/palette.h6
-rw-r--r--include/pokedex.h1
-rw-r--r--include/pokemon.h4
-rw-r--r--include/pokemon_storage_system.h1
-rw-r--r--include/pokenav.h8
-rw-r--r--include/script_pokemon_util_80F87D8.h1
-rw-r--r--include/string_util.h2
-rw-r--r--include/strings.h78
-rw-r--r--include/trainer_card.h43
-rw-r--r--include/trainer_hill.h36
21 files changed, 216 insertions, 44 deletions
diff --git a/include/battle_tower.h b/include/battle_tower.h
index bd8e80fc1..12d6d2e9e 100644
--- a/include/battle_tower.h
+++ b/include/battle_tower.h
@@ -79,7 +79,7 @@ void GetBattleTowerTrainerLanguage(u8 *dst, u16 trainerId);
u8 SetFacilityPtrsGetLevel(void);
u8 GetFrontierEnemyMonLevel(u8 lvlMode);
s32 GetHighestLevelInPlayerParty(void);
-u8 sub_81660B8(u8 facilityClass);
+u8 FacilityClassToGraphicsId(u8 facilityClass);
bool32 ValidateBattleTowerRecord(u8 recordId); // unused
void sub_8166188(void);
diff --git a/include/bg.h b/include/bg.h
index 1366923f1..ad5acd0ae 100644
--- a/include/bg.h
+++ b/include/bg.h
@@ -61,7 +61,7 @@ s32 GetBgX(u8 bg);
s32 ChangeBgY(u8 bg, s32 value, u8 op);
s32 ChangeBgY_ScreenOff(u8 bg, u32 value, u8 op);
s32 GetBgY(u8 bg);
-void SetBgAffine(u8 bg, u32 srcCenterX, u32 srcCenterY, s16 dispCenterX, s16 dispCenterY, s16 scaleX, s16 scaleY, u16 rotationAngle);
+void SetBgAffine(u8 bg, s32 srcCenterX, s32 srcCenterY, s16 dispCenterX, s16 dispCenterY, s16 scaleX, s16 scaleY, u16 rotationAngle);
u8 Unused_AdjustBgMosaic(u8 a1, u8 a2);
void SetBgTilemapBuffer(u8 bg, void *tilemap);
void UnsetBgTilemapBuffer(u8 bg);
diff --git a/include/constants/battle.h b/include/constants/battle.h
index acb0f6689..346d5d9ea 100644
--- a/include/constants/battle.h
+++ b/include/constants/battle.h
@@ -174,7 +174,7 @@
#define HITMARKER_GRUDGE 0x01000000
#define HITMARKER_OBEYS 0x02000000
#define HITMARKER_x4000000 0x04000000
-#define HITMARKER_x8000000 0x08000000
+#define HITMARKER_CHARGING 0x08000000
#define HITMARKER_FAINTED(battler) (gBitTable[battler] << 0x1C)
#define HITMARKER_UNK(battler) (0x10000000 << battler)
diff --git a/include/constants/region_map_sections.h b/include/constants/region_map_sections.h
index 12c894367..bba76939c 100644
--- a/include/constants/region_map_sections.h
+++ b/include/constants/region_map_sections.h
@@ -216,10 +216,10 @@
#define MAPSEC_TRAINER_HILL 0xD4
#define MAPSEC_NONE 0xD5
-#define MAPSEC_SPECIAL_EGG 0xFD
-#define MAPSEC_IN_GAME_TRADE 0xFE
-#define MAPSEC_FATEFUL_ENCOUNTER 0xFF
+#define METLOC_SPECIAL_EGG 0xFD
+#define METLOC_IN_GAME_TRADE 0xFE
+#define METLOC_FATEFUL_ENCOUNTER 0xFF
-#define MAPSEC_SUBTRACT_KANTO (MAPSEC_SPECIAL_AREA - MAPSEC_DYNAMIC)
+#define KANTO_MAPSEC_COUNT (MAPSEC_SPECIAL_AREA - MAPSEC_DYNAMIC)
#endif //GUARD_REGIONMAPSEC_H
diff --git a/include/constants/vars.h b/include/constants/vars.h
index 30df01f55..c055c5baf 100644
--- a/include/constants/vars.h
+++ b/include/constants/vars.h
@@ -297,5 +297,6 @@
#define VAR_MON_BOX_ID 0x8012
#define VAR_MON_BOX_POS 0x8013
#define VAR_0x8014 0x8014
+#define VAR_0x8015 0x8015
#endif // GUARD_CONSTANTS_VARS_H
diff --git a/include/event_scripts.h b/include/event_scripts.h
index e611dc6e0..afeac6628 100644
--- a/include/event_scripts.h
+++ b/include/event_scripts.h
@@ -584,4 +584,7 @@ extern const u8 EventScript_275A86[];
extern const u8 EventScript_275ADF[];
extern const u8 EventScript_275B38[];
+// trainer hill
+extern const u8 EventScript_2C83F0[];
+
#endif // GUARD_EVENT_SCRIPTS_H
diff --git a/include/field_message_box.h b/include/field_message_box.h
index e3deee4d6..9515a54fd 100644
--- a/include/field_message_box.h
+++ b/include/field_message_box.h
@@ -11,6 +11,7 @@ enum
bool8 ShowFieldMessage(const u8 *message);
bool8 sub_8098238(const u8 *message);
+bool8 sub_80982B8(void);
bool8 ShowFieldAutoScrollMessage(const u8 *message);
void HideFieldMessageBox(void);
bool8 IsFieldMessageBoxHidden(void);
diff --git a/include/frontier_pass.h b/include/frontier_pass.h
new file mode 100644
index 000000000..bdfc1996f
--- /dev/null
+++ b/include/frontier_pass.h
@@ -0,0 +1,7 @@
+#ifndef GUARD_FRONTIER_PASS_H
+#define GUARD_FRONTIER_PASS_H
+
+void ShowFrontierPass(void (*callback)(void));
+void CB2_ReshowFrontierPass(void);
+
+#endif // GUARD_FRONTIER_PASS_H
diff --git a/include/global.h b/include/global.h
index c11bddc2d..f45d36f68 100644
--- a/include/global.h
+++ b/include/global.h
@@ -378,7 +378,8 @@ struct BattleFrontier
/*0xEE0*/ u8 field_EE0;
/*0xEE1*/ u8 field_EE1[2][PLAYER_NAME_LENGTH + 1];
/*0xEF1*/ u8 field_EF1[2][4];
- /*0xEF9*/ u8 field_EF9;
+ /*0xEF9*/ u8 field_EF9_0:7;
+ /*0xEF9*/ u8 field_EF9_1:1;
/*0xEFA*/ u8 field_EFA;
/*0xEFB*/ u8 field_EFB;
/*0xEFC*/ struct FrontierMonData field_EFC[3];
@@ -792,6 +793,21 @@ struct UnkSaveSubstruct_3b98
u8 trainerName[PLAYER_NAME_LENGTH + 1];
};
+struct SaveTrainerHill
+{
+ /*0x3D64*/ u32 field_3D64;
+ /*0x3D68*/ u32 field_3D68;
+ /*0x3D6C*/ u8 field_3D6C;
+ /*0x3D6D*/ u8 unused;
+ /*0x3D6E*/ u16 field_3D6E_0a:1; // 1
+ /*0x3D6E*/ u16 field_3D6E_0b:1; // 2
+ /*0x3D6E*/ u16 field_3D6E_0c:1; // 4
+ /*0x3D6E*/ u16 field_3D6E_0d:1; // 8
+ /*0x3D6E*/ u16 field_3D6E_0e:1; // x10
+ /*0x3D6E*/ u16 field_3D6E_0f:1; // x20
+ /*0x3D6E*/ u16 tag:2; // x40, x80 = xC0
+};
+
struct SaveBlock1
{
/*0x00*/ struct Coords16 pos;
@@ -869,13 +885,15 @@ struct SaveBlock1
/*0x31A8*/ u8 giftRibbons[52];
/*0x31DC*/ struct Roamer roamer;
/*0x31F8*/ struct EnigmaBerry enigmaBerry;
- /*0x322C*/ u8 field_322C[1276];
+ /*0x322C*/ u8 field_322C[1260];
+ /*0x3718*/ u32 trainerHillTimes[4];
/*0x3728*/ struct RamScript ramScript;
/*0x3B14*/ struct RecordMixingGift recordMixingGift;
/*0x3B24*/ u8 seen2[DEX_FLAGS_NO];
/*0x3B58*/ LilycoveLady lilycoveLady;
/*0x3B98*/ struct UnkSaveSubstruct_3b98 unk_3B98[20];
- /*0x3C88*/ u8 filler_3C88[0xE8];
+ /*0x3C88*/ u8 filler_3C88[0xDC];
+ /*0x3D64*/ struct SaveTrainerHill trainerHill;
/*0x3D70*/ struct WaldaPhrase waldaPhrase;
// sizeof: 0x3D88
};
diff --git a/include/graphics.h b/include/graphics.h
index 4615facf9..f7eaa394d 100644
--- a/include/graphics.h
+++ b/include/graphics.h
@@ -4850,4 +4850,32 @@ extern const u16 gUnknown_08DC64E8[];
extern const u16 gUnknown_08DC64FC[];
extern const u16 gUnknown_08DC6510[];
+// Trainer Card.
+extern const u16 gEmeraldTrainerCard0Star_Pal[];
+extern const u32 gEmeraldTrainerCard_Gfx[];
+extern const u16 gFireRedTrainerCard0Star_Pal[];
+extern const u32 gFireRedTrainerCard_Gfx[];
+extern const u32 gUnknown_08DD2AE0[];
+extern const u32 gUnknown_08DD21B0[];
+extern const u32 gUnknown_08DD2D30[];
+extern const u32 gUnknown_08DD2010[];
+extern const u32 gUnknown_08DD2B78[];
+extern const u32 gUnknown_08DD228C[];
+extern const u32 gUnknown_08DD2E5C[];
+extern const u32 gUnknown_08DD1F78[];
+
+// Frontier Pass
+extern const u32 gUnknown_08DE08C8[];
+extern const u32 gUnknown_08DE2084[];
+extern const u32 gUnknown_08DE3350[];
+extern const u32 gUnknown_08DE3374[];
+extern const u32 gUnknown_08DE3060[];
+extern const u32 gFrontierPassMedals_Gfx[];
+extern const u16 gUnknown_08DE07C8[][16];
+extern const u16 gFrontierPassCursor_Pal[];
+extern const u16 gFrontierPassMedalsGold_Pal[];
+extern const u16 gFrontierPassMedalsSilver_Pal[];
+extern const u16 gFrontierPassMapCursor_Pal[];
+
+
#endif //GUARD_GRAPHICS_H
diff --git a/include/main.h b/include/main.h
index 0d441035d..2ed30307b 100644
--- a/include/main.h
+++ b/include/main.h
@@ -61,6 +61,8 @@ void SetHBlankCallback(IntrCallback callback);
void SetVCountCallback(IntrCallback callback);
void SetSerialCallback(IntrCallback callback);
void InitFlashTimer(void);
+void sub_80008DC(u32 *var);
+void sub_80008E8(void);
void DoSoftReset(void);
void ClearPokemonCrySongs(void);
void RestoreSerialTimer3IntrHandlers(void);
diff --git a/include/palette.h b/include/palette.h
index 540452f3d..e24da3e00 100644
--- a/include/palette.h
+++ b/include/palette.h
@@ -63,8 +63,12 @@ void TintPlttBuffer(u32, s8, s8, s8);
void UnfadePlttBuffer(u32);
void BeginFastPaletteFade(u8);
void BeginHardwarePaletteFade(u8, u8, u8, u8, u8);
-void BlendPalettes(u32, u8, u16);
+void BlendPalettes(u32 selectedPalettes, u8 coeff, u16 color);
void BlendPalettesUnfaded(u32, u8, u16);
void sub_80A2C44(u32 a1, s8 a2, u8 a3, u8 a4, u16 a5, u8 a6, u8 a7);
+void TintPalette_GrayScale(u16 *palette, u16 count);
+void TintPalette_GrayScale2(u16 *palette, u16 count);
+void TintPalette_SepiaTone(u16 *palette, u16 count);
+void TintPalette_CustomTone(u16 *palette, u16 count, u16 rTone, u16 gTone, u16 bTone);
#endif // GUARD_PALETTE_H
diff --git a/include/pokedex.h b/include/pokedex.h
index b6d323fd3..91e9e37d4 100644
--- a/include/pokedex.h
+++ b/include/pokedex.h
@@ -41,5 +41,6 @@ u16 GetHoennPokedexCount(u8);
u8 CreateDexDisplayMonDataTask(u16 dexNum, u32 trainerId, u32 personality);
s8 GetSetPokedexFlag(u16 nationalNum, u8 caseId);
u16 CreateMonSpriteFromNationalDexNumber(u16, s16, s16, u16);
+bool16 HasAllHoennMons(void);
#endif // GUARD_POKEDEX_H
diff --git a/include/pokemon.h b/include/pokemon.h
index cfa5cc350..507497683 100644
--- a/include/pokemon.h
+++ b/include/pokemon.h
@@ -451,8 +451,8 @@ void CreateMaleMon(struct Pokemon *mon, u16 species, u8 level);
void CreateMonWithIVsPersonality(struct Pokemon *mon, u16 species, u8 level, u32 ivs, u32 personality);
void CreateMonWithIVsOTID(struct Pokemon *mon, u16 species, u8 level, u8 *ivs, u32 otId);
void CreateMonWithEVSpread(struct Pokemon *mon, u16 species, u8 level, u8 fixedIV, u8 evSpread);
-void sub_806819C(struct Pokemon *mon, struct BattleTowerPokemon *src);
-void sub_8068338(struct Pokemon *mon, struct BattleTowerPokemon *src, bool8 lvl50);
+void CreateBattleTowerMon(struct Pokemon *mon, struct BattleTowerPokemon *src);
+void CreateBattleTowerMon2(struct Pokemon *mon, struct BattleTowerPokemon *src, bool8 lvl50);
void CreateApprenticeMon(struct Pokemon *mon, const struct Apprentice *src, u8 monId);
void CreateMonWithEVSpreadNatureOTID(struct Pokemon *mon, u16 species, u8 level, u8 nature, u8 fixedIV, u8 evSpread, u32 otId);
void sub_80686FC(struct Pokemon *mon, struct BattleTowerPokemon *dest);
diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h
index a85ee5ff4..4c319e59d 100644
--- a/include/pokemon_storage_system.h
+++ b/include/pokemon_storage_system.h
@@ -25,6 +25,7 @@ struct PokemonStorage
extern struct PokemonStorage *gPokemonStoragePtr;
+void sub_80C6D80(const u8 *string, void *dst, u8 arg2, u8 arg3, s32 arg4);
u8 CountMonsInBox(u8 boxId);
s16 GetFirstFreeBoxSpot(u8 boxId);
u8 CountPartyAliveNonEggMonsExcept(u8 slotToIgnore);
diff --git a/include/pokenav.h b/include/pokenav.h
index d8f0c9f97..e5dba8ae0 100644
--- a/include/pokenav.h
+++ b/include/pokenav.h
@@ -3,7 +3,6 @@
#include "player_pc.h"
#include "list_menu.h"
-bool8 sub_81D5C18(void);
bool8 sub_81D20BC(void *arg0);
bool8 sub_81D312C(void *arg0);
void sub_81D1ED4(void *arg0);
@@ -14,28 +13,21 @@ void sub_81D3464(void *arg0);
void sub_81D3480(void *arg0, u8 arg1);
void sub_81D2754(void *arg0, void *arg1);
void sub_81D1F84(void *arg0, void *arg1, void *arg2);
-const u8 *sub_81D62AC(void);
u8 sub_81D1C84(u8);
u8 sub_81D1DC0(struct PlayerPCItemPageStruct *);
void sub_81D1E90(struct PlayerPCItemPageStruct *);
void sub_81D1EC0(void);
void sub_81D1D04(u8);
bool8 sub_81D1C44(u8);
-void sub_81D5FB4(u16*);
bool8 sub_81D4A58(struct EventObject*);
void sub_81D2BF4(u8 *);
u16 sub_81D2C3C(void);
void sub_81D2C50(void);
u8 sub_81D28C8(const struct ListMenuItem *items, u16 numChoices);
void sub_81D2824(u16);
-bool32 InTrainerHill(void);
bool8 EventObjectIsFarawayIslandMew(struct EventObject *);
u32 sub_81D427C(void);
void sub_81D4998(void);
-u8 GetCurrentTrainerHillMapId(void);
-u8 sub_81D6490(void);
-const struct WarpEvent *sub_81D6120(void);
-const struct WarpEvent *sub_81D6134(u8);
void sub_81D3640(u16 arg0, void* statStoreLocation1, void* statStoreLocation2, u8 arg3, u8 arg4, u8 arg5);
void sub_81D3784(u16 arg0, void* statStoreLocation1, u8 arg2, u8 arg3, u8 arg4);
diff --git a/include/script_pokemon_util_80F87D8.h b/include/script_pokemon_util_80F87D8.h
index 02a35ecba..7d8d99628 100644
--- a/include/script_pokemon_util_80F87D8.h
+++ b/include/script_pokemon_util_80F87D8.h
@@ -4,5 +4,6 @@
u16 sub_80F903C(void);
void ReducePlayerPartyToSelectedMons(void);
void HealPlayerParty(void);
+u8 CountPlayerContestPaintings(void);
#endif // GUARD_SCRIPT_POKEMON_UTIL_80F87D8_H
diff --git a/include/string_util.h b/include/string_util.h
index d7a005ec5..b921d2391 100644
--- a/include/string_util.h
+++ b/include/string_util.h
@@ -34,7 +34,7 @@ u8 *StringFill(u8 *dest, u8 c, u16 n);
u8 *StringCopyPadded(u8 *dest, const u8 *src, u8 c, u16 n);
u8 *StringFillWithTerminator(u8 *dest, u16 n);
u8 *StringCopyN_Multibyte(u8 *dest, u8 *src, u32 n);
-u32 StringLength_Multibyte(u8 *str);
+u32 StringLength_Multibyte(const u8 *str);
u8 *WriteColorChangeControlCode(u8 *dest, u32 colorType, u8 color);
bool32 IsStringJapanese(u8 *str);
bool32 sub_800924C(u8 *str, s32 n);
diff --git a/include/strings.h b/include/strings.h
index d16dd21f8..74f3ca727 100644
--- a/include/strings.h
+++ b/include/strings.h
@@ -1231,10 +1231,17 @@ extern const u8 gText_MtPyre[];
extern const u8 gText_SkyPillar[];
extern const u8 gText_DontRemember[];
extern const u8 gUnknown_085EB597[];
-extern const u8 gUnknown_085EB32D[];
-extern const u8 gUnknown_085EB33E[];
-extern const u8 gUnknown_085EB350[];
-extern const u8 gUnknown_085EB361[];
+extern const u8 gText_NormalTagMatch[];
+extern const u8 gText_VarietyTagMatch[];
+extern const u8 gText_UniqueTagMatch[];
+extern const u8 gText_ExpertTagMatch[];
+extern const u8 gText_TimeBoard[];
+extern const u8 gText_TimeCleared[];
+extern const u8 gText_XMinYDotZSec[];
+extern const u8 gText_TrainerHill1F[];
+extern const u8 gText_TrainerHill2F[];
+extern const u8 gText_TrainerHill3F[];
+extern const u8 gText_TrainerHill4F[];
extern const u8 OldaleTown_PokemonCenter_2F_Text_277F1B[];
extern const u8 OldaleTown_PokemonCenter_2F_Text_277F5A[];
@@ -2215,4 +2222,65 @@ extern const u8 gText_PreliminaryResults[];
extern const u8 gText_Round2Results[];
extern const u8 gText_Var1sVar2Won[];
-#endif //GUARD_STRINGS_H
+// Trainer Card
+extern const u8 gText_LinkCableBattles[];
+extern const u8 gText_LinkBattles[];
+extern const u8 gText_WaitingTrainerFinishReading[];
+extern const u8 gText_TrainerCardName[];
+extern const u8 gText_TrainerCardIDNo[];
+extern const u8 gText_TrainerCardMoney[];
+extern const u8 gText_PokedollarVar1[];
+extern const u8 gText_EmptyString6[];
+extern const u8 gText_TrainerCardPokedex[];
+extern const u8 gText_TrainerCardTime[];
+extern const u8 gText_Colon2[];
+extern const u8 gText_Var1sTrainerCard[];
+extern const u8 gText_HallOfFameDebut[];
+extern const u8 gText_WinsLosses[];
+extern const u8 gText_PokemonTrades[];
+extern const u8 gText_BerryCrush[];
+extern const u8 gText_UnionTradesAndBattles[];
+extern const u8 gText_Var1DarkGreyShadowLightGrey[];
+extern const u8 gText_PokeblocksWithFriends[];
+extern const u8 gText_WonContestsWFriends[];
+extern const u8 gText_WSlashStraightSlash[];
+extern const u8 gText_Var1DarkLightGreyBP[];
+extern const u8 gText_BattleTower[];
+extern const u8 gText_BattlePtsWon[];
+
+// Frontier Pass
+extern const u8 gText_SymbolsEarned[];
+extern const u8 gText_BattleRecord[];
+extern const u8 gText_BattlePoints[];
+extern const u8 gUnknown_085EDA96[];
+extern const u8 gUnknown_085ED932[];
+extern const u8 gUnknown_085ED94D[];
+extern const u8 gUnknown_085ED961[];
+extern const u8 gUnknown_085ED977[];
+extern const u8 gUnknown_085ED993[];
+extern const u8 gUnknown_085ED9AF[];
+extern const u8 gUnknown_085ED9C7[];
+extern const u8 gUnknown_085ED9E5[];
+extern const u8 gUnknown_085EDA02[];
+extern const u8 gUnknown_085EDA21[];
+extern const u8 gUnknown_085EDA3C[];
+extern const u8 gUnknown_085EDA5E[];
+extern const u8 gUnknown_085EDA78[];
+extern const u8 gUnknown_085ED931[];
+extern const u8 gUnknown_085EDAB1[];
+extern const u8 gUnknown_085EDB0F[];
+extern const u8 gUnknown_085EDABE[];
+extern const u8 gUnknown_085EDB4E[];
+extern const u8 gUnknown_085EDACA[];
+extern const u8 gUnknown_085EDB8B[];
+extern const u8 gUnknown_085EDAD8[];
+extern const u8 gUnknown_085EDBC2[];
+extern const u8 gUnknown_085EDAE5[];
+extern const u8 gUnknown_085EDC00[];
+extern const u8 gUnknown_085EDAF4[];
+extern const u8 gUnknown_085EDC45[];
+extern const u8 gUnknown_085EDB00[];
+extern const u8 gUnknown_085EDC84[];
+
+
+#endif // GUARD_STRINGS_H
diff --git a/include/trainer_card.h b/include/trainer_card.h
index 1af247d8a..1cadbd8fc 100644
--- a/include/trainer_card.h
+++ b/include/trainer_card.h
@@ -6,38 +6,47 @@ 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;
+ /*0x03*/ bool8 caughtAllHoenn;
+ /*0x04*/ bool8 hasAllPaintings;
+ /*0x06*/ u16 hofDebutHours;
+ /*0x08*/ u16 hofDebutMinutes;
+ /*0x0A*/ u16 hofDebutSeconds;
+ /*0x0C*/ u16 caughtMonsCount;
/*0x0E*/ u16 trainerId;
/*0x10*/ u16 playTimeHours;
/*0x12*/ u16 playTimeMinutes;
/*0x14*/ u16 linkBattleWins;
/*0x16*/ u16 linkBattleLosses;
/*0x18*/ u16 battleTowerWins;
- /*0x1A*/ u16 battleTowerLosses;
+ /*0x1A*/ u16 battleTowerStraightWins;
/*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[0x54-0x38];
- /*0x54*/ u16 monSpecies[2];
- /*0x58*/ u8 emeraldAddedUnknownFields2[0x64-0x58];
+ /*0x30*/ u8 playerName[PLAYER_NAME_LENGTH + 1];
+ /*0x38*/ u8 version;
+ /*0x3A*/ u16 var_3A;
+ /*0x3C*/ u32 berryCrushPoints;
+ /*0x40*/ u32 unionRoomNum;
+ /*0x44*/ u8 filler44[0x8];
+ /*0x4C*/ u8 var_4C;
+ /*0x4D*/ u8 var_4D;
+ /*0x4E*/ u8 var_4E;
+ /*0x4F*/ u8 var_4F;
+ /*0x50*/ u8 var_50[0x4];
+ /*0x54*/ u16 monSpecies[PARTY_SIZE];
+ /*0x60*/ bool16 hasAllSymbols;
+ /*0x62*/ u16 frontierBP;
};
extern struct TrainerCard gTrainerCards[4];
-void sub_80C3120(struct TrainerCard *arg0, u16 *arg1, u8 gameVersion);
-void TrainerCard_ShowLinkCard(u8 arg0, void (*callback)(void));
+u32 CountPlayerTrainerStars(void);
+u8 sub_80C4904(u8 cardId);
+void CopyTrainerCardData(struct TrainerCard *dst, u16 *src, u8 gameVersion);
+void ShowPlayerTrainerCard(void (*callback)(void));
+void ShowTrainerCardInLink(u8 arg0, void (*callback)(void));
void TrainerCard_GenerateCardForPlayer(struct TrainerCard *);
-u8 sub_80C4904(u8);
-void sub_80C6D80(const u8 *, u8 *, u8, u8, u8);
#endif // GUARD_TRAINER_CARD_H
diff --git a/include/trainer_hill.h b/include/trainer_hill.h
new file mode 100644
index 000000000..bbc4f45c5
--- /dev/null
+++ b/include/trainer_hill.h
@@ -0,0 +1,36 @@
+#ifndef GUARD_TRAINER_HILL_H
+#define GUARD_TRAINER_HILL_H
+
+extern u32 *gUnknown_0203CF5C;
+
+void CallTrainerHillFunction(void);
+void ResetTrainerHillResults(void);
+u8 GetTrainerHillOpponentClass(u16 trainerId);
+void GetTrainerHillTrainerName(u8 *dst, u16 trainerId);
+u8 GetTrainerHillTrainerFrontSpriteId(u16 trainerId);
+void InitTrainerHillBattleStruct(void);
+void FreeTrainerHillBattleStruct(void);
+void CopyTrainerHillTrainerText(u8 which, u16 trainerId);
+bool8 sub_81D5C18(void);
+void nullsub_129(void);
+void PrintOnTrainerHillRecordsWindow(void);
+void sub_81D5DF8(void);
+bool32 sub_81D5F48(void);
+void sub_81D5FB4(u16 *mapArg);
+bool32 InTrainerHill(void);
+u8 GetCurrentTrainerHillMapId(void);
+const struct WarpEvent* sub_81D6120(void);
+const struct WarpEvent* sub_81D6134(u8 warpEventId);
+u16 LocalIdToHillTrainerId(u8 localId);
+bool8 GetHillTrainerFlag(u8 eventObjectId);
+void SetHillTrainerFlag(void);
+const u8 *sub_81D62AC(void);
+void FillHillTrainerParty(void);
+void FillHillTrainersParties(void);
+u32 sub_81D63C4(void);
+u8 GetTrainerEncounterMusicIdInTrainerHill(u16 trainerId);
+u8 sub_81D6490(void);
+void sub_81D64C0(void);
+bool32 sub_81D6534(void);
+
+#endif // GUARD_TRAINER_HILL_H