Use GetPartyBattlerData where appropiate (#6779)
This commit is contained in:
parent
76b9a6918e
commit
1f23fe0dd3
@ -2379,11 +2379,11 @@ static bool32 ShouldUseItem(u32 battler)
|
||||
switch (ItemId_GetBattleUsage(item))
|
||||
{
|
||||
case EFFECT_ITEM_HEAL_AND_CURE_STATUS:
|
||||
healAmount = GetHPHealAmount(itemEffects[GetItemEffectParamOffset(battler, item, 4, ITEM4_HEAL_HP)], &gEnemyParty[gBattlerPartyIndexes[battler]]);
|
||||
healAmount = GetHPHealAmount(itemEffects[GetItemEffectParamOffset(battler, item, 4, ITEM4_HEAL_HP)], GetPartyBattlerData(battler));
|
||||
shouldUse = AI_ShouldHeal(battler, healAmount);
|
||||
break;
|
||||
case EFFECT_ITEM_RESTORE_HP:
|
||||
healAmount = GetHPHealAmount(itemEffects[GetItemEffectParamOffset(battler, item, 4, ITEM4_HEAL_HP)], &gEnemyParty[gBattlerPartyIndexes[battler]]);
|
||||
healAmount = GetHPHealAmount(itemEffects[GetItemEffectParamOffset(battler, item, 4, ITEM4_HEAL_HP)], GetPartyBattlerData(battler));
|
||||
shouldUse = AI_ShouldHeal(battler, healAmount);
|
||||
break;
|
||||
case EFFECT_ITEM_CURE_STATUS:
|
||||
|
||||
@ -2236,7 +2236,7 @@ static void Cmd_createdragondartsprite(void)
|
||||
u8 argVar;
|
||||
u8 argsCount;
|
||||
s16 subpriority;
|
||||
struct Pokemon *party = GetBattlerParty(gBattleAnimAttacker);
|
||||
struct Pokemon *mon = GetPartyBattlerData(gBattleAnimAttacker);
|
||||
|
||||
sBattleAnimScriptPtr++;
|
||||
|
||||
@ -2253,10 +2253,10 @@ static void Cmd_createdragondartsprite(void)
|
||||
|
||||
subpriority = GetSubpriorityForMoveAnim(argVar);
|
||||
|
||||
if (GetMonData(&party[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_SPECIES) == SPECIES_DRAGAPULT)
|
||||
if (GetMonData(mon, MON_DATA_SPECIES) == SPECIES_DRAGAPULT)
|
||||
{
|
||||
template.tileTag = ANIM_TAG_DREEPY;
|
||||
if (IsMonShiny(&party[gBattlerPartyIndexes[gBattleAnimAttacker]]) == TRUE)
|
||||
if (IsMonShiny(mon) == TRUE)
|
||||
template.paletteTag = ANIM_TAG_DREEPY_SHINY;
|
||||
else
|
||||
template.paletteTag = ANIM_TAG_DREEPY;
|
||||
|
||||
@ -9281,8 +9281,8 @@ void AnimTask_GetWeatherToSet(u8 taskId)
|
||||
|
||||
void AnimTask_SyrupBomb(u8 taskId)
|
||||
{
|
||||
struct Pokemon *party = GetBattlerParty(gBattleAnimAttacker);
|
||||
gBattleAnimArgs[0] = IsMonShiny(&party[gBattlerPartyIndexes[gBattleAnimAttacker]]);
|
||||
struct Pokemon *mon = GetPartyBattlerData(gBattleAnimAttacker);
|
||||
gBattleAnimArgs[0] = IsMonShiny(mon);
|
||||
DestroyAnimVisualTask(taskId);
|
||||
}
|
||||
|
||||
|
||||
@ -198,14 +198,14 @@ static void Intro_TryShinyAnimShowHealthbox(u32 battler)
|
||||
&& !gBattleSpritesDataPtr->healthBoxesData[battler].triedShinyMonAnim
|
||||
&& !gBattleSpritesDataPtr->healthBoxesData[battler].finishedShinyMonAnim)
|
||||
{
|
||||
TryShinyAnimation(battler, &gEnemyParty[gBattlerPartyIndexes[battler]]);
|
||||
TryShinyAnimation(battler, GetPartyBattlerData(battler));
|
||||
}
|
||||
if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI)
|
||||
&& !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(battler)].ballAnimActive
|
||||
&& !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(battler)].triedShinyMonAnim
|
||||
&& !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(battler)].finishedShinyMonAnim)
|
||||
{
|
||||
TryShinyAnimation(BATTLE_PARTNER(battler), &gEnemyParty[gBattlerPartyIndexes[BATTLE_PARTNER(battler)]]);
|
||||
TryShinyAnimation(BATTLE_PARTNER(battler), GetPartyBattlerData(BATTLE_PARTNER(battler)));
|
||||
}
|
||||
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[battler].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(battler)].ballAnimActive)
|
||||
@ -214,11 +214,11 @@ static void Intro_TryShinyAnimShowHealthbox(u32 battler)
|
||||
{
|
||||
if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI))
|
||||
{
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[BATTLE_PARTNER(battler)], &gEnemyParty[gBattlerPartyIndexes[BATTLE_PARTNER(battler)]], HEALTHBOX_ALL);
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[BATTLE_PARTNER(battler)], GetPartyBattlerData(BATTLE_PARTNER(battler)), HEALTHBOX_ALL);
|
||||
StartHealthboxSlideIn(BATTLE_PARTNER(battler));
|
||||
SetHealthboxSpriteVisible(gHealthboxSpriteIds[BATTLE_PARTNER(battler)]);
|
||||
}
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[battler], &gEnemyParty[gBattlerPartyIndexes[battler]], HEALTHBOX_ALL);
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[battler], GetPartyBattlerData(battler), HEALTHBOX_ALL);
|
||||
StartHealthboxSlideIn(battler);
|
||||
SetHealthboxSpriteVisible(gHealthboxSpriteIds[battler]);
|
||||
}
|
||||
@ -262,12 +262,12 @@ static void Intro_TryShinyAnimShowHealthbox(u32 battler)
|
||||
if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI))
|
||||
{
|
||||
DestroySprite(&gSprites[gBattleControllerData[BATTLE_PARTNER(battler)]]);
|
||||
SetBattlerShadowSpriteCallback(BATTLE_PARTNER(battler), GetMonData(&gEnemyParty[gBattlerPartyIndexes[BATTLE_PARTNER(battler)]], MON_DATA_SPECIES));
|
||||
SetBattlerShadowSpriteCallback(BATTLE_PARTNER(battler), GetMonData(GetPartyBattlerData(BATTLE_PARTNER(battler)), MON_DATA_SPECIES));
|
||||
}
|
||||
|
||||
|
||||
DestroySprite(&gSprites[gBattleControllerData[battler]]);
|
||||
SetBattlerShadowSpriteCallback(battler, GetMonData(&gEnemyParty[gBattlerPartyIndexes[battler]], MON_DATA_SPECIES));
|
||||
SetBattlerShadowSpriteCallback(battler, GetMonData(GetPartyBattlerData(battler), MON_DATA_SPECIES));
|
||||
|
||||
gBattleSpritesDataPtr->animationData->introAnimActive = FALSE;
|
||||
gBattleSpritesDataPtr->healthBoxesData[battler].bgmRestored = FALSE;
|
||||
@ -285,7 +285,7 @@ static void TryShinyAnimAfterMonAnim(u32 battler)
|
||||
{
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[battler].triedShinyMonAnim)
|
||||
{
|
||||
TryShinyAnimation(battler, &gEnemyParty[gBattlerPartyIndexes[battler]]);
|
||||
TryShinyAnimation(battler, GetPartyBattlerData(battler));
|
||||
}
|
||||
else if (gBattleSpritesDataPtr->healthBoxesData[battler].finishedShinyMonAnim)
|
||||
{
|
||||
@ -335,7 +335,7 @@ static void SwitchIn_ShowHealthbox(u32 battler)
|
||||
|
||||
StartSpriteAnim(&gSprites[gBattlerSpriteIds[battler]], 0);
|
||||
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[battler], &gEnemyParty[gBattlerPartyIndexes[battler]], HEALTHBOX_ALL);
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[battler], GetPartyBattlerData(battler), HEALTHBOX_ALL);
|
||||
StartHealthboxSlideIn(battler);
|
||||
SetHealthboxSpriteVisible(gHealthboxSpriteIds[battler]);
|
||||
CopyBattleSpriteInvisibility(battler);
|
||||
@ -348,14 +348,14 @@ static void SwitchIn_TryShinyAnim(u32 battler)
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[battler].ballAnimActive
|
||||
&& !gBattleSpritesDataPtr->healthBoxesData[battler].triedShinyMonAnim)
|
||||
{
|
||||
TryShinyAnimation(battler, &gEnemyParty[gBattlerPartyIndexes[battler]]);
|
||||
TryShinyAnimation(battler, GetPartyBattlerData(battler));
|
||||
}
|
||||
|
||||
if (gSprites[gBattleControllerData[battler]].callback == SpriteCallbackDummy
|
||||
&& !gBattleSpritesDataPtr->healthBoxesData[battler].ballAnimActive)
|
||||
{
|
||||
DestroySprite(&gSprites[gBattleControllerData[battler]]);
|
||||
SetBattlerShadowSpriteCallback(battler, GetMonData(&gEnemyParty[gBattlerPartyIndexes[battler]], MON_DATA_SPECIES));
|
||||
SetBattlerShadowSpriteCallback(battler, GetMonData(GetPartyBattlerData(battler), MON_DATA_SPECIES));
|
||||
gBattlerControllerFuncs[battler] = SwitchIn_ShowHealthbox;
|
||||
}
|
||||
}
|
||||
|
||||
@ -160,9 +160,9 @@ static void SwitchIn_ShowHealthbox(u32 battler)
|
||||
FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS);
|
||||
|
||||
CreateTask(Task_PlayerController_RestoreBgmAfterCry, 10);
|
||||
HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[battler]], battler);
|
||||
HandleLowHpMusicChange(GetPartyBattlerData(battler), battler);
|
||||
StartSpriteAnim(&gSprites[gBattlerSpriteIds[battler]], 0);
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[battler], &gPlayerParty[gBattlerPartyIndexes[battler]], HEALTHBOX_ALL);
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[battler], GetPartyBattlerData(battler), HEALTHBOX_ALL);
|
||||
StartHealthboxSlideIn(battler);
|
||||
SetHealthboxSpriteVisible(gHealthboxSpriteIds[battler]);
|
||||
|
||||
@ -175,7 +175,7 @@ static void SwitchIn_TryShinyAnim(u32 battler)
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[battler].triedShinyMonAnim
|
||||
&& !gBattleSpritesDataPtr->healthBoxesData[battler].ballAnimActive)
|
||||
{
|
||||
TryShinyAnimation(battler, &gPlayerParty[gBattlerPartyIndexes[battler]]);
|
||||
TryShinyAnimation(battler, GetPartyBattlerData(battler));
|
||||
}
|
||||
|
||||
if (gSprites[gBattleControllerData[battler]].callback == SpriteCallbackDummy
|
||||
|
||||
@ -220,7 +220,7 @@ static void TrySetBattlerShadowSpriteCallback(u32 battler)
|
||||
|| P_GBA_STYLE_SPECIES_GFX == TRUE
|
||||
|| gSprites[gBattleSpritesDataPtr->healthBoxesData[battler].shadowSpriteIdSecondary].callback == SpriteCallbackDummy)
|
||||
{
|
||||
SetBattlerShadowSpriteCallback(battler, GetMonData(&gEnemyParty[gBattlerPartyIndexes[battler]], MON_DATA_SPECIES));
|
||||
SetBattlerShadowSpriteCallback(battler, GetMonData(GetPartyBattlerData(battler), MON_DATA_SPECIES));
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -234,7 +234,7 @@ static void Intro_TryShinyAnimShowHealthbox(u32 battler)
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[battler].triedShinyMonAnim
|
||||
&& !gBattleSpritesDataPtr->healthBoxesData[battler].ballAnimActive
|
||||
&& !gBattleSpritesDataPtr->healthBoxesData[battler].finishedShinyMonAnim)
|
||||
TryShinyAnimation(battler, &gEnemyParty[gBattlerPartyIndexes[battler]]);
|
||||
TryShinyAnimation(battler, GetPartyBattlerData(battler));
|
||||
|
||||
twoMons = TwoOpponentIntroMons(battler);
|
||||
if (!(gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS)
|
||||
@ -243,7 +243,7 @@ static void Intro_TryShinyAnimShowHealthbox(u32 battler)
|
||||
&& !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(battler)].triedShinyMonAnim
|
||||
&& !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(battler)].ballAnimActive
|
||||
&& !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(battler)].finishedShinyMonAnim)
|
||||
TryShinyAnimation(BATTLE_PARTNER(battler), &gEnemyParty[gBattlerPartyIndexes[BATTLE_PARTNER(battler)]]);
|
||||
TryShinyAnimation(BATTLE_PARTNER(battler), GetPartyBattlerData(BATTLE_PARTNER(battler)));
|
||||
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[battler].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(battler)].ballAnimActive)
|
||||
{
|
||||
@ -251,11 +251,11 @@ static void Intro_TryShinyAnimShowHealthbox(u32 battler)
|
||||
{
|
||||
if (twoMons && (!(gBattleTypeFlags & BATTLE_TYPE_MULTI) || BATTLE_TWO_VS_ONE_OPPONENT))
|
||||
{
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[BATTLE_PARTNER(battler)], &gEnemyParty[gBattlerPartyIndexes[BATTLE_PARTNER(battler)]], HEALTHBOX_ALL);
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[BATTLE_PARTNER(battler)], GetPartyBattlerData(BATTLE_PARTNER(battler)), HEALTHBOX_ALL);
|
||||
StartHealthboxSlideIn(BATTLE_PARTNER(battler));
|
||||
SetHealthboxSpriteVisible(gHealthboxSpriteIds[BATTLE_PARTNER(battler)]);
|
||||
}
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[battler], &gEnemyParty[gBattlerPartyIndexes[battler]], HEALTHBOX_ALL);
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[battler], GetPartyBattlerData(battler), HEALTHBOX_ALL);
|
||||
StartHealthboxSlideIn(battler);
|
||||
SetHealthboxSpriteVisible(gHealthboxSpriteIds[battler]);
|
||||
}
|
||||
@ -328,7 +328,7 @@ static void TryShinyAnimAfterMonAnim(u32 battler)
|
||||
if (gSprites[gBattlerSpriteIds[battler]].x2 == 0
|
||||
&& !gBattleSpritesDataPtr->healthBoxesData[battler].triedShinyMonAnim
|
||||
&& !gBattleSpritesDataPtr->healthBoxesData[battler].finishedShinyMonAnim)
|
||||
TryShinyAnimation(battler, &gEnemyParty[gBattlerPartyIndexes[battler]]);
|
||||
TryShinyAnimation(battler, GetPartyBattlerData(battler));
|
||||
|
||||
if (gSprites[gBattlerSpriteIds[battler]].callback == SpriteCallbackDummy
|
||||
&& gBattleSpritesDataPtr->healthBoxesData[battler].finishedShinyMonAnim)
|
||||
@ -374,7 +374,7 @@ static void SwitchIn_ShowHealthbox(u32 battler)
|
||||
FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS);
|
||||
FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS);
|
||||
StartSpriteAnim(&gSprites[gBattlerSpriteIds[battler]], 0);
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[battler], &gEnemyParty[gBattlerPartyIndexes[battler]], HEALTHBOX_ALL);
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[battler], GetPartyBattlerData(battler), HEALTHBOX_ALL);
|
||||
StartHealthboxSlideIn(battler);
|
||||
SetHealthboxSpriteVisible(gHealthboxSpriteIds[battler]);
|
||||
CopyBattleSpriteInvisibility(battler);
|
||||
@ -386,13 +386,13 @@ static void SwitchIn_TryShinyAnim(u32 battler)
|
||||
{
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[battler].triedShinyMonAnim
|
||||
&& !gBattleSpritesDataPtr->healthBoxesData[battler].ballAnimActive)
|
||||
TryShinyAnimation(battler, &gEnemyParty[gBattlerPartyIndexes[battler]]);
|
||||
TryShinyAnimation(battler, GetPartyBattlerData(battler));
|
||||
|
||||
if (gSprites[gBattleControllerData[battler]].callback == SpriteCallbackDummy
|
||||
&& !gBattleSpritesDataPtr->healthBoxesData[battler].ballAnimActive)
|
||||
{
|
||||
DestroySprite(&gSprites[gBattleControllerData[battler]]);
|
||||
SetBattlerShadowSpriteCallback(battler, GetMonData(&gEnemyParty[gBattlerPartyIndexes[battler]], MON_DATA_SPECIES));
|
||||
SetBattlerShadowSpriteCallback(battler, GetMonData(GetPartyBattlerData(battler), MON_DATA_SPECIES));
|
||||
gBattlerControllerFuncs[battler] = SwitchIn_ShowHealthbox;
|
||||
}
|
||||
}
|
||||
|
||||
@ -429,7 +429,7 @@ void HandleInputChooseTarget(u32 battler)
|
||||
{
|
||||
s32 i;
|
||||
static const u8 identities[MAX_BATTLERS_COUNT] = {B_POSITION_PLAYER_LEFT, B_POSITION_PLAYER_RIGHT, B_POSITION_OPPONENT_RIGHT, B_POSITION_OPPONENT_LEFT};
|
||||
u16 move = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battler]], MON_DATA_MOVE1 + gMoveSelectionCursor[battler]);
|
||||
u16 move = GetMonData(GetPartyBattlerData(battler), MON_DATA_MOVE1 + gMoveSelectionCursor[battler]);
|
||||
u16 moveTarget = GetBattlerMoveTargetType(battler, move);
|
||||
|
||||
DoBounceEffect(gMultiUsePlayerCursor, BOUNCE_HEALTHBOX, 15, 1);
|
||||
@ -1037,11 +1037,11 @@ void HandleMoveSwitching(u32 battler)
|
||||
{
|
||||
for (i = 0; i < MAX_MON_MOVES; i++)
|
||||
{
|
||||
moveStruct.moves[i] = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battler]], MON_DATA_MOVE1 + i);
|
||||
moveStruct.currentPp[i] = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battler]], MON_DATA_PP1 + i);
|
||||
moveStruct.moves[i] = GetMonData(GetPartyBattlerData(battler), MON_DATA_MOVE1 + i);
|
||||
moveStruct.currentPp[i] = GetMonData(GetPartyBattlerData(battler), MON_DATA_PP1 + i);
|
||||
}
|
||||
|
||||
totalPPBonuses = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battler]], MON_DATA_PP_BONUSES);
|
||||
totalPPBonuses = GetMonData(GetPartyBattlerData(battler), MON_DATA_PP_BONUSES);
|
||||
for (i = 0; i < MAX_MON_MOVES; i++)
|
||||
perMovePPBonuses[i] = (totalPPBonuses & (3 << (i * 2))) >> (i * 2);
|
||||
|
||||
@ -1063,11 +1063,11 @@ void HandleMoveSwitching(u32 battler)
|
||||
|
||||
for (i = 0; i < MAX_MON_MOVES; i++)
|
||||
{
|
||||
SetMonData(&gPlayerParty[gBattlerPartyIndexes[battler]], MON_DATA_MOVE1 + i, &moveStruct.moves[i]);
|
||||
SetMonData(&gPlayerParty[gBattlerPartyIndexes[battler]], MON_DATA_PP1 + i, &moveStruct.currentPp[i]);
|
||||
SetMonData(GetPartyBattlerData(battler), MON_DATA_MOVE1 + i, &moveStruct.moves[i]);
|
||||
SetMonData(GetPartyBattlerData(battler), MON_DATA_PP1 + i, &moveStruct.currentPp[i]);
|
||||
}
|
||||
|
||||
SetMonData(&gPlayerParty[gBattlerPartyIndexes[battler]], MON_DATA_PP_BONUSES, &totalPPBonuses);
|
||||
SetMonData(GetPartyBattlerData(battler), MON_DATA_PP_BONUSES, &totalPPBonuses);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1264,10 +1264,10 @@ static void Intro_WaitForShinyAnimAndHealthbox(u32 battler)
|
||||
FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS);
|
||||
FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS);
|
||||
|
||||
HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[battler]], battler);
|
||||
HandleLowHpMusicChange(GetPartyBattlerData(battler), battler);
|
||||
|
||||
if (TwoPlayerIntroMons(battler))
|
||||
HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[BATTLE_PARTNER(battler)]], BATTLE_PARTNER(battler));
|
||||
HandleLowHpMusicChange(GetPartyBattlerData(BATTLE_PARTNER(battler)), BATTLE_PARTNER(battler));
|
||||
|
||||
gBattleSpritesDataPtr->healthBoxesData[battler].introEndDelay = 3;
|
||||
gBattlerControllerFuncs[battler] = Intro_DelayAndEnd;
|
||||
@ -1282,12 +1282,12 @@ static void Intro_TryShinyAnimShowHealthbox(u32 battler)
|
||||
// Start shiny animation if applicable for 1st Pokémon
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[battler].triedShinyMonAnim
|
||||
&& !gBattleSpritesDataPtr->healthBoxesData[battler].ballAnimActive)
|
||||
TryShinyAnimation(battler, &gPlayerParty[gBattlerPartyIndexes[battler]]);
|
||||
TryShinyAnimation(battler, GetPartyBattlerData(battler));
|
||||
|
||||
// Start shiny animation if applicable for 2nd Pokémon
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(battler)].triedShinyMonAnim
|
||||
&& !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(battler)].ballAnimActive)
|
||||
TryShinyAnimation(BATTLE_PARTNER(battler), &gPlayerParty[gBattlerPartyIndexes[BATTLE_PARTNER(battler)]]);
|
||||
TryShinyAnimation(BATTLE_PARTNER(battler), GetPartyBattlerData(BATTLE_PARTNER(battler)));
|
||||
|
||||
// Show healthbox after ball anim
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[battler].ballAnimActive
|
||||
@ -1297,11 +1297,11 @@ static void Intro_TryShinyAnimShowHealthbox(u32 battler)
|
||||
{
|
||||
if (TwoPlayerIntroMons(battler) && !(gBattleTypeFlags & BATTLE_TYPE_MULTI))
|
||||
{
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[BATTLE_PARTNER(battler)], &gPlayerParty[gBattlerPartyIndexes[BATTLE_PARTNER(battler)]], HEALTHBOX_ALL);
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[BATTLE_PARTNER(battler)], GetPartyBattlerData(BATTLE_PARTNER(battler)), HEALTHBOX_ALL);
|
||||
StartHealthboxSlideIn(BATTLE_PARTNER(battler));
|
||||
SetHealthboxSpriteVisible(gHealthboxSpriteIds[BATTLE_PARTNER(battler)]);
|
||||
}
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[battler], &gPlayerParty[gBattlerPartyIndexes[battler]], HEALTHBOX_ALL);
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[battler], GetPartyBattlerData(battler), HEALTHBOX_ALL);
|
||||
StartHealthboxSlideIn(battler);
|
||||
SetHealthboxSpriteVisible(gHealthboxSpriteIds[battler]);
|
||||
}
|
||||
@ -1388,7 +1388,7 @@ static void SwitchIn_HandleSoundAndEnd(u32 battler)
|
||||
&& !IsCryPlayingOrClearCrySongs())
|
||||
{
|
||||
m4aMPlayVolumeControl(&gMPlayInfo_BGM, TRACKS_ALL, 0x100);
|
||||
HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[battler]], battler);
|
||||
HandleLowHpMusicChange(GetPartyBattlerData(battler), battler);
|
||||
PlayerBufferExecCompleted(battler);
|
||||
}
|
||||
}
|
||||
@ -1398,14 +1398,14 @@ static void SwitchIn_TryShinyAnimShowHealthbox(u32 battler)
|
||||
// Start shiny animation if applicable
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[battler].triedShinyMonAnim
|
||||
&& !gBattleSpritesDataPtr->healthBoxesData[battler].ballAnimActive)
|
||||
TryShinyAnimation(battler, &gPlayerParty[gBattlerPartyIndexes[battler]]);
|
||||
TryShinyAnimation(battler, GetPartyBattlerData(battler));
|
||||
|
||||
// Wait for ball anim, then show healthbox
|
||||
if (gSprites[gBattleControllerData[battler]].callback == SpriteCallbackDummy
|
||||
&& !gBattleSpritesDataPtr->healthBoxesData[battler].ballAnimActive)
|
||||
{
|
||||
DestroySprite(&gSprites[gBattleControllerData[battler]]);
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[battler], &gPlayerParty[gBattlerPartyIndexes[battler]], HEALTHBOX_ALL);
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[battler], GetPartyBattlerData(battler), HEALTHBOX_ALL);
|
||||
StartHealthboxSlideIn(battler);
|
||||
SetHealthboxSpriteVisible(gHealthboxSpriteIds[battler]);
|
||||
gBattlerControllerFuncs[battler] = SwitchIn_CleanShinyAnimShowSubstitute;
|
||||
@ -1768,7 +1768,7 @@ static void MoveSelectionDisplayMoveType(u32 battler)
|
||||
}
|
||||
else if (P_SHOW_DYNAMIC_TYPES) // Non-vanilla changes to battle UI showing dynamic types
|
||||
{
|
||||
struct Pokemon *mon = &gPlayerParty[gBattlerPartyIndexes[battler]];
|
||||
struct Pokemon *mon = GetPartyBattlerData(battler);
|
||||
type = CheckDynamicMoveType(mon, move, battler);
|
||||
}
|
||||
end = StringCopy(txtPtr, gTypesInfo[type].name);
|
||||
@ -1892,7 +1892,7 @@ static void PrintLinkStandbyMsg(void)
|
||||
|
||||
static void PlayerHandleLoadMonSprite(u32 battler)
|
||||
{
|
||||
BattleLoadMonSpriteGfx(&gPlayerParty[gBattlerPartyIndexes[battler]], battler);
|
||||
BattleLoadMonSpriteGfx(GetPartyBattlerData(battler), battler);
|
||||
gSprites[gBattlerSpriteIds[battler]].oam.paletteNum = battler;
|
||||
gBattlerControllerFuncs[battler] = CompleteOnBattlerSpritePosX_0;
|
||||
}
|
||||
@ -2276,9 +2276,9 @@ void PlayerHandleExpUpdate(u32 battler)
|
||||
|
||||
static void PlayerHandleStatusXor(u32 battler)
|
||||
{
|
||||
u32 val = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battler]], MON_DATA_STATUS) ^ gBattleResources->bufferA[battler][1];
|
||||
u32 val = GetMonData(GetPartyBattlerData(battler), MON_DATA_STATUS) ^ gBattleResources->bufferA[battler][1];
|
||||
|
||||
SetMonData(&gPlayerParty[gBattlerPartyIndexes[battler]], MON_DATA_STATUS, &val);
|
||||
SetMonData(GetPartyBattlerData(battler), MON_DATA_STATUS, &val);
|
||||
PlayerBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
@ -2449,7 +2449,7 @@ static bool32 ShouldShowTypeEffectiveness(u32 targetId)
|
||||
static u32 CheckTypeEffectiveness(u32 targetId, u32 battler)
|
||||
{
|
||||
struct ChooseMoveStruct *moveInfo = (struct ChooseMoveStruct *)(&gBattleResources->bufferA[battler][4]);
|
||||
struct Pokemon *mon = &gPlayerParty[gBattlerPartyIndexes[battler]];
|
||||
struct Pokemon *mon = GetPartyBattlerData(battler);
|
||||
u32 move = moveInfo->moves[gMoveSelectionCursor[battler]];
|
||||
u32 moveType = CheckDynamicMoveType(mon, move, battler);
|
||||
uq4_12_t modifier = CalcTypeEffectivenessMultiplier(move, moveType, battler, targetId, GetBattlerAbility(targetId), FALSE);
|
||||
|
||||
@ -173,18 +173,18 @@ void Controller_PlayerPartnerShowIntroHealthbox(u32 battler)
|
||||
&& ++gBattleSpritesDataPtr->healthBoxesData[battler].introEndDelay != 1)
|
||||
{
|
||||
gBattleSpritesDataPtr->healthBoxesData[battler].introEndDelay = 0;
|
||||
TryShinyAnimation(battler, &gPlayerParty[gBattlerPartyIndexes[battler]]);
|
||||
TryShinyAnimation(battler, GetPartyBattlerData(battler));
|
||||
|
||||
if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI))
|
||||
{
|
||||
DestroySprite(&gSprites[gBattleControllerData[BATTLE_PARTNER(battler)]]);
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[BATTLE_PARTNER(battler)], &gPlayerParty[gBattlerPartyIndexes[BATTLE_PARTNER(battler)]], HEALTHBOX_ALL);
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[BATTLE_PARTNER(battler)], GetPartyBattlerData(BATTLE_PARTNER(battler)), HEALTHBOX_ALL);
|
||||
StartHealthboxSlideIn(BATTLE_PARTNER(battler));
|
||||
SetHealthboxSpriteVisible(gHealthboxSpriteIds[BATTLE_PARTNER(battler)]);
|
||||
}
|
||||
|
||||
DestroySprite(&gSprites[gBattleControllerData[battler]]);
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[battler], &gPlayerParty[gBattlerPartyIndexes[battler]], HEALTHBOX_ALL);
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[battler], GetPartyBattlerData(battler), HEALTHBOX_ALL);
|
||||
StartHealthboxSlideIn(battler);
|
||||
SetHealthboxSpriteVisible(gHealthboxSpriteIds[battler]);
|
||||
|
||||
@ -232,9 +232,9 @@ static void SwitchIn_ShowHealthbox(u32 battler)
|
||||
FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS);
|
||||
|
||||
CreateTask(Task_PlayerController_RestoreBgmAfterCry, 10);
|
||||
HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[battler]], battler);
|
||||
HandleLowHpMusicChange(GetPartyBattlerData(battler), battler);
|
||||
StartSpriteAnim(&gSprites[gBattlerSpriteIds[battler]], 0);
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[battler], &gPlayerParty[gBattlerPartyIndexes[battler]], HEALTHBOX_ALL);
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[battler], GetPartyBattlerData(battler), HEALTHBOX_ALL);
|
||||
StartHealthboxSlideIn(battler);
|
||||
SetHealthboxSpriteVisible(gHealthboxSpriteIds[battler]);
|
||||
|
||||
@ -247,7 +247,7 @@ static void SwitchIn_TryShinyAnim(u32 battler)
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[battler].triedShinyMonAnim
|
||||
&& !gBattleSpritesDataPtr->healthBoxesData[battler].ballAnimActive)
|
||||
{
|
||||
TryShinyAnimation(battler, &gPlayerParty[gBattlerPartyIndexes[battler]]);
|
||||
TryShinyAnimation(battler, GetPartyBattlerData(battler));
|
||||
}
|
||||
|
||||
if (gSprites[gBattleControllerData[battler]].callback == SpriteCallbackDummy
|
||||
|
||||
@ -205,7 +205,7 @@ static void TrySetBattlerShadowSpriteCallback(u32 battler)
|
||||
|| P_GBA_STYLE_SPECIES_GFX == TRUE
|
||||
|| gSprites[gBattleSpritesDataPtr->healthBoxesData[battler].shadowSpriteIdSecondary].callback == SpriteCallbackDummy)
|
||||
{
|
||||
SetBattlerShadowSpriteCallback(battler, GetMonData(&gEnemyParty[gBattlerPartyIndexes[battler]], MON_DATA_SPECIES));
|
||||
SetBattlerShadowSpriteCallback(battler, GetMonData(GetPartyBattlerData(battler), MON_DATA_SPECIES));
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -217,11 +217,11 @@ static void Intro_TryShinyAnimShowHealthbox(u32 battler)
|
||||
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[battler].triedShinyMonAnim
|
||||
&& !gBattleSpritesDataPtr->healthBoxesData[battler].ballAnimActive)
|
||||
TryShinyAnimation(battler, &gEnemyParty[gBattlerPartyIndexes[battler]]);
|
||||
TryShinyAnimation(battler, GetPartyBattlerData(battler));
|
||||
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(battler)].triedShinyMonAnim
|
||||
&& !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(battler)].ballAnimActive)
|
||||
TryShinyAnimation(BATTLE_PARTNER(battler), &gEnemyParty[gBattlerPartyIndexes[BATTLE_PARTNER(battler)]]);
|
||||
TryShinyAnimation(BATTLE_PARTNER(battler), GetPartyBattlerData(BATTLE_PARTNER(battler)));
|
||||
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[battler].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(battler)].ballAnimActive)
|
||||
{
|
||||
@ -229,11 +229,11 @@ static void Intro_TryShinyAnimShowHealthbox(u32 battler)
|
||||
{
|
||||
if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI))
|
||||
{
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[BATTLE_PARTNER(battler)], &gEnemyParty[gBattlerPartyIndexes[BATTLE_PARTNER(battler)]], HEALTHBOX_ALL);
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[BATTLE_PARTNER(battler)], GetPartyBattlerData(BATTLE_PARTNER(battler)), HEALTHBOX_ALL);
|
||||
StartHealthboxSlideIn(BATTLE_PARTNER(battler));
|
||||
SetHealthboxSpriteVisible(gHealthboxSpriteIds[BATTLE_PARTNER(battler)]);
|
||||
}
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[battler], &gEnemyParty[gBattlerPartyIndexes[battler]], HEALTHBOX_ALL);
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[battler], GetPartyBattlerData(battler), HEALTHBOX_ALL);
|
||||
StartHealthboxSlideIn(battler);
|
||||
SetHealthboxSpriteVisible(gHealthboxSpriteIds[battler]);
|
||||
}
|
||||
@ -307,7 +307,7 @@ static void TryShinyAnimAfterMonAnim(u32 battler)
|
||||
{
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[battler].triedShinyMonAnim)
|
||||
{
|
||||
TryShinyAnimation(battler, &gEnemyParty[gBattlerPartyIndexes[battler]]);
|
||||
TryShinyAnimation(battler, GetPartyBattlerData(battler));
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -361,7 +361,7 @@ static void SwitchIn_ShowHealthbox(u32 battler)
|
||||
|
||||
StartSpriteAnim(&gSprites[gBattlerSpriteIds[battler]], 0);
|
||||
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[battler], &gEnemyParty[gBattlerPartyIndexes[battler]], HEALTHBOX_ALL);
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[battler], GetPartyBattlerData(battler), HEALTHBOX_ALL);
|
||||
StartHealthboxSlideIn(battler);
|
||||
SetHealthboxSpriteVisible(gHealthboxSpriteIds[battler]);
|
||||
CopyBattleSpriteInvisibility(battler);
|
||||
@ -373,13 +373,13 @@ static void SwitchIn_TryShinyAnim(u32 battler)
|
||||
{
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[battler].ballAnimActive
|
||||
&& !gBattleSpritesDataPtr->healthBoxesData[battler].triedShinyMonAnim)
|
||||
TryShinyAnimation(battler, &gEnemyParty[gBattlerPartyIndexes[battler]]);
|
||||
TryShinyAnimation(battler, GetPartyBattlerData(battler));
|
||||
|
||||
if (gSprites[gBattleControllerData[battler]].callback == SpriteCallbackDummy
|
||||
&& !gBattleSpritesDataPtr->healthBoxesData[battler].ballAnimActive)
|
||||
{
|
||||
DestroySprite(&gSprites[gBattleControllerData[battler]]);
|
||||
SetBattlerShadowSpriteCallback(battler, GetMonData(&gEnemyParty[gBattlerPartyIndexes[battler]], MON_DATA_SPECIES));
|
||||
SetBattlerShadowSpriteCallback(battler, GetMonData(GetPartyBattlerData(battler), MON_DATA_SPECIES));
|
||||
gBattlerControllerFuncs[battler] = SwitchIn_ShowHealthbox;
|
||||
}
|
||||
}
|
||||
@ -501,7 +501,7 @@ static void RecordedOpponentHandleStatusIconUpdate(u32 battler)
|
||||
{
|
||||
DoStatusIconUpdate(battler);
|
||||
if (gTestRunnerEnabled)
|
||||
TestRunner_Battle_RecordStatus1(battler, GetMonData(&gEnemyParty[gBattlerPartyIndexes[battler]], MON_DATA_STATUS));
|
||||
TestRunner_Battle_RecordStatus1(battler, GetMonData(GetPartyBattlerData(battler), MON_DATA_STATUS));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -167,9 +167,9 @@ static void Intro_WaitForShinyAnimAndHealthbox(u32 battler)
|
||||
FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS);
|
||||
FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS);
|
||||
|
||||
HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[battler]], battler);
|
||||
HandleLowHpMusicChange(GetPartyBattlerData(battler), battler);
|
||||
if (IsDoubleBattle())
|
||||
HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[BATTLE_PARTNER(battler)]], BATTLE_PARTNER(battler));
|
||||
HandleLowHpMusicChange(GetPartyBattlerData(BATTLE_PARTNER(battler)), BATTLE_PARTNER(battler));
|
||||
|
||||
gBattleSpritesDataPtr->healthBoxesData[battler].introEndDelay = 3;
|
||||
gBattlerControllerFuncs[battler] = Intro_DelayAndEnd;
|
||||
@ -210,11 +210,11 @@ static void Intro_TryShinyAnimShowHealthbox(u32 battler)
|
||||
{
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[battler].triedShinyMonAnim
|
||||
&& !gBattleSpritesDataPtr->healthBoxesData[battler].ballAnimActive)
|
||||
TryShinyAnimation(battler, &gPlayerParty[gBattlerPartyIndexes[battler]]);
|
||||
TryShinyAnimation(battler, GetPartyBattlerData(battler));
|
||||
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(battler)].triedShinyMonAnim
|
||||
&& !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(battler)].ballAnimActive)
|
||||
TryShinyAnimation(BATTLE_PARTNER(battler), &gPlayerParty[gBattlerPartyIndexes[BATTLE_PARTNER(battler)]]);
|
||||
TryShinyAnimation(BATTLE_PARTNER(battler), GetPartyBattlerData(BATTLE_PARTNER(battler)));
|
||||
}
|
||||
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[battler].ballAnimActive
|
||||
@ -224,11 +224,11 @@ static void Intro_TryShinyAnimShowHealthbox(u32 battler)
|
||||
{
|
||||
if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI))
|
||||
{
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[BATTLE_PARTNER(battler)], &gPlayerParty[gBattlerPartyIndexes[BATTLE_PARTNER(battler)]], HEALTHBOX_ALL);
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[BATTLE_PARTNER(battler)], GetPartyBattlerData(BATTLE_PARTNER(battler)), HEALTHBOX_ALL);
|
||||
StartHealthboxSlideIn(BATTLE_PARTNER(battler));
|
||||
SetHealthboxSpriteVisible(gHealthboxSpriteIds[BATTLE_PARTNER(battler)]);
|
||||
}
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[battler], &gPlayerParty[gBattlerPartyIndexes[battler]], HEALTHBOX_ALL);
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[battler], GetPartyBattlerData(battler), HEALTHBOX_ALL);
|
||||
StartHealthboxSlideIn(battler);
|
||||
SetHealthboxSpriteVisible(gHealthboxSpriteIds[battler]);
|
||||
}
|
||||
@ -309,9 +309,9 @@ static void SwitchIn_ShowHealthbox(u32 battler)
|
||||
FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS);
|
||||
|
||||
CreateTask(Task_PlayerController_RestoreBgmAfterCry, 10);
|
||||
HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[battler]], battler);
|
||||
HandleLowHpMusicChange(GetPartyBattlerData(battler), battler);
|
||||
StartSpriteAnim(&gSprites[gBattlerSpriteIds[battler]], 0);
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[battler], &gPlayerParty[gBattlerPartyIndexes[battler]], HEALTHBOX_ALL);
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[battler], GetPartyBattlerData(battler), HEALTHBOX_ALL);
|
||||
StartHealthboxSlideIn(battler);
|
||||
SetHealthboxSpriteVisible(gHealthboxSpriteIds[battler]);
|
||||
|
||||
@ -324,7 +324,7 @@ static void SwitchIn_TryShinyAnim(u32 battler)
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[battler].triedShinyMonAnim
|
||||
&& !gBattleSpritesDataPtr->healthBoxesData[battler].ballAnimActive)
|
||||
{
|
||||
TryShinyAnimation(battler, &gPlayerParty[gBattlerPartyIndexes[battler]]);
|
||||
TryShinyAnimation(battler, GetPartyBattlerData(battler));
|
||||
}
|
||||
|
||||
if (gSprites[gBattleControllerData[battler]].callback == SpriteCallbackDummy
|
||||
@ -494,7 +494,7 @@ static void RecordedPlayerHandleStatusIconUpdate(u32 battler)
|
||||
{
|
||||
DoStatusIconUpdate(battler);
|
||||
if (gTestRunnerEnabled)
|
||||
TestRunner_Battle_RecordStatus1(battler, GetMonData(&gPlayerParty[gBattlerPartyIndexes[battler]], MON_DATA_STATUS));
|
||||
TestRunner_Battle_RecordStatus1(battler, GetMonData(GetPartyBattlerData(battler), MON_DATA_STATUS));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -307,7 +307,7 @@ static void SafariHandleChooseItem(u32 battler)
|
||||
|
||||
static void SafariHandleStatusIconUpdate(u32 battler)
|
||||
{
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[battler], &gPlayerParty[gBattlerPartyIndexes[battler]], HEALTHBOX_SAFARI_BALLS_TEXT);
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[battler], GetPartyBattlerData(battler), HEALTHBOX_SAFARI_BALLS_TEXT);
|
||||
SafariBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
@ -315,7 +315,7 @@ static void SafariHandleStatusIconUpdate(u32 battler)
|
||||
// Player is not a pokemon, so it can't really faint in the Safari anyway.
|
||||
static void SafariHandleFaintingCry(u32 battler)
|
||||
{
|
||||
u16 species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battler]], MON_DATA_SPECIES);
|
||||
u16 species = GetMonData(GetPartyBattlerData(battler), MON_DATA_SPECIES);
|
||||
|
||||
PlayCry_Normal(species, 25);
|
||||
SafariBufferExecCompleted(battler);
|
||||
@ -324,7 +324,7 @@ static void SafariHandleFaintingCry(u32 battler)
|
||||
|
||||
static void SafariHandleIntroTrainerBallThrow(u32 battler)
|
||||
{
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[battler], &gPlayerParty[gBattlerPartyIndexes[battler]], HEALTHBOX_SAFARI_ALL_TEXT);
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[battler], GetPartyBattlerData(battler), HEALTHBOX_SAFARI_ALL_TEXT);
|
||||
StartHealthboxSlideIn(battler);
|
||||
SetHealthboxSpriteVisible(gHealthboxSpriteIds[battler]);
|
||||
gBattlerControllerFuncs[battler] = Controller_WaitForHealthbox;
|
||||
|
||||
@ -218,11 +218,11 @@ static void Intro_TryShinyAnimShowHealthbox(u32 battler)
|
||||
{
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[battler].triedShinyMonAnim
|
||||
&& !gBattleSpritesDataPtr->healthBoxesData[battler].ballAnimActive)
|
||||
TryShinyAnimation(battler, &gPlayerParty[gBattlerPartyIndexes[battler]]);
|
||||
TryShinyAnimation(battler, GetPartyBattlerData(battler));
|
||||
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(battler)].triedShinyMonAnim
|
||||
&& !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(battler)].ballAnimActive)
|
||||
TryShinyAnimation(BATTLE_PARTNER(battler), &gPlayerParty[gBattlerPartyIndexes[BATTLE_PARTNER(battler)]]);
|
||||
TryShinyAnimation(BATTLE_PARTNER(battler), GetPartyBattlerData(BATTLE_PARTNER(battler)));
|
||||
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[battler].ballAnimActive
|
||||
&& !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(battler)].ballAnimActive
|
||||
@ -232,12 +232,12 @@ static void Intro_TryShinyAnimShowHealthbox(u32 battler)
|
||||
if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI))
|
||||
{
|
||||
DestroySprite(&gSprites[gBattleControllerData[BATTLE_PARTNER(battler)]]);
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[BATTLE_PARTNER(battler)], &gPlayerParty[gBattlerPartyIndexes[BATTLE_PARTNER(battler)]], HEALTHBOX_ALL);
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[BATTLE_PARTNER(battler)], GetPartyBattlerData(BATTLE_PARTNER(battler)), HEALTHBOX_ALL);
|
||||
StartHealthboxSlideIn(BATTLE_PARTNER(battler));
|
||||
SetHealthboxSpriteVisible(gHealthboxSpriteIds[BATTLE_PARTNER(battler)]);
|
||||
}
|
||||
DestroySprite(&gSprites[gBattleControllerData[battler]]);
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[battler], &gPlayerParty[gBattlerPartyIndexes[battler]], HEALTHBOX_ALL);
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[battler], GetPartyBattlerData(battler), HEALTHBOX_ALL);
|
||||
StartHealthboxSlideIn(battler);
|
||||
SetHealthboxSpriteVisible(gHealthboxSpriteIds[battler]);
|
||||
|
||||
@ -266,7 +266,7 @@ static void Intro_WaitForShinyAnimAndHealthbox(u32 battler)
|
||||
FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS);
|
||||
|
||||
CreateTask(Task_PlayerController_RestoreBgmAfterCry, 10);
|
||||
HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[battler]], battler);
|
||||
HandleLowHpMusicChange(GetPartyBattlerData(battler), battler);
|
||||
|
||||
WallyBufferExecCompleted(battler);
|
||||
}
|
||||
@ -408,7 +408,7 @@ static void WallyHandlePlaySE(u32 battler)
|
||||
// Wally's Pokémon during the tutorial is never intended to faint, so that's probably why it's different here.
|
||||
static void WallyHandleFaintingCry(u32 battler)
|
||||
{
|
||||
u16 species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battler]], MON_DATA_SPECIES);
|
||||
u16 species = GetMonData(GetPartyBattlerData(battler), MON_DATA_SPECIES);
|
||||
|
||||
PlayCry_Normal(species, 25);
|
||||
WallyBufferExecCompleted(battler);
|
||||
|
||||
@ -2079,7 +2079,7 @@ static bool8 ShouldDoSlideInAnim(u32 battler)
|
||||
)
|
||||
return FALSE;
|
||||
|
||||
if (GetFirstLiveMon() != &gPlayerParty[gBattlerPartyIndexes[battler]])
|
||||
if (GetFirstLiveMon() != GetPartyBattlerData(battler))
|
||||
return FALSE;
|
||||
|
||||
return TRUE;
|
||||
@ -2089,17 +2089,17 @@ void StartSendOutAnim(u32 battler, bool32 dontClearTransform, bool32 dontClearSu
|
||||
{
|
||||
u16 species;
|
||||
u32 side = GetBattlerSide(battler);
|
||||
struct Pokemon *party = GetBattlerParty(battler);
|
||||
struct Pokemon *mon = GetPartyBattlerData(battler);
|
||||
|
||||
ClearTemporarySpeciesSpriteData(battler, dontClearTransform, dontClearSubstituteBit);
|
||||
gBattlerPartyIndexes[battler] = gBattleResources->bufferA[battler][1];
|
||||
species = GetIllusionMonSpecies(battler);
|
||||
if (species == SPECIES_NONE)
|
||||
species = GetMonData(&party[gBattlerPartyIndexes[battler]], MON_DATA_SPECIES);
|
||||
species = GetMonData(mon, MON_DATA_SPECIES);
|
||||
gBattleControllerData[battler] = CreateInvisibleSpriteWithCallback(SpriteCB_WaitForBattlerBallReleaseAnim);
|
||||
// Load sprite for opponent only, player sprite is expected to be already loaded.
|
||||
if (side == B_SIDE_OPPONENT)
|
||||
BattleLoadMonSpriteGfx(&party[gBattlerPartyIndexes[battler]], battler);
|
||||
BattleLoadMonSpriteGfx(mon, battler);
|
||||
SetMultiuseSpriteTemplateToPokemon(species, GetBattlerPosition(battler));
|
||||
|
||||
gBattlerSpriteIds[battler] = CreateSprite(&gMultiuseSpriteTemplate,
|
||||
@ -2163,7 +2163,7 @@ static void Controller_FaintPlayerMon(u32 battler)
|
||||
u32 spriteId = gBattlerSpriteIds[battler];
|
||||
if (gSprites[spriteId].y + gSprites[spriteId].y2 > DISPLAY_HEIGHT)
|
||||
{
|
||||
BattleGfxSfxDummy2(GetMonData(&gPlayerParty[gBattlerPartyIndexes[battler]], MON_DATA_SPECIES));
|
||||
BattleGfxSfxDummy2(GetMonData(GetPartyBattlerData(battler), MON_DATA_SPECIES));
|
||||
FreeOamMatrix(gSprites[spriteId].oam.matrixNum);
|
||||
DestroySprite(&gSprites[spriteId]);
|
||||
SetHealthboxSpriteInvisible(gHealthboxSpriteIds[battler]);
|
||||
@ -2254,7 +2254,7 @@ void Controller_WaitForHealthBar(u32 battler)
|
||||
else
|
||||
{
|
||||
if (GetBattlerSide(battler) == B_SIDE_PLAYER)
|
||||
HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[battler]], battler);
|
||||
HandleLowHpMusicChange(GetPartyBattlerData(battler), battler);
|
||||
BattleControllerComplete(battler);
|
||||
}
|
||||
}
|
||||
@ -2362,9 +2362,9 @@ void BtlController_HandleGetMonData(u32 battler)
|
||||
void BtlController_HandleGetRawMonData(u32 battler)
|
||||
{
|
||||
struct BattlePokemon battleMon;
|
||||
struct Pokemon *party = GetBattlerParty(battler);
|
||||
struct Pokemon *mon = GetPartyBattlerData(battler);
|
||||
|
||||
u8 *src = (u8 *)&party[gBattlerPartyIndexes[battler]] + gBattleResources->bufferA[battler][1];
|
||||
u8 *src = (u8 *)mon + gBattleResources->bufferA[battler][1];
|
||||
u8 *dst = (u8 *)&battleMon + gBattleResources->bufferA[battler][1];
|
||||
u8 i;
|
||||
|
||||
@ -2400,8 +2400,7 @@ void BtlController_HandleSetMonData(u32 battler)
|
||||
void BtlController_HandleSetRawMonData(u32 battler)
|
||||
{
|
||||
u32 i;
|
||||
struct Pokemon *party = GetBattlerParty(battler);
|
||||
u8 *dst = (u8 *)&party[gBattlerPartyIndexes[battler]] + gBattleResources->bufferA[battler][1];
|
||||
u8 *dst = (u8 *)GetPartyBattlerData(battler) + gBattleResources->bufferA[battler][1];
|
||||
|
||||
for (i = 0; i < gBattleResources->bufferA[battler][2]; i++)
|
||||
dst[i] = gBattleResources->bufferA[battler][3 + i];
|
||||
@ -2411,10 +2410,10 @@ void BtlController_HandleSetRawMonData(u32 battler)
|
||||
|
||||
void BtlController_HandleLoadMonSprite(u32 battler, void (*controllerCallback)(u32 battler))
|
||||
{
|
||||
struct Pokemon *party = GetBattlerParty(battler);
|
||||
u16 species = GetMonData(&party[gBattlerPartyIndexes[battler]], MON_DATA_SPECIES);
|
||||
struct Pokemon *mon = GetPartyBattlerData(battler);
|
||||
u16 species = GetMonData(mon, MON_DATA_SPECIES);
|
||||
|
||||
BattleLoadMonSpriteGfx(&party[gBattlerPartyIndexes[battler]], battler);
|
||||
BattleLoadMonSpriteGfx(mon, battler);
|
||||
SetMultiuseSpriteTemplateToPokemon(species, GetBattlerPosition(battler));
|
||||
|
||||
gBattlerSpriteIds[battler] = CreateSprite(&gMultiuseSpriteTemplate,
|
||||
@ -2439,7 +2438,7 @@ void BtlController_HandleSwitchInAnim(u32 battler, bool32 isPlayerSide, void (*c
|
||||
ClearTemporarySpeciesSpriteData(battler, gBattleResources->bufferA[battler][2], gBattleResources->bufferA[battler][3]);
|
||||
gBattlerPartyIndexes[battler] = gBattleResources->bufferA[battler][1];
|
||||
if (isPlayerSide)
|
||||
BattleLoadMonSpriteGfx(&gPlayerParty[gBattlerPartyIndexes[battler]], battler);
|
||||
BattleLoadMonSpriteGfx(GetPartyBattlerData(battler), battler);
|
||||
StartSendOutAnim(battler, gBattleResources->bufferA[battler][2], gBattleResources->bufferA[battler][3], FALSE);
|
||||
gBattlerControllerFuncs[battler] = controllerCallback;
|
||||
}
|
||||
@ -2594,7 +2593,7 @@ void BtlController_HandleFaintAnimation(u32 battler)
|
||||
gBattleSpritesDataPtr->healthBoxesData[battler].animationState = 0;
|
||||
if (GetBattlerSide(battler) == B_SIDE_PLAYER)
|
||||
{
|
||||
HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[battler]], battler);
|
||||
HandleLowHpMusicChange(GetPartyBattlerData(battler), battler);
|
||||
gSprites[gBattlerSpriteIds[battler]].sSpeedX = 0;
|
||||
gSprites[gBattlerSpriteIds[battler]].sSpeedY = 5;
|
||||
PlaySE12WithPanning(SE_FAINT, SOUND_PAN_ATTACKER);
|
||||
@ -2691,12 +2690,12 @@ void BtlController_HandleHealthBarUpdate(u32 battler, bool32 updateHpText)
|
||||
{
|
||||
s32 maxHP, curHP;
|
||||
s16 hpVal;
|
||||
struct Pokemon *party = GetBattlerParty(battler);
|
||||
struct Pokemon *mon = GetPartyBattlerData(battler);
|
||||
|
||||
LoadBattleBarGfx(0);
|
||||
hpVal = gBattleResources->bufferA[battler][2] | (gBattleResources->bufferA[battler][3] << 8);
|
||||
maxHP = GetMonData(&party[gBattlerPartyIndexes[battler]], MON_DATA_MAX_HP);
|
||||
curHP = GetMonData(&party[gBattlerPartyIndexes[battler]], MON_DATA_HP);
|
||||
maxHP = GetMonData(mon, MON_DATA_MAX_HP);
|
||||
curHP = GetMonData(mon, MON_DATA_HP);
|
||||
|
||||
if (hpVal != INSTANT_HP_BAR_DROP)
|
||||
{
|
||||
@ -2716,9 +2715,9 @@ void BtlController_HandleHealthBarUpdate(u32 battler, bool32 updateHpText)
|
||||
|
||||
void DoStatusIconUpdate(u32 battler)
|
||||
{
|
||||
struct Pokemon *party = GetBattlerParty(battler);
|
||||
struct Pokemon *mon = GetPartyBattlerData(battler);
|
||||
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[battler], &party[gBattlerPartyIndexes[battler]], HEALTHBOX_STATUS_ICON);
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[battler], mon, HEALTHBOX_STATUS_ICON);
|
||||
gBattleSpritesDataPtr->healthBoxesData[battler].statusAnimActive = 0;
|
||||
gBattlerControllerFuncs[battler] = Controller_WaitForStatusAnimation;
|
||||
}
|
||||
@ -2818,14 +2817,14 @@ void BtlController_HandleSpriteInvisibility(u32 battler)
|
||||
|
||||
bool32 TwoPlayerIntroMons(u32 battler) // Double battle with both player pokemon active.
|
||||
{
|
||||
return (IsDoubleBattle() && IsValidForBattle(&gPlayerParty[gBattlerPartyIndexes[battler ^ BIT_FLANK]]));
|
||||
return (IsDoubleBattle() && IsValidForBattle(GetPartyBattlerData(battler ^ BIT_FLANK)));
|
||||
}
|
||||
|
||||
bool32 TwoOpponentIntroMons(u32 battler) // Double battle with both opponent pokemon active.
|
||||
{
|
||||
return (IsDoubleBattle()
|
||||
&& IsValidForBattle(&gEnemyParty[gBattlerPartyIndexes[battler]])
|
||||
&& IsValidForBattle(&gEnemyParty[gBattlerPartyIndexes[BATTLE_PARTNER(battler)]]));
|
||||
&& IsValidForBattle(GetPartyBattlerData(battler))
|
||||
&& IsValidForBattle(GetPartyBattlerData(BATTLE_PARTNER(battler))));
|
||||
}
|
||||
|
||||
// Task data for Task_StartSendOutAnim
|
||||
@ -2925,7 +2924,7 @@ static void Task_StartSendOutAnim(u8 taskId)
|
||||
|
||||
battlerPartner = battler ^ BIT_FLANK;
|
||||
gBattleResources->bufferA[battlerPartner][1] = gBattlerPartyIndexes[battlerPartner];
|
||||
BattleLoadMonSpriteGfx(&gPlayerParty[gBattlerPartyIndexes[battlerPartner]], battlerPartner);
|
||||
BattleLoadMonSpriteGfx(GetPartyBattlerData(battlerPartner), battlerPartner);
|
||||
StartSendOutAnim(battlerPartner, FALSE, FALSE, ShouldDoSlideInAnim(battler));
|
||||
}
|
||||
else
|
||||
@ -2954,7 +2953,7 @@ static void SpriteCB_FreePlayerSpriteLoadMonSprite(struct Sprite *sprite)
|
||||
DestroySprite(sprite);
|
||||
|
||||
// Load mon sprite
|
||||
BattleLoadMonSpriteGfx(&gPlayerParty[gBattlerPartyIndexes[battler]], battler);
|
||||
BattleLoadMonSpriteGfx(GetPartyBattlerData(battler), battler);
|
||||
StartSpriteAnim(&gSprites[gBattlerSpriteIds[battler]], 0);
|
||||
}
|
||||
|
||||
|
||||
@ -1046,8 +1046,7 @@ static void Task_ShowAiPoints(u8 taskId)
|
||||
data->spriteIds.aiIconSpriteIds[i] = 0xFF;
|
||||
}
|
||||
}
|
||||
|
||||
mon = &GetBattlerParty(data->aiBattlerId)[gBattlerPartyIndexes[data->aiBattlerId]];
|
||||
mon = GetPartyBattlerData(data->aiBattlerId);
|
||||
|
||||
data->aiMonSpriteId = CreateMonPicSprite(gBattleMons[data->aiBattlerId].species,
|
||||
GetMonData(mon, MON_DATA_IS_SHINY),
|
||||
@ -1228,7 +1227,7 @@ static void Task_ShowAiKnowledge(u8 taskId)
|
||||
}
|
||||
}
|
||||
|
||||
mon = &GetBattlerParty(data->aiBattlerId)[gBattlerPartyIndexes[data->aiBattlerId]];
|
||||
mon = GetPartyBattlerData(data->aiBattlerId);
|
||||
|
||||
data->aiMonSpriteId = CreateMonPicSprite(gBattleMons[data->aiBattlerId].species,
|
||||
GetMonData(mon, MON_DATA_IS_SHINY),
|
||||
|
||||
@ -867,11 +867,11 @@ bool8 BattleInitAllSprites(u8 *state1, u8 *battler)
|
||||
if (GetBattlerSide(*battler) == B_SIDE_PLAYER)
|
||||
{
|
||||
if (!(gBattleTypeFlags & BATTLE_TYPE_SAFARI))
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[*battler], &gPlayerParty[gBattlerPartyIndexes[*battler]], HEALTHBOX_ALL);
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[*battler], GetPartyBattlerData(*battler), HEALTHBOX_ALL);
|
||||
}
|
||||
else
|
||||
{
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[*battler], &gEnemyParty[gBattlerPartyIndexes[*battler]], HEALTHBOX_ALL);
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[*battler], GetPartyBattlerData(*battler), HEALTHBOX_ALL);
|
||||
}
|
||||
SetHealthboxSpriteInvisible(gHealthboxSpriteIds[*battler]);
|
||||
(*battler)++;
|
||||
@ -1039,7 +1039,7 @@ void BattleLoadSubstituteOrMonSpriteGfx(u8 battler, bool8 loadMonSprite)
|
||||
else
|
||||
{
|
||||
if (!IsContest())
|
||||
BattleLoadMonSpriteGfx(&GetBattlerParty(battler)[gBattlerPartyIndexes[battler]], battler);
|
||||
BattleLoadMonSpriteGfx(GetPartyBattlerData(battler), battler);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -1180,8 +1180,8 @@ void SwapHpBarsWithHpText(void)
|
||||
&& GetBattlerSide(i) != B_SIDE_OPPONENT
|
||||
&& (WhichBattleCoords(i) || GetBattlerSide(i) != B_SIDE_PLAYER))
|
||||
{
|
||||
s32 currHp = GetMonData(&gPlayerParty[gBattlerPartyIndexes[i]], MON_DATA_HP);
|
||||
s32 maxHp = GetMonData(&gPlayerParty[gBattlerPartyIndexes[i]], MON_DATA_MAX_HP);
|
||||
s32 currHp = GetMonData(GetPartyBattlerData(i), MON_DATA_HP);
|
||||
s32 maxHp = GetMonData(GetPartyBattlerData(i), MON_DATA_MAX_HP);
|
||||
bool8 noBars;
|
||||
|
||||
gBattleSpritesDataPtr->battlerData[i].hpNumbersNoBars ^= 1;
|
||||
@ -1203,7 +1203,7 @@ void SwapHpBarsWithHpText(void)
|
||||
else // text to bars
|
||||
{
|
||||
UpdateStatusIconInHealthbox(gHealthboxSpriteIds[i]);
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[i], &gPlayerParty[gBattlerPartyIndexes[i]], HEALTHBOX_HEALTH_BAR);
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[i], GetPartyBattlerData(i), HEALTHBOX_HEALTH_BAR);
|
||||
CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_FRAME_END_BAR), (void *)(OBJ_VRAM0 + 0x680 + gSprites[gHealthboxSpriteIds[i]].oam.tileNum * TILE_SIZE_4BPP), 32);
|
||||
}
|
||||
}
|
||||
@ -1214,7 +1214,7 @@ void SwapHpBarsWithHpText(void)
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_SAFARI)
|
||||
{
|
||||
// Most likely a debug function.
|
||||
PrintSafariMonInfo(gHealthboxSpriteIds[i], &gEnemyParty[gBattlerPartyIndexes[i]]);
|
||||
PrintSafariMonInfo(gHealthboxSpriteIds[i], GetPartyBattlerData(i));
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -1227,9 +1227,9 @@ void SwapHpBarsWithHpText(void)
|
||||
else // text to bars
|
||||
{
|
||||
UpdateStatusIconInHealthbox(gHealthboxSpriteIds[i]);
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[i], &gEnemyParty[gBattlerPartyIndexes[i]], HEALTHBOX_HEALTH_BAR);
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[i], GetPartyBattlerData(i), HEALTHBOX_HEALTH_BAR);
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_SAFARI)
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[i], &gEnemyParty[gBattlerPartyIndexes[i]], HEALTHBOX_NICK);
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[i], GetPartyBattlerData(i), HEALTHBOX_NICK);
|
||||
}
|
||||
}
|
||||
gSprites[gHealthboxSpriteIds[i]].hMain_Data7 ^= 1;
|
||||
@ -1779,7 +1779,7 @@ static void TryAddPokeballIconToHealthbox(u8 healthboxSpriteId, bool8 noStatus)
|
||||
battlerId = gSprites[healthboxSpriteId].hMain_Battler;
|
||||
if (GetBattlerSide(battlerId) == B_SIDE_PLAYER)
|
||||
return;
|
||||
if (!GetSetPokedexFlag(SpeciesToNationalPokedexNum(GetMonData(&gEnemyParty[gBattlerPartyIndexes[battlerId]], MON_DATA_SPECIES)), FLAG_GET_CAUGHT))
|
||||
if (!GetSetPokedexFlag(SpeciesToNationalPokedexNum(GetMonData(GetPartyBattlerData(battlerId), MON_DATA_SPECIES)), FLAG_GET_CAUGHT))
|
||||
return;
|
||||
|
||||
healthBarSpriteId = gSprites[healthboxSpriteId].hMain_HealthBarSpriteId;
|
||||
@ -1803,7 +1803,7 @@ static void UpdateStatusIconInHealthbox(u8 healthboxSpriteId)
|
||||
healthBarSpriteId = gSprites[healthboxSpriteId].hMain_HealthBarSpriteId;
|
||||
if (GetBattlerSide(battlerId) == B_SIDE_PLAYER)
|
||||
{
|
||||
status = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerId]], MON_DATA_STATUS);
|
||||
status = GetMonData(GetPartyBattlerData(battlerId), MON_DATA_STATUS);
|
||||
if (!WhichBattleCoords(battlerId))
|
||||
tileNumAdder = 0x1A;
|
||||
else
|
||||
@ -1811,7 +1811,7 @@ static void UpdateStatusIconInHealthbox(u8 healthboxSpriteId)
|
||||
}
|
||||
else
|
||||
{
|
||||
status = GetMonData(&gEnemyParty[gBattlerPartyIndexes[battlerId]], MON_DATA_STATUS);
|
||||
status = GetMonData(GetPartyBattlerData(battlerId), MON_DATA_STATUS);
|
||||
tileNumAdder = 0x11;
|
||||
}
|
||||
|
||||
@ -2135,7 +2135,7 @@ static void MoveBattleBarGraphically(u8 battlerId, u8 whichBar)
|
||||
gBattleSpritesDataPtr->battleBars[battlerId].receivedValue,
|
||||
&gBattleSpritesDataPtr->battleBars[battlerId].currValue,
|
||||
array, B_EXPBAR_PIXELS / 8);
|
||||
level = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerId]], MON_DATA_LEVEL);
|
||||
level = GetMonData(GetPartyBattlerData(battlerId), MON_DATA_LEVEL);
|
||||
if (level >= MAX_LEVEL)
|
||||
{
|
||||
for (i = 0; i < 8; i++)
|
||||
|
||||
@ -2669,7 +2669,7 @@ void SpriteCallbackDummy_2(struct Sprite *sprite)
|
||||
void SpriteCB_FaintOpponentMon(struct Sprite *sprite)
|
||||
{
|
||||
u8 battler = sprite->sBattler;
|
||||
u32 personality = GetMonData(&gEnemyParty[gBattlerPartyIndexes[battler]], MON_DATA_PERSONALITY);
|
||||
u32 personality = GetMonData(GetPartyBattlerData(battler), MON_DATA_PERSONALITY);
|
||||
u16 species;
|
||||
u8 yOffset;
|
||||
|
||||
@ -3480,7 +3480,7 @@ static void DoBattleIntro(void)
|
||||
{
|
||||
BtlController_EmitLoadMonSprite(battler, BUFFER_A);
|
||||
MarkBattlerForControllerExec(battler);
|
||||
gBattleResults.lastOpponentSpecies = GetMonData(&gEnemyParty[gBattlerPartyIndexes[battler]], MON_DATA_SPECIES, NULL);
|
||||
gBattleResults.lastOpponentSpecies = GetMonData(GetPartyBattlerData(battler), MON_DATA_SPECIES, NULL);
|
||||
}
|
||||
break;
|
||||
case B_POSITION_PLAYER_RIGHT:
|
||||
@ -3503,7 +3503,7 @@ static void DoBattleIntro(void)
|
||||
{
|
||||
BtlController_EmitLoadMonSprite(battler, BUFFER_A);
|
||||
MarkBattlerForControllerExec(battler);
|
||||
gBattleResults.lastOpponentSpecies = GetMonData(&gEnemyParty[gBattlerPartyIndexes[battler]], MON_DATA_SPECIES, NULL);
|
||||
gBattleResults.lastOpponentSpecies = GetMonData(GetPartyBattlerData(battler), MON_DATA_SPECIES, NULL);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@ -3739,8 +3739,7 @@ static void TryDoEventsBeforeFirstTurn(void)
|
||||
for (i = 0; i < gBattlersCount; i++)
|
||||
{
|
||||
gBattleStruct->monToSwitchIntoId[i] = PARTY_SIZE; // Included here because switches can happen before during set ups (eg. eject pack)
|
||||
struct Pokemon *party = GetBattlerParty(i);
|
||||
struct Pokemon *mon = &party[gBattlerPartyIndexes[i]];
|
||||
struct Pokemon *mon = GetPartyBattlerData(i);
|
||||
if (!IsBattlerAlive(i) || gBattleMons[i].species == SPECIES_NONE || GetMonData(mon, MON_DATA_IS_EGG))
|
||||
gAbsentBattlerFlags |= 1u << i;
|
||||
}
|
||||
@ -5508,13 +5507,13 @@ static void HandleEndTurn_FinishBattle(void)
|
||||
{
|
||||
if (gBattleResults.playerMon1Species == SPECIES_NONE)
|
||||
{
|
||||
gBattleResults.playerMon1Species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battler]], MON_DATA_SPECIES, NULL);
|
||||
GetMonData(&gPlayerParty[gBattlerPartyIndexes[battler]], MON_DATA_NICKNAME, gBattleResults.playerMon1Name);
|
||||
gBattleResults.playerMon1Species = GetMonData(GetPartyBattlerData(battler), MON_DATA_SPECIES, NULL);
|
||||
GetMonData(GetPartyBattlerData(battler), MON_DATA_NICKNAME, gBattleResults.playerMon1Name);
|
||||
}
|
||||
else
|
||||
{
|
||||
gBattleResults.playerMon2Species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battler]], MON_DATA_SPECIES, NULL);
|
||||
GetMonData(&gPlayerParty[gBattlerPartyIndexes[battler]], MON_DATA_NICKNAME, gBattleResults.playerMon2Name);
|
||||
gBattleResults.playerMon2Species = GetMonData(GetPartyBattlerData(battler), MON_DATA_SPECIES, NULL);
|
||||
GetMonData(GetPartyBattlerData(battler), MON_DATA_NICKNAME, gBattleResults.playerMon2Name);
|
||||
}
|
||||
}
|
||||
else if (GetBattlerSide(battler) == B_SIDE_OPPONENT)
|
||||
@ -6028,7 +6027,7 @@ void SetTypeBeforeUsingMove(u32 move, u32 battler)
|
||||
gBattleStruct->ateBoost[battler] = FALSE;
|
||||
gSpecialStatuses[battler].gemBoost = FALSE;
|
||||
|
||||
moveType = GetDynamicMoveType(&GetBattlerParty(battler)[gBattlerPartyIndexes[battler]],
|
||||
moveType = GetDynamicMoveType(GetPartyBattlerData(battler),
|
||||
move,
|
||||
battler,
|
||||
&gBattleStruct->ateBoost[battler]);
|
||||
|
||||
@ -2121,7 +2121,7 @@ void BufferStringBattle(enum StringID stringID, u32 battler)
|
||||
{
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_LEGENDARY)
|
||||
stringPtr = sText_LegendaryPkmnAppeared;
|
||||
else if (IsDoubleBattle() && IsValidForBattle(&gEnemyParty[gBattlerPartyIndexes[GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT)]]))
|
||||
else if (IsDoubleBattle() && IsValidForBattle(GetPartyBattlerData(GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT))))
|
||||
stringPtr = sText_TwoWildPkmnAppeared;
|
||||
else if (gBattleTypeFlags & BATTLE_TYPE_WALLY_TUTORIAL)
|
||||
stringPtr = sText_WildPkmnAppearedPause;
|
||||
@ -2132,7 +2132,7 @@ void BufferStringBattle(enum StringID stringID, u32 battler)
|
||||
case STRINGID_INTROSENDOUT: // poke first send-out
|
||||
if (GetBattlerSide(battler) == B_SIDE_PLAYER)
|
||||
{
|
||||
if (IsDoubleBattle() && IsValidForBattle(&gPlayerParty[gBattlerPartyIndexes[BATTLE_PARTNER(battler)]]))
|
||||
if (IsDoubleBattle() && IsValidForBattle(GetPartyBattlerData(BATTLE_PARTNER(battler))))
|
||||
{
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER)
|
||||
stringPtr = sText_InGamePartnerSentOutZGoN;
|
||||
@ -2150,7 +2150,7 @@ void BufferStringBattle(enum StringID stringID, u32 battler)
|
||||
}
|
||||
else
|
||||
{
|
||||
if (IsDoubleBattle() && IsValidForBattle(&gEnemyParty[gBattlerPartyIndexes[BATTLE_PARTNER(battler)]]))
|
||||
if (IsDoubleBattle() && IsValidForBattle(GetPartyBattlerData(BATTLE_PARTNER(battler))))
|
||||
{
|
||||
if (BATTLE_TWO_VS_ONE_OPPONENT)
|
||||
stringPtr = sText_Trainer1SentOutTwoPkmn;
|
||||
@ -3180,7 +3180,7 @@ static void IllusionNickHack(u32 battler, u32 partyId, u8 *dst)
|
||||
if (GetMonAbility(mon) == ABILITY_ILLUSION)
|
||||
{
|
||||
if (IsBattlerAlive(BATTLE_PARTNER(battler)))
|
||||
partnerMon = &gEnemyParty[gBattlerPartyIndexes[BATTLE_PARTNER(battler)]];
|
||||
partnerMon = GetPartyBattlerData(BATTLE_PARTNER(battler));
|
||||
else
|
||||
partnerMon = mon;
|
||||
|
||||
|
||||
@ -3884,11 +3884,11 @@ void SetMoveEffect(bool32 primary, bool32 certain)
|
||||
case MOVE_EFFECT_SYRUP_BOMB:
|
||||
if (!(gStatuses4[gEffectBattler] & STATUS4_SYRUP_BOMB))
|
||||
{
|
||||
struct Pokemon *party = GetBattlerParty(gBattlerAttacker);
|
||||
struct Pokemon *mon = GetPartyBattlerData(gBattlerAttacker);
|
||||
|
||||
gStatuses4[gEffectBattler] |= STATUS4_SYRUP_BOMB;
|
||||
gDisableStructs[gEffectBattler].syrupBombTimer = 3;
|
||||
gDisableStructs[gEffectBattler].syrupBombIsShiny = IsMonShiny(&party[gBattlerPartyIndexes[gBattlerAttacker]]);
|
||||
gDisableStructs[gEffectBattler].syrupBombIsShiny = IsMonShiny(mon);
|
||||
gBattleStruct->stickySyrupdBy[gEffectBattler] = gBattlerAttacker;
|
||||
BattleScriptPush(gBattlescriptCurrInstr + 1);
|
||||
gBattlescriptCurrInstr = BattleScript_SyrupBombActivates;
|
||||
@ -4619,7 +4619,7 @@ static void Cmd_tryfaintmon(void)
|
||||
{
|
||||
if (gBattleResults.opponentFaintCounter < 255)
|
||||
gBattleResults.opponentFaintCounter++;
|
||||
gBattleResults.lastOpponentSpecies = GetMonData(&gEnemyParty[gBattlerPartyIndexes[battler]], MON_DATA_SPECIES, NULL);
|
||||
gBattleResults.lastOpponentSpecies = GetMonData(GetPartyBattlerData(battler), MON_DATA_SPECIES, NULL);
|
||||
gSideTimers[B_SIDE_OPPONENT].retaliateTimer = 2;
|
||||
}
|
||||
if ((gHitMarker & HITMARKER_DESTINYBOND) && IsBattlerAlive(gBattlerAttacker)
|
||||
@ -5136,7 +5136,7 @@ static void Cmd_getexp(void)
|
||||
{
|
||||
u16 temp, battler = 0xFF;
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_TRAINER && gBattlerPartyIndexes[expBattler] == *expMonId)
|
||||
HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[expBattler]], expBattler);
|
||||
HandleLowHpMusicChange(GetPartyBattlerData(expBattler), expBattler);
|
||||
|
||||
PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff1, expBattler, *expMonId);
|
||||
PREPARE_BYTE_NUMBER_BUFFER(gBattleTextBuff2, 3, GetMonData(&gPlayerParty[*expMonId], MON_DATA_LEVEL));
|
||||
@ -9586,7 +9586,7 @@ static void Cmd_useitemonopponent(void)
|
||||
CMD_ARGS();
|
||||
|
||||
gBattlerInMenuId = gBattlerAttacker;
|
||||
PokemonUseItemEffects(&gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker]], gLastUsedItem, gBattlerPartyIndexes[gBattlerAttacker], 0, TRUE);
|
||||
PokemonUseItemEffects(GetPartyBattlerData(gBattlerAttacker), gLastUsedItem, gBattlerPartyIndexes[gBattlerAttacker], 0, TRUE);
|
||||
gBattlescriptCurrInstr = cmd->nextInstr;
|
||||
}
|
||||
|
||||
@ -9938,8 +9938,7 @@ void BS_CourtChangeSwapSideStatuses(void)
|
||||
|
||||
static void HandleScriptMegaPrimalBurst(u32 caseId, u32 battler, u32 type)
|
||||
{
|
||||
struct Pokemon *party = GetBattlerParty(battler);
|
||||
struct Pokemon *mon = &party[gBattlerPartyIndexes[battler]];
|
||||
struct Pokemon *mon = GetPartyBattlerData(battler);
|
||||
u32 side = GetBattlerSide(battler);
|
||||
|
||||
// Change species.
|
||||
@ -10211,9 +10210,9 @@ static void Cmd_various(void)
|
||||
{
|
||||
VARIOUS_ARGS();
|
||||
if (GetBattlerSide(battler) == B_SIDE_PLAYER)
|
||||
mon = &gPlayerParty[gBattlerPartyIndexes[battler]];
|
||||
mon = GetPartyBattlerData(battler);
|
||||
else
|
||||
mon = &gEnemyParty[gBattlerPartyIndexes[battler]];
|
||||
mon = GetPartyBattlerData(battler);
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[battler], mon, HEALTHBOX_NICK);
|
||||
break;
|
||||
}
|
||||
@ -10524,7 +10523,7 @@ static void Cmd_various(void)
|
||||
gAbsentBattlerFlags |= 1u << battler;
|
||||
gHitMarker |= HITMARKER_FAINTED(battler);
|
||||
gBattleMons[battler].hp = 0;
|
||||
SetMonData(&gEnemyParty[gBattlerPartyIndexes[battler]], MON_DATA_HP, &gBattleMons[battler].hp);
|
||||
SetMonData(GetPartyBattlerData(battler), MON_DATA_HP, &gBattleMons[battler].hp);
|
||||
SetHealthboxSpriteInvisible(gHealthboxSpriteIds[battler]);
|
||||
FaintClearSetData(battler);
|
||||
}
|
||||
@ -11060,13 +11059,13 @@ static void Cmd_various(void)
|
||||
if (IsBattlerAlive(battler))
|
||||
{
|
||||
SetBattlerShadowSpriteCallback(battler, gBattleMons[battler].species);
|
||||
BattleLoadMonSpriteGfx(&gEnemyParty[gBattlerPartyIndexes[battler]], battler);
|
||||
BattleLoadMonSpriteGfx(GetPartyBattlerData(battler), battler);
|
||||
}
|
||||
i = BATTLE_PARTNER(battler);
|
||||
if (IsBattlerAlive(i))
|
||||
{
|
||||
SetBattlerShadowSpriteCallback(i, gBattleMons[i].species);
|
||||
BattleLoadMonSpriteGfx(&gEnemyParty[gBattlerPartyIndexes[i]], i);
|
||||
BattleLoadMonSpriteGfx(GetPartyBattlerData(i), i);
|
||||
}
|
||||
}
|
||||
gBattlescriptCurrInstr = cmd->nextInstr;
|
||||
@ -15858,8 +15857,8 @@ static void Cmd_handleballthrow(void)
|
||||
case BALL_LOVE:
|
||||
if (gBattleMons[gBattlerTarget].species == gBattleMons[gBattlerAttacker].species)
|
||||
{
|
||||
u8 gender1 = GetMonGender(&gEnemyParty[gBattlerPartyIndexes[gBattlerTarget]]);
|
||||
u8 gender2 = GetMonGender(&gPlayerParty[gBattlerPartyIndexes[gBattlerAttacker]]);
|
||||
u8 gender1 = GetMonGender(GetPartyBattlerData(gBattlerTarget));
|
||||
u8 gender2 = GetMonGender(GetPartyBattlerData(gBattlerAttacker));
|
||||
|
||||
if (gender1 != gender2 && gender1 != MON_GENDERLESS && gender2 != MON_GENDERLESS)
|
||||
ballMultiplier = 800;
|
||||
@ -15941,7 +15940,7 @@ static void Cmd_handleballthrow(void)
|
||||
MarkBattlerForControllerExec(gBattlerAttacker);
|
||||
TryBattleFormChange(gBattlerTarget, FORM_CHANGE_END_BATTLE);
|
||||
gBattlescriptCurrInstr = BattleScript_SuccessBallThrow;
|
||||
SetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerTarget]], MON_DATA_POKEBALL, &ballId);
|
||||
SetMonData(GetPartyBattlerData(gBattlerTarget), MON_DATA_POKEBALL, &ballId);
|
||||
|
||||
if (CalculatePlayerPartyCount() == PARTY_SIZE)
|
||||
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
|
||||
@ -15950,15 +15949,15 @@ static void Cmd_handleballthrow(void)
|
||||
|
||||
if (ballId == BALL_HEAL)
|
||||
{
|
||||
MonRestorePP(&gEnemyParty[gBattlerPartyIndexes[gBattlerTarget]]);
|
||||
HealStatusConditions(&gEnemyParty[gBattlerPartyIndexes[gBattlerTarget]], STATUS1_ANY, gBattlerTarget);
|
||||
MonRestorePP(GetPartyBattlerData(gBattlerTarget));
|
||||
HealStatusConditions(GetPartyBattlerData(gBattlerTarget), STATUS1_ANY, gBattlerTarget);
|
||||
gBattleMons[gBattlerTarget].hp = gBattleMons[gBattlerTarget].maxHP;
|
||||
SetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerTarget]], MON_DATA_HP, &gBattleMons[gBattlerTarget].hp);
|
||||
SetMonData(GetPartyBattlerData(gBattlerTarget), MON_DATA_HP, &gBattleMons[gBattlerTarget].hp);
|
||||
}
|
||||
else if (ballId == BALL_FRIEND)
|
||||
{
|
||||
u32 friendship = (B_FRIEND_BALL_MODIFIER >= GEN_8 ? 150 : 200);
|
||||
SetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerTarget]], MON_DATA_FRIENDSHIP, &friendship);
|
||||
SetMonData(GetPartyBattlerData(gBattlerTarget), MON_DATA_FRIENDSHIP, &friendship);
|
||||
}
|
||||
}
|
||||
else // mon may be caught, calculate shakes
|
||||
@ -16000,7 +15999,7 @@ static void Cmd_handleballthrow(void)
|
||||
|
||||
TryBattleFormChange(gBattlerTarget, FORM_CHANGE_END_BATTLE);
|
||||
gBattlescriptCurrInstr = BattleScript_SuccessBallThrow;
|
||||
SetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerTarget]], MON_DATA_POKEBALL, &ballId);
|
||||
SetMonData(GetPartyBattlerData(gBattlerTarget), MON_DATA_POKEBALL, &ballId);
|
||||
|
||||
if (CalculatePlayerPartyCount() == PARTY_SIZE)
|
||||
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
|
||||
@ -16009,15 +16008,15 @@ static void Cmd_handleballthrow(void)
|
||||
|
||||
if (ballId == BALL_HEAL)
|
||||
{
|
||||
MonRestorePP(&gEnemyParty[gBattlerPartyIndexes[gBattlerTarget]]);
|
||||
HealStatusConditions(&gEnemyParty[gBattlerPartyIndexes[gBattlerTarget]], STATUS1_ANY, gBattlerTarget);
|
||||
MonRestorePP(GetPartyBattlerData(gBattlerTarget));
|
||||
HealStatusConditions(GetPartyBattlerData(gBattlerTarget), STATUS1_ANY, gBattlerTarget);
|
||||
gBattleMons[gBattlerTarget].hp = gBattleMons[gBattlerTarget].maxHP;
|
||||
SetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerTarget]], MON_DATA_HP, &gBattleMons[gBattlerTarget].hp);
|
||||
SetMonData(GetPartyBattlerData(gBattlerTarget), MON_DATA_HP, &gBattleMons[gBattlerTarget].hp);
|
||||
}
|
||||
else if (ballId == BALL_FRIEND)
|
||||
{
|
||||
u32 friendship = (B_FRIEND_BALL_MODIFIER >= GEN_8 ? 150 : 200);
|
||||
SetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerTarget]], MON_DATA_FRIENDSHIP, &friendship);
|
||||
SetMonData(GetPartyBattlerData(gBattlerTarget), MON_DATA_FRIENDSHIP, &friendship);
|
||||
}
|
||||
}
|
||||
else // not caught
|
||||
@ -16139,22 +16138,22 @@ static void Cmd_givecaughtmon(void)
|
||||
{
|
||||
u16 lostItem = gBattleStruct->itemLost[B_SIDE_OPPONENT][gBattlerPartyIndexes[GetCatchingBattler()]].originalItem;
|
||||
if (lostItem != ITEM_NONE && ItemId_GetPocket(lostItem) != POCKET_BERRIES)
|
||||
SetMonData(&gEnemyParty[gBattlerPartyIndexes[GetCatchingBattler()]], MON_DATA_HELD_ITEM, &lostItem); // Restore non-berry items
|
||||
SetMonData(GetPartyBattlerData(GetCatchingBattler()), MON_DATA_HELD_ITEM, &lostItem); // Restore non-berry items
|
||||
}
|
||||
|
||||
if (GiveMonToPlayer(&gEnemyParty[gBattlerPartyIndexes[GetCatchingBattler()]]) != MON_GIVEN_TO_PARTY
|
||||
if (GiveMonToPlayer(GetPartyBattlerData(GetCatchingBattler())) != MON_GIVEN_TO_PARTY
|
||||
&& gBattleCommunication[MULTISTRING_CHOOSER] != B_MSG_SWAPPED_INTO_PARTY)
|
||||
{
|
||||
if (!ShouldShowBoxWasFullMessage())
|
||||
{
|
||||
gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SENT_SOMEONES_PC;
|
||||
StringCopy(gStringVar1, GetBoxNamePtr(VarGet(VAR_PC_BOX_TO_SEND_MON)));
|
||||
GetMonData(&gEnemyParty[gBattlerPartyIndexes[GetCatchingBattler()]], MON_DATA_NICKNAME, gStringVar2);
|
||||
GetMonData(GetPartyBattlerData(GetCatchingBattler()), MON_DATA_NICKNAME, gStringVar2);
|
||||
}
|
||||
else
|
||||
{
|
||||
StringCopy(gStringVar1, GetBoxNamePtr(VarGet(VAR_PC_BOX_TO_SEND_MON))); // box the mon was sent to
|
||||
GetMonData(&gEnemyParty[gBattlerPartyIndexes[GetCatchingBattler()]], MON_DATA_NICKNAME, gStringVar2);
|
||||
GetMonData(GetPartyBattlerData(GetCatchingBattler()), MON_DATA_NICKNAME, gStringVar2);
|
||||
StringCopy(gStringVar3, GetBoxNamePtr(GetPCBoxToSendMon())); //box the mon was going to be sent to
|
||||
gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SOMEONES_BOX_FULL;
|
||||
}
|
||||
@ -16164,9 +16163,9 @@ static void Cmd_givecaughtmon(void)
|
||||
gBattleCommunication[MULTISTRING_CHOOSER]++;
|
||||
}
|
||||
|
||||
gBattleResults.caughtMonSpecies = GetMonData(&gEnemyParty[gBattlerPartyIndexes[GetCatchingBattler()]], MON_DATA_SPECIES, NULL);
|
||||
GetMonData(&gEnemyParty[gBattlerPartyIndexes[GetCatchingBattler()]], MON_DATA_NICKNAME, gBattleResults.caughtMonNick);
|
||||
gBattleResults.caughtMonBall = GetMonData(&gEnemyParty[gBattlerPartyIndexes[GetCatchingBattler()]], MON_DATA_POKEBALL, NULL);
|
||||
gBattleResults.caughtMonSpecies = GetMonData(GetPartyBattlerData(GetCatchingBattler()), MON_DATA_SPECIES, NULL);
|
||||
GetMonData(GetPartyBattlerData(GetCatchingBattler()), MON_DATA_NICKNAME, gBattleResults.caughtMonNick);
|
||||
gBattleResults.caughtMonBall = GetMonData(GetPartyBattlerData(GetCatchingBattler()), MON_DATA_POKEBALL, NULL);
|
||||
|
||||
gSelectedMonPartyId = PARTY_SIZE;
|
||||
gBattleCommunication[MULTIUSE_STATE] = 0;
|
||||
@ -16183,8 +16182,8 @@ static void Cmd_trysetcaughtmondexflags(void)
|
||||
{
|
||||
CMD_ARGS(const u8 *failInstr);
|
||||
|
||||
u32 species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[GetCatchingBattler()]], MON_DATA_SPECIES, NULL);
|
||||
u32 personality = GetMonData(&gEnemyParty[gBattlerPartyIndexes[GetCatchingBattler()]], MON_DATA_PERSONALITY, NULL);
|
||||
u32 species = GetMonData(GetPartyBattlerData(GetCatchingBattler()), MON_DATA_SPECIES, NULL);
|
||||
u32 personality = GetMonData(GetPartyBattlerData(GetCatchingBattler()), MON_DATA_PERSONALITY, NULL);
|
||||
|
||||
if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(species), FLAG_GET_CAUGHT))
|
||||
{
|
||||
@ -16201,7 +16200,7 @@ static void Cmd_displaydexinfo(void)
|
||||
{
|
||||
CMD_ARGS();
|
||||
|
||||
u16 species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[GetCatchingBattler()]], MON_DATA_SPECIES, NULL);
|
||||
u16 species = GetMonData(GetPartyBattlerData(GetCatchingBattler()), MON_DATA_SPECIES, NULL);
|
||||
|
||||
switch (gBattleCommunication[0])
|
||||
{
|
||||
@ -16212,7 +16211,7 @@ static void Cmd_displaydexinfo(void)
|
||||
case 1:
|
||||
if (!gPaletteFade.active)
|
||||
{
|
||||
struct Pokemon *mon = &gEnemyParty[gBattlerPartyIndexes[GetCatchingBattler()]];
|
||||
struct Pokemon *mon = GetPartyBattlerData(GetCatchingBattler());
|
||||
FreeAllWindowBuffers();
|
||||
gBattleCommunication[TASK_ID] = DisplayCaughtMonDexPage(species,
|
||||
GetMonData(mon, MON_DATA_IS_SHINY),
|
||||
@ -16368,14 +16367,14 @@ static void Cmd_trygivecaughtmonnick(void)
|
||||
case 2:
|
||||
if (!gPaletteFade.active)
|
||||
{
|
||||
GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerTarget]], MON_DATA_NICKNAME, gBattleStruct->caughtMonNick);
|
||||
GetMonData(GetPartyBattlerData(gBattlerTarget), MON_DATA_NICKNAME, gBattleStruct->caughtMonNick);
|
||||
FreeAllWindowBuffers();
|
||||
MainCallback callback = CalculatePlayerPartyCount() == PARTY_SIZE ? ReshowBlankBattleScreenAfterMenu : BattleMainCB2;
|
||||
|
||||
DoNamingScreen(NAMING_SCREEN_CAUGHT_MON, gBattleStruct->caughtMonNick,
|
||||
GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerTarget]], MON_DATA_SPECIES),
|
||||
GetMonGender(&gEnemyParty[gBattlerPartyIndexes[gBattlerTarget]]),
|
||||
GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerTarget]], MON_DATA_PERSONALITY, NULL),
|
||||
GetMonData(GetPartyBattlerData(gBattlerTarget), MON_DATA_SPECIES),
|
||||
GetMonGender(GetPartyBattlerData(gBattlerTarget)),
|
||||
GetMonData(GetPartyBattlerData(gBattlerTarget), MON_DATA_PERSONALITY, NULL),
|
||||
callback);
|
||||
|
||||
gBattleCommunication[MULTIUSE_STATE]++;
|
||||
@ -16384,7 +16383,7 @@ static void Cmd_trygivecaughtmonnick(void)
|
||||
case 3:
|
||||
if (gMain.callback2 == BattleMainCB2 && !gPaletteFade.active)
|
||||
{
|
||||
SetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerTarget]], MON_DATA_NICKNAME, gBattleStruct->caughtMonNick);
|
||||
SetMonData(GetPartyBattlerData(gBattlerTarget), MON_DATA_NICKNAME, gBattleStruct->caughtMonNick);
|
||||
gBattleCommunication[MULTIUSE_STATE]++;
|
||||
}
|
||||
break;
|
||||
@ -17774,23 +17773,23 @@ static void TryUpdateEvolutionTracker(u32 evolutionCondition, u32 upAmount, u16
|
||||
if (evolutions[i].params[j].condition == evolutionCondition)
|
||||
{
|
||||
// We only have 10 bits to use
|
||||
u16 val = min(1023, GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattlerAttacker]], MON_DATA_EVOLUTION_TRACKER) + upAmount);
|
||||
u16 val = min(1023, GetMonData(GetPartyBattlerData(gBattlerAttacker), MON_DATA_EVOLUTION_TRACKER) + upAmount);
|
||||
// Reset progress if you faint for the recoil method.
|
||||
switch (evolutionCondition)
|
||||
{
|
||||
case IF_USED_MOVE_X_TIMES:
|
||||
if (evolutions[i].params[j].arg1 == usedMove)
|
||||
SetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattlerAttacker]], MON_DATA_EVOLUTION_TRACKER, &val);
|
||||
SetMonData(GetPartyBattlerData(gBattlerAttacker), MON_DATA_EVOLUTION_TRACKER, &val);
|
||||
break;
|
||||
case IF_RECOIL_DAMAGE_GE:
|
||||
if (gBattleMons[gBattlerAttacker].hp == 0)
|
||||
val = 0;
|
||||
SetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattlerAttacker]], MON_DATA_EVOLUTION_TRACKER, &val);
|
||||
SetMonData(GetPartyBattlerData(gBattlerAttacker), MON_DATA_EVOLUTION_TRACKER, &val);
|
||||
break;
|
||||
case IF_DEFEAT_X_WITH_ITEMS:
|
||||
if (GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerTarget]], MON_DATA_SPECIES) == evolutions[i].params[j].arg1
|
||||
&& GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerTarget]], MON_DATA_HELD_ITEM) == evolutions[i].params[j].arg2)
|
||||
SetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattlerAttacker]], MON_DATA_EVOLUTION_TRACKER, &val);
|
||||
if (GetMonData(GetPartyBattlerData(gBattlerTarget), MON_DATA_SPECIES) == evolutions[i].params[j].arg1
|
||||
&& GetMonData(GetPartyBattlerData(gBattlerTarget), MON_DATA_HELD_ITEM) == evolutions[i].params[j].arg2)
|
||||
SetMonData(GetPartyBattlerData(gBattlerAttacker), MON_DATA_EVOLUTION_TRACKER, &val);
|
||||
break;
|
||||
}
|
||||
return;
|
||||
@ -18726,7 +18725,7 @@ void BS_JumpIfCanGigantamax(void)
|
||||
NATIVE_ARGS(u8 battler, const u8 *jumpInstr);
|
||||
u32 battler = GetBattlerForBattleScript(cmd->battler);
|
||||
|
||||
if (GetMonData(&gPlayerParty[gBattlerPartyIndexes[battler]], MON_DATA_GIGANTAMAX_FACTOR)
|
||||
if (GetMonData(GetPartyBattlerData(battler), MON_DATA_GIGANTAMAX_FACTOR)
|
||||
&& GetGMaxTargetSpecies(gBattleMons[battler].species) != SPECIES_NONE)
|
||||
gBattlescriptCurrInstr = cmd->jumpInstr;
|
||||
else
|
||||
|
||||
@ -110,7 +110,7 @@ bool32 CanTerastallize(u32 battler)
|
||||
// Returns a battler's Tera type.
|
||||
u32 GetBattlerTeraType(u32 battler)
|
||||
{
|
||||
return GetMonData(&GetBattlerParty(battler)[gBattlerPartyIndexes[battler]], MON_DATA_TERA_TYPE);
|
||||
return GetMonData(GetPartyBattlerData(battler), MON_DATA_TERA_TYPE);
|
||||
}
|
||||
|
||||
// Uses up a type's Stellar boost.
|
||||
|
||||
@ -2655,8 +2655,8 @@ static void SetTowerInterviewData(void)
|
||||
StripExtCtrlCodes(text);
|
||||
StringCopy(gSaveBlock2Ptr->frontier.towerInterview.opponentName, text);
|
||||
GetBattleTowerTrainerLanguage(&gSaveBlock2Ptr->frontier.towerInterview.opponentLanguage, TRAINER_BATTLE_PARAM.opponentA);
|
||||
gSaveBlock2Ptr->frontier.towerInterview.opponentSpecies = GetMonData(&gEnemyParty[gBattlerPartyIndexes[1]], MON_DATA_SPECIES, NULL);
|
||||
gSaveBlock2Ptr->frontier.towerInterview.playerSpecies = GetMonData(&gPlayerParty[gBattlerPartyIndexes[0]], MON_DATA_SPECIES, NULL);
|
||||
gSaveBlock2Ptr->frontier.towerInterview.opponentSpecies = GetMonData(GetPartyBattlerData(1), MON_DATA_SPECIES, NULL);
|
||||
gSaveBlock2Ptr->frontier.towerInterview.playerSpecies = GetMonData(GetPartyBattlerData(0), MON_DATA_SPECIES, NULL);
|
||||
for (i = 0; i < VANILLA_POKEMON_NAME_LENGTH + 1; i++)
|
||||
gSaveBlock2Ptr->frontier.towerInterview.opponentMonNickname[i] = gBattleMons[0].nickname[i];
|
||||
gSaveBlock2Ptr->frontier.towerBattleOutcome = gBattleOutcome;
|
||||
|
||||
@ -1286,8 +1286,8 @@ static void TrySetBattleSeminarShow(void)
|
||||
bestMoveId = i;
|
||||
}
|
||||
|
||||
opponentSpecies = GetMonData(&gEnemyParty [gBattlerPartyIndexes[gBattlerTarget]], MON_DATA_SPECIES, NULL);
|
||||
playerSpecies = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattlerAttacker]], MON_DATA_SPECIES, NULL);
|
||||
opponentSpecies = GetMonData(GetPartyBattlerData(gBattlerTarget), MON_DATA_SPECIES, NULL);
|
||||
playerSpecies = GetMonData(GetPartyBattlerData(gBattlerAttacker), MON_DATA_SPECIES, NULL);
|
||||
TryPutBattleSeminarOnAir(opponentSpecies, playerSpecies, gMoveSelectionCursor[gBattlerAttacker], gBattleMons[gBattlerAttacker].moves, gBattleMons[gBattlerAttacker].moves[bestMoveId]);
|
||||
break;
|
||||
}
|
||||
@ -1363,15 +1363,14 @@ void BattleTv_ClearExplosionFaintCause(void)
|
||||
u8 GetBattlerMoveSlotId(u8 battlerId, u16 moveId)
|
||||
{
|
||||
s32 i;
|
||||
struct Pokemon *party;
|
||||
party = GetBattlerParty(battlerId);
|
||||
struct Pokemon *mon = GetPartyBattlerData(battlerId);
|
||||
|
||||
i = 0;
|
||||
while (1)
|
||||
{
|
||||
if (i >= MAX_MON_MOVES)
|
||||
break;
|
||||
if (GetMonData(&party[gBattlerPartyIndexes[battlerId]], MON_DATA_MOVE1 + i, NULL) == moveId)
|
||||
if (GetMonData(mon, MON_DATA_MOVE1 + i, NULL) == moveId)
|
||||
break;
|
||||
i++;
|
||||
}
|
||||
|
||||
@ -1646,8 +1646,8 @@ u8 GetImprisonedMovesCount(u32 battler, u16 move)
|
||||
u32 GetBattlerAffectionHearts(u32 battler)
|
||||
{
|
||||
u8 side = GetBattlerSide(battler);
|
||||
struct Pokemon *party = GetSideParty(side);
|
||||
u16 species = GetMonData(&party[gBattlerPartyIndexes[battler]], MON_DATA_SPECIES);
|
||||
struct Pokemon *mon = GetPartyBattlerData(battler);
|
||||
u16 species = GetMonData(mon, MON_DATA_SPECIES);
|
||||
|
||||
if (side != B_SIDE_PLAYER)
|
||||
return AFFECTION_NO_HEARTS;
|
||||
@ -1659,7 +1659,7 @@ u32 GetBattlerAffectionHearts(u32 battler)
|
||||
| BATTLE_TYPE_SECRET_BASE)))
|
||||
return AFFECTION_NO_HEARTS;
|
||||
|
||||
return GetMonAffectionHearts(&party[gBattlerPartyIndexes[battler]]);
|
||||
return GetMonAffectionHearts(mon);
|
||||
}
|
||||
|
||||
// gBattlerAttacker is the battler that's trying to raise their stats and due to limitations of RandomUniformExcept, cannot be an argument
|
||||
@ -4029,7 +4029,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32
|
||||
break;
|
||||
case ABILITY_ZERO_TO_HERO:
|
||||
side = GetBattlerSide(battler);
|
||||
mon = &GetSideParty(side)[gBattlerPartyIndexes[battler]];
|
||||
mon = GetPartyBattlerData(battler);
|
||||
|
||||
if (!gSpecialStatuses[battler].switchInAbilityDone
|
||||
&& GetMonData(mon, MON_DATA_SPECIES) == SPECIES_PALAFIN_HERO
|
||||
@ -6119,8 +6119,7 @@ static enum ItemEffect TryEjectPack(u32 battler, enum ItemCaseId caseID)
|
||||
|
||||
static u32 ItemRestorePp(u32 battler, u32 itemId, enum ItemCaseId caseID)
|
||||
{
|
||||
struct Pokemon *party = GetBattlerParty(battler);
|
||||
struct Pokemon *mon = &party[gBattlerPartyIndexes[battler]];
|
||||
struct Pokemon *mon = GetPartyBattlerData(battler);
|
||||
u32 i, changedPP = 0;
|
||||
|
||||
for (i = 0; i < MAX_MON_MOVES; i++)
|
||||
@ -10117,7 +10116,7 @@ u16 GetBattleFormChangeTargetSpecies(u32 battler, enum FormChanges method)
|
||||
u32 species = gBattleMons[battler].species;
|
||||
u32 targetSpecies = species;
|
||||
const struct FormChange *formChanges = GetSpeciesFormChanges(species);
|
||||
struct Pokemon *mon = &GetBattlerParty(battler)[gBattlerPartyIndexes[battler]];
|
||||
struct Pokemon *mon = GetPartyBattlerData(battler);
|
||||
u16 heldItem = gBattleMons[battler].item;
|
||||
|
||||
for (i = 0; formChanges != NULL && formChanges[i].method != FORM_CHANGE_TERMINATOR; i++)
|
||||
@ -10342,9 +10341,9 @@ struct Pokemon *GetIllusionMonPtr(u32 battler)
|
||||
if (!gBattleStruct->illusion[battler].set)
|
||||
{
|
||||
if (GetBattlerSide(battler) == B_SIDE_PLAYER)
|
||||
SetIllusionMon(&gPlayerParty[gBattlerPartyIndexes[battler]], battler);
|
||||
SetIllusionMon(GetPartyBattlerData(battler), battler);
|
||||
else
|
||||
SetIllusionMon(&gEnemyParty[gBattlerPartyIndexes[battler]], battler);
|
||||
SetIllusionMon(GetPartyBattlerData(battler), battler);
|
||||
}
|
||||
if (!gBattleStruct->illusion[battler].on)
|
||||
return NULL;
|
||||
|
||||
@ -98,13 +98,13 @@ void AdjustFriendshipOnBattleFaint(u8 battler)
|
||||
if (gBattleMons[opposingBattlerId].level > gBattleMons[battler].level)
|
||||
{
|
||||
if (gBattleMons[opposingBattlerId].level - gBattleMons[battler].level > 29)
|
||||
AdjustFriendship(&gPlayerParty[gBattlerPartyIndexes[battler]], FRIENDSHIP_EVENT_FAINT_LARGE);
|
||||
AdjustFriendship(GetPartyBattlerData(battler), FRIENDSHIP_EVENT_FAINT_LARGE);
|
||||
else
|
||||
AdjustFriendship(&gPlayerParty[gBattlerPartyIndexes[battler]], FRIENDSHIP_EVENT_FAINT_SMALL);
|
||||
AdjustFriendship(GetPartyBattlerData(battler), FRIENDSHIP_EVENT_FAINT_SMALL);
|
||||
}
|
||||
else
|
||||
{
|
||||
AdjustFriendship(&gPlayerParty[gBattlerPartyIndexes[battler]], FRIENDSHIP_EVENT_FAINT_SMALL);
|
||||
AdjustFriendship(GetPartyBattlerData(battler), FRIENDSHIP_EVENT_FAINT_SMALL);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -551,7 +551,7 @@ void LaunchAnimationTaskForBackSprite(struct Sprite *sprite, u8 backAnimSet)
|
||||
gTasks[taskId].tPtrLo = (u32)(sprite);
|
||||
|
||||
battlerId = sprite->data[0];
|
||||
nature = GetNature(&gPlayerParty[gBattlerPartyIndexes[battlerId]]);
|
||||
nature = GetNature(GetPartyBattlerData(battlerId));
|
||||
|
||||
// * 3 below because each back anim has 3 variants depending on nature
|
||||
animId = 3 * backAnimSet + gNaturesInfo[nature].backAnim;
|
||||
|
||||
@ -759,24 +759,24 @@ void RecordedBattle_CheckMovesetChanges(u8 mode)
|
||||
if (!(gBattleMons[battlerId].status2 & STATUS2_TRANSFORMED))
|
||||
{
|
||||
for (j = 0; j < MAX_MON_MOVES; j++)
|
||||
ppBonuses[j] = (GetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerId]], MON_DATA_PP_BONUSES, NULL) & ((3 << (j << 1)))) >> (j << 1);
|
||||
ppBonuses[j] = (GetMonData(GetPartyBattlerData(battlerId), MON_DATA_PP_BONUSES, NULL) & ((3 << (j << 1)))) >> (j << 1);
|
||||
|
||||
for (j = 0; j < MAX_MON_MOVES; j++)
|
||||
{
|
||||
movePp.moves[j] = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerId]], MON_DATA_MOVE1 + moveSlots[j], NULL);
|
||||
movePp.currentPp[j] = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerId]], MON_DATA_PP1 + moveSlots[j], NULL);
|
||||
movePp.moves[j] = GetMonData(GetPartyBattlerData(battlerId), MON_DATA_MOVE1 + moveSlots[j], NULL);
|
||||
movePp.currentPp[j] = GetMonData(GetPartyBattlerData(battlerId), MON_DATA_PP1 + moveSlots[j], NULL);
|
||||
movePp.maxPp[j] = ppBonuses[moveSlots[j]];
|
||||
}
|
||||
for (j = 0; j < MAX_MON_MOVES; j++)
|
||||
{
|
||||
SetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerId]], MON_DATA_MOVE1 + j, &movePp.moves[j]);
|
||||
SetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerId]], MON_DATA_PP1 + j, &movePp.currentPp[j]);
|
||||
SetMonData(GetPartyBattlerData(battlerId), MON_DATA_MOVE1 + j, &movePp.moves[j]);
|
||||
SetMonData(GetPartyBattlerData(battlerId), MON_DATA_PP1 + j, &movePp.currentPp[j]);
|
||||
}
|
||||
ppBonusSet = 0;
|
||||
for (j = 0; j < MAX_MON_MOVES; j++)
|
||||
ppBonusSet |= movePp.maxPp[j] << (j << 1);
|
||||
|
||||
SetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerId]], MON_DATA_PP_BONUSES, &ppBonusSet);
|
||||
SetMonData(GetPartyBattlerData(battlerId), MON_DATA_PP_BONUSES, &ppBonusSet);
|
||||
}
|
||||
gChosenMoveByBattler[battlerId] = gBattleMons[battlerId].moves[gBattleStruct->chosenMovePositions[battlerId]];
|
||||
}
|
||||
|
||||
@ -138,13 +138,13 @@ static void CB2_ReshowBattleScreenAfterMenu(void)
|
||||
LoadAndCreateEnemyShadowSprites();
|
||||
|
||||
opponentBattler = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT);
|
||||
species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[opponentBattler]], MON_DATA_SPECIES);
|
||||
species = GetMonData(GetPartyBattlerData(opponentBattler), MON_DATA_SPECIES);
|
||||
SetBattlerShadowSpriteCallback(opponentBattler, species);
|
||||
|
||||
if (IsDoubleBattle())
|
||||
{
|
||||
opponentBattler = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT);
|
||||
species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[opponentBattler]], MON_DATA_SPECIES);
|
||||
species = GetMonData(GetPartyBattlerData(opponentBattler), MON_DATA_SPECIES);
|
||||
SetBattlerShadowSpriteCallback(opponentBattler, species);
|
||||
}
|
||||
|
||||
@ -271,7 +271,7 @@ static bool8 LoadBattlerSpriteGfx(u32 battler)
|
||||
if (GetBattlerSide(battler) != B_SIDE_PLAYER)
|
||||
{
|
||||
if (!gBattleSpritesDataPtr->battlerData[battler].behindSubstitute)
|
||||
BattleLoadMonSpriteGfx(&gEnemyParty[gBattlerPartyIndexes[battler]], battler);
|
||||
BattleLoadMonSpriteGfx(GetPartyBattlerData(battler), battler);
|
||||
else
|
||||
BattleLoadSubstituteOrMonSpriteGfx(battler, FALSE);
|
||||
}
|
||||
@ -280,7 +280,7 @@ static bool8 LoadBattlerSpriteGfx(u32 battler)
|
||||
else if (gBattleTypeFlags & BATTLE_TYPE_WALLY_TUTORIAL && battler == B_POSITION_PLAYER_LEFT) // Should be checking position, not battler.
|
||||
DecompressTrainerBackPic(TRAINER_BACK_PIC_WALLY, battler);
|
||||
else if (!gBattleSpritesDataPtr->battlerData[battler].behindSubstitute)
|
||||
BattleLoadMonSpriteGfx(&gPlayerParty[gBattlerPartyIndexes[battler]], battler);
|
||||
BattleLoadMonSpriteGfx(GetPartyBattlerData(battler), battler);
|
||||
else
|
||||
BattleLoadSubstituteOrMonSpriteGfx(battler, FALSE);
|
||||
|
||||
@ -302,17 +302,17 @@ void CreateBattlerSprite(u32 battler)
|
||||
|
||||
if (GetBattlerSide(battler) != B_SIDE_PLAYER)
|
||||
{
|
||||
if (GetMonData(&gEnemyParty[gBattlerPartyIndexes[battler]], MON_DATA_HP) == 0)
|
||||
if (GetMonData(GetPartyBattlerData(battler), MON_DATA_HP) == 0)
|
||||
return;
|
||||
if (gBattleScripting.monCaught) // Don't create opponent sprite if it has been caught.
|
||||
return;
|
||||
|
||||
SetMultiuseSpriteTemplateToPokemon(GetMonData(&gEnemyParty[gBattlerPartyIndexes[battler]], MON_DATA_SPECIES), GetBattlerPosition(battler));
|
||||
SetMultiuseSpriteTemplateToPokemon(GetMonData(GetPartyBattlerData(battler), MON_DATA_SPECIES), GetBattlerPosition(battler));
|
||||
gBattlerSpriteIds[battler] = CreateSprite(&gMultiuseSpriteTemplate, GetBattlerSpriteCoord(battler, BATTLER_COORD_X_2), posY, GetBattlerSpriteSubpriority(battler));
|
||||
gSprites[gBattlerSpriteIds[battler]].oam.paletteNum = battler;
|
||||
gSprites[gBattlerSpriteIds[battler]].callback = SpriteCallbackDummy;
|
||||
gSprites[gBattlerSpriteIds[battler]].data[0] = battler;
|
||||
gSprites[gBattlerSpriteIds[battler]].data[2] = GetMonData(&gEnemyParty[gBattlerPartyIndexes[battler]], MON_DATA_SPECIES);
|
||||
gSprites[gBattlerSpriteIds[battler]].data[2] = GetMonData(GetPartyBattlerData(battler), MON_DATA_SPECIES);
|
||||
|
||||
StartSpriteAnim(&gSprites[gBattlerSpriteIds[battler]], 0);
|
||||
}
|
||||
@ -338,15 +338,15 @@ void CreateBattlerSprite(u32 battler)
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!IsValidForBattle(&gPlayerParty[gBattlerPartyIndexes[battler]]))
|
||||
if (!IsValidForBattle(GetPartyBattlerData(battler)))
|
||||
return;
|
||||
|
||||
SetMultiuseSpriteTemplateToPokemon(GetMonData(&gPlayerParty[gBattlerPartyIndexes[battler]], MON_DATA_SPECIES), GetBattlerPosition(battler));
|
||||
SetMultiuseSpriteTemplateToPokemon(GetMonData(GetPartyBattlerData(battler), MON_DATA_SPECIES), GetBattlerPosition(battler));
|
||||
gBattlerSpriteIds[battler] = CreateSprite(&gMultiuseSpriteTemplate, GetBattlerSpriteCoord(battler, BATTLER_COORD_X_2), posY, GetBattlerSpriteSubpriority(battler));
|
||||
gSprites[gBattlerSpriteIds[battler]].oam.paletteNum = battler;
|
||||
gSprites[gBattlerSpriteIds[battler]].callback = SpriteCallbackDummy;
|
||||
gSprites[gBattlerSpriteIds[battler]].data[0] = battler;
|
||||
gSprites[gBattlerSpriteIds[battler]].data[2] = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battler]], MON_DATA_SPECIES);
|
||||
gSprites[gBattlerSpriteIds[battler]].data[2] = GetMonData(GetPartyBattlerData(battler), MON_DATA_SPECIES);
|
||||
|
||||
StartSpriteAnim(&gSprites[gBattlerSpriteIds[battler]], 0);
|
||||
}
|
||||
@ -373,11 +373,11 @@ static void CreateHealthboxSprite(u32 battler)
|
||||
SetHealthboxSpriteVisible(healthboxSpriteId);
|
||||
|
||||
if (GetBattlerSide(battler) != B_SIDE_PLAYER)
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[battler], &gEnemyParty[gBattlerPartyIndexes[battler]], HEALTHBOX_ALL);
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[battler], GetPartyBattlerData(battler), HEALTHBOX_ALL);
|
||||
else if (gBattleTypeFlags & BATTLE_TYPE_SAFARI)
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[battler], &gPlayerParty[gBattlerPartyIndexes[battler]], HEALTHBOX_SAFARI_ALL_TEXT);
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[battler], GetPartyBattlerData(battler), HEALTHBOX_SAFARI_ALL_TEXT);
|
||||
else
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[battler], &gPlayerParty[gBattlerPartyIndexes[battler]], HEALTHBOX_ALL);
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[battler], GetPartyBattlerData(battler), HEALTHBOX_ALL);
|
||||
|
||||
if (GetBattlerPosition(battler) == B_POSITION_OPPONENT_RIGHT || GetBattlerPosition(battler) == B_POSITION_PLAYER_RIGHT)
|
||||
DummyBattleInterfaceFunc(gHealthboxSpriteIds[battler], TRUE);
|
||||
@ -386,12 +386,12 @@ static void CreateHealthboxSprite(u32 battler)
|
||||
|
||||
if (GetBattlerSide(battler) != B_SIDE_PLAYER)
|
||||
{
|
||||
if (GetMonData(&gEnemyParty[gBattlerPartyIndexes[battler]], MON_DATA_HP) == 0)
|
||||
if (GetMonData(GetPartyBattlerData(battler), MON_DATA_HP) == 0)
|
||||
SetHealthboxSpriteInvisible(healthboxSpriteId);
|
||||
}
|
||||
else if (!(gBattleTypeFlags & BATTLE_TYPE_SAFARI))
|
||||
{
|
||||
if (!IsValidForBattle(&gPlayerParty[gBattlerPartyIndexes[battler]]))
|
||||
if (!IsValidForBattle(GetPartyBattlerData(battler)))
|
||||
SetHealthboxSpriteInvisible(healthboxSpriteId);
|
||||
}
|
||||
}
|
||||
@ -399,12 +399,12 @@ static void CreateHealthboxSprite(u32 battler)
|
||||
|
||||
static void CreateCaughtMonSprite(void)
|
||||
{
|
||||
SetMultiuseSpriteTemplateToPokemon(GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerTarget]], MON_DATA_SPECIES), GetBattlerPosition(gBattlerTarget));
|
||||
SetMultiuseSpriteTemplateToPokemon(GetMonData(GetPartyBattlerData(gBattlerTarget), MON_DATA_SPECIES), GetBattlerPosition(gBattlerTarget));
|
||||
gBattlerSpriteIds[gBattlerTarget] = CreateSprite(&gMultiuseSpriteTemplate, DISPLAY_WIDTH / 2, DISPLAY_HEIGHT / 2, GetBattlerSpriteSubpriority(gBattlerTarget));
|
||||
gSprites[gBattlerSpriteIds[gBattlerTarget]].oam.paletteNum = gBattlerTarget;
|
||||
gSprites[gBattlerSpriteIds[gBattlerTarget]].callback = SpriteCallbackDummy;
|
||||
gSprites[gBattlerSpriteIds[gBattlerTarget]].data[0] = gBattlerTarget;
|
||||
gSprites[gBattlerSpriteIds[gBattlerTarget]].data[2] = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerTarget]], MON_DATA_SPECIES);
|
||||
gSprites[gBattlerSpriteIds[gBattlerTarget]].data[2] = GetMonData(GetPartyBattlerData(gBattlerTarget), MON_DATA_SPECIES);
|
||||
|
||||
StartSpriteAnim(&gSprites[gBattlerSpriteIds[gBattlerTarget]], 0);
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user