mirror of
https://github.com/pret/pokeemerald.git
synced 2026-03-21 17:54:57 -05:00
cleanup GetMon Null Data Instances (#8867)
Co-authored-by: Meister-anon <user@DESKTOP-TQ65PS9>
This commit is contained in:
parent
3dfef14c77
commit
6aaf5d43dc
|
|
@ -242,10 +242,10 @@ static u32 GetHPHealAmount(u8 itemEffectParam, struct Pokemon *mon)
|
|||
switch (itemEffectParam)
|
||||
{
|
||||
case ITEM6_HEAL_HP_FULL:
|
||||
itemEffectParam = GetMonData(mon, MON_DATA_MAX_HP, NULL) - GetMonData(mon, MON_DATA_HP, NULL);
|
||||
itemEffectParam = GetMonData(mon, MON_DATA_MAX_HP) - GetMonData(mon, MON_DATA_HP);
|
||||
break;
|
||||
case ITEM6_HEAL_HP_HALF:
|
||||
itemEffectParam = GetMonData(mon, MON_DATA_MAX_HP, NULL) / 2;
|
||||
itemEffectParam = GetMonData(mon, MON_DATA_MAX_HP) / 2;
|
||||
if (itemEffectParam == 0)
|
||||
itemEffectParam = 1;
|
||||
break;
|
||||
|
|
@ -253,7 +253,7 @@ static u32 GetHPHealAmount(u8 itemEffectParam, struct Pokemon *mon)
|
|||
itemEffectParam = gBattleScripting.levelUpHP;
|
||||
break;
|
||||
case ITEM6_HEAL_HP_QUARTER:
|
||||
itemEffectParam = GetMonData(mon, MON_DATA_MAX_HP, NULL) / 4;
|
||||
itemEffectParam = GetMonData(mon, MON_DATA_MAX_HP) / 4;
|
||||
if (itemEffectParam == 0)
|
||||
itemEffectParam = 1;
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -1051,7 +1051,7 @@ static bool32 CanMonSurviveHazardSwitchin(u32 battler)
|
|||
|
||||
for (u32 moveIndex = 0; moveIndex < MAX_MON_MOVES; moveIndex++)
|
||||
{
|
||||
aiMove = GetMonData(&party[monIndex], MON_DATA_MOVE1 + moveIndex, NULL);
|
||||
aiMove = GetMonData(&party[monIndex], MON_DATA_MOVE1 + moveIndex);
|
||||
if (IsHazardClearingMove(aiMove)) // Have a mon that can clear the hazards, so switching out is okay
|
||||
return TRUE;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4405,7 +4405,7 @@ bool32 ShouldUseWishAromatherapy(u32 battlerAtk, u32 battlerDef, enum Move move)
|
|||
u32 currHp = GetMonData(&party[monIndex], MON_DATA_HP);
|
||||
u32 maxHp = GetMonData(&party[monIndex], MON_DATA_MAX_HP);
|
||||
|
||||
if (!GetMonData(&party[monIndex], MON_DATA_IS_EGG, NULL) && currHp > 0)
|
||||
if (!GetMonData(&party[monIndex], MON_DATA_IS_EGG) && currHp > 0)
|
||||
{
|
||||
if ((currHp * 100) / maxHp < 65 // Less than 65% health remaining
|
||||
&& monIndex >= firstId && monIndex < lastId) // Can only switch to mon on your team
|
||||
|
|
@ -4559,13 +4559,13 @@ bool32 PartyHasMoveCategory(u32 battlerId, enum DamageCategory category)
|
|||
|
||||
for (u32 monIndex = 0; monIndex < PARTY_SIZE; monIndex++)
|
||||
{
|
||||
if (GetMonData(&party[monIndex], MON_DATA_HP, NULL) == 0)
|
||||
if (GetMonData(&party[monIndex], MON_DATA_HP) == 0)
|
||||
continue;
|
||||
|
||||
for (u32 moveIndex = 0; moveIndex < MAX_MON_MOVES; moveIndex++)
|
||||
{
|
||||
enum Move move = GetMonData(&party[monIndex], MON_DATA_MOVE1 + moveIndex, NULL);
|
||||
u32 pp = GetMonData(&party[monIndex], MON_DATA_PP1 + moveIndex, NULL);
|
||||
enum Move move = GetMonData(&party[monIndex], MON_DATA_MOVE1 + moveIndex);
|
||||
u32 pp = GetMonData(&party[monIndex], MON_DATA_PP1 + moveIndex);
|
||||
|
||||
if (pp > 0 && move != MOVE_NONE)
|
||||
{
|
||||
|
|
@ -4814,10 +4814,10 @@ static enum AIScore IncreaseStatUpScoreInternal(u32 battlerAtk, u32 battlerDef,
|
|||
// If expected switchin outspeeds and has Encore, don't increase
|
||||
for (u32 monIndex = 0; monIndex < MAX_MON_MOVES; monIndex++)
|
||||
{
|
||||
if (GetMoveEffect(GetMonData(&playerParty[gAiLogicData->mostSuitableMonId[battlerDef]], MON_DATA_MOVE1 + monIndex, NULL)) == EFFECT_ENCORE
|
||||
&& GetMonData(&playerParty[gAiLogicData->mostSuitableMonId[battlerDef]], MON_DATA_PP1 + monIndex, NULL) > 0);
|
||||
if (GetMoveEffect(GetMonData(&playerParty[gAiLogicData->mostSuitableMonId[battlerDef]], MON_DATA_MOVE1 + monIndex)) == EFFECT_ENCORE
|
||||
&& GetMonData(&playerParty[gAiLogicData->mostSuitableMonId[battlerDef]], MON_DATA_PP1 + monIndex) > 0);
|
||||
{
|
||||
if (GetMonData(&playerParty[gAiLogicData->mostSuitableMonId[battlerDef]], MON_DATA_SPEED, NULL) > gBattleMons[battlerAtk].speed)
|
||||
if (GetMonData(&playerParty[gAiLogicData->mostSuitableMonId[battlerDef]], MON_DATA_SPEED) > gBattleMons[battlerAtk].speed)
|
||||
return NO_INCREASE;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -657,7 +657,7 @@ static u8 GetBattleEnvironmentOverride(void)
|
|||
return BATTLE_ENVIRONMENT_FRONTIER;
|
||||
else if (gBattleTypeFlags & BATTLE_TYPE_LEGENDARY)
|
||||
{
|
||||
switch (GetMonData(&gEnemyParty[0], MON_DATA_SPECIES, NULL))
|
||||
switch (GetMonData(&gEnemyParty[0], MON_DATA_SPECIES))
|
||||
{
|
||||
case SPECIES_GROUDON:
|
||||
return BATTLE_ENVIRONMENT_GROUDON;
|
||||
|
|
|
|||
|
|
@ -1935,11 +1935,11 @@ static void InitDomeTrainers(void)
|
|||
// Store the data used to display party information on the player's tourney page
|
||||
for (i = 0; i < FRONTIER_PARTY_SIZE; i++)
|
||||
{
|
||||
DOME_MONS[0][i] = GetMonData(&gPlayerParty[gSaveBlock2Ptr->frontier.selectedPartyMons[i] - 1], MON_DATA_SPECIES, NULL);
|
||||
DOME_MONS[0][i] = GetMonData(&gPlayerParty[gSaveBlock2Ptr->frontier.selectedPartyMons[i] - 1], MON_DATA_SPECIES);
|
||||
for (j = 0; j < MAX_MON_MOVES; j++)
|
||||
gSaveBlock2Ptr->frontier.domePlayerPartyData[i].moves[j] = GetMonData(&gPlayerParty[gSaveBlock2Ptr->frontier.selectedPartyMons[i] - 1], MON_DATA_MOVE1 + j, NULL);
|
||||
gSaveBlock2Ptr->frontier.domePlayerPartyData[i].moves[j] = GetMonData(&gPlayerParty[gSaveBlock2Ptr->frontier.selectedPartyMons[i] - 1], MON_DATA_MOVE1 + j);
|
||||
for (j = 0; j < NUM_STATS; j++)
|
||||
gSaveBlock2Ptr->frontier.domePlayerPartyData[i].evs[j] = GetMonData(&gPlayerParty[gSaveBlock2Ptr->frontier.selectedPartyMons[i] - 1], MON_DATA_HP_EV + j, NULL);
|
||||
gSaveBlock2Ptr->frontier.domePlayerPartyData[i].evs[j] = GetMonData(&gPlayerParty[gSaveBlock2Ptr->frontier.selectedPartyMons[i] - 1], MON_DATA_HP_EV + j);
|
||||
|
||||
gSaveBlock2Ptr->frontier.domePlayerPartyData[i].nature = GetNature(&gPlayerParty[gSaveBlock2Ptr->frontier.selectedPartyMons[i] - 1]);
|
||||
}
|
||||
|
|
@ -2012,14 +2012,14 @@ static void InitDomeTrainers(void)
|
|||
{
|
||||
// trainerId var re-used here as index of selected mons
|
||||
trainerId = gSaveBlock2Ptr->frontier.selectedPartyMons[i] - 1;
|
||||
rankingScores[0] += GetMonData(&gPlayerParty[trainerId], MON_DATA_ATK, NULL);
|
||||
rankingScores[0] += GetMonData(&gPlayerParty[trainerId], MON_DATA_DEF, NULL);
|
||||
rankingScores[0] += GetMonData(&gPlayerParty[trainerId], MON_DATA_SPATK, NULL);
|
||||
rankingScores[0] += GetMonData(&gPlayerParty[trainerId], MON_DATA_SPDEF, NULL);
|
||||
rankingScores[0] += GetMonData(&gPlayerParty[trainerId], MON_DATA_SPEED, NULL);
|
||||
rankingScores[0] += GetMonData(&gPlayerParty[trainerId], MON_DATA_MAX_HP, NULL);
|
||||
monTypesBits |= 1u << GetSpeciesType(GetMonData(&gPlayerParty[trainerId], MON_DATA_SPECIES, NULL), 0);
|
||||
monTypesBits |= 1u << GetSpeciesType(GetMonData(&gPlayerParty[trainerId], MON_DATA_SPECIES, NULL), 1);
|
||||
rankingScores[0] += GetMonData(&gPlayerParty[trainerId], MON_DATA_ATK);
|
||||
rankingScores[0] += GetMonData(&gPlayerParty[trainerId], MON_DATA_DEF);
|
||||
rankingScores[0] += GetMonData(&gPlayerParty[trainerId], MON_DATA_SPATK);
|
||||
rankingScores[0] += GetMonData(&gPlayerParty[trainerId], MON_DATA_SPDEF);
|
||||
rankingScores[0] += GetMonData(&gPlayerParty[trainerId], MON_DATA_SPEED);
|
||||
rankingScores[0] += GetMonData(&gPlayerParty[trainerId], MON_DATA_MAX_HP);
|
||||
monTypesBits |= 1u << GetSpeciesType(GetMonData(&gPlayerParty[trainerId], MON_DATA_SPECIES), 0);
|
||||
monTypesBits |= 1u << GetSpeciesType(GetMonData(&gPlayerParty[trainerId], MON_DATA_SPECIES), 1);
|
||||
}
|
||||
|
||||
// Count the number of types in the players party, to factor into the ranking
|
||||
|
|
@ -2270,12 +2270,12 @@ static int SelectOpponentMons_Good(u16 tournamentTrainerId, bool8 allowRandom)
|
|||
if (DOME_TRAINERS[tournamentTrainerId].trainerId == TRAINER_FRONTIER_BRAIN)
|
||||
{
|
||||
partyMovePoints[i] += GetTypeEffectivenessPoints(GetFrontierBrainMonMove(i, moveIndex),
|
||||
GetMonData(&gPlayerParty[playerMonId], MON_DATA_SPECIES, NULL), EFFECTIVENESS_MODE_GOOD);
|
||||
GetMonData(&gPlayerParty[playerMonId], MON_DATA_SPECIES), EFFECTIVENESS_MODE_GOOD);
|
||||
}
|
||||
else
|
||||
{
|
||||
partyMovePoints[i] += GetTypeEffectivenessPoints(gFacilityTrainerMons[DOME_MONS[tournamentTrainerId][i]].moves[moveIndex],
|
||||
GetMonData(&gPlayerParty[playerMonId], MON_DATA_SPECIES, NULL), EFFECTIVENESS_MODE_GOOD);
|
||||
GetMonData(&gPlayerParty[playerMonId], MON_DATA_SPECIES), EFFECTIVENESS_MODE_GOOD);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -2299,12 +2299,12 @@ static int SelectOpponentMons_Bad(u16 tournamentTrainerId, bool8 allowRandom)
|
|||
if (DOME_TRAINERS[tournamentTrainerId].trainerId == TRAINER_FRONTIER_BRAIN)
|
||||
{
|
||||
partyMovePoints[i] += GetTypeEffectivenessPoints(GetFrontierBrainMonMove(i, moveIndex),
|
||||
GetMonData(&gPlayerParty[playerMonId], MON_DATA_SPECIES, NULL), EFFECTIVENESS_MODE_BAD);
|
||||
GetMonData(&gPlayerParty[playerMonId], MON_DATA_SPECIES), EFFECTIVENESS_MODE_BAD);
|
||||
}
|
||||
else
|
||||
{
|
||||
partyMovePoints[i] += GetTypeEffectivenessPoints(gFacilityTrainerMons[DOME_MONS[tournamentTrainerId][i]].moves[moveIndex],
|
||||
GetMonData(&gPlayerParty[playerMonId], MON_DATA_SPECIES, NULL), EFFECTIVENESS_MODE_BAD);
|
||||
GetMonData(&gPlayerParty[playerMonId], MON_DATA_SPECIES), EFFECTIVENESS_MODE_BAD);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -5666,7 +5666,7 @@ static void ResetSketchedMoves(void)
|
|||
count = 0;
|
||||
while (count < MAX_MON_MOVES)
|
||||
{
|
||||
if (GetMonData(GetSavedPlayerPartyMon(playerMonId), MON_DATA_MOVE1 + count, NULL) == GetMonData(&gPlayerParty[i], MON_DATA_MOVE1 + moveSlot, NULL))
|
||||
if (GetMonData(GetSavedPlayerPartyMon(playerMonId), MON_DATA_MOVE1 + count) == GetMonData(&gPlayerParty[i], MON_DATA_MOVE1 + moveSlot))
|
||||
break;
|
||||
count++;
|
||||
}
|
||||
|
|
@ -5685,7 +5685,7 @@ static void RestoreDomePlayerPartyHeldItems(void)
|
|||
for (i = 0; i < DOME_BATTLE_PARTY_SIZE; i++)
|
||||
{
|
||||
int playerMonId = gSaveBlock2Ptr->frontier.selectedPartyMons[gSelectedOrderFromParty[i] - 1] - 1;
|
||||
u16 item = GetMonData(GetSavedPlayerPartyMon(playerMonId), MON_DATA_HELD_ITEM, NULL);
|
||||
u16 item = GetMonData(GetSavedPlayerPartyMon(playerMonId), MON_DATA_HELD_ITEM);
|
||||
SetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM, &item);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -325,9 +325,9 @@ static void SetRentalsToOpponentParty(void)
|
|||
for (i = 0; i < FRONTIER_PARTY_SIZE; i++)
|
||||
{
|
||||
gSaveBlock2Ptr->frontier.rentalMons[i + FRONTIER_PARTY_SIZE].monId = gFrontierTempParty[i];
|
||||
gSaveBlock2Ptr->frontier.rentalMons[i + FRONTIER_PARTY_SIZE].ivs = GetBoxMonData(&gEnemyParty[i].box, MON_DATA_ATK_IV, NULL);
|
||||
gSaveBlock2Ptr->frontier.rentalMons[i + FRONTIER_PARTY_SIZE].personality = GetMonData(&gEnemyParty[i], MON_DATA_PERSONALITY, NULL);
|
||||
gSaveBlock2Ptr->frontier.rentalMons[i + FRONTIER_PARTY_SIZE].abilityNum = GetBoxMonData(&gEnemyParty[i].box, MON_DATA_ABILITY_NUM, NULL);
|
||||
gSaveBlock2Ptr->frontier.rentalMons[i + FRONTIER_PARTY_SIZE].ivs = GetBoxMonData(&gEnemyParty[i].box, MON_DATA_ATK_IV);
|
||||
gSaveBlock2Ptr->frontier.rentalMons[i + FRONTIER_PARTY_SIZE].personality = GetMonData(&gEnemyParty[i], MON_DATA_PERSONALITY);
|
||||
gSaveBlock2Ptr->frontier.rentalMons[i + FRONTIER_PARTY_SIZE].abilityNum = GetBoxMonData(&gEnemyParty[i].box, MON_DATA_ABILITY_NUM);
|
||||
SetMonData(&gEnemyParty[i], MON_DATA_HELD_ITEM, &gFacilityTrainerMons[gFrontierTempParty[i]].heldItem);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1772,9 +1772,9 @@ static void Select_CopyMonsToPlayerParty(void)
|
|||
{
|
||||
gPlayerParty[i] = sFactorySelectScreen->mons[j].monData;
|
||||
gSaveBlock2Ptr->frontier.rentalMons[i].monId = sFactorySelectScreen->mons[j].monId;
|
||||
gSaveBlock2Ptr->frontier.rentalMons[i].personality = GetMonData(&gPlayerParty[i], MON_DATA_PERSONALITY, NULL);
|
||||
gSaveBlock2Ptr->frontier.rentalMons[i].abilityNum = GetBoxMonData(&gPlayerParty[i].box, MON_DATA_ABILITY_NUM, NULL);
|
||||
gSaveBlock2Ptr->frontier.rentalMons[i].ivs = GetBoxMonData(&gPlayerParty[i].box, MON_DATA_ATK_IV, NULL);
|
||||
gSaveBlock2Ptr->frontier.rentalMons[i].personality = GetMonData(&gPlayerParty[i], MON_DATA_PERSONALITY);
|
||||
gSaveBlock2Ptr->frontier.rentalMons[i].abilityNum = GetBoxMonData(&gPlayerParty[i].box, MON_DATA_ABILITY_NUM);
|
||||
gSaveBlock2Ptr->frontier.rentalMons[i].ivs = GetBoxMonData(&gPlayerParty[i].box, MON_DATA_ATK_IV);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -1836,7 +1836,7 @@ static void Select_PrintMonSpecies(void)
|
|||
u8 monId = sFactorySelectScreen->cursorPos;
|
||||
|
||||
FillWindowPixelBuffer(SELECT_WIN_SPECIES, PIXEL_FILL(0));
|
||||
species = GetMonData(&sFactorySelectScreen->mons[monId].monData, MON_DATA_SPECIES, NULL);
|
||||
species = GetMonData(&sFactorySelectScreen->mons[monId].monData, MON_DATA_SPECIES);
|
||||
StringCopy(gStringVar4, GetSpeciesName(species));
|
||||
x = GetStringRightAlignXOffset(FONT_NORMAL, gStringVar4, 86);
|
||||
AddTextPrinterParameterized3(SELECT_WIN_SPECIES, FONT_NORMAL, x, 1, sSpeciesNameTextColors, 0, gStringVar4);
|
||||
|
|
@ -1956,7 +1956,7 @@ static void Select_PrintMonCategory(void)
|
|||
{
|
||||
PutWindowTilemap(SELECT_WIN_MON_CATEGORY);
|
||||
FillWindowPixelBuffer(SELECT_WIN_MON_CATEGORY, PIXEL_FILL(0));
|
||||
species = GetMonData(&sFactorySelectScreen->mons[monId].monData, MON_DATA_SPECIES, NULL);
|
||||
species = GetMonData(&sFactorySelectScreen->mons[monId].monData, MON_DATA_SPECIES);
|
||||
CopyMonCategoryText(species, text);
|
||||
x = GetStringRightAlignXOffset(FONT_NORMAL, text, 118);
|
||||
AddTextPrinterParameterized(SELECT_WIN_MON_CATEGORY, FONT_NORMAL, text, x, 1, 0, NULL);
|
||||
|
|
@ -1968,9 +1968,9 @@ static void Select_CreateMonSprite(void)
|
|||
{
|
||||
u8 monId = sFactorySelectScreen->cursorPos;
|
||||
struct Pokemon *mon = &sFactorySelectScreen->mons[monId].monData;
|
||||
u16 species = GetMonData(mon, MON_DATA_SPECIES, NULL);
|
||||
u32 personality = GetMonData(mon, MON_DATA_PERSONALITY, NULL);
|
||||
bool8 isShiny = GetMonData(mon, MON_DATA_IS_SHINY, NULL);
|
||||
u16 species = GetMonData(mon, MON_DATA_SPECIES);
|
||||
u32 personality = GetMonData(mon, MON_DATA_PERSONALITY);
|
||||
bool8 isShiny = GetMonData(mon, MON_DATA_IS_SHINY);
|
||||
|
||||
sFactorySelectScreen->monPics[1].monSpriteId = CreateMonPicSprite(species, isShiny, personality, TRUE, 88, 32, 15, TAG_NONE);
|
||||
gSprites[sFactorySelectScreen->monPics[1].monSpriteId].centerToCornerVecX = 0;
|
||||
|
|
@ -1995,9 +1995,9 @@ static void Select_ReshowMonSprite(void)
|
|||
StartSpriteAffineAnim(&gSprites[sFactorySelectScreen->monPics[1].bgSpriteId], 2);
|
||||
|
||||
mon = &sFactorySelectScreen->mons[sFactorySelectScreen->cursorPos].monData;
|
||||
species = GetMonData(mon, MON_DATA_SPECIES, NULL);
|
||||
personality = GetMonData(mon, MON_DATA_PERSONALITY, NULL);
|
||||
isShiny = GetMonData(mon, MON_DATA_IS_SHINY, NULL);
|
||||
species = GetMonData(mon, MON_DATA_SPECIES);
|
||||
personality = GetMonData(mon, MON_DATA_PERSONALITY);
|
||||
isShiny = GetMonData(mon, MON_DATA_IS_SHINY);
|
||||
|
||||
sFactorySelectScreen->monPics[1].monSpriteId = CreateMonPicSprite(species, isShiny, personality, TRUE, 88, 32, 15, TAG_NONE);
|
||||
gSprites[sFactorySelectScreen->monPics[1].monSpriteId].centerToCornerVecX = 0;
|
||||
|
|
@ -2017,9 +2017,9 @@ static void Select_CreateChosenMonsSprites(void)
|
|||
if (sFactorySelectScreen->mons[j].selectedId == i + 1)
|
||||
{
|
||||
struct Pokemon *mon = &sFactorySelectScreen->mons[j].monData;
|
||||
u16 species = GetMonData(mon, MON_DATA_SPECIES, NULL);
|
||||
u32 personality = GetMonData(mon, MON_DATA_PERSONALITY, NULL);
|
||||
bool8 isShiny = GetMonData(mon, MON_DATA_IS_SHINY, NULL);
|
||||
u16 species = GetMonData(mon, MON_DATA_SPECIES);
|
||||
u32 personality = GetMonData(mon, MON_DATA_PERSONALITY);
|
||||
bool8 isShiny = GetMonData(mon, MON_DATA_IS_SHINY);
|
||||
|
||||
sFactorySelectScreen->monPics[i].monSpriteId = CreateMonPicSprite(species, isShiny, personality, TRUE, (i * 72) + 16, 32, i + 13, TAG_NONE);
|
||||
gSprites[sFactorySelectScreen->monPics[i].monSpriteId].centerToCornerVecX = 0;
|
||||
|
|
@ -2310,8 +2310,8 @@ static void CopySwappedMonData(void)
|
|||
SetMonData(&gPlayerParty[sFactorySwapScreen->playerMonId], MON_DATA_FRIENDSHIP, &friendship);
|
||||
gSaveBlock2Ptr->frontier.rentalMons[sFactorySwapScreen->playerMonId].monId = gSaveBlock2Ptr->frontier.rentalMons[sFactorySwapScreen->enemyMonId + FRONTIER_PARTY_SIZE].monId;
|
||||
gSaveBlock2Ptr->frontier.rentalMons[sFactorySwapScreen->playerMonId].ivs = gSaveBlock2Ptr->frontier.rentalMons[sFactorySwapScreen->enemyMonId + FRONTIER_PARTY_SIZE].ivs;
|
||||
gSaveBlock2Ptr->frontier.rentalMons[sFactorySwapScreen->playerMonId].personality = GetMonData(&gEnemyParty[sFactorySwapScreen->enemyMonId], MON_DATA_PERSONALITY, NULL);
|
||||
gSaveBlock2Ptr->frontier.rentalMons[sFactorySwapScreen->playerMonId].abilityNum = GetBoxMonData(&gEnemyParty[sFactorySwapScreen->enemyMonId].box, MON_DATA_ABILITY_NUM, NULL);
|
||||
gSaveBlock2Ptr->frontier.rentalMons[sFactorySwapScreen->playerMonId].personality = GetMonData(&gEnemyParty[sFactorySwapScreen->enemyMonId], MON_DATA_PERSONALITY);
|
||||
gSaveBlock2Ptr->frontier.rentalMons[sFactorySwapScreen->playerMonId].abilityNum = GetBoxMonData(&gEnemyParty[sFactorySwapScreen->enemyMonId].box, MON_DATA_ABILITY_NUM);
|
||||
}
|
||||
|
||||
// Main swap states
|
||||
|
|
@ -3740,9 +3740,9 @@ static void Swap_PrintMonSpecies(void)
|
|||
{
|
||||
u8 monId = sFactorySwapScreen->cursorPos;
|
||||
if (!sFactorySwapScreen->inEnemyScreen)
|
||||
species = GetMonData(&gPlayerParty[monId], MON_DATA_SPECIES, NULL);
|
||||
species = GetMonData(&gPlayerParty[monId], MON_DATA_SPECIES);
|
||||
else
|
||||
species = GetMonData(&gEnemyParty[monId], MON_DATA_SPECIES, NULL);
|
||||
species = GetMonData(&gEnemyParty[monId], MON_DATA_SPECIES);
|
||||
StringCopy(gStringVar4, GetSpeciesName(species));
|
||||
x = GetStringRightAlignXOffset(FONT_NORMAL, gStringVar4, 86);
|
||||
AddTextPrinterParameterized3(SWAP_WIN_SPECIES, FONT_NORMAL, x, 1, sSwapSpeciesNameTextColors, 0, gStringVar4);
|
||||
|
|
@ -3849,9 +3849,9 @@ static void Swap_PrintMonSpeciesAtFade(void)
|
|||
{
|
||||
u8 monId = sFactorySwapScreen->cursorPos;
|
||||
if (!sFactorySwapScreen->inEnemyScreen)
|
||||
species = GetMonData(&gPlayerParty[monId], MON_DATA_SPECIES, NULL);
|
||||
species = GetMonData(&gPlayerParty[monId], MON_DATA_SPECIES);
|
||||
else
|
||||
species = GetMonData(&gEnemyParty[monId], MON_DATA_SPECIES, NULL);
|
||||
species = GetMonData(&gEnemyParty[monId], MON_DATA_SPECIES);
|
||||
StringCopy(gStringVar4, GetSpeciesName(species));
|
||||
x = GetStringRightAlignXOffset(FONT_NORMAL, gStringVar4, 86);
|
||||
AddTextPrinterParameterized3(SWAP_WIN_SPECIES_AT_FADE, FONT_NORMAL, x, 1, sSwapSpeciesNameTextColors, 0, gStringVar4);
|
||||
|
|
@ -3876,9 +3876,9 @@ static void Swap_PrintMonSpeciesForTransition(void)
|
|||
{
|
||||
u8 monId = sFactorySwapScreen->cursorPos;
|
||||
if (!sFactorySwapScreen->inEnemyScreen)
|
||||
species = GetMonData(&gPlayerParty[monId], MON_DATA_SPECIES, NULL);
|
||||
species = GetMonData(&gPlayerParty[monId], MON_DATA_SPECIES);
|
||||
else
|
||||
species = GetMonData(&gEnemyParty[monId], MON_DATA_SPECIES, NULL);
|
||||
species = GetMonData(&gEnemyParty[monId], MON_DATA_SPECIES);
|
||||
StringCopy(gStringVar4, GetSpeciesName(species));
|
||||
x = GetStringRightAlignXOffset(FONT_NORMAL, gStringVar4, 86);
|
||||
AddTextPrinterParameterized3(SWAP_WIN_SPECIES, FONT_NORMAL, x, 1, sSwapSpeciesNameTextColors, 0, gStringVar4);
|
||||
|
|
@ -3902,9 +3902,9 @@ static void Swap_PrintMonCategory(void)
|
|||
{
|
||||
PutWindowTilemap(SWAP_WIN_MON_CATEGORY);
|
||||
if (!sFactorySwapScreen->inEnemyScreen)
|
||||
species = GetMonData(&gPlayerParty[monId], MON_DATA_SPECIES, NULL);
|
||||
species = GetMonData(&gPlayerParty[monId], MON_DATA_SPECIES);
|
||||
else
|
||||
species = GetMonData(&gEnemyParty[monId], MON_DATA_SPECIES, NULL);
|
||||
species = GetMonData(&gEnemyParty[monId], MON_DATA_SPECIES);
|
||||
CopyMonCategoryText(species, text);
|
||||
x = GetStringRightAlignXOffset(FONT_NORMAL, text, 118);
|
||||
AddTextPrinterParameterized(SWAP_WIN_MON_CATEGORY, FONT_NORMAL, text, x, 1, 0, NULL);
|
||||
|
|
@ -4037,9 +4037,9 @@ static void Swap_ShowSummaryMonSprite(void)
|
|||
StartSpriteAffineAnim(&gSprites[sFactorySwapScreen->monPic.bgSpriteId], 2);
|
||||
|
||||
mon = &gPlayerParty[sFactorySwapScreen->cursorPos];
|
||||
species = GetMonData(mon, MON_DATA_SPECIES, NULL);
|
||||
personality = GetMonData(mon, MON_DATA_PERSONALITY, NULL);
|
||||
isShiny = GetMonData(mon, MON_DATA_IS_SHINY, NULL);
|
||||
species = GetMonData(mon, MON_DATA_SPECIES);
|
||||
personality = GetMonData(mon, MON_DATA_PERSONALITY);
|
||||
isShiny = GetMonData(mon, MON_DATA_IS_SHINY);
|
||||
|
||||
sFactorySwapScreen->monPic.monSpriteId = CreateMonPicSprite(species, isShiny, personality, TRUE, 88, 32, 15, TAG_NONE);
|
||||
gSprites[sFactorySwapScreen->monPic.monSpriteId].centerToCornerVecX = 0;
|
||||
|
|
@ -4113,11 +4113,11 @@ static void Swap_TaskCantHaveSameMons(u8 taskId)
|
|||
static bool8 Swap_AlreadyHasSameSpecies(u8 monId)
|
||||
{
|
||||
u8 i;
|
||||
u16 species = GetMonData(&gEnemyParty[monId], MON_DATA_SPECIES, NULL);
|
||||
u16 species = GetMonData(&gEnemyParty[monId], MON_DATA_SPECIES);
|
||||
|
||||
for (i = 0; i < FRONTIER_PARTY_SIZE; i++)
|
||||
{
|
||||
if (i != sFactorySwapScreen->playerMonId && (u16)(GetMonData(&gPlayerParty[i], MON_DATA_SPECIES, NULL)) == species)
|
||||
if (i != sFactorySwapScreen->playerMonId && (u16)(GetMonData(&gPlayerParty[i], MON_DATA_SPECIES)) == species)
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
|
|
@ -4254,9 +4254,9 @@ static void Swap_CreateMonSprite(void)
|
|||
else
|
||||
mon = &gEnemyParty[sFactorySwapScreen->cursorPos];
|
||||
|
||||
species = GetMonData(mon, MON_DATA_SPECIES, NULL);
|
||||
personality = GetMonData(mon, MON_DATA_PERSONALITY, NULL);
|
||||
isShiny = GetMonData(mon, MON_DATA_IS_SHINY, NULL);
|
||||
species = GetMonData(mon, MON_DATA_SPECIES);
|
||||
personality = GetMonData(mon, MON_DATA_PERSONALITY);
|
||||
isShiny = GetMonData(mon, MON_DATA_IS_SHINY);
|
||||
|
||||
sFactorySwapScreen->monPic.monSpriteId = CreateMonPicSprite(species, isShiny, personality, TRUE, 88, 32, 15, TAG_NONE);
|
||||
gSprites[sFactorySwapScreen->monPic.monSpriteId].centerToCornerVecX = 0;
|
||||
|
|
|
|||
|
|
@ -269,7 +269,7 @@ static void FillTrainerParty(u16 trainerId, u8 firstMonId, u8 monCount)
|
|||
// Ensure this Pokémon species isn't a duplicate.
|
||||
for (j = 0; j < i + firstMonId; j++)
|
||||
{
|
||||
if (GetMonData(&gEnemyParty[j], MON_DATA_SPECIES, NULL) == gFacilityTrainerMons[monId].species)
|
||||
if (GetMonData(&gEnemyParty[j], MON_DATA_SPECIES) == gFacilityTrainerMons[monId].species)
|
||||
break;
|
||||
}
|
||||
if (j != i + firstMonId)
|
||||
|
|
@ -278,8 +278,8 @@ static void FillTrainerParty(u16 trainerId, u8 firstMonId, u8 monCount)
|
|||
// Ensure this Pokemon's held item isn't a duplicate.
|
||||
for (j = 0; j < i + firstMonId; j++)
|
||||
{
|
||||
if (GetMonData(&gEnemyParty[j], MON_DATA_HELD_ITEM, NULL) != ITEM_NONE
|
||||
&& GetMonData(&gEnemyParty[j], MON_DATA_HELD_ITEM, NULL) == gFacilityTrainerMons[monId].heldItem)
|
||||
if (GetMonData(&gEnemyParty[j], MON_DATA_HELD_ITEM) != ITEM_NONE
|
||||
&& GetMonData(&gEnemyParty[j], MON_DATA_HELD_ITEM) == gFacilityTrainerMons[monId].heldItem)
|
||||
break;
|
||||
}
|
||||
if (j != i + firstMonId)
|
||||
|
|
|
|||
|
|
@ -105,7 +105,7 @@ void HandleIntroSlide(u8 environment)
|
|||
{
|
||||
taskId = CreateTask(BattleIntroSlide3, 0);
|
||||
}
|
||||
else if (GetMonData(&gEnemyParty[0], MON_DATA_SPECIES, NULL) == SPECIES_KYOGRE)
|
||||
else if (GetMonData(&gEnemyParty[0], MON_DATA_SPECIES) == SPECIES_KYOGRE)
|
||||
{
|
||||
environment = BATTLE_ENVIRONMENT_UNDERWATER;
|
||||
taskId = CreateTask(BattleIntroSlide2, 0);
|
||||
|
|
|
|||
|
|
@ -3485,7 +3485,7 @@ static void DoBattleIntro(void)
|
|||
{
|
||||
BtlController_EmitLoadMonSprite(battler, B_COMM_TO_CONTROLLER);
|
||||
MarkBattlerForControllerExec(battler);
|
||||
gBattleResults.lastOpponentSpecies = GetMonData(GetBattlerMon(battler), MON_DATA_SPECIES, NULL);
|
||||
gBattleResults.lastOpponentSpecies = GetMonData(GetBattlerMon(battler), MON_DATA_SPECIES);
|
||||
}
|
||||
break;
|
||||
case B_POSITION_PLAYER_RIGHT:
|
||||
|
|
@ -3508,7 +3508,7 @@ static void DoBattleIntro(void)
|
|||
{
|
||||
BtlController_EmitLoadMonSprite(battler, B_COMM_TO_CONTROLLER);
|
||||
MarkBattlerForControllerExec(battler);
|
||||
gBattleResults.lastOpponentSpecies = GetMonData(GetBattlerMon(battler), MON_DATA_SPECIES, NULL);
|
||||
gBattleResults.lastOpponentSpecies = GetMonData(GetBattlerMon(battler), MON_DATA_SPECIES);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
|
|
@ -5478,12 +5478,12 @@ static void HandleEndTurn_FinishBattle(void)
|
|||
{
|
||||
if (gBattleResults.playerMon1Species == SPECIES_NONE)
|
||||
{
|
||||
gBattleResults.playerMon1Species = GetMonData(GetBattlerMon(battler), MON_DATA_SPECIES, NULL);
|
||||
gBattleResults.playerMon1Species = GetMonData(GetBattlerMon(battler), MON_DATA_SPECIES);
|
||||
GetMonData(GetBattlerMon(battler), MON_DATA_NICKNAME, gBattleResults.playerMon1Name);
|
||||
}
|
||||
else
|
||||
{
|
||||
gBattleResults.playerMon2Species = GetMonData(GetBattlerMon(battler), MON_DATA_SPECIES, NULL);
|
||||
gBattleResults.playerMon2Species = GetMonData(GetBattlerMon(battler), MON_DATA_SPECIES);
|
||||
GetMonData(GetBattlerMon(battler), MON_DATA_NICKNAME, gBattleResults.playerMon2Name);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -470,7 +470,7 @@ static enum MoveEndResult MoveEnd_FaintBlock(void)
|
|||
{
|
||||
if (gBattleResults.opponentFaintCounter < 255)
|
||||
gBattleResults.opponentFaintCounter++;
|
||||
gBattleResults.lastOpponentSpecies = GetMonData(GetBattlerMon(gBattlerTarget), MON_DATA_SPECIES, NULL);
|
||||
gBattleResults.lastOpponentSpecies = GetMonData(GetBattlerMon(gBattlerTarget), MON_DATA_SPECIES);
|
||||
gSideTimers[B_SIDE_OPPONENT].retaliateTimer = 2;
|
||||
}
|
||||
BattleScriptCall(BattleScript_FaintBattler);
|
||||
|
|
|
|||
|
|
@ -1112,7 +1112,7 @@ bool32 TryGenerateBattlePikeWildMon(bool8 checkKeenEyeIntimidate)
|
|||
u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
|
||||
const struct PikeWildMon *const *const wildMons = sWildMons[lvlMode];
|
||||
u32 abilityNum;
|
||||
s32 pikeMonId = GetMonData(&gEnemyParty[0], MON_DATA_SPECIES, NULL);
|
||||
s32 pikeMonId = GetMonData(&gEnemyParty[0], MON_DATA_SPECIES);
|
||||
pikeMonId = SpeciesToPikeMonId(pikeMonId);
|
||||
|
||||
if (gSaveBlock2Ptr->frontier.lvlMode != FRONTIER_LVL_50)
|
||||
|
|
|
|||
|
|
@ -1221,13 +1221,13 @@ static void RestorePyramidPlayerParty(void)
|
|||
int partyIndex = gSaveBlock2Ptr->frontier.selectedPartyMons[i] - 1;
|
||||
for (j = 0; j < FRONTIER_PARTY_SIZE; j++)
|
||||
{
|
||||
if (GetMonData(GetSavedPlayerPartyMon(partyIndex), MON_DATA_SPECIES, NULL) == GetMonData(&gPlayerParty[j], MON_DATA_SPECIES, NULL))
|
||||
if (GetMonData(GetSavedPlayerPartyMon(partyIndex), MON_DATA_SPECIES) == GetMonData(&gPlayerParty[j], MON_DATA_SPECIES))
|
||||
{
|
||||
for (k = 0; k < MAX_MON_MOVES; k++)
|
||||
{
|
||||
for (l = 0; l < MAX_MON_MOVES; l++)
|
||||
{
|
||||
if (GetMonData(GetSavedPlayerPartyMon(partyIndex), MON_DATA_MOVE1 + l, NULL) == GetMonData(&gPlayerParty[j], MON_DATA_MOVE1 + k, NULL))
|
||||
if (GetMonData(GetSavedPlayerPartyMon(partyIndex), MON_DATA_MOVE1 + l) == GetMonData(&gPlayerParty[j], MON_DATA_MOVE1 + k))
|
||||
break;
|
||||
}
|
||||
if (l == MAX_MON_MOVES)
|
||||
|
|
@ -1414,7 +1414,7 @@ void GenerateBattlePyramidWildMon(void)
|
|||
if (round >= TOTAL_PYRAMID_ROUNDS)
|
||||
round = TOTAL_PYRAMID_ROUNDS - 1;
|
||||
|
||||
id = GetMonData(&gEnemyParty[0], MON_DATA_SPECIES, NULL) - 1; // index in table (0-11) -> higher index is lower probability
|
||||
id = GetMonData(&gEnemyParty[0], MON_DATA_SPECIES) - 1; // index in table (0-11) -> higher index is lower probability
|
||||
bstLim = 450 + (25*round) + (5*id); // higher BST limit for 'rarer' wild mon rolls
|
||||
|
||||
while (1)
|
||||
|
|
@ -1522,7 +1522,7 @@ void GenerateBattlePyramidWildMon(void)
|
|||
// Initialize a random ability num
|
||||
if (GetSpeciesAbility(species, 1))
|
||||
{
|
||||
i = GetMonData(&gEnemyParty[0], MON_DATA_PERSONALITY, NULL) % 2;
|
||||
i = GetMonData(&gEnemyParty[0], MON_DATA_PERSONALITY) % 2;
|
||||
SetMonData(&gEnemyParty[0], MON_DATA_ABILITY_NUM, &i);
|
||||
}
|
||||
else
|
||||
|
|
@ -1580,7 +1580,7 @@ void GenerateBattlePyramidWildMon(void)
|
|||
else
|
||||
wildMons = sLevel50WildMonPointers[round];
|
||||
|
||||
id = GetMonData(&gEnemyParty[0], MON_DATA_SPECIES, NULL) - 1;
|
||||
id = GetMonData(&gEnemyParty[0], MON_DATA_SPECIES) - 1;
|
||||
SetMonData(&gEnemyParty[0], MON_DATA_SPECIES, &wildMons[id].species);
|
||||
StringCopy(name, GetSpeciesName(wildMons[id].species));
|
||||
SetMonData(&gEnemyParty[0], MON_DATA_NICKNAME, &name);
|
||||
|
|
@ -1608,7 +1608,7 @@ void GenerateBattlePyramidWildMon(void)
|
|||
default:
|
||||
if (GetSpeciesAbility(wildMons[id].species, 1))
|
||||
{
|
||||
i = GetMonData(&gEnemyParty[0], MON_DATA_PERSONALITY, NULL) % 2;
|
||||
i = GetMonData(&gEnemyParty[0], MON_DATA_PERSONALITY) % 2;
|
||||
SetMonData(&gEnemyParty[0], MON_DATA_ABILITY_NUM, &i);
|
||||
}
|
||||
else
|
||||
|
|
|
|||
|
|
@ -4016,7 +4016,7 @@ static void Cmd_tryfaintmon(void)
|
|||
{
|
||||
if (gBattleResults.opponentFaintCounter < 255)
|
||||
gBattleResults.opponentFaintCounter++;
|
||||
gBattleResults.lastOpponentSpecies = GetMonData(GetBattlerMon(battler), MON_DATA_SPECIES, NULL);
|
||||
gBattleResults.lastOpponentSpecies = GetMonData(GetBattlerMon(battler), MON_DATA_SPECIES);
|
||||
gSideTimers[B_SIDE_OPPONENT].retaliateTimer = 2;
|
||||
}
|
||||
|
||||
|
|
@ -11640,9 +11640,9 @@ static void Cmd_givecaughtmon(void)
|
|||
gBattleCommunication[MULTISTRING_CHOOSER]++;
|
||||
}
|
||||
|
||||
gBattleResults.caughtMonSpecies = GetMonData(caughtMon, MON_DATA_SPECIES, NULL);
|
||||
gBattleResults.caughtMonSpecies = GetMonData(caughtMon, MON_DATA_SPECIES);
|
||||
GetMonData(caughtMon, MON_DATA_NICKNAME, gBattleResults.caughtMonNick);
|
||||
gBattleResults.caughtMonBall = GetMonData(caughtMon, MON_DATA_POKEBALL, NULL);
|
||||
gBattleResults.caughtMonBall = GetMonData(caughtMon, MON_DATA_POKEBALL);
|
||||
|
||||
gSelectedMonPartyId = PARTY_SIZE;
|
||||
gBattleCommunication[MULTIUSE_STATE] = 0;
|
||||
|
|
@ -11664,8 +11664,8 @@ static void Cmd_trysetcaughtmondexflags(void)
|
|||
CMD_ARGS(const u8 *failInstr);
|
||||
|
||||
struct Pokemon *caughtMon = GetBattlerMon(GetCatchingBattler());
|
||||
u32 species = GetMonData(caughtMon, MON_DATA_SPECIES, NULL);
|
||||
u32 personality = GetMonData(caughtMon, MON_DATA_PERSONALITY, NULL);
|
||||
u32 species = GetMonData(caughtMon, MON_DATA_SPECIES);
|
||||
u32 personality = GetMonData(caughtMon, MON_DATA_PERSONALITY);
|
||||
|
||||
if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(species), FLAG_GET_CAUGHT))
|
||||
{
|
||||
|
|
@ -11684,7 +11684,7 @@ static void Cmd_displaydexinfo(void)
|
|||
|
||||
u32 caughtBattler = GetCatchingBattler();
|
||||
struct Pokemon *mon = GetBattlerMon(caughtBattler);
|
||||
u16 species = GetMonData(mon, MON_DATA_SPECIES, NULL);
|
||||
u16 species = GetMonData(mon, MON_DATA_SPECIES);
|
||||
|
||||
switch (gBattleCommunication[0])
|
||||
{
|
||||
|
|
@ -11861,7 +11861,7 @@ static void Cmd_trygivecaughtmonnick(void)
|
|||
DoNamingScreen(NAMING_SCREEN_CAUGHT_MON, gBattleStruct->caughtMonNick,
|
||||
GetMonData(caughtMon, MON_DATA_SPECIES),
|
||||
GetMonGender(caughtMon),
|
||||
GetMonData(caughtMon, MON_DATA_PERSONALITY, NULL),
|
||||
GetMonData(caughtMon, MON_DATA_PERSONALITY),
|
||||
callback);
|
||||
|
||||
gBattleCommunication[MULTIUSE_STATE]++;
|
||||
|
|
@ -12592,9 +12592,9 @@ void BS_ItemRestorePP(void)
|
|||
// Heal PP!
|
||||
for (; i < loopEnd; i++)
|
||||
{
|
||||
pp = GetMonData(mon, MON_DATA_PP1 + i, NULL);
|
||||
moveId = GetMonData(mon, MON_DATA_MOVE1 + i, NULL);
|
||||
maxPP = CalculatePPWithBonus(moveId, GetMonData(mon, MON_DATA_PP_BONUSES, NULL), i);
|
||||
pp = GetMonData(mon, MON_DATA_PP1 + i);
|
||||
moveId = GetMonData(mon, MON_DATA_MOVE1 + i);
|
||||
maxPP = CalculatePPWithBonus(moveId, GetMonData(mon, MON_DATA_PP_BONUSES), i);
|
||||
if (pp != maxPP)
|
||||
{
|
||||
pp += effect[6];
|
||||
|
|
|
|||
|
|
@ -481,7 +481,7 @@ void BattleSetup_StartLegendaryBattle(void)
|
|||
gMain.savedCallback = CB2_EndScriptedWildBattle;
|
||||
gBattleTypeFlags = BATTLE_TYPE_LEGENDARY;
|
||||
|
||||
switch (GetMonData(&gEnemyParty[0], MON_DATA_SPECIES, NULL))
|
||||
switch (GetMonData(&gEnemyParty[0], MON_DATA_SPECIES))
|
||||
{
|
||||
default:
|
||||
case SPECIES_GROUDON:
|
||||
|
|
|
|||
|
|
@ -1176,8 +1176,8 @@ static void GetApprenticeMultiPartnerParty(u16 trainerId)
|
|||
{
|
||||
s32 i, count;
|
||||
u32 validSpecies[MULTI_PARTY_SIZE];
|
||||
u16 species1 = GetMonData(&gPlayerParty[0], MON_DATA_SPECIES, NULL);
|
||||
u16 species2 = GetMonData(&gPlayerParty[1], MON_DATA_SPECIES, NULL);
|
||||
u16 species1 = GetMonData(&gPlayerParty[0], MON_DATA_SPECIES);
|
||||
u16 species2 = GetMonData(&gPlayerParty[1], MON_DATA_SPECIES);
|
||||
|
||||
count = 0;
|
||||
for (i = 0; i < MULTI_PARTY_SIZE; i++)
|
||||
|
|
@ -1202,8 +1202,8 @@ static void GetRecordMixFriendMultiPartnerParty(u16 trainerId)
|
|||
s32 i, count;
|
||||
u32 validSpecies[3];
|
||||
u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
|
||||
u16 species1 = GetMonData(&gPlayerParty[0], MON_DATA_SPECIES, NULL);
|
||||
u16 species2 = GetMonData(&gPlayerParty[1], MON_DATA_SPECIES, NULL);
|
||||
u16 species1 = GetMonData(&gPlayerParty[0], MON_DATA_SPECIES);
|
||||
u16 species2 = GetMonData(&gPlayerParty[1], MON_DATA_SPECIES);
|
||||
|
||||
count = 0;
|
||||
for (i = 0; i < MAX_FRONTIER_PARTY_SIZE; i++)
|
||||
|
|
@ -1242,8 +1242,8 @@ static void LoadMultiPartnerCandidatesData(void)
|
|||
lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
|
||||
battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE);
|
||||
challengeNum = gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode] / FRONTIER_STAGES_PER_CHALLENGE;
|
||||
species1 = GetMonData(&gPlayerParty[0], MON_DATA_SPECIES, NULL);
|
||||
species2 = GetMonData(&gPlayerParty[1], MON_DATA_SPECIES, NULL);
|
||||
species1 = GetMonData(&gPlayerParty[0], MON_DATA_SPECIES);
|
||||
species2 = GetMonData(&gPlayerParty[1], MON_DATA_SPECIES);
|
||||
level = SetFacilityPtrsGetLevel();
|
||||
|
||||
j = 0;
|
||||
|
|
@ -1636,8 +1636,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(GetBattlerMon(1), MON_DATA_SPECIES, NULL);
|
||||
gSaveBlock2Ptr->frontier.towerInterview.playerSpecies = GetMonData(GetBattlerMon(0), MON_DATA_SPECIES, NULL);
|
||||
gSaveBlock2Ptr->frontier.towerInterview.opponentSpecies = GetMonData(GetBattlerMon(1), MON_DATA_SPECIES);
|
||||
gSaveBlock2Ptr->frontier.towerInterview.playerSpecies = GetMonData(GetBattlerMon(0), MON_DATA_SPECIES);
|
||||
for (i = 0; i < VANILLA_POKEMON_NAME_LENGTH + 1; i++)
|
||||
gSaveBlock2Ptr->frontier.towerInterview.opponentMonNickname[i] = gBattleMons[0].nickname[i];
|
||||
gSaveBlock2Ptr->frontier.towerBattleOutcome = gBattleOutcome;
|
||||
|
|
@ -2053,7 +2053,7 @@ static void FillTentTrainerParty_(u16 trainerId, u8 firstMonId, u8 monCount)
|
|||
// Ensure this Pokémon species isn't a duplicate.
|
||||
for (j = 0; j < i + firstMonId; j++)
|
||||
{
|
||||
if (GetMonData(&gEnemyParty[j], MON_DATA_SPECIES, NULL) == gFacilityTrainerMons[monId].species)
|
||||
if (GetMonData(&gEnemyParty[j], MON_DATA_SPECIES) == gFacilityTrainerMons[monId].species)
|
||||
break;
|
||||
}
|
||||
if (j != i + firstMonId)
|
||||
|
|
@ -2062,8 +2062,8 @@ static void FillTentTrainerParty_(u16 trainerId, u8 firstMonId, u8 monCount)
|
|||
// Ensure this Pokemon's held item isn't a duplicate.
|
||||
for (j = 0; j < i + firstMonId; j++)
|
||||
{
|
||||
if (GetMonData(&gEnemyParty[j], MON_DATA_HELD_ITEM, NULL) != ITEM_NONE
|
||||
&& GetMonData(&gEnemyParty[j], MON_DATA_HELD_ITEM, NULL) == gFacilityTrainerMons[monId].heldItem)
|
||||
if (GetMonData(&gEnemyParty[j], MON_DATA_HELD_ITEM) != ITEM_NONE
|
||||
&& GetMonData(&gEnemyParty[j], MON_DATA_HELD_ITEM) == gFacilityTrainerMons[monId].heldItem)
|
||||
break;
|
||||
}
|
||||
if (j != i + firstMonId)
|
||||
|
|
@ -2127,7 +2127,7 @@ void TrySetLinkBattleTowerEnemyPartyLevel(void)
|
|||
|
||||
for (u32 i = 0; i < PARTY_SIZE; i++)
|
||||
{
|
||||
u32 species = GetMonData(&gEnemyParty[i], MON_DATA_SPECIES, NULL);
|
||||
u32 species = GetMonData(&gEnemyParty[i], MON_DATA_SPECIES);
|
||||
if (species)
|
||||
{
|
||||
SetMonData(&gEnemyParty[i], MON_DATA_EXP, &gExperienceTables[gSpeciesInfo[species].growthRate][enemyLevel]);
|
||||
|
|
|
|||
|
|
@ -192,7 +192,7 @@ void BattleTv_SetDataBasedOnString(enum StringID stringId)
|
|||
case STRINGID_NOTVERYEFFECTIVE:
|
||||
case STRINGID_NOTVERYEFFECTIVETWOFOES:
|
||||
AddMovePoints(PTS_EFFECTIVENESS, moveSlot, 1, 0);
|
||||
if (!(gBattleTypeFlags & BATTLE_TYPE_LINK) && GetMonData(defMon, MON_DATA_HP, NULL) != 0)
|
||||
if (!(gBattleTypeFlags & BATTLE_TYPE_LINK) && GetMonData(defMon, MON_DATA_HP) != 0)
|
||||
TrySetBattleSeminarShow();
|
||||
break;
|
||||
case STRINGID_SUPEREFFECTIVE:
|
||||
|
|
@ -315,7 +315,7 @@ void BattleTv_SetDataBasedOnString(enum StringID stringId)
|
|||
tvPtr->pos[defSide][defFlank].curseMoveSlot = moveSlot;
|
||||
break;
|
||||
case STRINGID_PKMNAFFLICTEDBYCURSE:
|
||||
if (GetMonData(atkMon, MON_DATA_HP, NULL)
|
||||
if (GetMonData(atkMon, MON_DATA_HP)
|
||||
&& tvPtr->pos[atkSide][atkFlank].curseMonId != 0)
|
||||
{
|
||||
AddMovePoints(PTS_STATUS_DMG, 0, tvPtr->pos[atkSide][atkFlank].curseMonId - 1, tvPtr->pos[atkSide][atkFlank].curseMoveSlot);
|
||||
|
|
@ -340,7 +340,7 @@ void BattleTv_SetDataBasedOnString(enum StringID stringId)
|
|||
tvPtr->pos[defSide][defFlank].nightmareMoveSlot = moveSlot;
|
||||
break;
|
||||
case STRINGID_PKMNLOCKEDINNIGHTMARE:
|
||||
if (GetMonData(atkMon, MON_DATA_HP, NULL) != 0
|
||||
if (GetMonData(atkMon, MON_DATA_HP) != 0
|
||||
&& tvPtr->pos[atkSide][atkFlank].nightmareMonId != 0)
|
||||
{
|
||||
AddMovePoints(PTS_STATUS_DMG, 5, tvPtr->pos[atkSide][atkFlank].nightmareMonId - 1, tvPtr->pos[atkSide][atkFlank].nightmareMoveSlot);
|
||||
|
|
@ -357,7 +357,7 @@ void BattleTv_SetDataBasedOnString(enum StringID stringId)
|
|||
tvPtr->pos[defSide][defFlank].wrapMoveSlot = moveSlot;
|
||||
break;
|
||||
case STRINGID_PKMNHURTBY:
|
||||
if (GetMonData(atkMon, MON_DATA_HP, NULL) != 0
|
||||
if (GetMonData(atkMon, MON_DATA_HP) != 0
|
||||
&& tvPtr->pos[atkSide][atkFlank].wrapMonId != 0)
|
||||
{
|
||||
AddMovePoints(PTS_STATUS_DMG, 6, tvPtr->pos[atkSide][atkFlank].wrapMonId - 1, tvPtr->pos[atkSide][atkFlank].wrapMoveSlot);
|
||||
|
|
@ -370,7 +370,7 @@ void BattleTv_SetDataBasedOnString(enum StringID stringId)
|
|||
tvPtr->mon[effSide][gBattlerPartyIndexes[gEffectBattler]].brnMoveSlot = moveSlot;
|
||||
break;
|
||||
case STRINGID_PKMNHURTBYBURN:
|
||||
if (GetMonData(atkMon, MON_DATA_HP, NULL) != 0)
|
||||
if (GetMonData(atkMon, MON_DATA_HP) != 0)
|
||||
{
|
||||
if (tvPtr->mon[atkSide][gBattlerPartyIndexes[gBattlerAttacker]].brnMonId != 0)
|
||||
AddMovePoints(PTS_STATUS_DMG, 4, tvPtr->mon[atkSide][gBattlerPartyIndexes[gBattlerAttacker]].brnMonId - 1, tvPtr->mon[atkSide][gBattlerPartyIndexes[gBattlerAttacker]].brnMoveSlot);
|
||||
|
|
@ -387,7 +387,7 @@ void BattleTv_SetDataBasedOnString(enum StringID stringId)
|
|||
tvPtr->mon[effSide][gBattlerPartyIndexes[gEffectBattler]].badPsnMoveSlot = moveSlot;
|
||||
break;
|
||||
case STRINGID_PKMNHURTBYPOISON:
|
||||
if (GetMonData(atkMon, MON_DATA_HP, NULL) != 0)
|
||||
if (GetMonData(atkMon, MON_DATA_HP) != 0)
|
||||
{
|
||||
if (tvPtr->mon[atkSide][gBattlerPartyIndexes[gBattlerAttacker]].psnMonId != 0)
|
||||
AddMovePoints(PTS_STATUS_DMG, 2, tvPtr->mon[atkSide][gBattlerPartyIndexes[gBattlerAttacker]].psnMonId - 1, tvPtr->mon[atkSide][gBattlerPartyIndexes[gBattlerAttacker]].psnMoveSlot);
|
||||
|
|
@ -677,9 +677,9 @@ void TryPutLinkBattleTvShowOnAir(void)
|
|||
movePoints = &gBattleStruct->tvMovePoints;
|
||||
for (i = 0; i < PARTY_SIZE; i++)
|
||||
{
|
||||
if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES, NULL) != SPECIES_NONE)
|
||||
if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES) != SPECIES_NONE)
|
||||
countPlayer++;
|
||||
if (GetMonData(&gEnemyParty[i], MON_DATA_SPECIES, NULL) != SPECIES_NONE)
|
||||
if (GetMonData(&gEnemyParty[i], MON_DATA_SPECIES) != SPECIES_NONE)
|
||||
countOpponent++;
|
||||
}
|
||||
|
||||
|
|
@ -688,8 +688,8 @@ void TryPutLinkBattleTvShowOnAir(void)
|
|||
|
||||
for (i = 0; i < PARTY_SIZE; i++)
|
||||
{
|
||||
species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES, NULL);
|
||||
if (species != SPECIES_NONE && !GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG, NULL))
|
||||
species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES);
|
||||
if (species != SPECIES_NONE && !GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG))
|
||||
{
|
||||
for (sum = 0, j = 0; j < MAX_MON_MOVES; j++)
|
||||
sum += movePoints->points[zero][i * 4 + j];
|
||||
|
|
@ -702,15 +702,15 @@ void TryPutLinkBattleTvShowOnAir(void)
|
|||
}
|
||||
}
|
||||
|
||||
species = GetMonData(&gEnemyParty[i], MON_DATA_SPECIES, NULL);
|
||||
if (species != SPECIES_NONE && !GetMonData(&gEnemyParty[i], MON_DATA_IS_EGG, NULL))
|
||||
species = GetMonData(&gEnemyParty[i], MON_DATA_SPECIES);
|
||||
if (species != SPECIES_NONE && !GetMonData(&gEnemyParty[i], MON_DATA_IS_EGG))
|
||||
{
|
||||
for (sum = 0, j = 0; j < MAX_MON_MOVES; j++)
|
||||
sum += movePoints->points[one][i * 4 + j];
|
||||
|
||||
if (opponentBestSum == sum)
|
||||
{
|
||||
if (GetMonData(&gEnemyParty[i], MON_DATA_EXP, NULL) > GetMonData(&gEnemyParty[opponentBestMonId], MON_DATA_EXP, NULL))
|
||||
if (GetMonData(&gEnemyParty[i], MON_DATA_EXP) > GetMonData(&gEnemyParty[opponentBestMonId], MON_DATA_EXP))
|
||||
{
|
||||
opponentBestMonId = i;
|
||||
opponentBestSum = sum;
|
||||
|
|
@ -735,7 +735,7 @@ void TryPutLinkBattleTvShowOnAir(void)
|
|||
}
|
||||
}
|
||||
|
||||
move = GetMonData(&gPlayerParty[playerBestMonId], MON_DATA_MOVE1 + i, NULL);
|
||||
move = GetMonData(&gPlayerParty[playerBestMonId], MON_DATA_MOVE1 + i);
|
||||
if (playerBestSum == 0 || move == MOVE_NONE)
|
||||
return;
|
||||
|
||||
|
|
@ -1310,8 +1310,8 @@ static void TrySetBattleSeminarShow(void)
|
|||
bestMoveId = i;
|
||||
}
|
||||
|
||||
opponentSpecies = GetMonData(GetBattlerMon(gBattlerTarget), MON_DATA_SPECIES, NULL);
|
||||
playerSpecies = GetMonData(GetBattlerMon(gBattlerAttacker), MON_DATA_SPECIES, NULL);
|
||||
opponentSpecies = GetMonData(GetBattlerMon(gBattlerTarget), MON_DATA_SPECIES);
|
||||
playerSpecies = GetMonData(GetBattlerMon(gBattlerAttacker), MON_DATA_SPECIES);
|
||||
TryPutBattleSeminarOnAir(opponentSpecies, playerSpecies, gMoveSelectionCursor[gBattlerAttacker], gBattleMons[gBattlerAttacker].moves, gBattleMons[gBattlerAttacker].moves[bestMoveId]);
|
||||
break;
|
||||
}
|
||||
|
|
@ -1394,7 +1394,7 @@ u8 GetBattlerMoveSlotId(u8 battler, enum Move move)
|
|||
{
|
||||
if (i >= MAX_MON_MOVES)
|
||||
break;
|
||||
if (GetMonData(mon, MON_DATA_MOVE1 + i, NULL) == move)
|
||||
if (GetMonData(mon, MON_DATA_MOVE1 + i) == move)
|
||||
break;
|
||||
i++;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9145,14 +9145,14 @@ static inline s32 DoFutureSightAttackDamageCalcVars(struct BattleContext *ctx)
|
|||
|
||||
struct Pokemon *party = GetBattlerParty(battlerAtk);
|
||||
struct Pokemon *partyMon = &party[gBattleStruct->futureSight[battlerDef].partyIndex];
|
||||
u32 partyMonLevel = GetMonData(partyMon, MON_DATA_LEVEL, NULL);
|
||||
u32 partyMonSpecies = GetMonData(partyMon, MON_DATA_SPECIES, NULL);
|
||||
u32 partyMonLevel = GetMonData(partyMon, MON_DATA_LEVEL);
|
||||
u32 partyMonSpecies = GetMonData(partyMon, MON_DATA_SPECIES);
|
||||
gBattleMovePower = GetMovePower(move);
|
||||
|
||||
if (IsBattleMovePhysical(move))
|
||||
userFinalAttack = GetMonData(partyMon, MON_DATA_ATK, NULL);
|
||||
userFinalAttack = GetMonData(partyMon, MON_DATA_ATK);
|
||||
else
|
||||
userFinalAttack = GetMonData(partyMon, MON_DATA_SPATK, NULL);
|
||||
userFinalAttack = GetMonData(partyMon, MON_DATA_SPATK);
|
||||
|
||||
targetFinalDefense = CalcDefenseStat(ctx);
|
||||
dmg = CalculateBaseDamage(gBattleMovePower, userFinalAttack, partyMonLevel, targetFinalDefense);
|
||||
|
|
@ -10038,7 +10038,7 @@ bool32 TryRevertPartyMonFormChange(u32 partyIndex)
|
|||
bool32 changedForm = FALSE;
|
||||
|
||||
// Appeared in battle and didn't faint
|
||||
if (gBattleStruct->partyState[B_SIDE_PLAYER][partyIndex].sentOut && GetMonData(&gPlayerParty[partyIndex], MON_DATA_HP, NULL) != 0)
|
||||
if (gBattleStruct->partyState[B_SIDE_PLAYER][partyIndex].sentOut && GetMonData(&gPlayerParty[partyIndex], MON_DATA_HP) != 0)
|
||||
changedForm = TryFormChange(partyIndex, B_SIDE_PLAYER, FORM_CHANGE_END_BATTLE_ENVIRONMENT);
|
||||
|
||||
if (!changedForm)
|
||||
|
|
@ -10993,7 +10993,7 @@ bool32 MoveIsAffectedBySheerForce(enum Move move)
|
|||
bool8 CanMonParticipateInSkyBattle(struct Pokemon *mon)
|
||||
{
|
||||
u16 species = GetMonData(mon, MON_DATA_SPECIES);
|
||||
u16 monAbilityNum = GetMonData(mon, MON_DATA_ABILITY_NUM, NULL);
|
||||
u16 monAbilityNum = GetMonData(mon, MON_DATA_ABILITY_NUM);
|
||||
|
||||
bool8 hasLevitateAbility = GetSpeciesAbility(species, monAbilityNum) == ABILITY_LEVITATE;
|
||||
bool8 isFlyingType = GetSpeciesType(species, 0) == TYPE_FLYING || GetSpeciesType(species, 1) == TYPE_FLYING;
|
||||
|
|
|
|||
|
|
@ -372,8 +372,8 @@ static void Task_LinkupExchangeDataWithLeader(u8 taskId)
|
|||
SaveLinkPlayers(gFieldLinkPlayerCount);
|
||||
card = (struct TrainerCard *)gBlockSendBuffer;
|
||||
TrainerCard_GenerateCardForLinkPlayer(card);
|
||||
card->monSpecies[0] = GetMonData(&gPlayerParty[gSelectedOrderFromParty[0] - 1], MON_DATA_SPECIES, NULL);
|
||||
card->monSpecies[1] = GetMonData(&gPlayerParty[gSelectedOrderFromParty[1] - 1], MON_DATA_SPECIES, NULL);
|
||||
card->monSpecies[0] = GetMonData(&gPlayerParty[gSelectedOrderFromParty[0] - 1], MON_DATA_SPECIES);
|
||||
card->monSpecies[1] = GetMonData(&gPlayerParty[gSelectedOrderFromParty[1] - 1], MON_DATA_SPECIES);
|
||||
gTasks[taskId].func = Task_LinkupAwaitTrainerCardData;
|
||||
}
|
||||
}
|
||||
|
|
@ -420,8 +420,8 @@ static void Task_LinkupCheckStatusAfterConfirm(u8 taskId)
|
|||
SaveLinkPlayers(gFieldLinkPlayerCount);
|
||||
card = (struct TrainerCard *)gBlockSendBuffer;
|
||||
TrainerCard_GenerateCardForLinkPlayer(card);
|
||||
card->monSpecies[0] = GetMonData(&gPlayerParty[gSelectedOrderFromParty[0] - 1], MON_DATA_SPECIES, NULL);
|
||||
card->monSpecies[1] = GetMonData(&gPlayerParty[gSelectedOrderFromParty[1] - 1], MON_DATA_SPECIES, NULL);
|
||||
card->monSpecies[0] = GetMonData(&gPlayerParty[gSelectedOrderFromParty[0] - 1], MON_DATA_SPECIES);
|
||||
card->monSpecies[1] = GetMonData(&gPlayerParty[gSelectedOrderFromParty[1] - 1], MON_DATA_SPECIES);
|
||||
gTasks[taskId].func = Task_LinkupAwaitTrainerCardData;
|
||||
SendBlockRequest(BLOCK_REQ_SIZE_100);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -591,7 +591,7 @@ static void _TriggerPendingDaycareEgg(struct DayCare *daycare)
|
|||
// inherit nature
|
||||
else
|
||||
{
|
||||
u8 wantedNature = GetNatureFromPersonality(GetBoxMonData(&daycare->mons[parent].mon, MON_DATA_PERSONALITY, NULL));
|
||||
u8 wantedNature = GetNatureFromPersonality(GetBoxMonData(&daycare->mons[parent].mon, MON_DATA_PERSONALITY));
|
||||
u32 personality;
|
||||
|
||||
do
|
||||
|
|
|
|||
|
|
@ -1280,7 +1280,7 @@ static void DexNavGenerateMoveset(u16 species, u8 searchLevel, u8 encounterLevel
|
|||
|
||||
// Store generated mon moves into Dex Nav Struct
|
||||
for (i = 0; i < MAX_MON_MOVES; i++)
|
||||
moveDst[i] = GetMonData(&gEnemyParty[0], MON_DATA_MOVE1 + i, NULL);
|
||||
moveDst[i] = GetMonData(&gEnemyParty[0], MON_DATA_MOVE1 + i);
|
||||
|
||||
// set first move slot to a random egg move if search level is good enough
|
||||
if (genMove)
|
||||
|
|
|
|||
|
|
@ -1438,7 +1438,7 @@ bool8 FoundAbandonedShipRoom6Key(void)
|
|||
|
||||
bool8 LeadMonHasEffortRibbon(void)
|
||||
{
|
||||
return GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_EFFORT_RIBBON, NULL);
|
||||
return GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_EFFORT_RIBBON);
|
||||
}
|
||||
|
||||
void GiveLeadMonEffortRibbon(void)
|
||||
|
|
@ -1508,7 +1508,7 @@ bool8 IsStarterInParty(void)
|
|||
u8 partyCount = CalculatePlayerPartyCount();
|
||||
for (i = 0; i < partyCount; i++)
|
||||
{
|
||||
if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES_OR_EGG, NULL) == starter)
|
||||
if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES_OR_EGG) == starter)
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
|
|
@ -1601,8 +1601,8 @@ u8 GetLeadMonIndex(void)
|
|||
u8 partyCount = CalculatePlayerPartyCount();
|
||||
for (i = 0; i < partyCount; i++)
|
||||
{
|
||||
if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES_OR_EGG, NULL) != SPECIES_EGG
|
||||
&& GetMonData(&gPlayerParty[i], MON_DATA_SPECIES_OR_EGG, NULL) != SPECIES_NONE)
|
||||
if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES_OR_EGG) != SPECIES_EGG
|
||||
&& GetMonData(&gPlayerParty[i], MON_DATA_SPECIES_OR_EGG) != SPECIES_NONE)
|
||||
return i;
|
||||
}
|
||||
return 0;
|
||||
|
|
@ -4316,7 +4316,7 @@ void TrySkyBattle(void)
|
|||
for (i = 0; i < CalculatePlayerPartyCount(); i++)
|
||||
{
|
||||
struct Pokemon* pokemon = &gPlayerParty[i];
|
||||
if (CanMonParticipateInSkyBattle(pokemon) && GetMonData(pokemon, MON_DATA_HP, NULL) > 0)
|
||||
if (CanMonParticipateInSkyBattle(pokemon) && GetMonData(pokemon, MON_DATA_HP) > 0)
|
||||
{
|
||||
PreparePartyForSkyBattle();
|
||||
gSpecialVar_Result = TRUE;
|
||||
|
|
|
|||
|
|
@ -2259,7 +2259,7 @@ static void RestoreHeldItems(void)
|
|||
{
|
||||
if (gSaveBlock2Ptr->frontier.selectedPartyMons[i] != 0)
|
||||
{
|
||||
u16 item = GetMonData(GetSavedPlayerPartyMon(gSaveBlock2Ptr->frontier.selectedPartyMons[i] - 1), MON_DATA_HELD_ITEM, NULL);
|
||||
u16 item = GetMonData(GetSavedPlayerPartyMon(gSaveBlock2Ptr->frontier.selectedPartyMons[i] - 1), MON_DATA_HELD_ITEM);
|
||||
SetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM, &item);
|
||||
}
|
||||
}
|
||||
|
|
@ -2297,8 +2297,8 @@ static void ResetSketchedMoves(void)
|
|||
{
|
||||
for (k = 0; k < MAX_MON_MOVES; k++)
|
||||
{
|
||||
if (GetMonData(GetSavedPlayerPartyMon(gSaveBlock2Ptr->frontier.selectedPartyMons[i] - 1), MON_DATA_MOVE1 + k, NULL)
|
||||
== GetMonData(&gPlayerParty[i], MON_DATA_MOVE1 + j, NULL))
|
||||
if (GetMonData(GetSavedPlayerPartyMon(gSaveBlock2Ptr->frontier.selectedPartyMons[i] - 1), MON_DATA_MOVE1 + k)
|
||||
== GetMonData(&gPlayerParty[i], MON_DATA_MOVE1 + j))
|
||||
break;
|
||||
}
|
||||
if (k == MAX_MON_MOVES)
|
||||
|
|
@ -3294,10 +3294,10 @@ s32 GetHighestLevelInPlayerParty(void)
|
|||
|
||||
for (i = 0; i < PARTY_SIZE; i++)
|
||||
{
|
||||
if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES, NULL)
|
||||
&& GetMonData(&gPlayerParty[i], MON_DATA_SPECIES_OR_EGG, NULL) != SPECIES_EGG)
|
||||
if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES)
|
||||
&& GetMonData(&gPlayerParty[i], MON_DATA_SPECIES_OR_EGG) != SPECIES_EGG)
|
||||
{
|
||||
s32 level = GetMonData(&gPlayerParty[i], MON_DATA_LEVEL, NULL);
|
||||
s32 level = GetMonData(&gPlayerParty[i], MON_DATA_LEVEL);
|
||||
if (level > highestLevel)
|
||||
highestLevel = level;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4969,8 +4969,8 @@ void ItemUseCB_AbilityCapsule(u8 taskId, TaskFunc task)
|
|||
|
||||
tState = 0;
|
||||
tMonId = gPartyMenu.slotId;
|
||||
tSpecies = GetMonData(&gPlayerParty[tMonId], MON_DATA_SPECIES, NULL);
|
||||
tAbilityNum = GetMonData(&gPlayerParty[tMonId], MON_DATA_ABILITY_NUM, NULL) ^ 1;
|
||||
tSpecies = GetMonData(&gPlayerParty[tMonId], MON_DATA_SPECIES);
|
||||
tAbilityNum = GetMonData(&gPlayerParty[tMonId], MON_DATA_ABILITY_NUM) ^ 1;
|
||||
SetWordTaskArg(taskId, tOldFunc, (uintptr_t)(gTasks[taskId].func));
|
||||
gTasks[taskId].func = Task_AbilityCapsule;
|
||||
}
|
||||
|
|
@ -5054,8 +5054,8 @@ void ItemUseCB_AbilityPatch(u8 taskId, TaskFunc task)
|
|||
|
||||
tState = 0;
|
||||
tMonId = gPartyMenu.slotId;
|
||||
tSpecies = GetMonData(&gPlayerParty[tMonId], MON_DATA_SPECIES, NULL);
|
||||
if (GetMonData(&gPlayerParty[tMonId], MON_DATA_ABILITY_NUM, NULL) == 2)
|
||||
tSpecies = GetMonData(&gPlayerParty[tMonId], MON_DATA_SPECIES);
|
||||
if (GetMonData(&gPlayerParty[tMonId], MON_DATA_ABILITY_NUM) == 2)
|
||||
tAbilityNum = 0;
|
||||
else
|
||||
tAbilityNum = 2;
|
||||
|
|
@ -5793,7 +5793,7 @@ void ItemUseCB_RareCandy(u8 taskId, TaskFunc task)
|
|||
}
|
||||
else
|
||||
{
|
||||
sFinalLevel = GetMonData(mon, MON_DATA_LEVEL, NULL);
|
||||
sFinalLevel = GetMonData(mon, MON_DATA_LEVEL);
|
||||
gPartyMenuUseExitCallback = TRUE;
|
||||
UpdateMonDisplayInfoAfterRareCandy(gPartyMenu.slotId, mon);
|
||||
RemoveBagItem(gSpecialVar_ItemId, 1);
|
||||
|
|
@ -6258,7 +6258,7 @@ void DeleteMove(struct Pokemon *mon, enum Move move)
|
|||
{
|
||||
for (i = 0; i < MAX_MON_MOVES; i++)
|
||||
{
|
||||
u32 existingMove = GetBoxMonData(boxMon, MON_DATA_MOVE1 + i, NULL);
|
||||
u32 existingMove = GetBoxMonData(boxMon, MON_DATA_MOVE1 + i);
|
||||
if (existingMove == move)
|
||||
{
|
||||
SetMonMoveSlot(mon, MOVE_NONE, i);
|
||||
|
|
@ -6278,7 +6278,7 @@ bool32 DoesMonHaveAnyMoves(struct Pokemon *mon)
|
|||
|
||||
for (i = 0; i < MAX_MON_MOVES; i++)
|
||||
{
|
||||
enum Move existingMove = GetBoxMonData(boxMon, MON_DATA_MOVE1 + i, NULL);
|
||||
enum Move existingMove = GetBoxMonData(boxMon, MON_DATA_MOVE1 + i);
|
||||
if (existingMove != MOVE_NONE)
|
||||
return TRUE;
|
||||
}
|
||||
|
|
@ -6321,7 +6321,7 @@ static void RestoreFusionMon(struct Pokemon *mon)
|
|||
|
||||
for (i = 0; i < PARTY_SIZE; i++)
|
||||
{
|
||||
if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES, NULL) == SPECIES_NONE)
|
||||
if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES) == SPECIES_NONE)
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
@ -6703,7 +6703,7 @@ static void Task_TryItemUseFormChange(u8 taskId)
|
|||
if (gTasks[taskId].tAnimWait == 0)
|
||||
{
|
||||
FreeAndDestroyMonIconSprite(icon);
|
||||
CreatePartyMonIconSpriteParameterized(targetSpecies, GetMonData(mon, MON_DATA_PERSONALITY, NULL), FALSE, &sPartyMenuBoxes[gPartyMenu.slotId], 1);
|
||||
CreatePartyMonIconSpriteParameterized(targetSpecies, GetMonData(mon, MON_DATA_PERSONALITY), FALSE, &sPartyMenuBoxes[gPartyMenu.slotId], 1);
|
||||
icon->oam.mosaic = TRUE;
|
||||
icon->data[0] = 10;
|
||||
icon->data[1] = 1;
|
||||
|
|
@ -6911,7 +6911,7 @@ void TryItemHoldFormChange(struct Pokemon *mon, s8 slotId)
|
|||
PlayCry_NormalNoDucking(targetSpecies, 0, CRY_VOLUME_RS, CRY_VOLUME_RS);
|
||||
SetMonData(mon, MON_DATA_SPECIES, &targetSpecies);
|
||||
FreeAndDestroyMonIconSprite(&gSprites[sPartyMenuBoxes[slotId].monSpriteId]);
|
||||
CreatePartyMonIconSpriteParameterized(targetSpecies, GetMonData(mon, MON_DATA_PERSONALITY, NULL), FALSE, &sPartyMenuBoxes[slotId], 1);
|
||||
CreatePartyMonIconSpriteParameterized(targetSpecies, GetMonData(mon, MON_DATA_PERSONALITY), FALSE, &sPartyMenuBoxes[slotId], 1);
|
||||
CalculateMonStats(mon);
|
||||
UpdatePartyMonHeldItemSprite(mon, &sPartyMenuBoxes[slotId]);
|
||||
}
|
||||
|
|
|
|||
282
src/pokemon.c
282
src/pokemon.c
|
|
@ -1401,8 +1401,8 @@ void ConvertPokemonToBattleTowerPokemon(struct Pokemon *mon, struct BattleTowerP
|
|||
s32 i;
|
||||
u16 heldItem;
|
||||
|
||||
dest->species = GetMonData(mon, MON_DATA_SPECIES, NULL);
|
||||
heldItem = GetMonData(mon, MON_DATA_HELD_ITEM, NULL);
|
||||
dest->species = GetMonData(mon, MON_DATA_SPECIES);
|
||||
heldItem = GetMonData(mon, MON_DATA_HELD_ITEM);
|
||||
|
||||
if (heldItem == ITEM_ENIGMA_BERRY_E_READER)
|
||||
heldItem = ITEM_NONE;
|
||||
|
|
@ -1410,26 +1410,26 @@ void ConvertPokemonToBattleTowerPokemon(struct Pokemon *mon, struct BattleTowerP
|
|||
dest->heldItem = heldItem;
|
||||
|
||||
for (i = 0; i < MAX_MON_MOVES; i++)
|
||||
dest->moves[i] = GetMonData(mon, MON_DATA_MOVE1 + i, NULL);
|
||||
dest->moves[i] = GetMonData(mon, MON_DATA_MOVE1 + i);
|
||||
|
||||
dest->level = GetMonData(mon, MON_DATA_LEVEL, NULL);
|
||||
dest->ppBonuses = GetMonData(mon, MON_DATA_PP_BONUSES, NULL);
|
||||
dest->otId = GetMonData(mon, MON_DATA_OT_ID, NULL);
|
||||
dest->hpEV = GetMonData(mon, MON_DATA_HP_EV, NULL);
|
||||
dest->attackEV = GetMonData(mon, MON_DATA_ATK_EV, NULL);
|
||||
dest->defenseEV = GetMonData(mon, MON_DATA_DEF_EV, NULL);
|
||||
dest->speedEV = GetMonData(mon, MON_DATA_SPEED_EV, NULL);
|
||||
dest->spAttackEV = GetMonData(mon, MON_DATA_SPATK_EV, NULL);
|
||||
dest->spDefenseEV = GetMonData(mon, MON_DATA_SPDEF_EV, NULL);
|
||||
dest->friendship = GetMonData(mon, MON_DATA_FRIENDSHIP, NULL);
|
||||
dest->hpIV = GetMonData(mon, MON_DATA_HP_IV, NULL);
|
||||
dest->attackIV = GetMonData(mon, MON_DATA_ATK_IV, NULL);
|
||||
dest->defenseIV = GetMonData(mon, MON_DATA_DEF_IV, NULL);
|
||||
dest->speedIV = GetMonData(mon, MON_DATA_SPEED_IV, NULL);
|
||||
dest->spAttackIV = GetMonData(mon, MON_DATA_SPATK_IV, NULL);
|
||||
dest->spDefenseIV = GetMonData(mon, MON_DATA_SPDEF_IV, NULL);
|
||||
dest->abilityNum = GetMonData(mon, MON_DATA_ABILITY_NUM, NULL);
|
||||
dest->personality = GetMonData(mon, MON_DATA_PERSONALITY, NULL);
|
||||
dest->level = GetMonData(mon, MON_DATA_LEVEL);
|
||||
dest->ppBonuses = GetMonData(mon, MON_DATA_PP_BONUSES);
|
||||
dest->otId = GetMonData(mon, MON_DATA_OT_ID);
|
||||
dest->hpEV = GetMonData(mon, MON_DATA_HP_EV);
|
||||
dest->attackEV = GetMonData(mon, MON_DATA_ATK_EV);
|
||||
dest->defenseEV = GetMonData(mon, MON_DATA_DEF_EV);
|
||||
dest->speedEV = GetMonData(mon, MON_DATA_SPEED_EV);
|
||||
dest->spAttackEV = GetMonData(mon, MON_DATA_SPATK_EV);
|
||||
dest->spDefenseEV = GetMonData(mon, MON_DATA_SPDEF_EV);
|
||||
dest->friendship = GetMonData(mon, MON_DATA_FRIENDSHIP);
|
||||
dest->hpIV = GetMonData(mon, MON_DATA_HP_IV);
|
||||
dest->attackIV = GetMonData(mon, MON_DATA_ATK_IV);
|
||||
dest->defenseIV = GetMonData(mon, MON_DATA_DEF_IV);
|
||||
dest->speedIV = GetMonData(mon, MON_DATA_SPEED_IV);
|
||||
dest->spAttackIV = GetMonData(mon, MON_DATA_SPATK_IV);
|
||||
dest->spDefenseIV = GetMonData(mon, MON_DATA_SPDEF_IV);
|
||||
dest->abilityNum = GetMonData(mon, MON_DATA_ABILITY_NUM);
|
||||
dest->personality = GetMonData(mon, MON_DATA_PERSONALITY);
|
||||
GetMonData(mon, MON_DATA_NICKNAME10, dest->nickname);
|
||||
}
|
||||
|
||||
|
|
@ -1529,14 +1529,14 @@ static u16 CalculateBoxMonChecksumReencrypt(struct BoxPokemon *boxMon)
|
|||
|
||||
void CalculateMonStats(struct Pokemon *mon)
|
||||
{
|
||||
s32 oldMaxHP = GetMonData(mon, MON_DATA_MAX_HP, NULL);
|
||||
s32 currentHP = GetMonData(mon, MON_DATA_HP, NULL);
|
||||
u16 species = GetMonData(mon, MON_DATA_SPECIES, NULL);
|
||||
u8 friendship = GetMonData(mon, MON_DATA_FRIENDSHIP, NULL);
|
||||
s32 oldMaxHP = GetMonData(mon, MON_DATA_MAX_HP);
|
||||
s32 currentHP = GetMonData(mon, MON_DATA_HP);
|
||||
u16 species = GetMonData(mon, MON_DATA_SPECIES);
|
||||
u8 friendship = GetMonData(mon, MON_DATA_FRIENDSHIP);
|
||||
s32 level = GetLevelFromMonExp(mon);
|
||||
s32 newMaxHP;
|
||||
|
||||
u8 nature = GetMonData(mon, MON_DATA_HIDDEN_NATURE, NULL);
|
||||
u8 nature = GetMonData(mon, MON_DATA_HIDDEN_NATURE);
|
||||
|
||||
SetMonData(mon, MON_DATA_LEVEL, &level);
|
||||
|
||||
|
|
@ -1610,7 +1610,7 @@ void BoxMonToMon(const struct BoxPokemon *src, struct Pokemon *dest)
|
|||
{
|
||||
u32 value = 0;
|
||||
dest->box = *src;
|
||||
dest->status = GetBoxMonData(&dest->box, MON_DATA_STATUS, NULL);
|
||||
dest->status = GetBoxMonData(&dest->box, MON_DATA_STATUS);
|
||||
dest->hp = 0;
|
||||
dest->maxHP = 0;
|
||||
value = MAIL_NONE;
|
||||
|
|
@ -1623,8 +1623,8 @@ void BoxMonToMon(const struct BoxPokemon *src, struct Pokemon *dest)
|
|||
|
||||
u8 GetLevelFromMonExp(struct Pokemon *mon)
|
||||
{
|
||||
u16 species = GetMonData(mon, MON_DATA_SPECIES, NULL);
|
||||
u32 exp = GetMonData(mon, MON_DATA_EXP, NULL);
|
||||
u16 species = GetMonData(mon, MON_DATA_SPECIES);
|
||||
u32 exp = GetMonData(mon, MON_DATA_EXP);
|
||||
s32 level = 1;
|
||||
|
||||
while (level <= MAX_LEVEL && gExperienceTables[gSpeciesInfo[species].growthRate][level] <= exp)
|
||||
|
|
@ -1635,8 +1635,8 @@ u8 GetLevelFromMonExp(struct Pokemon *mon)
|
|||
|
||||
u8 GetLevelFromBoxMonExp(struct BoxPokemon *boxMon)
|
||||
{
|
||||
u16 species = GetBoxMonData(boxMon, MON_DATA_SPECIES, NULL);
|
||||
u32 exp = GetBoxMonData(boxMon, MON_DATA_EXP, NULL);
|
||||
u16 species = GetBoxMonData(boxMon, MON_DATA_SPECIES);
|
||||
u32 exp = GetBoxMonData(boxMon, MON_DATA_EXP);
|
||||
s32 level = 1;
|
||||
|
||||
while (level <= MAX_LEVEL && gExperienceTables[gSpeciesInfo[species].growthRate][level] <= exp)
|
||||
|
|
@ -1655,7 +1655,7 @@ u16 GiveMoveToBoxMon(struct BoxPokemon *boxMon, enum Move move)
|
|||
s32 i;
|
||||
for (i = 0; i < MAX_MON_MOVES; i++)
|
||||
{
|
||||
enum Move existingMove = GetBoxMonData(boxMon, MON_DATA_MOVE1 + i, NULL);
|
||||
enum Move existingMove = GetBoxMonData(boxMon, MON_DATA_MOVE1 + i);
|
||||
if (existingMove == MOVE_NONE)
|
||||
{
|
||||
u32 pp = GetMovePP(move);
|
||||
|
|
@ -1695,8 +1695,8 @@ void SetMonMoveSlot(struct Pokemon *mon, enum Move move, u8 slot)
|
|||
|
||||
static void SetMonMoveSlot_KeepPP(struct Pokemon *mon, enum Move move, u8 slot)
|
||||
{
|
||||
u8 ppBonuses = GetMonData(mon, MON_DATA_PP_BONUSES, NULL);
|
||||
u8 currPP = GetMonData(mon, MON_DATA_PP1 + slot, NULL);
|
||||
u8 ppBonuses = GetMonData(mon, MON_DATA_PP_BONUSES);
|
||||
u8 currPP = GetMonData(mon, MON_DATA_PP1 + slot);
|
||||
u8 newPP = CalculatePPWithBonus(move, ppBonuses, slot);
|
||||
u16 finalPP = min(currPP, newPP);
|
||||
|
||||
|
|
@ -1717,7 +1717,7 @@ void GiveMonInitialMoveset(struct Pokemon *mon)
|
|||
|
||||
void GiveBoxMonInitialMoveset(struct BoxPokemon *boxMon) //Credit: AsparagusEduardo
|
||||
{
|
||||
u16 species = GetBoxMonData(boxMon, MON_DATA_SPECIES, NULL);
|
||||
u16 species = GetBoxMonData(boxMon, MON_DATA_SPECIES);
|
||||
s32 level = GetLevelFromBoxMonExp(boxMon);
|
||||
s32 i;
|
||||
enum Move moves[MAX_MON_MOVES] = {MOVE_NONE};
|
||||
|
|
@ -1807,7 +1807,7 @@ void GiveBoxMonDefaultMove(struct BoxPokemon *boxMon, u32 slot)
|
|||
enum Move MonTryLearningNewMoveAtLevel(struct Pokemon *mon, bool32 firstMove, u32 level)
|
||||
{
|
||||
enum Move retVal = MOVE_NONE;
|
||||
u16 species = GetMonData(mon, MON_DATA_SPECIES, NULL);
|
||||
u16 species = GetMonData(mon, MON_DATA_SPECIES);
|
||||
const struct LevelUpMove *learnset = GetSpeciesLevelUpLearnset(species);
|
||||
|
||||
// since you can learn more than one move per level
|
||||
|
|
@ -1857,7 +1857,7 @@ enum Move MonTryLearningNewMoveAtLevel(struct Pokemon *mon, bool32 firstMove, u3
|
|||
|
||||
enum Move MonTryLearningNewMove(struct Pokemon *mon, bool8 firstMove)
|
||||
{
|
||||
return MonTryLearningNewMoveAtLevel(mon, firstMove, GetMonData(mon, MON_DATA_LEVEL, NULL));
|
||||
return MonTryLearningNewMoveAtLevel(mon, firstMove, GetMonData(mon, MON_DATA_LEVEL));
|
||||
}
|
||||
|
||||
void DeleteFirstMoveAndGiveMoveToMon(struct Pokemon *mon, enum Move move)
|
||||
|
|
@ -1869,11 +1869,11 @@ void DeleteFirstMoveAndGiveMoveToMon(struct Pokemon *mon, enum Move move)
|
|||
|
||||
for (i = 0; i < MAX_MON_MOVES - 1; i++)
|
||||
{
|
||||
moves[i] = GetMonData(mon, MON_DATA_MOVE2 + i, NULL);
|
||||
pp[i] = GetMonData(mon, MON_DATA_PP2 + i, NULL);
|
||||
moves[i] = GetMonData(mon, MON_DATA_MOVE2 + i);
|
||||
pp[i] = GetMonData(mon, MON_DATA_PP2 + i);
|
||||
}
|
||||
|
||||
ppBonuses = GetMonData(mon, MON_DATA_PP_BONUSES, NULL);
|
||||
ppBonuses = GetMonData(mon, MON_DATA_PP_BONUSES);
|
||||
ppBonuses >>= 2;
|
||||
moves[MAX_MON_MOVES - 1] = move;
|
||||
pp[MAX_MON_MOVES - 1] = GetMovePP(move);
|
||||
|
|
@ -1896,11 +1896,11 @@ void DeleteFirstMoveAndGiveMoveToBoxMon(struct BoxPokemon *boxMon, enum Move mov
|
|||
|
||||
for (i = 0; i < MAX_MON_MOVES - 1; i++)
|
||||
{
|
||||
moves[i] = GetBoxMonData(boxMon, MON_DATA_MOVE2 + i, NULL);
|
||||
pp[i] = GetBoxMonData(boxMon, MON_DATA_PP2 + i, NULL);
|
||||
moves[i] = GetBoxMonData(boxMon, MON_DATA_MOVE2 + i);
|
||||
pp[i] = GetBoxMonData(boxMon, MON_DATA_PP2 + i);
|
||||
}
|
||||
|
||||
ppBonuses = GetBoxMonData(boxMon, MON_DATA_PP_BONUSES, NULL);
|
||||
ppBonuses = GetBoxMonData(boxMon, MON_DATA_PP_BONUSES);
|
||||
ppBonuses >>= 2;
|
||||
moves[MAX_MON_MOVES - 1] = move;
|
||||
pp[MAX_MON_MOVES - 1] = GetMovePP(move);
|
||||
|
|
@ -1980,8 +1980,8 @@ u8 GetMonGender(struct Pokemon *mon)
|
|||
|
||||
u8 GetBoxMonGender(struct BoxPokemon *boxMon)
|
||||
{
|
||||
u16 species = GetBoxMonData(boxMon, MON_DATA_SPECIES, NULL);
|
||||
u32 personality = GetBoxMonData(boxMon, MON_DATA_PERSONALITY, NULL);
|
||||
u16 species = GetBoxMonData(boxMon, MON_DATA_SPECIES);
|
||||
u32 personality = GetBoxMonData(boxMon, MON_DATA_PERSONALITY);
|
||||
|
||||
switch (gSpeciesInfo[species].genderRatio)
|
||||
{
|
||||
|
|
@ -3132,7 +3132,7 @@ u8 GiveCapturedMonToPlayer(struct Pokemon *mon)
|
|||
|
||||
for (i = 0; i < PARTY_SIZE; i++)
|
||||
{
|
||||
if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES, NULL) == SPECIES_NONE)
|
||||
if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES) == SPECIES_NONE)
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
@ -3157,7 +3157,7 @@ u8 CopyMonToPC(struct Pokemon *mon)
|
|||
for (boxPos = 0; boxPos < IN_BOX_COUNT; boxPos++)
|
||||
{
|
||||
struct BoxPokemon *checkingMon = GetBoxedMonPtr(boxNo, boxPos);
|
||||
if (GetBoxMonData(checkingMon, MON_DATA_SPECIES, NULL) == SPECIES_NONE)
|
||||
if (GetBoxMonData(checkingMon, MON_DATA_SPECIES) == SPECIES_NONE)
|
||||
{
|
||||
MonRestorePP(mon);
|
||||
CopyMon(checkingMon, &mon->box, sizeof(mon->box));
|
||||
|
|
@ -3183,7 +3183,7 @@ u8 CalculatePartyCount(struct Pokemon *party)
|
|||
u32 partyCount = 0;
|
||||
|
||||
while (partyCount < PARTY_SIZE
|
||||
&& GetMonData(&party[partyCount], MON_DATA_SPECIES, NULL) != SPECIES_NONE)
|
||||
&& GetMonData(&party[partyCount], MON_DATA_SPECIES) != SPECIES_NONE)
|
||||
{
|
||||
partyCount++;
|
||||
}
|
||||
|
|
@ -3197,7 +3197,7 @@ u8 CalculatePartyCountOfSide(u32 battler, struct Pokemon *party)
|
|||
GetAIPartyIndexes(battler, &partyCount, &partySize);
|
||||
|
||||
while (partyCount < partySize
|
||||
&& GetMonData(&party[partyCount], MON_DATA_SPECIES, NULL) != SPECIES_NONE)
|
||||
&& GetMonData(&party[partyCount], MON_DATA_SPECIES) != SPECIES_NONE)
|
||||
{
|
||||
partyCount++;
|
||||
}
|
||||
|
|
@ -3236,9 +3236,9 @@ u8 GetMonsStateToDoubles(void)
|
|||
|
||||
for (i = 0; i < gPlayerPartyCount; i++)
|
||||
{
|
||||
if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES_OR_EGG, NULL) != SPECIES_EGG
|
||||
&& GetMonData(&gPlayerParty[i], MON_DATA_HP, NULL) != 0
|
||||
&& GetMonData(&gPlayerParty[i], MON_DATA_SPECIES_OR_EGG, NULL) != SPECIES_NONE)
|
||||
if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES_OR_EGG) != SPECIES_EGG
|
||||
&& GetMonData(&gPlayerParty[i], MON_DATA_HP) != 0
|
||||
&& GetMonData(&gPlayerParty[i], MON_DATA_SPECIES_OR_EGG) != SPECIES_NONE)
|
||||
aliveCount++;
|
||||
}
|
||||
|
||||
|
|
@ -3256,9 +3256,9 @@ u8 GetMonsStateToDoubles_2(void)
|
|||
|
||||
for (i = 0; i < PARTY_SIZE; i++)
|
||||
{
|
||||
u32 species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES_OR_EGG, NULL);
|
||||
u32 species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES_OR_EGG);
|
||||
if (species != SPECIES_EGG && species != SPECIES_NONE
|
||||
&& GetMonData(&gPlayerParty[i], MON_DATA_HP, NULL) != 0)
|
||||
&& GetMonData(&gPlayerParty[i], MON_DATA_HP) != 0)
|
||||
aliveCount++;
|
||||
}
|
||||
|
||||
|
|
@ -3295,8 +3295,8 @@ enum Ability GetAbilityBySpecies(u16 species, u8 abilityNum)
|
|||
|
||||
enum Ability GetMonAbility(struct Pokemon *mon)
|
||||
{
|
||||
u16 species = GetMonData(mon, MON_DATA_SPECIES, NULL);
|
||||
u8 abilityNum = GetMonData(mon, MON_DATA_ABILITY_NUM, NULL);
|
||||
u16 species = GetMonData(mon, MON_DATA_SPECIES);
|
||||
u8 abilityNum = GetMonData(mon, MON_DATA_ABILITY_NUM);
|
||||
return GetAbilityBySpecies(species, abilityNum);
|
||||
}
|
||||
|
||||
|
|
@ -3349,7 +3349,7 @@ bool8 IsPlayerPartyAndPokemonStorageFull(void)
|
|||
s32 i;
|
||||
|
||||
for (i = 0; i < PARTY_SIZE; i++)
|
||||
if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES, NULL) == SPECIES_NONE)
|
||||
if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES) == SPECIES_NONE)
|
||||
return FALSE;
|
||||
|
||||
return IsPokemonStorageFull();
|
||||
|
|
@ -3517,7 +3517,7 @@ u8 CalculatePPWithBonus(enum Move move, u8 ppBonuses, u8 moveIndex)
|
|||
|
||||
void RemoveMonPPBonus(struct Pokemon *mon, u8 moveIndex)
|
||||
{
|
||||
u8 ppBonuses = GetMonData(mon, MON_DATA_PP_BONUSES, NULL);
|
||||
u8 ppBonuses = GetMonData(mon, MON_DATA_PP_BONUSES);
|
||||
ppBonuses &= gPPUpClearMask[moveIndex];
|
||||
SetMonData(mon, MON_DATA_PP_BONUSES, &ppBonuses);
|
||||
}
|
||||
|
|
@ -3534,33 +3534,33 @@ void PokemonToBattleMon(struct Pokemon *src, struct BattlePokemon *dst)
|
|||
|
||||
for (i = 0; i < MAX_MON_MOVES; i++)
|
||||
{
|
||||
dst->moves[i] = GetMonData(src, MON_DATA_MOVE1 + i, NULL);
|
||||
dst->pp[i] = GetMonData(src, MON_DATA_PP1 + i, NULL);
|
||||
dst->moves[i] = GetMonData(src, MON_DATA_MOVE1 + i);
|
||||
dst->pp[i] = GetMonData(src, MON_DATA_PP1 + i);
|
||||
}
|
||||
|
||||
dst->species = GetMonData(src, MON_DATA_SPECIES, NULL);
|
||||
dst->item = GetMonData(src, MON_DATA_HELD_ITEM, NULL);
|
||||
dst->ppBonuses = GetMonData(src, MON_DATA_PP_BONUSES, NULL);
|
||||
dst->friendship = GetMonData(src, MON_DATA_FRIENDSHIP, NULL);
|
||||
dst->experience = GetMonData(src, MON_DATA_EXP, NULL);
|
||||
dst->hpIV = GetMonData(src, MON_DATA_HP_IV, NULL);
|
||||
dst->attackIV = GetMonData(src, MON_DATA_ATK_IV, NULL);
|
||||
dst->defenseIV = GetMonData(src, MON_DATA_DEF_IV, NULL);
|
||||
dst->speedIV = GetMonData(src, MON_DATA_SPEED_IV, NULL);
|
||||
dst->spAttackIV = GetMonData(src, MON_DATA_SPATK_IV, NULL);
|
||||
dst->spDefenseIV = GetMonData(src, MON_DATA_SPDEF_IV, NULL);
|
||||
dst->personality = GetMonData(src, MON_DATA_PERSONALITY, NULL);
|
||||
dst->status1 = GetMonData(src, MON_DATA_STATUS, NULL);
|
||||
dst->level = GetMonData(src, MON_DATA_LEVEL, NULL);
|
||||
dst->hp = GetMonData(src, MON_DATA_HP, NULL);
|
||||
dst->maxHP = GetMonData(src, MON_DATA_MAX_HP, NULL);
|
||||
dst->attack = GetMonData(src, MON_DATA_ATK, NULL);
|
||||
dst->defense = GetMonData(src, MON_DATA_DEF, NULL);
|
||||
dst->speed = GetMonData(src, MON_DATA_SPEED, NULL);
|
||||
dst->spAttack = GetMonData(src, MON_DATA_SPATK, NULL);
|
||||
dst->spDefense = GetMonData(src, MON_DATA_SPDEF, NULL);
|
||||
dst->abilityNum = GetMonData(src, MON_DATA_ABILITY_NUM, NULL);
|
||||
dst->otId = GetMonData(src, MON_DATA_OT_ID, NULL);
|
||||
dst->species = GetMonData(src, MON_DATA_SPECIES);
|
||||
dst->item = GetMonData(src, MON_DATA_HELD_ITEM);
|
||||
dst->ppBonuses = GetMonData(src, MON_DATA_PP_BONUSES);
|
||||
dst->friendship = GetMonData(src, MON_DATA_FRIENDSHIP);
|
||||
dst->experience = GetMonData(src, MON_DATA_EXP);
|
||||
dst->hpIV = GetMonData(src, MON_DATA_HP_IV);
|
||||
dst->attackIV = GetMonData(src, MON_DATA_ATK_IV);
|
||||
dst->defenseIV = GetMonData(src, MON_DATA_DEF_IV);
|
||||
dst->speedIV = GetMonData(src, MON_DATA_SPEED_IV);
|
||||
dst->spAttackIV = GetMonData(src, MON_DATA_SPATK_IV);
|
||||
dst->spDefenseIV = GetMonData(src, MON_DATA_SPDEF_IV);
|
||||
dst->personality = GetMonData(src, MON_DATA_PERSONALITY);
|
||||
dst->status1 = GetMonData(src, MON_DATA_STATUS);
|
||||
dst->level = GetMonData(src, MON_DATA_LEVEL);
|
||||
dst->hp = GetMonData(src, MON_DATA_HP);
|
||||
dst->maxHP = GetMonData(src, MON_DATA_MAX_HP);
|
||||
dst->attack = GetMonData(src, MON_DATA_ATK);
|
||||
dst->defense = GetMonData(src, MON_DATA_DEF);
|
||||
dst->speed = GetMonData(src, MON_DATA_SPEED);
|
||||
dst->spAttack = GetMonData(src, MON_DATA_SPATK);
|
||||
dst->spDefense = GetMonData(src, MON_DATA_SPDEF);
|
||||
dst->abilityNum = GetMonData(src, MON_DATA_ABILITY_NUM);
|
||||
dst->otId = GetMonData(src, MON_DATA_OT_ID);
|
||||
dst->types[0] = GetSpeciesType(dst->species, 0);
|
||||
dst->types[1] = GetSpeciesType(dst->species, 1);
|
||||
dst->types[2] = TYPE_MYSTERY;
|
||||
|
|
@ -3596,7 +3596,7 @@ bool8 ExecuteTableBasedItemEffect(struct Pokemon *mon, u16 item, u8 partyIndex,
|
|||
if ((retVal == 0 || friendshipOnly) && !ShouldSkipFriendshipChange() && friendshipChange == 0) \
|
||||
{ \
|
||||
friendshipChange = itemEffect[itemEffectParam]; \
|
||||
friendship = GetMonData(mon, MON_DATA_FRIENDSHIP, NULL); \
|
||||
friendship = GetMonData(mon, MON_DATA_FRIENDSHIP); \
|
||||
friendship += CalculateFriendshipBonuses(mon,friendshipChange,holdEffect); \
|
||||
if (friendship < 0) \
|
||||
friendship = 0; \
|
||||
|
|
@ -3640,7 +3640,7 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov
|
|||
u32 maxAllowedEVs = !B_EV_ITEMS_CAP ? MAX_TOTAL_EVS : GetCurrentEVCap();
|
||||
|
||||
// Get item hold effect
|
||||
heldItem = GetMonData(mon, MON_DATA_HELD_ITEM, NULL);
|
||||
heldItem = GetMonData(mon, MON_DATA_HELD_ITEM);
|
||||
if (heldItem == ITEM_ENIGMA_BERRY_E_READER)
|
||||
#if FREE_ENIGMA_BERRY == FALSE
|
||||
holdEffect = gSaveBlock1Ptr->enigmaBerry.holdEffect;
|
||||
|
|
@ -3680,19 +3680,19 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov
|
|||
case 3:
|
||||
// Rare Candy / EXP Candy
|
||||
if ((itemEffect[i] & ITEM3_LEVEL_UP)
|
||||
&& GetMonData(mon, MON_DATA_LEVEL, NULL) != MAX_LEVEL)
|
||||
&& GetMonData(mon, MON_DATA_LEVEL) != MAX_LEVEL)
|
||||
{
|
||||
u8 param = GetItemHoldEffectParam(item);
|
||||
dataUnsigned = 0;
|
||||
|
||||
if (param == 0) // Rare Candy
|
||||
{
|
||||
dataUnsigned = gExperienceTables[gSpeciesInfo[GetMonData(mon, MON_DATA_SPECIES, NULL)].growthRate][GetMonData(mon, MON_DATA_LEVEL, NULL) + 1];
|
||||
dataUnsigned = gExperienceTables[gSpeciesInfo[GetMonData(mon, MON_DATA_SPECIES)].growthRate][GetMonData(mon, MON_DATA_LEVEL) + 1];
|
||||
}
|
||||
else if (param - 1 < ARRAY_COUNT(sExpCandyExperienceTable)) // EXP Candies
|
||||
{
|
||||
u16 species = GetMonData(mon, MON_DATA_SPECIES, NULL);
|
||||
dataUnsigned = sExpCandyExperienceTable[param - 1] + GetMonData(mon, MON_DATA_EXP, NULL);
|
||||
u16 species = GetMonData(mon, MON_DATA_SPECIES);
|
||||
dataUnsigned = sExpCandyExperienceTable[param - 1] + GetMonData(mon, MON_DATA_EXP);
|
||||
|
||||
if (B_RARE_CANDY_CAP && B_EXP_CAP_TYPE == EXP_CAP_HARD)
|
||||
{
|
||||
|
|
@ -3734,17 +3734,17 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov
|
|||
// PP Up
|
||||
if (effectFlags & ITEM4_PP_UP)
|
||||
{
|
||||
u32 ppBonuses = GetMonData(mon, MON_DATA_PP_BONUSES, NULL);
|
||||
u32 ppBonuses = GetMonData(mon, MON_DATA_PP_BONUSES);
|
||||
effectFlags &= ~ITEM4_PP_UP;
|
||||
dataUnsigned = (ppBonuses & gPPUpGetMask[moveIndex]) >> (moveIndex * 2);
|
||||
temp1 = CalculatePPWithBonus(GetMonData(mon, MON_DATA_MOVE1 + moveIndex, NULL), ppBonuses, moveIndex);
|
||||
temp1 = CalculatePPWithBonus(GetMonData(mon, MON_DATA_MOVE1 + moveIndex), ppBonuses, moveIndex);
|
||||
if (dataUnsigned <= 2 && temp1 > 4)
|
||||
{
|
||||
dataUnsigned = ppBonuses + gPPUpAddValues[moveIndex];
|
||||
SetMonData(mon, MON_DATA_PP_BONUSES, &dataUnsigned);
|
||||
|
||||
dataUnsigned = CalculatePPWithBonus(GetMonData(mon, MON_DATA_MOVE1 + moveIndex, NULL), dataUnsigned, moveIndex) - temp1;
|
||||
dataUnsigned = GetMonData(mon, MON_DATA_PP1 + moveIndex, NULL) + dataUnsigned;
|
||||
dataUnsigned = CalculatePPWithBonus(GetMonData(mon, MON_DATA_MOVE1 + moveIndex), dataUnsigned, moveIndex) - temp1;
|
||||
dataUnsigned = GetMonData(mon, MON_DATA_PP1 + moveIndex) + dataUnsigned;
|
||||
SetMonData(mon, MON_DATA_PP1 + moveIndex, &dataUnsigned);
|
||||
retVal = FALSE;
|
||||
}
|
||||
|
|
@ -3762,7 +3762,7 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov
|
|||
case 1: // ITEM4_EV_ATK
|
||||
evCount = GetMonEVCount(mon);
|
||||
temp2 = itemEffect[itemEffectParam];
|
||||
dataSigned = GetMonData(mon, sGetMonDataEVConstants[temp1], NULL);
|
||||
dataSigned = GetMonData(mon, sGetMonDataEVConstants[temp1]);
|
||||
evChange = temp2;
|
||||
|
||||
if (evChange > 0) // Increasing EV (HP or Atk)
|
||||
|
|
@ -3826,8 +3826,8 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov
|
|||
|
||||
case 2: // ITEM4_HEAL_HP
|
||||
{
|
||||
u32 currentHP = GetMonData(mon, MON_DATA_HP, NULL);
|
||||
u32 maxHP = GetMonData(mon, MON_DATA_MAX_HP, NULL);
|
||||
u32 currentHP = GetMonData(mon, MON_DATA_HP);
|
||||
u32 maxHP = GetMonData(mon, MON_DATA_MAX_HP);
|
||||
// Check use validity.
|
||||
if ((effectFlags & (ITEM4_REVIVE >> 2) && currentHP != 0)
|
||||
|| (!(effectFlags & (ITEM4_REVIVE >> 2)) && currentHP == 0))
|
||||
|
|
@ -3879,9 +3879,9 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov
|
|||
{
|
||||
enum Move move;
|
||||
u32 ppBonus;
|
||||
dataUnsigned = GetMonData(mon, MON_DATA_PP1 + temp2, NULL);
|
||||
move = GetMonData(mon, MON_DATA_MOVE1 + temp2, NULL);
|
||||
ppBonus = CalculatePPWithBonus(move, GetMonData(mon, MON_DATA_PP_BONUSES, NULL), temp2);
|
||||
dataUnsigned = GetMonData(mon, MON_DATA_PP1 + temp2);
|
||||
move = GetMonData(mon, MON_DATA_MOVE1 + temp2);
|
||||
ppBonus = CalculatePPWithBonus(move, GetMonData(mon, MON_DATA_PP_BONUSES), temp2);
|
||||
if (dataUnsigned != ppBonus)
|
||||
{
|
||||
dataUnsigned += itemEffect[itemEffectParam];
|
||||
|
|
@ -3897,9 +3897,9 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov
|
|||
{
|
||||
// Heal PP for one move
|
||||
enum Move move;
|
||||
dataUnsigned = GetMonData(mon, MON_DATA_PP1 + moveIndex, NULL);
|
||||
move = GetMonData(mon, MON_DATA_MOVE1 + moveIndex, NULL);
|
||||
u32 ppBonus = CalculatePPWithBonus(move, GetMonData(mon, MON_DATA_PP_BONUSES, NULL), moveIndex);
|
||||
dataUnsigned = GetMonData(mon, MON_DATA_PP1 + moveIndex);
|
||||
move = GetMonData(mon, MON_DATA_MOVE1 + moveIndex);
|
||||
u32 ppBonus = CalculatePPWithBonus(move, GetMonData(mon, MON_DATA_PP_BONUSES), moveIndex);
|
||||
if (dataUnsigned != ppBonus)
|
||||
{
|
||||
dataUnsigned += itemEffect[itemEffectParam++];
|
||||
|
|
@ -3952,7 +3952,7 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov
|
|||
case 3: // ITEM5_EV_SPATK
|
||||
evCount = GetMonEVCount(mon);
|
||||
temp2 = itemEffect[itemEffectParam];
|
||||
dataSigned = GetMonData(mon, sGetMonDataEVConstants[temp1 + 2], NULL);
|
||||
dataSigned = GetMonData(mon, sGetMonDataEVConstants[temp1 + 2]);
|
||||
evChange = temp2;
|
||||
if (evChange > 0) // Increasing EV
|
||||
{
|
||||
|
|
@ -4015,9 +4015,9 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov
|
|||
|
||||
case 4: // ITEM5_PP_MAX
|
||||
{
|
||||
u32 ppBonuses = GetMonData(mon, MON_DATA_PP_BONUSES, NULL);
|
||||
u32 ppBonuses = GetMonData(mon, MON_DATA_PP_BONUSES);
|
||||
dataUnsigned = (ppBonuses & gPPUpGetMask[moveIndex]) >> (moveIndex * 2);
|
||||
temp2 = CalculatePPWithBonus(GetMonData(mon, MON_DATA_MOVE1 + moveIndex, NULL), ppBonuses, moveIndex);
|
||||
temp2 = CalculatePPWithBonus(GetMonData(mon, MON_DATA_MOVE1 + moveIndex), ppBonuses, moveIndex);
|
||||
|
||||
// Check if 3 PP Ups have been applied already, and that the move has a total PP of at least 5 (excludes Sketch)
|
||||
if (dataUnsigned < 3 && temp2 >= 5)
|
||||
|
|
@ -4027,8 +4027,8 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov
|
|||
dataUnsigned += gPPUpAddValues[moveIndex] * 3; // Apply 3 PP Ups (max)
|
||||
|
||||
SetMonData(mon, MON_DATA_PP_BONUSES, &dataUnsigned);
|
||||
dataUnsigned = CalculatePPWithBonus(GetMonData(mon, MON_DATA_MOVE1 + moveIndex, NULL), dataUnsigned, moveIndex) - temp2;
|
||||
dataUnsigned = GetMonData(mon, MON_DATA_PP1 + moveIndex, NULL) + dataUnsigned;
|
||||
dataUnsigned = CalculatePPWithBonus(GetMonData(mon, MON_DATA_MOVE1 + moveIndex), dataUnsigned, moveIndex) - temp2;
|
||||
dataUnsigned = GetMonData(mon, MON_DATA_PP1 + moveIndex) + dataUnsigned;
|
||||
SetMonData(mon, MON_DATA_PP1 + moveIndex, &dataUnsigned);
|
||||
retVal = FALSE;
|
||||
}
|
||||
|
|
@ -4039,19 +4039,19 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov
|
|||
// how much friendship the Pokémon already has.
|
||||
// In general, Pokémon with lower friendship receive more,
|
||||
// and Pokémon with higher friendship receive less.
|
||||
if (GetMonData(mon, MON_DATA_FRIENDSHIP, NULL) < 100)
|
||||
if (GetMonData(mon, MON_DATA_FRIENDSHIP) < 100)
|
||||
UPDATE_FRIENDSHIP_FROM_ITEM();
|
||||
itemEffectParam++;
|
||||
break;
|
||||
|
||||
case 6: // ITEM5_FRIENDSHIP_MID
|
||||
if (GetMonData(mon, MON_DATA_FRIENDSHIP, NULL) >= 100 && GetMonData(mon, MON_DATA_FRIENDSHIP, NULL) < 200)
|
||||
if (GetMonData(mon, MON_DATA_FRIENDSHIP) >= 100 && GetMonData(mon, MON_DATA_FRIENDSHIP) < 200)
|
||||
UPDATE_FRIENDSHIP_FROM_ITEM();
|
||||
itemEffectParam++;
|
||||
break;
|
||||
|
||||
case 7: // ITEM5_FRIENDSHIP_HIGH
|
||||
if (GetMonData(mon, MON_DATA_FRIENDSHIP, NULL) >= 200)
|
||||
if (GetMonData(mon, MON_DATA_FRIENDSHIP) >= 200)
|
||||
UPDATE_FRIENDSHIP_FROM_ITEM();
|
||||
itemEffectParam++;
|
||||
break;
|
||||
|
|
@ -4451,7 +4451,7 @@ bool32 DoesMonMeetAdditionalConditions(struct Pokemon *mon, const struct Evoluti
|
|||
case IF_SPECIES_IN_PARTY:
|
||||
for (j = 0; j < PARTY_SIZE; j++)
|
||||
{
|
||||
if (GetMonData(&gPlayerParty[j], MON_DATA_SPECIES, NULL) == params[i].arg1)
|
||||
if (GetMonData(&gPlayerParty[j], MON_DATA_SPECIES) == params[i].arg1)
|
||||
{
|
||||
currentCondition = TRUE;
|
||||
break;
|
||||
|
|
@ -4479,7 +4479,7 @@ bool32 DoesMonMeetAdditionalConditions(struct Pokemon *mon, const struct Evoluti
|
|||
case IF_TYPE_IN_PARTY:
|
||||
for (j = 0; j < PARTY_SIZE; j++)
|
||||
{
|
||||
u16 currSpecies = GetMonData(&gPlayerParty[j], MON_DATA_SPECIES, NULL);
|
||||
u16 currSpecies = GetMonData(&gPlayerParty[j], MON_DATA_SPECIES);
|
||||
if (GetSpeciesType(currSpecies, 0) == params[i].arg1
|
||||
|| GetSpeciesType(currSpecies, 1) == params[i].arg1)
|
||||
{
|
||||
|
|
@ -4507,7 +4507,7 @@ bool32 DoesMonMeetAdditionalConditions(struct Pokemon *mon, const struct Evoluti
|
|||
case IF_KNOWS_MOVE_TYPE:
|
||||
for (j = 0; j < MAX_MON_MOVES; j++)
|
||||
{
|
||||
if (GetMoveType(GetMonData(mon, MON_DATA_MOVE1 + j, NULL)) == params[i].arg1)
|
||||
if (GetMoveType(GetMonData(mon, MON_DATA_MOVE1 + j)) == params[i].arg1)
|
||||
{
|
||||
currentCondition = TRUE;
|
||||
break;
|
||||
|
|
@ -4564,8 +4564,8 @@ bool32 DoesMonMeetAdditionalConditions(struct Pokemon *mon, const struct Evoluti
|
|||
break;
|
||||
case IF_CURRENT_DAMAGE_GE:
|
||||
{
|
||||
u32 currentHp = GetMonData(mon, MON_DATA_HP, NULL);
|
||||
if (currentHp != 0 && (GetMonData(mon, MON_DATA_MAX_HP, NULL) - currentHp >= params[i].arg1))
|
||||
u32 currentHp = GetMonData(mon, MON_DATA_HP);
|
||||
if (currentHp != 0 && (GetMonData(mon, MON_DATA_MAX_HP) - currentHp >= params[i].arg1))
|
||||
currentCondition = TRUE;
|
||||
break;
|
||||
}
|
||||
|
|
@ -4826,7 +4826,7 @@ u32 GetEvolutionTargetSpecies(struct Pokemon *mon, enum EvolutionMode mode, u16
|
|||
// Pikachu, Meowth, Eevee and Duraludon cannot evolve if they have the
|
||||
// Gigantamax Factor. We assume that is because their evolutions
|
||||
// do not have a Gigantamax Form.
|
||||
if (GetMonData(mon, MON_DATA_GIGANTAMAX_FACTOR, NULL)
|
||||
if (GetMonData(mon, MON_DATA_GIGANTAMAX_FACTOR)
|
||||
&& GetGMaxTargetSpecies(species) != species
|
||||
&& GetGMaxTargetSpecies(targetSpecies) == targetSpecies)
|
||||
{
|
||||
|
|
@ -5183,10 +5183,10 @@ u8 CalculateFriendshipBonuses(struct Pokemon *mon, u32 modifier, enum HoldEffect
|
|||
if (modifier == 0)
|
||||
return bonus;
|
||||
|
||||
if (GetMonData(mon, MON_DATA_POKEBALL, NULL) == ITEM_LUXURY_BALL)
|
||||
if (GetMonData(mon, MON_DATA_POKEBALL) == ITEM_LUXURY_BALL)
|
||||
bonus += ITEM_FRIENDSHIP_LUXURY_BONUS;
|
||||
|
||||
if (GetMonData(mon, MON_DATA_MET_LOCATION, NULL) == GetCurrentRegionMapSectionId())
|
||||
if (GetMonData(mon, MON_DATA_MET_LOCATION) == GetCurrentRegionMapSectionId())
|
||||
bonus += ITEM_FRIENDSHIP_MAPSEC_BONUS;
|
||||
|
||||
return bonus;
|
||||
|
|
@ -5867,7 +5867,7 @@ u16 GetBattleBGM(void)
|
|||
{
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_LEGENDARY)
|
||||
{
|
||||
switch (GetMonData(&gEnemyParty[0], MON_DATA_SPECIES, NULL))
|
||||
switch (GetMonData(&gEnemyParty[0], MON_DATA_SPECIES))
|
||||
{
|
||||
case SPECIES_RAYQUAZA:
|
||||
return MUS_VS_RAYQUAZA;
|
||||
|
|
@ -5984,10 +5984,10 @@ static void Task_PlayMapChosenOrBattleBGM(u8 taskId)
|
|||
|
||||
const u16 *GetMonFrontSpritePal(struct Pokemon *mon)
|
||||
{
|
||||
u16 species = GetMonData(mon, MON_DATA_SPECIES, NULL);
|
||||
bool32 isShiny = GetMonData(mon, MON_DATA_IS_SHINY, NULL);
|
||||
u32 personality = GetMonData(mon, MON_DATA_PERSONALITY, NULL);
|
||||
bool32 isEgg = GetMonData(mon, MON_DATA_IS_EGG, NULL);
|
||||
u16 species = GetMonData(mon, MON_DATA_SPECIES);
|
||||
bool32 isShiny = GetMonData(mon, MON_DATA_IS_SHINY);
|
||||
u32 personality = GetMonData(mon, MON_DATA_PERSONALITY);
|
||||
bool32 isEgg = GetMonData(mon, MON_DATA_IS_EGG);
|
||||
return GetMonSpritePalFromSpeciesAndPersonalityIsEgg(species, isShiny, personality, isEgg);
|
||||
}
|
||||
|
||||
|
|
@ -6177,7 +6177,7 @@ void SetWildMonHeldItem(void)
|
|||
|
||||
for (i = 0; i < count; i++)
|
||||
{
|
||||
if (GetMonData(&gEnemyParty[i], MON_DATA_HELD_ITEM, NULL) != ITEM_NONE)
|
||||
if (GetMonData(&gEnemyParty[i], MON_DATA_HELD_ITEM) != ITEM_NONE)
|
||||
continue; // prevent overwriting previously set item
|
||||
|
||||
rnd = Random() % 100;
|
||||
|
|
@ -6226,7 +6226,7 @@ void SetWildMonHeldItem(void)
|
|||
|
||||
bool8 IsMonShiny(struct Pokemon *mon)
|
||||
{
|
||||
return GetMonData(mon, MON_DATA_IS_SHINY, NULL);
|
||||
return GetMonData(mon, MON_DATA_IS_SHINY);
|
||||
}
|
||||
|
||||
const u8 *GetTrainerPartnerName(void)
|
||||
|
|
@ -6687,7 +6687,7 @@ u32 GetFormChangeTargetSpecies(struct Pokemon *mon, enum FormChanges method, u32
|
|||
u32 GetFormChangeTargetSpeciesBoxMon(struct BoxPokemon *boxMon, enum FormChanges method, u32 arg)
|
||||
{
|
||||
u32 i;
|
||||
u32 species = GetBoxMonData(boxMon, MON_DATA_SPECIES, NULL);
|
||||
u32 species = GetBoxMonData(boxMon, MON_DATA_SPECIES);
|
||||
u32 targetSpecies = species;
|
||||
const struct FormChange *formChanges = GetSpeciesFormChanges(species);
|
||||
u16 heldItem;
|
||||
|
|
@ -6695,8 +6695,8 @@ u32 GetFormChangeTargetSpeciesBoxMon(struct BoxPokemon *boxMon, enum FormChanges
|
|||
|
||||
if (formChanges != NULL)
|
||||
{
|
||||
heldItem = GetBoxMonData(boxMon, MON_DATA_HELD_ITEM, NULL);
|
||||
ability = GetAbilityBySpecies(species, GetBoxMonData(boxMon, MON_DATA_ABILITY_NUM, NULL));
|
||||
heldItem = GetBoxMonData(boxMon, MON_DATA_HELD_ITEM);
|
||||
ability = GetAbilityBySpecies(species, GetBoxMonData(boxMon, MON_DATA_ABILITY_NUM));
|
||||
|
||||
for (i = 0; formChanges[i].method != FORM_CHANGE_TERMINATOR; i++)
|
||||
{
|
||||
|
|
@ -6741,7 +6741,7 @@ u32 GetFormChangeTargetSpeciesBoxMon(struct BoxPokemon *boxMon, enum FormChanges
|
|||
break;
|
||||
}
|
||||
|
||||
if (formChanges[i].param3 != STATUS1_NONE && GetBoxMonData(boxMon, MON_DATA_STATUS, NULL) & formChanges[i].param3)
|
||||
if (formChanges[i].param3 != STATUS1_NONE && GetBoxMonData(boxMon, MON_DATA_STATUS) & formChanges[i].param3)
|
||||
pass = FALSE;
|
||||
|
||||
if (pass)
|
||||
|
|
@ -6775,7 +6775,7 @@ u32 GetFormChangeTargetSpeciesBoxMon(struct BoxPokemon *boxMon, enum FormChanges
|
|||
targetSpecies = formChanges[i].targetSpecies;
|
||||
break;
|
||||
case FORM_CHANGE_STATUS:
|
||||
if (GetBoxMonData(boxMon, MON_DATA_STATUS, NULL) & formChanges[i].param1)
|
||||
if (GetBoxMonData(boxMon, MON_DATA_STATUS) & formChanges[i].param1)
|
||||
targetSpecies = formChanges[i].targetSpecies;
|
||||
break;
|
||||
case FORM_CHANGE_TIME_OF_DAY:
|
||||
|
|
@ -6804,7 +6804,7 @@ u32 GetFormChangeTargetSpeciesBoxMon(struct BoxPokemon *boxMon, enum FormChanges
|
|||
void TrySetDayLimitToFormChange(struct Pokemon *mon)
|
||||
{
|
||||
u32 i;
|
||||
u16 species = GetMonData(mon, MON_DATA_SPECIES, NULL);
|
||||
u16 species = GetMonData(mon, MON_DATA_SPECIES);
|
||||
const struct FormChange *formChanges = GetSpeciesFormChanges(species);
|
||||
|
||||
for (i = 0; formChanges != NULL && formChanges[i].method != FORM_CHANGE_TERMINATOR; i++)
|
||||
|
|
@ -6833,8 +6833,8 @@ bool32 DoesSpeciesHaveFormChangeMethod(u16 species, enum FormChanges method)
|
|||
|
||||
u16 MonTryLearningNewMoveEvolution(struct Pokemon *mon, bool8 firstMove)
|
||||
{
|
||||
u16 species = GetMonData(mon, MON_DATA_SPECIES, NULL);
|
||||
u8 level = GetMonData(mon, MON_DATA_LEVEL, NULL);
|
||||
u16 species = GetMonData(mon, MON_DATA_SPECIES);
|
||||
u8 level = GetMonData(mon, MON_DATA_LEVEL);
|
||||
const struct LevelUpMove *learnset = GetSpeciesLevelUpLearnset(species);
|
||||
|
||||
// Since you can learn more than one move per level,
|
||||
|
|
@ -7010,7 +7010,7 @@ bool32 IsSpeciesEnabled(u16 species)
|
|||
void TryToSetBattleFormChangeMoves(struct Pokemon *mon, enum FormChanges method)
|
||||
{
|
||||
int i, j;
|
||||
u16 species = GetMonData(mon, MON_DATA_SPECIES, NULL);
|
||||
u16 species = GetMonData(mon, MON_DATA_SPECIES);
|
||||
const struct FormChange *formChanges = GetSpeciesFormChanges(species);
|
||||
|
||||
if (formChanges == NULL
|
||||
|
|
@ -7029,7 +7029,7 @@ void TryToSetBattleFormChangeMoves(struct Pokemon *mon, enum FormChanges method)
|
|||
|
||||
for (j = 0; j < MAX_MON_MOVES; j++)
|
||||
{
|
||||
u16 currMove = GetMonData(mon, MON_DATA_MOVE1 + j, NULL);
|
||||
u16 currMove = GetMonData(mon, MON_DATA_MOVE1 + j);
|
||||
if (currMove == originalMove)
|
||||
SetMonMoveSlot_KeepPP(mon, newMove, j);
|
||||
}
|
||||
|
|
@ -7040,7 +7040,7 @@ void TryToSetBattleFormChangeMoves(struct Pokemon *mon, enum FormChanges method)
|
|||
|
||||
u32 GetMonFriendshipScore(struct Pokemon *pokemon)
|
||||
{
|
||||
u32 friendshipScore = GetMonData(pokemon, MON_DATA_FRIENDSHIP, NULL);
|
||||
u32 friendshipScore = GetMonData(pokemon, MON_DATA_FRIENDSHIP);
|
||||
|
||||
if (friendshipScore == MAX_FRIENDSHIP)
|
||||
return FRIENDSHIP_MAX;
|
||||
|
|
@ -7060,7 +7060,7 @@ u32 GetMonFriendshipScore(struct Pokemon *pokemon)
|
|||
|
||||
u32 GetMonAffectionHearts(struct Pokemon *pokemon)
|
||||
{
|
||||
u32 friendship = GetMonData(pokemon, MON_DATA_FRIENDSHIP, NULL);
|
||||
u32 friendship = GetMonData(pokemon, MON_DATA_FRIENDSHIP);
|
||||
|
||||
if (friendship == MAX_FRIENDSHIP)
|
||||
return AFFECTION_FIVE_HEARTS;
|
||||
|
|
@ -7084,9 +7084,9 @@ void UpdateMonPersonality(struct BoxPokemon *boxMon, u32 personality)
|
|||
struct PokemonSubstruct3 *old3, *new3;
|
||||
struct BoxPokemon old;
|
||||
|
||||
bool32 isShiny = GetBoxMonData(boxMon, MON_DATA_IS_SHINY, NULL);
|
||||
u32 hiddenNature = GetBoxMonData(boxMon, MON_DATA_HIDDEN_NATURE, NULL);
|
||||
enum Type teraType = GetBoxMonData(boxMon, MON_DATA_TERA_TYPE, NULL);
|
||||
bool32 isShiny = GetBoxMonData(boxMon, MON_DATA_IS_SHINY);
|
||||
u32 hiddenNature = GetBoxMonData(boxMon, MON_DATA_HIDDEN_NATURE);
|
||||
enum Type teraType = GetBoxMonData(boxMon, MON_DATA_TERA_TYPE);
|
||||
|
||||
old = *boxMon;
|
||||
old0 = &(GetSubstruct(&old, old.personality, SUBSTRUCT_TYPE_0)->type0);
|
||||
|
|
@ -7329,7 +7329,7 @@ u32 GiveScriptedMonToPlayer(struct Pokemon *mon, u8 slot)
|
|||
{
|
||||
for (i = 0; i < PARTY_SIZE; i++)
|
||||
{
|
||||
if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES, NULL) == SPECIES_NONE)
|
||||
if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES) == SPECIES_NONE)
|
||||
break;
|
||||
}
|
||||
if (i >= PARTY_SIZE)
|
||||
|
|
|
|||
|
|
@ -6939,7 +6939,7 @@ static void ReshowDisplayMon(void)
|
|||
void SetMonFormPSS(struct BoxPokemon *boxMon, enum FormChanges method)
|
||||
{
|
||||
u16 targetSpecies = GetFormChangeTargetSpeciesBoxMon(boxMon, method, 0);
|
||||
if (targetSpecies != GetBoxMonData(boxMon, MON_DATA_SPECIES, NULL))
|
||||
if (targetSpecies != GetBoxMonData(boxMon, MON_DATA_SPECIES))
|
||||
{
|
||||
SetBoxMonData(boxMon, MON_DATA_SPECIES, &targetSpecies);
|
||||
sRefreshDisplayMonGfx = TRUE;
|
||||
|
|
|
|||
|
|
@ -4980,7 +4980,7 @@ static void CB2_PssChangePokemonNickname(void)
|
|||
{
|
||||
GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_NICKNAME, gStringVar3);
|
||||
GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_NICKNAME, gStringVar2);
|
||||
DoNamingScreen(NAMING_SCREEN_NICKNAME, gStringVar2, GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_SPECIES, NULL),
|
||||
GetMonGender(&gPlayerParty[gSpecialVar_0x8004]), GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_PERSONALITY, NULL),
|
||||
DoNamingScreen(NAMING_SCREEN_NICKNAME, gStringVar2, GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_SPECIES),
|
||||
GetMonGender(&gPlayerParty[gSpecialVar_0x8004]), GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_PERSONALITY),
|
||||
CB2_ReturnToSummaryScreenFromNamingScreen);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -757,12 +757,12 @@ void RecordedBattle_CheckMovesetChanges(u8 mode)
|
|||
{
|
||||
struct Pokemon *mon = GetBattlerMon(battler);
|
||||
for (j = 0; j < MAX_MON_MOVES; j++)
|
||||
ppBonuses[j] = (GetMonData(mon, MON_DATA_PP_BONUSES, NULL) & ((3 << (j << 1)))) >> (j << 1);
|
||||
ppBonuses[j] = (GetMonData(mon, MON_DATA_PP_BONUSES) & ((3 << (j << 1)))) >> (j << 1);
|
||||
|
||||
for (j = 0; j < MAX_MON_MOVES; j++)
|
||||
{
|
||||
movePp.moves[j] = GetMonData(mon, MON_DATA_MOVE1 + moveSlots[j], NULL);
|
||||
movePp.currentPp[j] = GetMonData(mon, MON_DATA_PP1 + moveSlots[j], NULL);
|
||||
movePp.moves[j] = GetMonData(mon, MON_DATA_MOVE1 + moveSlots[j]);
|
||||
movePp.currentPp[j] = GetMonData(mon, MON_DATA_PP1 + moveSlots[j]);
|
||||
movePp.maxPp[j] = ppBonuses[moveSlots[j]];
|
||||
}
|
||||
for (j = 0; j < MAX_MON_MOVES; j++)
|
||||
|
|
|
|||
|
|
@ -2129,7 +2129,7 @@ bool8 ScrCmd_bufferleadmonspeciesname(struct ScriptContext *ctx)
|
|||
|
||||
u8 *dest = sScriptStringVars[stringVarIndex];
|
||||
u8 partyIndex = GetLeadMonIndex();
|
||||
u32 species = GetMonData(&gPlayerParty[partyIndex], MON_DATA_SPECIES, NULL);
|
||||
u32 species = GetMonData(&gPlayerParty[partyIndex], MON_DATA_SPECIES);
|
||||
StringCopy(dest, GetSpeciesName(species));
|
||||
return FALSE;
|
||||
}
|
||||
|
|
@ -2317,7 +2317,7 @@ bool8 ScrCmd_checkfieldmove(struct ScriptContext *ctx)
|
|||
move = FieldMove_GetMoveId(fieldMove);
|
||||
for (u32 i = 0; i < PARTY_SIZE; i++)
|
||||
{
|
||||
u16 species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES, NULL);
|
||||
u16 species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES);
|
||||
if (!species)
|
||||
break;
|
||||
if (!GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG) && MonKnowsMove(&gPlayerParty[i], move) == TRUE)
|
||||
|
|
@ -2963,7 +2963,7 @@ bool8 ScrCmd_checkmodernfatefulencounter(struct ScriptContext *ctx)
|
|||
|
||||
Script_RequestEffects(SCREFF_V1);
|
||||
|
||||
gSpecialVar_Result = GetMonData(&gPlayerParty[partyIndex], MON_DATA_MODERN_FATEFUL_ENCOUNTER, NULL);
|
||||
gSpecialVar_Result = GetMonData(&gPlayerParty[partyIndex], MON_DATA_MODERN_FATEFUL_ENCOUNTER);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
|
|
|||
18
src/trade.c
18
src/trade.c
|
|
@ -575,7 +575,7 @@ static void CB2_CreateTradeMenu(void)
|
|||
for (i = 0; i < sTradeMenu->partyCounts[TRADE_PARTNER]; i++)
|
||||
{
|
||||
struct Pokemon *mon = &gEnemyParty[i];
|
||||
sTradeMenu->partySpriteIds[TRADE_PARTNER][i] = CreateMonIcon(GetMonData(mon, MON_DATA_SPECIES_OR_EGG, NULL),
|
||||
sTradeMenu->partySpriteIds[TRADE_PARTNER][i] = CreateMonIcon(GetMonData(mon, MON_DATA_SPECIES_OR_EGG),
|
||||
SpriteCB_MonIcon,
|
||||
(sTradeMonSpriteCoords[i + PARTY_SIZE][0] * 8) + 14,
|
||||
(sTradeMonSpriteCoords[i + PARTY_SIZE][1] * 8) - 12,
|
||||
|
|
@ -753,7 +753,7 @@ static void CB2_ReturnToTradeMenu(void)
|
|||
for (i = 0; i < sTradeMenu->partyCounts[TRADE_PLAYER]; i++)
|
||||
{
|
||||
struct Pokemon *mon = &gPlayerParty[i];
|
||||
sTradeMenu->partySpriteIds[TRADE_PLAYER][i] = CreateMonIcon(GetMonData(mon, MON_DATA_SPECIES_OR_EGG, NULL),
|
||||
sTradeMenu->partySpriteIds[TRADE_PLAYER][i] = CreateMonIcon(GetMonData(mon, MON_DATA_SPECIES_OR_EGG),
|
||||
SpriteCB_MonIcon,
|
||||
(sTradeMonSpriteCoords[i][0] * 8) + 14,
|
||||
(sTradeMonSpriteCoords[i][1] * 8) - 12,
|
||||
|
|
@ -764,7 +764,7 @@ static void CB2_ReturnToTradeMenu(void)
|
|||
for (i = 0; i < sTradeMenu->partyCounts[TRADE_PARTNER]; i++)
|
||||
{
|
||||
struct Pokemon *mon = &gEnemyParty[i];
|
||||
sTradeMenu->partySpriteIds[TRADE_PARTNER][i] = CreateMonIcon(GetMonData(mon, MON_DATA_SPECIES_OR_EGG, NULL),
|
||||
sTradeMenu->partySpriteIds[TRADE_PARTNER][i] = CreateMonIcon(GetMonData(mon, MON_DATA_SPECIES_OR_EGG),
|
||||
SpriteCB_MonIcon,
|
||||
(sTradeMonSpriteCoords[i + PARTY_SIZE][0] * 8) + 14,
|
||||
(sTradeMonSpriteCoords[i + PARTY_SIZE][1] * 8) - 12,
|
||||
|
|
@ -1964,9 +1964,9 @@ static void BufferMovesString(u8 *str, u8 whichParty, u8 partyIdx)
|
|||
for (i = 0; i < MAX_MON_MOVES; i++)
|
||||
{
|
||||
if (whichParty == TRADE_PLAYER)
|
||||
moves[i] = GetMonData(&gPlayerParty[partyIdx], i + MON_DATA_MOVE1, NULL);
|
||||
moves[i] = GetMonData(&gPlayerParty[partyIdx], i + MON_DATA_MOVE1);
|
||||
else
|
||||
moves[i] = GetMonData(&gEnemyParty[partyIdx], i + MON_DATA_MOVE1, NULL);
|
||||
moves[i] = GetMonData(&gEnemyParty[partyIdx], i + MON_DATA_MOVE1);
|
||||
}
|
||||
|
||||
StringCopy(str, sText_EmptyString);
|
||||
|
|
@ -2022,9 +2022,9 @@ static void PrintLevelAndGender(u8 whichParty, u8 monIdx, u8 x, u8 y, u8 width,
|
|||
CopyBgTilemapBufferToVram(1);
|
||||
|
||||
if (whichParty == TRADE_PLAYER)
|
||||
level = GetMonData(&gPlayerParty[monIdx], MON_DATA_LEVEL, NULL);
|
||||
level = GetMonData(&gPlayerParty[monIdx], MON_DATA_LEVEL);
|
||||
else
|
||||
level = GetMonData(&gEnemyParty[monIdx], MON_DATA_LEVEL, NULL);
|
||||
level = GetMonData(&gEnemyParty[monIdx], MON_DATA_LEVEL);
|
||||
|
||||
if (!sTradeMenu->isEgg[whichParty][monIdx])
|
||||
{
|
||||
|
|
@ -3066,8 +3066,8 @@ static void UpdatePokedexForReceivedMon(u8 partyIdx)
|
|||
|
||||
if (!GetMonData(mon, MON_DATA_IS_EGG))
|
||||
{
|
||||
u16 species = GetMonData(mon, MON_DATA_SPECIES, NULL);
|
||||
u32 personality = GetMonData(mon, MON_DATA_PERSONALITY, NULL);
|
||||
u16 species = GetMonData(mon, MON_DATA_SPECIES);
|
||||
u32 personality = GetMonData(mon, MON_DATA_PERSONALITY);
|
||||
enum NationalDexOrder dexNum = SpeciesToNationalPokedexNum(species);
|
||||
GetSetPokedexFlag(dexNum, FLAG_SET_SEEN);
|
||||
HandleSetPokedexFlag(dexNum, FLAG_SET_CAUGHT, personality);
|
||||
|
|
|
|||
|
|
@ -962,7 +962,7 @@ u8 GetTrainerEncounterMusicIdInTrainerHill(u16 trainerId)
|
|||
|
||||
static void SetTrainerHillMonLevel(struct Pokemon *mon, u8 level)
|
||||
{
|
||||
u16 species = GetMonData(mon, MON_DATA_SPECIES, NULL);
|
||||
u16 species = GetMonData(mon, MON_DATA_SPECIES);
|
||||
u32 exp = gExperienceTables[gSpeciesInfo[species].growthRate][level];
|
||||
|
||||
SetMonData(mon, MON_DATA_EXP, &exp);
|
||||
|
|
|
|||
|
|
@ -106,10 +106,10 @@ static u32 GetPartyMonCount(u32 firstId, u32 lastId, u32 side, bool32 onlyAlive)
|
|||
{
|
||||
for (u32 i = firstId; i < lastId; i++)
|
||||
{
|
||||
u32 species = GetMonData(&party[sMultiBattleOrder[i]], MON_DATA_SPECIES_OR_EGG, NULL);
|
||||
u32 species = GetMonData(&party[sMultiBattleOrder[i]], MON_DATA_SPECIES_OR_EGG);
|
||||
if (species != SPECIES_NONE
|
||||
&& species != SPECIES_EGG
|
||||
&& (!onlyAlive || GetMonData(&party[sMultiBattleOrder[i]], MON_DATA_HP, NULL)))
|
||||
&& (!onlyAlive || GetMonData(&party[sMultiBattleOrder[i]], MON_DATA_HP)))
|
||||
{
|
||||
count++;
|
||||
}
|
||||
|
|
@ -119,10 +119,10 @@ static u32 GetPartyMonCount(u32 firstId, u32 lastId, u32 side, bool32 onlyAlive)
|
|||
{
|
||||
for (u32 i = firstId; i < lastId; i++)
|
||||
{
|
||||
u32 species = GetMonData(&party[i], MON_DATA_SPECIES_OR_EGG, NULL);
|
||||
u32 species = GetMonData(&party[i], MON_DATA_SPECIES_OR_EGG);
|
||||
if (species != SPECIES_NONE
|
||||
&& species != SPECIES_EGG
|
||||
&& (!onlyAlive || GetMonData(&party[i], MON_DATA_HP, NULL)))
|
||||
&& (!onlyAlive || GetMonData(&party[i], MON_DATA_HP)))
|
||||
{
|
||||
count++;
|
||||
}
|
||||
|
|
|
|||
46
src/tv.c
46
src/tv.c
|
|
@ -1242,7 +1242,7 @@ static void InterviewAfter_ContestLiveUpdates(void)
|
|||
show2->contestLiveUpdates.active = TRUE;
|
||||
StringCopy(show2->contestLiveUpdates.winningTrainerName, gSaveBlock2Ptr->playerName); // Show only begins running if player won, so always load players name
|
||||
show2->contestLiveUpdates.category = gSpecialVar_ContestCategory;
|
||||
show2->contestLiveUpdates.winningSpecies = GetMonData(&gPlayerParty[gContestMonPartyIndex], MON_DATA_SPECIES, NULL);
|
||||
show2->contestLiveUpdates.winningSpecies = GetMonData(&gPlayerParty[gContestMonPartyIndex], MON_DATA_SPECIES);
|
||||
show2->contestLiveUpdates.losingSpecies = show->contestLiveUpdates.losingSpecies;
|
||||
show2->contestLiveUpdates.loserAppealFlag = show->contestLiveUpdates.loserAppealFlag;
|
||||
show2->contestLiveUpdates.round1Placing = show->contestLiveUpdates.round1Placing;
|
||||
|
|
@ -1467,7 +1467,7 @@ void BravoTrainerPokemonProfile_BeforeInterview2(u8 contestStandingPlace)
|
|||
show->bravoTrainer.contestResult = contestStandingPlace;
|
||||
show->bravoTrainer.contestCategory = gSpecialVar_ContestCategory;
|
||||
show->bravoTrainer.contestRank = gSpecialVar_ContestRank;
|
||||
show->bravoTrainer.species = GetMonData(&gPlayerParty[gContestMonPartyIndex], MON_DATA_SPECIES, NULL);
|
||||
show->bravoTrainer.species = GetMonData(&gPlayerParty[gContestMonPartyIndex], MON_DATA_SPECIES);
|
||||
GetMonData(&gPlayerParty[gContestMonPartyIndex], MON_DATA_NICKNAME10, show->bravoTrainer.pokemonNickname);
|
||||
StripExtCtrlCodes(show->bravoTrainer.pokemonNickname);
|
||||
show->bravoTrainer.pokemonNameLanguage = GetMonData(&gPlayerParty[gContestMonPartyIndex], MON_DATA_LANGUAGE);
|
||||
|
|
@ -1544,7 +1544,7 @@ void PutNameRaterShowOnTheAir(void)
|
|||
show = &gSaveBlock1Ptr->tvShows[sCurTVShowSlot];
|
||||
show->nameRaterShow.kind = TVSHOW_NAME_RATER_SHOW;
|
||||
show->nameRaterShow.active = TRUE;
|
||||
show->nameRaterShow.species = GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_SPECIES, NULL);
|
||||
show->nameRaterShow.species = GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_SPECIES);
|
||||
show->nameRaterShow.random = Random() % 3;
|
||||
show->nameRaterShow.random2 = Random() % 2;
|
||||
show->nameRaterShow.randomSpecies = GetRandomDifferentSpeciesSeenByPlayer(show->nameRaterShow.species);
|
||||
|
|
@ -1601,7 +1601,7 @@ static void InterviewAfter_FanClubLetter(void)
|
|||
show->fanclubLetter.kind = TVSHOW_FAN_CLUB_LETTER;
|
||||
show->fanclubLetter.active = TRUE;
|
||||
StringCopy(show->fanclubLetter.playerName, gSaveBlock2Ptr->playerName);
|
||||
show->fanclubLetter.species = GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_SPECIES, NULL);
|
||||
show->fanclubLetter.species = GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_SPECIES);
|
||||
StorePlayerIdInNormalShow(show);
|
||||
show->fanclubLetter.language = gGameLanguage;
|
||||
}
|
||||
|
|
@ -1622,12 +1622,12 @@ static void InterviewAfter_PkmnFanClubOpinions(void)
|
|||
TVShow *show = &gSaveBlock1Ptr->tvShows[sCurTVShowSlot];
|
||||
show->fanclubOpinions.kind = TVSHOW_PKMN_FAN_CLUB_OPINIONS;
|
||||
show->fanclubOpinions.active = TRUE;
|
||||
show->fanclubOpinions.friendshipHighNybble = GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_FRIENDSHIP, NULL) >> 4;
|
||||
show->fanclubOpinions.friendshipHighNybble = GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_FRIENDSHIP) >> 4;
|
||||
show->fanclubOpinions.questionAsked = gSpecialVar_0x8007;
|
||||
StringCopy(show->fanclubOpinions.playerName, gSaveBlock2Ptr->playerName);
|
||||
GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_NICKNAME10, show->fanclubOpinions.nickname);
|
||||
StripExtCtrlCodes(show->fanclubOpinions.nickname);
|
||||
show->fanclubOpinions.species = GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_SPECIES, NULL);
|
||||
show->fanclubOpinions.species = GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_SPECIES);
|
||||
StorePlayerIdInNormalShow(show);
|
||||
show->fanclubOpinions.language = gGameLanguage;
|
||||
if (gGameLanguage == LANGUAGE_JAPANESE || GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_LANGUAGE) == LANGUAGE_JAPANESE)
|
||||
|
|
@ -2390,23 +2390,23 @@ void TryPutFrontierTVShowOnAir(u16 winStreak, u8 facilityAndMode)
|
|||
case FRONTIER_SHOW_PALACE_SINGLES:
|
||||
case FRONTIER_SHOW_PALACE_DOUBLES:
|
||||
case FRONTIER_SHOW_PYRAMID:
|
||||
show->frontier.species1 = GetMonData(&gPlayerParty[0], MON_DATA_SPECIES, NULL);
|
||||
show->frontier.species2 = GetMonData(&gPlayerParty[1], MON_DATA_SPECIES, NULL);
|
||||
show->frontier.species3 = GetMonData(&gPlayerParty[2], MON_DATA_SPECIES, NULL);
|
||||
show->frontier.species1 = GetMonData(&gPlayerParty[0], MON_DATA_SPECIES);
|
||||
show->frontier.species2 = GetMonData(&gPlayerParty[1], MON_DATA_SPECIES);
|
||||
show->frontier.species3 = GetMonData(&gPlayerParty[2], MON_DATA_SPECIES);
|
||||
break;
|
||||
case FRONTIER_SHOW_TOWER_DOUBLES:
|
||||
show->frontier.species1 = GetMonData(&gPlayerParty[0], MON_DATA_SPECIES, NULL);
|
||||
show->frontier.species2 = GetMonData(&gPlayerParty[1], MON_DATA_SPECIES, NULL);
|
||||
show->frontier.species3 = GetMonData(&gPlayerParty[2], MON_DATA_SPECIES, NULL);
|
||||
show->frontier.species4 = GetMonData(&gPlayerParty[3], MON_DATA_SPECIES, NULL);
|
||||
show->frontier.species1 = GetMonData(&gPlayerParty[0], MON_DATA_SPECIES);
|
||||
show->frontier.species2 = GetMonData(&gPlayerParty[1], MON_DATA_SPECIES);
|
||||
show->frontier.species3 = GetMonData(&gPlayerParty[2], MON_DATA_SPECIES);
|
||||
show->frontier.species4 = GetMonData(&gPlayerParty[3], MON_DATA_SPECIES);
|
||||
break;
|
||||
case FRONTIER_SHOW_TOWER_MULTIS:
|
||||
show->frontier.species1 = GetMonData(&gPlayerParty[0], MON_DATA_SPECIES, NULL);
|
||||
show->frontier.species2 = GetMonData(&gPlayerParty[1], MON_DATA_SPECIES, NULL);
|
||||
show->frontier.species1 = GetMonData(&gPlayerParty[0], MON_DATA_SPECIES);
|
||||
show->frontier.species2 = GetMonData(&gPlayerParty[1], MON_DATA_SPECIES);
|
||||
break;
|
||||
case FRONTIER_SHOW_TOWER_LINK_MULTIS:
|
||||
show->frontier.species1 = GetMonData(GetSavedPlayerPartyMon(gSaveBlock2Ptr->frontier.selectedPartyMons[0] - 1), MON_DATA_SPECIES, NULL);
|
||||
show->frontier.species2 = GetMonData(GetSavedPlayerPartyMon(gSaveBlock2Ptr->frontier.selectedPartyMons[1] - 1), MON_DATA_SPECIES, NULL);
|
||||
show->frontier.species1 = GetMonData(GetSavedPlayerPartyMon(gSaveBlock2Ptr->frontier.selectedPartyMons[0] - 1), MON_DATA_SPECIES);
|
||||
show->frontier.species2 = GetMonData(GetSavedPlayerPartyMon(gSaveBlock2Ptr->frontier.selectedPartyMons[1] - 1), MON_DATA_SPECIES);
|
||||
break;
|
||||
}
|
||||
StorePlayerIdInRecordMixShow(show);
|
||||
|
|
@ -2915,7 +2915,7 @@ static void InterviewBefore_FanClubLetter(void)
|
|||
TryReplaceOldTVShowOfKind(TVSHOW_FAN_CLUB_LETTER);
|
||||
if (!gSpecialVar_Result)
|
||||
{
|
||||
StringCopy(gStringVar1, GetSpeciesName(GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_SPECIES, NULL)));
|
||||
StringCopy(gStringVar1, GetSpeciesName(GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_SPECIES)));
|
||||
InitializeEasyChatWordArray(gSaveBlock1Ptr->tvShows[sCurTVShowSlot].fanclubLetter.words,
|
||||
ARRAY_COUNT(gSaveBlock1Ptr->tvShows[sCurTVShowSlot].fanclubLetter.words));
|
||||
}
|
||||
|
|
@ -2936,7 +2936,7 @@ static void InterviewBefore_PkmnFanClubOpinions(void)
|
|||
TryReplaceOldTVShowOfKind(TVSHOW_PKMN_FAN_CLUB_OPINIONS);
|
||||
if (!gSpecialVar_Result)
|
||||
{
|
||||
StringCopy(gStringVar1, GetSpeciesName(GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_SPECIES, NULL)));
|
||||
StringCopy(gStringVar1, GetSpeciesName(GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_SPECIES)));
|
||||
GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_NICKNAME, gStringVar2);
|
||||
StringGet_Nickname(gStringVar2);
|
||||
InitializeEasyChatWordArray(gSaveBlock1Ptr->tvShows[sCurTVShowSlot].fanclubOpinions.words,
|
||||
|
|
@ -2996,7 +2996,7 @@ static bool8 IsPartyMonNicknamedOrNotEnglish(u8 monIdx)
|
|||
pokemon = &gPlayerParty[monIdx];
|
||||
GetMonData(pokemon, MON_DATA_NICKNAME, gStringVar1);
|
||||
language = GetMonData(pokemon, MON_DATA_LANGUAGE, &language);
|
||||
if (language == GAME_LANGUAGE && !StringCompare(GetSpeciesName(GetMonData(pokemon, MON_DATA_SPECIES, NULL)), gStringVar1))
|
||||
if (language == GAME_LANGUAGE && !StringCompare(GetSpeciesName(GetMonData(pokemon, MON_DATA_SPECIES)), gStringVar1))
|
||||
return FALSE;
|
||||
|
||||
return TRUE;
|
||||
|
|
@ -3276,7 +3276,7 @@ void ChangePokemonNickname(void)
|
|||
|
||||
GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_NICKNAME, gStringVar3);
|
||||
GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_NICKNAME, gStringVar2);
|
||||
DoNamingScreen(NAMING_SCREEN_NICKNAME, gStringVar2, GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_SPECIES, NULL), GetMonGender(&gPlayerParty[gSpecialVar_0x8004]), GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_PERSONALITY, NULL), ChangePokemonNickname_CB);
|
||||
DoNamingScreen(NAMING_SCREEN_NICKNAME, gStringVar2, GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_SPECIES), GetMonGender(&gPlayerParty[gSpecialVar_0x8004]), GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_PERSONALITY), ChangePokemonNickname_CB);
|
||||
}
|
||||
|
||||
void ChangePokemonNickname_CB(void)
|
||||
|
|
@ -3292,7 +3292,7 @@ void ChangeBoxPokemonNickname(void)
|
|||
boxMon = GetBoxedMonPtr(gSpecialVar_MonBoxId, gSpecialVar_MonBoxPos);
|
||||
GetBoxMonData(boxMon, MON_DATA_NICKNAME, gStringVar3);
|
||||
GetBoxMonData(boxMon, MON_DATA_NICKNAME, gStringVar2);
|
||||
DoNamingScreen(NAMING_SCREEN_NICKNAME, gStringVar2, GetBoxMonData(boxMon, MON_DATA_SPECIES, NULL), GetBoxMonGender(boxMon), GetBoxMonData(boxMon, MON_DATA_PERSONALITY, NULL), ChangeBoxPokemonNickname_CB);
|
||||
DoNamingScreen(NAMING_SCREEN_NICKNAME, gStringVar2, GetBoxMonData(boxMon, MON_DATA_SPECIES), GetBoxMonGender(boxMon), GetBoxMonData(boxMon, MON_DATA_PERSONALITY), ChangeBoxPokemonNickname_CB);
|
||||
}
|
||||
|
||||
static void ChangeBoxPokemonNickname_CB(void)
|
||||
|
|
@ -3313,7 +3313,7 @@ void BufferMonNickname(void)
|
|||
void IsMonOTIDNotPlayers(void)
|
||||
{
|
||||
if(gSpecialVar_MonBoxId == 0xFF){
|
||||
if (GetPlayerIDAsU32() == GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_OT_ID, NULL))
|
||||
if (GetPlayerIDAsU32() == GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_OT_ID))
|
||||
gSpecialVar_Result = FALSE;
|
||||
else
|
||||
gSpecialVar_Result = TRUE;
|
||||
|
|
|
|||
|
|
@ -237,7 +237,7 @@ void LoadTypeIcons(u32 battler)
|
|||
u32 position;
|
||||
|
||||
struct Pokemon* mon = GetBattlerMon(battler);
|
||||
u32 species = GetMonData(mon, MON_DATA_SPECIES, NULL);
|
||||
u32 species = GetMonData(mon, MON_DATA_SPECIES);
|
||||
|
||||
if (B_SHOW_TYPES == SHOW_TYPES_NEVER
|
||||
|| (B_SHOW_TYPES == SHOW_TYPES_SEEN && !GetSetPokedexFlag(SpeciesToNationalPokedexNum(species), FLAG_GET_SEEN)))
|
||||
|
|
|
|||
|
|
@ -1763,7 +1763,7 @@ static void Task_RunScriptAndFadeToActivity(u8 taskId)
|
|||
gLinkPlayers[0].id = 0;
|
||||
gLinkPlayers[1].id = 2;
|
||||
sendBuff[0] = GetMonData(&gPlayerParty[gSelectedOrderFromParty[0] - 1], MON_DATA_SPECIES);
|
||||
sendBuff[1] = GetMonData(&gPlayerParty[gSelectedOrderFromParty[1] - 1], MON_DATA_SPECIES, NULL);
|
||||
sendBuff[1] = GetMonData(&gPlayerParty[gSelectedOrderFromParty[1] - 1], MON_DATA_SPECIES);
|
||||
gMain.savedCallback = NULL;
|
||||
data[0] = 4;
|
||||
SaveLinkTrainerNames();
|
||||
|
|
|
|||
|
|
@ -498,12 +498,12 @@ static void BattleTest_Run(void *data)
|
|||
|
||||
for (i = 0; i < 3; i++)
|
||||
{
|
||||
if(GetMonData(&DATA.recordedBattle.playerParty[i], MON_DATA_SPECIES, NULL) != SPECIES_NONE)
|
||||
if(GetMonData(&DATA.recordedBattle.playerParty[i], MON_DATA_SPECIES) != SPECIES_NONE)
|
||||
revisedPlayerExplicitSpeeds |= 1 << i;
|
||||
}
|
||||
for (i = 3; i < PARTY_SIZE; i++)
|
||||
{
|
||||
if(GetMonData(&DATA.recordedBattle.playerParty[i], MON_DATA_SPECIES, NULL) != SPECIES_NONE)
|
||||
if(GetMonData(&DATA.recordedBattle.playerParty[i], MON_DATA_SPECIES) != SPECIES_NONE)
|
||||
{
|
||||
if(DATA.currentPosition == B_POSITION_PLAYER_LEFT)
|
||||
revisedPlayerExplicitSpeeds |= 1 << i;
|
||||
|
|
@ -514,12 +514,12 @@ static void BattleTest_Run(void *data)
|
|||
|
||||
for (i = 0; i < 3; i++)
|
||||
{
|
||||
if(GetMonData(&DATA.recordedBattle.opponentParty[i], MON_DATA_SPECIES, NULL) != SPECIES_NONE)
|
||||
if(GetMonData(&DATA.recordedBattle.opponentParty[i], MON_DATA_SPECIES) != SPECIES_NONE)
|
||||
revisedOpponentAExplicitSpeeds |= 1 << i;
|
||||
}
|
||||
for (i = 3; i < PARTY_SIZE; i++)
|
||||
{
|
||||
if(GetMonData(&DATA.recordedBattle.opponentParty[i], MON_DATA_SPECIES, NULL) != SPECIES_NONE)
|
||||
if(GetMonData(&DATA.recordedBattle.opponentParty[i], MON_DATA_SPECIES) != SPECIES_NONE)
|
||||
{
|
||||
if(DATA.currentPosition == B_POSITION_OPPONENT_LEFT)
|
||||
revisedOpponentAExplicitSpeeds |= 1 << i;
|
||||
|
|
@ -3113,7 +3113,7 @@ void UseItem(u32 sourceLine, struct BattlePokemon *battler, struct ItemContext c
|
|||
INVALID_IF(!ctx.explicitMove, "%S requires an explicit move", GetItemName(ctx.itemId));
|
||||
for (i = 0; i < MAX_MON_MOVES; i++)
|
||||
{
|
||||
if (GetMonData(CurrentMon(battlerId), MON_DATA_MOVE1 + i, NULL) == ctx.move)
|
||||
if (GetMonData(CurrentMon(battlerId), MON_DATA_MOVE1 + i) == ctx.move)
|
||||
break;
|
||||
}
|
||||
INVALID_IF(i == MAX_MON_MOVES, "USE_ITEM on invalid move: %d", ctx.move);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user