diff --git a/src/battle_ai_switch_items.c b/src/battle_ai_switch_items.c index 6c6a54ded7..c550139a03 100644 --- a/src/battle_ai_switch_items.c +++ b/src/battle_ai_switch_items.c @@ -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: diff --git a/src/battle_anim.c b/src/battle_anim.c index 2f9e46d1de..2c8ff54fed 100644 --- a/src/battle_anim.c +++ b/src/battle_anim.c @@ -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; diff --git a/src/battle_anim_new.c b/src/battle_anim_new.c index 158f4baf1e..eef723f7e7 100644 --- a/src/battle_anim_new.c +++ b/src/battle_anim_new.c @@ -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); } diff --git a/src/battle_controller_link_opponent.c b/src/battle_controller_link_opponent.c index 1e4bf628db..3401857270 100644 --- a/src/battle_controller_link_opponent.c +++ b/src/battle_controller_link_opponent.c @@ -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; } } diff --git a/src/battle_controller_link_partner.c b/src/battle_controller_link_partner.c index 264a4c1313..1ad702cc5d 100644 --- a/src/battle_controller_link_partner.c +++ b/src/battle_controller_link_partner.c @@ -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 diff --git a/src/battle_controller_opponent.c b/src/battle_controller_opponent.c index 654311c417..034ed9fcdd 100644 --- a/src/battle_controller_opponent.c +++ b/src/battle_controller_opponent.c @@ -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; } } diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c index 1ed2eae6db..f36a2c9687 100644 --- a/src/battle_controller_player.c +++ b/src/battle_controller_player.c @@ -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); diff --git a/src/battle_controller_player_partner.c b/src/battle_controller_player_partner.c index feb860a286..d8590c39c1 100644 --- a/src/battle_controller_player_partner.c +++ b/src/battle_controller_player_partner.c @@ -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 diff --git a/src/battle_controller_recorded_opponent.c b/src/battle_controller_recorded_opponent.c index 38d2e0ea02..70a8ae6d06 100644 --- a/src/battle_controller_recorded_opponent.c +++ b/src/battle_controller_recorded_opponent.c @@ -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)); } } diff --git a/src/battle_controller_recorded_player.c b/src/battle_controller_recorded_player.c index dd66f98021..cbc974510b 100644 --- a/src/battle_controller_recorded_player.c +++ b/src/battle_controller_recorded_player.c @@ -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)); } } diff --git a/src/battle_controller_safari.c b/src/battle_controller_safari.c index 2d85ddaaec..2c0b259769 100644 --- a/src/battle_controller_safari.c +++ b/src/battle_controller_safari.c @@ -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; diff --git a/src/battle_controller_wally.c b/src/battle_controller_wally.c index c17c52189b..13036a9d17 100644 --- a/src/battle_controller_wally.c +++ b/src/battle_controller_wally.c @@ -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); diff --git a/src/battle_controllers.c b/src/battle_controllers.c index c7a3931e14..736dc47e7d 100644 --- a/src/battle_controllers.c +++ b/src/battle_controllers.c @@ -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); } diff --git a/src/battle_debug.c b/src/battle_debug.c index efdebf6377..8eba2ac936 100644 --- a/src/battle_debug.c +++ b/src/battle_debug.c @@ -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), diff --git a/src/battle_gfx_sfx_util.c b/src/battle_gfx_sfx_util.c index 7e3d783b1b..c4b8df1d9c 100644 --- a/src/battle_gfx_sfx_util.c +++ b/src/battle_gfx_sfx_util.c @@ -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); } } diff --git a/src/battle_interface.c b/src/battle_interface.c index 1f85e68eea..1a34c6c0e9 100644 --- a/src/battle_interface.c +++ b/src/battle_interface.c @@ -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++) diff --git a/src/battle_main.c b/src/battle_main.c index d049dbb370..7737592d32 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -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]); diff --git a/src/battle_message.c b/src/battle_message.c index 0635aef7a5..3dff0b2907 100644 --- a/src/battle_message.c +++ b/src/battle_message.c @@ -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; diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index b694fff48a..fe00417616 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -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 diff --git a/src/battle_terastal.c b/src/battle_terastal.c index c87eb094bd..be40db7589 100644 --- a/src/battle_terastal.c +++ b/src/battle_terastal.c @@ -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. diff --git a/src/battle_tower.c b/src/battle_tower.c index 74eeea380e..9eda5fb884 100644 --- a/src/battle_tower.c +++ b/src/battle_tower.c @@ -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; diff --git a/src/battle_tv.c b/src/battle_tv.c index ab36c003ad..19e250ec07 100644 --- a/src/battle_tv.c +++ b/src/battle_tv.c @@ -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++; } diff --git a/src/battle_util.c b/src/battle_util.c index 964372e0ce..6e1ea967f2 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -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; diff --git a/src/battle_util2.c b/src/battle_util2.c index 3fd6549a19..369d4b6357 100644 --- a/src/battle_util2.c +++ b/src/battle_util2.c @@ -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); } } diff --git a/src/pokemon_animation.c b/src/pokemon_animation.c index 6bd32ee514..c33e37750c 100644 --- a/src/pokemon_animation.c +++ b/src/pokemon_animation.c @@ -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; diff --git a/src/recorded_battle.c b/src/recorded_battle.c index d2bd9c9156..54f2f712b8 100644 --- a/src/recorded_battle.c +++ b/src/recorded_battle.c @@ -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]]; } diff --git a/src/reshow_battle_screen.c b/src/reshow_battle_screen.c index ba6f615595..db6642478b 100644 --- a/src/reshow_battle_screen.c +++ b/src/reshow_battle_screen.c @@ -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);