diff options
author | GriffinR <griffin.g.richards@gmail.com> | 2020-01-12 22:42:43 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-01-12 22:42:43 -0500 |
commit | 655910a16fcb7b62cf43b83bb00b21a9c3e55e82 (patch) | |
tree | a619369a0d8b263f82d660ad7800f4b42328bb07 /include | |
parent | 635267ce32bd696fe15391449efdf07fa35cf449 (diff) | |
parent | fa5816915d2a089549bfae3851c36336eae35d43 (diff) |
Merge branch 'master' into fix-eventobj
Diffstat (limited to 'include')
27 files changed, 2161 insertions, 285 deletions
diff --git a/include/battle_dome.h b/include/battle_dome.h index d1dfdb100..900508c4b 100644 --- a/include/battle_dome.h +++ b/include/battle_dome.h @@ -1,9 +1,9 @@ #ifndef GUARD_BATTLE_DOME_H #define GUARD_BATTLE_DOME_H -extern u32 gUnknown_0203CD70; +extern u32 gPlayerPartyLostHP; -int GetDomeTrainerMonCountInBits(u16 tournamentTrainerId); +int GetDomeTrainerSelectedMons(u16 tournamentTrainerId); int TrainerIdToDomeTournamentId(u16 trainerId); #endif // GUARD_BATTLE_DOME_H diff --git a/include/battle_tower.h b/include/battle_tower.h index 2366cac12..3bf2f004b 100644 --- a/include/battle_tower.h +++ b/include/battle_tower.h @@ -8,8 +8,8 @@ struct RSBattleTowerRecord /*0x02*/ u16 winStreak; /*0x04*/ u8 name[PLAYER_NAME_LENGTH + 1]; /*0x0C*/ u8 trainerId[TRAINER_ID_LENGTH]; - /*0x10*/ u16 greeting[6]; - /*0x1C*/ struct BattleTowerPokemon party[3]; + /*0x10*/ u16 greeting[EASY_CHAT_BATTLE_WORDS_COUNT]; + /*0x1C*/ struct BattleTowerPokemon party[FRONTIER_PARTY_SIZE]; /*0xA0*/ u32 checksum; }; @@ -18,10 +18,10 @@ struct BattleFrontierTrainer u8 facilityClass; u8 filler1[3]; u8 trainerName[PLAYER_NAME_LENGTH + 1]; - u16 speechBefore[6]; - u16 speechWin[6]; - u16 speechLose[6]; - const u16 *monSets; + u16 speechBefore[EASY_CHAT_BATTLE_WORDS_COUNT]; + u16 speechWin[EASY_CHAT_BATTLE_WORDS_COUNT]; + u16 speechLose[EASY_CHAT_BATTLE_WORDS_COUNT]; + const u16 *monSet; }; struct FacilityMon @@ -49,7 +49,7 @@ extern const struct BattleFrontierTrainer *gFacilityTrainers; extern const struct FacilityMon *gFacilityTrainerMons; void CallBattleTowerFunc(void); -u16 sub_8162548(u8 challengeNum, u8 battleNum); +u16 GetRandomScaledFrontierTrainerId(u8 challengeNum, u8 battleNum); void SetBattleFacilityTrainerGfxId(u16 trainerId, u8 tempVarId); void SetEReaderTrainerGfxId(void); u8 GetBattleFacilityTrainerGfxId(u16 trainerId); @@ -59,7 +59,7 @@ u8 GetFrontierOpponentClass(u16 trainerId); void GetFrontierTrainerName(u8 *dst, u16 trainerId); void FillFrontierTrainerParty(u8 monsCount); void FillFrontierTrainersParties(u8 monsCount); -u16 RandomizeFacilityTrainerMonSet(u16 trainerId); +u16 GetRandomFrontierMonFromSet(u16 trainerId); void FrontierSpeechToString(const u16 *words); void DoSpecialTrainerBattle(void); void CalcEmeraldBattleTowerChecksum(struct EmeraldBattleTowerRecord *record); @@ -71,7 +71,7 @@ void GetEreaderTrainerName(u8 *dst); void ValidateEReaderTrainer(void); void ClearEReaderTrainer(struct BattleTowerEReaderTrainer *ereaderTrainer); void CopyEReaderTrainerGreeting(void); -void sub_81653CC(void); +void TryHideBattleTowerReporter(void); bool32 RubyBattleTowerRecordToEmerald(struct RSBattleTowerRecord *src, struct EmeraldBattleTowerRecord *dst); bool32 EmeraldBattleTowerRecordToRuby(struct EmeraldBattleTowerRecord *src, struct RSBattleTowerRecord *dst); void CalcApprenticeChecksum(struct Apprentice *apprentice); diff --git a/include/constants/battle_dome.h b/include/constants/battle_dome.h index 48152cdbb..ea7310e55 100644 --- a/include/constants/battle_dome.h +++ b/include/constants/battle_dome.h @@ -1,6 +1,21 @@ #ifndef GUARD_CONSTANTS_BATTLE_DOME_H #define GUARD_CONSTANTS_BATTLE_DOME_H +#define DOME_ROUND1 0 +#define DOME_ROUND2 1 +#define DOME_SEMIFINAL 2 +#define DOME_FINAL 3 +#define DOME_ROUNDS_COUNT 4 + +//#define DOME_TOURNAMENT_TRAINERS_COUNT 16 -- defined in global +#define DOME_TOURNAMENT_MATCHES_COUNT DOME_TOURNAMENT_TRAINERS_COUNT - 1 + +#define DOME_BATTLE_PARTY_SIZE 2 + +#define DOME_PLAYER_WON_MATCH 1 +#define DOME_PLAYER_LOST_MATCH 2 +#define DOME_PLAYER_RETIRED 9 + #define BATTLE_DOME_FUNC_INIT 0 #define BATTLE_DOME_FUNC_GET_DATA 1 #define BATTLE_DOME_FUNC_SET_DATA 2 @@ -9,7 +24,7 @@ #define BATTLE_DOME_FUNC_INIT_OPPONENT_PARTY 5 #define BATTLE_DOME_FUNC_SHOW_OPPONENT_INFO 6 #define BATTLE_DOME_FUNC_SHOW_TOURNEY_TREE 7 -#define BATTLE_DOME_FUNC_SHOW_PREV_RESULTS_TREE 8 +#define BATTLE_DOME_FUNC_SHOW_PREV_TOURNEY_TREE 8 #define BATTLE_DOME_FUNC_SET_OPPONENT_ID 9 #define BATTLE_DOME_FUNC_SET_OPPONENT_GFX 10 #define BATTLE_DOME_FUNC_SHOW_STATIC_TOURNEY_TREE 11 @@ -22,24 +37,127 @@ #define BATTLE_DOME_FUNC_REDUCE_PARTY 18 #define BATTLE_DOME_FUNC_COMPARE_SEEDS 19 #define BATTLE_DOME_FUNC_GET_WINNER_NAME 20 -#define BATTLE_DOME_FUNC_21 21 +#define BATTLE_DOME_FUNC_INIT_RESULTS_TREE 21 #define BATTLE_DOME_FUNC_INIT_TRAINERS 22 -#define DOME_DATA_WIN_STREAK 0 -#define DOME_DATA_WIN_STREAK_ACTIVE 1 -#define DOME_DATA_2 2 -#define DOME_DATA_3 3 -#define DOME_DATA_4 4 -#define DOME_DATA_5 5 -#define DOME_DATA_6 6 -#define DOME_DATA_7 7 -#define DOME_DATA_8 8 -#define DOME_DATA_9 9 - -#define DOME_ROUND1 0 -#define DOME_ROUND2 1 -#define DOME_SEMIFINAL 2 -#define DOME_FINAL 3 -#define DOME_ROUNDS_COUNT 4 +#define DOME_DATA_WIN_STREAK 0 +#define DOME_DATA_WIN_STREAK_ACTIVE 1 +#define DOME_DATA_ATTEMPTED_SINGLES_50 2 +#define DOME_DATA_ATTEMPTED_SINGLES_OPEN 3 +#define DOME_DATA_HAS_WON_SINGLES_50 4 +#define DOME_DATA_HAS_WON_SINGLES_OPEN 5 +#define DOME_DATA_ATTEMPTED_CHALLENGE 6 +#define DOME_DATA_HAS_WON_CHALLENGE 7 +#define DOME_DATA_SELECTED_MONS 8 +#define DOME_DATA_PREV_TOURNEY_TYPE 9 + +// ID for Exit/Cancel on the tourney tree +#define TOURNEY_TREE_CLOSE_BUTTON 31 + +// Input IDs on the tourney tree +#define TOURNEY_TREE_SELECTED_CLOSE 0 +#define TOURNEY_TREE_NO_SELECTION 1 +#define TOURNEY_TREE_SELECTED_TRAINER 2 +#define TOURNEY_TREE_SELECTED_MATCH 3 + +// Modes for showing the tourney tree info card +#define INFOCARD_NEXT_OPPONENT 0 +#define INFOCARD_TRAINER 1 +#define INFOCARD_MATCH 2 + +// Input IDs for the info cards +#define INFOCARD_INPUT_NONE 0 +#define TRAINERCARD_INPUT_UP 1 +#define TRAINERCARD_INPUT_DOWN 2 +#define TRAINERCARD_INPUT_LEFT 3 +#define TRAINERCARD_INPUT_RIGHT 4 +#define MATCHCARD_INPUT_UP 5 +#define MATCHCARD_INPUT_DOWN 6 +#define MATCHCARD_INPUT_LEFT 7 +#define MATCHCARD_INPUT_RIGHT 8 +#define INFOCARD_INPUT_AB 9 + +#define CARD_ALTERNATE_SLOT (1 << 0) // When set, uses an alternate slot to store the incoming card sprites +#define MOVE_CARD_RIGHT (1 << 1) +#define MOVE_CARD_DOWN (1 << 2) +#define MOVE_CARD_LEFT (1 << 3) +#define MOVE_CARD_UP (1 << 4) +#define MOVE_CARD (MOVE_CARD_RIGHT | MOVE_CARD_DOWN | MOVE_CARD_LEFT | MOVE_CARD_UP) + +// Text IDs for sBattleDomeWinTexts +#define DOME_TEXT_NO_WINNER_YET 0 +#define DOME_TEXT_WON_USING_MOVE 1 +#define DOME_TEXT_CHAMP_USING_MOVE 2 +#define DOME_TEXT_WON_ON_FORFEIT 3 +#define DOME_TEXT_CHAMP_ON_FORFEIT 4 +#define DOME_TEXT_WON_NO_MOVES 5 +#define DOME_TEXT_CHAMP_NO_MOVES 6 + +// Offsets/start positions within sBattleDomeOpponentStatsTexts +#define DOME_TEXT_TWO_GOOD_STATS 0 +#define DOME_TEXT_ONE_GOOD_STAT 15 +#define DOME_TEXT_TWO_BAD_STATS 21 +#define DOME_TEXT_ONE_BAD_STAT 36 +#define DOME_TEXT_WELL_BALANCED 42 +#define DOME_TEXT_HP 0 +#define DOME_TEXT_ATK 5 +#define DOME_TEXT_DEF 9 +#define DOME_TEXT_SPEED 12 +#define DOME_TEXT_SPATK 14 + +// Move point indexes for sBattleStyleMovePoints[][], to determine Battle Dome trainers battle styles +#define MOVE_POINTS_COMBO 0 // Moves that work well in combination (e.g. Rain Dance + Hydro Pump) +#define MOVE_POINTS_STAT_RAISE 1 +#define MOVE_POINTS_STAT_LOWER 2 +#define MOVE_POINTS_RARE 3 // Uncommon moves. Mostly arbitrary +#define MOVE_POINTS_HEAL 4 +#define MOVE_POINTS_RISKY 5 +#define MOVE_POINTS_STATUS 6 +#define MOVE_POINTS_DMG 7 +#define MOVE_POINTS_DEF 8 // Defensive moves, like Amnesia, Light Screen, or accuracy-lowers +#define MOVE_POINTS_ACCURATE 9 +#define MOVE_POINTS_POWERFUL 10 // Most of the moves that are >= 100 power +#define MOVE_POINTS_POPULAR 11 // Group seems arbitrary. All using it are TM/HMs, but its only 11/58 +#define MOVE_POINTS_LUCK 12 +#define MOVE_POINTS_STRONG 13 // Most of the moves that are >= 90 power +#define MOVE_POINTS_LOW_PP 14 +#define MOVE_POINTS_EFFECT 15 // Moves with additional effects +#define NUM_MOVE_POINT_TYPES 16 + +// Battle style IDs for sBattleDomeOpponentStyleTexts +#define DOME_BATTLE_STYLE_RISKY 0 +#define DOME_BATTLE_STYLE_STALL 1 +#define DOME_BATTLE_STYLE_VARIED 2 +#define DOME_BATTLE_STYLE_COMBO_HIGH 3 +#define DOME_BATTLE_STYLE_RARE_MOVES 4 +#define DOME_BATTLE_STYLE_RARE_MOVE 5 +#define DOME_BATTLE_STYLE_HP 6 +#define DOME_BATTLE_STYLE_STORE_POWER 7 +#define DOME_BATTLE_STYLE_ENFEEBLE_LOW 8 +#define DOME_BATTLE_STYLE_LUCK 9 +#define DOME_BATTLE_STYLE_REGAL 10 +#define DOME_BATTLE_STYLE_LOW_PP 11 +#define DOME_BATTLE_STYLE_STATUS_ATK 12 +#define DOME_BATTLE_STYLE_ENDURE 13 +#define DOME_BATTLE_STYLE_STATUS 14 +#define DOME_BATTLE_STYLE_STRAIGHTFORWARD 15 +#define DOME_BATTLE_STYLE_AGGRESSIVE 16 +#define DOME_BATTLE_STYLE_DEF 17 +#define DOME_BATTLE_STYLE_ENFEEBLE_HIGH 18 +#define DOME_BATTLE_STYLE_POPULAR_POWER 19 +#define DOME_BATTLE_STYLE_COMBO_LOW 20 +#define DOME_BATTLE_STYLE_ACCURATE 21 +#define DOME_BATTLE_STYLE_POWERFUL 22 +#define DOME_BATTLE_STYLE_ATK_OVER_DEF 23 +#define DOME_BATTLE_STYLE_DEF_OVER_ATK 24 +#define DOME_BATTLE_STYLE_POPULAR_STRONG 25 +#define DOME_BATTLE_STYLE_EFFECTS 26 +#define DOME_BATTLE_STYLE_BALANCED 27 +#define DOME_BATTLE_STYLE_UNUSED1 28 +#define DOME_BATTLE_STYLE_UNUSED2 29 +#define DOME_BATTLE_STYLE_UNUSED3 30 +#define DOME_BATTLE_STYLE_UNUSED4 31 +#define NUM_BATTLE_STYLES 32 + #endif //GUARD_CONSTANTS_BATTLE_DOME_H diff --git a/include/constants/battle_frontier.h b/include/constants/battle_frontier.h index 0bf1ba02b..1a60714e8 100644 --- a/include/constants/battle_frontier.h +++ b/include/constants/battle_frontier.h @@ -6,9 +6,9 @@ // Battle Frontier facility ids. #define FRONTIER_FACILITY_TOWER 0 #define FRONTIER_FACILITY_DOME 1 -#define FRONTIER_FACILITY_PALACE 2 -#define FRONTIER_FACILITY_ARENA 3 -#define FRONTIER_FACILITY_FACTORY 4 +#define FRONTIER_FACILITY_PALACE 2 // also Verdanturf Tent +#define FRONTIER_FACILITY_ARENA 3 // also Fallarbor Tent +#define FRONTIER_FACILITY_FACTORY 4 // also Slateport Tent #define FRONTIER_FACILITY_PIKE 5 #define FRONTIER_FACILITY_PYRAMID 6 #define NUM_FRONTIER_FACILITIES 7 @@ -17,10 +17,6 @@ #define FACILITY_UNION_ROOM 8 #define FACILITY_MULTI_OR_EREADER 9 // Direct Corner multi battles, multi battle with Steven, and e-Reader battles -#define TENT_VERDANTURF 2 -#define TENT_FALLARBOR 3 -#define TENT_SLATEPORT 4 - // Battle Frontier lvl modes. #define FRONTIER_LVL_50 0 #define FRONTIER_LVL_OPEN 1 diff --git a/include/constants/battle_frontier_mons.h b/include/constants/battle_frontier_mons.h new file mode 100644 index 000000000..10e68980a --- /dev/null +++ b/include/constants/battle_frontier_mons.h @@ -0,0 +1,899 @@ +#ifndef GUARD_CONSTANTS_BATTLE_FRONTIER_MONS_H +#define GUARD_CONSTANTS_BATTLE_FRONTIER_MONS_H + +#define FRONTIER_MON_SUNKERN 0 +#define FRONTIER_MON_AZURILL 1 +#define FRONTIER_MON_CATERPIE 2 +#define FRONTIER_MON_WEEDLE 3 +#define FRONTIER_MON_WURMPLE 4 +#define FRONTIER_MON_RALTS 5 +#define FRONTIER_MON_MAGIKARP 6 +#define FRONTIER_MON_FEEBAS 7 +#define FRONTIER_MON_METAPOD 8 +#define FRONTIER_MON_KAKUNA 9 +#define FRONTIER_MON_PICHU 10 +#define FRONTIER_MON_SILCOON 11 +#define FRONTIER_MON_CASCOON 12 +#define FRONTIER_MON_IGGLYBUFF 13 +#define FRONTIER_MON_WOOPER 14 +#define FRONTIER_MON_TYROGUE 15 +#define FRONTIER_MON_SENTRET 16 +#define FRONTIER_MON_CLEFFA 17 +#define FRONTIER_MON_SEEDOT 18 +#define FRONTIER_MON_LOTAD 19 +#define FRONTIER_MON_POOCHYENA 20 +#define FRONTIER_MON_SHEDINJA 21 +#define FRONTIER_MON_MAKUHITA 22 +#define FRONTIER_MON_WHISMUR 23 +#define FRONTIER_MON_ZIGZAGOON 24 +#define FRONTIER_MON_ZUBAT 25 +#define FRONTIER_MON_TOGEPI 26 +#define FRONTIER_MON_SPINARAK 27 +#define FRONTIER_MON_MARILL 28 +#define FRONTIER_MON_HOPPIP 29 +#define FRONTIER_MON_SLUGMA 30 +#define FRONTIER_MON_SWINUB 31 +#define FRONTIER_MON_SMEARGLE 32 +#define FRONTIER_MON_PIDGEY 33 +#define FRONTIER_MON_RATTATA 34 +#define FRONTIER_MON_WYNAUT 35 +#define FRONTIER_MON_SKITTY 36 +#define FRONTIER_MON_SPEAROW 37 +#define FRONTIER_MON_HOOTHOOT 38 +#define FRONTIER_MON_DIGLETT 39 +#define FRONTIER_MON_LEDYBA 40 +#define FRONTIER_MON_NINCADA 41 +#define FRONTIER_MON_SURSKIT 42 +#define FRONTIER_MON_JIGGLYPUFF 43 +#define FRONTIER_MON_TAILLOW 44 +#define FRONTIER_MON_WINGULL 45 +#define FRONTIER_MON_NIDORAN_M 46 +#define FRONTIER_MON_NIDORAN_F 47 +#define FRONTIER_MON_KIRLIA 48 +#define FRONTIER_MON_MAREEP 49 +#define FRONTIER_MON_MEDITITE 50 +#define FRONTIER_MON_SLAKOTH 51 +#define FRONTIER_MON_PARAS 52 +#define FRONTIER_MON_EKANS 53 +#define FRONTIER_MON_DITTO 54 +#define FRONTIER_MON_BARBOACH 55 +#define FRONTIER_MON_MEOWTH 56 +#define FRONTIER_MON_PINECO 57 +#define FRONTIER_MON_TRAPINCH 58 +#define FRONTIER_MON_SPHEAL 59 +#define FRONTIER_MON_HORSEA 60 +#define FRONTIER_MON_SHROOMISH 61 +#define FRONTIER_MON_SHUPPET 62 +#define FRONTIER_MON_DUSKULL 63 +#define FRONTIER_MON_ELECTRIKE 64 +#define FRONTIER_MON_VULPIX 65 +#define FRONTIER_MON_PIKACHU 66 +#define FRONTIER_MON_SANDSHREW 67 +#define FRONTIER_MON_POLIWAG 68 +#define FRONTIER_MON_BELLSPROUT 69 +#define FRONTIER_MON_GEODUDE 70 +#define FRONTIER_MON_DRATINI 71 +#define FRONTIER_MON_SNUBBULL 72 +#define FRONTIER_MON_REMORAID 73 +#define FRONTIER_MON_LARVITAR 74 +#define FRONTIER_MON_BALTOY 75 +#define FRONTIER_MON_SNORUNT 76 +#define FRONTIER_MON_BAGON 77 +#define FRONTIER_MON_BELDUM 78 +#define FRONTIER_MON_GULPIN 79 +#define FRONTIER_MON_VENONAT 80 +#define FRONTIER_MON_MANKEY 81 +#define FRONTIER_MON_MACHOP 82 +#define FRONTIER_MON_SHELLDER 83 +#define FRONTIER_MON_SMOOCHUM 84 +#define FRONTIER_MON_NUMEL 85 +#define FRONTIER_MON_CARVANHA 86 +#define FRONTIER_MON_CORPHISH 87 +#define FRONTIER_MON_CHARMANDER 88 +#define FRONTIER_MON_CYNDAQUIL 89 +#define FRONTIER_MON_ABRA 90 +#define FRONTIER_MON_DODUO 91 +#define FRONTIER_MON_GASTLY 92 +#define FRONTIER_MON_SWABLU 93 +#define FRONTIER_MON_TREECKO 94 +#define FRONTIER_MON_TORCHIC 95 +#define FRONTIER_MON_MUDKIP 96 +#define FRONTIER_MON_SQUIRTLE 97 +#define FRONTIER_MON_TOTODILE 98 +#define FRONTIER_MON_SLOWPOKE 99 +#define FRONTIER_MON_BULBASAUR 100 +#define FRONTIER_MON_CHIKORITA 101 +#define FRONTIER_MON_ODDISH 102 +#define FRONTIER_MON_PSYDUCK 103 +#define FRONTIER_MON_CUBONE 104 +#define FRONTIER_MON_GOLDEEN 105 +#define FRONTIER_MON_NATU 106 +#define FRONTIER_MON_CLEFAIRY 107 +#define FRONTIER_MON_MAGNEMITE 108 +#define FRONTIER_MON_SEEL 109 +#define FRONTIER_MON_GRIMER 110 +#define FRONTIER_MON_KRABBY 111 +#define FRONTIER_MON_EXEGGCUTE 112 +#define FRONTIER_MON_EEVEE 113 +#define FRONTIER_MON_DROWZEE 114 +#define FRONTIER_MON_VOLTORB 115 +#define FRONTIER_MON_CHINCHOU 116 +#define FRONTIER_MON_TEDDIURSA 117 +#define FRONTIER_MON_DELIBIRD 118 +#define FRONTIER_MON_HOUNDOUR 119 +#define FRONTIER_MON_PHANPY 120 +#define FRONTIER_MON_SPOINK 121 +#define FRONTIER_MON_ARON 122 +#define FRONTIER_MON_LUVDISC 123 +#define FRONTIER_MON_TENTACOOL 124 +#define FRONTIER_MON_CACNEA 125 +#define FRONTIER_MON_UNOWN 126 +#define FRONTIER_MON_KOFFING 127 +#define FRONTIER_MON_STARYU 128 +#define FRONTIER_MON_SKIPLOOM 129 +#define FRONTIER_MON_NUZLEAF 130 +#define FRONTIER_MON_LOMBRE 131 +#define FRONTIER_MON_VIBRAVA 132 +#define FRONTIER_MON_RHYHORN 133 +#define FRONTIER_MON_CLAMPERL 134 +#define FRONTIER_MON_PIDGEOTTO 135 +#define FRONTIER_MON_GROWLITHE 136 +#define FRONTIER_MON_FARFETCHD 137 +#define FRONTIER_MON_OMANYTE 138 +#define FRONTIER_MON_KABUTO 139 +#define FRONTIER_MON_LILEEP 140 +#define FRONTIER_MON_ANORITH 141 +#define FRONTIER_MON_AIPOM 142 +#define FRONTIER_MON_ELEKID 143 +#define FRONTIER_MON_LOUDRED 144 +#define FRONTIER_MON_SPINDA 145 +#define FRONTIER_MON_NIDORINA 146 +#define FRONTIER_MON_NIDORINO 147 +#define FRONTIER_MON_FLAAFFY 148 +#define FRONTIER_MON_MAGBY 149 +#define FRONTIER_MON_NOSEPASS 150 +#define FRONTIER_MON_CORSOLA 151 +#define FRONTIER_MON_MAWILE 152 +#define FRONTIER_MON_BUTTERFREE 153 +#define FRONTIER_MON_BEEDRILL 154 +#define FRONTIER_MON_POLIWHIRL 155 +#define FRONTIER_MON_ONIX 156 +#define FRONTIER_MON_BEAUTIFLY 157 +#define FRONTIER_MON_DUSTOX 158 +#define FRONTIER_MON_LEDIAN 159 +#define FRONTIER_MON_ARIADOS 160 +#define FRONTIER_MON_YANMA 161 + +#define FRONTIER_MON_DELCATTY_1 162 +#define FRONTIER_MON_SABLEYE_1 163 +#define FRONTIER_MON_LICKITUNG_1 164 +#define FRONTIER_MON_WEEPINBELL_1 165 +#define FRONTIER_MON_GRAVELER_1 166 +#define FRONTIER_MON_GLOOM_1 167 +#define FRONTIER_MON_PORYGON_1 168 +#define FRONTIER_MON_KADABRA_1 169 +#define FRONTIER_MON_WAILMER_1 170 +#define FRONTIER_MON_ROSELIA_1 171 +#define FRONTIER_MON_VOLBEAT_1 172 +#define FRONTIER_MON_ILLUMISE_1 173 +#define FRONTIER_MON_IVYSAUR_1 174 +#define FRONTIER_MON_CHARMELEON_1 175 +#define FRONTIER_MON_WARTORTLE_1 176 +#define FRONTIER_MON_PARASECT_1 177 +#define FRONTIER_MON_MACHOKE_1 178 +#define FRONTIER_MON_HAUNTER_1 179 +#define FRONTIER_MON_BAYLEEF_1 180 +#define FRONTIER_MON_QUILAVA_1 181 +#define FRONTIER_MON_CROCONAW_1 182 +#define FRONTIER_MON_TOGETIC_1 183 +#define FRONTIER_MON_MURKROW_1 184 +#define FRONTIER_MON_WOBBUFFET_1 185 +#define FRONTIER_MON_PLUSLE_1 186 +#define FRONTIER_MON_MINUN_1 187 +#define FRONTIER_MON_GROVYLE_1 188 +#define FRONTIER_MON_COMBUSKEN_1 189 +#define FRONTIER_MON_MARSHTOMP_1 190 +#define FRONTIER_MON_PONYTA_1 191 +#define FRONTIER_MON_AZUMARILL_1 192 +#define FRONTIER_MON_SUDOWOODO_1 193 +#define FRONTIER_MON_MAGCARGO_1 194 +#define FRONTIER_MON_PUPITAR_1 195 +#define FRONTIER_MON_SEALEO_1 196 +#define FRONTIER_MON_RATICATE_1 197 +#define FRONTIER_MON_MASQUERAIN_1 198 +#define FRONTIER_MON_FURRET_1 199 +#define FRONTIER_MON_DUNSPARCE_1 200 +#define FRONTIER_MON_DRAGONAIR_1 201 +#define FRONTIER_MON_MIGHTYENA_1 202 +#define FRONTIER_MON_LINOONE_1 203 +#define FRONTIER_MON_CASTFORM_1 204 +#define FRONTIER_MON_SHELGON_1 205 +#define FRONTIER_MON_METANG_1 206 +#define FRONTIER_MON_WIGGLYTUFF_1 207 +#define FRONTIER_MON_SUNFLORA_1 208 +#define FRONTIER_MON_CHIMECHO_1 209 +#define FRONTIER_MON_GLIGAR_1 210 +#define FRONTIER_MON_QWILFISH_1 211 +#define FRONTIER_MON_SNEASEL_1 212 +#define FRONTIER_MON_PELIPPER_1 213 +#define FRONTIER_MON_SWELLOW_1 214 +#define FRONTIER_MON_LAIRON_1 215 +#define FRONTIER_MON_TANGELA_1 216 +#define FRONTIER_MON_ARBOK_1 217 +#define FRONTIER_MON_PERSIAN_1 218 +#define FRONTIER_MON_SEADRA_1 219 +#define FRONTIER_MON_KECLEON_1 220 +#define FRONTIER_MON_VIGOROTH_1 221 +#define FRONTIER_MON_LUNATONE_1 222 +#define FRONTIER_MON_SOLROCK_1 223 +#define FRONTIER_MON_NOCTOWL_1 224 +#define FRONTIER_MON_SANDSLASH_1 225 +#define FRONTIER_MON_VENOMOTH_1 226 +#define FRONTIER_MON_CHANSEY_1 227 +#define FRONTIER_MON_SEAKING_1 228 +#define FRONTIER_MON_JUMPLUFF_1 229 +#define FRONTIER_MON_PILOSWINE_1 230 +#define FRONTIER_MON_GOLBAT_1 231 +#define FRONTIER_MON_PRIMEAPE_1 232 +#define FRONTIER_MON_HITMONLEE_1 233 +#define FRONTIER_MON_HITMONCHAN_1 234 +#define FRONTIER_MON_GIRAFARIG_1 235 +#define FRONTIER_MON_HITMONTOP_1 236 +#define FRONTIER_MON_BANETTE_1 237 +#define FRONTIER_MON_NINJASK_1 238 +#define FRONTIER_MON_SEVIPER_1 239 +#define FRONTIER_MON_ZANGOOSE_1 240 +#define FRONTIER_MON_CAMERUPT_1 241 +#define FRONTIER_MON_SHARPEDO_1 242 +#define FRONTIER_MON_TROPIUS_1 243 +#define FRONTIER_MON_MAGNETON_1 244 +#define FRONTIER_MON_MANTINE_1 245 +#define FRONTIER_MON_STANTLER_1 246 +#define FRONTIER_MON_ABSOL_1 247 +#define FRONTIER_MON_SWALOT_1 248 +#define FRONTIER_MON_CRAWDAUNT_1 249 +#define FRONTIER_MON_PIDGEOT_1 250 +#define FRONTIER_MON_GRUMPIG_1 251 +#define FRONTIER_MON_TORKOAL_1 252 +#define FRONTIER_MON_KINGLER_1 253 +#define FRONTIER_MON_CACTURNE_1 254 +#define FRONTIER_MON_BELLOSSOM_1 255 +#define FRONTIER_MON_OCTILLERY_1 256 +#define FRONTIER_MON_HUNTAIL_1 257 +#define FRONTIER_MON_GOREBYSS_1 258 +#define FRONTIER_MON_RELICANTH_1 259 +#define FRONTIER_MON_OMASTAR_1 260 +#define FRONTIER_MON_KABUTOPS_1 261 +#define FRONTIER_MON_POLIWRATH_1 262 +#define FRONTIER_MON_SCYTHER_1 263 +#define FRONTIER_MON_PINSIR_1 264 +#define FRONTIER_MON_POLITOED_1 265 +#define FRONTIER_MON_CLOYSTER_1 266 + +#define FRONTIER_MON_DELCATTY_2 267 +#define FRONTIER_MON_SABLEYE_2 268 +#define FRONTIER_MON_LICKITUNG_2 269 +#define FRONTIER_MON_WEEPINBELL_2 270 +#define FRONTIER_MON_GRAVELER_2 271 +#define FRONTIER_MON_GLOOM_2 272 +#define FRONTIER_MON_PORYGON_2 273 +#define FRONTIER_MON_KADABRA_2 274 +#define FRONTIER_MON_WAILMER_2 275 +#define FRONTIER_MON_ROSELIA_2 276 +#define FRONTIER_MON_VOLBEAT_2 277 +#define FRONTIER_MON_ILLUMISE_2 278 +#define FRONTIER_MON_IVYSAUR_2 279 +#define FRONTIER_MON_CHARMELEON_2 280 +#define FRONTIER_MON_WARTORTLE_2 281 +#define FRONTIER_MON_PARASECT_2 282 +#define FRONTIER_MON_MACHOKE_2 283 +#define FRONTIER_MON_HAUNTER_2 284 +#define FRONTIER_MON_BAYLEEF_2 285 +#define FRONTIER_MON_QUILAVA_2 286 +#define FRONTIER_MON_CROCONAW_2 287 +#define FRONTIER_MON_TOGETIC_2 288 +#define FRONTIER_MON_MURKROW_2 289 +#define FRONTIER_MON_WOBBUFFET_2 290 +#define FRONTIER_MON_PLUSLE_2 291 +#define FRONTIER_MON_MINUN_2 292 +#define FRONTIER_MON_GROVYLE_2 293 +#define FRONTIER_MON_COMBUSKEN_2 294 +#define FRONTIER_MON_MARSHTOMP_2 295 +#define FRONTIER_MON_PONYTA_2 296 +#define FRONTIER_MON_AZUMARILL_2 297 +#define FRONTIER_MON_SUDOWOODO_2 298 +#define FRONTIER_MON_MAGCARGO_2 299 +#define FRONTIER_MON_PUPITAR_2 300 +#define FRONTIER_MON_SEALEO_2 301 +#define FRONTIER_MON_RATICATE_2 302 +#define FRONTIER_MON_MASQUERAIN_2 303 +#define FRONTIER_MON_FURRET_2 304 +#define FRONTIER_MON_DUNSPARCE_2 305 +#define FRONTIER_MON_DRAGONAIR_2 306 +#define FRONTIER_MON_MIGHTYENA_2 307 +#define FRONTIER_MON_LINOONE_2 308 +#define FRONTIER_MON_CASTFORM_2 309 +#define FRONTIER_MON_SHELGON_2 310 +#define FRONTIER_MON_METANG_2 311 +#define FRONTIER_MON_WIGGLYTUFF_2 312 +#define FRONTIER_MON_SUNFLORA_2 313 +#define FRONTIER_MON_CHIMECHO_2 314 +#define FRONTIER_MON_GLIGAR_2 315 +#define FRONTIER_MON_QWILFISH_2 316 +#define FRONTIER_MON_SNEASEL_2 317 +#define FRONTIER_MON_PELIPPER_2 318 +#define FRONTIER_MON_SWELLOW_2 319 +#define FRONTIER_MON_LAIRON_2 320 +#define FRONTIER_MON_TANGELA_2 321 +#define FRONTIER_MON_ARBOK_2 322 +#define FRONTIER_MON_PERSIAN_2 323 +#define FRONTIER_MON_SEADRA_2 324 +#define FRONTIER_MON_KECLEON_2 325 +#define FRONTIER_MON_VIGOROTH_2 326 +#define FRONTIER_MON_LUNATONE_2 327 +#define FRONTIER_MON_SOLROCK_2 328 +#define FRONTIER_MON_NOCTOWL_2 329 +#define FRONTIER_MON_SANDSLASH_2 330 +#define FRONTIER_MON_VENOMOTH_2 331 +#define FRONTIER_MON_CHANSEY_2 332 +#define FRONTIER_MON_SEAKING_2 333 +#define FRONTIER_MON_JUMPLUFF_2 334 +#define FRONTIER_MON_PILOSWINE_2 335 +#define FRONTIER_MON_GOLBAT_2 336 +#define FRONTIER_MON_PRIMEAPE_2 337 +#define FRONTIER_MON_HITMONLEE_2 338 +#define FRONTIER_MON_HITMONCHAN_2 339 +#define FRONTIER_MON_GIRAFARIG_2 340 +#define FRONTIER_MON_HITMONTOP_2 341 +#define FRONTIER_MON_BANETTE_2 342 +#define FRONTIER_MON_NINJASK_2 343 +#define FRONTIER_MON_SEVIPER_2 344 +#define FRONTIER_MON_ZANGOOSE_2 345 +#define FRONTIER_MON_CAMERUPT_2 346 +#define FRONTIER_MON_SHARPEDO_2 347 +#define FRONTIER_MON_TROPIUS_2 348 +#define FRONTIER_MON_MAGNETON_2 349 +#define FRONTIER_MON_MANTINE_2 350 +#define FRONTIER_MON_STANTLER_2 351 +#define FRONTIER_MON_ABSOL_2 352 +#define FRONTIER_MON_SWALOT_2 353 +#define FRONTIER_MON_CRAWDAUNT_2 354 +#define FRONTIER_MON_PIDGEOT_2 355 +#define FRONTIER_MON_GRUMPIG_2 356 +#define FRONTIER_MON_TORKOAL_2 357 +#define FRONTIER_MON_KINGLER_2 358 +#define FRONTIER_MON_CACTURNE_2 359 +#define FRONTIER_MON_BELLOSSOM_2 360 +#define FRONTIER_MON_OCTILLERY_2 361 +#define FRONTIER_MON_HUNTAIL_2 362 +#define FRONTIER_MON_GOREBYSS_2 363 +#define FRONTIER_MON_RELICANTH_2 364 +#define FRONTIER_MON_OMASTAR_2 365 +#define FRONTIER_MON_KABUTOPS_2 366 +#define FRONTIER_MON_POLIWRATH_2 367 +#define FRONTIER_MON_SCYTHER_2 368 +#define FRONTIER_MON_PINSIR_2 369 +#define FRONTIER_MON_POLITOED_2 370 +#define FRONTIER_MON_CLOYSTER_2 371 + +#define FRONTIER_MON_DUGTRIO_1 372 +#define FRONTIER_MON_MEDICHAM_1 373 +#define FRONTIER_MON_MISDREAVUS_1 374 +#define FRONTIER_MON_FEAROW_1 375 +#define FRONTIER_MON_GRANBULL_1 376 +#define FRONTIER_MON_JYNX_1 377 +#define FRONTIER_MON_DUSCLOPS_1 378 +#define FRONTIER_MON_DODRIO_1 379 +#define FRONTIER_MON_MR_MIME_1 380 +#define FRONTIER_MON_LANTURN_1 381 +#define FRONTIER_MON_BRELOOM_1 382 +#define FRONTIER_MON_FORRETRESS_1 383 +#define FRONTIER_MON_WHISCASH_1 384 +#define FRONTIER_MON_XATU_1 385 +#define FRONTIER_MON_SKARMORY_1 386 +#define FRONTIER_MON_MAROWAK_1 387 +#define FRONTIER_MON_QUAGSIRE_1 388 +#define FRONTIER_MON_CLEFABLE_1 389 +#define FRONTIER_MON_HARIYAMA_1 390 +#define FRONTIER_MON_RAICHU_1 391 +#define FRONTIER_MON_DEWGONG_1 392 +#define FRONTIER_MON_MANECTRIC_1 393 +#define FRONTIER_MON_VILEPLUME_1 394 +#define FRONTIER_MON_VICTREEBEL_1 395 +#define FRONTIER_MON_ELECTRODE_1 396 +#define FRONTIER_MON_EXPLOUD_1 397 +#define FRONTIER_MON_SHIFTRY_1 398 +#define FRONTIER_MON_GLALIE_1 399 +#define FRONTIER_MON_LUDICOLO_1 400 +#define FRONTIER_MON_HYPNO_1 401 +#define FRONTIER_MON_GOLEM_1 402 +#define FRONTIER_MON_RHYDON_1 403 +#define FRONTIER_MON_ALAKAZAM_1 404 +#define FRONTIER_MON_WEEZING_1 405 +#define FRONTIER_MON_KANGASKHAN_1 406 +#define FRONTIER_MON_ELECTABUZZ_1 407 +#define FRONTIER_MON_TAUROS_1 408 +#define FRONTIER_MON_SLOWBRO_1 409 +#define FRONTIER_MON_SLOWKING_1 410 +#define FRONTIER_MON_MILTANK_1 411 +#define FRONTIER_MON_ALTARIA_1 412 +#define FRONTIER_MON_NIDOQUEEN_1 413 +#define FRONTIER_MON_NIDOKING_1 414 +#define FRONTIER_MON_MAGMAR_1 415 +#define FRONTIER_MON_CRADILY_1 416 +#define FRONTIER_MON_ARMALDO_1 417 +#define FRONTIER_MON_GOLDUCK_1 418 +#define FRONTIER_MON_RAPIDASH_1 419 +#define FRONTIER_MON_MUK_1 420 +#define FRONTIER_MON_GENGAR_1 421 +#define FRONTIER_MON_AMPHAROS_1 422 +#define FRONTIER_MON_SCIZOR_1 423 +#define FRONTIER_MON_HERACROSS_1 424 +#define FRONTIER_MON_URSARING_1 425 +#define FRONTIER_MON_HOUNDOOM_1 426 +#define FRONTIER_MON_DONPHAN_1 427 +#define FRONTIER_MON_CLAYDOL_1 428 +#define FRONTIER_MON_WAILORD_1 429 +#define FRONTIER_MON_NINETALES_1 430 +#define FRONTIER_MON_MACHAMP_1 431 +#define FRONTIER_MON_SHUCKLE_1 432 +#define FRONTIER_MON_STEELIX_1 433 +#define FRONTIER_MON_TENTACRUEL_1 434 +#define FRONTIER_MON_AERODACTYL_1 435 +#define FRONTIER_MON_PORYGON2_1 436 +#define FRONTIER_MON_GARDEVOIR_1 437 +#define FRONTIER_MON_EXEGGUTOR_1 438 +#define FRONTIER_MON_STARMIE_1 439 +#define FRONTIER_MON_FLYGON_1 440 +#define FRONTIER_MON_VENUSAUR_1 441 +#define FRONTIER_MON_VAPOREON_1 442 +#define FRONTIER_MON_JOLTEON_1 443 +#define FRONTIER_MON_FLAREON_1 444 +#define FRONTIER_MON_MEGANIUM_1 445 +#define FRONTIER_MON_ESPEON_1 446 +#define FRONTIER_MON_UMBREON_1 447 +#define FRONTIER_MON_BLASTOISE_1 448 +#define FRONTIER_MON_FERALIGATR_1 449 +#define FRONTIER_MON_AGGRON_1 450 +#define FRONTIER_MON_BLAZIKEN_1 451 +#define FRONTIER_MON_WALREIN_1 452 +#define FRONTIER_MON_SCEPTILE_1 453 +#define FRONTIER_MON_CHARIZARD_1 454 +#define FRONTIER_MON_TYPHLOSION_1 455 +#define FRONTIER_MON_LAPRAS_1 456 +#define FRONTIER_MON_CROBAT_1 457 +#define FRONTIER_MON_SWAMPERT_1 458 +#define FRONTIER_MON_GYARADOS_1 459 +#define FRONTIER_MON_SNORLAX_1 460 +#define FRONTIER_MON_KINGDRA_1 461 +#define FRONTIER_MON_BLISSEY_1 462 +#define FRONTIER_MON_MILOTIC_1 463 +#define FRONTIER_MON_ARCANINE_1 464 +#define FRONTIER_MON_SALAMENCE_1 465 +#define FRONTIER_MON_METAGROSS_1 466 +#define FRONTIER_MON_SLAKING_1 467 + +#define FRONTIER_MON_DUGTRIO_2 468 +#define FRONTIER_MON_MEDICHAM_2 469 +#define FRONTIER_MON_MAROWAK_2 470 +#define FRONTIER_MON_QUAGSIRE_2 471 +#define FRONTIER_MON_MISDREAVUS_2 472 +#define FRONTIER_MON_FEAROW_2 473 +#define FRONTIER_MON_GRANBULL_2 474 +#define FRONTIER_MON_JYNX_2 475 +#define FRONTIER_MON_DUSCLOPS_2 476 +#define FRONTIER_MON_DODRIO_2 477 +#define FRONTIER_MON_MR_MIME_2 478 +#define FRONTIER_MON_LANTURN_2 479 +#define FRONTIER_MON_BRELOOM_2 480 +#define FRONTIER_MON_FORRETRESS_2 481 +#define FRONTIER_MON_SKARMORY_2 482 +#define FRONTIER_MON_WHISCASH_2 483 +#define FRONTIER_MON_XATU_2 484 +#define FRONTIER_MON_CLEFABLE_2 485 +#define FRONTIER_MON_HARIYAMA_2 486 +#define FRONTIER_MON_RAICHU_2 487 +#define FRONTIER_MON_DEWGONG_2 488 +#define FRONTIER_MON_MANECTRIC_2 489 +#define FRONTIER_MON_VILEPLUME_2 490 +#define FRONTIER_MON_VICTREEBEL_2 491 +#define FRONTIER_MON_ELECTRODE_2 492 +#define FRONTIER_MON_EXPLOUD_2 493 +#define FRONTIER_MON_SHIFTRY_2 494 +#define FRONTIER_MON_GLALIE_2 495 +#define FRONTIER_MON_LUDICOLO_2 496 +#define FRONTIER_MON_HYPNO_2 497 +#define FRONTIER_MON_GOLEM_2 498 +#define FRONTIER_MON_RHYDON_2 499 +#define FRONTIER_MON_ALAKAZAM_2 500 +#define FRONTIER_MON_WEEZING_2 501 +#define FRONTIER_MON_KANGASKHAN_2 502 +#define FRONTIER_MON_ELECTABUZZ_2 503 +#define FRONTIER_MON_TAUROS_2 504 +#define FRONTIER_MON_SLOWBRO_2 505 +#define FRONTIER_MON_SLOWKING_2 506 +#define FRONTIER_MON_MILTANK_2 507 +#define FRONTIER_MON_ALTARIA_2 508 +#define FRONTIER_MON_NIDOQUEEN_2 509 +#define FRONTIER_MON_NIDOKING_2 510 +#define FRONTIER_MON_MAGMAR_2 511 +#define FRONTIER_MON_CRADILY_2 512 +#define FRONTIER_MON_ARMALDO_2 513 +#define FRONTIER_MON_GOLDUCK_2 514 +#define FRONTIER_MON_RAPIDASH_2 515 +#define FRONTIER_MON_MUK_2 516 +#define FRONTIER_MON_GENGAR_2 517 +#define FRONTIER_MON_AMPHAROS_2 518 +#define FRONTIER_MON_SCIZOR_2 519 +#define FRONTIER_MON_HERACROSS_2 520 +#define FRONTIER_MON_URSARING_2 521 +#define FRONTIER_MON_HOUNDOOM_2 522 +#define FRONTIER_MON_DONPHAN_2 523 +#define FRONTIER_MON_CLAYDOL_2 524 +#define FRONTIER_MON_WAILORD_2 525 +#define FRONTIER_MON_NINETALES_2 526 +#define FRONTIER_MON_MACHAMP_2 527 +#define FRONTIER_MON_SHUCKLE_2 528 +#define FRONTIER_MON_STEELIX_2 529 +#define FRONTIER_MON_TENTACRUEL_2 530 +#define FRONTIER_MON_AERODACTYL_2 531 +#define FRONTIER_MON_PORYGON2_2 532 +#define FRONTIER_MON_GARDEVOIR_2 533 +#define FRONTIER_MON_EXEGGUTOR_2 534 +#define FRONTIER_MON_STARMIE_2 535 +#define FRONTIER_MON_FLYGON_2 536 +#define FRONTIER_MON_VENUSAUR_2 537 +#define FRONTIER_MON_VAPOREON_2 538 +#define FRONTIER_MON_JOLTEON_2 539 +#define FRONTIER_MON_FLAREON_2 540 +#define FRONTIER_MON_MEGANIUM_2 541 +#define FRONTIER_MON_ESPEON_2 542 +#define FRONTIER_MON_UMBREON_2 543 +#define FRONTIER_MON_BLASTOISE_2 544 +#define FRONTIER_MON_FERALIGATR_2 545 +#define FRONTIER_MON_AGGRON_2 546 +#define FRONTIER_MON_BLAZIKEN_2 547 +#define FRONTIER_MON_WALREIN_2 548 +#define FRONTIER_MON_SCEPTILE_2 549 +#define FRONTIER_MON_CHARIZARD_2 550 +#define FRONTIER_MON_TYPHLOSION_2 551 +#define FRONTIER_MON_LAPRAS_2 552 +#define FRONTIER_MON_CROBAT_2 553 +#define FRONTIER_MON_SWAMPERT_2 554 +#define FRONTIER_MON_GYARADOS_2 555 +#define FRONTIER_MON_SNORLAX_2 556 +#define FRONTIER_MON_KINGDRA_2 557 +#define FRONTIER_MON_BLISSEY_2 558 +#define FRONTIER_MON_MILOTIC_2 559 +#define FRONTIER_MON_ARCANINE_2 560 +#define FRONTIER_MON_SALAMENCE_2 561 +#define FRONTIER_MON_METAGROSS_2 562 +#define FRONTIER_MON_SLAKING_2 563 + +#define FRONTIER_MON_DUGTRIO_3 564 +#define FRONTIER_MON_MEDICHAM_3 565 +#define FRONTIER_MON_MISDREAVUS_3 566 +#define FRONTIER_MON_FEAROW_3 567 +#define FRONTIER_MON_GRANBULL_3 568 +#define FRONTIER_MON_JYNX_3 569 +#define FRONTIER_MON_DUSCLOPS_3 570 +#define FRONTIER_MON_DODRIO_3 571 +#define FRONTIER_MON_MR_MIME_3 572 +#define FRONTIER_MON_LANTURN_3 573 +#define FRONTIER_MON_BRELOOM_3 574 +#define FRONTIER_MON_FORRETRESS_3 575 +#define FRONTIER_MON_WHISCASH_3 576 +#define FRONTIER_MON_XATU_3 577 +#define FRONTIER_MON_SKARMORY_3 578 +#define FRONTIER_MON_MAROWAK_3 579 +#define FRONTIER_MON_QUAGSIRE_3 580 +#define FRONTIER_MON_CLEFABLE_3 581 +#define FRONTIER_MON_HARIYAMA_3 582 +#define FRONTIER_MON_RAICHU_3 583 +#define FRONTIER_MON_DEWGONG_3 584 +#define FRONTIER_MON_MANECTRIC_3 585 +#define FRONTIER_MON_VILEPLUME_3 586 +#define FRONTIER_MON_VICTREEBEL_3 587 +#define FRONTIER_MON_ELECTRODE_3 588 +#define FRONTIER_MON_EXPLOUD_3 589 +#define FRONTIER_MON_SHIFTRY_3 590 +#define FRONTIER_MON_GLALIE_3 591 +#define FRONTIER_MON_LUDICOLO_3 592 +#define FRONTIER_MON_HYPNO_3 593 +#define FRONTIER_MON_GOLEM_3 594 +#define FRONTIER_MON_RHYDON_3 595 +#define FRONTIER_MON_ALAKAZAM_3 596 +#define FRONTIER_MON_WEEZING_3 597 +#define FRONTIER_MON_KANGASKHAN_3 598 +#define FRONTIER_MON_ELECTABUZZ_3 599 +#define FRONTIER_MON_TAUROS_3 600 +#define FRONTIER_MON_SLOWBRO_3 601 +#define FRONTIER_MON_SLOWKING_3 602 +#define FRONTIER_MON_MILTANK_3 603 +#define FRONTIER_MON_ALTARIA_3 604 +#define FRONTIER_MON_NIDOQUEEN_3 605 +#define FRONTIER_MON_NIDOKING_3 606 +#define FRONTIER_MON_MAGMAR_3 607 +#define FRONTIER_MON_CRADILY_3 608 +#define FRONTIER_MON_ARMALDO_3 609 +#define FRONTIER_MON_GOLDUCK_3 610 +#define FRONTIER_MON_RAPIDASH_3 611 +#define FRONTIER_MON_MUK_3 612 +#define FRONTIER_MON_GENGAR_3 613 +#define FRONTIER_MON_AMPHAROS_3 614 +#define FRONTIER_MON_SCIZOR_3 615 +#define FRONTIER_MON_HERACROSS_3 616 +#define FRONTIER_MON_URSARING_3 617 +#define FRONTIER_MON_HOUNDOOM_3 618 +#define FRONTIER_MON_DONPHAN_3 619 +#define FRONTIER_MON_CLAYDOL_3 620 +#define FRONTIER_MON_WAILORD_3 621 +#define FRONTIER_MON_NINETALES_3 622 +#define FRONTIER_MON_MACHAMP_3 623 +#define FRONTIER_MON_SHUCKLE_3 624 +#define FRONTIER_MON_STEELIX_3 625 +#define FRONTIER_MON_TENTACRUEL_3 626 +#define FRONTIER_MON_AERODACTYL_3 627 +#define FRONTIER_MON_PORYGON2_3 628 +#define FRONTIER_MON_GARDEVOIR_3 629 +#define FRONTIER_MON_EXEGGUTOR_3 630 +#define FRONTIER_MON_STARMIE_3 631 +#define FRONTIER_MON_FLYGON_3 632 +#define FRONTIER_MON_VENUSAUR_3 633 +#define FRONTIER_MON_VAPOREON_3 634 +#define FRONTIER_MON_JOLTEON_3 635 +#define FRONTIER_MON_FLAREON_3 636 +#define FRONTIER_MON_MEGANIUM_3 637 +#define FRONTIER_MON_ESPEON_3 638 +#define FRONTIER_MON_UMBREON_3 639 +#define FRONTIER_MON_BLASTOISE_3 640 +#define FRONTIER_MON_FERALIGATR_3 641 +#define FRONTIER_MON_AGGRON_3 642 +#define FRONTIER_MON_BLAZIKEN_3 643 +#define FRONTIER_MON_WALREIN_3 644 +#define FRONTIER_MON_SCEPTILE_3 645 +#define FRONTIER_MON_CHARIZARD_3 646 +#define FRONTIER_MON_TYPHLOSION_3 647 +#define FRONTIER_MON_LAPRAS_3 648 +#define FRONTIER_MON_CROBAT_3 649 +#define FRONTIER_MON_SWAMPERT_3 650 +#define FRONTIER_MON_GYARADOS_3 651 +#define FRONTIER_MON_SNORLAX_3 652 +#define FRONTIER_MON_KINGDRA_3 653 +#define FRONTIER_MON_BLISSEY_3 654 +#define FRONTIER_MON_MILOTIC_3 655 +#define FRONTIER_MON_ARCANINE_3 656 +#define FRONTIER_MON_SALAMENCE_3 657 +#define FRONTIER_MON_METAGROSS_3 658 +#define FRONTIER_MON_SLAKING_3 659 + +#define FRONTIER_MON_DUGTRIO_4 660 +#define FRONTIER_MON_MEDICHAM_4 661 +#define FRONTIER_MON_MISDREAVUS_4 662 +#define FRONTIER_MON_FEAROW_4 663 +#define FRONTIER_MON_GRANBULL_4 664 +#define FRONTIER_MON_JYNX_4 665 +#define FRONTIER_MON_DUSCLOPS_4 666 +#define FRONTIER_MON_DODRIO_4 667 +#define FRONTIER_MON_MR_MIME_4 668 +#define FRONTIER_MON_LANTURN_4 669 +#define FRONTIER_MON_BRELOOM_4 670 +#define FRONTIER_MON_FORRETRESS_4 671 +#define FRONTIER_MON_WHISCASH_4 672 +#define FRONTIER_MON_XATU_4 673 +#define FRONTIER_MON_SKARMORY_4 674 +#define FRONTIER_MON_MAROWAK_4 675 +#define FRONTIER_MON_QUAGSIRE_4 676 +#define FRONTIER_MON_CLEFABLE_4 677 +#define FRONTIER_MON_HARIYAMA_4 678 +#define FRONTIER_MON_RAICHU_4 679 +#define FRONTIER_MON_DEWGONG_4 680 +#define FRONTIER_MON_MANECTRIC_4 681 +#define FRONTIER_MON_VILEPLUME_4 682 +#define FRONTIER_MON_VICTREEBEL_4 683 +#define FRONTIER_MON_ELECTRODE_4 684 +#define FRONTIER_MON_EXPLOUD_4 685 +#define FRONTIER_MON_SHIFTRY_4 686 +#define FRONTIER_MON_GLALIE_4 687 +#define FRONTIER_MON_LUDICOLO_4 688 +#define FRONTIER_MON_HYPNO_4 689 +#define FRONTIER_MON_GOLEM_4 690 +#define FRONTIER_MON_RHYDON_4 691 +#define FRONTIER_MON_ALAKAZAM_4 692 +#define FRONTIER_MON_WEEZING_4 693 +#define FRONTIER_MON_KANGASKHAN_4 694 +#define FRONTIER_MON_ELECTABUZZ_4 695 +#define FRONTIER_MON_TAUROS_4 696 +#define FRONTIER_MON_SLOWBRO_4 697 +#define FRONTIER_MON_SLOWKING_4 698 +#define FRONTIER_MON_MILTANK_4 699 +#define FRONTIER_MON_ALTARIA_4 700 +#define FRONTIER_MON_NIDOQUEEN_4 701 +#define FRONTIER_MON_NIDOKING_4 702 +#define FRONTIER_MON_MAGMAR_4 703 +#define FRONTIER_MON_CRADILY_4 704 +#define FRONTIER_MON_ARMALDO_4 705 +#define FRONTIER_MON_GOLDUCK_4 706 +#define FRONTIER_MON_RAPIDASH_4 707 +#define FRONTIER_MON_MUK_4 708 +#define FRONTIER_MON_GENGAR_4 709 +#define FRONTIER_MON_AMPHAROS_4 710 +#define FRONTIER_MON_SCIZOR_4 711 +#define FRONTIER_MON_HERACROSS_4 712 +#define FRONTIER_MON_URSARING_4 713 +#define FRONTIER_MON_HOUNDOOM_4 714 +#define FRONTIER_MON_DONPHAN_4 715 +#define FRONTIER_MON_CLAYDOL_4 716 +#define FRONTIER_MON_WAILORD_4 717 +#define FRONTIER_MON_NINETALES_4 718 +#define FRONTIER_MON_MACHAMP_4 719 +#define FRONTIER_MON_SHUCKLE_4 720 +#define FRONTIER_MON_STEELIX_4 721 +#define FRONTIER_MON_TENTACRUEL_4 722 +#define FRONTIER_MON_AERODACTYL_4 723 +#define FRONTIER_MON_PORYGON2_4 724 +#define FRONTIER_MON_GARDEVOIR_4 725 +#define FRONTIER_MON_EXEGGUTOR_4 726 +#define FRONTIER_MON_STARMIE_4 727 +#define FRONTIER_MON_FLYGON_4 728 +#define FRONTIER_MON_VENUSAUR_4 729 +#define FRONTIER_MON_VAPOREON_4 730 +#define FRONTIER_MON_JOLTEON_4 731 +#define FRONTIER_MON_FLAREON_4 732 +#define FRONTIER_MON_MEGANIUM_4 733 +#define FRONTIER_MON_ESPEON_4 734 +#define FRONTIER_MON_UMBREON_4 735 +#define FRONTIER_MON_BLASTOISE_4 736 +#define FRONTIER_MON_FERALIGATR_4 737 +#define FRONTIER_MON_AGGRON_4 738 +#define FRONTIER_MON_BLAZIKEN_4 739 +#define FRONTIER_MON_WALREIN_4 740 +#define FRONTIER_MON_SCEPTILE_4 741 +#define FRONTIER_MON_CHARIZARD_4 742 +#define FRONTIER_MON_TYPHLOSION_4 743 +#define FRONTIER_MON_LAPRAS_4 744 +#define FRONTIER_MON_CROBAT_4 745 +#define FRONTIER_MON_SWAMPERT_4 746 +#define FRONTIER_MON_GYARADOS_4 747 +#define FRONTIER_MON_SNORLAX_4 748 +#define FRONTIER_MON_KINGDRA_4 749 +#define FRONTIER_MON_BLISSEY_4 750 +#define FRONTIER_MON_MILOTIC_4 751 +#define FRONTIER_MON_ARCANINE_4 752 +#define FRONTIER_MON_SALAMENCE_4 753 +#define FRONTIER_MON_METAGROSS_4 754 +#define FRONTIER_MON_SLAKING_4 755 + +#define FRONTIER_MON_ARTICUNO_1 756 +#define FRONTIER_MON_ZAPDOS_1 757 +#define FRONTIER_MON_MOLTRES_1 758 +#define FRONTIER_MON_RAIKOU_1 759 +#define FRONTIER_MON_ENTEI_1 760 +#define FRONTIER_MON_SUICUNE_1 761 +#define FRONTIER_MON_REGIROCK_1 762 +#define FRONTIER_MON_REGICE_1 763 +#define FRONTIER_MON_REGISTEEL_1 764 +#define FRONTIER_MON_LATIAS_1 765 +#define FRONTIER_MON_LATIOS_1 766 +#define FRONTIER_MON_ARTICUNO_2 767 +#define FRONTIER_MON_ZAPDOS_2 768 +#define FRONTIER_MON_MOLTRES_2 769 +#define FRONTIER_MON_RAIKOU_2 770 +#define FRONTIER_MON_ENTEI_2 771 +#define FRONTIER_MON_SUICUNE_2 772 +#define FRONTIER_MON_REGIROCK_2 773 +#define FRONTIER_MON_REGICE_2 774 +#define FRONTIER_MON_REGISTEEL_2 775 +#define FRONTIER_MON_LATIAS_2 776 +#define FRONTIER_MON_LATIOS_2 777 +#define FRONTIER_MON_ARTICUNO_3 778 +#define FRONTIER_MON_ZAPDOS_3 779 +#define FRONTIER_MON_MOLTRES_3 780 +#define FRONTIER_MON_RAIKOU_3 781 +#define FRONTIER_MON_ENTEI_3 782 +#define FRONTIER_MON_SUICUNE_3 783 +#define FRONTIER_MON_REGIROCK_3 784 +#define FRONTIER_MON_REGICE_3 785 +#define FRONTIER_MON_REGISTEEL_3 786 +#define FRONTIER_MON_LATIAS_3 787 +#define FRONTIER_MON_LATIOS_3 788 +#define FRONTIER_MON_ARTICUNO_4 789 +#define FRONTIER_MON_ZAPDOS_4 790 +#define FRONTIER_MON_MOLTRES_4 791 +#define FRONTIER_MON_RAIKOU_4 792 +#define FRONTIER_MON_ENTEI_4 793 +#define FRONTIER_MON_SUICUNE_4 794 +#define FRONTIER_MON_REGIROCK_4 795 +#define FRONTIER_MON_REGICE_4 796 +#define FRONTIER_MON_REGISTEEL_4 797 +#define FRONTIER_MON_LATIAS_4 798 +#define FRONTIER_MON_LATIOS_4 799 +#define FRONTIER_MON_GENGAR_5 800 +#define FRONTIER_MON_GENGAR_6 801 +#define FRONTIER_MON_GENGAR_7 802 +#define FRONTIER_MON_GENGAR_8 803 +#define FRONTIER_MON_URSARING_5 804 +#define FRONTIER_MON_URSARING_6 805 +#define FRONTIER_MON_URSARING_7 806 +#define FRONTIER_MON_URSARING_8 807 +#define FRONTIER_MON_MACHAMP_5 808 +#define FRONTIER_MON_MACHAMP_6 809 +#define FRONTIER_MON_MACHAMP_7 810 +#define FRONTIER_MON_MACHAMP_8 811 +#define FRONTIER_MON_GARDEVOIR_5 812 +#define FRONTIER_MON_GARDEVOIR_6 813 +#define FRONTIER_MON_GARDEVOIR_7 814 +#define FRONTIER_MON_GARDEVOIR_8 815 +#define FRONTIER_MON_STARMIE_5 816 +#define FRONTIER_MON_STARMIE_6 817 +#define FRONTIER_MON_STARMIE_7 818 +#define FRONTIER_MON_STARMIE_8 819 +#define FRONTIER_MON_LAPRAS_5 820 +#define FRONTIER_MON_LAPRAS_6 821 +#define FRONTIER_MON_LAPRAS_7 822 +#define FRONTIER_MON_LAPRAS_8 823 +#define FRONTIER_MON_SNORLAX_5 824 +#define FRONTIER_MON_SNORLAX_6 825 +#define FRONTIER_MON_SNORLAX_7 826 +#define FRONTIER_MON_SNORLAX_8 827 +#define FRONTIER_MON_SALAMENCE_5 828 +#define FRONTIER_MON_SALAMENCE_6 829 +#define FRONTIER_MON_SALAMENCE_7 830 +#define FRONTIER_MON_SALAMENCE_8 831 +#define FRONTIER_MON_METAGROSS_5 832 +#define FRONTIER_MON_METAGROSS_6 833 +#define FRONTIER_MON_METAGROSS_7 834 +#define FRONTIER_MON_METAGROSS_8 835 +#define FRONTIER_MON_REGIROCK_5 836 +#define FRONTIER_MON_REGIROCK_6 837 +#define FRONTIER_MON_REGICE_5 838 +#define FRONTIER_MON_REGICE_6 839 +#define FRONTIER_MON_REGISTEEL_5 840 +#define FRONTIER_MON_REGISTEEL_6 841 +#define FRONTIER_MON_LATIAS_5 842 +#define FRONTIER_MON_LATIAS_6 843 +#define FRONTIER_MON_LATIAS_7 844 +#define FRONTIER_MON_LATIAS_8 845 +#define FRONTIER_MON_LATIOS_5 846 +#define FRONTIER_MON_LATIOS_6 847 +#define FRONTIER_MON_LATIOS_7 848 +#define FRONTIER_MON_LATIOS_8 849 + +#define FRONTIER_MONS_HIGH_TIER 849 // Mons above this point can only appear > level 50 + +#define FRONTIER_MON_DRAGONITE_1 850 +#define FRONTIER_MON_DRAGONITE_2 851 +#define FRONTIER_MON_DRAGONITE_3 852 +#define FRONTIER_MON_DRAGONITE_4 853 +#define FRONTIER_MON_DRAGONITE_5 854 +#define FRONTIER_MON_DRAGONITE_6 855 +#define FRONTIER_MON_DRAGONITE_7 856 +#define FRONTIER_MON_DRAGONITE_8 857 +#define FRONTIER_MON_DRAGONITE_9 858 +#define FRONTIER_MON_DRAGONITE_10 859 +#define FRONTIER_MON_TYRANITAR_1 860 +#define FRONTIER_MON_TYRANITAR_2 861 +#define FRONTIER_MON_TYRANITAR_3 862 +#define FRONTIER_MON_TYRANITAR_4 863 +#define FRONTIER_MON_TYRANITAR_5 864 +#define FRONTIER_MON_TYRANITAR_6 865 +#define FRONTIER_MON_TYRANITAR_7 866 +#define FRONTIER_MON_TYRANITAR_8 867 +#define FRONTIER_MON_TYRANITAR_9 868 +#define FRONTIER_MON_TYRANITAR_10 869 +#define FRONTIER_MON_ARTICUNO_5 870 +#define FRONTIER_MON_ARTICUNO_6 871 +#define FRONTIER_MON_ZAPDOS_5 872 +#define FRONTIER_MON_ZAPDOS_6 873 +#define FRONTIER_MON_MOLTRES_5 874 +#define FRONTIER_MON_MOLTRES_6 875 +#define FRONTIER_MON_RAIKOU_5 876 +#define FRONTIER_MON_RAIKOU_6 877 +#define FRONTIER_MON_ENTEI_5 878 +#define FRONTIER_MON_ENTEI_6 879 +#define FRONTIER_MON_SUICUNE_5 880 +#define FRONTIER_MON_SUICUNE_6 881 + +#define NUM_FRONTIER_MONS 882 + +#endif //GUARD_CONSTANTS_BATTLE_FRONTIER_MONS_H diff --git a/include/constants/battle_frontier_trainers.h b/include/constants/battle_frontier_trainers.h new file mode 100644 index 000000000..2914b153f --- /dev/null +++ b/include/constants/battle_frontier_trainers.h @@ -0,0 +1,309 @@ +#ifndef GUARD_CONSTANTS_BATTLE_FRONTIER_TRAINERS_H +#define GUARD_CONSTANTS_BATTLE_FRONTIER_TRAINERS_H + +#define FRONTIER_TRAINER_BRADY 0 +#define FRONTIER_TRAINER_CONNER 1 +#define FRONTIER_TRAINER_BRADLEY 2 +#define FRONTIER_TRAINER_CYBIL 3 +#define FRONTIER_TRAINER_RODETTE 4 +#define FRONTIER_TRAINER_PEGGY 5 +#define FRONTIER_TRAINER_KEITH 6 +#define FRONTIER_TRAINER_GRAYSON 7 +#define FRONTIER_TRAINER_GLENN 8 +#define FRONTIER_TRAINER_LILIANA 9 +#define FRONTIER_TRAINER_ELISE 10 +#define FRONTIER_TRAINER_ZOEY 11 +#define FRONTIER_TRAINER_MANUEL 12 +#define FRONTIER_TRAINER_RUSS 13 +#define FRONTIER_TRAINER_DUSTIN 14 +#define FRONTIER_TRAINER_TINA 15 +#define FRONTIER_TRAINER_GILLIAN1 16 +#define FRONTIER_TRAINER_ZOE 17 +#define FRONTIER_TRAINER_CHEN 18 +#define FRONTIER_TRAINER_AL 19 +#define FRONTIER_TRAINER_MITCH 20 +#define FRONTIER_TRAINER_ANNE 21 +#define FRONTIER_TRAINER_ALIZE 22 +#define FRONTIER_TRAINER_LAUREN 23 +#define FRONTIER_TRAINER_KIPP 24 +#define FRONTIER_TRAINER_JASON 25 +#define FRONTIER_TRAINER_JOHN 26 +#define FRONTIER_TRAINER_ANN 27 +#define FRONTIER_TRAINER_EILEEN 28 +#define FRONTIER_TRAINER_CARLIE 29 +#define FRONTIER_TRAINER_GORDON 30 +#define FRONTIER_TRAINER_AYDEN 31 +#define FRONTIER_TRAINER_MARCO 32 +#define FRONTIER_TRAINER_CIERRA 33 +#define FRONTIER_TRAINER_MARCY 34 +#define FRONTIER_TRAINER_KATHY 35 +#define FRONTIER_TRAINER_PEYTON 36 +#define FRONTIER_TRAINER_JULIAN 37 +#define FRONTIER_TRAINER_QUINN 38 +#define FRONTIER_TRAINER_HAYLEE 39 +#define FRONTIER_TRAINER_AMANDA 40 +#define FRONTIER_TRAINER_STACY 41 +#define FRONTIER_TRAINER_RAFAEL 42 +#define FRONTIER_TRAINER_OLIVER 43 +#define FRONTIER_TRAINER_PAYTON 44 +#define FRONTIER_TRAINER_PAMELA 45 +#define FRONTIER_TRAINER_ELIZA 46 +#define FRONTIER_TRAINER_MARISA 47 +#define FRONTIER_TRAINER_LEWIS 48 +#define FRONTIER_TRAINER_YOSHI 49 +#define FRONTIER_TRAINER_DESTIN 50 +#define FRONTIER_TRAINER_KEON 51 +#define FRONTIER_TRAINER_STUART 52 +#define FRONTIER_TRAINER_NESTOR 53 +#define FRONTIER_TRAINER_DERRICK 54 +#define FRONTIER_TRAINER_BRYSON 55 +#define FRONTIER_TRAINER_CLAYTON 56 +#define FRONTIER_TRAINER_TRENTON 57 +#define FRONTIER_TRAINER_JENSON 58 +#define FRONTIER_TRAINER_WESLEY 59 +#define FRONTIER_TRAINER_ANTON 60 +#define FRONTIER_TRAINER_LAWSON 61 +#define FRONTIER_TRAINER_SAMMY 62 +#define FRONTIER_TRAINER_ARNIE 63 +#define FRONTIER_TRAINER_ADRIAN 64 +#define FRONTIER_TRAINER_TRISTAN 65 +#define FRONTIER_TRAINER_JULIANA 66 +#define FRONTIER_TRAINER_RYLEE 67 +#define FRONTIER_TRAINER_CHELSEA 68 +#define FRONTIER_TRAINER_DANELA 69 +#define FRONTIER_TRAINER_LIZBETH 70 +#define FRONTIER_TRAINER_AMELIA 71 +#define FRONTIER_TRAINER_JILLIAN 72 +#define FRONTIER_TRAINER_ABBIE 73 +#define FRONTIER_TRAINER_BRIANA 74 +#define FRONTIER_TRAINER_ANTONIO 75 +#define FRONTIER_TRAINER_JADEN 76 +#define FRONTIER_TRAINER_DAKOTA 77 +#define FRONTIER_TRAINER_BRAYDEN 78 +#define FRONTIER_TRAINER_CORSON 79 +#define FRONTIER_TRAINER_TREVIN 80 +#define FRONTIER_TRAINER_PATRICK 81 +#define FRONTIER_TRAINER_KADEN 82 +#define FRONTIER_TRAINER_MAXWELL 83 +#define FRONTIER_TRAINER_DARYL 84 +#define FRONTIER_TRAINER_KENNETH 85 +#define FRONTIER_TRAINER_RICH 86 +#define FRONTIER_TRAINER_CADEN 87 +#define FRONTIER_TRAINER_MARLON 88 +#define FRONTIER_TRAINER_NASH 89 +#define FRONTIER_TRAINER_ROBBY 90 +#define FRONTIER_TRAINER_REECE 91 +#define FRONTIER_TRAINER_KATHRYN 92 +#define FRONTIER_TRAINER_ELLEN 93 +#define FRONTIER_TRAINER_RAMON 94 +#define FRONTIER_TRAINER_ARTHUR 95 +#define FRONTIER_TRAINER_ALONDRA 96 +#define FRONTIER_TRAINER_ADRIANA 97 +#define FRONTIER_TRAINER_MALIK 98 +#define FRONTIER_TRAINER_JILL 99 +#define FRONTIER_TRAINER_ERIK 100 +#define FRONTIER_TRAINER_YAZMIN 101 +#define FRONTIER_TRAINER_JAMAL 102 +#define FRONTIER_TRAINER_LESLIE 103 +#define FRONTIER_TRAINER_DAVE 104 +#define FRONTIER_TRAINER_CARLO 105 +#define FRONTIER_TRAINER_EMILIA 106 +#define FRONTIER_TRAINER_DALIA 107 +#define FRONTIER_TRAINER_HITOMI 108 +#define FRONTIER_TRAINER_RICARDO 109 +#define FRONTIER_TRAINER_SHIZUKA 110 +#define FRONTIER_TRAINER_JOANA 111 +#define FRONTIER_TRAINER_KELLY 112 +#define FRONTIER_TRAINER_RAYNA 113 +#define FRONTIER_TRAINER_EVAN 114 +#define FRONTIER_TRAINER_JORDAN 115 +#define FRONTIER_TRAINER_JOEL 116 +#define FRONTIER_TRAINER_KRISTEN 117 +#define FRONTIER_TRAINER_SELPHY 118 +#define FRONTIER_TRAINER_CHLOE 119 +#define FRONTIER_TRAINER_NORTON 120 +#define FRONTIER_TRAINER_LUKAS 121 +#define FRONTIER_TRAINER_ZACH 122 +#define FRONTIER_TRAINER_KAITLYN 123 +#define FRONTIER_TRAINER_BREANNA 124 +#define FRONTIER_TRAINER_KENDRA 125 +#define FRONTIER_TRAINER_MOLLY 126 +#define FRONTIER_TRAINER_JAZMIN 127 +#define FRONTIER_TRAINER_KELSEY 128 +#define FRONTIER_TRAINER_JALEN 129 +#define FRONTIER_TRAINER_GRIFFEN 130 +#define FRONTIER_TRAINER_XANDER 131 +#define FRONTIER_TRAINER_MARVIN 132 +#define FRONTIER_TRAINER_BRENNAN 133 +#define FRONTIER_TRAINER_BALEY 134 +#define FRONTIER_TRAINER_ZACKARY 135 +#define FRONTIER_TRAINER_GABRIEL 136 +#define FRONTIER_TRAINER_EMILY 137 +#define FRONTIER_TRAINER_JORDYN 138 +#define FRONTIER_TRAINER_SOFIA 139 +#define FRONTIER_TRAINER_BRADEN 140 +#define FRONTIER_TRAINER_KAYDEN 141 +#define FRONTIER_TRAINER_COOPER 142 +#define FRONTIER_TRAINER_JULIA 143 +#define FRONTIER_TRAINER_AMARA 144 +#define FRONTIER_TRAINER_LYNN 145 +#define FRONTIER_TRAINER_JOVAN 146 +#define FRONTIER_TRAINER_DOMINIC 147 +#define FRONTIER_TRAINER_NIKOLAS 148 +#define FRONTIER_TRAINER_VALERIA 149 +#define FRONTIER_TRAINER_DELANEY 150 +#define FRONTIER_TRAINER_MEGHAN 151 +#define FRONTIER_TRAINER_ROBERTO 152 +#define FRONTIER_TRAINER_DAMIAN 153 +#define FRONTIER_TRAINER_BRODY 154 +#define FRONTIER_TRAINER_GRAHAM 155 +#define FRONTIER_TRAINER_TYLOR 156 +#define FRONTIER_TRAINER_JAREN 157 +#define FRONTIER_TRAINER_CORDELL 158 +#define FRONTIER_TRAINER_JAZLYN 159 +#define FRONTIER_TRAINER_ZACHERY 160 +#define FRONTIER_TRAINER_JOHAN 161 +#define FRONTIER_TRAINER_SHEA 162 +#define FRONTIER_TRAINER_KAILA 163 +#define FRONTIER_TRAINER_ISIAH 164 +#define FRONTIER_TRAINER_GARRETT 165 +#define FRONTIER_TRAINER_HAYLIE 166 +#define FRONTIER_TRAINER_MEGAN 167 +#define FRONTIER_TRAINER_ISSAC 168 +#define FRONTIER_TRAINER_QUINTON 169 +#define FRONTIER_TRAINER_SALMA 170 +#define FRONTIER_TRAINER_ANSLEY 171 +#define FRONTIER_TRAINER_HOLDEN 172 +#define FRONTIER_TRAINER_LUCA 173 +#define FRONTIER_TRAINER_JAMISON 174 +#define FRONTIER_TRAINER_GUNNAR 175 +#define FRONTIER_TRAINER_CRAIG 176 +#define FRONTIER_TRAINER_PIERCE 177 +#define FRONTIER_TRAINER_REGINA 178 +#define FRONTIER_TRAINER_ALISON 179 +#define FRONTIER_TRAINER_HANK 180 +#define FRONTIER_TRAINER_EARL 181 +#define FRONTIER_TRAINER_RAMIRO 182 +#define FRONTIER_TRAINER_HUNTER 183 +#define FRONTIER_TRAINER_AIDEN 184 +#define FRONTIER_TRAINER_XAVIER 185 +#define FRONTIER_TRAINER_CLINTON 186 +#define FRONTIER_TRAINER_JESSE 187 +#define FRONTIER_TRAINER_EDUARDO 188 +#define FRONTIER_TRAINER_HAL 189 +#define FRONTIER_TRAINER_GAGE 190 +#define FRONTIER_TRAINER_ARNOLD 191 +#define FRONTIER_TRAINER_JARRETT 192 +#define FRONTIER_TRAINER_GARETT 193 +#define FRONTIER_TRAINER_EMANUEL 194 +#define FRONTIER_TRAINER_GUSTAVO 195 +#define FRONTIER_TRAINER_KAMERON 196 +#define FRONTIER_TRAINER_ALFREDO 197 +#define FRONTIER_TRAINER_RUBEN 198 +#define FRONTIER_TRAINER_LAMAR 199 +#define FRONTIER_TRAINER_JAXON 200 +#define FRONTIER_TRAINER_LOGAN 201 +#define FRONTIER_TRAINER_EMILEE 202 +#define FRONTIER_TRAINER_JOSIE 203 +#define FRONTIER_TRAINER_ARMANDO 204 +#define FRONTIER_TRAINER_SKYLER 205 +#define FRONTIER_TRAINER_RUTH 206 +#define FRONTIER_TRAINER_MELODY 207 +#define FRONTIER_TRAINER_PEDRO 208 +#define FRONTIER_TRAINER_ERICK 209 +#define FRONTIER_TRAINER_ELAINE 210 +#define FRONTIER_TRAINER_JOYCE 211 +#define FRONTIER_TRAINER_TODD 212 +#define FRONTIER_TRAINER_GAVIN 213 +#define FRONTIER_TRAINER_MALORY 214 +#define FRONTIER_TRAINER_ESTHER 215 +#define FRONTIER_TRAINER_OSCAR 216 +#define FRONTIER_TRAINER_WILSON 217 +#define FRONTIER_TRAINER_CLARE 218 +#define FRONTIER_TRAINER_TESS 219 +#define FRONTIER_TRAINER_LEON 220 +#define FRONTIER_TRAINER_ALONZO 221 +#define FRONTIER_TRAINER_VINCE 222 +#define FRONTIER_TRAINER_BRYON 223 +#define FRONTIER_TRAINER_AVA 224 +#define FRONTIER_TRAINER_MIRIAM 225 +#define FRONTIER_TRAINER_CARRIE 226 +#define FRONTIER_TRAINER_GILLIAN2 227 +#define FRONTIER_TRAINER_TYLER 228 +#define FRONTIER_TRAINER_CHAZ 229 +#define FRONTIER_TRAINER_NELSON 230 +#define FRONTIER_TRAINER_SHANIA 231 +#define FRONTIER_TRAINER_STELLA 232 +#define FRONTIER_TRAINER_DORINE 233 +#define FRONTIER_TRAINER_MADDOX 234 +#define FRONTIER_TRAINER_DAVIN 235 +#define FRONTIER_TRAINER_TREVON 236 +#define FRONTIER_TRAINER_MATEO 237 +#define FRONTIER_TRAINER_BRET 238 +#define FRONTIER_TRAINER_RAUL 239 +#define FRONTIER_TRAINER_KAY 240 +#define FRONTIER_TRAINER_ELENA 241 +#define FRONTIER_TRAINER_ALANA 242 +#define FRONTIER_TRAINER_ALEXAS 243 +#define FRONTIER_TRAINER_WESTON 244 +#define FRONTIER_TRAINER_JASPER 245 +#define FRONTIER_TRAINER_NADIA 246 +#define FRONTIER_TRAINER_MIRANDA 247 +#define FRONTIER_TRAINER_EMMA 248 +#define FRONTIER_TRAINER_ROLANDO 249 +#define FRONTIER_TRAINER_STANLY 250 +#define FRONTIER_TRAINER_DARIO 251 +#define FRONTIER_TRAINER_KARLEE 252 +#define FRONTIER_TRAINER_JAYLIN 253 +#define FRONTIER_TRAINER_INGRID 254 +#define FRONTIER_TRAINER_DELILAH 255 +#define FRONTIER_TRAINER_CARLY 256 +#define FRONTIER_TRAINER_LEXIE 257 +#define FRONTIER_TRAINER_MILLER 258 +#define FRONTIER_TRAINER_MARV 259 +#define FRONTIER_TRAINER_LAYTON 260 +#define FRONTIER_TRAINER_BROOKS 261 +#define FRONTIER_TRAINER_GREGORY 262 +#define FRONTIER_TRAINER_REESE 263 +#define FRONTIER_TRAINER_MASON 264 +#define FRONTIER_TRAINER_TOBY 265 +#define FRONTIER_TRAINER_DOROTHY 266 +#define FRONTIER_TRAINER_PIPER 267 +#define FRONTIER_TRAINER_FINN 268 +#define FRONTIER_TRAINER_SAMIR 269 +#define FRONTIER_TRAINER_FIONA 270 +#define FRONTIER_TRAINER_GLORIA 271 +#define FRONTIER_TRAINER_NICO 272 +#define FRONTIER_TRAINER_JEREMY 273 +#define FRONTIER_TRAINER_CAITLIN 274 +#define FRONTIER_TRAINER_REENA 275 +#define FRONTIER_TRAINER_AVERY 276 +#define FRONTIER_TRAINER_LIAM 277 +#define FRONTIER_TRAINER_THEO 278 +#define FRONTIER_TRAINER_BAILEY 279 +#define FRONTIER_TRAINER_HUGO 280 +#define FRONTIER_TRAINER_BRYCE 281 +#define FRONTIER_TRAINER_GIDEON 282 +#define FRONTIER_TRAINER_TRISTON 283 +#define FRONTIER_TRAINER_CHARLES 284 +#define FRONTIER_TRAINER_RAYMOND 285 +#define FRONTIER_TRAINER_DIRK 286 +#define FRONTIER_TRAINER_HAROLD 287 +#define FRONTIER_TRAINER_OMAR 288 +#define FRONTIER_TRAINER_PETER 289 +#define FRONTIER_TRAINER_DEV 290 +#define FRONTIER_TRAINER_COREY 291 +#define FRONTIER_TRAINER_ANDRE 292 +#define FRONTIER_TRAINER_FERRIS 293 +#define FRONTIER_TRAINER_ALIVIA 294 +#define FRONTIER_TRAINER_PAIGE 295 +#define FRONTIER_TRAINER_ANYA 296 +#define FRONTIER_TRAINER_DAWN 297 +#define FRONTIER_TRAINER_ABBY 298 +#define FRONTIER_TRAINER_GRETEL 299 + +#define FRONTIER_TRAINERS_COUNT 300 + +// special trainer IDs begin at 300, see constants/trainers.h + +#endif // GUARD_CONSTANTS_BATTLE_FRONTIER_TRAINERS_H diff --git a/include/constants/battle_tent_mons.h b/include/constants/battle_tent_mons.h new file mode 100644 index 000000000..d9fc89a20 --- /dev/null +++ b/include/constants/battle_tent_mons.h @@ -0,0 +1,173 @@ +#ifndef GUARD_CONSTANTS_BATTLE_TENT_MONS_H +#define GUARD_CONSTANTS_BATTLE_TENT_MONS_H + +#define SLATEPORT_TENT_MON_ZIGZAGOON_1 0 +#define SLATEPORT_TENT_MON_ZIGZAGOON_2 1 +#define SLATEPORT_TENT_MON_BEAUTIFLY 2 +#define SLATEPORT_TENT_MON_DUSTOX 3 +#define SLATEPORT_TENT_MON_WAILMER_1 4 +#define SLATEPORT_TENT_MON_WAILMER_2 5 +#define SLATEPORT_TENT_MON_MARILL_1 6 +#define SLATEPORT_TENT_MON_WINGULL_1 7 +#define SLATEPORT_TENT_MON_PELIPPER_1 8 +#define SLATEPORT_TENT_MON_CACNEA_1 9 +#define SLATEPORT_TENT_MON_LOMBRE_1 10 +#define SLATEPORT_TENT_MON_LOTAD 11 +#define SLATEPORT_TENT_MON_SEEDOT 12 +#define SLATEPORT_TENT_MON_NUZLEAF 13 +#define SLATEPORT_TENT_MON_NINJASK_1 14 +#define SLATEPORT_TENT_MON_NINJASK_2 15 +#define SLATEPORT_TENT_MON_GRAVELER 16 +#define SLATEPORT_TENT_MON_BALTOY 17 +#define SLATEPORT_TENT_MON_MIGHTYENA_1 18 +#define SLATEPORT_TENT_MON_MIGHTYENA_2 19 +#define SLATEPORT_TENT_MON_LINOONE 20 +#define SLATEPORT_TENT_MON_GOLDEEN 21 +#define SLATEPORT_TENT_MON_ELECTRIKE_1 22 +#define SLATEPORT_TENT_MON_VOLTORB 23 +#define SLATEPORT_TENT_MON_ARON_1 24 +#define SLATEPORT_TENT_MON_ARON_2 25 +#define SLATEPORT_TENT_MON_TRAPINCH_1 26 +#define SLATEPORT_TENT_MON_CACNEA_2 27 +#define SLATEPORT_TENT_MON_TAILLOW 28 +#define SLATEPORT_TENT_MON_SWELLOW 29 +#define SLATEPORT_TENT_MON_GOLBAT_1 30 +#define SLATEPORT_TENT_MON_LOUDRED 31 +#define SLATEPORT_TENT_MON_SPINDA 32 +#define SLATEPORT_TENT_MON_MAGNEMITE 33 +#define SLATEPORT_TENT_MON_WHISMUR 34 +#define SLATEPORT_TENT_MON_MAKUHITA 35 +#define SLATEPORT_TENT_MON_NUMEL_1 36 +#define SLATEPORT_TENT_MON_BARBOACH 37 +#define SLATEPORT_TENT_MON_TENTACOOL 38 +#define SLATEPORT_TENT_MON_VIGOROTH 39 +#define SLATEPORT_TENT_MON_MAGIKARP 40 +#define SLATEPORT_TENT_MON_SEVIPER_1 41 +#define SLATEPORT_TENT_MON_SOLROCK 42 +#define SLATEPORT_TENT_MON_KECLEON_1 43 +#define SLATEPORT_TENT_MON_KECLEON_2 44 +#define SLATEPORT_TENT_MON_SHROOMISH_1 45 +#define SLATEPORT_TENT_MON_SHROOMISH_2 46 +#define SLATEPORT_TENT_MON_LOMBRE_2 47 +#define SLATEPORT_TENT_MON_NUMEL_2 48 +#define SLATEPORT_TENT_MON_TRAPINCH_2 49 +#define SLATEPORT_TENT_MON_PELIPPER_2 50 +#define SLATEPORT_TENT_MON_WINGULL_2 51 +#define SLATEPORT_TENT_MON_MARILL_2 52 +#define SLATEPORT_TENT_MON_SKITTY 53 +#define SLATEPORT_TENT_MON_SEVIPER_2 54 +#define SLATEPORT_TENT_MON_GOLBAT_2 55 +#define SLATEPORT_TENT_MON_RALTS 56 +#define SLATEPORT_TENT_MON_SANDSHREW 57 +#define SLATEPORT_TENT_MON_SWALOT 58 +#define SLATEPORT_TENT_MON_VOLBEAT 59 +#define SLATEPORT_TENT_MON_ILLUMISE 60 +#define SLATEPORT_TENT_MON_KADABRA 61 +#define SLATEPORT_TENT_MON_KIRLIA 62 +#define SLATEPORT_TENT_MON_BRELOOM 63 +#define SLATEPORT_TENT_MON_PLUSLE_1 64 +#define SLATEPORT_TENT_MON_PLUSLE_2 65 +#define SLATEPORT_TENT_MON_ELECTRIKE_2 66 +#define SLATEPORT_TENT_MON_SWABLU 67 +#define SLATEPORT_TENT_MON_MACHOP 68 +#define SLATEPORT_TENT_MON_MACHOKE 69 + +#define NUM_SLATEPORT_TENT_MONS 70 + +#define VERDANTURF_TENT_MON_POOCHYENA 0 +#define VERDANTURF_TENT_MON_ZIGZAGOON 1 +#define VERDANTURF_TENT_MON_DUSTOX 2 +#define VERDANTURF_TENT_MON_TAILLOW 3 +#define VERDANTURF_TENT_MON_SHROOMISH 4 +#define VERDANTURF_TENT_MON_MACHOP 5 +#define VERDANTURF_TENT_MON_MAGIKARP 6 +#define VERDANTURF_TENT_MON_BARBOACH 7 +#define VERDANTURF_TENT_MON_WINGULL 8 +#define VERDANTURF_TENT_MON_ARON_1 9 +#define VERDANTURF_TENT_MON_NUMEL_1 10 +#define VERDANTURF_TENT_MON_SWALOT 11 +#define VERDANTURF_TENT_MON_KECLEON 12 +#define VERDANTURF_TENT_MON_BALTOY 13 +#define VERDANTURF_TENT_MON_NINJASK 14 +#define VERDANTURF_TENT_MON_MAKUHITA 15 +#define VERDANTURF_TENT_MON_SWABLU 16 +#define VERDANTURF_TENT_MON_GOLDEEN_1 17 +#define VERDANTURF_TENT_MON_LOTAD 18 +#define VERDANTURF_TENT_MON_NUMEL_2 19 +#define VERDANTURF_TENT_MON_LINOONE 20 +#define VERDANTURF_TENT_MON_SEVIPER 21 +#define VERDANTURF_TENT_MON_SKARMORY 22 +#define VERDANTURF_TENT_MON_SWELLOW 23 +#define VERDANTURF_TENT_MON_GOLDEEN_2 24 +#define VERDANTURF_TENT_MON_ELECTRIKE 25 +#define VERDANTURF_TENT_MON_NUZLEAF 26 +#define VERDANTURF_TENT_MON_ARON_2 27 +#define VERDANTURF_TENT_MON_MIGHTYENA 28 +#define VERDANTURF_TENT_MON_SOLROCK 29 +#define VERDANTURF_TENT_MON_GRAVELER 30 +#define VERDANTURF_TENT_MON_KADABRA 31 +#define VERDANTURF_TENT_MON_VOLTORB 32 +#define VERDANTURF_TENT_MON_MAGNEMITE 33 +#define VERDANTURF_TENT_MON_PELIPPER 34 +#define VERDANTURF_TENT_MON_LOUDRED 35 +#define VERDANTURF_TENT_MON_MARILL 36 +#define VERDANTURF_TENT_MON_TRAPINCH 37 +#define VERDANTURF_TENT_MON_TENTACOOL 38 +#define VERDANTURF_TENT_MON_VIGOROTH 39 +#define VERDANTURF_TENT_MON_WAILMER 40 +#define VERDANTURF_TENT_MON_ILLUMISE 41 +#define VERDANTURF_TENT_MON_MACHOKE 42 +#define VERDANTURF_TENT_MON_WHISMUR 43 +#define VERDANTURF_TENT_MON_CACNEA 44 + +#define NUM_VERDANTURF_TENT_MONS 45 + +#define FALLARBOR_TENT_MON_NUMEL 0 +#define FALLARBOR_TENT_MON_LINOONE_1 1 +#define FALLARBOR_TENT_MON_PLUSLE 2 +#define FALLARBOR_TENT_MON_POOCHYENA 3 +#define FALLARBOR_TENT_MON_KECLEON 4 +#define FALLARBOR_TENT_MON_MAGIKARP 5 +#define FALLARBOR_TENT_MON_SOLROCK 6 +#define FALLARBOR_TENT_MON_MAKUHITA 7 +#define FALLARBOR_TENT_MON_MACHOKE 8 +#define FALLARBOR_TENT_MON_NINCADA 9 +#define FALLARBOR_TENT_MON_BEAUTIFLY 10 +#define FALLARBOR_TENT_MON_DUSTOX 11 +#define FALLARBOR_TENT_MON_ILLUMISE 12 +#define FALLARBOR_TENT_MON_VOLBEAT 13 +#define FALLARBOR_TENT_MON_NINJASK_1 14 +#define FALLARBOR_TENT_MON_NINJASK_2 15 +#define FALLARBOR_TENT_MON_ARON_1 16 +#define FALLARBOR_TENT_MON_ARON_2 17 +#define FALLARBOR_TENT_MON_ELECTRIKE 18 +#define FALLARBOR_TENT_MON_MAGNEMITE 19 +#define FALLARBOR_TENT_MON_VOLTORB 20 +#define FALLARBOR_TENT_MON_WHISMUR 21 +#define FALLARBOR_TENT_MON_LOUDRED 22 +#define FALLARBOR_TENT_MON_LINOONE_2 23 +#define FALLARBOR_TENT_MON_MIGHTYENA 24 +#define FALLARBOR_TENT_MON_SWABLU 25 +#define FALLARBOR_TENT_MON_SKARMORY 26 +#define FALLARBOR_TENT_MON_GOLBAT 27 +#define FALLARBOR_TENT_MON_WINGULL 28 +#define FALLARBOR_TENT_MON_PELIPPER 29 +#define FALLARBOR_TENT_MON_BARBOACH 30 +#define FALLARBOR_TENT_MON_WAILMER 31 +#define FALLARBOR_TENT_MON_MARILL 32 +#define FALLARBOR_TENT_MON_GOLDEEN_1 33 +#define FALLARBOR_TENT_MON_GOLDEEN_2 34 +#define FALLARBOR_TENT_MON_TRAPINCH 35 +#define FALLARBOR_TENT_MON_BALTOY 36 +#define FALLARBOR_TENT_MON_GRAVELER 37 +#define FALLARBOR_TENT_MON_SANDSHREW 38 +#define FALLARBOR_TENT_MON_SWALOT 39 +#define FALLARBOR_TENT_MON_SHROOMISH 40 +#define FALLARBOR_TENT_MON_KIRLIA 41 +#define FALLARBOR_TENT_MON_LOMBRE 42 +#define FALLARBOR_TENT_MON_NUZLEAF 43 +#define FALLARBOR_TENT_MON_CACNEA 44 + +#define NUM_FALLARBOR_TENT_MONS 45 + +#endif // GUARD_CONSTANTS_BATTLE_TENT_MONS_H diff --git a/include/constants/battle_tent_trainers.h b/include/constants/battle_tent_trainers.h new file mode 100644 index 000000000..3629da0ca --- /dev/null +++ b/include/constants/battle_tent_trainers.h @@ -0,0 +1,99 @@ +#ifndef GUARD_CONSTANTS_BATTLE_TENT_TRAINERS_H +#define GUARD_CONSTANTS_BATTLE_TENT_TRAINERS_H + +#define SLATEPORT_TENT_TRAINER_JOLIE 0 +#define SLATEPORT_TENT_TRAINER_MALACHI 1 +#define SLATEPORT_TENT_TRAINER_KELSIE 2 +#define SLATEPORT_TENT_TRAINER_DAVON 3 +#define SLATEPORT_TENT_TRAINER_GLENDA 4 +#define SLATEPORT_TENT_TRAINER_HELENA 5 +#define SLATEPORT_TENT_TRAINER_RODOLFO 6 +#define SLATEPORT_TENT_TRAINER_DAVION 7 +#define SLATEPORT_TENT_TRAINER_KENDALL 8 +#define SLATEPORT_TENT_TRAINER_COLTEN 9 +#define SLATEPORT_TENT_TRAINER_IRVIN 10 +#define SLATEPORT_TENT_TRAINER_SHAUN 11 +#define SLATEPORT_TENT_TRAINER_KYLER 12 +#define SLATEPORT_TENT_TRAINER_MAGGIE 13 +#define SLATEPORT_TENT_TRAINER_STEPHON 14 +#define SLATEPORT_TENT_TRAINER_REBECCA 15 +#define SLATEPORT_TENT_TRAINER_REGGIE 16 +#define SLATEPORT_TENT_TRAINER_JANAE 17 +#define SLATEPORT_TENT_TRAINER_CAIDEN 18 +#define SLATEPORT_TENT_TRAINER_KIRSTEN 19 +#define SLATEPORT_TENT_TRAINER_KURTIS 20 +#define SLATEPORT_TENT_TRAINER_STEFAN 21 +#define SLATEPORT_TENT_TRAINER_AVERY 22 +#define SLATEPORT_TENT_TRAINER_DWANE 23 +#define SLATEPORT_TENT_TRAINER_MCKENNA 24 +#define SLATEPORT_TENT_TRAINER_CAMRYN 25 +#define SLATEPORT_TENT_TRAINER_NATASHA 26 +#define SLATEPORT_TENT_TRAINER_AUSTYN 27 +#define SLATEPORT_TENT_TRAINER_DONOVAN 28 +#define SLATEPORT_TENT_TRAINER_TAMIA 29 + +#define VERDANTURF_TENT_TRAINER_BRENNA 0 +#define VERDANTURF_TENT_TRAINER_DILAN 1 +#define VERDANTURF_TENT_TRAINER_ELIANA 2 +#define VERDANTURF_TENT_TRAINER_MARKUS 3 +#define VERDANTURF_TENT_TRAINER_CAITLYN 4 +#define VERDANTURF_TENT_TRAINER_DESIREE 5 +#define VERDANTURF_TENT_TRAINER_RONALD 6 +#define VERDANTURF_TENT_TRAINER_ASHTEN 7 +#define VERDANTURF_TENT_TRAINER_GERARD 8 +#define VERDANTURF_TENT_TRAINER_BRADLY 9 +#define VERDANTURF_TENT_TRAINER_DENNIS 10 +#define VERDANTURF_TENT_TRAINER_PRESTIN 11 +#define VERDANTURF_TENT_TRAINER_ERNESTO 12 +#define VERDANTURF_TENT_TRAINER_NALA 13 +#define VERDANTURF_TENT_TRAINER_DARNELL 14 +#define VERDANTURF_TENT_TRAINER_ASHLYN 15 +#define VERDANTURF_TENT_TRAINER_ADDISON 16 +#define VERDANTURF_TENT_TRAINER_JUSTINE 17 +#define VERDANTURF_TENT_TRAINER_TYSON 18 +#define VERDANTURF_TENT_TRAINER_LAILA 19 +#define VERDANTURF_TENT_TRAINER_WAREN 20 +#define VERDANTURF_TENT_TRAINER_TOBIAS 21 +#define VERDANTURF_TENT_TRAINER_JOSIAH 22 +#define VERDANTURF_TENT_TRAINER_DION 23 +#define VERDANTURF_TENT_TRAINER_KENZIE 24 +#define VERDANTURF_TENT_TRAINER_LILLIAN 25 +#define VERDANTURF_TENT_TRAINER_LESLEY 26 +#define VERDANTURF_TENT_TRAINER_MARQUIS 27 +#define VERDANTURF_TENT_TRAINER_FREDDY 28 +#define VERDANTURF_TENT_TRAINER_CECILIA 29 + +#define FALLARBOR_TENT_TRAINER_AMBER 0 +#define FALLARBOR_TENT_TRAINER_JAVIER 1 +#define FALLARBOR_TENT_TRAINER_NATALIA 2 +#define FALLARBOR_TENT_TRAINER_TREVE 3 +#define FALLARBOR_TENT_TRAINER_ARIANNA 4 +#define FALLARBOR_TENT_TRAINER_JADYN 5 +#define FALLARBOR_TENT_TRAINER_GERARDO 6 +#define FALLARBOR_TENT_TRAINER_JONN 7 +#define FALLARBOR_TENT_TRAINER_ESTEBAN 8 +#define FALLARBOR_TENT_TRAINER_JAMESON 9 +#define FALLARBOR_TENT_TRAINER_ALANZO 10 +#define FALLARBOR_TENT_TRAINER_HOWARD 11 +#define FALLARBOR_TENT_TRAINER_CONRAD 12 +#define FALLARBOR_TENT_TRAINER_MAKENNA 13 +#define FALLARBOR_TENT_TRAINER_BRAYAN 14 +#define FALLARBOR_TENT_TRAINER_MARIANA 15 +#define FALLARBOR_TENT_TRAINER_SHELDON 16 +#define FALLARBOR_TENT_TRAINER_GIANNA 17 +#define FALLARBOR_TENT_TRAINER_YAHIR 18 +#define FALLARBOR_TENT_TRAINER_BRITNEY 19 +#define FALLARBOR_TENT_TRAINER_HECTER 20 +#define FALLARBOR_TENT_TRAINER_TANNOR 21 +#define FALLARBOR_TENT_TRAINER_BENJI 22 +#define FALLARBOR_TENT_TRAINER_RORY 23 +#define FALLARBOR_TENT_TRAINER_ELEANOR 24 +#define FALLARBOR_TENT_TRAINER_EVELYN 25 +#define FALLARBOR_TENT_TRAINER_ARIELLE 26 +#define FALLARBOR_TENT_TRAINER_CONNAR 27 +#define FALLARBOR_TENT_TRAINER_MAURICE 28 +#define FALLARBOR_TENT_TRAINER_KIANNA 29 + +#define NUM_BATTLE_TENT_TRAINERS 30 + +#endif // GUARD_CONSTANTS_BATTLE_TENT_TRAINERS_H diff --git a/include/constants/flags.h b/include/constants/flags.h index be0899691..1163e394f 100644 --- a/include/constants/flags.h +++ b/include/constants/flags.h @@ -1,6 +1,8 @@ #ifndef GUARD_CONSTANTS_FLAGS_H #define GUARD_CONSTANTS_FLAGS_H +#include "constants/opponents.h" + // Temporary Flags // These temporary flags are are cleared every time a map is loaded. They are used // for things like shortening an NPCs introduction text if the player already spoke @@ -533,8 +535,6 @@ #define FLAG_MYSTERY_EVENT_14 0x1F2 #define FLAG_MYSTERY_EVENT_15 0x1F3 -#define FLAG_TRICK_HOUSE_END_ROOM 0x1F5 // Trick House End Room Flag - // Hidden Items -- sorted by location #define FLAG_HIDDEN_ITEMS_START 0x1F4 #define FLAG_HIDDEN_ITEM_TRICK_HOUSE_NUGGET (FLAG_HIDDEN_ITEMS_START + 0x01) @@ -1342,13 +1342,17 @@ #define FLAG_UNUSED_0x4FF 0x4FF // Unused Flag -#define FLAG_TRAINER_FLAG_START 0x500 -#define TRAINERS_FLAG_NO 0x356 +// Trainer Flags +// Trainer flags occupy 0x500 - 0x85F, the last 9 of which are unused +// See constants/opponents.h. The values there + FLAG_TRAINER_FLAG_START are the flag IDs -#define SYSTEM_FLAGS (FLAG_TRAINER_FLAG_START + TRAINERS_FLAG_NO + 0xA) // 0x860 +#define TRAINER_FLAGS_START 0x500 +#define TRAINER_FLAGS_END (TRAINER_FLAGS_START + MAX_TRAINERS_COUNT - 1) // 0x85F // System Flags +#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) diff --git a/include/constants/global.h b/include/constants/global.h index 19e23d52a..7c96de511 100644 --- a/include/constants/global.h +++ b/include/constants/global.h @@ -58,6 +58,7 @@ #define TRAINER_ID_LENGTH 4 #define MAX_MON_MOVES 4 +#define NUM_STATS 6 // party sizes #define PARTY_SIZE 6 diff --git a/include/constants/metatile_labels.h b/include/constants/metatile_labels.h index 58ac90eab..a0ea6855b 100644 --- a/include/constants/metatile_labels.h +++ b/include/constants/metatile_labels.h @@ -2,29 +2,39 @@ #define GUARD_METATILE_LABELS_H // gTileset_General -#define METATILE_General_Grass 0x001 -#define METATILE_General_TallGrass 0x00D -#define METATILE_General_LongGrass 0x015 -#define METATILE_General_TallGrass_TreeUp 0x025 -#define METATILE_General_Grass_TreeUp 0x00E -#define METATILE_General_TallGrass_TreeLeft 0x1C6 -#define METATILE_General_TallGrass_TreeRight 0x1C7 -#define METATILE_General_Grass_TreeLeft 0x1CE -#define METATILE_General_Grass_TreeRight 0x1CF -#define METATILE_General_MuddySlope_Frame0 0x0E8 -#define METATILE_General_MuddySlope_Frame1 0x0E9 -#define METATILE_General_MuddySlope_Frame2 0x0EA -#define METATILE_General_MuddySlope_Frame3 0x0EB -#define METATILE_General_SandPit_Center 0x121 -#define METATILE_General_CaveEntrance_Top 0x09F -#define METATILE_General_CaveEntrance_Bottom 0x0A7 -#define METATILE_General_RockWall_GrassBase 0x079 -#define METATILE_General_RockWall_RockBase 0x07C -#define METATILE_General_RockWall_SandBase 0x091 -#define METATILE_General_CalmWater 0x170 -#define METATILE_General_RoughWater 0x14E -#define METATILE_General_RoughDeepWater 0x14F -#define METATILE_General_ReflectiveWater 0x0A1 +#define METATILE_General_Grass 0x001 +#define METATILE_General_TallGrass 0x00D +#define METATILE_General_LongGrass 0x015 +#define METATILE_General_TallGrass_TreeUp 0x025 +#define METATILE_General_Grass_TreeUp 0x00E +#define METATILE_General_TallGrass_TreeLeft 0x1C6 +#define METATILE_General_TallGrass_TreeRight 0x1C7 +#define METATILE_General_Grass_TreeLeft 0x1CE +#define METATILE_General_Grass_TreeRight 0x1CF +#define METATILE_General_MuddySlope_Frame0 0x0E8 +#define METATILE_General_MuddySlope_Frame1 0x0E9 +#define METATILE_General_MuddySlope_Frame2 0x0EA +#define METATILE_General_MuddySlope_Frame3 0x0EB +#define METATILE_General_SandPit_Center 0x121 +#define METATILE_General_CaveEntrance_Top 0x09F +#define METATILE_General_CaveEntrance_Bottom 0x0A7 +#define METATILE_General_RockWall_GrassBase 0x079 +#define METATILE_General_RockWall_RockBase 0x07C +#define METATILE_General_RockWall_SandBase 0x091 +#define METATILE_General_CalmWater 0x170 +#define METATILE_General_RoughWater 0x14E +#define METATILE_General_RoughDeepWater 0x14F +#define METATILE_General_ReflectiveWater 0x0A1 +#define METATILE_General_SecretBase_TreeLeft 0x026 +#define METATILE_General_SecretBase_TreeRight 0x027 +#define METATILE_General_SecretBase_VineLeft 0x036 +#define METATILE_General_SecretBase_VineRight 0x037 +#define METATILE_General_RedCaveIndent 0x1A0 +#define METATILE_General_RedCaveOpen 0x1A1 +#define METATILE_General_YellowCaveIndent 0x1A8 +#define METATILE_General_YellowCaveOpen 0x1A9 +#define METATILE_General_BlueCaveIndent 0x1B0 +#define METATILE_General_BlueCaveOpen 0x1B1 // gTileset_Building #define METATILE_Building_PC_Off 0x004 @@ -143,6 +153,8 @@ #define METATILE_Fortree_BridgeOverGrass_Lowered 0x24F #define METATILE_Fortree_BridgeOverTrees_Raised 0x256 #define METATILE_Fortree_BridgeOverTrees_Lowered 0x257 +#define METATILE_Fortree_SecretBase_Shrub 0x271 +#define METATILE_Fortree_SecretBase_ShrubOpen 0x278 #define METATILE_Fortree_SecretBase_LongGrass_TopLeft 0x279 #define METATILE_Fortree_SecretBase_LongGrass_TopMid 0x27A #define METATILE_Fortree_SecretBase_LongGrass_TopRight 0x27B @@ -164,6 +176,8 @@ // gTileset_Fallarbor #define METATILE_Fallarbor_AshGrass 0x20A +#define METATILE_Fallarbor_BrownCaveIndent 0x208 +#define METATILE_Fallarbor_BrownCaveOpen 0x210 #define METATILE_Fallarbor_NormalGrass 0x212 #define METATILE_Fallarbor_AshField 0x218 #define METATILE_Fallarbor_BrownCaveEntrance_Top 0x259 @@ -414,4 +428,162 @@ #define METATILE_Underwater_RockWall 0x21E #define METATILE_Underwater_FloorShadow 0x228 +// gTileset_SecretBase +#define METATILE_SecretBase_Wall_TopMid 0x202 +#define METATILE_SecretBase_Ground 0x20A +#define METATILE_SecretBase_PC 0x220 +#define METATILE_SecretBase_RegisterPC 0x221 +#define METATILE_SecretBase_PC_On 0x224 +#define METATILE_SecretBase_RedBrick_Top 0x225 +#define METATILE_SecretBase_RedBrick_Bottom 0x22D +#define METATILE_SecretBase_YellowBrick_Top 0x226 +#define METATILE_SecretBase_YellowBrick_Bottom 0x22E +#define METATILE_SecretBase_BlueBrick_Top 0x227 +#define METATILE_SecretBase_BlueBrick_Bottom 0x22F +#define METATILE_SecretBase_MudBall 0x228 +#define METATILE_SecretBase_Fence_Horizontal 0x22C +#define METATILE_SecretBase_Fence_Vertical 0x233 +#define METATILE_SecretBase_Board_Top 0x234 +#define METATILE_SecretBase_Board_Bottom 0x23C +#define METATILE_SecretBase_RedTent_DoorTop 0x239 +#define METATILE_SecretBase_RedTent_Door 0x241 +#define METATILE_SecretBase_BlueTent_DoorTop 0x251 +#define METATILE_SecretBase_BlueTent_Door 0x259 +#define METATILE_SecretBase_Slide_Stairs 0x23D +#define METATILE_SecretBase_Slide 0x23E +#define METATILE_SecretBase_Stand_LeftCorner 0x26A +#define METATILE_SecretBase_Stand_RightCorner 0x26D +#define METATILE_SecretBase_BreakableDoor_TopClosed 0x237 +#define METATILE_SecretBase_BreakableDoor_BottomClosed 0x23F +#define METATILE_SecretBase_BreakableDoor_TopOpen 0x26E +#define METATILE_SecretBase_BreakableDoor_BottomOpen 0x276 +#define METATILE_SecretBase_NoteMat_C 0x278 +#define METATILE_SecretBase_NoteMat_D 0x279 +#define METATILE_SecretBase_NoteMat_E 0x27A +#define METATILE_SecretBase_NoteMat_F 0x27B +#define METATILE_SecretBase_NoteMat_G 0x27C +#define METATILE_SecretBase_NoteMat_A 0x27D +#define METATILE_SecretBase_NoteMat_B 0x27E +#define METATILE_SecretBase_NoteMat_C_Sharp 0x2B3 +#define METATILE_SecretBase_Tire_TopLeft 0x280 +#define METATILE_SecretBase_Tire_TopRight 0x281 +#define METATILE_SecretBase_Tire_BottomLeft 0x288 +#define METATILE_SecretBase_Tire_BottomRight 0x289 +#define METATILE_SecretBase_GlassOrnament_Base1 0x28A +#define METATILE_SecretBase_GlassOrnament_Base2 0x28B +#define METATILE_SecretBase_SandOrnament_BrokenTop 0x284 +#define METATILE_SecretBase_SandOrnament_BrokenBase 0x28C +#define METATILE_SecretBase_SandOrnament_Top 0x285 +#define METATILE_SecretBase_SandOrnament_Base1 0x28D +#define METATILE_SecretBase_SandOrnament_TopWall 0x286 +#define METATILE_SecretBase_SandOrnament_Base2 0x28E +#define METATILE_SecretBase_SmallDesk 0x287 +#define METATILE_SecretBase_PokemonDesk 0x28F +#define METATILE_SecretBase_HeavyDesk_TopLeft 0x290 +#define METATILE_SecretBase_HeavyDesk_TopMid 0x291 +#define METATILE_SecretBase_HeavyDesk_TopRight 0x292 +#define METATILE_SecretBase_HeavyDesk_BottomLeft 0x298 +#define METATILE_SecretBase_HeavyDesk_BottomMid 0x299 +#define METATILE_SecretBase_HeavyDesk_BottomRight 0x29A +#define METATILE_SecretBase_RaggedDesk_TopLeft 0x293 +#define METATILE_SecretBase_RaggedDesk_TopMid 0x294 +#define METATILE_SecretBase_RaggedDesk_TopRight 0x295 +#define METATILE_SecretBase_RaggedDesk_BottomLeft 0x29B +#define METATILE_SecretBase_RaggedDesk_BottomMid 0x29C +#define METATILE_SecretBase_RaggedDesk_BottomRight 0x29D +#define METATILE_SecretBase_ComfortDesk_TopLeft 0x296 +#define METATILE_SecretBase_ComfortDesk_TopMid 0x297 +#define METATILE_SecretBase_ComfortDesk_TopRight 0x2A3 +#define METATILE_SecretBase_ComfortDesk_BottomLeft 0x29E +#define METATILE_SecretBase_ComfortDesk_BottomMid 0x29F +#define METATILE_SecretBase_ComfortDesk_BottomRight 0x2AB +#define METATILE_SecretBase_BrickDesk_TopLeft 0x2A0 +#define METATILE_SecretBase_BrickDesk_TopMid 0x2A1 +#define METATILE_SecretBase_BrickDesk_TopRight 0x2A2 +#define METATILE_SecretBase_BrickDesk_MidLeft 0x2A8 +#define METATILE_SecretBase_BrickDesk_Center 0x2A9 +#define METATILE_SecretBase_BrickDesk_MidRight 0x2AA +#define METATILE_SecretBase_BrickDesk_BottomLeft 0x2B0 +#define METATILE_SecretBase_BrickDesk_BottomMid 0x2B1 +#define METATILE_SecretBase_BrickDesk_BottomRight 0x2B2 +#define METATILE_SecretBase_CampDesk_TopLeft 0x2A4 +#define METATILE_SecretBase_CampDesk_TopMid 0x2A5 +#define METATILE_SecretBase_CampDesk_TopRight 0x2A6 +#define METATILE_SecretBase_CampDesk_MidLeft 0x2AC +#define METATILE_SecretBase_CampDesk_Center 0x2AD +#define METATILE_SecretBase_CampDesk_MidRight 0x2AE +#define METATILE_SecretBase_CampDesk_BottomLeft 0x2B4 +#define METATILE_SecretBase_CampDesk_BottomMid 0x2B5 +#define METATILE_SecretBase_CampDesk_BottomRight 0x2B6 +#define METATILE_SecretBase_HardDesk_TopLeft 0x2A7 +#define METATILE_SecretBase_HardDesk_TopMid 0x2BB +#define METATILE_SecretBase_HardDesk_TopRight 0x2BC +#define METATILE_SecretBase_HardDesk_MidLeft 0x2AF +#define METATILE_SecretBase_HardDesk_Center 0x2C3 +#define METATILE_SecretBase_HardDesk_MidRight 0x2C4 +#define METATILE_SecretBase_HardDesk_BottomLeft 0x2B7 +#define METATILE_SecretBase_HardDesk_BottomMid 0x2CB +#define METATILE_SecretBase_HardDesk_BottomRight 0x2CC +#define METATILE_SecretBase_PrettyDesk_TopLeft 0x2BD +#define METATILE_SecretBase_PrettyDesk_TopMid 0x2BE +#define METATILE_SecretBase_PrettyDesk_TopRight 0x2BF +#define METATILE_SecretBase_PrettyDesk_MidLeft 0x2C5 +#define METATILE_SecretBase_PrettyDesk_Center 0x2C6 +#define METATILE_SecretBase_PrettyDesk_MidRight 0x2C7 +#define METATILE_SecretBase_PrettyDesk_BottomLeft 0x2CD +#define METATILE_SecretBase_PrettyDesk_BottomMid 0x2CE +#define METATILE_SecretBase_PrettyDesk_BottomRight 0x2CF +#define METATILE_SecretBase_SmallChair 0x2B8 +#define METATILE_SecretBase_PokemonChair 0x2B9 +#define METATILE_SecretBase_HeavyChair 0x2BA +#define METATILE_SecretBase_PrettyChair 0x2C0 +#define METATILE_SecretBase_ComfortChair 0x2C1 +#define METATILE_SecretBase_RaggedChair 0x2C2 +#define METATILE_SecretBase_BrickChair 0x2C8 +#define METATILE_SecretBase_CampChair 0x2C9 +#define METATILE_SecretBase_HardChair 0x2Ca +#define METATILE_SecretBase_RedPlant_Base1 0x2D8 +#define METATILE_SecretBase_RedPlant_Base2 0x2D9 +#define METATILE_SecretBase_TropicalPlant_Base1 0x2DA +#define METATILE_SecretBase_TropicalPlant_Base2 0x2DB +#define METATILE_SecretBase_PrettyFlower_Base1 0x2DC +#define METATILE_SecretBase_PrettyFlower_Base2 0x2DD +#define METATILE_SecretBase_ColorfulFlowers_BaseLeft1 0x2E8 +#define METATILE_SecretBase_ColorfulFlowers_BaseRight1 0x2E9 +#define METATILE_SecretBase_ColorfulFlowers_BaseLeft2 0x2EA +#define METATILE_SecretBase_ColorfulFlowers_BaseRight2 0x2EB +#define METATILE_SecretBase_BigPlant_BaseLeft1 0x2EC +#define METATILE_SecretBase_BigPlant_BaseRight1 0x2ED +#define METATILE_SecretBase_BigPlant_BaseLeft2 0x2EE +#define METATILE_SecretBase_BigPlant_BaseRight2 0x2EF +#define METATILE_SecretBase_GorgeousPlant_BaseLeft1 0x2F8 +#define METATILE_SecretBase_GorgeousPlant_BaseRight1 0x2F9 +#define METATILE_SecretBase_GorgeousPlant_BaseLeft2 0x2FA +#define METATILE_SecretBase_GorgeousPlant_BaseRight2 0x2FB +#define METATILE_SecretBase_TV 0x2F4 +#define METATILE_SecretBase_RoundTV 0x2F5 +#define METATILE_SecretBase_CuteTV 0x2F6 +#define METATILE_SecretBase_PikaPoster_Left 0x31C +#define METATILE_SecretBase_PikaPoster_Right 0x31D +#define METATILE_SecretBase_LongPoster_Left 0x31E +#define METATILE_SecretBase_LongPoster_Right 0x31F +#define METATILE_SecretBase_SeaPoster_Left 0x324 +#define METATILE_SecretBase_SeaPoster_Right 0x325 +#define METATILE_SecretBase_SkyPoster_Left 0x326 +#define METATILE_SecretBase_SkyPoster_Right 0x327 +#define METATILE_SecretBase_KissPoster_Left 0x32C +#define METATILE_SecretBase_KissPoster_Right 0x32D +#define METATILE_SecretBase_BallPoster 0x330 +#define METATILE_SecretBase_GreenPoster 0x331 +#define METATILE_SecretBase_RedPoster 0x332 +#define METATILE_SecretBase_BluePoster 0x333 +#define METATILE_SecretBase_CutePoster 0x334 +#define METATILE_SecretBase_SilverShield_Base1 0x2DE +#define METATILE_SecretBase_SilverShield_Base2 0x2DF +#define METATILE_SecretBase_GoldShield_Base1 0x336 +#define METATILE_SecretBase_GoldShield_Base2 0x337 +#define METATILE_SecretBase_RedBalloon 0x338 +#define METATILE_SecretBase_BlueBalloon 0x33c +#define METATILE_SecretBase_YellowBalloon 0x340 + #endif // GUARD_METATILE_LABELS_H diff --git a/include/constants/opponents.h b/include/constants/opponents.h index 79a125bda..cd35cf6b7 100644 --- a/include/constants/opponents.h +++ b/include/constants/opponents.h @@ -857,6 +857,10 @@ #define TRAINER_BRENDAN_PLACEHOLDER 853 #define TRAINER_MAY_PLACEHOLDER 854 +// NOTE: Because each Trainer uses a flag to determine when they are defeated, there is only space for 9 additional trainers before trainer flag space overflows +// More space can be made by shifting flags around in constants/flags.h or changing how trainer flags are handled + #define TRAINERS_COUNT 855 +#define MAX_TRAINERS_COUNT 864 #endif // GUARD_CONSTANTS_OPPONENTS_H diff --git a/include/constants/pokemon.h b/include/constants/pokemon.h index 5610a470c..97e3f0686 100644 --- a/include/constants/pokemon.h +++ b/include/constants/pokemon.h @@ -80,8 +80,8 @@ #define STAT_ACC 6 // Only in battles. #define STAT_EVASION 7 // Only in battles. -#define NUM_STATS 6 -#define NUM_BATTLE_STATS 8 +#define NUM_EV_STATS NUM_STATS - 1 // excludes HP +#define NUM_BATTLE_STATS NUM_STATS + 2 // includes Accuracy and Evasion // Shiny odds #define SHINY_ODDS 8 // Actual probability is SHINY_ODDS/65536 @@ -213,6 +213,8 @@ #define FRIENDSHIP_EVENT_FAINT_OUTSIDE_BATTLE 7 #define FRIENDSHIP_EVENT_FAINT_LARGE 8 +#define MAX_FRIENDSHIP 0xFF + #define STATUS_PRIMARY_NONE 0 #define STATUS_PRIMARY_POISON 1 #define STATUS_PRIMARY_PARALYSIS 2 diff --git a/include/constants/trainers.h b/include/constants/trainers.h index e5a193770..541b131ca 100644 --- a/include/constants/trainers.h +++ b/include/constants/trainers.h @@ -2,9 +2,11 @@ #define GUARD_TRAINERS_H #include "constants/opponents.h" +#include "constants/battle_frontier_trainers.h" // Special Trainer Ids. -#define TRAINER_RECORD_MIXING_FRIEND 300 +// 0-299 are frontier trainers +#define TRAINER_RECORD_MIXING_FRIEND FRONTIER_TRAINERS_COUNT #define TRAINER_RECORD_MIXING_APPRENTICE 400 #define TRAINER_EREADER 500 #define TRAINER_FRONTIER_BRAIN 1022 diff --git a/include/constants/tv.h b/include/constants/tv.h index fddf650e4..6f686f727 100644 --- a/include/constants/tv.h +++ b/include/constants/tv.h @@ -46,4 +46,92 @@ // Number of ribbons to put Spot the Cuties on air #define NUM_CUTIES_RIBBONS 4 +// TV Show states for Secret Base Secrets +#define SBSECRETS_STATE_INTRO 0 +#define SBSECRETS_STATE_DO_NEXT1 1 +#define SBSECRETS_STATE_DO_NEXT2 2 +#define SBSECRETS_STATE_TOOK_X_STEPS 3 +#define SBSECRETS_STATE_BASE_INTEREST_LOW 4 +#define SBSECRETS_STATE_BASE_INTEREST_MED 5 +#define SBSECRETS_STATE_BASE_INTEREST_HIGH 6 +#define SBSECRETS_STATE_OUTRO 7 +#define SBSECRETS_STATE_NOTHING_USED1 8 +#define SBSECRETS_STATE_NOTHING_USED2 9 +#define SBSECRETS_STATE_USED_CHAIR 10 +#define SBSECRETS_STATE_USED_BALLOON 11 +#define SBSECRETS_STATE_USED_TENT 12 +#define SBSECRETS_STATE_USED_PLANT 13 +#define SBSECRETS_STATE_USED_GOLD_SHIELD 14 +#define SBSECRETS_STATE_USED_SILVER_SHIELD 15 +#define SBSECRETS_STATE_USED_GLASS_ORNAMENT 16 +#define SBSECRETS_STATE_USED_TV 17 +#define SBSECRETS_STATE_USED_MUD_BALL 18 +#define SBSECRETS_STATE_USED_BAG 19 +#define SBSECRETS_STATE_USED_CUSHION 20 +#define SBSECRETS_STATE_HIT_CUSHION 21 +#define SBSECRETS_STATE_HUGGED_CUSHION 22 +#define SBSECRETS_STATE_BATTLED_WON 23 +#define SBSECRETS_STATE_BATTLED_LOST 24 +#define SBSECRETS_STATE_DECLINED_BATTLE 25 +#define SBSECRETS_STATE_USED_POSTER 26 +#define SBSECRETS_STATE_USED_NOTE_MAT 27 +#define SBSECRETS_STATE_BATTLED_DRAW 28 +#define SBSECRETS_STATE_USED_SPIN_MAT 29 +#define SBSECRETS_STATE_USED_SAND_ORNAMENT 30 +#define SBSECRETS_STATE_USED_DESK 31 +#define SBSECRETS_STATE_USED_BRICK 32 +#define SBSECRETS_STATE_USED_SOLID_BOARD 33 +#define SBSECRETS_STATE_USED_FENCE 34 +#define SBSECRETS_STATE_USED_GLITTER_MAT 35 +#define SBSECRETS_STATE_USED_TIRE 36 +#define SBSECRETS_STATE_USED_STAND 37 +#define SBSECRETS_STATE_USED_BREAKABLE_DOOR 38 +#define SBSECRETS_STATE_USED_DOLL 39 +#define SBSECRETS_STATE_USED_SLIDE 40 +#define SBSECRETS_STATE_DECLINED_SLIDE 41 +#define SBSECRETS_STATE_USED_JUMP_MAT 42 +#define SBSECRETS_NUM_STATES 43 + +// The below flags are set when interacting with objects in a friends secret base +// Theyre set as bits in a var, and with 32 flags they're spread across 2 vars + +// VAR_SECRET_BASE_LOW_TV_FLAGS +#define SECRET_BASE_USED_CHAIR (1 << 0) +#define SECRET_BASE_USED_BALLOON (1 << 1) +#define SECRET_BASE_USED_TENT (1 << 2) +#define SECRET_BASE_USED_PLANT (1 << 3) +#define SECRET_BASE_USED_GOLD_SHIELD (1 << 4) +#define SECRET_BASE_USED_SILVER_SHIELD (1 << 5) +#define SECRET_BASE_USED_GLASS_ORNAMENT (1 << 6) +#define SECRET_BASE_USED_TV (1 << 7) +#define SECRET_BASE_USED_MUD_BALL (1 << 8) +#define SECRET_BASE_USED_BAG (1 << 9) +#define SECRET_BASE_USED_CUSHION (1 << 10) +#define SECRET_BASE_BATTLED_WON (1 << 11) +#define SECRET_BASE_BATTLED_LOST (1 << 12) +#define SECRET_BASE_DECLINED_BATTLE (1 << 13) +#define SECRET_BASE_USED_POSTER (1 << 14) +#define SECRET_BASE_USED_NOTE_MAT (1 << 15) + +// VAR_SECRET_BASE_HIGH_TV_FLAGS +#define SECRET_BASE_BATTLED_DRAW (1 << 0) +#define SECRET_BASE_USED_SPIN_MAT (1 << 1) +#define SECRET_BASE_USED_SAND_ORNAMENT (1 << 2) +#define SECRET_BASE_USED_DESK (1 << 3) +#define SECRET_BASE_USED_BRICK (1 << 4) +#define SECRET_BASE_USED_SOLID_BOARD (1 << 5) +#define SECRET_BASE_USED_FENCE (1 << 6) +#define SECRET_BASE_USED_GLITTER_MAT (1 << 7) +#define SECRET_BASE_USED_TIRE (1 << 8) +#define SECRET_BASE_USED_STAND (1 << 9) +#define SECRET_BASE_USED_BREAKABLE_DOOR (1 << 10) +#define SECRET_BASE_USED_DOLL (1 << 11) +#define SECRET_BASE_USED_SLIDE (1 << 12) +#define SECRET_BASE_DECLINED_SLIDE (1 << 13) +#define SECRET_BASE_USED_JUMP_MAT (1 << 14) +#define SECRET_BASE_UNUSED_FLAG (1 << 15) + +#define NUM_SECRET_BASE_FLAGS 32 // by definition, bitfield of 2 u16s + + #endif //GUARD_CONSTANTS_TV_H diff --git a/include/easy_chat.h b/include/easy_chat.h index 221cbd1da..f2ef066d4 100644 --- a/include/easy_chat.h +++ b/include/easy_chat.h @@ -128,10 +128,10 @@ bool32 sub_811F8D8(int word); void InitializeEasyChatWordArray(u16 *words, u16 length); u8 *ConvertEasyChatWordsToString(u8 *dest, const u16 *src, u16 columns, u16 rows); bool8 ECWord_CheckIfOutsideOfValidRange(u16 word); -u16 sub_811EE38(u16 group); +u16 GetRandomEasyChatWordFromGroup(u16 group); u16 GetNewHipsterPhraseToTeach(void); u16 EasyChat_GetNumWordsInGroup(u8); -u16 sub_811EE90(u16); +u16 GetRandomEasyChatWordFromUnlockedGroup(u16); void DoEasyChatScreen(u8 type, u16 *words, MainCallback callback, u8 displayedPersonType); void sub_811F8BC(void); void UnlockAdditionalPhrase(u8 additionalPhraseId); diff --git a/include/event_scripts.h b/include/event_scripts.h index c2716a214..a56ab89e0 100644 --- a/include/event_scripts.h +++ b/include/event_scripts.h @@ -240,49 +240,49 @@ extern const u8 gTVWhatsNo1InHoennTodayText05[]; extern const u8 gTVWhatsNo1InHoennTodayText06[]; extern const u8 gTVWhatsNo1InHoennTodayText07[]; extern const u8 gTVWhatsNo1InHoennTodayText08[]; -extern const u8 gTVSecretBaseSecretsText00[]; -extern const u8 gTVSecretBaseSecretsText01[]; -extern const u8 gTVSecretBaseSecretsText02[]; -extern const u8 gTVSecretBaseSecretsText03[]; -extern const u8 gTVSecretBaseSecretsText04[]; -extern const u8 gTVSecretBaseSecretsText05[]; -extern const u8 gTVSecretBaseSecretsText06[]; -extern const u8 gTVSecretBaseSecretsText07[]; -extern const u8 gTVSecretBaseSecretsText08[]; -extern const u8 gTVSecretBaseSecretsText09[]; -extern const u8 gTVSecretBaseSecretsText10[]; -extern const u8 gTVSecretBaseSecretsText11[]; -extern const u8 gTVSecretBaseSecretsText12[]; -extern const u8 gTVSecretBaseSecretsText13[]; -extern const u8 gTVSecretBaseSecretsText14[]; -extern const u8 gTVSecretBaseSecretsText15[]; -extern const u8 gTVSecretBaseSecretsText16[]; -extern const u8 gTVSecretBaseSecretsText17[]; -extern const u8 gTVSecretBaseSecretsText18[]; -extern const u8 gTVSecretBaseSecretsText19[]; -extern const u8 gTVSecretBaseSecretsText20[]; -extern const u8 gTVSecretBaseSecretsText21[]; -extern const u8 gTVSecretBaseSecretsText22[]; -extern const u8 gTVSecretBaseSecretsText23[]; -extern const u8 gTVSecretBaseSecretsText24[]; -extern const u8 gTVSecretBaseSecretsText25[]; -extern const u8 gTVSecretBaseSecretsText26[]; -extern const u8 gTVSecretBaseSecretsText27[]; -extern const u8 gTVSecretBaseSecretsText28[]; -extern const u8 gTVSecretBaseSecretsText29[]; -extern const u8 gTVSecretBaseSecretsText30[]; -extern const u8 gTVSecretBaseSecretsText31[]; -extern const u8 gTVSecretBaseSecretsText32[]; -extern const u8 gTVSecretBaseSecretsText33[]; -extern const u8 gTVSecretBaseSecretsText34[]; -extern const u8 gTVSecretBaseSecretsText35[]; -extern const u8 gTVSecretBaseSecretsText36[]; -extern const u8 gTVSecretBaseSecretsText37[]; -extern const u8 gTVSecretBaseSecretsText38[]; -extern const u8 gTVSecretBaseSecretsText39[]; -extern const u8 gTVSecretBaseSecretsText40[]; -extern const u8 gTVSecretBaseSecretsText41[]; -extern const u8 gTVSecretBaseSecretsText42[]; +extern const u8 TVSecretBaseSecrets_Text_Intro[]; +extern const u8 TVSecretBaseSecrets_Text_WhatWillPlayerDoNext1[]; +extern const u8 TVSecretBaseSecrets_Text_WhatWillPlayerDoNext2[]; +extern const u8 TVSecretBaseSecrets_Text_TookXStepsBeforeLeaving[]; +extern const u8 TVSecretBaseSecrets_Text_BaseFailedToInterestPlayer[]; +extern const u8 TVSecretBaseSecrets_Text_PlayerEnjoyedBase[]; +extern const u8 TVSecretBaseSecrets_Text_PlayerHugeFanOfBase[]; +extern const u8 TVSecretBaseSecrets_Text_Outro[]; +extern const u8 TVSecretBaseSecrets_Text_StoppedMoving1[]; +extern const u8 TVSecretBaseSecrets_Text_StoppedMoving2[]; +extern const u8 TVSecretBaseSecrets_Text_UsedChair[]; +extern const u8 TVSecretBaseSecrets_Text_UsedBalloon[]; +extern const u8 TVSecretBaseSecrets_Text_UsedTent[]; +extern const u8 TVSecretBaseSecrets_Text_UsedPlant[]; +extern const u8 TVSecretBaseSecrets_Text_UsedGoldShield[]; +extern const u8 TVSecretBaseSecrets_Text_UsedSilverShield[]; +extern const u8 TVSecretBaseSecrets_Text_UsedGlassOrnament[]; +extern const u8 TVSecretBaseSecrets_Text_UsedTV[]; +extern const u8 TVSecretBaseSecrets_Text_UsedMudBall[]; +extern const u8 TVSecretBaseSecrets_Text_UsedBag[]; +extern const u8 TVSecretBaseSecrets_Text_UsedCushion[]; +extern const u8 TVSecretBaseSecrets_Text_HitCushion[]; +extern const u8 TVSecretBaseSecrets_Text_HuggedCushion[]; +extern const u8 TVSecretBaseSecrets_Text_BattledWon[]; +extern const u8 TVSecretBaseSecrets_Text_BattledLost[]; +extern const u8 TVSecretBaseSecrets_Text_DeclinedBattle[]; +extern const u8 TVSecretBaseSecrets_Text_UsedPoster[]; +extern const u8 TVSecretBaseSecrets_Text_UsedNoteMat[]; +extern const u8 TVSecretBaseSecrets_Text_BattledDraw[]; +extern const u8 TVSecretBaseSecrets_Text_UsedSpinMat[]; +extern const u8 TVSecretBaseSecrets_Text_UsedSandOrnament[]; +extern const u8 TVSecretBaseSecrets_Text_UsedDesk[]; +extern const u8 TVSecretBaseSecrets_Text_UsedBrick[]; +extern const u8 TVSecretBaseSecrets_Text_UsedSolidBoard[]; +extern const u8 TVSecretBaseSecrets_Text_UsedFence[]; +extern const u8 TVSecretBaseSecrets_Text_UsedGlitterMat[]; +extern const u8 TVSecretBaseSecrets_Text_UsedTire[]; +extern const u8 TVSecretBaseSecrets_Text_UsedStand[]; +extern const u8 TVSecretBaseSecrets_Text_BrokeDoor[]; +extern const u8 TVSecretBaseSecrets_Text_UsedDoll[]; +extern const u8 TVSecretBaseSecrets_Text_UsedSlide[]; +extern const u8 TVSecretBaseSecrets_Text_UsedSlideButDidntGoDown[]; +extern const u8 TVSecretBaseSecrets_Text_UsedJumpMat[]; extern const u8 gTVSafariFanClubText00[]; extern const u8 gTVSafariFanClubText01[]; extern const u8 gTVSafariFanClubText02[]; diff --git a/include/fldeff_misc.h b/include/fldeff_misc.h index fd96f5646..6fd15c1ea 100644 --- a/include/fldeff_misc.h +++ b/include/fldeff_misc.h @@ -21,7 +21,7 @@ void ShatterSecretBaseBreakableDoor(s16 x, s16 y); void PlaySecretBaseMusicNoteMatSound(s16 metatileId); void DoSecretBaseGlitterMatSparkle(void); bool8 FldEff_SandPillar(void); -void GetShieldToyTVDecorationInfo(void); +void InteractWithShieldOrTVDecoration(void); bool8 sub_80FADE4(u16 arg0, u8 arg1); void FldEffPoison_Start(void); bool32 FldEffPoison_IsActive(void); diff --git a/include/global.h b/include/global.h index e721a93ba..34d897a8c 100644 --- a/include/global.h +++ b/include/global.h @@ -297,10 +297,11 @@ struct BattleTowerEReaderTrainer /*0xB8*/ u32 checksum; }; -struct FrontierMonData +// For displaying party information on the player's Battle Dome tourney page +struct DomeMonData { u16 moves[MAX_MON_MOVES]; - u8 evs[6]; + u8 evs[NUM_STATS]; u8 nature; }; @@ -317,7 +318,7 @@ struct BattleDomeTrainer u16 trainerId:10; u16 isEliminated:1; u16 eliminatedAt:2; - u16 unk3:3; + u16 forfeited:3; }; #define DOME_TOURNAMENT_TRAINERS_COUNT 16 @@ -332,10 +333,6 @@ struct BattleFrontier /*0xCA9*/ u8 lvlMode:2; /*0xCA9*/ u8 challengePaused:1; /*0xCA9*/ u8 disableRecordBattle:1; - /*0xCA9*/ u8 unused_CA9_c:1; - /*0xCA9*/ u8 unused_CA9_d:1; - /*0xCA9*/ u8 unused_CA9_e:1; - /*0xCA9*/ u8 unused_CA9_f:1; /*0xCAA*/ u16 selectedPartyMons[MAX_FRONTIER_PARTY_SIZE]; /*0xCB2*/ u16 curChallengeBattleNum; // Battle number / room number (Pike) / floor number (Pyramid) /*0xCB4*/ u16 trainerIds[20]; @@ -347,17 +344,17 @@ struct BattleFrontier /*0xD04*/ u16 towerNumWins; // Increments to MAX_STREAK but never read otherwise /*0xD06*/ u8 towerBattleOutcome; /*0xD07*/ u8 towerLvlMode; - /*0xD08*/ u8 field_D08_0:1; - /*0xD08*/ u8 field_D08_1:1; - /*0xD08*/ u8 field_D08_2:1; - /*0xD08*/ u8 field_D08_3:1; - /*0xD08*/ u8 field_D08_4:1; - /*0xD08*/ u8 field_D08_5:1; - /*0xD08*/ u8 field_D08_6:1; - /*0xD08*/ u8 field_D08_7:1; - /*0xD09*/ u8 filler_D09; - /*0xD0A*/ u8 field_D0A; - /*0xD0B*/ u8 field_D0B; + /*0xD08*/ u8 domeAttemptedSingles50:1; + /*0xD08*/ u8 domeAttemptedSinglesOpen:1; + /*0xD08*/ u8 domeHasWonSingles50:1; + /*0xD08*/ u8 domeHasWonSinglesOpen:1; + /*0xD08*/ u8 domeAttemptedDoubles50:1; + /*0xD08*/ u8 domeAttemptedDoublesOpen:1; + /*0xD08*/ u8 domeHasWonDoubles50:1; + /*0xD08*/ u8 domeHasWonDoublesOpen:1; + /*0xD09*/ u8 domeUnused; + /*0xD0A*/ u8 domeLvlMode; + /*0xD0B*/ u8 domeBattleMode; /*0xD0C*/ u16 domeWinStreaks[2][2]; /*0xD14*/ u16 domeRecordWinStreaks[2][2]; /*0xD1C*/ u16 domeTotalChampionships[2][2]; @@ -392,11 +389,11 @@ struct BattleFrontier /*0xE6A*/ u16 verdanturfTentPrize; /*0xE6C*/ u16 fallarborTentPrize; /*0xE6E*/ u16 slateportTentPrize; - /*0xE70*/ struct RentalMon rentalMons[PARTY_SIZE]; + /*0xE70*/ struct RentalMon rentalMons[FRONTIER_PARTY_SIZE * 2]; /*0xEB8*/ u16 battlePoints; /*0xEBA*/ u16 cardBattlePoints; /*0xEBC*/ u32 battlesCount; - /*0xEC0*/ u16 field_EC0[16]; + /*0xEC0*/ u16 domeWinningMoves[DOME_TOURNAMENT_TRAINERS_COUNT]; /*0xEE0*/ u8 trainerFlags; /*0xEE1*/ u8 opponentNames[2][PLAYER_NAME_LENGTH + 1]; /*0xEF1*/ u8 opponentTrainerIds[2][TRAINER_ID_LENGTH]; @@ -404,7 +401,7 @@ struct BattleFrontier /*0xEF9*/ u8 savedGame:1; /*0xEFA*/ u8 unused_EFA; /*0xEFB*/ u8 unused_EFB; - /*0xEFC*/ struct FrontierMonData field_EFC[FRONTIER_PARTY_SIZE]; + /*0xEFC*/ struct DomeMonData domePlayerPartyData[FRONTIER_PARTY_SIZE]; }; struct ApprenticeQuestion @@ -934,13 +931,13 @@ struct SaveBlock1 /*0x271C*/ u8 playerRoomDecor[DECOR_MAX_PLAYERS_HOUSE]; /*0x2728*/ u8 playerRoomDecorPos[DECOR_MAX_PLAYERS_HOUSE]; /*0x2734*/ u8 decorDesk[10]; - /*0x????*/ u8 decorChair[10]; - /*0x????*/ u8 decorPlant[10]; - /*0x????*/ u8 decorOrnament[30]; - /*0x????*/ u8 decorMat[30]; - /*0x????*/ u8 decorPoster[10]; - /*0x????*/ u8 decorDoll[40]; - /*0x????*/ u8 decorCushion[10]; + /*0x273E*/ u8 decorChair[10]; + /*0x2748*/ u8 decorPlant[10]; + /*0x2752*/ u8 decorOrnament[30]; + /*0x2770*/ u8 decorMat[30]; + /*0x278E*/ u8 decorPoster[10]; + /*0x2798*/ u8 decorDoll[40]; + /*0x27C0*/ u8 decorCushion[10]; /*0x27CA*/ u8 padding_27CA[2]; /*0x27CC*/ TVShow tvShows[TV_SHOWS_COUNT]; /*0x2B50*/ PokeNews pokeNews[POKE_NEWS_COUNT]; diff --git a/include/graphics.h b/include/graphics.h index 146803cfa..a8d4453b0 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -4117,19 +4117,19 @@ extern const u16 gTitleScreenBgPalettes[]; extern const u16 gTitleScreenPressStartPal[]; extern const u16 gTitleScreenEmeraldVersionPal[]; -extern const u32 gUnknown_08D83D50[]; -extern const u32 gUnknown_08D84970[]; -extern const u32 gUnknown_08D84F00[]; -extern const u32 gUnknown_08D85444[]; -extern const u32 gUnknown_08D85358[]; -extern const u32 gBattleWindowTextPalette[]; -extern const u32 gUnknown_08D854C8[]; -extern const u32 gUnknown_08D82F10[]; -extern const u32 gUnknown_08D834FC[]; -extern const u32 gUnknown_08D83B2C[]; -extern const u32 gUnknown_08D83C3C[]; -extern const u32 gUnknown_08D83900[]; -extern const u32 gBattleFrontierGfx_DomeOptions[]; +// Battle Dome +extern const u32 gDomeTourneyInfoCard_Gfx[]; +extern const u32 gDomeTourneyInfoCard_Tilemap[]; +extern const u32 gDomeTourneyInfoCardBg_Tilemap[]; +extern const u32 gDomeTourneyTree_Pal[]; +extern const u32 gDomeTourneyTreeButtons_Pal[]; +extern const u32 gDomeTourneyMatchCardBg_Pal[]; +extern const u32 gDomeTourneyBg_Gfx[]; +extern const u32 gDomeTourneyLine_Gfx[]; +extern const u32 gDomeTourneyLineDown_Tilemap[]; +extern const u32 gDomeTourneyLineUp_Tilemap[]; +extern const u32 gDomeTourneyLineMask_Tilemap[]; +extern const u32 gDomeTourneyTreeButtons_Gfx[]; extern const u16 gTilesetAnims_BattleDomePals0_0[]; extern const u16 gTilesetAnims_BattleDomePals0_1[]; extern const u16 gTilesetAnims_BattleDomePals0_2[]; @@ -4137,6 +4137,9 @@ extern const u16 gTilesetAnims_BattleDomePals0_3[]; extern const u32 gBattleArenaJudgementSymbolsGfx[]; extern const u32 gBattleArenaJudgementSymbolsPalette[]; + +extern const u32 gBattleWindowTextPalette[]; + extern const u32 gContest2Pal[]; extern const u32 gBattleAnimSpriteGfx_Bone[]; diff --git a/include/hall_of_fame.h b/include/hall_of_fame.h index 5c8a01bcb..a83fad2fc 100644 --- a/include/hall_of_fame.h +++ b/include/hall_of_fame.h @@ -4,7 +4,7 @@ void CB2_DoHallOfFameScreen(void); void CB2_DoHallOfFameScreenDontSaveData(void); void CB2_DoHallOfFamePC(void); -void sub_8175280(void); +void DoConfettiEffect(void); // hof_pc.c void ReturnFromHallOfFamePC(void); diff --git a/include/link.h b/include/link.h index 4d6771a03..f41161d23 100644 --- a/include/link.h +++ b/include/link.h @@ -84,7 +84,7 @@ #define LINKTYPE_MULTI_BATTLE 0x2255 #define LINKTYPE_BATTLE_TOWER_50 0x2266 #define LINKTYPE_BATTLE_TOWER_OPEN 0x2277 -#define LINKTYPE_0x2288 0x2288 // battle? +#define LINKTYPE_BATTLE_TOWER 0x2288 #define LINKTYPE_0x3311 0x3311 #define LINKTYPE_0x3322 0x3322 #define LINKTYPE_BERRY_BLENDER_SETUP 0x4411 diff --git a/include/pokemon_icon.h b/include/pokemon_icon.h index 9d56aebcb..dbd7f2895 100644 --- a/include/pokemon_icon.h +++ b/include/pokemon_icon.h @@ -16,7 +16,7 @@ void LoadMonIconPalette(u16 species); void FreeMonIconPalettes(void); u8 sub_80D2D78(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority, bool32 extra); void FreeMonIconPalette(u16 species); -void sub_80D2EF8(struct Sprite *sprite); +void FreeAndDestroyMonIconSprite(struct Sprite *sprite); u8 CreateMonIcon(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority, u32 personality, bool32 extra); u8 UpdateMonIconFrame(struct Sprite *sprite); void LoadMonIconPalette(u16 species); diff --git a/include/save.h b/include/save.h index 5e2cf7267..225b2b62c 100644 --- a/include/save.h +++ b/include/save.h @@ -55,13 +55,25 @@ enum SAVE_HALL_OF_FAME_ERASE_BEFORE // unused }; +#define SECTOR_ID_SAVEBLOCK2 0 +#define SECTOR_ID_SAVEBLOCK1_START 1 +#define SECTOR_ID_SAVEBLOCK1_END 4 +#define SECTOR_ID_PKMN_STORAGE_START 5 +#define SECTOR_ID_PKMN_STORAGE_END 13 #define SECTOR_SAVE_SLOT_LENGTH 14 +// Save Slot 1: 0-13; Save Slot 2: 14-27 #define SECTOR_ID_HOF_1 28 #define SECTOR_ID_HOF_2 29 #define SECTOR_ID_TRAINER_HILL 30 #define SECTOR_ID_RECORDED_BATTLE 31 #define SECTORS_COUNT 32 +#define SAVE_STATUS_EMPTY 0 +#define SAVE_STATUS_OK 1 +#define SAVE_STATUS_CORRUPT 2 +#define SAVE_STATUS_NO_FLASH 4 +#define SAVE_STATUS_ERROR 0xFF + extern u16 gLastWrittenSector; extern u32 gLastSaveCounter; extern u16 gLastKnownGoodSector; @@ -82,13 +94,12 @@ u8 HandleSavingData(u8 saveType); u8 TrySavingData(u8 saveType); bool8 sub_8153380(void); bool8 sub_81533AC(void); -u8 sub_81533E0(void); -u8 sub_8153408(void); -u8 FullSaveGame(void); +bool8 sub_81533E0(void); +bool8 sub_8153408(void); +bool8 FullSaveGame(void); bool8 CheckSaveFile(void); -u8 Save_LoadGameData(u8 a1); +u8 Save_LoadGameData(u8 saveType); u16 sub_815355C(void); -u8 sub_81534D0(u8); u32 TryReadSpecialSaveSection(u8 sector, u8* dst); u32 TryWriteSpecialSaveSection(u8 sector, u8* src); void sub_8153688(u8 taskId); diff --git a/include/secret_base.h b/include/secret_base.h index 4e323b0c6..b7d36a8ee 100644 --- a/include/secret_base.h +++ b/include/secret_base.h @@ -12,13 +12,13 @@ void InitSecretBaseAppearance(bool8 hidePC); bool8 CurMapIsSecretBase(void); void SecretBasePerStepCallback(u8 taskId); bool8 TrySetCurSecretBase(void); -void SetSecretBaseSecretsTvFlags_Poster(void); -void SetSecretBaseSecretsTvFlags_MiscFurnature(void); -void SetSecretBaseSecretsTvFlags_LargeDecorationSpot(void); -void SetSecretBaseSecretsTvFlags_SmallDecorationSpot(void); +void CheckInteractedWithFriendsPosterDecor(void); +void CheckInteractedWithFriendsFurnitureBottom(void); +void CheckInteractedWithFriendsFurnitureMiddle(void); +void CheckInteractedWithFriendsFurnitureTop(void); void WarpIntoSecretBase(const struct MapPosition *position, const struct MapEvents *events); bool8 SecretBaseMapPopupEnabled(void); -void sub_80EB218(void); +void CheckLeftFriendsSecretBase(void); void ClearSecretBases(void); void SetCurSecretBaseIdFromPosition(const struct MapPosition *position, const struct MapEvents *events); void TrySetCurSecretBaseIndex(void); diff --git a/include/strings.h b/include/strings.h index fe4e08eeb..eda1c55e4 100644 --- a/include/strings.h +++ b/include/strings.h @@ -1705,120 +1705,120 @@ extern const u8 BattleFrontier_BattleTowerMultiPartnerRoom_Text_SwimmerMAccept[] extern const u8 BattleFrontier_BattleTowerMultiPartnerRoom_Text_SwimmerMReject[]; // Battle Dome. -extern const u8 gBattleDomeOpponentPotentialText1[]; -extern const u8 gBattleDomeOpponentPotentialText2[]; -extern const u8 gBattleDomeOpponentPotentialText3[]; -extern const u8 gBattleDomeOpponentPotentialText4[]; -extern const u8 gBattleDomeOpponentPotentialText5[]; -extern const u8 gBattleDomeOpponentPotentialText6[]; -extern const u8 gBattleDomeOpponentPotentialText7[]; -extern const u8 gBattleDomeOpponentPotentialText8[]; -extern const u8 gBattleDomeOpponentPotentialText9[]; -extern const u8 gBattleDomeOpponentPotentialText10[]; -extern const u8 gBattleDomeOpponentPotentialText11[]; -extern const u8 gBattleDomeOpponentPotentialText12[]; -extern const u8 gBattleDomeOpponentPotentialText13[]; -extern const u8 gBattleDomeOpponentPotentialText14[]; -extern const u8 gBattleDomeOpponentPotentialText15[]; -extern const u8 gBattleDomeOpponentPotentialText16[]; -extern const u8 gBattleDomeOpponentPotentialText17[]; -extern const u8 gBattleDomeOpponentStyleText1[]; -extern const u8 gBattleDomeOpponentStyleText2[]; -extern const u8 gBattleDomeOpponentStyleText3[]; -extern const u8 gBattleDomeOpponentStyleText4[]; -extern const u8 gBattleDomeOpponentStyleText5[]; -extern const u8 gBattleDomeOpponentStyleText6[]; -extern const u8 gBattleDomeOpponentStyleText7[]; -extern const u8 gBattleDomeOpponentStyleText8[]; -extern const u8 gBattleDomeOpponentStyleText9[]; -extern const u8 gBattleDomeOpponentStyleText10[]; -extern const u8 gBattleDomeOpponentStyleText11[]; -extern const u8 gBattleDomeOpponentStyleText12[]; -extern const u8 gBattleDomeOpponentStyleText13[]; -extern const u8 gBattleDomeOpponentStyleText14[]; -extern const u8 gBattleDomeOpponentStyleText15[]; -extern const u8 gBattleDomeOpponentStyleText16[]; -extern const u8 gBattleDomeOpponentStyleText17[]; -extern const u8 gBattleDomeOpponentStyleText18[]; -extern const u8 gBattleDomeOpponentStyleText19[]; -extern const u8 gBattleDomeOpponentStyleText20[]; -extern const u8 gBattleDomeOpponentStyleText21[]; -extern const u8 gBattleDomeOpponentStyleText22[]; -extern const u8 gBattleDomeOpponentStyleText23[]; -extern const u8 gBattleDomeOpponentStyleText24[]; -extern const u8 gBattleDomeOpponentStyleText25[]; -extern const u8 gBattleDomeOpponentStyleText26[]; -extern const u8 gBattleDomeOpponentStyleText27[]; -extern const u8 gBattleDomeOpponentStyleText28[]; -extern const u8 gBattleDomeOpponentStyleTextUnused1[]; -extern const u8 gBattleDomeOpponentStyleTextUnused2[]; -extern const u8 gBattleDomeOpponentStyleTextUnused3[]; -extern const u8 gBattleDomeOpponentStyleTextUnused4[]; -extern const u8 gBattleDomeOpponentStatsText1[]; -extern const u8 gBattleDomeOpponentStatsText2[]; -extern const u8 gBattleDomeOpponentStatsText3[]; -extern const u8 gBattleDomeOpponentStatsText4[]; -extern const u8 gBattleDomeOpponentStatsText5[]; -extern const u8 gBattleDomeOpponentStatsText6[]; -extern const u8 gBattleDomeOpponentStatsText7[]; -extern const u8 gBattleDomeOpponentStatsText8[]; -extern const u8 gBattleDomeOpponentStatsText9[]; -extern const u8 gBattleDomeOpponentStatsText10[]; -extern const u8 gBattleDomeOpponentStatsText11[]; -extern const u8 gBattleDomeOpponentStatsText12[]; -extern const u8 gBattleDomeOpponentStatsText13[]; -extern const u8 gBattleDomeOpponentStatsText14[]; -extern const u8 gBattleDomeOpponentStatsText15[]; -extern const u8 gBattleDomeOpponentStatsText16[]; -extern const u8 gBattleDomeOpponentStatsText17[]; -extern const u8 gBattleDomeOpponentStatsText18[]; -extern const u8 gBattleDomeOpponentStatsText19[]; -extern const u8 gBattleDomeOpponentStatsText20[]; -extern const u8 gBattleDomeOpponentStatsText21[]; -extern const u8 gBattleDomeOpponentStatsText22[]; -extern const u8 gBattleDomeOpponentStatsText23[]; -extern const u8 gBattleDomeOpponentStatsText24[]; -extern const u8 gBattleDomeOpponentStatsText25[]; -extern const u8 gBattleDomeOpponentStatsText26[]; -extern const u8 gBattleDomeOpponentStatsText27[]; -extern const u8 gBattleDomeOpponentStatsText28[]; -extern const u8 gBattleDomeOpponentStatsText29[]; -extern const u8 gBattleDomeOpponentStatsText30[]; -extern const u8 gBattleDomeOpponentStatsText31[]; -extern const u8 gBattleDomeOpponentStatsText32[]; -extern const u8 gBattleDomeOpponentStatsText33[]; -extern const u8 gBattleDomeOpponentStatsText34[]; -extern const u8 gBattleDomeOpponentStatsText35[]; -extern const u8 gBattleDomeOpponentStatsText36[]; -extern const u8 gBattleDomeOpponentStatsText37[]; -extern const u8 gBattleDomeOpponentStatsText38[]; -extern const u8 gBattleDomeOpponentStatsText39[]; -extern const u8 gBattleDomeOpponentStatsText40[]; -extern const u8 gBattleDomeOpponentStatsText41[]; -extern const u8 gBattleDomeOpponentStatsText42[]; -extern const u8 gBattleDomeOpponentStatsText43[]; -extern const u8 gBattleDomeMatchNumberText1[]; -extern const u8 gBattleDomeMatchNumberText2[]; -extern const u8 gBattleDomeMatchNumberText3[]; -extern const u8 gBattleDomeMatchNumberText4[]; -extern const u8 gBattleDomeMatchNumberText5[]; -extern const u8 gBattleDomeMatchNumberText6[]; -extern const u8 gBattleDomeMatchNumberText7[]; -extern const u8 gBattleDomeMatchNumberText8[]; -extern const u8 gBattleDomeMatchNumberText9[]; -extern const u8 gBattleDomeMatchNumberText10[]; -extern const u8 gBattleDomeMatchNumberText11[]; -extern const u8 gBattleDomeMatchNumberText12[]; -extern const u8 gBattleDomeMatchNumberText13[]; -extern const u8 gBattleDomeMatchNumberText14[]; -extern const u8 gBattleDomeMatchNumberText15[]; -extern const u8 gBattleDomeWinText1[]; -extern const u8 gBattleDomeWinText2[]; -extern const u8 gBattleDomeWinText3[]; -extern const u8 gBattleDomeWinText4[]; -extern const u8 gBattleDomeWinText5[]; -extern const u8 gBattleDomeWinText6[]; -extern const u8 gBattleDomeWinText7[]; +extern const u8 BattleDome_Text_Potential1[]; +extern const u8 BattleDome_Text_Potential2[]; +extern const u8 BattleDome_Text_Potential3[]; +extern const u8 BattleDome_Text_Potential4[]; +extern const u8 BattleDome_Text_Potential5[]; +extern const u8 BattleDome_Text_Potential6[]; +extern const u8 BattleDome_Text_Potential7[]; +extern const u8 BattleDome_Text_Potential8[]; +extern const u8 BattleDome_Text_Potential9[]; +extern const u8 BattleDome_Text_Potential10[]; +extern const u8 BattleDome_Text_Potential11[]; +extern const u8 BattleDome_Text_Potential12[]; +extern const u8 BattleDome_Text_Potential13[]; +extern const u8 BattleDome_Text_Potential14[]; +extern const u8 BattleDome_Text_Potential15[]; +extern const u8 BattleDome_Text_Potential16[]; +extern const u8 BattleDome_Text_PotentialDomeAceTucker[]; +extern const u8 BattleDome_Text_StyleRiskDisaster[]; +extern const u8 BattleDome_Text_StyleEndureLongBattles[]; +extern const u8 BattleDome_Text_StyleVariesTactics[]; +extern const u8 BattleDome_Text_StyleToughWinningPattern[]; +extern const u8 BattleDome_Text_StyleUsesVeryRareMove[]; +extern const u8 BattleDome_Text_StyleUsesStartlingMoves[]; +extern const u8 BattleDome_Text_StyleConstantlyWatchesHP[]; +extern const u8 BattleDome_Text_StyleStoresAndLoosesPower[]; +extern const u8 BattleDome_Text_StyleEnfeeblesFoes[]; +extern const u8 BattleDome_Text_StylePrefersLuckTactics[]; +extern const u8 BattleDome_Text_StyleRegalAtmosphere[]; +extern const u8 BattleDome_Text_StylePowerfulLowPPMoves[]; +extern const u8 BattleDome_Text_StyleEnfeebleThenAttack[]; +extern const u8 BattleDome_Text_StyleBattlesWhileEnduring[]; +extern const u8 BattleDome_Text_StyleUpsetsFoesEmotionally[]; +extern const u8 BattleDome_Text_StyleStrongAndStraightforward[]; +extern const u8 BattleDome_Text_StyleAggressivelyStrongMoves[]; +extern const u8 BattleDome_Text_StyleCleverlyDodgesAttacks[]; +extern const u8 BattleDome_Text_StyleUsesUpsettingMoves[]; +extern const u8 BattleDome_Text_StyleUsesPopularMoves[]; +extern const u8 BattleDome_Text_StyleHasPowerfulComboMoves[]; +extern const u8 BattleDome_Text_StyleUsesHighProbabilityMoves[]; +extern const u8 BattleDome_Text_StyleAggressivelySpectacularMoves[]; +extern const u8 BattleDome_Text_StyleEmphasizesOffenseOverDefense[]; +extern const u8 BattleDome_Text_StyleEmphasizesDefenseOverOffense[]; +extern const u8 BattleDome_Text_StyleAttacksQuicklyStrongMoves[]; +extern const u8 BattleDome_Text_StyleUsesAddedEffectMoves[]; +extern const u8 BattleDome_Text_StyleUsesBalancedMixOfMoves[]; +extern const u8 BattleDome_Text_StyleSampleMessage1[]; +extern const u8 BattleDome_Text_StyleSampleMessage2[]; +extern const u8 BattleDome_Text_StyleSampleMessage3[]; +extern const u8 BattleDome_Text_StyleSampleMessage4[]; +extern const u8 BattleDome_Text_EmphasizesHPAndAtk[]; +extern const u8 BattleDome_Text_EmphasizesHPAndDef[]; +extern const u8 BattleDome_Text_EmphasizesHPAndSpeed[]; +extern const u8 BattleDome_Text_EmphasizesHPAndSpAtk[]; +extern const u8 BattleDome_Text_EmphasizesHPAndSpDef[]; +extern const u8 BattleDome_Text_EmphasizesAtkAndDef[]; +extern const u8 BattleDome_Text_EmphasizesAtkAndSpeed[]; +extern const u8 BattleDome_Text_EmphasizesAtkAndSpAtk[]; +extern const u8 BattleDome_Text_EmphasizesAtkAndSpDef[]; +extern const u8 BattleDome_Text_EmphasizesDefAndSpeed[]; +extern const u8 BattleDome_Text_EmphasizesDefAndSpAtk[]; +extern const u8 BattleDome_Text_EmphasizesDefAndSpDef[]; +extern const u8 BattleDome_Text_EmphasizesSpeedAndSpAtk[]; +extern const u8 BattleDome_Text_EmphasizesSpeedAndSpDef[]; +extern const u8 BattleDome_Text_EmphasizesSpAtkAndSpDef[]; +extern const u8 BattleDome_Text_EmphasizesHP[]; +extern const u8 BattleDome_Text_EmphasizesAtk[]; +extern const u8 BattleDome_Text_EmphasizesDef[]; +extern const u8 BattleDome_Text_EmphasizesSpeed[]; +extern const u8 BattleDome_Text_EmphasizesSpAtk[]; +extern const u8 BattleDome_Text_EmphasizesSpDef[]; +extern const u8 BattleDome_Text_NeglectsHPAndAtk[]; +extern const u8 BattleDome_Text_NeglectsHPAndDef[]; +extern const u8 BattleDome_Text_NeglectsHPAndSpeed[]; +extern const u8 BattleDome_Text_NeglectsHPAndSpAtk[]; +extern const u8 BattleDome_Text_NeglectsHPAndSpDef[]; +extern const u8 BattleDome_Text_NeglectsAtkAndDef[]; +extern const u8 BattleDome_Text_NeglectsAtkAndSpeed[]; +extern const u8 BattleDome_Text_NeglectsAtkAndSpAtk[]; +extern const u8 BattleDome_Text_NeglectsAtkAndSpDef[]; +extern const u8 BattleDome_Text_NeglectsDefAndSpeed[]; +extern const u8 BattleDome_Text_NeglectsDefAndSpAtk[]; +extern const u8 BattleDome_Text_NeglectsDefAndSpDef[]; +extern const u8 BattleDome_Text_NeglectsSpeedAndSpAtk[]; +extern const u8 BattleDome_Text_NeglectsSpeedAndSpDef[]; +extern const u8 BattleDome_Text_NeglectsSpAtkAndSpDef[]; +extern const u8 BattleDome_Text_NeglectsHP[]; +extern const u8 BattleDome_Text_NeglectsAtk[]; +extern const u8 BattleDome_Text_NeglectsDef[]; +extern const u8 BattleDome_Text_NeglectsSpeed[]; +extern const u8 BattleDome_Text_NeglectsSpAtk[]; +extern const u8 BattleDome_Text_NeglectsSpDef[]; +extern const u8 BattleDome_Text_RaisesMonsWellBalanced[]; +extern const u8 BattleDome_Text_Round1Match1[]; +extern const u8 BattleDome_Text_Round1Match2[]; +extern const u8 BattleDome_Text_Round1Match3[]; +extern const u8 BattleDome_Text_Round1Match4[]; +extern const u8 BattleDome_Text_Round1Match5[]; +extern const u8 BattleDome_Text_Round1Match6[]; +extern const u8 BattleDome_Text_Round1Match7[]; +extern const u8 BattleDome_Text_Round1Match8[]; +extern const u8 BattleDome_Text_Round2Match1[]; +extern const u8 BattleDome_Text_Round2Match2[]; +extern const u8 BattleDome_Text_Round2Match3[]; +extern const u8 BattleDome_Text_Round2Match4[]; +extern const u8 BattleDome_Text_SemifinalMatch1[]; +extern const u8 BattleDome_Text_SemifinalMatch2[]; +extern const u8 BattleDome_Text_FinalMatch[]; +extern const u8 BattleDome_Text_LetTheBattleBegin[]; +extern const u8 BattleDome_Text_TrainerWonUsingMove[]; +extern const u8 BattleDome_Text_TrainerBecameChamp[]; +extern const u8 BattleDome_Text_TrainerWonByDefault[]; +extern const u8 BattleDome_Text_TrainerWonOutrightByDefault[]; +extern const u8 BattleDome_Text_TrainerWonNoMoves[]; +extern const u8 BattleDome_Text_TrainerWonOutrightNoMoves[]; // Battle Pyramid. extern const u8 BattlePyramid_Text_ExitHintUp1[]; @@ -1948,8 +1948,6 @@ extern const u8 BattlePyramid_Text_FiveTrainersRemaining6[]; extern const u8 BattlePyramid_Text_SixTrainersRemaining6[]; extern const u8 BattlePyramid_Text_SevenTrainersRemaining6[]; - - // PC strings extern const u8 gText_ExitFromBox[]; extern const u8 gText_WhatDoYouWantToDo[]; diff --git a/include/tv.h b/include/tv.h index dc4b22a99..8e9233c2b 100644 --- a/include/tv.h +++ b/include/tv.h @@ -18,7 +18,7 @@ void TryPutTrainerFanClubOnAir(void); void IncrementDailyPlantedBerries(void); void IncrementDailyPickedBerries(void); void IncrementDailyBattlePoints(u16 delta); -void sub_80F01B8(void); +void HideBattleTowerReporter(void); void ReceiveTvShowsData(void *src, u32 size, u8 masterIdx); void TryPutSpotTheCutiesOnAir(struct Pokemon *pokemon, u8 ribbonMonDataIdx); u32 GetPlayerIDAsU32(void); @@ -29,7 +29,7 @@ u8 GetRibbonCount(struct Pokemon *pokemon); void AlertTVThatPlayerPlayedSlotMachine(u16 nCoinsSpent); void AlertTVThatPlayerPlayedRoulette(u16 nCoinsSpent); void AlertTVOfNewCoinTotal(u16 nCoinsPaidOut); -void sub_80EEA70(void); +void TryPutSecretBaseSecretsOnAir(void); void sub_80EDB44(void); void sub_80EDC60(const u16 *words); void sub_80EDA80(void); |