diff options
Diffstat (limited to 'include')
31 files changed, 1468 insertions, 255 deletions
diff --git a/include/battle.h b/include/battle.h index 7c8c81f52..71dbe9a57 100644 --- a/include/battle.h +++ b/include/battle.h @@ -53,7 +53,7 @@ #define BATTLE_TYPE_PALACE 0x20000 #define BATTLE_TYPE_ARENA 0x40000 #define BATTLE_TYPE_FACTORY 0x80000 -#define BATTLE_TYPE_x100000 0x100000 +#define BATTLE_TYPE_PIKE 0x100000 #define BATTLE_TYPE_PYRAMID 0x200000 #define BATTLE_TYPE_INGAME_PARTNER 0x400000 #define BATTLE_TYPE_x800000 0x800000 @@ -62,7 +62,7 @@ #define BATTLE_TYPE_x4000000 0x4000000 #define BATTLE_TYPE_SECRET_BASE 0x8000000 #define BATTLE_TYPE_GROUDON 0x10000000 -#define BATTLE_TYPE_KYORGE 0x20000000 +#define BATTLE_TYPE_KYOGRE 0x20000000 #define BATTLE_TYPE_RAYQUAZA 0x40000000 #define BATTLE_TYPE_x80000000 0x80000000 @@ -72,8 +72,8 @@ #define STEVEN_PARTNER_ID 0xC03 #define SECRET_BASE_OPPONENT 0x400 -#define BATTLE_TYPE_FRONTIER (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_x100000 | BATTLE_TYPE_PYRAMID) -#define BATTLE_TYPE_FRONTIER_NO_PYRAMID (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_x100000) +#define BATTLE_TYPE_FRONTIER (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_PIKE | BATTLE_TYPE_PYRAMID) +#define BATTLE_TYPE_FRONTIER_NO_PYRAMID (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_PIKE) #define BATTLE_WON 0x1 #define BATTLE_LOST 0x2 @@ -229,9 +229,9 @@ #define BATTLE_TERRAIN_UNDERWATER 3 #define BATTLE_TERRAIN_WATER 4 #define BATTLE_TERRAIN_POND 5 -#define BATTLE_TERRAIN_ROCK 6 +#define BATTLE_TERRAIN_MOUNTAIN 6 #define BATTLE_TERRAIN_CAVE 7 -#define BATTLE_TERRAIN_INSIDE 8 +#define BATTLE_TERRAIN_BUILDING 8 #define BATTLE_TERRAIN_PLAIN 9 // array entries for battle communication @@ -298,7 +298,6 @@ struct TrainerMonNoItemDefaultMoves u16 species; }; -u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg); u8 GetBankSide(u8 bank); struct TrainerMonItemDefaultMoves @@ -328,10 +327,10 @@ struct TrainerMonItemCustomMoves union TrainerMonPtr { - struct TrainerMonNoItemDefaultMoves* NoItemDefaultMoves; - struct TrainerMonNoItemCustomMoves* NoItemCustomMoves; - struct TrainerMonItemDefaultMoves* ItemDefaultMoves; - struct TrainerMonItemCustomMoves* ItemCustomMoves; + struct TrainerMonNoItemDefaultMoves *NoItemDefaultMoves; + struct TrainerMonNoItemCustomMoves *NoItemCustomMoves; + struct TrainerMonItemDefaultMoves *ItemDefaultMoves; + struct TrainerMonItemCustomMoves *ItemCustomMoves; }; struct Trainer @@ -348,9 +347,6 @@ struct Trainer /*0x24*/ union TrainerMonPtr party; }; -#define PARTY_FLAG_CUSTOM_MOVES 0x1 -#define PARTY_FLAG_HAS_ITEM 0x2 - extern const struct Trainer gTrainers[]; #define TRAINER_ENCOUNTER_MUSIC(trainer)((gTrainers[trainer].encounterMusic_gender & 0x7F)) diff --git a/include/battle_setup.h b/include/battle_setup.h index 0168022cc..e4bae6fdb 100644 --- a/include/battle_setup.h +++ b/include/battle_setup.h @@ -1,18 +1,85 @@ #ifndef GUARD_BATTLE_SETUP_H #define GUARD_BATTLE_SETUP_H -void BattleSetup_StartScriptedWildBattle(void); -u8 BattleSetup_GetTerrainId(void); -u8 *BattleSetup_ConfigureTrainerBattle(const u8 *data); -void BattleSetup_StartBattlePikeWildBattle(void); +enum +{ + TRAINER_BATTLE_NORMAL, + TRAINER_BATTLE_CONTINUE_SCRIPT_NO_MUSIC, + TRAINER_BATTLE_CONTINUE_SCRIPT, + TRAINER_BATTLE_NORMAL_NO_INTRO_TEXT, + TRAINER_BATTLE_DOUBLE, + TRAINER_BATTLE_REMATCH, + TRAINER_BATTLE_CONTINUE_SCRIPT_DOUBLE, + TRAINER_BATTLE_REMATCH_DOUBLE, + TRAINER_BATTLE_CONTINUE_SCRIPT_DOUBLE_NO_MUSIC, + TRAINER_BATTLE_9, + TRAINER_BATTLE_SET_TRAINER_A, + TRAINER_BATTLE_SET_TRAINER_B, + TRAINER_BATTLE_12, +}; + +#define REMATCHES_COUNT 5 +#define REMATCH_TABLE_ENTRIES 78 +#define REMATCH_WALLY_ENTRY 64 +#define REMATCH_ELITE_FOUR_ENTRIES 73 + +struct RematchTrainer +{ + u16 trainerIds[REMATCHES_COUNT]; + u16 mapGroup; + u16 mapNum; +}; + +extern const struct RematchTrainer gRematchTable[REMATCH_TABLE_ENTRIES]; + +extern u16 gTrainerBattleOpponent_A; +extern u16 gTrainerBattleOpponent_B; +extern u16 gPartnerTrainerId; + void BattleSetup_StartWildBattle(void); +void BattleSetup_StartBattlePikeWildBattle(void); void BattleSetup_StartRoamerBattle(void); - -u8 HasTrainerAlreadyBeenFought(u16); -void trainer_flag_set(u16); -void trainer_flag_clear(u16); +void StartWallyTutorialBattle(void); +void BattleSetup_StartScriptedWildBattle(void); +void BattleSetup_StartLatiBattle(void); +void BattleSetup_StartLegendaryBattle(void); +void StartGroudonKyogreBattle(void); +void StartRegiBattle(void); +u8 BattleSetup_GetTerrainId(void); +u8 sub_80B100C(s32 arg0); +void ChooseStarter(void); +void ResetTrainerOpponentIds(void); +void SetMapVarsToTrainer(void); +const u8 *BattleSetup_ConfigureTrainerBattle(const u8 *data); +void ConfigureAndSetUpOneTrainerBattle(u8 trainerMapObjId, const u8 *trainerScript); +void ConfigureTwoTrainersBattle(u8 trainerMapObjId, const u8 *trainerScript); +void SetUpTwoTrainersBattle(void); +bool32 GetTrainerFlagFromScriptPointer(const u8 *data); +void sub_80B16D8(void); +u8 GetTrainerBattleMode(void); +bool8 GetTrainerFlag(void); +bool8 HasTrainerBeenFought(u16 trainerId); +void SetTrainerFlag(u16 trainerId); +void ClearTrainerFlag(u16 trainerId); void BattleSetup_StartTrainerBattle(void); -u8 *BattleSetup_GetScriptAddrAfterBattle(void); -u8 *BattleSetup_GetTrainerPostBattleScript(void); +void BattleSetup_StartRematchBattle(void); +void ShowTrainerIntroSpeech(void); +const u8 *BattleSetup_GetScriptAddrAfterBattle(void); +const u8 *BattleSetup_GetTrainerPostBattleScript(void); +void ShowTrainerCantBattleSpeech(void); +void SetUpTrainerEncounterMusic(void); +const u8 *GetTrainerALoseText(void); +const u8 *GetTrainerBLoseText(void); +const u8 *GetTrainerWonSpeech(void); +void UpdateRematchIfDefeated(s32 rematchTableId); +void IncrementRematchStepCounter(void); +void TryUpdateRandomTrainerRematches(u16 mapGroup, u16 mapNum); +bool32 DoesSomeoneWantRematchIn(u16 mapGroup, u16 mapNum); +bool32 IsRematchTrainerIn(u16 mapGroup, u16 mapNum); +u16 GetLastBeatenRematchTrainerId(u16 trainerId); +bool8 ShouldTryRematchBattle(void); +bool8 IsTrainerReadyForRematch(void); +void ShouldTryGetTrainerScript(void); +u16 CountBattledRematchTeams(u16 trainerId); #endif // GUARD_BATTLE_SETUP_H diff --git a/include/battle_transition.h b/include/battle_transition.h index 1603f5c93..84b5e37ec 100644 --- a/include/battle_transition.h +++ b/include/battle_transition.h @@ -2,5 +2,55 @@ #define GUARD_BATTLE_TRANSITION_H void sub_8149DFC(u8 a1); +void BattleTransition_StartOnField(u8 transitionID); +void BattleTransition_Start(u8 transitionID); +bool8 IsBattleTransitionDone(void); + +// credits for the names go to Dyskinesia and Tetrable +// names are naturally subject to change + +#define B_TRANSITION_BLUR 0 +#define B_TRANSITION_SWIRL 1 +#define B_TRANSITION_SHUFFLE 2 +#define B_TRANSITION_BIG_POKEBALL 3 +#define B_TRANSITION_POKEBALLS_TRAIL 4 +#define B_TRANSITION_CLOCKWISE_BLACKFADE 5 +#define B_TRANSITION_RIPPLE 6 +#define B_TRANSITION_WAVE 7 +#define B_TRANSITION_SLICE 8 +#define B_TRANSITION_WHITEFADE 9 +#define B_TRANSITION_GRID_SQUARES 10 +#define B_TRANSITION_SHARDS 11 +#define B_TRANSITION_SYDNEY 12 +#define B_TRANSITION_PHOEBE 13 +#define B_TRANSITION_GLACIA 14 +#define B_TRANSITION_DRAKE 15 +#define B_TRANSITION_CHAMPION 16 +// added in Emerald +#define B_TRANSITION_AQUA 17 +#define B_TRANSITION_MAGMA 18 +#define B_TRANSITION_REGICE 19 +#define B_TRANSITION_REGISTEEL 20 +#define B_TRANSITION_REGIROCK 21 +#define B_TRANSITION_KYOGRE 22 +#define B_TRANSITION_GROUDON 23 +#define B_TRANSITION_RAYQUAZA 24 +#define B_TRANSITION_25 25 +#define B_TRANSITION_26 26 +#define B_TRANSITION_27 27 +#define B_TRANSITION_28 28 +#define B_TRANSITION_29 29 +#define B_TRANSITION_30 30 +#define B_TRANSITION_31 31 +#define B_TRANSITION_32 32 +#define B_TRANSITION_33 33 +#define B_TRANSITION_34 34 +#define B_TRANSITION_35 35 +#define B_TRANSITION_36 36 +#define B_TRANSITION_37 37 +#define B_TRANSITION_38 38 +#define B_TRANSITION_39 39 +#define B_TRANSITION_40 40 +#define B_TRANSITION_41 41 #endif // GUARD_BATTLE_TRANSITION_H diff --git a/include/constants/flags.h b/include/constants/flags.h index e74ef1ef0..26d015c84 100644 --- a/include/constants/flags.h +++ b/include/constants/flags.h @@ -303,7 +303,7 @@ #define FLAG_0x12C 0x12C #define FLAG_0x12D 0x12D #define FLAG_0x12E 0x12E -#define FLAG_0x12F 0x12F +#define FLAG_HAS_MATCH_CALL 0x12F #define FLAG_0x130 0x130 #define FLAG_0x131 0x131 #define FLAG_0x132 0x132 @@ -348,7 +348,7 @@ #define FLAG_0x159 0x159 #define FLAG_0x15A 0x15A #define FLAG_0x15B 0x15B -#define FLAG_0x15C 0x15C +#define FLAG_MATCH_CALL_REGISTERED 0x15C #define FLAG_0x15D 0x15D #define FLAG_0x15E 0x15E #define FLAG_0x15F 0x15F diff --git a/include/constants/trainers.h b/include/constants/trainers.h new file mode 100644 index 000000000..48d4f081e --- /dev/null +++ b/include/constants/trainers.h @@ -0,0 +1,1129 @@ +#ifndef GUARD_TRAINERS_H +#define GUARD_TRAINERS_H + +#define TRAINER_NONE 0 +#define TRAINER_SAWYER_1 1 +#define TRAINER_GRUNT_1 2 +#define TRAINER_GRUNT_2 3 +#define TRAINER_GRUNT_3 4 +#define TRAINER_GRUNT_4 5 +#define TRAINER_GRUNT_5 6 +#define TRAINER_GRUNT_6 7 +#define TRAINER_GRUNT_7 8 +#define TRAINER_GABRIELLE_1 9 +#define TRAINER_GRUNT_8 10 +#define TRAINER_MARCEL 11 +#define TRAINER_ALBERTO 12 +#define TRAINER_ED 13 +#define TRAINER_GRUNT_9 14 +#define TRAINER_DECLAN 15 +#define TRAINER_GRUNT_10 16 +#define TRAINER_GRUNT_11 17 +#define TRAINER_GRUNT_12 18 +#define TRAINER_GRUNT_13 19 +#define TRAINER_GRUNT_14 20 +#define TRAINER_GRUNT_15 21 +#define TRAINER_GRUNT_16 22 +#define TRAINER_GRUNT_17 23 +#define TRAINER_GRUNT_18 24 +#define TRAINER_GRUNT_19 25 +#define TRAINER_GRUNT_20 26 +#define TRAINER_GRUNT_21 27 +#define TRAINER_GRUNT_22 28 +#define TRAINER_FREDRICK 29 +#define TRAINER_MATT 30 +#define TRAINER_ZANDER 31 +#define TRAINER_SHELLY_1 32 +#define TRAINER_SHELLY_2 33 +#define TRAINER_ARCHIE 34 +#define TRAINER_LEAH 35 +#define TRAINER_DAISY 36 +#define TRAINER_ROSE_1 37 +#define TRAINER_FELIX 38 +#define TRAINER_VIOLET 39 +#define TRAINER_ROSE_2 40 +#define TRAINER_ROSE_3 41 +#define TRAINER_ROSE_4 42 +#define TRAINER_ROSE_5 43 +#define TRAINER_DUSTY_1 44 +#define TRAINER_CHIP 45 +#define TRAINER_FOSTER 46 +#define TRAINER_DUSTY_2 47 +#define TRAINER_DUSTY_3 48 +#define TRAINER_DUSTY_4 49 +#define TRAINER_DUSTY_5 50 +#define TRAINER_GABBY_AND_TY_1 51 +#define TRAINER_GABBY_AND_TY_2 52 +#define TRAINER_GABBY_AND_TY_3 53 +#define TRAINER_GABBY_AND_TY_4 54 +#define TRAINER_GABBY_AND_TY_5 55 +#define TRAINER_GABBY_AND_TY_6 56 +#define TRAINER_LOLA_1 57 +#define TRAINER_AUSTINA 58 +#define TRAINER_GWEN 59 +#define TRAINER_LOLA_2 60 +#define TRAINER_LOLA_3 61 +#define TRAINER_LOLA_4 62 +#define TRAINER_LOLA_5 63 +#define TRAINER_RICKY_1 64 +#define TRAINER_SIMON 65 +#define TRAINER_CHARLIE 66 +#define TRAINER_RICKY_2 67 +#define TRAINER_RICKY_3 68 +#define TRAINER_RICKY_4 69 +#define TRAINER_RICKY_5 70 +#define TRAINER_RANDALL 71 +#define TRAINER_PARKER 72 +#define TRAINER_GEORGE 73 +#define TRAINER_BERKE 74 +#define TRAINER_BRAXTON 75 +#define TRAINER_VINCENT 76 +#define TRAINER_LEROY 77 +#define TRAINER_WILTON_1 78 +#define TRAINER_EDGAR 79 +#define TRAINER_ALBERT 80 +#define TRAINER_SAMUEL 81 +#define TRAINER_VITO 82 +#define TRAINER_OWEN 83 +#define TRAINER_WILTON_2 84 +#define TRAINER_WILTON_3 85 +#define TRAINER_WILTON_4 86 +#define TRAINER_WILTON_5 87 +#define TRAINER_WARREN 88 +#define TRAINER_MARY 89 +#define TRAINER_ALEXIA 90 +#define TRAINER_JODY 91 +#define TRAINER_WENDY 92 +#define TRAINER_KEIRA 93 +#define TRAINER_BROOKE_1 94 +#define TRAINER_JENNIFER 95 +#define TRAINER_HOPE 96 +#define TRAINER_SHANNON 97 +#define TRAINER_MICHELLE 98 +#define TRAINER_CAROLINE 99 +#define TRAINER_JULIE 100 +#define TRAINER_BROOKE_2 101 +#define TRAINER_BROOKE_3 102 +#define TRAINER_BROOKE_4 103 +#define TRAINER_BROOKE_5 104 +#define TRAINER_PATRICIA 105 +#define TRAINER_KINDRA 106 +#define TRAINER_TAMMY 107 +#define TRAINER_VALERIE_1 108 +#define TRAINER_TASHA 109 +#define TRAINER_VALERIE_2 110 +#define TRAINER_VALERIE_3 111 +#define TRAINER_VALERIE_4 112 +#define TRAINER_VALERIE_5 113 +#define TRAINER_CINDY_1 114 +#define TRAINER_DAPHNE 115 +#define TRAINER_GRUNT_23 116 +#define TRAINER_CINDY_2 117 +#define TRAINER_BRIANNA 118 +#define TRAINER_NAOMI 119 +#define TRAINER_CINDY_3 120 +#define TRAINER_CINDY_4 121 +#define TRAINER_CINDY_5 122 +#define TRAINER_CINDY_6 123 +#define TRAINER_MELISSA 124 +#define TRAINER_SHEILA 125 +#define TRAINER_SHIRLEY 126 +#define TRAINER_JESSICA_1 127 +#define TRAINER_CONNIE 128 +#define TRAINER_BRIDGET 129 +#define TRAINER_OLIVIA 130 +#define TRAINER_TIFFANY 131 +#define TRAINER_JESSICA_2 132 +#define TRAINER_JESSICA_3 133 +#define TRAINER_JESSICA_4 134 +#define TRAINER_JESSICA_5 135 +#define TRAINER_WINSTON_1 136 +#define TRAINER_MOLLIE 137 +#define TRAINER_GARRET 138 +#define TRAINER_WINSTON_2 139 +#define TRAINER_WINSTON_3 140 +#define TRAINER_WINSTON_4 141 +#define TRAINER_WINSTON_5 142 +#define TRAINER_STEVE_1 143 +#define TRAINER_THALIA_1 144 +#define TRAINER_MARK 145 +#define TRAINER_GRUNT_24 146 +#define TRAINER_STEVE_2 147 +#define TRAINER_STEVE_3 148 +#define TRAINER_STEVE_4 149 +#define TRAINER_STEVE_5 150 +#define TRAINER_LUIS 151 +#define TRAINER_DOMINIK 152 +#define TRAINER_DOUGLAS 153 +#define TRAINER_DARRIN 154 +#define TRAINER_TONY_1 155 +#define TRAINER_JEROME 156 +#define TRAINER_MATTHEW 157 +#define TRAINER_DAVID 158 +#define TRAINER_SPENCER 159 +#define TRAINER_ROLAND 160 +#define TRAINER_NOLEN 161 +#define TRAINER_STAN 162 +#define TRAINER_BARRY 163 +#define TRAINER_DEAN 164 +#define TRAINER_RODNEY 165 +#define TRAINER_RICHARD 166 +#define TRAINER_HERMAN 167 +#define TRAINER_SANTIAGO 168 +#define TRAINER_GILBERT 169 +#define TRAINER_FRANKLIN 170 +#define TRAINER_KEVIN 171 +#define TRAINER_JACK 172 +#define TRAINER_DUDLEY 173 +#define TRAINER_CHAD 174 +#define TRAINER_TONY_2 175 +#define TRAINER_TONY_3 176 +#define TRAINER_TONY_4 177 +#define TRAINER_TONY_5 178 +#define TRAINER_TAKAO 179 +#define TRAINER_HITOSHI 180 +#define TRAINER_KIYO 181 +#define TRAINER_KOICHI 182 +#define TRAINER_NOB_1 183 +#define TRAINER_NOB_2 184 +#define TRAINER_NOB_3 185 +#define TRAINER_NOB_4 186 +#define TRAINER_NOB_5 187 +#define TRAINER_YUJI 188 +#define TRAINER_DAISUKE 189 +#define TRAINER_ATSUSHI 190 +#define TRAINER_KIRK 191 +#define TRAINER_GRUNT_25 192 +#define TRAINER_GRUNT_26 193 +#define TRAINER_SHAWN 194 +#define TRAINER_FERNANDO_1 195 +#define TRAINER_DALTON_1 196 +#define TRAINER_DALTON_2 197 +#define TRAINER_DALTON_3 198 +#define TRAINER_DALTON_4 199 +#define TRAINER_DALTON_5 200 +#define TRAINER_COLE 201 +#define TRAINER_JEFF 202 +#define TRAINER_AXLE 203 +#define TRAINER_JACE 204 +#define TRAINER_KEEGAN 205 +#define TRAINER_BERNIE_1 206 +#define TRAINER_BERNIE_2 207 +#define TRAINER_BERNIE_3 208 +#define TRAINER_BERNIE_4 209 +#define TRAINER_BERNIE_5 210 +#define TRAINER_DREW 211 +#define TRAINER_BEAU 212 +#define TRAINER_LARRY 213 +#define TRAINER_SHANE 214 +#define TRAINER_JUSTIN 215 +#define TRAINER_ETHAN_1 216 +#define TRAINER_AUTUMN 217 +#define TRAINER_TRAVIS 218 +#define TRAINER_ETHAN_2 219 +#define TRAINER_ETHAN_3 220 +#define TRAINER_ETHAN_4 221 +#define TRAINER_ETHAN_5 222 +#define TRAINER_BRENT 223 +#define TRAINER_DONALD 224 +#define TRAINER_TAYLOR 225 +#define TRAINER_JEFFREY_1 226 +#define TRAINER_DEREK 227 +#define TRAINER_JEFFREY_2 228 +#define TRAINER_JEFFREY_3 229 +#define TRAINER_JEFFREY_4 230 +#define TRAINER_JEFFREY_5 231 +#define TRAINER_EDWARD 232 +#define TRAINER_PRESTON 233 +#define TRAINER_VIRGIL 234 +#define TRAINER_BLAKE 235 +#define TRAINER_WILLIAM 236 +#define TRAINER_JOSHUA 237 +#define TRAINER_CAMERON_1 238 +#define TRAINER_CAMERON_2 239 +#define TRAINER_CAMERON_3 240 +#define TRAINER_CAMERON_4 241 +#define TRAINER_CAMERON_5 242 +#define TRAINER_JACLYN 243 +#define TRAINER_HANNAH 244 +#define TRAINER_SAMANTHA 245 +#define TRAINER_MAURA 246 +#define TRAINER_KAYLA 247 +#define TRAINER_ALEXIS 248 +#define TRAINER_JACKI_1 249 +#define TRAINER_JACKI_2 250 +#define TRAINER_JACKI_3 251 +#define TRAINER_JACKI_4 252 +#define TRAINER_JACKI_5 253 +#define TRAINER_WALTER_1 254 +#define TRAINER_MICAH 255 +#define TRAINER_THOMAS 256 +#define TRAINER_WALTER_2 257 +#define TRAINER_WALTER_3 258 +#define TRAINER_WALTER_4 259 +#define TRAINER_WALTER_5 260 +#define TRAINER_SIDNEY 261 +#define TRAINER_PHOEBE 262 +#define TRAINER_GLACIA 263 +#define TRAINER_DRAKE 264 +#define TRAINER_ROXANNE_1 265 +#define TRAINER_BRAWLY_1 266 +#define TRAINER_WATTSON_1 267 +#define TRAINER_FLANNERY_1 268 +#define TRAINER_NORMAN_1 269 +#define TRAINER_WINONA_1 270 +#define TRAINER_TATE_AND_LIZA_1 271 +#define TRAINER_JUAN_1 272 +#define TRAINER_JERRY_1 273 +#define TRAINER_TED 274 +#define TRAINER_PAUL 275 +#define TRAINER_JERRY_2 276 +#define TRAINER_JERRY_3 277 +#define TRAINER_JERRY_4 278 +#define TRAINER_JERRY_5 279 +#define TRAINER_KAREN_1 280 +#define TRAINER_GEORGIA 281 +#define TRAINER_KAREN_2 282 +#define TRAINER_KAREN_3 283 +#define TRAINER_KAREN_4 284 +#define TRAINER_KAREN_5 285 +#define TRAINER_KATE_AND_JOY 286 +#define TRAINER_ANNA_AND_MEG_1 287 +#define TRAINER_ANNA_AND_MEG_2 288 +#define TRAINER_ANNA_AND_MEG_3 289 +#define TRAINER_ANNA_AND_MEG_4 290 +#define TRAINER_ANNA_AND_MEG_5 291 +#define TRAINER_VICTOR 292 +#define TRAINER_MIGUEL_1 293 +#define TRAINER_COLTON 294 +#define TRAINER_MIGUEL_2 295 +#define TRAINER_MIGUEL_3 296 +#define TRAINER_MIGUEL_4 297 +#define TRAINER_MIGUEL_5 298 +#define TRAINER_VICTORIA 299 +#define TRAINER_VANESSA 300 +#define TRAINER_BETHANY 301 +#define TRAINER_ISABEL_1 302 +#define TRAINER_ISABEL_2 303 +#define TRAINER_ISABEL_3 304 +#define TRAINER_ISABEL_4 305 +#define TRAINER_ISABEL_5 306 +#define TRAINER_TIMOTHY_1 307 +#define TRAINER_TIMOTHY_2 308 +#define TRAINER_TIMOTHY_3 309 +#define TRAINER_TIMOTHY_4 310 +#define TRAINER_TIMOTHY_5 311 +#define TRAINER_VICKY 312 +#define TRAINER_SHELBY_1 313 +#define TRAINER_SHELBY_2 314 +#define TRAINER_SHELBY_3 315 +#define TRAINER_SHELBY_4 316 +#define TRAINER_SHELBY_5 317 +#define TRAINER_CALVIN_1 318 +#define TRAINER_BILLY 319 +#define TRAINER_JOSH 320 +#define TRAINER_TOMMY 321 +#define TRAINER_JOEY 322 +#define TRAINER_BEN 323 +#define TRAINER_QUINCY 324 +#define TRAINER_KATELYNN 325 +#define TRAINER_JAYLEN 326 +#define TRAINER_DILLON 327 +#define TRAINER_CALVIN_2 328 +#define TRAINER_CALVIN_3 329 +#define TRAINER_CALVIN_4 330 +#define TRAINER_CALVIN_5 331 +#define TRAINER_EDDIE 332 +#define TRAINER_ALLEN 333 +#define TRAINER_TIMMY 334 +#define TRAINER_WALLACE 335 +#define TRAINER_ANDREW 336 +#define TRAINER_IVAN 337 +#define TRAINER_CLAUDE 338 +#define TRAINER_ELLIOT_1 339 +#define TRAINER_NED 340 +#define TRAINER_DALE 341 +#define TRAINER_NOLAN 342 +#define TRAINER_BARNY 343 +#define TRAINER_WADE 344 +#define TRAINER_CARTER 345 +#define TRAINER_ELLIOT_2 346 +#define TRAINER_ELLIOT_3 347 +#define TRAINER_ELLIOT_4 348 +#define TRAINER_ELLIOT_5 349 +#define TRAINER_RONALD 350 +#define TRAINER_JACOB 351 +#define TRAINER_ANTHONY 352 +#define TRAINER_BENJAMIN_1 353 +#define TRAINER_BENJAMIN_2 354 +#define TRAINER_BENJAMIN_3 355 +#define TRAINER_BENJAMIN_4 356 +#define TRAINER_BENJAMIN_5 357 +#define TRAINER_ABIGAIL_1 358 +#define TRAINER_JASMINE 359 +#define TRAINER_ABIGAIL_2 360 +#define TRAINER_ABIGAIL_3 361 +#define TRAINER_ABIGAIL_4 362 +#define TRAINER_ABIGAIL_5 363 +#define TRAINER_DYLAN_1 364 +#define TRAINER_DYLAN_2 365 +#define TRAINER_DYLAN_3 366 +#define TRAINER_DYLAN_4 367 +#define TRAINER_DYLAN_5 368 +#define TRAINER_MARIA_1 369 +#define TRAINER_MARIA_2 370 +#define TRAINER_MARIA_3 371 +#define TRAINER_MARIA_4 372 +#define TRAINER_MARIA_5 373 +#define TRAINER_CAMDEN 374 +#define TRAINER_DEMETRIUS 375 +#define TRAINER_ISAIAH_1 376 +#define TRAINER_PABLO_1 377 +#define TRAINER_CHASE 378 +#define TRAINER_ISAIAH_2 379 +#define TRAINER_ISAIAH_3 380 +#define TRAINER_ISAIAH_4 381 +#define TRAINER_ISAIAH_5 382 +#define TRAINER_ISOBEL 383 +#define TRAINER_DONNY 384 +#define TRAINER_TALIA 385 +#define TRAINER_KATELYN_1 386 +#define TRAINER_ALLISON 387 +#define TRAINER_KATELYN_2 388 +#define TRAINER_KATELYN_3 389 +#define TRAINER_KATELYN_4 390 +#define TRAINER_KATELYN_5 391 +#define TRAINER_NICOLAS_1 392 +#define TRAINER_NICOLAS_2 393 +#define TRAINER_NICOLAS_3 394 +#define TRAINER_NICOLAS_4 395 +#define TRAINER_NICOLAS_5 396 +#define TRAINER_AARON 397 +#define TRAINER_PERRY 398 +#define TRAINER_HUGH 399 +#define TRAINER_PHIL 400 +#define TRAINER_JARED 401 +#define TRAINER_HUMBERTO 402 +#define TRAINER_PRESLEY 403 +#define TRAINER_EDWARDO 404 +#define TRAINER_COLIN 405 +#define TRAINER_ROBERT_1 406 +#define TRAINER_BENNY 407 +#define TRAINER_CHESTER 408 +#define TRAINER_ROBERT_2 409 +#define TRAINER_ROBERT_3 410 +#define TRAINER_ROBERT_4 411 +#define TRAINER_ROBERT_5 412 +#define TRAINER_ALEX 413 +#define TRAINER_BECK 414 +#define TRAINER_YASU 415 +#define TRAINER_TAKASHI 416 +#define TRAINER_DIANNE 417 +#define TRAINER_JANI 418 +#define TRAINER_LAO_1 419 +#define TRAINER_LUNG 420 +#define TRAINER_LAO_2 421 +#define TRAINER_LAO_3 422 +#define TRAINER_LAO_4 423 +#define TRAINER_LAO_5 424 +#define TRAINER_JOCELYN 425 +#define TRAINER_LAURA 426 +#define TRAINER_CYNDY_1 427 +#define TRAINER_CORA 428 +#define TRAINER_PAULA 429 +#define TRAINER_CYNDY_2 430 +#define TRAINER_CYNDY_3 431 +#define TRAINER_CYNDY_4 432 +#define TRAINER_CYNDY_5 433 +#define TRAINER_MADELINE_1 434 +#define TRAINER_CLARISSA 435 +#define TRAINER_ANGELICA 436 +#define TRAINER_MADELINE_2 437 +#define TRAINER_MADELINE_3 438 +#define TRAINER_MADELINE_4 439 +#define TRAINER_MADELINE_5 440 +#define TRAINER_BEVERLY 441 +#define TRAINER_IMANI 442 +#define TRAINER_KYLA 443 +#define TRAINER_DENISE 444 +#define TRAINER_BETH 445 +#define TRAINER_TARA 446 +#define TRAINER_MISSY 447 +#define TRAINER_ALICE 448 +#define TRAINER_JENNY_1 449 +#define TRAINER_GRACE 450 +#define TRAINER_TANYA 451 +#define TRAINER_SHARON 452 +#define TRAINER_NIKKI 453 +#define TRAINER_BRENDA 454 +#define TRAINER_KATIE 455 +#define TRAINER_SUSIE 456 +#define TRAINER_KARA 457 +#define TRAINER_DANA 458 +#define TRAINER_SIENNA 459 +#define TRAINER_DEBRA 460 +#define TRAINER_LINDA 461 +#define TRAINER_KAYLEE 462 +#define TRAINER_LAUREL 463 +#define TRAINER_CARLEE 464 +#define TRAINER_JENNY_2 465 +#define TRAINER_JENNY_3 466 +#define TRAINER_JENNY_4 467 +#define TRAINER_JENNY_5 468 +#define TRAINER_HEIDI 469 +#define TRAINER_BECKY 470 +#define TRAINER_CAROL 471 +#define TRAINER_NANCY 472 +#define TRAINER_MARTHA 473 +#define TRAINER_DIANA_1 474 +#define TRAINER_CEDRIC 475 +#define TRAINER_IRENE 476 +#define TRAINER_DIANA_2 477 +#define TRAINER_DIANA_3 478 +#define TRAINER_DIANA_4 479 +#define TRAINER_DIANA_5 480 +#define TRAINER_AMY_AND_LIV_1 481 +#define TRAINER_AMY_AND_LIV_2 482 +#define TRAINER_GINA_AND_MIA_1 483 +#define TRAINER_MIU_AND_YUKI 484 +#define TRAINER_AMY_AND_LIV_3 485 +#define TRAINER_GINA_AND_MIA_2 486 +#define TRAINER_AMY_AND_LIV_4 487 +#define TRAINER_AMY_AND_LIV_5 488 +#define TRAINER_AMY_AND_LIV_6 489 +#define TRAINER_HUEY 490 +#define TRAINER_EDMOND 491 +#define TRAINER_ERNEST_1 492 +#define TRAINER_DWAYNE 493 +#define TRAINER_PHILLIP 494 +#define TRAINER_LEONARD 495 +#define TRAINER_DUNCAN 496 +#define TRAINER_ERNEST_2 497 +#define TRAINER_ERNEST_3 498 +#define TRAINER_ERNEST_4 499 +#define TRAINER_ERNEST_5 500 +#define TRAINER_ELI 501 +#define TRAINER_ANNIKA 502 +#define TRAINER_JAZMYN 503 +#define TRAINER_JONAS 504 +#define TRAINER_KAYLEY 505 +#define TRAINER_AURON 506 +#define TRAINER_KELVIN 507 +#define TRAINER_MARLEY 508 +#define TRAINER_REYNA 509 +#define TRAINER_HUDSON 510 +#define TRAINER_CONOR 511 +#define TRAINER_EDWIN_1 512 +#define TRAINER_HECTOR 513 +#define TRAINER_TABITHA_1 514 +#define TRAINER_EDWIN_2 515 +#define TRAINER_EDWIN_3 516 +#define TRAINER_EDWIN_4 517 +#define TRAINER_EDWIN_5 518 +#define TRAINER_WALLY_1 519 +#define TRAINER_BRENDAN_1 520 +#define TRAINER_BRENDAN_2 521 +#define TRAINER_BRENDAN_3 522 +#define TRAINER_BRENDAN_4 523 +#define TRAINER_BRENDAN_5 524 +#define TRAINER_BRENDAN_6 525 +#define TRAINER_BRENDAN_7 526 +#define TRAINER_BRENDAN_8 527 +#define TRAINER_BRENDAN_9 528 +#define TRAINER_MAY_1 529 +#define TRAINER_MAY_2 530 +#define TRAINER_MAY_3 531 +#define TRAINER_MAY_4 532 +#define TRAINER_MAY_5 533 +#define TRAINER_MAY_6 534 +#define TRAINER_MAY_7 535 +#define TRAINER_MAY_8 536 +#define TRAINER_MAY_9 537 +#define TRAINER_ISAAC_1 538 +#define TRAINER_DAVIS 539 +#define TRAINER_MITCHELL 540 +#define TRAINER_ISAAC_2 541 +#define TRAINER_ISAAC_3 542 +#define TRAINER_ISAAC_4 543 +#define TRAINER_ISAAC_5 544 +#define TRAINER_LYDIA_1 545 +#define TRAINER_HALLE 546 +#define TRAINER_GARRISON 547 +#define TRAINER_LYDIA_2 548 +#define TRAINER_LYDIA_3 549 +#define TRAINER_LYDIA_4 550 +#define TRAINER_LYDIA_5 551 +#define TRAINER_JACKSON_1 552 +#define TRAINER_LORENZO 553 +#define TRAINER_SEBASTIAN 554 +#define TRAINER_JACKSON_2 555 +#define TRAINER_JACKSON_3 556 +#define TRAINER_JACKSON_4 557 +#define TRAINER_JACKSON_5 558 +#define TRAINER_CATHERINE_1 559 +#define TRAINER_JENNA 560 +#define TRAINER_SOPHIA 561 +#define TRAINER_CATHERINE_2 562 +#define TRAINER_CATHERINE_3 563 +#define TRAINER_CATHERINE_4 564 +#define TRAINER_CATHERINE_5 565 +#define TRAINER_JULIO 566 +#define TRAINER_GRUNT_27 567 +#define TRAINER_GRUNT_28 568 +#define TRAINER_GRUNT_29 569 +#define TRAINER_GRUNT_30 570 +#define TRAINER_MARC 571 +#define TRAINER_BRENDEN 572 +#define TRAINER_LILITH 573 +#define TRAINER_CRISTIAN 574 +#define TRAINER_SYLVIA 575 +#define TRAINER_LEONARDO 576 +#define TRAINER_ATHENA 577 +#define TRAINER_HARRISON 578 +#define TRAINER_GRUNT_31 579 +#define TRAINER_CLARENCE 580 +#define TRAINER_TERRY 581 +#define TRAINER_NATE 582 +#define TRAINER_KATHLEEN 583 +#define TRAINER_CLIFFORD 584 +#define TRAINER_NICHOLAS 585 +#define TRAINER_GRUNT_32 586 +#define TRAINER_GRUNT_33 587 +#define TRAINER_GRUNT_34 588 +#define TRAINER_GRUNT_35 589 +#define TRAINER_GRUNT_36 590 +#define TRAINER_MACEY 591 +#define TRAINER_BRENDAN_10 592 +#define TRAINER_BRENDAN_11 593 +#define TRAINER_PAXTON 594 +#define TRAINER_ISABELLA 595 +#define TRAINER_GRUNT_37 596 +#define TRAINER_TABITHA_2 597 +#define TRAINER_JONATHAN 598 +#define TRAINER_BRENDAN_12 599 +#define TRAINER_MAY_10 600 +#define TRAINER_MAXIE_1 601 +#define TRAINER_MAXIE_2 602 +#define TRAINER_TIANA 603 +#define TRAINER_HALEY_1 604 +#define TRAINER_JANICE 605 +#define TRAINER_VIVI 606 +#define TRAINER_HALEY_2 607 +#define TRAINER_HALEY_3 608 +#define TRAINER_HALEY_4 609 +#define TRAINER_HALEY_5 610 +#define TRAINER_SALLY 611 +#define TRAINER_ROBIN 612 +#define TRAINER_ANDREA 613 +#define TRAINER_CRISSY 614 +#define TRAINER_RICK 615 +#define TRAINER_LYLE 616 +#define TRAINER_JOSE 617 +#define TRAINER_DOUG 618 +#define TRAINER_GREG 619 +#define TRAINER_KENT 620 +#define TRAINER_JAMES_1 621 +#define TRAINER_JAMES_2 622 +#define TRAINER_JAMES_3 623 +#define TRAINER_JAMES_4 624 +#define TRAINER_JAMES_5 625 +#define TRAINER_BRICE 626 +#define TRAINER_TRENT_1 627 +#define TRAINER_LENNY 628 +#define TRAINER_LUCAS_1 629 +#define TRAINER_ALAN 630 +#define TRAINER_CLARK 631 +#define TRAINER_ERIC 632 +#define TRAINER_LUCAS_2 633 +#define TRAINER_MIKE_1 634 +#define TRAINER_MIKE_2 635 +#define TRAINER_TRENT_2 636 +#define TRAINER_TRENT_3 637 +#define TRAINER_TRENT_4 638 +#define TRAINER_TRENT_5 639 +#define TRAINER_DEZ_AND_LUKE 640 +#define TRAINER_LEA_AND_JED 641 +#define TRAINER_KIRA_AND_DAN_1 642 +#define TRAINER_KIRA_AND_DAN_2 643 +#define TRAINER_KIRA_AND_DAN_3 644 +#define TRAINER_KIRA_AND_DAN_4 645 +#define TRAINER_KIRA_AND_DAN_5 646 +#define TRAINER_JOHANNA 647 +#define TRAINER_GERALD 648 +#define TRAINER_VIVIAN 649 +#define TRAINER_DANIELLE 650 +#define TRAINER_HIDEO 651 +#define TRAINER_KEIGO 652 +#define TRAINER_RILEY 653 +#define TRAINER_FLINT 654 +#define TRAINER_ASHLEY 655 +#define TRAINER_WALLY_2 656 +#define TRAINER_WALLY_3 657 +#define TRAINER_WALLY_4 658 +#define TRAINER_WALLY_5 659 +#define TRAINER_WALLY_6 660 +#define TRAINER_BRENDAN_13 661 +#define TRAINER_BRENDAN_14 662 +#define TRAINER_BRENDAN_15 663 +#define TRAINER_MAY_11 664 +#define TRAINER_MAY_12 665 +#define TRAINER_MAY_13 666 +#define TRAINER_JONAH 667 +#define TRAINER_HENRY 668 +#define TRAINER_ROGER 669 +#define TRAINER_ALEXA 670 +#define TRAINER_RUBEN 671 +#define TRAINER_KOJI_1 672 +#define TRAINER_WAYNE 673 +#define TRAINER_AIDAN 674 +#define TRAINER_REED 675 +#define TRAINER_TISHA 676 +#define TRAINER_TORI_AND_TIA 677 +#define TRAINER_KIM_AND_IRIS 678 +#define TRAINER_TYRA_AND_IVY 679 +#define TRAINER_MEL_AND_PAUL 680 +#define TRAINER_JOHN_AND_JAY_1 681 +#define TRAINER_JOHN_AND_JAY_2 682 +#define TRAINER_JOHN_AND_JAY_3 683 +#define TRAINER_JOHN_AND_JAY_4 684 +#define TRAINER_JOHN_AND_JAY_5 685 +#define TRAINER_RELI_AND_IAN 686 +#define TRAINER_LILA_AND_ROY_1 687 +#define TRAINER_LILA_AND_ROY_2 688 +#define TRAINER_LILA_AND_ROY_3 689 +#define TRAINER_LILA_AND_ROY_4 690 +#define TRAINER_LILA_AND_ROY_5 691 +#define TRAINER_LISA_AND_RAY 692 +#define TRAINER_CHRIS 693 +#define TRAINER_DAWSON 694 +#define TRAINER_SARAH 695 +#define TRAINER_DARIAN 696 +#define TRAINER_HAILEY 697 +#define TRAINER_CHANDLER 698 +#define TRAINER_KALEB 699 +#define TRAINER_JOSEPH 700 +#define TRAINER_ALYSSA 701 +#define TRAINER_MARCOS 702 +#define TRAINER_RHETT 703 +#define TRAINER_TYRON 704 +#define TRAINER_CELINA 705 +#define TRAINER_BIANCA 706 +#define TRAINER_HAYDEN 707 +#define TRAINER_SOPHIE 708 +#define TRAINER_COBY 709 +#define TRAINER_LAWRENCE 710 +#define TRAINER_WYATT 711 +#define TRAINER_ANGELINA 712 +#define TRAINER_KAI 713 +#define TRAINER_CHARLOTTE 714 +#define TRAINER_DEANDRE 715 +#define TRAINER_GRUNT_38 716 +#define TRAINER_GRUNT_39 717 +#define TRAINER_GRUNT_40 718 +#define TRAINER_GRUNT_41 719 +#define TRAINER_GRUNT_42 720 +#define TRAINER_GRUNT_43 721 +#define TRAINER_GRUNT_44 722 +#define TRAINER_GRUNT_45 723 +#define TRAINER_GRUNT_46 724 +#define TRAINER_GRUNT_47 725 +#define TRAINER_GRUNT_48 726 +#define TRAINER_GRUNT_49 727 +#define TRAINER_GRUNT_50 728 +#define TRAINER_GRUNT_51 729 +#define TRAINER_GRUNT_52 730 +#define TRAINER_GRUNT_53 731 +#define TRAINER_TABITHA_3 732 +#define TRAINER_DARCY 733 +#define TRAINER_MAXIE_3 734 +#define TRAINER_PETE 735 +#define TRAINER_ISABELLE 736 +#define TRAINER_ANDRES_1 737 +#define TRAINER_JOSUE 738 +#define TRAINER_CAMRON 739 +#define TRAINER_CORY_1 740 +#define TRAINER_CAROLINA 741 +#define TRAINER_ELIJAH 742 +#define TRAINER_CELIA 743 +#define TRAINER_BRYAN 744 +#define TRAINER_BRANDEN 745 +#define TRAINER_BRYANT 746 +#define TRAINER_SHAYLA 747 +#define TRAINER_KYRA 748 +#define TRAINER_JAIDEN 749 +#define TRAINER_ALIX 750 +#define TRAINER_HELENE 751 +#define TRAINER_MARLENE 752 +#define TRAINER_DEVAN 753 +#define TRAINER_JOHNSON 754 +#define TRAINER_MELINA 755 +#define TRAINER_BRANDI 756 +#define TRAINER_AISHA 757 +#define TRAINER_MAKAYLA 758 +#define TRAINER_FABIAN 759 +#define TRAINER_DAYTON 760 +#define TRAINER_RACHEL 761 +#define TRAINER_LEONEL 762 +#define TRAINER_CALLIE 763 +#define TRAINER_CALE 764 +#define TRAINER_MYLES 765 +#define TRAINER_PAT 766 +#define TRAINER_CRISTIN_1 767 +#define TRAINER_MAY_14 768 +#define TRAINER_MAY_15 769 +#define TRAINER_ROXANNE_2 770 +#define TRAINER_ROXANNE_3 771 +#define TRAINER_ROXANNE_4 772 +#define TRAINER_ROXANNE_5 773 +#define TRAINER_BRAWLY_2 774 +#define TRAINER_BRAWLY_3 775 +#define TRAINER_BRAWLY_4 776 +#define TRAINER_BRAWLY_5 777 +#define TRAINER_WATTSON_2 778 +#define TRAINER_WATTSON_3 779 +#define TRAINER_WATTSON_4 780 +#define TRAINER_WATTSON_5 781 +#define TRAINER_FLANNERY_2 782 +#define TRAINER_FLANNERY_3 783 +#define TRAINER_FLANNERY_4 784 +#define TRAINER_FLANNERY_5 785 +#define TRAINER_NORMAN_2 786 +#define TRAINER_NORMAN_3 787 +#define TRAINER_NORMAN_4 788 +#define TRAINER_NORMAN_5 789 +#define TRAINER_WINONA_2 790 +#define TRAINER_WINONA_3 791 +#define TRAINER_WINONA_4 792 +#define TRAINER_WINONA_5 793 +#define TRAINER_TATE_AND_LIZA_2 794 +#define TRAINER_TATE_AND_LIZA_3 795 +#define TRAINER_TATE_AND_LIZA_4 796 +#define TRAINER_TATE_AND_LIZA_5 797 +#define TRAINER_JUAN_2 798 +#define TRAINER_JUAN_3 799 +#define TRAINER_JUAN_4 800 +#define TRAINER_JUAN_5 801 +#define TRAINER_ANGELO 802 +#define TRAINER_DARIUS 803 +#define TRAINER_STEVEN 804 +#define TRAINER_ANABEL 805 +#define TRAINER_TUCKER 806 +#define TRAINER_SPENSER 807 +#define TRAINER_GRETA 808 +#define TRAINER_NOLAND 809 +#define TRAINER_LUCY 810 +#define TRAINER_BRANDON 811 +#define TRAINER_ANDRES_2 812 +#define TRAINER_ANDRES_3 813 +#define TRAINER_ANDRES_4 814 +#define TRAINER_ANDRES_5 815 +#define TRAINER_CORY_2 816 +#define TRAINER_CORY_3 817 +#define TRAINER_CORY_4 818 +#define TRAINER_CORY_5 819 +#define TRAINER_PABLO_2 820 +#define TRAINER_PABLO_3 821 +#define TRAINER_PABLO_4 822 +#define TRAINER_PABLO_5 823 +#define TRAINER_KOJI_2 824 +#define TRAINER_KOJI_3 825 +#define TRAINER_KOJI_4 826 +#define TRAINER_KOJI_5 827 +#define TRAINER_CRISTIN_2 828 +#define TRAINER_CRISTIN_3 829 +#define TRAINER_CRISTIN_4 830 +#define TRAINER_CRISTIN_5 831 +#define TRAINER_FERNANDO_2 832 +#define TRAINER_FERNANDO_3 833 +#define TRAINER_FERNANDO_4 834 +#define TRAINER_FERNANDO_5 835 +#define TRAINER_SAWYER_2 836 +#define TRAINER_SAWYER_3 837 +#define TRAINER_SAWYER_4 838 +#define TRAINER_SAWYER_5 839 +#define TRAINER_GABRIELLE_2 840 +#define TRAINER_GABRIELLE_3 841 +#define TRAINER_GABRIELLE_4 842 +#define TRAINER_GABRIELLE_5 843 +#define TRAINER_THALIA_2 844 +#define TRAINER_THALIA_3 845 +#define TRAINER_THALIA_4 846 +#define TRAINER_THALIA_5 847 +#define TRAINER_MARIELA 848 +#define TRAINER_ALVARO 849 +#define TRAINER_EVERETT 850 +#define TRAINER_RED 851 +#define TRAINER_LEAF 852 +#define TRAINER_BRENDAN_16 853 +#define TRAINER_MAY_16 854 + +#define NO_OF_TRAINERS 854 + +#define TRAINER_PIC_HIKER 0 +#define TRAINER_PIC_AQUA_GRUNT_M 1 +#define TRAINER_PIC_POKEMON_BREEDER_F 2 +#define TRAINER_PIC_COOL_TRAINER_M 3 +#define TRAINER_PIC_BIRD_KEEPER 4 +#define TRAINER_PIC_COLLECTOR 5 +#define TRAINER_PIC_AQUA_GRUNT_F 6 +#define TRAINER_PIC_SWIMMER_M 7 +#define TRAINER_PIC_MAGMA_GRUNT_M 8 +#define TRAINER_PIC_EXPERT_M 9 +#define TRAINER_PIC_AQUA_ADMIN_M 10 +#define TRAINER_PIC_BLACK_BELT 11 +#define TRAINER_PIC_AQUA_ADMIN_F 12 +#define TRAINER_PIC_AQUA_LEADER_ARCHIE 13 +#define TRAINER_PIC_HEX_MANIAC 14 +#define TRAINER_PIC_AROMA_LADY 15 +#define TRAINER_PIC_RUIN_MANIAC 16 +#define TRAINER_PIC_INTERVIEWER 17 +#define TRAINER_PIC_TUBER_F 18 +#define TRAINER_PIC_TUBER_M 19 +#define TRAINER_PIC_COOL_TRAINER_F 20 +#define TRAINER_PIC_LADY 21 +#define TRAINER_PIC_BEAUTY 22 +#define TRAINER_PIC_RICH_BOY 23 +#define TRAINER_PIC_EXPERT_F 24 +#define TRAINER_PIC_POKEMANIAC 25 +#define TRAINER_PIC_MAGMA_GRUNT_F 26 +#define TRAINER_PIC_GUITARIST 27 +#define TRAINER_PIC_KINDLER 28 +#define TRAINER_PIC_CAMPER 29 +#define TRAINER_PIC_PICNICKER 30 +#define TRAINER_PIC_BUG_MANIAC 31 +#define TRAINER_PIC_POKEMON_BREEDER_M 32 +#define TRAINER_PIC_PSYCHIC_M 33 +#define TRAINER_PIC_PSYCHIC_F 34 +#define TRAINER_PIC_GENTLEMAN 35 +#define TRAINER_PIC_ELITE_FOUR_SIDNEY 36 +#define TRAINER_PIC_ELITE_FOUR_PHOEBE 37 +#define TRAINER_PIC_ELITE_FOUR_GLACIA 38 +#define TRAINER_PIC_ELITE_FOUR_DRAKE 39 +#define TRAINER_PIC_LEADER_ROXANNE 40 +#define TRAINER_PIC_LEADER_BRAWLY 41 +#define TRAINER_PIC_LEADER_WATTSON 42 +#define TRAINER_PIC_LEADER_FLANNERY 43 +#define TRAINER_PIC_LEADER_NORMAN 44 +#define TRAINER_PIC_LEADER_WINONA 45 +#define TRAINER_PIC_LEADER_TATE_AND_LIZA 46 +#define TRAINER_PIC_LEADER_JUAN 47 +#define TRAINER_PIC_SCHOOL_KID_M 48 +#define TRAINER_PIC_SCHOOL_KID_F 49 +#define TRAINER_PIC_SR_AND_JR 50 +#define TRAINER_PIC_WINSTRATE_M 51 +#define TRAINER_PIC_WINSTRATE_F 52 +#define TRAINER_PIC_YOUNGSTER 53 +#define TRAINER_PIC_CHAMPION_WALLACE 54 +#define TRAINER_PIC_FISHERMAN 55 +#define TRAINER_PIC_CYCLING_TRIATHLETE_M 56 +#define TRAINER_PIC_CYCLING_TRIATHLETE_F 57 +#define TRAINER_PIC_RUNNING_TRIATHLETE_M 58 +#define TRAINER_PIC_RUNNING_TRIATHLETE_F 59 +#define TRAINER_PIC_SWIMMING_TRIATHLETE_M 60 +#define TRAINER_PIC_SWIMMING_TRIATHLETE_F 61 +#define TRAINER_PIC_DRAGON_TAMER 62 +#define TRAINER_PIC_NINJA_BOY 63 +#define TRAINER_PIC_BATTLE_GIRL 64 +#define TRAINER_PIC_PARASOL_LADY 65 +#define TRAINER_PIC_SWIMMER_F 66 +#define TRAINER_PIC_TWINS 67 +#define TRAINER_PIC_SAILOR 68 +#define TRAINER_PIC_MAGMA_ADMIN 69 +#define TRAINER_PIC_WALLY 70 +#define TRAINER_PIC_BRENDAN 71 +#define TRAINER_PIC_MAY 72 +#define TRAINER_PIC_BUG_CATCHER 73 +#define TRAINER_PIC_POKEMON_RANGER_M 74 +#define TRAINER_PIC_POKEMON_RANGER_F 75 +#define TRAINER_PIC_MAGMA_LEADER_MAXIE 76 +#define TRAINER_PIC_LASS 77 +#define TRAINER_PIC_YOUNG_COUPLE 78 +#define TRAINER_PIC_OLD_COUPLE 79 +#define TRAINER_PIC_SIS_AND_BRO 80 +#define TRAINER_PIC_STEVEN 81 +#define TRAINER_PIC_SALON_MAIDEN_ANABEL 82 +#define TRAINER_PIC_DOME_ACE_TUCKER 83 +#define TRAINER_PIC_PALACE_MAVEN_SPENSER 84 +#define TRAINER_PIC_ARENA_TYCOON_GRETA 85 +#define TRAINER_PIC_FACTORY_HEAD_NOLAND 86 +#define TRAINER_PIC_PIKE_QUEEN_LUCY 87 +#define TRAINER_PIC_PYRAMID_KING_BRANDON 88 +#define TRAINER_PIC_RED 89 +#define TRAINER_PIC_LEAF 90 +#define TRAINER_PIC_RUBY_SAPPHIRE_BRENDAN 91 +#define TRAINER_PIC_RUBY_SAPPHIRE_MAY 92 + +#define FACILITY_CLASS_HIKER 0x0 +#define FACILITY_CLASS_TEAM_AQUA_1 0x1 +#define FACILITY_CLASS_PKMN_BREEDER_1 0x2 +#define FACILITY_CLASS_COOLTRAINER_1 0x3 +#define FACILITY_CLASS_BIRD_KEEPER 0x4 +#define FACILITY_CLASS_COLLECTOR 0x5 +#define FACILITY_CLASS_TEAM_AQUA_2 0x6 +#define FACILITY_CLASS_SWIMMER_M 0x7 +#define FACILITY_CLASS_TEAM_MAGMA_1 0x8 +#define FACILITY_CLASS_EXPERT_1 0x9 +#define FACILITY_CLASS_BLACK_BELT 0xa +#define FACILITY_CLASS_AQUA_LEADER 0xb +#define FACILITY_CLASS_HEX_MANIAC 0xc +#define FACILITY_CLASS_AROMA_LADY 0xd +#define FACILITY_CLASS_RUIN_MANIAC 0xe +#define FACILITY_CLASS_INTERVIEWER 0xf +#define FACILITY_CLASS_TUBER_1 0x10 +#define FACILITY_CLASS_TUBER_2 0x11 +#define FACILITY_CLASS_COOLTRAINER_2 0x12 +#define FACILITY_CLASS_LADY 0x13 +#define FACILITY_CLASS_BEAUTY 0x14 +#define FACILITY_CLASS_RICH_BOY 0x15 +#define FACILITY_CLASS_EXPERT_2 0x16 +#define FACILITY_CLASS_POKEMANIAC 0x17 +#define FACILITY_CLASS_TEAM_MAGMA_2 0x18 +#define FACILITY_CLASS_GUITARIST 0x19 +#define FACILITY_CLASS_KINDLER 0x1a +#define FACILITY_CLASS_CAMPER 0x1b +#define FACILITY_CLASS_PICNICKER 0x1c +#define FACILITY_CLASS_BUG_MANIAC 0x1d +#define FACILITY_CLASS_PSYCHIC_1 0x1e +#define FACILITY_CLASS_PSYCHIC_2 0x1f +#define FACILITY_CLASS_GENTLEMAN 0x20 +#define FACILITY_CLASS_ELITE_FOUR_1 0x21 +#define FACILITY_CLASS_ELITE_FOUR_2 0x22 +#define FACILITY_CLASS_LEADER_1 0x23 +#define FACILITY_CLASS_LEADER_2 0x24 +#define FACILITY_CLASS_LEADER_3 0x25 +#define FACILITY_CLASS_SCHOOL_KID_1 0x26 +#define FACILITY_CLASS_SCHOOL_KID_2 0x27 +#define FACILITY_CLASS_SR_AND_JR 0x28 +#define FACILITY_CLASS_POKEFAN_1 0x29 +#define FACILITY_CLASS_POKEFAN_2 0x2a +#define FACILITY_CLASS_YOUNGSTER 0x2b +#define FACILITY_CLASS_CHAMPION 0x2c +#define FACILITY_CLASS_FISHERMAN 0x2d +#define FACILITY_CLASS_TRIATHLETE_1 0x2e +#define FACILITY_CLASS_TRIATHLETE_2 0x2f +#define FACILITY_CLASS_TRIATHLETE_3 0x30 +#define FACILITY_CLASS_TRIATHLETE_4 0x31 +#define FACILITY_CLASS_TRIATHLETE_5 0x32 +#define FACILITY_CLASS_TRIATHLETE_6 0x33 +#define FACILITY_CLASS_DRAGON_TAMER 0x34 +#define FACILITY_CLASS_NINJA_BOY 0x35 +#define FACILITY_CLASS_BATTLE_GIRL 0x36 +#define FACILITY_CLASS_PARASOL_LADY 0x37 +#define FACILITY_CLASS_SWIMMER_F 0x38 +#define FACILITY_CLASS_TWINS 0x39 +#define FACILITY_CLASS_SAILOR 0x3a +#define FACILITY_CLASS_PKMN_TRAINER_1 0x3b +#define FACILITY_CLASS_PKMN_TRAINER_2 0x3c +#define FACILITY_CLASS_PKMN_TRAINER_3 0x3d +#define FACILITY_CLASS_PKMN_TRAINER_4 0x3e +#define FACILITY_CLASS_PKMN_TRAINER_5 0x3f +#define FACILITY_CLASS_PKMN_TRAINER_6 0x40 +#define FACILITY_CLASS_PKMN_TRAINER_7 0x41 +#define FACILITY_CLASS_PKMN_BREEDER_2 0x42 +#define FACILITY_CLASS_BUG_CATCHER 0x43 +#define FACILITY_CLASS_PKMN_RANGER_1 0x44 +#define FACILITY_CLASS_PKMN_RANGER_2 0x45 +#define FACILITY_CLASS_MAGMA_LEADER 0x46 +#define FACILITY_CLASS_LASS 0x47 +#define FACILITY_CLASS_YOUNG_COUPLE 0x48 +#define FACILITY_CLASS_OLD_COUPLE 0x49 +#define FACILITY_CLASS_SIS_AND_BRO 0x4a +#define FACILITY_CLASS_PKMN_TRAINER_8 0x4b +#define FACILITY_CLASS_SALON_MAIDEN 0x4c +#define FACILITY_CLASS_DOME_ACE 0x4d +#define FACILITY_CLASS_PKMN_TRAINER_9 0x4e +#define FACILITY_CLASS_PKMN_TRAINER_10 0x4f +#define FACILITY_CLASS_PKMN_TRAINER_11 0x50 +#define FACILITY_CLASS_PKMN_TRAINER_12 0x51 + +#define TRAINER_CLASS_PKMN_TRAINER_1 0x0 +#define TRAINER_CLASS_PKMN_TRAINER_2 0x1 +#define TRAINER_CLASS_HIKER 0x2 +#define TRAINER_CLASS_TEAM_AQUA 0x3 +#define TRAINER_CLASS_PKMN_BREEDER 0x4 +#define TRAINER_CLASS_COOLTRAINER_1 0x5 +#define TRAINER_CLASS_BIRD_KEEPER 0x6 +#define TRAINER_CLASS_COLLECTOR 0x7 +#define TRAINER_CLASS_SWIMMER_M 0x8 +#define TRAINER_CLASS_TEAM_MAGMA 0x9 +#define TRAINER_CLASS_EXPERT 0xa +#define TRAINER_CLASS_AQUA_ADMIN 0xb +#define TRAINER_CLASS_BLACK_BELT 0xc +#define TRAINER_CLASS_AQUA_LEADER 0xd +#define TRAINER_CLASS_HEX_MANIAC 0xe +#define TRAINER_CLASS_AROMA_LADY 0xf +#define TRAINER_CLASS_RUIN_MANIAC 0x10 +#define TRAINER_CLASS_INTERVIEWER 0x11 +#define TRAINER_CLASS_TUBER_1 0x12 +#define TRAINER_CLASS_TUBER_2 0x13 +#define TRAINER_CLASS_LADY 0x14 +#define TRAINER_CLASS_BEAUTY 0x15 +#define TRAINER_CLASS_RICH_BOY 0x16 +#define TRAINER_CLASS_POKEMANIAC 0x17 +#define TRAINER_CLASS_GUITARIST 0x18 +#define TRAINER_CLASS_KINDLER 0x19 +#define TRAINER_CLASS_CAMPER 0x1a +#define TRAINER_CLASS_PICNICKER 0x1b +#define TRAINER_CLASS_BUG_MANIAC 0x1c +#define TRAINER_CLASS_PSYCHIC 0x1d +#define TRAINER_CLASS_GENTLEMAN 0x1e +#define TRAINER_CLASS_ELITE_FOUR 0x1f +#define TRAINER_CLASS_LEADER 0x20 +#define TRAINER_CLASS_SCHOOL_KID 0x21 +#define TRAINER_CLASS_SR_AND_JR 0x22 +#define TRAINER_CLASS_WINSTRATE 0x23 +#define TRAINER_CLASS_POKEFAN 0x24 +#define TRAINER_CLASS_YOUNGSTER 0x25 +#define TRAINER_CLASS_CHAMPION 0x26 +#define TRAINER_CLASS_FISHERMAN 0x27 +#define TRAINER_CLASS_TRIATHLETE 0x28 +#define TRAINER_CLASS_DRAGON_TAMER 0x29 +#define TRAINER_CLASS_NINJA_BOY 0x2a +#define TRAINER_CLASS_BATTLE_GIRL 0x2b +#define TRAINER_CLASS_PARASOL_LADY 0x2c +#define TRAINER_CLASS_SWIMMER_F 0x2d +#define TRAINER_CLASS_TWINS 0x2e +#define TRAINER_CLASS_SAILOR 0x2f +#define TRAINER_CLASS_COOLTRAINER_2 0x30 +#define TRAINER_CLASS_MAGMA_ADMIN 0x31 +#define TRAINER_CLASS_PKMN_TRAINER_3 0x32 +#define TRAINER_CLASS_BUG_CATCHER 0x33 +#define TRAINER_CLASS_PKMN_RANGER 0x34 +#define TRAINER_CLASS_MAGMA_LEADER 0x35 +#define TRAINER_CLASS_LASS 0x36 +#define TRAINER_CLASS_YOUNG_COUPLE 0x37 +#define TRAINER_CLASS_OLD_COUPLE 0x38 +#define TRAINER_CLASS_SIS_AND_BRO 0x39 +#define TRAINER_CLASS_SALON_MAIDEN 0x3a +#define TRAINER_CLASS_DOME_ACE 0x3b +#define TRAINER_CLASS_PALACE_MAVEN 0x3c +#define TRAINER_CLASS_ARENA_TYCOON 0x3d +#define TRAINER_CLASS_FACTORY_HEAD 0x3e +#define TRAINER_CLASS_PIKE_QUEEN 0x3f +#define TRAINER_CLASS_PYRAMID_KING 0x40 +#define TRAINER_CLASS_PKMN_TRAINER_4 0x41 + +#define TRAINER_ENCOUNTER_MUSIC_MALE 0 // standard male encounter music +#define TRAINER_ENCOUNTER_MUSIC_FEMALE 1 // standard female encounter music +#define TRAINER_ENCOUNTER_MUSIC_GIRL 2 // used for male Tubers and Young Couples too +#define TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS 3 +#define TRAINER_ENCOUNTER_MUSIC_INTENSE 4 +#define TRAINER_ENCOUNTER_MUSIC_COOL 5 +#define TRAINER_ENCOUNTER_MUSIC_AQUA 6 +#define TRAINER_ENCOUNTER_MUSIC_MAGMA 7 +#define TRAINER_ENCOUNTER_MUSIC_SWIMMER 8 +#define TRAINER_ENCOUNTER_MUSIC_TWINS 9 // used for other trainer classes too +#define TRAINER_ENCOUNTER_MUSIC_ELITE_FOUR 10 +#define TRAINER_ENCOUNTER_MUSIC_HIKER 11 // used for other trainer classes too +#define TRAINER_ENCOUNTER_MUSIC_INTERVIEWER 12 +#define TRAINER_ENCOUNTER_MUSIC_RICH 13 // Rich Boys and Gentlemen + +#define F_TRAINER_FEMALE (1 << 7) + +// All trainer parties specify the IV, level, and species for each Pokémon in the +// party. Some trainer parties also specify held items and custom moves for each +// Pokémon. +#define F_TRAINER_PARTY_CUSTOM_MOVESET (1 << 0) +#define F_TRAINER_PARTY_HELD_ITEM (1 << 1) + +#endif // GUARD_TRAINERS_H diff --git a/include/constants/vars.h b/include/constants/vars.h index 6828614bf..6dc8d0ccd 100644 --- a/include/constants/vars.h +++ b/include/constants/vars.h @@ -50,11 +50,14 @@ #define VAR_RESET_RTC_ENABLE 0x402C #define VAR_0x402D 0x402D #define VAR_0x402E 0x402E -#define VAR_0x402F 0x402F -#define VAR_0x4030 0x4030 -#define VAR_0x4031 0x4031 -#define VAR_0x4032 0x4032 -#define VAR_0x4033 0x4033 + +#define VAR_FRONTIER_MANIAC_FACILITY 0x402F + +#define VAR_FRONTIER_GAMBLER_FACILITY 0x4030 +#define VAR_FRONTIER_GAMBLER_SET_FACILITY_F 0x4031 +#define VAR_FRONTIER_GAMBLER_AMOUNT_BET 0x4032 +#define VAR_FRONTIER_GAMBLER_PLACED_BET_F 0x4033 + #define VAR_0x4034 0x4034 #define VAR_0x4035 0x4035 #define VAR_STORAGE_UNKNOWN 0x4036 diff --git a/include/dewford_trend.h b/include/dewford_trend.h index 01e5d9762..dac5ea6c9 100644 --- a/include/dewford_trend.h +++ b/include/dewford_trend.h @@ -3,5 +3,6 @@ void InitDewfordTrend(void); void UpdateDewfordTrendPerDay(u16); +void UpdateDewfordTrendPerDay(u16 days); #endif // GUARD_DEWFORDTREND_H diff --git a/include/event_scripts.h b/include/event_scripts.h index 844f1052a..a54e0e463 100755 --- a/include/event_scripts.h +++ b/include/event_scripts.h @@ -7,10 +7,18 @@ extern const u8 gUnknown_0823B4E8[]; extern const u8 gUnknown_0823B5E9[]; +extern const u8 EventScript_TestSignpostMsg[]; +extern const u8 EventScript_TryGetTrainerScript[]; extern const u8 EventScript_275BB7[]; extern const u8 EventScript_275D0C[]; extern const u8 EventScript_275D1F[]; extern const u8 EventScript_275D2E[]; +extern const u8 EventScript_271354[]; +extern const u8 EventScript_2713C2[]; +extern const u8 EventScript_TryDoDoubleTrainerBattle[]; +extern const u8 EventScript_271362[]; +extern const u8 EventScript_TryDoDoubleRematchBattle[]; +extern const u8 EventScript_2713D1[]; extern const u8 EventScript_2766A2[]; extern const u8 EventScript_2766A6[]; diff --git a/include/field_map_obj.h b/include/field_map_obj.h index 0107fa10f..696d1c2e2 100755 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -76,6 +76,8 @@ void MoveCoords(u8, s16 *, s16 *); bool8 FieldObjectIsSpecialAnimActive(struct MapObject *); u8 FieldObjectClearAnimIfSpecialAnimFinished(struct MapObject *); u8 GetFieldObjectIdByXYZ(u16 x, u16 y, u8 z); +void npc_set_running_behaviour_etc(struct MapObject *mapObject, u8 animPattern); +u8 npc_running_behaviour_by_direction(u8 direction); // Exported data declarations diff --git a/include/field_screen.h b/include/field_screen.h index 089e79cc4..cfc0d081f 100644 --- a/include/field_screen.h +++ b/include/field_screen.h @@ -9,5 +9,6 @@ void pal_fill_black(void); bool8 sub_80ABDFC(void); void sub_80AF168(void); +void UpdateWeatherPerDay(u16 days); #endif //GUARD_FIELD_SCREEN_H diff --git a/include/gba/macro.h b/include/gba/macro.h index 7b6b98c06..ad4820bcf 100644 --- a/include/gba/macro.h +++ b/include/gba/macro.h @@ -78,6 +78,81 @@ #define DmaCopy16(dmaNum, src, dest, size) DMA_COPY(dmaNum, src, dest, size, 16) #define DmaCopy32(dmaNum, src, dest, size) DMA_COPY(dmaNum, src, dest, size, 32) +#define DmaCopyLarge(dmaNum, src, dest, size, block, bit) \ +{ \ + const void *_src = src; \ + void *_dest = dest; \ + u32 _size = size; \ + while (1) \ + { \ + DmaCopy##bit(dmaNum, _src, _dest, (block)); \ + _src += (block); \ + _dest += (block); \ + _size -= (block); \ + if (_size <= (block)) \ + { \ + DmaCopy##bit(dmaNum, _src, _dest, _size); \ + break; \ + } \ + } \ +} + +#define DmaCopyLarge16(dmaNum, src, dest, size, block) DmaCopyLarge(dmaNum, src, dest, size, block, 16) + +#define DmaCopyLarge32(dmaNum, src, dest, size, block) DmaCopyLarge(dmaNum, src, dest, size, block, 32) + +#define DmaFillLarge(dmaNum, value, dest, size, block, bit) \ +{ \ + void *_dest = dest; \ + u32 _size = size; \ + while (1) \ + { \ + DmaFill##bit(dmaNum, value, _dest, (block)); \ + _dest += (block); \ + _size -= (block); \ + if (_size <= (block)) \ + { \ + DmaFill##bit(dmaNum, value, _dest, _size); \ + break; \ + } \ + } \ +} + +#define DmaFillLarge16(dmaNum, value, dest, size, block) DmaFillLarge(dmaNum, value, dest, size, block, 16) + +#define DmaFillLarge32(dmaNum, value, dest, size, block) DmaFillLarge(dmaNum, value, dest, size, block, 32) + +#define DmaCopyDefvars(dmaNum, src, dest, size, bit) \ +{ \ + const void *_src = src; \ + void *_dest = dest; \ + u32 _size = size; \ + DmaCopy##bit(dmaNum, _src, _dest, _size); \ +} + +#define DmaCopy16Defvars(dmaNum, src, dest, size) DmaCopyDefvars(dmaNum, src, dest, size, 16) +#define DmaCopy32Defvars(dmaNum, src, dest, size) DmaCopyDefvars(dmaNum, src, dest, size, 32) + +#define DmaFillDefvars(dmaNum, value, dest, size, bit) \ +{ \ + void *_dest = dest; \ + u32 _size = size; \ + DmaFill##bit(dmaNum, value, _dest, _size); \ +} + +#define DmaFill16Defvars(dmaNum, value, dest, size) DmaFillDefvars(dmaNum, value, dest, size, 16) +#define DmaFill32Defvars(dmaNum, value, dest, size) DmaFillDefvars(dmaNum, value, dest, size, 32) + +#define DmaClearDefvars(dmaNum, dest, size, bit) \ +{ \ + void *_dest = dest; \ + u32 _size = size; \ + DmaClear##bit(dmaNum, _dest, _size); \ +} + +#define DmaClear16Defvars(dmaNum, dest, size) DmaClearDefvars(dmaNum, dest, size, 16) +#define DmaClear32Defvars(dmaNum, dest, size) DmaClearDefvars(dmaNum, dest, size, 32) + #define DmaStop(dmaNum) \ { \ vu16 *dmaRegs = (vu16 *)REG_ADDR_DMA##dmaNum; \ diff --git a/include/global.h b/include/global.h index f52919c9d..b6a496dd1 100644 --- a/include/global.h +++ b/include/global.h @@ -36,6 +36,24 @@ extern u8 gStringVar2[]; extern u8 gStringVar3[]; extern u8 gStringVar4[]; +// There are many quirks in the source code which have overarching behavioral differences from +// a number of other files. For example, diploma.c seems to declare rodata before each use while +// other files declare out of order and must be at the beginning. There are also a number of +// macros which differ from one file to the next due to the method of obtaining the result, such +// as these below. Because of this, there is a theory (Two Team Theory) that states that these +// programming projects had more than 1 "programming team" which utilized different macros for +// each of the files that were worked on. +#define T1_READ_8(ptr) ((ptr)[0]) +#define T1_READ_16(ptr) ((ptr)[0] | ((ptr)[1] << 8)) +#define T1_READ_32(ptr) ((ptr)[0] | ((ptr)[1] << 8) | ((ptr)[2] << 16) | ((ptr)[3] << 24)) +#define T1_READ_PTR(ptr) (u8*) T1_READ_32(ptr) + +// T2_READ_8 is a duplicate to remain consistent with each group. +#define T2_READ_8(ptr) ((ptr)[0]) +#define T2_READ_16(ptr) ((ptr)[0] + ((ptr)[1] << 8)) +#define T2_READ_32(ptr) ((ptr)[0] + ((ptr)[1] << 8) + ((ptr)[2] << 16) + ((ptr)[3] << 24)) +#define T2_READ_PTR(ptr) (void*) T2_READ_32(ptr) + enum { VERSION_SAPPHIRE = 1, @@ -45,7 +63,8 @@ enum VERSION_LEAF_GREEN = 5, }; -enum LanguageId { +enum LanguageId +{ LANGUAGE_JAPANESE = 1, LANGUAGE_ENGLISH = 2, LANGUAGE_FRENCH = 3, @@ -222,7 +241,7 @@ struct SaveBlock2 /*0x1EC*/ struct BerryCrush berryCrush; /*0x1FC*/ struct PokemonJumpResults pokeJump; /*0x20C*/ struct BerryPickingResults berryPick; - /*0x214*/ u8 field_214[1032]; + /*0x21C*/ u8 field_21C[1032]; /*0x624*/ u16 contestLinkResults[20]; // 4 positions for 5 categories, possibly a struct or a 2d array // All below could be a one giant struct @@ -244,7 +263,7 @@ struct SaveBlock2 /*0xCA9*/ u8 field_CA9_f : 1; // 0x80 /*0xCAA*/ u16 field_CAA[4]; /*0xCB2*/ u16 battlePyramidWildHeaderId; - /*0xCB4*/ u8 field_CB4[82]; + /*0xCB4*/ u16 field_CB4[41]; /*0xD06*/ u8 field_D06; /*0xD07*/ u8 field_D07; /*0xD08*/ u8 filler_D08[0x112]; @@ -360,10 +379,12 @@ struct EasyChatPair u16 words[2]; }; /*size = 0x8*/ +#define MAIL_WORDS_COUNT 9 + struct MailStruct { - /*0x00*/ u16 words[9]; - /*0x12*/ u8 playerName[8]; + /*0x00*/ u16 words[MAIL_WORDS_COUNT]; + /*0x12*/ u8 playerName[PLAYER_NAME_LENGTH]; /*0x1A*/ u8 trainerId[4]; /*0x1E*/ u16 species; /*0x20*/ u16 itemId; diff --git a/include/graphics.h b/include/graphics.h index 24448308d..5690eea14 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -136,6 +136,11 @@ extern const u8 gUnknown_08DB9F08[]; extern const u8 gUnknown_08DB9FFC[]; extern const u8 gUnknown_08DBA020[]; extern const u8 gUnknown_08DBA12C[]; +extern const u8 gUnknown_08DCC05C[]; +extern const u16 gUnknown_08DCC01C[]; +extern const u16 gUnknown_08DCC03C[]; +extern const u8 gUnknown_08DCC648[]; +extern const u8 gUnknown_08DCC908[]; extern const u8 gUnknown_08DD87C0[]; extern const u8 gUnknown_08DD8EE0[]; extern const u16 gUnknown_08DD8780[]; diff --git a/include/international_string_util.h b/include/international_string_util.h index e7876162e..f4ba827e3 100644 --- a/include/international_string_util.h +++ b/include/international_string_util.h @@ -14,7 +14,7 @@ s32 sub_81DB3D8(const struct MenuAction *str, u8* arg1, s32 arg2); // sub_81DB41C // CopyMonCategoryText // sub_81DB494 -// sub_81DB4DC +void PadNameString(u8 *dst, u8 padWith); // sub_81DB554 // sub_81DB5AC u32 sub_81DB604(const u8 *); diff --git a/include/mail.h b/include/mail.h index 0a70237bf..042586653 100644 --- a/include/mail.h +++ b/include/mail.h @@ -14,10 +14,20 @@ || itemId == ITEM_FAB_MAIL \ || itemId == ITEM_RETRO_MAIL)) +// mail.h +void ReadMail(struct MailStruct *mail, void (*callback)(void), bool8 flag); +// mail_data.h +void ClearMailData(void); +void ClearMailStruct(struct MailStruct *mail); bool8 MonHasMail(struct Pokemon *mon); -void TakeMailFromMon(struct Pokemon *mon); +u8 GiveMailToMon(struct Pokemon *mon, u16 itemId); +u16 SpeciesToMailSpecies(u16 species, u32 personality); +u16 MailSpeciesToSpecies(u16 mailSpecies, u16 *buffer); u8 GiveMailToMon2(struct Pokemon *mon, struct MailStruct *mail); -void ClearMailStruct(struct MailStruct *mail); +void TakeMailFromMon(struct Pokemon *mon); +void ClearMailItemId(u8 mailId); +u8 TakeMailFromMon2(struct Pokemon *mon); +bool8 ItemIsMail(u16 itemId); #endif // GUARD_MAIL_H diff --git a/include/mail_data.h b/include/mail_data.h deleted file mode 100644 index bf6540bad..000000000 --- a/include/mail_data.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef GUARD_MAIL_DATA_H -#define GUARD_MAIL_DATA_H - -// Exported type declarations - -// Exported RAM declarations - -// Exported ROM declarations - -u16 sub_80D45E8(u16, u16 *); - -#endif //GUARD_MAIL_DATA_H diff --git a/include/menu.h b/include/menu.h index e5e69160a..124303570 100644 --- a/include/menu.h +++ b/include/menu.h @@ -32,7 +32,7 @@ int decompress_and_copy_tile_data_to_vram(u8 bg_id, const void *src, int size, u bool8 free_temp_tile_data_buffers_if_possible(void); u64 sub_8198A50(struct WindowTemplate*, u8, u8, u8, u8, u8, u8, u16); // returns something but it isn't used, fix when menu.s is decomp'd void CreateYesNoMenu(const struct WindowTemplate *windowTemplate, u16 borderFirstTileNum, u8 borderPalette, u8 initialCursorPos); -s8 sub_8198C58(void); +s8 ProcessMenuInputNoWrap_(void); void do_scheduled_bg_tilemap_copies_to_vram(void); void clear_scheduled_bg_copies_to_vram(void); void AddTextPrinterParametrized2(u8 windowId, u8 fontId, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, const struct TextColor *color, s8 speed, const u8 *str); diff --git a/include/pokemon.h b/include/pokemon.h index 480c8d9b9..cdab96687 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -653,6 +653,7 @@ u8 GetSecretBaseTrainerPicIndex(void); bool8 TryIncrementMonLevel(struct Pokemon *mon); void BoxMonToMon(struct BoxPokemon *srcMon, struct Pokemon *dstMon); u8 GetLevelUpMovesBySpecies(u16 species, u16 *moves); +u8 GetMonsStateToDoubles_2(void); #include "sprite.h" diff --git a/include/pokemon_3.h b/include/pokemon_3.h index 5c9862d57..82dfacf48 100644 --- a/include/pokemon_3.h +++ b/include/pokemon_3.h @@ -3,5 +3,7 @@ const u8* GetTrainerClassNameFromId(u16 trainerId); const u8* GetTrainerNameFromId(u16 trainerId); +void PlayMapChosenOrBattleBGM(u16 song); +u8 GetTrainerEncounterMusicId(u16 trainerOpponentId); #endif // GUARD_POKEMON_3_H diff --git a/include/pokemon_icon.h b/include/pokemon_icon.h index b6d21823e..e0a9aa0c5 100644 --- a/include/pokemon_icon.h +++ b/include/pokemon_icon.h @@ -3,6 +3,7 @@ const u8 *GetMonIconPtr(u16 speciesId, u32 personality, u32 frameNo); const u16 *GetValidMonIconPalettePtr(u16 speciesId); +u16 GetUnownLetterByPersonality(u32 personality); u16 sub_80D2E84(u16 speciesId); void sub_80D2F68(u16 iconId); u8 sub_80D2D78(u16 iconId, void callback(struct Sprite *), u16 x, u16 y, u16 a4, u8 a5); diff --git a/include/rom6.h b/include/rom6.h index 3804f27d1..fc33b7d1f 100644 --- a/include/rom6.h +++ b/include/rom6.h @@ -5,5 +5,11 @@ void OpenPokeblockCase(u8, void(void)); u8 GetLeadMonIndex(void); u8 GetSSTidalLocation(u8 *grp, u8 *num, s16 *x, s16 *y); void sub_813BADC(bool8); +bool8 sub_813B9C0(void); +void UpdateMirageRnd(u16 days); +void UpdateBirchState(u16 days); +void UpdateFrontierManiac(u16 days); +void UpdateFrontierGambler(u16 days); +void SetShoalItemFlag(u16 days); #endif //GUARD_ROM6_H diff --git a/include/safari_zone.h b/include/safari_zone.h index 9a81894b8..39ee3ccb3 100644 --- a/include/safari_zone.h +++ b/include/safari_zone.h @@ -13,6 +13,8 @@ void ExitSafariMode(void); bool8 SafariZoneTakeStep(void); void SafariZoneRetirePrompt(void); +void CB2_EndSafariBattle(void); + struct Pokeblock *SafariZoneGetActivePokeblock(void); void SafariZoneActivatePokeblockFeeder(u8 pokeblock_index); diff --git a/include/secret_base.h b/include/secret_base.h index 630a36773..b2502889c 100644 --- a/include/secret_base.h +++ b/include/secret_base.h @@ -9,5 +9,6 @@ void sub_80E9578(void); void sub_80E980C(void); u8 *GetSecretBaseMapName(u8 *dest); +const u8 *GetSecretBaseTrainerLoseText(void); #endif //GUARD_SECRET_BASE_H diff --git a/include/songs.h b/include/songs.h index 5a1fff00c..37c4f16b4 100644 --- a/include/songs.h +++ b/include/songs.h @@ -372,20 +372,20 @@ enum BGM_BATTLE_DOME_TOURNAMENT, BGM_BATTLE_PIKE, BGM_BATTLE_FACTORY, - BGM_BATTLE_LEGENDARY, - BGM_BATTLE_FRONTIER_BRAIN, - BGM_BATTLE_MEW, - BGM_BATTLE_DOME, // end of the human-readable names + /*0x1D6*/ BGM_BATTLE_LEGENDARY, + /*0x1D7*/ BGM_BATTLE_FRONTIER_BRAIN, + /*0x1D8*/ BGM_BATTLE_MEW, + /*0x1D9*/ BGM_BATTLE_DOME, // end of the human-readable names /*0x1DA*/ BGM_BATTLE27, // wild - BGM_BATTLE31, // aqua/magma grunt - BGM_BATTLE20, // trainer - BGM_BATTLE32, // gym leader - BGM_BATTLE33, // champion - BGM_BATTLE36, // regi - BGM_BATTLE34, // weather trio - BGM_BATTLE35, // rival - BGM_BATTLE38, // elite four - BGM_BATTLE30, // aqua/magma leader + /*0x1DB*/ BGM_BATTLE31, // aqua/magma grunt + /*0x1DC*/ BGM_BATTLE20, // trainer + /*0x1DD*/ BGM_BATTLE32, // gym leader + /*0x1DE*/ BGM_BATTLE33, // champion + /*0x1DF*/ BGM_BATTLE36, // regi + /*0x1E0*/ BGM_BATTLE34, // weather trio + /*0x1E1*/ BGM_BATTLE35, // rival + /*0x1E2*/ BGM_BATTLE38, // elite four + /*0x1E3*/ BGM_BATTLE30, // aqua/magma leader /*0x1E4*/ BGM_FRLG_FOLLOW_ME, // FR/LG names not known, human-readable again! BGM_FRLG_GAMECORNER, BGM_FRLG_ROCKET_HIDEOUT, @@ -453,14 +453,14 @@ enum BGM_FRLG_ISLAND_FOUR, BGM_FRLG_ISLAND_SIX, BGM_FRLG_FLUTE, - BGM_FRLG_BATTLE_DEOXYS, - BGM_FRLG_BATTLE_MEWTWO, - BGM_FRLG_BATTLE_LEGENDARY, - BGM_FRLG_LEADER_EYE, - BGM_FRLG_DEOXYS_EYE, - BGM_FRLG_TRAINER_TOWER, - BGM_FRLG_HALL_OF_FAME_PALLET_TOWN, - /*0x22E*/BGM_FRLG_TEACHY_TV, + /*0x227*/ BGM_FRLG_BATTLE_DEOXYS, + /*0x228*/ BGM_FRLG_BATTLE_MEWTWO, + /*0x229*/ BGM_FRLG_BATTLE_LEGENDARY, + /*0x22A*/ BGM_FRLG_LEADER_EYE, + /*0x22B*/ BGM_FRLG_DEOXYS_EYE, + /*0x22C*/ BGM_FRLG_TRAINER_TOWER, + /*0x22D*/ BGM_FRLG_HALL_OF_FAME_PALLET_TOWN, + /*0x22E*/ BGM_FRLG_TEACHY_TV, }; #endif // GUARD_SONGS_H diff --git a/include/strings.h b/include/strings.h index 15a6374a3..757cc8cac 100644 --- a/include/strings.h +++ b/include/strings.h @@ -101,6 +101,10 @@ extern const u8 gText_NoRegistry[]; extern const u8 gText_OkayToDeleteFromRegistry[]; extern const u8 gText_RegisteredDataDeleted[]; extern const u8 gUnknown_085EA79D[]; +extern const u8 gText_EmptyString2[]; +extern const u8 gText_Confirm3[]; +extern const u8 gText_Cancel4[]; +extern const u8 gText_IsThisTheCorrectTime[]; extern const u8 gText_PkmnFainted3[]; extern const u8 gText_Coins[]; diff --git a/include/trainer_classes.h b/include/trainer_classes.h deleted file mode 100644 index e5e26b359..000000000 --- a/include/trainer_classes.h +++ /dev/null @@ -1,74 +0,0 @@ -#ifndef GUARD_TRAINER_CLASSES_H -#define GUARD_TRAINER_CLASSES_H - -enum -{ - CLASS_PKMN_TRAINER0, // 0 - CLASS_PKMN_TRAINER1, // 1 - CLASS_HIKER, // 2 - CLASS_TEAM_AQUA, // 3 - CLASS_PKMN_BREEDER, // 4 - CLASS_COOLTRAINER, // 5 - CLASS_BIRDKEEPER, // 6 - CLASS_COLLECTOR, // 7 - CLASS_SWIMMER_MALE, // 8 - CLASS_TEAM_MAGMA, // 9 - CLASS_EXPERT, // 0xA - CLASS_AQUA_ADMIN, // 0xB - CLASS_BLACK_BELT, // 0xC - CLASS_AQUA_LEADER, // 0xD - CLASS_HEX_MANIAC, // 0xE - CLASS_AROMA_LADY, // 0xF - CLASS_RUIN_MANIAC, // 0x10 - CLASS_INTERVIEWER, // 0x11 - CLASS_TUBER_FEMALE, // 0x12 - CLASS_TUBER_MALE, // 0x13 - CLASS_LADY, // 0x14 - CLASS_BEAUTY, // 0x15 - CLASS_RICH_BOY, // 0x16 - CLASS_POKEMANIAC, // 0x17 - CLASS_GUITARIST, // 0x18 - CLASS_KINDLER, // 0x19 - CLASS_CAMPER, // 0x1A - CLASS_PICKNICKER, // 0x1B - CLASS_BUG_MANIAC, // 0x1C - CLASS_PSYCHIC, // 0x1D - CLASS_GENTLEMAN, // 0x1E - CLASS_ELITE_FOUR, // 0x1F - CLASS_LEADER, // 0x20 - CLASS_SCHOOL_KID, // 0x21 - CLASS_SCHOOL_SR_JR, // 0x22 - CLASS_WINSTRATE, // 0x23 - CLASS_POKE_FAN, // 0x24 - CLASS_YOUNGSTER, // 0x25 - CLASS_CHAMPION, // 0x26 - CLASS_FISHERMAN, // 0x27 - CLASS_TRIATHLETE, // 0x28 - CLASS_DRAGON_TAMER, // 0x29 - CLASS_NINJA_BOY, // 0x2A - CLASS_BATTLE_GIRL, // 0x2B - CLASS_PARASOL_LADY, // 0x2C - CLASS_SWIMMER_FEMALE, // 0x2D - CLASS_TWINS, // 0x2E - CLASS_SAILOR, // 0x2F - CLASS_COOLTRAINER_2, // 0x30 - CLASS_MAGMA_ADMIN, // 0x31 - CLASS_PKMN_TRAINER_RIVAL, // 0x32 - CLASS_BUG_CATCHER, // 0x33 - CLASS_PKMN_RANGER, // 0x34 - CLASS_MAGMA_LEADER, // 0x35 - CLASS_LASS, // 0x36 - CLASS_YOUNG_COUPLE, // 0x37 - CLASS_OLD_COUPLE, // 0x38 - CLASS_SIS_AND_BRO, // 0x39 - CLASS_SALON_MAIDEN, // 0x3A - CLASS_DOME_ACE, // 0x3B - CLASS_PALACE_MAVEN, // 0x3C - CLASS_ARENA_TYCOON, // 0x3D - CLASS_FACTORY_HEAD, // 0x3E - CLASS_PIKE_QUEEN, // 0x3F - CLASS_PYRAMID_KING, // 0x40 - CLASS_PKMN_TRAINER2, // 0x41 -}; - -#endif // GUARD_TRAINER_CLASSES_H diff --git a/include/trainer_front_sprites.h b/include/trainer_front_sprites.h deleted file mode 100644 index 3259bec88..000000000 --- a/include/trainer_front_sprites.h +++ /dev/null @@ -1,101 +0,0 @@ -#ifndef GUARD_TRAINER_FRONT_SPRITES_H -#define GUARD_TRAINER_FRONT_SPRITES_H - -enum -{ - TRAINER_FRONT_PIC_HIKER, - TRAINER_FRONT_PIC_AQUA_GRUNT_M, - TRAINER_FRONT_PIC_PKMN_BREEDER_F, - TRAINER_FRONT_PIC_COOLTRAINER_M, - TRAINER_FRONT_PIC_BIRD_KEEPER, - TRAINER_FRONT_PIC_COLLECTOR, - TRAINER_FRONT_PIC_AQUA_GRUNT_F, - TRAINER_FRONT_PIC_SWIMMER_M, - TRAINER_FRONT_PIC_MAGMA_GRUNT_M, - TRAINER_FRONT_PIC_EXPERT_M, - TRAINER_FRONT_PIC_AQUA_ADMIN_M, - TRAINER_FRONT_PIC_BLACK_BELT, - TRAINER_FRONT_PIC_AQUA_ADMIN_F, - TRAINER_FRONT_PIC_AQUA_LEADER, - TRAINER_FRONT_PIC_HEX_MANIAC, - TRAINER_FRONT_PIC_AROMA_LADY, - TRAINER_FRONT_PIC_RUIN_MANIAC, - TRAINER_FRONT_PIC_INTERVIEWER, - TRAINER_FRONT_PIC_TUBER_F, - TRAINER_FRONT_PIC_TUBER_M, - TRAINER_FRONT_PIC_COOLTRAINER_F, - TRAINER_FRONT_PIC_LADY, - TRAINER_FRONT_PIC_BEAUTY, - TRAINER_FRONT_PIC_RICH_BOY, - TRAINER_FRONT_PIC_EXPERT_F, - TRAINER_FRONT_PIC_POKE_MANIAC, - TRAINER_FRONT_PIC_MAGMA_GRUNT_F, - TRAINER_FRONT_PIC_GUITARIST, - TRAINER_FRONT_PIC_KINDLER, - TRAINER_FRONT_PIC_CAMPER, - TRAINER_FRONT_PIC_PICNICKER, - TRAINER_FRONT_PIC_BUG_MANIAC, - TRAINER_FRONT_PIC_PKMN_BREEDER_M, - TRAINER_FRONT_PIC_PSYCHIC_M, - TRAINER_FRONT_PIC_PSYCHIC_F, - TRAINER_FRONT_PIC_GENTLEMAN, - TRAINER_FRONT_PIC_SIDNEY, - TRAINER_FRONT_PIC_PHOEBE, - TRAINER_FRONT_PIC_GLACIA, - TRAINER_FRONT_PIC_DRAKE, - TRAINER_FRONT_PIC_ROXANNE, - TRAINER_FRONT_PIC_BRAWLY, - TRAINER_FRONT_PIC_WATTSON, - TRAINER_FRONT_PIC_FLANNERY, - TRAINER_FRONT_PIC_NORMAN, - TRAINER_FRONT_PIC_WINONA, - TRAINER_FRONT_PIC_TATE_LIZA, - TRAINER_FRONT_PIC_JUAN, - TRAINER_FRONT_PIC_SCHOOL_KID_M, - TRAINER_FRONT_PIC_SCHOOL_KID_F, - TRAINER_FRONT_PIC_SR_JR, - TRAINER_FRONT_PIC_POKÉFAN_M, - TRAINER_FRONT_PIC_POKÉFAN_F, - TRAINER_FRONT_PIC_YOUNGSTER, - TRAINER_FRONT_PIC_WALLACE, - TRAINER_FRONT_PIC_FISHERMAN, - TRAINER_FRONT_PIC_TRIATHLETE_BIKER_M, - TRAINER_FRONT_PIC_TRIATHLETE_BIKER_F, - TRAINER_FRONT_PIC_TRIATHLETE_JOGGER_M, - TRAINER_FRONT_PIC_TRIATHLETE_JOGGER_F, - TRAINER_FRONT_PIC_TRIATHLETE_SWIMMER_M, - TRAINER_FRONT_PIC_TRIATHLETE_SWIMMER_F, - TRAINER_FRONT_PIC_DRAGON_TAMER, - TRAINER_FRONT_PIC_NINJA_BOY, - TRAINER_FRONT_PIC_BATTLE_GIRL, - TRAINER_FRONT_PIC_PARASOL_LADY, - TRAINER_FRONT_PIC_SWIMMER_F, - TRAINER_FRONT_PIC_TWINS, - TRAINER_FRONT_PIC_SAILOR, - TRAINER_FRONT_PIC_MAGMA_ADMIN_M, - TRAINER_FRONT_PIC_WALLY, - TRAINER_FRONT_PIC_BRENDAN_E, - TRAINER_FRONT_PIC_MAY_E, - TRAINER_FRONT_PIC_BUG_CATCHER, - TRAINER_FRONT_PIC_PKMN_RANGER_M, - TRAINER_FRONT_PIC_PKMN_RANGER_F, - TRAINER_FRONT_PIC_MAGMA_LEADER, - TRAINER_FRONT_PIC_LASS, - TRAINER_FRONT_PIC_YOUNG_COUPLE, - TRAINER_FRONT_PIC_OLD_COUPLE, - TRAINER_FRONT_PIC_SIS_AND_BRO, - TRAINER_FRONT_PIC_STEVEN, - TRAINER_FRONT_PIC_ANABEL, - TRAINER_FRONT_PIC_TUCKER, - TRAINER_FRONT_PIC_SPENSER, - TRAINER_FRONT_PIC_GRETA, - TRAINER_FRONT_PIC_NOLAND, - TRAINER_FRONT_PIC_LUCY, - TRAINER_FRONT_PIC_BRANDON, - TRAINER_FRONT_PIC_RED, - TRAINER_FRONT_PIC_LEAF, - TRAINER_FRONT_PIC_BRENDAN_RS, - TRAINER_FRONT_PIC_MAY_RS -}; - -#endif // GUARD_TRAINER_FRONT_SPRITES_H diff --git a/include/trainer_ids.h b/include/trainer_ids.h deleted file mode 100644 index 65c80187f..000000000 --- a/include/trainer_ids.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef GUARD_TRAINER_IDS_H -#define GUARD_TRAINER_IDS_H - -#define NO_OF_TRAINERS 854 -#define TRAINER_ID_STEVEN 804 - -#endif // GUARD_TRAINER_IDS_H diff --git a/include/trainer_see.h b/include/trainer_see.h index ab035d9f8..5da50cfa1 100644 --- a/include/trainer_see.h +++ b/include/trainer_see.h @@ -1,6 +1,21 @@ #ifndef GUARD_TRAINER_SEE_H #define GUARD_TRAINER_SEE_H +struct ApproachingTrainer +{ + u8 mapObjectId; + u8 radius; + u8 field_2; + u8 field_3; + const u8 *trainerScriptPtr; + u8 field_8; + u8 field_9; + u8 field_A; + u8 field_B; +}; + +extern struct ApproachingTrainer gApproachingTrainers[]; + void sub_80B4578(struct MapObject *); u8 sub_80B47BC(void); void sub_8155D78(struct MapObject *); diff --git a/include/tv.h b/include/tv.h index 75338704f..eca11385e 100644 --- a/include/tv.h +++ b/include/tv.h @@ -15,5 +15,6 @@ void sub_80F14F8(TVShow *shows); size_t sub_80EF370(int value); bool8 Put3CheersForPokeblocksOnTheAir(const u8 *partnersName, u8 flavor, u8 unused, u8 sheen, u8 language); void SetPokemonAnglerSpecies(u16 species); +void UpdateTVShowsPerDay(u16 days); #endif //GUARD_TV_H diff --git a/include/wallclock.h b/include/wallclock.h new file mode 100644 index 000000000..48697c19f --- /dev/null +++ b/include/wallclock.h @@ -0,0 +1,6 @@ +#ifndef GUARD_WALLCLOCK_H +#define GUARD_WALLCLOCK_H + +void Cb2_StartWallClock(void); + +#endif //GUARD_WALLCLOCK_H |