mirror of
https://github.com/pret/pokefirered.git
synced 2026-09-15 04:45:32 -05:00
Merge branch 'Ability-changes' of https://github.com/Prof-Holon/copper_blue into Ability-changes
This commit is contained in:
Binary file not shown.
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 4.3 KiB |
@@ -2918,13 +2918,13 @@ static void Cmd_seteffectprimary(void)
|
||||
static void Cmd_seteffectsecondary(void) //should prevent same-type status effects
|
||||
switch (gBattleCommunication[MOVE_EFFECT_BYTE])
|
||||
{
|
||||
case MOVE_EFFECT_SLEEP:
|
||||
case MOVE_EFFECT_POISON:
|
||||
case MOVE_EFFECT_BURN:
|
||||
case MOVE_EFFECT_FREEZE:
|
||||
case MOVE_EFFECT_PARALYSIS:
|
||||
case MOVE_EFFECT_TOXIC:
|
||||
if (ismovetypestatusimmune(gCurrentMove, gBattlerTarget))
|
||||
case MOVE_EFFECT_SLEEP:
|
||||
case MOVE_EFFECT_POISON:
|
||||
case MOVE_EFFECT_BURN:
|
||||
case MOVE_EFFECT_FREEZE:
|
||||
case MOVE_EFFECT_PARALYSIS:
|
||||
case MOVE_EFFECT_TOXIC:
|
||||
if (ismovetypestatusimmune(gCurrentMove, gBattlerTarget))
|
||||
{
|
||||
gBattlescriptCurrInstr++;
|
||||
return;
|
||||
@@ -6949,7 +6949,14 @@ static u8 ChangeStatBuffs(s8 statValue, u8 statId, u8 flags, const u8 *BS_ptr)
|
||||
gBattleMons[gActiveBattler].statStages[statId] = MIN_STAT_STAGE;
|
||||
if (gBattleMons[gActiveBattler].statStages[statId] > MAX_STAT_STAGE)
|
||||
gBattleMons[gActiveBattler].statStages[statId] = MAX_STAT_STAGE;
|
||||
|
||||
// ADD: mirror SpAtk and SpDef stages — merged Special stat
|
||||
if (statId == STAT_SPATK)
|
||||
gBattleMons[gActiveBattler].statStages[STAT_SPDEF] =
|
||||
gBattleMons[gActiveBattler].statStages[STAT_SPATK];
|
||||
if (statId == STAT_SPDEF)
|
||||
gBattleMons[gActiveBattler].statStages[STAT_SPATK] =
|
||||
gBattleMons[gActiveBattler].statStages[STAT_SPDEF];
|
||||
// END ADD
|
||||
if (gBattleCommunication[MULTISTRING_CHOOSER] == B_MSG_STAT_WONT_INCREASE && flags & STAT_CHANGE_ALLOW_PTR)
|
||||
gMoveResultFlags |= MOVE_RESULT_MISSED;
|
||||
|
||||
@@ -6964,6 +6971,12 @@ static void Cmd_statbuffchange(void)
|
||||
const u8 *jumpPtr = T1_READ_PTR(gBattlescriptCurrInstr + 2);
|
||||
if (ChangeStatBuffs(gBattleScripting.statChanger & 0xF0, GET_STAT_BUFF_ID(gBattleScripting.statChanger), gBattlescriptCurrInstr[1], jumpPtr) == STAT_CHANGE_WORKED)
|
||||
gBattlescriptCurrInstr += 6;
|
||||
if (statId == STAT_SPATK)
|
||||
gBattleMons[gBattlerTarget].statStages[STAT_SPDEF] =
|
||||
gBattleMons[gBattlerTarget].statStages[STAT_SPATK];
|
||||
if (statId == STAT_SPDEF)
|
||||
gBattleMons[gBattlerTarget].statStages[STAT_SPATK] =
|
||||
gBattleMons[gBattlerTarget].statStages[STAT_SPDEF];
|
||||
}
|
||||
|
||||
// Haze
|
||||
|
||||
@@ -158,15 +158,15 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
|
||||
|
||||
[MOVE_GUILLOTINE] =
|
||||
{
|
||||
.effect = EFFECT_OHKO,
|
||||
.power = 1,
|
||||
.effect = EFFECT_RECHARGE,
|
||||
.power = 150,
|
||||
.type = TYPE_NORMAL,
|
||||
.accuracy = 30,
|
||||
.accuracy = 150,
|
||||
.pp = 5,
|
||||
.secondaryEffectChance = 0,
|
||||
.target = MOVE_TARGET_SELECTED,
|
||||
.priority = 0,
|
||||
.flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
|
||||
.flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
|
||||
},
|
||||
|
||||
[MOVE_RAZOR_WIND] =
|
||||
@@ -418,15 +418,15 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
|
||||
|
||||
[MOVE_HORN_DRILL] =
|
||||
{
|
||||
.effect = EFFECT_OHKO,
|
||||
.power = 1,
|
||||
.type = TYPE_NORMAL,
|
||||
.accuracy = 30,
|
||||
.effect = EFFECT_RECHARGE,
|
||||
.power = 150,
|
||||
.type = TYPE_ROCK,
|
||||
.accuracy = 90,
|
||||
.pp = 5,
|
||||
.secondaryEffectChance = 0,
|
||||
.target = MOVE_TARGET_SELECTED,
|
||||
.priority = 0,
|
||||
.flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
|
||||
.flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
|
||||
},
|
||||
|
||||
[MOVE_TACKLE] =
|
||||
@@ -1172,15 +1172,15 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
|
||||
|
||||
[MOVE_FISSURE] =
|
||||
{
|
||||
.effect = EFFECT_OHKO,
|
||||
.power = 1,
|
||||
.effect = EFFECT_RECHARGE,
|
||||
.power = 150,
|
||||
.type = TYPE_GROUND,
|
||||
.accuracy = 30,
|
||||
.accuracy = 90,
|
||||
.pp = 5,
|
||||
.secondaryEffectChance = 0,
|
||||
.target = MOVE_TARGET_SELECTED,
|
||||
.priority = 0,
|
||||
.flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
|
||||
.flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
|
||||
},
|
||||
|
||||
[MOVE_DIG] =
|
||||
@@ -1224,7 +1224,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
|
||||
|
||||
[MOVE_PSYCHIC] =
|
||||
{
|
||||
.effect = EFFECT_SPECIAL_DEFENSE_DOWN_HIT,
|
||||
.effect = EFFECT_SPECIAL_ATTACK_DOWN_HIT,
|
||||
.power = 90,
|
||||
.type = TYPE_PSYCHIC,
|
||||
.accuracy = 100,
|
||||
@@ -1731,7 +1731,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
|
||||
|
||||
[MOVE_AMNESIA] =
|
||||
{
|
||||
.effect = EFFECT_SPECIAL_DEFENSE_UP_2,
|
||||
.effect = EFFECT_SPECIAL_ATTACK_UP_2,
|
||||
.power = 0,
|
||||
.type = TYPE_PSYCHIC,
|
||||
.accuracy = 0,
|
||||
@@ -3213,7 +3213,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
|
||||
|
||||
[MOVE_SHADOW_BALL] =
|
||||
{
|
||||
.effect = EFFECT_SPECIAL_DEFENSE_DOWN_HIT,
|
||||
.effect = EFFECT_SPECIAL_ATTACK_DOWN_HIT,
|
||||
.power = 80,
|
||||
.type = TYPE_GHOST,
|
||||
.accuracy = 100,
|
||||
@@ -4071,7 +4071,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
|
||||
|
||||
[MOVE_FAKE_TEARS] =
|
||||
{
|
||||
.effect = EFFECT_SPECIAL_DEFENSE_DOWN_2,
|
||||
.effect = EFFECT_SPECIAL_ATTACK_DOWN_2,
|
||||
.power = 0,
|
||||
.type = TYPE_PSYCHIC,
|
||||
.accuracy = 100,
|
||||
@@ -4149,7 +4149,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
|
||||
|
||||
[MOVE_METAL_SOUND] =
|
||||
{
|
||||
.effect = EFFECT_SPECIAL_DEFENSE_DOWN_2,
|
||||
.effect = EFFECT_SPECIAL_ATTACK_DOWN_2,
|
||||
.power = 0,
|
||||
.type = TYPE_ELECTRIC,
|
||||
.accuracy = 85,
|
||||
@@ -4279,15 +4279,15 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
|
||||
|
||||
[MOVE_SHEER_COLD] =
|
||||
{
|
||||
.effect = EFFECT_OHKO,
|
||||
.power = 1,
|
||||
.effect = EFFECT_RECHARGE,
|
||||
.power = 150,
|
||||
.type = TYPE_ICE,
|
||||
.accuracy = 30,
|
||||
.accuracy = 90,
|
||||
.pp = 5,
|
||||
.secondaryEffectChance = 0,
|
||||
.target = MOVE_TARGET_SELECTED,
|
||||
.priority = 0,
|
||||
.flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED,
|
||||
.flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED| FLAG_KINGS_ROCK_AFFECTED,
|
||||
},
|
||||
|
||||
[MOVE_MUDDY_WATER] =
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -2160,8 +2160,14 @@ void CalculateMonStats(struct Pokemon *mon)
|
||||
CALC_STAT(baseAttack, attackIV, attackEV, STAT_ATK, MON_DATA_ATK)
|
||||
CALC_STAT(baseDefense, defenseIV, defenseEV, STAT_DEF, MON_DATA_DEF)
|
||||
CALC_STAT(baseSpeed, speedIV, speedEV, STAT_SPEED, MON_DATA_SPEED)
|
||||
CALC_STAT(baseSpAttack, spAttackIV, spAttackEV, STAT_SPATK, MON_DATA_SPATK)
|
||||
CALC_STAT(baseSpDefense, spDefenseIV, spDefenseEV, STAT_SPDEF, MON_DATA_SPDEF)
|
||||
{
|
||||
u8 baseStat = gSpeciesInfo[species].baseSpAttack; // same value as baseSpDefense after Step 1
|
||||
s32 n = (((2 * baseStat + spAttackIV + spAttackEV / 4) * level) / 100) + 5;
|
||||
u8 nature = GetNature(mon);
|
||||
n = ModifyStatByNature(nature, n, STAT_SPATK); // use SpAtk column only
|
||||
SetMonData(mon, MON_DATA_SPATK, &n);
|
||||
SetMonData(mon, MON_DATA_SPDEF, &n); // mirror
|
||||
}
|
||||
|
||||
if (species == SPECIES_SHEDINJA)
|
||||
{
|
||||
@@ -2468,7 +2474,7 @@ s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *de
|
||||
attack = attacker->attack;
|
||||
defense = defender->defense;
|
||||
spAttack = attacker->spAttack;
|
||||
spDefense = defender->spDefense;
|
||||
spDefense = defender->spAttack; //updated to merge
|
||||
|
||||
// Get attacker hold item info
|
||||
if (attacker->item == ITEM_ENIGMA_BERRY)
|
||||
@@ -2684,10 +2690,10 @@ s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *de
|
||||
if (gCritMultiplier == 2)
|
||||
{
|
||||
// Critical hit, if defender has gained sp. defense stat stages then ignore stat increase
|
||||
if (defender->statStages[STAT_SPDEF] < DEFAULT_STAT_STAGE)
|
||||
APPLY_STAT_MOD(damageHelper, defender, spDefense, STAT_SPDEF)
|
||||
if (defender->statStages[STAT_SPATK] < DEFAULT_STAT_STAGE)
|
||||
APPLY_STAT_MOD(damageHelper, defender, spAttack, STAT_SPATK)
|
||||
else
|
||||
damageHelper = spDefense;
|
||||
damageHelper = spAttack;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -174,6 +174,8 @@ struct PokemonSummaryScreenData
|
||||
u8 ALIGNED(4) levelStrBuf[7];
|
||||
u8 ALIGNED(4) curHpStrBuf[9];
|
||||
u8 ALIGNED(4) statValueStrBufs[5][5];
|
||||
u8 ALIGNED(4) ivStrBufs[5][4]; // add Ivs
|
||||
u8 ALIGNED(4) evStrBufs[5][5]; // add Evs
|
||||
|
||||
u8 ALIGNED(4) moveCurPpStrBufs[5][11];
|
||||
u8 ALIGNED(4) moveMaxPpStrBufs[5][11];
|
||||
@@ -2171,28 +2173,8 @@ static void BufferMonSkills(void)
|
||||
|
||||
if (sMonSummaryScreen->savedCallback == CB2_ReturnToTradeMenuFromSummary && sMonSummaryScreen->isEnemyParty == TRUE)
|
||||
{
|
||||
statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_ATK2);
|
||||
ConvertIntToDecimalStringN(sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_ATK], statValue, STR_CONV_MODE_LEFT_ALIGN, 3);
|
||||
sMonSkillsPrinterXpos->atkStr = GetNumberRightAlign27(sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_ATK]);
|
||||
// SpAtk + SpDef block and add IV/EV reads:
|
||||
|
||||
statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_DEF2);
|
||||
ConvertIntToDecimalStringN(sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_DEF], statValue, STR_CONV_MODE_LEFT_ALIGN, 3);
|
||||
sMonSkillsPrinterXpos->defStr = GetNumberRightAlign27(sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_DEF]);
|
||||
|
||||
statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPATK2);
|
||||
ConvertIntToDecimalStringN(sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_SPA], statValue, STR_CONV_MODE_LEFT_ALIGN, 3);
|
||||
sMonSkillsPrinterXpos->spAStr = GetNumberRightAlign27(sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_SPA]);
|
||||
|
||||
statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPDEF2);
|
||||
ConvertIntToDecimalStringN(sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_SPD], statValue, STR_CONV_MODE_LEFT_ALIGN, 3);
|
||||
sMonSkillsPrinterXpos->spDStr = GetNumberRightAlign27(sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_SPD]);
|
||||
|
||||
statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPEED2);
|
||||
ConvertIntToDecimalStringN(sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_SPE], statValue, STR_CONV_MODE_LEFT_ALIGN, 3);
|
||||
sMonSkillsPrinterXpos->speStr = GetNumberRightAlign27(sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_SPE]);
|
||||
}
|
||||
else
|
||||
{
|
||||
statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_ATK);
|
||||
ConvertIntToDecimalStringN(sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_ATK], statValue, STR_CONV_MODE_LEFT_ALIGN, 3);
|
||||
sMonSkillsPrinterXpos->atkStr = GetNumberRightAlign27(sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_ATK]);
|
||||
@@ -2201,17 +2183,95 @@ static void BufferMonSkills(void)
|
||||
ConvertIntToDecimalStringN(sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_DEF], statValue, STR_CONV_MODE_LEFT_ALIGN, 3);
|
||||
sMonSkillsPrinterXpos->defStr = GetNumberRightAlign27(sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_DEF]);
|
||||
|
||||
// CHANGED: read SpAtk only, write to SPA slot, discard SpDef entirely
|
||||
statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPATK);
|
||||
ConvertIntToDecimalStringN(sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_SPA], statValue, STR_CONV_MODE_LEFT_ALIGN, 3);
|
||||
sMonSkillsPrinterXpos->spAStr = GetNumberRightAlign27(sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_SPA]);
|
||||
|
||||
statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPDEF);
|
||||
ConvertIntToDecimalStringN(sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_SPD], statValue, STR_CONV_MODE_LEFT_ALIGN, 3);
|
||||
sMonSkillsPrinterXpos->spDStr = GetNumberRightAlign27(sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_SPD]);
|
||||
// PSS_STAT_SPD slot and spDStr are no longer populated
|
||||
|
||||
statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPEED);
|
||||
ConvertIntToDecimalStringN(sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_SPE], statValue, STR_CONV_MODE_LEFT_ALIGN, 3);
|
||||
sMonSkillsPrinterXpos->speStr = GetNumberRightAlign27(sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_SPE]);
|
||||
|
||||
// ADD: IV reads
|
||||
statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_ATK_IV);
|
||||
ConvertIntToDecimalStringN(sMonSummaryScreen->summary.ivStrBufs[0], statValue, STR_CONV_MODE_LEFT_ALIGN, 2);
|
||||
|
||||
statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_DEF_IV);
|
||||
ConvertIntToDecimalStringN(sMonSummaryScreen->summary.ivStrBufs[1], statValue, STR_CONV_MODE_LEFT_ALIGN, 2);
|
||||
|
||||
statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPATK_IV);
|
||||
ConvertIntToDecimalStringN(sMonSummaryScreen->summary.ivStrBufs[2], statValue, STR_CONV_MODE_LEFT_ALIGN, 2);
|
||||
|
||||
statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPEED_IV);
|
||||
ConvertIntToDecimalStringN(sMonSummaryScreen->summary.ivStrBufs[3], statValue, STR_CONV_MODE_LEFT_ALIGN, 2);
|
||||
|
||||
statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_HP_IV);
|
||||
ConvertIntToDecimalStringN(sMonSummaryScreen->summary.ivStrBufs[4], statValue, STR_CONV_MODE_LEFT_ALIGN, 2);
|
||||
|
||||
// ADD: EV reads
|
||||
statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_ATK_EV);
|
||||
ConvertIntToDecimalStringN(sMonSummaryScreen->summary.evStrBufs[0], statValue, STR_CONV_MODE_LEFT_ALIGN, 3);
|
||||
|
||||
statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_DEF_EV);
|
||||
ConvertIntToDecimalStringN(sMonSummaryScreen->summary.evStrBufs[1], statValue, STR_CONV_MODE_LEFT_ALIGN, 3);
|
||||
|
||||
statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPATK_EV);
|
||||
ConvertIntToDecimalStringN(sMonSummaryScreen->summary.evStrBufs[2], statValue, STR_CONV_MODE_LEFT_ALIGN, 3);
|
||||
|
||||
statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPEED_EV);
|
||||
ConvertIntToDecimalStringN(sMonSummaryScreen->summary.evStrBufs[3], statValue, STR_CONV_MODE_LEFT_ALIGN, 3);
|
||||
|
||||
statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_HP_EV);
|
||||
ConvertIntToDecimalStringN(sMonSummaryScreen->summary.evStrBufs[4], statValue, STR_CONV_MODE_LEFT_ALIGN, 3);
|
||||
}
|
||||
else
|
||||
{
|
||||
// SpAtk + SpDef block and add IV/EV reads:
|
||||
|
||||
statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_ATK);
|
||||
ConvertIntToDecimalStringN(sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_ATK], statValue, STR_CONV_MODE_LEFT_ALIGN, 3);
|
||||
sMonSkillsPrinterXpos->atkStr = GetNumberRightAlign27(sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_ATK]);
|
||||
|
||||
statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_DEF);
|
||||
ConvertIntToDecimalStringN(sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_DEF], statValue, STR_CONV_MODE_LEFT_ALIGN, 3);
|
||||
sMonSkillsPrinterXpos->defStr = GetNumberRightAlign27(sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_DEF]);
|
||||
|
||||
// CHANGED: read SpAtk only, write to SPA slot, discard SpDef entirely
|
||||
statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPATK);
|
||||
ConvertIntToDecimalStringN(sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_SPA], statValue, STR_CONV_MODE_LEFT_ALIGN, 3);
|
||||
sMonSkillsPrinterXpos->spAStr = GetNumberRightAlign27(sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_SPA]);
|
||||
// PSS_STAT_SPD slot and spDStr are no longer populated
|
||||
|
||||
statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPEED);
|
||||
ConvertIntToDecimalStringN(sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_SPE], statValue, STR_CONV_MODE_LEFT_ALIGN, 3);
|
||||
sMonSkillsPrinterXpos->speStr = GetNumberRightAlign27(sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_SPE]);
|
||||
|
||||
// ADD: IV reads
|
||||
statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_ATK_IV);
|
||||
ConvertIntToDecimalStringN(sMonSummaryScreen->summary.ivStrBufs[0], statValue, STR_CONV_MODE_LEFT_ALIGN, 2);
|
||||
|
||||
statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_DEF_IV);
|
||||
ConvertIntToDecimalStringN(sMonSummaryScreen->summary.ivStrBufs[1], statValue, STR_CONV_MODE_LEFT_ALIGN, 2);
|
||||
|
||||
statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPATK_IV);
|
||||
ConvertIntToDecimalStringN(sMonSummaryScreen->summary.ivStrBufs[2], statValue, STR_CONV_MODE_LEFT_ALIGN, 2);
|
||||
|
||||
statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPEED_IV);
|
||||
ConvertIntToDecimalStringN(sMonSummaryScreen->summary.ivStrBufs[3], statValue, STR_CONV_MODE_LEFT_ALIGN, 2);
|
||||
|
||||
// ADD: EV reads
|
||||
statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_ATK_EV);
|
||||
ConvertIntToDecimalStringN(sMonSummaryScreen->summary.evStrBufs[0], statValue, STR_CONV_MODE_LEFT_ALIGN, 3);
|
||||
|
||||
statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_DEF_EV);
|
||||
ConvertIntToDecimalStringN(sMonSummaryScreen->summary.evStrBufs[1], statValue, STR_CONV_MODE_LEFT_ALIGN, 3);
|
||||
|
||||
statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPATK_EV);
|
||||
ConvertIntToDecimalStringN(sMonSummaryScreen->summary.evStrBufs[2], statValue, STR_CONV_MODE_LEFT_ALIGN, 3);
|
||||
|
||||
statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPEED_EV);
|
||||
ConvertIntToDecimalStringN(sMonSummaryScreen->summary.evStrBufs[3], statValue, STR_CONV_MODE_LEFT_ALIGN, 3);
|
||||
}
|
||||
|
||||
exp = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_EXP);
|
||||
@@ -2498,13 +2558,37 @@ static void PrintInfoPage(void)
|
||||
|
||||
static void PrintSkillsPage(void)
|
||||
{
|
||||
// HP <20> unchanged
|
||||
AddTextPrinterParameterized3(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE], FONT_NORMAL, 14 + sMonSkillsPrinterXpos->curHpStr, 4, sLevelNickTextColors[0], TEXT_SKIP_DRAW, sMonSummaryScreen->summary.curHpStrBuf);
|
||||
|
||||
// ADD: HP IV and EV on the same row
|
||||
AddTextPrinterParameterized3(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE], FONT_SMALL, 56, 4, sLevelNickTextColors[1], TEXT_SKIP_DRAW, sMonSummaryScreen->summary.ivStrBufs[4]);
|
||||
AddTextPrinterParameterized3(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE], FONT_SMALL, 70, 4, sLevelNickTextColors[1], TEXT_SKIP_DRAW, sMonSummaryScreen->summary.evStrBufs[4]);
|
||||
|
||||
// ATK <20> y=22, stat value left column, IV and EV right columns
|
||||
AddTextPrinterParameterized3(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE], FONT_NORMAL, 50 + sMonSkillsPrinterXpos->atkStr, 22, sLevelNickTextColors[0], TEXT_SKIP_DRAW, sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_ATK]);
|
||||
AddTextPrinterParameterized3(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE], FONT_SMALL, 56, 22, sLevelNickTextColors[1], TEXT_SKIP_DRAW, sMonSummaryScreen->summary.ivStrBufs[0]);
|
||||
AddTextPrinterParameterized3(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE], FONT_SMALL, 70, 22, sLevelNickTextColors[1], TEXT_SKIP_DRAW, sMonSummaryScreen->summary.evStrBufs[0]);
|
||||
|
||||
// DEF <20> y=35
|
||||
AddTextPrinterParameterized3(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE], FONT_NORMAL, 50 + sMonSkillsPrinterXpos->defStr, 35, sLevelNickTextColors[0], TEXT_SKIP_DRAW, sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_DEF]);
|
||||
AddTextPrinterParameterized3(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE], FONT_NORMAL, 50 + sMonSkillsPrinterXpos->spAStr, 48, sLevelNickTextColors[0], TEXT_SKIP_DRAW, sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_SPA]);
|
||||
AddTextPrinterParameterized3(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE], FONT_NORMAL, 50 + sMonSkillsPrinterXpos->spDStr, 61, sLevelNickTextColors[0], TEXT_SKIP_DRAW, sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_SPD]);
|
||||
AddTextPrinterParameterized3(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE], FONT_SMALL, 56, 35, sLevelNickTextColors[1], TEXT_SKIP_DRAW, sMonSummaryScreen->summary.ivStrBufs[1]);
|
||||
AddTextPrinterParameterized3(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE], FONT_SMALL, 70, 35, sLevelNickTextColors[1], TEXT_SKIP_DRAW, sMonSummaryScreen->summary.evStrBufs[1]);
|
||||
|
||||
// SPECIAL <20> y=54 (centred between old y=48 and y=61, SpDef row removed)
|
||||
AddTextPrinterParameterized3(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE], FONT_NORMAL, 50 + sMonSkillsPrinterXpos->spAStr, 54, sLevelNickTextColors[0], TEXT_SKIP_DRAW, sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_SPA]);
|
||||
AddTextPrinterParameterized3(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE], FONT_SMALL, 56, 54, sLevelNickTextColors[1], TEXT_SKIP_DRAW, sMonSummaryScreen->summary.ivStrBufs[2]);
|
||||
AddTextPrinterParameterized3(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE], FONT_SMALL, 70, 54, sLevelNickTextColors[1], TEXT_SKIP_DRAW, sMonSummaryScreen->summary.evStrBufs[2]);
|
||||
|
||||
// SPEED <20> not shifted
|
||||
AddTextPrinterParameterized3(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE], FONT_NORMAL, 50 + sMonSkillsPrinterXpos->speStr, 74, sLevelNickTextColors[0], TEXT_SKIP_DRAW, sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_SPE]);
|
||||
AddTextPrinterParameterized3(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE], FONT_SMALL, 56, 74, sLevelNickTextColors[1], TEXT_SKIP_DRAW, sMonSummaryScreen->summary.ivStrBufs[3]);
|
||||
AddTextPrinterParameterized3(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE], FONT_SMALL, 70, 74, sLevelNickTextColors[1], TEXT_SKIP_DRAW, sMonSummaryScreen->summary.evStrBufs[3]);
|
||||
|
||||
// EXP <20> not shifted
|
||||
AddTextPrinterParameterized3(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE], FONT_NORMAL, 15 + sMonSkillsPrinterXpos->expStr, 87, sLevelNickTextColors[0], TEXT_SKIP_DRAW, sMonSummaryScreen->summary.expPointsStrBuf);
|
||||
|
||||
// To Next <20> not shifted
|
||||
AddTextPrinterParameterized3(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE], FONT_NORMAL, 15 + sMonSkillsPrinterXpos->toNextLevel, 100, sLevelNickTextColors[0], TEXT_SKIP_DRAW, sMonSummaryScreen->summary.expToNextLevelStrBuf);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user