Fix player and partner trainer sprite palettes to 8 and 9, preventing unwanted palette changes (#8127)

This commit is contained in:
grintoul 2025-11-27 16:42:59 +00:00 committed by GitHub
parent 2d628aca0e
commit a885abe106
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 7 additions and 4 deletions

View File

@ -2367,7 +2367,8 @@ void BtlController_HandleDrawTrainerPic(u32 battler, u32 trainerPicId, bool32 is
if ((gBattleTypeFlags & BATTLE_TYPE_SAFARI) && GetBattlerPosition(battler) == B_POSITION_PLAYER_LEFT)
gBattlerSpriteIds[battler] = gBattleStruct->trainerSlideSpriteIds[battler];
gSprites[gBattleStruct->trainerSlideSpriteIds[battler]].oam.paletteNum = battler;
// Aiming for palette slots 8 and 9 for Player and PlayerPartner to prevent Trainer Slides causing mons to change colour
gSprites[gBattleStruct->trainerSlideSpriteIds[battler]].oam.paletteNum = (8 + battler/2);
}
gSprites[gBattleStruct->trainerSlideSpriteIds[battler]].x2 = DISPLAY_WIDTH;
gSprites[gBattleStruct->trainerSlideSpriteIds[battler]].sSpeedX = -2;
@ -2392,7 +2393,8 @@ void BtlController_HandleTrainerSlide(u32 battler, u32 trainerPicId)
30);
if ((gBattleTypeFlags & BATTLE_TYPE_SAFARI) && GetBattlerPosition(battler) == B_POSITION_PLAYER_LEFT)
gBattlerSpriteIds[battler] = gBattleStruct->trainerSlideSpriteIds[battler];
gSprites[gBattleStruct->trainerSlideSpriteIds[battler]].oam.paletteNum = battler;
// Aiming for palette slots 8 and 9 for Player and PlayerPartner to prevent Trainer Slides causing mons to change colour
gSprites[gBattleStruct->trainerSlideSpriteIds[battler]].oam.paletteNum = (8 + battler/2);
gSprites[gBattleStruct->trainerSlideSpriteIds[battler]].x2 = -96;
gSprites[gBattleStruct->trainerSlideSpriteIds[battler]].sSpeedX = 2;
}
@ -2740,7 +2742,7 @@ void BtlController_HandleIntroTrainerBallThrow(u32 battler, u16 tagTrainerPal, c
paletteNum = AllocSpritePalette(tagTrainerPal);
LoadPalette(trainerPal, OBJ_PLTT_ID(paletteNum), PLTT_SIZE_4BPP);
gSprites[gBattleStruct->trainerSlideSpriteIds[battler]].oam.paletteNum = paletteNum;
gSprites[gBattleStruct->trainerSlideSpriteIds[battler]].oam.paletteNum = (8 + battler/2);
}
else
{

View File

@ -696,8 +696,9 @@ void DecompressTrainerBackPic(u16 backPicId, u8 battler)
{
u8 position = GetBattlerPosition(battler);
CopyTrainerBackspriteFramesToDest(backPicId, gMonSpritesGfxPtr->spritesGfx[position]);
// Aiming for palette slots 8 and 9 for Player and PlayerPartner to prevent Trainer Slides causing mons to change colour
LoadPalette(gTrainerBacksprites[backPicId].palette.data,
OBJ_PLTT_ID(battler), PLTT_SIZE_4BPP);
OBJ_PLTT_ID(8 + battler/2), PLTT_SIZE_4BPP);
}
void FreeTrainerFrontPicPalette(u16 frontPicId)