diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/constants/flags.h | 20 | ||||
-rw-r--r-- | include/constants/items.h | 14 | ||||
-rw-r--r-- | include/constants/pokemon.h | 22 | ||||
-rw-r--r-- | include/field_player_avatar.h | 2 | ||||
-rw-r--r-- | include/graphics.h | 72 | ||||
-rw-r--r-- | include/menu.h | 13 | ||||
-rw-r--r-- | include/pokemon.h | 1 | ||||
-rw-r--r-- | include/pokenav.h | 84 | ||||
-rw-r--r-- | include/strings.h | 20 | ||||
-rw-r--r-- | include/trainer_card.h | 36 | ||||
-rw-r--r-- | include/trainer_pokemon_sprites.h | 2 |
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 |