summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/constants/flags.h20
-rw-r--r--include/constants/items.h14
-rw-r--r--include/constants/pokemon.h22
-rw-r--r--include/field_player_avatar.h2
-rw-r--r--include/graphics.h72
-rw-r--r--include/menu.h13
-rw-r--r--include/pokemon.h1
-rw-r--r--include/pokenav.h84
-rw-r--r--include/strings.h20
-rw-r--r--include/trainer_card.h36
-rw-r--r--include/trainer_pokemon_sprites.h2
11 files changed, 205 insertions, 81 deletions
diff --git a/include/constants/flags.h b/include/constants/flags.h
index 1163e394f..e0b383d7b 100644
--- a/include/constants/flags.h
+++ b/include/constants/flags.h
@@ -1353,22 +1353,24 @@
#define SYSTEM_FLAGS (TRAINER_FLAGS_END + 1) // 0x860
-#define FLAG_SYS_POKEMON_GET (SYSTEM_FLAGS + 0) // FLAG_0x860
-#define FLAG_SYS_POKEDEX_GET (SYSTEM_FLAGS + 1)
-#define FLAG_SYS_POKENAV_GET (SYSTEM_FLAGS + 2)
-#define FLAG_SYS_GAME_CLEAR (SYSTEM_FLAGS + 4)
-#define FLAG_SYS_CHAT_USED (SYSTEM_FLAGS + 5)
-#define FLAG_SYS_HIPSTER_MEET (SYSTEM_FLAGS + 6)
+#define FLAG_SYS_POKEMON_GET (SYSTEM_FLAGS + 0x0) // FLAG_0x860
+#define FLAG_SYS_POKEDEX_GET (SYSTEM_FLAGS + 0x1)
+#define FLAG_SYS_POKENAV_GET (SYSTEM_FLAGS + 0x2)
+#define FLAG_UNUSED_0x863 (SYSTEM_FLAGS + 0x3)
+#define FLAG_SYS_GAME_CLEAR (SYSTEM_FLAGS + 0x4)
+#define FLAG_SYS_CHAT_USED (SYSTEM_FLAGS + 0x5)
+#define FLAG_SYS_HIPSTER_MEET (SYSTEM_FLAGS + 0x6)
// Badges
-#define FLAG_BADGE01_GET (SYSTEM_FLAGS + 7)
-#define FLAG_BADGE02_GET (SYSTEM_FLAGS + 8)
-#define FLAG_BADGE03_GET (SYSTEM_FLAGS + 9)
+#define FLAG_BADGE01_GET (SYSTEM_FLAGS + 0x7)
+#define FLAG_BADGE02_GET (SYSTEM_FLAGS + 0x8)
+#define FLAG_BADGE03_GET (SYSTEM_FLAGS + 0x9)
#define FLAG_BADGE04_GET (SYSTEM_FLAGS + 0xA)
#define FLAG_BADGE05_GET (SYSTEM_FLAGS + 0xB)
#define FLAG_BADGE06_GET (SYSTEM_FLAGS + 0xC)
#define FLAG_BADGE07_GET (SYSTEM_FLAGS + 0xD)
#define FLAG_BADGE08_GET (SYSTEM_FLAGS + 0xE)
+#define NUM_BADGES (1 + FLAG_BADGE08_GET - FLAG_BADGE01_GET)
// Towns and Cities
#define FLAG_VISITED_LITTLEROOT_TOWN (SYSTEM_FLAGS + 0xF)
diff --git a/include/constants/items.h b/include/constants/items.h
index c23816901..fafcac8b1 100644
--- a/include/constants/items.h
+++ b/include/constants/items.h
@@ -478,13 +478,13 @@
#define FIRST_ROUTE_114_MAN_BERRY ITEM_RAZZ_BERRY
#define LAST_ROUTE_114_MAN_BERRY ITEM_PINAP_BERRY
-#define NUM_BERRY_MASTER_BERRIES LAST_BERRY_MASTER_BERRY - FIRST_BERRY_MASTER_BERRY + 1
-#define NUM_BERRY_MASTER_BERRIES_SKIPPED FIRST_BERRY_MASTER_BERRY - FIRST_BERRY_INDEX
-#define NUM_BERRY_MASTER_WIFE_BERRIES LAST_BERRY_MASTER_WIFE_BERRY - FIRST_BERRY_MASTER_WIFE_BERRY + 1
-#define NUM_KIRI_BERRIES LAST_KIRI_BERRY - FIRST_KIRI_BERRY + 1
-#define NUM_KIRI_BERRIES_SKIPPED FIRST_KIRI_BERRY - FIRST_BERRY_INDEX
-#define NUM_ROUTE_114_MAN_BERRIES LAST_ROUTE_114_MAN_BERRY - FIRST_ROUTE_114_MAN_BERRY + 1
-#define NUM_ROUTE_114_MAN_BERRIES_SKIPPED FIRST_ROUTE_114_MAN_BERRY - FIRST_BERRY_INDEX
+#define NUM_BERRY_MASTER_BERRIES (LAST_BERRY_MASTER_BERRY - FIRST_BERRY_MASTER_BERRY + 1)
+#define NUM_BERRY_MASTER_BERRIES_SKIPPED (FIRST_BERRY_MASTER_BERRY - FIRST_BERRY_INDEX)
+#define NUM_BERRY_MASTER_WIFE_BERRIES (LAST_BERRY_MASTER_WIFE_BERRY - FIRST_BERRY_MASTER_WIFE_BERRY + 1)
+#define NUM_KIRI_BERRIES (LAST_KIRI_BERRY - FIRST_KIRI_BERRY + 1)
+#define NUM_KIRI_BERRIES_SKIPPED (FIRST_KIRI_BERRY - FIRST_BERRY_INDEX)
+#define NUM_ROUTE_114_MAN_BERRIES (LAST_ROUTE_114_MAN_BERRY - FIRST_ROUTE_114_MAN_BERRY + 1)
+#define NUM_ROUTE_114_MAN_BERRIES_SKIPPED (FIRST_ROUTE_114_MAN_BERRY - FIRST_BERRY_INDEX)
#define ITEM_TO_BERRY(itemId)(((itemId - FIRST_BERRY_INDEX) + 1))
diff --git a/include/constants/pokemon.h b/include/constants/pokemon.h
index 97e3f0686..b5c60f64d 100644
--- a/include/constants/pokemon.h
+++ b/include/constants/pokemon.h
@@ -203,15 +203,16 @@
#define MON_FEMALE 0xFE
#define MON_GENDERLESS 0xFF
-#define FRIENDSHIP_EVENT_GROW_LEVEL 0
-#define FRIENDSHIP_EVENT_VITAMIN 1 // unused
-#define FRIENDSHIP_EVENT_BATTLE_ITEM 2 // unused
-#define FRIENDSHIP_EVENT_LEAGUE_BATTLE 3
-#define FRIENDSHIP_EVENT_LEARN_TMHM 4
-#define FRIENDSHIP_EVENT_WALKING 5
-#define FRIENDSHIP_EVENT_FAINT_SMALL 6
-#define FRIENDSHIP_EVENT_FAINT_OUTSIDE_BATTLE 7
-#define FRIENDSHIP_EVENT_FAINT_LARGE 8
+// Constants for AdjustFriendship
+#define FRIENDSHIP_EVENT_GROW_LEVEL 0
+#define FRIENDSHIP_EVENT_VITAMIN 1 // unused, handled by PokemonUseItemEffects
+#define FRIENDSHIP_EVENT_BATTLE_ITEM 2 // unused, handled by PokemonUseItemEffects
+#define FRIENDSHIP_EVENT_LEAGUE_BATTLE 3
+#define FRIENDSHIP_EVENT_LEARN_TMHM 4
+#define FRIENDSHIP_EVENT_WALKING 5
+#define FRIENDSHIP_EVENT_FAINT_SMALL 6
+#define FRIENDSHIP_EVENT_FAINT_FIELD_PSN 7
+#define FRIENDSHIP_EVENT_FAINT_LARGE 8 // If opponent was >= 30 levels higher. See AdjustFriendshipOnBattleFaint
#define MAX_FRIENDSHIP 0xFF
@@ -278,4 +279,7 @@
#define EVOS_PER_MON 5
+#define NUM_MALE_LINK_FACILITY_CLASSES 8
+#define NUM_FEMALE_LINK_FACILITY_CLASSES 8
+
#endif // GUARD_CONSTANTS_POKEMON_H
diff --git a/include/field_player_avatar.h b/include/field_player_avatar.h
index a619c2feb..5e5a2361f 100644
--- a/include/field_player_avatar.h
+++ b/include/field_player_avatar.h
@@ -63,6 +63,6 @@ bool32 sub_808D1B4(void);
bool32 sub_808D1E8(void);
void SetPlayerInvisibility(bool8 invisible);
u8 player_get_pos_including_state_based_drift(s16 *x, s16 *y);
-void StartFishing(u8 taskId);
+void StartFishing(u8 rod);
#endif // GUARD_FIELD_PLAYER_AVATAR_H
diff --git a/include/graphics.h b/include/graphics.h
index a8d4453b0..b0bb0a729 100644
--- a/include/graphics.h
+++ b/include/graphics.h
@@ -4819,7 +4819,54 @@ extern const u32 sBlenderCenterGfx[];
extern const u32 gUnknown_08D91DB8[];
extern const u32 gUnknown_08D927EC[];
+// Slot Machine
extern const u32 gSlotMachineReelTime_Gfx[];
+extern const u8 gSlotMachineReelTimeNumber0[];
+extern const u8 gSlotMachineReelTimeNumber1[];
+extern const u8 gSlotMachineReelTimeNumber2[];
+extern const u8 gSlotMachineReelTimeNumber3[];
+extern const u8 gSlotMachineReelTimeNumber4[];
+extern const u8 gSlotMachineReelTimeNumber5[];
+extern const u8 gSlotMachineReelTimeShadow[];
+extern const u8 gUnknown_08DD1A18[];
+extern const u8 gSlotMachineReelTimeLargeBolt0[];
+extern const u8 gSlotMachineReelTimeLargeBolt1[];
+extern const u8 gSlotMachineReelTimePikaAura[];
+extern const u8 gSlotMachineReelTimeExplosion0[];
+extern const u8 gSlotMachineReelTimeExplosion1[];
+extern const u8 gSlotMachineReelTimeDuck[];
+extern const u8 gSlotMachineReelTimeSmoke[];
+extern const u8 gSlotMachineReelTimeBolt[];
+extern const u8 gSlotMachineReelSymbol1Tiles[];
+extern const u8 gSlotMachineReelSymbol2Tiles[];
+extern const u8 gSlotMachineReelSymbol3Tiles[];
+extern const u8 gSlotMachineReelSymbol4Tiles[];
+extern const u8 gSlotMachineReelSymbol5Tiles[];
+extern const u8 gSlotMachineReelSymbol6Tiles[];
+extern const u8 gSlotMachineReelSymbol7Tiles[];
+extern const u8 gSlotMachineNumber0Tiles[];
+extern const u8 gSlotMachineNumber1Tiles[];
+extern const u8 gSlotMachineNumber2Tiles[];
+extern const u8 gSlotMachineNumber3Tiles[];
+extern const u8 gSlotMachineNumber4Tiles[];
+extern const u8 gSlotMachineNumber5Tiles[];
+extern const u8 gSlotMachineNumber6Tiles[];
+extern const u8 gSlotMachineNumber7Tiles[];
+extern const u8 gSlotMachineNumber8Tiles[];
+extern const u8 gSlotMachineNumber9Tiles[];
+extern const u8 gUnknown_08DD19F8[];
+extern const u32 gSlotMachineMenu_Gfx[];
+extern const u16 gSlotMachineMenu_Tilemap[];
+extern const u16 gUnknown_08DCEC70[];
+extern const u16 gSlotMachineMenu_Pal[];
+extern const u16 gUnknown_08DCF230[];
+extern const u16 gUnknown_08DCF170[];
+extern const u16 gUnknown_08DCF1B0[];
+extern const u16 gSlotMachineReelTime_Pal[];
+extern const u16 gUnknown_08DCF1F0[];
+extern const u16 gUnknown_08DCF210[];
+extern const u16 gUnknown_08DCF230[];
+extern const u16 gUnknown_08DCF190[];
extern const u32 gUnknown_08D8D410[];
extern const u32 gUnknown_08D8D58C[];
@@ -4877,7 +4924,6 @@ extern const u32 gRouletteNumbersTiles[];
extern const u32 gRouletteMultiplierTiles[];
// Contest Link
-extern const u32 gUnknown_0858D6B0[];
extern const u32 gUnknown_08C19588[];
extern const u32 gUnknown_08C19EEC[];
extern const u32 gUnknown_08C1A000[];
@@ -4896,18 +4942,18 @@ 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[];
+extern const u16 gHoennTrainerCard0Star_Pal[];
+extern const u32 gHoennTrainerCard_Gfx[];
+extern const u16 gKantoTrainerCard0Star_Pal[];
+extern const u32 gKantoTrainerCard_Gfx[];
+extern const u32 gKantoTrainerCardBg_Tilemap[];
+extern const u32 gHoennTrainerCardBack_Tilemap[];
+extern const u32 gKantoTrainerCardBack_Tilemap[];
+extern const u32 gHoennTrainerCardFront_Tilemap[];
+extern const u32 gKantoTrainerCardFront_Tilemap[];
+extern const u32 gHoennTrainerCardFrontLink_Tilemap[];
+extern const u32 gKantoTrainerCardFrontLink_Tilemap[];
+extern const u32 gHoennTrainerCardBg_Tilemap[];
// Frontier Pass
extern const u32 gUnknown_08DE08C8[];
diff --git a/include/menu.h b/include/menu.h
index 56865bcd9..d4a038920 100644
--- a/include/menu.h
+++ b/include/menu.h
@@ -8,6 +8,15 @@
#define MENU_NOTHING_CHOSEN -2
#define MENU_B_PRESSED -1
+enum
+{
+ SAVE_MENU_NAME,
+ SAVE_MENU_CAUGHT,
+ SAVE_MENU_PLAY_TIME,
+ SAVE_MENU_LOCATION,
+ SAVE_MENU_BADGES,
+};
+
struct MenuAction
{
const u8 *text;
@@ -23,7 +32,7 @@ void FreeAllOverworldWindowBuffers(void);
void InitStandardTextBoxWindows(void);
void sub_8197200(void);
u16 RunTextPrintersAndIsPrinter0Active(void);
-void sub_81973A4(void);
+void LoadMessageBoxAndBorderGfx(void);
void DrawDialogueFrame(u8 windowId, bool8 copyToVram);
void ClearStdWindowAndFrame(u8 windowId, bool8 copyToVram);
u16 AddTextPrinterParameterized2(u8 windowId, u8 fontId, const u8 *str, u8 speed, void (*callback)(struct TextPrinterTemplate *, u16), u8 fgColor, u8 bgColor, u8 shadowColor);
@@ -80,7 +89,7 @@ void sub_819786C(u8 windowId, bool8 copyToVram);
void AddTextPrinterForMessage_2(bool8 allowSkippingDelayWithButtonPress);
void RemoveStartMenuWindow(void);
void DisplayYesNoMenuWithDefault(u8 initialCursorPos);
-void sub_819A344(u8 a0, u8 *dest, u8 color);
+void BufferSaveMenuText(u8 textId, u8 *dest, u8 color);
void RemoveMapNamePopUpWindow(void);
u8 GetMapNamePopUpWindowId(void);
u8 AddMapNamePopUpWindow(void);
diff --git a/include/pokemon.h b/include/pokemon.h
index 2e28ae0f5..7ac65d36b 100644
--- a/include/pokemon.h
+++ b/include/pokemon.h
@@ -413,7 +413,6 @@ void HandleSetPokedexFlag(u16 nationalNum, u8 caseId, u32 personality);
const u8 *GetTrainerClassNameFromId(u16 trainerId);
const u8 *GetTrainerNameFromId(u16 trainerId);
bool8 HasTwoFramesAnimation(u16 species);
-bool8 sub_806F104(void);
struct Unknown_806F160_Struct *sub_806F2AC(u8 id, u8 arg1);
void sub_806F47C(u8 id);
u8 *sub_806F4F8(u8 id, u8 arg1);
diff --git a/include/pokenav.h b/include/pokenav.h
index f12469e71..fe5616618 100644
--- a/include/pokenav.h
+++ b/include/pokenav.h
@@ -87,6 +87,39 @@ enum
enum
{
+ POKENAV_MENU_TYPE_DEFAULT,
+ POKENAV_MENU_TYPE_UNLOCK_MC,
+ POKENAV_MENU_TYPE_UNLOCK_MC_RIBBONS,
+ POKENAV_MENU_TYPE_CONDITION,
+ POKENAV_MENU_TYPE_CONDITION_SEARCH,
+ POKENAV_MENU_TYPE_COUNT
+};
+
+// Global IDs for menu selections
+// As opposed to the cursor position, which is only relative to the number of options for the current menu
+enum
+{
+ POKENAV_MENUITEM_MAP,
+ POKENAV_MENUITEM_CONDITION,
+ POKENAV_MENUITEM_MATCH_CALL,
+ POKENAV_MENUITEM_RIBBONS,
+ POKENAV_MENUITEM_SWITCH_OFF,
+ POKENAV_MENUITEM_CONDITION_PARTY,
+ POKENAV_MENUITEM_CONDITION_SEARCH,
+ POKENAV_MENUITEM_CONDITION_CANCEL,
+ POKENAV_MENUITEM_CONDITION_SEARCH_COOL,
+ POKENAV_MENUITEM_CONDITION_SEARCH_BEAUTY,
+ POKENAV_MENUITEM_CONDITION_SEARCH_CUTE,
+ POKENAV_MENUITEM_CONDITION_SEARCH_SMART,
+ POKENAV_MENUITEM_CONDITION_SEARCH_TOUGH,
+ POKENAV_MENUITEM_CONDITION_SEARCH_CANCEL,
+};
+
+// Max menu options (condition search uses 6)
+#define MAX_POKENAV_MENUITEMS 6
+
+enum
+{
HELPBAR_NONE,
HELPBAR_MAP_ZOOMED_OUT,
HELPBAR_MAP_ZOOMED_IN,
@@ -150,6 +183,23 @@ enum
[CHECK_PAGE_INTRO_1] = gText_MatchCall##name##_Intro1, \
[CHECK_PAGE_INTRO_2] = gText_MatchCall##name##_Intro2}
+
+// Pokenav Function IDs
+// Indices into the LoopedTask tables for each of the main Pokenav features
+
+enum
+{
+ POKENAV_MENU_FUNC_NONE,
+ POKENAV_MENU_FUNC_MOVE_CURSOR,
+ POKENAV_MENU_FUNC_OPEN_CONDITION,
+ POKENAV_MENU_FUNC_RETURN_TO_MAIN,
+ POKENAV_MENU_FUNC_OPEN_CONDITION_SEARCH,
+ POKENAV_MENU_FUNC_RETURN_TO_CONDITION,
+ POKENAV_MENU_FUNC_NO_RIBBON_WINNERS,
+ POKENAV_MENU_FUNC_RESHOW_DESCRIPTION,
+ POKENAV_MENU_FUNC_OPEN_FEATURE,
+};
+
enum
{
POKENAV_MC_FUNC_NONE,
@@ -171,8 +221,8 @@ enum
};
// pokenav.c
-void sub_81C7694(u32);
-u32 sub_81C76AC(void);
+void SetSelectedConditionSearch(u32);
+u32 GetSelectedConditionSearch(void);
void CB2_InitPokeNav(void);
u32 CreateLoopedTask(LoopedTask loopedTask, u32 priority);
@@ -247,7 +297,7 @@ bool32 WaitForPokenavShutdownFade(void);
void sub_81C7834(void *func1, void *func2);
void ShutdownPokenav(void);
-// pokenav_unk_1.c
+// pokenav_menu_handler_1.c
bool32 PokenavCallback_Init_0(void);
bool32 PokenavCallback_Init_4(void);
bool32 PokenavCallback_Init_5(void);
@@ -255,20 +305,20 @@ bool32 PokenavCallback_Init_2(void);
bool32 PokenavCallback_Init_3(void);
u32 sub_81C941C(void);
void sub_81C9430(void);
-int sub_81C9894(void);
-int sub_81C98A4(void);
-int sub_81C98B4(void);
+int GetPokenavMenuType(void);
+int GetPokenavCursorPos(void);
+int GetCurrentMenuItemId(void);
u16 GetHelpBarTextId(void);
-// pokenav_unk_2.c
+// pokenav_menu_handler_2.c
bool32 sub_81C9924(void);
bool32 sub_81C9940(void);
-void sub_81C9990(s32 ltIdx);
+void CreateMenuHandlerLoopedTask(s32 ltIdx);
bool32 sub_81C99C0(void);
void sub_81C99D4(void);
void sub_81CAADC(void);
-// pokenav_unk_3.c
+// pokenav_match_call_1.c
bool32 PokenavCallback_Init_11(void);
u32 sub_81CAB24(void);
void sub_81CAB38(void);
@@ -290,13 +340,13 @@ int GetIndexDeltaOfNextCheckPageDown(int index);
int GetIndexDeltaOfNextCheckPageUp(int index);
bool32 IsRematchEntryRegistered(int index);
-// pokenav_unk_4.c
+// pokenav_match_call_2.c
bool32 sub_81CB260(void);
-void sub_81CB29C(s32 index);
+void CreateMatchCallLoopedTask(s32 index);
u32 sub_81CB2CC(void);
void sub_81CB2E0(void);
-// pokenav_unk_5.c
+// pokenav_region_map.c
u32 PokenavCallback_Init_6(void);
void sub_81CC524(void);
u32 sub_81CC554(void);
@@ -305,7 +355,7 @@ void sub_81CC62C(s32);
u32 sub_81CC65C(void);
void sub_81CC670(void);
-// pokenav_unk_6.c
+// pokenav_conditions_1.c
u32 PokenavCallback_Init_7(void);
u32 PokenavCallback_Init_9(void);
u32 sub_81CD070(void);
@@ -324,14 +374,14 @@ u16 sub_81CDD48(void);
void *sub_81CDCB4(u8 id);
void *sub_81CDCD4(u8 id);
-// pokenav_unk_7.c
+// pokenav_conditions_2.c
bool32 sub_81CDDD4(void);
void sub_81CDE2C(s32);
u32 sub_81CDE64(void);
void sub_81CECA0(void);
u8 sub_81CEF14(void);
-// pokenav_unk_8.c
+// pokenav_conditions_3.c
u32 PokenavCallback_Init_8(void);
u32 PokenavCallback_Init_10(void);
u32 sub_81CEFDC(void);
@@ -342,7 +392,7 @@ void sub_81CF3A0(s32);
u32 sub_81CF3D0(void);
void sub_81CF3F8(void);
-// pokenav_unk_9.c
+// pokenav_ribbons_1.c
u32 PokenavCallback_Init_12(void);
u32 PokenavCallback_Init_14(void);
u32 sub_81CFA34(void);
@@ -353,7 +403,7 @@ void sub_81CFE40(s32);
u32 sub_81CFE70(void);
void sub_81CFE98(void);
-// pokenav_unk_10.c
+// pokenav_ribbons_2.c
u32 PokenavCallback_Init_13(void);
u32 sub_81D04A0(void);
void sub_81D04B8(void);
diff --git a/include/strings.h b/include/strings.h
index eda1c55e4..a1912fb32 100644
--- a/include/strings.h
+++ b/include/strings.h
@@ -2514,11 +2514,11 @@ 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_NumPokeblocks[];
extern const u8 gText_PokeblocksWithFriends[];
extern const u8 gText_WonContestsWFriends[];
-extern const u8 gText_WSlashStraightSlash[];
-extern const u8 gText_Var1DarkLightGreyBP[];
+extern const u8 gText_WinsStraight[];
+extern const u8 gText_NumBP[];
extern const u8 gText_BattleTower[];
extern const u8 gText_BattlePtsWon[];
@@ -2914,8 +2914,11 @@ extern const u8 gText_NumberRegistered[];
extern const u8 gText_NumberOfBattles[];
extern const u8 gText_Unknown[];
extern const u8 gText_TrainerCloseBy[];
+extern const u8 gText_Call[];
+extern const u8 gText_Check[];
+extern const u8 gText_Cancel6[];
-// pokenav_unk_2
+// Pokenav Menu Handler
extern const u8 gText_CheckMapOfHoenn[];
extern const u8 gText_CheckPokemonInDetail[];
extern const u8 gText_CallRegisteredTrainer[];
@@ -2932,15 +2935,8 @@ extern const u8 gText_FindToughPokemon[];
extern const u8 gText_ReturnToConditionMenu[];
extern const u8 gText_NoRibbonWinners[];
-// pokenav_unk_4
-extern const u8 gText_Call[];
-extern const u8 gText_Check[];
-extern const u8 gText_Cancel6[];
-
-// pokenav_unk_8
+// Pokenav Ribbons
extern const u8 gText_NumberF700[];
-
-// pokenav_unk_10
extern const u8 gText_RibbonsF700[];
// use_pokeblock
diff --git a/include/trainer_card.h b/include/trainer_card.h
index 173d23baa..685d1cdca 100644
--- a/include/trainer_card.h
+++ b/include/trainer_card.h
@@ -1,6 +1,24 @@
#ifndef GUARD_TRAINER_CARD_H
#define GUARD_TRAINER_CARD_H
+#define TRAINER_CARD_PROFILE_LENGTH 4
+#define TRAINER_CARD_STICKER_TYPES 3
+
+enum
+{
+ CARD_TYPE_FRLG,
+ CARD_TYPE_RS,
+ CARD_TYPE_EMERALD,
+};
+
+enum
+{
+ MON_ICON_TINT_NORMAL,
+ MON_ICON_TINT_BLACK,
+ MON_ICON_TINT_PINK,
+ MON_ICON_TINT_SEPIA,
+};
+
struct TrainerCard
{
/*0x00*/ u8 gender;
@@ -23,19 +41,19 @@ struct TrainerCard
/*0x1E*/ u16 pokeblocksWithFriends;
/*0x20*/ u16 pokemonTrades;
/*0x24*/ u32 money;
- /*0x28*/ u16 var_28[4];
+ /*0x28*/ u16 easyChatProfile[TRAINER_CARD_PROFILE_LENGTH];
/*0x30*/ u8 playerName[PLAYER_NAME_LENGTH + 1];
/*0x38*/ u8 version;
- /*0x3A*/ u16 var_3A;
+ /*0x3A*/ bool16 hasAllFrontierSymbols;
/*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];
+ /*0x44*/ u8 filler[8];
+ /*0x4C*/ bool8 shouldDrawStickers; // FRLG only
+ /*0x4D*/ u8 unused;
+ /*0x4E*/ u8 monIconTint; // FRLG only
+ /*0x4F*/ u8 facilityClass;
+ /*0x50*/ u8 stickers[TRAINER_CARD_STICKER_TYPES]; // FRLG only
+ /*0x54*/ u16 monSpecies[PARTY_SIZE]; // FRLG only
/*0x60*/ bool16 hasAllSymbols;
/*0x62*/ u16 frontierBP;
};
diff --git a/include/trainer_pokemon_sprites.h b/include/trainer_pokemon_sprites.h
index 90ceedaf5..d4390608e 100644
--- a/include/trainer_pokemon_sprites.h
+++ b/include/trainer_pokemon_sprites.h
@@ -7,7 +7,7 @@ u16 CreateMonPicSprite_HandleDeoxys(u16 species, u32 otId, u32 personality, bool
u16 FreeAndDestroyMonPicSprite(u16 spriteId);
u16 CreateTrainerPicSprite(u16 species, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag);
u16 FreeAndDestroyTrainerPicSprite(u16 spriteId);
-u16 sub_818D938(u16 species, bool8 isFrontPic, u16 destX, u16 destY, u8 paletteSlot, u8 windowId);
+u16 CreateTrainerCardTrainerPicSprite(u16 species, bool8 isFrontPic, u16 destX, u16 destY, u8 paletteSlot, u8 windowId);
u16 PlayerGenderToFrontTrainerPicId_Debug(u8 gender, bool8 getClass);
#endif // GUARD_TRAINER_POKEMON_SPRITES_H