From 7f50c0b9c35ea8f36da1d9afa73215b6ec10ae72 Mon Sep 17 00:00:00 2001 From: Frank DeBlasio <35279583+fdeblasio@users.noreply.github.com> Date: Tue, 6 Feb 2024 16:24:36 -0500 Subject: [PATCH] Simplify gTrainerSprites (#4140) * Simplified y_offset equations * Removed trainer pic animation from gTrainerSprites * Used metaprogram to simplify trainer sprites without mugshots * Incorporated comments --------- Co-authored-by: Alex <93446519+AlexOn1ine@users.noreply.github.com> --- include/data.h | 1 + src/battle_controller_link_opponent.c | 4 +- src/battle_controller_opponent.c | 4 +- src/battle_controller_player.c | 2 +- src/battle_controller_player_partner.c | 4 +- src/battle_controller_recorded_opponent.c | 4 +- src/battle_controller_recorded_player.c | 2 +- src/battle_controllers.c | 5 +- src/data.c | 4 + src/data/graphics/trainers.h | 195 +++++++++++----------- src/pokemon.c | 4 +- src/trainer_pokemon_sprites.c | 2 +- 12 files changed, 113 insertions(+), 118 deletions(-) diff --git a/include/data.h b/include/data.h index 09a1db7f7e..e80768f68c 100644 --- a/include/data.h +++ b/include/data.h @@ -123,6 +123,7 @@ extern const union AffineAnimCmd *const gAffineAnims_BattleSpriteContest[]; extern const union AnimCmd sAnim_GeneralFrame0[]; extern const union AnimCmd sAnim_GeneralFrame3[]; extern const union AnimCmd *const gAnims_MonPic[]; +extern const union AnimCmd *const sAnims_Trainer[]; extern const struct TrainerSprite gTrainerSprites[]; extern const struct TrainerBacksprite gTrainerBacksprites[]; diff --git a/src/battle_controller_link_opponent.c b/src/battle_controller_link_opponent.c index c9197bc5df..0c71d0a1da 100644 --- a/src/battle_controller_link_opponent.c +++ b/src/battle_controller_link_opponent.c @@ -462,9 +462,7 @@ static void LinkOpponentHandleDrawTrainerPic(u32 battler) } } - BtlController_HandleDrawTrainerPic(battler, trainerPicId, TRUE, - xPos, 40 + 4 * (8 - gTrainerSprites[trainerPicId].y_offset), - -1); + BtlController_HandleDrawTrainerPic(battler, trainerPicId, TRUE, xPos, 40, -1); } static void LinkOpponentHandleTrainerSlide(u32 battler) diff --git a/src/battle_controller_opponent.c b/src/battle_controller_opponent.c index 4e272f4d0d..aeb13ec9a5 100644 --- a/src/battle_controller_opponent.c +++ b/src/battle_controller_opponent.c @@ -484,9 +484,7 @@ static void OpponentHandleDrawTrainerPic(u32 battler) xPos = 176; } - BtlController_HandleDrawTrainerPic(battler, trainerPicId, TRUE, - xPos, 40 + 4 * (8 - gTrainerSprites[trainerPicId].y_offset), - -1); + BtlController_HandleDrawTrainerPic(battler, trainerPicId, TRUE, xPos, 40, -1); } static void OpponentHandleTrainerSlide(u32 battler) diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c index e70784e153..f1bdbdc668 100644 --- a/src/battle_controller_player.c +++ b/src/battle_controller_player.c @@ -1882,7 +1882,7 @@ static void PlayerHandleDrawTrainerPic(u32 battler) if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER && gPartnerTrainerId < TRAINER_PARTNER(PARTNER_NONE)) { xPos = 90; - yPos = (8 - gTrainerSprites[trainerPicId].y_offset) * 4 + 80; + yPos = 80; } else { diff --git a/src/battle_controller_player_partner.c b/src/battle_controller_player_partner.c index 6ede6587b2..b9dbfdd2c6 100644 --- a/src/battle_controller_player_partner.c +++ b/src/battle_controller_player_partner.c @@ -307,13 +307,13 @@ static void PlayerPartnerHandleDrawTrainerPic(u32 battler) { trainerPicId = gTrainers[gPartnerTrainerId].trainerPic; xPos = 60; - yPos = (8 - gTrainerSprites[trainerPicId].y_offset) * 4 + 80; + yPos = 80; } else { trainerPicId = GetFrontierTrainerFrontSpriteId(gPartnerTrainerId); xPos = 32; - yPos = (8 - gTrainerSprites[trainerPicId].y_offset) * 4 + 80; + yPos = 80; } // Use back pic only if the partner Steven or is custom. diff --git a/src/battle_controller_recorded_opponent.c b/src/battle_controller_recorded_opponent.c index 36caa14c14..abadcc231c 100644 --- a/src/battle_controller_recorded_opponent.c +++ b/src/battle_controller_recorded_opponent.c @@ -420,9 +420,7 @@ static void RecordedOpponentHandleDrawTrainerPic(u32 battler) } } - BtlController_HandleDrawTrainerPic(battler, trainerPicId, TRUE, - xPos, 40 + 4 * (8 - gTrainerSprites[trainerPicId].y_offset), - -1); + BtlController_HandleDrawTrainerPic(battler, trainerPicId, TRUE, xPos, 40, -1); } static void RecordedOpponentHandleTrainerSlideBack(u32 battler) diff --git a/src/battle_controller_recorded_player.c b/src/battle_controller_recorded_player.c index b8322b3eaf..53860990c4 100644 --- a/src/battle_controller_recorded_player.c +++ b/src/battle_controller_recorded_player.c @@ -393,7 +393,7 @@ static void RecordedPlayerHandleDrawTrainerPic(u32 battler) if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER) { xPos = 90; - yPos = (8 - gTrainerSprites[trainerPicId].y_offset) * 4 + 80; + yPos = 80; } else { diff --git a/src/battle_controllers.c b/src/battle_controllers.c index 27623c97bc..a7d9610dac 100644 --- a/src/battle_controllers.c +++ b/src/battle_controllers.c @@ -2542,10 +2542,7 @@ void BtlController_HandleTrainerSlide(u32 battler, u32 trainerPicId) { DecompressTrainerFrontPic(trainerPicId, battler); SetMultiuseSpriteTemplateToTrainerBack(trainerPicId, GetBattlerPosition(battler)); - gBattlerSpriteIds[battler] = CreateSprite(&gMultiuseSpriteTemplate, - 176, - (8 - gTrainerSprites[trainerPicId].y_offset) * 4 + 40, - 30); + gBattlerSpriteIds[battler] = CreateSprite(&gMultiuseSpriteTemplate, 176, 40, 30); gSprites[gBattlerSpriteIds[battler]].oam.affineParam = trainerPicId; gSprites[gBattlerSpriteIds[battler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerSprites[trainerPicId].palette.tag); gSprites[gBattlerSpriteIds[battler]].x2 = 96; diff --git a/src/data.c b/src/data.c index f559656d35..074b067ac9 100644 --- a/src/data.c +++ b/src/data.c @@ -220,5 +220,9 @@ const union AnimCmd *const gAnims_MonPic[MAX_MON_PIC_FRAMES] = sAnim_MonPic_1, }; +const union AnimCmd *const sAnims_Trainer[] ={ + sAnim_GeneralFrame0, +}; + #include "data/trainer_parties.h" #include "data/trainers.h" diff --git a/src/data/graphics/trainers.h b/src/data/graphics/trainers.h index e20d13ec16..309fd0b80c 100644 --- a/src/data/graphics/trainers.h +++ b/src/data/graphics/trainers.h @@ -292,116 +292,115 @@ const u8 gTrainerBackPic_Steven[] = INCBIN_U8("graphics/trainers/back_pics/steve const u32 gTrainerBackPicPalette_Red[] = INCBIN_U32("graphics/trainers/back_pics/red.gbapal.lz"); const u32 gTrainerBackPicPalette_Leaf[] = INCBIN_U32("graphics/trainers/back_pics/leaf.gbapal.lz"); -static const union AnimCmd *const sAnims_Trainer[] ={ - sAnim_GeneralFrame0, -}; - -#define TRAINER_SPRITE(trainerPic, file, x, y, rotation) \ +// 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_SPRITE(trainerPic, file, ...) \ [TRAINER_PIC_##trainerPic] = \ { \ - .y_offset = 8, \ .frontPic = {gTrainerFrontPic_##file, TRAINER_PIC_SIZE, TRAINER_PIC_##trainerPic},\ .palette = {gTrainerPalette_##file, TRAINER_PIC_##trainerPic}, \ - .animation = sAnims_Trainer, \ - .mugshotCoords = {x, y}, \ - .mugshotRotation = rotation, \ + .mugshotCoords = {DEFAULT(0, __VA_ARGS__), DEFAULT_2(0, __VA_ARGS__)}, \ + .mugshotRotation = DEFAULT_3(0x200, __VA_ARGS__), \ } const struct TrainerSprite gTrainerSprites[] = { - TRAINER_SPRITE(HIKER, Hiker, 0, 0, 0x200), - TRAINER_SPRITE(AQUA_GRUNT_M, AquaGruntM, 0, 0, 0x200), - TRAINER_SPRITE(POKEMON_BREEDER_F, PokemonBreederF, 0, 0, 0x200), - TRAINER_SPRITE(COOLTRAINER_M, CoolTrainerM, 0, 0, 0x200), - TRAINER_SPRITE(BIRD_KEEPER, BirdKeeper, 0, 0, 0x200), - TRAINER_SPRITE(COLLECTOR, Collector, 0, 0, 0x200), - TRAINER_SPRITE(AQUA_GRUNT_F, AquaGruntF, 0, 0, 0x200), - TRAINER_SPRITE(SWIMMER_M, SwimmerM, 0, 0, 0x200), - TRAINER_SPRITE(MAGMA_GRUNT_M, MagmaGruntM, 0, 0, 0x200), - TRAINER_SPRITE(EXPERT_M, ExpertM, 0, 0, 0x200), - TRAINER_SPRITE(AQUA_ADMIN_M, AquaAdminM, 0, 0, 0x200), - TRAINER_SPRITE(BLACK_BELT, BlackBelt, 0, 0, 0x200), - TRAINER_SPRITE(AQUA_ADMIN_F, AquaAdminF, 0, 0, 0x200), - TRAINER_SPRITE(AQUA_LEADER_ARCHIE, AquaLeaderArchie, 0, 0, 0x200), - TRAINER_SPRITE(HEX_MANIAC, HexManiac, 0, 0, 0x200), - TRAINER_SPRITE(AROMA_LADY, AromaLady, 0, 0, 0x200), - TRAINER_SPRITE(RUIN_MANIAC, RuinManiac, 0, 0, 0x200), - TRAINER_SPRITE(INTERVIEWER, Interviewer, 0, 0, 0x200), - TRAINER_SPRITE(TUBER_F, TuberF, 0, 0, 0x200), - TRAINER_SPRITE(TUBER_M, TuberM, 0, 0, 0x200), - TRAINER_SPRITE(COOLTRAINER_F, CoolTrainerF, 0, 0, 0x200), - TRAINER_SPRITE(LADY, Lady, 0, 0, 0x200), - TRAINER_SPRITE(BEAUTY, Beauty, 0, 0, 0x200), - TRAINER_SPRITE(RICH_BOY, RichBoy, 0, 0, 0x200), - TRAINER_SPRITE(EXPERT_F, ExpertF, 0, 0, 0x200), - TRAINER_SPRITE(POKEMANIAC, Pokemaniac, 0, 0, 0x200), - TRAINER_SPRITE(MAGMA_GRUNT_F, MagmaGruntF, 0, 0, 0x200), - TRAINER_SPRITE(GUITARIST, Guitarist, 0, 0, 0x200), - TRAINER_SPRITE(KINDLER, Kindler, 0, 0, 0x200), - TRAINER_SPRITE(CAMPER, Camper, 0, 0, 0x200), - TRAINER_SPRITE(PICNICKER, Picnicker, 0, 0, 0x200), - TRAINER_SPRITE(BUG_MANIAC, BugManiac, 0, 0, 0x200), - TRAINER_SPRITE(POKEMON_BREEDER_M, PokemonBreederM, 0, 0, 0x200), - TRAINER_SPRITE(PSYCHIC_M, PsychicM, 0, 0, 0x200), - TRAINER_SPRITE(PSYCHIC_F, PsychicF, 0, 0, 0x200), - TRAINER_SPRITE(GENTLEMAN, Gentleman, 0, 0, 0x200), - TRAINER_SPRITE(ELITE_FOUR_SIDNEY, EliteFourSidney, 0, 0, 0x200), - TRAINER_SPRITE(ELITE_FOUR_PHOEBE, EliteFourPhoebe, 0, 0, 0x200), + TRAINER_SPRITE(HIKER, Hiker), + TRAINER_SPRITE(AQUA_GRUNT_M, AquaGruntM), + TRAINER_SPRITE(POKEMON_BREEDER_F, PokemonBreederF), + TRAINER_SPRITE(COOLTRAINER_M, CoolTrainerM), + TRAINER_SPRITE(BIRD_KEEPER, BirdKeeper), + TRAINER_SPRITE(COLLECTOR, Collector), + TRAINER_SPRITE(AQUA_GRUNT_F, AquaGruntF), + TRAINER_SPRITE(SWIMMER_M, SwimmerM), + TRAINER_SPRITE(MAGMA_GRUNT_M, MagmaGruntM), + TRAINER_SPRITE(EXPERT_M, ExpertM), + TRAINER_SPRITE(AQUA_ADMIN_M, AquaAdminM), + TRAINER_SPRITE(BLACK_BELT, BlackBelt), + TRAINER_SPRITE(AQUA_ADMIN_F, AquaAdminF), + TRAINER_SPRITE(AQUA_LEADER_ARCHIE, AquaLeaderArchie), + TRAINER_SPRITE(HEX_MANIAC, HexManiac), + TRAINER_SPRITE(AROMA_LADY, AromaLady), + TRAINER_SPRITE(RUIN_MANIAC, RuinManiac), + TRAINER_SPRITE(INTERVIEWER, Interviewer), + TRAINER_SPRITE(TUBER_F, TuberF), + TRAINER_SPRITE(TUBER_M, TuberM), + TRAINER_SPRITE(COOLTRAINER_F, CoolTrainerF), + TRAINER_SPRITE(LADY, Lady), + TRAINER_SPRITE(BEAUTY, Beauty), + TRAINER_SPRITE(RICH_BOY, RichBoy), + TRAINER_SPRITE(EXPERT_F, ExpertF), + TRAINER_SPRITE(POKEMANIAC, Pokemaniac), + TRAINER_SPRITE(MAGMA_GRUNT_F, MagmaGruntF), + TRAINER_SPRITE(GUITARIST, Guitarist), + TRAINER_SPRITE(KINDLER, Kindler), + TRAINER_SPRITE(CAMPER, Camper), + TRAINER_SPRITE(PICNICKER, Picnicker), + TRAINER_SPRITE(BUG_MANIAC, BugManiac), + TRAINER_SPRITE(POKEMON_BREEDER_M, PokemonBreederM), + TRAINER_SPRITE(PSYCHIC_M, PsychicM), + TRAINER_SPRITE(PSYCHIC_F, PsychicF), + TRAINER_SPRITE(GENTLEMAN, Gentleman), + TRAINER_SPRITE(ELITE_FOUR_SIDNEY, EliteFourSidney), + TRAINER_SPRITE(ELITE_FOUR_PHOEBE, EliteFourPhoebe), TRAINER_SPRITE(ELITE_FOUR_GLACIA, EliteFourGlacia, -4, 4, 0x1B0), TRAINER_SPRITE(ELITE_FOUR_DRAKE, EliteFourDrake, 0, 5, 0x1A0), - TRAINER_SPRITE(LEADER_ROXANNE, LeaderRoxanne, 0, 0, 0x200), - TRAINER_SPRITE(LEADER_BRAWLY, LeaderBrawly, 0, 0, 0x200), - TRAINER_SPRITE(LEADER_WATTSON, LeaderWattson, 0, 0, 0x200), - TRAINER_SPRITE(LEADER_FLANNERY, LeaderFlannery, 0, 0, 0x200), - TRAINER_SPRITE(LEADER_NORMAN, LeaderNorman, 0, 0, 0x200), - TRAINER_SPRITE(LEADER_WINONA, LeaderWinona, 0, 0, 0x200), - TRAINER_SPRITE(LEADER_TATE_AND_LIZA, LeaderTateAndLiza, 0, 0, 0x200), - TRAINER_SPRITE(LEADER_JUAN, LeaderJuan, 0, 0, 0x200), - TRAINER_SPRITE(SCHOOL_KID_M, SchoolKidM, 0, 0, 0x200), - TRAINER_SPRITE(SCHOOL_KID_F, SchoolKidF, 0, 0, 0x200), - TRAINER_SPRITE(SR_AND_JR, SrAndJr, 0, 0, 0x200), - TRAINER_SPRITE(POKEFAN_M, PokefanM, 0, 0, 0x200), - TRAINER_SPRITE(POKEFAN_F, PokefanF, 0, 0, 0x200), - TRAINER_SPRITE(YOUNGSTER, Youngster, 0, 0, 0x200), + TRAINER_SPRITE(LEADER_ROXANNE, LeaderRoxanne), + TRAINER_SPRITE(LEADER_BRAWLY, LeaderBrawly), + TRAINER_SPRITE(LEADER_WATTSON, LeaderWattson), + TRAINER_SPRITE(LEADER_FLANNERY, LeaderFlannery), + TRAINER_SPRITE(LEADER_NORMAN, LeaderNorman), + TRAINER_SPRITE(LEADER_WINONA, LeaderWinona), + TRAINER_SPRITE(LEADER_TATE_AND_LIZA, LeaderTateAndLiza), + TRAINER_SPRITE(LEADER_JUAN, LeaderJuan), + TRAINER_SPRITE(SCHOOL_KID_M, SchoolKidM), + TRAINER_SPRITE(SCHOOL_KID_F, SchoolKidF), + TRAINER_SPRITE(SR_AND_JR, SrAndJr), + TRAINER_SPRITE(POKEFAN_M, PokefanM), + TRAINER_SPRITE(POKEFAN_F, PokefanF), + TRAINER_SPRITE(YOUNGSTER, Youngster), TRAINER_SPRITE(CHAMPION_WALLACE, ChampionWallace, -8, 7, 0x188), - TRAINER_SPRITE(FISHERMAN, Fisherman, 0, 0, 0x200), - TRAINER_SPRITE(CYCLING_TRIATHLETE_M, CyclingTriathleteM, 0, 0, 0x200), - TRAINER_SPRITE(CYCLING_TRIATHLETE_F, CyclingTriathleteF, 0, 0, 0x200), - TRAINER_SPRITE(RUNNING_TRIATHLETE_M, RunningTriathleteM, 0, 0, 0x200), - TRAINER_SPRITE(RUNNING_TRIATHLETE_F, RunningTriathleteF, 0, 0, 0x200), - TRAINER_SPRITE(SWIMMING_TRIATHLETE_M, SwimmingTriathleteM, 0, 0, 0x200), - TRAINER_SPRITE(SWIMMING_TRIATHLETE_F, SwimmingTriathleteF, 0, 0, 0x200), - TRAINER_SPRITE(DRAGON_TAMER, DragonTamer, 0, 0, 0x200), - TRAINER_SPRITE(NINJA_BOY, NinjaBoy, 0, 0, 0x200), - TRAINER_SPRITE(BATTLE_GIRL, BattleGirl, 0, 0, 0x200), - TRAINER_SPRITE(PARASOL_LADY, ParasolLady, 0, 0, 0x200), - TRAINER_SPRITE(SWIMMER_F, SwimmerF, 0, 0, 0x200), - TRAINER_SPRITE(TWINS, Twins, 0, 0, 0x200), - TRAINER_SPRITE(SAILOR, Sailor, 0, 0, 0x200), - TRAINER_SPRITE(MAGMA_ADMIN, MagmaAdmin, 0, 0, 0x200), - TRAINER_SPRITE(WALLY, Wally, 0, 0, 0x200), - TRAINER_SPRITE(BRENDAN, Brendan, 0, 0, 0x200), - TRAINER_SPRITE(MAY, May, 0, 0, 0x200), - TRAINER_SPRITE(BUG_CATCHER, BugCatcher, 0, 0, 0x200), - TRAINER_SPRITE(POKEMON_RANGER_M, PokemonRangerM, 0, 0, 0x200), - TRAINER_SPRITE(POKEMON_RANGER_F, PokemonRangerF, 0, 0, 0x200), - TRAINER_SPRITE(MAGMA_LEADER_MAXIE, MagmaLeaderMaxie, 0, 0, 0x200), - TRAINER_SPRITE(LASS, Lass, 0, 0, 0x200), - TRAINER_SPRITE(YOUNG_COUPLE, YoungCouple, 0, 0, 0x200), - TRAINER_SPRITE(OLD_COUPLE, OldCouple, 0, 0, 0x200), - TRAINER_SPRITE(SIS_AND_BRO, SisAndBro, 0, 0, 0x200), + TRAINER_SPRITE(FISHERMAN, Fisherman), + TRAINER_SPRITE(CYCLING_TRIATHLETE_M, CyclingTriathleteM), + TRAINER_SPRITE(CYCLING_TRIATHLETE_F, CyclingTriathleteF), + TRAINER_SPRITE(RUNNING_TRIATHLETE_M, RunningTriathleteM), + TRAINER_SPRITE(RUNNING_TRIATHLETE_F, RunningTriathleteF), + TRAINER_SPRITE(SWIMMING_TRIATHLETE_M, SwimmingTriathleteM), + TRAINER_SPRITE(SWIMMING_TRIATHLETE_F, SwimmingTriathleteF), + TRAINER_SPRITE(DRAGON_TAMER, DragonTamer), + TRAINER_SPRITE(NINJA_BOY, NinjaBoy), + TRAINER_SPRITE(BATTLE_GIRL, BattleGirl), + TRAINER_SPRITE(PARASOL_LADY, ParasolLady), + TRAINER_SPRITE(SWIMMER_F, SwimmerF), + TRAINER_SPRITE(TWINS, Twins), + TRAINER_SPRITE(SAILOR, Sailor), + TRAINER_SPRITE(MAGMA_ADMIN, MagmaAdmin), + TRAINER_SPRITE(WALLY, Wally), + TRAINER_SPRITE(BRENDAN, Brendan), + TRAINER_SPRITE(MAY, May), + TRAINER_SPRITE(BUG_CATCHER, BugCatcher), + TRAINER_SPRITE(POKEMON_RANGER_M, PokemonRangerM), + TRAINER_SPRITE(POKEMON_RANGER_F, PokemonRangerF), + TRAINER_SPRITE(MAGMA_LEADER_MAXIE, MagmaLeaderMaxie), + TRAINER_SPRITE(LASS, Lass), + TRAINER_SPRITE(YOUNG_COUPLE, YoungCouple), + TRAINER_SPRITE(OLD_COUPLE, OldCouple), + TRAINER_SPRITE(SIS_AND_BRO, SisAndBro), TRAINER_SPRITE(STEVEN, Steven, 0, 7, 0x188), - TRAINER_SPRITE(SALON_MAIDEN_ANABEL, SalonMaidenAnabel, 0, 0, 0x200), - TRAINER_SPRITE(DOME_ACE_TUCKER, DomeAceTucker, 0, 0, 0x200), - TRAINER_SPRITE(PALACE_MAVEN_SPENSER, PalaceMavenSpenser, 0, 0, 0x200), - TRAINER_SPRITE(ARENA_TYCOON_GRETA, ArenaTycoonGreta, 0, 0, 0x200), - TRAINER_SPRITE(FACTORY_HEAD_NOLAND, FactoryHeadNoland, 0, 0, 0x200), - TRAINER_SPRITE(PIKE_QUEEN_LUCY, PikeQueenLucy, 0, 0, 0x200), - TRAINER_SPRITE(PYRAMID_KING_BRANDON, PyramidKingBrandon, 0, 0, 0x200), - TRAINER_SPRITE(RED, Red, 0, 0, 0x200), - TRAINER_SPRITE(LEAF, Leaf, 0, 0, 0x200), - TRAINER_SPRITE(RS_BRENDAN, RubySapphireBrendan, 0, 0, 0x200), - TRAINER_SPRITE(RS_MAY, RubySapphireMay, 0, 0, 0x200), + TRAINER_SPRITE(SALON_MAIDEN_ANABEL, SalonMaidenAnabel), + TRAINER_SPRITE(DOME_ACE_TUCKER, DomeAceTucker), + TRAINER_SPRITE(PALACE_MAVEN_SPENSER, PalaceMavenSpenser), + TRAINER_SPRITE(ARENA_TYCOON_GRETA, ArenaTycoonGreta), + TRAINER_SPRITE(FACTORY_HEAD_NOLAND, FactoryHeadNoland), + TRAINER_SPRITE(PIKE_QUEEN_LUCY, PikeQueenLucy), + TRAINER_SPRITE(PYRAMID_KING_BRANDON, PyramidKingBrandon), + TRAINER_SPRITE(RED, Red), + TRAINER_SPRITE(LEAF, Leaf), + TRAINER_SPRITE(RS_BRENDAN, RubySapphireBrendan), + TRAINER_SPRITE(RS_MAY, RubySapphireMay), }; static const union AnimCmd sAnimCmd_Hoenn[] = diff --git a/src/pokemon.c b/src/pokemon.c index 8bb215f901..da5bb15175 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -1927,7 +1927,7 @@ void SetMultiuseSpriteTemplateToTrainerBack(u16 trainerPicId, u8 battlerPosition gMultiuseSpriteTemplate = gMonSpritesGfxPtr->templates[battlerPosition]; else gMultiuseSpriteTemplate = gBattlerSpriteTemplates[battlerPosition]; - gMultiuseSpriteTemplate.anims = gTrainerSprites[trainerPicId].animation; + gMultiuseSpriteTemplate.anims = sAnims_Trainer; } } @@ -1939,7 +1939,7 @@ void SetMultiuseSpriteTemplateToTrainerFront(u16 trainerPicId, u8 battlerPositio gMultiuseSpriteTemplate = gBattlerSpriteTemplates[battlerPosition]; gMultiuseSpriteTemplate.paletteTag = trainerPicId; - gMultiuseSpriteTemplate.anims = gTrainerSprites[trainerPicId].animation; + gMultiuseSpriteTemplate.anims = sAnims_Trainer; } static void EncryptBoxMon(struct BoxPokemon *boxMon) diff --git a/src/trainer_pokemon_sprites.c b/src/trainer_pokemon_sprites.c index cfa013620a..06b21d05cf 100644 --- a/src/trainer_pokemon_sprites.c +++ b/src/trainer_pokemon_sprites.c @@ -116,7 +116,7 @@ static void AssignSpriteAnimsTable(bool8 isTrainer) if (!isTrainer) sCreatingSpriteTemplate.anims = gAnims_MonPic; else - sCreatingSpriteTemplate.anims = gTrainerSprites[0].animation; + sCreatingSpriteTemplate.anims = sAnims_Trainer; } static u16 CreatePicSprite(u16 species, bool8 isShiny, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag, bool8 isTrainer)