diff --git a/include/battle_dynamax.h b/include/battle_dynamax.h index 403abdaf95..b754c356a9 100644 --- a/include/battle_dynamax.h +++ b/include/battle_dynamax.h @@ -55,5 +55,6 @@ enum MaxMoveEffect bool8 ShouldUseMaxMove(u16 battlerId, u16 baseMove); u16 GetMaxMove(u16 battlerId, u16 baseMove); bool8 IsMaxMove(u16 move); +const u8 *GetMaxMoveName(u16 move); #endif diff --git a/include/data.h b/include/data.h index e08d486986..ec9b93bc96 100644 --- a/include/data.h +++ b/include/data.h @@ -135,5 +135,6 @@ extern const u8 gTrainerClassNames[][13]; extern const u8 gSpeciesNames[][POKEMON_NAME_LENGTH + 1]; extern const u8 gMoveNames[MOVES_COUNT_DYNAMAX][MOVE_NAME_LENGTH + 1]; extern const u8 *const gZMoveNames[]; +extern const u8 *const gMaxMoveNames[]; #endif // GUARD_DATA_H diff --git a/src/battle_dynamax.c b/src/battle_dynamax.c index 798fd87e14..ffe933c850 100644 --- a/src/battle_dynamax.c +++ b/src/battle_dynamax.c @@ -1,6 +1,7 @@ #include "global.h" -#include "pokemon.h" #include "battle.h" +#include "data.h" +#include "pokemon.h" #include "constants/moves.h" // Constant Data @@ -100,4 +101,12 @@ u16 GetMaxMove(u16 battlerId, u16 baseMove) bool8 IsMaxMove(u16 move) { return move >= FIRST_MAX_MOVE && move <= LAST_MAX_MOVE; -} \ No newline at end of file +} + +const u8 *GetMaxMoveName(u16 move) +{ + if (IsMaxMove(move)) + return gMaxMoveNames[move - FIRST_MAX_MOVE]; + else + return gMaxMoveNames[0]; // Failsafe +} diff --git a/src/battle_message.c b/src/battle_message.c index 63590905db..de099e3f3a 100644 --- a/src/battle_message.c +++ b/src/battle_message.c @@ -2838,7 +2838,7 @@ void BufferStringBattle(u16 stringID) if (gBattleStruct->zmove.active && gBattleStruct->zmove.activeSplit != SPLIT_STATUS) StringCopy(gBattleTextBuff3, GetZMoveName(gBattleMsgDataPtr->currentMove)); else if (IsMaxMove(gBattleMsgDataPtr->currentMove)) - StringCopy(gBattleTextBuff3, gMoveNames[gBattleMsgDataPtr->currentMove]); + StringCopy(gBattleTextBuff3, GetMaxMoveName(gBattleMsgDataPtr->currentMove)); else if (gBattleMsgDataPtr->currentMove >= MOVES_COUNT) StringCopy(gBattleTextBuff3, sATypeMove_Table[*(&gBattleStruct->stringMoveType)]); else diff --git a/src/data/text/move_names.h b/src/data/text/move_names.h index d319900a16..09f0ffd2d6 100644 --- a/src/data/text/move_names.h +++ b/src/data/text/move_names.h @@ -1750,3 +1750,114 @@ const u8 *const gZMoveNames[] = [MOVE_LIGHT_THAT_BURNS_THE_SKY - FIRST_Z_MOVE] = sText_Light_That_Burns_The_Sky, [MOVE_SOUL_STEALING_7_STAR_STRIKE - FIRST_Z_MOVE] = sText_Soul_Stealing_7_Star_Strike, }; + +// Max Moves +static const u8 sText_Max_Guard[] = _("Max Guard"); +static const u8 sText_Max_Strike[] = _("Max Strike"); +static const u8 sText_Max_Knuckle[] = _("Max Knuckle"); +static const u8 sText_Max_Airstream[] = _("Max Airstream"); +static const u8 sText_Max_Ooze[] = _("Max Ooze"); +static const u8 sText_Max_Quake[] = _("Max Quake"); +static const u8 sText_Max_Rockfall[] = _("Max Rockfall"); +static const u8 sText_Max_Flutterby[] = _("Max Flutterby"); +static const u8 sText_Max_Phantasm[] = _("Max Phantasm"); +static const u8 sText_Max_Steelspike[] = _("Max Steelspike"); +static const u8 sText_Max_Flare[] = _("Max Flare"); +static const u8 sText_Max_Geyser[] = _("Max Geyser"); +static const u8 sText_Max_Overgrowth[] = _("Max Overgrowth"); +static const u8 sText_Max_Lightning[] = _("Max Lightning"); +static const u8 sText_Max_Hailstorm[] = _("Max Hailstorm"); +static const u8 sText_Max_Mindstorm[] = _("Max Mindstorm"); +static const u8 sText_Max_Wyrmwind[] = _("Max Wyrmwind"); +static const u8 sText_Max_Darkness[] = _("Max Darkness"); +static const u8 sText_Max_Starfall[] = _("Max Starfall"); +static const u8 sText_G_Max_Vine_Lash[] = _("G-Max Vine Lash"); +static const u8 sText_G_Max_Wildfire[] = _("G-Max Wildfire"); +static const u8 sText_G_Max_Cannonade[] = _("G-Max Cannonade"); +static const u8 sText_G_Max_Befuddle[] = _("G-Max Befuddle"); +static const u8 sText_G_Max_Volt_Crash[] = _("G-Max Volt Crash"); +static const u8 sText_G_Max_Gold_Rush[] = _("G-Max Gold Rush"); +static const u8 sText_G_Max_Chi_Strike[] = _("G-Max Chi Strike"); +static const u8 sText_G_Max_Terror[] = _("G-Max Terror"); +static const u8 sText_G_Max_Foam_Burst[] = _("G-Max Foam Burst"); +static const u8 sText_G_Max_Resonance[] = _("G-Max Resonance"); +static const u8 sText_G_Max_Cuddle[] = _("G-Max Cuddle"); +static const u8 sText_G_Max_Replenish[] = _("G-Max Replenish"); +static const u8 sText_G_Max_Malodor[] = _("G-Max Malodor"); +static const u8 sText_G_Max_Meltdown[] = _("G-Max Meltdown"); +static const u8 sText_G_Max_Drum_Solo[] = _("G-Max Drum Solo"); +static const u8 sText_G_Max_Fireball[] = _("G-Max Fireball"); +static const u8 sText_G_Max_Hydrosnipe[] = _("G-Max Hydrosnipe"); +static const u8 sText_G_Max_Wind_Rage[] = _("G-Max Wind Rage"); +static const u8 sText_G_Max_Gravitas[] = _("G-Max Gravitas"); +static const u8 sText_G_Max_Stonesurge[] = _("G-Max Stonesurge"); +static const u8 sText_G_Max_Volcalith[] = _("G-Max Volcalith"); +static const u8 sText_G_Max_Tartness[] = _("G-Max Tartness"); +static const u8 sText_G_Max_Sweetness[] = _("G-Max Sweetness"); +static const u8 sText_G_Max_Sandblast[] = _("G-Max Sandblast"); +static const u8 sText_G_Max_Stun_Shock[] = _("G-Max Stun Shock"); +static const u8 sText_G_Max_Centiferno[] = _("G-Max Centiferno"); +static const u8 sText_G_Max_Smite[] = _("G-Max Smite"); +static const u8 sText_G_Max_Snooze[] = _("G-Max Snooze"); +static const u8 sText_G_Max_Finale[] = _("G-Max Finale"); +static const u8 sText_G_Max_Steelsurge[] = _("G-Max Steelsurge"); +static const u8 sText_G_Max_Depletion[] = _("G-Max Depletion"); +static const u8 sText_G_Max_One_Blow[] = _("G-Max One Blow"); +static const u8 sText_G_Max_Rapid_Flow[] = _("G-Max Rapid Flow"); + +const u8 *const gMaxMoveNames[] = +{ + [MOVE_MAX_GUARD - FIRST_MAX_MOVE] = sText_Max_Guard, + [MOVE_MAX_STRIKE - FIRST_MAX_MOVE] = sText_Max_Strike, + [MOVE_MAX_KNUCKLE - FIRST_MAX_MOVE] = sText_Max_Knuckle, + [MOVE_MAX_AIRSTREAM - FIRST_MAX_MOVE] = sText_Max_Airstream, + [MOVE_MAX_OOZE - FIRST_MAX_MOVE] = sText_Max_Ooze, + [MOVE_MAX_QUAKE - FIRST_MAX_MOVE] = sText_Max_Quake, + [MOVE_MAX_ROCKFALL - FIRST_MAX_MOVE] = sText_Max_Rockfall, + [MOVE_MAX_FLUTTERBY - FIRST_MAX_MOVE] = sText_Max_Flutterby, + [MOVE_MAX_PHANTASM - FIRST_MAX_MOVE] = sText_Max_Phantasm, + [MOVE_MAX_STEELSPIKE - FIRST_MAX_MOVE] = sText_Max_Steelspike, + [MOVE_MAX_FLARE - FIRST_MAX_MOVE] = sText_Max_Flare, + [MOVE_MAX_GEYSER - FIRST_MAX_MOVE] = sText_Max_Geyser, + [MOVE_MAX_OVERGROWTH - FIRST_MAX_MOVE] = sText_Max_Overgrowth, + [MOVE_MAX_LIGHTNING - FIRST_MAX_MOVE] = sText_Max_Lightning, + [MOVE_MAX_HAILSTORM - FIRST_MAX_MOVE] = sText_Max_Hailstorm, + [MOVE_MAX_MINDSTORM - FIRST_MAX_MOVE] = sText_Max_Mindstorm, + [MOVE_MAX_WYRMWIND - FIRST_MAX_MOVE] = sText_Max_Wyrmwind, + [MOVE_MAX_DARKNESS - FIRST_MAX_MOVE] = sText_Max_Darkness, + [MOVE_MAX_STARFALL - FIRST_MAX_MOVE] = sText_Max_Starfall, + [MOVE_G_MAX_VINE_LASH - FIRST_MAX_MOVE] = sText_G_Max_Vine_Lash, + [MOVE_G_MAX_WILDFIRE - FIRST_MAX_MOVE] = sText_G_Max_Wildfire, + [MOVE_G_MAX_CANNONADE - FIRST_MAX_MOVE] = sText_G_Max_Cannonade, + [MOVE_G_MAX_BEFUDDLE - FIRST_MAX_MOVE] = sText_G_Max_Befuddle, + [MOVE_G_MAX_VOLT_CRASH - FIRST_MAX_MOVE] = sText_G_Max_Volt_Crash, + [MOVE_G_MAX_GOLD_RUSH - FIRST_MAX_MOVE] = sText_G_Max_Gold_Rush, + [MOVE_G_MAX_CHI_STRIKE - FIRST_MAX_MOVE] = sText_G_Max_Chi_Strike, + [MOVE_G_MAX_TERROR - FIRST_MAX_MOVE] = sText_G_Max_Terror, + [MOVE_G_MAX_FOAM_BURST - FIRST_MAX_MOVE] = sText_G_Max_Foam_Burst, + [MOVE_G_MAX_RESONANCE - FIRST_MAX_MOVE] = sText_G_Max_Resonance, + [MOVE_G_MAX_CUDDLE - FIRST_MAX_MOVE] = sText_G_Max_Cuddle, + [MOVE_G_MAX_REPLENISH - FIRST_MAX_MOVE] = sText_G_Max_Replenish, + [MOVE_G_MAX_MALODOR - FIRST_MAX_MOVE] = sText_G_Max_Malodor, + [MOVE_G_MAX_MELTDOWN - FIRST_MAX_MOVE] = sText_G_Max_Meltdown, + [MOVE_G_MAX_DRUM_SOLO - FIRST_MAX_MOVE] = sText_G_Max_Drum_Solo, + [MOVE_G_MAX_FIREBALL - FIRST_MAX_MOVE] = sText_G_Max_Fireball, + [MOVE_G_MAX_HYDROSNIPE - FIRST_MAX_MOVE] = sText_G_Max_Hydrosnipe, + [MOVE_G_MAX_WIND_RAGE - FIRST_MAX_MOVE] = sText_G_Max_Wind_Rage, + [MOVE_G_MAX_GRAVITAS - FIRST_MAX_MOVE] = sText_G_Max_Gravitas, + [MOVE_G_MAX_STONESURGE - FIRST_MAX_MOVE] = sText_G_Max_Stonesurge, + [MOVE_G_MAX_VOLCALITH - FIRST_MAX_MOVE] = sText_G_Max_Volcalith, + [MOVE_G_MAX_TARTNESS - FIRST_MAX_MOVE] = sText_G_Max_Tartness, + [MOVE_G_MAX_SWEETNESS - FIRST_MAX_MOVE] = sText_G_Max_Sweetness, + [MOVE_G_MAX_SANDBLAST - FIRST_MAX_MOVE] = sText_G_Max_Sandblast, + [MOVE_G_MAX_STUN_SHOCK - FIRST_MAX_MOVE] = sText_G_Max_Stun_Shock, + [MOVE_G_MAX_CENTIFERNO - FIRST_MAX_MOVE] = sText_G_Max_Centiferno, + [MOVE_G_MAX_SMITE - FIRST_MAX_MOVE] = sText_G_Max_Smite, + [MOVE_G_MAX_SNOOZE - FIRST_MAX_MOVE] = sText_G_Max_Snooze, + [MOVE_G_MAX_FINALE - FIRST_MAX_MOVE] = sText_G_Max_Finale, + [MOVE_G_MAX_STEELSURGE - FIRST_MAX_MOVE] = sText_G_Max_Steelsurge, + [MOVE_G_MAX_DEPLETION - FIRST_MAX_MOVE] = sText_G_Max_Depletion, + [MOVE_G_MAX_ONE_BLOW - FIRST_MAX_MOVE] = sText_G_Max_One_Blow, + [MOVE_G_MAX_RAPID_FLOW - FIRST_MAX_MOVE] = sText_G_Max_Rapid_Flow, +}; + \ No newline at end of file