trainer enums

This commit is contained in:
cawtds 2026-03-30 21:24:38 +02:00
parent 088d5df095
commit 3dbb3ae7c9
3 changed files with 933 additions and 926 deletions

File diff suppressed because it is too large Load Diff

View File

@ -4,20 +4,23 @@
#include "constants/opponents.h"
#include "constants/battle_frontier_trainers.h"
#define TRAINER_ENCOUNTER_MUSIC_MALE 0 // standard male encounter music
#define TRAINER_ENCOUNTER_MUSIC_FEMALE 1 // standard female encounter music
#define TRAINER_ENCOUNTER_MUSIC_GIRL 2 // used for male Tubers and Young Couples too
#define TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS 3
#define TRAINER_ENCOUNTER_MUSIC_INTENSE 4
#define TRAINER_ENCOUNTER_MUSIC_COOL 5
#define TRAINER_ENCOUNTER_MUSIC_AQUA 6
#define TRAINER_ENCOUNTER_MUSIC_MAGMA 7
#define TRAINER_ENCOUNTER_MUSIC_SWIMMER 8
#define TRAINER_ENCOUNTER_MUSIC_TWINS 9 // used for other trainer classes too
#define TRAINER_ENCOUNTER_MUSIC_ELITE_FOUR 10
#define TRAINER_ENCOUNTER_MUSIC_HIKER 11 // used for other trainer classes too
#define TRAINER_ENCOUNTER_MUSIC_INTERVIEWER 12
#define TRAINER_ENCOUNTER_MUSIC_RICH 13 // Rich Boys and Gentlemen
enum TrainerEncounterMusic
{
TRAINER_ENCOUNTER_MUSIC_MALE, // standard male encounter music
TRAINER_ENCOUNTER_MUSIC_FEMALE, // standard female encounter music
TRAINER_ENCOUNTER_MUSIC_GIRL, // used for male Tubers and Young Couples too
TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS,
TRAINER_ENCOUNTER_MUSIC_INTENSE,
TRAINER_ENCOUNTER_MUSIC_COOL,
TRAINER_ENCOUNTER_MUSIC_AQUA,
TRAINER_ENCOUNTER_MUSIC_MAGMA,
TRAINER_ENCOUNTER_MUSIC_SWIMMER,
TRAINER_ENCOUNTER_MUSIC_TWINS, // used for other trainer classes too
TRAINER_ENCOUNTER_MUSIC_ELITE_FOUR,
TRAINER_ENCOUNTER_MUSIC_HIKER, // used for other trainer classes too
TRAINER_ENCOUNTER_MUSIC_INTERVIEWER,
TRAINER_ENCOUNTER_MUSIC_RICH, // Rich Boys and Gentlemen
};
enum __attribute__((packed)) TrainerPicID
{
@ -313,171 +316,171 @@ enum TrainerClassID
TRAINER_CLASS_COUNT
};
#define FACILITY_CLASS_AQUA_LEADER_ARCHIE 0
#define FACILITY_CLASS_AQUA_GRUNT_M 1
#define FACILITY_CLASS_AQUA_GRUNT_F 2
#define FACILITY_CLASS_RS_AROMA_LADY 3
#define FACILITY_CLASS_RS_RUIN_MANIAC 4
#define FACILITY_CLASS_INTERVIEWER 5
#define FACILITY_CLASS_RS_TUBER_F 6
#define FACILITY_CLASS_RS_TUBER_M 7
#define FACILITY_CLASS_RS_COOLTRAINER_M 8
#define FACILITY_CLASS_RS_COOLTRAINER_F 9
#define FACILITY_CLASS_HEX_MANIAC 10
#define FACILITY_CLASS_RS_LADY 11
#define FACILITY_CLASS_RS_BEAUTY 12
#define FACILITY_CLASS_RICH_BOY 13
#define FACILITY_CLASS_RS_POKEMANIAC 14
#define FACILITY_CLASS_RS_SWIMMER_M 15
#define FACILITY_CLASS_RS_BLACK_BELT 16
#define FACILITY_CLASS_GUITARIST 17
#define FACILITY_CLASS_KINDLER 18
#define FACILITY_CLASS_RS_CAMPER 19
#define FACILITY_CLASS_BUG_MANIAC 20
#define FACILITY_CLASS_RS_PSYCHIC_M 21
#define FACILITY_CLASS_RS_PSYCHIC_F 22
#define FACILITY_CLASS_RS_GENTLEMAN 23
#define FACILITY_CLASS_ELITE_FOUR_SIDNEY 24
#define FACILITY_CLASS_ELITE_FOUR_PHOEBE 25
#define FACILITY_CLASS_LEADER_ROXANNE 26
#define FACILITY_CLASS_LEADER_BRAWLY 27
#define FACILITY_CLASS_LEADER_TATE_AND_LIZA 28
#define FACILITY_CLASS_SCHOOL_KID_M 29
#define FACILITY_CLASS_SCHOOL_KID_F 30
#define FACILITY_CLASS_SR_AND_JR 31
#define FACILITY_CLASS_POKEFAN_M 32
#define FACILITY_CLASS_POKEFAN_F 33
#define FACILITY_CLASS_EXPERT_M 34
#define FACILITY_CLASS_EXPERT_F 35
#define FACILITY_CLASS_RS_YOUNGSTER 36
#define FACILITY_CLASS_CHAMPION_STEVEN 37
#define FACILITY_CLASS_RS_FISHERMAN 38
#define FACILITY_CLASS_CYCLING_TRIATHLETE_M 39
#define FACILITY_CLASS_CYCLING_TRIATHLETE_F 40
#define FACILITY_CLASS_RUNNING_TRIATHLETE_M 41
#define FACILITY_CLASS_RUNNING_TRIATHLETE_F 42
#define FACILITY_CLASS_SWIMMING_TRIATHLETE_M 43
#define FACILITY_CLASS_SWIMMING_TRIATHLETE_F 44
#define FACILITY_CLASS_DRAGON_TAMER 45
#define FACILITY_CLASS_RS_BIRD_KEEPER 46
#define FACILITY_CLASS_NINJA_BOY 47
#define FACILITY_CLASS_BATTLE_GIRL 48
#define FACILITY_CLASS_PARASOL_LADY 49
#define FACILITY_CLASS_RS_SWIMMER_F 50
#define FACILITY_CLASS_RS_PICNICKER 51
#define FACILITY_CLASS_RS_TWINS 52
#define FACILITY_CLASS_RS_SAILOR 53
#define FACILITY_CLASS_BOARDER_M 54
#define FACILITY_CLASS_BOARDER_F 55
#define FACILITY_CLASS_COLLECTOR 56
#define FACILITY_CLASS_PKMN_TRAINER_WALLY 57
#define FACILITY_CLASS_PKMN_TRAINER_BRENDAN 58
#define FACILITY_CLASS_PKMN_TRAINER_BRENDAN_2 59
#define FACILITY_CLASS_PKMN_TRAINER_BRENDAN_3 60
#define FACILITY_CLASS_PKMN_TRAINER_MAY 61
#define FACILITY_CLASS_PKMN_TRAINER_MAY_2 62
#define FACILITY_CLASS_PKMN_TRAINER_MAY_3 63
#define FACILITY_CLASS_RS_PKMN_BREEDER_M 64
#define FACILITY_CLASS_RS_PKMN_BREEDER_F 65
#define FACILITY_CLASS_RS_PKMN_RANGER_M 66
#define FACILITY_CLASS_RS_PKMN_RANGER_F 67
#define FACILITY_CLASS_MAGMA_LEADER_MAXIE 68
#define FACILITY_CLASS_MAGMA_GRUNT_M 69
#define FACILITY_CLASS_MAGMA_GRUNT_F 70
#define FACILITY_CLASS_RS_LASS 71
#define FACILITY_CLASS_RS_BUG_CATCHER 72
#define FACILITY_CLASS_RS_HIKER 73
#define FACILITY_CLASS_RS_YOUNG_COUPLE 74
#define FACILITY_CLASS_OLD_COUPLE 75
#define FACILITY_CLASS_RS_SIS_AND_BRO 76
#define FACILITY_CLASS_AQUA_ADMIN_M 77
#define FACILITY_CLASS_AQUA_ADMIN_F 78
#define FACILITY_CLASS_MAGMA_ADMIN_M 79
#define FACILITY_CLASS_MAGMA_ADMIN_F 80
#define FACILITY_CLASS_LEADER_WATTSON 81
#define FACILITY_CLASS_LEADER_FLANNERY 82
#define FACILITY_CLASS_LEADER_NORMAN 83
#define FACILITY_CLASS_LEADER_WINONA 84
#define FACILITY_CLASS_LEADER_WALLACE 85
#define FACILITY_CLASS_ELITE_FOUR_GLACIA 86
#define FACILITY_CLASS_ELITE_FOUR_DRAKE 87
#define FACILITY_CLASS_YOUNGSTER 88
#define FACILITY_CLASS_BUG_CATCHER 89
#define FACILITY_CLASS_LASS 90
#define FACILITY_CLASS_SAILOR 91
#define FACILITY_CLASS_CAMPER 92
#define FACILITY_CLASS_PICNICKER 93
#define FACILITY_CLASS_POKEMANIAC 94
#define FACILITY_CLASS_SUPER_NERD 95
#define FACILITY_CLASS_HIKER 96
#define FACILITY_CLASS_BIKER 97
#define FACILITY_CLASS_BURGLAR 98
#define FACILITY_CLASS_ENGINEER 99
#define FACILITY_CLASS_FISHERMAN 100
#define FACILITY_CLASS_SWIMMER_M 101
#define FACILITY_CLASS_CUE_BALL 102
#define FACILITY_CLASS_GAMER 103
#define FACILITY_CLASS_BEAUTY 104
#define FACILITY_CLASS_SWIMMER_F 105
#define FACILITY_CLASS_PSYCHIC_M 106
#define FACILITY_CLASS_ROCKER 107
#define FACILITY_CLASS_JUGGLER 108
#define FACILITY_CLASS_TAMER 109
#define FACILITY_CLASS_BIRD_KEEPER 110
#define FACILITY_CLASS_BLACK_BELT 111
#define FACILITY_CLASS_RIVAL_EARLY 112
#define FACILITY_CLASS_SCIENTIST 113
#define FACILITY_CLASS_BOSS 114
#define FACILITY_CLASS_ROCKET_GRUNT_M 115
#define FACILITY_CLASS_COOLTRAINER_M 116
#define FACILITY_CLASS_COOLTRAINER_F 117
#define FACILITY_CLASS_ELITE_FOUR_LORELEI 118
#define FACILITY_CLASS_ELITE_FOUR_BRUNO 119
#define FACILITY_CLASS_LEADER_M 120
#define FACILITY_CLASS_LEADER_F 121
#define FACILITY_CLASS_GENTLEMAN 122
#define FACILITY_CLASS_RIVAL_LATE 123
#define FACILITY_CLASS_CHAMPION_RIVAL 124
#define FACILITY_CLASS_CHANNELER 125
#define FACILITY_CLASS_TWINS 126
#define FACILITY_CLASS_COOL_COUPLE 127
#define FACILITY_CLASS_YOUNG_COUPLE 128
#define FACILITY_CLASS_CRUSH_KIN 129
#define FACILITY_CLASS_SIS_AND_BRO 130
#define FACILITY_CLASS_PKMN_PROF 131
#define FACILITY_CLASS_BRENDAN 132
#define FACILITY_CLASS_MAY 133
#define FACILITY_CLASS_RED 134
#define FACILITY_CLASS_LEAF 135
#define FACILITY_CLASS_ROCKET_GRUNT_F 136
#define FACILITY_CLASS_PSYCHIC_F 137
#define FACILITY_CLASS_CRUSH_GIRL 138
#define FACILITY_CLASS_TUBER_F 139
#define FACILITY_CLASS_TUBER_M 140
#define FACILITY_CLASS_PKMN_BREEDER_F 141
#define FACILITY_CLASS_PKMN_BREEDER_M 142
#define FACILITY_CLASS_PKMN_RANGER_M 143
#define FACILITY_CLASS_PKMN_RANGER_F 144
#define FACILITY_CLASS_AROMA_LADY 145
#define FACILITY_CLASS_RUIN_MANIAC 146
#define FACILITY_CLASS_LADY 147
#define FACILITY_CLASS_PAINTER 148
#define FACILITY_CLASS_ELITE_FOUR_AGATHA 149
#define FACILITY_CLASS_ELITE_FOUR_LANCE 150
#define FACILITY_CLASS_CHAMPION_RIVAL_2 151
enum FacilityClass
{
FACILITY_CLASS_AQUA_LEADER_ARCHIE,
FACILITY_CLASS_AQUA_GRUNT_M,
FACILITY_CLASS_AQUA_GRUNT_F,
FACILITY_CLASS_RS_AROMA_LADY,
FACILITY_CLASS_RS_RUIN_MANIAC,
FACILITY_CLASS_INTERVIEWER,
FACILITY_CLASS_RS_TUBER_F,
FACILITY_CLASS_RS_TUBER_M,
FACILITY_CLASS_RS_COOLTRAINER_M,
FACILITY_CLASS_RS_COOLTRAINER_F,
FACILITY_CLASS_HEX_MANIAC,
FACILITY_CLASS_RS_LADY,
FACILITY_CLASS_RS_BEAUTY,
FACILITY_CLASS_RICH_BOY,
FACILITY_CLASS_RS_POKEMANIAC,
FACILITY_CLASS_RS_SWIMMER_M,
FACILITY_CLASS_RS_BLACK_BELT,
FACILITY_CLASS_GUITARIST,
FACILITY_CLASS_KINDLER,
FACILITY_CLASS_RS_CAMPER,
FACILITY_CLASS_BUG_MANIAC,
FACILITY_CLASS_RS_PSYCHIC_M,
FACILITY_CLASS_RS_PSYCHIC_F,
FACILITY_CLASS_RS_GENTLEMAN,
FACILITY_CLASS_ELITE_FOUR_SIDNEY,
FACILITY_CLASS_ELITE_FOUR_PHOEBE,
FACILITY_CLASS_LEADER_ROXANNE,
FACILITY_CLASS_LEADER_BRAWLY,
FACILITY_CLASS_LEADER_TATE_AND_LIZA,
FACILITY_CLASS_SCHOOL_KID_M,
FACILITY_CLASS_SCHOOL_KID_F,
FACILITY_CLASS_SR_AND_JR,
FACILITY_CLASS_POKEFAN_M,
FACILITY_CLASS_POKEFAN_F,
FACILITY_CLASS_EXPERT_M,
FACILITY_CLASS_EXPERT_F,
FACILITY_CLASS_RS_YOUNGSTER,
FACILITY_CLASS_CHAMPION_STEVEN,
FACILITY_CLASS_RS_FISHERMAN,
FACILITY_CLASS_CYCLING_TRIATHLETE_M,
FACILITY_CLASS_CYCLING_TRIATHLETE_F,
FACILITY_CLASS_RUNNING_TRIATHLETE_M,
FACILITY_CLASS_RUNNING_TRIATHLETE_F,
FACILITY_CLASS_SWIMMING_TRIATHLETE_M,
FACILITY_CLASS_SWIMMING_TRIATHLETE_F,
FACILITY_CLASS_DRAGON_TAMER,
FACILITY_CLASS_RS_BIRD_KEEPER,
FACILITY_CLASS_NINJA_BOY,
FACILITY_CLASS_BATTLE_GIRL,
FACILITY_CLASS_PARASOL_LADY,
FACILITY_CLASS_RS_SWIMMER_F,
FACILITY_CLASS_RS_PICNICKER,
FACILITY_CLASS_RS_TWINS,
FACILITY_CLASS_RS_SAILOR,
FACILITY_CLASS_BOARDER_M,
FACILITY_CLASS_BOARDER_F,
FACILITY_CLASS_COLLECTOR,
FACILITY_CLASS_PKMN_TRAINER_WALLY,
FACILITY_CLASS_PKMN_TRAINER_BRENDAN,
FACILITY_CLASS_PKMN_TRAINER_BRENDAN_2,
FACILITY_CLASS_PKMN_TRAINER_BRENDAN_3,
FACILITY_CLASS_PKMN_TRAINER_MAY,
FACILITY_CLASS_PKMN_TRAINER_MAY_2,
FACILITY_CLASS_PKMN_TRAINER_MAY_3,
FACILITY_CLASS_RS_PKMN_BREEDER_M,
FACILITY_CLASS_RS_PKMN_BREEDER_F,
FACILITY_CLASS_RS_PKMN_RANGER_M,
FACILITY_CLASS_RS_PKMN_RANGER_F,
FACILITY_CLASS_MAGMA_LEADER_MAXIE,
FACILITY_CLASS_MAGMA_GRUNT_M,
FACILITY_CLASS_MAGMA_GRUNT_F,
FACILITY_CLASS_RS_LASS,
FACILITY_CLASS_RS_BUG_CATCHER,
FACILITY_CLASS_RS_HIKER,
FACILITY_CLASS_RS_YOUNG_COUPLE,
FACILITY_CLASS_OLD_COUPLE,
FACILITY_CLASS_RS_SIS_AND_BRO,
FACILITY_CLASS_AQUA_ADMIN_M,
FACILITY_CLASS_AQUA_ADMIN_F,
FACILITY_CLASS_MAGMA_ADMIN_M,
FACILITY_CLASS_MAGMA_ADMIN_F,
FACILITY_CLASS_LEADER_WATTSON,
FACILITY_CLASS_LEADER_FLANNERY,
FACILITY_CLASS_LEADER_NORMAN,
FACILITY_CLASS_LEADER_WINONA,
FACILITY_CLASS_LEADER_WALLACE,
FACILITY_CLASS_ELITE_FOUR_GLACIA,
FACILITY_CLASS_ELITE_FOUR_DRAKE,
FACILITY_CLASS_YOUNGSTER,
FACILITY_CLASS_BUG_CATCHER,
FACILITY_CLASS_LASS,
FACILITY_CLASS_SAILOR,
FACILITY_CLASS_CAMPER,
FACILITY_CLASS_PICNICKER,
FACILITY_CLASS_POKEMANIAC,
FACILITY_CLASS_SUPER_NERD,
FACILITY_CLASS_HIKER,
FACILITY_CLASS_BIKER,
FACILITY_CLASS_BURGLAR,
FACILITY_CLASS_ENGINEER,
FACILITY_CLASS_FISHERMAN,
FACILITY_CLASS_SWIMMER_M,
FACILITY_CLASS_CUE_BALL,
FACILITY_CLASS_GAMER,
FACILITY_CLASS_BEAUTY,
FACILITY_CLASS_SWIMMER_F,
FACILITY_CLASS_PSYCHIC_M,
FACILITY_CLASS_ROCKER,
FACILITY_CLASS_JUGGLER,
FACILITY_CLASS_TAMER,
FACILITY_CLASS_BIRD_KEEPER,
FACILITY_CLASS_BLACK_BELT,
FACILITY_CLASS_RIVAL_EARLY,
FACILITY_CLASS_SCIENTIST,
FACILITY_CLASS_BOSS,
FACILITY_CLASS_ROCKET_GRUNT_M,
FACILITY_CLASS_COOLTRAINER_M,
FACILITY_CLASS_COOLTRAINER_F,
FACILITY_CLASS_ELITE_FOUR_LORELEI,
FACILITY_CLASS_ELITE_FOUR_BRUNO,
FACILITY_CLASS_LEADER_M,
FACILITY_CLASS_LEADER_F,
FACILITY_CLASS_GENTLEMAN,
FACILITY_CLASS_RIVAL_LATE,
FACILITY_CLASS_CHAMPION_RIVAL,
FACILITY_CLASS_CHANNELER,
FACILITY_CLASS_TWINS,
FACILITY_CLASS_COOL_COUPLE,
FACILITY_CLASS_YOUNG_COUPLE,
FACILITY_CLASS_CRUSH_KIN,
FACILITY_CLASS_SIS_AND_BRO,
FACILITY_CLASS_PKMN_PROF,
FACILITY_CLASS_BRENDAN,
FACILITY_CLASS_MAY,
FACILITY_CLASS_RED,
FACILITY_CLASS_LEAF,
FACILITY_CLASS_ROCKET_GRUNT_F,
FACILITY_CLASS_PSYCHIC_F,
FACILITY_CLASS_CRUSH_GIRL,
FACILITY_CLASS_TUBER_F,
FACILITY_CLASS_TUBER_M,
FACILITY_CLASS_PKMN_BREEDER_F,
FACILITY_CLASS_PKMN_BREEDER_M,
FACILITY_CLASS_PKMN_RANGER_M,
FACILITY_CLASS_PKMN_RANGER_F,
FACILITY_CLASS_AROMA_LADY,
FACILITY_CLASS_RUIN_MANIAC,
FACILITY_CLASS_LADY,
FACILITY_CLASS_PAINTER,
FACILITY_CLASS_ELITE_FOUR_AGATHA,
FACILITY_CLASS_ELITE_FOUR_LANCE,
FACILITY_CLASS_CHAMPION_RIVAL_2,
};
#define TRAINER_GENDER_MALE 0
#define TRAINER_GENDER_FEMALE 1
enum TrainerGender
{
TRAINER_GENDER_MALE,
TRAINER_GENDER_FEMALE,
};
// Trainer party defines
#define TRAINER_MON_MALE 1
#define TRAINER_MON_FEMALE 2
#define TRAINER_MON_RANDOM_GENDER 3
// All trainer parties specify the IV, level, and species for each Pokémon in the
// party. Some trainer parties also specify held items and custom moves for each
// Pokémon.
#define F_TRAINER_PARTY_CUSTOM_MOVESET (1 << 0)
#define F_TRAINER_PARTY_HELD_ITEM (1 << 1)
#endif // GUARD_CONSTANTS_TRAINERS_H

View File

@ -25,3 +25,5 @@ enum TrainerPicID GetPlayerTrainerPic(enum Gender gender, enum GameVersion versi
return GetKantoTrainerPic(gender);
}
}
STATIC_ASSERT(TRAINERS_COUNT <= MAX_TRAINERS_COUNT, tooManyTrainers);