mirror of
https://github.com/rh-hideout/pokeemerald-expansion.git
synced 2026-03-21 18:04:50 -05:00
Merge 42dc328ab3 into 264d99215b
This commit is contained in:
commit
3288e613b5
BIN
graphics/trainers/back_pics/none.png
Normal file
BIN
graphics/trainers/back_pics/none.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 383 B |
BIN
graphics/trainers/front_pics/none.png
Normal file
BIN
graphics/trainers/front_pics/none.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 385 B |
19
graphics/trainers/palettes/none.pal
Normal file
19
graphics/trainers/palettes/none.pal
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
JASC-PAL
|
||||
0100
|
||||
16
|
||||
156 205 205
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
205 205 205
|
||||
172 172 172
|
||||
255 255 255
|
||||
0 0 0
|
||||
|
|
@ -14,9 +14,9 @@ bool8 IsBattleSEPlaying(enum BattlerId battler);
|
|||
void BattleLoadMonSpriteGfx(struct Pokemon *mon, enum BattlerId battler);
|
||||
void DecompressGhostFrontPic(enum BattlerId battler);
|
||||
void BattleGfxSfxDummy2(enum Species species);
|
||||
void DecompressTrainerFrontPic(u16 frontPicId, enum BattlerId battler);
|
||||
void DecompressTrainerBackPic(enum TrainerPicID backPicId, enum BattlerId battler);
|
||||
void FreeTrainerFrontPicPalette(u16 frontPicId);
|
||||
void DecompressTrainerFrontPic(enum TrainerPicID trainerPicId, enum BattlerId battler);
|
||||
void DecompressTrainerBackPic(enum TrainerPicID trainerPicId, enum BattlerId battler);
|
||||
void FreeTrainerFrontPicPalette(enum TrainerPicID trainerPicId);
|
||||
bool8 BattleLoadAllHealthBoxesGfx(u8 state);
|
||||
void LoadBattleBarGfx(u8 unused);
|
||||
bool8 BattleInitAllSprites(u8 *state1, u8 *battler);
|
||||
|
|
|
|||
|
|
@ -17,179 +17,167 @@
|
|||
|
||||
enum __attribute__((packed)) TrainerPicID
|
||||
{
|
||||
TRAINER_PIC_FRONT_HIKER,
|
||||
TRAINER_PIC_FRONT_AQUA_GRUNT_M,
|
||||
TRAINER_PIC_FRONT_POKEMON_BREEDER_F,
|
||||
TRAINER_PIC_FRONT_COOLTRAINER_M,
|
||||
TRAINER_PIC_FRONT_BIRD_KEEPER,
|
||||
TRAINER_PIC_FRONT_COLLECTOR,
|
||||
TRAINER_PIC_FRONT_AQUA_GRUNT_F,
|
||||
TRAINER_PIC_FRONT_SWIMMER_M,
|
||||
TRAINER_PIC_FRONT_MAGMA_GRUNT_M,
|
||||
TRAINER_PIC_FRONT_EXPERT_M,
|
||||
TRAINER_PIC_FRONT_AQUA_ADMIN_M,
|
||||
TRAINER_PIC_FRONT_BLACK_BELT,
|
||||
TRAINER_PIC_FRONT_AQUA_ADMIN_F,
|
||||
TRAINER_PIC_FRONT_AQUA_LEADER_ARCHIE,
|
||||
TRAINER_PIC_FRONT_HEX_MANIAC,
|
||||
TRAINER_PIC_FRONT_AROMA_LADY,
|
||||
TRAINER_PIC_FRONT_RUIN_MANIAC,
|
||||
TRAINER_PIC_FRONT_INTERVIEWER,
|
||||
TRAINER_PIC_FRONT_TUBER_F,
|
||||
TRAINER_PIC_FRONT_TUBER_M,
|
||||
TRAINER_PIC_FRONT_COOLTRAINER_F,
|
||||
TRAINER_PIC_FRONT_LADY,
|
||||
TRAINER_PIC_FRONT_BEAUTY,
|
||||
TRAINER_PIC_FRONT_RICH_BOY,
|
||||
TRAINER_PIC_FRONT_EXPERT_F,
|
||||
TRAINER_PIC_FRONT_POKEMANIAC,
|
||||
TRAINER_PIC_FRONT_MAGMA_GRUNT_F,
|
||||
TRAINER_PIC_FRONT_GUITARIST,
|
||||
TRAINER_PIC_FRONT_KINDLER,
|
||||
TRAINER_PIC_FRONT_CAMPER,
|
||||
TRAINER_PIC_FRONT_PICNICKER,
|
||||
TRAINER_PIC_FRONT_BUG_MANIAC,
|
||||
TRAINER_PIC_FRONT_POKEMON_BREEDER_M,
|
||||
TRAINER_PIC_FRONT_PSYCHIC_M,
|
||||
TRAINER_PIC_FRONT_PSYCHIC_F,
|
||||
TRAINER_PIC_FRONT_GENTLEMAN,
|
||||
TRAINER_PIC_FRONT_ELITE_FOUR_SIDNEY,
|
||||
TRAINER_PIC_FRONT_ELITE_FOUR_PHOEBE,
|
||||
TRAINER_PIC_FRONT_ELITE_FOUR_GLACIA,
|
||||
TRAINER_PIC_FRONT_ELITE_FOUR_DRAKE,
|
||||
TRAINER_PIC_FRONT_LEADER_ROXANNE,
|
||||
TRAINER_PIC_FRONT_LEADER_BRAWLY,
|
||||
TRAINER_PIC_FRONT_LEADER_WATTSON,
|
||||
TRAINER_PIC_FRONT_LEADER_FLANNERY,
|
||||
TRAINER_PIC_FRONT_LEADER_NORMAN,
|
||||
TRAINER_PIC_FRONT_LEADER_WINONA,
|
||||
TRAINER_PIC_FRONT_LEADER_TATE_AND_LIZA,
|
||||
TRAINER_PIC_FRONT_LEADER_JUAN,
|
||||
TRAINER_PIC_FRONT_SCHOOL_KID_M,
|
||||
TRAINER_PIC_FRONT_SCHOOL_KID_F,
|
||||
TRAINER_PIC_FRONT_SR_AND_JR,
|
||||
TRAINER_PIC_FRONT_POKEFAN_M,
|
||||
TRAINER_PIC_FRONT_POKEFAN_F,
|
||||
TRAINER_PIC_FRONT_YOUNGSTER,
|
||||
TRAINER_PIC_FRONT_CHAMPION_WALLACE,
|
||||
TRAINER_PIC_FRONT_FISHERMAN,
|
||||
TRAINER_PIC_FRONT_CYCLING_TRIATHLETE_M,
|
||||
TRAINER_PIC_FRONT_CYCLING_TRIATHLETE_F,
|
||||
TRAINER_PIC_FRONT_RUNNING_TRIATHLETE_M,
|
||||
TRAINER_PIC_FRONT_RUNNING_TRIATHLETE_F,
|
||||
TRAINER_PIC_FRONT_SWIMMING_TRIATHLETE_M,
|
||||
TRAINER_PIC_FRONT_SWIMMING_TRIATHLETE_F,
|
||||
TRAINER_PIC_FRONT_DRAGON_TAMER,
|
||||
TRAINER_PIC_FRONT_NINJA_BOY,
|
||||
TRAINER_PIC_FRONT_BATTLE_GIRL,
|
||||
TRAINER_PIC_FRONT_PARASOL_LADY,
|
||||
TRAINER_PIC_FRONT_SWIMMER_F,
|
||||
TRAINER_PIC_FRONT_TWINS,
|
||||
TRAINER_PIC_FRONT_SAILOR,
|
||||
TRAINER_PIC_FRONT_MAGMA_ADMIN,
|
||||
TRAINER_PIC_FRONT_WALLY,
|
||||
TRAINER_PIC_FRONT_BRENDAN,
|
||||
TRAINER_PIC_FRONT_MAY,
|
||||
TRAINER_PIC_FRONT_BUG_CATCHER,
|
||||
TRAINER_PIC_FRONT_POKEMON_RANGER_M,
|
||||
TRAINER_PIC_FRONT_POKEMON_RANGER_F,
|
||||
TRAINER_PIC_FRONT_MAGMA_LEADER_MAXIE,
|
||||
TRAINER_PIC_FRONT_LASS,
|
||||
TRAINER_PIC_FRONT_YOUNG_COUPLE,
|
||||
TRAINER_PIC_FRONT_OLD_COUPLE,
|
||||
TRAINER_PIC_FRONT_SIS_AND_BRO,
|
||||
TRAINER_PIC_FRONT_STEVEN,
|
||||
TRAINER_PIC_FRONT_SALON_MAIDEN_ANABEL,
|
||||
TRAINER_PIC_FRONT_DOME_ACE_TUCKER,
|
||||
TRAINER_PIC_FRONT_PALACE_MAVEN_SPENSER,
|
||||
TRAINER_PIC_FRONT_ARENA_TYCOON_GRETA,
|
||||
TRAINER_PIC_FRONT_FACTORY_HEAD_NOLAND,
|
||||
TRAINER_PIC_FRONT_PIKE_QUEEN_LUCY,
|
||||
TRAINER_PIC_FRONT_PYRAMID_KING_BRANDON,
|
||||
TRAINER_PIC_FRONT_RED,
|
||||
TRAINER_PIC_FRONT_LEAF,
|
||||
TRAINER_PIC_FRONT_RS_BRENDAN,
|
||||
TRAINER_PIC_FRONT_RS_MAY,
|
||||
TRAINER_PIC_FRONT_POKEMON_RANGER_M_FRLG,
|
||||
TRAINER_PIC_FRONT_AROMA_LADY_FRLG,
|
||||
TRAINER_PIC_FRONT_YOUNGSTER_FRLG,
|
||||
TRAINER_PIC_FRONT_BUG_CATCHER_FRLG,
|
||||
TRAINER_PIC_FRONT_LASS_FRLG,
|
||||
TRAINER_PIC_FRONT_SAILOR_FRLG,
|
||||
TRAINER_PIC_FRONT_CAMPER_FRLG,
|
||||
TRAINER_PIC_FRONT_PICNICKER_FRLG,
|
||||
TRAINER_PIC_FRONT_POKEMANIAC_FRLG,
|
||||
TRAINER_PIC_FRONT_HIKER_FRLG,
|
||||
TRAINER_PIC_FRONT_FISHERMAN_FRLG,
|
||||
TRAINER_PIC_FRONT_SWIMMER_M_FRLG,
|
||||
TRAINER_PIC_FRONT_BEAUTY_FRLG,
|
||||
TRAINER_PIC_FRONT_SWIMMER_F_FRLG,
|
||||
TRAINER_PIC_FRONT_PSYCHIC_M_FRLG,
|
||||
TRAINER_PIC_FRONT_BIRD_KEEPER_FRLG,
|
||||
TRAINER_PIC_FRONT_BLACK_BELT_FRLG,
|
||||
TRAINER_PIC_FRONT_COOLTRAINER_M_FRLG,
|
||||
TRAINER_PIC_FRONT_COOLTRAINER_F_FRLG,
|
||||
TRAINER_PIC_FRONT_GENTLEMAN_FRLG,
|
||||
TRAINER_PIC_FRONT_TWINS_FRLG,
|
||||
TRAINER_PIC_FRONT_YOUNG_COUPLE_FRLG,
|
||||
TRAINER_PIC_FRONT_SIS_AND_BRO_FRLG,
|
||||
TRAINER_PIC_FRONT_PSYCHIC_F_FRLG,
|
||||
TRAINER_PIC_FRONT_TUBER_F_FRLG,
|
||||
TRAINER_PIC_FRONT_POKEMON_RANGER_F_FRLG,
|
||||
TRAINER_PIC_FRONT_RUIN_MANIAC_FRLG,
|
||||
TRAINER_PIC_FRONT_LADY_FRLG,
|
||||
TRAINER_PIC_FRONT_SUPER_NERD_FRLG,
|
||||
TRAINER_PIC_FRONT_BIKER_FRLG,
|
||||
TRAINER_PIC_FRONT_BURGLAR_FRLG,
|
||||
TRAINER_PIC_FRONT_ENGINEER_FRLG,
|
||||
TRAINER_PIC_FRONT_CUE_BALL_FRLG,
|
||||
TRAINER_PIC_FRONT_GAMER_FRLG,
|
||||
TRAINER_PIC_FRONT_ROCKER_FRLG,
|
||||
TRAINER_PIC_FRONT_JUGGLER_FRLG,
|
||||
TRAINER_PIC_FRONT_TAMER_FRLG,
|
||||
TRAINER_PIC_FRONT_RIVAL_EARLY_FRLG,
|
||||
TRAINER_PIC_FRONT_SCIENTIST_FRLG,
|
||||
TRAINER_PIC_FRONT_LEADER_GIOVANNI_FRLG,
|
||||
TRAINER_PIC_FRONT_ROCKET_GRUNT_M_FRLG,
|
||||
TRAINER_PIC_FRONT_ELITE_FOUR_LORELEI_FRLG,
|
||||
TRAINER_PIC_FRONT_ELITE_FOUR_BRUNO_FRLG,
|
||||
TRAINER_PIC_FRONT_ELITE_FOUR_AGATHA_FRLG,
|
||||
TRAINER_PIC_FRONT_ELITE_FOUR_LANCE_FRLG,
|
||||
TRAINER_PIC_FRONT_LEADER_BROCK_FRLG,
|
||||
TRAINER_PIC_FRONT_LEADER_MISTY_FRLG,
|
||||
TRAINER_PIC_FRONT_LEADER_LT_SURGE_FRLG,
|
||||
TRAINER_PIC_FRONT_LEADER_ERIKA_FRLG,
|
||||
TRAINER_PIC_FRONT_LEADER_KOGA_FRLG,
|
||||
TRAINER_PIC_FRONT_LEADER_BLAINE_FRLG,
|
||||
TRAINER_PIC_FRONT_LEADER_SABRINA_FRLG,
|
||||
TRAINER_PIC_FRONT_RIVAL_LATE_FRLG,
|
||||
TRAINER_PIC_FRONT_CHAMPION_RIVAL_FRLG,
|
||||
TRAINER_PIC_FRONT_CHANNELER_FRLG,
|
||||
TRAINER_PIC_FRONT_COOL_COUPLE_FRLG,
|
||||
TRAINER_PIC_FRONT_CRUSH_KIN_FRLG,
|
||||
TRAINER_PIC_FRONT_PROFESSOR_OAK_FRLG,
|
||||
TRAINER_PIC_FRONT_ROCKET_GRUNT_F_FRLG,
|
||||
TRAINER_PIC_FRONT_CRUSH_GIRL_FRLG,
|
||||
TRAINER_PIC_FRONT_POKEMON_BREEDER_FRLG,
|
||||
TRAINER_PIC_FRONT_PAINTER_FRLG,
|
||||
TRAINER_PIC_FRONT_COUNT,
|
||||
TRAINER_PIC_BACK_BRENDAN = TRAINER_PIC_FRONT_COUNT, // The player back pics are assumed to alternate according to the gender values (MALE/FEMALE)
|
||||
TRAINER_PIC_BACK_MAY,
|
||||
TRAINER_PIC_BACK_RED,
|
||||
TRAINER_PIC_BACK_LEAF,
|
||||
TRAINER_PIC_BACK_RUBY_SAPPHIRE_BRENDAN,
|
||||
TRAINER_PIC_BACK_RUBY_SAPPHIRE_MAY,
|
||||
TRAINER_PIC_BACK_WALLY,
|
||||
TRAINER_PIC_BACK_STEVEN,
|
||||
TRAINER_PIC_BACK_POKEDUDE,
|
||||
TRAINER_PIC_BACK_OLD_MAN,
|
||||
TRAINER_PIC_NONE,
|
||||
TRAINER_PIC_BRENDAN, // The player back pics are assumed to alternate according to the gender values (MALE/FEMALE)
|
||||
TRAINER_PIC_MAY,
|
||||
TRAINER_PIC_RED,
|
||||
TRAINER_PIC_LEAF,
|
||||
TRAINER_PIC_RS_BRENDAN,
|
||||
TRAINER_PIC_RS_MAY,
|
||||
TRAINER_PIC_WALLY,
|
||||
TRAINER_PIC_STEVEN,
|
||||
TRAINER_PIC_POKEDUDE,
|
||||
TRAINER_PIC_OLD_MAN,
|
||||
TRAINER_PIC_HIKER,
|
||||
TRAINER_PIC_AQUA_GRUNT_M,
|
||||
TRAINER_PIC_POKEMON_BREEDER_F,
|
||||
TRAINER_PIC_COOLTRAINER_M,
|
||||
TRAINER_PIC_BIRD_KEEPER,
|
||||
TRAINER_PIC_COLLECTOR,
|
||||
TRAINER_PIC_AQUA_GRUNT_F,
|
||||
TRAINER_PIC_SWIMMER_M,
|
||||
TRAINER_PIC_MAGMA_GRUNT_M,
|
||||
TRAINER_PIC_EXPERT_M,
|
||||
TRAINER_PIC_AQUA_ADMIN_M,
|
||||
TRAINER_PIC_BLACK_BELT,
|
||||
TRAINER_PIC_AQUA_ADMIN_F,
|
||||
TRAINER_PIC_AQUA_LEADER_ARCHIE,
|
||||
TRAINER_PIC_HEX_MANIAC,
|
||||
TRAINER_PIC_AROMA_LADY,
|
||||
TRAINER_PIC_RUIN_MANIAC,
|
||||
TRAINER_PIC_INTERVIEWER,
|
||||
TRAINER_PIC_TUBER_F,
|
||||
TRAINER_PIC_TUBER_M,
|
||||
TRAINER_PIC_COOLTRAINER_F,
|
||||
TRAINER_PIC_LADY,
|
||||
TRAINER_PIC_BEAUTY,
|
||||
TRAINER_PIC_RICH_BOY,
|
||||
TRAINER_PIC_EXPERT_F,
|
||||
TRAINER_PIC_POKEMANIAC,
|
||||
TRAINER_PIC_MAGMA_GRUNT_F,
|
||||
TRAINER_PIC_GUITARIST,
|
||||
TRAINER_PIC_KINDLER,
|
||||
TRAINER_PIC_CAMPER,
|
||||
TRAINER_PIC_PICNICKER,
|
||||
TRAINER_PIC_BUG_MANIAC,
|
||||
TRAINER_PIC_POKEMON_BREEDER_M,
|
||||
TRAINER_PIC_PSYCHIC_M,
|
||||
TRAINER_PIC_PSYCHIC_F,
|
||||
TRAINER_PIC_GENTLEMAN,
|
||||
TRAINER_PIC_ELITE_FOUR_SIDNEY,
|
||||
TRAINER_PIC_ELITE_FOUR_PHOEBE,
|
||||
TRAINER_PIC_ELITE_FOUR_GLACIA,
|
||||
TRAINER_PIC_ELITE_FOUR_DRAKE,
|
||||
TRAINER_PIC_LEADER_ROXANNE,
|
||||
TRAINER_PIC_LEADER_BRAWLY,
|
||||
TRAINER_PIC_LEADER_WATTSON,
|
||||
TRAINER_PIC_LEADER_FLANNERY,
|
||||
TRAINER_PIC_LEADER_NORMAN,
|
||||
TRAINER_PIC_LEADER_WINONA,
|
||||
TRAINER_PIC_LEADER_TATE_AND_LIZA,
|
||||
TRAINER_PIC_LEADER_JUAN,
|
||||
TRAINER_PIC_SCHOOL_KID_M,
|
||||
TRAINER_PIC_SCHOOL_KID_F,
|
||||
TRAINER_PIC_SR_AND_JR,
|
||||
TRAINER_PIC_POKEFAN_M,
|
||||
TRAINER_PIC_POKEFAN_F,
|
||||
TRAINER_PIC_YOUNGSTER,
|
||||
TRAINER_PIC_CHAMPION_WALLACE,
|
||||
TRAINER_PIC_FISHERMAN,
|
||||
TRAINER_PIC_CYCLING_TRIATHLETE_M,
|
||||
TRAINER_PIC_CYCLING_TRIATHLETE_F,
|
||||
TRAINER_PIC_RUNNING_TRIATHLETE_M,
|
||||
TRAINER_PIC_RUNNING_TRIATHLETE_F,
|
||||
TRAINER_PIC_SWIMMING_TRIATHLETE_M,
|
||||
TRAINER_PIC_SWIMMING_TRIATHLETE_F,
|
||||
TRAINER_PIC_DRAGON_TAMER,
|
||||
TRAINER_PIC_NINJA_BOY,
|
||||
TRAINER_PIC_BATTLE_GIRL,
|
||||
TRAINER_PIC_PARASOL_LADY,
|
||||
TRAINER_PIC_SWIMMER_F,
|
||||
TRAINER_PIC_TWINS,
|
||||
TRAINER_PIC_SAILOR,
|
||||
TRAINER_PIC_MAGMA_ADMIN,
|
||||
TRAINER_PIC_BUG_CATCHER,
|
||||
TRAINER_PIC_POKEMON_RANGER_M,
|
||||
TRAINER_PIC_POKEMON_RANGER_F,
|
||||
TRAINER_PIC_MAGMA_LEADER_MAXIE,
|
||||
TRAINER_PIC_LASS,
|
||||
TRAINER_PIC_YOUNG_COUPLE,
|
||||
TRAINER_PIC_OLD_COUPLE,
|
||||
TRAINER_PIC_SIS_AND_BRO,
|
||||
TRAINER_PIC_SALON_MAIDEN_ANABEL,
|
||||
TRAINER_PIC_DOME_ACE_TUCKER,
|
||||
TRAINER_PIC_PALACE_MAVEN_SPENSER,
|
||||
TRAINER_PIC_ARENA_TYCOON_GRETA,
|
||||
TRAINER_PIC_FACTORY_HEAD_NOLAND,
|
||||
TRAINER_PIC_PIKE_QUEEN_LUCY,
|
||||
TRAINER_PIC_PYRAMID_KING_BRANDON,
|
||||
TRAINER_PIC_POKEMON_RANGER_M_FRLG,
|
||||
TRAINER_PIC_AROMA_LADY_FRLG,
|
||||
TRAINER_PIC_YOUNGSTER_FRLG,
|
||||
TRAINER_PIC_BUG_CATCHER_FRLG,
|
||||
TRAINER_PIC_LASS_FRLG,
|
||||
TRAINER_PIC_SAILOR_FRLG,
|
||||
TRAINER_PIC_CAMPER_FRLG,
|
||||
TRAINER_PIC_PICNICKER_FRLG,
|
||||
TRAINER_PIC_POKEMANIAC_FRLG,
|
||||
TRAINER_PIC_HIKER_FRLG,
|
||||
TRAINER_PIC_FISHERMAN_FRLG,
|
||||
TRAINER_PIC_SWIMMER_M_FRLG,
|
||||
TRAINER_PIC_BEAUTY_FRLG,
|
||||
TRAINER_PIC_SWIMMER_F_FRLG,
|
||||
TRAINER_PIC_PSYCHIC_M_FRLG,
|
||||
TRAINER_PIC_BIRD_KEEPER_FRLG,
|
||||
TRAINER_PIC_BLACK_BELT_FRLG,
|
||||
TRAINER_PIC_COOLTRAINER_M_FRLG,
|
||||
TRAINER_PIC_COOLTRAINER_F_FRLG,
|
||||
TRAINER_PIC_GENTLEMAN_FRLG,
|
||||
TRAINER_PIC_TWINS_FRLG,
|
||||
TRAINER_PIC_YOUNG_COUPLE_FRLG,
|
||||
TRAINER_PIC_SIS_AND_BRO_FRLG,
|
||||
TRAINER_PIC_PSYCHIC_F_FRLG,
|
||||
TRAINER_PIC_TUBER_F_FRLG,
|
||||
TRAINER_PIC_POKEMON_RANGER_F_FRLG,
|
||||
TRAINER_PIC_RUIN_MANIAC_FRLG,
|
||||
TRAINER_PIC_LADY_FRLG,
|
||||
TRAINER_PIC_SUPER_NERD_FRLG,
|
||||
TRAINER_PIC_BIKER_FRLG,
|
||||
TRAINER_PIC_BURGLAR_FRLG,
|
||||
TRAINER_PIC_ENGINEER_FRLG,
|
||||
TRAINER_PIC_CUE_BALL_FRLG,
|
||||
TRAINER_PIC_GAMER_FRLG,
|
||||
TRAINER_PIC_ROCKER_FRLG,
|
||||
TRAINER_PIC_JUGGLER_FRLG,
|
||||
TRAINER_PIC_TAMER_FRLG,
|
||||
TRAINER_PIC_RIVAL_EARLY_FRLG,
|
||||
TRAINER_PIC_SCIENTIST_FRLG,
|
||||
TRAINER_PIC_LEADER_GIOVANNI_FRLG,
|
||||
TRAINER_PIC_ROCKET_GRUNT_M_FRLG,
|
||||
TRAINER_PIC_ELITE_FOUR_LORELEI_FRLG,
|
||||
TRAINER_PIC_ELITE_FOUR_BRUNO_FRLG,
|
||||
TRAINER_PIC_ELITE_FOUR_AGATHA_FRLG,
|
||||
TRAINER_PIC_ELITE_FOUR_LANCE_FRLG,
|
||||
TRAINER_PIC_LEADER_BROCK_FRLG,
|
||||
TRAINER_PIC_LEADER_MISTY_FRLG,
|
||||
TRAINER_PIC_LEADER_LT_SURGE_FRLG,
|
||||
TRAINER_PIC_LEADER_ERIKA_FRLG,
|
||||
TRAINER_PIC_LEADER_KOGA_FRLG,
|
||||
TRAINER_PIC_LEADER_BLAINE_FRLG,
|
||||
TRAINER_PIC_LEADER_SABRINA_FRLG,
|
||||
TRAINER_PIC_RIVAL_LATE_FRLG,
|
||||
TRAINER_PIC_CHAMPION_RIVAL_FRLG,
|
||||
TRAINER_PIC_CHANNELER_FRLG,
|
||||
TRAINER_PIC_COOL_COUPLE_FRLG,
|
||||
TRAINER_PIC_CRUSH_KIN_FRLG,
|
||||
TRAINER_PIC_PROFESSOR_OAK_FRLG,
|
||||
TRAINER_PIC_ROCKET_GRUNT_F_FRLG,
|
||||
TRAINER_PIC_CRUSH_GIRL_FRLG,
|
||||
TRAINER_PIC_POKEMON_BREEDER_FRLG,
|
||||
TRAINER_PIC_PAINTER_FRLG,
|
||||
TRAINER_PIC_COUNT,
|
||||
TRAINER_PIC_BACK_COUNT = (TRAINER_PIC_COUNT - TRAINER_PIC_FRONT_COUNT),
|
||||
};
|
||||
|
||||
#define TRAINER_BACK_PIC_PLAYER_MALE (IS_FRLG ? TRAINER_PIC_BACK_RED : TRAINER_PIC_BACK_BRENDAN)
|
||||
#define TRAINER_BACK_PIC_PLAYER_FEMALE (IS_FRLG ? TRAINER_PIC_BACK_LEAF : TRAINER_PIC_BACK_MAY)
|
||||
|
||||
enum
|
||||
{
|
||||
FACILITY_CLASS_HIKER,
|
||||
|
|
|
|||
102
include/data.h
102
include/data.h
|
|
@ -31,24 +31,29 @@ struct MonCoords
|
|||
u8 y_offset;
|
||||
};
|
||||
|
||||
struct TrainerSprite
|
||||
struct TrainerFrontPicInfo
|
||||
{
|
||||
u8 y_offset;
|
||||
struct CompressedSpriteSheet frontPic;
|
||||
struct SpritePalette palette;
|
||||
const u32 *imageData;
|
||||
const u16 *paletteData;
|
||||
const union AnimCmd *const *const animation;
|
||||
const struct Coords16 mugshotCoords;
|
||||
s16 mugshotRotation;
|
||||
};
|
||||
|
||||
struct TrainerBacksprite
|
||||
struct TrainerBackPicInfo
|
||||
{
|
||||
const struct MonCoords coordinates;
|
||||
const struct SpriteFrameImage backPic;
|
||||
const struct SpritePalette palette;
|
||||
const struct SpriteFrameImage image;
|
||||
const u16 *paletteData;
|
||||
const union AnimCmd *const *const animation;
|
||||
};
|
||||
|
||||
struct TrainerPicInfo
|
||||
{
|
||||
const struct TrainerFrontPicInfo *frontPic;
|
||||
const struct TrainerBackPicInfo *backPic;
|
||||
};
|
||||
|
||||
#define MON_COORDS_SIZE(width, height) (DIV_ROUND_UP(width, 8) << 4 | DIV_ROUND_UP(height, 8))
|
||||
#define GET_MON_COORDS_WIDTH(size) ((size >> 4) * 8)
|
||||
#define GET_MON_COORDS_HEIGHT(size) ((size & 0xF) * 8)
|
||||
|
|
@ -132,7 +137,6 @@ struct Trainer
|
|||
u8 poolPickIndex;
|
||||
u8 poolPruneIndex;
|
||||
u16 overrideTrainer;
|
||||
enum TrainerPicID trainerBackPic;
|
||||
};
|
||||
|
||||
struct TrainerClass
|
||||
|
|
@ -203,8 +207,7 @@ extern const union AnimCmd sAnim_GeneralFrame0[];
|
|||
extern const union AnimCmd sAnim_GeneralFrame3[];
|
||||
extern const union AnimCmd *const gAnims_MonPic[];
|
||||
extern const union AnimCmd *const gAnims_Trainer[];
|
||||
extern const struct TrainerSprite gTrainerSprites[];
|
||||
extern const struct TrainerBacksprite gTrainerBacksprites[];
|
||||
extern const struct TrainerPicInfo gTrainerPicInfo[TRAINER_PIC_COUNT];
|
||||
|
||||
extern const struct Trainer gTrainers[DIFFICULTY_COUNT][TRAINERS_COUNT];
|
||||
extern const struct Trainer gBattlePartners[DIFFICULTY_COUNT][PARTNER_COUNT];
|
||||
|
|
@ -305,16 +308,6 @@ static inline const enum TrainerPicID GetTrainerPicFromId(u16 trainerId)
|
|||
return GetTrainerStructFromId(trainerId)->trainerPic;
|
||||
}
|
||||
|
||||
static inline const u8 GetTrainerBackPicFromId(u16 trainerId)
|
||||
{
|
||||
enum DifficultyLevel partnerDifficulty = GetBattlePartnerDifficultyLevel(trainerId);
|
||||
|
||||
if (trainerId > TRAINER_PARTNER(PARTNER_NONE))
|
||||
return gBattlePartners[partnerDifficulty][trainerId - TRAINER_PARTNER(PARTNER_NONE)].trainerBackPic;
|
||||
|
||||
return GetTrainerStructFromId(trainerId)->trainerBackPic;
|
||||
}
|
||||
|
||||
static inline const struct StartingStatuses GetTrainerStartingStatusFromId(u16 trainerId)
|
||||
{
|
||||
return GetTrainerStructFromId(trainerId)->startingStatus;
|
||||
|
|
@ -355,4 +348,73 @@ static inline const u64 GetTrainerAIFlagsFromId(u16 trainerId)
|
|||
return GetTrainerStructFromId(trainerId)->aiFlags;
|
||||
}
|
||||
|
||||
static inline enum TrainerPicID SanitizeTrainerPic(enum TrainerPicID trainerPicID)
|
||||
{
|
||||
assertf(trainerPicID < TRAINER_PIC_COUNT, "trainerPicID %d out of range", trainerPicID)
|
||||
{
|
||||
return TRAINER_PIC_NONE;
|
||||
};
|
||||
return trainerPicID;
|
||||
}
|
||||
|
||||
static inline enum TrainerPicID SanitizeFrontTrainerPic(enum TrainerPicID trainerPicID)
|
||||
{
|
||||
trainerPicID = SanitizeTrainerPic(trainerPicID);
|
||||
assertf(gTrainerPicInfo[trainerPicID].frontPic != NULL, "trainerPicID %d does not have a front pic defined", trainerPicID)
|
||||
{
|
||||
return TRAINER_PIC_NONE;
|
||||
}
|
||||
return trainerPicID;
|
||||
}
|
||||
|
||||
static inline enum TrainerPicID SanitizeBackTrainerPic(enum TrainerPicID trainerPicID)
|
||||
{
|
||||
trainerPicID = SanitizeTrainerPic(trainerPicID);
|
||||
assertf(gTrainerPicInfo[trainerPicID].backPic != NULL, "trainerPicID %d does not have a back pic defined", trainerPicID)
|
||||
{
|
||||
return TRAINER_PIC_NONE;
|
||||
}
|
||||
return trainerPicID;
|
||||
}
|
||||
|
||||
static inline const u32 *GetTrainerFrontPicData(enum TrainerPicID trainerPic)
|
||||
{
|
||||
return gTrainerPicInfo[SanitizeFrontTrainerPic(trainerPic)].frontPic->imageData;
|
||||
}
|
||||
|
||||
static inline const u16 *GetTrainerFrontPicPalette(enum TrainerPicID trainerPic)
|
||||
{
|
||||
return gTrainerPicInfo[SanitizeFrontTrainerPic(trainerPic)].frontPic->paletteData;
|
||||
}
|
||||
|
||||
static inline const struct Coords16 GetTrainerFrontPicMugshotCoords(enum TrainerPicID trainerPic)
|
||||
{
|
||||
return gTrainerPicInfo[SanitizeFrontTrainerPic(trainerPic)].frontPic->mugshotCoords;
|
||||
}
|
||||
|
||||
static inline s16 GetTrainerFrontPicMugshotRotation(enum TrainerPicID trainerPic)
|
||||
{
|
||||
return gTrainerPicInfo[SanitizeFrontTrainerPic(trainerPic)].frontPic->mugshotRotation;
|
||||
}
|
||||
|
||||
static inline const struct MonCoords *GetTrainerBackPicCoords(enum TrainerPicID trainerPic)
|
||||
{
|
||||
return &gTrainerPicInfo[SanitizeBackTrainerPic(trainerPic)].backPic->coordinates;
|
||||
}
|
||||
|
||||
static inline const struct SpriteFrameImage *GetTrainerBackPicImage(enum TrainerPicID trainerPic)
|
||||
{
|
||||
return &gTrainerPicInfo[SanitizeBackTrainerPic(trainerPic)].backPic->image;
|
||||
}
|
||||
|
||||
static inline const union AnimCmd *const *GetTrainerBackPicAnims(enum TrainerPicID trainerPic)
|
||||
{
|
||||
return gTrainerPicInfo[SanitizeBackTrainerPic(trainerPic)].backPic->animation;
|
||||
}
|
||||
|
||||
static inline const u16 *GetTrainerBackPicPalette(enum TrainerPicID trainerPic)
|
||||
{
|
||||
return gTrainerPicInfo[SanitizeBackTrainerPic(trainerPic)].backPic->paletteData;
|
||||
}
|
||||
|
||||
#endif // GUARD_DATA_H
|
||||
|
|
|
|||
|
|
@ -74,8 +74,6 @@ u32 LoadCompressedSpriteSheetByTemplate(const struct SpriteTemplate *template, s
|
|||
u32 LoadCompressedSpriteSheetOverrideBuffer(const struct CompressedSpriteSheet *src, void *buffer);
|
||||
bool8 LoadCompressedSpriteSheetUsingHeap(const struct CompressedSpriteSheet *src);
|
||||
|
||||
void DecompressPicFromTable(const struct CompressedSpriteSheet *src, void *buffer);
|
||||
|
||||
void HandleLoadSpecialPokePic(bool32 isFrontPic, void *dest, enum Species species, u32 personality);
|
||||
void HandleLoadSpecialPokePicIsEgg(bool32 isFrontPic, void *dest, enum Species species, u32 personality, bool32 isEgg);
|
||||
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ void ReturnToFieldFromFlyMapSelect(void);
|
|||
void FieldCallback_UseFly(void);
|
||||
u8 AddNewGameBirchObject(s16 x, s16 y, u8 subpriority);
|
||||
void FieldEffectStop(struct Sprite *sprite, u8 id);
|
||||
u8 CreateTrainerSprite(u8 trainerSpriteID, s16 x, s16 y, u8 subpriority, u8 *buffer);
|
||||
u8 CreateTrainerSprite(enum TrainerPicID trainerPicId, s16 x, s16 y, u8 subpriority, u8 *buffer);
|
||||
void FldEff_TeleportWarpOut(void);
|
||||
void FieldEffectActiveListRemove(u8 id);
|
||||
void MultiplyInvertedPaletteRGBComponents(u16 i, u8 r, u8 g, u8 b);
|
||||
|
|
|
|||
15
include/trainer.h
Normal file
15
include/trainer.h
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
#ifndef GUARD_TRAINER_H
|
||||
#define GUARD_TRAINER_H
|
||||
|
||||
#include "constants/global.h"
|
||||
#include "constants/trainers.h"
|
||||
|
||||
enum TrainerPicID GetPlayerTrainerPic(enum Gender gender, enum GameVersion version);
|
||||
|
||||
|
||||
static inline u16 GetTrainerPicTag(enum TrainerPicID trainerPicId, bool32 isFrontPic)
|
||||
{
|
||||
return isFrontPic ? trainerPicId : TRAINER_PIC_COUNT + trainerPicId;
|
||||
}
|
||||
|
||||
#endif // GUARD_TRAINER_H
|
||||
|
|
@ -32,7 +32,7 @@ end_pokemon_definition = re.compile(r' },')
|
|||
trainer_class_definition = re.compile(r'\.trainerClass = TRAINER_CLASS_(\w+)')
|
||||
encounter_music_gender_definition = re.compile(r'\.encounterMusic_gender = (F_TRAINER_FEMALE \| )?TRAINER_ENCOUNTER_MUSIC_(\w+)')
|
||||
encounter_music_definition = re.compile(r'TRAINER_ENCOUNTER_MUSIC_(\w+)')
|
||||
trainer_pic_definition = re.compile(r'\.trainerPic = TRAINER_PIC_FRONT_(\w+)')
|
||||
trainer_pic_definition = re.compile(r'\.trainerPic = TRAINER_PIC_(\w+)')
|
||||
trainer_name_definition = re.compile(r'\.trainerName = _\("([^"]*)"\)')
|
||||
trainer_items_definition = re.compile(r'\.items = \{([^}]*)\}')
|
||||
trainer_item_definition = re.compile(r'ITEM_(\w+)')
|
||||
|
|
|
|||
|
|
@ -183,7 +183,7 @@ begin_trainer_definition = re.compile(r' \[(PARTNER_\w+)\] =')
|
|||
end_trainer_definition = re.compile(r' }')
|
||||
trainer_class_definition = re.compile(r'\.trainerClass = TRAINER_CLASS_(\w+)')
|
||||
encounter_music_gender_definition = re.compile(r'\.encounterMusic_gender = (F_TRAINER_FEMALE \| )?TRAINER_ENCOUNTER_MUSIC_(\w+)')
|
||||
trainer_pic_definition = re.compile(r'\.trainerPic = TRAINER_PIC_BACK_(\w+)')
|
||||
trainer_pic_definition = re.compile(r'\.trainerPic = TRAINER_PIC_(\w+)')
|
||||
trainer_name_definition = re.compile(r'\.trainerName = _\("([^"]*)"\)')
|
||||
trainer_items_definition = re.compile(r'\.items = \{([^}]*)\}')
|
||||
trainer_item_definition = re.compile(r'ITEM_(\w+)')
|
||||
|
|
|
|||
|
|
@ -183,7 +183,7 @@ begin_trainer_definition = re.compile(r' \[(TRAINER_\w+)\] =')
|
|||
end_trainer_definition = re.compile(r' }')
|
||||
trainer_class_definition = re.compile(r'\.trainerClass = TRAINER_CLASS_(\w+)')
|
||||
encounter_music_gender_definition = re.compile(r'\.encounterMusic_gender = (F_TRAINER_FEMALE \| )?TRAINER_ENCOUNTER_MUSIC_(\w+)')
|
||||
trainer_pic_definition = re.compile(r'\.trainerPic = TRAINER_PIC_FRONT_(\w+)')
|
||||
trainer_pic_definition = re.compile(r'\.trainerPic = TRAINER_PIC_(\w+)')
|
||||
trainer_name_definition = re.compile(r'\.trainerName = _\("([^"]*)"\)')
|
||||
trainer_items_definition = re.compile(r'\.items = \{([^}]*)\}')
|
||||
trainer_item_definition = re.compile(r'ITEM_(\w+)')
|
||||
|
|
|
|||
|
|
@ -149,7 +149,7 @@ static void LinkPartnerHandleDrawTrainerPic(enum BattlerId battler)
|
|||
|
||||
trainerPicId = LinkPlayerGetTrainerPicId(GetBattlerMultiplayerId(battler));
|
||||
BtlController_HandleDrawTrainerPic(battler, trainerPicId, FALSE,
|
||||
xPos, 80 + 4 * (8 - gTrainerBacksprites[trainerPicId].coordinates.size),
|
||||
xPos, 80 + 4 * (8 - GetTrainerBackPicCoords(trainerPicId)->size),
|
||||
-1);
|
||||
}
|
||||
|
||||
|
|
@ -161,7 +161,7 @@ static void LinkPartnerHandleTrainerSlideBack(enum BattlerId battler)
|
|||
static void LinkPartnerHandleIntroTrainerBallThrow(enum BattlerId battler)
|
||||
{
|
||||
enum TrainerPicID trainerPicId = LinkPlayerGetTrainerPicId(GetBattlerMultiplayerId(battler));
|
||||
const u16 *trainerPal = gTrainerBacksprites[trainerPicId].palette.data;
|
||||
const u16 *trainerPal = GetTrainerBackPicPalette(trainerPicId);
|
||||
// Link partner uses the same intro sequence as the player partner.
|
||||
BtlController_HandleIntroTrainerBallThrow(battler, 0xD6F9, trainerPal, 24, Controller_PlayerPartnerShowIntroHealthbox);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@
|
|||
#include "strings.h"
|
||||
#include "task.h"
|
||||
#include "text.h"
|
||||
#include "trainer.h"
|
||||
#include "util.h"
|
||||
#include "constants/battle_string_ids.h"
|
||||
#include "constants/items.h"
|
||||
|
|
@ -677,13 +678,25 @@ void OakOldManBufferExecCompleted(enum BattlerId battler)
|
|||
|
||||
static void OakOldManHandleDrawTrainerPic(enum BattlerId battler)
|
||||
{
|
||||
u32 trainerPicId = (gBattleTypeFlags & BATTLE_TYPE_FIRST_BATTLE) ? gSaveBlock2Ptr->playerGender + TRAINER_PIC_BACK_RED : TRAINER_PIC_BACK_OLD_MAN;
|
||||
BtlController_HandleDrawTrainerPic(battler, trainerPicId, FALSE, 80, (8 - gTrainerBacksprites[trainerPicId].coordinates.size) * 4 + 80, 30);
|
||||
enum TrainerPicID trainerPicId;
|
||||
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_FIRST_BATTLE)
|
||||
trainerPicId = GetPlayerTrainerPic(gSaveBlock2Ptr->playerGender, GAME_VERSION);
|
||||
else
|
||||
trainerPicId = TRAINER_PIC_OLD_MAN;
|
||||
|
||||
BtlController_HandleDrawTrainerPic(battler, trainerPicId, FALSE, 80, (8 - GetTrainerBackPicCoords(trainerPicId)->size) * 4 + 80, 30);
|
||||
}
|
||||
|
||||
static void OakOldManHandleTrainerSlide(enum BattlerId battler)
|
||||
{
|
||||
u32 trainerPicId = (gBattleTypeFlags & BATTLE_TYPE_FIRST_BATTLE) ? gSaveBlock2Ptr->playerGender + TRAINER_PIC_BACK_RED : TRAINER_PIC_BACK_OLD_MAN;
|
||||
enum TrainerPicID trainerPicId;
|
||||
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_FIRST_BATTLE)
|
||||
trainerPicId = GetPlayerTrainerPic(gSaveBlock2Ptr->playerGender, GAME_VERSION);
|
||||
else
|
||||
trainerPicId = TRAINER_PIC_OLD_MAN;
|
||||
|
||||
BtlController_HandleTrainerSlide(battler, trainerPicId);
|
||||
}
|
||||
|
||||
|
|
@ -856,7 +869,8 @@ static void OakOldManHandleIntroTrainerBallThrow(enum BattlerId battler)
|
|||
{
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_FIRST_BATTLE)
|
||||
{
|
||||
const u16 *trainerPal = gTrainerBacksprites[gSaveBlock2Ptr->playerGender].palette.data;
|
||||
enum TrainerPicID trainerPicID = GetPlayerTrainerPic(gSaveBlock2Ptr->playerGender, GAME_VERSION);
|
||||
const u16 *trainerPal = GetTrainerBackPicPalette(trainerPicID);
|
||||
BtlController_HandleIntroTrainerBallThrow(battler, 0xD6F8, trainerPal, 31, Intro_TryShinyAnimShowHealthbox);
|
||||
}
|
||||
else
|
||||
|
|
|
|||
|
|
@ -382,7 +382,7 @@ static void OpponentHandleDrawTrainerPic(enum BattlerId battler)
|
|||
{
|
||||
if (GetBattlerPosition(battler) == B_POSITION_OPPONENT_LEFT)
|
||||
{
|
||||
trainerPicId = TRAINER_PIC_FRONT_LEAF;
|
||||
trainerPicId = TRAINER_PIC_LEAF;
|
||||
if (!(gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS))
|
||||
xPos = 176;
|
||||
else
|
||||
|
|
@ -390,7 +390,7 @@ static void OpponentHandleDrawTrainerPic(enum BattlerId battler)
|
|||
}
|
||||
else
|
||||
{
|
||||
trainerPicId = TRAINER_PIC_FRONT_RED;
|
||||
trainerPicId = TRAINER_PIC_RED;
|
||||
xPos = 152;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -29,6 +29,7 @@
|
|||
#include "task.h"
|
||||
#include "test_runner.h"
|
||||
#include "text.h"
|
||||
#include "trainer.h"
|
||||
#include "util.h"
|
||||
#include "window.h"
|
||||
#include "line_break.h"
|
||||
|
|
@ -511,7 +512,7 @@ void HandleInputChooseTarget(enum BattlerId battler)
|
|||
|| !CanTargetBattler(battler, gMultiUsePlayerCursor, move)
|
||||
|| (moveTarget == TARGET_OPPONENT && IsOnPlayerSide(gMultiUsePlayerCursor)))
|
||||
validTarget = FALSE;
|
||||
|
||||
|
||||
if (B_SHOW_EFFECTIVENESS && validTarget)
|
||||
MoveSelectionDisplayMoveEffectiveness(CheckTypeEffectiveness(battler, gMultiUsePlayerCursor), battler);
|
||||
|
||||
|
|
@ -1881,19 +1882,10 @@ static void PlayerHandleLoadMonSprite(enum BattlerId battler)
|
|||
|
||||
enum TrainerPicID LinkPlayerGetTrainerPicId(u32 multiplayerId)
|
||||
{
|
||||
enum TrainerPicID trainerPicId;
|
||||
|
||||
u8 gender = gLinkPlayers[multiplayerId].gender;
|
||||
enum GameVersion version = gLinkPlayers[multiplayerId].version & 0xFF;
|
||||
|
||||
if (version == VERSION_FIRE_RED || version == VERSION_LEAF_GREEN)
|
||||
trainerPicId = gender + TRAINER_PIC_BACK_RED;
|
||||
else if (version == VERSION_RUBY || version == VERSION_SAPPHIRE)
|
||||
trainerPicId = gender + TRAINER_PIC_BACK_RUBY_SAPPHIRE_BRENDAN;
|
||||
else
|
||||
trainerPicId = gender + TRAINER_PIC_BACK_BRENDAN;
|
||||
|
||||
return trainerPicId;
|
||||
return GetPlayerTrainerPic(gender, version);
|
||||
}
|
||||
|
||||
static enum TrainerPicID PlayerGetTrainerBackPicId(void)
|
||||
|
|
@ -1903,7 +1895,7 @@ static enum TrainerPicID PlayerGetTrainerBackPicId(void)
|
|||
if (gBattleTypeFlags & BATTLE_TYPE_LINK)
|
||||
trainerPicId = LinkPlayerGetTrainerPicId(GetMultiplayerId());
|
||||
else
|
||||
trainerPicId = gSaveBlock2Ptr->playerGender == FEMALE ? TRAINER_BACK_PIC_PLAYER_FEMALE : TRAINER_BACK_PIC_PLAYER_MALE;
|
||||
trainerPicId = GetPlayerTrainerPic(gSaveBlock2Ptr->playerGender, GAME_VERSION);
|
||||
|
||||
return trainerPicId;
|
||||
}
|
||||
|
|
@ -1919,12 +1911,12 @@ static void PlayerHandleDrawTrainerPic(enum BattlerId battler)
|
|||
|
||||
if (IsMultibattleTest())
|
||||
{
|
||||
trainerPicId = TRAINER_PIC_BACK_BRENDAN;
|
||||
trainerPicId = TRAINER_PIC_BRENDAN;
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER)
|
||||
xPos = 32;
|
||||
else
|
||||
xPos = 80;
|
||||
yPos = (8 - gTrainerBacksprites[trainerPicId].coordinates.size) * 4 + 80;
|
||||
yPos = (8 - GetTrainerBackPicCoords(trainerPicId)->size) * 4 + 80;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -1944,13 +1936,13 @@ static void PlayerHandleDrawTrainerPic(enum BattlerId battler)
|
|||
}
|
||||
else
|
||||
{
|
||||
yPos = (8 - gTrainerBacksprites[trainerPicId].coordinates.size) * 4 + 80;
|
||||
yPos = (8 - GetTrainerBackPicCoords(trainerPicId)->size) * 4 + 80;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
xPos = 80;
|
||||
yPos = (8 - gTrainerBacksprites[trainerPicId].coordinates.size) * 4 + 80;
|
||||
yPos = (8 - GetTrainerBackPicCoords(trainerPicId)->size) * 4 + 80;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -2302,8 +2294,8 @@ static void PlayerHandleOneReturnValue_Duplicate(enum BattlerId battler)
|
|||
|
||||
static void PlayerHandleIntroTrainerBallThrow(enum BattlerId battler)
|
||||
{
|
||||
const u32 paletteIndex = PlayerGetTrainerBackPicId() - TRAINER_PIC_FRONT_COUNT;
|
||||
const u16 *trainerPal = gTrainerBacksprites[paletteIndex].palette.data;
|
||||
enum TrainerPicID trainerPicID = PlayerGetTrainerBackPicId();
|
||||
const u16 *trainerPal = GetTrainerBackPicPalette(trainerPicID);
|
||||
BtlController_HandleIntroTrainerBallThrow(battler, 0xD6F8, trainerPal, 31, Intro_TryShinyAnimShowHealthbox);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -25,6 +25,7 @@
|
|||
#include "string_util.h"
|
||||
#include "task.h"
|
||||
#include "text.h"
|
||||
#include "trainer.h"
|
||||
#include "util.h"
|
||||
#include "window.h"
|
||||
#include "constants/battle_anim.h"
|
||||
|
|
@ -202,9 +203,9 @@ static enum TrainerPicID PlayerPartnerGetTrainerBackPicId(enum DifficultyLevel d
|
|||
enum TrainerPicID trainerPicId;
|
||||
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER)
|
||||
trainerPicId = gBattlePartners[difficulty][gPartnerTrainerId - TRAINER_PARTNER(PARTNER_NONE)].trainerBackPic;
|
||||
trainerPicId = gBattlePartners[difficulty][gPartnerTrainerId - TRAINER_PARTNER(PARTNER_NONE)].trainerPic;
|
||||
else
|
||||
trainerPicId = gSaveBlock2Ptr->playerGender + TRAINER_PIC_BACK_BRENDAN;
|
||||
trainerPicId = GetPlayerTrainerPic(gSaveBlock2Ptr->playerGender, GAME_VERSION);
|
||||
|
||||
return trainerPicId;
|
||||
}
|
||||
|
|
@ -222,15 +223,15 @@ static void PlayerPartnerHandleDrawTrainerPic(enum BattlerId battler)
|
|||
|
||||
if (IsMultibattleTest())
|
||||
{
|
||||
trainerPicId = TRAINER_PIC_BACK_STEVEN;
|
||||
trainerPicId = TRAINER_PIC_STEVEN;
|
||||
xPos = 90;
|
||||
yPos = (8 - gTrainerBacksprites[trainerPicId].coordinates.size) * 4 + 80;
|
||||
yPos = (8 - GetTrainerBackPicCoords(trainerPicId)->size) * 4 + 80;
|
||||
}
|
||||
else if (gPartnerTrainerId > TRAINER_PARTNER(PARTNER_NONE))
|
||||
{
|
||||
trainerPicId = PlayerPartnerGetTrainerBackPicId(difficulty);
|
||||
xPos = 90;
|
||||
yPos = (8 - gTrainerBacksprites[trainerPicId].coordinates.size) * 4 + 80;
|
||||
yPos = (8 - GetTrainerBackPicCoords(trainerPicId)->size) * 4 + 80;
|
||||
}
|
||||
else if (IsAiVsAiBattle())
|
||||
{
|
||||
|
|
@ -356,11 +357,11 @@ static void PlayerPartnerHandleIntroTrainerBallThrow(enum BattlerId battler)
|
|||
enum DifficultyLevel difficulty = GetBattlePartnerDifficultyLevel(gPartnerTrainerId);
|
||||
|
||||
if (gPartnerTrainerId > TRAINER_PARTNER(PARTNER_NONE))
|
||||
trainerPal = gTrainerBacksprites[gBattlePartners[difficulty][gPartnerTrainerId - TRAINER_PARTNER(PARTNER_NONE)].trainerBackPic].palette.data;
|
||||
trainerPal = GetTrainerBackPicPalette(gBattlePartners[difficulty][gPartnerTrainerId - TRAINER_PARTNER(PARTNER_NONE)].trainerPic);
|
||||
else if (IsAiVsAiBattle())
|
||||
trainerPal = gTrainerSprites[GetTrainerBackPicFromId(gPartnerTrainerId)].palette.data;
|
||||
trainerPal = GetTrainerFrontPicPalette(GetTrainerPicFromId(gPartnerTrainerId));
|
||||
else
|
||||
trainerPal = gTrainerSprites[GetFrontierTrainerFrontSpriteId(gPartnerTrainerId)].palette.data; // 2 vs 2 multi battle in Battle Frontier, load front sprite and pal.
|
||||
trainerPal = GetTrainerFrontPicPalette(GetFrontierTrainerFrontSpriteId(gPartnerTrainerId)); // 2 vs 2 multi battle in Battle Frontier, load front sprite and pal.
|
||||
|
||||
BtlController_HandleIntroTrainerBallThrow(battler, 0xD6F9, trainerPal, 24, Controller_PlayerPartnerShowIntroHealthbox);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -280,7 +280,7 @@ static void RecordedOpponentHandleDrawTrainerPic(enum BattlerId battler)
|
|||
{
|
||||
if (position == B_POSITION_OPPONENT_LEFT)
|
||||
{
|
||||
trainerPicId = TRAINER_PIC_FRONT_LEAF;
|
||||
trainerPicId = TRAINER_PIC_LEAF;
|
||||
if (!(gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS))
|
||||
xPos = 176;
|
||||
else
|
||||
|
|
@ -288,7 +288,7 @@ static void RecordedOpponentHandleDrawTrainerPic(enum BattlerId battler)
|
|||
}
|
||||
else
|
||||
{
|
||||
trainerPicId = TRAINER_PIC_FRONT_RED;
|
||||
trainerPicId = TRAINER_PIC_RED;
|
||||
xPos = 152;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -25,6 +25,7 @@
|
|||
#include "task.h"
|
||||
#include "test_runner.h"
|
||||
#include "text.h"
|
||||
#include "trainer.h"
|
||||
#include "util.h"
|
||||
#include "window.h"
|
||||
#include "constants/battle_anim.h"
|
||||
|
|
@ -198,9 +199,9 @@ static enum TrainerPicID RecordedPartnerGetTrainerBackPicId(enum DifficultyLevel
|
|||
enum TrainerPicID trainerPicId;
|
||||
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER)
|
||||
trainerPicId = gBattlePartners[difficulty][gPartnerTrainerId - TRAINER_PARTNER(PARTNER_NONE)].trainerBackPic;
|
||||
trainerPicId = gBattlePartners[difficulty][gPartnerTrainerId - TRAINER_PARTNER(PARTNER_NONE)].trainerPic;
|
||||
else
|
||||
trainerPicId = gSaveBlock2Ptr->playerGender + TRAINER_PIC_BACK_BRENDAN;
|
||||
trainerPicId = GetPlayerTrainerPic(gSaveBlock2Ptr->playerGender, GAME_VERSION);
|
||||
|
||||
return trainerPicId;
|
||||
}
|
||||
|
|
@ -218,9 +219,9 @@ static void RecordedPartnerHandleDrawTrainerPic(enum BattlerId battler)
|
|||
|
||||
if (gPartnerTrainerId > TRAINER_PARTNER(PARTNER_NONE))
|
||||
{
|
||||
trainerPicId = gBattlePartners[difficulty][gPartnerTrainerId - TRAINER_PARTNER(PARTNER_NONE)].trainerBackPic;
|
||||
trainerPicId = gBattlePartners[difficulty][gPartnerTrainerId - TRAINER_PARTNER(PARTNER_NONE)].trainerPic;
|
||||
xPos = 90;
|
||||
yPos = (8 - gTrainerBacksprites[trainerPicId].coordinates.size) * 4 + 80;
|
||||
yPos = (8 - GetTrainerBackPicCoords(trainerPicId)->size) * 4 + 80;
|
||||
}
|
||||
else if (IsAiVsAiBattle())
|
||||
{
|
||||
|
|
@ -285,11 +286,11 @@ static void RecordedPartnerHandleIntroTrainerBallThrow(enum BattlerId battler)
|
|||
enum DifficultyLevel difficulty = GetBattlePartnerDifficultyLevel(gPartnerTrainerId);
|
||||
|
||||
if (gPartnerTrainerId > TRAINER_PARTNER(PARTNER_NONE))
|
||||
trainerPal = gTrainerBacksprites[gBattlePartners[difficulty][gPartnerTrainerId - TRAINER_PARTNER(PARTNER_NONE)].trainerBackPic].palette.data;
|
||||
trainerPal = GetTrainerBackPicPalette(gBattlePartners[difficulty][gPartnerTrainerId - TRAINER_PARTNER(PARTNER_NONE)].trainerPic);
|
||||
else if (IsAiVsAiBattle())
|
||||
trainerPal = gTrainerSprites[GetTrainerBackPicFromId(gPartnerTrainerId)].palette.data;
|
||||
trainerPal = GetTrainerFrontPicPalette(GetTrainerPicFromId(gPartnerTrainerId));
|
||||
else
|
||||
trainerPal = gTrainerSprites[GetFrontierTrainerFrontSpriteId(gPartnerTrainerId)].palette.data; // 2 vs 2 multi battle in Battle Frontier, load front sprite and pal.
|
||||
trainerPal = GetTrainerFrontPicPalette(GetFrontierTrainerFrontSpriteId(gPartnerTrainerId)); // 2 vs 2 multi battle in Battle Frontier, load front sprite and pal.
|
||||
|
||||
BtlController_HandleIntroTrainerBallThrow(battler, 0xD6F9, trainerPal, 24, Controller_RecordedPartnerShowIntroHealthbox);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@
|
|||
#include "task.h"
|
||||
#include "test_runner.h"
|
||||
#include "text.h"
|
||||
#include "trainer.h"
|
||||
#include "util.h"
|
||||
#include "window.h"
|
||||
#include "constants/battle_anim.h"
|
||||
|
|
@ -277,25 +278,27 @@ static void RecordedPlayerHandleDrawTrainerPic(enum BattlerId battler)
|
|||
// Sets Multibattle test player sprites to not be Hiker
|
||||
if (IsMultibattleTest())
|
||||
{
|
||||
trainerPicId = TRAINER_PIC_BACK_BRENDAN;
|
||||
trainerPicId = TRAINER_PIC_BRENDAN;
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER)
|
||||
xPos = 32;
|
||||
else
|
||||
xPos = 80;
|
||||
yPos = (8 - gTrainerBacksprites[trainerPicId].coordinates.size) * 4 + 80;
|
||||
yPos = (8 - GetTrainerBackPicCoords(trainerPicId)->size) * 4 + 80;
|
||||
}
|
||||
else
|
||||
{
|
||||
enum Gender gender;
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_RECORDED_LINK)
|
||||
{
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
|
||||
trainerPicId = GetBattlerLinkPlayerGender(battler) + TRAINER_PIC_BACK_BRENDAN;
|
||||
gender = GetBattlerLinkPlayerGender(battler);
|
||||
else
|
||||
trainerPicId = gLinkPlayers[gRecordedBattleMultiplayerId].gender + TRAINER_PIC_BACK_BRENDAN;
|
||||
gender = gLinkPlayers[gRecordedBattleMultiplayerId].gender;
|
||||
}
|
||||
else
|
||||
trainerPicId = gLinkPlayers[0].gender + TRAINER_PIC_BACK_BRENDAN;
|
||||
gender = gLinkPlayers[0].gender;
|
||||
|
||||
trainerPicId = GetPlayerTrainerPic(gender, GAME_VERSION);
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
|
||||
{
|
||||
if ((GetBattlerPosition(battler) & BIT_FLANK) != 0) // second mon
|
||||
|
|
@ -311,13 +314,13 @@ static void RecordedPlayerHandleDrawTrainerPic(enum BattlerId battler)
|
|||
}
|
||||
else
|
||||
{
|
||||
yPos = (8 - gTrainerBacksprites[trainerPicId].coordinates.size) * 4 + 80;
|
||||
yPos = (8 - GetTrainerBackPicCoords(trainerPicId)->size) * 4 + 80;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
xPos = 80;
|
||||
yPos = (8 - gTrainerBacksprites[trainerPicId].coordinates.size) * 4 + 80;
|
||||
yPos = (8 - GetTrainerBackPicCoords(trainerPicId)->size) * 4 + 80;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -400,13 +403,15 @@ static void RecordedPlayerHandleIntroTrainerBallThrow(enum BattlerId battler)
|
|||
{
|
||||
enum TrainerPicID trainerPicId;
|
||||
const u16 *trainerPal;
|
||||
enum Gender gender;
|
||||
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_RECORDED_LINK)
|
||||
trainerPicId = gLinkPlayers[GetBattlerMultiplayerId(battler)].gender == FEMALE ? TRAINER_BACK_PIC_PLAYER_FEMALE : TRAINER_BACK_PIC_PLAYER_MALE;
|
||||
gender = gLinkPlayers[GetBattlerMultiplayerId(battler)].gender;
|
||||
else
|
||||
trainerPicId = gSaveBlock2Ptr->playerGender == FEMALE ? TRAINER_BACK_PIC_PLAYER_FEMALE : TRAINER_BACK_PIC_PLAYER_MALE;
|
||||
gender = gSaveBlock2Ptr->playerGender;
|
||||
|
||||
trainerPal = gTrainerBacksprites[trainerPicId].palette.data;
|
||||
trainerPicId = GetPlayerTrainerPic(gender, GAME_VERSION);
|
||||
trainerPal = GetTrainerBackPicPalette(trainerPicId);
|
||||
BtlController_HandleIntroTrainerBallThrow(battler, 0xD6F9, trainerPal, 24, Intro_TryShinyAnimShowHealthbox);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@
|
|||
#include "sound.h"
|
||||
#include "task.h"
|
||||
#include "text.h"
|
||||
#include "trainer.h"
|
||||
#include "util.h"
|
||||
#include "window.h"
|
||||
#include "line_break.h"
|
||||
|
|
@ -275,10 +276,10 @@ void SafariBufferExecCompleted(enum BattlerId battler)
|
|||
|
||||
static void SafariHandleDrawTrainerPic(enum BattlerId battler)
|
||||
{
|
||||
enum TrainerPicID trainerPicId = gSaveBlock2Ptr->playerGender == FEMALE ? TRAINER_BACK_PIC_PLAYER_FEMALE : TRAINER_BACK_PIC_PLAYER_MALE;
|
||||
enum TrainerPicID trainerPicId = GetPlayerTrainerPic(gSaveBlock2Ptr->playerGender, GAME_VERSION);
|
||||
|
||||
BtlController_HandleDrawTrainerPic(battler, trainerPicId, FALSE,
|
||||
80, 80 + 4 * (8 - gTrainerBacksprites[trainerPicId].coordinates.size),
|
||||
80, 80 + 4 * (8 - GetTrainerBackPicCoords(trainerPicId)->size),
|
||||
30);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -282,14 +282,14 @@ void WallyBufferExecCompleted(enum BattlerId battler)
|
|||
|
||||
static void WallyHandleDrawTrainerPic(enum BattlerId battler)
|
||||
{
|
||||
BtlController_HandleDrawTrainerPic(battler, TRAINER_PIC_BACK_WALLY, FALSE,
|
||||
80, 80 + 4 * (8 - gTrainerBacksprites[TRAINER_PIC_BACK_WALLY].coordinates.size),
|
||||
BtlController_HandleDrawTrainerPic(battler, TRAINER_PIC_WALLY, FALSE,
|
||||
80, 80 + 4 * (8 - GetTrainerBackPicCoords(TRAINER_PIC_WALLY)->size),
|
||||
30);
|
||||
}
|
||||
|
||||
static void WallyHandleTrainerSlide(enum BattlerId battler)
|
||||
{
|
||||
BtlController_HandleTrainerSlide(battler, TRAINER_PIC_BACK_WALLY);
|
||||
BtlController_HandleTrainerSlide(battler, TRAINER_PIC_WALLY);
|
||||
}
|
||||
|
||||
#undef sSpeedX
|
||||
|
|
@ -366,7 +366,7 @@ static void WallyHandleFaintingCry(enum BattlerId battler)
|
|||
|
||||
static void WallyHandleIntroTrainerBallThrow(enum BattlerId battler)
|
||||
{
|
||||
const u16 *trainerPal = gTrainerBacksprites[TRAINER_PIC_BACK_WALLY].palette.data;
|
||||
const u16 *trainerPal = GetTrainerBackPicPalette(TRAINER_PIC_WALLY);
|
||||
BtlController_HandleIntroTrainerBallThrow(battler, 0xD6F8, trainerPal, 31, Intro_TryShinyAnimShowHealthbox);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -26,6 +26,7 @@
|
|||
#include "task.h"
|
||||
#include "test_runner.h"
|
||||
#include "text.h"
|
||||
#include "trainer.h"
|
||||
#include "util.h"
|
||||
#include "wild_encounter.h"
|
||||
#include "constants/abilities.h"
|
||||
|
|
@ -2433,7 +2434,7 @@ void BtlController_HandleDrawTrainerPic(enum BattlerId battler, enum TrainerPicI
|
|||
yPos,
|
||||
subpriority);
|
||||
|
||||
gSprites[gBattleStruct->trainerSlideSpriteIds[battler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerSprites[trainerPicId].palette.tag);
|
||||
gSprites[gBattleStruct->trainerSlideSpriteIds[battler]].oam.paletteNum = IndexOfSpritePaletteTag(GetTrainerPicTag(trainerPicId, TRUE));
|
||||
gSprites[gBattleStruct->trainerSlideSpriteIds[battler]].x2 = -DISPLAY_WIDTH;
|
||||
gSprites[gBattleStruct->trainerSlideSpriteIds[battler]].sSpeedX = 2;
|
||||
gSprites[gBattleStruct->trainerSlideSpriteIds[battler]].oam.affineParam = trainerPicId;
|
||||
|
|
@ -2451,7 +2452,7 @@ void BtlController_HandleDrawTrainerPic(enum BattlerId battler, enum TrainerPicI
|
|||
yPos,
|
||||
subpriority);
|
||||
|
||||
gSprites[gBattleStruct->trainerSlideSpriteIds[battler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerSprites[trainerPicId].palette.tag);
|
||||
gSprites[gBattleStruct->trainerSlideSpriteIds[battler]].oam.paletteNum = IndexOfSpritePaletteTag(GetTrainerPicTag(trainerPicId, TRUE));
|
||||
gSprites[gBattleStruct->trainerSlideSpriteIds[battler]].oam.affineMode = ST_OAM_AFFINE_OFF;
|
||||
gSprites[gBattleStruct->trainerSlideSpriteIds[battler]].hFlip = 1;
|
||||
gSprites[gBattleStruct->trainerSlideSpriteIds[battler]].y2 = 48;
|
||||
|
|
@ -2471,7 +2472,7 @@ void BtlController_HandleDrawTrainerPic(enum BattlerId battler, enum TrainerPicI
|
|||
|
||||
// Sets sprite priority to 1 so mons don't remain in foreground
|
||||
gSprites[gBattleStruct->trainerSlideSpriteIds[battler]].oam.priority = 1;
|
||||
gSprites[gBattleStruct->trainerSlideSpriteIds[battler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerBacksprites[trainerPicId].palette.tag);
|
||||
gSprites[gBattleStruct->trainerSlideSpriteIds[battler]].oam.paletteNum = IndexOfSpritePaletteTag(GetTrainerPicTag(trainerPicId, FALSE));
|
||||
}
|
||||
gSprites[gBattleStruct->trainerSlideSpriteIds[battler]].x2 = DISPLAY_WIDTH;
|
||||
gSprites[gBattleStruct->trainerSlideSpriteIds[battler]].sSpeedX = -2;
|
||||
|
|
@ -2492,13 +2493,13 @@ void BtlController_HandleTrainerSlide(enum BattlerId battler, enum TrainerPicID
|
|||
SetMultiuseSpriteTemplateToTrainerBack(trainerPicId, GetBattlerPosition(battler));
|
||||
gBattleStruct->trainerSlideSpriteIds[battler] = CreateSprite(&gMultiuseSpriteTemplate,
|
||||
80,
|
||||
(8 - gTrainerBacksprites[trainerPicId].coordinates.size) * 4 + 80,
|
||||
(8 - GetTrainerBackPicCoords(trainerPicId)->size) * 4 + 80,
|
||||
30);
|
||||
if ((gBattleTypeFlags & BATTLE_TYPE_SAFARI) && GetBattlerPosition(battler) == B_POSITION_PLAYER_LEFT)
|
||||
gBattlerSpriteIds[battler] = gBattleStruct->trainerSlideSpriteIds[battler];
|
||||
// Sets sprite priority to 1 so mons don't remain in foreground
|
||||
gSprites[gBattleStruct->trainerSlideSpriteIds[battler]].oam.priority = 1;
|
||||
gSprites[gBattleStruct->trainerSlideSpriteIds[battler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerBacksprites[trainerPicId].palette.tag);
|
||||
gSprites[gBattleStruct->trainerSlideSpriteIds[battler]].oam.paletteNum = IndexOfSpritePaletteTag(GetTrainerPicTag(trainerPicId, FALSE));
|
||||
gSprites[gBattleStruct->trainerSlideSpriteIds[battler]].x2 = -96;
|
||||
gSprites[gBattleStruct->trainerSlideSpriteIds[battler]].sSpeedX = 2;
|
||||
}
|
||||
|
|
@ -2508,7 +2509,7 @@ void BtlController_HandleTrainerSlide(enum BattlerId battler, enum TrainerPicID
|
|||
SetMultiuseSpriteTemplateToTrainerFront(trainerPicId, GetBattlerPosition(battler));
|
||||
gBattleStruct->trainerSlideSpriteIds[battler] = CreateSprite(&gMultiuseSpriteTemplate, 176, 40, 0);
|
||||
gSprites[gBattleStruct->trainerSlideSpriteIds[battler]].oam.affineParam = trainerPicId;
|
||||
gSprites[gBattleStruct->trainerSlideSpriteIds[battler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerSprites[trainerPicId].palette.tag);
|
||||
gSprites[gBattleStruct->trainerSlideSpriteIds[battler]].oam.paletteNum = IndexOfSpritePaletteTag(GetTrainerPicTag(trainerPicId, TRUE));
|
||||
gSprites[gBattleStruct->trainerSlideSpriteIds[battler]].x2 = 96;
|
||||
gSprites[gBattleStruct->trainerSlideSpriteIds[battler]].x += 32;
|
||||
gSprites[gBattleStruct->trainerSlideSpriteIds[battler]].sSpeedX = -2;
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@
|
|||
#include "data.h"
|
||||
#include "palette.h"
|
||||
#include "contest.h"
|
||||
#include "trainer.h"
|
||||
#include "trainer_pokemon_sprites.h"
|
||||
#include "constants/songs.h"
|
||||
#include "constants/rgb.h"
|
||||
|
|
@ -689,24 +690,23 @@ void BattleGfxSfxDummy2(enum Species species)
|
|||
{
|
||||
}
|
||||
|
||||
void DecompressTrainerFrontPic(u16 frontPicId, enum BattlerId battler)
|
||||
void DecompressTrainerFrontPic(enum TrainerPicID trainerPicId, enum BattlerId battler)
|
||||
{
|
||||
enum BattlerPosition position = GetBattlerPosition(battler);
|
||||
DecompressPicFromTable(&gTrainerSprites[frontPicId].frontPic,
|
||||
gMonSpritesGfxPtr->spritesGfx[position]);
|
||||
LoadSpritePalette(&gTrainerSprites[frontPicId].palette);
|
||||
DecompressDataWithHeaderWram(GetTrainerFrontPicData(trainerPicId), gMonSpritesGfxPtr->spritesGfx[position]);
|
||||
LoadSpritePaletteWithTag(GetTrainerFrontPicPalette(trainerPicId), GetTrainerPicTag(trainerPicId, TRUE));
|
||||
}
|
||||
|
||||
void DecompressTrainerBackPic(enum TrainerPicID backPicId, enum BattlerId battler)
|
||||
void DecompressTrainerBackPic(enum TrainerPicID trainerPicId, enum BattlerId battler)
|
||||
{
|
||||
enum BattlerPosition position = GetBattlerPosition(battler);
|
||||
CopyTrainerBackspriteFramesToDest(backPicId, gMonSpritesGfxPtr->spritesGfx[position]);
|
||||
LoadSpritePalette(&gTrainerBacksprites[backPicId].palette);
|
||||
CopyTrainerBackspriteFramesToDest(trainerPicId, gMonSpritesGfxPtr->spritesGfx[position]);
|
||||
LoadSpritePaletteWithTag(GetTrainerBackPicPalette(trainerPicId), GetTrainerPicTag(trainerPicId, FALSE));
|
||||
}
|
||||
|
||||
void FreeTrainerFrontPicPalette(u16 frontPicId)
|
||||
void FreeTrainerFrontPicPalette(enum TrainerPicID trainerPicId)
|
||||
{
|
||||
FreeSpritePaletteByTag(gTrainerSprites[frontPicId].palette.tag);
|
||||
FreeSpritePaletteByTag(GetTrainerPicTag(trainerPicId, TRUE));
|
||||
}
|
||||
|
||||
// Unused.
|
||||
|
|
|
|||
|
|
@ -2583,18 +2583,20 @@ static void Mugshots_CreateTrainerPics(struct Task *task)
|
|||
{
|
||||
struct Sprite *opponentSpriteA, *opponentSpriteB=0, *playerSprite, *partnerSprite=0;
|
||||
|
||||
u8 trainerAPicId = GetTrainerPicFromId(TRAINER_BATTLE_PARAM.opponentA);
|
||||
u8 trainerBPicId = GetTrainerPicFromId(TRAINER_BATTLE_PARAM.opponentB);
|
||||
u8 partnerPicId = GetTrainerPicFromId(gPartnerTrainerId);
|
||||
enum TrainerPicID trainerAPicId = GetTrainerPicFromId(TRAINER_BATTLE_PARAM.opponentA);
|
||||
enum TrainerPicID trainerBPicId = GetTrainerPicFromId(TRAINER_BATTLE_PARAM.opponentB);
|
||||
enum TrainerPicID partnerPicId = GetTrainerPicFromId(gPartnerTrainerId);
|
||||
struct Coords16 mugshotCoordsA = GetTrainerFrontPicMugshotCoords(trainerAPicId);
|
||||
s16 opponentARotationScales = 0;
|
||||
s16 opponentBRotationScales = 0;
|
||||
|
||||
gReservedSpritePaletteCount = 10;
|
||||
if (TRAINER_BATTLE_PARAM.opponentB != TRAINER_NONE && gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS)
|
||||
{
|
||||
struct Coords16 mugshotCoordsB = GetTrainerFrontPicMugshotCoords(trainerBPicId);
|
||||
task->tOpponentSpriteBId = CreateTrainerSprite(trainerBPicId,
|
||||
gTrainerSprites[trainerBPicId].mugshotCoords.x - 240,
|
||||
gTrainerSprites[trainerBPicId].mugshotCoords.y + 42,
|
||||
mugshotCoordsB.x - 240,
|
||||
mugshotCoordsB.y + 42,
|
||||
0, NULL);
|
||||
opponentSpriteB = &gSprites[task->tOpponentSpriteBId];
|
||||
opponentSpriteB->callback = SpriteCB_MugshotTrainerPicPartner;
|
||||
|
|
@ -2603,13 +2605,13 @@ static void Mugshots_CreateTrainerPics(struct Task *task)
|
|||
opponentSpriteB->oam.shape = SPRITE_SHAPE(64x32);
|
||||
opponentSpriteB->oam.size = SPRITE_SIZE(64x32);
|
||||
CalcCenterToCornerVec(opponentSpriteB, SPRITE_SHAPE(64x32), SPRITE_SIZE(64x32), ST_OAM_AFFINE_DOUBLE);
|
||||
opponentBRotationScales = gTrainerSprites[trainerBPicId].mugshotRotation;
|
||||
opponentBRotationScales = GetTrainerFrontPicMugshotRotation(trainerBPicId);
|
||||
SetOamMatrixRotationScaling(opponentSpriteB->oam.matrixNum, opponentBRotationScales, opponentBRotationScales, 0);
|
||||
}
|
||||
|
||||
task->tOpponentSpriteAId = CreateTrainerSprite(trainerAPicId,
|
||||
gTrainerSprites[trainerAPicId].mugshotCoords.x - 32,
|
||||
gTrainerSprites[trainerAPicId].mugshotCoords.y + 42,
|
||||
mugshotCoordsA.x - 32,
|
||||
mugshotCoordsA.y + 42,
|
||||
0, NULL);
|
||||
|
||||
gReservedSpritePaletteCount = 12;
|
||||
|
|
@ -2655,7 +2657,7 @@ static void Mugshots_CreateTrainerPics(struct Task *task)
|
|||
CalcCenterToCornerVec(opponentSpriteA, SPRITE_SHAPE(64x32), SPRITE_SIZE(64x32), ST_OAM_AFFINE_DOUBLE);
|
||||
CalcCenterToCornerVec(playerSprite, SPRITE_SHAPE(64x32), SPRITE_SIZE(64x32), ST_OAM_AFFINE_DOUBLE);
|
||||
|
||||
opponentARotationScales = gTrainerSprites[trainerAPicId].mugshotRotation;
|
||||
opponentARotationScales = GetTrainerFrontPicMugshotRotation(trainerAPicId);
|
||||
|
||||
SetOamMatrixRotationScaling(opponentSpriteA->oam.matrixNum, opponentARotationScales, opponentARotationScales, 0);
|
||||
SetOamMatrixRotationScaling(playerSprite->oam.matrixNum, -512, 512, 0);
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@ Class: Pkmn Trainer 1
|
|||
Pic: Brendan
|
||||
Gender: Male
|
||||
Music: Male
|
||||
Back Pic: Brendan
|
||||
|
||||
=== PARTNER_STEVEN ===
|
||||
Name: STEVEN
|
||||
|
|
@ -12,7 +11,6 @@ Class: Rival
|
|||
Pic: Steven
|
||||
Gender: Male
|
||||
Music: Male
|
||||
Back Pic: Steven
|
||||
AI: Basic Trainer
|
||||
|
||||
Metang
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
#include "constants/trainers.h"
|
||||
#include "data.h"
|
||||
|
||||
const u32 gTrainerFrontPic_None[] = INCBIN_U32("graphics/trainers/front_pics/none.4bpp.smol");
|
||||
const u16 gTrainerPalette_None[] = INCBIN_U16("graphics/trainers/palettes/none.gbapal");
|
||||
|
||||
const u32 gTrainerFrontPic_Hiker[] = INCBIN_U32("graphics/trainers/front_pics/hiker.4bpp.smol");
|
||||
const u16 gTrainerPalette_Hiker[] = INCBIN_U16("graphics/trainers/front_pics/hiker.gbapal");
|
||||
|
||||
|
|
@ -466,6 +469,7 @@ const u16 gTrainerPalette_LadyFrlg[] = INCBIN_U16("graphics/trainers/palettes/la
|
|||
const u32 gTrainerFrontPic_PainterFrlg[] = INCBIN_U32("graphics/trainers/front_pics/painter_frlg.4bpp.smol");
|
||||
const u16 gTrainerPalette_PainterFrlg[] = INCBIN_U16("graphics/trainers/palettes/painter_frlg.gbapal");
|
||||
|
||||
static const u8 gTrainerBackPic_None[] = INCBIN_U8("graphics/trainers/back_pics/none.4bpp");
|
||||
const u8 gTrainerBackPic_Brendan[] = INCBIN_U8("graphics/trainers/back_pics/brendan.4bpp");
|
||||
const u8 gTrainerBackPic_May[] = INCBIN_U8("graphics/trainers/back_pics/may.4bpp");
|
||||
const u8 gTrainerBackPic_Red[] = INCBIN_U8("graphics/trainers/back_pics/red.4bpp");
|
||||
|
|
@ -482,178 +486,6 @@ const u16 gTrainerBackPicPalette_Leaf[] = INCBIN_U16("graphics/trainers/back_pic
|
|||
const u16 gTrainerBackPicPalette_Pokedude[] = INCBIN_U16("graphics/trainers/back_pics/pokedude.gbapal");
|
||||
const u16 gTrainerBackPicPalette_OldMan[] = INCBIN_U16("graphics/trainers/back_pics/old_man.gbapal");
|
||||
|
||||
// The first two parameters invoke a front pic and palette by
|
||||
// calling a "TRAINER_PIC" constant (e.g. TRAINER_PIC_FRONT_HIKER), and
|
||||
// gTrainerFrontPic/gTrainerPalette pointers, (e.g "gTrainerFrontPic_Hiker" and "gTrainerPalette_Hiker").
|
||||
// The last three parameters control the X and Y coordinates and rotation of the mugshot on the screen.
|
||||
// They default to 0, 0, and 0x200 which are default values used by the majority of the game's trainer sprites.
|
||||
#define TRAINER_SPRITE(trainerPic, picFile, paletteFile, ...) \
|
||||
[trainerPic] = \
|
||||
{ \
|
||||
.frontPic = {picFile, TRAINER_PIC_SIZE, trainerPic}, \
|
||||
.palette = {paletteFile, trainerPic}, \
|
||||
.mugshotCoords = {DEFAULT(0, __VA_ARGS__), DEFAULT_2(0, __VA_ARGS__)}, \
|
||||
.mugshotRotation = DEFAULT_3(0x200, __VA_ARGS__), \
|
||||
}
|
||||
|
||||
const struct TrainerSprite gTrainerSprites[] =
|
||||
{
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_HIKER, gTrainerFrontPic_Hiker, gTrainerPalette_Hiker),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_AQUA_GRUNT_M, gTrainerFrontPic_AquaGruntM, gTrainerPalette_AquaGruntM),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_POKEMON_BREEDER_F, gTrainerFrontPic_PokemonBreederF, gTrainerPalette_PokemonBreederF),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_COOLTRAINER_M, gTrainerFrontPic_CoolTrainerM, gTrainerPalette_CoolTrainerM),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_BIRD_KEEPER, gTrainerFrontPic_BirdKeeper, gTrainerPalette_BirdKeeper),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_COLLECTOR, gTrainerFrontPic_Collector, gTrainerPalette_Collector),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_AQUA_GRUNT_F, gTrainerFrontPic_AquaGruntF, gTrainerPalette_AquaGruntF),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_SWIMMER_M, gTrainerFrontPic_SwimmerM, gTrainerPalette_SwimmerM),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_MAGMA_GRUNT_M, gTrainerFrontPic_MagmaGruntM, gTrainerPalette_MagmaGruntM),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_EXPERT_M, gTrainerFrontPic_ExpertM, gTrainerPalette_ExpertM),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_AQUA_ADMIN_M, gTrainerFrontPic_AquaAdminM, gTrainerPalette_AquaAdminM),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_BLACK_BELT, gTrainerFrontPic_BlackBelt, gTrainerPalette_BlackBelt),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_AQUA_ADMIN_F, gTrainerFrontPic_AquaAdminF, gTrainerPalette_AquaAdminF),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_AQUA_LEADER_ARCHIE, gTrainerFrontPic_AquaLeaderArchie, gTrainerPalette_AquaLeaderArchie),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_HEX_MANIAC, gTrainerFrontPic_HexManiac, gTrainerPalette_HexManiac),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_AROMA_LADY, gTrainerFrontPic_AromaLady, gTrainerPalette_AromaLady),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_RUIN_MANIAC, gTrainerFrontPic_RuinManiac, gTrainerPalette_RuinManiac),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_INTERVIEWER, gTrainerFrontPic_Interviewer, gTrainerPalette_Interviewer),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_TUBER_F, gTrainerFrontPic_TuberF, gTrainerPalette_TuberF),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_TUBER_M, gTrainerFrontPic_TuberM, gTrainerPalette_TuberM),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_COOLTRAINER_F, gTrainerFrontPic_CoolTrainerF, gTrainerPalette_CoolTrainerF),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_LADY, gTrainerFrontPic_Lady, gTrainerPalette_Lady),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_BEAUTY, gTrainerFrontPic_Beauty, gTrainerPalette_Beauty),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_RICH_BOY, gTrainerFrontPic_RichBoy, gTrainerPalette_RichBoy),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_EXPERT_F, gTrainerFrontPic_ExpertF, gTrainerPalette_ExpertF),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_POKEMANIAC, gTrainerFrontPic_Pokemaniac, gTrainerPalette_Pokemaniac),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_MAGMA_GRUNT_F, gTrainerFrontPic_MagmaGruntF, gTrainerPalette_MagmaGruntF),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_GUITARIST, gTrainerFrontPic_Guitarist, gTrainerPalette_Guitarist),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_KINDLER, gTrainerFrontPic_Kindler, gTrainerPalette_Kindler),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_CAMPER, gTrainerFrontPic_Camper, gTrainerPalette_Camper),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_PICNICKER, gTrainerFrontPic_Picnicker, gTrainerPalette_Picnicker),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_BUG_MANIAC, gTrainerFrontPic_BugManiac, gTrainerPalette_BugManiac),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_POKEMON_BREEDER_M, gTrainerFrontPic_PokemonBreederM, gTrainerPalette_PokemonBreederM),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_PSYCHIC_M, gTrainerFrontPic_PsychicM, gTrainerPalette_PsychicM),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_PSYCHIC_F, gTrainerFrontPic_PsychicF, gTrainerPalette_PsychicF),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_GENTLEMAN, gTrainerFrontPic_Gentleman, gTrainerPalette_Gentleman),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_ELITE_FOUR_SIDNEY, gTrainerFrontPic_EliteFourSidney, gTrainerPalette_EliteFourSidney),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_ELITE_FOUR_PHOEBE, gTrainerFrontPic_EliteFourPhoebe, gTrainerPalette_EliteFourPhoebe),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_ELITE_FOUR_GLACIA, gTrainerFrontPic_EliteFourGlacia, gTrainerPalette_EliteFourGlacia, -4, 4, 0x1B0),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_ELITE_FOUR_DRAKE, gTrainerFrontPic_EliteFourDrake, gTrainerPalette_EliteFourDrake, 0, 5, 0x1A0),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_LEADER_ROXANNE, gTrainerFrontPic_LeaderRoxanne, gTrainerPalette_LeaderRoxanne),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_LEADER_BRAWLY, gTrainerFrontPic_LeaderBrawly, gTrainerPalette_LeaderBrawly),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_LEADER_WATTSON, gTrainerFrontPic_LeaderWattson, gTrainerPalette_LeaderWattson),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_LEADER_FLANNERY, gTrainerFrontPic_LeaderFlannery, gTrainerPalette_LeaderFlannery),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_LEADER_NORMAN, gTrainerFrontPic_LeaderNorman, gTrainerPalette_LeaderNorman),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_LEADER_WINONA, gTrainerFrontPic_LeaderWinona, gTrainerPalette_LeaderWinona),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_LEADER_TATE_AND_LIZA, gTrainerFrontPic_LeaderTateAndLiza, gTrainerPalette_LeaderTateAndLiza),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_LEADER_JUAN, gTrainerFrontPic_LeaderJuan, gTrainerPalette_LeaderJuan),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_SCHOOL_KID_M, gTrainerFrontPic_SchoolKidM, gTrainerPalette_SchoolKidM),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_SCHOOL_KID_F, gTrainerFrontPic_SchoolKidF, gTrainerPalette_SchoolKidF),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_SR_AND_JR, gTrainerFrontPic_SrAndJr, gTrainerPalette_SrAndJr),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_POKEFAN_M, gTrainerFrontPic_PokefanM, gTrainerPalette_PokefanM),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_POKEFAN_F, gTrainerFrontPic_PokefanF, gTrainerPalette_PokefanF),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_YOUNGSTER, gTrainerFrontPic_Youngster, gTrainerPalette_Youngster),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_CHAMPION_WALLACE, gTrainerFrontPic_ChampionWallace, gTrainerPalette_ChampionWallace, -8, 7, 0x188),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_FISHERMAN, gTrainerFrontPic_Fisherman, gTrainerPalette_Fisherman),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_CYCLING_TRIATHLETE_M, gTrainerFrontPic_CyclingTriathleteM, gTrainerPalette_CyclingTriathleteM),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_CYCLING_TRIATHLETE_F, gTrainerFrontPic_CyclingTriathleteF, gTrainerPalette_CyclingTriathleteF),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_RUNNING_TRIATHLETE_M, gTrainerFrontPic_RunningTriathleteM, gTrainerPalette_RunningTriathleteM),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_RUNNING_TRIATHLETE_F, gTrainerFrontPic_RunningTriathleteF, gTrainerPalette_RunningTriathleteF),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_SWIMMING_TRIATHLETE_M, gTrainerFrontPic_SwimmingTriathleteM, gTrainerPalette_SwimmingTriathleteM),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_SWIMMING_TRIATHLETE_F, gTrainerFrontPic_SwimmingTriathleteF, gTrainerPalette_SwimmingTriathleteF),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_DRAGON_TAMER, gTrainerFrontPic_DragonTamer, gTrainerPalette_DragonTamer),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_NINJA_BOY, gTrainerFrontPic_NinjaBoy, gTrainerPalette_NinjaBoy),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_BATTLE_GIRL, gTrainerFrontPic_BattleGirl, gTrainerPalette_BattleGirl),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_PARASOL_LADY, gTrainerFrontPic_ParasolLady, gTrainerPalette_ParasolLady),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_SWIMMER_F, gTrainerFrontPic_SwimmerF, gTrainerPalette_SwimmerF),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_TWINS, gTrainerFrontPic_Twins, gTrainerPalette_Twins),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_SAILOR, gTrainerFrontPic_Sailor, gTrainerPalette_Sailor),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_MAGMA_ADMIN, gTrainerFrontPic_MagmaAdmin, gTrainerPalette_MagmaAdmin),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_WALLY, gTrainerFrontPic_Wally, gTrainerPalette_Wally),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_BRENDAN, gTrainerFrontPic_Brendan, gTrainerPalette_Brendan),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_MAY, gTrainerFrontPic_May, gTrainerPalette_May),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_BUG_CATCHER, gTrainerFrontPic_BugCatcher, gTrainerPalette_BugCatcher),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_POKEMON_RANGER_M, gTrainerFrontPic_PokemonRangerM, gTrainerPalette_PokemonRangerM),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_POKEMON_RANGER_F, gTrainerFrontPic_PokemonRangerF, gTrainerPalette_PokemonRangerF),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_MAGMA_LEADER_MAXIE, gTrainerFrontPic_MagmaLeaderMaxie, gTrainerPalette_MagmaLeaderMaxie),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_LASS, gTrainerFrontPic_Lass, gTrainerPalette_Lass),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_YOUNG_COUPLE, gTrainerFrontPic_YoungCouple, gTrainerPalette_YoungCouple),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_OLD_COUPLE, gTrainerFrontPic_OldCouple, gTrainerPalette_OldCouple),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_SIS_AND_BRO, gTrainerFrontPic_SisAndBro, gTrainerPalette_SisAndBro),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_STEVEN, gTrainerFrontPic_Steven, gTrainerPalette_Steven, 0, 7, 0x188),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_SALON_MAIDEN_ANABEL, gTrainerFrontPic_SalonMaidenAnabel, gTrainerPalette_SalonMaidenAnabel),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_DOME_ACE_TUCKER, gTrainerFrontPic_DomeAceTucker, gTrainerPalette_DomeAceTucker),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_PALACE_MAVEN_SPENSER, gTrainerFrontPic_PalaceMavenSpenser, gTrainerPalette_PalaceMavenSpenser),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_ARENA_TYCOON_GRETA, gTrainerFrontPic_ArenaTycoonGreta, gTrainerPalette_ArenaTycoonGreta),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_FACTORY_HEAD_NOLAND, gTrainerFrontPic_FactoryHeadNoland, gTrainerPalette_FactoryHeadNoland),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_PIKE_QUEEN_LUCY, gTrainerFrontPic_PikeQueenLucy, gTrainerPalette_PikeQueenLucy),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_PYRAMID_KING_BRANDON, gTrainerFrontPic_PyramidKingBrandon, gTrainerPalette_PyramidKingBrandon),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_RED, gTrainerFrontPic_Red, gTrainerPalette_Red),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_LEAF, gTrainerFrontPic_Leaf, gTrainerPalette_Leaf),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_RS_BRENDAN, gTrainerFrontPic_RubySapphireBrendan, gTrainerPalette_RubySapphireBrendan),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_RS_MAY, gTrainerFrontPic_RubySapphireMay, gTrainerPalette_RubySapphireMay),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_YOUNGSTER_FRLG, gTrainerFrontPic_YoungsterFrlg, gTrainerPalette_YoungsterFrlg),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_BUG_CATCHER_FRLG, gTrainerFrontPic_BugCatcherFrlg, gTrainerPalette_BugCatcherFrlg),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_LASS_FRLG, gTrainerFrontPic_LassFrlg, gTrainerPalette_LassFrlg),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_SAILOR_FRLG, gTrainerFrontPic_SailorFrlg, gTrainerPalette_SailorFrlg),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_CAMPER_FRLG, gTrainerFrontPic_CamperFrlg, gTrainerPalette_CamperFrlg),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_PICNICKER_FRLG, gTrainerFrontPic_PicnickerFrlg, gTrainerPalette_PicnickerFrlg),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_POKEMANIAC_FRLG, gTrainerFrontPic_PokeManiacFrlg, gTrainerPalette_PokeManiacFrlg),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_SUPER_NERD_FRLG, gTrainerFrontPic_SuperNerdFrlg, gTrainerPalette_SuperNerdFrlg),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_HIKER_FRLG, gTrainerFrontPic_HikerFrlg, gTrainerPalette_HikerFrlg),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_BIKER_FRLG, gTrainerFrontPic_BikerFrlg, gTrainerPalette_BikerFrlg),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_BURGLAR_FRLG, gTrainerFrontPic_BurglarFrlg, gTrainerPalette_BurglarFrlg),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_ENGINEER_FRLG, gTrainerFrontPic_EngineerFrlg, gTrainerPalette_EngineerFrlg),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_FISHERMAN_FRLG, gTrainerFrontPic_FishermanFrlg, gTrainerPalette_FishermanFrlg),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_SWIMMER_M_FRLG, gTrainerFrontPic_SwimmerMFrlg, gTrainerPalette_SwimmerMFrlg),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_CUE_BALL_FRLG, gTrainerFrontPic_CueBallFrlg, gTrainerPalette_CueBallFrlg),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_GAMER_FRLG, gTrainerFrontPic_GamerFrlg, gTrainerPalette_GamerFrlg),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_BEAUTY_FRLG, gTrainerFrontPic_BeautyFrlg, gTrainerPalette_BeautyFrlg),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_SWIMMER_F_FRLG, gTrainerFrontPic_SwimmerFFrlg, gTrainerPalette_SwimmerFFrlg),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_PSYCHIC_M_FRLG, gTrainerFrontPic_PsychicMFrlg, gTrainerPalette_PsychicMFrlg),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_ROCKER_FRLG, gTrainerFrontPic_RockerFrlg, gTrainerPalette_RockerFrlg),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_JUGGLER_FRLG, gTrainerFrontPic_JugglerFrlg, gTrainerPalette_JugglerFrlg),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_TAMER_FRLG, gTrainerFrontPic_TamerFrlg, gTrainerPalette_TamerFrlg),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_BIRD_KEEPER_FRLG, gTrainerFrontPic_BirdKeeperFrlg, gTrainerPalette_BirdKeeperFrlg),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_BLACK_BELT_FRLG, gTrainerFrontPic_BlackBeltFrlg, gTrainerPalette_BlackBeltFrlg),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_RIVAL_EARLY_FRLG, gTrainerFrontPic_RivalEarlyFrlg, gTrainerPalette_RivalEarlyFrlg),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_SCIENTIST_FRLG, gTrainerFrontPic_ScientistFrlg, gTrainerPalette_ScientistFrlg),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_LEADER_GIOVANNI_FRLG, gTrainerFrontPic_LeaderGiovanniFrlg, gTrainerPalette_LeaderGiovanniFrlg),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_ROCKET_GRUNT_M_FRLG, gTrainerFrontPic_RocketGruntMFrlg, gTrainerPalette_RocketGruntMFrlg),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_COOLTRAINER_M_FRLG, gTrainerFrontPic_CooltrainerMFrlg, gTrainerPalette_CooltrainerMFrlg),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_COOLTRAINER_F_FRLG, gTrainerFrontPic_CooltrainerFFrlg, gTrainerPalette_CooltrainerFFrlg),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_ELITE_FOUR_LORELEI_FRLG, gTrainerFrontPic_EliteFourLoreleiFrlg, gTrainerPalette_EliteFourLoreleiFrlg, -8, 0),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_ELITE_FOUR_BRUNO_FRLG, gTrainerFrontPic_EliteFourBrunoFrlg, gTrainerPalette_EliteFourBrunoFrlg, -10, 0),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_ELITE_FOUR_AGATHA_FRLG, gTrainerFrontPic_EliteFourAgathaFrlg, gTrainerPalette_EliteFourAgathaFrlg, 0, 0),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_ELITE_FOUR_LANCE_FRLG, gTrainerFrontPic_EliteFourLanceFrlg, gTrainerPalette_EliteFourLanceFrlg, -32, 0),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_LEADER_BROCK_FRLG, gTrainerFrontPic_LeaderBrockFrlg, gTrainerPalette_LeaderBrockFrlg),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_LEADER_MISTY_FRLG, gTrainerFrontPic_LeaderMistyFrlg, gTrainerPalette_LeaderMistyFrlg),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_LEADER_LT_SURGE_FRLG, gTrainerFrontPic_LeaderLtSurgeFrlg, gTrainerPalette_LeaderLtSurgeFrlg),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_LEADER_ERIKA_FRLG, gTrainerFrontPic_LeaderErikaFrlg, gTrainerPalette_LeaderErikaFrlg),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_LEADER_KOGA_FRLG, gTrainerFrontPic_LeaderKogaFrlg, gTrainerPalette_LeaderKogaFrlg),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_LEADER_BLAINE_FRLG, gTrainerFrontPic_LeaderBlaineFrlg, gTrainerPalette_LeaderBlaineFrlg),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_LEADER_SABRINA_FRLG, gTrainerFrontPic_LeaderSabrinaFrlg, gTrainerPalette_LeaderSabrinaFrlg),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_GENTLEMAN_FRLG, gTrainerFrontPic_GentlemanFrlg, gTrainerPalette_GentlemanFrlg),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_RIVAL_LATE_FRLG, gTrainerFrontPic_RivalLateFrlg, gTrainerPalette_RivalLateFrlg),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_CHAMPION_RIVAL_FRLG, gTrainerFrontPic_ChampionRivalFrlg, gTrainerPalette_ChampionRivalFrlg, 0, 0),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_CHANNELER_FRLG, gTrainerFrontPic_ChannelerFrlg, gTrainerPalette_ChannelerFrlg),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_TWINS_FRLG, gTrainerFrontPic_TwinsFrlg, gTrainerPalette_TwinsFrlg),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_COOL_COUPLE_FRLG, gTrainerFrontPic_CoolCoupleFrlg, gTrainerPalette_CoolCoupleFrlg),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_YOUNG_COUPLE_FRLG, gTrainerFrontPic_YoungCoupleFrlg, gTrainerPalette_YoungCoupleFrlg),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_CRUSH_KIN_FRLG, gTrainerFrontPic_CrushKinFrlg, gTrainerPalette_CrushKinFrlg),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_SIS_AND_BRO_FRLG, gTrainerFrontPic_SisAndBroFrlg, gTrainerPalette_SisAndBroFrlg),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_PROFESSOR_OAK_FRLG, gTrainerFrontPic_ProfessorOakFrlg, gTrainerPalette_ProfessorOakFrlg),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_ROCKET_GRUNT_F_FRLG, gTrainerFrontPic_RocketGruntFFrlg, gTrainerPalette_RocketGruntFFrlg),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_PSYCHIC_F_FRLG, gTrainerFrontPic_PsychicFFrlg, gTrainerPalette_PsychicFFrlg),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_CRUSH_GIRL_FRLG, gTrainerFrontPic_CrushGirlFrlg, gTrainerPalette_CrushGirlFrlg),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_TUBER_F_FRLG, gTrainerFrontPic_TuberFFrlg, gTrainerPalette_TuberFFrlg),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_POKEMON_BREEDER_FRLG, gTrainerFrontPic_PokemonBreederFrlg, gTrainerPalette_PokemonBreederFrlg),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_POKEMON_RANGER_M_FRLG, gTrainerFrontPic_PokemonRangerMFrlg, gTrainerPalette_PokemonRangerMFrlg),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_POKEMON_RANGER_F_FRLG, gTrainerFrontPic_PokemonRangerFFrlg, gTrainerPalette_PokemonRangerFFrlg),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_AROMA_LADY_FRLG, gTrainerFrontPic_AromaLadyFrlg, gTrainerPalette_AromaLadyFrlg),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_RUIN_MANIAC_FRLG, gTrainerFrontPic_RuinManiacFrlg, gTrainerPalette_RuinManiacFrlg),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_LADY_FRLG, gTrainerFrontPic_LadyFrlg, gTrainerPalette_LadyFrlg),
|
||||
TRAINER_SPRITE(TRAINER_PIC_FRONT_PAINTER_FRLG, gTrainerFrontPic_PainterFrlg, gTrainerPalette_PainterFrlg),
|
||||
};
|
||||
|
||||
static const union AnimCmd sAnimCmd_Hoenn[] =
|
||||
{
|
||||
|
|
@ -703,6 +535,11 @@ static const union AnimCmd sAnimCmd_Point_HGSS_Red_Leaf[] =
|
|||
ANIMCMD_END,
|
||||
};
|
||||
|
||||
static const union AnimCmd *const sBackAnims_None[] = {
|
||||
sAnim_GeneralFrame0,
|
||||
sAnim_GeneralFrame0
|
||||
};
|
||||
|
||||
static const union AnimCmd *const sBackAnims_Hoenn[] =
|
||||
{
|
||||
sAnim_GeneralFrame3,
|
||||
|
|
@ -723,26 +560,670 @@ const union AnimCmd *const sBackAnims_OldManPokedude[] = {
|
|||
sAnim_GeneralFrame0,
|
||||
};
|
||||
|
||||
#define TRAINER_BACK_SPRITE(trainerPic, yOffset, sprite, pal, anim) \
|
||||
[trainerPic] = \
|
||||
{ \
|
||||
// The first two parameters invoke a front pic and palette by
|
||||
// calling a "TRAINER_PIC" constant (e.g. TRAINER_PIC_HIKER), and
|
||||
// gTrainerFrontPic/gTrainerPalette pointers, (e.g "gTrainerFrontPic_Hiker" and "gTrainerPalette_Hiker").
|
||||
// The last three parameters control the X and Y coordinates and rotation of the mugshot on the screen.
|
||||
// They default to 0, 0, and 0x200 which are default values used by the majority of the game's trainer sprites.
|
||||
#define TRAINER_FRONT_PIC(picFile, paletteFile, ...) \
|
||||
(const struct TrainerFrontPicInfo[]) \
|
||||
{{ \
|
||||
.imageData = picFile, \
|
||||
.paletteData = paletteFile, \
|
||||
.mugshotCoords = {DEFAULT(0, __VA_ARGS__), DEFAULT_2(0, __VA_ARGS__)}, \
|
||||
.mugshotRotation = DEFAULT_3(0x200, __VA_ARGS__), \
|
||||
}}
|
||||
|
||||
#define TRAINER_BACK_PIC(yOffset, sprite, pal, anim) \
|
||||
(const struct TrainerBackPicInfo[]) \
|
||||
{{ \
|
||||
.coordinates = {.size = 8, .y_offset = yOffset}, \
|
||||
.backPic = {.data = sprite, .size = TRAINER_PIC_SIZE, .relativeFrames = TRUE}, \
|
||||
.palette = {.data = pal, .tag = trainerPic}, \
|
||||
.image = {.data = sprite, .size = TRAINER_PIC_SIZE, .relativeFrames = TRUE}, \
|
||||
.paletteData = pal, \
|
||||
.animation = anim, \
|
||||
}
|
||||
}}
|
||||
|
||||
const struct TrainerBacksprite gTrainerBacksprites[] =
|
||||
const struct TrainerPicInfo gTrainerPicInfo[TRAINER_PIC_COUNT] =
|
||||
{
|
||||
TRAINER_BACK_SPRITE(TRAINER_PIC_BACK_BRENDAN, 4, gTrainerBackPic_Brendan, gTrainerPalette_Brendan, sBackAnims_Hoenn),
|
||||
TRAINER_BACK_SPRITE(TRAINER_PIC_BACK_MAY, 4, gTrainerBackPic_May, gTrainerPalette_May, sBackAnims_Hoenn),
|
||||
TRAINER_BACK_SPRITE(TRAINER_PIC_BACK_RED, 5, gTrainerBackPic_Red, gTrainerBackPicPalette_Red, sBackAnims_Kanto),
|
||||
TRAINER_BACK_SPRITE(TRAINER_PIC_BACK_LEAF, 5, gTrainerBackPic_Leaf, gTrainerBackPicPalette_Leaf, sBackAnims_Kanto),
|
||||
TRAINER_BACK_SPRITE(TRAINER_PIC_BACK_RUBY_SAPPHIRE_BRENDAN, 4, gTrainerBackPic_RubySapphireBrendan, gTrainerPalette_RubySapphireBrendan, sBackAnims_Hoenn),
|
||||
TRAINER_BACK_SPRITE(TRAINER_PIC_BACK_RUBY_SAPPHIRE_MAY, 4, gTrainerBackPic_RubySapphireMay, gTrainerPalette_RubySapphireMay, sBackAnims_Hoenn),
|
||||
TRAINER_BACK_SPRITE(TRAINER_PIC_BACK_WALLY, 4, gTrainerBackPic_Wally, gTrainerPalette_Wally, sBackAnims_Hoenn),
|
||||
TRAINER_BACK_SPRITE(TRAINER_PIC_BACK_STEVEN, 4, gTrainerBackPic_Steven, gTrainerPalette_Steven, sBackAnims_Hoenn),
|
||||
TRAINER_BACK_SPRITE(TRAINER_PIC_BACK_POKEDUDE, 4, gTrainerBackPic_Pokedude, gTrainerBackPicPalette_Pokedude, sBackAnims_OldManPokedude),
|
||||
TRAINER_BACK_SPRITE(TRAINER_PIC_BACK_OLD_MAN, 4, gTrainerBackPic_OldMan, gTrainerBackPicPalette_OldMan, sBackAnims_OldManPokedude),
|
||||
|
||||
[TRAINER_PIC_NONE] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_None, gTrainerPalette_None),
|
||||
.backPic = TRAINER_BACK_PIC(1, gTrainerBackPic_None, gTrainerPalette_None, sBackAnims_None),
|
||||
},
|
||||
[TRAINER_PIC_BRENDAN] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_Brendan, gTrainerPalette_Brendan),
|
||||
.backPic = TRAINER_BACK_PIC(4, gTrainerBackPic_Brendan, gTrainerPalette_Brendan, sBackAnims_Hoenn),
|
||||
},
|
||||
[TRAINER_PIC_MAY] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_May, gTrainerPalette_May),
|
||||
.backPic = TRAINER_BACK_PIC(4, gTrainerBackPic_May, gTrainerPalette_May, sBackAnims_Hoenn),
|
||||
},
|
||||
[TRAINER_PIC_RED] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_Red, gTrainerPalette_Red),
|
||||
.backPic = TRAINER_BACK_PIC(5, gTrainerBackPic_Red, gTrainerBackPicPalette_Red, sBackAnims_Kanto),
|
||||
},
|
||||
[TRAINER_PIC_LEAF] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_Leaf, gTrainerPalette_Leaf),
|
||||
.backPic = TRAINER_BACK_PIC(5, gTrainerBackPic_Leaf, gTrainerBackPicPalette_Leaf, sBackAnims_Kanto),
|
||||
},
|
||||
[TRAINER_PIC_RS_BRENDAN] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_RubySapphireBrendan, gTrainerPalette_RubySapphireBrendan),
|
||||
.backPic = TRAINER_BACK_PIC(4, gTrainerBackPic_RubySapphireBrendan, gTrainerPalette_RubySapphireBrendan, sBackAnims_Hoenn),
|
||||
},
|
||||
[TRAINER_PIC_RS_MAY] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_RubySapphireMay, gTrainerPalette_RubySapphireMay),
|
||||
.backPic = TRAINER_BACK_PIC(4, gTrainerBackPic_RubySapphireMay, gTrainerPalette_RubySapphireMay, sBackAnims_Hoenn),
|
||||
},
|
||||
[TRAINER_PIC_WALLY] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_Wally, gTrainerPalette_Wally),
|
||||
.backPic = TRAINER_BACK_PIC(4, gTrainerBackPic_Wally, gTrainerPalette_Wally, sBackAnims_Hoenn),
|
||||
},
|
||||
[TRAINER_PIC_STEVEN] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_Steven, gTrainerPalette_Steven, 0, 7, 0x188),
|
||||
.backPic = TRAINER_BACK_PIC(4, gTrainerBackPic_Steven, gTrainerPalette_Steven, sBackAnims_Hoenn),
|
||||
},
|
||||
[TRAINER_PIC_POKEDUDE] =
|
||||
{
|
||||
.backPic = TRAINER_BACK_PIC(4, gTrainerBackPic_Pokedude, gTrainerBackPicPalette_Pokedude, sBackAnims_OldManPokedude),
|
||||
},
|
||||
[TRAINER_PIC_OLD_MAN] =
|
||||
{
|
||||
.backPic = TRAINER_BACK_PIC(4, gTrainerBackPic_OldMan, gTrainerBackPicPalette_OldMan, sBackAnims_OldManPokedude),
|
||||
},
|
||||
[TRAINER_PIC_HIKER] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_Hiker, gTrainerPalette_Hiker),
|
||||
},
|
||||
[TRAINER_PIC_AQUA_GRUNT_M] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_AquaGruntM, gTrainerPalette_AquaGruntM),
|
||||
},
|
||||
[TRAINER_PIC_POKEMON_BREEDER_F] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_PokemonBreederF, gTrainerPalette_PokemonBreederF),
|
||||
},
|
||||
[TRAINER_PIC_COOLTRAINER_M] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_CoolTrainerM, gTrainerPalette_CoolTrainerM),
|
||||
},
|
||||
[TRAINER_PIC_BIRD_KEEPER] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_BirdKeeper, gTrainerPalette_BirdKeeper),
|
||||
},
|
||||
[TRAINER_PIC_COLLECTOR] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_Collector, gTrainerPalette_Collector),
|
||||
},
|
||||
[TRAINER_PIC_AQUA_GRUNT_F] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_AquaGruntF, gTrainerPalette_AquaGruntF),
|
||||
},
|
||||
[TRAINER_PIC_SWIMMER_M] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_SwimmerM, gTrainerPalette_SwimmerM),
|
||||
},
|
||||
[TRAINER_PIC_MAGMA_GRUNT_M] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_MagmaGruntM, gTrainerPalette_MagmaGruntM),
|
||||
},
|
||||
[TRAINER_PIC_EXPERT_M] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_ExpertM, gTrainerPalette_ExpertM),
|
||||
},
|
||||
[TRAINER_PIC_AQUA_ADMIN_M] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_AquaAdminM, gTrainerPalette_AquaAdminM),
|
||||
},
|
||||
[TRAINER_PIC_BLACK_BELT] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_BlackBelt, gTrainerPalette_BlackBelt),
|
||||
},
|
||||
[TRAINER_PIC_AQUA_ADMIN_F] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_AquaAdminF, gTrainerPalette_AquaAdminF),
|
||||
},
|
||||
[TRAINER_PIC_AQUA_LEADER_ARCHIE] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_AquaLeaderArchie, gTrainerPalette_AquaLeaderArchie),
|
||||
},
|
||||
[TRAINER_PIC_HEX_MANIAC] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_HexManiac, gTrainerPalette_HexManiac),
|
||||
},
|
||||
[TRAINER_PIC_AROMA_LADY] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_AromaLady, gTrainerPalette_AromaLady),
|
||||
},
|
||||
[TRAINER_PIC_RUIN_MANIAC] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_RuinManiac, gTrainerPalette_RuinManiac),
|
||||
},
|
||||
[TRAINER_PIC_INTERVIEWER] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_Interviewer, gTrainerPalette_Interviewer),
|
||||
},
|
||||
[TRAINER_PIC_TUBER_F] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_TuberF, gTrainerPalette_TuberF),
|
||||
},
|
||||
[TRAINER_PIC_TUBER_M] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_TuberM, gTrainerPalette_TuberM),
|
||||
},
|
||||
[TRAINER_PIC_COOLTRAINER_F] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_CoolTrainerF, gTrainerPalette_CoolTrainerF),
|
||||
},
|
||||
[TRAINER_PIC_LADY] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_Lady, gTrainerPalette_Lady),
|
||||
},
|
||||
[TRAINER_PIC_BEAUTY] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_Beauty, gTrainerPalette_Beauty),
|
||||
},
|
||||
[TRAINER_PIC_RICH_BOY] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_RichBoy, gTrainerPalette_RichBoy),
|
||||
},
|
||||
[TRAINER_PIC_EXPERT_F] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_ExpertF, gTrainerPalette_ExpertF),
|
||||
},
|
||||
[TRAINER_PIC_POKEMANIAC] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_Pokemaniac, gTrainerPalette_Pokemaniac),
|
||||
},
|
||||
[TRAINER_PIC_MAGMA_GRUNT_F] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_MagmaGruntF, gTrainerPalette_MagmaGruntF),
|
||||
},
|
||||
[TRAINER_PIC_GUITARIST] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_Guitarist, gTrainerPalette_Guitarist),
|
||||
},
|
||||
[TRAINER_PIC_KINDLER] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_Kindler, gTrainerPalette_Kindler),
|
||||
},
|
||||
[TRAINER_PIC_CAMPER] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_Camper, gTrainerPalette_Camper),
|
||||
},
|
||||
[TRAINER_PIC_PICNICKER] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_Picnicker, gTrainerPalette_Picnicker),
|
||||
},
|
||||
[TRAINER_PIC_BUG_MANIAC] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_BugManiac, gTrainerPalette_BugManiac),
|
||||
},
|
||||
[TRAINER_PIC_POKEMON_BREEDER_M] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_PokemonBreederM, gTrainerPalette_PokemonBreederM),
|
||||
},
|
||||
[TRAINER_PIC_PSYCHIC_M] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_PsychicM, gTrainerPalette_PsychicM),
|
||||
},
|
||||
[TRAINER_PIC_PSYCHIC_F] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_PsychicF, gTrainerPalette_PsychicF),
|
||||
},
|
||||
[TRAINER_PIC_GENTLEMAN] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_Gentleman, gTrainerPalette_Gentleman),
|
||||
},
|
||||
[TRAINER_PIC_ELITE_FOUR_SIDNEY] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_EliteFourSidney, gTrainerPalette_EliteFourSidney),
|
||||
},
|
||||
[TRAINER_PIC_ELITE_FOUR_PHOEBE] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_EliteFourPhoebe, gTrainerPalette_EliteFourPhoebe),
|
||||
},
|
||||
[TRAINER_PIC_ELITE_FOUR_GLACIA] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_EliteFourGlacia, gTrainerPalette_EliteFourGlacia, -4, 4, 0x1B0),
|
||||
},
|
||||
[TRAINER_PIC_ELITE_FOUR_DRAKE] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_EliteFourDrake, gTrainerPalette_EliteFourDrake, 0, 5, 0x1A0),
|
||||
},
|
||||
[TRAINER_PIC_LEADER_ROXANNE] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_LeaderRoxanne, gTrainerPalette_LeaderRoxanne),
|
||||
},
|
||||
[TRAINER_PIC_LEADER_BRAWLY] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_LeaderBrawly, gTrainerPalette_LeaderBrawly),
|
||||
},
|
||||
[TRAINER_PIC_LEADER_WATTSON] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_LeaderWattson, gTrainerPalette_LeaderWattson),
|
||||
},
|
||||
[TRAINER_PIC_LEADER_FLANNERY] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_LeaderFlannery, gTrainerPalette_LeaderFlannery),
|
||||
},
|
||||
[TRAINER_PIC_LEADER_NORMAN] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_LeaderNorman, gTrainerPalette_LeaderNorman),
|
||||
},
|
||||
[TRAINER_PIC_LEADER_WINONA] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_LeaderWinona, gTrainerPalette_LeaderWinona),
|
||||
},
|
||||
[TRAINER_PIC_LEADER_TATE_AND_LIZA] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_LeaderTateAndLiza, gTrainerPalette_LeaderTateAndLiza),
|
||||
},
|
||||
[TRAINER_PIC_LEADER_JUAN] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_LeaderJuan, gTrainerPalette_LeaderJuan),
|
||||
},
|
||||
[TRAINER_PIC_SCHOOL_KID_M] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_SchoolKidM, gTrainerPalette_SchoolKidM),
|
||||
},
|
||||
[TRAINER_PIC_SCHOOL_KID_F] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_SchoolKidF, gTrainerPalette_SchoolKidF),
|
||||
},
|
||||
[TRAINER_PIC_SR_AND_JR] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_SrAndJr, gTrainerPalette_SrAndJr),
|
||||
},
|
||||
[TRAINER_PIC_POKEFAN_M] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_PokefanM, gTrainerPalette_PokefanM),
|
||||
},
|
||||
[TRAINER_PIC_POKEFAN_F] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_PokefanF, gTrainerPalette_PokefanF),
|
||||
},
|
||||
[TRAINER_PIC_YOUNGSTER] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_Youngster, gTrainerPalette_Youngster),
|
||||
},
|
||||
[TRAINER_PIC_CHAMPION_WALLACE] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_ChampionWallace, gTrainerPalette_ChampionWallace, -8, 7, 0x188),
|
||||
},
|
||||
[TRAINER_PIC_FISHERMAN] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_Fisherman, gTrainerPalette_Fisherman),
|
||||
},
|
||||
[TRAINER_PIC_CYCLING_TRIATHLETE_M] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_CyclingTriathleteM, gTrainerPalette_CyclingTriathleteM),
|
||||
},
|
||||
[TRAINER_PIC_CYCLING_TRIATHLETE_F] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_CyclingTriathleteF, gTrainerPalette_CyclingTriathleteF),
|
||||
},
|
||||
[TRAINER_PIC_RUNNING_TRIATHLETE_M] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_RunningTriathleteM, gTrainerPalette_RunningTriathleteM),
|
||||
},
|
||||
[TRAINER_PIC_RUNNING_TRIATHLETE_F] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_RunningTriathleteF, gTrainerPalette_RunningTriathleteF),
|
||||
},
|
||||
[TRAINER_PIC_SWIMMING_TRIATHLETE_M] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_SwimmingTriathleteM, gTrainerPalette_SwimmingTriathleteM),
|
||||
},
|
||||
[TRAINER_PIC_SWIMMING_TRIATHLETE_F] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_SwimmingTriathleteF, gTrainerPalette_SwimmingTriathleteF),
|
||||
},
|
||||
[TRAINER_PIC_DRAGON_TAMER] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_DragonTamer, gTrainerPalette_DragonTamer),
|
||||
},
|
||||
[TRAINER_PIC_NINJA_BOY] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_NinjaBoy, gTrainerPalette_NinjaBoy),
|
||||
},
|
||||
[TRAINER_PIC_BATTLE_GIRL] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_BattleGirl, gTrainerPalette_BattleGirl),
|
||||
},
|
||||
[TRAINER_PIC_PARASOL_LADY] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_ParasolLady, gTrainerPalette_ParasolLady),
|
||||
},
|
||||
[TRAINER_PIC_SWIMMER_F] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_SwimmerF, gTrainerPalette_SwimmerF),
|
||||
},
|
||||
[TRAINER_PIC_TWINS] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_Twins, gTrainerPalette_Twins),
|
||||
},
|
||||
[TRAINER_PIC_SAILOR] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_Sailor, gTrainerPalette_Sailor),
|
||||
},
|
||||
[TRAINER_PIC_MAGMA_ADMIN] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_MagmaAdmin, gTrainerPalette_MagmaAdmin),
|
||||
},
|
||||
[TRAINER_PIC_BUG_CATCHER] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_BugCatcher, gTrainerPalette_BugCatcher),
|
||||
},
|
||||
[TRAINER_PIC_POKEMON_RANGER_M] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_PokemonRangerM, gTrainerPalette_PokemonRangerM),
|
||||
},
|
||||
[TRAINER_PIC_POKEMON_RANGER_F] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_PokemonRangerF, gTrainerPalette_PokemonRangerF),
|
||||
},
|
||||
[TRAINER_PIC_MAGMA_LEADER_MAXIE] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_MagmaLeaderMaxie, gTrainerPalette_MagmaLeaderMaxie),
|
||||
},
|
||||
[TRAINER_PIC_LASS] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_Lass, gTrainerPalette_Lass),
|
||||
},
|
||||
[TRAINER_PIC_YOUNG_COUPLE] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_YoungCouple, gTrainerPalette_YoungCouple),
|
||||
},
|
||||
[TRAINER_PIC_OLD_COUPLE] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_OldCouple, gTrainerPalette_OldCouple),
|
||||
},
|
||||
[TRAINER_PIC_SIS_AND_BRO] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_SisAndBro, gTrainerPalette_SisAndBro),
|
||||
},
|
||||
[TRAINER_PIC_SALON_MAIDEN_ANABEL] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_SalonMaidenAnabel, gTrainerPalette_SalonMaidenAnabel),
|
||||
},
|
||||
[TRAINER_PIC_DOME_ACE_TUCKER] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_DomeAceTucker, gTrainerPalette_DomeAceTucker),
|
||||
},
|
||||
[TRAINER_PIC_PALACE_MAVEN_SPENSER] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_PalaceMavenSpenser, gTrainerPalette_PalaceMavenSpenser),
|
||||
},
|
||||
[TRAINER_PIC_ARENA_TYCOON_GRETA] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_ArenaTycoonGreta, gTrainerPalette_ArenaTycoonGreta),
|
||||
},
|
||||
[TRAINER_PIC_FACTORY_HEAD_NOLAND] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_FactoryHeadNoland, gTrainerPalette_FactoryHeadNoland),
|
||||
},
|
||||
[TRAINER_PIC_PIKE_QUEEN_LUCY] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_PikeQueenLucy, gTrainerPalette_PikeQueenLucy),
|
||||
},
|
||||
[TRAINER_PIC_PYRAMID_KING_BRANDON] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_PyramidKingBrandon, gTrainerPalette_PyramidKingBrandon),
|
||||
},
|
||||
[TRAINER_PIC_YOUNGSTER_FRLG] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_YoungsterFrlg, gTrainerPalette_YoungsterFrlg),
|
||||
},
|
||||
[TRAINER_PIC_BUG_CATCHER_FRLG] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_BugCatcherFrlg, gTrainerPalette_BugCatcherFrlg),
|
||||
},
|
||||
[TRAINER_PIC_LASS_FRLG] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_LassFrlg, gTrainerPalette_LassFrlg),
|
||||
},
|
||||
[TRAINER_PIC_SAILOR_FRLG] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_SailorFrlg, gTrainerPalette_SailorFrlg),
|
||||
},
|
||||
[TRAINER_PIC_CAMPER_FRLG] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_CamperFrlg, gTrainerPalette_CamperFrlg),
|
||||
},
|
||||
[TRAINER_PIC_PICNICKER_FRLG] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_PicnickerFrlg, gTrainerPalette_PicnickerFrlg),
|
||||
},
|
||||
[TRAINER_PIC_POKEMANIAC_FRLG] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_PokeManiacFrlg, gTrainerPalette_PokeManiacFrlg),
|
||||
},
|
||||
[TRAINER_PIC_SUPER_NERD_FRLG] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_SuperNerdFrlg, gTrainerPalette_SuperNerdFrlg),
|
||||
},
|
||||
[TRAINER_PIC_HIKER_FRLG] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_HikerFrlg, gTrainerPalette_HikerFrlg),
|
||||
},
|
||||
[TRAINER_PIC_BIKER_FRLG] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_BikerFrlg, gTrainerPalette_BikerFrlg),
|
||||
},
|
||||
[TRAINER_PIC_BURGLAR_FRLG] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_BurglarFrlg, gTrainerPalette_BurglarFrlg),
|
||||
},
|
||||
[TRAINER_PIC_ENGINEER_FRLG] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_EngineerFrlg, gTrainerPalette_EngineerFrlg),
|
||||
},
|
||||
[TRAINER_PIC_FISHERMAN_FRLG] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_FishermanFrlg, gTrainerPalette_FishermanFrlg),
|
||||
},
|
||||
[TRAINER_PIC_SWIMMER_M_FRLG] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_SwimmerMFrlg, gTrainerPalette_SwimmerMFrlg),
|
||||
},
|
||||
[TRAINER_PIC_CUE_BALL_FRLG] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_CueBallFrlg, gTrainerPalette_CueBallFrlg),
|
||||
},
|
||||
[TRAINER_PIC_GAMER_FRLG] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_GamerFrlg, gTrainerPalette_GamerFrlg),
|
||||
},
|
||||
[TRAINER_PIC_BEAUTY_FRLG] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_BeautyFrlg, gTrainerPalette_BeautyFrlg),
|
||||
},
|
||||
[TRAINER_PIC_SWIMMER_F_FRLG] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_SwimmerFFrlg, gTrainerPalette_SwimmerFFrlg),
|
||||
},
|
||||
[TRAINER_PIC_PSYCHIC_M_FRLG] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_PsychicMFrlg, gTrainerPalette_PsychicMFrlg),
|
||||
},
|
||||
[TRAINER_PIC_ROCKER_FRLG] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_RockerFrlg, gTrainerPalette_RockerFrlg),
|
||||
},
|
||||
[TRAINER_PIC_JUGGLER_FRLG] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_JugglerFrlg, gTrainerPalette_JugglerFrlg),
|
||||
},
|
||||
[TRAINER_PIC_TAMER_FRLG] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_TamerFrlg, gTrainerPalette_TamerFrlg),
|
||||
},
|
||||
[TRAINER_PIC_BIRD_KEEPER_FRLG] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_BirdKeeperFrlg, gTrainerPalette_BirdKeeperFrlg),
|
||||
},
|
||||
[TRAINER_PIC_BLACK_BELT_FRLG] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_BlackBeltFrlg, gTrainerPalette_BlackBeltFrlg),
|
||||
},
|
||||
[TRAINER_PIC_RIVAL_EARLY_FRLG] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_RivalEarlyFrlg, gTrainerPalette_RivalEarlyFrlg),
|
||||
},
|
||||
[TRAINER_PIC_SCIENTIST_FRLG] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_ScientistFrlg, gTrainerPalette_ScientistFrlg),
|
||||
},
|
||||
[TRAINER_PIC_LEADER_GIOVANNI_FRLG] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_LeaderGiovanniFrlg, gTrainerPalette_LeaderGiovanniFrlg),
|
||||
},
|
||||
[TRAINER_PIC_ROCKET_GRUNT_M_FRLG] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_RocketGruntMFrlg, gTrainerPalette_RocketGruntMFrlg),
|
||||
},
|
||||
[TRAINER_PIC_COOLTRAINER_M_FRLG] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_CooltrainerMFrlg, gTrainerPalette_CooltrainerMFrlg),
|
||||
},
|
||||
[TRAINER_PIC_COOLTRAINER_F_FRLG] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_CooltrainerFFrlg, gTrainerPalette_CooltrainerFFrlg),
|
||||
},
|
||||
[TRAINER_PIC_ELITE_FOUR_LORELEI_FRLG] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_EliteFourLoreleiFrlg, gTrainerPalette_EliteFourLoreleiFrlg, -8, 0),
|
||||
},
|
||||
[TRAINER_PIC_ELITE_FOUR_BRUNO_FRLG] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_EliteFourBrunoFrlg, gTrainerPalette_EliteFourBrunoFrlg, -10, 0),
|
||||
},
|
||||
[TRAINER_PIC_ELITE_FOUR_AGATHA_FRLG] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_EliteFourAgathaFrlg, gTrainerPalette_EliteFourAgathaFrlg, 0, 0),
|
||||
},
|
||||
[TRAINER_PIC_ELITE_FOUR_LANCE_FRLG] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_EliteFourLanceFrlg, gTrainerPalette_EliteFourLanceFrlg, -32, 0),
|
||||
},
|
||||
[TRAINER_PIC_LEADER_BROCK_FRLG] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_LeaderBrockFrlg, gTrainerPalette_LeaderBrockFrlg),
|
||||
},
|
||||
[TRAINER_PIC_LEADER_MISTY_FRLG] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_LeaderMistyFrlg, gTrainerPalette_LeaderMistyFrlg),
|
||||
},
|
||||
[TRAINER_PIC_LEADER_LT_SURGE_FRLG] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_LeaderLtSurgeFrlg, gTrainerPalette_LeaderLtSurgeFrlg),
|
||||
},
|
||||
[TRAINER_PIC_LEADER_ERIKA_FRLG] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_LeaderErikaFrlg, gTrainerPalette_LeaderErikaFrlg),
|
||||
},
|
||||
[TRAINER_PIC_LEADER_KOGA_FRLG] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_LeaderKogaFrlg, gTrainerPalette_LeaderKogaFrlg),
|
||||
},
|
||||
[TRAINER_PIC_LEADER_BLAINE_FRLG] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_LeaderBlaineFrlg, gTrainerPalette_LeaderBlaineFrlg),
|
||||
},
|
||||
[TRAINER_PIC_LEADER_SABRINA_FRLG] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_LeaderSabrinaFrlg, gTrainerPalette_LeaderSabrinaFrlg),
|
||||
},
|
||||
[TRAINER_PIC_GENTLEMAN_FRLG] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_GentlemanFrlg, gTrainerPalette_GentlemanFrlg),
|
||||
},
|
||||
[TRAINER_PIC_RIVAL_LATE_FRLG] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_RivalLateFrlg, gTrainerPalette_RivalLateFrlg),
|
||||
},
|
||||
[TRAINER_PIC_CHAMPION_RIVAL_FRLG] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_ChampionRivalFrlg, gTrainerPalette_ChampionRivalFrlg, 0, 0),
|
||||
},
|
||||
[TRAINER_PIC_CHANNELER_FRLG] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_ChannelerFrlg, gTrainerPalette_ChannelerFrlg),
|
||||
},
|
||||
[TRAINER_PIC_TWINS_FRLG] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_TwinsFrlg, gTrainerPalette_TwinsFrlg),
|
||||
},
|
||||
[TRAINER_PIC_COOL_COUPLE_FRLG] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_CoolCoupleFrlg, gTrainerPalette_CoolCoupleFrlg),
|
||||
},
|
||||
[TRAINER_PIC_YOUNG_COUPLE_FRLG] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_YoungCoupleFrlg, gTrainerPalette_YoungCoupleFrlg),
|
||||
},
|
||||
[TRAINER_PIC_CRUSH_KIN_FRLG] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_CrushKinFrlg, gTrainerPalette_CrushKinFrlg),
|
||||
},
|
||||
[TRAINER_PIC_SIS_AND_BRO_FRLG] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_SisAndBroFrlg, gTrainerPalette_SisAndBroFrlg),
|
||||
},
|
||||
[TRAINER_PIC_PROFESSOR_OAK_FRLG] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_ProfessorOakFrlg, gTrainerPalette_ProfessorOakFrlg),
|
||||
},
|
||||
[TRAINER_PIC_ROCKET_GRUNT_F_FRLG] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_RocketGruntFFrlg, gTrainerPalette_RocketGruntFFrlg),
|
||||
},
|
||||
[TRAINER_PIC_PSYCHIC_F_FRLG] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_PsychicFFrlg, gTrainerPalette_PsychicFFrlg),
|
||||
},
|
||||
[TRAINER_PIC_CRUSH_GIRL_FRLG] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_CrushGirlFrlg, gTrainerPalette_CrushGirlFrlg),
|
||||
},
|
||||
[TRAINER_PIC_TUBER_F_FRLG] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_TuberFFrlg, gTrainerPalette_TuberFFrlg),
|
||||
},
|
||||
[TRAINER_PIC_POKEMON_BREEDER_FRLG] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_PokemonBreederFrlg, gTrainerPalette_PokemonBreederFrlg),
|
||||
},
|
||||
[TRAINER_PIC_POKEMON_RANGER_M_FRLG] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_PokemonRangerMFrlg, gTrainerPalette_PokemonRangerMFrlg),
|
||||
},
|
||||
[TRAINER_PIC_POKEMON_RANGER_F_FRLG] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_PokemonRangerFFrlg, gTrainerPalette_PokemonRangerFFrlg),
|
||||
},
|
||||
[TRAINER_PIC_AROMA_LADY_FRLG] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_AromaLadyFrlg, gTrainerPalette_AromaLadyFrlg),
|
||||
},
|
||||
[TRAINER_PIC_RUIN_MANIAC_FRLG] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_RuinManiacFrlg, gTrainerPalette_RuinManiacFrlg),
|
||||
},
|
||||
[TRAINER_PIC_LADY_FRLG] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_LadyFrlg, gTrainerPalette_LadyFrlg),
|
||||
},
|
||||
[TRAINER_PIC_PAINTER_FRLG] =
|
||||
{
|
||||
.frontPic = TRAINER_FRONT_PIC(gTrainerFrontPic_PainterFrlg, gTrainerPalette_PainterFrlg),
|
||||
},
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,124 +1,124 @@
|
|||
const u16 gFacilityClassToPicIndex[] =
|
||||
{
|
||||
[FACILITY_CLASS_HIKER] = TRAINER_PIC_FRONT_HIKER,
|
||||
[FACILITY_CLASS_AQUA_GRUNT_M] = TRAINER_PIC_FRONT_AQUA_GRUNT_M,
|
||||
[FACILITY_CLASS_PKMN_BREEDER_F] = TRAINER_PIC_FRONT_POKEMON_BREEDER_F,
|
||||
[FACILITY_CLASS_COOLTRAINER_M] = TRAINER_PIC_FRONT_COOLTRAINER_M,
|
||||
[FACILITY_CLASS_BIRD_KEEPER] = TRAINER_PIC_FRONT_BIRD_KEEPER,
|
||||
[FACILITY_CLASS_COLLECTOR] = TRAINER_PIC_FRONT_COLLECTOR,
|
||||
[FACILITY_CLASS_AQUA_GRUNT_F] = TRAINER_PIC_FRONT_AQUA_GRUNT_F,
|
||||
[FACILITY_CLASS_SWIMMER_M] = TRAINER_PIC_FRONT_SWIMMER_M,
|
||||
[FACILITY_CLASS_MAGMA_GRUNT_M] = TRAINER_PIC_FRONT_MAGMA_GRUNT_M,
|
||||
[FACILITY_CLASS_EXPERT_M] = TRAINER_PIC_FRONT_EXPERT_M,
|
||||
[FACILITY_CLASS_BLACK_BELT] = TRAINER_PIC_FRONT_BLACK_BELT,
|
||||
[FACILITY_CLASS_AQUA_LEADER_ARCHIE] = TRAINER_PIC_FRONT_AQUA_LEADER_ARCHIE,
|
||||
[FACILITY_CLASS_HEX_MANIAC] = TRAINER_PIC_FRONT_HEX_MANIAC,
|
||||
[FACILITY_CLASS_AROMA_LADY] = TRAINER_PIC_FRONT_AROMA_LADY,
|
||||
[FACILITY_CLASS_RUIN_MANIAC] = TRAINER_PIC_FRONT_RUIN_MANIAC,
|
||||
[FACILITY_CLASS_INTERVIEWER] = TRAINER_PIC_FRONT_INTERVIEWER,
|
||||
[FACILITY_CLASS_TUBER_F] = TRAINER_PIC_FRONT_TUBER_F,
|
||||
[FACILITY_CLASS_TUBER_M] = TRAINER_PIC_FRONT_TUBER_M,
|
||||
[FACILITY_CLASS_COOLTRAINER_F] = TRAINER_PIC_FRONT_COOLTRAINER_F,
|
||||
[FACILITY_CLASS_LADY] = TRAINER_PIC_FRONT_LADY,
|
||||
[FACILITY_CLASS_BEAUTY] = TRAINER_PIC_FRONT_BEAUTY,
|
||||
[FACILITY_CLASS_RICH_BOY] = TRAINER_PIC_FRONT_RICH_BOY,
|
||||
[FACILITY_CLASS_EXPERT_F] = TRAINER_PIC_FRONT_EXPERT_F,
|
||||
[FACILITY_CLASS_POKEMANIAC] = TRAINER_PIC_FRONT_POKEMANIAC,
|
||||
[FACILITY_CLASS_MAGMA_GRUNT_F] = TRAINER_PIC_FRONT_MAGMA_GRUNT_F,
|
||||
[FACILITY_CLASS_GUITARIST] = TRAINER_PIC_FRONT_GUITARIST,
|
||||
[FACILITY_CLASS_KINDLER] = TRAINER_PIC_FRONT_KINDLER,
|
||||
[FACILITY_CLASS_CAMPER] = TRAINER_PIC_FRONT_CAMPER,
|
||||
[FACILITY_CLASS_PICNICKER] = TRAINER_PIC_FRONT_PICNICKER,
|
||||
[FACILITY_CLASS_BUG_MANIAC] = TRAINER_PIC_FRONT_BUG_MANIAC,
|
||||
[FACILITY_CLASS_PSYCHIC_M] = TRAINER_PIC_FRONT_PSYCHIC_M,
|
||||
[FACILITY_CLASS_PSYCHIC_F] = TRAINER_PIC_FRONT_PSYCHIC_F,
|
||||
[FACILITY_CLASS_GENTLEMAN] = TRAINER_PIC_FRONT_GENTLEMAN,
|
||||
[FACILITY_CLASS_ELITE_FOUR_SIDNEY] = TRAINER_PIC_FRONT_ELITE_FOUR_SIDNEY,
|
||||
[FACILITY_CLASS_ELITE_FOUR_PHOEBE] = TRAINER_PIC_FRONT_ELITE_FOUR_PHOEBE,
|
||||
[FACILITY_CLASS_LEADER_ROXANNE] = TRAINER_PIC_FRONT_LEADER_ROXANNE,
|
||||
[FACILITY_CLASS_LEADER_BRAWLY] = TRAINER_PIC_FRONT_LEADER_BRAWLY,
|
||||
[FACILITY_CLASS_LEADER_TATE_AND_LIZA] = TRAINER_PIC_FRONT_LEADER_TATE_AND_LIZA,
|
||||
[FACILITY_CLASS_SCHOOL_KID_M] = TRAINER_PIC_FRONT_SCHOOL_KID_M,
|
||||
[FACILITY_CLASS_SCHOOL_KID_F] = TRAINER_PIC_FRONT_SCHOOL_KID_F,
|
||||
[FACILITY_CLASS_SR_AND_JR] = TRAINER_PIC_FRONT_SR_AND_JR,
|
||||
[FACILITY_CLASS_POKEFAN_M] = TRAINER_PIC_FRONT_POKEFAN_M,
|
||||
[FACILITY_CLASS_POKEFAN_F] = TRAINER_PIC_FRONT_POKEFAN_F,
|
||||
[FACILITY_CLASS_YOUNGSTER] = TRAINER_PIC_FRONT_YOUNGSTER,
|
||||
[FACILITY_CLASS_CHAMPION_WALLACE] = TRAINER_PIC_FRONT_CHAMPION_WALLACE,
|
||||
[FACILITY_CLASS_FISHERMAN] = TRAINER_PIC_FRONT_FISHERMAN,
|
||||
[FACILITY_CLASS_CYCLING_TRIATHLETE_M] = TRAINER_PIC_FRONT_CYCLING_TRIATHLETE_M,
|
||||
[FACILITY_CLASS_CYCLING_TRIATHLETE_F] = TRAINER_PIC_FRONT_CYCLING_TRIATHLETE_F,
|
||||
[FACILITY_CLASS_RUNNING_TRIATHLETE_M] = TRAINER_PIC_FRONT_RUNNING_TRIATHLETE_M,
|
||||
[FACILITY_CLASS_RUNNING_TRIATHLETE_F] = TRAINER_PIC_FRONT_RUNNING_TRIATHLETE_F,
|
||||
[FACILITY_CLASS_SWIMMING_TRIATHLETE_M] = TRAINER_PIC_FRONT_SWIMMING_TRIATHLETE_M,
|
||||
[FACILITY_CLASS_SWIMMING_TRIATHLETE_F] = TRAINER_PIC_FRONT_SWIMMING_TRIATHLETE_F,
|
||||
[FACILITY_CLASS_DRAGON_TAMER] = TRAINER_PIC_FRONT_DRAGON_TAMER,
|
||||
[FACILITY_CLASS_NINJA_BOY] = TRAINER_PIC_FRONT_NINJA_BOY,
|
||||
[FACILITY_CLASS_BATTLE_GIRL] = TRAINER_PIC_FRONT_BATTLE_GIRL,
|
||||
[FACILITY_CLASS_PARASOL_LADY] = TRAINER_PIC_FRONT_PARASOL_LADY,
|
||||
[FACILITY_CLASS_SWIMMER_F] = TRAINER_PIC_FRONT_SWIMMER_F,
|
||||
[FACILITY_CLASS_TWINS] = TRAINER_PIC_FRONT_TWINS,
|
||||
[FACILITY_CLASS_SAILOR] = TRAINER_PIC_FRONT_SAILOR,
|
||||
[FACILITY_CLASS_WALLY] = TRAINER_PIC_FRONT_WALLY,
|
||||
[FACILITY_CLASS_BRENDAN] = TRAINER_PIC_FRONT_BRENDAN,
|
||||
[FACILITY_CLASS_BRENDAN_2] = TRAINER_PIC_FRONT_BRENDAN,
|
||||
[FACILITY_CLASS_BRENDAN_3] = TRAINER_PIC_FRONT_BRENDAN,
|
||||
[FACILITY_CLASS_MAY] = TRAINER_PIC_FRONT_MAY,
|
||||
[FACILITY_CLASS_MAY_2] = TRAINER_PIC_FRONT_MAY,
|
||||
[FACILITY_CLASS_MAY_3] = TRAINER_PIC_FRONT_MAY,
|
||||
[FACILITY_CLASS_PKMN_BREEDER_M] = TRAINER_PIC_FRONT_POKEMON_BREEDER_M,
|
||||
[FACILITY_CLASS_BUG_CATCHER] = TRAINER_PIC_FRONT_BUG_CATCHER,
|
||||
[FACILITY_CLASS_PKMN_RANGER_M] = TRAINER_PIC_FRONT_POKEMON_RANGER_M,
|
||||
[FACILITY_CLASS_PKMN_RANGER_F] = TRAINER_PIC_FRONT_POKEMON_RANGER_F,
|
||||
[FACILITY_CLASS_MAGMA_LEADER_MAXIE] = TRAINER_PIC_FRONT_MAGMA_LEADER_MAXIE,
|
||||
[FACILITY_CLASS_LASS] = TRAINER_PIC_FRONT_LASS,
|
||||
[FACILITY_CLASS_YOUNG_COUPLE] = TRAINER_PIC_FRONT_YOUNG_COUPLE,
|
||||
[FACILITY_CLASS_OLD_COUPLE] = TRAINER_PIC_FRONT_OLD_COUPLE,
|
||||
[FACILITY_CLASS_SIS_AND_BRO] = TRAINER_PIC_FRONT_SIS_AND_BRO,
|
||||
[FACILITY_CLASS_STEVEN] = TRAINER_PIC_FRONT_STEVEN,
|
||||
[FACILITY_CLASS_SALON_MAIDEN_ANABEL] = TRAINER_PIC_FRONT_SALON_MAIDEN_ANABEL,
|
||||
[FACILITY_CLASS_DOME_ACE_TUCKER] = TRAINER_PIC_FRONT_DOME_ACE_TUCKER,
|
||||
[FACILITY_CLASS_RED] = TRAINER_PIC_FRONT_RED,
|
||||
[FACILITY_CLASS_LEAF] = TRAINER_PIC_FRONT_LEAF,
|
||||
[FACILITY_CLASS_RS_BRENDAN] = TRAINER_PIC_FRONT_RS_BRENDAN,
|
||||
[FACILITY_CLASS_RS_MAY] = TRAINER_PIC_FRONT_RS_MAY,
|
||||
[FACILITY_CLASS_YOUNGSTER_FRLG] = TRAINER_PIC_FRONT_YOUNGSTER_FRLG,
|
||||
[FACILITY_CLASS_BURGLAR_FRLG] = TRAINER_PIC_FRONT_BURGLAR_FRLG,
|
||||
[FACILITY_CLASS_PSYCHIC_F_FRLG] = TRAINER_PIC_FRONT_PSYCHIC_F_FRLG,
|
||||
[FACILITY_CLASS_COOL_COUPLE_FRLG] = TRAINER_PIC_FRONT_COOL_COUPLE_FRLG,
|
||||
[FACILITY_CLASS_YOUNG_COUPLE_FRLG] = TRAINER_PIC_FRONT_YOUNG_COUPLE_FRLG,
|
||||
[FACILITY_CLASS_CRUSH_KIN_FRLG] = TRAINER_PIC_FRONT_CRUSH_KIN_FRLG,
|
||||
[FACILITY_CLASS_BIKER_FRLG] = TRAINER_PIC_FRONT_BIKER_FRLG,
|
||||
[FACILITY_CLASS_CUE_BALL_FRLG] = TRAINER_PIC_FRONT_CUE_BALL_FRLG,
|
||||
[FACILITY_CLASS_HIKER_FRLG] = TRAINER_PIC_FRONT_HIKER_FRLG,
|
||||
[FACILITY_CLASS_CRUSH_GIRL_FRLG] = TRAINER_PIC_FRONT_CRUSH_GIRL_FRLG,
|
||||
[FACILITY_CLASS_BLACK_BELT_FRLG] = TRAINER_PIC_FRONT_BLACK_BELT_FRLG,
|
||||
[FACILITY_CLASS_CAMPER_FRLG] = TRAINER_PIC_FRONT_CAMPER_FRLG,
|
||||
[FACILITY_CLASS_PKMN_BREEDER_FRLG] = TRAINER_PIC_FRONT_POKEMON_BREEDER_FRLG,
|
||||
[FACILITY_CLASS_BUG_CATCHER_FRLG] = TRAINER_PIC_FRONT_BUG_CATCHER_FRLG,
|
||||
[FACILITY_CLASS_TWINS_FRLG] = TRAINER_PIC_FRONT_TWINS_FRLG,
|
||||
[FACILITY_CLASS_PKMN_RANGER_F_FRLG] = TRAINER_PIC_FRONT_POKEMON_RANGER_F_FRLG,
|
||||
[FACILITY_CLASS_PKMN_RANGER_M_FRLG] = TRAINER_PIC_FRONT_POKEMON_RANGER_M_FRLG,
|
||||
[FACILITY_CLASS_COOLTRAINER_M_FRLG] = TRAINER_PIC_FRONT_COOLTRAINER_M_FRLG,
|
||||
[FACILITY_CLASS_PICNICKER_FRLG] = TRAINER_PIC_FRONT_PICNICKER_FRLG,
|
||||
[FACILITY_CLASS_AROMA_LADY_FRLG] = TRAINER_PIC_FRONT_AROMA_LADY_FRLG,
|
||||
[FACILITY_CLASS_COOLTRAINER_F_FRLG] = TRAINER_PIC_FRONT_COOLTRAINER_F_FRLG,
|
||||
[FACILITY_CLASS_SWIMMER_M_FRLG] = TRAINER_PIC_FRONT_SWIMMER_M_FRLG,
|
||||
[FACILITY_CLASS_SAILOR_FRLG] = TRAINER_PIC_FRONT_SAILOR_FRLG,
|
||||
[FACILITY_CLASS_SIS_AND_BRO_FRLG] = TRAINER_PIC_FRONT_SIS_AND_BRO_FRLG,
|
||||
[FACILITY_CLASS_TUBER_FRLG] = TRAINER_PIC_FRONT_TUBER_F_FRLG,
|
||||
[FACILITY_CLASS_LADY_FRLG] = TRAINER_PIC_FRONT_LADY_FRLG,
|
||||
[FACILITY_CLASS_SWIMMER_F_FRLG] = TRAINER_PIC_FRONT_SWIMMER_F_FRLG,
|
||||
[FACILITY_CLASS_FISHERMAN_FRLG] = TRAINER_PIC_FRONT_FISHERMAN_FRLG,
|
||||
[FACILITY_CLASS_GENTLEMAN_FRLG] = TRAINER_PIC_FRONT_GENTLEMAN_FRLG,
|
||||
[FACILITY_CLASS_JUGGLER_FRLG] = TRAINER_PIC_FRONT_JUGGLER_FRLG,
|
||||
[FACILITY_CLASS_SUPER_NERD_FRLG] = TRAINER_PIC_FRONT_SUPER_NERD_FRLG,
|
||||
[FACILITY_CLASS_PSYCHIC_M_FRLG] = TRAINER_PIC_FRONT_PSYCHIC_M_FRLG,
|
||||
[FACILITY_CLASS_ROCKER_FRLG] = TRAINER_PIC_FRONT_ROCKER_FRLG,
|
||||
[FACILITY_CLASS_ENGINEER_FRLG] = TRAINER_PIC_FRONT_ENGINEER_FRLG,
|
||||
[FACILITY_CLASS_SCIENTIST_FRLG] = TRAINER_PIC_FRONT_SCIENTIST_FRLG,
|
||||
[FACILITY_CLASS_BEAUTY_FRLG] = TRAINER_PIC_FRONT_BEAUTY_FRLG,
|
||||
[FACILITY_CLASS_LASS_FRLG] = TRAINER_PIC_FRONT_LASS_FRLG,
|
||||
[FACILITY_CLASS_HIKER] = TRAINER_PIC_HIKER,
|
||||
[FACILITY_CLASS_AQUA_GRUNT_M] = TRAINER_PIC_AQUA_GRUNT_M,
|
||||
[FACILITY_CLASS_PKMN_BREEDER_F] = TRAINER_PIC_POKEMON_BREEDER_F,
|
||||
[FACILITY_CLASS_COOLTRAINER_M] = TRAINER_PIC_COOLTRAINER_M,
|
||||
[FACILITY_CLASS_BIRD_KEEPER] = TRAINER_PIC_BIRD_KEEPER,
|
||||
[FACILITY_CLASS_COLLECTOR] = TRAINER_PIC_COLLECTOR,
|
||||
[FACILITY_CLASS_AQUA_GRUNT_F] = TRAINER_PIC_AQUA_GRUNT_F,
|
||||
[FACILITY_CLASS_SWIMMER_M] = TRAINER_PIC_SWIMMER_M,
|
||||
[FACILITY_CLASS_MAGMA_GRUNT_M] = TRAINER_PIC_MAGMA_GRUNT_M,
|
||||
[FACILITY_CLASS_EXPERT_M] = TRAINER_PIC_EXPERT_M,
|
||||
[FACILITY_CLASS_BLACK_BELT] = TRAINER_PIC_BLACK_BELT,
|
||||
[FACILITY_CLASS_AQUA_LEADER_ARCHIE] = TRAINER_PIC_AQUA_LEADER_ARCHIE,
|
||||
[FACILITY_CLASS_HEX_MANIAC] = TRAINER_PIC_HEX_MANIAC,
|
||||
[FACILITY_CLASS_AROMA_LADY] = TRAINER_PIC_AROMA_LADY,
|
||||
[FACILITY_CLASS_RUIN_MANIAC] = TRAINER_PIC_RUIN_MANIAC,
|
||||
[FACILITY_CLASS_INTERVIEWER] = TRAINER_PIC_INTERVIEWER,
|
||||
[FACILITY_CLASS_TUBER_F] = TRAINER_PIC_TUBER_F,
|
||||
[FACILITY_CLASS_TUBER_M] = TRAINER_PIC_TUBER_M,
|
||||
[FACILITY_CLASS_COOLTRAINER_F] = TRAINER_PIC_COOLTRAINER_F,
|
||||
[FACILITY_CLASS_LADY] = TRAINER_PIC_LADY,
|
||||
[FACILITY_CLASS_BEAUTY] = TRAINER_PIC_BEAUTY,
|
||||
[FACILITY_CLASS_RICH_BOY] = TRAINER_PIC_RICH_BOY,
|
||||
[FACILITY_CLASS_EXPERT_F] = TRAINER_PIC_EXPERT_F,
|
||||
[FACILITY_CLASS_POKEMANIAC] = TRAINER_PIC_POKEMANIAC,
|
||||
[FACILITY_CLASS_MAGMA_GRUNT_F] = TRAINER_PIC_MAGMA_GRUNT_F,
|
||||
[FACILITY_CLASS_GUITARIST] = TRAINER_PIC_GUITARIST,
|
||||
[FACILITY_CLASS_KINDLER] = TRAINER_PIC_KINDLER,
|
||||
[FACILITY_CLASS_CAMPER] = TRAINER_PIC_CAMPER,
|
||||
[FACILITY_CLASS_PICNICKER] = TRAINER_PIC_PICNICKER,
|
||||
[FACILITY_CLASS_BUG_MANIAC] = TRAINER_PIC_BUG_MANIAC,
|
||||
[FACILITY_CLASS_PSYCHIC_M] = TRAINER_PIC_PSYCHIC_M,
|
||||
[FACILITY_CLASS_PSYCHIC_F] = TRAINER_PIC_PSYCHIC_F,
|
||||
[FACILITY_CLASS_GENTLEMAN] = TRAINER_PIC_GENTLEMAN,
|
||||
[FACILITY_CLASS_ELITE_FOUR_SIDNEY] = TRAINER_PIC_ELITE_FOUR_SIDNEY,
|
||||
[FACILITY_CLASS_ELITE_FOUR_PHOEBE] = TRAINER_PIC_ELITE_FOUR_PHOEBE,
|
||||
[FACILITY_CLASS_LEADER_ROXANNE] = TRAINER_PIC_LEADER_ROXANNE,
|
||||
[FACILITY_CLASS_LEADER_BRAWLY] = TRAINER_PIC_LEADER_BRAWLY,
|
||||
[FACILITY_CLASS_LEADER_TATE_AND_LIZA] = TRAINER_PIC_LEADER_TATE_AND_LIZA,
|
||||
[FACILITY_CLASS_SCHOOL_KID_M] = TRAINER_PIC_SCHOOL_KID_M,
|
||||
[FACILITY_CLASS_SCHOOL_KID_F] = TRAINER_PIC_SCHOOL_KID_F,
|
||||
[FACILITY_CLASS_SR_AND_JR] = TRAINER_PIC_SR_AND_JR,
|
||||
[FACILITY_CLASS_POKEFAN_M] = TRAINER_PIC_POKEFAN_M,
|
||||
[FACILITY_CLASS_POKEFAN_F] = TRAINER_PIC_POKEFAN_F,
|
||||
[FACILITY_CLASS_YOUNGSTER] = TRAINER_PIC_YOUNGSTER,
|
||||
[FACILITY_CLASS_CHAMPION_WALLACE] = TRAINER_PIC_CHAMPION_WALLACE,
|
||||
[FACILITY_CLASS_FISHERMAN] = TRAINER_PIC_FISHERMAN,
|
||||
[FACILITY_CLASS_CYCLING_TRIATHLETE_M] = TRAINER_PIC_CYCLING_TRIATHLETE_M,
|
||||
[FACILITY_CLASS_CYCLING_TRIATHLETE_F] = TRAINER_PIC_CYCLING_TRIATHLETE_F,
|
||||
[FACILITY_CLASS_RUNNING_TRIATHLETE_M] = TRAINER_PIC_RUNNING_TRIATHLETE_M,
|
||||
[FACILITY_CLASS_RUNNING_TRIATHLETE_F] = TRAINER_PIC_RUNNING_TRIATHLETE_F,
|
||||
[FACILITY_CLASS_SWIMMING_TRIATHLETE_M] = TRAINER_PIC_SWIMMING_TRIATHLETE_M,
|
||||
[FACILITY_CLASS_SWIMMING_TRIATHLETE_F] = TRAINER_PIC_SWIMMING_TRIATHLETE_F,
|
||||
[FACILITY_CLASS_DRAGON_TAMER] = TRAINER_PIC_DRAGON_TAMER,
|
||||
[FACILITY_CLASS_NINJA_BOY] = TRAINER_PIC_NINJA_BOY,
|
||||
[FACILITY_CLASS_BATTLE_GIRL] = TRAINER_PIC_BATTLE_GIRL,
|
||||
[FACILITY_CLASS_PARASOL_LADY] = TRAINER_PIC_PARASOL_LADY,
|
||||
[FACILITY_CLASS_SWIMMER_F] = TRAINER_PIC_SWIMMER_F,
|
||||
[FACILITY_CLASS_TWINS] = TRAINER_PIC_TWINS,
|
||||
[FACILITY_CLASS_SAILOR] = TRAINER_PIC_SAILOR,
|
||||
[FACILITY_CLASS_WALLY] = TRAINER_PIC_WALLY,
|
||||
[FACILITY_CLASS_BRENDAN] = TRAINER_PIC_BRENDAN,
|
||||
[FACILITY_CLASS_BRENDAN_2] = TRAINER_PIC_BRENDAN,
|
||||
[FACILITY_CLASS_BRENDAN_3] = TRAINER_PIC_BRENDAN,
|
||||
[FACILITY_CLASS_MAY] = TRAINER_PIC_MAY,
|
||||
[FACILITY_CLASS_MAY_2] = TRAINER_PIC_MAY,
|
||||
[FACILITY_CLASS_MAY_3] = TRAINER_PIC_MAY,
|
||||
[FACILITY_CLASS_PKMN_BREEDER_M] = TRAINER_PIC_POKEMON_BREEDER_M,
|
||||
[FACILITY_CLASS_BUG_CATCHER] = TRAINER_PIC_BUG_CATCHER,
|
||||
[FACILITY_CLASS_PKMN_RANGER_M] = TRAINER_PIC_POKEMON_RANGER_M,
|
||||
[FACILITY_CLASS_PKMN_RANGER_F] = TRAINER_PIC_POKEMON_RANGER_F,
|
||||
[FACILITY_CLASS_MAGMA_LEADER_MAXIE] = TRAINER_PIC_MAGMA_LEADER_MAXIE,
|
||||
[FACILITY_CLASS_LASS] = TRAINER_PIC_LASS,
|
||||
[FACILITY_CLASS_YOUNG_COUPLE] = TRAINER_PIC_YOUNG_COUPLE,
|
||||
[FACILITY_CLASS_OLD_COUPLE] = TRAINER_PIC_OLD_COUPLE,
|
||||
[FACILITY_CLASS_SIS_AND_BRO] = TRAINER_PIC_SIS_AND_BRO,
|
||||
[FACILITY_CLASS_STEVEN] = TRAINER_PIC_STEVEN,
|
||||
[FACILITY_CLASS_SALON_MAIDEN_ANABEL] = TRAINER_PIC_SALON_MAIDEN_ANABEL,
|
||||
[FACILITY_CLASS_DOME_ACE_TUCKER] = TRAINER_PIC_DOME_ACE_TUCKER,
|
||||
[FACILITY_CLASS_RED] = TRAINER_PIC_RED,
|
||||
[FACILITY_CLASS_LEAF] = TRAINER_PIC_LEAF,
|
||||
[FACILITY_CLASS_RS_BRENDAN] = TRAINER_PIC_RS_BRENDAN,
|
||||
[FACILITY_CLASS_RS_MAY] = TRAINER_PIC_RS_MAY,
|
||||
[FACILITY_CLASS_YOUNGSTER_FRLG] = TRAINER_PIC_YOUNGSTER_FRLG,
|
||||
[FACILITY_CLASS_BURGLAR_FRLG] = TRAINER_PIC_BURGLAR_FRLG,
|
||||
[FACILITY_CLASS_PSYCHIC_F_FRLG] = TRAINER_PIC_PSYCHIC_F_FRLG,
|
||||
[FACILITY_CLASS_COOL_COUPLE_FRLG] = TRAINER_PIC_COOL_COUPLE_FRLG,
|
||||
[FACILITY_CLASS_YOUNG_COUPLE_FRLG] = TRAINER_PIC_YOUNG_COUPLE_FRLG,
|
||||
[FACILITY_CLASS_CRUSH_KIN_FRLG] = TRAINER_PIC_CRUSH_KIN_FRLG,
|
||||
[FACILITY_CLASS_BIKER_FRLG] = TRAINER_PIC_BIKER_FRLG,
|
||||
[FACILITY_CLASS_CUE_BALL_FRLG] = TRAINER_PIC_CUE_BALL_FRLG,
|
||||
[FACILITY_CLASS_HIKER_FRLG] = TRAINER_PIC_HIKER_FRLG,
|
||||
[FACILITY_CLASS_CRUSH_GIRL_FRLG] = TRAINER_PIC_CRUSH_GIRL_FRLG,
|
||||
[FACILITY_CLASS_BLACK_BELT_FRLG] = TRAINER_PIC_BLACK_BELT_FRLG,
|
||||
[FACILITY_CLASS_CAMPER_FRLG] = TRAINER_PIC_CAMPER_FRLG,
|
||||
[FACILITY_CLASS_PKMN_BREEDER_FRLG] = TRAINER_PIC_POKEMON_BREEDER_FRLG,
|
||||
[FACILITY_CLASS_BUG_CATCHER_FRLG] = TRAINER_PIC_BUG_CATCHER_FRLG,
|
||||
[FACILITY_CLASS_TWINS_FRLG] = TRAINER_PIC_TWINS_FRLG,
|
||||
[FACILITY_CLASS_PKMN_RANGER_F_FRLG] = TRAINER_PIC_POKEMON_RANGER_F_FRLG,
|
||||
[FACILITY_CLASS_PKMN_RANGER_M_FRLG] = TRAINER_PIC_POKEMON_RANGER_M_FRLG,
|
||||
[FACILITY_CLASS_COOLTRAINER_M_FRLG] = TRAINER_PIC_COOLTRAINER_M_FRLG,
|
||||
[FACILITY_CLASS_PICNICKER_FRLG] = TRAINER_PIC_PICNICKER_FRLG,
|
||||
[FACILITY_CLASS_AROMA_LADY_FRLG] = TRAINER_PIC_AROMA_LADY_FRLG,
|
||||
[FACILITY_CLASS_COOLTRAINER_F_FRLG] = TRAINER_PIC_COOLTRAINER_F_FRLG,
|
||||
[FACILITY_CLASS_SWIMMER_M_FRLG] = TRAINER_PIC_SWIMMER_M_FRLG,
|
||||
[FACILITY_CLASS_SAILOR_FRLG] = TRAINER_PIC_SAILOR_FRLG,
|
||||
[FACILITY_CLASS_SIS_AND_BRO_FRLG] = TRAINER_PIC_SIS_AND_BRO_FRLG,
|
||||
[FACILITY_CLASS_TUBER_FRLG] = TRAINER_PIC_TUBER_F_FRLG,
|
||||
[FACILITY_CLASS_LADY_FRLG] = TRAINER_PIC_LADY_FRLG,
|
||||
[FACILITY_CLASS_SWIMMER_F_FRLG] = TRAINER_PIC_SWIMMER_F_FRLG,
|
||||
[FACILITY_CLASS_FISHERMAN_FRLG] = TRAINER_PIC_FISHERMAN_FRLG,
|
||||
[FACILITY_CLASS_GENTLEMAN_FRLG] = TRAINER_PIC_GENTLEMAN_FRLG,
|
||||
[FACILITY_CLASS_JUGGLER_FRLG] = TRAINER_PIC_JUGGLER_FRLG,
|
||||
[FACILITY_CLASS_SUPER_NERD_FRLG] = TRAINER_PIC_SUPER_NERD_FRLG,
|
||||
[FACILITY_CLASS_PSYCHIC_M_FRLG] = TRAINER_PIC_PSYCHIC_M_FRLG,
|
||||
[FACILITY_CLASS_ROCKER_FRLG] = TRAINER_PIC_ROCKER_FRLG,
|
||||
[FACILITY_CLASS_ENGINEER_FRLG] = TRAINER_PIC_ENGINEER_FRLG,
|
||||
[FACILITY_CLASS_SCIENTIST_FRLG] = TRAINER_PIC_SCIENTIST_FRLG,
|
||||
[FACILITY_CLASS_BEAUTY_FRLG] = TRAINER_PIC_BEAUTY_FRLG,
|
||||
[FACILITY_CLASS_LASS_FRLG] = TRAINER_PIC_LASS_FRLG,
|
||||
};
|
||||
|
||||
const enum TrainerClassID gFacilityClassToTrainerClass[] =
|
||||
|
|
|
|||
|
|
@ -244,11 +244,6 @@ u32 LoadCompressedSpriteSheetByTemplate(const struct SpriteTemplate *template, s
|
|||
|
||||
}
|
||||
|
||||
void DecompressPicFromTable(const struct CompressedSpriteSheet *src, void *buffer)
|
||||
{
|
||||
DecompressDataWithHeaderWram(src->data, buffer);
|
||||
}
|
||||
|
||||
void HandleLoadSpecialPokePic(bool32 isFrontPic, void *dest, enum Species species, u32 personality)
|
||||
{
|
||||
LoadSpecialPokePicIsEgg(dest, species, personality, isFrontPic, FALSE);
|
||||
|
|
|
|||
|
|
@ -29,6 +29,7 @@
|
|||
#include "sound.h"
|
||||
#include "sprite.h"
|
||||
#include "task.h"
|
||||
#include "trainer.h"
|
||||
#include "trainer_pokemon_sprites.h"
|
||||
#include "trig.h"
|
||||
#include "util.h"
|
||||
|
|
@ -976,8 +977,9 @@ bool8 FieldEffectActiveListContains(u8 id)
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
u8 CreateTrainerSprite(u8 trainerSpriteID, s16 x, s16 y, u8 subpriority, u8 *buffer)
|
||||
u8 CreateTrainerSprite(enum TrainerPicID trainerPicId, s16 x, s16 y, u8 subpriority, u8 *buffer)
|
||||
{
|
||||
struct CompressedSpriteSheet spriteSheet;
|
||||
struct SpriteTemplate spriteTemplate;
|
||||
bool32 alloced = FALSE;
|
||||
|
||||
|
|
@ -988,13 +990,17 @@ u8 CreateTrainerSprite(u8 trainerSpriteID, s16 x, s16 y, u8 subpriority, u8 *buf
|
|||
alloced = TRUE;
|
||||
}
|
||||
|
||||
LoadSpritePalette(&gTrainerSprites[trainerSpriteID].palette);
|
||||
LoadCompressedSpriteSheetOverrideBuffer(&gTrainerSprites[trainerSpriteID].frontPic, buffer);
|
||||
spriteSheet.data = GetTrainerFrontPicData(trainerPicId);
|
||||
spriteSheet.size = TRAINER_PIC_SIZE;
|
||||
spriteSheet.tag = GetTrainerPicTag(trainerPicId, TRUE);
|
||||
|
||||
LoadSpritePaletteWithTag(GetTrainerFrontPicPalette(trainerPicId), GetTrainerPicTag(trainerPicId, TRUE));
|
||||
LoadCompressedSpriteSheetOverrideBuffer(&spriteSheet, buffer);
|
||||
if (alloced)
|
||||
Free(buffer);
|
||||
|
||||
spriteTemplate.tileTag = gTrainerSprites[trainerSpriteID].frontPic.tag;
|
||||
spriteTemplate.paletteTag = gTrainerSprites[trainerSpriteID].palette.tag;
|
||||
spriteTemplate.tileTag = GetTrainerPicTag(trainerPicId, TRUE);
|
||||
spriteTemplate.paletteTag = GetTrainerPicTag(trainerPicId, TRUE);
|
||||
spriteTemplate.oam = &sOam_64x64;
|
||||
spriteTemplate.anims = gDummySpriteAnimTable;
|
||||
spriteTemplate.images = NULL;
|
||||
|
|
@ -1005,8 +1011,8 @@ u8 CreateTrainerSprite(u8 trainerSpriteID, s16 x, s16 y, u8 subpriority, u8 *buf
|
|||
|
||||
static void UNUSED LoadTrainerGfx_TrainerCard(u8 gender, u16 palOffset, u8 *dest)
|
||||
{
|
||||
DecompressDataWithHeaderVram(gTrainerSprites[gender].frontPic.data, dest);
|
||||
LoadPalette(gTrainerSprites[gender].palette.data, palOffset, PLTT_SIZE_4BPP);
|
||||
DecompressDataWithHeaderVram(GetTrainerFrontPicData(gender), dest);
|
||||
LoadPalette(GetTrainerFrontPicPalette(gender), palOffset, PLTT_SIZE_4BPP);
|
||||
}
|
||||
|
||||
u8 AddNewGameBirchObject(s16 x, s16 y, u8 subpriority)
|
||||
|
|
|
|||
|
|
@ -51,6 +51,7 @@
|
|||
#include "task.h"
|
||||
#include "test_runner.h"
|
||||
#include "text.h"
|
||||
#include "trainer.h"
|
||||
#include "trainer_hill.h"
|
||||
#include "util.h"
|
||||
#include "constants/abilities.h"
|
||||
|
|
@ -2342,12 +2343,12 @@ void SetMultiuseSpriteTemplateToPokemon(enum Species speciesTag, enum BattlerPos
|
|||
|
||||
void SetMultiuseSpriteTemplateToTrainerBack(enum TrainerPicID trainerPicId, enum BattlerPosition battlerPosition)
|
||||
{
|
||||
gMultiuseSpriteTemplate.paletteTag = trainerPicId;
|
||||
gMultiuseSpriteTemplate.paletteTag = GetTrainerPicTag(trainerPicId, FALSE);
|
||||
if (battlerPosition == B_POSITION_PLAYER_LEFT || battlerPosition == B_POSITION_PLAYER_RIGHT)
|
||||
{
|
||||
gMultiuseSpriteTemplate = sTrainerBackSpriteTemplate;
|
||||
gMultiuseSpriteTemplate.images = &gTrainerBacksprites[trainerPicId].backPic;
|
||||
gMultiuseSpriteTemplate.anims = gTrainerBacksprites[trainerPicId].animation;
|
||||
gMultiuseSpriteTemplate.images = GetTrainerBackPicImage(trainerPicId);
|
||||
gMultiuseSpriteTemplate.anims = GetTrainerBackPicAnims(trainerPicId);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -2366,7 +2367,7 @@ void SetMultiuseSpriteTemplateToTrainerFront(enum TrainerPicID trainerPicId, enu
|
|||
else
|
||||
gMultiuseSpriteTemplate = gBattlerSpriteTemplates[battlerPosition];
|
||||
|
||||
gMultiuseSpriteTemplate.paletteTag = trainerPicId;
|
||||
gMultiuseSpriteTemplate.paletteTag = GetTrainerPicTag(trainerPicId, TRUE);
|
||||
gMultiuseSpriteTemplate.anims = gAnims_Trainer;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1245,8 +1245,8 @@ static void LoadCheckPageTrainerPic(struct Pokenav_MatchCallGfx *gfx)
|
|||
enum TrainerPicID trainerPic = GetMatchCallTrainerPic(PokenavList_GetSelectedIndex());
|
||||
if (trainerPic >= 0)
|
||||
{
|
||||
DecompressPicFromTable(&gTrainerSprites[trainerPic].frontPic, gfx->trainerPicGfx);
|
||||
memcpy(gfx->trainerPicPal, gTrainerSprites[trainerPic].palette.data, 32);
|
||||
DecompressDataWithHeaderWram(GetTrainerFrontPicData(trainerPic), gfx->trainerPicGfx);
|
||||
memcpy(gfx->trainerPicPal, GetTrainerFrontPicPalette(trainerPic), 32);
|
||||
cursor = RequestDma3Copy(gfx->trainerPicGfx, gfx->trainerPicGfxPtr, sizeof(gfx->trainerPicGfx), 1);
|
||||
LoadPalette(gfx->trainerPicPal, gfx->trainerPicPalOffset, sizeof(gfx->trainerPicPal));
|
||||
gfx->trainerPicSprite->data[0] = 0;
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@
|
|||
#include "battle_controllers.h"
|
||||
#include "link.h"
|
||||
#include "sprite.h"
|
||||
#include "trainer.h"
|
||||
#include "constants/trainers.h"
|
||||
#include "battle_interface.h"
|
||||
#include "battle_anim.h"
|
||||
|
|
@ -24,7 +25,7 @@ static void CreateHealthboxSprite(enum BattlerId battler);
|
|||
static void ClearBattleBgCntBaseBlocks(void);
|
||||
static void CreateCaughtMonSprite(void);
|
||||
|
||||
#define CATCH_TUTORIAL_TRAINER_PIC_BACK (IS_FRLG ? TRAINER_PIC_BACK_OLD_MAN : TRAINER_PIC_BACK_WALLY)
|
||||
#define CATCH_TUTORIAL_TRAINER_PIC (IS_FRLG ? TRAINER_PIC_OLD_MAN : TRAINER_PIC_WALLY)
|
||||
|
||||
void ReshowBattleScreenDummy(void)
|
||||
{
|
||||
|
|
@ -282,9 +283,9 @@ static bool8 LoadBattlerSpriteGfx(enum BattlerId battler)
|
|||
BattleLoadSubstituteOrMonSpriteGfx(battler, FALSE);
|
||||
}
|
||||
else if (gBattleTypeFlags & BATTLE_TYPE_SAFARI && position == B_POSITION_PLAYER_LEFT)
|
||||
DecompressTrainerBackPic((gSaveBlock2Ptr->playerGender == FEMALE) ? TRAINER_BACK_PIC_PLAYER_FEMALE : TRAINER_BACK_PIC_PLAYER_MALE, battler);
|
||||
DecompressTrainerBackPic(GetPlayerTrainerPic(gSaveBlock2Ptr->playerGender, GAME_VERSION), battler);
|
||||
else if (gBattleTypeFlags & BATTLE_TYPE_CATCH_TUTORIAL && position == B_POSITION_PLAYER_LEFT)
|
||||
DecompressTrainerBackPic(CATCH_TUTORIAL_TRAINER_PIC_BACK, battler);
|
||||
DecompressTrainerBackPic(CATCH_TUTORIAL_TRAINER_PIC, battler);
|
||||
else if (!gBattleSpritesDataPtr->battlerData[battler].behindSubstitute)
|
||||
BattleLoadMonSpriteGfx(GetBattlerMon(battler), battler);
|
||||
else
|
||||
|
|
@ -329,22 +330,22 @@ void CreateBattlerSprite(enum BattlerId battler)
|
|||
}
|
||||
else if (gBattleTypeFlags & BATTLE_TYPE_SAFARI && position == B_POSITION_PLAYER_LEFT)
|
||||
{
|
||||
enum TrainerPicID trainerPicId = (gSaveBlock2Ptr->playerGender == FEMALE) ? TRAINER_BACK_PIC_PLAYER_FEMALE : TRAINER_BACK_PIC_PLAYER_MALE;
|
||||
enum TrainerPicID trainerPicId = GetPlayerTrainerPic(gSaveBlock2Ptr->playerGender, GAME_VERSION);
|
||||
SetMultiuseSpriteTemplateToTrainerBack(trainerPicId, position);
|
||||
gBattlerSpriteIds[battler] = CreateSprite(&gMultiuseSpriteTemplate, 0x50,
|
||||
(8 - gTrainerBacksprites[trainerPicId].coordinates.size) * 4 + 80,
|
||||
(8 - GetTrainerBackPicCoords(trainerPicId)->size) * 4 + 80,
|
||||
GetBattlerSpriteSubpriority(0));
|
||||
gSprites[gBattlerSpriteIds[battler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerBacksprites[trainerPicId].palette.tag);
|
||||
gSprites[gBattlerSpriteIds[battler]].oam.paletteNum = IndexOfSpritePaletteTag(GetTrainerPicTag(trainerPicId, FALSE));
|
||||
gSprites[gBattlerSpriteIds[battler]].callback = SpriteCallbackDummy;
|
||||
gSprites[gBattlerSpriteIds[battler]].data[0] = battler;
|
||||
}
|
||||
else if (gBattleTypeFlags & BATTLE_TYPE_CATCH_TUTORIAL && position == B_POSITION_PLAYER_LEFT)
|
||||
{
|
||||
SetMultiuseSpriteTemplateToTrainerBack(CATCH_TUTORIAL_TRAINER_PIC_BACK, position);
|
||||
SetMultiuseSpriteTemplateToTrainerBack(CATCH_TUTORIAL_TRAINER_PIC, position);
|
||||
gBattlerSpriteIds[battler] = CreateSprite(&gMultiuseSpriteTemplate, 0x50,
|
||||
(8 - gTrainerBacksprites[CATCH_TUTORIAL_TRAINER_PIC_BACK].coordinates.size) * 4 + 80,
|
||||
(8 - GetTrainerBackPicCoords(CATCH_TUTORIAL_TRAINER_PIC)->size) * 4 + 80,
|
||||
GetBattlerSpriteSubpriority(0));
|
||||
gSprites[gBattlerSpriteIds[battler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerBacksprites[CATCH_TUTORIAL_TRAINER_PIC_BACK].palette.tag);
|
||||
gSprites[gBattlerSpriteIds[battler]].oam.paletteNum = IndexOfSpritePaletteTag(GetTrainerPicTag(CATCH_TUTORIAL_TRAINER_PIC, FALSE));
|
||||
gSprites[gBattlerSpriteIds[battler]].callback = SpriteCallbackDummy;
|
||||
gSprites[gBattlerSpriteIds[battler]].data[0] = battler;
|
||||
}
|
||||
|
|
|
|||
32
src/trainer.c
Normal file
32
src/trainer.c
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
#include "global.h"
|
||||
#include "constants/trainers.h"
|
||||
|
||||
static enum TrainerPicID GetEmeraldTrainerPic(enum Gender gender)
|
||||
{
|
||||
return gender == MALE ? TRAINER_PIC_BRENDAN : TRAINER_PIC_MAY;
|
||||
}
|
||||
static enum TrainerPicID GetRSTrainerPic(enum Gender gender)
|
||||
{
|
||||
return gender == MALE ? TRAINER_PIC_RS_BRENDAN : TRAINER_PIC_RS_MAY;
|
||||
}
|
||||
|
||||
static enum TrainerPicID GetKantoTrainerPic(enum Gender gender)
|
||||
{
|
||||
return gender == MALE ? TRAINER_PIC_RED : TRAINER_PIC_LEAF;
|
||||
}
|
||||
|
||||
enum TrainerPicID GetPlayerTrainerPic(enum Gender gender, enum GameVersion version)
|
||||
{
|
||||
switch (version)
|
||||
{
|
||||
case VERSION_SAPPHIRE:
|
||||
case VERSION_RUBY:
|
||||
return GetRSTrainerPic(gender);
|
||||
case VERSION_LEAF_GREEN:
|
||||
case VERSION_FIRE_RED:
|
||||
return GetKantoTrainerPic(gender);
|
||||
case VERSION_EMERALD:
|
||||
default:
|
||||
return GetEmeraldTrainerPic(gender);
|
||||
}
|
||||
}
|
||||
|
|
@ -4,6 +4,7 @@
|
|||
#include "malloc.h"
|
||||
#include "palette.h"
|
||||
#include "decompress.h"
|
||||
#include "trainer.h"
|
||||
#include "trainer_pokemon_sprites.h"
|
||||
#include "data.h"
|
||||
#include "pokemon.h"
|
||||
|
|
@ -68,7 +69,7 @@ static bool16 DecompressPic(u16 picId, u32 personality, bool8 isFrontPic, u8 *de
|
|||
{
|
||||
enum TrainerPicID trainerPicId = picId;
|
||||
if (isFrontPic)
|
||||
DecompressPicFromTable(&gTrainerSprites[trainerPicId].frontPic, dest);
|
||||
DecompressDataWithHeaderWram(GetTrainerFrontPicData(trainerPicId), dest);
|
||||
else
|
||||
CopyTrainerBackspriteFramesToDest(trainerPicId, dest);
|
||||
}
|
||||
|
|
@ -95,12 +96,12 @@ static void LoadPicPaletteByTagOrSlot(u16 species, bool8 isShiny, u32 personalit
|
|||
if (paletteTag == TAG_NONE)
|
||||
{
|
||||
sCreatingSpriteTemplate.paletteTag = TAG_NONE;
|
||||
LoadPalette(gTrainerSprites[species].palette.data, OBJ_PLTT_ID(paletteSlot), PLTT_SIZE_4BPP);
|
||||
LoadPalette(GetTrainerFrontPicPalette(species), OBJ_PLTT_ID(paletteSlot), PLTT_SIZE_4BPP);
|
||||
}
|
||||
else
|
||||
{
|
||||
sCreatingSpriteTemplate.paletteTag = paletteTag;
|
||||
LoadSpritePalette(&gTrainerSprites[species].palette);
|
||||
LoadSpritePaletteWithTag(GetTrainerFrontPicPalette(species), GetTrainerPicTag(species, TRUE));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -110,7 +111,7 @@ static void LoadPicPaletteBySlot(u16 species, bool8 isShiny, u32 personality, u8
|
|||
if (!isTrainer)
|
||||
LoadPalette(GetMonSpritePalFromSpeciesAndPersonality(species, isShiny, personality), PLTT_ID(paletteSlot), PLTT_SIZE_4BPP);
|
||||
else
|
||||
LoadPalette(gTrainerSprites[species].palette.data, PLTT_ID(paletteSlot), PLTT_SIZE_4BPP);
|
||||
LoadPalette(GetTrainerFrontPicPalette(species), PLTT_ID(paletteSlot), PLTT_SIZE_4BPP);
|
||||
}
|
||||
|
||||
static void AssignSpriteAnimsTable(bool8 isTrainer)
|
||||
|
|
@ -362,8 +363,8 @@ u16 PlayerGenderToFrontTrainerPicId_Debug(enum Gender gender, bool8 getClass)
|
|||
|
||||
void CopyTrainerBackspriteFramesToDest(enum TrainerPicID trainerPicId, u8 *dest)
|
||||
{
|
||||
const struct SpriteFrameImage *frame = &gTrainerBacksprites[trainerPicId].backPic;
|
||||
const struct SpriteFrameImage *frame = GetTrainerBackPicImage(trainerPicId);
|
||||
// y_offset is repurposed to indicates how many frames does the trainer pic have.
|
||||
u32 size = (frame->size * gTrainerBacksprites[trainerPicId].coordinates.y_offset);
|
||||
u32 size = (frame->size * GetTrainerBackPicCoords(trainerPicId)->y_offset);
|
||||
CpuSmartCopy16(frame->data, dest, size);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@ Class: Pkmn Trainer 1
|
|||
Pic: Brendan
|
||||
Gender: Male
|
||||
Music: Male
|
||||
Back Pic: Brendan
|
||||
|
||||
=== PARTNER_STEVEN_TEST ===
|
||||
Name: STEVEN
|
||||
|
|
@ -12,7 +11,6 @@ Class: Rival
|
|||
Pic: Steven
|
||||
Gender: Male
|
||||
Music: Male
|
||||
Back Pic: Steven
|
||||
AI: Basic Trainer
|
||||
Difficulty: Normal
|
||||
|
||||
|
|
@ -52,7 +50,6 @@ Class: Rival
|
|||
Pic: Steven
|
||||
Gender: Male
|
||||
Music: Male
|
||||
Back Pic: Steven
|
||||
Battle Type: Singles
|
||||
Difficulty: Easy
|
||||
|
||||
|
|
@ -65,7 +62,6 @@ Class: Rival
|
|||
Pic: Steven
|
||||
Gender: Male
|
||||
Music: Male
|
||||
Back Pic: Steven
|
||||
Battle Type: Singles
|
||||
Difficulty: Hard
|
||||
|
||||
|
|
|
|||
|
|
@ -157,9 +157,6 @@ struct Trainer
|
|||
|
||||
struct String macro;
|
||||
int macro_line;
|
||||
|
||||
struct String back_pic;
|
||||
int back_pic_line;
|
||||
};
|
||||
|
||||
static bool is_empty_string(struct String s)
|
||||
|
|
@ -1305,13 +1302,6 @@ static bool parse_trainer(struct Parser *p, const struct Parsed *parsed, struct
|
|||
trainer->macro_line = value.location.line;
|
||||
trainer->macro = token_string(&value);
|
||||
}
|
||||
else if (is_literal_token(&key, "Back Pic"))
|
||||
{
|
||||
if (trainer->back_pic_line)
|
||||
any_error = !set_show_parse_error(p, key.location, "duplicate 'Back Pic'");
|
||||
trainer->back_pic_line = value.location.line;
|
||||
trainer->back_pic = token_string(&value);
|
||||
}
|
||||
else
|
||||
{
|
||||
any_error = !set_show_parse_error(p, key.location, "expected one of 'Name', 'Class', 'Pic', 'Gender', 'Music', 'Items', 'Battle Type', 'Difficulty', 'Party Size', 'Pool Rules', 'Pool Pick Functions', 'Pool Prune' or 'AI'");
|
||||
|
|
@ -1820,7 +1810,7 @@ static void fprint_trainers(const char *output_path, FILE *f, struct Parsed *par
|
|||
{
|
||||
fprintf(f, "#line %d\n", trainer->pic_line);
|
||||
fprintf(f, " .trainerPic = ");
|
||||
fprint_constant(f, "TRAINER_PIC_FRONT", trainer->pic);
|
||||
fprint_constant(f, "TRAINER_PIC", trainer->pic);
|
||||
fprintf(f, ",\n");
|
||||
}
|
||||
|
||||
|
|
@ -1928,20 +1918,6 @@ static void fprint_trainers(const char *output_path, FILE *f, struct Parsed *par
|
|||
fprint_string(f, trainer->copy_pool);
|
||||
fprintf(f, ",\n");
|
||||
}
|
||||
if (!is_empty_string(trainer->back_pic))
|
||||
{
|
||||
fprintf(f, "#line %d\n", trainer->back_pic_line);
|
||||
fprintf(f, " .trainerBackPic = ");
|
||||
fprint_constant(f, "TRAINER_PIC_BACK", trainer->back_pic);
|
||||
fprintf(f, ",\n");
|
||||
}
|
||||
else // defaults to front pic in absence of defined back pic
|
||||
{
|
||||
fprintf(f, "#line %d\n", trainer->back_pic_line);
|
||||
fprintf(f, " .trainerBackPic = ");
|
||||
fprint_constant(f, "TRAINER_PIC_FRONT", trainer->pic);
|
||||
fprintf(f, ",\n");
|
||||
}
|
||||
|
||||
if (trainer->macro_line)
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user