Fix transform not loading the correct sprites when facing shiny or unown (#8146)
This commit is contained in:
parent
8d692bc96e
commit
504b08dace
@ -633,15 +633,8 @@ void BattleLoadMonSpriteGfx(struct Pokemon *mon, u32 battler)
|
||||
if (GetActiveGimmick(battler) == GIMMICK_DYNAMAX && GetMonData(mon, MON_DATA_GIGANTAMAX_FACTOR))
|
||||
gBattleSpritesDataPtr->battlerData[battler].transformSpecies = species = GetGMaxTargetSpecies(species);
|
||||
|
||||
if (B_TRANSFORM_SHINY >= GEN_4)
|
||||
{
|
||||
personalityValue = gTransformedPersonalities[battler];
|
||||
isShiny = gTransformedShininess[battler];
|
||||
}
|
||||
else
|
||||
{
|
||||
personalityValue = GetMonData(mon, MON_DATA_PERSONALITY);
|
||||
}
|
||||
personalityValue = gTransformedPersonalities[battler];
|
||||
isShiny = gTransformedShininess[battler];
|
||||
}
|
||||
|
||||
position = GetBattlerPosition(battler);
|
||||
@ -947,24 +940,23 @@ void HandleSpeciesGfxDataChange(u8 battlerAtk, u8 battlerDef, bool32 megaEvo, bo
|
||||
targetSpecies = GetIllusionMonSpecies(battlerDef);
|
||||
else
|
||||
targetSpecies = GetMonData(monDef, MON_DATA_SPECIES);
|
||||
personalityValue = GetMonData(monAtk, MON_DATA_PERSONALITY);
|
||||
isShiny = GetMonData(monAtk, MON_DATA_IS_SHINY);
|
||||
gBattleSpritesDataPtr->battlerData[battlerAtk].transformSpecies = targetSpecies;
|
||||
}
|
||||
else
|
||||
{
|
||||
targetSpecies = gBattleSpritesDataPtr->battlerData[battlerAtk].transformSpecies;
|
||||
if (B_TRANSFORM_SHINY >= GEN_4 && trackEnemyPersonality && !megaEvo)
|
||||
{
|
||||
personalityValue = GetMonData(monDef, MON_DATA_PERSONALITY);
|
||||
isShiny = GetMonData(monDef, MON_DATA_IS_SHINY);
|
||||
}
|
||||
else
|
||||
{
|
||||
personalityValue = GetMonData(monAtk, MON_DATA_PERSONALITY);
|
||||
isShiny = GetMonData(monAtk, MON_DATA_IS_SHINY);
|
||||
}
|
||||
}
|
||||
|
||||
if (trackEnemyPersonality)
|
||||
{
|
||||
personalityValue = gDisableStructs[battlerAtk].transformedMonPersonality;
|
||||
isShiny = gDisableStructs[battlerAtk].transformedMonShininess;
|
||||
}
|
||||
else
|
||||
{
|
||||
personalityValue = GetMonData(monAtk, MON_DATA_PERSONALITY);
|
||||
isShiny = GetMonData(monAtk, MON_DATA_IS_SHINY);
|
||||
}
|
||||
HandleLoadSpecialPokePic(!IsOnPlayerSide(battlerAtk),
|
||||
gMonSpritesGfxPtr->spritesGfx[position],
|
||||
targetSpecies,
|
||||
@ -981,10 +973,6 @@ void HandleSpeciesGfxDataChange(u8 battlerAtk, u8 battlerDef, bool32 megaEvo, bo
|
||||
{
|
||||
BlendPalette(paletteOffset, 16, 6, RGB_WHITE);
|
||||
CpuCopy32(&gPlttBufferFaded[paletteOffset], &gPlttBufferUnfaded[paletteOffset], PLTT_SIZEOF(16));
|
||||
if (!IsContest())
|
||||
{
|
||||
gBattleSpritesDataPtr->battlerData[battlerAtk].transformSpecies = targetSpecies;
|
||||
}
|
||||
}
|
||||
|
||||
// dynamax tint
|
||||
|
||||
@ -11218,7 +11218,10 @@ static void Cmd_transformdataexecution(void)
|
||||
gDisableStructs[gBattlerAttacker].disabledMove = MOVE_NONE;
|
||||
gDisableStructs[gBattlerAttacker].disableTimer = 0;
|
||||
gDisableStructs[gBattlerAttacker].transformedMonPersonality = gBattleMons[gBattlerTarget].personality;
|
||||
gDisableStructs[gBattlerAttacker].transformedMonShininess = gBattleMons[gBattlerTarget].isShiny;
|
||||
if (B_TRANSFORM_SHINY >= GEN_4)
|
||||
gDisableStructs[gBattlerAttacker].transformedMonShininess = gBattleMons[gBattlerTarget].isShiny;
|
||||
else
|
||||
gDisableStructs[gBattlerAttacker].transformedMonShininess = gBattleMons[gBattlerAttacker].isShiny;
|
||||
gDisableStructs[gBattlerAttacker].mimickedMoves = 0;
|
||||
gDisableStructs[gBattlerAttacker].usedMoves = 0;
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user