Replaced trainer table with only Emerald classes/balls

Scyrous 2024-06-28 08:29:44 +02:00
parent 001ef3ffbe
commit d337a0cd86
1 changed files with 53 additions and 45 deletions

@ -14,66 +14,74 @@ struct TrainerBall
Now that we have the struct, we need to pair all the trainer classes to a Poke Ball type. Add this table to [src/battle_main.c](../blob/master/src/battle_main.c): Now that we have the struct, we need to pair all the trainer classes to a Poke Ball type. Add this table to [src/battle_main.c](../blob/master/src/battle_main.c):
```c ```c
const struct TrainerBall gTrainerBallTable[] = { const struct TrainerBall gTrainerBallTable[] = {
{TRAINER_CLASS_HIKER, ITEM_POKE_BALL},
{TRAINER_CLASS_TEAM_AQUA, ITEM_NET_BALL}, {TRAINER_CLASS_TEAM_AQUA, ITEM_NET_BALL},
{TRAINER_CLASS_AQUA_ADMIN, ITEM_NET_BALL}, {TRAINER_CLASS_PKMN_BREEDER, ITEM_LUXURY_BALL},
{TRAINER_CLASS_AQUA_LEADER, ITEM_MASTER_BALL},
{TRAINER_CLASS_AROMA_LADY, ITEM_FRIEND_BALL},
{TRAINER_CLASS_RUIN_MANIAC, ITEM_DUSK_BALL},
{TRAINER_CLASS_INTERVIEWER, ITEM_REPEAT_BALL},
{TRAINER_CLASS_TUBER_F, ITEM_DIVE_BALL},
{TRAINER_CLASS_TUBER_M, ITEM_DIVE_BALL},
{TRAINER_CLASS_SIS_AND_BRO, ITEM_POKE_BALL},
{TRAINER_CLASS_COOLTRAINER, ITEM_ULTRA_BALL}, {TRAINER_CLASS_COOLTRAINER, ITEM_ULTRA_BALL},
{TRAINER_CLASS_HEX_MANIAC, ITEM_DUSK_BALL}, {TRAINER_CLASS_BIRD_KEEPER, ITEM_NEST_BALL},
{TRAINER_CLASS_LADY, ITEM_LUXURY_BALL}, {TRAINER_CLASS_COLLECTOR, ITEM_REPEAT_BALL},
{TRAINER_CLASS_BEAUTY, ITEM_LOVE_BALL},
{TRAINER_CLASS_RICH_BOY, ITEM_LUXURY_BALL},
{TRAINER_CLASS_POKEMANIAC, ITEM_MOON_BALL},
{TRAINER_CLASS_SWIMMER_M, ITEM_DIVE_BALL}, {TRAINER_CLASS_SWIMMER_M, ITEM_DIVE_BALL},
{TRAINER_CLASS_BLACK_BELT, ITEM_HEAVY_BALL}, {TRAINER_CLASS_TEAM_MAGMA, ITEM_POKE_BALL},
{TRAINER_CLASS_GUITARIST, ITEM_FAST_BALL}, {TRAINER_CLASS_EXPERT, ITEM_ULTRA_BALL},
{TRAINER_CLASS_AQUA_ADMIN, ITEM_GREAT_BALL},
{TRAINER_CLASS_BLACK_BELT, ITEM_POKE_BALL},
{TRAINER_CLASS_AQUA_LEADER, ITEM_ULTRA_BALL},
{TRAINER_CLASS_HEX_MANIAC, ITEM_POKE_BALL},
{TRAINER_CLASS_AROMA_LADY, ITEM_NET_BALL},
{TRAINER_CLASS_RUIN_MANIAC, ITEM_POKE_BALL},
{TRAINER_CLASS_INTERVIEWER, ITEM_TIMER_BALL},
{TRAINER_CLASS_TUBER_F, ITEM_NET_BALL},
{TRAINER_CLASS_TUBER_M, ITEM_NET_BALL},
{TRAINER_CLASS_LADY, ITEM_LUXURY_BALL},
{TRAINER_CLASS_BEAUTY, ITEM_LUXURY_BALL},
{TRAINER_CLASS_RICH_BOY, ITEM_LUXURY_BALL},
{TRAINER_CLASS_POKEMANIAC, ITEM_REPEAT_BALL},
{TRAINER_CLASS_GUITARIST, ITEM_TIMER_BALL},
{TRAINER_CLASS_KINDLER, ITEM_POKE_BALL}, {TRAINER_CLASS_KINDLER, ITEM_POKE_BALL},
{TRAINER_CLASS_CAMPER, ITEM_NEST_BALL}, {TRAINER_CLASS_CAMPER, ITEM_NEST_BALL},
{TRAINER_CLASS_OLD_COUPLE, ITEM_POKE_BALL}, {TRAINER_CLASS_PICNICKER, ITEM_NEST_BALL},
{TRAINER_CLASS_BUG_MANIAC, ITEM_NET_BALL}, {TRAINER_CLASS_BUG_MANIAC, ITEM_NET_BALL},
{TRAINER_CLASS_PSYCHIC, ITEM_DREAM_BALL}, {TRAINER_CLASS_PSYCHIC, ITEM_POKE_BALL},
{TRAINER_CLASS_GENTLEMAN, ITEM_LUXURY_BALL}, {TRAINER_CLASS_GENTLEMAN, ITEM_LUXURY_BALL},
{TRAINER_CLASS_ELITE_FOUR, ITEM_ULTRA_BALL}, {TRAINER_CLASS_ELITE_FOUR, ITEM_ULTRA_BALL},
{TRAINER_CLASS_LEADER, ITEM_ULTRA_BALL}, {TRAINER_CLASS_LEADER, ITEM_ULTRA_BALL},
{TRAINER_CLASS_SCHOOL_KID, ITEM_POKE_BALL}, {TRAINER_CLASS_SCHOOL_KID, ITEM_POKE_BALL},
{TRAINER_CLASS_SR_AND_JR, ITEM_POKE_BALL}, {TRAINER_CLASS_SR_AND_JR, ITEM_POKE_BALL},
{TRAINER_CLASS_POKEFAN, ITEM_POKE_BALL},
{TRAINER_CLASS_EXPERT, ITEM_ULTRA_BALL},
{TRAINER_CLASS_YOUNGSTER, ITEM_POKE_BALL},
{TRAINER_CLASS_CHAMPION, ITEM_CHERISH_BALL},
{TRAINER_CLASS_FISHERMAN, ITEM_LURE_BALL},
{TRAINER_CLASS_TRIATHLETE, ITEM_FAST_BALL},
{TRAINER_CLASS_DRAGON_TAMER, ITEM_ULTRA_BALL},
{TRAINER_CLASS_BIRD_KEEPER, ITEM_QUICK_BALL},
{TRAINER_CLASS_NINJA_BOY, ITEM_QUICK_BALL},
{TRAINER_CLASS_BATTLE_GIRL, ITEM_HEAVY_BALL},
{TRAINER_CLASS_PARASOL_LADY, ITEM_POKE_BALL},
{TRAINER_CLASS_SWIMMER_F, ITEM_DIVE_BALL},
{TRAINER_CLASS_PICNICKER, ITEM_FRIEND_BALL},
{TRAINER_CLASS_TWINS, ITEM_POKE_BALL},
{TRAINER_CLASS_SAILOR, ITEM_DIVE_BALL},
{TRAINER_CLASS_COLLECTOR, ITEM_REPEAT_BALL},
{TRAINER_CLASS_RIVAL, ITEM_PREMIER_BALL},
{TRAINER_CLASS_PKMN_BREEDER, ITEM_TIMER_BALL},
{TRAINER_CLASS_PKMN_RANGER, ITEM_SAFARI_BALL},
{TRAINER_CLASS_TEAM_MAGMA, ITEM_NEST_BALL},
{TRAINER_CLASS_MAGMA_ADMIN, ITEM_NEST_BALL},
{TRAINER_CLASS_MAGMA_LEADER, ITEM_MASTER_BALL},
{TRAINER_CLASS_LASS, ITEM_POKE_BALL},
{TRAINER_CLASS_BUG_CATCHER, ITEM_NET_BALL},
{TRAINER_CLASS_HIKER, ITEM_HEAVY_BALL},
{TRAINER_CLASS_YOUNG_COUPLE, ITEM_LOVE_BALL},
{TRAINER_CLASS_WINSTRATE, ITEM_GREAT_BALL}, {TRAINER_CLASS_WINSTRATE, ITEM_GREAT_BALL},
{TRAINER_CLASS_PKMN_TRAINER_2, ITEM_HEAVY_BALL}, {TRAINER_CLASS_POKEFAN, ITEM_POKE_BALL},
{TRAINER_CLASS_YOUNGSTER, ITEM_POKE_BALL},
{TRAINER_CLASS_CHAMPION, ITEM_ULTRA_BALL},
{TRAINER_CLASS_FISHERMAN, ITEM_DIVE_BALL},
{TRAINER_CLASS_TRIATHLETE, ITEM_TIMER_BALL},
{TRAINER_CLASS_DRAGON_TAMER, ITEM_ULTRA_BALL},
{TRAINER_CLASS_NINJA_BOY, ITEM_POKE_BALL},
{TRAINER_CLASS_BATTLE_GIRL, ITEM_POKE_BALL},
{TRAINER_CLASS_PARASOL_LADY, ITEM_NET_BALL},
{TRAINER_CLASS_SWIMMER_F, ITEM_DIVE_BALL},
{TRAINER_CLASS_TWINS, ITEM_REPEAT_BALL},
{TRAINER_CLASS_SAILOR, ITEM_DIVE_BALL},
{TRAINER_CLASS_COOLTRAINER_2, ITEM_ULTRA_BALL},
{TRAINER_CLASS_MAGMA_ADMIN, ITEM_GREAT_BALL},
{TRAINER_CLASS_RIVAL, ITEM_PREMIER_BALL},
{TRAINER_CLASS_BUG_CATCHER, ITEM_NET_BALL},
{TRAINER_CLASS_PKMN_RANGER, ITEM_NEST_BALL},
{TRAINER_CLASS_MAGMA_LEADER, ITEM_ULTRA_BALL},
{TRAINER_CLASS_LASS, ITEM_POKE_BALL},
{TRAINER_CLASS_YOUNG_COUPLE, ITEM_REPEAT_BALL},
{TRAINER_CLASS_OLD_COUPLE, ITEM_REPEAT_BALL},
{TRAINER_CLASS_SIS_AND_BRO, ITEM_REPEAT_BALL},
{TRAINER_CLASS_SALON_MAIDEN, ITEM_ULTRA_BALL},
{TRAINER_CLASS_DOME_ACE, ITEM_ULTRA_BALL},
{TRAINER_CLASS_PALACE_MAVEN , ITEM_ULTRA_BALL},
{TRAINER_CLASS_ARENA_TYCOON, ITEM_ULTRA_BALL},
{TRAINER_CLASS_FACTORY_HEAD, ITEM_ULTRA_BALL},
{TRAINER_CLASS_PIKE_QUEEN, ITEM_ULTRA_BALL},
{TRAINER_CLASS_PYRAMID_KING, ITEM_ULTRA_BALL},
{TRAINER_CLASS_RS_PROTAG, ITEM_MASTER_BALL},
{0xFF, ITEM_POKE_BALL}, {0xFF, ITEM_POKE_BALL},
}; };
``` ```
You are free to customize this table to your liking. You are free to customize this table to your liking. It contains every trainer class and Poke Ball found in Pokemon Emerald, except for PKMN_TRAINER_1 AND PKMN_TRAINER_2 since they go unused.
Finally, we need to have the trainers use the Poke Balls we defined earlier. In the `CreateNPCTrainerParty` function of [src/battle_main.c](../blob/master/src/battle_main.c), add the following: Finally, we need to have the trainers use the Poke Balls we defined earlier. In the `CreateNPCTrainerParty` function of [src/battle_main.c](../blob/master/src/battle_main.c), add the following:
```diff ```diff