Fixes shadows and mon animations for Illusioned battlers (#7347)
This commit is contained in:
parent
67d007f4fb
commit
19c9aa508d
@ -2172,9 +2172,7 @@ void StartSendOutAnim(u32 battler, bool32 dontClearTransform, bool32 dontClearSu
|
||||
|
||||
ClearTemporarySpeciesSpriteData(battler, dontClearTransform, dontClearSubstituteBit);
|
||||
gBattlerPartyIndexes[battler] = gBattleResources->bufferA[battler][1];
|
||||
species = GetIllusionMonSpecies(battler);
|
||||
if (species == SPECIES_NONE)
|
||||
species = GetMonData(mon, MON_DATA_SPECIES);
|
||||
species = GetBattlerVisualSpecies(battler);
|
||||
gBattleControllerData[battler] = CreateInvisibleSpriteWithCallback(SpriteCB_WaitForBattlerBallReleaseAnim);
|
||||
// Load sprite for opponent only, player sprite is expected to be already loaded.
|
||||
if (!IsOnPlayerSide(battler))
|
||||
@ -2490,7 +2488,7 @@ void BtlController_HandleSetRawMonData(u32 battler)
|
||||
void BtlController_HandleLoadMonSprite(u32 battler, void (*controllerCallback)(u32 battler))
|
||||
{
|
||||
struct Pokemon *mon = GetBattlerMon(battler);
|
||||
u16 species = GetMonData(mon, MON_DATA_SPECIES);
|
||||
u16 species = GetBattlerVisualSpecies(battler);
|
||||
|
||||
BattleLoadMonSpriteGfx(mon, battler);
|
||||
SetMultiuseSpriteTemplateToPokemon(species, GetBattlerPosition(battler));
|
||||
@ -3153,7 +3151,7 @@ void TrySetBattlerShadowSpriteCallback(u32 battler)
|
||||
if (gSprites[gBattleSpritesDataPtr->healthBoxesData[battler].shadowSpriteIdPrimary].callback == SpriteCallbackDummy
|
||||
&& (B_ENEMY_MON_SHADOW_STYLE <= GEN_3 || P_GBA_STYLE_SPECIES_GFX == TRUE
|
||||
|| gSprites[gBattleSpritesDataPtr->healthBoxesData[battler].shadowSpriteIdSecondary].callback == SpriteCallbackDummy))
|
||||
SetBattlerShadowSpriteCallback(battler, GetMonData(GetBattlerMon(battler), MON_DATA_SPECIES));
|
||||
SetBattlerShadowSpriteCallback(battler, GetBattlerVisualSpecies(battler));
|
||||
}
|
||||
|
||||
bool32 TryShinyAnimAfterMonAnimUtil(u32 battler)
|
||||
@ -3256,7 +3254,7 @@ bool32 SwitchIn_TryShinyAnimUtil(u32 battler)
|
||||
DestroySprite(&gSprites[gBattleControllerData[battler]]);
|
||||
|
||||
if (GetBattlerSide(battler) == B_SIDE_OPPONENT)
|
||||
SetBattlerShadowSpriteCallback(battler, GetMonData(GetBattlerMon(battler), MON_DATA_SPECIES));
|
||||
SetBattlerShadowSpriteCallback(battler, GetBattlerVisualSpecies(battler));
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@ -1168,7 +1168,7 @@ void CreateEnemyShadowSprite(u32 battler)
|
||||
{
|
||||
if (B_ENEMY_MON_SHADOW_STYLE >= GEN_4 && P_GBA_STYLE_SPECIES_GFX == FALSE)
|
||||
{
|
||||
u16 species = SanitizeSpeciesId(gBattleMons[battler].species);
|
||||
u16 species = GetBattlerVisualSpecies(battler);
|
||||
u8 size = gSpeciesInfo[species].enemyShadowSize;
|
||||
|
||||
gBattleSpritesDataPtr->healthBoxesData[battler].shadowSpriteIdPrimary = CreateSprite(&gSpriteTemplate_EnemyShadow,
|
||||
@ -1282,7 +1282,7 @@ void SpriteCB_EnemyShadow(struct Sprite *shadowSprite)
|
||||
}
|
||||
else if (B_ENEMY_MON_SHADOW_STYLE >= GEN_4 && P_GBA_STYLE_SPECIES_GFX == FALSE)
|
||||
{
|
||||
u16 species = SanitizeSpeciesId(gBattleMons[battler].species);
|
||||
u16 species = GetBattlerVisualSpecies(battler);
|
||||
xOffset = gSpeciesInfo[species].enemyShadowXOffset + (shadowSprite->tSpriteSide == SPRITE_SIDE_LEFT ? -16 : 16);
|
||||
yOffset = gSpeciesInfo[species].enemyShadowYOffset + 16;
|
||||
size = gSpeciesInfo[species].enemyShadowSize;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user