summaryrefslogtreecommitdiff
path: root/src/battle_tower.c
diff options
context:
space:
mode:
authorGriffinR <griffin.g.richards@gmail.com>2022-03-31 22:26:03 -0400
committerGitHub <noreply@github.com>2022-03-31 22:26:03 -0400
commit44b44d3e77bb02b3a66aef4689861ee51f38407c (patch)
tree29cb5386a021ba29d0d70d5c863d52bb1e5618d9 /src/battle_tower.c
parent5160520639f913c45a336e6a8117fb8522fb9c4c (diff)
parent66cbe29c1408feef07772ba0b8a5b89995fa3056 (diff)
Merge pull request #1648 from GriffinRichards/factory-bugfix
Add bugfix for Battle Factory trainer IVs
Diffstat (limited to 'src/battle_tower.c')
-rw-r--r--src/battle_tower.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/battle_tower.c b/src/battle_tower.c
index b747a3dc0..989412e9e 100644
--- a/src/battle_tower.c
+++ b/src/battle_tower.c
@@ -1827,13 +1827,18 @@ static void FillFactoryFrontierTrainerParty(u16 trainerId, u8 firstMonId)
if (trainerId < FRONTIER_TRAINERS_COUNT)
{
- u8 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; // Unused variable.
+ u8 lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
u8 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE);
+ // By mistake Battle Tower's Level 50 challenge number is used to determine the IVs for Battle Factory.
+ #ifdef BUGFIX
+ u8 challengeNum = gSaveBlock2Ptr->frontier.factoryWinStreaks[battleMode][lvlMode] / 7;
+ #else
u8 challengeNum = gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][FRONTIER_LVL_50] / 7;
+ #endif
if (gSaveBlock2Ptr->frontier.curChallengeBattleNum < 6)
- fixedIV = GetFactoryMonFixedIV(challengeNum, 0);
+ fixedIV = GetFactoryMonFixedIV(challengeNum, FALSE);
else
- fixedIV = GetFactoryMonFixedIV(challengeNum, 1);
+ fixedIV = GetFactoryMonFixedIV(challengeNum, TRUE); // Last trainer in challenge uses higher IVs
}
else if (trainerId == TRAINER_EREADER)
{