GetBattlerMon cleanup (#6967)
This commit is contained in:
parent
ec15948ea8
commit
5502fe2c5e
@ -866,15 +866,8 @@ bool8 BattleInitAllSprites(u8 *state1, u8 *battler)
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
if (IsOnPlayerSide(*battler))
|
||||
{
|
||||
if (!(gBattleTypeFlags & BATTLE_TYPE_SAFARI))
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[*battler], GetBattlerMon(*battler), HEALTHBOX_ALL);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!IsOnPlayerSide(*battler) || !(gBattleTypeFlags & BATTLE_TYPE_SAFARI))
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[*battler], GetBattlerMon(*battler), HEALTHBOX_ALL);
|
||||
}
|
||||
SetHealthboxSpriteInvisible(gHealthboxSpriteIds[*battler]);
|
||||
(*battler)++;
|
||||
if (*battler == gBattlersCount)
|
||||
|
||||
@ -1175,12 +1175,13 @@ void SwapHpBarsWithHpText(void)
|
||||
|
||||
for (i = 0; i < gBattlersCount; i++)
|
||||
{
|
||||
struct Pokemon *mon = GetBattlerMon(i);
|
||||
if (gSprites[gHealthboxSpriteIds[i]].callback == SpriteCallbackDummy
|
||||
&& IsOnPlayerSide(i)
|
||||
&& (GetBattlerCoordsIndex(i) != BATTLE_COORDS_SINGLES || !IsOnPlayerSide(i)))
|
||||
{
|
||||
s32 currHp = GetMonData(GetBattlerMon(i), MON_DATA_HP);
|
||||
s32 maxHp = GetMonData(GetBattlerMon(i), MON_DATA_MAX_HP);
|
||||
s32 currHp = GetMonData(mon, MON_DATA_HP);
|
||||
s32 maxHp = GetMonData(mon, MON_DATA_MAX_HP);
|
||||
bool8 noBars;
|
||||
|
||||
gBattleSpritesDataPtr->battlerData[i].hpNumbersNoBars ^= 1;
|
||||
@ -1202,7 +1203,7 @@ void SwapHpBarsWithHpText(void)
|
||||
else // text to bars
|
||||
{
|
||||
UpdateStatusIconInHealthbox(gHealthboxSpriteIds[i]);
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[i], GetBattlerMon(i), HEALTHBOX_HEALTH_BAR);
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[i], mon, HEALTHBOX_HEALTH_BAR);
|
||||
CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_FRAME_END_BAR), (void *)(OBJ_VRAM0 + 0x680 + gSprites[gHealthboxSpriteIds[i]].oam.tileNum * TILE_SIZE_4BPP), 32);
|
||||
}
|
||||
}
|
||||
@ -1213,7 +1214,7 @@ void SwapHpBarsWithHpText(void)
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_SAFARI)
|
||||
{
|
||||
// Most likely a debug function.
|
||||
PrintSafariMonInfo(gHealthboxSpriteIds[i], GetBattlerMon(i));
|
||||
PrintSafariMonInfo(gHealthboxSpriteIds[i], mon);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -1226,9 +1227,9 @@ void SwapHpBarsWithHpText(void)
|
||||
else // text to bars
|
||||
{
|
||||
UpdateStatusIconInHealthbox(gHealthboxSpriteIds[i]);
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[i], GetBattlerMon(i), HEALTHBOX_HEALTH_BAR);
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[i], mon, HEALTHBOX_HEALTH_BAR);
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_SAFARI)
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[i], GetBattlerMon(i), HEALTHBOX_NICK);
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[i], mon, HEALTHBOX_NICK);
|
||||
}
|
||||
}
|
||||
gSprites[gHealthboxSpriteIds[i]].hMain_Data7 ^= 1;
|
||||
@ -1805,9 +1806,9 @@ static void UpdateStatusIconInHealthbox(u8 healthboxSpriteId)
|
||||
|
||||
battler = gSprites[healthboxSpriteId].hMain_Battler;
|
||||
healthBarSpriteId = gSprites[healthboxSpriteId].hMain_HealthBarSpriteId;
|
||||
status = GetMonData(GetBattlerMon(battler), MON_DATA_STATUS);
|
||||
if (IsOnPlayerSide(battler))
|
||||
{
|
||||
status = GetMonData(GetBattlerMon(battler), MON_DATA_STATUS);
|
||||
switch (GetBattlerCoordsIndex(battler))
|
||||
{
|
||||
case BATTLE_COORDS_SINGLES:
|
||||
@ -1820,7 +1821,6 @@ static void UpdateStatusIconInHealthbox(u8 healthboxSpriteId)
|
||||
}
|
||||
else
|
||||
{
|
||||
status = GetMonData(GetBattlerMon(battler), MON_DATA_STATUS);
|
||||
tileNumAdder = 0x11;
|
||||
}
|
||||
|
||||
|
||||
@ -10158,10 +10158,7 @@ static void Cmd_various(void)
|
||||
case VARIOUS_UPDATE_NICK:
|
||||
{
|
||||
VARIOUS_ARGS();
|
||||
if (IsOnPlayerSide(battler))
|
||||
mon = GetBattlerMon(battler);
|
||||
else
|
||||
mon = GetBattlerMon(battler);
|
||||
mon = GetBattlerMon(battler);
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[battler], mon, HEALTHBOX_NICK);
|
||||
break;
|
||||
}
|
||||
@ -15848,7 +15845,8 @@ static void Cmd_handleballthrow(void)
|
||||
MarkBattlerForControllerExec(gBattlerAttacker);
|
||||
TryBattleFormChange(gBattlerTarget, FORM_CHANGE_END_BATTLE);
|
||||
gBattlescriptCurrInstr = BattleScript_SuccessBallThrow;
|
||||
SetMonData(GetBattlerMon(gBattlerTarget), MON_DATA_POKEBALL, &ballId);
|
||||
struct Pokemon *caughtMon = GetBattlerMon(gBattlerTarget);
|
||||
SetMonData(caughtMon, MON_DATA_POKEBALL, &ballId);
|
||||
|
||||
if (CalculatePlayerPartyCount() == PARTY_SIZE)
|
||||
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
|
||||
@ -15857,15 +15855,15 @@ static void Cmd_handleballthrow(void)
|
||||
|
||||
if (ballId == BALL_HEAL)
|
||||
{
|
||||
MonRestorePP(GetBattlerMon(gBattlerTarget));
|
||||
HealStatusConditions(GetBattlerMon(gBattlerTarget), STATUS1_ANY, gBattlerTarget);
|
||||
MonRestorePP(caughtMon);
|
||||
HealStatusConditions(caughtMon, STATUS1_ANY, gBattlerTarget);
|
||||
gBattleMons[gBattlerTarget].hp = gBattleMons[gBattlerTarget].maxHP;
|
||||
SetMonData(GetBattlerMon(gBattlerTarget), MON_DATA_HP, &gBattleMons[gBattlerTarget].hp);
|
||||
SetMonData(caughtMon, MON_DATA_HP, &gBattleMons[gBattlerTarget].hp);
|
||||
}
|
||||
else if (ballId == BALL_FRIEND)
|
||||
{
|
||||
u32 friendship = (B_FRIEND_BALL_MODIFIER >= GEN_8 ? 150 : 200);
|
||||
SetMonData(GetBattlerMon(gBattlerTarget), MON_DATA_FRIENDSHIP, &friendship);
|
||||
SetMonData(caughtMon, MON_DATA_FRIENDSHIP, &friendship);
|
||||
}
|
||||
}
|
||||
else // mon may be caught, calculate shakes
|
||||
@ -15907,7 +15905,8 @@ static void Cmd_handleballthrow(void)
|
||||
|
||||
TryBattleFormChange(gBattlerTarget, FORM_CHANGE_END_BATTLE);
|
||||
gBattlescriptCurrInstr = BattleScript_SuccessBallThrow;
|
||||
SetMonData(GetBattlerMon(gBattlerTarget), MON_DATA_POKEBALL, &ballId);
|
||||
struct Pokemon *caughtMon = GetBattlerMon(gBattlerTarget);
|
||||
SetMonData(caughtMon, MON_DATA_POKEBALL, &ballId);
|
||||
|
||||
if (CalculatePlayerPartyCount() == PARTY_SIZE)
|
||||
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
|
||||
@ -15916,15 +15915,15 @@ static void Cmd_handleballthrow(void)
|
||||
|
||||
if (ballId == BALL_HEAL)
|
||||
{
|
||||
MonRestorePP(GetBattlerMon(gBattlerTarget));
|
||||
HealStatusConditions(GetBattlerMon(gBattlerTarget), STATUS1_ANY, gBattlerTarget);
|
||||
MonRestorePP(caughtMon);
|
||||
HealStatusConditions(caughtMon, STATUS1_ANY, gBattlerTarget);
|
||||
gBattleMons[gBattlerTarget].hp = gBattleMons[gBattlerTarget].maxHP;
|
||||
SetMonData(GetBattlerMon(gBattlerTarget), MON_DATA_HP, &gBattleMons[gBattlerTarget].hp);
|
||||
SetMonData(caughtMon, MON_DATA_HP, &gBattleMons[gBattlerTarget].hp);
|
||||
}
|
||||
else if (ballId == BALL_FRIEND)
|
||||
{
|
||||
u32 friendship = (B_FRIEND_BALL_MODIFIER >= GEN_8 ? 150 : 200);
|
||||
SetMonData(GetBattlerMon(gBattlerTarget), MON_DATA_FRIENDSHIP, &friendship);
|
||||
SetMonData(caughtMon, MON_DATA_FRIENDSHIP, &friendship);
|
||||
}
|
||||
}
|
||||
else // not caught
|
||||
@ -16042,26 +16041,28 @@ static void Cmd_givecaughtmon(void)
|
||||
}
|
||||
break;
|
||||
case GIVECAUGHTMON_GIVE_AND_SHOW_MSG:
|
||||
{
|
||||
struct Pokemon *caughtMon = GetBattlerMon(GetCatchingBattler());
|
||||
if (B_RESTORE_HELD_BATTLE_ITEMS >= GEN_9)
|
||||
{
|
||||
u16 lostItem = gBattleStruct->itemLost[B_SIDE_OPPONENT][gBattlerPartyIndexes[GetCatchingBattler()]].originalItem;
|
||||
if (lostItem != ITEM_NONE && GetItemPocket(lostItem) != POCKET_BERRIES)
|
||||
SetMonData(GetBattlerMon(GetCatchingBattler()), MON_DATA_HELD_ITEM, &lostItem); // Restore non-berry items
|
||||
SetMonData(caughtMon, MON_DATA_HELD_ITEM, &lostItem); // Restore non-berry items
|
||||
}
|
||||
|
||||
if (GiveMonToPlayer(GetBattlerMon(GetCatchingBattler())) != MON_GIVEN_TO_PARTY
|
||||
if (GiveMonToPlayer(caughtMon) != 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(GetBattlerMon(GetCatchingBattler()), MON_DATA_NICKNAME, gStringVar2);
|
||||
GetMonData(caughtMon, MON_DATA_NICKNAME, gStringVar2);
|
||||
}
|
||||
else
|
||||
{
|
||||
StringCopy(gStringVar1, GetBoxNamePtr(VarGet(VAR_PC_BOX_TO_SEND_MON))); // box the mon was sent to
|
||||
GetMonData(GetBattlerMon(GetCatchingBattler()), MON_DATA_NICKNAME, gStringVar2);
|
||||
GetMonData(caughtMon, 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;
|
||||
}
|
||||
@ -16071,9 +16072,9 @@ static void Cmd_givecaughtmon(void)
|
||||
gBattleCommunication[MULTISTRING_CHOOSER]++;
|
||||
}
|
||||
|
||||
gBattleResults.caughtMonSpecies = GetMonData(GetBattlerMon(GetCatchingBattler()), MON_DATA_SPECIES, NULL);
|
||||
GetMonData(GetBattlerMon(GetCatchingBattler()), MON_DATA_NICKNAME, gBattleResults.caughtMonNick);
|
||||
gBattleResults.caughtMonBall = GetMonData(GetBattlerMon(GetCatchingBattler()), MON_DATA_POKEBALL, NULL);
|
||||
gBattleResults.caughtMonSpecies = GetMonData(caughtMon, MON_DATA_SPECIES, NULL);
|
||||
GetMonData(caughtMon, MON_DATA_NICKNAME, gBattleResults.caughtMonNick);
|
||||
gBattleResults.caughtMonBall = GetMonData(caughtMon, MON_DATA_POKEBALL, NULL);
|
||||
|
||||
gSelectedMonPartyId = PARTY_SIZE;
|
||||
gBattleCommunication[MULTIUSE_STATE] = 0;
|
||||
@ -16084,14 +16085,16 @@ static void Cmd_givecaughtmon(void)
|
||||
gBattlescriptCurrInstr = cmd->nextInstr;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void Cmd_trysetcaughtmondexflags(void)
|
||||
{
|
||||
CMD_ARGS(const u8 *failInstr);
|
||||
|
||||
u32 species = GetMonData(GetBattlerMon(GetCatchingBattler()), MON_DATA_SPECIES, NULL);
|
||||
u32 personality = GetMonData(GetBattlerMon(GetCatchingBattler()), MON_DATA_PERSONALITY, NULL);
|
||||
struct Pokemon *caughtMon = GetBattlerMon(GetCatchingBattler());
|
||||
u32 species = GetMonData(caughtMon, MON_DATA_SPECIES, NULL);
|
||||
u32 personality = GetMonData(caughtMon, MON_DATA_PERSONALITY, NULL);
|
||||
|
||||
if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(species), FLAG_GET_CAUGHT))
|
||||
{
|
||||
@ -16108,7 +16111,8 @@ static void Cmd_displaydexinfo(void)
|
||||
{
|
||||
CMD_ARGS();
|
||||
|
||||
u16 species = GetMonData(GetBattlerMon(GetCatchingBattler()), MON_DATA_SPECIES, NULL);
|
||||
struct Pokemon *mon = GetBattlerMon(GetCatchingBattler());
|
||||
u16 species = GetMonData(mon, MON_DATA_SPECIES, NULL);
|
||||
|
||||
switch (gBattleCommunication[0])
|
||||
{
|
||||
@ -16119,7 +16123,6 @@ static void Cmd_displaydexinfo(void)
|
||||
case 1:
|
||||
if (!gPaletteFade.active)
|
||||
{
|
||||
struct Pokemon *mon = GetBattlerMon(GetCatchingBattler());
|
||||
FreeAllWindowBuffers();
|
||||
gBattleCommunication[TASK_ID] = DisplayCaughtMonDexPage(species,
|
||||
GetMonData(mon, MON_DATA_IS_SHINY),
|
||||
@ -16275,14 +16278,15 @@ static void Cmd_trygivecaughtmonnick(void)
|
||||
case 2:
|
||||
if (!gPaletteFade.active)
|
||||
{
|
||||
GetMonData(GetBattlerMon(gBattlerTarget), MON_DATA_NICKNAME, gBattleStruct->caughtMonNick);
|
||||
struct Pokemon *caughtMon = GetBattlerMon(gBattlerTarget);
|
||||
GetMonData(caughtMon, MON_DATA_NICKNAME, gBattleStruct->caughtMonNick);
|
||||
FreeAllWindowBuffers();
|
||||
MainCallback callback = CalculatePlayerPartyCount() == PARTY_SIZE ? ReshowBlankBattleScreenAfterMenu : BattleMainCB2;
|
||||
|
||||
DoNamingScreen(NAMING_SCREEN_CAUGHT_MON, gBattleStruct->caughtMonNick,
|
||||
GetMonData(GetBattlerMon(gBattlerTarget), MON_DATA_SPECIES),
|
||||
GetMonGender(GetBattlerMon(gBattlerTarget)),
|
||||
GetMonData(GetBattlerMon(gBattlerTarget), MON_DATA_PERSONALITY, NULL),
|
||||
GetMonData(caughtMon, MON_DATA_SPECIES),
|
||||
GetMonGender(caughtMon),
|
||||
GetMonData(caughtMon, MON_DATA_PERSONALITY, NULL),
|
||||
callback);
|
||||
|
||||
gBattleCommunication[MULTIUSE_STATE]++;
|
||||
@ -17674,24 +17678,26 @@ static void TryUpdateEvolutionTracker(u32 evolutionCondition, u32 upAmount, u16
|
||||
{
|
||||
if (evolutions[i].params[j].condition == evolutionCondition)
|
||||
{
|
||||
struct Pokemon *monAtk = GetBattlerMon(gBattlerAttacker);
|
||||
struct Pokemon *monDef = GetBattlerMon(gBattlerTarget);
|
||||
// We only have 10 bits to use
|
||||
u16 val = min(1023, GetMonData(GetBattlerMon(gBattlerAttacker), MON_DATA_EVOLUTION_TRACKER) + upAmount);
|
||||
u16 val = min(1023, GetMonData(monAtk, 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(GetBattlerMon(gBattlerAttacker), MON_DATA_EVOLUTION_TRACKER, &val);
|
||||
SetMonData(monAtk, MON_DATA_EVOLUTION_TRACKER, &val);
|
||||
break;
|
||||
case IF_RECOIL_DAMAGE_GE:
|
||||
if (gBattleMons[gBattlerAttacker].hp == 0)
|
||||
val = 0;
|
||||
SetMonData(GetBattlerMon(gBattlerAttacker), MON_DATA_EVOLUTION_TRACKER, &val);
|
||||
SetMonData(monAtk, MON_DATA_EVOLUTION_TRACKER, &val);
|
||||
break;
|
||||
case IF_DEFEAT_X_WITH_ITEMS:
|
||||
if (GetMonData(GetBattlerMon(gBattlerTarget), MON_DATA_SPECIES) == evolutions[i].params[j].arg1
|
||||
&& GetMonData(GetBattlerMon(gBattlerTarget), MON_DATA_HELD_ITEM) == evolutions[i].params[j].arg2)
|
||||
SetMonData(GetBattlerMon(gBattlerAttacker), MON_DATA_EVOLUTION_TRACKER, &val);
|
||||
if (GetMonData(monDef, MON_DATA_SPECIES) == evolutions[i].params[j].arg1
|
||||
&& GetMonData(monDef, MON_DATA_HELD_ITEM) == evolutions[i].params[j].arg2)
|
||||
SetMonData(monAtk, MON_DATA_EVOLUTION_TRACKER, &val);
|
||||
break;
|
||||
}
|
||||
return;
|
||||
|
||||
@ -10194,12 +10194,7 @@ bool32 TryClearIllusion(u32 battler, u32 caseID)
|
||||
struct Pokemon *GetIllusionMonPtr(u32 battler)
|
||||
{
|
||||
if (gBattleStruct->illusion[battler].state == ILLUSION_NOT_SET)
|
||||
{
|
||||
if (IsOnPlayerSide(battler))
|
||||
SetIllusionMon(GetBattlerMon(battler), battler);
|
||||
else
|
||||
SetIllusionMon(GetBattlerMon(battler), battler);
|
||||
}
|
||||
SetIllusionMon(GetBattlerMon(battler), battler);
|
||||
if (gBattleStruct->illusion[battler].state != ILLUSION_ON)
|
||||
return NULL;
|
||||
|
||||
|
||||
@ -95,17 +95,10 @@ void AdjustFriendshipOnBattleFaint(u8 battler)
|
||||
opposingBattlerId = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT);
|
||||
}
|
||||
|
||||
if (gBattleMons[opposingBattlerId].level > gBattleMons[battler].level)
|
||||
{
|
||||
if (gBattleMons[opposingBattlerId].level - gBattleMons[battler].level > 29)
|
||||
AdjustFriendship(GetBattlerMon(battler), FRIENDSHIP_EVENT_FAINT_LARGE);
|
||||
else
|
||||
AdjustFriendship(GetBattlerMon(battler), FRIENDSHIP_EVENT_FAINT_SMALL);
|
||||
}
|
||||
if (gBattleMons[opposingBattlerId].level - gBattleMons[battler].level > 29)
|
||||
AdjustFriendship(GetBattlerMon(battler), FRIENDSHIP_EVENT_FAINT_LARGE);
|
||||
else
|
||||
{
|
||||
AdjustFriendship(GetBattlerMon(battler), FRIENDSHIP_EVENT_FAINT_SMALL);
|
||||
}
|
||||
}
|
||||
|
||||
void SwitchPartyOrderInGameMulti(u8 battler, u8 arg1)
|
||||
|
||||
@ -758,25 +758,26 @@ void RecordedBattle_CheckMovesetChanges(u8 mode)
|
||||
|
||||
if (!(gBattleMons[battler].status2 & STATUS2_TRANSFORMED))
|
||||
{
|
||||
struct Pokemon *mon = GetBattlerMon(battler);
|
||||
for (j = 0; j < MAX_MON_MOVES; j++)
|
||||
ppBonuses[j] = (GetMonData(GetBattlerMon(battler), MON_DATA_PP_BONUSES, NULL) & ((3 << (j << 1)))) >> (j << 1);
|
||||
ppBonuses[j] = (GetMonData(mon, MON_DATA_PP_BONUSES, NULL) & ((3 << (j << 1)))) >> (j << 1);
|
||||
|
||||
for (j = 0; j < MAX_MON_MOVES; j++)
|
||||
{
|
||||
movePp.moves[j] = GetMonData(GetBattlerMon(battler), MON_DATA_MOVE1 + moveSlots[j], NULL);
|
||||
movePp.currentPp[j] = GetMonData(GetBattlerMon(battler), MON_DATA_PP1 + moveSlots[j], NULL);
|
||||
movePp.moves[j] = GetMonData(mon, MON_DATA_MOVE1 + moveSlots[j], NULL);
|
||||
movePp.currentPp[j] = GetMonData(mon, MON_DATA_PP1 + moveSlots[j], NULL);
|
||||
movePp.maxPp[j] = ppBonuses[moveSlots[j]];
|
||||
}
|
||||
for (j = 0; j < MAX_MON_MOVES; j++)
|
||||
{
|
||||
SetMonData(GetBattlerMon(battler), MON_DATA_MOVE1 + j, &movePp.moves[j]);
|
||||
SetMonData(GetBattlerMon(battler), MON_DATA_PP1 + j, &movePp.currentPp[j]);
|
||||
SetMonData(mon, MON_DATA_MOVE1 + j, &movePp.moves[j]);
|
||||
SetMonData(mon, MON_DATA_PP1 + j, &movePp.currentPp[j]);
|
||||
}
|
||||
ppBonusSet = 0;
|
||||
for (j = 0; j < MAX_MON_MOVES; j++)
|
||||
ppBonusSet |= movePp.maxPp[j] << (j << 1);
|
||||
|
||||
SetMonData(GetBattlerMon(battler), MON_DATA_PP_BONUSES, &ppBonusSet);
|
||||
SetMonData(mon, MON_DATA_PP_BONUSES, &ppBonusSet);
|
||||
}
|
||||
gChosenMoveByBattler[battler] = gBattleMons[battler].moves[gBattleStruct->chosenMovePositions[battler]];
|
||||
}
|
||||
|
||||
@ -302,17 +302,19 @@ void CreateBattlerSprite(u32 battler)
|
||||
|
||||
if (!IsOnPlayerSide(battler))
|
||||
{
|
||||
if (GetMonData(GetBattlerMon(battler), MON_DATA_HP) == 0)
|
||||
struct Pokemon *mon = GetBattlerMon(battler);
|
||||
if (GetMonData(mon, MON_DATA_HP) == 0)
|
||||
return;
|
||||
if (gBattleScripting.monCaught) // Don't create opponent sprite if it has been caught.
|
||||
return;
|
||||
u32 species = GetMonData(mon, MON_DATA_SPECIES);
|
||||
|
||||
SetMultiuseSpriteTemplateToPokemon(GetMonData(GetBattlerMon(battler), MON_DATA_SPECIES), GetBattlerPosition(battler));
|
||||
SetMultiuseSpriteTemplateToPokemon(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(GetBattlerMon(battler), MON_DATA_SPECIES);
|
||||
gSprites[gBattlerSpriteIds[battler]].data[2] = species;
|
||||
|
||||
StartSpriteAnim(&gSprites[gBattlerSpriteIds[battler]], 0);
|
||||
}
|
||||
@ -338,15 +340,17 @@ void CreateBattlerSprite(u32 battler)
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!IsValidForBattle(GetBattlerMon(battler)))
|
||||
struct Pokemon *mon = GetBattlerMon(battler);
|
||||
if (!IsValidForBattle(mon))
|
||||
return;
|
||||
u32 species = GetMonData(mon, MON_DATA_SPECIES);
|
||||
|
||||
SetMultiuseSpriteTemplateToPokemon(GetMonData(GetBattlerMon(battler), MON_DATA_SPECIES), GetBattlerPosition(battler));
|
||||
SetMultiuseSpriteTemplateToPokemon(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(GetBattlerMon(battler), MON_DATA_SPECIES);
|
||||
gSprites[gBattlerSpriteIds[battler]].data[2] = species;
|
||||
|
||||
StartSpriteAnim(&gSprites[gBattlerSpriteIds[battler]], 0);
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user