diff --git a/asm/macros/scrcmd.inc b/asm/macros/scrcmd.inc index c89d2630d8..b2df3ce382 100644 --- a/asm/macros/scrcmd.inc +++ b/asm/macros/scrcmd.inc @@ -10,11 +10,10 @@ #include "generated/save_types.h" #include "generated/sdat.h" #include "generated/species.h" +#include "generated/trainers.h" #include "macros/movement.inc" -#include "res/trainers/trdata.naix" - .macro Noop .short 0 .endm diff --git a/generated/ai_flags.txt b/generated/ai_flags.txt index 59fbb57f1c..361136dd2e 100644 --- a/generated/ai_flags.txt +++ b/generated/ai_flags.txt @@ -31,3 +31,4 @@ AI_FLAG_UNUSED_28 AI_FLAG_ROAMING_POKEMON AI_FLAG_SAFARI AI_FLAG_CATCH_TUTORIAL +AI_FLAG_ALL diff --git a/generated/meson.build b/generated/meson.build index 465762bc55..9e24f0ed27 100644 --- a/generated/meson.build +++ b/generated/meson.build @@ -70,6 +70,7 @@ metang_generators = { 'species': { 'type': 'enum', 'tag': 'Species' }, 'species_data_params': { 'type': 'enum', 'tag': 'SpeciesDataParam' }, 'text_banks': { 'type': 'enum', 'tag': 'TextBank' }, + 'trainers': { 'type': 'enum', 'tag': 'Trainer' }, 'trainer_classes': { 'type': 'enum', 'tag': 'TrainerClass' }, 'trainer_score_events': { 'type': 'enum', 'tag': 'TrainerScoreEvent' }, } @@ -113,6 +114,7 @@ endforeach species_txt = files('species.txt') text_banks_txt = files('text_banks.txt') +trainers_txt = files('trainers.txt') py_consts_env = environment() py_consts_env.append('PYTHONPATH', meson.project_build_root()) diff --git a/generated/trainers.txt b/generated/trainers.txt new file mode 100644 index 0000000000..481950e208 --- /dev/null +++ b/generated/trainers.txt @@ -0,0 +1,928 @@ +TRAINER_NONE +TRAINER_YOUNGSTER_TRISTAN +TRAINER_YOUNGSTER_LOGAN +TRAINER_LASS_NATALIE +TRAINER_YOUNGSTER_MICHAEL +TRAINER_UNKNOWN_005 +TRAINER_UNKNOWN_006 +TRAINER_UNKNOWN_007 +TRAINER_UNKNOWN_008 +TRAINER_UNKNOWN_009 +TRAINER_YOUNGSTER_TYLER +TRAINER_LASS_SAMANTHA +TRAINER_LASS_SARAH +TRAINER_BUG_CATCHER_BRANDON +TRAINER_AROMA_LADY_TAYLOR +TRAINER_TWINS_LIV_AND_LIZ +TRAINER_CAMPER_JACOB +TRAINER_PICNICKER_SIENA +TRAINER_HIKER_DANIEL +TRAINER_HIKER_NICHOLAS +TRAINER_BATTLE_GIRL_KELSEY +TRAINER_AROMA_LADY_ELIZABETH +TRAINER_FISHERMAN_ANDREW +TRAINER_FISHERMAN_JOSEPH +TRAINER_FISHERMAN_ZACHARY +TRAINER_CYCLIST_AXEL +TRAINER_CYCLIST_JAMES +TRAINER_CYCLIST_JOHN +TRAINER_CYCLIST_RYAN +TRAINER_CYCLIST_MEGAN +TRAINER_CYCLIST_NICOLE +TRAINER_CYCLIST_KAYLA +TRAINER_CYCLIST_RACHEL +TRAINER_YOUNGSTER_AUSTIN +TRAINER_CAMPER_ANTHONY +TRAINER_PICNICKER_LAUREN +TRAINER_HIKER_KEVIN +TRAINER_HIKER_JUSTIN +TRAINER_BATTLE_GIRL_HELEN +TRAINER_HIKER_ROBERT +TRAINER_HIKER_ALEXANDER +TRAINER_HIKER_JONATHAN +TRAINER_BLACK_BELT_KYLE +TRAINER_FISHERMAN_CODY +TRAINER_AROMA_LADY_HANNAH +TRAINER_ARTIST_WILLIAM +TRAINER_BREEDER_ALBERT +TRAINER_BREEDER_JENNIFER +TRAINER_COWGIRL_SHELLEY +TRAINER_JOGGER_RICHARD +TRAINER_UNKNOWN_050 +TRAINER_UNKNOWN_051 +TRAINER_UNKNOWN_052 +TRAINER_POKE_KID_DANIELLE +TRAINER_UNKNOWN_054 +TRAINER_YOUNG_COUPLE_TY_AND_SUE +TRAINER_BREEDER_KAHLIL +TRAINER_BREEDER_AMBER +TRAINER_UNKNOWN_058 +TRAINER_UNKNOWN_059 +TRAINER_UNKNOWN_060 +TRAINER_UNKNOWN_061 +TRAINER_UNKNOWN_062 +TRAINER_UNKNOWN_063 +TRAINER_UNKNOWN_064 +TRAINER_TWINS_TERI_AND_TIA +TRAINER_ACE_TRAINER_ERNEST +TRAINER_ACE_TRAINER_ALYSSA +TRAINER_VETERAN_BRIAN +TRAINER_BLACK_BELT_ADAM +TRAINER_NINJA_BOY_JOEL +TRAINER_NINJA_BOY_NATHAN +TRAINER_NINJA_BOY_DAVIDO +TRAINER_DRAGON_TAMER_PATRICK +TRAINER_BIRD_KEEPER_BRIANNA +TRAINER_DOUBLE_TEAM_ZAC_AND_JEN +TRAINER_BIRD_KEEPER_ALEXANDRA +TRAINER_UNKNOWN_077 +TRAINER_NINJA_BOY_ZACH +TRAINER_BLACK_BELT_SEAN +TRAINER_NINJA_BOY_NICK +TRAINER_BIRD_KEEPER_KATHERINE +TRAINER_RICH_BOY_JASON +TRAINER_LADY_MELISSA +TRAINER_GENTLEMAN_JEREMY +TRAINER_SOCIALITE_REINA +TRAINER_UNKNOWN_086 +TRAINER_UNKNOWN_087 +TRAINER_POLICEMAN_BOBBY +TRAINER_POLICEMAN_ALEX +TRAINER_POLICEMAN_DYLAN +TRAINER_FISHERMAN_JUAN +TRAINER_FISHERMAN_JOSH +TRAINER_FISHERMAN_TRAVIS +TRAINER_RANGER_TAYLOR +TRAINER_RANGER_JEFFREY +TRAINER_RANGER_ALLISON +TRAINER_UNKNOWN_097 +TRAINER_UNKNOWN_098 +TRAINER_SCIENTIST_STEFANO +TRAINER_UNKNOWN_100 +TRAINER_UNKNOWN_101 +TRAINER_POLICEMAN_CALEB +TRAINER_SWIMMER_SHELTIN +TRAINER_SWIMMER_EVAN +TRAINER_SWIMMER_HALEY +TRAINER_SWIMMER_MARY +TRAINER_TUBER_JARED +TRAINER_TUBER_CHELSEA +TRAINER_UNKNOWN_109 +TRAINER_SAILOR_PAUL +TRAINER_FISHERMAN_KENNETH +TRAINER_UNKNOWN_112 +TRAINER_RUIN_MANIAC_BRYAN +TRAINER_RUIN_MANIAC_RONALD +TRAINER_UNKNOWN_115 +TRAINER_UNKNOWN_116 +TRAINER_UNKNOWN_117 +TRAINER_UNKNOWN_118 +TRAINER_PSYCHIC_MITCHELL +TRAINER_PSYCHIC_ABIGAIL +TRAINER_PI_CARLOS +TRAINER_UNKNOWN_122 +TRAINER_UNKNOWN_123 +TRAINER_UNKNOWN_124 +TRAINER_UNKNOWN_125 +TRAINER_UNKNOWN_126 +TRAINER_BLACK_BELT_GREGORY +TRAINER_BLACK_BELT_DEREK +TRAINER_BLACK_BELT_NATHANIEL +TRAINER_JOGGER_SCOTT +TRAINER_UNKNOWN_131 +TRAINER_ACE_TRAINER_BLAKE +TRAINER_ACE_TRAINER_GARRETT +TRAINER_ACE_TRAINER_LAURA +TRAINER_ACE_TRAINER_MARIA +TRAINER_SKIER_BRADLEY +TRAINER_SKIER_EDWARD +TRAINER_SKIER_KAITLYN +TRAINER_SKIER_ANDREA +TRAINER_ACE_TRAINER_DALTON +TRAINER_ACE_TRAINER_OLIVIA +TRAINER_SKIER_SHAWN +TRAINER_SKIER_BJORN +TRAINER_SKIER_LEXIE +TRAINER_SKIER_MADISON +TRAINER_NINJA_BOY_MATTHEW +TRAINER_NINJA_BOY_ETHAN +TRAINER_BLACK_BELT_LUKE +TRAINER_UNKNOWN_149 +TRAINER_UNKNOWN_150 +TRAINER_UNKNOWN_151 +TRAINER_UNKNOWN_152 +TRAINER_FISHERMAN_MIGUEL +TRAINER_FISHERMAN_LUC +TRAINER_UNKNOWN_155 +TRAINER_UNKNOWN_156 +TRAINER_UNKNOWN_157 +TRAINER_UNKNOWN_158 +TRAINER_SWIMMER_ADRIAN +TRAINER_SWIMMER_ERIK +TRAINER_SWIMMER_VINCENT +TRAINER_SWIMMER_JESSICA +TRAINER_SWIMMER_ERICA +TRAINER_SWIMMER_KATELYN +TRAINER_UNKNOWN_165 +TRAINER_SWIMMER_DILLON +TRAINER_SWIMMER_VANESSA +TRAINER_FISHERMAN_CORY +TRAINER_UNKNOWN_169 +TRAINER_ACE_TRAINER_JAKE +TRAINER_ACE_TRAINER_SHANNON +TRAINER_FISHERMAN_BRETT +TRAINER_FISHERMAN_ALEC +TRAINER_FISHERMAN_GEORGE +TRAINER_FISHERMAN_COLE +TRAINER_UNKNOWN_176 +TRAINER_UNKNOWN_177 +TRAINER_UNKNOWN_178 +TRAINER_UNKNOWN_179 +TRAINER_SAILOR_LUTHER +TRAINER_UNKNOWN_181 +TRAINER_UNKNOWN_182 +TRAINER_SWIMMER_WESLEY +TRAINER_SWIMMER_RICARDO +TRAINER_SWIMMER_FRANCISCO +TRAINER_SWIMMER_COLTON +TRAINER_SWIMMER_TROY +TRAINER_SWIMMER_OSCAR +TRAINER_SWIMMER_MIRANDA +TRAINER_SWIMMER_AUBREE +TRAINER_SWIMMER_PAIGE +TRAINER_SWIMMER_CRYSTAL +TRAINER_SWIMMER_CASSANDRA +TRAINER_SWIMMER_GABRIELLE +TRAINER_WORKER_COLIN +TRAINER_WORKER_MASON +TRAINER_UNKNOWN_197 +TRAINER_UNKNOWN_198 +TRAINER_UNKNOWN_199 +TRAINER_UNKNOWN_200 +TRAINER_BUG_CATCHER_JACK +TRAINER_BUG_CATCHER_PHILLIP +TRAINER_BUG_CATCHER_DONALD +TRAINER_LASS_BRIANA +TRAINER_PSYCHIC_ELIJAH +TRAINER_PSYCHIC_LINDSEY +TRAINER_UNKNOWN_207 +TRAINER_UNKNOWN_208 +TRAINER_UNKNOWN_209 +TRAINER_UNKNOWN_210 +TRAINER_UNKNOWN_211 +TRAINER_UNKNOWN_212 +TRAINER_UNKNOWN_213 +TRAINER_UNKNOWN_214 +TRAINER_UNKNOWN_215 +TRAINER_UNKNOWN_216 +TRAINER_UNKNOWN_217 +TRAINER_UNKNOWN_218 +TRAINER_UNKNOWN_219 +TRAINER_UNKNOWN_220 +TRAINER_UNKNOWN_221 +TRAINER_UNKNOWN_222 +TRAINER_UNKNOWN_223 +TRAINER_ACE_TRAINER_OMAR +TRAINER_ACE_TRAINER_HENRY +TRAINER_ACE_TRAINER_MARIAH +TRAINER_ACE_TRAINER_SYDNEY +TRAINER_VETERAN_EDGAR +TRAINER_VETERAN_CLAYTON +TRAINER_DRAGON_TAMER_ONDREJ +TRAINER_DRAGON_TAMER_CLINTON +TRAINER_BLACK_BELT_DAVID +TRAINER_BIRD_KEEPER_HANA +TRAINER_PSYCHIC_BRYCE +TRAINER_PSYCHIC_VALENCIA +TRAINER_DOUBLE_TEAM_JO_AND_PAT +TRAINER_DOUBLE_TEAM_AL_AND_KAY +TRAINER_UNKNOWN_238 +TRAINER_UNKNOWN_239 +TRAINER_VETERAN_GRANT +TRAINER_UNKNOWN_241 +TRAINER_UNKNOWN_242 +TRAINER_UNKNOWN_243 +TRAINER_YOUNGSTER_JONATHON +TRAINER_YOUNGSTER_DARIUS +TRAINER_LEADER_ROARK +TRAINER_RIVAL_ROUTE_203_PIPLUP +TRAINER_RIVAL_ROUTE_203_TURTWIG +TRAINER_RIVAL_ROUTE_203_CHIMCHAR +TRAINER_LEADER_BYRON +TRAINER_UNKNOWN_251 +TRAINER_UNKNOWN_252 +TRAINER_UNKNOWN_253 +TRAINER_UNKNOWN_254 +TRAINER_UNKNOWN_255 +TRAINER_WORKER_JACKSON +TRAINER_WORKER_GARY +TRAINER_BLACK_BELT_PHILIP +TRAINER_AROMA_LADY_JENNA +TRAINER_AROMA_LADY_ANGELA +TRAINER_ELITE_FOUR_AARON +TRAINER_ELITE_FOUR_BERTHA +TRAINER_ELITE_FOUR_FLINT +TRAINER_ELITE_FOUR_LUCIAN +TRAINER_CAMPER_CURTIS +TRAINER_CAMPER_DREW +TRAINER_CHAMPION_CYNTHIA +TRAINER_ACE_TRAINER_SERGIO +TRAINER_ACE_TRAINER_ISAIAH +TRAINER_ACE_TRAINER_SAVANNAH +TRAINER_ACE_TRAINER_ALICIA +TRAINER_COLLECTOR_DOUGLAS +TRAINER_COLLECTOR_BRADY +TRAINER_COLLECTOR_IVAN +TRAINER_COLLECTOR_FERNANDO +TRAINER_COLLECTOR_EDWIN +TRAINER_DRAGON_TAMER_HAYDEN +TRAINER_ACE_TRAINER_DENNIS +TRAINER_ACE_TRAINER_CESAR +TRAINER_ACE_TRAINER_ALLEN +TRAINER_ACE_TRAINER_ZACHERY +TRAINER_ACE_TRAINER_RUBEN +TRAINER_ACE_TRAINER_BREANNA +TRAINER_ACE_TRAINER_CATHERINE +TRAINER_ACE_TRAINER_DESTINY +TRAINER_ACE_TRAINER_JAMIE +TRAINER_ACE_TRAINER_MAYA +TRAINER_PSYCHIC_MAXWELL +TRAINER_PSYCHIC_BRITTNEY +TRAINER_BELLE_AND_PA_AVA_AND_MATT +TRAINER_UNKNOWN_291 +TRAINER_RANCHER_MARCO +TRAINER_FISHERMAN_ERICK +TRAINER_TWINS_EMMA_AND_LIL +TRAINER_COMMANDER_MARS_VALLEY_WINDWORKS +TRAINER_GALACTIC_GRUNT_FLOAROMA_MEADOW_1 +TRAINER_GALACTIC_GRUNT_FLOAROMA_MEADOW_2 +TRAINER_GALACTIC_GRUNT_VALLEY_WINDWORKS_2 +TRAINER_GALACTIC_GRUNT_VALLEY_WINDWORKS_3 +TRAINER_GUITARIST_TONY +TRAINER_GUITARIST_JERRY +TRAINER_GUITARIST_PRESTON +TRAINER_GUITARIST_LONNIE +TRAINER_RUIN_MANIAC_CALVIN +TRAINER_RUIN_MANIAC_LARRY +TRAINER_JOGGER_WYATT +TRAINER_JOGGER_CRAIG +TRAINER_JOGGER_RAUL +TRAINER_BLACK_BELT_COLBY +TRAINER_BLACK_BELT_DARREN +TRAINER_BLACK_BELT_RAFAEL +TRAINER_BLACK_BELT_JEFFERY +TRAINER_BLACK_BELT_CARL +TRAINER_BLACK_BELT_RICKY +TRAINER_LEADER_GARDENIA +TRAINER_LEADER_WAKE +TRAINER_LEADER_MAYLENE +TRAINER_LEADER_FANTINA +TRAINER_LEADER_CANDICE +TRAINER_LEADER_VOLKNER +TRAINER_UNKNOWN_321 +TRAINER_LASS_MADELINE +TRAINER_LASS_KAITLIN +TRAINER_LASS_CAROLINE +TRAINER_LASS_MOLLY +TRAINER_HIKER_LOUIS +TRAINER_PARASOL_LADY_ALEXA +TRAINER_PARASOL_LADY_SABRINA +TRAINER_PICNICKER_DIANA +TRAINER_PICNICKER_CHEYENNE +TRAINER_POKE_KID_MEGHAN +TRAINER_POLICEMAN_DANNY +TRAINER_POLICEMAN_THOMAS +TRAINER_UNKNOWN_334 +TRAINER_RICH_BOY_TREY +TRAINER_UNKNOWN_336 +TRAINER_SAILOR_MARC +TRAINER_SAILOR_SKYLER +TRAINER_SAILOR_DAMIAN +TRAINER_SCHOOL_KID_CHANCE +TRAINER_SCHOOL_KID_FORREST +TRAINER_SCHOOL_KID_HARRISON +TRAINER_SCHOOL_KID_MACKENZIE +TRAINER_SCHOOL_KID_TIERA +TRAINER_SCHOOL_KID_CHRISTINE +TRAINER_BEAUTY_CYNDY +TRAINER_UNKNOWN_347 +TRAINER_BEAUTY_LINDSAY +TRAINER_UNKNOWN_349 +TRAINER_UNKNOWN_350 +TRAINER_UNKNOWN_351 +TRAINER_UNKNOWN_352 +TRAINER_UNKNOWN_353 +TRAINER_UNKNOWN_354 +TRAINER_YOUNGSTER_DALLAS +TRAINER_YOUNGSTER_SEBASTIAN +TRAINER_YOUNGSTER_DONNY +TRAINER_TUBER_TRENTON +TRAINER_TUBER_CONNER +TRAINER_TUBER_MARIEL +TRAINER_TUBER_HOLLY +TRAINER_VETERAN_ARMANDO +TRAINER_UNKNOWN_363 +TRAINER_UNKNOWN_364 +TRAINER_UNKNOWN_365 +TRAINER_WAITRESS_KATI +TRAINER_WORKER_GERARDO +TRAINER_UNKNOWN_368 +TRAINER_UNKNOWN_369 +TRAINER_UNKNOWN_370 +TRAINER_UNKNOWN_371 +TRAINER_BATTLE_GIRL_TYLER +TRAINER_BIRD_KEEPER_AUTUMN +TRAINER_UNKNOWN_374 +TRAINER_UNKNOWN_375 +TRAINER_UNKNOWN_376 +TRAINER_CAMPER_ZACKARY +TRAINER_CAMPER_LAWRENCE +TRAINER_CAMPER_DIEGO +TRAINER_CAMPER_PARKER +TRAINER_COLLECTOR_DEAN +TRAINER_COLLECTOR_JAMAL +TRAINER_COLLECTOR_TERRY +TRAINER_UNKNOWN_384 +TRAINER_UNKNOWN_385 +TRAINER_DRAGON_TAMER_JOE +TRAINER_UNKNOWN_387 +TRAINER_ACE_TRAINER_JONAH +TRAINER_ACE_TRAINER_MICAH +TRAINER_ACE_TRAINER_ARTHUR +TRAINER_UNKNOWN_391 +TRAINER_ACE_TRAINER_BRENDA +TRAINER_ACE_TRAINER_BRANDI +TRAINER_ACE_TRAINER_CLARICE +TRAINER_PSYCHIC_KODY +TRAINER_PSYCHIC_LANDON +TRAINER_PSYCHIC_DEANDRE +TRAINER_PSYCHIC_RACHAEL +TRAINER_PSYCHIC_DESIREE +TRAINER_PSYCHIC_KENDRA +TRAINER_FISHERMAN_WALTER +TRAINER_UNKNOWN_402 +TRAINER_GALACTIC_BOSS_CYRUS_GALACTIC_HQ +TRAINER_GALACTIC_BOSS_CYRUS_DISTORTION_WORLD +TRAINER_COMMANDER_MARS_LAKE_VERITY +TRAINER_COMMANDER_JUPITER_TEAM_GALACTIC_ETERNA_BUILDING +TRAINER_COMMANDER_JUPITER_SPEAR_PILLAR +TRAINER_COMMANDER_SATURN_VALOR_CAVERN +TRAINER_COMMANDER_SATURN_GALACTIC_HQ +TRAINER_GALACTIC_GRUNT_TEAM_GALACTIC_ETERNA_BUILDING_1F_1 +TRAINER_UNKNOWN_411 +TRAINER_GALACTIC_GRUNT_TEAM_GALACTIC_ETERNA_BUILDING_2F_1 +TRAINER_UNKNOWN_413 +TRAINER_GALACTIC_GRUNT_JUBILIFE_CITY_1 +TRAINER_GALACTIC_GRUNT_JUBILIFE_CITY_2 +TRAINER_GALACTIC_GRUNT_CELESTIC_TOWN +TRAINER_GALACTIC_GRUNT_LAKE_VALOR_1 +TRAINER_GALACTIC_GRUNT_LAKE_VALOR_2 +TRAINER_GALACTIC_GRUNT_LAKE_VERITY_1 +TRAINER_GALACTIC_GRUNT_LAKE_VERITY_3 +TRAINER_GALACTIC_GRUNT_TEAM_GALACTIC_ETERNA_BUILDING_1F_2 +TRAINER_GALACTIC_GRUNT_TEAM_GALACTIC_ETERNA_BUILDING_2F_2 +TRAINER_GALACTIC_GRUNT_TEAM_GALACTIC_ETERNA_BUILDING_3F +TRAINER_UNKNOWN_424 +TRAINER_GALACTIC_GRUNT_LAKE_VALOR_3 +TRAINER_GALACTIC_GRUNT_LAKE_VERITY_2 +TRAINER_GALACTIC_GRUNT_LAKE_VERITY_4 +TRAINER_GALACTIC_GRUNT_GALACTIC_HQ_1F +TRAINER_UNKNOWN_429 +TRAINER_GALACTIC_GRUNT_GALACTIC_HQ_2F_3 +TRAINER_UNKNOWN_431 +TRAINER_UNKNOWN_432 +TRAINER_UNKNOWN_433 +TRAINER_UNKNOWN_434 +TRAINER_UNKNOWN_435 +TRAINER_UNKNOWN_436 +TRAINER_UNKNOWN_437 +TRAINER_UNKNOWN_438 +TRAINER_UNKNOWN_439 +TRAINER_UNKNOWN_440 +TRAINER_UNKNOWN_441 +TRAINER_RUIN_MANIAC_HARRY +TRAINER_RUIN_MANIAC_GERALD +TRAINER_BLACK_BELT_MILES +TRAINER_BLACK_BELT_KENDAL +TRAINER_BLACK_BELT_EDDIE +TRAINER_BLACK_BELT_WILLIE +TRAINER_UNKNOWN_448 +TRAINER_UNKNOWN_449 +TRAINER_LASS_CASSIDY +TRAINER_HIKER_THEODORE +TRAINER_HIKER_DAMON +TRAINER_HIKER_MAURICE +TRAINER_HIKER_REGINALD +TRAINER_HIKER_LORENZO +TRAINER_PICNICKER_KARINA +TRAINER_PICNICKER_SUMMER +TRAINER_PICNICKER_TORI +TRAINER_PICNICKER_ANA +TRAINER_UNKNOWN_460 +TRAINER_UNKNOWN_461 +TRAINER_UNKNOWN_462 +TRAINER_UNKNOWN_463 +TRAINER_UNKNOWN_464 +TRAINER_UNKNOWN_465 +TRAINER_UNKNOWN_466 +TRAINER_UNKNOWN_467 +TRAINER_UNKNOWN_468 +TRAINER_UNKNOWN_469 +TRAINER_RIVAL_ROUTE_209_PIPLUP +TRAINER_RIVAL_ROUTE_209_TURTWIG +TRAINER_RIVAL_ROUTE_209_CHIMCHAR +TRAINER_RIVAL_PASTORIA_CITY_PIPLUP +TRAINER_RIVAL_PASTORIA_CITY_TURTWIG +TRAINER_RIVAL_PASTORIA_CITY_CHIMCHAR +TRAINER_RIVAL_CANALAVE_CITY_PIPLUP +TRAINER_RIVAL_CANALAVE_CITY_TURTWIG +TRAINER_RIVAL_CANALAVE_CITY_CHIMCHAR +TRAINER_RIVAL_POKEMON_LEAGUE_PIPLUP +TRAINER_RIVAL_POKEMON_LEAGUE_TURTWIG +TRAINER_RIVAL_POKEMON_LEAGUE_CHIMCHAR +TRAINER_SAILOR_ZACHARIAH +TRAINER_SAILOR_SAMSON +TRAINER_UNKNOWN_484 +TRAINER_UNKNOWN_485 +TRAINER_SCIENTIST_SHAUN +TRAINER_UNKNOWN_487 +TRAINER_NINJA_BOY_FABIAN +TRAINER_NINJA_BOY_BRENNAN +TRAINER_NINJA_BOY_BRUCE +TRAINER_BEAUTY_DEVON +TRAINER_BEAUTY_NICOLA +TRAINER_UNKNOWN_493 +TRAINER_SWIMMER_CLAIRE +TRAINER_UNKNOWN_495 +TRAINER_YOUNGSTER_WAYNE +TRAINER_TUBER_JACKY +TRAINER_TUBER_CAITLYN +TRAINER_VETERAN_TERRELL +TRAINER_VETERAN_BRENDEN +TRAINER_UNKNOWN_501 +TRAINER_UNKNOWN_502 +TRAINER_WORKER_NOEL +TRAINER_WORKER_BRADEN +TRAINER_WORKER_BRENDON +TRAINER_WORKER_QUENTIN +TRAINER_GALACTIC_GRUNT_GALACTIC_HQ_B2F_1 +TRAINER_GALACTIC_GRUNT_GALACTIC_HQ_B2F_2 +TRAINER_GALACTIC_GRUNT_GALACTIC_HQ_3F_1 +TRAINER_GALACTIC_GRUNT_GALACTIC_HQ_2F_1 +TRAINER_UNKNOWN_511 +TRAINER_GALACTIC_GRUNT_GALACTIC_HQ_3F_2 +TRAINER_GALACTIC_GRUNT_GALACTIC_HQ_2F_2 +TRAINER_GALACTIC_GRUNT_GALACTIC_HQ_3F_3 +TRAINER_GALACTIC_GRUNT_MT_CORONET_3F_1 +TRAINER_GALACTIC_GRUNT_MT_CORONET_4F_1 +TRAINER_GALACTIC_GRUNT_MT_CORONET_4F_2 +TRAINER_GALACTIC_GRUNT_MT_CORONET_TUNNEL_ROOM_1 +TRAINER_GALACTIC_GRUNT_MT_CORONET_TUNNEL_ROOM_2 +TRAINER_GALACTIC_GRUNT_MT_CORONET_5F_1 +TRAINER_GALACTIC_GRUNT_SPEAR_PILLAR_1 +TRAINER_GALACTIC_GRUNT_GALACTIC_HQ_3F_4 +TRAINER_GALACTIC_GRUNT_MT_CORONET__3F_1 +TRAINER_GALACTIC_GRUNT_MT_CORONET_TUNNEL_ROOM_3 +TRAINER_GALACTIC_GRUNT_MT_CORONET_5F_2 +TRAINER_GALACTIC_GRUNT_MT_CORONET_6F +TRAINER_GALACTIC_GRUNT_SPEAR_PILLAR_2 +TRAINER_COMMANDER_MARS_SPEAR_PILLAR +TRAINER_ROUGHNECK_KIRBY +TRAINER_POKEFAN_LEONARD +TRAINER_POKEFAN_REBEKAH +TRAINER_YOUNGSTER_OLIVER +TRAINER_BELLE_AND_PA_BETH_AND_BOB +TRAINER_YOUNG_COUPLE_MIKE_AND_NAT +TRAINER_AROMA_LADY_ALISON +TRAINER_ARTIST_ISMAEL +TRAINER_BREEDER_KAYLEE +TRAINER_CAMERAMAN_DARRYL +TRAINER_COLLECTOR_EUGENE +TRAINER_POKEFAN_MEREDITH +TRAINER_PI_KENDRICK +TRAINER_GENTLEMAN_LEONARDO +TRAINER_SOCIALITE_REBECCA +TRAINER_LASS_BLYTHE +TRAINER_RICH_BOY_ROMAN +TRAINER_LADY_KYLIE +TRAINER_REPORTERS_VALERIE +TRAINER_SCHOOL_KID_ESTEBAN +TRAINER_SCIENTIST_EMILIO +TRAINER_BEAUTY_GABRIELLA +TRAINER_BEAUTY_HARLEY +TRAINER_VETERAN_EMANUEL +TRAINER_RUIN_MANIAC_KARL +TRAINER_BIRD_KEEPER_AUDREY +TRAINER_BIRD_KEEPER_GENEVA +TRAINER_BIRD_KEEPER_KRYSTAL +TRAINER_DRAGON_TAMER_GEOFFREY +TRAINER_DRAGON_TAMER_DARIEN +TRAINER_DRAGON_TAMER_KEEGAN +TRAINER_DRAGON_TAMER_STANLEY +TRAINER_DRAGON_TAMER_DRAKE +TRAINER_DRAGON_TAMER_KENNY +TRAINER_ACE_TRAINER_RODOLFO +TRAINER_ACE_TRAINER_SAUL +TRAINER_ACE_TRAINER_JOSE +TRAINER_ACE_TRAINER_FELIX +TRAINER_ACE_TRAINER_QUINN +TRAINER_ACE_TRAINER_GRAHAM +TRAINER_ACE_TRAINER_KEENAN +TRAINER_ACE_TRAINER_STEFAN +TRAINER_ACE_TRAINER_SKYLAR +TRAINER_ACE_TRAINER_ABEL +TRAINER_ACE_TRAINER_DEANNA +TRAINER_ACE_TRAINER_MOIRA +TRAINER_ACE_TRAINER_DANA +TRAINER_ACE_TRAINER_MIKAYLA +TRAINER_ACE_TRAINER_MEAGAN +TRAINER_ACE_TRAINER_SANDRA +TRAINER_ACE_TRAINER_KASSANDRA +TRAINER_ACE_TRAINER_JASMIN +TRAINER_ACE_TRAINER_NATASHA +TRAINER_ACE_TRAINER_MONIQUE +TRAINER_PSYCHIC_CORBIN +TRAINER_PSYCHIC_STERLING +TRAINER_PSYCHIC_DAISY +TRAINER_PSYCHIC_CHELSEY +TRAINER_BLACK_BELT_DAVON +TRAINER_BLACK_BELT_GRIFFIN +TRAINER_BLACK_BELT_RAY +TRAINER_BLACK_BELT_JARRETT +TRAINER_RANGER_KYLER +TRAINER_RANGER_DESHAWN +TRAINER_RANGER_DWAYNE +TRAINER_RANGER_ASHLEE +TRAINER_RANGER_FELICIA +TRAINER_RANGER_KRISTA +TRAINER_SWIMMER_GLENN +TRAINER_SWIMMER_KURT +TRAINER_SWIMMER_SAM +TRAINER_SWIMMER_WADE +TRAINER_SWIMMER_JOANNA +TRAINER_SWIMMER_SOPHIA +TRAINER_SWIMMER_MALLORY +TRAINER_SWIMMER_LYDIA +TRAINER_UNKNOWN_605 +TRAINER_VETERAN_HARLAN +TRAINER_RIVAL_SPEAR_PILLAR_PIPLUP +TRAINER_CHERYL_ETERNA_FOREST +TRAINER_RILEY_IRON_ISLAND +TRAINER_MARLEY_VICTORY_ROAD +TRAINER_BUCK_STARK_MOUNTAIN +TRAINER_MIRA_WAYWARD_CAVE +TRAINER_LUCAS_JUBILIFE_CITY_CHIMCHAR +TRAINER_LUCAS_JUBILIFE_CITY_PIPLUP +TRAINER_LUCAS_JUBILIFE_CITY_TURTWIG +TRAINER_DAWN_JUBILIFE_CITY_CHIMCHAR +TRAINER_DAWN_JUBILIFE_CITY_PIPLUP +TRAINER_DAWN_JUBILIFE_CITY_TURTWIG +TRAINER_RIVAL_SPEAR_PILLAR_TURTWIG +TRAINER_RIVAL_SPEAR_PILLAR_CHIMCHAR +TRAINER_LUCAS_VEILSTONE_CITY_CHIMCHAR +TRAINER_LUCAS_VEILSTONE_CITY_PIPLUP +TRAINER_LUCAS_VEILSTONE_CITY_TURTWIG +TRAINER_DAWN_VEILSTONE_CITY_CHIMCHAR +TRAINER_DAWN_VEILSTONE_CITY_PIPLUP +TRAINER_DAWN_VEILSTONE_CITY_TURTWIG +TRAINER_AROMA_LADY_ELIZABETH_REMATCH_1 +TRAINER_AROMA_LADY_ELIZABETH_REMATCH_2 +TRAINER_AROMA_LADY_ELIZABETH_REMATCH_3 +TRAINER_ARTIST_WILLIAM_REMATCH_1 +TRAINER_ARTIST_WILLIAM_REMATCH_2 +TRAINER_ARTIST_WILLIAM_REMATCH_3 +TRAINER_BATTLE_GIRL_HELEN_REMATCH_1 +TRAINER_BATTLE_GIRL_HELEN_REMATCH_2 +TRAINER_BATTLE_GIRL_HELEN_REMATCH_3 +TRAINER_BIRD_KEEPER_BRIANNA_REMATCH_1 +TRAINER_BIRD_KEEPER_BRIANNA_REMATCH_2 +TRAINER_BIRD_KEEPER_AUDREY_REMATCH +TRAINER_BREEDER_ALBERT_REMATCH_1 +TRAINER_BREEDER_ALBERT_REMATCH_2 +TRAINER_BREEDER_ALBERT_REMATCH_3 +TRAINER_BREEDER_JENNIFER_REMATCH_1 +TRAINER_BREEDER_JENNIFER_REMATCH_2 +TRAINER_BREEDER_JENNIFER_REMATCH_3 +TRAINER_CAMPER_ZACKARY_REMATCH_1 +TRAINER_CAMPER_ZACKARY_REMATCH_2 +TRAINER_CAMPER_ZACKARY_REMATCH_3 +TRAINER_ACE_TRAINER_DALTON_REMATCH +TRAINER_ACE_TRAINER_OLIVIA_REMATCH +TRAINER_COLLECTOR_IVAN_REMATCH +TRAINER_UNKNOWN_651 +TRAINER_UNKNOWN_652 +TRAINER_CYCLIST_JOHN_REMATCH_1 +TRAINER_CYCLIST_JOHN_REMATCH_2 +TRAINER_CYCLIST_JOHN_REMATCH_3 +TRAINER_CYCLIST_KAYLA_REMATCH_1 +TRAINER_CYCLIST_KAYLA_REMATCH_2 +TRAINER_CYCLIST_KAYLA_REMATCH_3 +TRAINER_DRAGON_TAMER_PATRICK_REMATCH_1 +TRAINER_DRAGON_TAMER_PATRICK_REMATCH_2 +TRAINER_DRAGON_TAMER_HAYDEN_REMATCH +TRAINER_DRAGON_TAMER_GEOFFREY_REMATCH +TRAINER_ACE_TRAINER_JAKE_REMATCH +TRAINER_ACE_TRAINER_DENNIS_REMATCH_1 +TRAINER_ACE_TRAINER_DENNIS_REMATCH_2 +TRAINER_ACE_TRAINER_RODOLFO_REMATCH +TRAINER_ACE_TRAINER_SAUL_REMATCH +TRAINER_ACE_TRAINER_SHANNON_REMATCH +TRAINER_ACE_TRAINER_MAYA_REMATCH_1 +TRAINER_ACE_TRAINER_MAYA_REMATCH_2 +TRAINER_ACE_TRAINER_DEANNA_REMATCH +TRAINER_ACE_TRAINER_MOIRA_REMATCH +TRAINER_PSYCHIC_MITCHELL_REMATCH_1 +TRAINER_PSYCHIC_MITCHELL_REMATCH_2 +TRAINER_PSYCHIC_MAXWELL_REMATCH +TRAINER_PSYCHIC_CORBIN_REMATCH +TRAINER_PSYCHIC_ABIGAIL_REMATCH_1 +TRAINER_PSYCHIC_ABIGAIL_REMATCH_2 +TRAINER_PSYCHIC_BRITTNEY_REMATCH +TRAINER_PSYCHIC_DAISY_REMATCH +TRAINER_RANCHER_MARCO_REMATCH_1 +TRAINER_RANCHER_MARCO_REMATCH_2 +TRAINER_FISHERMAN_JOSEPH_REMATCH_1 +TRAINER_FISHERMAN_JOSEPH_REMATCH_2 +TRAINER_FISHERMAN_MIGUEL_REMATCH +TRAINER_FISHERMAN_ALEC_REMATCH +TRAINER_TWINS_TERI_AND_TIA_REMATCH_1 +TRAINER_TWINS_TERI_AND_TIA_REMATCH_2 +TRAINER_PI_CARLOS_REMATCH_1 +TRAINER_PI_CARLOS_REMATCH_2 +TRAINER_GENTLEMAN_JEREMY_REMATCH_1 +TRAINER_GENTLEMAN_JEREMY_REMATCH_2 +TRAINER_GENTLEMAN_JEREMY_REMATCH_3 +TRAINER_GUITARIST_TONY_REMATCH +TRAINER_RUIN_MANIAC_HARRY_REMATCH_1 +TRAINER_RUIN_MANIAC_HARRY_REMATCH_2 +TRAINER_JOGGER_CRAIG_REMATCH_1 +TRAINER_JOGGER_CRAIG_REMATCH_2 +TRAINER_BLACK_BELT_PHILIP_REMATCH +TRAINER_BLACK_BELT_DAVON_REMATCH +TRAINER_SOCIALITE_REINA_REMATCH_1 +TRAINER_SOCIALITE_REINA_REMATCH_2 +TRAINER_LASS_SAMANTHA_REMATCH_1 +TRAINER_LASS_SAMANTHA_REMATCH_2 +TRAINER_LASS_SAMANTHA_REMATCH_3 +TRAINER_LASS_MADELINE_REMATCH_1 +TRAINER_LASS_MADELINE_REMATCH_2 +TRAINER_LASS_MADELINE_REMATCH_3 +TRAINER_HIKER_THEODORE_REMATCH_1 +TRAINER_HIKER_THEODORE_REMATCH_2 +TRAINER_HIKER_THEODORE_REMATCH_3 +TRAINER_BUG_CATCHER_BRANDON_REMATCH_1 +TRAINER_BUG_CATCHER_BRANDON_REMATCH_2 +TRAINER_BUG_CATCHER_BRANDON_REMATCH_3 +TRAINER_PARASOL_LADY_ALEXA_REMATCH_1 +TRAINER_PARASOL_LADY_ALEXA_REMATCH_2 +TRAINER_PARASOL_LADY_ALEXA_REMATCH_3 +TRAINER_PICNICKER_KARINA_REMATCH_1 +TRAINER_PICNICKER_KARINA_REMATCH_2 +TRAINER_PICNICKER_KARINA_REMATCH_3 +TRAINER_POKE_KID_DANIELLE_REMATCH_1 +TRAINER_POKE_KID_DANIELLE_REMATCH_2 +TRAINER_POKE_KID_DANIELLE_REMATCH_3 +TRAINER_POLICEMAN_DANNY_REMATCH_1 +TRAINER_POLICEMAN_DANNY_REMATCH_2 +TRAINER_POLICEMAN_DANNY_REMATCH_3 +TRAINER_RICH_BOY_TREY_REMATCH_1 +TRAINER_RICH_BOY_TREY_REMATCH_2 +TRAINER_LADY_MELISSA_REMATCH_1 +TRAINER_LADY_MELISSA_REMATCH_2 +TRAINER_LADY_MELISSA_REMATCH_3 +TRAINER_RANGER_TAYLOR_REMATCH_1 +TRAINER_RANGER_TAYLOR_REMATCH_2 +TRAINER_RANGER_TAYLOR_REMATCH_3 +TRAINER_RANGER_KYLER_REMATCH +TRAINER_RANGER_ALLISON_REMATCH_1 +TRAINER_RANGER_ALLISON_REMATCH_2 +TRAINER_RANGER_ALLISON_REMATCH_3 +TRAINER_RANGER_ASHLEE_REMATCH +TRAINER_SAILOR_MARC_REMATCH_1 +TRAINER_SAILOR_MARC_REMATCH_2 +TRAINER_SAILOR_ZACHARIAH_REMATCH +TRAINER_SCIENTIST_SHAUN_REMATCH_1 +TRAINER_SCIENTIST_SHAUN_REMATCH_2 +TRAINER_SCIENTIST_SHAUN_REMATCH_3 +TRAINER_NINJA_BOY_ZACH_REMATCH_1 +TRAINER_NINJA_BOY_ZACH_REMATCH_2 +TRAINER_NINJA_BOY_ZACH_REMATCH_3 +TRAINER_BEAUTY_CYNDY_REMATCH_1 +TRAINER_BEAUTY_CYNDY_REMATCH_2 +TRAINER_SKIER_EDWARD_REMATCH_1 +TRAINER_SKIER_EDWARD_REMATCH_2 +TRAINER_SKIER_BJORN_REMATCH_1 +TRAINER_SKIER_BJORN_REMATCH_2 +TRAINER_SKIER_ANDREA_REMATCH_1 +TRAINER_SKIER_ANDREA_REMATCH_2 +TRAINER_SKIER_MADISON_REMATCH_1 +TRAINER_SKIER_MADISON_REMATCH_2 +TRAINER_SWIMMER_WESLEY_REMATCH +TRAINER_SWIMMER_FRANCISCO_REMATCH +TRAINER_SWIMMER_GLENN_REMATCH +TRAINER_SWIMMER_MIRANDA_REMATCH +TRAINER_SWIMMER_CRYSTAL_REMATCH +TRAINER_SWIMMER_JOANNA_REMATCH +TRAINER_YOUNGSTER_TRISTAN_REMATCH_1 +TRAINER_YOUNGSTER_TRISTAN_REMATCH_2 +TRAINER_YOUNGSTER_TRISTAN_REMATCH_3 +TRAINER_YOUNGSTER_DALLAS_REMATCH_1 +TRAINER_YOUNGSTER_DALLAS_REMATCH_2 +TRAINER_YOUNGSTER_DALLAS_REMATCH_3 +TRAINER_TUBER_JARED_REMATCH_1 +TRAINER_TUBER_JARED_REMATCH_2 +TRAINER_TUBER_CHELSEA_REMATCH_1 +TRAINER_VETERAN_BRIAN_REMATCH_1 +TRAINER_TUBER_CHELSEA_REMATCH_2 +TRAINER_VETERAN_BRIAN_REMATCH_2 +TRAINER_VETERAN_ARMANDO_REMATCH +TRAINER_UNKNOWN_778 +TRAINER_UNKNOWN_779 +TRAINER_UNKNOWN_780 +TRAINER_UNKNOWN_781 +TRAINER_UNKNOWN_782 +TRAINER_UNKNOWN_783 +TRAINER_UNKNOWN_784 +TRAINER_UNKNOWN_785 +TRAINER_UNKNOWN_786 +TRAINER_UNKNOWN_787 +TRAINER_UNKNOWN_788 +TRAINER_UNKNOWN_789 +TRAINER_UNKNOWN_790 +TRAINER_UNKNOWN_791 +TRAINER_UNKNOWN_792 +TRAINER_UNKNOWN_793 +TRAINER_UNKNOWN_794 +TRAINER_UNKNOWN_795 +TRAINER_UNKNOWN_796 +TRAINER_UNKNOWN_797 +TRAINER_UNKNOWN_798 +TRAINER_UNKNOWN_799 +TRAINER_UNKNOWN_800 +TRAINER_UNKNOWN_801 +TRAINER_UNKNOWN_802 +TRAINER_UNKNOWN_803 +TRAINER_UNKNOWN_804 +TRAINER_UNKNOWN_805 +TRAINER_UNKNOWN_806 +TRAINER_UNKNOWN_807 +TRAINER_UNKNOWN_808 +TRAINER_UNKNOWN_809 +TRAINER_UNKNOWN_810 +TRAINER_UNKNOWN_811 +TRAINER_UNKNOWN_812 +TRAINER_UNKNOWN_813 +TRAINER_UNKNOWN_814 +TRAINER_UNKNOWN_815 +TRAINER_UNKNOWN_816 +TRAINER_UNKNOWN_817 +TRAINER_UNKNOWN_818 +TRAINER_UNKNOWN_819 +TRAINER_UNKNOWN_820 +TRAINER_UNKNOWN_821 +TRAINER_UNKNOWN_822 +TRAINER_UNKNOWN_823 +TRAINER_UNKNOWN_824 +TRAINER_UNKNOWN_825 +TRAINER_UNKNOWN_828 +TRAINER_ACE_TRAINER_ANTON +TRAINER_ACE_TRAINER_BRENNA +TRAINER_SCIENTIST_DARRIUS +TRAINER_SCIENTIST_FREDRICK +TRAINER_SCIENTIST_TRAVON +TRAINER_POKE_KID_JANET +TRAINER_UNKNOWN_833 +TRAINER_UNKNOWN_834 +TRAINER_GALACTIC_GRUNT_IRON_ISLAND_1 +TRAINER_GALACTIC_GRUNT_IRON_ISLAND_2 +TRAINER_RIVAL_SURVIVAL_AREA_1_PIPLUP +TRAINER_RIVAL_SURVIVAL_AREA_1_TURTWIG +TRAINER_RIVAL_SURVIVAL_AREA_1_CHIMCHAR +TRAINER_UNKNOWN_840 +TRAINER_UNKNOWN_841 +TRAINER_UNKNOWN_842 +TRAINER_GALACTIC_GRUNT_VALLEY_WINDWORKS_1 +TRAINER_WORKER_DILLAN +TRAINER_WORKER_HOLDEN +TRAINER_WORKER_CONRAD +TRAINER_GALACTIC_GRUNT_VALOR_LAKEFRONT +TRAINER_GALACTIC_GRUNT_VEILSTONE_CITY_1 +TRAINER_GALACTIC_GRUNT_VEILSTONE_CITY_2 +TRAINER_RIVAL_ROUTE_201_PIPLUP +TRAINER_RIVAL_ROUTE_201_TURTWIG +TRAINER_RIVAL_ROUTE_201_CHIMCHAR +TRAINER_LEADER_CANDICE_REMATCH +TRAINER_LEADER_MAYLENE_REMATCH +TRAINER_LEADER_VOLKNER_REMATCH +TRAINER_LEADER_BYRON_REMATCH +TRAINER_LEADER_GARDENIA_REMATCH +TRAINER_LEADER_ROARK_REMATCH +TRAINER_LEADER_WAKE_REMATCH +TRAINER_LEADER_FANTINA_REMATCH +TRAINER_RILEY_BATTLEGROUND +TRAINER_BUCK_BATTLEGROUND +TRAINER_MARLEY_BATTLEGROUND +TRAINER_MIRA_BATTLEGROUND +TRAINER_CHERYL_BATTLEGROUND +TRAINER_ELITE_FOUR_AARON_REMATCH +TRAINER_ELITE_FOUR_BERTHA_REMATCH +TRAINER_ELITE_FOUR_FLINT_REMATCH +TRAINER_ELITE_FOUR_LUCIAN_REMATCH +TRAINER_CHAMPION_CYNTHIA_REMATCH +TRAINER_RIVAL_SURVIVAL_AREA_2_PIPLUP +TRAINER_RIVAL_SURVIVAL_AREA_2_TURTWIG +TRAINER_RIVAL_SURVIVAL_AREA_2_CHIMCHAR +TRAINER_CAMERAMAN_TEVIN +TRAINER_CAMERAMAN_TEVIN_REMATCH_1 +TRAINER_CAMERAMAN_TEVIN_REMATCH_2 +TRAINER_GUITARIST_ARTURO +TRAINER_GUITARIST_ARTURO_REMATCH_1 +TRAINER_GUITARIST_ARTURO_REMATCH_2 +TRAINER_IDOL_GRACE +TRAINER_IDOL_GRACE_REMATCH_1 +TRAINER_IDOL_GRACE_REMATCH_2 +TRAINER_INTERVIEWERS_ROXY_AND_OLI +TRAINER_INTERVIEWERS_ROXY_AND_OLI_REMATCH_1 +TRAINER_INTERVIEWERS_ROXY_AND_OLI_REMATCH_2 +TRAINER_CLOWN_LEE +TRAINER_CLOWN_LEE_REMATCH_1 +TRAINER_CLOWN_LEE_REMATCH_2 +TRAINER_POKE_KID_ARIEL +TRAINER_POKE_KID_ARIEL_REMATCH_1 +TRAINER_POKE_KID_ARIEL_REMATCH_2 +TRAINER_RICH_BOY_LIAM +TRAINER_LADY_CELESTE +TRAINER_REPORTERS_KINSEY +TRAINER_REPORTERS_KINSEY_REMATCH_1 +TRAINER_REPORTERS_KINSEY_REMATCH_2 +TRAINER_MAID_BELINDA +TRAINER_MAID_SOPHIE +TRAINER_MAID_EMILY +TRAINER_MAID_ELENA +TRAINER_MAID_CLARE +TRAINER_UNKNOWN_902 +TRAINER_UNKNOWN_903 +TRAINER_UNKNOWN_904 +TRAINER_UNKNOWN_905 +TRAINER_CAMERAMAN_TEVIN_REMATCH_3 +TRAINER_GUITARIST_ARTURO_REMATCH_3 +TRAINER_IDOL_GRACE_REMATCH_3 +TRAINER_INTERVIEWERS_ROXY_AND_OLI_REMATCH_3 +TRAINER_CLOWN_LEE_REMATCH_3 +TRAINER_POKE_KID_ARIEL_REMATCH_3 +TRAINER_REPORTERS_KINSEY_REMATCH_3 +TRAINER_GALACTIC_BOSS_CYRUS_CELESTIC_TOWN_RUINS +TRAINER_CAMERAMAN_TEVIN_REMATCH_4 +TRAINER_GUITARIST_ARTURO_REMATCH_4 +TRAINER_IDOL_GRACE_REMATCH_4 +TRAINER_INTERVIEWERS_ROXY_AND_OLI_REMATCH_4 +TRAINER_CLOWN_LEE_REMATCH_4 +TRAINER_POKE_KID_ARIEL_REMATCH_4 +TRAINER_REPORTERS_KINSEY_REMATCH_4 +TRAINER_LEADER_VOLKNER_FIGHT_AREA +TRAINER_ELITE_FOUR_FLINT_FIGHT_AREA +TRAINER_RIVAL_FIGHT_AREA_PIPLUP +TRAINER_RIVAL_FIGHT_AREA_TURTWIG +TRAINER_RIVAL_FIGHT_AREA_CHIMCHAR +TRAINER_COMMANDER_MARS_STARK_MOUNTAIN +TRAINER_COMMANDER_JUPITER_STARK_MOUNTAIN diff --git a/include/battle/ov16_0223DF00.h b/include/battle/ov16_0223DF00.h index ad4c3060a3..6249b8cdf0 100644 --- a/include/battle/ov16_0223DF00.h +++ b/include/battle/ov16_0223DF00.h @@ -13,7 +13,7 @@ #include "struct_decls/struct_0200C704_decl.h" #include "struct_decls/struct_020797DC_decl.h" #include "struct_defs/chatot_cry.h" -#include "struct_defs/trainer_data.h" +#include "struct_defs/trainer.h" #include "battle/battle_context.h" #include "battle/battle_message.h" diff --git a/include/field_battle_data_transfer.h b/include/field_battle_data_transfer.h index 332d0ba11a..2a35879ab4 100644 --- a/include/field_battle_data_transfer.h +++ b/include/field_battle_data_transfer.h @@ -10,7 +10,7 @@ #include "struct_decls/struct_0206D140_decl.h" #include "struct_decls/struct_020797DC_decl.h" #include "struct_defs/chatot_cry.h" -#include "struct_defs/trainer_data.h" +#include "struct_defs/trainer.h" #include "field/field_system_decl.h" diff --git a/include/string_template.h b/include/string_template.h index 55a5697728..fa31bf868e 100644 --- a/include/string_template.h +++ b/include/string_template.h @@ -6,7 +6,7 @@ #include "struct_decls/struct_020797DC_decl.h" #include "struct_defs/pokemon.h" -#include "struct_defs/trainer_data.h" +#include "struct_defs/trainer.h" #include "enums.h" #include "savedata.h" diff --git a/include/struct_defs/battle_system.h b/include/struct_defs/battle_system.h index 671e8fb024..81f1d25b0d 100644 --- a/include/struct_defs/battle_system.h +++ b/include/struct_defs/battle_system.h @@ -17,7 +17,7 @@ #include "struct_decls/struct_020797DC_decl.h" #include "struct_defs/chatot_cry.h" #include "struct_defs/struct_0207C690.h" -#include "struct_defs/trainer_data.h" +#include "struct_defs/trainer.h" #include "battle/battle_context.h" #include "battle/struct_ov16_0223E0C8.h" diff --git a/include/struct_defs/struct_0202FAA8.h b/include/struct_defs/struct_0202FAA8.h index 1af308b10e..f8004856fd 100644 --- a/include/struct_defs/struct_0202FAA8.h +++ b/include/struct_defs/struct_0202FAA8.h @@ -1,7 +1,7 @@ #ifndef POKEPLATINUM_STRUCT_0202FAA8_H #define POKEPLATINUM_STRUCT_0202FAA8_H -#include "struct_defs/trainer_data.h" +#include "struct_defs/trainer.h" typedef struct { u32 unk_00; diff --git a/include/struct_defs/trainer.h b/include/struct_defs/trainer.h new file mode 100644 index 0000000000..e4de20d13a --- /dev/null +++ b/include/struct_defs/trainer.h @@ -0,0 +1,19 @@ +#ifndef POKEPLATINUM_STRUCT_TRAINER_H +#define POKEPLATINUM_STRUCT_TRAINER_H + +#include "constants/string.h" + +#include "struct_defs/sentence.h" +#include "struct_defs/trainer_data.h" + +#include "charcode.h" + +typedef struct Trainer { + TrainerHeader header; + + charcode_t name[TRAINER_NAME_LEN + 1]; + Sentence winMsg; + Sentence loseMsg; +} Trainer; + +#endif // POKEPLATINUM_STRUCT_TRAINER_H diff --git a/include/struct_defs/trainer_data.h b/include/struct_defs/trainer_data.h index bc2a7a0e07..2fb0225a64 100644 --- a/include/struct_defs/trainer_data.h +++ b/include/struct_defs/trainer_data.h @@ -1,11 +1,18 @@ #ifndef POKEPLATINUM_STRUCT_TRAINER_DATA_H #define POKEPLATINUM_STRUCT_TRAINER_DATA_H -#include "constants/string.h" +/* + * Note: *most* source files should not include this header directly, and should + * instead including `struct_defs/trainer.h`. This header is held separately for + * use by data-packing routines. + */ + +#include "constants/moves.h" -#include "struct_defs/sentence.h" +#define TRAINER_MON_FORM_SHIFT 10 -#include "strbuf.h" +#define MAX_TRAINER_ITEMS 4 +#define MAX_DV 255 enum TrainerDataType { TRDATATYPE_BASE = 0, @@ -14,71 +21,46 @@ enum TrainerDataType { TRDATATYPE_WITH_MOVES_AND_ITEM, }; -/** - * @brief Trainer data encapsulation. Contains all trainer-level data needed to instantiate a trainer battle. - */ -typedef struct Trainer { - u8 type; //< The data type of the trainer; controls which TrainerMon struct is used for the party. - u8 class; //< The trainer's class, e.g. "Youngster" or "Gym Leader." - u8 sprite; //< Which sprite ID the trainer uses. - u8 partySize; //< How many Pokemon the trainer has in their party. - - u16 items[4]; //< Items that the trainer has in their bag. - - u32 aiMask; //< Mask of AI flags to use for this trainer in battle. - - u32 battleType; //< The type of battle to be instantiated. - - charcode_t name[TRAINER_NAME_LEN + 1]; //< The trainer's name. +typedef struct TrainerHeader { + u8 monDataType; + u8 trainerType; + u8 sprite; + u8 partySize; + u16 items[MAX_TRAINER_ITEMS]; + u32 aiMask; + u32 battleType; +} TrainerHeader; - Sentence winMsg; //< The message to display if the trainer wins. - Sentence loseMsg; //< The message to display if the trainer loses. -} Trainer; - -#define MAX_DV 255 - -/** - * @brief The most basic Trainer Pokemon structure. No item is held, and moves are populated from the learnset. - */ typedef struct TrainerMonBase { - u16 dv; //< Difficulty value; determines how many IVs the Pokemon will have in each stat. - u16 level; //< The Pokemon's level. - u16 species; //< Composite mask of the Pokemon's level (least-significant 10 bits) and form (most-significant 6 bits). - u16 cbSeal; //< Ball seal applied to the Pokemon. + u16 dv; + u16 level; + u16 species; + u16 cbSeal; } TrainerMonBase; -/** - * @brief Trainer Pokemon that knows a certain set of moves. - */ typedef struct TrainerMonWithMoves { - u16 dv; //< Difficulty value; determines how many IVs the Pokemon will have in each stat. - u16 level; //< The Pokemon's level. - u16 species; //< Composite mask of the Pokemon's level (least-significant 10 bits) and form (most-significant 6 bits). - u16 moves[4]; //< The Pokemon's known moves. - u16 cbSeal; //< Ball seal applied to the Pokemon. + u16 dv; + u16 level; + u16 species; + u16 moves[LEARNED_MOVES_MAX]; + u16 cbSeal; } TrainerMonWithMoves; -/** - * @brief Trainer Pokemon that has a specific held item. - */ typedef struct TrainerMonWithItem { - u16 dv; //< Difficulty value; determines how many IVs the Pokemon will have in each stat. - u16 level; //< The Pokemon's level. - u16 species; //< Composite mask of the Pokemon's level (least-significant 10 bits) and form (most-significant 6 bits). - u16 item; //< The Pokemon's held item. - u16 cbSeal; //< Ball seal applied to the Pokemon. + u16 dv; + u16 level; + u16 species; + u16 item; + u16 cbSeal; } TrainerMonWithItem; -/** - * @brief Trainer Pokemon that has a specific held item and knows a certain set of moves. - */ typedef struct TrainerMonWithMovesAndItem { - u16 dv; //< Difficulty value; determines how many IVs the Pokemon will have in each stat. - u16 level; //< The Pokemon's level. - u16 species; //< Composite mask of the Pokemon's level (least-significant 10 bits) and form (most-significant 6 bits). - u16 item; //< The Pokemon's held item. - u16 moves[4]; //< The Pokemon's known moves. - u16 cbSeal; //< Ball seal applied to the Pokemon. + u16 dv; + u16 level; + u16 species; + u16 item; + u16 moves[LEARNED_MOVES_MAX]; + u16 cbSeal; } TrainerMonWithMovesAndItem; #endif // POKEPLATINUM_STRUCT_TRAINER_DATA_H diff --git a/include/trainer_data.h b/include/trainer_data.h index 4e4a38813d..81dafbbc01 100644 --- a/include/trainer_data.h +++ b/include/trainer_data.h @@ -3,7 +3,7 @@ #include "constants/trainer.h" -#include "struct_defs/trainer_data.h" +#include "struct_defs/trainer.h" #include "field_battle_data_transfer.h" #include "savedata.h" @@ -78,7 +78,7 @@ void Trainer_Load(int trainerID, Trainer *trdata); * * The struct pointer passed to this function will determine exactly how much * data is loaded; see the definitions of the various TrainerMon... structs in - * struct_defs/trainer_data.h for exact specifications. + * struct_defs/trainer.h for exact specifications. * * @param trainerID ID of the trainer whose party is to be loaded. * @param[out] trparty Struct which will contain the loaded trainer party data. diff --git a/res/field/scripts/scripts_battleground.s b/res/field/scripts/scripts_battleground.s index 87fc8e1ac6..80fa744a7a 100644 --- a/res/field/scripts/scripts_battleground.s +++ b/res/field/scripts/scripts_battleground.s @@ -397,55 +397,55 @@ _0605: Return _06B0: - SetVar 0x4005, trainer_leader_roark_rematch + SetVar 0x4005, TRAINER_LEADER_ROARK_REMATCH Return _06B8: - SetVar 0x4005, trainer_leader_gardenia_rematch + SetVar 0x4005, TRAINER_LEADER_GARDENIA_REMATCH Return _06C0: - SetVar 0x4005, trainer_leader_wake_rematch + SetVar 0x4005, TRAINER_LEADER_WAKE_REMATCH Return _06C8: - SetVar 0x4005, trainer_leader_maylene_rematch + SetVar 0x4005, TRAINER_LEADER_MAYLENE_REMATCH Return _06D0: - SetVar 0x4005, trainer_leader_fantina_rematch + SetVar 0x4005, TRAINER_LEADER_FANTINA_REMATCH Return _06D8: - SetVar 0x4005, trainer_leader_candice_rematch + SetVar 0x4005, TRAINER_LEADER_CANDICE_REMATCH Return _06E0: - SetVar 0x4005, trainer_leader_byron_rematch + SetVar 0x4005, TRAINER_LEADER_BYRON_REMATCH Return _06E8: - SetVar 0x4005, trainer_leader_volkner_rematch + SetVar 0x4005, TRAINER_LEADER_VOLKNER_REMATCH Return _06F0: - SetVar 0x4005, trainer_cheryl_battleground + SetVar 0x4005, TRAINER_CHERYL_BATTLEGROUND Return _06F8: - SetVar 0x4005, trainer_riley_battleground + SetVar 0x4005, TRAINER_RILEY_BATTLEGROUND Return _0700: - SetVar 0x4005, trainer_marley_battleground + SetVar 0x4005, TRAINER_MARLEY_BATTLEGROUND Return _0708: - SetVar 0x4005, trainer_buck_battleground + SetVar 0x4005, TRAINER_BUCK_BATTLEGROUND Return _0710: - SetVar 0x4005, trainer_mira_battleground + SetVar 0x4005, TRAINER_MIRA_BATTLEGROUND Return _0718: diff --git a/res/field/scripts/scripts_canalave_city.s b/res/field/scripts/scripts_canalave_city.s index f9506e5e46..a009652e98 100644 --- a/res/field/scripts/scripts_canalave_city.s +++ b/res/field/scripts/scripts_canalave_city.s @@ -162,15 +162,15 @@ _028A: GoTo _02DF _02DF: - StartTrainerBattle trainer_rival_canalave_city_piplup + StartTrainerBattle TRAINER_RIVAL_CANALAVE_CITY_PIPLUP GoTo _0303 _02EB: - StartTrainerBattle trainer_rival_canalave_city_turtwig + StartTrainerBattle TRAINER_RIVAL_CANALAVE_CITY_TURTWIG GoTo _0303 _02F7: - StartTrainerBattle trainer_rival_canalave_city_chimchar + StartTrainerBattle TRAINER_RIVAL_CANALAVE_CITY_CHIMCHAR GoTo _0303 _0303: diff --git a/res/field/scripts/scripts_canalave_city_gym.s b/res/field/scripts/scripts_canalave_city_gym.s index b7de5b1505..2c1abd3169 100644 --- a/res/field/scripts/scripts_canalave_city_gym.s +++ b/res/field/scripts/scripts_canalave_city_gym.s @@ -22,7 +22,7 @@ _0016: CreateJournalEvent LOCATION_EVENT_GYM_WAS_TOO_TOUGH, 35, 0, 0, 0 Message 0 CloseMessage - StartTrainerBattle trainer_leader_byron + StartTrainerBattle TRAINER_LEADER_BYRON CheckWonBattle 0x800C GoToIfEq 0x800C, 0, _0120 Message 1 @@ -32,14 +32,14 @@ _0016: WaitSound GiveBadge BADGE_ID_MINE ScrCmd_260 23 - SetTrainerFlag trainer_black_belt_david - SetTrainerFlag trainer_worker_jackson - SetTrainerFlag trainer_worker_gary - SetTrainerFlag trainer_ace_trainer_cesar - SetTrainerFlag trainer_ace_trainer_breanna - SetTrainerFlag trainer_black_belt_ricky - SetTrainerFlag trainer_worker_gerardo - CreateJournalEvent LOCATION_EVENT_BEAT_GYM_LEADER, 35, trainer_leader_byron, 0, 0 + SetTrainerFlag TRAINER_BLACK_BELT_DAVID + SetTrainerFlag TRAINER_WORKER_JACKSON + SetTrainerFlag TRAINER_WORKER_GARY + SetTrainerFlag TRAINER_ACE_TRAINER_CESAR + SetTrainerFlag TRAINER_ACE_TRAINER_BREANNA + SetTrainerFlag TRAINER_BLACK_BELT_RICKY + SetTrainerFlag TRAINER_WORKER_GERARDO + CreateJournalEvent LOCATION_EVENT_BEAT_GYM_LEADER, 35, TRAINER_LEADER_BYRON, 0, 0 ClearFlag 0x1B2 ClearFlag 0x2CC ClearFlag 0x1B8 diff --git a/res/field/scripts/scripts_celestic_town.s b/res/field/scripts/scripts_celestic_town.s index 5b2b396671..300bad10e0 100644 --- a/res/field/scripts/scripts_celestic_town.s +++ b/res/field/scripts/scripts_celestic_town.s @@ -41,7 +41,7 @@ _0063: _006E: Message 2 CloseMessage - StartTrainerBattle trainer_galactic_grunt_celestic_town + StartTrainerBattle TRAINER_GALACTIC_GRUNT_CELESTIC_TOWN CheckWonBattle 0x800C GoToIfEq 0x800C, 0, _0191 Message 4 diff --git a/res/field/scripts/scripts_celestic_town_cave.s b/res/field/scripts/scripts_celestic_town_cave.s index 346c3d1783..da3dd03cee 100644 --- a/res/field/scripts/scripts_celestic_town_cave.s +++ b/res/field/scripts/scripts_celestic_town_cave.s @@ -102,7 +102,7 @@ _0181: _019D: Message 8 CloseMessage - StartTrainerBattle trainer_galactic_boss_cyrus_celestic_town_ruins + StartTrainerBattle TRAINER_GALACTIC_BOSS_CYRUS_CELESTIC_TOWN_RUINS CheckWonBattle 0x800C GoToIfEq 0x800C, 0, _0393 Call _01C3 @@ -467,7 +467,7 @@ _0538: GoToIfEq 0x800C, 1, _057A Message 8 CloseMessage - StartTrainerBattle trainer_galactic_boss_cyrus_celestic_town_ruins + StartTrainerBattle TRAINER_GALACTIC_BOSS_CYRUS_CELESTIC_TOWN_RUINS CheckWonBattle 0x800C GoToIfEq 0x800C, 0, _0393 Call _01C3 diff --git a/res/field/scripts/scripts_distortion_world_b7f.s b/res/field/scripts/scripts_distortion_world_b7f.s index 23a2bdab22..492ee93986 100644 --- a/res/field/scripts/scripts_distortion_world_b7f.s +++ b/res/field/scripts/scripts_distortion_world_b7f.s @@ -55,7 +55,7 @@ _0096: FacePlayer Message 5 CloseMessage - StartTrainerBattle trainer_galactic_boss_cyrus_distortion_world + StartTrainerBattle TRAINER_GALACTIC_BOSS_CYRUS_DISTORTION_WORLD CheckWonBattle 0x800C GoToIfEq 0x800C, 0, _01CE SetVar 0x4055, 10 diff --git a/res/field/scripts/scripts_eterna_city_gym.s b/res/field/scripts/scripts_eterna_city_gym.s index d2437c3fc4..b77434e4e2 100644 --- a/res/field/scripts/scripts_eterna_city_gym.s +++ b/res/field/scripts/scripts_eterna_city_gym.s @@ -68,7 +68,7 @@ _0094: CreateJournalEvent LOCATION_EVENT_GYM_WAS_TOO_TOUGH, 67, 0, 0, 0 Message 0 CloseMessage - StartTrainerBattle trainer_leader_gardenia + StartTrainerBattle TRAINER_LEADER_GARDENIA CheckWonBattle 0x800C GoToIfEq 0x800C, 0, _01C3 Message 1 @@ -78,12 +78,12 @@ _0094: WaitSound GiveBadge BADGE_ID_FOREST ScrCmd_260 23 - SetTrainerFlag trainer_aroma_lady_jenna - SetTrainerFlag trainer_aroma_lady_angela - SetTrainerFlag trainer_lass_caroline - SetTrainerFlag trainer_beauty_lindsay + SetTrainerFlag TRAINER_AROMA_LADY_JENNA + SetTrainerFlag TRAINER_AROMA_LADY_ANGELA + SetTrainerFlag TRAINER_LASS_CAROLINE + SetTrainerFlag TRAINER_BEAUTY_LINDSAY ClearFlag 0x1FC - CreateJournalEvent LOCATION_EVENT_BEAT_GYM_LEADER, 67, trainer_leader_gardenia, 0, 0 + CreateJournalEvent LOCATION_EVENT_BEAT_GYM_LEADER, 67, TRAINER_LEADER_GARDENIA, 0, 0 Message 3 GoTo _0177 End @@ -150,10 +150,10 @@ _01C9: LockAll FacePlayer GoToIfGe 0x40AE, 1, _0211 - ScrCmd_0EA trainer_lass_caroline + ScrCmd_0EA TRAINER_LASS_CAROLINE Message 6 CloseMessage - StartTrainerBattle trainer_lass_caroline + StartTrainerBattle TRAINER_LASS_CAROLINE CheckWonBattle 0x800C GoToIfEq 0x800C, 0, _01C3 Message 7 @@ -176,12 +176,12 @@ _021C: LockAll FacePlayer GoToIfGe 0x40AE, 2, _0270 - ScrCmd_0EA trainer_aroma_lady_jenna + ScrCmd_0EA TRAINER_AROMA_LADY_JENNA SetVar 0x8007, 3 Call _02DA Message 8 CloseMessage - StartTrainerBattle trainer_aroma_lady_jenna + StartTrainerBattle TRAINER_AROMA_LADY_JENNA CheckWonBattle 0x800C GoToIfEq 0x800C, 0, _01C3 Message 9 @@ -204,12 +204,12 @@ _027B: LockAll FacePlayer GoToIfGe 0x40AE, 3, _02CF - ScrCmd_0EA trainer_aroma_lady_angela + ScrCmd_0EA TRAINER_AROMA_LADY_ANGELA SetVar 0x8007, 4 Call _02DA Message 10 CloseMessage - StartTrainerBattle trainer_aroma_lady_angela + StartTrainerBattle TRAINER_AROMA_LADY_ANGELA CheckWonBattle 0x800C GoToIfEq 0x800C, 0, _01C3 Message 11 diff --git a/res/field/scripts/scripts_floaroma_meadow.s b/res/field/scripts/scripts_floaroma_meadow.s index 70b1e6cb75..b0b1780dc7 100644 --- a/res/field/scripts/scripts_floaroma_meadow.s +++ b/res/field/scripts/scripts_floaroma_meadow.s @@ -19,11 +19,11 @@ _001E: _0024: LockAll Call _00CC - StartTrainerBattle trainer_galactic_grunt_floaroma_meadow_1 + StartTrainerBattle TRAINER_GALACTIC_GRUNT_FLOAROMA_MEADOW_1 CheckWonBattle 0x800C GoToIfEq 0x800C, 0, _006E Call _00EE - StartTrainerBattle trainer_galactic_grunt_floaroma_meadow_2 + StartTrainerBattle TRAINER_GALACTIC_GRUNT_FLOAROMA_MEADOW_2 CheckWonBattle 0x800C GoToIfEq 0x800C, 0, _006E Call _010E diff --git a/res/field/scripts/scripts_galactic_hq_4f.s b/res/field/scripts/scripts_galactic_hq_4f.s index 890f509687..9cada72f17 100644 --- a/res/field/scripts/scripts_galactic_hq_4f.s +++ b/res/field/scripts/scripts_galactic_hq_4f.s @@ -35,7 +35,7 @@ _0064: GoTo _0074 _0074: - StartTrainerBattle trainer_galactic_boss_cyrus_galactic_hq + StartTrainerBattle TRAINER_GALACTIC_BOSS_CYRUS_GALACTIC_HQ CheckWonBattle 0x800C GoToIfEq 0x800C, 0, _00E1 Message 2 diff --git a/res/field/scripts/scripts_galactic_hq_control_room.s b/res/field/scripts/scripts_galactic_hq_control_room.s index ccc7b97898..6f18fe2b86 100644 --- a/res/field/scripts/scripts_galactic_hq_control_room.s +++ b/res/field/scripts/scripts_galactic_hq_control_room.s @@ -40,7 +40,7 @@ _0059: GoToIfSet 173, _0114 Message 0 CloseMessage - StartTrainerBattle trainer_commander_saturn_galactic_hq + StartTrainerBattle TRAINER_COMMANDER_SATURN_GALACTIC_HQ CheckWonBattle 0x800C GoToIfEq 0x800C, 0, _011F SetFlag 173 diff --git a/res/field/scripts/scripts_hearthome_city_dp_gym_leader_room.s b/res/field/scripts/scripts_hearthome_city_dp_gym_leader_room.s index 03f62f9ba2..307fc18c99 100644 --- a/res/field/scripts/scripts_hearthome_city_dp_gym_leader_room.s +++ b/res/field/scripts/scripts_hearthome_city_dp_gym_leader_room.s @@ -46,7 +46,7 @@ _0096: CreateJournalEvent LOCATION_EVENT_GYM_WAS_TOO_TOUGH, 100, 0, 0, 0 Message 0 CloseMessage - StartTrainerBattle trainer_leader_fantina + StartTrainerBattle TRAINER_LEADER_FANTINA CheckWonBattle 0x800C GoToIfEq 0x800C, 0, _01DC Message 1 @@ -56,15 +56,15 @@ _0096: WaitSound GiveBadge BADGE_ID_RELIC ScrCmd_260 23 - SetTrainerFlag trainer_camper_drew - SetTrainerFlag trainer_ace_trainer_allen - SetTrainerFlag trainer_ace_trainer_catherine - SetTrainerFlag trainer_lass_molly - SetTrainerFlag trainer_picnicker_cheyenne - SetTrainerFlag trainer_school_kid_chance - SetTrainerFlag trainer_school_kid_mackenzie - SetTrainerFlag trainer_youngster_donny - CreateJournalEvent LOCATION_EVENT_BEAT_GYM_LEADER, 100, trainer_leader_fantina, 0, 0 + SetTrainerFlag TRAINER_CAMPER_DREW + SetTrainerFlag TRAINER_ACE_TRAINER_ALLEN + SetTrainerFlag TRAINER_ACE_TRAINER_CATHERINE + SetTrainerFlag TRAINER_LASS_MOLLY + SetTrainerFlag TRAINER_PICNICKER_CHEYENNE + SetTrainerFlag TRAINER_SCHOOL_KID_CHANCE + SetTrainerFlag TRAINER_SCHOOL_KID_MACKENZIE + SetTrainerFlag TRAINER_YOUNGSTER_DONNY + CreateJournalEvent LOCATION_EVENT_BEAT_GYM_LEADER, 100, TRAINER_LEADER_FANTINA, 0, 0 SetVar 0x407B, 1 SetFlag 0x206 ClearFlag 0x207 diff --git a/res/field/scripts/scripts_hearthome_city_gym_leader_room.s b/res/field/scripts/scripts_hearthome_city_gym_leader_room.s index 2c97af31ef..a849faa6d9 100644 --- a/res/field/scripts/scripts_hearthome_city_gym_leader_room.s +++ b/res/field/scripts/scripts_hearthome_city_gym_leader_room.s @@ -60,7 +60,7 @@ _00BB: Message 0 CloseMessage SetFlag 142 - StartTrainerBattle trainer_leader_fantina + StartTrainerBattle TRAINER_LEADER_FANTINA ClearFlag 142 CheckWonBattle 0x800C GoToIfEq 0x800C, 0, _0248 @@ -71,15 +71,15 @@ _00BB: WaitSound GiveBadge BADGE_ID_RELIC ScrCmd_260 23 - SetTrainerFlag trainer_camper_drew - SetTrainerFlag trainer_ace_trainer_allen - SetTrainerFlag trainer_ace_trainer_catherine - SetTrainerFlag trainer_lass_molly - SetTrainerFlag trainer_picnicker_cheyenne - SetTrainerFlag trainer_school_kid_chance - SetTrainerFlag trainer_school_kid_mackenzie - SetTrainerFlag trainer_youngster_donny - CreateJournalEvent LOCATION_EVENT_BEAT_GYM_LEADER, 91, trainer_leader_fantina, 0, 0 + SetTrainerFlag TRAINER_CAMPER_DREW + SetTrainerFlag TRAINER_ACE_TRAINER_ALLEN + SetTrainerFlag TRAINER_ACE_TRAINER_CATHERINE + SetTrainerFlag TRAINER_LASS_MOLLY + SetTrainerFlag TRAINER_PICNICKER_CHEYENNE + SetTrainerFlag TRAINER_SCHOOL_KID_CHANCE + SetTrainerFlag TRAINER_SCHOOL_KID_MACKENZIE + SetTrainerFlag TRAINER_YOUNGSTER_DONNY + CreateJournalEvent LOCATION_EVENT_BEAT_GYM_LEADER, 91, TRAINER_LEADER_FANTINA, 0, 0 SetVar 0x407B, 1 SetFlag 0x206 ClearFlag 0x207 diff --git a/res/field/scripts/scripts_iron_island_b2f_left_room.s b/res/field/scripts/scripts_iron_island_b2f_left_room.s index e1016d3360..95dd6b0863 100644 --- a/res/field/scripts/scripts_iron_island_b2f_left_room.s +++ b/res/field/scripts/scripts_iron_island_b2f_left_room.s @@ -173,7 +173,7 @@ _01AA: Message 8 CloseMessage SetHasPartner - StartTrainerBattle trainer_galactic_grunt_iron_island_1, trainer_galactic_grunt_iron_island_2 + StartTrainerBattle TRAINER_GALACTIC_GRUNT_IRON_ISLAND_1, TRAINER_GALACTIC_GRUNT_IRON_ISLAND_2 ClearHasPartner CheckWonBattle 0x800C GoToIfEq 0x800C, 0, _037D diff --git a/res/field/scripts/scripts_lake_verity.s b/res/field/scripts/scripts_lake_verity.s index 62c2e99338..cf4a75227c 100644 --- a/res/field/scripts/scripts_lake_verity.s +++ b/res/field/scripts/scripts_lake_verity.s @@ -195,7 +195,7 @@ _0230: WaitMovement Message 9 CloseMessage - StartTrainerBattle trainer_commander_mars_lake_verity + StartTrainerBattle TRAINER_COMMANDER_MARS_LAKE_VERITY CheckWonBattle 0x800C GoToIfEq 0x800C, 0, _02DB Message 10 diff --git a/res/field/scripts/scripts_oreburgh_city_gym.s b/res/field/scripts/scripts_oreburgh_city_gym.s index eeadaeacf2..30695f0660 100644 --- a/res/field/scripts/scripts_oreburgh_city_gym.s +++ b/res/field/scripts/scripts_oreburgh_city_gym.s @@ -17,7 +17,7 @@ _000E: CreateJournalEvent LOCATION_EVENT_GYM_WAS_TOO_TOUGH, 47, 0, 0, 0 Message 0 CloseMessage - StartTrainerBattle trainer_leader_roark + StartTrainerBattle TRAINER_LEADER_ROARK CheckWonBattle 0x800C GoToIfEq 0x800C, 0, _0119 Message 1 @@ -25,17 +25,17 @@ _000E: Message 2 PlaySound SEQ_BADGE WaitSound - SetTrainerFlag trainer_youngster_jonathon - SetTrainerFlag trainer_youngster_darius + SetTrainerFlag TRAINER_YOUNGSTER_JONATHON + SetTrainerFlag TRAINER_YOUNGSTER_DARIUS GiveBadge BADGE_ID_COAL ScrCmd_260 23 - SetTrainerFlag trainer_youngster_jonathon - SetTrainerFlag trainer_youngster_darius + SetTrainerFlag TRAINER_YOUNGSTER_JONATHON + SetTrainerFlag TRAINER_YOUNGSTER_DARIUS SetFlag 0x23F SetVar 0x40F0, 1 SetVar 0x4076, 1 SetVar 0x4079, 2 - CreateJournalEvent LOCATION_EVENT_BEAT_GYM_LEADER, 47, trainer_leader_roark, 0, 0 + CreateJournalEvent LOCATION_EVENT_BEAT_GYM_LEADER, 47, TRAINER_LEADER_ROARK, 0, 0 SetVar 0x4077, 3 ClearFlag 0x17A ClearFlag 0x19D diff --git a/res/field/scripts/scripts_pastoria_city.s b/res/field/scripts/scripts_pastoria_city.s index 202023d4ff..d5506cf829 100644 --- a/res/field/scripts/scripts_pastoria_city.s +++ b/res/field/scripts/scripts_pastoria_city.s @@ -582,15 +582,15 @@ _04C8: GoTo _053F _053F: - StartTrainerBattle trainer_rival_pastoria_city_piplup + StartTrainerBattle TRAINER_RIVAL_PASTORIA_CITY_PIPLUP GoTo _0563 _054B: - StartTrainerBattle trainer_rival_pastoria_city_turtwig + StartTrainerBattle TRAINER_RIVAL_PASTORIA_CITY_TURTWIG GoTo _0563 _0557: - StartTrainerBattle trainer_rival_pastoria_city_chimchar + StartTrainerBattle TRAINER_RIVAL_PASTORIA_CITY_CHIMCHAR GoTo _0563 _0563: diff --git a/res/field/scripts/scripts_pastoria_city_gym.s b/res/field/scripts/scripts_pastoria_city_gym.s index 1d9ada5d62..d3282905a7 100644 --- a/res/field/scripts/scripts_pastoria_city_gym.s +++ b/res/field/scripts/scripts_pastoria_city_gym.s @@ -49,7 +49,7 @@ _0076: CreateJournalEvent LOCATION_EVENT_GYM_WAS_TOO_TOUGH, 122, 0, 0, 0 Message 0 CloseMessage - StartTrainerBattle trainer_leader_wake + StartTrainerBattle TRAINER_LEADER_WAKE CheckWonBattle 0x800C GoToIfEq 0x800C, 0, _016B Message 1 @@ -59,16 +59,16 @@ _0076: WaitSound GiveBadge BADGE_ID_FEN ScrCmd_260 23 - SetTrainerFlag trainer_fisherman_erick - SetTrainerFlag trainer_sailor_damian - SetTrainerFlag trainer_fisherman_walter - SetTrainerFlag trainer_sailor_samson - SetTrainerFlag trainer_tuber_jacky - SetTrainerFlag trainer_tuber_caitlyn + SetTrainerFlag TRAINER_FISHERMAN_ERICK + SetTrainerFlag TRAINER_SAILOR_DAMIAN + SetTrainerFlag TRAINER_FISHERMAN_WALTER + SetTrainerFlag TRAINER_SAILOR_SAMSON + SetTrainerFlag TRAINER_TUBER_JACKY + SetTrainerFlag TRAINER_TUBER_CAITLYN SetVar 0x407C, 3 SetFlag 0x20C SetFlag 0x156 - CreateJournalEvent LOCATION_EVENT_BEAT_GYM_LEADER, 122, trainer_leader_wake, 0, 0 + CreateJournalEvent LOCATION_EVENT_BEAT_GYM_LEADER, 122, TRAINER_LEADER_WAKE, 0, 0 Message 3 GoTo _010D End diff --git a/res/field/scripts/scripts_pokemon_league_aaron_room.s b/res/field/scripts/scripts_pokemon_league_aaron_room.s index 7511272353..d4308c8aaf 100644 --- a/res/field/scripts/scripts_pokemon_league_aaron_room.s +++ b/res/field/scripts/scripts_pokemon_league_aaron_room.s @@ -12,7 +12,7 @@ _000A: LockAll FacePlayer GoToIfSet 176, _00AC - ScrCmd_0EA trainer_elite_four_aaron + ScrCmd_0EA TRAINER_ELITE_FOUR_AARON Message 0 CloseMessage CallIfUnset 214, _007A @@ -31,19 +31,19 @@ _000A: End _007A: - StartTrainerBattle trainer_elite_four_aaron + StartTrainerBattle TRAINER_ELITE_FOUR_AARON Return _0082: - StartTrainerBattle trainer_elite_four_aaron_rematch + StartTrainerBattle TRAINER_ELITE_FOUR_AARON_REMATCH Return _008A: - CreateJournalEvent LOCATION_EVENT_BEAT_ELITE_FOUR_MEMBER, trainer_elite_four_aaron, 0, 0, 0 + CreateJournalEvent LOCATION_EVENT_BEAT_ELITE_FOUR_MEMBER, TRAINER_ELITE_FOUR_AARON, 0, 0, 0 Return _0098: - CreateJournalEvent LOCATION_EVENT_BEAT_ELITE_FOUR_MEMBER, trainer_elite_four_aaron_rematch, 0, 0, 0 + CreateJournalEvent LOCATION_EVENT_BEAT_ELITE_FOUR_MEMBER, TRAINER_ELITE_FOUR_AARON_REMATCH, 0, 0, 0 Return _00A6: diff --git a/res/field/scripts/scripts_pokemon_league_bertha_room.s b/res/field/scripts/scripts_pokemon_league_bertha_room.s index 06fbfa5ff7..a56c8e8ce2 100644 --- a/res/field/scripts/scripts_pokemon_league_bertha_room.s +++ b/res/field/scripts/scripts_pokemon_league_bertha_room.s @@ -12,7 +12,7 @@ _000A: LockAll FacePlayer GoToIfSet 177, _00AC - ScrCmd_0EA trainer_elite_four_bertha + ScrCmd_0EA TRAINER_ELITE_FOUR_BERTHA Message 0 CloseMessage CallIfUnset 214, _007A @@ -31,19 +31,19 @@ _000A: End _007A: - StartTrainerBattle trainer_elite_four_bertha + StartTrainerBattle TRAINER_ELITE_FOUR_BERTHA Return _0082: - StartTrainerBattle trainer_elite_four_bertha_rematch + StartTrainerBattle TRAINER_ELITE_FOUR_BERTHA_REMATCH Return _008A: - CreateJournalEvent LOCATION_EVENT_BEAT_ELITE_FOUR_MEMBER, trainer_elite_four_bertha, 0, 0, 0 + CreateJournalEvent LOCATION_EVENT_BEAT_ELITE_FOUR_MEMBER, TRAINER_ELITE_FOUR_BERTHA, 0, 0, 0 Return _0098: - CreateJournalEvent LOCATION_EVENT_BEAT_ELITE_FOUR_MEMBER, trainer_elite_four_bertha_rematch, 0, 0, 0 + CreateJournalEvent LOCATION_EVENT_BEAT_ELITE_FOUR_MEMBER, TRAINER_ELITE_FOUR_BERTHA_REMATCH, 0, 0, 0 Return _00A6: diff --git a/res/field/scripts/scripts_pokemon_league_champion_room.s b/res/field/scripts/scripts_pokemon_league_champion_room.s index 06182cf170..196f1e1835 100644 --- a/res/field/scripts/scripts_pokemon_league_champion_room.s +++ b/res/field/scripts/scripts_pokemon_league_champion_room.s @@ -14,7 +14,7 @@ _000A: _000E: ApplyMovement 0xFF, _012C WaitMovement - ScrCmd_0EA trainer_champion_cynthia + ScrCmd_0EA TRAINER_CHAMPION_CYNTHIA CallIfUnset 0x964, _00EB CallIfSet 0x964, _00F0 CloseMessage @@ -60,19 +60,19 @@ _00F0: Return _00F5: - StartTrainerBattle trainer_champion_cynthia + StartTrainerBattle TRAINER_CHAMPION_CYNTHIA Return _00FD: - StartTrainerBattle trainer_champion_cynthia_rematch + StartTrainerBattle TRAINER_CHAMPION_CYNTHIA_REMATCH Return _0105: - CreateJournalEvent LOCATION_EVENT_BEAT_CHAMPION, trainer_champion_cynthia, 0, 0, 0 + CreateJournalEvent LOCATION_EVENT_BEAT_CHAMPION, TRAINER_CHAMPION_CYNTHIA, 0, 0, 0 Return _0113: - CreateJournalEvent LOCATION_EVENT_BEAT_CHAMPION, trainer_champion_cynthia_rematch, 0, 0, 0 + CreateJournalEvent LOCATION_EVENT_BEAT_CHAMPION, TRAINER_CHAMPION_CYNTHIA_REMATCH, 0, 0, 0 Return _0121: diff --git a/res/field/scripts/scripts_pokemon_league_flint_room.s b/res/field/scripts/scripts_pokemon_league_flint_room.s index fa90d663fe..8b62446567 100644 --- a/res/field/scripts/scripts_pokemon_league_flint_room.s +++ b/res/field/scripts/scripts_pokemon_league_flint_room.s @@ -12,7 +12,7 @@ _000A: LockAll FacePlayer GoToIfSet 178, _00D2 - ScrCmd_0EA trainer_elite_four_flint + ScrCmd_0EA TRAINER_ELITE_FOUR_FLINT CallIfUnset 0x964, _00F0 CallIfSet 0x964, _0104 CloseMessage @@ -33,19 +33,19 @@ _000A: End _00A0: - StartTrainerBattle trainer_elite_four_flint + StartTrainerBattle TRAINER_ELITE_FOUR_FLINT Return _00A8: - StartTrainerBattle trainer_elite_four_flint_rematch + StartTrainerBattle TRAINER_ELITE_FOUR_FLINT_REMATCH Return _00B0: - CreateJournalEvent LOCATION_EVENT_BEAT_ELITE_FOUR_MEMBER, trainer_elite_four_flint, 0, 0, 0 + CreateJournalEvent LOCATION_EVENT_BEAT_ELITE_FOUR_MEMBER, TRAINER_ELITE_FOUR_FLINT, 0, 0, 0 Return _00BE: - CreateJournalEvent LOCATION_EVENT_BEAT_ELITE_FOUR_MEMBER, trainer_elite_four_flint_rematch, 0, 0, 0 + CreateJournalEvent LOCATION_EVENT_BEAT_ELITE_FOUR_MEMBER, TRAINER_ELITE_FOUR_FLINT_REMATCH, 0, 0, 0 Return _00CC: diff --git a/res/field/scripts/scripts_pokemon_league_lucian_room.s b/res/field/scripts/scripts_pokemon_league_lucian_room.s index 4aea6eb929..80af90653f 100644 --- a/res/field/scripts/scripts_pokemon_league_lucian_room.s +++ b/res/field/scripts/scripts_pokemon_league_lucian_room.s @@ -31,19 +31,19 @@ _000A: End _007A: - StartTrainerBattle trainer_elite_four_lucian + StartTrainerBattle TRAINER_ELITE_FOUR_LUCIAN Return _0082: - StartTrainerBattle trainer_elite_four_lucian_rematch + StartTrainerBattle TRAINER_ELITE_FOUR_LUCIAN_REMATCH Return _008A: - CreateJournalEvent LOCATION_EVENT_BEAT_ELITE_FOUR_MEMBER, trainer_elite_four_lucian, 0, 0, 0 + CreateJournalEvent LOCATION_EVENT_BEAT_ELITE_FOUR_MEMBER, TRAINER_ELITE_FOUR_LUCIAN, 0, 0, 0 Return _0098: - CreateJournalEvent LOCATION_EVENT_BEAT_ELITE_FOUR_MEMBER, trainer_elite_four_lucian_rematch, 0, 0, 0 + CreateJournalEvent LOCATION_EVENT_BEAT_ELITE_FOUR_MEMBER, TRAINER_ELITE_FOUR_LUCIAN_REMATCH, 0, 0, 0 Return _00A6: diff --git a/res/field/scripts/scripts_pokemon_league_north_pokecenter_1f.s b/res/field/scripts/scripts_pokemon_league_north_pokecenter_1f.s index 0df0bb27fc..6ded2db8b3 100644 --- a/res/field/scripts/scripts_pokemon_league_north_pokecenter_1f.s +++ b/res/field/scripts/scripts_pokemon_league_north_pokecenter_1f.s @@ -155,15 +155,15 @@ _01C1: GoTo _01F7 _01F7: - StartTrainerBattle trainer_rival_pokemon_league_piplup + StartTrainerBattle TRAINER_RIVAL_POKEMON_LEAGUE_PIPLUP GoTo _021B _0203: - StartTrainerBattle trainer_rival_pokemon_league_turtwig + StartTrainerBattle TRAINER_RIVAL_POKEMON_LEAGUE_TURTWIG GoTo _021B _020F: - StartTrainerBattle trainer_rival_pokemon_league_chimchar + StartTrainerBattle TRAINER_RIVAL_POKEMON_LEAGUE_CHIMCHAR GoTo _021B _021B: diff --git a/res/field/scripts/scripts_pokemon_mansion.s b/res/field/scripts/scripts_pokemon_mansion.s index 4cf0eb3dcd..16fb325e63 100644 --- a/res/field/scripts/scripts_pokemon_mansion.s +++ b/res/field/scripts/scripts_pokemon_mansion.s @@ -22,8 +22,8 @@ _0033: ScrCmd_1B7 0x404C, 5 AddVar 0x404C, 5 SetFlag 0xAB6 - ClearTrainerFlag trainer_rich_boy_liam - ClearTrainerFlag trainer_lady_celeste + ClearTrainerFlag TRAINER_RICH_BOY_LIAM + ClearTrainerFlag TRAINER_LADY_CELESTE End _004D: @@ -82,8 +82,8 @@ _00FF: SetFlag 0x166 ScrCmd_03E 0x800C GoToIfEq 0x800C, 1, _0471 - SetTrainerFlag trainer_rich_boy_liam - SetTrainerFlag trainer_lady_celeste + SetTrainerFlag TRAINER_RICH_BOY_LIAM + SetTrainerFlag TRAINER_LADY_CELESTE Message 5 CloseMessage ApplyMovement 2, _03FC @@ -96,7 +96,7 @@ _00FF: WaitMovement Message 15 CloseMessage - StartTrainerBattle trainer_maid_belinda + StartTrainerBattle TRAINER_MAID_BELINDA CheckWonBattle 0x800C GoToIfEq 0x800C, 0, _0484 AddVar 0x8005, 0x404D @@ -108,7 +108,7 @@ _00FF: WaitMovement Message 17 CloseMessage - StartTrainerBattle trainer_maid_sophie + StartTrainerBattle TRAINER_MAID_SOPHIE CheckWonBattle 0x800C GoToIfEq 0x800C, 0, _0484 AddVar 0x8005, 0x404D @@ -120,7 +120,7 @@ _00FF: WaitMovement Message 19 CloseMessage - StartTrainerBattle trainer_maid_emily + StartTrainerBattle TRAINER_MAID_EMILY CheckWonBattle 0x800C GoToIfEq 0x800C, 0, _0484 AddVar 0x8005, 0x404D @@ -132,7 +132,7 @@ _00FF: WaitMovement Message 21 CloseMessage - StartTrainerBattle trainer_maid_elena + StartTrainerBattle TRAINER_MAID_ELENA CheckWonBattle 0x800C GoToIfEq 0x800C, 0, _0484 AddVar 0x8005, 0x404D @@ -152,7 +152,7 @@ _00FF: WaitMovement Message 23 CloseMessage - StartTrainerBattle trainer_maid_clare + StartTrainerBattle TRAINER_MAID_CLARE CheckWonBattle 0x800C GoToIfEq 0x800C, 0, _0484 AddVar 0x8005, 0x404D @@ -183,8 +183,8 @@ _00FF: StartTrainerBattle 0x8007 CheckWonBattle 0x800C GoToIfEq 0x800C, 0, _0484 - SetTrainerFlag trainer_rich_boy_liam - SetTrainerFlag trainer_lady_celeste + SetTrainerFlag TRAINER_RICH_BOY_LIAM + SetTrainerFlag TRAINER_LADY_CELESTE CallIfEq 0x8006, 0, _03D7 CallIfEq 0x8006, 1, _03DC CloseMessage @@ -204,14 +204,14 @@ _0396: End _03A1: - SetVar 0x8007, trainer_rich_boy_liam + SetVar 0x8007, TRAINER_RICH_BOY_LIAM SetVar 0x4020, 62 ScrCmd_2F3 2, 0x8007 Message 8 Return _03B7: - SetVar 0x8007, trainer_lady_celeste + SetVar 0x8007, TRAINER_LADY_CELESTE SetVar 0x4020, 63 ScrCmd_2F3 2, 0x8007 Message 9 diff --git a/res/field/scripts/scripts_restaurant.s b/res/field/scripts/scripts_restaurant.s index 1bbe1a3dd6..630c176e3c 100644 --- a/res/field/scripts/scripts_restaurant.s +++ b/res/field/scripts/scripts_restaurant.s @@ -58,24 +58,24 @@ _00B3: SetFlag 0x24A SetFlag 0x24B SetFlag 0x24C - ClearTrainerFlag trainer_artist_ismael - ClearTrainerFlag trainer_beauty_harley - ClearTrainerFlag trainer_rich_boy_roman - ClearTrainerFlag trainer_lady_kylie - ClearTrainerFlag trainer_gentleman_leonardo - ClearTrainerFlag trainer_socialite_rebecca - ClearTrainerFlag trainer_collector_eugene - ClearTrainerFlag trainer_aroma_lady_alison - ClearTrainerFlag trainer_school_kid_esteban - ClearTrainerFlag trainer_pokefan_meredith - ClearTrainerFlag trainer_veteran_emanuel - ClearTrainerFlag trainer_lass_blythe - ClearTrainerFlag trainer_cameraman_darryl - ClearTrainerFlag trainer_reporters_valerie - ClearTrainerFlag trainer_pi_kendrick - ClearTrainerFlag trainer_beauty_gabriella - ClearTrainerFlag trainer_scientist_emilio - ClearTrainerFlag trainer_breeder_kaylee + ClearTrainerFlag TRAINER_ARTIST_ISMAEL + ClearTrainerFlag TRAINER_BEAUTY_HARLEY + ClearTrainerFlag TRAINER_RICH_BOY_ROMAN + ClearTrainerFlag TRAINER_LADY_KYLIE + ClearTrainerFlag TRAINER_GENTLEMAN_LEONARDO + ClearTrainerFlag TRAINER_SOCIALITE_REBECCA + ClearTrainerFlag TRAINER_COLLECTOR_EUGENE + ClearTrainerFlag TRAINER_AROMA_LADY_ALISON + ClearTrainerFlag TRAINER_SCHOOL_KID_ESTEBAN + ClearTrainerFlag TRAINER_POKEFAN_MEREDITH + ClearTrainerFlag TRAINER_VETERAN_EMANUEL + ClearTrainerFlag TRAINER_LASS_BLYTHE + ClearTrainerFlag TRAINER_CAMERAMAN_DARRYL + ClearTrainerFlag TRAINER_REPORTERS_VALERIE + ClearTrainerFlag TRAINER_PI_KENDRICK + ClearTrainerFlag TRAINER_BEAUTY_GABRIELLA + ClearTrainerFlag TRAINER_SCIENTIST_EMILIO + ClearTrainerFlag TRAINER_BREEDER_KAYLEE SetVar 0x4104, 0 ScrCmd_1B7 0x4001, 1 SetVar 0x4000, 5 @@ -192,8 +192,8 @@ _031E: _0331: PlayFanfare SEQ_SE_CONFIRM LockAll - CheckTrainerFlag trainer_artist_ismael - GoToIfDefeated trainer_artist_ismael, _046C + CheckTrainerFlag TRAINER_ARTIST_ISMAEL + GoToIfDefeated TRAINER_ARTIST_ISMAEL, _046C CountAliveMonsExcept 0x800C, 6 GoToIfEq 0x800C, 1, _04BC SetVar 0x8008, 0x40FB @@ -229,11 +229,11 @@ _03C8: _03E7: CloseMessage - StartTrainerBattle trainer_artist_ismael, trainer_beauty_harley + StartTrainerBattle TRAINER_ARTIST_ISMAEL, TRAINER_BEAUTY_HARLEY CheckWonBattle 0x800C GoToIfEq 0x800C, 0, _2125 - SetTrainerFlag trainer_artist_ismael - SetTrainerFlag trainer_beauty_harley + SetTrainerFlag TRAINER_ARTIST_ISMAEL + SetTrainerFlag TRAINER_BEAUTY_HARLEY Call _04CF SetVar 0x8008, 0x40FB GoToIfEq 0x8008, 0, _043F @@ -314,8 +314,8 @@ _04CF: _04DB: PlayFanfare SEQ_SE_CONFIRM LockAll - CheckTrainerFlag trainer_beauty_harley - GoToIfDefeated trainer_beauty_harley, _0616 + CheckTrainerFlag TRAINER_BEAUTY_HARLEY + GoToIfDefeated TRAINER_BEAUTY_HARLEY, _0616 CountAliveMonsExcept 0x800C, 6 GoToIfEq 0x800C, 1, _0666 SetVar 0x8008, 0x40FB @@ -351,11 +351,11 @@ _0572: _0591: CloseMessage - StartTrainerBattle trainer_artist_ismael, trainer_beauty_harley + StartTrainerBattle TRAINER_ARTIST_ISMAEL, TRAINER_BEAUTY_HARLEY CheckWonBattle 0x800C GoToIfEq 0x800C, 0, _2125 - SetTrainerFlag trainer_artist_ismael - SetTrainerFlag trainer_beauty_harley + SetTrainerFlag TRAINER_ARTIST_ISMAEL + SetTrainerFlag TRAINER_BEAUTY_HARLEY Call _0679 SetVar 0x8008, 0x40FB GoToIfEq 0x8008, 0, _05E9 @@ -436,8 +436,8 @@ _0679: _0685: PlayFanfare SEQ_SE_CONFIRM LockAll - CheckTrainerFlag trainer_rich_boy_roman - GoToIfDefeated trainer_rich_boy_roman, _07C0 + CheckTrainerFlag TRAINER_RICH_BOY_ROMAN + GoToIfDefeated TRAINER_RICH_BOY_ROMAN, _07C0 CountAliveMonsExcept 0x800C, 6 GoToIfEq 0x800C, 1, _0810 SetVar 0x8008, 0x40FC @@ -473,11 +473,11 @@ _071C: _073B: CloseMessage - StartTrainerBattle trainer_rich_boy_roman, trainer_lady_kylie + StartTrainerBattle TRAINER_RICH_BOY_ROMAN, TRAINER_LADY_KYLIE CheckWonBattle 0x800C GoToIfEq 0x800C, 0, _2125 - SetTrainerFlag trainer_rich_boy_roman - SetTrainerFlag trainer_lady_kylie + SetTrainerFlag TRAINER_RICH_BOY_ROMAN + SetTrainerFlag TRAINER_LADY_KYLIE Call _0823 SetVar 0x8008, 0x40FC GoToIfEq 0x8008, 0, _0793 @@ -558,8 +558,8 @@ _0823: _082F: PlayFanfare SEQ_SE_CONFIRM LockAll - CheckTrainerFlag trainer_lady_kylie - GoToIfDefeated trainer_lady_kylie, _096A + CheckTrainerFlag TRAINER_LADY_KYLIE + GoToIfDefeated TRAINER_LADY_KYLIE, _096A CountAliveMonsExcept 0x800C, 6 GoToIfEq 0x800C, 1, _09BA SetVar 0x8008, 0x40FC @@ -595,11 +595,11 @@ _08C6: _08E5: CloseMessage - StartTrainerBattle trainer_rich_boy_roman, trainer_lady_kylie + StartTrainerBattle TRAINER_RICH_BOY_ROMAN, TRAINER_LADY_KYLIE CheckWonBattle 0x800C GoToIfEq 0x800C, 0, _2125 - SetTrainerFlag trainer_rich_boy_roman - SetTrainerFlag trainer_lady_kylie + SetTrainerFlag TRAINER_RICH_BOY_ROMAN + SetTrainerFlag TRAINER_LADY_KYLIE Call _09CD SetVar 0x8008, 0x40FC GoToIfEq 0x8008, 0, _093D @@ -680,8 +680,8 @@ _09CD: _09D9: PlayFanfare SEQ_SE_CONFIRM LockAll - CheckTrainerFlag trainer_gentleman_leonardo - GoToIfDefeated trainer_gentleman_leonardo, _0B14 + CheckTrainerFlag TRAINER_GENTLEMAN_LEONARDO + GoToIfDefeated TRAINER_GENTLEMAN_LEONARDO, _0B14 CountAliveMonsExcept 0x800C, 6 GoToIfEq 0x800C, 1, _0B64 SetVar 0x8008, 0x40FD @@ -717,11 +717,11 @@ _0A70: _0A8F: CloseMessage - StartTrainerBattle trainer_gentleman_leonardo, trainer_socialite_rebecca + StartTrainerBattle TRAINER_GENTLEMAN_LEONARDO, TRAINER_SOCIALITE_REBECCA CheckWonBattle 0x800C GoToIfEq 0x800C, 0, _2125 - SetTrainerFlag trainer_gentleman_leonardo - SetTrainerFlag trainer_socialite_rebecca + SetTrainerFlag TRAINER_GENTLEMAN_LEONARDO + SetTrainerFlag TRAINER_SOCIALITE_REBECCA Call _0B77 SetVar 0x8008, 0x40FD GoToIfEq 0x8008, 0, _0AE7 @@ -802,8 +802,8 @@ _0B77: _0B83: PlayFanfare SEQ_SE_CONFIRM LockAll - CheckTrainerFlag trainer_socialite_rebecca - GoToIfDefeated trainer_socialite_rebecca, _0CBE + CheckTrainerFlag TRAINER_SOCIALITE_REBECCA + GoToIfDefeated TRAINER_SOCIALITE_REBECCA, _0CBE CountAliveMonsExcept 0x800C, 6 GoToIfEq 0x800C, 1, _0D0E SetVar 0x8008, 0x40FD @@ -839,11 +839,11 @@ _0C1A: _0C39: CloseMessage - StartTrainerBattle trainer_gentleman_leonardo, trainer_socialite_rebecca + StartTrainerBattle TRAINER_GENTLEMAN_LEONARDO, TRAINER_SOCIALITE_REBECCA CheckWonBattle 0x800C GoToIfEq 0x800C, 0, _2125 - SetTrainerFlag trainer_gentleman_leonardo - SetTrainerFlag trainer_socialite_rebecca + SetTrainerFlag TRAINER_GENTLEMAN_LEONARDO + SetTrainerFlag TRAINER_SOCIALITE_REBECCA Call _0D21 SetVar 0x8008, 0x40FD GoToIfEq 0x8008, 0, _0C91 @@ -924,8 +924,8 @@ _0D21: _0D2D: PlayFanfare SEQ_SE_CONFIRM LockAll - CheckTrainerFlag trainer_collector_eugene - GoToIfDefeated trainer_collector_eugene, _0E68 + CheckTrainerFlag TRAINER_COLLECTOR_EUGENE + GoToIfDefeated TRAINER_COLLECTOR_EUGENE, _0E68 CountAliveMonsExcept 0x800C, 6 GoToIfEq 0x800C, 1, _0EB8 SetVar 0x8008, 0x40FE @@ -961,11 +961,11 @@ _0DC4: _0DE3: CloseMessage - StartTrainerBattle trainer_collector_eugene, trainer_aroma_lady_alison + StartTrainerBattle TRAINER_COLLECTOR_EUGENE, TRAINER_AROMA_LADY_ALISON CheckWonBattle 0x800C GoToIfEq 0x800C, 0, _2125 - SetTrainerFlag trainer_collector_eugene - SetTrainerFlag trainer_aroma_lady_alison + SetTrainerFlag TRAINER_COLLECTOR_EUGENE + SetTrainerFlag TRAINER_AROMA_LADY_ALISON Call _0ECB SetVar 0x8008, 0x40FE GoToIfEq 0x8008, 0, _0E3B @@ -1046,8 +1046,8 @@ _0ECB: _0ED7: PlayFanfare SEQ_SE_CONFIRM LockAll - CheckTrainerFlag trainer_aroma_lady_alison - GoToIfDefeated trainer_aroma_lady_alison, _1012 + CheckTrainerFlag TRAINER_AROMA_LADY_ALISON + GoToIfDefeated TRAINER_AROMA_LADY_ALISON, _1012 CountAliveMonsExcept 0x800C, 6 GoToIfEq 0x800C, 1, _1062 SetVar 0x8008, 0x40FE @@ -1083,11 +1083,11 @@ _0F6E: _0F8D: CloseMessage - StartTrainerBattle trainer_collector_eugene, trainer_aroma_lady_alison + StartTrainerBattle TRAINER_COLLECTOR_EUGENE, TRAINER_AROMA_LADY_ALISON CheckWonBattle 0x800C GoToIfEq 0x800C, 0, _2125 - SetTrainerFlag trainer_collector_eugene - SetTrainerFlag trainer_aroma_lady_alison + SetTrainerFlag TRAINER_COLLECTOR_EUGENE + SetTrainerFlag TRAINER_AROMA_LADY_ALISON Call _1075 SetVar 0x8008, 0x40FE GoToIfEq 0x8008, 0, _0FE5 @@ -1168,8 +1168,8 @@ _1075: _1081: PlayFanfare SEQ_SE_CONFIRM LockAll - CheckTrainerFlag trainer_school_kid_esteban - GoToIfDefeated trainer_school_kid_esteban, _11BC + CheckTrainerFlag TRAINER_SCHOOL_KID_ESTEBAN + GoToIfDefeated TRAINER_SCHOOL_KID_ESTEBAN, _11BC CountAliveMonsExcept 0x800C, 6 GoToIfEq 0x800C, 1, _120C SetVar 0x8008, 0x40FF @@ -1205,11 +1205,11 @@ _1118: _1137: CloseMessage - StartTrainerBattle trainer_school_kid_esteban, trainer_pokefan_meredith + StartTrainerBattle TRAINER_SCHOOL_KID_ESTEBAN, TRAINER_POKEFAN_MEREDITH CheckWonBattle 0x800C GoToIfEq 0x800C, 0, _2125 - SetTrainerFlag trainer_school_kid_esteban - SetTrainerFlag trainer_pokefan_meredith + SetTrainerFlag TRAINER_SCHOOL_KID_ESTEBAN + SetTrainerFlag TRAINER_POKEFAN_MEREDITH Call _121F SetVar 0x8008, 0x40FF GoToIfEq 0x8008, 0, _118F @@ -1290,8 +1290,8 @@ _121F: _122B: PlayFanfare SEQ_SE_CONFIRM LockAll - CheckTrainerFlag trainer_pokefan_meredith - GoToIfDefeated trainer_pokefan_meredith, _1366 + CheckTrainerFlag TRAINER_POKEFAN_MEREDITH + GoToIfDefeated TRAINER_POKEFAN_MEREDITH, _1366 CountAliveMonsExcept 0x800C, 6 GoToIfEq 0x800C, 1, _13B6 SetVar 0x8008, 0x40FF @@ -1327,11 +1327,11 @@ _12C2: _12E1: CloseMessage - StartTrainerBattle trainer_school_kid_esteban, trainer_pokefan_meredith + StartTrainerBattle TRAINER_SCHOOL_KID_ESTEBAN, TRAINER_POKEFAN_MEREDITH CheckWonBattle 0x800C GoToIfEq 0x800C, 0, _2125 - SetTrainerFlag trainer_school_kid_esteban - SetTrainerFlag trainer_pokefan_meredith + SetTrainerFlag TRAINER_SCHOOL_KID_ESTEBAN + SetTrainerFlag TRAINER_POKEFAN_MEREDITH Call _13C9 SetVar 0x8008, 0x40FF GoToIfEq 0x8008, 0, _1339 @@ -1412,8 +1412,8 @@ _13C9: _13D5: PlayFanfare SEQ_SE_CONFIRM LockAll - CheckTrainerFlag trainer_veteran_emanuel - GoToIfDefeated trainer_veteran_emanuel, _1510 + CheckTrainerFlag TRAINER_VETERAN_EMANUEL + GoToIfDefeated TRAINER_VETERAN_EMANUEL, _1510 CountAliveMonsExcept 0x800C, 6 GoToIfEq 0x800C, 1, _1560 SetVar 0x8008, 0x4100 @@ -1449,11 +1449,11 @@ _146C: _148B: CloseMessage - StartTrainerBattle trainer_veteran_emanuel, trainer_lass_blythe + StartTrainerBattle TRAINER_VETERAN_EMANUEL, TRAINER_LASS_BLYTHE CheckWonBattle 0x800C GoToIfEq 0x800C, 0, _2125 - SetTrainerFlag trainer_veteran_emanuel - SetTrainerFlag trainer_lass_blythe + SetTrainerFlag TRAINER_VETERAN_EMANUEL + SetTrainerFlag TRAINER_LASS_BLYTHE Call _1573 SetVar 0x8008, 0x4100 GoToIfEq 0x8008, 0, _14E3 @@ -1534,8 +1534,8 @@ _1573: _157F: PlayFanfare SEQ_SE_CONFIRM LockAll - CheckTrainerFlag trainer_lass_blythe - GoToIfDefeated trainer_lass_blythe, _16BA + CheckTrainerFlag TRAINER_LASS_BLYTHE + GoToIfDefeated TRAINER_LASS_BLYTHE, _16BA CountAliveMonsExcept 0x800C, 6 GoToIfEq 0x800C, 1, _170A SetVar 0x8008, 0x4100 @@ -1571,11 +1571,11 @@ _1616: _1635: CloseMessage - StartTrainerBattle trainer_veteran_emanuel, trainer_lass_blythe + StartTrainerBattle TRAINER_VETERAN_EMANUEL, TRAINER_LASS_BLYTHE CheckWonBattle 0x800C GoToIfEq 0x800C, 0, _2125 - SetTrainerFlag trainer_veteran_emanuel - SetTrainerFlag trainer_lass_blythe + SetTrainerFlag TRAINER_VETERAN_EMANUEL + SetTrainerFlag TRAINER_LASS_BLYTHE Call _171D SetVar 0x8008, 0x4100 GoToIfEq 0x8008, 0, _168D @@ -1656,8 +1656,8 @@ _171D: _1729: PlayFanfare SEQ_SE_CONFIRM LockAll - CheckTrainerFlag trainer_cameraman_darryl - GoToIfDefeated trainer_cameraman_darryl, _1864 + CheckTrainerFlag TRAINER_CAMERAMAN_DARRYL + GoToIfDefeated TRAINER_CAMERAMAN_DARRYL, _1864 CountAliveMonsExcept 0x800C, 6 GoToIfEq 0x800C, 1, _18B4 SetVar 0x8008, 0x4101 @@ -1693,11 +1693,11 @@ _17C0: _17DF: CloseMessage - StartTrainerBattle trainer_cameraman_darryl, trainer_reporters_valerie + StartTrainerBattle TRAINER_CAMERAMAN_DARRYL, TRAINER_REPORTERS_VALERIE CheckWonBattle 0x800C GoToIfEq 0x800C, 0, _2125 - SetTrainerFlag trainer_cameraman_darryl - SetTrainerFlag trainer_reporters_valerie + SetTrainerFlag TRAINER_CAMERAMAN_DARRYL + SetTrainerFlag TRAINER_REPORTERS_VALERIE Call _18C7 SetVar 0x8008, 0x4101 GoToIfEq 0x8008, 0, _1837 @@ -1778,8 +1778,8 @@ _18C7: _18D3: PlayFanfare SEQ_SE_CONFIRM LockAll - CheckTrainerFlag trainer_reporters_valerie - GoToIfDefeated trainer_reporters_valerie, _1A0E + CheckTrainerFlag TRAINER_REPORTERS_VALERIE + GoToIfDefeated TRAINER_REPORTERS_VALERIE, _1A0E CountAliveMonsExcept 0x800C, 6 GoToIfEq 0x800C, 1, _1A5E SetVar 0x8008, 0x4101 @@ -1815,11 +1815,11 @@ _196A: _1989: CloseMessage - StartTrainerBattle trainer_cameraman_darryl, trainer_reporters_valerie + StartTrainerBattle TRAINER_CAMERAMAN_DARRYL, TRAINER_REPORTERS_VALERIE CheckWonBattle 0x800C GoToIfEq 0x800C, 0, _2125 - SetTrainerFlag trainer_cameraman_darryl - SetTrainerFlag trainer_reporters_valerie + SetTrainerFlag TRAINER_CAMERAMAN_DARRYL + SetTrainerFlag TRAINER_REPORTERS_VALERIE Call _1A71 SetVar 0x8008, 0x4101 GoToIfEq 0x8008, 0, _19E1 @@ -1900,8 +1900,8 @@ _1A71: _1A7D: PlayFanfare SEQ_SE_CONFIRM LockAll - CheckTrainerFlag trainer_pi_kendrick - GoToIfDefeated trainer_pi_kendrick, _1BB8 + CheckTrainerFlag TRAINER_PI_KENDRICK + GoToIfDefeated TRAINER_PI_KENDRICK, _1BB8 CountAliveMonsExcept 0x800C, 6 GoToIfEq 0x800C, 1, _1C08 SetVar 0x8008, 0x4102 @@ -1937,11 +1937,11 @@ _1B14: _1B33: CloseMessage - StartTrainerBattle trainer_pi_kendrick, trainer_beauty_gabriella + StartTrainerBattle TRAINER_PI_KENDRICK, TRAINER_BEAUTY_GABRIELLA CheckWonBattle 0x800C GoToIfEq 0x800C, 0, _2125 - SetTrainerFlag trainer_pi_kendrick - SetTrainerFlag trainer_beauty_gabriella + SetTrainerFlag TRAINER_PI_KENDRICK + SetTrainerFlag TRAINER_BEAUTY_GABRIELLA Call _1C1B SetVar 0x8008, 0x4102 GoToIfEq 0x8008, 0, _1B8B @@ -2022,8 +2022,8 @@ _1C1B: _1C27: PlayFanfare SEQ_SE_CONFIRM LockAll - CheckTrainerFlag trainer_beauty_gabriella - GoToIfDefeated trainer_beauty_gabriella, _1D62 + CheckTrainerFlag TRAINER_BEAUTY_GABRIELLA + GoToIfDefeated TRAINER_BEAUTY_GABRIELLA, _1D62 CountAliveMonsExcept 0x800C, 6 GoToIfEq 0x800C, 1, _1DB2 SetVar 0x8008, 0x4102 @@ -2059,11 +2059,11 @@ _1CBE: _1CDD: CloseMessage - StartTrainerBattle trainer_pi_kendrick, trainer_beauty_gabriella + StartTrainerBattle TRAINER_PI_KENDRICK, TRAINER_BEAUTY_GABRIELLA CheckWonBattle 0x800C GoToIfEq 0x800C, 0, _2125 - SetTrainerFlag trainer_pi_kendrick - SetTrainerFlag trainer_beauty_gabriella + SetTrainerFlag TRAINER_PI_KENDRICK + SetTrainerFlag TRAINER_BEAUTY_GABRIELLA Call _1DC5 SetVar 0x8008, 0x4102 GoToIfEq 0x8008, 0, _1D35 @@ -2144,8 +2144,8 @@ _1DC5: _1DD1: PlayFanfare SEQ_SE_CONFIRM LockAll - CheckTrainerFlag trainer_scientist_emilio - GoToIfDefeated trainer_scientist_emilio, _1F0C + CheckTrainerFlag TRAINER_SCIENTIST_EMILIO + GoToIfDefeated TRAINER_SCIENTIST_EMILIO, _1F0C CountAliveMonsExcept 0x800C, 6 GoToIfEq 0x800C, 1, _1F5C SetVar 0x8008, 0x4103 @@ -2181,11 +2181,11 @@ _1E68: _1E87: CloseMessage - StartTrainerBattle trainer_scientist_emilio, trainer_breeder_kaylee + StartTrainerBattle TRAINER_SCIENTIST_EMILIO, TRAINER_BREEDER_KAYLEE CheckWonBattle 0x800C GoToIfEq 0x800C, 0, _2125 - SetTrainerFlag trainer_scientist_emilio - SetTrainerFlag trainer_breeder_kaylee + SetTrainerFlag TRAINER_SCIENTIST_EMILIO + SetTrainerFlag TRAINER_BREEDER_KAYLEE Call _1F6F SetVar 0x8008, 0x4103 GoToIfEq 0x8008, 0, _1EDF @@ -2266,8 +2266,8 @@ _1F6F: _1F7B: PlayFanfare SEQ_SE_CONFIRM LockAll - CheckTrainerFlag trainer_breeder_kaylee - GoToIfDefeated trainer_breeder_kaylee, _20B6 + CheckTrainerFlag TRAINER_BREEDER_KAYLEE + GoToIfDefeated TRAINER_BREEDER_KAYLEE, _20B6 CountAliveMonsExcept 0x800C, 6 GoToIfEq 0x800C, 1, _2106 SetVar 0x8008, 0x4103 @@ -2303,11 +2303,11 @@ _2012: _2031: CloseMessage - StartTrainerBattle trainer_scientist_emilio, trainer_breeder_kaylee + StartTrainerBattle TRAINER_SCIENTIST_EMILIO, TRAINER_BREEDER_KAYLEE CheckWonBattle 0x800C GoToIfEq 0x800C, 0, _2125 - SetTrainerFlag trainer_scientist_emilio - SetTrainerFlag trainer_breeder_kaylee + SetTrainerFlag TRAINER_SCIENTIST_EMILIO + SetTrainerFlag TRAINER_BREEDER_KAYLEE Call _2119 SetVar 0x8008, 0x4103 GoToIfEq 0x8008, 0, _2089 diff --git a/res/field/scripts/scripts_route_203.s b/res/field/scripts/scripts_route_203.s index cd16e18b2d..6a25e9cb65 100644 --- a/res/field/scripts/scripts_route_203.s +++ b/res/field/scripts/scripts_route_203.s @@ -96,15 +96,15 @@ _0111: GoTo _0140 _0140: - StartTrainerBattle trainer_rival_route_203_piplup + StartTrainerBattle TRAINER_RIVAL_ROUTE_203_PIPLUP GoTo _0164 _014C: - StartTrainerBattle trainer_rival_route_203_turtwig + StartTrainerBattle TRAINER_RIVAL_ROUTE_203_TURTWIG GoTo _0164 _0158: - StartTrainerBattle trainer_rival_route_203_chimchar + StartTrainerBattle TRAINER_RIVAL_ROUTE_203_CHIMCHAR GoTo _0164 _0164: diff --git a/res/field/scripts/scripts_route_209_gate_to_hearthome_city.s b/res/field/scripts/scripts_route_209_gate_to_hearthome_city.s index 1db0c59e93..aa5850bd61 100644 --- a/res/field/scripts/scripts_route_209_gate_to_hearthome_city.s +++ b/res/field/scripts/scripts_route_209_gate_to_hearthome_city.s @@ -39,17 +39,17 @@ _001D: End _00A5: - StartTrainerBattle trainer_rival_route_209_piplup + StartTrainerBattle TRAINER_RIVAL_ROUTE_209_PIPLUP GoTo _00CF End _00B3: - StartTrainerBattle trainer_rival_route_209_turtwig + StartTrainerBattle TRAINER_RIVAL_ROUTE_209_TURTWIG GoTo _00CF End _00C1: - StartTrainerBattle trainer_rival_route_209_chimchar + StartTrainerBattle TRAINER_RIVAL_ROUTE_209_CHIMCHAR GoTo _00CF End diff --git a/res/field/scripts/scripts_snowpoint_city_gym.s b/res/field/scripts/scripts_snowpoint_city_gym.s index 97d25a5f15..5497858b15 100644 --- a/res/field/scripts/scripts_snowpoint_city_gym.s +++ b/res/field/scripts/scripts_snowpoint_city_gym.s @@ -26,7 +26,7 @@ _0025: CreateJournalEvent LOCATION_EVENT_GYM_WAS_TOO_TOUGH, 167, 0, 0, 0 Message 0 CloseMessage - StartTrainerBattle trainer_leader_candice + StartTrainerBattle TRAINER_LEADER_CANDICE CheckWonBattle 0x800C GoToIfEq 0x800C, 0, _010E Message 1 @@ -36,13 +36,13 @@ _0025: WaitSound GiveBadge BADGE_ID_ICICLE ScrCmd_260 23 - SetTrainerFlag trainer_ace_trainer_sergio - SetTrainerFlag trainer_ace_trainer_isaiah - SetTrainerFlag trainer_ace_trainer_anton - SetTrainerFlag trainer_ace_trainer_savannah - SetTrainerFlag trainer_ace_trainer_alicia - SetTrainerFlag trainer_ace_trainer_brenna - CreateJournalEvent LOCATION_EVENT_BEAT_GYM_LEADER, 167, trainer_leader_candice, 0, 0 + SetTrainerFlag TRAINER_ACE_TRAINER_SERGIO + SetTrainerFlag TRAINER_ACE_TRAINER_ISAIAH + SetTrainerFlag TRAINER_ACE_TRAINER_ANTON + SetTrainerFlag TRAINER_ACE_TRAINER_SAVANNAH + SetTrainerFlag TRAINER_ACE_TRAINER_ALICIA + SetTrainerFlag TRAINER_ACE_TRAINER_BRENNA + CreateJournalEvent LOCATION_EVENT_BEAT_GYM_LEADER, 167, TRAINER_LEADER_CANDICE, 0, 0 SetFlag 0x1BF Message 3 GoTo _00B0 diff --git a/res/field/scripts/scripts_spear_pillar.s b/res/field/scripts/scripts_spear_pillar.s index a7202ea260..4dd3bd0b46 100644 --- a/res/field/scripts/scripts_spear_pillar.s +++ b/res/field/scripts/scripts_spear_pillar.s @@ -137,7 +137,7 @@ _01A6: _01CA: Message 0 CloseMessage - StartTrainerBattle trainer_galactic_grunt_spear_pillar_1, trainer_galactic_grunt_spear_pillar_2 + StartTrainerBattle TRAINER_GALACTIC_GRUNT_SPEAR_PILLAR_1, TRAINER_GALACTIC_GRUNT_SPEAR_PILLAR_2 CheckWonBattle 0x800C Return diff --git a/res/field/scripts/scripts_stark_mountain_room_1.s b/res/field/scripts/scripts_stark_mountain_room_1.s index 2f06592add..82c598b02d 100644 --- a/res/field/scripts/scripts_stark_mountain_room_1.s +++ b/res/field/scripts/scripts_stark_mountain_room_1.s @@ -20,7 +20,7 @@ _0014: CloseMessage ApplyMovement 0, _0160 WaitMovement - StartTrainerBattle trainer_commander_mars_stark_mountain + StartTrainerBattle TRAINER_COMMANDER_MARS_STARK_MOUNTAIN CheckWonBattle 0x800C GoToIfEq 0x800C, 0, _0150 Message 1 @@ -33,7 +33,7 @@ _0014: CloseMessage ApplyMovement 4, _01CC WaitMovement - StartTrainerBattle trainer_commander_jupiter_stark_mountain + StartTrainerBattle TRAINER_COMMANDER_JUPITER_STARK_MOUNTAIN CheckWonBattle 0x800C GoToIfEq 0x800C, 0, _0150 Message 3 diff --git a/res/field/scripts/scripts_sunyshore_city_gym_room_3.s b/res/field/scripts/scripts_sunyshore_city_gym_room_3.s index 7bb61e04ca..8d09f22829 100644 --- a/res/field/scripts/scripts_sunyshore_city_gym_room_3.s +++ b/res/field/scripts/scripts_sunyshore_city_gym_room_3.s @@ -31,7 +31,7 @@ _0027: CreateJournalEvent LOCATION_EVENT_GYM_WAS_TOO_TOUGH, 156, 0, 0, 0 Message 0 CloseMessage - StartTrainerBattle trainer_leader_volkner + StartTrainerBattle TRAINER_LEADER_VOLKNER CheckWonBattle 0x800C GoToIfEq 0x800C, 0, _011A Message 1 @@ -41,17 +41,17 @@ _0027: WaitSound GiveBadge BADGE_ID_BEACON ScrCmd_260 23 - SetTrainerFlag trainer_ace_trainer_zachery - SetTrainerFlag trainer_ace_trainer_destiny - SetTrainerFlag trainer_guitarist_jerry - SetTrainerFlag trainer_guitarist_preston - SetTrainerFlag trainer_guitarist_lonnie - SetTrainerFlag trainer_poke_kid_meghan - SetTrainerFlag trainer_school_kid_forrest - SetTrainerFlag trainer_school_kid_tiera + SetTrainerFlag TRAINER_ACE_TRAINER_ZACHERY + SetTrainerFlag TRAINER_ACE_TRAINER_DESTINY + SetTrainerFlag TRAINER_GUITARIST_JERRY + SetTrainerFlag TRAINER_GUITARIST_PRESTON + SetTrainerFlag TRAINER_GUITARIST_LONNIE + SetTrainerFlag TRAINER_POKE_KID_MEGHAN + SetTrainerFlag TRAINER_SCHOOL_KID_FORREST + SetTrainerFlag TRAINER_SCHOOL_KID_TIERA SetVar 0x407E, 2 - // BUG: trainer_leader_roark should be trainer_leader_volkner - CreateJournalEvent LOCATION_EVENT_BEAT_GYM_LEADER, 156, trainer_leader_roark, 0, 0 + // BUG: TRAINER_LEADER_ROARK should be TRAINER_LEADER_VOLKNER + CreateJournalEvent LOCATION_EVENT_BEAT_GYM_LEADER, 156, TRAINER_LEADER_ROARK, 0, 0 Message 3 GoTo _00BC diff --git a/res/field/scripts/scripts_survival_area.s b/res/field/scripts/scripts_survival_area.s index ddedaec648..f0b4d6303e 100644 --- a/res/field/scripts/scripts_survival_area.s +++ b/res/field/scripts/scripts_survival_area.s @@ -184,12 +184,12 @@ _01FA: End _021A: - StartTrainerBattle trainer_rival_survival_area_1_piplup + StartTrainerBattle TRAINER_RIVAL_SURVIVAL_AREA_1_PIPLUP GoTo _02AE End _0228: - StartTrainerBattle trainer_rival_survival_area_2_piplup + StartTrainerBattle TRAINER_RIVAL_SURVIVAL_AREA_2_PIPLUP GoTo _02AE End @@ -200,12 +200,12 @@ _0236: End _0256: - StartTrainerBattle trainer_rival_survival_area_1_turtwig + StartTrainerBattle TRAINER_RIVAL_SURVIVAL_AREA_1_TURTWIG GoTo _02AE End _0264: - StartTrainerBattle trainer_rival_survival_area_2_turtwig + StartTrainerBattle TRAINER_RIVAL_SURVIVAL_AREA_2_TURTWIG GoTo _02AE End @@ -216,12 +216,12 @@ _0272: End _0292: - StartTrainerBattle trainer_rival_survival_area_1_chimchar + StartTrainerBattle TRAINER_RIVAL_SURVIVAL_AREA_1_CHIMCHAR GoTo _02AE End _02A0: - StartTrainerBattle trainer_rival_survival_area_2_chimchar + StartTrainerBattle TRAINER_RIVAL_SURVIVAL_AREA_2_CHIMCHAR GoTo _02AE End diff --git a/res/field/scripts/scripts_team_galactic_eterna_building_4f.s b/res/field/scripts/scripts_team_galactic_eterna_building_4f.s index 071a9baf93..f25c6b0100 100644 --- a/res/field/scripts/scripts_team_galactic_eterna_building_4f.s +++ b/res/field/scripts/scripts_team_galactic_eterna_building_4f.s @@ -28,7 +28,7 @@ _0022: WaitMovement Message 0 CloseMessage - StartTrainerBattle trainer_commander_jupiter_team_galactic_eterna_building + StartTrainerBattle TRAINER_COMMANDER_JUPITER_TEAM_GALACTIC_ETERNA_BUILDING CheckWonBattle 0x800C GoToIfEq 0x800C, 0, _0135 Message 1 diff --git a/res/field/scripts/scripts_trainers_school.s b/res/field/scripts/scripts_trainers_school.s index 1d09a4a1de..4d11811761 100644 --- a/res/field/scripts/scripts_trainers_school.s +++ b/res/field/scripts/scripts_trainers_school.s @@ -176,17 +176,17 @@ _01E7: End _0212: - StartTrainerBattle trainer_school_kid_harrison + StartTrainerBattle TRAINER_SCHOOL_KID_HARRISON GoTo _023C End _0220: - StartTrainerBattle trainer_school_kid_harrison + StartTrainerBattle TRAINER_SCHOOL_KID_HARRISON GoTo _023C End _022E: - StartTrainerBattle trainer_school_kid_harrison + StartTrainerBattle TRAINER_SCHOOL_KID_HARRISON GoTo _023C End @@ -270,17 +270,17 @@ _031A: End _0345: - StartTrainerBattle trainer_school_kid_christine + StartTrainerBattle TRAINER_SCHOOL_KID_CHRISTINE GoTo _036F End _0353: - StartTrainerBattle trainer_school_kid_christine + StartTrainerBattle TRAINER_SCHOOL_KID_CHRISTINE GoTo _036F End _0361: - StartTrainerBattle trainer_school_kid_christine + StartTrainerBattle TRAINER_SCHOOL_KID_CHRISTINE GoTo _036F End diff --git a/res/field/scripts/scripts_valley_windworks_building.s b/res/field/scripts/scripts_valley_windworks_building.s index ae68116731..5d1d10548b 100644 --- a/res/field/scripts/scripts_valley_windworks_building.s +++ b/res/field/scripts/scripts_valley_windworks_building.s @@ -89,7 +89,7 @@ _00F5: _0107: Message 2 CloseMessage - StartTrainerBattle trainer_commander_mars_valley_windworks + StartTrainerBattle TRAINER_COMMANDER_MARS_VALLEY_WINDWORKS CheckWonBattle 0x800C GoToIfEq 0x800C, 0, _02B9 Message 3 diff --git a/res/field/scripts/scripts_valley_windworks_outside.s b/res/field/scripts/scripts_valley_windworks_outside.s index 2ba21a1780..9bd3c4cb09 100644 --- a/res/field/scripts/scripts_valley_windworks_outside.s +++ b/res/field/scripts/scripts_valley_windworks_outside.s @@ -64,7 +64,7 @@ _00CF: FacePlayer Message 0 CloseMessage - StartTrainerBattle trainer_galactic_grunt_valley_windworks_1 + StartTrainerBattle TRAINER_GALACTIC_GRUNT_VALLEY_WINDWORKS_1 CheckWonBattle 0x800C GoToIfEq 0x800C, 0, _0133 Message 1 diff --git a/res/field/scripts/scripts_valor_cavern.s b/res/field/scripts/scripts_valor_cavern.s index 0c414b577b..66d3fd19c1 100644 --- a/res/field/scripts/scripts_valor_cavern.s +++ b/res/field/scripts/scripts_valor_cavern.s @@ -77,7 +77,7 @@ _00D3: WaitTime 30, 0x800C Message 1 CloseMessage - StartTrainerBattle trainer_commander_saturn_valor_cavern + StartTrainerBattle TRAINER_COMMANDER_SATURN_VALOR_CAVERN CheckWonBattle 0x800C GoToIfEq 0x800C, 0, _0144 Message 2 diff --git a/res/field/scripts/scripts_valor_lakefront.s b/res/field/scripts/scripts_valor_lakefront.s index c99caf5e9a..846eb388e2 100644 --- a/res/field/scripts/scripts_valor_lakefront.s +++ b/res/field/scripts/scripts_valor_lakefront.s @@ -85,7 +85,7 @@ _013A: FacePlayer Message 2 CloseMessage - StartTrainerBattle trainer_galactic_grunt_valor_lakefront + StartTrainerBattle TRAINER_GALACTIC_GRUNT_VALOR_LAKEFRONT CheckWonBattle 0x800C GoToIfEq 0x800C, 0, _01D9 Message 3 diff --git a/res/field/scripts/scripts_veilstone_city_gym.s b/res/field/scripts/scripts_veilstone_city_gym.s index 0ead91aa8e..102ff73e88 100644 --- a/res/field/scripts/scripts_veilstone_city_gym.s +++ b/res/field/scripts/scripts_veilstone_city_gym.s @@ -25,7 +25,7 @@ _0022: CreateJournalEvent LOCATION_EVENT_GYM_WAS_TOO_TOUGH, 133, 0, 0, 0 Message 0 CloseMessage - StartTrainerBattle trainer_leader_maylene + StartTrainerBattle TRAINER_LEADER_MAYLENE CheckWonBattle 0x800C GoToIfEq 0x800C, 0, _0118 Message 1 @@ -35,11 +35,11 @@ _0022: WaitSound GiveBadge BADGE_ID_COBBLE ScrCmd_260 23 - SetTrainerFlag trainer_black_belt_colby - SetTrainerFlag trainer_black_belt_darren - SetTrainerFlag trainer_black_belt_rafael - SetTrainerFlag trainer_black_belt_jeffery - CreateJournalEvent LOCATION_EVENT_BEAT_GYM_LEADER, 133, trainer_leader_maylene, 0, 0 + SetTrainerFlag TRAINER_BLACK_BELT_COLBY + SetTrainerFlag TRAINER_BLACK_BELT_DARREN + SetTrainerFlag TRAINER_BLACK_BELT_RAFAEL + SetTrainerFlag TRAINER_BLACK_BELT_JEFFERY + CreateJournalEvent LOCATION_EVENT_BEAT_GYM_LEADER, 133, TRAINER_LEADER_MAYLENE, 0, 0 SetFlag 0x1A3 ClearFlag 0x1A8 SetVar 0x407D, 1 diff --git a/res/meson.build b/res/meson.build index 060c5ddb50..94972cb6ce 100644 --- a/res/meson.build +++ b/res/meson.build @@ -6,8 +6,7 @@ subdir('prebuilt') ### DECOMPILED DATA DIRECTORIES ### # These subpaths are listed because the result of some build-rule inside them -# is a dependency of some later build-rule. e.g., `trdata.naix` is a dependency -# of the files compiled into `scr_seq.narc`. +# is a dependency of some later build-rule. subdir('pokemon') subdir('trainers') subdir('text') @@ -42,7 +41,6 @@ script_bin_gen = generator(make_script_bin_sh, depends: [ text_banks, c_consts_generators, - trdata_naix, ], output: '@BASENAME@', depfile: '@BASENAME@.d', diff --git a/res/trainers/trainer_ace_trainer_abel.json b/res/trainers/data/ace_trainer_abel.json similarity index 100% rename from res/trainers/trainer_ace_trainer_abel.json rename to res/trainers/data/ace_trainer_abel.json diff --git a/res/trainers/trainer_ace_trainer_alicia.json b/res/trainers/data/ace_trainer_alicia.json similarity index 100% rename from res/trainers/trainer_ace_trainer_alicia.json rename to res/trainers/data/ace_trainer_alicia.json diff --git a/res/trainers/trainer_ace_trainer_allen.json b/res/trainers/data/ace_trainer_allen.json similarity index 100% rename from res/trainers/trainer_ace_trainer_allen.json rename to res/trainers/data/ace_trainer_allen.json diff --git a/res/trainers/trainer_ace_trainer_alyssa.json b/res/trainers/data/ace_trainer_alyssa.json similarity index 100% rename from res/trainers/trainer_ace_trainer_alyssa.json rename to res/trainers/data/ace_trainer_alyssa.json diff --git a/res/trainers/trainer_ace_trainer_anton.json b/res/trainers/data/ace_trainer_anton.json similarity index 100% rename from res/trainers/trainer_ace_trainer_anton.json rename to res/trainers/data/ace_trainer_anton.json diff --git a/res/trainers/trainer_ace_trainer_arthur.json b/res/trainers/data/ace_trainer_arthur.json similarity index 100% rename from res/trainers/trainer_ace_trainer_arthur.json rename to res/trainers/data/ace_trainer_arthur.json diff --git a/res/trainers/trainer_ace_trainer_blake.json b/res/trainers/data/ace_trainer_blake.json similarity index 100% rename from res/trainers/trainer_ace_trainer_blake.json rename to res/trainers/data/ace_trainer_blake.json diff --git a/res/trainers/trainer_ace_trainer_brandi.json b/res/trainers/data/ace_trainer_brandi.json similarity index 100% rename from res/trainers/trainer_ace_trainer_brandi.json rename to res/trainers/data/ace_trainer_brandi.json diff --git a/res/trainers/trainer_ace_trainer_breanna.json b/res/trainers/data/ace_trainer_breanna.json similarity index 100% rename from res/trainers/trainer_ace_trainer_breanna.json rename to res/trainers/data/ace_trainer_breanna.json diff --git a/res/trainers/trainer_ace_trainer_brenda.json b/res/trainers/data/ace_trainer_brenda.json similarity index 100% rename from res/trainers/trainer_ace_trainer_brenda.json rename to res/trainers/data/ace_trainer_brenda.json diff --git a/res/trainers/trainer_ace_trainer_brenna.json b/res/trainers/data/ace_trainer_brenna.json similarity index 100% rename from res/trainers/trainer_ace_trainer_brenna.json rename to res/trainers/data/ace_trainer_brenna.json diff --git a/res/trainers/trainer_ace_trainer_catherine.json b/res/trainers/data/ace_trainer_catherine.json similarity index 100% rename from res/trainers/trainer_ace_trainer_catherine.json rename to res/trainers/data/ace_trainer_catherine.json diff --git a/res/trainers/trainer_ace_trainer_cesar.json b/res/trainers/data/ace_trainer_cesar.json similarity index 100% rename from res/trainers/trainer_ace_trainer_cesar.json rename to res/trainers/data/ace_trainer_cesar.json diff --git a/res/trainers/trainer_ace_trainer_clarice.json b/res/trainers/data/ace_trainer_clarice.json similarity index 100% rename from res/trainers/trainer_ace_trainer_clarice.json rename to res/trainers/data/ace_trainer_clarice.json diff --git a/res/trainers/trainer_ace_trainer_dalton.json b/res/trainers/data/ace_trainer_dalton.json similarity index 100% rename from res/trainers/trainer_ace_trainer_dalton.json rename to res/trainers/data/ace_trainer_dalton.json diff --git a/res/trainers/trainer_ace_trainer_dalton_rematch.json b/res/trainers/data/ace_trainer_dalton_rematch.json similarity index 100% rename from res/trainers/trainer_ace_trainer_dalton_rematch.json rename to res/trainers/data/ace_trainer_dalton_rematch.json diff --git a/res/trainers/trainer_ace_trainer_dana.json b/res/trainers/data/ace_trainer_dana.json similarity index 100% rename from res/trainers/trainer_ace_trainer_dana.json rename to res/trainers/data/ace_trainer_dana.json diff --git a/res/trainers/trainer_ace_trainer_deanna.json b/res/trainers/data/ace_trainer_deanna.json similarity index 100% rename from res/trainers/trainer_ace_trainer_deanna.json rename to res/trainers/data/ace_trainer_deanna.json diff --git a/res/trainers/trainer_ace_trainer_deanna_rematch.json b/res/trainers/data/ace_trainer_deanna_rematch.json similarity index 100% rename from res/trainers/trainer_ace_trainer_deanna_rematch.json rename to res/trainers/data/ace_trainer_deanna_rematch.json diff --git a/res/trainers/trainer_ace_trainer_dennis.json b/res/trainers/data/ace_trainer_dennis.json similarity index 100% rename from res/trainers/trainer_ace_trainer_dennis.json rename to res/trainers/data/ace_trainer_dennis.json diff --git a/res/trainers/trainer_ace_trainer_dennis_rematch_1.json b/res/trainers/data/ace_trainer_dennis_rematch_1.json similarity index 100% rename from res/trainers/trainer_ace_trainer_dennis_rematch_1.json rename to res/trainers/data/ace_trainer_dennis_rematch_1.json diff --git a/res/trainers/trainer_ace_trainer_dennis_rematch_2.json b/res/trainers/data/ace_trainer_dennis_rematch_2.json similarity index 100% rename from res/trainers/trainer_ace_trainer_dennis_rematch_2.json rename to res/trainers/data/ace_trainer_dennis_rematch_2.json diff --git a/res/trainers/trainer_ace_trainer_destiny.json b/res/trainers/data/ace_trainer_destiny.json similarity index 100% rename from res/trainers/trainer_ace_trainer_destiny.json rename to res/trainers/data/ace_trainer_destiny.json diff --git a/res/trainers/trainer_ace_trainer_ernest.json b/res/trainers/data/ace_trainer_ernest.json similarity index 100% rename from res/trainers/trainer_ace_trainer_ernest.json rename to res/trainers/data/ace_trainer_ernest.json diff --git a/res/trainers/trainer_ace_trainer_felix.json b/res/trainers/data/ace_trainer_felix.json similarity index 100% rename from res/trainers/trainer_ace_trainer_felix.json rename to res/trainers/data/ace_trainer_felix.json diff --git a/res/trainers/trainer_ace_trainer_garrett.json b/res/trainers/data/ace_trainer_garrett.json similarity index 100% rename from res/trainers/trainer_ace_trainer_garrett.json rename to res/trainers/data/ace_trainer_garrett.json diff --git a/res/trainers/trainer_ace_trainer_graham.json b/res/trainers/data/ace_trainer_graham.json similarity index 100% rename from res/trainers/trainer_ace_trainer_graham.json rename to res/trainers/data/ace_trainer_graham.json diff --git a/res/trainers/trainer_ace_trainer_henry.json b/res/trainers/data/ace_trainer_henry.json similarity index 100% rename from res/trainers/trainer_ace_trainer_henry.json rename to res/trainers/data/ace_trainer_henry.json diff --git a/res/trainers/trainer_ace_trainer_isaiah.json b/res/trainers/data/ace_trainer_isaiah.json similarity index 100% rename from res/trainers/trainer_ace_trainer_isaiah.json rename to res/trainers/data/ace_trainer_isaiah.json diff --git a/res/trainers/trainer_ace_trainer_jake.json b/res/trainers/data/ace_trainer_jake.json similarity index 100% rename from res/trainers/trainer_ace_trainer_jake.json rename to res/trainers/data/ace_trainer_jake.json diff --git a/res/trainers/trainer_ace_trainer_jake_rematch.json b/res/trainers/data/ace_trainer_jake_rematch.json similarity index 100% rename from res/trainers/trainer_ace_trainer_jake_rematch.json rename to res/trainers/data/ace_trainer_jake_rematch.json diff --git a/res/trainers/trainer_ace_trainer_jamie.json b/res/trainers/data/ace_trainer_jamie.json similarity index 100% rename from res/trainers/trainer_ace_trainer_jamie.json rename to res/trainers/data/ace_trainer_jamie.json diff --git a/res/trainers/trainer_ace_trainer_jasmin.json b/res/trainers/data/ace_trainer_jasmin.json similarity index 100% rename from res/trainers/trainer_ace_trainer_jasmin.json rename to res/trainers/data/ace_trainer_jasmin.json diff --git a/res/trainers/trainer_ace_trainer_jonah.json b/res/trainers/data/ace_trainer_jonah.json similarity index 100% rename from res/trainers/trainer_ace_trainer_jonah.json rename to res/trainers/data/ace_trainer_jonah.json diff --git a/res/trainers/trainer_ace_trainer_jose.json b/res/trainers/data/ace_trainer_jose.json similarity index 100% rename from res/trainers/trainer_ace_trainer_jose.json rename to res/trainers/data/ace_trainer_jose.json diff --git a/res/trainers/trainer_ace_trainer_kassandra.json b/res/trainers/data/ace_trainer_kassandra.json similarity index 100% rename from res/trainers/trainer_ace_trainer_kassandra.json rename to res/trainers/data/ace_trainer_kassandra.json diff --git a/res/trainers/trainer_ace_trainer_keenan.json b/res/trainers/data/ace_trainer_keenan.json similarity index 100% rename from res/trainers/trainer_ace_trainer_keenan.json rename to res/trainers/data/ace_trainer_keenan.json diff --git a/res/trainers/trainer_ace_trainer_laura.json b/res/trainers/data/ace_trainer_laura.json similarity index 100% rename from res/trainers/trainer_ace_trainer_laura.json rename to res/trainers/data/ace_trainer_laura.json diff --git a/res/trainers/trainer_ace_trainer_maria.json b/res/trainers/data/ace_trainer_maria.json similarity index 100% rename from res/trainers/trainer_ace_trainer_maria.json rename to res/trainers/data/ace_trainer_maria.json diff --git a/res/trainers/trainer_ace_trainer_mariah.json b/res/trainers/data/ace_trainer_mariah.json similarity index 100% rename from res/trainers/trainer_ace_trainer_mariah.json rename to res/trainers/data/ace_trainer_mariah.json diff --git a/res/trainers/trainer_ace_trainer_maya.json b/res/trainers/data/ace_trainer_maya.json similarity index 100% rename from res/trainers/trainer_ace_trainer_maya.json rename to res/trainers/data/ace_trainer_maya.json diff --git a/res/trainers/trainer_ace_trainer_maya_rematch_1.json b/res/trainers/data/ace_trainer_maya_rematch_1.json similarity index 100% rename from res/trainers/trainer_ace_trainer_maya_rematch_1.json rename to res/trainers/data/ace_trainer_maya_rematch_1.json diff --git a/res/trainers/trainer_ace_trainer_maya_rematch_2.json b/res/trainers/data/ace_trainer_maya_rematch_2.json similarity index 100% rename from res/trainers/trainer_ace_trainer_maya_rematch_2.json rename to res/trainers/data/ace_trainer_maya_rematch_2.json diff --git a/res/trainers/trainer_ace_trainer_meagan.json b/res/trainers/data/ace_trainer_meagan.json similarity index 100% rename from res/trainers/trainer_ace_trainer_meagan.json rename to res/trainers/data/ace_trainer_meagan.json diff --git a/res/trainers/trainer_ace_trainer_micah.json b/res/trainers/data/ace_trainer_micah.json similarity index 100% rename from res/trainers/trainer_ace_trainer_micah.json rename to res/trainers/data/ace_trainer_micah.json diff --git a/res/trainers/trainer_ace_trainer_mikayla.json b/res/trainers/data/ace_trainer_mikayla.json similarity index 100% rename from res/trainers/trainer_ace_trainer_mikayla.json rename to res/trainers/data/ace_trainer_mikayla.json diff --git a/res/trainers/trainer_ace_trainer_moira.json b/res/trainers/data/ace_trainer_moira.json similarity index 100% rename from res/trainers/trainer_ace_trainer_moira.json rename to res/trainers/data/ace_trainer_moira.json diff --git a/res/trainers/trainer_ace_trainer_moira_rematch.json b/res/trainers/data/ace_trainer_moira_rematch.json similarity index 100% rename from res/trainers/trainer_ace_trainer_moira_rematch.json rename to res/trainers/data/ace_trainer_moira_rematch.json diff --git a/res/trainers/trainer_ace_trainer_monique.json b/res/trainers/data/ace_trainer_monique.json similarity index 100% rename from res/trainers/trainer_ace_trainer_monique.json rename to res/trainers/data/ace_trainer_monique.json diff --git a/res/trainers/trainer_ace_trainer_natasha.json b/res/trainers/data/ace_trainer_natasha.json similarity index 100% rename from res/trainers/trainer_ace_trainer_natasha.json rename to res/trainers/data/ace_trainer_natasha.json diff --git a/res/trainers/trainer_ace_trainer_olivia.json b/res/trainers/data/ace_trainer_olivia.json similarity index 100% rename from res/trainers/trainer_ace_trainer_olivia.json rename to res/trainers/data/ace_trainer_olivia.json diff --git a/res/trainers/trainer_ace_trainer_olivia_rematch.json b/res/trainers/data/ace_trainer_olivia_rematch.json similarity index 100% rename from res/trainers/trainer_ace_trainer_olivia_rematch.json rename to res/trainers/data/ace_trainer_olivia_rematch.json diff --git a/res/trainers/trainer_ace_trainer_omar.json b/res/trainers/data/ace_trainer_omar.json similarity index 100% rename from res/trainers/trainer_ace_trainer_omar.json rename to res/trainers/data/ace_trainer_omar.json diff --git a/res/trainers/trainer_ace_trainer_quinn.json b/res/trainers/data/ace_trainer_quinn.json similarity index 100% rename from res/trainers/trainer_ace_trainer_quinn.json rename to res/trainers/data/ace_trainer_quinn.json diff --git a/res/trainers/trainer_ace_trainer_rodolfo.json b/res/trainers/data/ace_trainer_rodolfo.json similarity index 100% rename from res/trainers/trainer_ace_trainer_rodolfo.json rename to res/trainers/data/ace_trainer_rodolfo.json diff --git a/res/trainers/trainer_ace_trainer_rodolfo_rematch.json b/res/trainers/data/ace_trainer_rodolfo_rematch.json similarity index 100% rename from res/trainers/trainer_ace_trainer_rodolfo_rematch.json rename to res/trainers/data/ace_trainer_rodolfo_rematch.json diff --git a/res/trainers/trainer_ace_trainer_ruben.json b/res/trainers/data/ace_trainer_ruben.json similarity index 100% rename from res/trainers/trainer_ace_trainer_ruben.json rename to res/trainers/data/ace_trainer_ruben.json diff --git a/res/trainers/trainer_ace_trainer_sandra.json b/res/trainers/data/ace_trainer_sandra.json similarity index 100% rename from res/trainers/trainer_ace_trainer_sandra.json rename to res/trainers/data/ace_trainer_sandra.json diff --git a/res/trainers/trainer_ace_trainer_saul.json b/res/trainers/data/ace_trainer_saul.json similarity index 100% rename from res/trainers/trainer_ace_trainer_saul.json rename to res/trainers/data/ace_trainer_saul.json diff --git a/res/trainers/trainer_ace_trainer_saul_rematch.json b/res/trainers/data/ace_trainer_saul_rematch.json similarity index 100% rename from res/trainers/trainer_ace_trainer_saul_rematch.json rename to res/trainers/data/ace_trainer_saul_rematch.json diff --git a/res/trainers/trainer_ace_trainer_savannah.json b/res/trainers/data/ace_trainer_savannah.json similarity index 100% rename from res/trainers/trainer_ace_trainer_savannah.json rename to res/trainers/data/ace_trainer_savannah.json diff --git a/res/trainers/trainer_ace_trainer_sergio.json b/res/trainers/data/ace_trainer_sergio.json similarity index 100% rename from res/trainers/trainer_ace_trainer_sergio.json rename to res/trainers/data/ace_trainer_sergio.json diff --git a/res/trainers/trainer_ace_trainer_shannon.json b/res/trainers/data/ace_trainer_shannon.json similarity index 100% rename from res/trainers/trainer_ace_trainer_shannon.json rename to res/trainers/data/ace_trainer_shannon.json diff --git a/res/trainers/trainer_ace_trainer_shannon_rematch.json b/res/trainers/data/ace_trainer_shannon_rematch.json similarity index 100% rename from res/trainers/trainer_ace_trainer_shannon_rematch.json rename to res/trainers/data/ace_trainer_shannon_rematch.json diff --git a/res/trainers/trainer_ace_trainer_skylar.json b/res/trainers/data/ace_trainer_skylar.json similarity index 100% rename from res/trainers/trainer_ace_trainer_skylar.json rename to res/trainers/data/ace_trainer_skylar.json diff --git a/res/trainers/trainer_ace_trainer_stefan.json b/res/trainers/data/ace_trainer_stefan.json similarity index 100% rename from res/trainers/trainer_ace_trainer_stefan.json rename to res/trainers/data/ace_trainer_stefan.json diff --git a/res/trainers/trainer_ace_trainer_sydney.json b/res/trainers/data/ace_trainer_sydney.json similarity index 100% rename from res/trainers/trainer_ace_trainer_sydney.json rename to res/trainers/data/ace_trainer_sydney.json diff --git a/res/trainers/trainer_ace_trainer_zachery.json b/res/trainers/data/ace_trainer_zachery.json similarity index 100% rename from res/trainers/trainer_ace_trainer_zachery.json rename to res/trainers/data/ace_trainer_zachery.json diff --git a/res/trainers/trainer_aroma_lady_alison.json b/res/trainers/data/aroma_lady_alison.json similarity index 100% rename from res/trainers/trainer_aroma_lady_alison.json rename to res/trainers/data/aroma_lady_alison.json diff --git a/res/trainers/trainer_aroma_lady_angela.json b/res/trainers/data/aroma_lady_angela.json similarity index 100% rename from res/trainers/trainer_aroma_lady_angela.json rename to res/trainers/data/aroma_lady_angela.json diff --git a/res/trainers/trainer_aroma_lady_elizabeth.json b/res/trainers/data/aroma_lady_elizabeth.json similarity index 100% rename from res/trainers/trainer_aroma_lady_elizabeth.json rename to res/trainers/data/aroma_lady_elizabeth.json diff --git a/res/trainers/trainer_aroma_lady_elizabeth_rematch_1.json b/res/trainers/data/aroma_lady_elizabeth_rematch_1.json similarity index 100% rename from res/trainers/trainer_aroma_lady_elizabeth_rematch_1.json rename to res/trainers/data/aroma_lady_elizabeth_rematch_1.json diff --git a/res/trainers/trainer_aroma_lady_elizabeth_rematch_2.json b/res/trainers/data/aroma_lady_elizabeth_rematch_2.json similarity index 100% rename from res/trainers/trainer_aroma_lady_elizabeth_rematch_2.json rename to res/trainers/data/aroma_lady_elizabeth_rematch_2.json diff --git a/res/trainers/trainer_aroma_lady_elizabeth_rematch_3.json b/res/trainers/data/aroma_lady_elizabeth_rematch_3.json similarity index 100% rename from res/trainers/trainer_aroma_lady_elizabeth_rematch_3.json rename to res/trainers/data/aroma_lady_elizabeth_rematch_3.json diff --git a/res/trainers/trainer_aroma_lady_hannah.json b/res/trainers/data/aroma_lady_hannah.json similarity index 100% rename from res/trainers/trainer_aroma_lady_hannah.json rename to res/trainers/data/aroma_lady_hannah.json diff --git a/res/trainers/trainer_aroma_lady_jenna.json b/res/trainers/data/aroma_lady_jenna.json similarity index 100% rename from res/trainers/trainer_aroma_lady_jenna.json rename to res/trainers/data/aroma_lady_jenna.json diff --git a/res/trainers/trainer_aroma_lady_taylor.json b/res/trainers/data/aroma_lady_taylor.json similarity index 100% rename from res/trainers/trainer_aroma_lady_taylor.json rename to res/trainers/data/aroma_lady_taylor.json diff --git a/res/trainers/trainer_artist_ismael.json b/res/trainers/data/artist_ismael.json similarity index 100% rename from res/trainers/trainer_artist_ismael.json rename to res/trainers/data/artist_ismael.json diff --git a/res/trainers/trainer_artist_william.json b/res/trainers/data/artist_william.json similarity index 100% rename from res/trainers/trainer_artist_william.json rename to res/trainers/data/artist_william.json diff --git a/res/trainers/trainer_artist_william_rematch_1.json b/res/trainers/data/artist_william_rematch_1.json similarity index 100% rename from res/trainers/trainer_artist_william_rematch_1.json rename to res/trainers/data/artist_william_rematch_1.json diff --git a/res/trainers/trainer_artist_william_rematch_2.json b/res/trainers/data/artist_william_rematch_2.json similarity index 100% rename from res/trainers/trainer_artist_william_rematch_2.json rename to res/trainers/data/artist_william_rematch_2.json diff --git a/res/trainers/trainer_artist_william_rematch_3.json b/res/trainers/data/artist_william_rematch_3.json similarity index 100% rename from res/trainers/trainer_artist_william_rematch_3.json rename to res/trainers/data/artist_william_rematch_3.json diff --git a/res/trainers/trainer_battle_girl_helen.json b/res/trainers/data/battle_girl_helen.json similarity index 100% rename from res/trainers/trainer_battle_girl_helen.json rename to res/trainers/data/battle_girl_helen.json diff --git a/res/trainers/trainer_battle_girl_helen_rematch_1.json b/res/trainers/data/battle_girl_helen_rematch_1.json similarity index 100% rename from res/trainers/trainer_battle_girl_helen_rematch_1.json rename to res/trainers/data/battle_girl_helen_rematch_1.json diff --git a/res/trainers/trainer_battle_girl_helen_rematch_2.json b/res/trainers/data/battle_girl_helen_rematch_2.json similarity index 100% rename from res/trainers/trainer_battle_girl_helen_rematch_2.json rename to res/trainers/data/battle_girl_helen_rematch_2.json diff --git a/res/trainers/trainer_battle_girl_helen_rematch_3.json b/res/trainers/data/battle_girl_helen_rematch_3.json similarity index 100% rename from res/trainers/trainer_battle_girl_helen_rematch_3.json rename to res/trainers/data/battle_girl_helen_rematch_3.json diff --git a/res/trainers/trainer_battle_girl_kelsey.json b/res/trainers/data/battle_girl_kelsey.json similarity index 100% rename from res/trainers/trainer_battle_girl_kelsey.json rename to res/trainers/data/battle_girl_kelsey.json diff --git a/res/trainers/trainer_battle_girl_tyler.json b/res/trainers/data/battle_girl_tyler.json similarity index 100% rename from res/trainers/trainer_battle_girl_tyler.json rename to res/trainers/data/battle_girl_tyler.json diff --git a/res/trainers/trainer_beauty_cyndy.json b/res/trainers/data/beauty_cyndy.json similarity index 100% rename from res/trainers/trainer_beauty_cyndy.json rename to res/trainers/data/beauty_cyndy.json diff --git a/res/trainers/trainer_beauty_cyndy_rematch_1.json b/res/trainers/data/beauty_cyndy_rematch_1.json similarity index 100% rename from res/trainers/trainer_beauty_cyndy_rematch_1.json rename to res/trainers/data/beauty_cyndy_rematch_1.json diff --git a/res/trainers/trainer_beauty_cyndy_rematch_2.json b/res/trainers/data/beauty_cyndy_rematch_2.json similarity index 100% rename from res/trainers/trainer_beauty_cyndy_rematch_2.json rename to res/trainers/data/beauty_cyndy_rematch_2.json diff --git a/res/trainers/trainer_beauty_devon.json b/res/trainers/data/beauty_devon.json similarity index 100% rename from res/trainers/trainer_beauty_devon.json rename to res/trainers/data/beauty_devon.json diff --git a/res/trainers/trainer_beauty_gabriella.json b/res/trainers/data/beauty_gabriella.json similarity index 100% rename from res/trainers/trainer_beauty_gabriella.json rename to res/trainers/data/beauty_gabriella.json diff --git a/res/trainers/trainer_beauty_harley.json b/res/trainers/data/beauty_harley.json similarity index 100% rename from res/trainers/trainer_beauty_harley.json rename to res/trainers/data/beauty_harley.json diff --git a/res/trainers/trainer_beauty_lindsay.json b/res/trainers/data/beauty_lindsay.json similarity index 100% rename from res/trainers/trainer_beauty_lindsay.json rename to res/trainers/data/beauty_lindsay.json diff --git a/res/trainers/trainer_beauty_nicola.json b/res/trainers/data/beauty_nicola.json similarity index 100% rename from res/trainers/trainer_beauty_nicola.json rename to res/trainers/data/beauty_nicola.json diff --git a/res/trainers/trainer_belle_and_pa_ava_and_matt.json b/res/trainers/data/belle_and_pa_ava_and_matt.json similarity index 100% rename from res/trainers/trainer_belle_and_pa_ava_and_matt.json rename to res/trainers/data/belle_and_pa_ava_and_matt.json diff --git a/res/trainers/trainer_belle_and_pa_beth_and_bob.json b/res/trainers/data/belle_and_pa_beth_and_bob.json similarity index 100% rename from res/trainers/trainer_belle_and_pa_beth_and_bob.json rename to res/trainers/data/belle_and_pa_beth_and_bob.json diff --git a/res/trainers/trainer_bird_keeper_alexandra.json b/res/trainers/data/bird_keeper_alexandra.json similarity index 100% rename from res/trainers/trainer_bird_keeper_alexandra.json rename to res/trainers/data/bird_keeper_alexandra.json diff --git a/res/trainers/trainer_bird_keeper_audrey.json b/res/trainers/data/bird_keeper_audrey.json similarity index 100% rename from res/trainers/trainer_bird_keeper_audrey.json rename to res/trainers/data/bird_keeper_audrey.json diff --git a/res/trainers/trainer_bird_keeper_audrey_rematch.json b/res/trainers/data/bird_keeper_audrey_rematch.json similarity index 100% rename from res/trainers/trainer_bird_keeper_audrey_rematch.json rename to res/trainers/data/bird_keeper_audrey_rematch.json diff --git a/res/trainers/trainer_bird_keeper_autumn.json b/res/trainers/data/bird_keeper_autumn.json similarity index 100% rename from res/trainers/trainer_bird_keeper_autumn.json rename to res/trainers/data/bird_keeper_autumn.json diff --git a/res/trainers/trainer_bird_keeper_brianna.json b/res/trainers/data/bird_keeper_brianna.json similarity index 100% rename from res/trainers/trainer_bird_keeper_brianna.json rename to res/trainers/data/bird_keeper_brianna.json diff --git a/res/trainers/trainer_bird_keeper_brianna_rematch_1.json b/res/trainers/data/bird_keeper_brianna_rematch_1.json similarity index 100% rename from res/trainers/trainer_bird_keeper_brianna_rematch_1.json rename to res/trainers/data/bird_keeper_brianna_rematch_1.json diff --git a/res/trainers/trainer_bird_keeper_brianna_rematch_2.json b/res/trainers/data/bird_keeper_brianna_rematch_2.json similarity index 100% rename from res/trainers/trainer_bird_keeper_brianna_rematch_2.json rename to res/trainers/data/bird_keeper_brianna_rematch_2.json diff --git a/res/trainers/trainer_bird_keeper_geneva.json b/res/trainers/data/bird_keeper_geneva.json similarity index 100% rename from res/trainers/trainer_bird_keeper_geneva.json rename to res/trainers/data/bird_keeper_geneva.json diff --git a/res/trainers/trainer_bird_keeper_hana.json b/res/trainers/data/bird_keeper_hana.json similarity index 100% rename from res/trainers/trainer_bird_keeper_hana.json rename to res/trainers/data/bird_keeper_hana.json diff --git a/res/trainers/trainer_bird_keeper_katherine.json b/res/trainers/data/bird_keeper_katherine.json similarity index 100% rename from res/trainers/trainer_bird_keeper_katherine.json rename to res/trainers/data/bird_keeper_katherine.json diff --git a/res/trainers/trainer_bird_keeper_krystal.json b/res/trainers/data/bird_keeper_krystal.json similarity index 100% rename from res/trainers/trainer_bird_keeper_krystal.json rename to res/trainers/data/bird_keeper_krystal.json diff --git a/res/trainers/trainer_black_belt_adam.json b/res/trainers/data/black_belt_adam.json similarity index 100% rename from res/trainers/trainer_black_belt_adam.json rename to res/trainers/data/black_belt_adam.json diff --git a/res/trainers/trainer_black_belt_carl.json b/res/trainers/data/black_belt_carl.json similarity index 100% rename from res/trainers/trainer_black_belt_carl.json rename to res/trainers/data/black_belt_carl.json diff --git a/res/trainers/trainer_black_belt_colby.json b/res/trainers/data/black_belt_colby.json similarity index 100% rename from res/trainers/trainer_black_belt_colby.json rename to res/trainers/data/black_belt_colby.json diff --git a/res/trainers/trainer_black_belt_darren.json b/res/trainers/data/black_belt_darren.json similarity index 100% rename from res/trainers/trainer_black_belt_darren.json rename to res/trainers/data/black_belt_darren.json diff --git a/res/trainers/trainer_black_belt_david.json b/res/trainers/data/black_belt_david.json similarity index 100% rename from res/trainers/trainer_black_belt_david.json rename to res/trainers/data/black_belt_david.json diff --git a/res/trainers/trainer_black_belt_davon.json b/res/trainers/data/black_belt_davon.json similarity index 100% rename from res/trainers/trainer_black_belt_davon.json rename to res/trainers/data/black_belt_davon.json diff --git a/res/trainers/trainer_black_belt_davon_rematch.json b/res/trainers/data/black_belt_davon_rematch.json similarity index 100% rename from res/trainers/trainer_black_belt_davon_rematch.json rename to res/trainers/data/black_belt_davon_rematch.json diff --git a/res/trainers/trainer_black_belt_derek.json b/res/trainers/data/black_belt_derek.json similarity index 100% rename from res/trainers/trainer_black_belt_derek.json rename to res/trainers/data/black_belt_derek.json diff --git a/res/trainers/trainer_black_belt_eddie.json b/res/trainers/data/black_belt_eddie.json similarity index 100% rename from res/trainers/trainer_black_belt_eddie.json rename to res/trainers/data/black_belt_eddie.json diff --git a/res/trainers/trainer_black_belt_gregory.json b/res/trainers/data/black_belt_gregory.json similarity index 100% rename from res/trainers/trainer_black_belt_gregory.json rename to res/trainers/data/black_belt_gregory.json diff --git a/res/trainers/trainer_black_belt_griffin.json b/res/trainers/data/black_belt_griffin.json similarity index 100% rename from res/trainers/trainer_black_belt_griffin.json rename to res/trainers/data/black_belt_griffin.json diff --git a/res/trainers/trainer_black_belt_jarrett.json b/res/trainers/data/black_belt_jarrett.json similarity index 100% rename from res/trainers/trainer_black_belt_jarrett.json rename to res/trainers/data/black_belt_jarrett.json diff --git a/res/trainers/trainer_black_belt_jeffery.json b/res/trainers/data/black_belt_jeffery.json similarity index 100% rename from res/trainers/trainer_black_belt_jeffery.json rename to res/trainers/data/black_belt_jeffery.json diff --git a/res/trainers/trainer_black_belt_kendal.json b/res/trainers/data/black_belt_kendal.json similarity index 100% rename from res/trainers/trainer_black_belt_kendal.json rename to res/trainers/data/black_belt_kendal.json diff --git a/res/trainers/trainer_black_belt_kyle.json b/res/trainers/data/black_belt_kyle.json similarity index 100% rename from res/trainers/trainer_black_belt_kyle.json rename to res/trainers/data/black_belt_kyle.json diff --git a/res/trainers/trainer_black_belt_luke.json b/res/trainers/data/black_belt_luke.json similarity index 100% rename from res/trainers/trainer_black_belt_luke.json rename to res/trainers/data/black_belt_luke.json diff --git a/res/trainers/trainer_black_belt_miles.json b/res/trainers/data/black_belt_miles.json similarity index 100% rename from res/trainers/trainer_black_belt_miles.json rename to res/trainers/data/black_belt_miles.json diff --git a/res/trainers/trainer_black_belt_nathaniel.json b/res/trainers/data/black_belt_nathaniel.json similarity index 100% rename from res/trainers/trainer_black_belt_nathaniel.json rename to res/trainers/data/black_belt_nathaniel.json diff --git a/res/trainers/trainer_black_belt_philip.json b/res/trainers/data/black_belt_philip.json similarity index 100% rename from res/trainers/trainer_black_belt_philip.json rename to res/trainers/data/black_belt_philip.json diff --git a/res/trainers/trainer_black_belt_philip_rematch.json b/res/trainers/data/black_belt_philip_rematch.json similarity index 100% rename from res/trainers/trainer_black_belt_philip_rematch.json rename to res/trainers/data/black_belt_philip_rematch.json diff --git a/res/trainers/trainer_black_belt_rafael.json b/res/trainers/data/black_belt_rafael.json similarity index 100% rename from res/trainers/trainer_black_belt_rafael.json rename to res/trainers/data/black_belt_rafael.json diff --git a/res/trainers/trainer_black_belt_ray.json b/res/trainers/data/black_belt_ray.json similarity index 100% rename from res/trainers/trainer_black_belt_ray.json rename to res/trainers/data/black_belt_ray.json diff --git a/res/trainers/trainer_black_belt_ricky.json b/res/trainers/data/black_belt_ricky.json similarity index 100% rename from res/trainers/trainer_black_belt_ricky.json rename to res/trainers/data/black_belt_ricky.json diff --git a/res/trainers/trainer_black_belt_sean.json b/res/trainers/data/black_belt_sean.json similarity index 100% rename from res/trainers/trainer_black_belt_sean.json rename to res/trainers/data/black_belt_sean.json diff --git a/res/trainers/trainer_black_belt_willie.json b/res/trainers/data/black_belt_willie.json similarity index 100% rename from res/trainers/trainer_black_belt_willie.json rename to res/trainers/data/black_belt_willie.json diff --git a/res/trainers/trainer_breeder_albert.json b/res/trainers/data/breeder_albert.json similarity index 100% rename from res/trainers/trainer_breeder_albert.json rename to res/trainers/data/breeder_albert.json diff --git a/res/trainers/trainer_breeder_albert_rematch_1.json b/res/trainers/data/breeder_albert_rematch_1.json similarity index 100% rename from res/trainers/trainer_breeder_albert_rematch_1.json rename to res/trainers/data/breeder_albert_rematch_1.json diff --git a/res/trainers/trainer_breeder_albert_rematch_2.json b/res/trainers/data/breeder_albert_rematch_2.json similarity index 100% rename from res/trainers/trainer_breeder_albert_rematch_2.json rename to res/trainers/data/breeder_albert_rematch_2.json diff --git a/res/trainers/trainer_breeder_albert_rematch_3.json b/res/trainers/data/breeder_albert_rematch_3.json similarity index 100% rename from res/trainers/trainer_breeder_albert_rematch_3.json rename to res/trainers/data/breeder_albert_rematch_3.json diff --git a/res/trainers/trainer_breeder_amber.json b/res/trainers/data/breeder_amber.json similarity index 100% rename from res/trainers/trainer_breeder_amber.json rename to res/trainers/data/breeder_amber.json diff --git a/res/trainers/trainer_breeder_jennifer.json b/res/trainers/data/breeder_jennifer.json similarity index 100% rename from res/trainers/trainer_breeder_jennifer.json rename to res/trainers/data/breeder_jennifer.json diff --git a/res/trainers/trainer_breeder_jennifer_rematch_1.json b/res/trainers/data/breeder_jennifer_rematch_1.json similarity index 100% rename from res/trainers/trainer_breeder_jennifer_rematch_1.json rename to res/trainers/data/breeder_jennifer_rematch_1.json diff --git a/res/trainers/trainer_breeder_jennifer_rematch_2.json b/res/trainers/data/breeder_jennifer_rematch_2.json similarity index 100% rename from res/trainers/trainer_breeder_jennifer_rematch_2.json rename to res/trainers/data/breeder_jennifer_rematch_2.json diff --git a/res/trainers/trainer_breeder_jennifer_rematch_3.json b/res/trainers/data/breeder_jennifer_rematch_3.json similarity index 100% rename from res/trainers/trainer_breeder_jennifer_rematch_3.json rename to res/trainers/data/breeder_jennifer_rematch_3.json diff --git a/res/trainers/trainer_breeder_kahlil.json b/res/trainers/data/breeder_kahlil.json similarity index 100% rename from res/trainers/trainer_breeder_kahlil.json rename to res/trainers/data/breeder_kahlil.json diff --git a/res/trainers/trainer_breeder_kaylee.json b/res/trainers/data/breeder_kaylee.json similarity index 100% rename from res/trainers/trainer_breeder_kaylee.json rename to res/trainers/data/breeder_kaylee.json diff --git a/res/trainers/trainer_buck_battleground.json b/res/trainers/data/buck_battleground.json similarity index 100% rename from res/trainers/trainer_buck_battleground.json rename to res/trainers/data/buck_battleground.json diff --git a/res/trainers/trainer_buck_stark_mountain.json b/res/trainers/data/buck_stark_mountain.json similarity index 100% rename from res/trainers/trainer_buck_stark_mountain.json rename to res/trainers/data/buck_stark_mountain.json diff --git a/res/trainers/trainer_bug_catcher_brandon.json b/res/trainers/data/bug_catcher_brandon.json similarity index 100% rename from res/trainers/trainer_bug_catcher_brandon.json rename to res/trainers/data/bug_catcher_brandon.json diff --git a/res/trainers/trainer_bug_catcher_brandon_rematch_1.json b/res/trainers/data/bug_catcher_brandon_rematch_1.json similarity index 100% rename from res/trainers/trainer_bug_catcher_brandon_rematch_1.json rename to res/trainers/data/bug_catcher_brandon_rematch_1.json diff --git a/res/trainers/trainer_bug_catcher_brandon_rematch_2.json b/res/trainers/data/bug_catcher_brandon_rematch_2.json similarity index 100% rename from res/trainers/trainer_bug_catcher_brandon_rematch_2.json rename to res/trainers/data/bug_catcher_brandon_rematch_2.json diff --git a/res/trainers/trainer_bug_catcher_brandon_rematch_3.json b/res/trainers/data/bug_catcher_brandon_rematch_3.json similarity index 100% rename from res/trainers/trainer_bug_catcher_brandon_rematch_3.json rename to res/trainers/data/bug_catcher_brandon_rematch_3.json diff --git a/res/trainers/trainer_bug_catcher_donald.json b/res/trainers/data/bug_catcher_donald.json similarity index 100% rename from res/trainers/trainer_bug_catcher_donald.json rename to res/trainers/data/bug_catcher_donald.json diff --git a/res/trainers/trainer_bug_catcher_jack.json b/res/trainers/data/bug_catcher_jack.json similarity index 100% rename from res/trainers/trainer_bug_catcher_jack.json rename to res/trainers/data/bug_catcher_jack.json diff --git a/res/trainers/trainer_bug_catcher_phillip.json b/res/trainers/data/bug_catcher_phillip.json similarity index 100% rename from res/trainers/trainer_bug_catcher_phillip.json rename to res/trainers/data/bug_catcher_phillip.json diff --git a/res/trainers/trainer_cameraman_darryl.json b/res/trainers/data/cameraman_darryl.json similarity index 100% rename from res/trainers/trainer_cameraman_darryl.json rename to res/trainers/data/cameraman_darryl.json diff --git a/res/trainers/trainer_cameraman_tevin.json b/res/trainers/data/cameraman_tevin.json similarity index 100% rename from res/trainers/trainer_cameraman_tevin.json rename to res/trainers/data/cameraman_tevin.json diff --git a/res/trainers/trainer_cameraman_tevin_rematch_1.json b/res/trainers/data/cameraman_tevin_rematch_1.json similarity index 100% rename from res/trainers/trainer_cameraman_tevin_rematch_1.json rename to res/trainers/data/cameraman_tevin_rematch_1.json diff --git a/res/trainers/trainer_cameraman_tevin_rematch_2.json b/res/trainers/data/cameraman_tevin_rematch_2.json similarity index 100% rename from res/trainers/trainer_cameraman_tevin_rematch_2.json rename to res/trainers/data/cameraman_tevin_rematch_2.json diff --git a/res/trainers/trainer_cameraman_tevin_rematch_3.json b/res/trainers/data/cameraman_tevin_rematch_3.json similarity index 100% rename from res/trainers/trainer_cameraman_tevin_rematch_3.json rename to res/trainers/data/cameraman_tevin_rematch_3.json diff --git a/res/trainers/trainer_cameraman_tevin_rematch_4.json b/res/trainers/data/cameraman_tevin_rematch_4.json similarity index 100% rename from res/trainers/trainer_cameraman_tevin_rematch_4.json rename to res/trainers/data/cameraman_tevin_rematch_4.json diff --git a/res/trainers/trainer_camper_anthony.json b/res/trainers/data/camper_anthony.json similarity index 100% rename from res/trainers/trainer_camper_anthony.json rename to res/trainers/data/camper_anthony.json diff --git a/res/trainers/trainer_camper_curtis.json b/res/trainers/data/camper_curtis.json similarity index 100% rename from res/trainers/trainer_camper_curtis.json rename to res/trainers/data/camper_curtis.json diff --git a/res/trainers/trainer_camper_diego.json b/res/trainers/data/camper_diego.json similarity index 100% rename from res/trainers/trainer_camper_diego.json rename to res/trainers/data/camper_diego.json diff --git a/res/trainers/trainer_camper_drew.json b/res/trainers/data/camper_drew.json similarity index 100% rename from res/trainers/trainer_camper_drew.json rename to res/trainers/data/camper_drew.json diff --git a/res/trainers/trainer_camper_jacob.json b/res/trainers/data/camper_jacob.json similarity index 100% rename from res/trainers/trainer_camper_jacob.json rename to res/trainers/data/camper_jacob.json diff --git a/res/trainers/trainer_camper_lawrence.json b/res/trainers/data/camper_lawrence.json similarity index 100% rename from res/trainers/trainer_camper_lawrence.json rename to res/trainers/data/camper_lawrence.json diff --git a/res/trainers/trainer_camper_parker.json b/res/trainers/data/camper_parker.json similarity index 100% rename from res/trainers/trainer_camper_parker.json rename to res/trainers/data/camper_parker.json diff --git a/res/trainers/trainer_camper_zackary.json b/res/trainers/data/camper_zackary.json similarity index 100% rename from res/trainers/trainer_camper_zackary.json rename to res/trainers/data/camper_zackary.json diff --git a/res/trainers/trainer_camper_zackary_rematch_1.json b/res/trainers/data/camper_zackary_rematch_1.json similarity index 100% rename from res/trainers/trainer_camper_zackary_rematch_1.json rename to res/trainers/data/camper_zackary_rematch_1.json diff --git a/res/trainers/trainer_camper_zackary_rematch_2.json b/res/trainers/data/camper_zackary_rematch_2.json similarity index 100% rename from res/trainers/trainer_camper_zackary_rematch_2.json rename to res/trainers/data/camper_zackary_rematch_2.json diff --git a/res/trainers/trainer_camper_zackary_rematch_3.json b/res/trainers/data/camper_zackary_rematch_3.json similarity index 100% rename from res/trainers/trainer_camper_zackary_rematch_3.json rename to res/trainers/data/camper_zackary_rematch_3.json diff --git a/res/trainers/trainer_champion_cynthia.json b/res/trainers/data/champion_cynthia.json similarity index 100% rename from res/trainers/trainer_champion_cynthia.json rename to res/trainers/data/champion_cynthia.json diff --git a/res/trainers/trainer_champion_cynthia_rematch.json b/res/trainers/data/champion_cynthia_rematch.json similarity index 100% rename from res/trainers/trainer_champion_cynthia_rematch.json rename to res/trainers/data/champion_cynthia_rematch.json diff --git a/res/trainers/trainer_cheryl_battleground.json b/res/trainers/data/cheryl_battleground.json similarity index 100% rename from res/trainers/trainer_cheryl_battleground.json rename to res/trainers/data/cheryl_battleground.json diff --git a/res/trainers/trainer_cheryl_eterna_forest.json b/res/trainers/data/cheryl_eterna_forest.json similarity index 100% rename from res/trainers/trainer_cheryl_eterna_forest.json rename to res/trainers/data/cheryl_eterna_forest.json diff --git a/res/trainers/trainer_clown_lee.json b/res/trainers/data/clown_lee.json similarity index 100% rename from res/trainers/trainer_clown_lee.json rename to res/trainers/data/clown_lee.json diff --git a/res/trainers/trainer_clown_lee_rematch_1.json b/res/trainers/data/clown_lee_rematch_1.json similarity index 100% rename from res/trainers/trainer_clown_lee_rematch_1.json rename to res/trainers/data/clown_lee_rematch_1.json diff --git a/res/trainers/trainer_clown_lee_rematch_2.json b/res/trainers/data/clown_lee_rematch_2.json similarity index 100% rename from res/trainers/trainer_clown_lee_rematch_2.json rename to res/trainers/data/clown_lee_rematch_2.json diff --git a/res/trainers/trainer_clown_lee_rematch_3.json b/res/trainers/data/clown_lee_rematch_3.json similarity index 100% rename from res/trainers/trainer_clown_lee_rematch_3.json rename to res/trainers/data/clown_lee_rematch_3.json diff --git a/res/trainers/trainer_clown_lee_rematch_4.json b/res/trainers/data/clown_lee_rematch_4.json similarity index 100% rename from res/trainers/trainer_clown_lee_rematch_4.json rename to res/trainers/data/clown_lee_rematch_4.json diff --git a/res/trainers/trainer_collector_brady.json b/res/trainers/data/collector_brady.json similarity index 100% rename from res/trainers/trainer_collector_brady.json rename to res/trainers/data/collector_brady.json diff --git a/res/trainers/trainer_collector_dean.json b/res/trainers/data/collector_dean.json similarity index 100% rename from res/trainers/trainer_collector_dean.json rename to res/trainers/data/collector_dean.json diff --git a/res/trainers/trainer_collector_douglas.json b/res/trainers/data/collector_douglas.json similarity index 100% rename from res/trainers/trainer_collector_douglas.json rename to res/trainers/data/collector_douglas.json diff --git a/res/trainers/trainer_collector_edwin.json b/res/trainers/data/collector_edwin.json similarity index 100% rename from res/trainers/trainer_collector_edwin.json rename to res/trainers/data/collector_edwin.json diff --git a/res/trainers/trainer_collector_eugene.json b/res/trainers/data/collector_eugene.json similarity index 100% rename from res/trainers/trainer_collector_eugene.json rename to res/trainers/data/collector_eugene.json diff --git a/res/trainers/trainer_collector_fernando.json b/res/trainers/data/collector_fernando.json similarity index 100% rename from res/trainers/trainer_collector_fernando.json rename to res/trainers/data/collector_fernando.json diff --git a/res/trainers/trainer_collector_ivan.json b/res/trainers/data/collector_ivan.json similarity index 100% rename from res/trainers/trainer_collector_ivan.json rename to res/trainers/data/collector_ivan.json diff --git a/res/trainers/trainer_collector_ivan_rematch.json b/res/trainers/data/collector_ivan_rematch.json similarity index 100% rename from res/trainers/trainer_collector_ivan_rematch.json rename to res/trainers/data/collector_ivan_rematch.json diff --git a/res/trainers/trainer_collector_jamal.json b/res/trainers/data/collector_jamal.json similarity index 100% rename from res/trainers/trainer_collector_jamal.json rename to res/trainers/data/collector_jamal.json diff --git a/res/trainers/trainer_collector_terry.json b/res/trainers/data/collector_terry.json similarity index 100% rename from res/trainers/trainer_collector_terry.json rename to res/trainers/data/collector_terry.json diff --git a/res/trainers/trainer_commander_jupiter_spear_pillar.json b/res/trainers/data/commander_jupiter_spear_pillar.json similarity index 100% rename from res/trainers/trainer_commander_jupiter_spear_pillar.json rename to res/trainers/data/commander_jupiter_spear_pillar.json diff --git a/res/trainers/trainer_commander_jupiter_stark_mountain.json b/res/trainers/data/commander_jupiter_stark_mountain.json similarity index 100% rename from res/trainers/trainer_commander_jupiter_stark_mountain.json rename to res/trainers/data/commander_jupiter_stark_mountain.json diff --git a/res/trainers/trainer_commander_jupiter_team_galactic_eterna_building.json b/res/trainers/data/commander_jupiter_team_galactic_eterna_building.json similarity index 100% rename from res/trainers/trainer_commander_jupiter_team_galactic_eterna_building.json rename to res/trainers/data/commander_jupiter_team_galactic_eterna_building.json diff --git a/res/trainers/trainer_commander_mars_lake_verity.json b/res/trainers/data/commander_mars_lake_verity.json similarity index 100% rename from res/trainers/trainer_commander_mars_lake_verity.json rename to res/trainers/data/commander_mars_lake_verity.json diff --git a/res/trainers/trainer_commander_mars_spear_pillar.json b/res/trainers/data/commander_mars_spear_pillar.json similarity index 100% rename from res/trainers/trainer_commander_mars_spear_pillar.json rename to res/trainers/data/commander_mars_spear_pillar.json diff --git a/res/trainers/trainer_commander_mars_stark_mountain.json b/res/trainers/data/commander_mars_stark_mountain.json similarity index 100% rename from res/trainers/trainer_commander_mars_stark_mountain.json rename to res/trainers/data/commander_mars_stark_mountain.json diff --git a/res/trainers/trainer_commander_mars_valley_windworks.json b/res/trainers/data/commander_mars_valley_windworks.json similarity index 100% rename from res/trainers/trainer_commander_mars_valley_windworks.json rename to res/trainers/data/commander_mars_valley_windworks.json diff --git a/res/trainers/trainer_commander_saturn_galactic_hq.json b/res/trainers/data/commander_saturn_galactic_hq.json similarity index 100% rename from res/trainers/trainer_commander_saturn_galactic_hq.json rename to res/trainers/data/commander_saturn_galactic_hq.json diff --git a/res/trainers/trainer_commander_saturn_valor_cavern.json b/res/trainers/data/commander_saturn_valor_cavern.json similarity index 100% rename from res/trainers/trainer_commander_saturn_valor_cavern.json rename to res/trainers/data/commander_saturn_valor_cavern.json diff --git a/res/trainers/trainer_cowgirl_shelley.json b/res/trainers/data/cowgirl_shelley.json similarity index 100% rename from res/trainers/trainer_cowgirl_shelley.json rename to res/trainers/data/cowgirl_shelley.json diff --git a/res/trainers/trainer_cyclist_axel.json b/res/trainers/data/cyclist_axel.json similarity index 100% rename from res/trainers/trainer_cyclist_axel.json rename to res/trainers/data/cyclist_axel.json diff --git a/res/trainers/trainer_cyclist_james.json b/res/trainers/data/cyclist_james.json similarity index 100% rename from res/trainers/trainer_cyclist_james.json rename to res/trainers/data/cyclist_james.json diff --git a/res/trainers/trainer_cyclist_john.json b/res/trainers/data/cyclist_john.json similarity index 100% rename from res/trainers/trainer_cyclist_john.json rename to res/trainers/data/cyclist_john.json diff --git a/res/trainers/trainer_cyclist_john_rematch_1.json b/res/trainers/data/cyclist_john_rematch_1.json similarity index 100% rename from res/trainers/trainer_cyclist_john_rematch_1.json rename to res/trainers/data/cyclist_john_rematch_1.json diff --git a/res/trainers/trainer_cyclist_john_rematch_2.json b/res/trainers/data/cyclist_john_rematch_2.json similarity index 100% rename from res/trainers/trainer_cyclist_john_rematch_2.json rename to res/trainers/data/cyclist_john_rematch_2.json diff --git a/res/trainers/trainer_cyclist_john_rematch_3.json b/res/trainers/data/cyclist_john_rematch_3.json similarity index 100% rename from res/trainers/trainer_cyclist_john_rematch_3.json rename to res/trainers/data/cyclist_john_rematch_3.json diff --git a/res/trainers/trainer_cyclist_kayla.json b/res/trainers/data/cyclist_kayla.json similarity index 100% rename from res/trainers/trainer_cyclist_kayla.json rename to res/trainers/data/cyclist_kayla.json diff --git a/res/trainers/trainer_cyclist_kayla_rematch_1.json b/res/trainers/data/cyclist_kayla_rematch_1.json similarity index 100% rename from res/trainers/trainer_cyclist_kayla_rematch_1.json rename to res/trainers/data/cyclist_kayla_rematch_1.json diff --git a/res/trainers/trainer_cyclist_kayla_rematch_2.json b/res/trainers/data/cyclist_kayla_rematch_2.json similarity index 100% rename from res/trainers/trainer_cyclist_kayla_rematch_2.json rename to res/trainers/data/cyclist_kayla_rematch_2.json diff --git a/res/trainers/trainer_cyclist_kayla_rematch_3.json b/res/trainers/data/cyclist_kayla_rematch_3.json similarity index 100% rename from res/trainers/trainer_cyclist_kayla_rematch_3.json rename to res/trainers/data/cyclist_kayla_rematch_3.json diff --git a/res/trainers/trainer_cyclist_megan.json b/res/trainers/data/cyclist_megan.json similarity index 100% rename from res/trainers/trainer_cyclist_megan.json rename to res/trainers/data/cyclist_megan.json diff --git a/res/trainers/trainer_cyclist_nicole.json b/res/trainers/data/cyclist_nicole.json similarity index 100% rename from res/trainers/trainer_cyclist_nicole.json rename to res/trainers/data/cyclist_nicole.json diff --git a/res/trainers/trainer_cyclist_rachel.json b/res/trainers/data/cyclist_rachel.json similarity index 100% rename from res/trainers/trainer_cyclist_rachel.json rename to res/trainers/data/cyclist_rachel.json diff --git a/res/trainers/trainer_cyclist_ryan.json b/res/trainers/data/cyclist_ryan.json similarity index 100% rename from res/trainers/trainer_cyclist_ryan.json rename to res/trainers/data/cyclist_ryan.json diff --git a/res/trainers/trainer_dawn_jubilife_city_chimchar.json b/res/trainers/data/dawn_jubilife_city_chimchar.json similarity index 100% rename from res/trainers/trainer_dawn_jubilife_city_chimchar.json rename to res/trainers/data/dawn_jubilife_city_chimchar.json diff --git a/res/trainers/trainer_dawn_jubilife_city_piplup.json b/res/trainers/data/dawn_jubilife_city_piplup.json similarity index 100% rename from res/trainers/trainer_dawn_jubilife_city_piplup.json rename to res/trainers/data/dawn_jubilife_city_piplup.json diff --git a/res/trainers/trainer_dawn_jubilife_city_turtwig.json b/res/trainers/data/dawn_jubilife_city_turtwig.json similarity index 100% rename from res/trainers/trainer_dawn_jubilife_city_turtwig.json rename to res/trainers/data/dawn_jubilife_city_turtwig.json diff --git a/res/trainers/trainer_dawn_veilstone_city_chimchar.json b/res/trainers/data/dawn_veilstone_city_chimchar.json similarity index 100% rename from res/trainers/trainer_dawn_veilstone_city_chimchar.json rename to res/trainers/data/dawn_veilstone_city_chimchar.json diff --git a/res/trainers/trainer_dawn_veilstone_city_piplup.json b/res/trainers/data/dawn_veilstone_city_piplup.json similarity index 100% rename from res/trainers/trainer_dawn_veilstone_city_piplup.json rename to res/trainers/data/dawn_veilstone_city_piplup.json diff --git a/res/trainers/trainer_dawn_veilstone_city_turtwig.json b/res/trainers/data/dawn_veilstone_city_turtwig.json similarity index 100% rename from res/trainers/trainer_dawn_veilstone_city_turtwig.json rename to res/trainers/data/dawn_veilstone_city_turtwig.json diff --git a/res/trainers/trainer_double_team_al_and_kay.json b/res/trainers/data/double_team_al_and_kay.json similarity index 100% rename from res/trainers/trainer_double_team_al_and_kay.json rename to res/trainers/data/double_team_al_and_kay.json diff --git a/res/trainers/trainer_double_team_jo_and_pat.json b/res/trainers/data/double_team_jo_and_pat.json similarity index 100% rename from res/trainers/trainer_double_team_jo_and_pat.json rename to res/trainers/data/double_team_jo_and_pat.json diff --git a/res/trainers/trainer_double_team_zac_and_jen.json b/res/trainers/data/double_team_zac_and_jen.json similarity index 100% rename from res/trainers/trainer_double_team_zac_and_jen.json rename to res/trainers/data/double_team_zac_and_jen.json diff --git a/res/trainers/trainer_dragon_tamer_clinton.json b/res/trainers/data/dragon_tamer_clinton.json similarity index 100% rename from res/trainers/trainer_dragon_tamer_clinton.json rename to res/trainers/data/dragon_tamer_clinton.json diff --git a/res/trainers/trainer_dragon_tamer_darien.json b/res/trainers/data/dragon_tamer_darien.json similarity index 100% rename from res/trainers/trainer_dragon_tamer_darien.json rename to res/trainers/data/dragon_tamer_darien.json diff --git a/res/trainers/trainer_dragon_tamer_drake.json b/res/trainers/data/dragon_tamer_drake.json similarity index 100% rename from res/trainers/trainer_dragon_tamer_drake.json rename to res/trainers/data/dragon_tamer_drake.json diff --git a/res/trainers/trainer_dragon_tamer_geoffrey.json b/res/trainers/data/dragon_tamer_geoffrey.json similarity index 100% rename from res/trainers/trainer_dragon_tamer_geoffrey.json rename to res/trainers/data/dragon_tamer_geoffrey.json diff --git a/res/trainers/trainer_dragon_tamer_geoffrey_rematch.json b/res/trainers/data/dragon_tamer_geoffrey_rematch.json similarity index 100% rename from res/trainers/trainer_dragon_tamer_geoffrey_rematch.json rename to res/trainers/data/dragon_tamer_geoffrey_rematch.json diff --git a/res/trainers/trainer_dragon_tamer_hayden.json b/res/trainers/data/dragon_tamer_hayden.json similarity index 100% rename from res/trainers/trainer_dragon_tamer_hayden.json rename to res/trainers/data/dragon_tamer_hayden.json diff --git a/res/trainers/trainer_dragon_tamer_hayden_rematch.json b/res/trainers/data/dragon_tamer_hayden_rematch.json similarity index 100% rename from res/trainers/trainer_dragon_tamer_hayden_rematch.json rename to res/trainers/data/dragon_tamer_hayden_rematch.json diff --git a/res/trainers/trainer_dragon_tamer_joe.json b/res/trainers/data/dragon_tamer_joe.json similarity index 100% rename from res/trainers/trainer_dragon_tamer_joe.json rename to res/trainers/data/dragon_tamer_joe.json diff --git a/res/trainers/trainer_dragon_tamer_keegan.json b/res/trainers/data/dragon_tamer_keegan.json similarity index 100% rename from res/trainers/trainer_dragon_tamer_keegan.json rename to res/trainers/data/dragon_tamer_keegan.json diff --git a/res/trainers/trainer_dragon_tamer_kenny.json b/res/trainers/data/dragon_tamer_kenny.json similarity index 100% rename from res/trainers/trainer_dragon_tamer_kenny.json rename to res/trainers/data/dragon_tamer_kenny.json diff --git a/res/trainers/trainer_dragon_tamer_ondrej.json b/res/trainers/data/dragon_tamer_ondrej.json similarity index 100% rename from res/trainers/trainer_dragon_tamer_ondrej.json rename to res/trainers/data/dragon_tamer_ondrej.json diff --git a/res/trainers/trainer_dragon_tamer_patrick.json b/res/trainers/data/dragon_tamer_patrick.json similarity index 100% rename from res/trainers/trainer_dragon_tamer_patrick.json rename to res/trainers/data/dragon_tamer_patrick.json diff --git a/res/trainers/trainer_dragon_tamer_patrick_rematch_1.json b/res/trainers/data/dragon_tamer_patrick_rematch_1.json similarity index 100% rename from res/trainers/trainer_dragon_tamer_patrick_rematch_1.json rename to res/trainers/data/dragon_tamer_patrick_rematch_1.json diff --git a/res/trainers/trainer_dragon_tamer_patrick_rematch_2.json b/res/trainers/data/dragon_tamer_patrick_rematch_2.json similarity index 100% rename from res/trainers/trainer_dragon_tamer_patrick_rematch_2.json rename to res/trainers/data/dragon_tamer_patrick_rematch_2.json diff --git a/res/trainers/trainer_dragon_tamer_stanley.json b/res/trainers/data/dragon_tamer_stanley.json similarity index 100% rename from res/trainers/trainer_dragon_tamer_stanley.json rename to res/trainers/data/dragon_tamer_stanley.json diff --git a/res/trainers/trainer_elite_four_aaron.json b/res/trainers/data/elite_four_aaron.json similarity index 100% rename from res/trainers/trainer_elite_four_aaron.json rename to res/trainers/data/elite_four_aaron.json diff --git a/res/trainers/trainer_elite_four_aaron_rematch.json b/res/trainers/data/elite_four_aaron_rematch.json similarity index 100% rename from res/trainers/trainer_elite_four_aaron_rematch.json rename to res/trainers/data/elite_four_aaron_rematch.json diff --git a/res/trainers/trainer_elite_four_bertha.json b/res/trainers/data/elite_four_bertha.json similarity index 100% rename from res/trainers/trainer_elite_four_bertha.json rename to res/trainers/data/elite_four_bertha.json diff --git a/res/trainers/trainer_elite_four_bertha_rematch.json b/res/trainers/data/elite_four_bertha_rematch.json similarity index 100% rename from res/trainers/trainer_elite_four_bertha_rematch.json rename to res/trainers/data/elite_four_bertha_rematch.json diff --git a/res/trainers/trainer_elite_four_flint.json b/res/trainers/data/elite_four_flint.json similarity index 100% rename from res/trainers/trainer_elite_four_flint.json rename to res/trainers/data/elite_four_flint.json diff --git a/res/trainers/trainer_elite_four_flint_fight_area.json b/res/trainers/data/elite_four_flint_fight_area.json similarity index 100% rename from res/trainers/trainer_elite_four_flint_fight_area.json rename to res/trainers/data/elite_four_flint_fight_area.json diff --git a/res/trainers/trainer_elite_four_flint_rematch.json b/res/trainers/data/elite_four_flint_rematch.json similarity index 100% rename from res/trainers/trainer_elite_four_flint_rematch.json rename to res/trainers/data/elite_four_flint_rematch.json diff --git a/res/trainers/trainer_elite_four_lucian.json b/res/trainers/data/elite_four_lucian.json similarity index 100% rename from res/trainers/trainer_elite_four_lucian.json rename to res/trainers/data/elite_four_lucian.json diff --git a/res/trainers/trainer_elite_four_lucian_rematch.json b/res/trainers/data/elite_four_lucian_rematch.json similarity index 100% rename from res/trainers/trainer_elite_four_lucian_rematch.json rename to res/trainers/data/elite_four_lucian_rematch.json diff --git a/res/trainers/trainer_fisherman_alec.json b/res/trainers/data/fisherman_alec.json similarity index 100% rename from res/trainers/trainer_fisherman_alec.json rename to res/trainers/data/fisherman_alec.json diff --git a/res/trainers/trainer_fisherman_alec_rematch.json b/res/trainers/data/fisherman_alec_rematch.json similarity index 100% rename from res/trainers/trainer_fisherman_alec_rematch.json rename to res/trainers/data/fisherman_alec_rematch.json diff --git a/res/trainers/trainer_fisherman_andrew.json b/res/trainers/data/fisherman_andrew.json similarity index 100% rename from res/trainers/trainer_fisherman_andrew.json rename to res/trainers/data/fisherman_andrew.json diff --git a/res/trainers/trainer_fisherman_brett.json b/res/trainers/data/fisherman_brett.json similarity index 100% rename from res/trainers/trainer_fisherman_brett.json rename to res/trainers/data/fisherman_brett.json diff --git a/res/trainers/trainer_fisherman_cody.json b/res/trainers/data/fisherman_cody.json similarity index 100% rename from res/trainers/trainer_fisherman_cody.json rename to res/trainers/data/fisherman_cody.json diff --git a/res/trainers/trainer_fisherman_cole.json b/res/trainers/data/fisherman_cole.json similarity index 100% rename from res/trainers/trainer_fisherman_cole.json rename to res/trainers/data/fisherman_cole.json diff --git a/res/trainers/trainer_fisherman_cory.json b/res/trainers/data/fisherman_cory.json similarity index 100% rename from res/trainers/trainer_fisherman_cory.json rename to res/trainers/data/fisherman_cory.json diff --git a/res/trainers/trainer_fisherman_erick.json b/res/trainers/data/fisherman_erick.json similarity index 100% rename from res/trainers/trainer_fisherman_erick.json rename to res/trainers/data/fisherman_erick.json diff --git a/res/trainers/trainer_fisherman_george.json b/res/trainers/data/fisherman_george.json similarity index 100% rename from res/trainers/trainer_fisherman_george.json rename to res/trainers/data/fisherman_george.json diff --git a/res/trainers/trainer_fisherman_joseph.json b/res/trainers/data/fisherman_joseph.json similarity index 100% rename from res/trainers/trainer_fisherman_joseph.json rename to res/trainers/data/fisherman_joseph.json diff --git a/res/trainers/trainer_fisherman_joseph_rematch_1.json b/res/trainers/data/fisherman_joseph_rematch_1.json similarity index 100% rename from res/trainers/trainer_fisherman_joseph_rematch_1.json rename to res/trainers/data/fisherman_joseph_rematch_1.json diff --git a/res/trainers/trainer_fisherman_joseph_rematch_2.json b/res/trainers/data/fisherman_joseph_rematch_2.json similarity index 100% rename from res/trainers/trainer_fisherman_joseph_rematch_2.json rename to res/trainers/data/fisherman_joseph_rematch_2.json diff --git a/res/trainers/trainer_fisherman_josh.json b/res/trainers/data/fisherman_josh.json similarity index 100% rename from res/trainers/trainer_fisherman_josh.json rename to res/trainers/data/fisherman_josh.json diff --git a/res/trainers/trainer_fisherman_juan.json b/res/trainers/data/fisherman_juan.json similarity index 100% rename from res/trainers/trainer_fisherman_juan.json rename to res/trainers/data/fisherman_juan.json diff --git a/res/trainers/trainer_fisherman_kenneth.json b/res/trainers/data/fisherman_kenneth.json similarity index 100% rename from res/trainers/trainer_fisherman_kenneth.json rename to res/trainers/data/fisherman_kenneth.json diff --git a/res/trainers/trainer_fisherman_luc.json b/res/trainers/data/fisherman_luc.json similarity index 100% rename from res/trainers/trainer_fisherman_luc.json rename to res/trainers/data/fisherman_luc.json diff --git a/res/trainers/trainer_fisherman_miguel.json b/res/trainers/data/fisherman_miguel.json similarity index 100% rename from res/trainers/trainer_fisherman_miguel.json rename to res/trainers/data/fisherman_miguel.json diff --git a/res/trainers/trainer_fisherman_miguel_rematch.json b/res/trainers/data/fisherman_miguel_rematch.json similarity index 100% rename from res/trainers/trainer_fisherman_miguel_rematch.json rename to res/trainers/data/fisherman_miguel_rematch.json diff --git a/res/trainers/trainer_fisherman_travis.json b/res/trainers/data/fisherman_travis.json similarity index 100% rename from res/trainers/trainer_fisherman_travis.json rename to res/trainers/data/fisherman_travis.json diff --git a/res/trainers/trainer_fisherman_walter.json b/res/trainers/data/fisherman_walter.json similarity index 100% rename from res/trainers/trainer_fisherman_walter.json rename to res/trainers/data/fisherman_walter.json diff --git a/res/trainers/trainer_fisherman_zachary.json b/res/trainers/data/fisherman_zachary.json similarity index 100% rename from res/trainers/trainer_fisherman_zachary.json rename to res/trainers/data/fisherman_zachary.json diff --git a/res/trainers/trainer_galactic_boss_cyrus_celestic_town_ruins.json b/res/trainers/data/galactic_boss_cyrus_celestic_town_ruins.json similarity index 100% rename from res/trainers/trainer_galactic_boss_cyrus_celestic_town_ruins.json rename to res/trainers/data/galactic_boss_cyrus_celestic_town_ruins.json diff --git a/res/trainers/trainer_galactic_boss_cyrus_distortion_world.json b/res/trainers/data/galactic_boss_cyrus_distortion_world.json similarity index 100% rename from res/trainers/trainer_galactic_boss_cyrus_distortion_world.json rename to res/trainers/data/galactic_boss_cyrus_distortion_world.json diff --git a/res/trainers/trainer_galactic_boss_cyrus_galactic_hq.json b/res/trainers/data/galactic_boss_cyrus_galactic_hq.json similarity index 100% rename from res/trainers/trainer_galactic_boss_cyrus_galactic_hq.json rename to res/trainers/data/galactic_boss_cyrus_galactic_hq.json diff --git a/res/trainers/trainer_galactic_grunt_celestic_town.json b/res/trainers/data/galactic_grunt_celestic_town.json similarity index 100% rename from res/trainers/trainer_galactic_grunt_celestic_town.json rename to res/trainers/data/galactic_grunt_celestic_town.json diff --git a/res/trainers/trainer_galactic_grunt_floaroma_meadow_1.json b/res/trainers/data/galactic_grunt_floaroma_meadow_1.json similarity index 100% rename from res/trainers/trainer_galactic_grunt_floaroma_meadow_1.json rename to res/trainers/data/galactic_grunt_floaroma_meadow_1.json diff --git a/res/trainers/trainer_galactic_grunt_floaroma_meadow_2.json b/res/trainers/data/galactic_grunt_floaroma_meadow_2.json similarity index 100% rename from res/trainers/trainer_galactic_grunt_floaroma_meadow_2.json rename to res/trainers/data/galactic_grunt_floaroma_meadow_2.json diff --git a/res/trainers/trainer_galactic_grunt_galactic_hq_1f.json b/res/trainers/data/galactic_grunt_galactic_hq_1f.json similarity index 100% rename from res/trainers/trainer_galactic_grunt_galactic_hq_1f.json rename to res/trainers/data/galactic_grunt_galactic_hq_1f.json diff --git a/res/trainers/trainer_galactic_grunt_galactic_hq_2f_1.json b/res/trainers/data/galactic_grunt_galactic_hq_2f_1.json similarity index 100% rename from res/trainers/trainer_galactic_grunt_galactic_hq_2f_1.json rename to res/trainers/data/galactic_grunt_galactic_hq_2f_1.json diff --git a/res/trainers/trainer_galactic_grunt_galactic_hq_2f_2.json b/res/trainers/data/galactic_grunt_galactic_hq_2f_2.json similarity index 100% rename from res/trainers/trainer_galactic_grunt_galactic_hq_2f_2.json rename to res/trainers/data/galactic_grunt_galactic_hq_2f_2.json diff --git a/res/trainers/trainer_galactic_grunt_galactic_hq_2f_3.json b/res/trainers/data/galactic_grunt_galactic_hq_2f_3.json similarity index 100% rename from res/trainers/trainer_galactic_grunt_galactic_hq_2f_3.json rename to res/trainers/data/galactic_grunt_galactic_hq_2f_3.json diff --git a/res/trainers/trainer_galactic_grunt_galactic_hq_3f_1.json b/res/trainers/data/galactic_grunt_galactic_hq_3f_1.json similarity index 100% rename from res/trainers/trainer_galactic_grunt_galactic_hq_3f_1.json rename to res/trainers/data/galactic_grunt_galactic_hq_3f_1.json diff --git a/res/trainers/trainer_galactic_grunt_galactic_hq_3f_2.json b/res/trainers/data/galactic_grunt_galactic_hq_3f_2.json similarity index 100% rename from res/trainers/trainer_galactic_grunt_galactic_hq_3f_2.json rename to res/trainers/data/galactic_grunt_galactic_hq_3f_2.json diff --git a/res/trainers/trainer_galactic_grunt_galactic_hq_3f_3.json b/res/trainers/data/galactic_grunt_galactic_hq_3f_3.json similarity index 100% rename from res/trainers/trainer_galactic_grunt_galactic_hq_3f_3.json rename to res/trainers/data/galactic_grunt_galactic_hq_3f_3.json diff --git a/res/trainers/trainer_galactic_grunt_galactic_hq_3f_4.json b/res/trainers/data/galactic_grunt_galactic_hq_3f_4.json similarity index 100% rename from res/trainers/trainer_galactic_grunt_galactic_hq_3f_4.json rename to res/trainers/data/galactic_grunt_galactic_hq_3f_4.json diff --git a/res/trainers/trainer_galactic_grunt_galactic_hq_b2f_1.json b/res/trainers/data/galactic_grunt_galactic_hq_b2f_1.json similarity index 100% rename from res/trainers/trainer_galactic_grunt_galactic_hq_b2f_1.json rename to res/trainers/data/galactic_grunt_galactic_hq_b2f_1.json diff --git a/res/trainers/trainer_galactic_grunt_galactic_hq_b2f_2.json b/res/trainers/data/galactic_grunt_galactic_hq_b2f_2.json similarity index 100% rename from res/trainers/trainer_galactic_grunt_galactic_hq_b2f_2.json rename to res/trainers/data/galactic_grunt_galactic_hq_b2f_2.json diff --git a/res/trainers/trainer_galactic_grunt_iron_island_1.json b/res/trainers/data/galactic_grunt_iron_island_1.json similarity index 100% rename from res/trainers/trainer_galactic_grunt_iron_island_1.json rename to res/trainers/data/galactic_grunt_iron_island_1.json diff --git a/res/trainers/trainer_galactic_grunt_iron_island_2.json b/res/trainers/data/galactic_grunt_iron_island_2.json similarity index 100% rename from res/trainers/trainer_galactic_grunt_iron_island_2.json rename to res/trainers/data/galactic_grunt_iron_island_2.json diff --git a/res/trainers/trainer_galactic_grunt_jubilife_city_1.json b/res/trainers/data/galactic_grunt_jubilife_city_1.json similarity index 100% rename from res/trainers/trainer_galactic_grunt_jubilife_city_1.json rename to res/trainers/data/galactic_grunt_jubilife_city_1.json diff --git a/res/trainers/trainer_galactic_grunt_jubilife_city_2.json b/res/trainers/data/galactic_grunt_jubilife_city_2.json similarity index 100% rename from res/trainers/trainer_galactic_grunt_jubilife_city_2.json rename to res/trainers/data/galactic_grunt_jubilife_city_2.json diff --git a/res/trainers/trainer_galactic_grunt_lake_valor_1.json b/res/trainers/data/galactic_grunt_lake_valor_1.json similarity index 100% rename from res/trainers/trainer_galactic_grunt_lake_valor_1.json rename to res/trainers/data/galactic_grunt_lake_valor_1.json diff --git a/res/trainers/trainer_galactic_grunt_lake_valor_2.json b/res/trainers/data/galactic_grunt_lake_valor_2.json similarity index 100% rename from res/trainers/trainer_galactic_grunt_lake_valor_2.json rename to res/trainers/data/galactic_grunt_lake_valor_2.json diff --git a/res/trainers/trainer_galactic_grunt_lake_valor_3.json b/res/trainers/data/galactic_grunt_lake_valor_3.json similarity index 100% rename from res/trainers/trainer_galactic_grunt_lake_valor_3.json rename to res/trainers/data/galactic_grunt_lake_valor_3.json diff --git a/res/trainers/trainer_galactic_grunt_lake_verity_1.json b/res/trainers/data/galactic_grunt_lake_verity_1.json similarity index 100% rename from res/trainers/trainer_galactic_grunt_lake_verity_1.json rename to res/trainers/data/galactic_grunt_lake_verity_1.json diff --git a/res/trainers/trainer_galactic_grunt_lake_verity_2.json b/res/trainers/data/galactic_grunt_lake_verity_2.json similarity index 100% rename from res/trainers/trainer_galactic_grunt_lake_verity_2.json rename to res/trainers/data/galactic_grunt_lake_verity_2.json diff --git a/res/trainers/trainer_galactic_grunt_lake_verity_3.json b/res/trainers/data/galactic_grunt_lake_verity_3.json similarity index 100% rename from res/trainers/trainer_galactic_grunt_lake_verity_3.json rename to res/trainers/data/galactic_grunt_lake_verity_3.json diff --git a/res/trainers/trainer_galactic_grunt_lake_verity_4.json b/res/trainers/data/galactic_grunt_lake_verity_4.json similarity index 100% rename from res/trainers/trainer_galactic_grunt_lake_verity_4.json rename to res/trainers/data/galactic_grunt_lake_verity_4.json diff --git a/res/trainers/trainer_galactic_grunt_mt_coronet_3f_1.json b/res/trainers/data/galactic_grunt_mt_coronet_3f_1.json similarity index 100% rename from res/trainers/trainer_galactic_grunt_mt_coronet_3f_1.json rename to res/trainers/data/galactic_grunt_mt_coronet_3f_1.json diff --git a/res/trainers/trainer_galactic_grunt_mt_coronet_4f_1.json b/res/trainers/data/galactic_grunt_mt_coronet_4f_1.json similarity index 100% rename from res/trainers/trainer_galactic_grunt_mt_coronet_4f_1.json rename to res/trainers/data/galactic_grunt_mt_coronet_4f_1.json diff --git a/res/trainers/trainer_galactic_grunt_mt_coronet_4f_2.json b/res/trainers/data/galactic_grunt_mt_coronet_4f_2.json similarity index 100% rename from res/trainers/trainer_galactic_grunt_mt_coronet_4f_2.json rename to res/trainers/data/galactic_grunt_mt_coronet_4f_2.json diff --git a/res/trainers/trainer_galactic_grunt_mt_coronet_5f_1.json b/res/trainers/data/galactic_grunt_mt_coronet_5f_1.json similarity index 100% rename from res/trainers/trainer_galactic_grunt_mt_coronet_5f_1.json rename to res/trainers/data/galactic_grunt_mt_coronet_5f_1.json diff --git a/res/trainers/trainer_galactic_grunt_mt_coronet_5f_2.json b/res/trainers/data/galactic_grunt_mt_coronet_5f_2.json similarity index 100% rename from res/trainers/trainer_galactic_grunt_mt_coronet_5f_2.json rename to res/trainers/data/galactic_grunt_mt_coronet_5f_2.json diff --git a/res/trainers/trainer_galactic_grunt_mt_coronet_6f.json b/res/trainers/data/galactic_grunt_mt_coronet_6f.json similarity index 100% rename from res/trainers/trainer_galactic_grunt_mt_coronet_6f.json rename to res/trainers/data/galactic_grunt_mt_coronet_6f.json diff --git a/res/trainers/trainer_galactic_grunt_mt_coronet__3f_1.json b/res/trainers/data/galactic_grunt_mt_coronet__3f_1.json similarity index 100% rename from res/trainers/trainer_galactic_grunt_mt_coronet__3f_1.json rename to res/trainers/data/galactic_grunt_mt_coronet__3f_1.json diff --git a/res/trainers/trainer_galactic_grunt_mt_coronet_tunnel_room_1.json b/res/trainers/data/galactic_grunt_mt_coronet_tunnel_room_1.json similarity index 100% rename from res/trainers/trainer_galactic_grunt_mt_coronet_tunnel_room_1.json rename to res/trainers/data/galactic_grunt_mt_coronet_tunnel_room_1.json diff --git a/res/trainers/trainer_galactic_grunt_mt_coronet_tunnel_room_2.json b/res/trainers/data/galactic_grunt_mt_coronet_tunnel_room_2.json similarity index 100% rename from res/trainers/trainer_galactic_grunt_mt_coronet_tunnel_room_2.json rename to res/trainers/data/galactic_grunt_mt_coronet_tunnel_room_2.json diff --git a/res/trainers/trainer_galactic_grunt_mt_coronet_tunnel_room_3.json b/res/trainers/data/galactic_grunt_mt_coronet_tunnel_room_3.json similarity index 100% rename from res/trainers/trainer_galactic_grunt_mt_coronet_tunnel_room_3.json rename to res/trainers/data/galactic_grunt_mt_coronet_tunnel_room_3.json diff --git a/res/trainers/trainer_galactic_grunt_spear_pillar_1.json b/res/trainers/data/galactic_grunt_spear_pillar_1.json similarity index 100% rename from res/trainers/trainer_galactic_grunt_spear_pillar_1.json rename to res/trainers/data/galactic_grunt_spear_pillar_1.json diff --git a/res/trainers/trainer_galactic_grunt_spear_pillar_2.json b/res/trainers/data/galactic_grunt_spear_pillar_2.json similarity index 100% rename from res/trainers/trainer_galactic_grunt_spear_pillar_2.json rename to res/trainers/data/galactic_grunt_spear_pillar_2.json diff --git a/res/trainers/trainer_galactic_grunt_team_galactic_eterna_building_1f_1.json b/res/trainers/data/galactic_grunt_team_galactic_eterna_building_1f_1.json similarity index 100% rename from res/trainers/trainer_galactic_grunt_team_galactic_eterna_building_1f_1.json rename to res/trainers/data/galactic_grunt_team_galactic_eterna_building_1f_1.json diff --git a/res/trainers/trainer_galactic_grunt_team_galactic_eterna_building_1f_2.json b/res/trainers/data/galactic_grunt_team_galactic_eterna_building_1f_2.json similarity index 100% rename from res/trainers/trainer_galactic_grunt_team_galactic_eterna_building_1f_2.json rename to res/trainers/data/galactic_grunt_team_galactic_eterna_building_1f_2.json diff --git a/res/trainers/trainer_galactic_grunt_team_galactic_eterna_building_2f_1.json b/res/trainers/data/galactic_grunt_team_galactic_eterna_building_2f_1.json similarity index 100% rename from res/trainers/trainer_galactic_grunt_team_galactic_eterna_building_2f_1.json rename to res/trainers/data/galactic_grunt_team_galactic_eterna_building_2f_1.json diff --git a/res/trainers/trainer_galactic_grunt_team_galactic_eterna_building_2f_2.json b/res/trainers/data/galactic_grunt_team_galactic_eterna_building_2f_2.json similarity index 100% rename from res/trainers/trainer_galactic_grunt_team_galactic_eterna_building_2f_2.json rename to res/trainers/data/galactic_grunt_team_galactic_eterna_building_2f_2.json diff --git a/res/trainers/trainer_galactic_grunt_team_galactic_eterna_building_3f.json b/res/trainers/data/galactic_grunt_team_galactic_eterna_building_3f.json similarity index 100% rename from res/trainers/trainer_galactic_grunt_team_galactic_eterna_building_3f.json rename to res/trainers/data/galactic_grunt_team_galactic_eterna_building_3f.json diff --git a/res/trainers/trainer_galactic_grunt_valley_windworks_1.json b/res/trainers/data/galactic_grunt_valley_windworks_1.json similarity index 100% rename from res/trainers/trainer_galactic_grunt_valley_windworks_1.json rename to res/trainers/data/galactic_grunt_valley_windworks_1.json diff --git a/res/trainers/trainer_galactic_grunt_valley_windworks_2.json b/res/trainers/data/galactic_grunt_valley_windworks_2.json similarity index 100% rename from res/trainers/trainer_galactic_grunt_valley_windworks_2.json rename to res/trainers/data/galactic_grunt_valley_windworks_2.json diff --git a/res/trainers/trainer_galactic_grunt_valley_windworks_3.json b/res/trainers/data/galactic_grunt_valley_windworks_3.json similarity index 100% rename from res/trainers/trainer_galactic_grunt_valley_windworks_3.json rename to res/trainers/data/galactic_grunt_valley_windworks_3.json diff --git a/res/trainers/trainer_galactic_grunt_valor_lakefront.json b/res/trainers/data/galactic_grunt_valor_lakefront.json similarity index 100% rename from res/trainers/trainer_galactic_grunt_valor_lakefront.json rename to res/trainers/data/galactic_grunt_valor_lakefront.json diff --git a/res/trainers/trainer_galactic_grunt_veilstone_city_1.json b/res/trainers/data/galactic_grunt_veilstone_city_1.json similarity index 100% rename from res/trainers/trainer_galactic_grunt_veilstone_city_1.json rename to res/trainers/data/galactic_grunt_veilstone_city_1.json diff --git a/res/trainers/trainer_galactic_grunt_veilstone_city_2.json b/res/trainers/data/galactic_grunt_veilstone_city_2.json similarity index 100% rename from res/trainers/trainer_galactic_grunt_veilstone_city_2.json rename to res/trainers/data/galactic_grunt_veilstone_city_2.json diff --git a/res/trainers/trainer_gentleman_jeremy.json b/res/trainers/data/gentleman_jeremy.json similarity index 100% rename from res/trainers/trainer_gentleman_jeremy.json rename to res/trainers/data/gentleman_jeremy.json diff --git a/res/trainers/trainer_gentleman_jeremy_rematch_1.json b/res/trainers/data/gentleman_jeremy_rematch_1.json similarity index 100% rename from res/trainers/trainer_gentleman_jeremy_rematch_1.json rename to res/trainers/data/gentleman_jeremy_rematch_1.json diff --git a/res/trainers/trainer_gentleman_jeremy_rematch_2.json b/res/trainers/data/gentleman_jeremy_rematch_2.json similarity index 100% rename from res/trainers/trainer_gentleman_jeremy_rematch_2.json rename to res/trainers/data/gentleman_jeremy_rematch_2.json diff --git a/res/trainers/trainer_gentleman_jeremy_rematch_3.json b/res/trainers/data/gentleman_jeremy_rematch_3.json similarity index 100% rename from res/trainers/trainer_gentleman_jeremy_rematch_3.json rename to res/trainers/data/gentleman_jeremy_rematch_3.json diff --git a/res/trainers/trainer_gentleman_leonardo.json b/res/trainers/data/gentleman_leonardo.json similarity index 100% rename from res/trainers/trainer_gentleman_leonardo.json rename to res/trainers/data/gentleman_leonardo.json diff --git a/res/trainers/trainer_guitarist_arturo.json b/res/trainers/data/guitarist_arturo.json similarity index 100% rename from res/trainers/trainer_guitarist_arturo.json rename to res/trainers/data/guitarist_arturo.json diff --git a/res/trainers/trainer_guitarist_arturo_rematch_1.json b/res/trainers/data/guitarist_arturo_rematch_1.json similarity index 100% rename from res/trainers/trainer_guitarist_arturo_rematch_1.json rename to res/trainers/data/guitarist_arturo_rematch_1.json diff --git a/res/trainers/trainer_guitarist_arturo_rematch_2.json b/res/trainers/data/guitarist_arturo_rematch_2.json similarity index 100% rename from res/trainers/trainer_guitarist_arturo_rematch_2.json rename to res/trainers/data/guitarist_arturo_rematch_2.json diff --git a/res/trainers/trainer_guitarist_arturo_rematch_3.json b/res/trainers/data/guitarist_arturo_rematch_3.json similarity index 100% rename from res/trainers/trainer_guitarist_arturo_rematch_3.json rename to res/trainers/data/guitarist_arturo_rematch_3.json diff --git a/res/trainers/trainer_guitarist_arturo_rematch_4.json b/res/trainers/data/guitarist_arturo_rematch_4.json similarity index 100% rename from res/trainers/trainer_guitarist_arturo_rematch_4.json rename to res/trainers/data/guitarist_arturo_rematch_4.json diff --git a/res/trainers/trainer_guitarist_jerry.json b/res/trainers/data/guitarist_jerry.json similarity index 100% rename from res/trainers/trainer_guitarist_jerry.json rename to res/trainers/data/guitarist_jerry.json diff --git a/res/trainers/trainer_guitarist_lonnie.json b/res/trainers/data/guitarist_lonnie.json similarity index 100% rename from res/trainers/trainer_guitarist_lonnie.json rename to res/trainers/data/guitarist_lonnie.json diff --git a/res/trainers/trainer_guitarist_preston.json b/res/trainers/data/guitarist_preston.json similarity index 100% rename from res/trainers/trainer_guitarist_preston.json rename to res/trainers/data/guitarist_preston.json diff --git a/res/trainers/trainer_guitarist_tony.json b/res/trainers/data/guitarist_tony.json similarity index 100% rename from res/trainers/trainer_guitarist_tony.json rename to res/trainers/data/guitarist_tony.json diff --git a/res/trainers/trainer_guitarist_tony_rematch.json b/res/trainers/data/guitarist_tony_rematch.json similarity index 100% rename from res/trainers/trainer_guitarist_tony_rematch.json rename to res/trainers/data/guitarist_tony_rematch.json diff --git a/res/trainers/trainer_hiker_alexander.json b/res/trainers/data/hiker_alexander.json similarity index 100% rename from res/trainers/trainer_hiker_alexander.json rename to res/trainers/data/hiker_alexander.json diff --git a/res/trainers/trainer_hiker_damon.json b/res/trainers/data/hiker_damon.json similarity index 100% rename from res/trainers/trainer_hiker_damon.json rename to res/trainers/data/hiker_damon.json diff --git a/res/trainers/trainer_hiker_daniel.json b/res/trainers/data/hiker_daniel.json similarity index 100% rename from res/trainers/trainer_hiker_daniel.json rename to res/trainers/data/hiker_daniel.json diff --git a/res/trainers/trainer_hiker_jonathan.json b/res/trainers/data/hiker_jonathan.json similarity index 100% rename from res/trainers/trainer_hiker_jonathan.json rename to res/trainers/data/hiker_jonathan.json diff --git a/res/trainers/trainer_hiker_justin.json b/res/trainers/data/hiker_justin.json similarity index 100% rename from res/trainers/trainer_hiker_justin.json rename to res/trainers/data/hiker_justin.json diff --git a/res/trainers/trainer_hiker_kevin.json b/res/trainers/data/hiker_kevin.json similarity index 100% rename from res/trainers/trainer_hiker_kevin.json rename to res/trainers/data/hiker_kevin.json diff --git a/res/trainers/trainer_hiker_lorenzo.json b/res/trainers/data/hiker_lorenzo.json similarity index 100% rename from res/trainers/trainer_hiker_lorenzo.json rename to res/trainers/data/hiker_lorenzo.json diff --git a/res/trainers/trainer_hiker_louis.json b/res/trainers/data/hiker_louis.json similarity index 100% rename from res/trainers/trainer_hiker_louis.json rename to res/trainers/data/hiker_louis.json diff --git a/res/trainers/trainer_hiker_maurice.json b/res/trainers/data/hiker_maurice.json similarity index 100% rename from res/trainers/trainer_hiker_maurice.json rename to res/trainers/data/hiker_maurice.json diff --git a/res/trainers/trainer_hiker_nicholas.json b/res/trainers/data/hiker_nicholas.json similarity index 100% rename from res/trainers/trainer_hiker_nicholas.json rename to res/trainers/data/hiker_nicholas.json diff --git a/res/trainers/trainer_hiker_reginald.json b/res/trainers/data/hiker_reginald.json similarity index 100% rename from res/trainers/trainer_hiker_reginald.json rename to res/trainers/data/hiker_reginald.json diff --git a/res/trainers/trainer_hiker_robert.json b/res/trainers/data/hiker_robert.json similarity index 100% rename from res/trainers/trainer_hiker_robert.json rename to res/trainers/data/hiker_robert.json diff --git a/res/trainers/trainer_hiker_theodore.json b/res/trainers/data/hiker_theodore.json similarity index 100% rename from res/trainers/trainer_hiker_theodore.json rename to res/trainers/data/hiker_theodore.json diff --git a/res/trainers/trainer_hiker_theodore_rematch_1.json b/res/trainers/data/hiker_theodore_rematch_1.json similarity index 100% rename from res/trainers/trainer_hiker_theodore_rematch_1.json rename to res/trainers/data/hiker_theodore_rematch_1.json diff --git a/res/trainers/trainer_hiker_theodore_rematch_2.json b/res/trainers/data/hiker_theodore_rematch_2.json similarity index 100% rename from res/trainers/trainer_hiker_theodore_rematch_2.json rename to res/trainers/data/hiker_theodore_rematch_2.json diff --git a/res/trainers/trainer_hiker_theodore_rematch_3.json b/res/trainers/data/hiker_theodore_rematch_3.json similarity index 100% rename from res/trainers/trainer_hiker_theodore_rematch_3.json rename to res/trainers/data/hiker_theodore_rematch_3.json diff --git a/res/trainers/trainer_idol_grace.json b/res/trainers/data/idol_grace.json similarity index 100% rename from res/trainers/trainer_idol_grace.json rename to res/trainers/data/idol_grace.json diff --git a/res/trainers/trainer_idol_grace_rematch_1.json b/res/trainers/data/idol_grace_rematch_1.json similarity index 100% rename from res/trainers/trainer_idol_grace_rematch_1.json rename to res/trainers/data/idol_grace_rematch_1.json diff --git a/res/trainers/trainer_idol_grace_rematch_2.json b/res/trainers/data/idol_grace_rematch_2.json similarity index 100% rename from res/trainers/trainer_idol_grace_rematch_2.json rename to res/trainers/data/idol_grace_rematch_2.json diff --git a/res/trainers/trainer_idol_grace_rematch_3.json b/res/trainers/data/idol_grace_rematch_3.json similarity index 100% rename from res/trainers/trainer_idol_grace_rematch_3.json rename to res/trainers/data/idol_grace_rematch_3.json diff --git a/res/trainers/trainer_idol_grace_rematch_4.json b/res/trainers/data/idol_grace_rematch_4.json similarity index 100% rename from res/trainers/trainer_idol_grace_rematch_4.json rename to res/trainers/data/idol_grace_rematch_4.json diff --git a/res/trainers/trainer_interviewers_roxy_and_oli.json b/res/trainers/data/interviewers_roxy_and_oli.json similarity index 100% rename from res/trainers/trainer_interviewers_roxy_and_oli.json rename to res/trainers/data/interviewers_roxy_and_oli.json diff --git a/res/trainers/trainer_interviewers_roxy_and_oli_rematch_1.json b/res/trainers/data/interviewers_roxy_and_oli_rematch_1.json similarity index 100% rename from res/trainers/trainer_interviewers_roxy_and_oli_rematch_1.json rename to res/trainers/data/interviewers_roxy_and_oli_rematch_1.json diff --git a/res/trainers/trainer_interviewers_roxy_and_oli_rematch_2.json b/res/trainers/data/interviewers_roxy_and_oli_rematch_2.json similarity index 100% rename from res/trainers/trainer_interviewers_roxy_and_oli_rematch_2.json rename to res/trainers/data/interviewers_roxy_and_oli_rematch_2.json diff --git a/res/trainers/trainer_interviewers_roxy_and_oli_rematch_3.json b/res/trainers/data/interviewers_roxy_and_oli_rematch_3.json similarity index 100% rename from res/trainers/trainer_interviewers_roxy_and_oli_rematch_3.json rename to res/trainers/data/interviewers_roxy_and_oli_rematch_3.json diff --git a/res/trainers/trainer_interviewers_roxy_and_oli_rematch_4.json b/res/trainers/data/interviewers_roxy_and_oli_rematch_4.json similarity index 100% rename from res/trainers/trainer_interviewers_roxy_and_oli_rematch_4.json rename to res/trainers/data/interviewers_roxy_and_oli_rematch_4.json diff --git a/res/trainers/trainer_jogger_craig.json b/res/trainers/data/jogger_craig.json similarity index 100% rename from res/trainers/trainer_jogger_craig.json rename to res/trainers/data/jogger_craig.json diff --git a/res/trainers/trainer_jogger_craig_rematch_1.json b/res/trainers/data/jogger_craig_rematch_1.json similarity index 100% rename from res/trainers/trainer_jogger_craig_rematch_1.json rename to res/trainers/data/jogger_craig_rematch_1.json diff --git a/res/trainers/trainer_jogger_craig_rematch_2.json b/res/trainers/data/jogger_craig_rematch_2.json similarity index 100% rename from res/trainers/trainer_jogger_craig_rematch_2.json rename to res/trainers/data/jogger_craig_rematch_2.json diff --git a/res/trainers/trainer_jogger_raul.json b/res/trainers/data/jogger_raul.json similarity index 100% rename from res/trainers/trainer_jogger_raul.json rename to res/trainers/data/jogger_raul.json diff --git a/res/trainers/trainer_jogger_richard.json b/res/trainers/data/jogger_richard.json similarity index 100% rename from res/trainers/trainer_jogger_richard.json rename to res/trainers/data/jogger_richard.json diff --git a/res/trainers/trainer_jogger_scott.json b/res/trainers/data/jogger_scott.json similarity index 100% rename from res/trainers/trainer_jogger_scott.json rename to res/trainers/data/jogger_scott.json diff --git a/res/trainers/trainer_jogger_wyatt.json b/res/trainers/data/jogger_wyatt.json similarity index 100% rename from res/trainers/trainer_jogger_wyatt.json rename to res/trainers/data/jogger_wyatt.json diff --git a/res/trainers/trainer_lady_celeste.json b/res/trainers/data/lady_celeste.json similarity index 100% rename from res/trainers/trainer_lady_celeste.json rename to res/trainers/data/lady_celeste.json diff --git a/res/trainers/trainer_lady_kylie.json b/res/trainers/data/lady_kylie.json similarity index 100% rename from res/trainers/trainer_lady_kylie.json rename to res/trainers/data/lady_kylie.json diff --git a/res/trainers/trainer_lady_melissa.json b/res/trainers/data/lady_melissa.json similarity index 100% rename from res/trainers/trainer_lady_melissa.json rename to res/trainers/data/lady_melissa.json diff --git a/res/trainers/trainer_lady_melissa_rematch_1.json b/res/trainers/data/lady_melissa_rematch_1.json similarity index 100% rename from res/trainers/trainer_lady_melissa_rematch_1.json rename to res/trainers/data/lady_melissa_rematch_1.json diff --git a/res/trainers/trainer_lady_melissa_rematch_2.json b/res/trainers/data/lady_melissa_rematch_2.json similarity index 100% rename from res/trainers/trainer_lady_melissa_rematch_2.json rename to res/trainers/data/lady_melissa_rematch_2.json diff --git a/res/trainers/trainer_lady_melissa_rematch_3.json b/res/trainers/data/lady_melissa_rematch_3.json similarity index 100% rename from res/trainers/trainer_lady_melissa_rematch_3.json rename to res/trainers/data/lady_melissa_rematch_3.json diff --git a/res/trainers/trainer_lass_blythe.json b/res/trainers/data/lass_blythe.json similarity index 100% rename from res/trainers/trainer_lass_blythe.json rename to res/trainers/data/lass_blythe.json diff --git a/res/trainers/trainer_lass_briana.json b/res/trainers/data/lass_briana.json similarity index 100% rename from res/trainers/trainer_lass_briana.json rename to res/trainers/data/lass_briana.json diff --git a/res/trainers/trainer_lass_caroline.json b/res/trainers/data/lass_caroline.json similarity index 100% rename from res/trainers/trainer_lass_caroline.json rename to res/trainers/data/lass_caroline.json diff --git a/res/trainers/trainer_lass_cassidy.json b/res/trainers/data/lass_cassidy.json similarity index 100% rename from res/trainers/trainer_lass_cassidy.json rename to res/trainers/data/lass_cassidy.json diff --git a/res/trainers/trainer_lass_kaitlin.json b/res/trainers/data/lass_kaitlin.json similarity index 100% rename from res/trainers/trainer_lass_kaitlin.json rename to res/trainers/data/lass_kaitlin.json diff --git a/res/trainers/trainer_lass_madeline.json b/res/trainers/data/lass_madeline.json similarity index 100% rename from res/trainers/trainer_lass_madeline.json rename to res/trainers/data/lass_madeline.json diff --git a/res/trainers/trainer_lass_madeline_rematch_1.json b/res/trainers/data/lass_madeline_rematch_1.json similarity index 100% rename from res/trainers/trainer_lass_madeline_rematch_1.json rename to res/trainers/data/lass_madeline_rematch_1.json diff --git a/res/trainers/trainer_lass_madeline_rematch_2.json b/res/trainers/data/lass_madeline_rematch_2.json similarity index 100% rename from res/trainers/trainer_lass_madeline_rematch_2.json rename to res/trainers/data/lass_madeline_rematch_2.json diff --git a/res/trainers/trainer_lass_madeline_rematch_3.json b/res/trainers/data/lass_madeline_rematch_3.json similarity index 100% rename from res/trainers/trainer_lass_madeline_rematch_3.json rename to res/trainers/data/lass_madeline_rematch_3.json diff --git a/res/trainers/trainer_lass_molly.json b/res/trainers/data/lass_molly.json similarity index 100% rename from res/trainers/trainer_lass_molly.json rename to res/trainers/data/lass_molly.json diff --git a/res/trainers/trainer_lass_natalie.json b/res/trainers/data/lass_natalie.json similarity index 100% rename from res/trainers/trainer_lass_natalie.json rename to res/trainers/data/lass_natalie.json diff --git a/res/trainers/trainer_lass_samantha.json b/res/trainers/data/lass_samantha.json similarity index 100% rename from res/trainers/trainer_lass_samantha.json rename to res/trainers/data/lass_samantha.json diff --git a/res/trainers/trainer_lass_samantha_rematch_1.json b/res/trainers/data/lass_samantha_rematch_1.json similarity index 100% rename from res/trainers/trainer_lass_samantha_rematch_1.json rename to res/trainers/data/lass_samantha_rematch_1.json diff --git a/res/trainers/trainer_lass_samantha_rematch_2.json b/res/trainers/data/lass_samantha_rematch_2.json similarity index 100% rename from res/trainers/trainer_lass_samantha_rematch_2.json rename to res/trainers/data/lass_samantha_rematch_2.json diff --git a/res/trainers/trainer_lass_samantha_rematch_3.json b/res/trainers/data/lass_samantha_rematch_3.json similarity index 100% rename from res/trainers/trainer_lass_samantha_rematch_3.json rename to res/trainers/data/lass_samantha_rematch_3.json diff --git a/res/trainers/trainer_lass_sarah.json b/res/trainers/data/lass_sarah.json similarity index 100% rename from res/trainers/trainer_lass_sarah.json rename to res/trainers/data/lass_sarah.json diff --git a/res/trainers/trainer_leader_byron.json b/res/trainers/data/leader_byron.json similarity index 100% rename from res/trainers/trainer_leader_byron.json rename to res/trainers/data/leader_byron.json diff --git a/res/trainers/trainer_leader_byron_rematch.json b/res/trainers/data/leader_byron_rematch.json similarity index 100% rename from res/trainers/trainer_leader_byron_rematch.json rename to res/trainers/data/leader_byron_rematch.json diff --git a/res/trainers/trainer_leader_candice.json b/res/trainers/data/leader_candice.json similarity index 100% rename from res/trainers/trainer_leader_candice.json rename to res/trainers/data/leader_candice.json diff --git a/res/trainers/trainer_leader_candice_rematch.json b/res/trainers/data/leader_candice_rematch.json similarity index 100% rename from res/trainers/trainer_leader_candice_rematch.json rename to res/trainers/data/leader_candice_rematch.json diff --git a/res/trainers/trainer_leader_fantina.json b/res/trainers/data/leader_fantina.json similarity index 100% rename from res/trainers/trainer_leader_fantina.json rename to res/trainers/data/leader_fantina.json diff --git a/res/trainers/trainer_leader_fantina_rematch.json b/res/trainers/data/leader_fantina_rematch.json similarity index 100% rename from res/trainers/trainer_leader_fantina_rematch.json rename to res/trainers/data/leader_fantina_rematch.json diff --git a/res/trainers/trainer_leader_gardenia.json b/res/trainers/data/leader_gardenia.json similarity index 100% rename from res/trainers/trainer_leader_gardenia.json rename to res/trainers/data/leader_gardenia.json diff --git a/res/trainers/trainer_leader_gardenia_rematch.json b/res/trainers/data/leader_gardenia_rematch.json similarity index 100% rename from res/trainers/trainer_leader_gardenia_rematch.json rename to res/trainers/data/leader_gardenia_rematch.json diff --git a/res/trainers/trainer_leader_maylene.json b/res/trainers/data/leader_maylene.json similarity index 100% rename from res/trainers/trainer_leader_maylene.json rename to res/trainers/data/leader_maylene.json diff --git a/res/trainers/trainer_leader_maylene_rematch.json b/res/trainers/data/leader_maylene_rematch.json similarity index 100% rename from res/trainers/trainer_leader_maylene_rematch.json rename to res/trainers/data/leader_maylene_rematch.json diff --git a/res/trainers/trainer_leader_roark.json b/res/trainers/data/leader_roark.json similarity index 100% rename from res/trainers/trainer_leader_roark.json rename to res/trainers/data/leader_roark.json diff --git a/res/trainers/trainer_leader_roark_rematch.json b/res/trainers/data/leader_roark_rematch.json similarity index 100% rename from res/trainers/trainer_leader_roark_rematch.json rename to res/trainers/data/leader_roark_rematch.json diff --git a/res/trainers/trainer_leader_volkner.json b/res/trainers/data/leader_volkner.json similarity index 100% rename from res/trainers/trainer_leader_volkner.json rename to res/trainers/data/leader_volkner.json diff --git a/res/trainers/trainer_leader_volkner_fight_area.json b/res/trainers/data/leader_volkner_fight_area.json similarity index 100% rename from res/trainers/trainer_leader_volkner_fight_area.json rename to res/trainers/data/leader_volkner_fight_area.json diff --git a/res/trainers/trainer_leader_volkner_rematch.json b/res/trainers/data/leader_volkner_rematch.json similarity index 100% rename from res/trainers/trainer_leader_volkner_rematch.json rename to res/trainers/data/leader_volkner_rematch.json diff --git a/res/trainers/trainer_leader_wake.json b/res/trainers/data/leader_wake.json similarity index 100% rename from res/trainers/trainer_leader_wake.json rename to res/trainers/data/leader_wake.json diff --git a/res/trainers/trainer_leader_wake_rematch.json b/res/trainers/data/leader_wake_rematch.json similarity index 100% rename from res/trainers/trainer_leader_wake_rematch.json rename to res/trainers/data/leader_wake_rematch.json diff --git a/res/trainers/trainer_lucas_jubilife_city_chimchar.json b/res/trainers/data/lucas_jubilife_city_chimchar.json similarity index 100% rename from res/trainers/trainer_lucas_jubilife_city_chimchar.json rename to res/trainers/data/lucas_jubilife_city_chimchar.json diff --git a/res/trainers/trainer_lucas_jubilife_city_piplup.json b/res/trainers/data/lucas_jubilife_city_piplup.json similarity index 100% rename from res/trainers/trainer_lucas_jubilife_city_piplup.json rename to res/trainers/data/lucas_jubilife_city_piplup.json diff --git a/res/trainers/trainer_lucas_jubilife_city_turtwig.json b/res/trainers/data/lucas_jubilife_city_turtwig.json similarity index 100% rename from res/trainers/trainer_lucas_jubilife_city_turtwig.json rename to res/trainers/data/lucas_jubilife_city_turtwig.json diff --git a/res/trainers/trainer_lucas_veilstone_city_chimchar.json b/res/trainers/data/lucas_veilstone_city_chimchar.json similarity index 100% rename from res/trainers/trainer_lucas_veilstone_city_chimchar.json rename to res/trainers/data/lucas_veilstone_city_chimchar.json diff --git a/res/trainers/trainer_lucas_veilstone_city_piplup.json b/res/trainers/data/lucas_veilstone_city_piplup.json similarity index 100% rename from res/trainers/trainer_lucas_veilstone_city_piplup.json rename to res/trainers/data/lucas_veilstone_city_piplup.json diff --git a/res/trainers/trainer_lucas_veilstone_city_turtwig.json b/res/trainers/data/lucas_veilstone_city_turtwig.json similarity index 100% rename from res/trainers/trainer_lucas_veilstone_city_turtwig.json rename to res/trainers/data/lucas_veilstone_city_turtwig.json diff --git a/res/trainers/trainer_maid_belinda.json b/res/trainers/data/maid_belinda.json similarity index 100% rename from res/trainers/trainer_maid_belinda.json rename to res/trainers/data/maid_belinda.json diff --git a/res/trainers/trainer_maid_clare.json b/res/trainers/data/maid_clare.json similarity index 100% rename from res/trainers/trainer_maid_clare.json rename to res/trainers/data/maid_clare.json diff --git a/res/trainers/trainer_maid_elena.json b/res/trainers/data/maid_elena.json similarity index 100% rename from res/trainers/trainer_maid_elena.json rename to res/trainers/data/maid_elena.json diff --git a/res/trainers/trainer_maid_emily.json b/res/trainers/data/maid_emily.json similarity index 100% rename from res/trainers/trainer_maid_emily.json rename to res/trainers/data/maid_emily.json diff --git a/res/trainers/trainer_maid_sophie.json b/res/trainers/data/maid_sophie.json similarity index 100% rename from res/trainers/trainer_maid_sophie.json rename to res/trainers/data/maid_sophie.json diff --git a/res/trainers/trainer_marley_battleground.json b/res/trainers/data/marley_battleground.json similarity index 100% rename from res/trainers/trainer_marley_battleground.json rename to res/trainers/data/marley_battleground.json diff --git a/res/trainers/trainer_marley_victory_road.json b/res/trainers/data/marley_victory_road.json similarity index 100% rename from res/trainers/trainer_marley_victory_road.json rename to res/trainers/data/marley_victory_road.json diff --git a/res/trainers/trainer_mira_battleground.json b/res/trainers/data/mira_battleground.json similarity index 100% rename from res/trainers/trainer_mira_battleground.json rename to res/trainers/data/mira_battleground.json diff --git a/res/trainers/trainer_mira_wayward_cave.json b/res/trainers/data/mira_wayward_cave.json similarity index 100% rename from res/trainers/trainer_mira_wayward_cave.json rename to res/trainers/data/mira_wayward_cave.json diff --git a/res/trainers/trainer_ninja_boy_brennan.json b/res/trainers/data/ninja_boy_brennan.json similarity index 100% rename from res/trainers/trainer_ninja_boy_brennan.json rename to res/trainers/data/ninja_boy_brennan.json diff --git a/res/trainers/trainer_ninja_boy_bruce.json b/res/trainers/data/ninja_boy_bruce.json similarity index 100% rename from res/trainers/trainer_ninja_boy_bruce.json rename to res/trainers/data/ninja_boy_bruce.json diff --git a/res/trainers/trainer_ninja_boy_davido.json b/res/trainers/data/ninja_boy_davido.json similarity index 100% rename from res/trainers/trainer_ninja_boy_davido.json rename to res/trainers/data/ninja_boy_davido.json diff --git a/res/trainers/trainer_ninja_boy_ethan.json b/res/trainers/data/ninja_boy_ethan.json similarity index 100% rename from res/trainers/trainer_ninja_boy_ethan.json rename to res/trainers/data/ninja_boy_ethan.json diff --git a/res/trainers/trainer_ninja_boy_fabian.json b/res/trainers/data/ninja_boy_fabian.json similarity index 100% rename from res/trainers/trainer_ninja_boy_fabian.json rename to res/trainers/data/ninja_boy_fabian.json diff --git a/res/trainers/trainer_ninja_boy_joel.json b/res/trainers/data/ninja_boy_joel.json similarity index 100% rename from res/trainers/trainer_ninja_boy_joel.json rename to res/trainers/data/ninja_boy_joel.json diff --git a/res/trainers/trainer_ninja_boy_matthew.json b/res/trainers/data/ninja_boy_matthew.json similarity index 100% rename from res/trainers/trainer_ninja_boy_matthew.json rename to res/trainers/data/ninja_boy_matthew.json diff --git a/res/trainers/trainer_ninja_boy_nathan.json b/res/trainers/data/ninja_boy_nathan.json similarity index 100% rename from res/trainers/trainer_ninja_boy_nathan.json rename to res/trainers/data/ninja_boy_nathan.json diff --git a/res/trainers/trainer_ninja_boy_nick.json b/res/trainers/data/ninja_boy_nick.json similarity index 100% rename from res/trainers/trainer_ninja_boy_nick.json rename to res/trainers/data/ninja_boy_nick.json diff --git a/res/trainers/trainer_ninja_boy_zach.json b/res/trainers/data/ninja_boy_zach.json similarity index 100% rename from res/trainers/trainer_ninja_boy_zach.json rename to res/trainers/data/ninja_boy_zach.json diff --git a/res/trainers/trainer_ninja_boy_zach_rematch_1.json b/res/trainers/data/ninja_boy_zach_rematch_1.json similarity index 100% rename from res/trainers/trainer_ninja_boy_zach_rematch_1.json rename to res/trainers/data/ninja_boy_zach_rematch_1.json diff --git a/res/trainers/trainer_ninja_boy_zach_rematch_2.json b/res/trainers/data/ninja_boy_zach_rematch_2.json similarity index 100% rename from res/trainers/trainer_ninja_boy_zach_rematch_2.json rename to res/trainers/data/ninja_boy_zach_rematch_2.json diff --git a/res/trainers/trainer_ninja_boy_zach_rematch_3.json b/res/trainers/data/ninja_boy_zach_rematch_3.json similarity index 100% rename from res/trainers/trainer_ninja_boy_zach_rematch_3.json rename to res/trainers/data/ninja_boy_zach_rematch_3.json diff --git a/res/trainers/trainer_none.json b/res/trainers/data/none.json similarity index 100% rename from res/trainers/trainer_none.json rename to res/trainers/data/none.json diff --git a/res/trainers/trainer_parasol_lady_alexa.json b/res/trainers/data/parasol_lady_alexa.json similarity index 100% rename from res/trainers/trainer_parasol_lady_alexa.json rename to res/trainers/data/parasol_lady_alexa.json diff --git a/res/trainers/trainer_parasol_lady_alexa_rematch_1.json b/res/trainers/data/parasol_lady_alexa_rematch_1.json similarity index 100% rename from res/trainers/trainer_parasol_lady_alexa_rematch_1.json rename to res/trainers/data/parasol_lady_alexa_rematch_1.json diff --git a/res/trainers/trainer_parasol_lady_alexa_rematch_2.json b/res/trainers/data/parasol_lady_alexa_rematch_2.json similarity index 100% rename from res/trainers/trainer_parasol_lady_alexa_rematch_2.json rename to res/trainers/data/parasol_lady_alexa_rematch_2.json diff --git a/res/trainers/trainer_parasol_lady_alexa_rematch_3.json b/res/trainers/data/parasol_lady_alexa_rematch_3.json similarity index 100% rename from res/trainers/trainer_parasol_lady_alexa_rematch_3.json rename to res/trainers/data/parasol_lady_alexa_rematch_3.json diff --git a/res/trainers/trainer_parasol_lady_sabrina.json b/res/trainers/data/parasol_lady_sabrina.json similarity index 100% rename from res/trainers/trainer_parasol_lady_sabrina.json rename to res/trainers/data/parasol_lady_sabrina.json diff --git a/res/trainers/trainer_pi_carlos.json b/res/trainers/data/pi_carlos.json similarity index 100% rename from res/trainers/trainer_pi_carlos.json rename to res/trainers/data/pi_carlos.json diff --git a/res/trainers/trainer_pi_carlos_rematch_1.json b/res/trainers/data/pi_carlos_rematch_1.json similarity index 100% rename from res/trainers/trainer_pi_carlos_rematch_1.json rename to res/trainers/data/pi_carlos_rematch_1.json diff --git a/res/trainers/trainer_pi_carlos_rematch_2.json b/res/trainers/data/pi_carlos_rematch_2.json similarity index 100% rename from res/trainers/trainer_pi_carlos_rematch_2.json rename to res/trainers/data/pi_carlos_rematch_2.json diff --git a/res/trainers/trainer_pi_kendrick.json b/res/trainers/data/pi_kendrick.json similarity index 100% rename from res/trainers/trainer_pi_kendrick.json rename to res/trainers/data/pi_kendrick.json diff --git a/res/trainers/trainer_picnicker_ana.json b/res/trainers/data/picnicker_ana.json similarity index 100% rename from res/trainers/trainer_picnicker_ana.json rename to res/trainers/data/picnicker_ana.json diff --git a/res/trainers/trainer_picnicker_cheyenne.json b/res/trainers/data/picnicker_cheyenne.json similarity index 100% rename from res/trainers/trainer_picnicker_cheyenne.json rename to res/trainers/data/picnicker_cheyenne.json diff --git a/res/trainers/trainer_picnicker_diana.json b/res/trainers/data/picnicker_diana.json similarity index 100% rename from res/trainers/trainer_picnicker_diana.json rename to res/trainers/data/picnicker_diana.json diff --git a/res/trainers/trainer_picnicker_karina.json b/res/trainers/data/picnicker_karina.json similarity index 100% rename from res/trainers/trainer_picnicker_karina.json rename to res/trainers/data/picnicker_karina.json diff --git a/res/trainers/trainer_picnicker_karina_rematch_1.json b/res/trainers/data/picnicker_karina_rematch_1.json similarity index 100% rename from res/trainers/trainer_picnicker_karina_rematch_1.json rename to res/trainers/data/picnicker_karina_rematch_1.json diff --git a/res/trainers/trainer_picnicker_karina_rematch_2.json b/res/trainers/data/picnicker_karina_rematch_2.json similarity index 100% rename from res/trainers/trainer_picnicker_karina_rematch_2.json rename to res/trainers/data/picnicker_karina_rematch_2.json diff --git a/res/trainers/trainer_picnicker_karina_rematch_3.json b/res/trainers/data/picnicker_karina_rematch_3.json similarity index 100% rename from res/trainers/trainer_picnicker_karina_rematch_3.json rename to res/trainers/data/picnicker_karina_rematch_3.json diff --git a/res/trainers/trainer_picnicker_lauren.json b/res/trainers/data/picnicker_lauren.json similarity index 100% rename from res/trainers/trainer_picnicker_lauren.json rename to res/trainers/data/picnicker_lauren.json diff --git a/res/trainers/trainer_picnicker_siena.json b/res/trainers/data/picnicker_siena.json similarity index 100% rename from res/trainers/trainer_picnicker_siena.json rename to res/trainers/data/picnicker_siena.json diff --git a/res/trainers/trainer_picnicker_summer.json b/res/trainers/data/picnicker_summer.json similarity index 100% rename from res/trainers/trainer_picnicker_summer.json rename to res/trainers/data/picnicker_summer.json diff --git a/res/trainers/trainer_picnicker_tori.json b/res/trainers/data/picnicker_tori.json similarity index 100% rename from res/trainers/trainer_picnicker_tori.json rename to res/trainers/data/picnicker_tori.json diff --git a/res/trainers/trainer_poke_kid_ariel.json b/res/trainers/data/poke_kid_ariel.json similarity index 100% rename from res/trainers/trainer_poke_kid_ariel.json rename to res/trainers/data/poke_kid_ariel.json diff --git a/res/trainers/trainer_poke_kid_ariel_rematch_1.json b/res/trainers/data/poke_kid_ariel_rematch_1.json similarity index 100% rename from res/trainers/trainer_poke_kid_ariel_rematch_1.json rename to res/trainers/data/poke_kid_ariel_rematch_1.json diff --git a/res/trainers/trainer_poke_kid_ariel_rematch_2.json b/res/trainers/data/poke_kid_ariel_rematch_2.json similarity index 100% rename from res/trainers/trainer_poke_kid_ariel_rematch_2.json rename to res/trainers/data/poke_kid_ariel_rematch_2.json diff --git a/res/trainers/trainer_poke_kid_ariel_rematch_3.json b/res/trainers/data/poke_kid_ariel_rematch_3.json similarity index 100% rename from res/trainers/trainer_poke_kid_ariel_rematch_3.json rename to res/trainers/data/poke_kid_ariel_rematch_3.json diff --git a/res/trainers/trainer_poke_kid_ariel_rematch_4.json b/res/trainers/data/poke_kid_ariel_rematch_4.json similarity index 100% rename from res/trainers/trainer_poke_kid_ariel_rematch_4.json rename to res/trainers/data/poke_kid_ariel_rematch_4.json diff --git a/res/trainers/trainer_poke_kid_danielle.json b/res/trainers/data/poke_kid_danielle.json similarity index 100% rename from res/trainers/trainer_poke_kid_danielle.json rename to res/trainers/data/poke_kid_danielle.json diff --git a/res/trainers/trainer_poke_kid_danielle_rematch_1.json b/res/trainers/data/poke_kid_danielle_rematch_1.json similarity index 100% rename from res/trainers/trainer_poke_kid_danielle_rematch_1.json rename to res/trainers/data/poke_kid_danielle_rematch_1.json diff --git a/res/trainers/trainer_poke_kid_danielle_rematch_2.json b/res/trainers/data/poke_kid_danielle_rematch_2.json similarity index 100% rename from res/trainers/trainer_poke_kid_danielle_rematch_2.json rename to res/trainers/data/poke_kid_danielle_rematch_2.json diff --git a/res/trainers/trainer_poke_kid_danielle_rematch_3.json b/res/trainers/data/poke_kid_danielle_rematch_3.json similarity index 100% rename from res/trainers/trainer_poke_kid_danielle_rematch_3.json rename to res/trainers/data/poke_kid_danielle_rematch_3.json diff --git a/res/trainers/trainer_poke_kid_janet.json b/res/trainers/data/poke_kid_janet.json similarity index 100% rename from res/trainers/trainer_poke_kid_janet.json rename to res/trainers/data/poke_kid_janet.json diff --git a/res/trainers/trainer_poke_kid_meghan.json b/res/trainers/data/poke_kid_meghan.json similarity index 100% rename from res/trainers/trainer_poke_kid_meghan.json rename to res/trainers/data/poke_kid_meghan.json diff --git a/res/trainers/trainer_pokefan_leonard.json b/res/trainers/data/pokefan_leonard.json similarity index 100% rename from res/trainers/trainer_pokefan_leonard.json rename to res/trainers/data/pokefan_leonard.json diff --git a/res/trainers/trainer_pokefan_meredith.json b/res/trainers/data/pokefan_meredith.json similarity index 100% rename from res/trainers/trainer_pokefan_meredith.json rename to res/trainers/data/pokefan_meredith.json diff --git a/res/trainers/trainer_pokefan_rebekah.json b/res/trainers/data/pokefan_rebekah.json similarity index 100% rename from res/trainers/trainer_pokefan_rebekah.json rename to res/trainers/data/pokefan_rebekah.json diff --git a/res/trainers/trainer_policeman_alex.json b/res/trainers/data/policeman_alex.json similarity index 100% rename from res/trainers/trainer_policeman_alex.json rename to res/trainers/data/policeman_alex.json diff --git a/res/trainers/trainer_policeman_bobby.json b/res/trainers/data/policeman_bobby.json similarity index 100% rename from res/trainers/trainer_policeman_bobby.json rename to res/trainers/data/policeman_bobby.json diff --git a/res/trainers/trainer_policeman_caleb.json b/res/trainers/data/policeman_caleb.json similarity index 100% rename from res/trainers/trainer_policeman_caleb.json rename to res/trainers/data/policeman_caleb.json diff --git a/res/trainers/trainer_policeman_danny.json b/res/trainers/data/policeman_danny.json similarity index 100% rename from res/trainers/trainer_policeman_danny.json rename to res/trainers/data/policeman_danny.json diff --git a/res/trainers/trainer_policeman_danny_rematch_1.json b/res/trainers/data/policeman_danny_rematch_1.json similarity index 100% rename from res/trainers/trainer_policeman_danny_rematch_1.json rename to res/trainers/data/policeman_danny_rematch_1.json diff --git a/res/trainers/trainer_policeman_danny_rematch_2.json b/res/trainers/data/policeman_danny_rematch_2.json similarity index 100% rename from res/trainers/trainer_policeman_danny_rematch_2.json rename to res/trainers/data/policeman_danny_rematch_2.json diff --git a/res/trainers/trainer_policeman_danny_rematch_3.json b/res/trainers/data/policeman_danny_rematch_3.json similarity index 100% rename from res/trainers/trainer_policeman_danny_rematch_3.json rename to res/trainers/data/policeman_danny_rematch_3.json diff --git a/res/trainers/trainer_policeman_dylan.json b/res/trainers/data/policeman_dylan.json similarity index 100% rename from res/trainers/trainer_policeman_dylan.json rename to res/trainers/data/policeman_dylan.json diff --git a/res/trainers/trainer_policeman_thomas.json b/res/trainers/data/policeman_thomas.json similarity index 100% rename from res/trainers/trainer_policeman_thomas.json rename to res/trainers/data/policeman_thomas.json diff --git a/res/trainers/trainer_psychic_abigail.json b/res/trainers/data/psychic_abigail.json similarity index 100% rename from res/trainers/trainer_psychic_abigail.json rename to res/trainers/data/psychic_abigail.json diff --git a/res/trainers/trainer_psychic_abigail_rematch_1.json b/res/trainers/data/psychic_abigail_rematch_1.json similarity index 100% rename from res/trainers/trainer_psychic_abigail_rematch_1.json rename to res/trainers/data/psychic_abigail_rematch_1.json diff --git a/res/trainers/trainer_psychic_abigail_rematch_2.json b/res/trainers/data/psychic_abigail_rematch_2.json similarity index 100% rename from res/trainers/trainer_psychic_abigail_rematch_2.json rename to res/trainers/data/psychic_abigail_rematch_2.json diff --git a/res/trainers/trainer_psychic_brittney.json b/res/trainers/data/psychic_brittney.json similarity index 100% rename from res/trainers/trainer_psychic_brittney.json rename to res/trainers/data/psychic_brittney.json diff --git a/res/trainers/trainer_psychic_brittney_rematch.json b/res/trainers/data/psychic_brittney_rematch.json similarity index 100% rename from res/trainers/trainer_psychic_brittney_rematch.json rename to res/trainers/data/psychic_brittney_rematch.json diff --git a/res/trainers/trainer_psychic_bryce.json b/res/trainers/data/psychic_bryce.json similarity index 100% rename from res/trainers/trainer_psychic_bryce.json rename to res/trainers/data/psychic_bryce.json diff --git a/res/trainers/trainer_psychic_chelsey.json b/res/trainers/data/psychic_chelsey.json similarity index 100% rename from res/trainers/trainer_psychic_chelsey.json rename to res/trainers/data/psychic_chelsey.json diff --git a/res/trainers/trainer_psychic_corbin.json b/res/trainers/data/psychic_corbin.json similarity index 100% rename from res/trainers/trainer_psychic_corbin.json rename to res/trainers/data/psychic_corbin.json diff --git a/res/trainers/trainer_psychic_corbin_rematch.json b/res/trainers/data/psychic_corbin_rematch.json similarity index 100% rename from res/trainers/trainer_psychic_corbin_rematch.json rename to res/trainers/data/psychic_corbin_rematch.json diff --git a/res/trainers/trainer_psychic_daisy.json b/res/trainers/data/psychic_daisy.json similarity index 100% rename from res/trainers/trainer_psychic_daisy.json rename to res/trainers/data/psychic_daisy.json diff --git a/res/trainers/trainer_psychic_daisy_rematch.json b/res/trainers/data/psychic_daisy_rematch.json similarity index 100% rename from res/trainers/trainer_psychic_daisy_rematch.json rename to res/trainers/data/psychic_daisy_rematch.json diff --git a/res/trainers/trainer_psychic_deandre.json b/res/trainers/data/psychic_deandre.json similarity index 100% rename from res/trainers/trainer_psychic_deandre.json rename to res/trainers/data/psychic_deandre.json diff --git a/res/trainers/trainer_psychic_desiree.json b/res/trainers/data/psychic_desiree.json similarity index 100% rename from res/trainers/trainer_psychic_desiree.json rename to res/trainers/data/psychic_desiree.json diff --git a/res/trainers/trainer_psychic_elijah.json b/res/trainers/data/psychic_elijah.json similarity index 100% rename from res/trainers/trainer_psychic_elijah.json rename to res/trainers/data/psychic_elijah.json diff --git a/res/trainers/trainer_psychic_kendra.json b/res/trainers/data/psychic_kendra.json similarity index 100% rename from res/trainers/trainer_psychic_kendra.json rename to res/trainers/data/psychic_kendra.json diff --git a/res/trainers/trainer_psychic_kody.json b/res/trainers/data/psychic_kody.json similarity index 100% rename from res/trainers/trainer_psychic_kody.json rename to res/trainers/data/psychic_kody.json diff --git a/res/trainers/trainer_psychic_landon.json b/res/trainers/data/psychic_landon.json similarity index 100% rename from res/trainers/trainer_psychic_landon.json rename to res/trainers/data/psychic_landon.json diff --git a/res/trainers/trainer_psychic_lindsey.json b/res/trainers/data/psychic_lindsey.json similarity index 100% rename from res/trainers/trainer_psychic_lindsey.json rename to res/trainers/data/psychic_lindsey.json diff --git a/res/trainers/trainer_psychic_maxwell.json b/res/trainers/data/psychic_maxwell.json similarity index 100% rename from res/trainers/trainer_psychic_maxwell.json rename to res/trainers/data/psychic_maxwell.json diff --git a/res/trainers/trainer_psychic_maxwell_rematch.json b/res/trainers/data/psychic_maxwell_rematch.json similarity index 100% rename from res/trainers/trainer_psychic_maxwell_rematch.json rename to res/trainers/data/psychic_maxwell_rematch.json diff --git a/res/trainers/trainer_psychic_mitchell.json b/res/trainers/data/psychic_mitchell.json similarity index 100% rename from res/trainers/trainer_psychic_mitchell.json rename to res/trainers/data/psychic_mitchell.json diff --git a/res/trainers/trainer_psychic_mitchell_rematch_1.json b/res/trainers/data/psychic_mitchell_rematch_1.json similarity index 100% rename from res/trainers/trainer_psychic_mitchell_rematch_1.json rename to res/trainers/data/psychic_mitchell_rematch_1.json diff --git a/res/trainers/trainer_psychic_mitchell_rematch_2.json b/res/trainers/data/psychic_mitchell_rematch_2.json similarity index 100% rename from res/trainers/trainer_psychic_mitchell_rematch_2.json rename to res/trainers/data/psychic_mitchell_rematch_2.json diff --git a/res/trainers/trainer_psychic_rachael.json b/res/trainers/data/psychic_rachael.json similarity index 100% rename from res/trainers/trainer_psychic_rachael.json rename to res/trainers/data/psychic_rachael.json diff --git a/res/trainers/trainer_psychic_sterling.json b/res/trainers/data/psychic_sterling.json similarity index 100% rename from res/trainers/trainer_psychic_sterling.json rename to res/trainers/data/psychic_sterling.json diff --git a/res/trainers/trainer_psychic_valencia.json b/res/trainers/data/psychic_valencia.json similarity index 100% rename from res/trainers/trainer_psychic_valencia.json rename to res/trainers/data/psychic_valencia.json diff --git a/res/trainers/trainer_rancher_marco.json b/res/trainers/data/rancher_marco.json similarity index 100% rename from res/trainers/trainer_rancher_marco.json rename to res/trainers/data/rancher_marco.json diff --git a/res/trainers/trainer_rancher_marco_rematch_1.json b/res/trainers/data/rancher_marco_rematch_1.json similarity index 100% rename from res/trainers/trainer_rancher_marco_rematch_1.json rename to res/trainers/data/rancher_marco_rematch_1.json diff --git a/res/trainers/trainer_rancher_marco_rematch_2.json b/res/trainers/data/rancher_marco_rematch_2.json similarity index 100% rename from res/trainers/trainer_rancher_marco_rematch_2.json rename to res/trainers/data/rancher_marco_rematch_2.json diff --git a/res/trainers/trainer_ranger_allison.json b/res/trainers/data/ranger_allison.json similarity index 100% rename from res/trainers/trainer_ranger_allison.json rename to res/trainers/data/ranger_allison.json diff --git a/res/trainers/trainer_ranger_allison_rematch_1.json b/res/trainers/data/ranger_allison_rematch_1.json similarity index 100% rename from res/trainers/trainer_ranger_allison_rematch_1.json rename to res/trainers/data/ranger_allison_rematch_1.json diff --git a/res/trainers/trainer_ranger_allison_rematch_2.json b/res/trainers/data/ranger_allison_rematch_2.json similarity index 100% rename from res/trainers/trainer_ranger_allison_rematch_2.json rename to res/trainers/data/ranger_allison_rematch_2.json diff --git a/res/trainers/trainer_ranger_allison_rematch_3.json b/res/trainers/data/ranger_allison_rematch_3.json similarity index 100% rename from res/trainers/trainer_ranger_allison_rematch_3.json rename to res/trainers/data/ranger_allison_rematch_3.json diff --git a/res/trainers/trainer_ranger_ashlee.json b/res/trainers/data/ranger_ashlee.json similarity index 100% rename from res/trainers/trainer_ranger_ashlee.json rename to res/trainers/data/ranger_ashlee.json diff --git a/res/trainers/trainer_ranger_ashlee_rematch.json b/res/trainers/data/ranger_ashlee_rematch.json similarity index 100% rename from res/trainers/trainer_ranger_ashlee_rematch.json rename to res/trainers/data/ranger_ashlee_rematch.json diff --git a/res/trainers/trainer_ranger_deshawn.json b/res/trainers/data/ranger_deshawn.json similarity index 100% rename from res/trainers/trainer_ranger_deshawn.json rename to res/trainers/data/ranger_deshawn.json diff --git a/res/trainers/trainer_ranger_dwayne.json b/res/trainers/data/ranger_dwayne.json similarity index 100% rename from res/trainers/trainer_ranger_dwayne.json rename to res/trainers/data/ranger_dwayne.json diff --git a/res/trainers/trainer_ranger_felicia.json b/res/trainers/data/ranger_felicia.json similarity index 100% rename from res/trainers/trainer_ranger_felicia.json rename to res/trainers/data/ranger_felicia.json diff --git a/res/trainers/trainer_ranger_jeffrey.json b/res/trainers/data/ranger_jeffrey.json similarity index 100% rename from res/trainers/trainer_ranger_jeffrey.json rename to res/trainers/data/ranger_jeffrey.json diff --git a/res/trainers/trainer_ranger_krista.json b/res/trainers/data/ranger_krista.json similarity index 100% rename from res/trainers/trainer_ranger_krista.json rename to res/trainers/data/ranger_krista.json diff --git a/res/trainers/trainer_ranger_kyler.json b/res/trainers/data/ranger_kyler.json similarity index 100% rename from res/trainers/trainer_ranger_kyler.json rename to res/trainers/data/ranger_kyler.json diff --git a/res/trainers/trainer_ranger_kyler_rematch.json b/res/trainers/data/ranger_kyler_rematch.json similarity index 100% rename from res/trainers/trainer_ranger_kyler_rematch.json rename to res/trainers/data/ranger_kyler_rematch.json diff --git a/res/trainers/trainer_ranger_taylor.json b/res/trainers/data/ranger_taylor.json similarity index 100% rename from res/trainers/trainer_ranger_taylor.json rename to res/trainers/data/ranger_taylor.json diff --git a/res/trainers/trainer_ranger_taylor_rematch_1.json b/res/trainers/data/ranger_taylor_rematch_1.json similarity index 100% rename from res/trainers/trainer_ranger_taylor_rematch_1.json rename to res/trainers/data/ranger_taylor_rematch_1.json diff --git a/res/trainers/trainer_ranger_taylor_rematch_2.json b/res/trainers/data/ranger_taylor_rematch_2.json similarity index 100% rename from res/trainers/trainer_ranger_taylor_rematch_2.json rename to res/trainers/data/ranger_taylor_rematch_2.json diff --git a/res/trainers/trainer_ranger_taylor_rematch_3.json b/res/trainers/data/ranger_taylor_rematch_3.json similarity index 100% rename from res/trainers/trainer_ranger_taylor_rematch_3.json rename to res/trainers/data/ranger_taylor_rematch_3.json diff --git a/res/trainers/trainer_reporters_kinsey.json b/res/trainers/data/reporters_kinsey.json similarity index 100% rename from res/trainers/trainer_reporters_kinsey.json rename to res/trainers/data/reporters_kinsey.json diff --git a/res/trainers/trainer_reporters_kinsey_rematch_1.json b/res/trainers/data/reporters_kinsey_rematch_1.json similarity index 100% rename from res/trainers/trainer_reporters_kinsey_rematch_1.json rename to res/trainers/data/reporters_kinsey_rematch_1.json diff --git a/res/trainers/trainer_reporters_kinsey_rematch_2.json b/res/trainers/data/reporters_kinsey_rematch_2.json similarity index 100% rename from res/trainers/trainer_reporters_kinsey_rematch_2.json rename to res/trainers/data/reporters_kinsey_rematch_2.json diff --git a/res/trainers/trainer_reporters_kinsey_rematch_3.json b/res/trainers/data/reporters_kinsey_rematch_3.json similarity index 100% rename from res/trainers/trainer_reporters_kinsey_rematch_3.json rename to res/trainers/data/reporters_kinsey_rematch_3.json diff --git a/res/trainers/trainer_reporters_kinsey_rematch_4.json b/res/trainers/data/reporters_kinsey_rematch_4.json similarity index 100% rename from res/trainers/trainer_reporters_kinsey_rematch_4.json rename to res/trainers/data/reporters_kinsey_rematch_4.json diff --git a/res/trainers/trainer_reporters_valerie.json b/res/trainers/data/reporters_valerie.json similarity index 100% rename from res/trainers/trainer_reporters_valerie.json rename to res/trainers/data/reporters_valerie.json diff --git a/res/trainers/trainer_rich_boy_jason.json b/res/trainers/data/rich_boy_jason.json similarity index 100% rename from res/trainers/trainer_rich_boy_jason.json rename to res/trainers/data/rich_boy_jason.json diff --git a/res/trainers/trainer_rich_boy_liam.json b/res/trainers/data/rich_boy_liam.json similarity index 100% rename from res/trainers/trainer_rich_boy_liam.json rename to res/trainers/data/rich_boy_liam.json diff --git a/res/trainers/trainer_rich_boy_roman.json b/res/trainers/data/rich_boy_roman.json similarity index 100% rename from res/trainers/trainer_rich_boy_roman.json rename to res/trainers/data/rich_boy_roman.json diff --git a/res/trainers/trainer_rich_boy_trey.json b/res/trainers/data/rich_boy_trey.json similarity index 100% rename from res/trainers/trainer_rich_boy_trey.json rename to res/trainers/data/rich_boy_trey.json diff --git a/res/trainers/trainer_rich_boy_trey_rematch_1.json b/res/trainers/data/rich_boy_trey_rematch_1.json similarity index 100% rename from res/trainers/trainer_rich_boy_trey_rematch_1.json rename to res/trainers/data/rich_boy_trey_rematch_1.json diff --git a/res/trainers/trainer_rich_boy_trey_rematch_2.json b/res/trainers/data/rich_boy_trey_rematch_2.json similarity index 100% rename from res/trainers/trainer_rich_boy_trey_rematch_2.json rename to res/trainers/data/rich_boy_trey_rematch_2.json diff --git a/res/trainers/trainer_riley_battleground.json b/res/trainers/data/riley_battleground.json similarity index 100% rename from res/trainers/trainer_riley_battleground.json rename to res/trainers/data/riley_battleground.json diff --git a/res/trainers/trainer_riley_iron_island.json b/res/trainers/data/riley_iron_island.json similarity index 100% rename from res/trainers/trainer_riley_iron_island.json rename to res/trainers/data/riley_iron_island.json diff --git a/res/trainers/trainer_rival_canalave_city_chimchar.json b/res/trainers/data/rival_canalave_city_chimchar.json similarity index 100% rename from res/trainers/trainer_rival_canalave_city_chimchar.json rename to res/trainers/data/rival_canalave_city_chimchar.json diff --git a/res/trainers/trainer_rival_canalave_city_piplup.json b/res/trainers/data/rival_canalave_city_piplup.json similarity index 100% rename from res/trainers/trainer_rival_canalave_city_piplup.json rename to res/trainers/data/rival_canalave_city_piplup.json diff --git a/res/trainers/trainer_rival_canalave_city_turtwig.json b/res/trainers/data/rival_canalave_city_turtwig.json similarity index 100% rename from res/trainers/trainer_rival_canalave_city_turtwig.json rename to res/trainers/data/rival_canalave_city_turtwig.json diff --git a/res/trainers/trainer_rival_fight_area_chimchar.json b/res/trainers/data/rival_fight_area_chimchar.json similarity index 100% rename from res/trainers/trainer_rival_fight_area_chimchar.json rename to res/trainers/data/rival_fight_area_chimchar.json diff --git a/res/trainers/trainer_rival_fight_area_piplup.json b/res/trainers/data/rival_fight_area_piplup.json similarity index 100% rename from res/trainers/trainer_rival_fight_area_piplup.json rename to res/trainers/data/rival_fight_area_piplup.json diff --git a/res/trainers/trainer_rival_fight_area_turtwig.json b/res/trainers/data/rival_fight_area_turtwig.json similarity index 100% rename from res/trainers/trainer_rival_fight_area_turtwig.json rename to res/trainers/data/rival_fight_area_turtwig.json diff --git a/res/trainers/trainer_rival_pastoria_city_chimchar.json b/res/trainers/data/rival_pastoria_city_chimchar.json similarity index 100% rename from res/trainers/trainer_rival_pastoria_city_chimchar.json rename to res/trainers/data/rival_pastoria_city_chimchar.json diff --git a/res/trainers/trainer_rival_pastoria_city_piplup.json b/res/trainers/data/rival_pastoria_city_piplup.json similarity index 100% rename from res/trainers/trainer_rival_pastoria_city_piplup.json rename to res/trainers/data/rival_pastoria_city_piplup.json diff --git a/res/trainers/trainer_rival_pastoria_city_turtwig.json b/res/trainers/data/rival_pastoria_city_turtwig.json similarity index 100% rename from res/trainers/trainer_rival_pastoria_city_turtwig.json rename to res/trainers/data/rival_pastoria_city_turtwig.json diff --git a/res/trainers/trainer_rival_pokemon_league_chimchar.json b/res/trainers/data/rival_pokemon_league_chimchar.json similarity index 100% rename from res/trainers/trainer_rival_pokemon_league_chimchar.json rename to res/trainers/data/rival_pokemon_league_chimchar.json diff --git a/res/trainers/trainer_rival_pokemon_league_piplup.json b/res/trainers/data/rival_pokemon_league_piplup.json similarity index 100% rename from res/trainers/trainer_rival_pokemon_league_piplup.json rename to res/trainers/data/rival_pokemon_league_piplup.json diff --git a/res/trainers/trainer_rival_pokemon_league_turtwig.json b/res/trainers/data/rival_pokemon_league_turtwig.json similarity index 100% rename from res/trainers/trainer_rival_pokemon_league_turtwig.json rename to res/trainers/data/rival_pokemon_league_turtwig.json diff --git a/res/trainers/trainer_rival_route_201_chimchar.json b/res/trainers/data/rival_route_201_chimchar.json similarity index 100% rename from res/trainers/trainer_rival_route_201_chimchar.json rename to res/trainers/data/rival_route_201_chimchar.json diff --git a/res/trainers/trainer_rival_route_201_piplup.json b/res/trainers/data/rival_route_201_piplup.json similarity index 100% rename from res/trainers/trainer_rival_route_201_piplup.json rename to res/trainers/data/rival_route_201_piplup.json diff --git a/res/trainers/trainer_rival_route_201_turtwig.json b/res/trainers/data/rival_route_201_turtwig.json similarity index 100% rename from res/trainers/trainer_rival_route_201_turtwig.json rename to res/trainers/data/rival_route_201_turtwig.json diff --git a/res/trainers/trainer_rival_route_203_chimchar.json b/res/trainers/data/rival_route_203_chimchar.json similarity index 100% rename from res/trainers/trainer_rival_route_203_chimchar.json rename to res/trainers/data/rival_route_203_chimchar.json diff --git a/res/trainers/trainer_rival_route_203_piplup.json b/res/trainers/data/rival_route_203_piplup.json similarity index 100% rename from res/trainers/trainer_rival_route_203_piplup.json rename to res/trainers/data/rival_route_203_piplup.json diff --git a/res/trainers/trainer_rival_route_203_turtwig.json b/res/trainers/data/rival_route_203_turtwig.json similarity index 100% rename from res/trainers/trainer_rival_route_203_turtwig.json rename to res/trainers/data/rival_route_203_turtwig.json diff --git a/res/trainers/trainer_rival_route_209_chimchar.json b/res/trainers/data/rival_route_209_chimchar.json similarity index 100% rename from res/trainers/trainer_rival_route_209_chimchar.json rename to res/trainers/data/rival_route_209_chimchar.json diff --git a/res/trainers/trainer_rival_route_209_piplup.json b/res/trainers/data/rival_route_209_piplup.json similarity index 100% rename from res/trainers/trainer_rival_route_209_piplup.json rename to res/trainers/data/rival_route_209_piplup.json diff --git a/res/trainers/trainer_rival_route_209_turtwig.json b/res/trainers/data/rival_route_209_turtwig.json similarity index 100% rename from res/trainers/trainer_rival_route_209_turtwig.json rename to res/trainers/data/rival_route_209_turtwig.json diff --git a/res/trainers/trainer_rival_spear_pillar_chimchar.json b/res/trainers/data/rival_spear_pillar_chimchar.json similarity index 100% rename from res/trainers/trainer_rival_spear_pillar_chimchar.json rename to res/trainers/data/rival_spear_pillar_chimchar.json diff --git a/res/trainers/trainer_rival_spear_pillar_piplup.json b/res/trainers/data/rival_spear_pillar_piplup.json similarity index 100% rename from res/trainers/trainer_rival_spear_pillar_piplup.json rename to res/trainers/data/rival_spear_pillar_piplup.json diff --git a/res/trainers/trainer_rival_spear_pillar_turtwig.json b/res/trainers/data/rival_spear_pillar_turtwig.json similarity index 100% rename from res/trainers/trainer_rival_spear_pillar_turtwig.json rename to res/trainers/data/rival_spear_pillar_turtwig.json diff --git a/res/trainers/trainer_rival_survival_area_1_chimchar.json b/res/trainers/data/rival_survival_area_1_chimchar.json similarity index 100% rename from res/trainers/trainer_rival_survival_area_1_chimchar.json rename to res/trainers/data/rival_survival_area_1_chimchar.json diff --git a/res/trainers/trainer_rival_survival_area_1_piplup.json b/res/trainers/data/rival_survival_area_1_piplup.json similarity index 100% rename from res/trainers/trainer_rival_survival_area_1_piplup.json rename to res/trainers/data/rival_survival_area_1_piplup.json diff --git a/res/trainers/trainer_rival_survival_area_1_turtwig.json b/res/trainers/data/rival_survival_area_1_turtwig.json similarity index 100% rename from res/trainers/trainer_rival_survival_area_1_turtwig.json rename to res/trainers/data/rival_survival_area_1_turtwig.json diff --git a/res/trainers/trainer_rival_survival_area_2_chimchar.json b/res/trainers/data/rival_survival_area_2_chimchar.json similarity index 100% rename from res/trainers/trainer_rival_survival_area_2_chimchar.json rename to res/trainers/data/rival_survival_area_2_chimchar.json diff --git a/res/trainers/trainer_rival_survival_area_2_piplup.json b/res/trainers/data/rival_survival_area_2_piplup.json similarity index 100% rename from res/trainers/trainer_rival_survival_area_2_piplup.json rename to res/trainers/data/rival_survival_area_2_piplup.json diff --git a/res/trainers/trainer_rival_survival_area_2_turtwig.json b/res/trainers/data/rival_survival_area_2_turtwig.json similarity index 100% rename from res/trainers/trainer_rival_survival_area_2_turtwig.json rename to res/trainers/data/rival_survival_area_2_turtwig.json diff --git a/res/trainers/trainer_roughneck_kirby.json b/res/trainers/data/roughneck_kirby.json similarity index 100% rename from res/trainers/trainer_roughneck_kirby.json rename to res/trainers/data/roughneck_kirby.json diff --git a/res/trainers/trainer_ruin_maniac_bryan.json b/res/trainers/data/ruin_maniac_bryan.json similarity index 100% rename from res/trainers/trainer_ruin_maniac_bryan.json rename to res/trainers/data/ruin_maniac_bryan.json diff --git a/res/trainers/trainer_ruin_maniac_calvin.json b/res/trainers/data/ruin_maniac_calvin.json similarity index 100% rename from res/trainers/trainer_ruin_maniac_calvin.json rename to res/trainers/data/ruin_maniac_calvin.json diff --git a/res/trainers/trainer_ruin_maniac_gerald.json b/res/trainers/data/ruin_maniac_gerald.json similarity index 100% rename from res/trainers/trainer_ruin_maniac_gerald.json rename to res/trainers/data/ruin_maniac_gerald.json diff --git a/res/trainers/trainer_ruin_maniac_harry.json b/res/trainers/data/ruin_maniac_harry.json similarity index 100% rename from res/trainers/trainer_ruin_maniac_harry.json rename to res/trainers/data/ruin_maniac_harry.json diff --git a/res/trainers/trainer_ruin_maniac_harry_rematch_1.json b/res/trainers/data/ruin_maniac_harry_rematch_1.json similarity index 100% rename from res/trainers/trainer_ruin_maniac_harry_rematch_1.json rename to res/trainers/data/ruin_maniac_harry_rematch_1.json diff --git a/res/trainers/trainer_ruin_maniac_harry_rematch_2.json b/res/trainers/data/ruin_maniac_harry_rematch_2.json similarity index 100% rename from res/trainers/trainer_ruin_maniac_harry_rematch_2.json rename to res/trainers/data/ruin_maniac_harry_rematch_2.json diff --git a/res/trainers/trainer_ruin_maniac_karl.json b/res/trainers/data/ruin_maniac_karl.json similarity index 100% rename from res/trainers/trainer_ruin_maniac_karl.json rename to res/trainers/data/ruin_maniac_karl.json diff --git a/res/trainers/trainer_ruin_maniac_larry.json b/res/trainers/data/ruin_maniac_larry.json similarity index 100% rename from res/trainers/trainer_ruin_maniac_larry.json rename to res/trainers/data/ruin_maniac_larry.json diff --git a/res/trainers/trainer_ruin_maniac_ronald.json b/res/trainers/data/ruin_maniac_ronald.json similarity index 100% rename from res/trainers/trainer_ruin_maniac_ronald.json rename to res/trainers/data/ruin_maniac_ronald.json diff --git a/res/trainers/trainer_sailor_damian.json b/res/trainers/data/sailor_damian.json similarity index 100% rename from res/trainers/trainer_sailor_damian.json rename to res/trainers/data/sailor_damian.json diff --git a/res/trainers/trainer_sailor_luther.json b/res/trainers/data/sailor_luther.json similarity index 100% rename from res/trainers/trainer_sailor_luther.json rename to res/trainers/data/sailor_luther.json diff --git a/res/trainers/trainer_sailor_marc.json b/res/trainers/data/sailor_marc.json similarity index 100% rename from res/trainers/trainer_sailor_marc.json rename to res/trainers/data/sailor_marc.json diff --git a/res/trainers/trainer_sailor_marc_rematch_1.json b/res/trainers/data/sailor_marc_rematch_1.json similarity index 100% rename from res/trainers/trainer_sailor_marc_rematch_1.json rename to res/trainers/data/sailor_marc_rematch_1.json diff --git a/res/trainers/trainer_sailor_marc_rematch_2.json b/res/trainers/data/sailor_marc_rematch_2.json similarity index 100% rename from res/trainers/trainer_sailor_marc_rematch_2.json rename to res/trainers/data/sailor_marc_rematch_2.json diff --git a/res/trainers/trainer_sailor_paul.json b/res/trainers/data/sailor_paul.json similarity index 100% rename from res/trainers/trainer_sailor_paul.json rename to res/trainers/data/sailor_paul.json diff --git a/res/trainers/trainer_sailor_samson.json b/res/trainers/data/sailor_samson.json similarity index 100% rename from res/trainers/trainer_sailor_samson.json rename to res/trainers/data/sailor_samson.json diff --git a/res/trainers/trainer_sailor_skyler.json b/res/trainers/data/sailor_skyler.json similarity index 100% rename from res/trainers/trainer_sailor_skyler.json rename to res/trainers/data/sailor_skyler.json diff --git a/res/trainers/trainer_sailor_zachariah.json b/res/trainers/data/sailor_zachariah.json similarity index 100% rename from res/trainers/trainer_sailor_zachariah.json rename to res/trainers/data/sailor_zachariah.json diff --git a/res/trainers/trainer_sailor_zachariah_rematch.json b/res/trainers/data/sailor_zachariah_rematch.json similarity index 100% rename from res/trainers/trainer_sailor_zachariah_rematch.json rename to res/trainers/data/sailor_zachariah_rematch.json diff --git a/res/trainers/trainer_school_kid_chance.json b/res/trainers/data/school_kid_chance.json similarity index 100% rename from res/trainers/trainer_school_kid_chance.json rename to res/trainers/data/school_kid_chance.json diff --git a/res/trainers/trainer_school_kid_christine.json b/res/trainers/data/school_kid_christine.json similarity index 100% rename from res/trainers/trainer_school_kid_christine.json rename to res/trainers/data/school_kid_christine.json diff --git a/res/trainers/trainer_school_kid_esteban.json b/res/trainers/data/school_kid_esteban.json similarity index 100% rename from res/trainers/trainer_school_kid_esteban.json rename to res/trainers/data/school_kid_esteban.json diff --git a/res/trainers/trainer_school_kid_forrest.json b/res/trainers/data/school_kid_forrest.json similarity index 100% rename from res/trainers/trainer_school_kid_forrest.json rename to res/trainers/data/school_kid_forrest.json diff --git a/res/trainers/trainer_school_kid_harrison.json b/res/trainers/data/school_kid_harrison.json similarity index 100% rename from res/trainers/trainer_school_kid_harrison.json rename to res/trainers/data/school_kid_harrison.json diff --git a/res/trainers/trainer_school_kid_mackenzie.json b/res/trainers/data/school_kid_mackenzie.json similarity index 100% rename from res/trainers/trainer_school_kid_mackenzie.json rename to res/trainers/data/school_kid_mackenzie.json diff --git a/res/trainers/trainer_school_kid_tiera.json b/res/trainers/data/school_kid_tiera.json similarity index 100% rename from res/trainers/trainer_school_kid_tiera.json rename to res/trainers/data/school_kid_tiera.json diff --git a/res/trainers/trainer_scientist_darrius.json b/res/trainers/data/scientist_darrius.json similarity index 100% rename from res/trainers/trainer_scientist_darrius.json rename to res/trainers/data/scientist_darrius.json diff --git a/res/trainers/trainer_scientist_emilio.json b/res/trainers/data/scientist_emilio.json similarity index 100% rename from res/trainers/trainer_scientist_emilio.json rename to res/trainers/data/scientist_emilio.json diff --git a/res/trainers/trainer_scientist_fredrick.json b/res/trainers/data/scientist_fredrick.json similarity index 100% rename from res/trainers/trainer_scientist_fredrick.json rename to res/trainers/data/scientist_fredrick.json diff --git a/res/trainers/trainer_scientist_shaun.json b/res/trainers/data/scientist_shaun.json similarity index 100% rename from res/trainers/trainer_scientist_shaun.json rename to res/trainers/data/scientist_shaun.json diff --git a/res/trainers/trainer_scientist_shaun_rematch_1.json b/res/trainers/data/scientist_shaun_rematch_1.json similarity index 100% rename from res/trainers/trainer_scientist_shaun_rematch_1.json rename to res/trainers/data/scientist_shaun_rematch_1.json diff --git a/res/trainers/trainer_scientist_shaun_rematch_2.json b/res/trainers/data/scientist_shaun_rematch_2.json similarity index 100% rename from res/trainers/trainer_scientist_shaun_rematch_2.json rename to res/trainers/data/scientist_shaun_rematch_2.json diff --git a/res/trainers/trainer_scientist_shaun_rematch_3.json b/res/trainers/data/scientist_shaun_rematch_3.json similarity index 100% rename from res/trainers/trainer_scientist_shaun_rematch_3.json rename to res/trainers/data/scientist_shaun_rematch_3.json diff --git a/res/trainers/trainer_scientist_stefano.json b/res/trainers/data/scientist_stefano.json similarity index 100% rename from res/trainers/trainer_scientist_stefano.json rename to res/trainers/data/scientist_stefano.json diff --git a/res/trainers/trainer_scientist_travon.json b/res/trainers/data/scientist_travon.json similarity index 100% rename from res/trainers/trainer_scientist_travon.json rename to res/trainers/data/scientist_travon.json diff --git a/res/trainers/trainer_skier_andrea.json b/res/trainers/data/skier_andrea.json similarity index 100% rename from res/trainers/trainer_skier_andrea.json rename to res/trainers/data/skier_andrea.json diff --git a/res/trainers/trainer_skier_andrea_rematch_1.json b/res/trainers/data/skier_andrea_rematch_1.json similarity index 100% rename from res/trainers/trainer_skier_andrea_rematch_1.json rename to res/trainers/data/skier_andrea_rematch_1.json diff --git a/res/trainers/trainer_skier_andrea_rematch_2.json b/res/trainers/data/skier_andrea_rematch_2.json similarity index 100% rename from res/trainers/trainer_skier_andrea_rematch_2.json rename to res/trainers/data/skier_andrea_rematch_2.json diff --git a/res/trainers/trainer_skier_bjorn.json b/res/trainers/data/skier_bjorn.json similarity index 100% rename from res/trainers/trainer_skier_bjorn.json rename to res/trainers/data/skier_bjorn.json diff --git a/res/trainers/trainer_skier_bjorn_rematch_1.json b/res/trainers/data/skier_bjorn_rematch_1.json similarity index 100% rename from res/trainers/trainer_skier_bjorn_rematch_1.json rename to res/trainers/data/skier_bjorn_rematch_1.json diff --git a/res/trainers/trainer_skier_bjorn_rematch_2.json b/res/trainers/data/skier_bjorn_rematch_2.json similarity index 100% rename from res/trainers/trainer_skier_bjorn_rematch_2.json rename to res/trainers/data/skier_bjorn_rematch_2.json diff --git a/res/trainers/trainer_skier_bradley.json b/res/trainers/data/skier_bradley.json similarity index 100% rename from res/trainers/trainer_skier_bradley.json rename to res/trainers/data/skier_bradley.json diff --git a/res/trainers/trainer_skier_edward.json b/res/trainers/data/skier_edward.json similarity index 100% rename from res/trainers/trainer_skier_edward.json rename to res/trainers/data/skier_edward.json diff --git a/res/trainers/trainer_skier_edward_rematch_1.json b/res/trainers/data/skier_edward_rematch_1.json similarity index 100% rename from res/trainers/trainer_skier_edward_rematch_1.json rename to res/trainers/data/skier_edward_rematch_1.json diff --git a/res/trainers/trainer_skier_edward_rematch_2.json b/res/trainers/data/skier_edward_rematch_2.json similarity index 100% rename from res/trainers/trainer_skier_edward_rematch_2.json rename to res/trainers/data/skier_edward_rematch_2.json diff --git a/res/trainers/trainer_skier_kaitlyn.json b/res/trainers/data/skier_kaitlyn.json similarity index 100% rename from res/trainers/trainer_skier_kaitlyn.json rename to res/trainers/data/skier_kaitlyn.json diff --git a/res/trainers/trainer_skier_lexie.json b/res/trainers/data/skier_lexie.json similarity index 100% rename from res/trainers/trainer_skier_lexie.json rename to res/trainers/data/skier_lexie.json diff --git a/res/trainers/trainer_skier_madison.json b/res/trainers/data/skier_madison.json similarity index 100% rename from res/trainers/trainer_skier_madison.json rename to res/trainers/data/skier_madison.json diff --git a/res/trainers/trainer_skier_madison_rematch_1.json b/res/trainers/data/skier_madison_rematch_1.json similarity index 100% rename from res/trainers/trainer_skier_madison_rematch_1.json rename to res/trainers/data/skier_madison_rematch_1.json diff --git a/res/trainers/trainer_skier_madison_rematch_2.json b/res/trainers/data/skier_madison_rematch_2.json similarity index 100% rename from res/trainers/trainer_skier_madison_rematch_2.json rename to res/trainers/data/skier_madison_rematch_2.json diff --git a/res/trainers/trainer_skier_shawn.json b/res/trainers/data/skier_shawn.json similarity index 100% rename from res/trainers/trainer_skier_shawn.json rename to res/trainers/data/skier_shawn.json diff --git a/res/trainers/trainer_socialite_rebecca.json b/res/trainers/data/socialite_rebecca.json similarity index 100% rename from res/trainers/trainer_socialite_rebecca.json rename to res/trainers/data/socialite_rebecca.json diff --git a/res/trainers/trainer_socialite_reina.json b/res/trainers/data/socialite_reina.json similarity index 100% rename from res/trainers/trainer_socialite_reina.json rename to res/trainers/data/socialite_reina.json diff --git a/res/trainers/trainer_socialite_reina_rematch_1.json b/res/trainers/data/socialite_reina_rematch_1.json similarity index 100% rename from res/trainers/trainer_socialite_reina_rematch_1.json rename to res/trainers/data/socialite_reina_rematch_1.json diff --git a/res/trainers/trainer_socialite_reina_rematch_2.json b/res/trainers/data/socialite_reina_rematch_2.json similarity index 100% rename from res/trainers/trainer_socialite_reina_rematch_2.json rename to res/trainers/data/socialite_reina_rematch_2.json diff --git a/res/trainers/trainer_swimmer_adrian.json b/res/trainers/data/swimmer_adrian.json similarity index 100% rename from res/trainers/trainer_swimmer_adrian.json rename to res/trainers/data/swimmer_adrian.json diff --git a/res/trainers/trainer_swimmer_aubree.json b/res/trainers/data/swimmer_aubree.json similarity index 100% rename from res/trainers/trainer_swimmer_aubree.json rename to res/trainers/data/swimmer_aubree.json diff --git a/res/trainers/trainer_swimmer_cassandra.json b/res/trainers/data/swimmer_cassandra.json similarity index 100% rename from res/trainers/trainer_swimmer_cassandra.json rename to res/trainers/data/swimmer_cassandra.json diff --git a/res/trainers/trainer_swimmer_claire.json b/res/trainers/data/swimmer_claire.json similarity index 100% rename from res/trainers/trainer_swimmer_claire.json rename to res/trainers/data/swimmer_claire.json diff --git a/res/trainers/trainer_swimmer_colton.json b/res/trainers/data/swimmer_colton.json similarity index 100% rename from res/trainers/trainer_swimmer_colton.json rename to res/trainers/data/swimmer_colton.json diff --git a/res/trainers/trainer_swimmer_crystal.json b/res/trainers/data/swimmer_crystal.json similarity index 100% rename from res/trainers/trainer_swimmer_crystal.json rename to res/trainers/data/swimmer_crystal.json diff --git a/res/trainers/trainer_swimmer_crystal_rematch.json b/res/trainers/data/swimmer_crystal_rematch.json similarity index 100% rename from res/trainers/trainer_swimmer_crystal_rematch.json rename to res/trainers/data/swimmer_crystal_rematch.json diff --git a/res/trainers/trainer_swimmer_dillon.json b/res/trainers/data/swimmer_dillon.json similarity index 100% rename from res/trainers/trainer_swimmer_dillon.json rename to res/trainers/data/swimmer_dillon.json diff --git a/res/trainers/trainer_swimmer_erica.json b/res/trainers/data/swimmer_erica.json similarity index 100% rename from res/trainers/trainer_swimmer_erica.json rename to res/trainers/data/swimmer_erica.json diff --git a/res/trainers/trainer_swimmer_erik.json b/res/trainers/data/swimmer_erik.json similarity index 100% rename from res/trainers/trainer_swimmer_erik.json rename to res/trainers/data/swimmer_erik.json diff --git a/res/trainers/trainer_swimmer_evan.json b/res/trainers/data/swimmer_evan.json similarity index 100% rename from res/trainers/trainer_swimmer_evan.json rename to res/trainers/data/swimmer_evan.json diff --git a/res/trainers/trainer_swimmer_francisco.json b/res/trainers/data/swimmer_francisco.json similarity index 100% rename from res/trainers/trainer_swimmer_francisco.json rename to res/trainers/data/swimmer_francisco.json diff --git a/res/trainers/trainer_swimmer_francisco_rematch.json b/res/trainers/data/swimmer_francisco_rematch.json similarity index 100% rename from res/trainers/trainer_swimmer_francisco_rematch.json rename to res/trainers/data/swimmer_francisco_rematch.json diff --git a/res/trainers/trainer_swimmer_gabrielle.json b/res/trainers/data/swimmer_gabrielle.json similarity index 100% rename from res/trainers/trainer_swimmer_gabrielle.json rename to res/trainers/data/swimmer_gabrielle.json diff --git a/res/trainers/trainer_swimmer_glenn.json b/res/trainers/data/swimmer_glenn.json similarity index 100% rename from res/trainers/trainer_swimmer_glenn.json rename to res/trainers/data/swimmer_glenn.json diff --git a/res/trainers/trainer_swimmer_glenn_rematch.json b/res/trainers/data/swimmer_glenn_rematch.json similarity index 100% rename from res/trainers/trainer_swimmer_glenn_rematch.json rename to res/trainers/data/swimmer_glenn_rematch.json diff --git a/res/trainers/trainer_swimmer_haley.json b/res/trainers/data/swimmer_haley.json similarity index 100% rename from res/trainers/trainer_swimmer_haley.json rename to res/trainers/data/swimmer_haley.json diff --git a/res/trainers/trainer_swimmer_jessica.json b/res/trainers/data/swimmer_jessica.json similarity index 100% rename from res/trainers/trainer_swimmer_jessica.json rename to res/trainers/data/swimmer_jessica.json diff --git a/res/trainers/trainer_swimmer_joanna.json b/res/trainers/data/swimmer_joanna.json similarity index 100% rename from res/trainers/trainer_swimmer_joanna.json rename to res/trainers/data/swimmer_joanna.json diff --git a/res/trainers/trainer_swimmer_joanna_rematch.json b/res/trainers/data/swimmer_joanna_rematch.json similarity index 100% rename from res/trainers/trainer_swimmer_joanna_rematch.json rename to res/trainers/data/swimmer_joanna_rematch.json diff --git a/res/trainers/trainer_swimmer_katelyn.json b/res/trainers/data/swimmer_katelyn.json similarity index 100% rename from res/trainers/trainer_swimmer_katelyn.json rename to res/trainers/data/swimmer_katelyn.json diff --git a/res/trainers/trainer_swimmer_kurt.json b/res/trainers/data/swimmer_kurt.json similarity index 100% rename from res/trainers/trainer_swimmer_kurt.json rename to res/trainers/data/swimmer_kurt.json diff --git a/res/trainers/trainer_swimmer_lydia.json b/res/trainers/data/swimmer_lydia.json similarity index 100% rename from res/trainers/trainer_swimmer_lydia.json rename to res/trainers/data/swimmer_lydia.json diff --git a/res/trainers/trainer_swimmer_mallory.json b/res/trainers/data/swimmer_mallory.json similarity index 100% rename from res/trainers/trainer_swimmer_mallory.json rename to res/trainers/data/swimmer_mallory.json diff --git a/res/trainers/trainer_swimmer_mary.json b/res/trainers/data/swimmer_mary.json similarity index 100% rename from res/trainers/trainer_swimmer_mary.json rename to res/trainers/data/swimmer_mary.json diff --git a/res/trainers/trainer_swimmer_miranda.json b/res/trainers/data/swimmer_miranda.json similarity index 100% rename from res/trainers/trainer_swimmer_miranda.json rename to res/trainers/data/swimmer_miranda.json diff --git a/res/trainers/trainer_swimmer_miranda_rematch.json b/res/trainers/data/swimmer_miranda_rematch.json similarity index 100% rename from res/trainers/trainer_swimmer_miranda_rematch.json rename to res/trainers/data/swimmer_miranda_rematch.json diff --git a/res/trainers/trainer_swimmer_oscar.json b/res/trainers/data/swimmer_oscar.json similarity index 100% rename from res/trainers/trainer_swimmer_oscar.json rename to res/trainers/data/swimmer_oscar.json diff --git a/res/trainers/trainer_swimmer_paige.json b/res/trainers/data/swimmer_paige.json similarity index 100% rename from res/trainers/trainer_swimmer_paige.json rename to res/trainers/data/swimmer_paige.json diff --git a/res/trainers/trainer_swimmer_ricardo.json b/res/trainers/data/swimmer_ricardo.json similarity index 100% rename from res/trainers/trainer_swimmer_ricardo.json rename to res/trainers/data/swimmer_ricardo.json diff --git a/res/trainers/trainer_swimmer_sam.json b/res/trainers/data/swimmer_sam.json similarity index 100% rename from res/trainers/trainer_swimmer_sam.json rename to res/trainers/data/swimmer_sam.json diff --git a/res/trainers/trainer_swimmer_sheltin.json b/res/trainers/data/swimmer_sheltin.json similarity index 100% rename from res/trainers/trainer_swimmer_sheltin.json rename to res/trainers/data/swimmer_sheltin.json diff --git a/res/trainers/trainer_swimmer_sophia.json b/res/trainers/data/swimmer_sophia.json similarity index 100% rename from res/trainers/trainer_swimmer_sophia.json rename to res/trainers/data/swimmer_sophia.json diff --git a/res/trainers/trainer_swimmer_troy.json b/res/trainers/data/swimmer_troy.json similarity index 100% rename from res/trainers/trainer_swimmer_troy.json rename to res/trainers/data/swimmer_troy.json diff --git a/res/trainers/trainer_swimmer_vanessa.json b/res/trainers/data/swimmer_vanessa.json similarity index 100% rename from res/trainers/trainer_swimmer_vanessa.json rename to res/trainers/data/swimmer_vanessa.json diff --git a/res/trainers/trainer_swimmer_vincent.json b/res/trainers/data/swimmer_vincent.json similarity index 100% rename from res/trainers/trainer_swimmer_vincent.json rename to res/trainers/data/swimmer_vincent.json diff --git a/res/trainers/trainer_swimmer_wade.json b/res/trainers/data/swimmer_wade.json similarity index 100% rename from res/trainers/trainer_swimmer_wade.json rename to res/trainers/data/swimmer_wade.json diff --git a/res/trainers/trainer_swimmer_wesley.json b/res/trainers/data/swimmer_wesley.json similarity index 100% rename from res/trainers/trainer_swimmer_wesley.json rename to res/trainers/data/swimmer_wesley.json diff --git a/res/trainers/trainer_swimmer_wesley_rematch.json b/res/trainers/data/swimmer_wesley_rematch.json similarity index 100% rename from res/trainers/trainer_swimmer_wesley_rematch.json rename to res/trainers/data/swimmer_wesley_rematch.json diff --git a/res/trainers/trainer_tuber_caitlyn.json b/res/trainers/data/tuber_caitlyn.json similarity index 100% rename from res/trainers/trainer_tuber_caitlyn.json rename to res/trainers/data/tuber_caitlyn.json diff --git a/res/trainers/trainer_tuber_chelsea.json b/res/trainers/data/tuber_chelsea.json similarity index 100% rename from res/trainers/trainer_tuber_chelsea.json rename to res/trainers/data/tuber_chelsea.json diff --git a/res/trainers/trainer_tuber_chelsea_rematch_1.json b/res/trainers/data/tuber_chelsea_rematch_1.json similarity index 100% rename from res/trainers/trainer_tuber_chelsea_rematch_1.json rename to res/trainers/data/tuber_chelsea_rematch_1.json diff --git a/res/trainers/trainer_tuber_chelsea_rematch_2.json b/res/trainers/data/tuber_chelsea_rematch_2.json similarity index 100% rename from res/trainers/trainer_tuber_chelsea_rematch_2.json rename to res/trainers/data/tuber_chelsea_rematch_2.json diff --git a/res/trainers/trainer_tuber_conner.json b/res/trainers/data/tuber_conner.json similarity index 100% rename from res/trainers/trainer_tuber_conner.json rename to res/trainers/data/tuber_conner.json diff --git a/res/trainers/trainer_tuber_holly.json b/res/trainers/data/tuber_holly.json similarity index 100% rename from res/trainers/trainer_tuber_holly.json rename to res/trainers/data/tuber_holly.json diff --git a/res/trainers/trainer_tuber_jacky.json b/res/trainers/data/tuber_jacky.json similarity index 100% rename from res/trainers/trainer_tuber_jacky.json rename to res/trainers/data/tuber_jacky.json diff --git a/res/trainers/trainer_tuber_jared.json b/res/trainers/data/tuber_jared.json similarity index 100% rename from res/trainers/trainer_tuber_jared.json rename to res/trainers/data/tuber_jared.json diff --git a/res/trainers/trainer_tuber_jared_rematch_1.json b/res/trainers/data/tuber_jared_rematch_1.json similarity index 100% rename from res/trainers/trainer_tuber_jared_rematch_1.json rename to res/trainers/data/tuber_jared_rematch_1.json diff --git a/res/trainers/trainer_tuber_jared_rematch_2.json b/res/trainers/data/tuber_jared_rematch_2.json similarity index 100% rename from res/trainers/trainer_tuber_jared_rematch_2.json rename to res/trainers/data/tuber_jared_rematch_2.json diff --git a/res/trainers/trainer_tuber_mariel.json b/res/trainers/data/tuber_mariel.json similarity index 100% rename from res/trainers/trainer_tuber_mariel.json rename to res/trainers/data/tuber_mariel.json diff --git a/res/trainers/trainer_tuber_trenton.json b/res/trainers/data/tuber_trenton.json similarity index 100% rename from res/trainers/trainer_tuber_trenton.json rename to res/trainers/data/tuber_trenton.json diff --git a/res/trainers/trainer_twins_emma_and_lil.json b/res/trainers/data/twins_emma_and_lil.json similarity index 100% rename from res/trainers/trainer_twins_emma_and_lil.json rename to res/trainers/data/twins_emma_and_lil.json diff --git a/res/trainers/trainer_twins_liv_and_liz.json b/res/trainers/data/twins_liv_and_liz.json similarity index 100% rename from res/trainers/trainer_twins_liv_and_liz.json rename to res/trainers/data/twins_liv_and_liz.json diff --git a/res/trainers/trainer_twins_teri_and_tia.json b/res/trainers/data/twins_teri_and_tia.json similarity index 100% rename from res/trainers/trainer_twins_teri_and_tia.json rename to res/trainers/data/twins_teri_and_tia.json diff --git a/res/trainers/trainer_twins_teri_and_tia_rematch_1.json b/res/trainers/data/twins_teri_and_tia_rematch_1.json similarity index 100% rename from res/trainers/trainer_twins_teri_and_tia_rematch_1.json rename to res/trainers/data/twins_teri_and_tia_rematch_1.json diff --git a/res/trainers/trainer_twins_teri_and_tia_rematch_2.json b/res/trainers/data/twins_teri_and_tia_rematch_2.json similarity index 100% rename from res/trainers/trainer_twins_teri_and_tia_rematch_2.json rename to res/trainers/data/twins_teri_and_tia_rematch_2.json diff --git a/res/trainers/trainer_unknown_005.json b/res/trainers/data/unknown_005.json similarity index 100% rename from res/trainers/trainer_unknown_005.json rename to res/trainers/data/unknown_005.json diff --git a/res/trainers/trainer_unknown_006.json b/res/trainers/data/unknown_006.json similarity index 100% rename from res/trainers/trainer_unknown_006.json rename to res/trainers/data/unknown_006.json diff --git a/res/trainers/trainer_unknown_007.json b/res/trainers/data/unknown_007.json similarity index 100% rename from res/trainers/trainer_unknown_007.json rename to res/trainers/data/unknown_007.json diff --git a/res/trainers/trainer_unknown_008.json b/res/trainers/data/unknown_008.json similarity index 100% rename from res/trainers/trainer_unknown_008.json rename to res/trainers/data/unknown_008.json diff --git a/res/trainers/trainer_unknown_009.json b/res/trainers/data/unknown_009.json similarity index 100% rename from res/trainers/trainer_unknown_009.json rename to res/trainers/data/unknown_009.json diff --git a/res/trainers/trainer_unknown_050.json b/res/trainers/data/unknown_050.json similarity index 100% rename from res/trainers/trainer_unknown_050.json rename to res/trainers/data/unknown_050.json diff --git a/res/trainers/trainer_unknown_051.json b/res/trainers/data/unknown_051.json similarity index 100% rename from res/trainers/trainer_unknown_051.json rename to res/trainers/data/unknown_051.json diff --git a/res/trainers/trainer_unknown_052.json b/res/trainers/data/unknown_052.json similarity index 100% rename from res/trainers/trainer_unknown_052.json rename to res/trainers/data/unknown_052.json diff --git a/res/trainers/trainer_unknown_054.json b/res/trainers/data/unknown_054.json similarity index 100% rename from res/trainers/trainer_unknown_054.json rename to res/trainers/data/unknown_054.json diff --git a/res/trainers/trainer_unknown_058.json b/res/trainers/data/unknown_058.json similarity index 100% rename from res/trainers/trainer_unknown_058.json rename to res/trainers/data/unknown_058.json diff --git a/res/trainers/trainer_unknown_059.json b/res/trainers/data/unknown_059.json similarity index 100% rename from res/trainers/trainer_unknown_059.json rename to res/trainers/data/unknown_059.json diff --git a/res/trainers/trainer_unknown_060.json b/res/trainers/data/unknown_060.json similarity index 100% rename from res/trainers/trainer_unknown_060.json rename to res/trainers/data/unknown_060.json diff --git a/res/trainers/trainer_unknown_061.json b/res/trainers/data/unknown_061.json similarity index 100% rename from res/trainers/trainer_unknown_061.json rename to res/trainers/data/unknown_061.json diff --git a/res/trainers/trainer_unknown_062.json b/res/trainers/data/unknown_062.json similarity index 100% rename from res/trainers/trainer_unknown_062.json rename to res/trainers/data/unknown_062.json diff --git a/res/trainers/trainer_unknown_063.json b/res/trainers/data/unknown_063.json similarity index 100% rename from res/trainers/trainer_unknown_063.json rename to res/trainers/data/unknown_063.json diff --git a/res/trainers/trainer_unknown_064.json b/res/trainers/data/unknown_064.json similarity index 100% rename from res/trainers/trainer_unknown_064.json rename to res/trainers/data/unknown_064.json diff --git a/res/trainers/trainer_unknown_077.json b/res/trainers/data/unknown_077.json similarity index 100% rename from res/trainers/trainer_unknown_077.json rename to res/trainers/data/unknown_077.json diff --git a/res/trainers/trainer_unknown_086.json b/res/trainers/data/unknown_086.json similarity index 100% rename from res/trainers/trainer_unknown_086.json rename to res/trainers/data/unknown_086.json diff --git a/res/trainers/trainer_unknown_087.json b/res/trainers/data/unknown_087.json similarity index 100% rename from res/trainers/trainer_unknown_087.json rename to res/trainers/data/unknown_087.json diff --git a/res/trainers/trainer_unknown_097.json b/res/trainers/data/unknown_097.json similarity index 100% rename from res/trainers/trainer_unknown_097.json rename to res/trainers/data/unknown_097.json diff --git a/res/trainers/trainer_unknown_098.json b/res/trainers/data/unknown_098.json similarity index 100% rename from res/trainers/trainer_unknown_098.json rename to res/trainers/data/unknown_098.json diff --git a/res/trainers/trainer_unknown_100.json b/res/trainers/data/unknown_100.json similarity index 100% rename from res/trainers/trainer_unknown_100.json rename to res/trainers/data/unknown_100.json diff --git a/res/trainers/trainer_unknown_101.json b/res/trainers/data/unknown_101.json similarity index 100% rename from res/trainers/trainer_unknown_101.json rename to res/trainers/data/unknown_101.json diff --git a/res/trainers/trainer_unknown_109.json b/res/trainers/data/unknown_109.json similarity index 100% rename from res/trainers/trainer_unknown_109.json rename to res/trainers/data/unknown_109.json diff --git a/res/trainers/trainer_unknown_112.json b/res/trainers/data/unknown_112.json similarity index 100% rename from res/trainers/trainer_unknown_112.json rename to res/trainers/data/unknown_112.json diff --git a/res/trainers/trainer_unknown_115.json b/res/trainers/data/unknown_115.json similarity index 100% rename from res/trainers/trainer_unknown_115.json rename to res/trainers/data/unknown_115.json diff --git a/res/trainers/trainer_unknown_116.json b/res/trainers/data/unknown_116.json similarity index 100% rename from res/trainers/trainer_unknown_116.json rename to res/trainers/data/unknown_116.json diff --git a/res/trainers/trainer_unknown_117.json b/res/trainers/data/unknown_117.json similarity index 100% rename from res/trainers/trainer_unknown_117.json rename to res/trainers/data/unknown_117.json diff --git a/res/trainers/trainer_unknown_118.json b/res/trainers/data/unknown_118.json similarity index 100% rename from res/trainers/trainer_unknown_118.json rename to res/trainers/data/unknown_118.json diff --git a/res/trainers/trainer_unknown_122.json b/res/trainers/data/unknown_122.json similarity index 100% rename from res/trainers/trainer_unknown_122.json rename to res/trainers/data/unknown_122.json diff --git a/res/trainers/trainer_unknown_123.json b/res/trainers/data/unknown_123.json similarity index 100% rename from res/trainers/trainer_unknown_123.json rename to res/trainers/data/unknown_123.json diff --git a/res/trainers/trainer_unknown_124.json b/res/trainers/data/unknown_124.json similarity index 100% rename from res/trainers/trainer_unknown_124.json rename to res/trainers/data/unknown_124.json diff --git a/res/trainers/trainer_unknown_125.json b/res/trainers/data/unknown_125.json similarity index 100% rename from res/trainers/trainer_unknown_125.json rename to res/trainers/data/unknown_125.json diff --git a/res/trainers/trainer_unknown_126.json b/res/trainers/data/unknown_126.json similarity index 100% rename from res/trainers/trainer_unknown_126.json rename to res/trainers/data/unknown_126.json diff --git a/res/trainers/trainer_unknown_131.json b/res/trainers/data/unknown_131.json similarity index 100% rename from res/trainers/trainer_unknown_131.json rename to res/trainers/data/unknown_131.json diff --git a/res/trainers/trainer_unknown_149.json b/res/trainers/data/unknown_149.json similarity index 100% rename from res/trainers/trainer_unknown_149.json rename to res/trainers/data/unknown_149.json diff --git a/res/trainers/trainer_unknown_150.json b/res/trainers/data/unknown_150.json similarity index 100% rename from res/trainers/trainer_unknown_150.json rename to res/trainers/data/unknown_150.json diff --git a/res/trainers/trainer_unknown_151.json b/res/trainers/data/unknown_151.json similarity index 100% rename from res/trainers/trainer_unknown_151.json rename to res/trainers/data/unknown_151.json diff --git a/res/trainers/trainer_unknown_152.json b/res/trainers/data/unknown_152.json similarity index 100% rename from res/trainers/trainer_unknown_152.json rename to res/trainers/data/unknown_152.json diff --git a/res/trainers/trainer_unknown_155.json b/res/trainers/data/unknown_155.json similarity index 100% rename from res/trainers/trainer_unknown_155.json rename to res/trainers/data/unknown_155.json diff --git a/res/trainers/trainer_unknown_156.json b/res/trainers/data/unknown_156.json similarity index 100% rename from res/trainers/trainer_unknown_156.json rename to res/trainers/data/unknown_156.json diff --git a/res/trainers/trainer_unknown_157.json b/res/trainers/data/unknown_157.json similarity index 100% rename from res/trainers/trainer_unknown_157.json rename to res/trainers/data/unknown_157.json diff --git a/res/trainers/trainer_unknown_158.json b/res/trainers/data/unknown_158.json similarity index 100% rename from res/trainers/trainer_unknown_158.json rename to res/trainers/data/unknown_158.json diff --git a/res/trainers/trainer_unknown_165.json b/res/trainers/data/unknown_165.json similarity index 100% rename from res/trainers/trainer_unknown_165.json rename to res/trainers/data/unknown_165.json diff --git a/res/trainers/trainer_unknown_169.json b/res/trainers/data/unknown_169.json similarity index 100% rename from res/trainers/trainer_unknown_169.json rename to res/trainers/data/unknown_169.json diff --git a/res/trainers/trainer_unknown_176.json b/res/trainers/data/unknown_176.json similarity index 100% rename from res/trainers/trainer_unknown_176.json rename to res/trainers/data/unknown_176.json diff --git a/res/trainers/trainer_unknown_177.json b/res/trainers/data/unknown_177.json similarity index 100% rename from res/trainers/trainer_unknown_177.json rename to res/trainers/data/unknown_177.json diff --git a/res/trainers/trainer_unknown_178.json b/res/trainers/data/unknown_178.json similarity index 100% rename from res/trainers/trainer_unknown_178.json rename to res/trainers/data/unknown_178.json diff --git a/res/trainers/trainer_unknown_179.json b/res/trainers/data/unknown_179.json similarity index 100% rename from res/trainers/trainer_unknown_179.json rename to res/trainers/data/unknown_179.json diff --git a/res/trainers/trainer_unknown_181.json b/res/trainers/data/unknown_181.json similarity index 100% rename from res/trainers/trainer_unknown_181.json rename to res/trainers/data/unknown_181.json diff --git a/res/trainers/trainer_unknown_182.json b/res/trainers/data/unknown_182.json similarity index 100% rename from res/trainers/trainer_unknown_182.json rename to res/trainers/data/unknown_182.json diff --git a/res/trainers/trainer_unknown_197.json b/res/trainers/data/unknown_197.json similarity index 100% rename from res/trainers/trainer_unknown_197.json rename to res/trainers/data/unknown_197.json diff --git a/res/trainers/trainer_unknown_198.json b/res/trainers/data/unknown_198.json similarity index 100% rename from res/trainers/trainer_unknown_198.json rename to res/trainers/data/unknown_198.json diff --git a/res/trainers/trainer_unknown_199.json b/res/trainers/data/unknown_199.json similarity index 100% rename from res/trainers/trainer_unknown_199.json rename to res/trainers/data/unknown_199.json diff --git a/res/trainers/trainer_unknown_200.json b/res/trainers/data/unknown_200.json similarity index 100% rename from res/trainers/trainer_unknown_200.json rename to res/trainers/data/unknown_200.json diff --git a/res/trainers/trainer_unknown_207.json b/res/trainers/data/unknown_207.json similarity index 100% rename from res/trainers/trainer_unknown_207.json rename to res/trainers/data/unknown_207.json diff --git a/res/trainers/trainer_unknown_208.json b/res/trainers/data/unknown_208.json similarity index 100% rename from res/trainers/trainer_unknown_208.json rename to res/trainers/data/unknown_208.json diff --git a/res/trainers/trainer_unknown_209.json b/res/trainers/data/unknown_209.json similarity index 100% rename from res/trainers/trainer_unknown_209.json rename to res/trainers/data/unknown_209.json diff --git a/res/trainers/trainer_unknown_210.json b/res/trainers/data/unknown_210.json similarity index 100% rename from res/trainers/trainer_unknown_210.json rename to res/trainers/data/unknown_210.json diff --git a/res/trainers/trainer_unknown_211.json b/res/trainers/data/unknown_211.json similarity index 100% rename from res/trainers/trainer_unknown_211.json rename to res/trainers/data/unknown_211.json diff --git a/res/trainers/trainer_unknown_212.json b/res/trainers/data/unknown_212.json similarity index 100% rename from res/trainers/trainer_unknown_212.json rename to res/trainers/data/unknown_212.json diff --git a/res/trainers/trainer_unknown_213.json b/res/trainers/data/unknown_213.json similarity index 100% rename from res/trainers/trainer_unknown_213.json rename to res/trainers/data/unknown_213.json diff --git a/res/trainers/trainer_unknown_214.json b/res/trainers/data/unknown_214.json similarity index 100% rename from res/trainers/trainer_unknown_214.json rename to res/trainers/data/unknown_214.json diff --git a/res/trainers/trainer_unknown_215.json b/res/trainers/data/unknown_215.json similarity index 100% rename from res/trainers/trainer_unknown_215.json rename to res/trainers/data/unknown_215.json diff --git a/res/trainers/trainer_unknown_216.json b/res/trainers/data/unknown_216.json similarity index 100% rename from res/trainers/trainer_unknown_216.json rename to res/trainers/data/unknown_216.json diff --git a/res/trainers/trainer_unknown_217.json b/res/trainers/data/unknown_217.json similarity index 100% rename from res/trainers/trainer_unknown_217.json rename to res/trainers/data/unknown_217.json diff --git a/res/trainers/trainer_unknown_218.json b/res/trainers/data/unknown_218.json similarity index 100% rename from res/trainers/trainer_unknown_218.json rename to res/trainers/data/unknown_218.json diff --git a/res/trainers/trainer_unknown_219.json b/res/trainers/data/unknown_219.json similarity index 100% rename from res/trainers/trainer_unknown_219.json rename to res/trainers/data/unknown_219.json diff --git a/res/trainers/trainer_unknown_220.json b/res/trainers/data/unknown_220.json similarity index 100% rename from res/trainers/trainer_unknown_220.json rename to res/trainers/data/unknown_220.json diff --git a/res/trainers/trainer_unknown_221.json b/res/trainers/data/unknown_221.json similarity index 100% rename from res/trainers/trainer_unknown_221.json rename to res/trainers/data/unknown_221.json diff --git a/res/trainers/trainer_unknown_222.json b/res/trainers/data/unknown_222.json similarity index 100% rename from res/trainers/trainer_unknown_222.json rename to res/trainers/data/unknown_222.json diff --git a/res/trainers/trainer_unknown_223.json b/res/trainers/data/unknown_223.json similarity index 100% rename from res/trainers/trainer_unknown_223.json rename to res/trainers/data/unknown_223.json diff --git a/res/trainers/trainer_unknown_238.json b/res/trainers/data/unknown_238.json similarity index 100% rename from res/trainers/trainer_unknown_238.json rename to res/trainers/data/unknown_238.json diff --git a/res/trainers/trainer_unknown_239.json b/res/trainers/data/unknown_239.json similarity index 100% rename from res/trainers/trainer_unknown_239.json rename to res/trainers/data/unknown_239.json diff --git a/res/trainers/trainer_unknown_241.json b/res/trainers/data/unknown_241.json similarity index 100% rename from res/trainers/trainer_unknown_241.json rename to res/trainers/data/unknown_241.json diff --git a/res/trainers/trainer_unknown_242.json b/res/trainers/data/unknown_242.json similarity index 100% rename from res/trainers/trainer_unknown_242.json rename to res/trainers/data/unknown_242.json diff --git a/res/trainers/trainer_unknown_243.json b/res/trainers/data/unknown_243.json similarity index 100% rename from res/trainers/trainer_unknown_243.json rename to res/trainers/data/unknown_243.json diff --git a/res/trainers/trainer_unknown_251.json b/res/trainers/data/unknown_251.json similarity index 100% rename from res/trainers/trainer_unknown_251.json rename to res/trainers/data/unknown_251.json diff --git a/res/trainers/trainer_unknown_252.json b/res/trainers/data/unknown_252.json similarity index 100% rename from res/trainers/trainer_unknown_252.json rename to res/trainers/data/unknown_252.json diff --git a/res/trainers/trainer_unknown_253.json b/res/trainers/data/unknown_253.json similarity index 100% rename from res/trainers/trainer_unknown_253.json rename to res/trainers/data/unknown_253.json diff --git a/res/trainers/trainer_unknown_254.json b/res/trainers/data/unknown_254.json similarity index 100% rename from res/trainers/trainer_unknown_254.json rename to res/trainers/data/unknown_254.json diff --git a/res/trainers/trainer_unknown_255.json b/res/trainers/data/unknown_255.json similarity index 100% rename from res/trainers/trainer_unknown_255.json rename to res/trainers/data/unknown_255.json diff --git a/res/trainers/trainer_unknown_291.json b/res/trainers/data/unknown_291.json similarity index 100% rename from res/trainers/trainer_unknown_291.json rename to res/trainers/data/unknown_291.json diff --git a/res/trainers/trainer_unknown_321.json b/res/trainers/data/unknown_321.json similarity index 100% rename from res/trainers/trainer_unknown_321.json rename to res/trainers/data/unknown_321.json diff --git a/res/trainers/trainer_unknown_334.json b/res/trainers/data/unknown_334.json similarity index 100% rename from res/trainers/trainer_unknown_334.json rename to res/trainers/data/unknown_334.json diff --git a/res/trainers/trainer_unknown_336.json b/res/trainers/data/unknown_336.json similarity index 100% rename from res/trainers/trainer_unknown_336.json rename to res/trainers/data/unknown_336.json diff --git a/res/trainers/trainer_unknown_347.json b/res/trainers/data/unknown_347.json similarity index 100% rename from res/trainers/trainer_unknown_347.json rename to res/trainers/data/unknown_347.json diff --git a/res/trainers/trainer_unknown_349.json b/res/trainers/data/unknown_349.json similarity index 100% rename from res/trainers/trainer_unknown_349.json rename to res/trainers/data/unknown_349.json diff --git a/res/trainers/trainer_unknown_350.json b/res/trainers/data/unknown_350.json similarity index 100% rename from res/trainers/trainer_unknown_350.json rename to res/trainers/data/unknown_350.json diff --git a/res/trainers/trainer_unknown_351.json b/res/trainers/data/unknown_351.json similarity index 100% rename from res/trainers/trainer_unknown_351.json rename to res/trainers/data/unknown_351.json diff --git a/res/trainers/trainer_unknown_352.json b/res/trainers/data/unknown_352.json similarity index 100% rename from res/trainers/trainer_unknown_352.json rename to res/trainers/data/unknown_352.json diff --git a/res/trainers/trainer_unknown_353.json b/res/trainers/data/unknown_353.json similarity index 100% rename from res/trainers/trainer_unknown_353.json rename to res/trainers/data/unknown_353.json diff --git a/res/trainers/trainer_unknown_354.json b/res/trainers/data/unknown_354.json similarity index 100% rename from res/trainers/trainer_unknown_354.json rename to res/trainers/data/unknown_354.json diff --git a/res/trainers/trainer_unknown_363.json b/res/trainers/data/unknown_363.json similarity index 100% rename from res/trainers/trainer_unknown_363.json rename to res/trainers/data/unknown_363.json diff --git a/res/trainers/trainer_unknown_364.json b/res/trainers/data/unknown_364.json similarity index 100% rename from res/trainers/trainer_unknown_364.json rename to res/trainers/data/unknown_364.json diff --git a/res/trainers/trainer_unknown_365.json b/res/trainers/data/unknown_365.json similarity index 100% rename from res/trainers/trainer_unknown_365.json rename to res/trainers/data/unknown_365.json diff --git a/res/trainers/trainer_unknown_368.json b/res/trainers/data/unknown_368.json similarity index 100% rename from res/trainers/trainer_unknown_368.json rename to res/trainers/data/unknown_368.json diff --git a/res/trainers/trainer_unknown_369.json b/res/trainers/data/unknown_369.json similarity index 100% rename from res/trainers/trainer_unknown_369.json rename to res/trainers/data/unknown_369.json diff --git a/res/trainers/trainer_unknown_370.json b/res/trainers/data/unknown_370.json similarity index 100% rename from res/trainers/trainer_unknown_370.json rename to res/trainers/data/unknown_370.json diff --git a/res/trainers/trainer_unknown_371.json b/res/trainers/data/unknown_371.json similarity index 100% rename from res/trainers/trainer_unknown_371.json rename to res/trainers/data/unknown_371.json diff --git a/res/trainers/trainer_unknown_374.json b/res/trainers/data/unknown_374.json similarity index 100% rename from res/trainers/trainer_unknown_374.json rename to res/trainers/data/unknown_374.json diff --git a/res/trainers/trainer_unknown_375.json b/res/trainers/data/unknown_375.json similarity index 100% rename from res/trainers/trainer_unknown_375.json rename to res/trainers/data/unknown_375.json diff --git a/res/trainers/trainer_unknown_376.json b/res/trainers/data/unknown_376.json similarity index 100% rename from res/trainers/trainer_unknown_376.json rename to res/trainers/data/unknown_376.json diff --git a/res/trainers/trainer_unknown_384.json b/res/trainers/data/unknown_384.json similarity index 100% rename from res/trainers/trainer_unknown_384.json rename to res/trainers/data/unknown_384.json diff --git a/res/trainers/trainer_unknown_385.json b/res/trainers/data/unknown_385.json similarity index 100% rename from res/trainers/trainer_unknown_385.json rename to res/trainers/data/unknown_385.json diff --git a/res/trainers/trainer_unknown_387.json b/res/trainers/data/unknown_387.json similarity index 100% rename from res/trainers/trainer_unknown_387.json rename to res/trainers/data/unknown_387.json diff --git a/res/trainers/trainer_unknown_391.json b/res/trainers/data/unknown_391.json similarity index 100% rename from res/trainers/trainer_unknown_391.json rename to res/trainers/data/unknown_391.json diff --git a/res/trainers/trainer_unknown_402.json b/res/trainers/data/unknown_402.json similarity index 100% rename from res/trainers/trainer_unknown_402.json rename to res/trainers/data/unknown_402.json diff --git a/res/trainers/trainer_unknown_411.json b/res/trainers/data/unknown_411.json similarity index 100% rename from res/trainers/trainer_unknown_411.json rename to res/trainers/data/unknown_411.json diff --git a/res/trainers/trainer_unknown_413.json b/res/trainers/data/unknown_413.json similarity index 100% rename from res/trainers/trainer_unknown_413.json rename to res/trainers/data/unknown_413.json diff --git a/res/trainers/trainer_unknown_424.json b/res/trainers/data/unknown_424.json similarity index 100% rename from res/trainers/trainer_unknown_424.json rename to res/trainers/data/unknown_424.json diff --git a/res/trainers/trainer_unknown_429.json b/res/trainers/data/unknown_429.json similarity index 100% rename from res/trainers/trainer_unknown_429.json rename to res/trainers/data/unknown_429.json diff --git a/res/trainers/trainer_unknown_431.json b/res/trainers/data/unknown_431.json similarity index 100% rename from res/trainers/trainer_unknown_431.json rename to res/trainers/data/unknown_431.json diff --git a/res/trainers/trainer_unknown_432.json b/res/trainers/data/unknown_432.json similarity index 100% rename from res/trainers/trainer_unknown_432.json rename to res/trainers/data/unknown_432.json diff --git a/res/trainers/trainer_unknown_433.json b/res/trainers/data/unknown_433.json similarity index 100% rename from res/trainers/trainer_unknown_433.json rename to res/trainers/data/unknown_433.json diff --git a/res/trainers/trainer_unknown_434.json b/res/trainers/data/unknown_434.json similarity index 100% rename from res/trainers/trainer_unknown_434.json rename to res/trainers/data/unknown_434.json diff --git a/res/trainers/trainer_unknown_435.json b/res/trainers/data/unknown_435.json similarity index 100% rename from res/trainers/trainer_unknown_435.json rename to res/trainers/data/unknown_435.json diff --git a/res/trainers/trainer_unknown_436.json b/res/trainers/data/unknown_436.json similarity index 100% rename from res/trainers/trainer_unknown_436.json rename to res/trainers/data/unknown_436.json diff --git a/res/trainers/trainer_unknown_437.json b/res/trainers/data/unknown_437.json similarity index 100% rename from res/trainers/trainer_unknown_437.json rename to res/trainers/data/unknown_437.json diff --git a/res/trainers/trainer_unknown_438.json b/res/trainers/data/unknown_438.json similarity index 100% rename from res/trainers/trainer_unknown_438.json rename to res/trainers/data/unknown_438.json diff --git a/res/trainers/trainer_unknown_439.json b/res/trainers/data/unknown_439.json similarity index 100% rename from res/trainers/trainer_unknown_439.json rename to res/trainers/data/unknown_439.json diff --git a/res/trainers/trainer_unknown_440.json b/res/trainers/data/unknown_440.json similarity index 100% rename from res/trainers/trainer_unknown_440.json rename to res/trainers/data/unknown_440.json diff --git a/res/trainers/trainer_unknown_441.json b/res/trainers/data/unknown_441.json similarity index 100% rename from res/trainers/trainer_unknown_441.json rename to res/trainers/data/unknown_441.json diff --git a/res/trainers/trainer_unknown_448.json b/res/trainers/data/unknown_448.json similarity index 100% rename from res/trainers/trainer_unknown_448.json rename to res/trainers/data/unknown_448.json diff --git a/res/trainers/trainer_unknown_449.json b/res/trainers/data/unknown_449.json similarity index 100% rename from res/trainers/trainer_unknown_449.json rename to res/trainers/data/unknown_449.json diff --git a/res/trainers/trainer_unknown_460.json b/res/trainers/data/unknown_460.json similarity index 100% rename from res/trainers/trainer_unknown_460.json rename to res/trainers/data/unknown_460.json diff --git a/res/trainers/trainer_unknown_461.json b/res/trainers/data/unknown_461.json similarity index 100% rename from res/trainers/trainer_unknown_461.json rename to res/trainers/data/unknown_461.json diff --git a/res/trainers/trainer_unknown_462.json b/res/trainers/data/unknown_462.json similarity index 100% rename from res/trainers/trainer_unknown_462.json rename to res/trainers/data/unknown_462.json diff --git a/res/trainers/trainer_unknown_463.json b/res/trainers/data/unknown_463.json similarity index 100% rename from res/trainers/trainer_unknown_463.json rename to res/trainers/data/unknown_463.json diff --git a/res/trainers/trainer_unknown_464.json b/res/trainers/data/unknown_464.json similarity index 100% rename from res/trainers/trainer_unknown_464.json rename to res/trainers/data/unknown_464.json diff --git a/res/trainers/trainer_unknown_465.json b/res/trainers/data/unknown_465.json similarity index 100% rename from res/trainers/trainer_unknown_465.json rename to res/trainers/data/unknown_465.json diff --git a/res/trainers/trainer_unknown_466.json b/res/trainers/data/unknown_466.json similarity index 100% rename from res/trainers/trainer_unknown_466.json rename to res/trainers/data/unknown_466.json diff --git a/res/trainers/trainer_unknown_467.json b/res/trainers/data/unknown_467.json similarity index 100% rename from res/trainers/trainer_unknown_467.json rename to res/trainers/data/unknown_467.json diff --git a/res/trainers/trainer_unknown_468.json b/res/trainers/data/unknown_468.json similarity index 100% rename from res/trainers/trainer_unknown_468.json rename to res/trainers/data/unknown_468.json diff --git a/res/trainers/trainer_unknown_469.json b/res/trainers/data/unknown_469.json similarity index 100% rename from res/trainers/trainer_unknown_469.json rename to res/trainers/data/unknown_469.json diff --git a/res/trainers/trainer_unknown_484.json b/res/trainers/data/unknown_484.json similarity index 100% rename from res/trainers/trainer_unknown_484.json rename to res/trainers/data/unknown_484.json diff --git a/res/trainers/trainer_unknown_485.json b/res/trainers/data/unknown_485.json similarity index 100% rename from res/trainers/trainer_unknown_485.json rename to res/trainers/data/unknown_485.json diff --git a/res/trainers/trainer_unknown_487.json b/res/trainers/data/unknown_487.json similarity index 100% rename from res/trainers/trainer_unknown_487.json rename to res/trainers/data/unknown_487.json diff --git a/res/trainers/trainer_unknown_493.json b/res/trainers/data/unknown_493.json similarity index 100% rename from res/trainers/trainer_unknown_493.json rename to res/trainers/data/unknown_493.json diff --git a/res/trainers/trainer_unknown_495.json b/res/trainers/data/unknown_495.json similarity index 100% rename from res/trainers/trainer_unknown_495.json rename to res/trainers/data/unknown_495.json diff --git a/res/trainers/trainer_unknown_501.json b/res/trainers/data/unknown_501.json similarity index 100% rename from res/trainers/trainer_unknown_501.json rename to res/trainers/data/unknown_501.json diff --git a/res/trainers/trainer_unknown_502.json b/res/trainers/data/unknown_502.json similarity index 100% rename from res/trainers/trainer_unknown_502.json rename to res/trainers/data/unknown_502.json diff --git a/res/trainers/trainer_unknown_511.json b/res/trainers/data/unknown_511.json similarity index 100% rename from res/trainers/trainer_unknown_511.json rename to res/trainers/data/unknown_511.json diff --git a/res/trainers/trainer_unknown_605.json b/res/trainers/data/unknown_605.json similarity index 100% rename from res/trainers/trainer_unknown_605.json rename to res/trainers/data/unknown_605.json diff --git a/res/trainers/trainer_unknown_651.json b/res/trainers/data/unknown_651.json similarity index 100% rename from res/trainers/trainer_unknown_651.json rename to res/trainers/data/unknown_651.json diff --git a/res/trainers/trainer_unknown_652.json b/res/trainers/data/unknown_652.json similarity index 100% rename from res/trainers/trainer_unknown_652.json rename to res/trainers/data/unknown_652.json diff --git a/res/trainers/trainer_unknown_778.json b/res/trainers/data/unknown_778.json similarity index 100% rename from res/trainers/trainer_unknown_778.json rename to res/trainers/data/unknown_778.json diff --git a/res/trainers/trainer_unknown_779.json b/res/trainers/data/unknown_779.json similarity index 100% rename from res/trainers/trainer_unknown_779.json rename to res/trainers/data/unknown_779.json diff --git a/res/trainers/trainer_unknown_780.json b/res/trainers/data/unknown_780.json similarity index 100% rename from res/trainers/trainer_unknown_780.json rename to res/trainers/data/unknown_780.json diff --git a/res/trainers/trainer_unknown_781.json b/res/trainers/data/unknown_781.json similarity index 100% rename from res/trainers/trainer_unknown_781.json rename to res/trainers/data/unknown_781.json diff --git a/res/trainers/trainer_unknown_782.json b/res/trainers/data/unknown_782.json similarity index 100% rename from res/trainers/trainer_unknown_782.json rename to res/trainers/data/unknown_782.json diff --git a/res/trainers/trainer_unknown_783.json b/res/trainers/data/unknown_783.json similarity index 100% rename from res/trainers/trainer_unknown_783.json rename to res/trainers/data/unknown_783.json diff --git a/res/trainers/trainer_unknown_784.json b/res/trainers/data/unknown_784.json similarity index 100% rename from res/trainers/trainer_unknown_784.json rename to res/trainers/data/unknown_784.json diff --git a/res/trainers/trainer_unknown_785.json b/res/trainers/data/unknown_785.json similarity index 100% rename from res/trainers/trainer_unknown_785.json rename to res/trainers/data/unknown_785.json diff --git a/res/trainers/trainer_unknown_786.json b/res/trainers/data/unknown_786.json similarity index 100% rename from res/trainers/trainer_unknown_786.json rename to res/trainers/data/unknown_786.json diff --git a/res/trainers/trainer_unknown_787.json b/res/trainers/data/unknown_787.json similarity index 100% rename from res/trainers/trainer_unknown_787.json rename to res/trainers/data/unknown_787.json diff --git a/res/trainers/trainer_unknown_788.json b/res/trainers/data/unknown_788.json similarity index 100% rename from res/trainers/trainer_unknown_788.json rename to res/trainers/data/unknown_788.json diff --git a/res/trainers/trainer_unknown_789.json b/res/trainers/data/unknown_789.json similarity index 100% rename from res/trainers/trainer_unknown_789.json rename to res/trainers/data/unknown_789.json diff --git a/res/trainers/trainer_unknown_790.json b/res/trainers/data/unknown_790.json similarity index 100% rename from res/trainers/trainer_unknown_790.json rename to res/trainers/data/unknown_790.json diff --git a/res/trainers/trainer_unknown_791.json b/res/trainers/data/unknown_791.json similarity index 100% rename from res/trainers/trainer_unknown_791.json rename to res/trainers/data/unknown_791.json diff --git a/res/trainers/trainer_unknown_792.json b/res/trainers/data/unknown_792.json similarity index 100% rename from res/trainers/trainer_unknown_792.json rename to res/trainers/data/unknown_792.json diff --git a/res/trainers/trainer_unknown_793.json b/res/trainers/data/unknown_793.json similarity index 100% rename from res/trainers/trainer_unknown_793.json rename to res/trainers/data/unknown_793.json diff --git a/res/trainers/trainer_unknown_794.json b/res/trainers/data/unknown_794.json similarity index 100% rename from res/trainers/trainer_unknown_794.json rename to res/trainers/data/unknown_794.json diff --git a/res/trainers/trainer_unknown_795.json b/res/trainers/data/unknown_795.json similarity index 100% rename from res/trainers/trainer_unknown_795.json rename to res/trainers/data/unknown_795.json diff --git a/res/trainers/trainer_unknown_796.json b/res/trainers/data/unknown_796.json similarity index 100% rename from res/trainers/trainer_unknown_796.json rename to res/trainers/data/unknown_796.json diff --git a/res/trainers/trainer_unknown_797.json b/res/trainers/data/unknown_797.json similarity index 100% rename from res/trainers/trainer_unknown_797.json rename to res/trainers/data/unknown_797.json diff --git a/res/trainers/trainer_unknown_798.json b/res/trainers/data/unknown_798.json similarity index 100% rename from res/trainers/trainer_unknown_798.json rename to res/trainers/data/unknown_798.json diff --git a/res/trainers/trainer_unknown_799.json b/res/trainers/data/unknown_799.json similarity index 100% rename from res/trainers/trainer_unknown_799.json rename to res/trainers/data/unknown_799.json diff --git a/res/trainers/trainer_unknown_800.json b/res/trainers/data/unknown_800.json similarity index 100% rename from res/trainers/trainer_unknown_800.json rename to res/trainers/data/unknown_800.json diff --git a/res/trainers/trainer_unknown_801.json b/res/trainers/data/unknown_801.json similarity index 100% rename from res/trainers/trainer_unknown_801.json rename to res/trainers/data/unknown_801.json diff --git a/res/trainers/trainer_unknown_802.json b/res/trainers/data/unknown_802.json similarity index 100% rename from res/trainers/trainer_unknown_802.json rename to res/trainers/data/unknown_802.json diff --git a/res/trainers/trainer_unknown_803.json b/res/trainers/data/unknown_803.json similarity index 100% rename from res/trainers/trainer_unknown_803.json rename to res/trainers/data/unknown_803.json diff --git a/res/trainers/trainer_unknown_804.json b/res/trainers/data/unknown_804.json similarity index 100% rename from res/trainers/trainer_unknown_804.json rename to res/trainers/data/unknown_804.json diff --git a/res/trainers/trainer_unknown_805.json b/res/trainers/data/unknown_805.json similarity index 100% rename from res/trainers/trainer_unknown_805.json rename to res/trainers/data/unknown_805.json diff --git a/res/trainers/trainer_unknown_806.json b/res/trainers/data/unknown_806.json similarity index 100% rename from res/trainers/trainer_unknown_806.json rename to res/trainers/data/unknown_806.json diff --git a/res/trainers/trainer_unknown_807.json b/res/trainers/data/unknown_807.json similarity index 100% rename from res/trainers/trainer_unknown_807.json rename to res/trainers/data/unknown_807.json diff --git a/res/trainers/trainer_unknown_808.json b/res/trainers/data/unknown_808.json similarity index 100% rename from res/trainers/trainer_unknown_808.json rename to res/trainers/data/unknown_808.json diff --git a/res/trainers/trainer_unknown_809.json b/res/trainers/data/unknown_809.json similarity index 100% rename from res/trainers/trainer_unknown_809.json rename to res/trainers/data/unknown_809.json diff --git a/res/trainers/trainer_unknown_810.json b/res/trainers/data/unknown_810.json similarity index 100% rename from res/trainers/trainer_unknown_810.json rename to res/trainers/data/unknown_810.json diff --git a/res/trainers/trainer_unknown_811.json b/res/trainers/data/unknown_811.json similarity index 100% rename from res/trainers/trainer_unknown_811.json rename to res/trainers/data/unknown_811.json diff --git a/res/trainers/trainer_unknown_812.json b/res/trainers/data/unknown_812.json similarity index 100% rename from res/trainers/trainer_unknown_812.json rename to res/trainers/data/unknown_812.json diff --git a/res/trainers/trainer_unknown_813.json b/res/trainers/data/unknown_813.json similarity index 100% rename from res/trainers/trainer_unknown_813.json rename to res/trainers/data/unknown_813.json diff --git a/res/trainers/trainer_unknown_814.json b/res/trainers/data/unknown_814.json similarity index 100% rename from res/trainers/trainer_unknown_814.json rename to res/trainers/data/unknown_814.json diff --git a/res/trainers/trainer_unknown_815.json b/res/trainers/data/unknown_815.json similarity index 100% rename from res/trainers/trainer_unknown_815.json rename to res/trainers/data/unknown_815.json diff --git a/res/trainers/trainer_unknown_816.json b/res/trainers/data/unknown_816.json similarity index 100% rename from res/trainers/trainer_unknown_816.json rename to res/trainers/data/unknown_816.json diff --git a/res/trainers/trainer_unknown_817.json b/res/trainers/data/unknown_817.json similarity index 100% rename from res/trainers/trainer_unknown_817.json rename to res/trainers/data/unknown_817.json diff --git a/res/trainers/trainer_unknown_818.json b/res/trainers/data/unknown_818.json similarity index 100% rename from res/trainers/trainer_unknown_818.json rename to res/trainers/data/unknown_818.json diff --git a/res/trainers/trainer_unknown_819.json b/res/trainers/data/unknown_819.json similarity index 100% rename from res/trainers/trainer_unknown_819.json rename to res/trainers/data/unknown_819.json diff --git a/res/trainers/trainer_unknown_820.json b/res/trainers/data/unknown_820.json similarity index 100% rename from res/trainers/trainer_unknown_820.json rename to res/trainers/data/unknown_820.json diff --git a/res/trainers/trainer_unknown_821.json b/res/trainers/data/unknown_821.json similarity index 100% rename from res/trainers/trainer_unknown_821.json rename to res/trainers/data/unknown_821.json diff --git a/res/trainers/trainer_unknown_822.json b/res/trainers/data/unknown_822.json similarity index 100% rename from res/trainers/trainer_unknown_822.json rename to res/trainers/data/unknown_822.json diff --git a/res/trainers/trainer_unknown_823.json b/res/trainers/data/unknown_823.json similarity index 100% rename from res/trainers/trainer_unknown_823.json rename to res/trainers/data/unknown_823.json diff --git a/res/trainers/trainer_unknown_824.json b/res/trainers/data/unknown_824.json similarity index 100% rename from res/trainers/trainer_unknown_824.json rename to res/trainers/data/unknown_824.json diff --git a/res/trainers/trainer_unknown_825.json b/res/trainers/data/unknown_825.json similarity index 100% rename from res/trainers/trainer_unknown_825.json rename to res/trainers/data/unknown_825.json diff --git a/res/trainers/trainer_unknown_828.json b/res/trainers/data/unknown_828.json similarity index 100% rename from res/trainers/trainer_unknown_828.json rename to res/trainers/data/unknown_828.json diff --git a/res/trainers/trainer_unknown_833.json b/res/trainers/data/unknown_833.json similarity index 100% rename from res/trainers/trainer_unknown_833.json rename to res/trainers/data/unknown_833.json diff --git a/res/trainers/trainer_unknown_834.json b/res/trainers/data/unknown_834.json similarity index 100% rename from res/trainers/trainer_unknown_834.json rename to res/trainers/data/unknown_834.json diff --git a/res/trainers/trainer_unknown_840.json b/res/trainers/data/unknown_840.json similarity index 100% rename from res/trainers/trainer_unknown_840.json rename to res/trainers/data/unknown_840.json diff --git a/res/trainers/trainer_unknown_841.json b/res/trainers/data/unknown_841.json similarity index 100% rename from res/trainers/trainer_unknown_841.json rename to res/trainers/data/unknown_841.json diff --git a/res/trainers/trainer_unknown_842.json b/res/trainers/data/unknown_842.json similarity index 100% rename from res/trainers/trainer_unknown_842.json rename to res/trainers/data/unknown_842.json diff --git a/res/trainers/trainer_unknown_902.json b/res/trainers/data/unknown_902.json similarity index 100% rename from res/trainers/trainer_unknown_902.json rename to res/trainers/data/unknown_902.json diff --git a/res/trainers/trainer_unknown_903.json b/res/trainers/data/unknown_903.json similarity index 100% rename from res/trainers/trainer_unknown_903.json rename to res/trainers/data/unknown_903.json diff --git a/res/trainers/trainer_unknown_904.json b/res/trainers/data/unknown_904.json similarity index 100% rename from res/trainers/trainer_unknown_904.json rename to res/trainers/data/unknown_904.json diff --git a/res/trainers/trainer_unknown_905.json b/res/trainers/data/unknown_905.json similarity index 100% rename from res/trainers/trainer_unknown_905.json rename to res/trainers/data/unknown_905.json diff --git a/res/trainers/trainer_veteran_armando.json b/res/trainers/data/veteran_armando.json similarity index 100% rename from res/trainers/trainer_veteran_armando.json rename to res/trainers/data/veteran_armando.json diff --git a/res/trainers/trainer_veteran_armando_rematch.json b/res/trainers/data/veteran_armando_rematch.json similarity index 100% rename from res/trainers/trainer_veteran_armando_rematch.json rename to res/trainers/data/veteran_armando_rematch.json diff --git a/res/trainers/trainer_veteran_brenden.json b/res/trainers/data/veteran_brenden.json similarity index 100% rename from res/trainers/trainer_veteran_brenden.json rename to res/trainers/data/veteran_brenden.json diff --git a/res/trainers/trainer_veteran_brian.json b/res/trainers/data/veteran_brian.json similarity index 100% rename from res/trainers/trainer_veteran_brian.json rename to res/trainers/data/veteran_brian.json diff --git a/res/trainers/trainer_veteran_brian_rematch_1.json b/res/trainers/data/veteran_brian_rematch_1.json similarity index 100% rename from res/trainers/trainer_veteran_brian_rematch_1.json rename to res/trainers/data/veteran_brian_rematch_1.json diff --git a/res/trainers/trainer_veteran_brian_rematch_2.json b/res/trainers/data/veteran_brian_rematch_2.json similarity index 100% rename from res/trainers/trainer_veteran_brian_rematch_2.json rename to res/trainers/data/veteran_brian_rematch_2.json diff --git a/res/trainers/trainer_veteran_clayton.json b/res/trainers/data/veteran_clayton.json similarity index 100% rename from res/trainers/trainer_veteran_clayton.json rename to res/trainers/data/veteran_clayton.json diff --git a/res/trainers/trainer_veteran_edgar.json b/res/trainers/data/veteran_edgar.json similarity index 100% rename from res/trainers/trainer_veteran_edgar.json rename to res/trainers/data/veteran_edgar.json diff --git a/res/trainers/trainer_veteran_emanuel.json b/res/trainers/data/veteran_emanuel.json similarity index 100% rename from res/trainers/trainer_veteran_emanuel.json rename to res/trainers/data/veteran_emanuel.json diff --git a/res/trainers/trainer_veteran_grant.json b/res/trainers/data/veteran_grant.json similarity index 100% rename from res/trainers/trainer_veteran_grant.json rename to res/trainers/data/veteran_grant.json diff --git a/res/trainers/trainer_veteran_harlan.json b/res/trainers/data/veteran_harlan.json similarity index 100% rename from res/trainers/trainer_veteran_harlan.json rename to res/trainers/data/veteran_harlan.json diff --git a/res/trainers/trainer_veteran_terrell.json b/res/trainers/data/veteran_terrell.json similarity index 100% rename from res/trainers/trainer_veteran_terrell.json rename to res/trainers/data/veteran_terrell.json diff --git a/res/trainers/trainer_waitress_kati.json b/res/trainers/data/waitress_kati.json similarity index 100% rename from res/trainers/trainer_waitress_kati.json rename to res/trainers/data/waitress_kati.json diff --git a/res/trainers/trainer_worker_braden.json b/res/trainers/data/worker_braden.json similarity index 100% rename from res/trainers/trainer_worker_braden.json rename to res/trainers/data/worker_braden.json diff --git a/res/trainers/trainer_worker_brendon.json b/res/trainers/data/worker_brendon.json similarity index 100% rename from res/trainers/trainer_worker_brendon.json rename to res/trainers/data/worker_brendon.json diff --git a/res/trainers/trainer_worker_colin.json b/res/trainers/data/worker_colin.json similarity index 100% rename from res/trainers/trainer_worker_colin.json rename to res/trainers/data/worker_colin.json diff --git a/res/trainers/trainer_worker_conrad.json b/res/trainers/data/worker_conrad.json similarity index 100% rename from res/trainers/trainer_worker_conrad.json rename to res/trainers/data/worker_conrad.json diff --git a/res/trainers/trainer_worker_dillan.json b/res/trainers/data/worker_dillan.json similarity index 100% rename from res/trainers/trainer_worker_dillan.json rename to res/trainers/data/worker_dillan.json diff --git a/res/trainers/trainer_worker_gary.json b/res/trainers/data/worker_gary.json similarity index 100% rename from res/trainers/trainer_worker_gary.json rename to res/trainers/data/worker_gary.json diff --git a/res/trainers/trainer_worker_gerardo.json b/res/trainers/data/worker_gerardo.json similarity index 100% rename from res/trainers/trainer_worker_gerardo.json rename to res/trainers/data/worker_gerardo.json diff --git a/res/trainers/trainer_worker_holden.json b/res/trainers/data/worker_holden.json similarity index 100% rename from res/trainers/trainer_worker_holden.json rename to res/trainers/data/worker_holden.json diff --git a/res/trainers/trainer_worker_jackson.json b/res/trainers/data/worker_jackson.json similarity index 100% rename from res/trainers/trainer_worker_jackson.json rename to res/trainers/data/worker_jackson.json diff --git a/res/trainers/trainer_worker_mason.json b/res/trainers/data/worker_mason.json similarity index 100% rename from res/trainers/trainer_worker_mason.json rename to res/trainers/data/worker_mason.json diff --git a/res/trainers/trainer_worker_noel.json b/res/trainers/data/worker_noel.json similarity index 100% rename from res/trainers/trainer_worker_noel.json rename to res/trainers/data/worker_noel.json diff --git a/res/trainers/trainer_worker_quentin.json b/res/trainers/data/worker_quentin.json similarity index 100% rename from res/trainers/trainer_worker_quentin.json rename to res/trainers/data/worker_quentin.json diff --git a/res/trainers/trainer_young_couple_mike_and_nat.json b/res/trainers/data/young_couple_mike_and_nat.json similarity index 100% rename from res/trainers/trainer_young_couple_mike_and_nat.json rename to res/trainers/data/young_couple_mike_and_nat.json diff --git a/res/trainers/trainer_young_couple_ty_and_sue.json b/res/trainers/data/young_couple_ty_and_sue.json similarity index 100% rename from res/trainers/trainer_young_couple_ty_and_sue.json rename to res/trainers/data/young_couple_ty_and_sue.json diff --git a/res/trainers/trainer_youngster_austin.json b/res/trainers/data/youngster_austin.json similarity index 100% rename from res/trainers/trainer_youngster_austin.json rename to res/trainers/data/youngster_austin.json diff --git a/res/trainers/trainer_youngster_dallas.json b/res/trainers/data/youngster_dallas.json similarity index 100% rename from res/trainers/trainer_youngster_dallas.json rename to res/trainers/data/youngster_dallas.json diff --git a/res/trainers/trainer_youngster_dallas_rematch_1.json b/res/trainers/data/youngster_dallas_rematch_1.json similarity index 100% rename from res/trainers/trainer_youngster_dallas_rematch_1.json rename to res/trainers/data/youngster_dallas_rematch_1.json diff --git a/res/trainers/trainer_youngster_dallas_rematch_2.json b/res/trainers/data/youngster_dallas_rematch_2.json similarity index 100% rename from res/trainers/trainer_youngster_dallas_rematch_2.json rename to res/trainers/data/youngster_dallas_rematch_2.json diff --git a/res/trainers/trainer_youngster_dallas_rematch_3.json b/res/trainers/data/youngster_dallas_rematch_3.json similarity index 100% rename from res/trainers/trainer_youngster_dallas_rematch_3.json rename to res/trainers/data/youngster_dallas_rematch_3.json diff --git a/res/trainers/trainer_youngster_darius.json b/res/trainers/data/youngster_darius.json similarity index 100% rename from res/trainers/trainer_youngster_darius.json rename to res/trainers/data/youngster_darius.json diff --git a/res/trainers/trainer_youngster_donny.json b/res/trainers/data/youngster_donny.json similarity index 100% rename from res/trainers/trainer_youngster_donny.json rename to res/trainers/data/youngster_donny.json diff --git a/res/trainers/trainer_youngster_jonathon.json b/res/trainers/data/youngster_jonathon.json similarity index 100% rename from res/trainers/trainer_youngster_jonathon.json rename to res/trainers/data/youngster_jonathon.json diff --git a/res/trainers/trainer_youngster_logan.json b/res/trainers/data/youngster_logan.json similarity index 100% rename from res/trainers/trainer_youngster_logan.json rename to res/trainers/data/youngster_logan.json diff --git a/res/trainers/trainer_youngster_michael.json b/res/trainers/data/youngster_michael.json similarity index 100% rename from res/trainers/trainer_youngster_michael.json rename to res/trainers/data/youngster_michael.json diff --git a/res/trainers/trainer_youngster_oliver.json b/res/trainers/data/youngster_oliver.json similarity index 100% rename from res/trainers/trainer_youngster_oliver.json rename to res/trainers/data/youngster_oliver.json diff --git a/res/trainers/trainer_youngster_sebastian.json b/res/trainers/data/youngster_sebastian.json similarity index 100% rename from res/trainers/trainer_youngster_sebastian.json rename to res/trainers/data/youngster_sebastian.json diff --git a/res/trainers/trainer_youngster_tristan.json b/res/trainers/data/youngster_tristan.json similarity index 100% rename from res/trainers/trainer_youngster_tristan.json rename to res/trainers/data/youngster_tristan.json diff --git a/res/trainers/trainer_youngster_tristan_rematch_1.json b/res/trainers/data/youngster_tristan_rematch_1.json similarity index 100% rename from res/trainers/trainer_youngster_tristan_rematch_1.json rename to res/trainers/data/youngster_tristan_rematch_1.json diff --git a/res/trainers/trainer_youngster_tristan_rematch_2.json b/res/trainers/data/youngster_tristan_rematch_2.json similarity index 100% rename from res/trainers/trainer_youngster_tristan_rematch_2.json rename to res/trainers/data/youngster_tristan_rematch_2.json diff --git a/res/trainers/trainer_youngster_tristan_rematch_3.json b/res/trainers/data/youngster_tristan_rematch_3.json similarity index 100% rename from res/trainers/trainer_youngster_tristan_rematch_3.json rename to res/trainers/data/youngster_tristan_rematch_3.json diff --git a/res/trainers/trainer_youngster_tyler.json b/res/trainers/data/youngster_tyler.json similarity index 100% rename from res/trainers/trainer_youngster_tyler.json rename to res/trainers/data/youngster_tyler.json diff --git a/res/trainers/trainer_youngster_wayne.json b/res/trainers/data/youngster_wayne.json similarity index 100% rename from res/trainers/trainer_youngster_wayne.json rename to res/trainers/data/youngster_wayne.json diff --git a/res/trainers/meson.build b/res/trainers/meson.build index 187e37ebf9..97db167d3a 100644 --- a/res/trainers/meson.build +++ b/res/trainers/meson.build @@ -1,981 +1,45 @@ -trainer_data_files = [ - 'trainer_none.json', - 'trainer_youngster_tristan.json', - 'trainer_youngster_logan.json', - 'trainer_lass_natalie.json', - 'trainer_youngster_michael.json', - 'trainer_unknown_005.json', - 'trainer_unknown_006.json', - 'trainer_unknown_007.json', - 'trainer_unknown_008.json', - 'trainer_unknown_009.json', - 'trainer_youngster_tyler.json', - 'trainer_lass_samantha.json', - 'trainer_lass_sarah.json', - 'trainer_bug_catcher_brandon.json', - 'trainer_aroma_lady_taylor.json', - 'trainer_twins_liv_and_liz.json', - 'trainer_camper_jacob.json', - 'trainer_picnicker_siena.json', - 'trainer_hiker_daniel.json', - 'trainer_hiker_nicholas.json', - 'trainer_battle_girl_kelsey.json', - 'trainer_aroma_lady_elizabeth.json', - 'trainer_fisherman_andrew.json', - 'trainer_fisherman_joseph.json', - 'trainer_fisherman_zachary.json', - 'trainer_cyclist_axel.json', - 'trainer_cyclist_james.json', - 'trainer_cyclist_john.json', - 'trainer_cyclist_ryan.json', - 'trainer_cyclist_megan.json', - 'trainer_cyclist_nicole.json', - 'trainer_cyclist_kayla.json', - 'trainer_cyclist_rachel.json', - 'trainer_youngster_austin.json', - 'trainer_camper_anthony.json', - 'trainer_picnicker_lauren.json', - 'trainer_hiker_kevin.json', - 'trainer_hiker_justin.json', - 'trainer_battle_girl_helen.json', - 'trainer_hiker_robert.json', - 'trainer_hiker_alexander.json', - 'trainer_hiker_jonathan.json', - 'trainer_black_belt_kyle.json', - 'trainer_fisherman_cody.json', - 'trainer_aroma_lady_hannah.json', - 'trainer_artist_william.json', - 'trainer_breeder_albert.json', - 'trainer_breeder_jennifer.json', - 'trainer_cowgirl_shelley.json', - 'trainer_jogger_richard.json', - 'trainer_unknown_050.json', - 'trainer_unknown_051.json', - 'trainer_unknown_052.json', - 'trainer_poke_kid_danielle.json', - 'trainer_unknown_054.json', - 'trainer_young_couple_ty_and_sue.json', - 'trainer_breeder_kahlil.json', - 'trainer_breeder_amber.json', - 'trainer_unknown_058.json', - 'trainer_unknown_059.json', - 'trainer_unknown_060.json', - 'trainer_unknown_061.json', - 'trainer_unknown_062.json', - 'trainer_unknown_063.json', - 'trainer_unknown_064.json', - 'trainer_twins_teri_and_tia.json', - 'trainer_ace_trainer_ernest.json', - 'trainer_ace_trainer_alyssa.json', - 'trainer_veteran_brian.json', - 'trainer_black_belt_adam.json', - 'trainer_ninja_boy_joel.json', - 'trainer_ninja_boy_nathan.json', - 'trainer_ninja_boy_davido.json', - 'trainer_dragon_tamer_patrick.json', - 'trainer_bird_keeper_brianna.json', - 'trainer_double_team_zac_and_jen.json', - 'trainer_bird_keeper_alexandra.json', - 'trainer_unknown_077.json', - 'trainer_ninja_boy_zach.json', - 'trainer_black_belt_sean.json', - 'trainer_ninja_boy_nick.json', - 'trainer_bird_keeper_katherine.json', - 'trainer_rich_boy_jason.json', - 'trainer_lady_melissa.json', - 'trainer_gentleman_jeremy.json', - 'trainer_socialite_reina.json', - 'trainer_unknown_086.json', - 'trainer_unknown_087.json', - 'trainer_policeman_bobby.json', - 'trainer_policeman_alex.json', - 'trainer_policeman_dylan.json', - 'trainer_fisherman_juan.json', - 'trainer_fisherman_josh.json', - 'trainer_fisherman_travis.json', - 'trainer_ranger_taylor.json', - 'trainer_ranger_jeffrey.json', - 'trainer_ranger_allison.json', - 'trainer_unknown_097.json', - 'trainer_unknown_098.json', - 'trainer_scientist_stefano.json', - 'trainer_unknown_100.json', - 'trainer_unknown_101.json', - 'trainer_policeman_caleb.json', - 'trainer_swimmer_sheltin.json', - 'trainer_swimmer_evan.json', - 'trainer_swimmer_haley.json', - 'trainer_swimmer_mary.json', - 'trainer_tuber_jared.json', - 'trainer_tuber_chelsea.json', - 'trainer_unknown_109.json', - 'trainer_sailor_paul.json', - 'trainer_fisherman_kenneth.json', - 'trainer_unknown_112.json', - 'trainer_ruin_maniac_bryan.json', - 'trainer_ruin_maniac_ronald.json', - 'trainer_unknown_115.json', - 'trainer_unknown_116.json', - 'trainer_unknown_117.json', - 'trainer_unknown_118.json', - 'trainer_psychic_mitchell.json', - 'trainer_psychic_abigail.json', - 'trainer_pi_carlos.json', - 'trainer_unknown_122.json', - 'trainer_unknown_123.json', - 'trainer_unknown_124.json', - 'trainer_unknown_125.json', - 'trainer_unknown_126.json', - 'trainer_black_belt_gregory.json', - 'trainer_black_belt_derek.json', - 'trainer_black_belt_nathaniel.json', - 'trainer_jogger_scott.json', - 'trainer_unknown_131.json', - 'trainer_ace_trainer_blake.json', - 'trainer_ace_trainer_garrett.json', - 'trainer_ace_trainer_laura.json', - 'trainer_ace_trainer_maria.json', - 'trainer_skier_bradley.json', - 'trainer_skier_edward.json', - 'trainer_skier_kaitlyn.json', - 'trainer_skier_andrea.json', - 'trainer_ace_trainer_dalton.json', - 'trainer_ace_trainer_olivia.json', - 'trainer_skier_shawn.json', - 'trainer_skier_bjorn.json', - 'trainer_skier_lexie.json', - 'trainer_skier_madison.json', - 'trainer_ninja_boy_matthew.json', - 'trainer_ninja_boy_ethan.json', - 'trainer_black_belt_luke.json', - 'trainer_unknown_149.json', - 'trainer_unknown_150.json', - 'trainer_unknown_151.json', - 'trainer_unknown_152.json', - 'trainer_fisherman_miguel.json', - 'trainer_fisherman_luc.json', - 'trainer_unknown_155.json', - 'trainer_unknown_156.json', - 'trainer_unknown_157.json', - 'trainer_unknown_158.json', - 'trainer_swimmer_adrian.json', - 'trainer_swimmer_erik.json', - 'trainer_swimmer_vincent.json', - 'trainer_swimmer_jessica.json', - 'trainer_swimmer_erica.json', - 'trainer_swimmer_katelyn.json', - 'trainer_unknown_165.json', - 'trainer_swimmer_dillon.json', - 'trainer_swimmer_vanessa.json', - 'trainer_fisherman_cory.json', - 'trainer_unknown_169.json', - 'trainer_ace_trainer_jake.json', - 'trainer_ace_trainer_shannon.json', - 'trainer_fisherman_brett.json', - 'trainer_fisherman_alec.json', - 'trainer_fisherman_george.json', - 'trainer_fisherman_cole.json', - 'trainer_unknown_176.json', - 'trainer_unknown_177.json', - 'trainer_unknown_178.json', - 'trainer_unknown_179.json', - 'trainer_sailor_luther.json', - 'trainer_unknown_181.json', - 'trainer_unknown_182.json', - 'trainer_swimmer_wesley.json', - 'trainer_swimmer_ricardo.json', - 'trainer_swimmer_francisco.json', - 'trainer_swimmer_colton.json', - 'trainer_swimmer_troy.json', - 'trainer_swimmer_oscar.json', - 'trainer_swimmer_miranda.json', - 'trainer_swimmer_aubree.json', - 'trainer_swimmer_paige.json', - 'trainer_swimmer_crystal.json', - 'trainer_swimmer_cassandra.json', - 'trainer_swimmer_gabrielle.json', - 'trainer_worker_colin.json', - 'trainer_worker_mason.json', - 'trainer_unknown_197.json', - 'trainer_unknown_198.json', - 'trainer_unknown_199.json', - 'trainer_unknown_200.json', - 'trainer_bug_catcher_jack.json', - 'trainer_bug_catcher_phillip.json', - 'trainer_bug_catcher_donald.json', - 'trainer_lass_briana.json', - 'trainer_psychic_elijah.json', - 'trainer_psychic_lindsey.json', - 'trainer_unknown_207.json', - 'trainer_unknown_208.json', - 'trainer_unknown_209.json', - 'trainer_unknown_210.json', - 'trainer_unknown_211.json', - 'trainer_unknown_212.json', - 'trainer_unknown_213.json', - 'trainer_unknown_214.json', - 'trainer_unknown_215.json', - 'trainer_unknown_216.json', - 'trainer_unknown_217.json', - 'trainer_unknown_218.json', - 'trainer_unknown_219.json', - 'trainer_unknown_220.json', - 'trainer_unknown_221.json', - 'trainer_unknown_222.json', - 'trainer_unknown_223.json', - 'trainer_ace_trainer_omar.json', - 'trainer_ace_trainer_henry.json', - 'trainer_ace_trainer_mariah.json', - 'trainer_ace_trainer_sydney.json', - 'trainer_veteran_edgar.json', - 'trainer_veteran_clayton.json', - 'trainer_dragon_tamer_ondrej.json', - 'trainer_dragon_tamer_clinton.json', - 'trainer_black_belt_david.json', - 'trainer_bird_keeper_hana.json', - 'trainer_psychic_bryce.json', - 'trainer_psychic_valencia.json', - 'trainer_double_team_jo_and_pat.json', - 'trainer_double_team_al_and_kay.json', - 'trainer_unknown_238.json', - 'trainer_unknown_239.json', - 'trainer_veteran_grant.json', - 'trainer_unknown_241.json', - 'trainer_unknown_242.json', - 'trainer_unknown_243.json', - 'trainer_youngster_jonathon.json', - 'trainer_youngster_darius.json', - 'trainer_leader_roark.json', - 'trainer_rival_route_203_piplup.json', - 'trainer_rival_route_203_turtwig.json', - 'trainer_rival_route_203_chimchar.json', - 'trainer_leader_byron.json', - 'trainer_unknown_251.json', - 'trainer_unknown_252.json', - 'trainer_unknown_253.json', - 'trainer_unknown_254.json', - 'trainer_unknown_255.json', - 'trainer_worker_jackson.json', - 'trainer_worker_gary.json', - 'trainer_black_belt_philip.json', - 'trainer_aroma_lady_jenna.json', - 'trainer_aroma_lady_angela.json', - 'trainer_elite_four_aaron.json', - 'trainer_elite_four_bertha.json', - 'trainer_elite_four_flint.json', - 'trainer_elite_four_lucian.json', - 'trainer_camper_curtis.json', - 'trainer_camper_drew.json', - 'trainer_champion_cynthia.json', - 'trainer_ace_trainer_sergio.json', - 'trainer_ace_trainer_isaiah.json', - 'trainer_ace_trainer_savannah.json', - 'trainer_ace_trainer_alicia.json', - 'trainer_collector_douglas.json', - 'trainer_collector_brady.json', - 'trainer_collector_ivan.json', - 'trainer_collector_fernando.json', - 'trainer_collector_edwin.json', - 'trainer_dragon_tamer_hayden.json', - 'trainer_ace_trainer_dennis.json', - 'trainer_ace_trainer_cesar.json', - 'trainer_ace_trainer_allen.json', - 'trainer_ace_trainer_zachery.json', - 'trainer_ace_trainer_ruben.json', - 'trainer_ace_trainer_breanna.json', - 'trainer_ace_trainer_catherine.json', - 'trainer_ace_trainer_destiny.json', - 'trainer_ace_trainer_jamie.json', - 'trainer_ace_trainer_maya.json', - 'trainer_psychic_maxwell.json', - 'trainer_psychic_brittney.json', - 'trainer_belle_and_pa_ava_and_matt.json', - 'trainer_unknown_291.json', - 'trainer_rancher_marco.json', - 'trainer_fisherman_erick.json', - 'trainer_twins_emma_and_lil.json', - 'trainer_commander_mars_valley_windworks.json', - 'trainer_galactic_grunt_floaroma_meadow_1.json', - 'trainer_galactic_grunt_floaroma_meadow_2.json', - 'trainer_galactic_grunt_valley_windworks_2.json', - 'trainer_galactic_grunt_valley_windworks_3.json', - 'trainer_guitarist_tony.json', - 'trainer_guitarist_jerry.json', - 'trainer_guitarist_preston.json', - 'trainer_guitarist_lonnie.json', - 'trainer_ruin_maniac_calvin.json', - 'trainer_ruin_maniac_larry.json', - 'trainer_jogger_wyatt.json', - 'trainer_jogger_craig.json', - 'trainer_jogger_raul.json', - 'trainer_black_belt_colby.json', - 'trainer_black_belt_darren.json', - 'trainer_black_belt_rafael.json', - 'trainer_black_belt_jeffery.json', - 'trainer_black_belt_carl.json', - 'trainer_black_belt_ricky.json', - 'trainer_leader_gardenia.json', - 'trainer_leader_wake.json', - 'trainer_leader_maylene.json', - 'trainer_leader_fantina.json', - 'trainer_leader_candice.json', - 'trainer_leader_volkner.json', - 'trainer_unknown_321.json', - 'trainer_lass_madeline.json', - 'trainer_lass_kaitlin.json', - 'trainer_lass_caroline.json', - 'trainer_lass_molly.json', - 'trainer_hiker_louis.json', - 'trainer_parasol_lady_alexa.json', - 'trainer_parasol_lady_sabrina.json', - 'trainer_picnicker_diana.json', - 'trainer_picnicker_cheyenne.json', - 'trainer_poke_kid_meghan.json', - 'trainer_policeman_danny.json', - 'trainer_policeman_thomas.json', - 'trainer_unknown_334.json', - 'trainer_rich_boy_trey.json', - 'trainer_unknown_336.json', - 'trainer_sailor_marc.json', - 'trainer_sailor_skyler.json', - 'trainer_sailor_damian.json', - 'trainer_school_kid_chance.json', - 'trainer_school_kid_forrest.json', - 'trainer_school_kid_harrison.json', - 'trainer_school_kid_mackenzie.json', - 'trainer_school_kid_tiera.json', - 'trainer_school_kid_christine.json', - 'trainer_beauty_cyndy.json', - 'trainer_unknown_347.json', - 'trainer_beauty_lindsay.json', - 'trainer_unknown_349.json', - 'trainer_unknown_350.json', - 'trainer_unknown_351.json', - 'trainer_unknown_352.json', - 'trainer_unknown_353.json', - 'trainer_unknown_354.json', - 'trainer_youngster_dallas.json', - 'trainer_youngster_sebastian.json', - 'trainer_youngster_donny.json', - 'trainer_tuber_trenton.json', - 'trainer_tuber_conner.json', - 'trainer_tuber_mariel.json', - 'trainer_tuber_holly.json', - 'trainer_veteran_armando.json', - 'trainer_unknown_363.json', - 'trainer_unknown_364.json', - 'trainer_unknown_365.json', - 'trainer_waitress_kati.json', - 'trainer_worker_gerardo.json', - 'trainer_unknown_368.json', - 'trainer_unknown_369.json', - 'trainer_unknown_370.json', - 'trainer_unknown_371.json', - 'trainer_battle_girl_tyler.json', - 'trainer_bird_keeper_autumn.json', - 'trainer_unknown_374.json', - 'trainer_unknown_375.json', - 'trainer_unknown_376.json', - 'trainer_camper_zackary.json', - 'trainer_camper_lawrence.json', - 'trainer_camper_diego.json', - 'trainer_camper_parker.json', - 'trainer_collector_dean.json', - 'trainer_collector_jamal.json', - 'trainer_collector_terry.json', - 'trainer_unknown_384.json', - 'trainer_unknown_385.json', - 'trainer_dragon_tamer_joe.json', - 'trainer_unknown_387.json', - 'trainer_ace_trainer_jonah.json', - 'trainer_ace_trainer_micah.json', - 'trainer_ace_trainer_arthur.json', - 'trainer_unknown_391.json', - 'trainer_ace_trainer_brenda.json', - 'trainer_ace_trainer_brandi.json', - 'trainer_ace_trainer_clarice.json', - 'trainer_psychic_kody.json', - 'trainer_psychic_landon.json', - 'trainer_psychic_deandre.json', - 'trainer_psychic_rachael.json', - 'trainer_psychic_desiree.json', - 'trainer_psychic_kendra.json', - 'trainer_fisherman_walter.json', - 'trainer_unknown_402.json', - 'trainer_galactic_boss_cyrus_galactic_hq.json', - 'trainer_galactic_boss_cyrus_distortion_world.json', - 'trainer_commander_mars_lake_verity.json', - 'trainer_commander_jupiter_team_galactic_eterna_building.json', - 'trainer_commander_jupiter_spear_pillar.json', - 'trainer_commander_saturn_valor_cavern.json', - 'trainer_commander_saturn_galactic_hq.json', - 'trainer_galactic_grunt_team_galactic_eterna_building_1f_1.json', - 'trainer_unknown_411.json', - 'trainer_galactic_grunt_team_galactic_eterna_building_2f_1.json', - 'trainer_unknown_413.json', - 'trainer_galactic_grunt_jubilife_city_1.json', - 'trainer_galactic_grunt_jubilife_city_2.json', - 'trainer_galactic_grunt_celestic_town.json', - 'trainer_galactic_grunt_lake_valor_1.json', - 'trainer_galactic_grunt_lake_valor_2.json', - 'trainer_galactic_grunt_lake_verity_1.json', - 'trainer_galactic_grunt_lake_verity_3.json', - 'trainer_galactic_grunt_team_galactic_eterna_building_1f_2.json', - 'trainer_galactic_grunt_team_galactic_eterna_building_2f_2.json', - 'trainer_galactic_grunt_team_galactic_eterna_building_3f.json', - 'trainer_unknown_424.json', - 'trainer_galactic_grunt_lake_valor_3.json', - 'trainer_galactic_grunt_lake_verity_2.json', - 'trainer_galactic_grunt_lake_verity_4.json', - 'trainer_galactic_grunt_galactic_hq_1f.json', - 'trainer_unknown_429.json', - 'trainer_galactic_grunt_galactic_hq_2f_3.json', - 'trainer_unknown_431.json', - 'trainer_unknown_432.json', - 'trainer_unknown_433.json', - 'trainer_unknown_434.json', - 'trainer_unknown_435.json', - 'trainer_unknown_436.json', - 'trainer_unknown_437.json', - 'trainer_unknown_438.json', - 'trainer_unknown_439.json', - 'trainer_unknown_440.json', - 'trainer_unknown_441.json', - 'trainer_ruin_maniac_harry.json', - 'trainer_ruin_maniac_gerald.json', - 'trainer_black_belt_miles.json', - 'trainer_black_belt_kendal.json', - 'trainer_black_belt_eddie.json', - 'trainer_black_belt_willie.json', - 'trainer_unknown_448.json', - 'trainer_unknown_449.json', - 'trainer_lass_cassidy.json', - 'trainer_hiker_theodore.json', - 'trainer_hiker_damon.json', - 'trainer_hiker_maurice.json', - 'trainer_hiker_reginald.json', - 'trainer_hiker_lorenzo.json', - 'trainer_picnicker_karina.json', - 'trainer_picnicker_summer.json', - 'trainer_picnicker_tori.json', - 'trainer_picnicker_ana.json', - 'trainer_unknown_460.json', - 'trainer_unknown_461.json', - 'trainer_unknown_462.json', - 'trainer_unknown_463.json', - 'trainer_unknown_464.json', - 'trainer_unknown_465.json', - 'trainer_unknown_466.json', - 'trainer_unknown_467.json', - 'trainer_unknown_468.json', - 'trainer_unknown_469.json', - 'trainer_rival_route_209_piplup.json', - 'trainer_rival_route_209_turtwig.json', - 'trainer_rival_route_209_chimchar.json', - 'trainer_rival_pastoria_city_piplup.json', - 'trainer_rival_pastoria_city_turtwig.json', - 'trainer_rival_pastoria_city_chimchar.json', - 'trainer_rival_canalave_city_piplup.json', - 'trainer_rival_canalave_city_turtwig.json', - 'trainer_rival_canalave_city_chimchar.json', - 'trainer_rival_pokemon_league_piplup.json', - 'trainer_rival_pokemon_league_turtwig.json', - 'trainer_rival_pokemon_league_chimchar.json', - 'trainer_sailor_zachariah.json', - 'trainer_sailor_samson.json', - 'trainer_unknown_484.json', - 'trainer_unknown_485.json', - 'trainer_scientist_shaun.json', - 'trainer_unknown_487.json', - 'trainer_ninja_boy_fabian.json', - 'trainer_ninja_boy_brennan.json', - 'trainer_ninja_boy_bruce.json', - 'trainer_beauty_devon.json', - 'trainer_beauty_nicola.json', - 'trainer_unknown_493.json', - 'trainer_swimmer_claire.json', - 'trainer_unknown_495.json', - 'trainer_youngster_wayne.json', - 'trainer_tuber_jacky.json', - 'trainer_tuber_caitlyn.json', - 'trainer_veteran_terrell.json', - 'trainer_veteran_brenden.json', - 'trainer_unknown_501.json', - 'trainer_unknown_502.json', - 'trainer_worker_noel.json', - 'trainer_worker_braden.json', - 'trainer_worker_brendon.json', - 'trainer_worker_quentin.json', - 'trainer_galactic_grunt_galactic_hq_b2f_1.json', - 'trainer_galactic_grunt_galactic_hq_b2f_2.json', - 'trainer_galactic_grunt_galactic_hq_3f_1.json', - 'trainer_galactic_grunt_galactic_hq_2f_1.json', - 'trainer_unknown_511.json', - 'trainer_galactic_grunt_galactic_hq_3f_2.json', - 'trainer_galactic_grunt_galactic_hq_2f_2.json', - 'trainer_galactic_grunt_galactic_hq_3f_3.json', - 'trainer_galactic_grunt_mt_coronet_3f_1.json', - 'trainer_galactic_grunt_mt_coronet_4f_1.json', - 'trainer_galactic_grunt_mt_coronet_4f_2.json', - 'trainer_galactic_grunt_mt_coronet_tunnel_room_1.json', - 'trainer_galactic_grunt_mt_coronet_tunnel_room_2.json', - 'trainer_galactic_grunt_mt_coronet_5f_1.json', - 'trainer_galactic_grunt_spear_pillar_1.json', - 'trainer_galactic_grunt_galactic_hq_3f_4.json', - 'trainer_galactic_grunt_mt_coronet__3f_1.json', - 'trainer_galactic_grunt_mt_coronet_tunnel_room_3.json', - 'trainer_galactic_grunt_mt_coronet_5f_2.json', - 'trainer_galactic_grunt_mt_coronet_6f.json', - 'trainer_galactic_grunt_spear_pillar_2.json', - 'trainer_commander_mars_spear_pillar.json', - 'trainer_roughneck_kirby.json', - 'trainer_pokefan_leonard.json', - 'trainer_pokefan_rebekah.json', - 'trainer_youngster_oliver.json', - 'trainer_belle_and_pa_beth_and_bob.json', - 'trainer_young_couple_mike_and_nat.json', - 'trainer_aroma_lady_alison.json', - 'trainer_artist_ismael.json', - 'trainer_breeder_kaylee.json', - 'trainer_cameraman_darryl.json', - 'trainer_collector_eugene.json', - 'trainer_pokefan_meredith.json', - 'trainer_pi_kendrick.json', - 'trainer_gentleman_leonardo.json', - 'trainer_socialite_rebecca.json', - 'trainer_lass_blythe.json', - 'trainer_rich_boy_roman.json', - 'trainer_lady_kylie.json', - 'trainer_reporters_valerie.json', - 'trainer_school_kid_esteban.json', - 'trainer_scientist_emilio.json', - 'trainer_beauty_gabriella.json', - 'trainer_beauty_harley.json', - 'trainer_veteran_emanuel.json', - 'trainer_ruin_maniac_karl.json', - 'trainer_bird_keeper_audrey.json', - 'trainer_bird_keeper_geneva.json', - 'trainer_bird_keeper_krystal.json', - 'trainer_dragon_tamer_geoffrey.json', - 'trainer_dragon_tamer_darien.json', - 'trainer_dragon_tamer_keegan.json', - 'trainer_dragon_tamer_stanley.json', - 'trainer_dragon_tamer_drake.json', - 'trainer_dragon_tamer_kenny.json', - 'trainer_ace_trainer_rodolfo.json', - 'trainer_ace_trainer_saul.json', - 'trainer_ace_trainer_jose.json', - 'trainer_ace_trainer_felix.json', - 'trainer_ace_trainer_quinn.json', - 'trainer_ace_trainer_graham.json', - 'trainer_ace_trainer_keenan.json', - 'trainer_ace_trainer_stefan.json', - 'trainer_ace_trainer_skylar.json', - 'trainer_ace_trainer_abel.json', - 'trainer_ace_trainer_deanna.json', - 'trainer_ace_trainer_moira.json', - 'trainer_ace_trainer_dana.json', - 'trainer_ace_trainer_mikayla.json', - 'trainer_ace_trainer_meagan.json', - 'trainer_ace_trainer_sandra.json', - 'trainer_ace_trainer_kassandra.json', - 'trainer_ace_trainer_jasmin.json', - 'trainer_ace_trainer_natasha.json', - 'trainer_ace_trainer_monique.json', - 'trainer_psychic_corbin.json', - 'trainer_psychic_sterling.json', - 'trainer_psychic_daisy.json', - 'trainer_psychic_chelsey.json', - 'trainer_black_belt_davon.json', - 'trainer_black_belt_griffin.json', - 'trainer_black_belt_ray.json', - 'trainer_black_belt_jarrett.json', - 'trainer_ranger_kyler.json', - 'trainer_ranger_deshawn.json', - 'trainer_ranger_dwayne.json', - 'trainer_ranger_ashlee.json', - 'trainer_ranger_felicia.json', - 'trainer_ranger_krista.json', - 'trainer_swimmer_glenn.json', - 'trainer_swimmer_kurt.json', - 'trainer_swimmer_sam.json', - 'trainer_swimmer_wade.json', - 'trainer_swimmer_joanna.json', - 'trainer_swimmer_sophia.json', - 'trainer_swimmer_mallory.json', - 'trainer_swimmer_lydia.json', - 'trainer_unknown_605.json', - 'trainer_veteran_harlan.json', - 'trainer_rival_spear_pillar_piplup.json', - 'trainer_cheryl_eterna_forest.json', - 'trainer_riley_iron_island.json', - 'trainer_marley_victory_road.json', - 'trainer_buck_stark_mountain.json', - 'trainer_mira_wayward_cave.json', - 'trainer_lucas_jubilife_city_chimchar.json', - 'trainer_lucas_jubilife_city_piplup.json', - 'trainer_lucas_jubilife_city_turtwig.json', - 'trainer_dawn_jubilife_city_chimchar.json', - 'trainer_dawn_jubilife_city_piplup.json', - 'trainer_dawn_jubilife_city_turtwig.json', - 'trainer_rival_spear_pillar_turtwig.json', - 'trainer_rival_spear_pillar_chimchar.json', - 'trainer_lucas_veilstone_city_chimchar.json', - 'trainer_lucas_veilstone_city_piplup.json', - 'trainer_lucas_veilstone_city_turtwig.json', - 'trainer_dawn_veilstone_city_chimchar.json', - 'trainer_dawn_veilstone_city_piplup.json', - 'trainer_dawn_veilstone_city_turtwig.json', - 'trainer_aroma_lady_elizabeth_rematch_1.json', - 'trainer_aroma_lady_elizabeth_rematch_2.json', - 'trainer_aroma_lady_elizabeth_rematch_3.json', - 'trainer_artist_william_rematch_1.json', - 'trainer_artist_william_rematch_2.json', - 'trainer_artist_william_rematch_3.json', - 'trainer_battle_girl_helen_rematch_1.json', - 'trainer_battle_girl_helen_rematch_2.json', - 'trainer_battle_girl_helen_rematch_3.json', - 'trainer_bird_keeper_brianna_rematch_1.json', - 'trainer_bird_keeper_brianna_rematch_2.json', - 'trainer_bird_keeper_audrey_rematch.json', - 'trainer_breeder_albert_rematch_1.json', - 'trainer_breeder_albert_rematch_2.json', - 'trainer_breeder_albert_rematch_3.json', - 'trainer_breeder_jennifer_rematch_1.json', - 'trainer_breeder_jennifer_rematch_2.json', - 'trainer_breeder_jennifer_rematch_3.json', - 'trainer_camper_zackary_rematch_1.json', - 'trainer_camper_zackary_rematch_2.json', - 'trainer_camper_zackary_rematch_3.json', - 'trainer_ace_trainer_dalton_rematch.json', - 'trainer_ace_trainer_olivia_rematch.json', - 'trainer_collector_ivan_rematch.json', - 'trainer_unknown_651.json', - 'trainer_unknown_652.json', - 'trainer_cyclist_john_rematch_1.json', - 'trainer_cyclist_john_rematch_2.json', - 'trainer_cyclist_john_rematch_3.json', - 'trainer_cyclist_kayla_rematch_1.json', - 'trainer_cyclist_kayla_rematch_2.json', - 'trainer_cyclist_kayla_rematch_3.json', - 'trainer_dragon_tamer_patrick_rematch_1.json', - 'trainer_dragon_tamer_patrick_rematch_2.json', - 'trainer_dragon_tamer_hayden_rematch.json', - 'trainer_dragon_tamer_geoffrey_rematch.json', - 'trainer_ace_trainer_jake_rematch.json', - 'trainer_ace_trainer_dennis_rematch_1.json', - 'trainer_ace_trainer_dennis_rematch_2.json', - 'trainer_ace_trainer_rodolfo_rematch.json', - 'trainer_ace_trainer_saul_rematch.json', - 'trainer_ace_trainer_shannon_rematch.json', - 'trainer_ace_trainer_maya_rematch_1.json', - 'trainer_ace_trainer_maya_rematch_2.json', - 'trainer_ace_trainer_deanna_rematch.json', - 'trainer_ace_trainer_moira_rematch.json', - 'trainer_psychic_mitchell_rematch_1.json', - 'trainer_psychic_mitchell_rematch_2.json', - 'trainer_psychic_maxwell_rematch.json', - 'trainer_psychic_corbin_rematch.json', - 'trainer_psychic_abigail_rematch_1.json', - 'trainer_psychic_abigail_rematch_2.json', - 'trainer_psychic_brittney_rematch.json', - 'trainer_psychic_daisy_rematch.json', - 'trainer_rancher_marco_rematch_1.json', - 'trainer_rancher_marco_rematch_2.json', - 'trainer_fisherman_joseph_rematch_1.json', - 'trainer_fisherman_joseph_rematch_2.json', - 'trainer_fisherman_miguel_rematch.json', - 'trainer_fisherman_alec_rematch.json', - 'trainer_twins_teri_and_tia_rematch_1.json', - 'trainer_twins_teri_and_tia_rematch_2.json', - 'trainer_pi_carlos_rematch_1.json', - 'trainer_pi_carlos_rematch_2.json', - 'trainer_gentleman_jeremy_rematch_1.json', - 'trainer_gentleman_jeremy_rematch_2.json', - 'trainer_gentleman_jeremy_rematch_3.json', - 'trainer_guitarist_tony_rematch.json', - 'trainer_ruin_maniac_harry_rematch_1.json', - 'trainer_ruin_maniac_harry_rematch_2.json', - 'trainer_jogger_craig_rematch_1.json', - 'trainer_jogger_craig_rematch_2.json', - 'trainer_black_belt_philip_rematch.json', - 'trainer_black_belt_davon_rematch.json', - 'trainer_socialite_reina_rematch_1.json', - 'trainer_socialite_reina_rematch_2.json', - 'trainer_lass_samantha_rematch_1.json', - 'trainer_lass_samantha_rematch_2.json', - 'trainer_lass_samantha_rematch_3.json', - 'trainer_lass_madeline_rematch_1.json', - 'trainer_lass_madeline_rematch_2.json', - 'trainer_lass_madeline_rematch_3.json', - 'trainer_hiker_theodore_rematch_1.json', - 'trainer_hiker_theodore_rematch_2.json', - 'trainer_hiker_theodore_rematch_3.json', - 'trainer_bug_catcher_brandon_rematch_1.json', - 'trainer_bug_catcher_brandon_rematch_2.json', - 'trainer_bug_catcher_brandon_rematch_3.json', - 'trainer_parasol_lady_alexa_rematch_1.json', - 'trainer_parasol_lady_alexa_rematch_2.json', - 'trainer_parasol_lady_alexa_rematch_3.json', - 'trainer_picnicker_karina_rematch_1.json', - 'trainer_picnicker_karina_rematch_2.json', - 'trainer_picnicker_karina_rematch_3.json', - 'trainer_poke_kid_danielle_rematch_1.json', - 'trainer_poke_kid_danielle_rematch_2.json', - 'trainer_poke_kid_danielle_rematch_3.json', - 'trainer_policeman_danny_rematch_1.json', - 'trainer_policeman_danny_rematch_2.json', - 'trainer_policeman_danny_rematch_3.json', - 'trainer_rich_boy_trey_rematch_1.json', - 'trainer_rich_boy_trey_rematch_2.json', - 'trainer_lady_melissa_rematch_1.json', - 'trainer_lady_melissa_rematch_2.json', - 'trainer_lady_melissa_rematch_3.json', - 'trainer_ranger_taylor_rematch_1.json', - 'trainer_ranger_taylor_rematch_2.json', - 'trainer_ranger_taylor_rematch_3.json', - 'trainer_ranger_kyler_rematch.json', - 'trainer_ranger_allison_rematch_1.json', - 'trainer_ranger_allison_rematch_2.json', - 'trainer_ranger_allison_rematch_3.json', - 'trainer_ranger_ashlee_rematch.json', - 'trainer_sailor_marc_rematch_1.json', - 'trainer_sailor_marc_rematch_2.json', - 'trainer_sailor_zachariah_rematch.json', - 'trainer_scientist_shaun_rematch_1.json', - 'trainer_scientist_shaun_rematch_2.json', - 'trainer_scientist_shaun_rematch_3.json', - 'trainer_ninja_boy_zach_rematch_1.json', - 'trainer_ninja_boy_zach_rematch_2.json', - 'trainer_ninja_boy_zach_rematch_3.json', - 'trainer_beauty_cyndy_rematch_1.json', - 'trainer_beauty_cyndy_rematch_2.json', - 'trainer_skier_edward_rematch_1.json', - 'trainer_skier_edward_rematch_2.json', - 'trainer_skier_bjorn_rematch_1.json', - 'trainer_skier_bjorn_rematch_2.json', - 'trainer_skier_andrea_rematch_1.json', - 'trainer_skier_andrea_rematch_2.json', - 'trainer_skier_madison_rematch_1.json', - 'trainer_skier_madison_rematch_2.json', - 'trainer_swimmer_wesley_rematch.json', - 'trainer_swimmer_francisco_rematch.json', - 'trainer_swimmer_glenn_rematch.json', - 'trainer_swimmer_miranda_rematch.json', - 'trainer_swimmer_crystal_rematch.json', - 'trainer_swimmer_joanna_rematch.json', - 'trainer_youngster_tristan_rematch_1.json', - 'trainer_youngster_tristan_rematch_2.json', - 'trainer_youngster_tristan_rematch_3.json', - 'trainer_youngster_dallas_rematch_1.json', - 'trainer_youngster_dallas_rematch_2.json', - 'trainer_youngster_dallas_rematch_3.json', - 'trainer_tuber_jared_rematch_1.json', - 'trainer_tuber_jared_rematch_2.json', - 'trainer_tuber_chelsea_rematch_1.json', - 'trainer_veteran_brian_rematch_1.json', - 'trainer_tuber_chelsea_rematch_2.json', - 'trainer_veteran_brian_rematch_2.json', - 'trainer_veteran_armando_rematch.json', - 'trainer_unknown_778.json', - 'trainer_unknown_779.json', - 'trainer_unknown_780.json', - 'trainer_unknown_781.json', - 'trainer_unknown_782.json', - 'trainer_unknown_783.json', - 'trainer_unknown_784.json', - 'trainer_unknown_785.json', - 'trainer_unknown_786.json', - 'trainer_unknown_787.json', - 'trainer_unknown_788.json', - 'trainer_unknown_789.json', - 'trainer_unknown_790.json', - 'trainer_unknown_791.json', - 'trainer_unknown_792.json', - 'trainer_unknown_793.json', - 'trainer_unknown_794.json', - 'trainer_unknown_795.json', - 'trainer_unknown_796.json', - 'trainer_unknown_797.json', - 'trainer_unknown_798.json', - 'trainer_unknown_799.json', - 'trainer_unknown_800.json', - 'trainer_unknown_801.json', - 'trainer_unknown_802.json', - 'trainer_unknown_803.json', - 'trainer_unknown_804.json', - 'trainer_unknown_805.json', - 'trainer_unknown_806.json', - 'trainer_unknown_807.json', - 'trainer_unknown_808.json', - 'trainer_unknown_809.json', - 'trainer_unknown_810.json', - 'trainer_unknown_811.json', - 'trainer_unknown_812.json', - 'trainer_unknown_813.json', - 'trainer_unknown_814.json', - 'trainer_unknown_815.json', - 'trainer_unknown_816.json', - 'trainer_unknown_817.json', - 'trainer_unknown_818.json', - 'trainer_unknown_819.json', - 'trainer_unknown_820.json', - 'trainer_unknown_821.json', - 'trainer_unknown_822.json', - 'trainer_unknown_823.json', - 'trainer_unknown_824.json', - 'trainer_unknown_825.json', - 'trainer_unknown_828.json', - 'trainer_ace_trainer_anton.json', - 'trainer_ace_trainer_brenna.json', - 'trainer_scientist_darrius.json', - 'trainer_scientist_fredrick.json', - 'trainer_scientist_travon.json', - 'trainer_poke_kid_janet.json', - 'trainer_unknown_833.json', - 'trainer_unknown_834.json', - 'trainer_galactic_grunt_iron_island_1.json', - 'trainer_galactic_grunt_iron_island_2.json', - 'trainer_rival_survival_area_1_piplup.json', - 'trainer_rival_survival_area_1_turtwig.json', - 'trainer_rival_survival_area_1_chimchar.json', - 'trainer_unknown_840.json', - 'trainer_unknown_841.json', - 'trainer_unknown_842.json', - 'trainer_galactic_grunt_valley_windworks_1.json', - 'trainer_worker_dillan.json', - 'trainer_worker_holden.json', - 'trainer_worker_conrad.json', - 'trainer_galactic_grunt_valor_lakefront.json', - 'trainer_galactic_grunt_veilstone_city_1.json', - 'trainer_galactic_grunt_veilstone_city_2.json', - 'trainer_rival_route_201_piplup.json', - 'trainer_rival_route_201_turtwig.json', - 'trainer_rival_route_201_chimchar.json', - 'trainer_leader_candice_rematch.json', - 'trainer_leader_maylene_rematch.json', - 'trainer_leader_volkner_rematch.json', - 'trainer_leader_byron_rematch.json', - 'trainer_leader_gardenia_rematch.json', - 'trainer_leader_roark_rematch.json', - 'trainer_leader_wake_rematch.json', - 'trainer_leader_fantina_rematch.json', - 'trainer_riley_battleground.json', - 'trainer_buck_battleground.json', - 'trainer_marley_battleground.json', - 'trainer_mira_battleground.json', - 'trainer_cheryl_battleground.json', - 'trainer_elite_four_aaron_rematch.json', - 'trainer_elite_four_bertha_rematch.json', - 'trainer_elite_four_flint_rematch.json', - 'trainer_elite_four_lucian_rematch.json', - 'trainer_champion_cynthia_rematch.json', - 'trainer_rival_survival_area_2_piplup.json', - 'trainer_rival_survival_area_2_turtwig.json', - 'trainer_rival_survival_area_2_chimchar.json', - 'trainer_cameraman_tevin.json', - 'trainer_cameraman_tevin_rematch_1.json', - 'trainer_cameraman_tevin_rematch_2.json', - 'trainer_guitarist_arturo.json', - 'trainer_guitarist_arturo_rematch_1.json', - 'trainer_guitarist_arturo_rematch_2.json', - 'trainer_idol_grace.json', - 'trainer_idol_grace_rematch_1.json', - 'trainer_idol_grace_rematch_2.json', - 'trainer_interviewers_roxy_and_oli.json', - 'trainer_interviewers_roxy_and_oli_rematch_1.json', - 'trainer_interviewers_roxy_and_oli_rematch_2.json', - 'trainer_clown_lee.json', - 'trainer_clown_lee_rematch_1.json', - 'trainer_clown_lee_rematch_2.json', - 'trainer_poke_kid_ariel.json', - 'trainer_poke_kid_ariel_rematch_1.json', - 'trainer_poke_kid_ariel_rematch_2.json', - 'trainer_rich_boy_liam.json', - 'trainer_lady_celeste.json', - 'trainer_reporters_kinsey.json', - 'trainer_reporters_kinsey_rematch_1.json', - 'trainer_reporters_kinsey_rematch_2.json', - 'trainer_maid_belinda.json', - 'trainer_maid_sophie.json', - 'trainer_maid_emily.json', - 'trainer_maid_elena.json', - 'trainer_maid_clare.json', - 'trainer_unknown_902.json', - 'trainer_unknown_903.json', - 'trainer_unknown_904.json', - 'trainer_unknown_905.json', - 'trainer_cameraman_tevin_rematch_3.json', - 'trainer_guitarist_arturo_rematch_3.json', - 'trainer_idol_grace_rematch_3.json', - 'trainer_interviewers_roxy_and_oli_rematch_3.json', - 'trainer_clown_lee_rematch_3.json', - 'trainer_poke_kid_ariel_rematch_3.json', - 'trainer_reporters_kinsey_rematch_3.json', - 'trainer_galactic_boss_cyrus_celestic_town_ruins.json', - 'trainer_cameraman_tevin_rematch_4.json', - 'trainer_guitarist_arturo_rematch_4.json', - 'trainer_idol_grace_rematch_4.json', - 'trainer_interviewers_roxy_and_oli_rematch_4.json', - 'trainer_clown_lee_rematch_4.json', - 'trainer_poke_kid_ariel_rematch_4.json', - 'trainer_reporters_kinsey_rematch_4.json', - 'trainer_leader_volkner_fight_area.json', - 'trainer_elite_four_flint_fight_area.json', - 'trainer_rival_fight_area_piplup.json', - 'trainer_rival_fight_area_turtwig.json', - 'trainer_rival_fight_area_chimchar.json', - 'trainer_commander_mars_stark_mountain.json', - 'trainer_commander_jupiter_stark_mountain.json', -] +# This build file contains all definitions for building filesystem archives +# and related to Trainers. Specifically, it handles: +# - Trainer data: +# - trdata - header information for individual trainers in-game: their class +# (internally called trainerType for compatibility reasons), party size, +# AI behavior flags, and items on-hand. +# - trpoke - party information for individual trainers in-game -trainer_data_gen = generator( - trainer_data_py, - arguments: [ '@INPUT@', '@OUTPUT@', ], - output: '@BASENAME@', - depends: [ py_consts_generators ], -) +trainer_data_dir = meson.current_source_dir() / 'data' -trainer_party_gen = generator( - trainer_party_py, - arguments: [ '@INPUT@', '@OUTPUT@', ], - output: '@BASENAME@', - depends: [ py_consts_generators ], -) +# 1. Build the list of trainer stems, which define the files to be scanned +# by the batch processor below. While building this list, assert that each +# stem must have a corresponding data file. +trainer_consts = fs.read(trainers_txt).splitlines() +trainer_stems = [] +trainer_data_files = [] +foreach trainer : trainer_consts + # `substring` here strips the `TRAINER_` prefix + trainer_stem = trainer.substring(8).to_lower() + trainer_stems += trainer_stem + trainer_data_files += files(trainer_data_dir / (trainer_stem + '.json')) +endforeach -trainers_order = files('trainers.order') +# 2. Build the environment of trainer stems to be passed to the batch processor. +trainer_env = environment() +trainer_env.append('TRAINERS', trainer_stems, separator: ';') -trdata_narc = custom_target('trdata.narc', +# 3. Process the trainer data files in batch and emit header data + party lists. +datagen_trainer_out = custom_target('datagen_trainer_out', output: [ 'trdata.narc', - 'trdata.naix', + 'trpoke.narc', ], - input: trainer_data_gen.process(trainer_data_files, env: json2bin_env), - depends: [ py_consts_generators ], command: [ - narc_exe, - 'create', - '--order', trainers_order, - '--output', '@OUTPUT0@', - '--naix', - '@PRIVATE_DIR@', + datagen_trainer_exe, + meson.current_build_dir(), + trainer_data_dir, + ], + env: trainer_env, + depend_files: [ + trainer_data_files, ], -) -trdata_naix = trdata_narc[1] - -# Do not generate an NAIX for `trpoke.narc`; it would go wholly unused -trpoke_narc = custom_target('trpoke.narc', - output: 'trpoke.narc', - input: trainer_party_gen.process(trainer_data_files, env: json2bin_env), - depends: [ py_consts_generators ], - command: [ - narc_exe, 'create', - '--order', trainers_order, - '--output', '@OUTPUT@', - '@PRIVATE_DIR@', - ] ) -nitrofs_files += trdata_narc -nitrofs_files += trpoke_narc -naix_headers += trdata_naix +nitrofs_files += datagen_trainer_out diff --git a/res/trainers/trainers.order b/res/trainers/trainers.order deleted file mode 100644 index fae85c2ac8..0000000000 --- a/res/trainers/trainers.order +++ /dev/null @@ -1,928 +0,0 @@ -trainer_none -trainer_youngster_tristan -trainer_youngster_logan -trainer_lass_natalie -trainer_youngster_michael -trainer_unknown_005 -trainer_unknown_006 -trainer_unknown_007 -trainer_unknown_008 -trainer_unknown_009 -trainer_youngster_tyler -trainer_lass_samantha -trainer_lass_sarah -trainer_bug_catcher_brandon -trainer_aroma_lady_taylor -trainer_twins_liv_and_liz -trainer_camper_jacob -trainer_picnicker_siena -trainer_hiker_daniel -trainer_hiker_nicholas -trainer_battle_girl_kelsey -trainer_aroma_lady_elizabeth -trainer_fisherman_andrew -trainer_fisherman_joseph -trainer_fisherman_zachary -trainer_cyclist_axel -trainer_cyclist_james -trainer_cyclist_john -trainer_cyclist_ryan -trainer_cyclist_megan -trainer_cyclist_nicole -trainer_cyclist_kayla -trainer_cyclist_rachel -trainer_youngster_austin -trainer_camper_anthony -trainer_picnicker_lauren -trainer_hiker_kevin -trainer_hiker_justin -trainer_battle_girl_helen -trainer_hiker_robert -trainer_hiker_alexander -trainer_hiker_jonathan -trainer_black_belt_kyle -trainer_fisherman_cody -trainer_aroma_lady_hannah -trainer_artist_william -trainer_breeder_albert -trainer_breeder_jennifer -trainer_cowgirl_shelley -trainer_jogger_richard -trainer_unknown_050 -trainer_unknown_051 -trainer_unknown_052 -trainer_poke_kid_danielle -trainer_unknown_054 -trainer_young_couple_ty_and_sue -trainer_breeder_kahlil -trainer_breeder_amber -trainer_unknown_058 -trainer_unknown_059 -trainer_unknown_060 -trainer_unknown_061 -trainer_unknown_062 -trainer_unknown_063 -trainer_unknown_064 -trainer_twins_teri_and_tia -trainer_ace_trainer_ernest -trainer_ace_trainer_alyssa -trainer_veteran_brian -trainer_black_belt_adam -trainer_ninja_boy_joel -trainer_ninja_boy_nathan -trainer_ninja_boy_davido -trainer_dragon_tamer_patrick -trainer_bird_keeper_brianna -trainer_double_team_zac_and_jen -trainer_bird_keeper_alexandra -trainer_unknown_077 -trainer_ninja_boy_zach -trainer_black_belt_sean -trainer_ninja_boy_nick -trainer_bird_keeper_katherine -trainer_rich_boy_jason -trainer_lady_melissa -trainer_gentleman_jeremy -trainer_socialite_reina -trainer_unknown_086 -trainer_unknown_087 -trainer_policeman_bobby -trainer_policeman_alex -trainer_policeman_dylan -trainer_fisherman_juan -trainer_fisherman_josh -trainer_fisherman_travis -trainer_ranger_taylor -trainer_ranger_jeffrey -trainer_ranger_allison -trainer_unknown_097 -trainer_unknown_098 -trainer_scientist_stefano -trainer_unknown_100 -trainer_unknown_101 -trainer_policeman_caleb -trainer_swimmer_sheltin -trainer_swimmer_evan -trainer_swimmer_haley -trainer_swimmer_mary -trainer_tuber_jared -trainer_tuber_chelsea -trainer_unknown_109 -trainer_sailor_paul -trainer_fisherman_kenneth -trainer_unknown_112 -trainer_ruin_maniac_bryan -trainer_ruin_maniac_ronald -trainer_unknown_115 -trainer_unknown_116 -trainer_unknown_117 -trainer_unknown_118 -trainer_psychic_mitchell -trainer_psychic_abigail -trainer_pi_carlos -trainer_unknown_122 -trainer_unknown_123 -trainer_unknown_124 -trainer_unknown_125 -trainer_unknown_126 -trainer_black_belt_gregory -trainer_black_belt_derek -trainer_black_belt_nathaniel -trainer_jogger_scott -trainer_unknown_131 -trainer_ace_trainer_blake -trainer_ace_trainer_garrett -trainer_ace_trainer_laura -trainer_ace_trainer_maria -trainer_skier_bradley -trainer_skier_edward -trainer_skier_kaitlyn -trainer_skier_andrea -trainer_ace_trainer_dalton -trainer_ace_trainer_olivia -trainer_skier_shawn -trainer_skier_bjorn -trainer_skier_lexie -trainer_skier_madison -trainer_ninja_boy_matthew -trainer_ninja_boy_ethan -trainer_black_belt_luke -trainer_unknown_149 -trainer_unknown_150 -trainer_unknown_151 -trainer_unknown_152 -trainer_fisherman_miguel -trainer_fisherman_luc -trainer_unknown_155 -trainer_unknown_156 -trainer_unknown_157 -trainer_unknown_158 -trainer_swimmer_adrian -trainer_swimmer_erik -trainer_swimmer_vincent -trainer_swimmer_jessica -trainer_swimmer_erica -trainer_swimmer_katelyn -trainer_unknown_165 -trainer_swimmer_dillon -trainer_swimmer_vanessa -trainer_fisherman_cory -trainer_unknown_169 -trainer_ace_trainer_jake -trainer_ace_trainer_shannon -trainer_fisherman_brett -trainer_fisherman_alec -trainer_fisherman_george -trainer_fisherman_cole -trainer_unknown_176 -trainer_unknown_177 -trainer_unknown_178 -trainer_unknown_179 -trainer_sailor_luther -trainer_unknown_181 -trainer_unknown_182 -trainer_swimmer_wesley -trainer_swimmer_ricardo -trainer_swimmer_francisco -trainer_swimmer_colton -trainer_swimmer_troy -trainer_swimmer_oscar -trainer_swimmer_miranda -trainer_swimmer_aubree -trainer_swimmer_paige -trainer_swimmer_crystal -trainer_swimmer_cassandra -trainer_swimmer_gabrielle -trainer_worker_colin -trainer_worker_mason -trainer_unknown_197 -trainer_unknown_198 -trainer_unknown_199 -trainer_unknown_200 -trainer_bug_catcher_jack -trainer_bug_catcher_phillip -trainer_bug_catcher_donald -trainer_lass_briana -trainer_psychic_elijah -trainer_psychic_lindsey -trainer_unknown_207 -trainer_unknown_208 -trainer_unknown_209 -trainer_unknown_210 -trainer_unknown_211 -trainer_unknown_212 -trainer_unknown_213 -trainer_unknown_214 -trainer_unknown_215 -trainer_unknown_216 -trainer_unknown_217 -trainer_unknown_218 -trainer_unknown_219 -trainer_unknown_220 -trainer_unknown_221 -trainer_unknown_222 -trainer_unknown_223 -trainer_ace_trainer_omar -trainer_ace_trainer_henry -trainer_ace_trainer_mariah -trainer_ace_trainer_sydney -trainer_veteran_edgar -trainer_veteran_clayton -trainer_dragon_tamer_ondrej -trainer_dragon_tamer_clinton -trainer_black_belt_david -trainer_bird_keeper_hana -trainer_psychic_bryce -trainer_psychic_valencia -trainer_double_team_jo_and_pat -trainer_double_team_al_and_kay -trainer_unknown_238 -trainer_unknown_239 -trainer_veteran_grant -trainer_unknown_241 -trainer_unknown_242 -trainer_unknown_243 -trainer_youngster_jonathon -trainer_youngster_darius -trainer_leader_roark -trainer_rival_route_203_piplup -trainer_rival_route_203_turtwig -trainer_rival_route_203_chimchar -trainer_leader_byron -trainer_unknown_251 -trainer_unknown_252 -trainer_unknown_253 -trainer_unknown_254 -trainer_unknown_255 -trainer_worker_jackson -trainer_worker_gary -trainer_black_belt_philip -trainer_aroma_lady_jenna -trainer_aroma_lady_angela -trainer_elite_four_aaron -trainer_elite_four_bertha -trainer_elite_four_flint -trainer_elite_four_lucian -trainer_camper_curtis -trainer_camper_drew -trainer_champion_cynthia -trainer_ace_trainer_sergio -trainer_ace_trainer_isaiah -trainer_ace_trainer_savannah -trainer_ace_trainer_alicia -trainer_collector_douglas -trainer_collector_brady -trainer_collector_ivan -trainer_collector_fernando -trainer_collector_edwin -trainer_dragon_tamer_hayden -trainer_ace_trainer_dennis -trainer_ace_trainer_cesar -trainer_ace_trainer_allen -trainer_ace_trainer_zachery -trainer_ace_trainer_ruben -trainer_ace_trainer_breanna -trainer_ace_trainer_catherine -trainer_ace_trainer_destiny -trainer_ace_trainer_jamie -trainer_ace_trainer_maya -trainer_psychic_maxwell -trainer_psychic_brittney -trainer_belle_and_pa_ava_and_matt -trainer_unknown_291 -trainer_rancher_marco -trainer_fisherman_erick -trainer_twins_emma_and_lil -trainer_commander_mars_valley_windworks -trainer_galactic_grunt_floaroma_meadow_1 -trainer_galactic_grunt_floaroma_meadow_2 -trainer_galactic_grunt_valley_windworks_2 -trainer_galactic_grunt_valley_windworks_3 -trainer_guitarist_tony -trainer_guitarist_jerry -trainer_guitarist_preston -trainer_guitarist_lonnie -trainer_ruin_maniac_calvin -trainer_ruin_maniac_larry -trainer_jogger_wyatt -trainer_jogger_craig -trainer_jogger_raul -trainer_black_belt_colby -trainer_black_belt_darren -trainer_black_belt_rafael -trainer_black_belt_jeffery -trainer_black_belt_carl -trainer_black_belt_ricky -trainer_leader_gardenia -trainer_leader_wake -trainer_leader_maylene -trainer_leader_fantina -trainer_leader_candice -trainer_leader_volkner -trainer_unknown_321 -trainer_lass_madeline -trainer_lass_kaitlin -trainer_lass_caroline -trainer_lass_molly -trainer_hiker_louis -trainer_parasol_lady_alexa -trainer_parasol_lady_sabrina -trainer_picnicker_diana -trainer_picnicker_cheyenne -trainer_poke_kid_meghan -trainer_policeman_danny -trainer_policeman_thomas -trainer_unknown_334 -trainer_rich_boy_trey -trainer_unknown_336 -trainer_sailor_marc -trainer_sailor_skyler -trainer_sailor_damian -trainer_school_kid_chance -trainer_school_kid_forrest -trainer_school_kid_harrison -trainer_school_kid_mackenzie -trainer_school_kid_tiera -trainer_school_kid_christine -trainer_beauty_cyndy -trainer_unknown_347 -trainer_beauty_lindsay -trainer_unknown_349 -trainer_unknown_350 -trainer_unknown_351 -trainer_unknown_352 -trainer_unknown_353 -trainer_unknown_354 -trainer_youngster_dallas -trainer_youngster_sebastian -trainer_youngster_donny -trainer_tuber_trenton -trainer_tuber_conner -trainer_tuber_mariel -trainer_tuber_holly -trainer_veteran_armando -trainer_unknown_363 -trainer_unknown_364 -trainer_unknown_365 -trainer_waitress_kati -trainer_worker_gerardo -trainer_unknown_368 -trainer_unknown_369 -trainer_unknown_370 -trainer_unknown_371 -trainer_battle_girl_tyler -trainer_bird_keeper_autumn -trainer_unknown_374 -trainer_unknown_375 -trainer_unknown_376 -trainer_camper_zackary -trainer_camper_lawrence -trainer_camper_diego -trainer_camper_parker -trainer_collector_dean -trainer_collector_jamal -trainer_collector_terry -trainer_unknown_384 -trainer_unknown_385 -trainer_dragon_tamer_joe -trainer_unknown_387 -trainer_ace_trainer_jonah -trainer_ace_trainer_micah -trainer_ace_trainer_arthur -trainer_unknown_391 -trainer_ace_trainer_brenda -trainer_ace_trainer_brandi -trainer_ace_trainer_clarice -trainer_psychic_kody -trainer_psychic_landon -trainer_psychic_deandre -trainer_psychic_rachael -trainer_psychic_desiree -trainer_psychic_kendra -trainer_fisherman_walter -trainer_unknown_402 -trainer_galactic_boss_cyrus_galactic_hq -trainer_galactic_boss_cyrus_distortion_world -trainer_commander_mars_lake_verity -trainer_commander_jupiter_team_galactic_eterna_building -trainer_commander_jupiter_spear_pillar -trainer_commander_saturn_valor_cavern -trainer_commander_saturn_galactic_hq -trainer_galactic_grunt_team_galactic_eterna_building_1f_1 -trainer_unknown_411 -trainer_galactic_grunt_team_galactic_eterna_building_2f_1 -trainer_unknown_413 -trainer_galactic_grunt_jubilife_city_1 -trainer_galactic_grunt_jubilife_city_2 -trainer_galactic_grunt_celestic_town -trainer_galactic_grunt_lake_valor_1 -trainer_galactic_grunt_lake_valor_2 -trainer_galactic_grunt_lake_verity_1 -trainer_galactic_grunt_lake_verity_3 -trainer_galactic_grunt_team_galactic_eterna_building_1f_2 -trainer_galactic_grunt_team_galactic_eterna_building_2f_2 -trainer_galactic_grunt_team_galactic_eterna_building_3f -trainer_unknown_424 -trainer_galactic_grunt_lake_valor_3 -trainer_galactic_grunt_lake_verity_2 -trainer_galactic_grunt_lake_verity_4 -trainer_galactic_grunt_galactic_hq_1f -trainer_unknown_429 -trainer_galactic_grunt_galactic_hq_2f_3 -trainer_unknown_431 -trainer_unknown_432 -trainer_unknown_433 -trainer_unknown_434 -trainer_unknown_435 -trainer_unknown_436 -trainer_unknown_437 -trainer_unknown_438 -trainer_unknown_439 -trainer_unknown_440 -trainer_unknown_441 -trainer_ruin_maniac_harry -trainer_ruin_maniac_gerald -trainer_black_belt_miles -trainer_black_belt_kendal -trainer_black_belt_eddie -trainer_black_belt_willie -trainer_unknown_448 -trainer_unknown_449 -trainer_lass_cassidy -trainer_hiker_theodore -trainer_hiker_damon -trainer_hiker_maurice -trainer_hiker_reginald -trainer_hiker_lorenzo -trainer_picnicker_karina -trainer_picnicker_summer -trainer_picnicker_tori -trainer_picnicker_ana -trainer_unknown_460 -trainer_unknown_461 -trainer_unknown_462 -trainer_unknown_463 -trainer_unknown_464 -trainer_unknown_465 -trainer_unknown_466 -trainer_unknown_467 -trainer_unknown_468 -trainer_unknown_469 -trainer_rival_route_209_piplup -trainer_rival_route_209_turtwig -trainer_rival_route_209_chimchar -trainer_rival_pastoria_city_piplup -trainer_rival_pastoria_city_turtwig -trainer_rival_pastoria_city_chimchar -trainer_rival_canalave_city_piplup -trainer_rival_canalave_city_turtwig -trainer_rival_canalave_city_chimchar -trainer_rival_pokemon_league_piplup -trainer_rival_pokemon_league_turtwig -trainer_rival_pokemon_league_chimchar -trainer_sailor_zachariah -trainer_sailor_samson -trainer_unknown_484 -trainer_unknown_485 -trainer_scientist_shaun -trainer_unknown_487 -trainer_ninja_boy_fabian -trainer_ninja_boy_brennan -trainer_ninja_boy_bruce -trainer_beauty_devon -trainer_beauty_nicola -trainer_unknown_493 -trainer_swimmer_claire -trainer_unknown_495 -trainer_youngster_wayne -trainer_tuber_jacky -trainer_tuber_caitlyn -trainer_veteran_terrell -trainer_veteran_brenden -trainer_unknown_501 -trainer_unknown_502 -trainer_worker_noel -trainer_worker_braden -trainer_worker_brendon -trainer_worker_quentin -trainer_galactic_grunt_galactic_hq_b2f_1 -trainer_galactic_grunt_galactic_hq_b2f_2 -trainer_galactic_grunt_galactic_hq_3f_1 -trainer_galactic_grunt_galactic_hq_2f_1 -trainer_unknown_511 -trainer_galactic_grunt_galactic_hq_3f_2 -trainer_galactic_grunt_galactic_hq_2f_2 -trainer_galactic_grunt_galactic_hq_3f_3 -trainer_galactic_grunt_mt_coronet_3f_1 -trainer_galactic_grunt_mt_coronet_4f_1 -trainer_galactic_grunt_mt_coronet_4f_2 -trainer_galactic_grunt_mt_coronet_tunnel_room_1 -trainer_galactic_grunt_mt_coronet_tunnel_room_2 -trainer_galactic_grunt_mt_coronet_5f_1 -trainer_galactic_grunt_spear_pillar_1 -trainer_galactic_grunt_galactic_hq_3f_4 -trainer_galactic_grunt_mt_coronet__3f_1 -trainer_galactic_grunt_mt_coronet_tunnel_room_3 -trainer_galactic_grunt_mt_coronet_5f_2 -trainer_galactic_grunt_mt_coronet_6f -trainer_galactic_grunt_spear_pillar_2 -trainer_commander_mars_spear_pillar -trainer_roughneck_kirby -trainer_pokefan_leonard -trainer_pokefan_rebekah -trainer_youngster_oliver -trainer_belle_and_pa_beth_and_bob -trainer_young_couple_mike_and_nat -trainer_aroma_lady_alison -trainer_artist_ismael -trainer_breeder_kaylee -trainer_cameraman_darryl -trainer_collector_eugene -trainer_pokefan_meredith -trainer_pi_kendrick -trainer_gentleman_leonardo -trainer_socialite_rebecca -trainer_lass_blythe -trainer_rich_boy_roman -trainer_lady_kylie -trainer_reporters_valerie -trainer_school_kid_esteban -trainer_scientist_emilio -trainer_beauty_gabriella -trainer_beauty_harley -trainer_veteran_emanuel -trainer_ruin_maniac_karl -trainer_bird_keeper_audrey -trainer_bird_keeper_geneva -trainer_bird_keeper_krystal -trainer_dragon_tamer_geoffrey -trainer_dragon_tamer_darien -trainer_dragon_tamer_keegan -trainer_dragon_tamer_stanley -trainer_dragon_tamer_drake -trainer_dragon_tamer_kenny -trainer_ace_trainer_rodolfo -trainer_ace_trainer_saul -trainer_ace_trainer_jose -trainer_ace_trainer_felix -trainer_ace_trainer_quinn -trainer_ace_trainer_graham -trainer_ace_trainer_keenan -trainer_ace_trainer_stefan -trainer_ace_trainer_skylar -trainer_ace_trainer_abel -trainer_ace_trainer_deanna -trainer_ace_trainer_moira -trainer_ace_trainer_dana -trainer_ace_trainer_mikayla -trainer_ace_trainer_meagan -trainer_ace_trainer_sandra -trainer_ace_trainer_kassandra -trainer_ace_trainer_jasmin -trainer_ace_trainer_natasha -trainer_ace_trainer_monique -trainer_psychic_corbin -trainer_psychic_sterling -trainer_psychic_daisy -trainer_psychic_chelsey -trainer_black_belt_davon -trainer_black_belt_griffin -trainer_black_belt_ray -trainer_black_belt_jarrett -trainer_ranger_kyler -trainer_ranger_deshawn -trainer_ranger_dwayne -trainer_ranger_ashlee -trainer_ranger_felicia -trainer_ranger_krista -trainer_swimmer_glenn -trainer_swimmer_kurt -trainer_swimmer_sam -trainer_swimmer_wade -trainer_swimmer_joanna -trainer_swimmer_sophia -trainer_swimmer_mallory -trainer_swimmer_lydia -trainer_unknown_605 -trainer_veteran_harlan -trainer_rival_spear_pillar_piplup -trainer_cheryl_eterna_forest -trainer_riley_iron_island -trainer_marley_victory_road -trainer_buck_stark_mountain -trainer_mira_wayward_cave -trainer_lucas_jubilife_city_chimchar -trainer_lucas_jubilife_city_piplup -trainer_lucas_jubilife_city_turtwig -trainer_dawn_jubilife_city_chimchar -trainer_dawn_jubilife_city_piplup -trainer_dawn_jubilife_city_turtwig -trainer_rival_spear_pillar_turtwig -trainer_rival_spear_pillar_chimchar -trainer_lucas_veilstone_city_chimchar -trainer_lucas_veilstone_city_piplup -trainer_lucas_veilstone_city_turtwig -trainer_dawn_veilstone_city_chimchar -trainer_dawn_veilstone_city_piplup -trainer_dawn_veilstone_city_turtwig -trainer_aroma_lady_elizabeth_rematch_1 -trainer_aroma_lady_elizabeth_rematch_2 -trainer_aroma_lady_elizabeth_rematch_3 -trainer_artist_william_rematch_1 -trainer_artist_william_rematch_2 -trainer_artist_william_rematch_3 -trainer_battle_girl_helen_rematch_1 -trainer_battle_girl_helen_rematch_2 -trainer_battle_girl_helen_rematch_3 -trainer_bird_keeper_brianna_rematch_1 -trainer_bird_keeper_brianna_rematch_2 -trainer_bird_keeper_audrey_rematch -trainer_breeder_albert_rematch_1 -trainer_breeder_albert_rematch_2 -trainer_breeder_albert_rematch_3 -trainer_breeder_jennifer_rematch_1 -trainer_breeder_jennifer_rematch_2 -trainer_breeder_jennifer_rematch_3 -trainer_camper_zackary_rematch_1 -trainer_camper_zackary_rematch_2 -trainer_camper_zackary_rematch_3 -trainer_ace_trainer_dalton_rematch -trainer_ace_trainer_olivia_rematch -trainer_collector_ivan_rematch -trainer_unknown_651 -trainer_unknown_652 -trainer_cyclist_john_rematch_1 -trainer_cyclist_john_rematch_2 -trainer_cyclist_john_rematch_3 -trainer_cyclist_kayla_rematch_1 -trainer_cyclist_kayla_rematch_2 -trainer_cyclist_kayla_rematch_3 -trainer_dragon_tamer_patrick_rematch_1 -trainer_dragon_tamer_patrick_rematch_2 -trainer_dragon_tamer_hayden_rematch -trainer_dragon_tamer_geoffrey_rematch -trainer_ace_trainer_jake_rematch -trainer_ace_trainer_dennis_rematch_1 -trainer_ace_trainer_dennis_rematch_2 -trainer_ace_trainer_rodolfo_rematch -trainer_ace_trainer_saul_rematch -trainer_ace_trainer_shannon_rematch -trainer_ace_trainer_maya_rematch_1 -trainer_ace_trainer_maya_rematch_2 -trainer_ace_trainer_deanna_rematch -trainer_ace_trainer_moira_rematch -trainer_psychic_mitchell_rematch_1 -trainer_psychic_mitchell_rematch_2 -trainer_psychic_maxwell_rematch -trainer_psychic_corbin_rematch -trainer_psychic_abigail_rematch_1 -trainer_psychic_abigail_rematch_2 -trainer_psychic_brittney_rematch -trainer_psychic_daisy_rematch -trainer_rancher_marco_rematch_1 -trainer_rancher_marco_rematch_2 -trainer_fisherman_joseph_rematch_1 -trainer_fisherman_joseph_rematch_2 -trainer_fisherman_miguel_rematch -trainer_fisherman_alec_rematch -trainer_twins_teri_and_tia_rematch_1 -trainer_twins_teri_and_tia_rematch_2 -trainer_pi_carlos_rematch_1 -trainer_pi_carlos_rematch_2 -trainer_gentleman_jeremy_rematch_1 -trainer_gentleman_jeremy_rematch_2 -trainer_gentleman_jeremy_rematch_3 -trainer_guitarist_tony_rematch -trainer_ruin_maniac_harry_rematch_1 -trainer_ruin_maniac_harry_rematch_2 -trainer_jogger_craig_rematch_1 -trainer_jogger_craig_rematch_2 -trainer_black_belt_philip_rematch -trainer_black_belt_davon_rematch -trainer_socialite_reina_rematch_1 -trainer_socialite_reina_rematch_2 -trainer_lass_samantha_rematch_1 -trainer_lass_samantha_rematch_2 -trainer_lass_samantha_rematch_3 -trainer_lass_madeline_rematch_1 -trainer_lass_madeline_rematch_2 -trainer_lass_madeline_rematch_3 -trainer_hiker_theodore_rematch_1 -trainer_hiker_theodore_rematch_2 -trainer_hiker_theodore_rematch_3 -trainer_bug_catcher_brandon_rematch_1 -trainer_bug_catcher_brandon_rematch_2 -trainer_bug_catcher_brandon_rematch_3 -trainer_parasol_lady_alexa_rematch_1 -trainer_parasol_lady_alexa_rematch_2 -trainer_parasol_lady_alexa_rematch_3 -trainer_picnicker_karina_rematch_1 -trainer_picnicker_karina_rematch_2 -trainer_picnicker_karina_rematch_3 -trainer_poke_kid_danielle_rematch_1 -trainer_poke_kid_danielle_rematch_2 -trainer_poke_kid_danielle_rematch_3 -trainer_policeman_danny_rematch_1 -trainer_policeman_danny_rematch_2 -trainer_policeman_danny_rematch_3 -trainer_rich_boy_trey_rematch_1 -trainer_rich_boy_trey_rematch_2 -trainer_lady_melissa_rematch_1 -trainer_lady_melissa_rematch_2 -trainer_lady_melissa_rematch_3 -trainer_ranger_taylor_rematch_1 -trainer_ranger_taylor_rematch_2 -trainer_ranger_taylor_rematch_3 -trainer_ranger_kyler_rematch -trainer_ranger_allison_rematch_1 -trainer_ranger_allison_rematch_2 -trainer_ranger_allison_rematch_3 -trainer_ranger_ashlee_rematch -trainer_sailor_marc_rematch_1 -trainer_sailor_marc_rematch_2 -trainer_sailor_zachariah_rematch -trainer_scientist_shaun_rematch_1 -trainer_scientist_shaun_rematch_2 -trainer_scientist_shaun_rematch_3 -trainer_ninja_boy_zach_rematch_1 -trainer_ninja_boy_zach_rematch_2 -trainer_ninja_boy_zach_rematch_3 -trainer_beauty_cyndy_rematch_1 -trainer_beauty_cyndy_rematch_2 -trainer_skier_edward_rematch_1 -trainer_skier_edward_rematch_2 -trainer_skier_bjorn_rematch_1 -trainer_skier_bjorn_rematch_2 -trainer_skier_andrea_rematch_1 -trainer_skier_andrea_rematch_2 -trainer_skier_madison_rematch_1 -trainer_skier_madison_rematch_2 -trainer_swimmer_wesley_rematch -trainer_swimmer_francisco_rematch -trainer_swimmer_glenn_rematch -trainer_swimmer_miranda_rematch -trainer_swimmer_crystal_rematch -trainer_swimmer_joanna_rematch -trainer_youngster_tristan_rematch_1 -trainer_youngster_tristan_rematch_2 -trainer_youngster_tristan_rematch_3 -trainer_youngster_dallas_rematch_1 -trainer_youngster_dallas_rematch_2 -trainer_youngster_dallas_rematch_3 -trainer_tuber_jared_rematch_1 -trainer_tuber_jared_rematch_2 -trainer_tuber_chelsea_rematch_1 -trainer_veteran_brian_rematch_1 -trainer_tuber_chelsea_rematch_2 -trainer_veteran_brian_rematch_2 -trainer_veteran_armando_rematch -trainer_unknown_778 -trainer_unknown_779 -trainer_unknown_780 -trainer_unknown_781 -trainer_unknown_782 -trainer_unknown_783 -trainer_unknown_784 -trainer_unknown_785 -trainer_unknown_786 -trainer_unknown_787 -trainer_unknown_788 -trainer_unknown_789 -trainer_unknown_790 -trainer_unknown_791 -trainer_unknown_792 -trainer_unknown_793 -trainer_unknown_794 -trainer_unknown_795 -trainer_unknown_796 -trainer_unknown_797 -trainer_unknown_798 -trainer_unknown_799 -trainer_unknown_800 -trainer_unknown_801 -trainer_unknown_802 -trainer_unknown_803 -trainer_unknown_804 -trainer_unknown_805 -trainer_unknown_806 -trainer_unknown_807 -trainer_unknown_808 -trainer_unknown_809 -trainer_unknown_810 -trainer_unknown_811 -trainer_unknown_812 -trainer_unknown_813 -trainer_unknown_814 -trainer_unknown_815 -trainer_unknown_816 -trainer_unknown_817 -trainer_unknown_818 -trainer_unknown_819 -trainer_unknown_820 -trainer_unknown_821 -trainer_unknown_822 -trainer_unknown_823 -trainer_unknown_824 -trainer_unknown_825 -trainer_unknown_828 -trainer_ace_trainer_anton -trainer_ace_trainer_brenna -trainer_scientist_darrius -trainer_scientist_fredrick -trainer_scientist_travon -trainer_poke_kid_janet -trainer_unknown_833 -trainer_unknown_834 -trainer_galactic_grunt_iron_island_1 -trainer_galactic_grunt_iron_island_2 -trainer_rival_survival_area_1_piplup -trainer_rival_survival_area_1_turtwig -trainer_rival_survival_area_1_chimchar -trainer_unknown_840 -trainer_unknown_841 -trainer_unknown_842 -trainer_galactic_grunt_valley_windworks_1 -trainer_worker_dillan -trainer_worker_holden -trainer_worker_conrad -trainer_galactic_grunt_valor_lakefront -trainer_galactic_grunt_veilstone_city_1 -trainer_galactic_grunt_veilstone_city_2 -trainer_rival_route_201_piplup -trainer_rival_route_201_turtwig -trainer_rival_route_201_chimchar -trainer_leader_candice_rematch -trainer_leader_maylene_rematch -trainer_leader_volkner_rematch -trainer_leader_byron_rematch -trainer_leader_gardenia_rematch -trainer_leader_roark_rematch -trainer_leader_wake_rematch -trainer_leader_fantina_rematch -trainer_riley_battleground -trainer_buck_battleground -trainer_marley_battleground -trainer_mira_battleground -trainer_cheryl_battleground -trainer_elite_four_aaron_rematch -trainer_elite_four_bertha_rematch -trainer_elite_four_flint_rematch -trainer_elite_four_lucian_rematch -trainer_champion_cynthia_rematch -trainer_rival_survival_area_2_piplup -trainer_rival_survival_area_2_turtwig -trainer_rival_survival_area_2_chimchar -trainer_cameraman_tevin -trainer_cameraman_tevin_rematch_1 -trainer_cameraman_tevin_rematch_2 -trainer_guitarist_arturo -trainer_guitarist_arturo_rematch_1 -trainer_guitarist_arturo_rematch_2 -trainer_idol_grace -trainer_idol_grace_rematch_1 -trainer_idol_grace_rematch_2 -trainer_interviewers_roxy_and_oli -trainer_interviewers_roxy_and_oli_rematch_1 -trainer_interviewers_roxy_and_oli_rematch_2 -trainer_clown_lee -trainer_clown_lee_rematch_1 -trainer_clown_lee_rematch_2 -trainer_poke_kid_ariel -trainer_poke_kid_ariel_rematch_1 -trainer_poke_kid_ariel_rematch_2 -trainer_rich_boy_liam -trainer_lady_celeste -trainer_reporters_kinsey -trainer_reporters_kinsey_rematch_1 -trainer_reporters_kinsey_rematch_2 -trainer_maid_belinda -trainer_maid_sophie -trainer_maid_emily -trainer_maid_elena -trainer_maid_clare -trainer_unknown_902 -trainer_unknown_903 -trainer_unknown_904 -trainer_unknown_905 -trainer_cameraman_tevin_rematch_3 -trainer_guitarist_arturo_rematch_3 -trainer_idol_grace_rematch_3 -trainer_interviewers_roxy_and_oli_rematch_3 -trainer_clown_lee_rematch_3 -trainer_poke_kid_ariel_rematch_3 -trainer_reporters_kinsey_rematch_3 -trainer_galactic_boss_cyrus_celestic_town_ruins -trainer_cameraman_tevin_rematch_4 -trainer_guitarist_arturo_rematch_4 -trainer_idol_grace_rematch_4 -trainer_interviewers_roxy_and_oli_rematch_4 -trainer_clown_lee_rematch_4 -trainer_poke_kid_ariel_rematch_4 -trainer_reporters_kinsey_rematch_4 -trainer_leader_volkner_fight_area -trainer_elite_four_flint_fight_area -trainer_rival_fight_area_piplup -trainer_rival_fight_area_turtwig -trainer_rival_fight_area_chimchar -trainer_commander_mars_stark_mountain -trainer_commander_jupiter_stark_mountain diff --git a/src/battle/battle_controller.c b/src/battle/battle_controller.c index 2c94b843b0..fa57aff72a 100644 --- a/src/battle/battle_controller.c +++ b/src/battle/battle_controller.c @@ -17,7 +17,7 @@ #include "generated/sdat.h" #include "struct_decls/battle_system.h" -#include "struct_defs/trainer_data.h" +#include "struct_defs/trainer.h" #include "battle/ai_context.h" #include "battle/battle_context.h" @@ -4268,7 +4268,7 @@ static BOOL BattleController_CheckBattleOver(BattleSystem *battleSys, BattleCont || (battleResult == BATTLE_RESULT_WIN && (battleType & BATTLE_TYPE_FRONTIER) && (battleType & BATTLE_TYPE_LINK) == FALSE)) { Trainer *trainer = BattleSystem_GetTrainer(battleSys, BATTLER_ENEMY_1); - switch (trainer->class) { + switch (trainer->header.trainerType) { case TRAINER_CLASS_LEADER_ROARK: case TRAINER_CLASS_LEADER_GARDENIA: case TRAINER_CLASS_LEADER_WAKE: diff --git a/src/battle/battle_display.c b/src/battle/battle_display.c index 91487f581e..eb10b18a24 100644 --- a/src/battle/battle_display.c +++ b/src/battle/battle_display.c @@ -15,7 +15,7 @@ #include "struct_defs/battle_io.h" #include "struct_defs/sprite_animation_frame.h" #include "struct_defs/struct_0200D0F4.h" -#include "struct_defs/trainer_data.h" +#include "struct_defs/trainer.h" #include "battle/battle_context.h" #include "battle/battle_io.h" @@ -554,7 +554,7 @@ void ov16_0225D360(BattleSystem *param0, BattlerData *param1, UnkStruct_ov16_022 { Trainer *trainer = BattleSystem_GetTrainer(param0, param1->battler); v0->unk_0B = 0; - v0->unk_0C = sub_020788D0(ov16_02264768(param0, param1->battler, trainer->class)); + v0->unk_0C = sub_020788D0(ov16_02264768(param0, param1->battler, trainer->header.trainerType)); } } diff --git a/src/battle/battle_io.c b/src/battle/battle_io.c index 0f8e9721c2..aba95aad46 100644 --- a/src/battle/battle_io.c +++ b/src/battle/battle_io.c @@ -419,7 +419,7 @@ void BattleIO_SetTrainerEncounter(BattleSystem *param0, int param1) UnkStruct_ov16_02265124 v0; v0.unk_00 = 8; - v0.unk_02 = param0->trainers[param1].class; + v0.unk_02 = param0->trainers[param1].header.trainerType; v0.unk_01 = param0->unk_A8[param1]; SendMessage(param0, 1, param1, &v0, sizeof(UnkStruct_ov16_02265124)); @@ -448,7 +448,7 @@ void BattleIO_SlideTrainerIn(BattleSystem *param0, int param1, int param2) UnkStruct_ov16_022651A8 v0; v0.unk_00 = 11; - v0.unk_02 = param0->trainers[param1].class; + v0.unk_02 = param0->trainers[param1].header.trainerType; v0.unk_01 = param0->unk_A8[param1]; v0.unk_04 = param2; diff --git a/src/battle/battle_script.c b/src/battle/battle_script.c index eb032b5a7a..c6d35b97da 100644 --- a/src/battle/battle_script.c +++ b/src/battle/battle_script.c @@ -26,7 +26,7 @@ #include "struct_defs/struct_0200D0F4.h" #include "struct_defs/struct_020127E8.h" #include "struct_defs/struct_0208737C.h" -#include "struct_defs/trainer_data.h" +#include "struct_defs/trainer.h" #include "battle/battle_context.h" #include "battle/battle_controller.h" @@ -3879,40 +3879,40 @@ static u32 BattleScript_CalcPrizeMoney(BattleSystem *battleSys, BattleContext *b Trainer_Load(battleSys->trainerIDs[battler], &trainer); Trainer_LoadParty(battleSys->trainerIDs[battler], rawParty); - switch (trainer.type) { + switch (trainer.header.monDataType) { default: case TRDATATYPE_BASE: { TrainerMonBase *party = (TrainerMonBase *)rawParty; - lastLevel = party[trainer.partySize - 1].level; + lastLevel = party[trainer.header.partySize - 1].level; break; } case TRDATATYPE_WITH_MOVES: { TrainerMonWithMoves *party = (TrainerMonWithMoves *)rawParty; - lastLevel = party[trainer.partySize - 1].level; + lastLevel = party[trainer.header.partySize - 1].level; break; } case TRDATATYPE_WITH_ITEM: { TrainerMonWithItem *party = (TrainerMonWithItem *)rawParty; - lastLevel = party[trainer.partySize - 1].level; + lastLevel = party[trainer.header.partySize - 1].level; break; } case TRDATATYPE_WITH_MOVES_AND_ITEM: { TrainerMonWithMovesAndItem *party = (TrainerMonWithMovesAndItem *)rawParty; - lastLevel = party[trainer.partySize - 1].level; + lastLevel = party[trainer.header.partySize - 1].level; break; } } u32 prize; if ((battleSys->battleType & BATTLE_TYPE_TAG) || battleSys->battleType == BATTLE_TYPE_TRAINER_WITH_AI_PARTNER) { - prize = lastLevel * 4 * battleCtx->prizeMoneyMul * sTrainerClassPrizeMul[trainer.class]; + prize = lastLevel * 4 * battleCtx->prizeMoneyMul * sTrainerClassPrizeMul[trainer.header.trainerType]; } else if (battleSys->battleType & 0x2) { - prize = lastLevel * 4 * battleCtx->prizeMoneyMul * 2 * sTrainerClassPrizeMul[trainer.class]; + prize = lastLevel * 4 * battleCtx->prizeMoneyMul * 2 * sTrainerClassPrizeMul[trainer.header.trainerType]; } else { - prize = lastLevel * 4 * battleCtx->prizeMoneyMul * sTrainerClassPrizeMul[trainer.class]; + prize = lastLevel * 4 * battleCtx->prizeMoneyMul * sTrainerClassPrizeMul[trainer.header.trainerType]; } Heap_FreeToHeap(rawParty); diff --git a/src/battle/ov16_0223B140.c b/src/battle/ov16_0223B140.c index f3b0dc180c..9005c32993 100644 --- a/src/battle/ov16_0223B140.c +++ b/src/battle/ov16_0223B140.c @@ -1386,7 +1386,7 @@ static void ov16_0223C2C0(BattleSystem *param0, FieldBattleDTO *param1) } if (param0->battleType & 0x1) { - if ((ov16_0223CD3C(param0->trainers[1].class) == 1) || (ov16_0223CD3C(param0->trainers[3].class) == 1)) { + if ((ov16_0223CD3C(param0->trainers[1].header.trainerType) == 1) || (ov16_0223CD3C(param0->trainers[3].header.trainerType) == 1)) { for (v0 = 0; v0 < Party_GetCurrentCount(param0->parties[0]); v0++) { v3 = Party_GetPokemonBySlotIndex(param0->parties[0], v0); Pokemon_UpdateFriendship(v3, 3, param0->unk_2404); diff --git a/src/battle/ov16_0223DF00.c b/src/battle/ov16_0223DF00.c index 08a0a05e19..4492d7c436 100644 --- a/src/battle/ov16_0223DF00.c +++ b/src/battle/ov16_0223DF00.c @@ -22,7 +22,7 @@ #include "struct_defs/battle_system.h" #include "struct_defs/chatot_cry.h" #include "struct_defs/struct_0200D0F4.h" -#include "struct_defs/trainer_data.h" +#include "struct_defs/trainer.h" #include "battle/battle_context.h" #include "battle/battle_display.h" @@ -1550,7 +1550,7 @@ int ov16_0223F6F0(BattleSystem *battleSystem, u16 param1) u16 BattleSystem_TrainerItems(BattleSystem *battleSystem, int param1, int param2) { - return battleSystem->trainers[param1].items[param2]; + return battleSystem->trainers[param1].header.items[param2]; } u32 BattleSystem_RecordingStopped(BattleSystem *battleSystem) diff --git a/src/battle/trainer_ai/trainer_ai.c b/src/battle/trainer_ai/trainer_ai.c index 33ed3f1763..e60463bb6a 100644 --- a/src/battle/trainer_ai/trainer_ai.c +++ b/src/battle/trainer_ai/trainer_ai.c @@ -353,7 +353,7 @@ void TrainerAI_Init(BattleSystem *battleSys, BattleContext *battleCtx, u8 battle if (battleSys->battleType & BATTLE_TYPE_ROAMER) { AI_CONTEXT.thinkingMask = AI_FLAG_ROAMING_POKEMON; } else { - AI_CONTEXT.thinkingMask = battleSys->trainers[battler].aiMask; + AI_CONTEXT.thinkingMask = battleSys->trainers[battler].header.aiMask; } // force double-battle strategies, if applicable diff --git a/src/enc_effects.c b/src/enc_effects.c index 22b4931a0f..73544689ae 100644 --- a/src/enc_effects.c +++ b/src/enc_effects.c @@ -126,7 +126,7 @@ static u32 EncEffects_GetEffectPair(const FieldBattleDTO *dto) u32 battleType = dto->battleType; if (battleType & BATTLE_TYPE_TRAINER) { - u32 trainerEffect = EncEffects_TrainerClassEffect(dto->trainer[1].class); + u32 trainerEffect = EncEffects_TrainerClassEffect(dto->trainer[1].header.trainerType); if (battleType & BATTLE_TYPE_FRONTIER) { if (trainerEffect == ENCEFF_FRONTIER_BRAIN) { diff --git a/src/field_battle_data_transfer.c b/src/field_battle_data_transfer.c index c9f36bf295..30fa530e81 100644 --- a/src/field_battle_data_transfer.c +++ b/src/field_battle_data_transfer.c @@ -18,7 +18,7 @@ #include "struct_defs/chatot_cry.h" #include "struct_defs/struct_0202610C.h" #include "struct_defs/struct_0205EC34.h" -#include "struct_defs/trainer_data.h" +#include "struct_defs/trainer.h" #include "applications/pokemon_summary_screen/main.h" #include "field/field_system.h" @@ -404,7 +404,7 @@ void FieldBattleDTO_InitWithPartyOrder(FieldBattleDTO *dto, const FieldSystem *f int unionAppearance = TrainerInfo_Appearance(trainerInfo); int unionGender = TrainerInfo_Gender(trainerInfo); - dto->trainer[BATTLER_PLAYER_1].class = sub_0205CA14(unionGender, unionAppearance, 1); + dto->trainer[BATTLER_PLAYER_1].header.trainerType = sub_0205CA14(unionGender, unionAppearance, 1); CharCode_Copy(dto->trainer[BATTLER_PLAYER_1].name, TrainerInfo_Name(dto->trainerInfo[BATTLER_PLAYER_1])); dto->trainer[BATTLER_PLAYER_2] = dto->trainer[BATTLER_PLAYER_1]; } else { @@ -548,7 +548,7 @@ BOOL CheckPlayerDidNotCaptureWildMon(u32 battleResult) void FieldBattleDTO_CopyPlayerInfoToTrainerData(FieldBattleDTO *dto) { - dto->trainer[BATTLER_PLAYER_1].class = TrainerInfo_Gender(dto->trainerInfo[BATTLER_PLAYER_1]); + dto->trainer[BATTLER_PLAYER_1].header.trainerType = TrainerInfo_Gender(dto->trainerInfo[BATTLER_PLAYER_1]); CharCode_Copy(dto->trainer[BATTLER_PLAYER_1].name, TrainerInfo_Name(dto->trainerInfo[BATTLER_PLAYER_1])); dto->trainer[BATTLER_PLAYER_2] = dto->trainer[BATTLER_PLAYER_1]; } diff --git a/src/journal.c b/src/journal.c index 921cd30089..7efad8b199 100644 --- a/src/journal.c +++ b/src/journal.c @@ -7,6 +7,7 @@ #include "generated/journal_location_events.h" #include "generated/journal_online_events.h" #include "generated/map_headers.h" +#include "generated/trainers.h" #include "heap.h" #include "map_header.h" @@ -16,7 +17,6 @@ #include "trainer_info.h" #include "res/text/bank/location_names.h" -#include "res/trainers/trdata.naix" #define LOCATION_EVENT(locationID, trainerID, eventType) ((locationID << 16) | ((trainerID & 0x3ff) << 6) | (eventType & 0x3f)) @@ -113,14 +113,14 @@ static const MapInfo sMapsInfo[] = { }; static const GymInfo sGymsInfo[] = { - { trainer_leader_roark, MAP_HEADER_OREBURGH_CITY_GYM, BADGE_ID_COAL }, - { trainer_leader_gardenia, MAP_HEADER_ETERNA_CITY_GYM, BADGE_ID_FOREST }, - { trainer_leader_wake, MAP_HEADER_PASTORIA_CITY_GYM, BADGE_ID_FEN }, - { trainer_leader_maylene, MAP_HEADER_VEILSTONE_CITY_GYM, BADGE_ID_COBBLE }, - { trainer_leader_fantina, MAP_HEADER_HEARTHOME_CITY_GYM_ENTRANCE_ROOM, BADGE_ID_RELIC }, - { trainer_leader_candice, MAP_HEADER_SNOWPOINT_CITY_GYM, BADGE_ID_ICICLE }, - { trainer_leader_byron, MAP_HEADER_CANALAVE_CITY_GYM, BADGE_ID_MINE }, - { trainer_leader_volkner, MAP_HEADER_SUNYSHORE_CITY_GYM_ROOM_1, BADGE_ID_BEACON } + { TRAINER_LEADER_ROARK, MAP_HEADER_OREBURGH_CITY_GYM, BADGE_ID_COAL }, + { TRAINER_LEADER_GARDENIA, MAP_HEADER_ETERNA_CITY_GYM, BADGE_ID_FOREST }, + { TRAINER_LEADER_WAKE, MAP_HEADER_PASTORIA_CITY_GYM, BADGE_ID_FEN }, + { TRAINER_LEADER_MAYLENE, MAP_HEADER_VEILSTONE_CITY_GYM, BADGE_ID_COBBLE }, + { TRAINER_LEADER_FANTINA, MAP_HEADER_HEARTHOME_CITY_GYM_ENTRANCE_ROOM, BADGE_ID_RELIC }, + { TRAINER_LEADER_CANDICE, MAP_HEADER_SNOWPOINT_CITY_GYM, BADGE_ID_ICICLE }, + { TRAINER_LEADER_BYRON, MAP_HEADER_CANALAVE_CITY_GYM, BADGE_ID_MINE }, + { TRAINER_LEADER_VOLKNER, MAP_HEADER_SUNYSHORE_CITY_GYM_ROOM_1, BADGE_ID_BEACON } }; int Journal_SaveSize(void) @@ -1385,14 +1385,14 @@ static u8 JournalEntry_TrainerType(u32 trainerID) } } - if (trainerID == trainer_elite_four_aaron || trainerID == trainer_elite_four_aaron_rematch - || trainerID == trainer_elite_four_bertha || trainerID == trainer_elite_four_bertha_rematch - || trainerID == trainer_elite_four_flint || trainerID == trainer_elite_four_flint_rematch - || trainerID == trainer_elite_four_lucian || trainerID == trainer_elite_four_lucian_rematch) { + if (trainerID == TRAINER_ELITE_FOUR_AARON || trainerID == TRAINER_ELITE_FOUR_AARON_REMATCH + || trainerID == TRAINER_ELITE_FOUR_BERTHA || trainerID == TRAINER_ELITE_FOUR_BERTHA_REMATCH + || trainerID == TRAINER_ELITE_FOUR_FLINT || trainerID == TRAINER_ELITE_FOUR_FLINT_REMATCH + || trainerID == TRAINER_ELITE_FOUR_LUCIAN || trainerID == TRAINER_ELITE_FOUR_LUCIAN_REMATCH) { return TRAINER_TYPE_ELITE_FOUR; } - if (trainerID == trainer_champion_cynthia || trainerID == trainer_champion_cynthia_rematch) { + if (trainerID == TRAINER_CHAMPION_CYNTHIA || trainerID == TRAINER_CHAMPION_CYNTHIA_REMATCH) { return TRAINER_TYPE_CHAMPION; } diff --git a/src/overlay010/ov10_0221F800.c b/src/overlay010/ov10_0221F800.c index f45b2a416c..bf01ba5c97 100644 --- a/src/overlay010/ov10_0221F800.c +++ b/src/overlay010/ov10_0221F800.c @@ -2406,7 +2406,7 @@ static void ov10_022227A4(UnkStruct_ov10_0221F800 *param0) battleResult = param0->unk_2A - 1; if (MapHeader_IsUnionRoom(param0->unk_00->mapHeaderID) == 1) { - opponentGender1 = TrainerClass_Gender(param0->unk_00->trainer[v6 ^ 1].class); + opponentGender1 = TrainerClass_Gender(param0->unk_00->trainer[v6 ^ 1].header.trainerType); opponentName1 = Heap_AllocFromHeap(param0->unk_24, sizeof(u16) * (TRAINER_NAME_LEN + 1)); Strbuf_ToChars(param0->unk_14[sub_020362F4(v6 ^ 1)], opponentName1, TRAINER_NAME_LEN + 1); @@ -2415,7 +2415,7 @@ static void ov10_022227A4(UnkStruct_ov10_0221F800 *param0) } else { switch (sub_0203895C()) { case 1: - opponentGender1 = TrainerClass_Gender(param0->unk_00->trainer[v6 ^ 1].class); + opponentGender1 = TrainerClass_Gender(param0->unk_00->trainer[v6 ^ 1].header.trainerType); opponentName1 = Heap_AllocFromHeap(param0->unk_24, sizeof(u16) * (TRAINER_NAME_LEN + 1)); Strbuf_ToChars(param0->unk_14[sub_020362F4(v6 ^ 1)], opponentName1, TRAINER_NAME_LEN + 1); @@ -2424,7 +2424,7 @@ static void ov10_022227A4(UnkStruct_ov10_0221F800 *param0) Heap_FreeToHeap(opponentName1); break; case 2: - opponentGender1 = TrainerClass_Gender(param0->unk_00->trainer[v6 ^ 1].class); + opponentGender1 = TrainerClass_Gender(param0->unk_00->trainer[v6 ^ 1].header.trainerType); opponentName1 = Heap_AllocFromHeap(param0->unk_24, sizeof(u16) * (TRAINER_NAME_LEN + 1)); Strbuf_ToChars(param0->unk_14[sub_020362F4(v6 ^ 1)], opponentName1, TRAINER_NAME_LEN + 1); @@ -2433,7 +2433,7 @@ static void ov10_022227A4(UnkStruct_ov10_0221F800 *param0) Heap_FreeToHeap(opponentName1); break; case 3: - opponentGender1 = TrainerClass_Gender(param0->unk_00->trainer[v6 ^ 1].class); + opponentGender1 = TrainerClass_Gender(param0->unk_00->trainer[v6 ^ 1].header.trainerType); opponentName1 = Heap_AllocFromHeap(param0->unk_24, sizeof(u16) * (TRAINER_NAME_LEN + 1)); Strbuf_ToChars(param0->unk_14[sub_020362F4(v6 ^ 1)], opponentName1, TRAINER_NAME_LEN + 1); @@ -2446,14 +2446,14 @@ static void ov10_022227A4(UnkStruct_ov10_0221F800 *param0) opponentName2 = Heap_AllocFromHeap(param0->unk_24, sizeof(u16) * (TRAINER_NAME_LEN + 1)); if (ov10_02220AD0() == 1) { - opponentGender1 = TrainerClass_Gender(param0->unk_00->trainer[1].class); - opponentGender2 = TrainerClass_Gender(param0->unk_00->trainer[3].class); + opponentGender1 = TrainerClass_Gender(param0->unk_00->trainer[1].header.trainerType); + opponentGender2 = TrainerClass_Gender(param0->unk_00->trainer[3].header.trainerType); Strbuf_ToChars(param0->unk_14[1], opponentName1, TRAINER_NAME_LEN + 1); Strbuf_ToChars(param0->unk_14[3], opponentName2, TRAINER_NAME_LEN + 1); } else { - opponentGender1 = TrainerClass_Gender(param0->unk_00->trainer[0].class); - opponentGender2 = TrainerClass_Gender(param0->unk_00->trainer[2].class); + opponentGender1 = TrainerClass_Gender(param0->unk_00->trainer[0].header.trainerType); + opponentGender2 = TrainerClass_Gender(param0->unk_00->trainer[2].header.trainerType); Strbuf_ToChars(param0->unk_14[0], opponentName1, TRAINER_NAME_LEN + 1); Strbuf_ToChars(param0->unk_14[2], opponentName2, TRAINER_NAME_LEN + 1); diff --git a/src/overlay104/ov104_0222DCE0.c b/src/overlay104/ov104_0222DCE0.c index 439cd72b66..0cfe1ab0f6 100644 --- a/src/overlay104/ov104_0222DCE0.c +++ b/src/overlay104/ov104_0222DCE0.c @@ -445,7 +445,7 @@ void ov104_0222E284(FieldBattleDTO *param0, UnkStruct_ov104_0223A348_sub1 *param Pokemon *v1; param0->trainerIDs[param3] = param1->unk_00; - param0->trainer[param3].class = param1->unk_04; + param0->trainer[param3].header.trainerType = param1->unk_04; CharCode_Copy(¶m0->trainer[param3].name[0], ¶m1->unk_08[0]); diff --git a/src/overlay104/ov104_0223A0C4.c b/src/overlay104/ov104_0223A0C4.c index f0c8e8c39a..3fe6bb696f 100644 --- a/src/overlay104/ov104_0223A0C4.c +++ b/src/overlay104/ov104_0223A0C4.c @@ -944,7 +944,7 @@ FieldBattleDTO *ov104_0223A580(UnkStruct_0204AFC4 *param0, UnkStruct_ov104_02230 ov104_0223A6AC(v3, &(param0->unk_78[0]), param0->unk_0E, 1, param0->unk_04); for (v0 = 0; v0 < 4; v0++) { - v3->trainer[v0].aiMask = (0x1 | 0x2 | 0x4); + v3->trainer[v0].header.aiMask = (0x1 | 0x2 | 0x4); } switch (param0->unk_0F) { diff --git a/src/overlay104/ov104_0223A7F4.c b/src/overlay104/ov104_0223A7F4.c index 090b08dc61..74113849f1 100644 --- a/src/overlay104/ov104_0223A7F4.c +++ b/src/overlay104/ov104_0223A7F4.c @@ -381,7 +381,7 @@ FieldBattleDTO *ov104_0223ABA0(UnkStruct_ov104_0223ADA0 *param0, UnkStruct_ov104 Party_InitWithCapacity(v4->parties[1], ov104_0223AA74(param0->unk_04, 0)); for (v0 = 0; v0 < 4; v0++) { - v4->trainer[v0].aiMask = ov104_0223AEE4(param0); + v4->trainer[v0].header.aiMask = ov104_0223AEE4(param0); } v5 = Pokemon_New(11); diff --git a/src/overlay104/ov104_0223AF58.c b/src/overlay104/ov104_0223AF58.c index e48534399d..8456f8f39b 100644 --- a/src/overlay104/ov104_0223AF58.c +++ b/src/overlay104/ov104_0223AF58.c @@ -1619,7 +1619,7 @@ FieldBattleDTO *ov104_0223B250(UnkStruct_ov104_0223B5C0 *param0, UnkStruct_ov104 v2 = ov104_0223B604(param0, v6, v7); for (v1 = 0; v1 < 4; v1++) { - v8->trainer[v1].aiMask = v2; + v8->trainer[v1].header.aiMask = v2; } ov104_0223B518(¶m0->unk_290[v6], v7, param0->unk_18[v6], ¶m0->unk_268[v6], v5, 11, 180); diff --git a/src/overlay104/ov104_0223B6F4.c b/src/overlay104/ov104_0223B6F4.c index 4e877946e0..5c2f09c695 100644 --- a/src/overlay104/ov104_0223B6F4.c +++ b/src/overlay104/ov104_0223B6F4.c @@ -203,7 +203,7 @@ FieldBattleDTO *ov104_0223B810(UnkStruct_ov104_0223BA10 *param0, UnkStruct_ov104 Party_InitWithCapacity(v5->parties[1], ov104_0223B7DC(param0->unk_10, 0)); for (v0 = 0; v0 < 4; v0++) { - v5->trainer[v0].aiMask = ov104_0223BB10(param0); + v5->trainer[v0].header.aiMask = ov104_0223BB10(param0); } v6 = Pokemon_New(11); diff --git a/src/overlay104/ov104_0223BCBC.c b/src/overlay104/ov104_0223BCBC.c index 7315b09d66..e1226e0cd4 100644 --- a/src/overlay104/ov104_0223BCBC.c +++ b/src/overlay104/ov104_0223BCBC.c @@ -216,7 +216,7 @@ FieldBattleDTO *ov104_0223BDD8(UnkStruct_ov104_0223BFFC *param0, UnkStruct_ov104 Party_InitWithCapacity(v5->parties[1], ov104_0223BDA4(param0->unk_10, 0)); for (v0 = 0; v0 < 4; v0++) { - v5->trainer[v0].aiMask = ov104_0223C0D0(param0); + v5->trainer[v0].header.aiMask = ov104_0223C0D0(param0); } v6 = Pokemon_New(11); diff --git a/src/string_template.c b/src/string_template.c index 28a462ca1a..748a8f8ea8 100644 --- a/src/string_template.c +++ b/src/string_template.c @@ -13,7 +13,7 @@ #include "generated/text_banks.h" #include "struct_decls/struct_020797DC_decl.h" -#include "struct_defs/trainer_data.h" +#include "struct_defs/trainer.h" #include "charcode.h" #include "enums.h" @@ -323,7 +323,7 @@ void StringTemplate_SetTrainerClassNameBattle(StringTemplate *template, u32 idx, MessageLoader *loader = InitMessageLoader(TEXT_BANK_TRAINER_CLASS_NAMES, template->heapID); if (loader) { - MessageLoader_GetStrbuf(loader, trainer->class, template->templateBuf); + MessageLoader_GetStrbuf(loader, trainer->header.trainerType, template->templateBuf); SetStringTemplateArg(template, idx, template->templateBuf, NULL); MessageLoader_Free(loader); } diff --git a/src/trainer_data.c b/src/trainer_data.c index 1f3f8bda3b..baf0973f96 100644 --- a/src/trainer_data.c +++ b/src/trainer_data.c @@ -1,12 +1,11 @@ -#include "struct_defs/trainer_data.h" - -#include -#include +#include "trainer_data.h" #include "constants/battle.h" #include "constants/pokemon.h" #include "constants/trainer.h" +#include "struct_defs/trainer.h" + #include "data/trainer_class_genders.h" #include "charcode_util.h" @@ -20,7 +19,6 @@ #include "savedata.h" #include "savedata_misc.h" #include "strbuf.h" -#include "trainer_data.h" static void TrainerData_BuildParty(FieldBattleDTO *dto, int battler, int heapID); @@ -38,7 +36,7 @@ void Trainer_Encounter(FieldBattleDTO *dto, const SaveData *save, int heapID) Trainer_Load(dto->trainerIDs[i], &trdata); dto->trainer[i] = trdata; - if (trdata.class == TRAINER_CLASS_RIVAL) { + if (trdata.header.trainerType == TRAINER_CLASS_RIVAL) { CharCode_Copy(dto->trainer[i].name, rivalName); } else { Strbuf *trainerName = MessageLoader_GetNewStrbuf(msgLoader, dto->trainerIDs[i]); @@ -49,12 +47,13 @@ void Trainer_Encounter(FieldBattleDTO *dto, const SaveData *save, int heapID) TrainerData_BuildParty(dto, i, heapID); } - dto->battleType |= trdata.battleType; + dto->battleType |= trdata.header.battleType; MessageLoader_Free(msgLoader); } u32 Trainer_LoadParam(int trainerID, enum TrainerDataParam paramID) { + // TODO: can this be trainerheader? u32 result; Trainer trdata; @@ -62,34 +61,34 @@ u32 Trainer_LoadParam(int trainerID, enum TrainerDataParam paramID) switch (paramID) { case TRDATA_TYPE: - result = trdata.type; + result = trdata.header.monDataType; break; case TRDATA_CLASS: - result = trdata.class; + result = trdata.header.trainerType; break; case TRDATA_SPRITE: - result = trdata.sprite; + result = trdata.header.sprite; break; case TRDATA_PARTY_SIZE: - result = trdata.partySize; + result = trdata.header.partySize; break; case TRDATA_ITEM_1: case TRDATA_ITEM_2: case TRDATA_ITEM_3: case TRDATA_ITEM_4: - result = trdata.items[paramID - TRDATA_ITEM_1]; + result = trdata.header.items[paramID - TRDATA_ITEM_1]; break; case TRDATA_AI_MASK: - result = trdata.aiMask; + result = trdata.header.aiMask; break; case TRDATA_BATTLE_TYPE: - result = trdata.battleType; + result = trdata.header.battleType; break; } @@ -193,21 +192,21 @@ static void TrainerData_BuildParty(FieldBattleDTO *dto, int battler, int heapID) Trainer_LoadParty(dto->trainerIDs[battler], buf); // determine which magic gender-specific modifier to use for the RNG function - genderMod = TrainerClass_Gender(dto->trainer[battler].class) == GENDER_FEMALE + genderMod = TrainerClass_Gender(dto->trainer[battler].header.trainerType) == GENDER_FEMALE ? 120 : 136; - switch (dto->trainer[battler].type) { + switch (dto->trainer[battler].header.monDataType) { case TRDATATYPE_BASE: { TrainerMonBase *trmon = (TrainerMonBase *)buf; - for (i = 0; i < dto->trainer[battler].partySize; i++) { + for (i = 0; i < dto->trainer[battler].header.partySize; i++) { u16 species = trmon[i].species & 0x3FF; - u8 form = (trmon[i].species & 0xFC00) >> 10; + u8 form = (trmon[i].species & 0xFC00) >> TRAINER_MON_FORM_SHIFT; rnd = trmon[i].dv + trmon[i].level + species + dto->trainerIDs[battler]; LCRNG_SetSeed(rnd); - for (j = 0; j < dto->trainer[battler].class; j++) { + for (j = 0; j < dto->trainer[battler].header.trainerType; j++) { rnd = LCRNG_Next(); } @@ -225,14 +224,14 @@ static void TrainerData_BuildParty(FieldBattleDTO *dto, int battler, int heapID) case TRDATATYPE_WITH_MOVES: { TrainerMonWithMoves *trmon = (TrainerMonWithMoves *)buf; - for (i = 0; i < dto->trainer[battler].partySize; i++) { + for (i = 0; i < dto->trainer[battler].header.partySize; i++) { u16 species = trmon[i].species & 0x3FF; - u8 form = (trmon[i].species & 0xFC00) >> 10; + u8 form = (trmon[i].species & 0xFC00) >> TRAINER_MON_FORM_SHIFT; rnd = trmon[i].dv + trmon[i].level + species + dto->trainerIDs[battler]; LCRNG_SetSeed(rnd); - for (j = 0; j < dto->trainer[battler].class; j++) { + for (j = 0; j < dto->trainer[battler].header.trainerType; j++) { rnd = LCRNG_Next(); } @@ -255,14 +254,14 @@ static void TrainerData_BuildParty(FieldBattleDTO *dto, int battler, int heapID) case TRDATATYPE_WITH_ITEM: { TrainerMonWithItem *trmon = (TrainerMonWithItem *)buf; - for (i = 0; i < dto->trainer[battler].partySize; i++) { + for (i = 0; i < dto->trainer[battler].header.partySize; i++) { u16 species = trmon[i].species & 0x3FF; - u8 form = (trmon[i].species & 0xFC00) >> 10; + u8 form = (trmon[i].species & 0xFC00) >> TRAINER_MON_FORM_SHIFT; rnd = trmon[i].dv + trmon[i].level + species + dto->trainerIDs[battler]; LCRNG_SetSeed(rnd); - for (j = 0; j < dto->trainer[battler].class; j++) { + for (j = 0; j < dto->trainer[battler].header.trainerType; j++) { rnd = LCRNG_Next(); } @@ -281,14 +280,14 @@ static void TrainerData_BuildParty(FieldBattleDTO *dto, int battler, int heapID) case TRDATATYPE_WITH_MOVES_AND_ITEM: { TrainerMonWithMovesAndItem *trmon = (TrainerMonWithMovesAndItem *)buf; - for (i = 0; i < dto->trainer[battler].partySize; i++) { + for (i = 0; i < dto->trainer[battler].header.partySize; i++) { u16 species = trmon[i].species & 0x3FF; - u8 form = (trmon[i].species & 0xFC00) >> 10; + u8 form = (trmon[i].species & 0xFC00) >> TRAINER_MON_FORM_SHIFT; rnd = trmon[i].dv + trmon[i].level + species + dto->trainerIDs[battler]; LCRNG_SetSeed(rnd); - for (j = 0; j < dto->trainer[battler].class; j++) { + for (j = 0; j < dto->trainer[battler].header.trainerType; j++) { rnd = LCRNG_Next(); } diff --git a/src/unk_0207A6DC.c b/src/unk_0207A6DC.c index e17a2dd9bd..3f51753738 100644 --- a/src/unk_0207A6DC.c +++ b/src/unk_0207A6DC.c @@ -13,7 +13,7 @@ #include "struct_defs/struct_0207A81C.h" #include "struct_defs/struct_0207ACB4.h" #include "struct_defs/struct_0207AD40.h" -#include "struct_defs/trainer_data.h" +#include "struct_defs/trainer.h" #include "battle/battle_io.h" #include "battle/ov16_0223DF00.h" diff --git a/src/unk_0208BA78.c b/src/unk_0208BA78.c index 4992b2f4d7..df20d26db1 100644 --- a/src/unk_0208BA78.c +++ b/src/unk_0208BA78.c @@ -288,7 +288,7 @@ static BOOL sub_0208BC8C(UnkStruct_0208BC3C *param0, int param1) sub_0200544C(1, 127); sub_02005464(1); - if (sub_0208BE80(param0->unk_10->trainer[1].class) == 1) { + if (sub_0208BE80(param0->unk_10->trainer[1].header.trainerType) == 1) { sub_02004550(5, 1202, 1); } else { sub_02004550(5, 1119, 1); diff --git a/tools/datagen/datagen_trainer.cpp b/tools/datagen/datagen_trainer.cpp new file mode 100644 index 0000000000..7aaa1b0463 --- /dev/null +++ b/tools/datagen/datagen_trainer.cpp @@ -0,0 +1,233 @@ +/* + * datagen-trainer + * + * Usage: datagen-species + * + * This program is responsible for generating data archives from trainer data + * files (res/trainers/data/*.json). The file-names to be polled for data are + * drawn from an environment var TRAINERS, which should be a semicolon-delimited + * list of file-stems. + * + * The following files are generated by this program: + * - trdata.narc + * - trpoke.narc + */ +#include +#include +#include +#include + +#include "datagen.h" + +#define POKEPLATINUM_GENERATED_LOOKUP +#define POKEPLATINUM_GENERATED_LOOKUP_IMPL + +// C++ does not like the math expressions used in this enum, +// so use the preprocessor version instead. +#include "generated/ai_flags.h" + +#define POKEPLATINUM_GENERATED_ENUM + +#include "constants/battle.h" +#include "generated/items.h" +#include "generated/moves.h" +#include "generated/species.h" +#include "generated/trainer_classes.h" + +#include "struct_defs/trainer_data.h" + +static void PackImmediately(const rapidjson::Value &member, TrainerMonBase &base, unsigned char *bufp); +static void ParseMovesAndPack(const rapidjson::Value &member, TrainerMonBase &base, unsigned char *bufp); +static void ParseItemAndPack(const rapidjson::Value &member, TrainerMonBase &base, unsigned char *bufp); +static void ParseMovesAndItemAndPack(const rapidjson::Value &member, TrainerMonBase &base, unsigned char *bufp); + +typedef std::function TrainerMonSubparser; + +struct TrainerDataTypeTable { + TrainerMonSubparser subparser; + std::size_t monSize; +}; + +static TrainerDataTypeTable sTrainerDataTypeTable[] = { + { PackImmediately, sizeof(TrainerMonBase) }, + { ParseMovesAndPack, sizeof(TrainerMonWithMoves) }, + { ParseItemAndPack, sizeof(TrainerMonWithItem) }, + { ParseMovesAndItemAndPack, sizeof(TrainerMonWithMovesAndItem) }, +}; + +static void Usage(std::ostream &ostr) +{ + ostr << "Usage: datagen-species OUT_DIR ROOT_DIR" << std::endl; + ostr << std::endl; + ostr << "Generates data archives from trainer data files (res/trainers/data/*.json)" << std::endl; + ostr << "Trainer data files to be polled for packing are drawn from the environment var\n" + << "TRAINERS, which must be a semicolon-delimited list of file-stems to be polled\n" + << "at execution." << std::endl; +} + +static inline bool AnyMemberHasValue(const rapidjson::Value &party, const char *key) +{ + for (const auto &member : party.GetArray()) { + if (!member[key].IsNull()) { + return true; + } + } + + return false; +} + +static TrainerHeader ParseTrainerData(const rapidjson::Document &doc) +{ + TrainerHeader trdata = {}; + + trdata.trainerType = LookupConst(doc["class"].GetString(), TrainerClass); + trdata.battleType = doc["double_battle"].GetBool() ? BATTLE_TYPE_DOUBLES : 0; + + int i = 0; + for (const auto &itemVal : doc["items"].GetArray()) { + trdata.items[i++] = LookupConst(itemVal.GetString(), Item); + } + + for (const auto &aiFlagsVal : doc["ai_flags"].GetArray()) { + trdata.aiMask |= LookupConst(aiFlagsVal.GetString(), AIFlag); + } + + const rapidjson::Value &party = doc["party"]; + trdata.partySize = party.GetArray().Size(); + + bool partyItems = AnyMemberHasValue(party, "item"); + bool partyMoves = AnyMemberHasValue(party, "moves"); + if (partyItems) { + if (partyMoves) { + trdata.monDataType = TRDATATYPE_WITH_MOVES_AND_ITEM; + } else { + trdata.monDataType = TRDATATYPE_WITH_ITEM; + } + } else if (partyMoves) { + trdata.monDataType = TRDATATYPE_WITH_MOVES; + } else { + trdata.monDataType = TRDATATYPE_BASE; + } + + return trdata; +} + +static void PackImmediately(const rapidjson::Value &member, TrainerMonBase &base, unsigned char *bufp) +{ + memcpy(bufp, &base, sizeof(base)); +} + +static void ParseMovesAndPack(const rapidjson::Value &member, TrainerMonBase &base, unsigned char *bufp) +{ + TrainerMonWithMoves withMoves = {}; + withMoves.dv = base.dv; + withMoves.level = base.level; + withMoves.species = base.species; + withMoves.cbSeal = base.cbSeal; + + int i = 0; + for (const auto &move : member["moves"].GetArray()) { + withMoves.moves[i++] = LookupConst(move.GetString(), Move); + } + + memcpy(bufp, &withMoves, sizeof(withMoves)); +} + +static void ParseItemAndPack(const rapidjson::Value &member, TrainerMonBase &base, unsigned char *bufp) +{ + TrainerMonWithItem withItem = {}; + withItem.dv = base.dv; + withItem.level = base.level; + withItem.species = base.species; + withItem.cbSeal = base.cbSeal; + + withItem.item = LookupConst(member["item"].GetString(), Item); + + memcpy(bufp, &withItem, sizeof(withItem)); +} + +static void ParseMovesAndItemAndPack(const rapidjson::Value &member, TrainerMonBase &base, unsigned char *bufp) +{ + TrainerMonWithMovesAndItem withMovesAndItem = {}; + withMovesAndItem.dv = base.dv; + withMovesAndItem.level = base.level; + withMovesAndItem.species = base.species; + withMovesAndItem.cbSeal = base.cbSeal; + + int i = 0; + for (const auto &move : member["moves"].GetArray()) { + withMovesAndItem.moves[i++] = LookupConst(move.GetString(), Move); + } + + withMovesAndItem.item = LookupConst(member["item"].GetString(), Item); + + memcpy(bufp, &withMovesAndItem, sizeof(withMovesAndItem)); +} + +static void ParseAndPackParty(const rapidjson::Document &doc, TrainerDataType monDataType, std::size_t partySize, vfs_pack_ctx *trpokeVFS) +{ + if (partySize == 0) { + unsigned char *buf = (unsigned char *)calloc(8, 1); + narc_pack_file(trpokeVFS, buf, 8); + return; + } + + TrainerMonSubparser subparser = sTrainerDataTypeTable[monDataType].subparser; + std::size_t monSize = sTrainerDataTypeTable[monDataType].monSize; + std::size_t bufSize = monSize * partySize; + bufSize = bufSize + (-bufSize & 3); // align to 4-byte boundary + + unsigned char *partyBuf = (unsigned char *)calloc(bufSize, 1); + unsigned char *partyBufp = partyBuf; + + for (const auto &member : doc["party"].GetArray()) { + TrainerMonBase base = {}; + base.dv = member["power"].GetUint(); + base.level = member["level"].GetUint(); + base.species = LookupConst(member["species"].GetString(), Species); + base.species |= (member["form"].GetUint() << TRAINER_MON_FORM_SHIFT); + base.cbSeal = member["ball_seal"].GetUint(); + + subparser(member, base, partyBufp); + partyBufp += monSize; + } + + narc_pack_file(trpokeVFS, partyBuf, bufSize); +} + +int main(int argc, char **argv) +{ + if (argc == 1) { + Usage(std::cout); + return EXIT_SUCCESS; + } + + fs::path outputRoot = argv[1]; + fs::path dataRoot = argv[2]; + + std::vector trainerRegistry = ReadRegistryEnvVar("TRAINERS"); + + vfs_pack_ctx *trdataVFS = narc_pack_start(); + vfs_pack_ctx *trpokeVFS = narc_pack_start(); + + rapidjson::Document doc; + for (auto &trainerStem : trainerRegistry) { + try { + fs::path trainerDataPath = dataRoot / (trainerStem + ".json"); + std::string json = ReadWholeFile(trainerDataPath); + doc.Parse(json.c_str(), json.length()); + + TrainerHeader trdata = ParseTrainerData(doc); + narc_pack_file_copy(trdataVFS, reinterpret_cast(&trdata), sizeof(trdata)); + ParseAndPackParty(doc, static_cast(trdata.monDataType), trdata.partySize, trpokeVFS); + } catch (std::exception &e) { + std::cerr << "exception parsing data file for " + trainerStem << std::endl; + std::cerr << e.what() << std::endl; + std::exit(EXIT_FAILURE); + } + } + + PackNarc(trdataVFS, outputRoot / "trdata.narc"); + PackNarc(trpokeVFS, outputRoot / "trpoke.narc"); + return EXIT_SUCCESS; +} diff --git a/tools/datagen/meson.build b/tools/datagen/meson.build index d9f62e08e0..d5e1dd1fac 100644 --- a/tools/datagen/meson.build +++ b/tools/datagen/meson.build @@ -16,6 +16,7 @@ libnarc_dep = dependency('libnarc') datagen_cpp_args = [ '-std=c++17', '-Wno-deprecated-declarations', # rapidjson 1.1.0 makes use of std::iterator + '-Wno-shift-count-overflow', # datagen-trainer references AI flags, which warn of a shift-count overflow on an unused field '-O3', ] @@ -37,3 +38,22 @@ datagen_species_exe = executable( ], native: true, ) + +datagen_trainer_exe = executable( + 'datagen-trainer', + sources: [ + files('datagen_trainer.cpp'), + c_consts_generators, + ], + cpp_args: datagen_cpp_args, + implicit_include_directories: true, + include_directories: [ + public_includes, + toplevel_includes, + ], + dependencies: [ + libnarc_dep, + rapidjson_dep, + ], + native: true, +) diff --git a/tools/json2bin/meson.build b/tools/json2bin/meson.build index 31cb186424..5859573297 100644 --- a/tools/json2bin/meson.build +++ b/tools/json2bin/meson.build @@ -7,8 +7,6 @@ movedata_py = find_program('movedata.py', native: true) # New single-file-parser scripts encounter_py = find_program('encounter.py', native: true) event_py = find_program('event.py', native: true) -trainer_data_py = find_program('trainer_data.py', native: true) -trainer_party_py = find_program('trainer_party.py', native: true) encdata_ex_elusive_rod_py = find_program('encdata_ex_elusive_rod.py', native: true) encdata_ex_honey_trees_py = find_program('encdata_ex_honey_trees.py', native: true) encdata_ex_trophy_garden_py = find_program('encdata_ex_trophy_garden.py', native: true) diff --git a/tools/json2bin/trainer_data.py b/tools/json2bin/trainer_data.py deleted file mode 100644 index 5c05d644a1..0000000000 --- a/tools/json2bin/trainer_data.py +++ /dev/null @@ -1,61 +0,0 @@ -#!/usr/bin/env python3 -import functools -import json -import pathlib -import sys - -from generated import items -from convert import ( - TrainerDataFlags, - derive_data_flags, - from_trainer_class, - pad, - u8, - u16, - u32, - from_item, - from_trainer_ai_flag, -) - - -def parse_trainer_items(item_list: list[str]) -> bytes: - item_list += [items.Item.ITEM_NONE.name] * (4 - len(item_list)) - return b"".join([u16(from_item(item_str)) for item_str in item_list]) - - -def pack_data_flags(flags: TrainerDataFlags) -> bytes: - return u8(int(flags.has_moves) | (int(flags.has_items) << 1)) - - -def parse_ai_flags(flags: list[str]) -> bytes: - return u32( - functools.reduce( - lambda x, y: x | y, - [from_trainer_ai_flag(s) for s in flags], - 0, - ) - ) - - -input_path = pathlib.Path(sys.argv[1]) -output_path = pathlib.Path(sys.argv[2]) - -data = {} -with open(input_path, "r", encoding="utf-8") as input_file: - data = json.load(input_file) - -packed = b"".join( - [ - pack_data_flags(derive_data_flags(data["party"])), - u8(from_trainer_class(data["class"])), - pad(1), - u8(len(data["party"])), - parse_trainer_items(data["items"]), - parse_ai_flags(data["ai_flags"]), - u8(2 if data["double_battle"] else 0), - pad(3), - ] -) - -with open(output_path, "wb") as output_file: - output_file.write(packed) diff --git a/tools/json2bin/trainer_party.py b/tools/json2bin/trainer_party.py deleted file mode 100644 index 325c16caab..0000000000 --- a/tools/json2bin/trainer_party.py +++ /dev/null @@ -1,55 +0,0 @@ -#!/usr/bin/env python3 -import json -import pathlib -import sys - -from generated import moves -from convert import derive_data_flags, pad, u16, u32, from_item, from_move, from_species - - -def parse_poke_moves(move_list: list[str]) -> bytes: - move_list += [moves.Move.MOVE_NONE.name] * (4 - len(move_list)) - return b"".join([u16(from_move(move_str)) for move_str in move_list]) - - -def parse_party_mon(mon: dict, has_moves: bool, has_items: bool) -> bytes: - return b"".join( - [ - u16(mon["power"]), - u16(mon["level"]), - u16((from_species(mon["species"]) & 0x3FF) | (mon["form"] << 10)), - u16(from_item(mon["item"])) if has_items else b"", - *[parse_poke_moves(mon["moves"]) if has_moves else b""], - u16(mon["ball_seal"]), - ] - ) - - -input_path = pathlib.Path(sys.argv[1]) -output_path = pathlib.Path(sys.argv[2]) - -data = {} -with open(input_path, "r", encoding="utf-8") as input_file: - data = json.load(input_file) - -party = data["party"] -if len(party) == 0: - packed = pad(8) -else: - data_flags = derive_data_flags(party) - packed = bytearray( - b"".join( - [ - parse_party_mon(mon, data_flags.has_moves, data_flags.has_items) - for mon in party - ] - ) - ) - - # word-align - if len(packed) % 4 > 0: - packed.extend(pad(4 - (len(packed) % 4))) - packed = bytes(packed) - -with open(output_path, "wb") as output_file: - output_file.write(packed)