Add frontier trainer constants
This commit is contained in:
@@ -2454,7 +2454,7 @@ static void InitDomeTrainers(void)
|
||||
{
|
||||
do
|
||||
{
|
||||
trainerId = sub_8162548(GetCurrentFacilityWinStreak(), 0);
|
||||
trainerId = GetRandomScaledFrontierTrainerId(GetCurrentFacilityWinStreak(), 0);
|
||||
for (j = 1; j < i; j++)
|
||||
{
|
||||
if (DOME_TRAINERS[j].trainerId == trainerId)
|
||||
@@ -2467,7 +2467,7 @@ static void InitDomeTrainers(void)
|
||||
{
|
||||
do
|
||||
{
|
||||
trainerId = sub_8162548(GetCurrentFacilityWinStreak() + 1, 0);
|
||||
trainerId = GetRandomScaledFrontierTrainerId(GetCurrentFacilityWinStreak() + 1, 0);
|
||||
for (j = 1; j < i; j++)
|
||||
{
|
||||
if (DOME_TRAINERS[j].trainerId == trainerId)
|
||||
@@ -3250,24 +3250,27 @@ _08190156:\n\
|
||||
}
|
||||
#endif // NONMATCHING
|
||||
|
||||
// Duplicate of GetFrontierTrainerFixedIvs
|
||||
// NOTE: In CreateDomeOpponentMon a tournament trainer ID (0-15) is passed instead, resulting in all IVs of 3
|
||||
static u8 GetDomeTrainerMonIvs(u16 trainerId)
|
||||
{
|
||||
u8 fixedIv;
|
||||
if (trainerId <= 99)
|
||||
|
||||
if (trainerId <= FRONTIER_TRAINER_JILL) // 0 - 99
|
||||
fixedIv = 3;
|
||||
else if (trainerId <= 119)
|
||||
else if (trainerId <= FRONTIER_TRAINER_CHLOE) // 100 - 119
|
||||
fixedIv = 6;
|
||||
else if (trainerId <= 139)
|
||||
else if (trainerId <= FRONTIER_TRAINER_SOFIA) // 120 - 139
|
||||
fixedIv = 9;
|
||||
else if (trainerId <= 159)
|
||||
else if (trainerId <= FRONTIER_TRAINER_JAZLYN) // 140 - 159
|
||||
fixedIv = 12;
|
||||
else if (trainerId <= 179)
|
||||
else if (trainerId <= FRONTIER_TRAINER_ALISON) // 160 - 179
|
||||
fixedIv = 15;
|
||||
else if (trainerId <= 199)
|
||||
else if (trainerId <= FRONTIER_TRAINER_LAMAR) // 180 - 199
|
||||
fixedIv = 18;
|
||||
else if (trainerId <= 219)
|
||||
else if (trainerId <= FRONTIER_TRAINER_TESS) // 200 - 219
|
||||
fixedIv = 21;
|
||||
else
|
||||
else // 220+ (- 299)
|
||||
fixedIv = 31;
|
||||
|
||||
return fixedIv;
|
||||
@@ -6304,7 +6307,7 @@ static void CopyDomeTrainerName(u8 *str, u16 trainerId)
|
||||
for (i = 0; i < PLAYER_NAME_LENGTH; i++)
|
||||
str[i] = gSaveBlock2Ptr->playerName[i];
|
||||
}
|
||||
else if (trainerId < TRAINER_RECORD_MIXING_FRIEND)
|
||||
else if (trainerId < FRONTIER_TRAINERS_COUNT)
|
||||
{
|
||||
for (i = 0; i < PLAYER_NAME_LENGTH; i++)
|
||||
str[i] = gFacilityTrainers[trainerId].trainerName[i];
|
||||
|
||||
@@ -304,7 +304,7 @@ static void GenerateOpponentMons(void)
|
||||
|
||||
do
|
||||
{
|
||||
trainerId = sub_8162548(challengeNum, gSaveBlock2Ptr->frontier.curChallengeBattleNum);
|
||||
trainerId = GetRandomScaledFrontierTrainerId(challengeNum, gSaveBlock2Ptr->frontier.curChallengeBattleNum);
|
||||
for (i = 0; i < gSaveBlock2Ptr->frontier.curChallengeBattleNum; i++)
|
||||
{
|
||||
if (gSaveBlock2Ptr->frontier.trainerIds[i] == trainerId)
|
||||
|
||||
@@ -159,7 +159,7 @@ static void SetPalaceOpponent(void)
|
||||
|
||||
static void BufferOpponentIntroSpeech(void)
|
||||
{
|
||||
if (gTrainerBattleOpponent_A < TRAINER_RECORD_MIXING_FRIEND)
|
||||
if (gTrainerBattleOpponent_A < FRONTIER_TRAINERS_COUNT)
|
||||
FrontierSpeechToString(gFacilityTrainers[gTrainerBattleOpponent_A].speechBefore);
|
||||
}
|
||||
|
||||
|
||||
@@ -1400,7 +1400,7 @@ static void PrepareOneTrainer(bool8 difficult)
|
||||
challengeNum = gSaveBlock2Ptr->frontier.pikeWinStreaks[lvlMode] / 14;
|
||||
do
|
||||
{
|
||||
trainerId = sub_8162548(challengeNum, battleNum);
|
||||
trainerId = GetRandomScaledFrontierTrainerId(challengeNum, battleNum);
|
||||
for (i = 0; i < gSaveBlock2Ptr->frontier.curChallengeBattleNum - 1; i++)
|
||||
{
|
||||
if (gSaveBlock2Ptr->frontier.trainerIds[i] == trainerId)
|
||||
@@ -1425,7 +1425,7 @@ static void PrepareTwoTrainers(void)
|
||||
gFacilityTrainers = gBattleFrontierTrainers;
|
||||
do
|
||||
{
|
||||
trainerId = sub_8162548(challengeNum, 1);
|
||||
trainerId = GetRandomScaledFrontierTrainerId(challengeNum, 1);
|
||||
for (i = 0; i < gSaveBlock2Ptr->frontier.curChallengeBattleNum - 1; i++)
|
||||
{
|
||||
if (gSaveBlock2Ptr->frontier.trainerIds[i] == trainerId)
|
||||
@@ -1440,7 +1440,7 @@ static void PrepareTwoTrainers(void)
|
||||
|
||||
do
|
||||
{
|
||||
trainerId = sub_8162548(challengeNum, 1);
|
||||
trainerId = GetRandomScaledFrontierTrainerId(challengeNum, 1);
|
||||
for (i = 0; i < gSaveBlock2Ptr->frontier.curChallengeBattleNum; i++)
|
||||
{
|
||||
if (gSaveBlock2Ptr->frontier.trainerIds[i] == trainerId)
|
||||
@@ -1466,12 +1466,12 @@ static void BufferTrainerIntro(void)
|
||||
{
|
||||
if (gSpecialVar_0x8005 == 0)
|
||||
{
|
||||
if (gTrainerBattleOpponent_A < TRAINER_RECORD_MIXING_FRIEND)
|
||||
if (gTrainerBattleOpponent_A < FRONTIER_TRAINERS_COUNT)
|
||||
FrontierSpeechToString(gFacilityTrainers[gTrainerBattleOpponent_A].speechBefore);
|
||||
}
|
||||
else if (gSpecialVar_0x8005 == 1)
|
||||
{
|
||||
if (gTrainerBattleOpponent_B < TRAINER_RECORD_MIXING_FRIEND)
|
||||
if (gTrainerBattleOpponent_B < FRONTIER_TRAINERS_COUNT)
|
||||
FrontierSpeechToString(gFacilityTrainers[gTrainerBattleOpponent_B].speechBefore);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1493,7 +1493,7 @@ static u16 GetUniqueTrainerId(u8 eventObjectId)
|
||||
{
|
||||
do
|
||||
{
|
||||
trainerId = sub_8162548(challengeNum + 1, battleNum);
|
||||
trainerId = GetRandomScaledFrontierTrainerId(challengeNum + 1, battleNum);
|
||||
for (i = 0; i < eventObjectId; i++)
|
||||
{
|
||||
if (gSaveBlock2Ptr->frontier.trainerIds[i] == trainerId)
|
||||
@@ -1505,7 +1505,7 @@ static u16 GetUniqueTrainerId(u8 eventObjectId)
|
||||
{
|
||||
do
|
||||
{
|
||||
trainerId = sub_8162548(challengeNum, battleNum);
|
||||
trainerId = GetRandomScaledFrontierTrainerId(challengeNum, battleNum);
|
||||
for (i = 0; i < eventObjectId; i++)
|
||||
{
|
||||
if (gSaveBlock2Ptr->frontier.trainerIds[i] == trainerId)
|
||||
|
||||
@@ -961,12 +961,12 @@ static u8 TrainerBattleLoadArg8(const u8 *ptr)
|
||||
|
||||
static u16 GetTrainerAFlag(void)
|
||||
{
|
||||
return FLAG_TRAINER_FLAG_START + gTrainerBattleOpponent_A;
|
||||
return TRAINER_FLAGS_START + gTrainerBattleOpponent_A;
|
||||
}
|
||||
|
||||
static u16 GetTrainerBFlag(void)
|
||||
{
|
||||
return FLAG_TRAINER_FLAG_START + gTrainerBattleOpponent_B;
|
||||
return TRAINER_FLAGS_START + gTrainerBattleOpponent_B;
|
||||
}
|
||||
|
||||
static bool32 IsPlayerDefeated(u32 battleOutcome)
|
||||
@@ -1193,7 +1193,7 @@ void SetUpTwoTrainersBattle(void)
|
||||
bool32 GetTrainerFlagFromScriptPointer(const u8 *data)
|
||||
{
|
||||
u32 flag = TrainerBattleLoadArg16(data + 2);
|
||||
return FlagGet(FLAG_TRAINER_FLAG_START + flag);
|
||||
return FlagGet(TRAINER_FLAGS_START + flag);
|
||||
}
|
||||
|
||||
void SetUpTrainerMovement(void)
|
||||
@@ -1232,17 +1232,17 @@ static void SetBattledTrainerFlag(void)
|
||||
|
||||
bool8 HasTrainerBeenFought(u16 trainerId)
|
||||
{
|
||||
return FlagGet(FLAG_TRAINER_FLAG_START + trainerId);
|
||||
return FlagGet(TRAINER_FLAGS_START + trainerId);
|
||||
}
|
||||
|
||||
void SetTrainerFlag(u16 trainerId)
|
||||
{
|
||||
FlagSet(FLAG_TRAINER_FLAG_START + trainerId);
|
||||
FlagSet(TRAINER_FLAGS_START + trainerId);
|
||||
}
|
||||
|
||||
void ClearTrainerFlag(u16 trainerId)
|
||||
{
|
||||
FlagClear(FLAG_TRAINER_FLAG_START + trainerId);
|
||||
FlagClear(TRAINER_FLAGS_START + trainerId);
|
||||
}
|
||||
|
||||
void BattleSetup_StartTrainerBattle(void)
|
||||
|
||||
@@ -134,7 +134,7 @@ static void SetVerdanturfTentTrainerGfx(void)
|
||||
|
||||
static void BufferVerdanturfTentTrainerIntro(void)
|
||||
{
|
||||
if (gTrainerBattleOpponent_A < TRAINER_RECORD_MIXING_FRIEND)
|
||||
if (gTrainerBattleOpponent_A < FRONTIER_TRAINERS_COUNT)
|
||||
FrontierSpeechToString(gFacilityTrainers[gTrainerBattleOpponent_A].speechBefore);
|
||||
}
|
||||
|
||||
|
||||
@@ -1104,32 +1104,37 @@ static const u8 sBattleTowerPartySizes2[] =
|
||||
[FRONTIER_MODE_LINK_MULTIS] = FRONTIER_MULTI_PARTY_SIZE,
|
||||
};
|
||||
|
||||
// min/max trainer id
|
||||
static const u16 gUnknown_085DF9FA[][2] =
|
||||
// Trainer ID ranges for possible frontier trainers to encounter on particular challenges
|
||||
// Trainers are scaled by difficulty, so higher trainer IDs have better teams
|
||||
static const u16 sFrontierTrainerIdRanges[][2] =
|
||||
{
|
||||
{0x0000, 0x0063},
|
||||
{0x0050, 0x0077},
|
||||
{0x0064, 0x008b},
|
||||
{0x0078, 0x009f},
|
||||
{0x008c, 0x00b3},
|
||||
{0x00a0, 0x00c7},
|
||||
{0x00b4, 0x00db},
|
||||
{0x00c8, 0x012b},
|
||||
{FRONTIER_TRAINER_BRADY, FRONTIER_TRAINER_JILL}, // 0 - 99
|
||||
{FRONTIER_TRAINER_TREVIN, FRONTIER_TRAINER_CHLOE}, // 80 - 119
|
||||
{FRONTIER_TRAINER_ERIK, FRONTIER_TRAINER_SOFIA}, // 100 - 139
|
||||
{FRONTIER_TRAINER_NORTON, FRONTIER_TRAINER_JAZLYN}, // 120 - 159
|
||||
{FRONTIER_TRAINER_BRADEN, FRONTIER_TRAINER_ALISON}, // 140 - 179
|
||||
{FRONTIER_TRAINER_ZACHERY, FRONTIER_TRAINER_LAMAR}, // 160 - 199
|
||||
{FRONTIER_TRAINER_HANK, FRONTIER_TRAINER_TESS}, // 180 - 219
|
||||
{FRONTIER_TRAINER_JAXON, FRONTIER_TRAINER_GRETEL}, // 200 - 299
|
||||
};
|
||||
|
||||
// min/max trainer id
|
||||
static const u16 gUnknown_085DFA1A[][2] =
|
||||
static const u16 sFrontierTrainerIdRangesHard[][2] =
|
||||
{
|
||||
{0x0064, 0x0077},
|
||||
{0x0078, 0x008b},
|
||||
{0x008c, 0x009f},
|
||||
{0x00a0, 0x00b3},
|
||||
{0x00b4, 0x00c7},
|
||||
{0x00c8, 0x00db},
|
||||
{0x00dc, 0x00ef},
|
||||
{0x00c8, 0x012b},
|
||||
{0x00b3, 0x008d},
|
||||
{0x00c8, 0x00b7},
|
||||
{FRONTIER_TRAINER_ERIK, FRONTIER_TRAINER_CHLOE}, // 100 - 119
|
||||
{FRONTIER_TRAINER_NORTON, FRONTIER_TRAINER_SOFIA}, // 120 - 139
|
||||
{FRONTIER_TRAINER_BRADEN, FRONTIER_TRAINER_JAZLYN}, // 140 - 159
|
||||
{FRONTIER_TRAINER_ZACHERY, FRONTIER_TRAINER_ALISON}, // 160 - 179
|
||||
{FRONTIER_TRAINER_HANK, FRONTIER_TRAINER_LAMAR}, // 180 - 199
|
||||
{FRONTIER_TRAINER_JAXON, FRONTIER_TRAINER_TESS}, // 200 - 219
|
||||
{FRONTIER_TRAINER_LEON, FRONTIER_TRAINER_RAUL}, // 220 - 239
|
||||
{FRONTIER_TRAINER_JAXON, FRONTIER_TRAINER_GRETEL}, // 200 - 299
|
||||
};
|
||||
|
||||
// Trainer IDs? Don't make sense as part of previous array, min/max relationship reversed and never accessed
|
||||
static const u16 sUnused_085DFA1A[][2] =
|
||||
{
|
||||
{179, 141}, // FRONTIER_TRAINER_ALISON - FRONTIER_TRAINER_KAYDEN
|
||||
{200, 183}, // FRONTIER_TRAINER_JAXON - FRONTIER_TRAINER_HUNTER
|
||||
};
|
||||
|
||||
static const u8 sBattleTowerPartySizes[FRONTIER_MODE_COUNT] =
|
||||
@@ -1334,7 +1339,7 @@ static void SetNextFacilityOpponent(void)
|
||||
s32 i;
|
||||
while (1)
|
||||
{
|
||||
id = sub_8162548(challengeNum, gSaveBlock2Ptr->frontier.curChallengeBattleNum);
|
||||
id = GetRandomScaledFrontierTrainerId(challengeNum, gSaveBlock2Ptr->frontier.curChallengeBattleNum);
|
||||
|
||||
// Ensure trainer wasn't previously fought in this challenge.
|
||||
for (i = 0; i < gSaveBlock2Ptr->frontier.curChallengeBattleNum; i++)
|
||||
@@ -1354,7 +1359,7 @@ static void SetNextFacilityOpponent(void)
|
||||
}
|
||||
}
|
||||
|
||||
u16 sub_8162548(u8 challengeNum, u8 battleNum)
|
||||
u16 GetRandomScaledFrontierTrainerId(u8 challengeNum, u8 battleNum)
|
||||
{
|
||||
u16 trainerId;
|
||||
|
||||
@@ -1362,49 +1367,54 @@ u16 sub_8162548(u8 challengeNum, u8 battleNum)
|
||||
{
|
||||
if (battleNum == 6)
|
||||
{
|
||||
trainerId = (gUnknown_085DFA1A[challengeNum][1] - gUnknown_085DFA1A[challengeNum][0]) + 1;
|
||||
trainerId = gUnknown_085DFA1A[challengeNum][0] + (Random() % trainerId);
|
||||
// The last battle in each challenge has a jump in difficulty, pulls from a table with higher ranges
|
||||
trainerId = (sFrontierTrainerIdRangesHard[challengeNum][1] - sFrontierTrainerIdRangesHard[challengeNum][0]) + 1;
|
||||
trainerId = sFrontierTrainerIdRangesHard[challengeNum][0] + (Random() % trainerId);
|
||||
}
|
||||
else
|
||||
{
|
||||
trainerId = (gUnknown_085DF9FA[challengeNum][1] - gUnknown_085DF9FA[challengeNum][0]) + 1;
|
||||
trainerId = gUnknown_085DF9FA[challengeNum][0] + (Random() % trainerId);
|
||||
trainerId = (sFrontierTrainerIdRanges[challengeNum][1] - sFrontierTrainerIdRanges[challengeNum][0]) + 1;
|
||||
trainerId = sFrontierTrainerIdRanges[challengeNum][0] + (Random() % trainerId);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
trainerId = (gUnknown_085DF9FA[7][1] - gUnknown_085DF9FA[7][0]) + 1;
|
||||
trainerId = gUnknown_085DF9FA[7][0] + (Random() % trainerId);
|
||||
// After challenge 7, trainer IDs always come from the last, hardest range, which is the same for both trainer ID tables
|
||||
trainerId = (sFrontierTrainerIdRanges[7][1] - sFrontierTrainerIdRanges[7][0]) + 1;
|
||||
trainerId = sFrontierTrainerIdRanges[7][0] + (Random() % trainerId);
|
||||
}
|
||||
|
||||
return trainerId;
|
||||
}
|
||||
|
||||
static void sub_81625B4(u8 challengeNum, u8 battleNum, u16 *trainerIdPtr, u8 *arg3) // Unused
|
||||
// Unused
|
||||
static void GetRandomScaledFrontierTrainerIdRange(u8 challengeNum, u8 battleNum, u16 *trainerIdPtr, u8 *rangePtr)
|
||||
{
|
||||
u16 trainerId, count;
|
||||
u16 trainerId, range;
|
||||
|
||||
if (challengeNum <= 7)
|
||||
{
|
||||
if (battleNum == 6)
|
||||
{
|
||||
count = (gUnknown_085DFA1A[challengeNum][1] - gUnknown_085DFA1A[challengeNum][0]) + 1;
|
||||
trainerId = gUnknown_085DFA1A[challengeNum][0];
|
||||
// The last battle in each challenge has a jump in difficulty, pulls from a table with higher ranges
|
||||
range = (sFrontierTrainerIdRangesHard[challengeNum][1] - sFrontierTrainerIdRangesHard[challengeNum][0]) + 1;
|
||||
trainerId = sFrontierTrainerIdRangesHard[challengeNum][0];
|
||||
}
|
||||
else
|
||||
{
|
||||
count = (gUnknown_085DF9FA[challengeNum][1] - gUnknown_085DF9FA[challengeNum][0]) + 1;
|
||||
trainerId = gUnknown_085DF9FA[challengeNum][0];
|
||||
range = (sFrontierTrainerIdRanges[challengeNum][1] - sFrontierTrainerIdRanges[challengeNum][0]) + 1;
|
||||
trainerId = sFrontierTrainerIdRanges[challengeNum][0];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
count = (gUnknown_085DF9FA[7][1] - gUnknown_085DF9FA[7][0]) + 1;
|
||||
trainerId = gUnknown_085DF9FA[7][0];
|
||||
// After challenge 7, trainer IDs always come from the last, hardest range, which is the same for both trainer ID tables
|
||||
range = (sFrontierTrainerIdRanges[7][1] - sFrontierTrainerIdRanges[7][0]) + 1;
|
||||
trainerId = sFrontierTrainerIdRanges[7][0];
|
||||
}
|
||||
|
||||
*trainerIdPtr = trainerId;
|
||||
*arg3 = count;
|
||||
*rangePtr = range;
|
||||
}
|
||||
|
||||
void SetBattleFacilityTrainerGfxId(u16 trainerId, u8 tempVarId)
|
||||
@@ -1423,7 +1433,7 @@ void SetBattleFacilityTrainerGfxId(u16 trainerId, u8 tempVarId)
|
||||
SetFrontierBrainEventObjGfx_2();
|
||||
return;
|
||||
}
|
||||
else if (trainerId < TRAINER_RECORD_MIXING_FRIEND)
|
||||
else if (trainerId < FRONTIER_TRAINERS_COUNT)
|
||||
{
|
||||
facilityClass = gFacilityTrainers[trainerId].facilityClass;
|
||||
}
|
||||
@@ -1515,7 +1525,7 @@ u8 GetBattleFacilityTrainerGfxId(u16 trainerId)
|
||||
{
|
||||
facilityClass = gSaveBlock2Ptr->frontier.ereaderTrainer.facilityClass;
|
||||
}
|
||||
else if (trainerId < TRAINER_RECORD_MIXING_FRIEND)
|
||||
else if (trainerId < FRONTIER_TRAINERS_COUNT)
|
||||
{
|
||||
facilityClass = gFacilityTrainers[trainerId].facilityClass;
|
||||
}
|
||||
@@ -1657,7 +1667,7 @@ u8 GetFrontierTrainerFrontSpriteId(u16 trainerId)
|
||||
{
|
||||
return GetFrontierBrainTrainerPicIndex();
|
||||
}
|
||||
else if (trainerId < TRAINER_RECORD_MIXING_FRIEND)
|
||||
else if (trainerId < FRONTIER_TRAINERS_COUNT)
|
||||
{
|
||||
return gFacilityClassToPicIndex[gFacilityTrainers[trainerId].facilityClass];
|
||||
}
|
||||
@@ -1694,7 +1704,7 @@ u8 GetFrontierOpponentClass(u16 trainerId)
|
||||
{
|
||||
trainerClass = gTrainers[TRAINER_STEVEN].trainerClass;
|
||||
}
|
||||
else if (trainerId < TRAINER_RECORD_MIXING_FRIEND)
|
||||
else if (trainerId < FRONTIER_TRAINERS_COUNT)
|
||||
{
|
||||
trainerClass = gFacilityClassToTrainerClass[gFacilityTrainers[trainerId].facilityClass];
|
||||
}
|
||||
@@ -1735,7 +1745,7 @@ static u8 GetFrontierTrainerFacilityClass(u16 trainerId)
|
||||
{
|
||||
facilityClass = gSaveBlock2Ptr->frontier.ereaderTrainer.facilityClass;
|
||||
}
|
||||
else if (trainerId < TRAINER_RECORD_MIXING_FRIEND)
|
||||
else if (trainerId < FRONTIER_TRAINERS_COUNT)
|
||||
{
|
||||
facilityClass = gFacilityTrainers[trainerId].facilityClass;
|
||||
}
|
||||
@@ -1777,7 +1787,7 @@ void GetFrontierTrainerName(u8 *dst, u16 trainerId)
|
||||
for (i = 0; i < PLAYER_NAME_LENGTH; i++)
|
||||
dst[i] = gTrainers[TRAINER_STEVEN].trainerName[i];
|
||||
}
|
||||
else if (trainerId < TRAINER_RECORD_MIXING_FRIEND)
|
||||
else if (trainerId < FRONTIER_TRAINERS_COUNT)
|
||||
{
|
||||
for (i = 0; i < PLAYER_NAME_LENGTH; i++)
|
||||
dst[i] = gFacilityTrainers[trainerId].trainerName[i];
|
||||
@@ -1832,7 +1842,7 @@ static bool8 IsFrontierTrainerFemale(u16 trainerId)
|
||||
{
|
||||
return IsFrontierBrainFemale();
|
||||
}
|
||||
else if (trainerId < TRAINER_RECORD_MIXING_FRIEND)
|
||||
else if (trainerId < FRONTIER_TRAINERS_COUNT)
|
||||
{
|
||||
facilityClass = gFacilityTrainers[trainerId].facilityClass;
|
||||
}
|
||||
@@ -1887,7 +1897,7 @@ static void FillTrainerParty(u16 trainerId, u8 firstMonId, u8 monCount)
|
||||
const u16 *monSets = NULL;
|
||||
u32 otID = 0;
|
||||
|
||||
if (trainerId < TRAINER_RECORD_MIXING_FRIEND)
|
||||
if (trainerId < FRONTIER_TRAINERS_COUNT)
|
||||
{
|
||||
// Normal battle frontier trainer.
|
||||
fixedIV = GetFrontierTrainerFixedIvs(trainerId);
|
||||
@@ -2070,7 +2080,7 @@ static void FillFactoryFrontierTrainerParty(u16 trainerId, u8 firstMonId)
|
||||
u8 fixedIV;
|
||||
u32 otID;
|
||||
|
||||
if (trainerId < TRAINER_RECORD_MIXING_FRIEND)
|
||||
if (trainerId < FRONTIER_TRAINERS_COUNT)
|
||||
{
|
||||
u8 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; // Unused variable.
|
||||
u8 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE);
|
||||
@@ -2179,7 +2189,7 @@ static void GetOpponentIntroSpeech(void)
|
||||
|
||||
if (trainerId == TRAINER_EREADER)
|
||||
FrontierSpeechToString(gSaveBlock2Ptr->frontier.ereaderTrainer.greeting);
|
||||
else if (trainerId < TRAINER_RECORD_MIXING_FRIEND)
|
||||
else if (trainerId < FRONTIER_TRAINERS_COUNT)
|
||||
FrontierSpeechToString(gFacilityTrainers[trainerId].speechBefore);
|
||||
else if (trainerId < TRAINER_RECORD_MIXING_APPRENTICE)
|
||||
FrontierSpeechToString(gSaveBlock2Ptr->frontier.towerRecords[trainerId - TRAINER_RECORD_MIXING_FRIEND].greeting);
|
||||
@@ -2407,7 +2417,7 @@ static void sub_8163EE4(void)
|
||||
StringCopy7(playerRecord->name, gSaveBlock2Ptr->playerName);
|
||||
playerRecord->winStreak = GetCurrentBattleTowerWinStreak(lvlMode, battleMode);
|
||||
|
||||
for (i = 0; i < 6; i++)
|
||||
for (i = 0; i < EASY_CHAT_BATTLE_WORDS_COUNT; i++)
|
||||
{
|
||||
playerRecord->greeting[i] = gSaveBlock1Ptr->easyChatBattleStart[i];
|
||||
playerRecord->speechWon[i] = gSaveBlock1Ptr->easyChatBattleWon[i];
|
||||
@@ -2529,7 +2539,7 @@ static void sub_81642A0(void)
|
||||
{
|
||||
do
|
||||
{
|
||||
trainerId = sub_8162548(challengeNum, 0);
|
||||
trainerId = GetRandomScaledFrontierTrainerId(challengeNum, 0);
|
||||
for (i = 0; i < j; i++)
|
||||
{
|
||||
if (gSaveBlock2Ptr->frontier.trainerIds[i] == trainerId)
|
||||
@@ -2657,7 +2667,7 @@ static void sub_81646BC(u16 trainerId, u16 monSetId)
|
||||
|
||||
if (trainerId != TRAINER_EREADER)
|
||||
{
|
||||
if (trainerId < TRAINER_RECORD_MIXING_FRIEND)
|
||||
if (trainerId < FRONTIER_TRAINERS_COUNT)
|
||||
{
|
||||
move = gFacilityTrainerMons[monSetId].moves[0];
|
||||
species = gFacilityTrainerMons[monSetId].species;
|
||||
@@ -2705,7 +2715,7 @@ static void sub_8164828(void)
|
||||
case 0:
|
||||
if (trainerId == TRAINER_EREADER)
|
||||
return;
|
||||
if (trainerId < TRAINER_RECORD_MIXING_FRIEND)
|
||||
if (trainerId < FRONTIER_TRAINERS_COUNT)
|
||||
{
|
||||
GetFrontierTrainerName(gStringVar1, trainerId);
|
||||
}
|
||||
@@ -2734,7 +2744,7 @@ static void sub_8164828(void)
|
||||
break;
|
||||
case 3:
|
||||
gPartnerTrainerId = trainerId;
|
||||
if (trainerId < TRAINER_RECORD_MIXING_FRIEND)
|
||||
if (trainerId < FRONTIER_TRAINERS_COUNT)
|
||||
{
|
||||
gSaveBlock2Ptr->frontier.trainerIds[18] = gSaveBlock2Ptr->frontier.trainerIds[8 + k * 2];
|
||||
gSaveBlock2Ptr->frontier.trainerIds[19] = gSaveBlock2Ptr->frontier.trainerIds[9 + k * 2];
|
||||
@@ -2753,7 +2763,7 @@ static void sub_8164828(void)
|
||||
{
|
||||
while (1)
|
||||
{
|
||||
i = sub_8162548(challengeNum, k / 2);
|
||||
i = GetRandomScaledFrontierTrainerId(challengeNum, k / 2);
|
||||
if (gPartnerTrainerId == i)
|
||||
continue;
|
||||
|
||||
@@ -2776,7 +2786,7 @@ static void sub_8164828(void)
|
||||
if (trainerId == TRAINER_EREADER)
|
||||
return;
|
||||
|
||||
if (trainerId < TRAINER_RECORD_MIXING_FRIEND)
|
||||
if (trainerId < FRONTIER_TRAINERS_COUNT)
|
||||
{
|
||||
ShowFieldMessage(gUnknown_085DD500[arrId].strings[gSpecialVar_0x8005]);
|
||||
}
|
||||
@@ -2830,7 +2840,7 @@ static void sub_8164B74(void)
|
||||
{
|
||||
do
|
||||
{
|
||||
trainerId = sub_8162548(challengeNum, i / 2);
|
||||
trainerId = GetRandomScaledFrontierTrainerId(challengeNum, i / 2);
|
||||
for (j = 0; j < i; j++)
|
||||
{
|
||||
if (gSaveBlock2Ptr->frontier.trainerIds[j] == trainerId)
|
||||
@@ -3214,7 +3224,7 @@ static void FillPartnerParty(u16 trainerId)
|
||||
// Scrapped, lol.
|
||||
trainerName[0] = gGameLanguage;
|
||||
}
|
||||
else if (trainerId < TRAINER_RECORD_MIXING_FRIEND)
|
||||
else if (trainerId < FRONTIER_TRAINERS_COUNT)
|
||||
{
|
||||
level = SetFacilityPtrsGetLevel();
|
||||
ivs = GetFrontierTrainerFixedIvs(trainerId);
|
||||
@@ -3418,7 +3428,7 @@ void GetBattleTowerTrainerLanguage(u8 *dst, u16 trainerId)
|
||||
{
|
||||
*dst = gGameLanguage;
|
||||
}
|
||||
else if (trainerId < TRAINER_RECORD_MIXING_FRIEND)
|
||||
else if (trainerId < FRONTIER_TRAINERS_COUNT)
|
||||
{
|
||||
*dst = gGameLanguage;
|
||||
}
|
||||
@@ -3491,28 +3501,30 @@ s32 GetHighestLevelInPlayerParty(void)
|
||||
return highestLevel;
|
||||
}
|
||||
|
||||
// Frontier Trainer parties are roughly scaled in difficulty with higher trainer IDs, so scale IVs as well
|
||||
// Duplicated in Battle Dome as GetDomeTrainerMonIvs
|
||||
static u8 GetFrontierTrainerFixedIvs(u16 trainerId)
|
||||
{
|
||||
u8 fixedIV = 0;
|
||||
u8 fixedIv;
|
||||
|
||||
if (trainerId < 100)
|
||||
fixedIV = 3;
|
||||
else if (trainerId < 120)
|
||||
fixedIV = 6;
|
||||
else if (trainerId < 140)
|
||||
fixedIV = 9;
|
||||
else if (trainerId < 160)
|
||||
fixedIV = 12;
|
||||
else if (trainerId < 180)
|
||||
fixedIV = 15;
|
||||
else if (trainerId < 200)
|
||||
fixedIV = 18;
|
||||
else if (trainerId < 220)
|
||||
fixedIV = 21;
|
||||
else
|
||||
fixedIV = 31;
|
||||
if (trainerId <= FRONTIER_TRAINER_JILL) // 0 - 99
|
||||
fixedIv = 3;
|
||||
else if (trainerId <= FRONTIER_TRAINER_CHLOE) // 100 - 119
|
||||
fixedIv = 6;
|
||||
else if (trainerId <= FRONTIER_TRAINER_SOFIA) // 120 - 139
|
||||
fixedIv = 9;
|
||||
else if (trainerId <= FRONTIER_TRAINER_JAZLYN) // 140 - 159
|
||||
fixedIv = 12;
|
||||
else if (trainerId <= FRONTIER_TRAINER_ALISON) // 160 - 179
|
||||
fixedIv = 15;
|
||||
else if (trainerId <= FRONTIER_TRAINER_LAMAR) // 180 - 199
|
||||
fixedIv = 18;
|
||||
else if (trainerId <= FRONTIER_TRAINER_TESS) // 200 - 219
|
||||
fixedIv = 21;
|
||||
else // 220+ (- 299)
|
||||
fixedIv = 31;
|
||||
|
||||
return fixedIV;
|
||||
return fixedIv;
|
||||
}
|
||||
|
||||
static u16 sub_8165D40(void)
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1220,18 +1220,18 @@ void EndLotteryCornerComputerEffect(void)
|
||||
DrawWholeMapView();
|
||||
}
|
||||
|
||||
void SetTrickHouseEndRoomFlag(void)
|
||||
void SetTrickHouseNuggetFlag(void)
|
||||
{
|
||||
u16 *specVar = &gSpecialVar_0x8004;
|
||||
u16 flag = FLAG_TRICK_HOUSE_END_ROOM;
|
||||
u16 flag = FLAG_HIDDEN_ITEM_TRICK_HOUSE_NUGGET;
|
||||
*specVar = flag;
|
||||
FlagSet(flag);
|
||||
}
|
||||
|
||||
void ResetTrickHouseEndRoomFlag(void)
|
||||
void ResetTrickHouseNuggetFlag(void)
|
||||
{
|
||||
u16 *specVar = &gSpecialVar_0x8004;
|
||||
u16 flag = FLAG_TRICK_HOUSE_END_ROOM;
|
||||
u16 flag = FLAG_HIDDEN_ITEM_TRICK_HOUSE_NUGGET;
|
||||
*specVar = flag;
|
||||
FlagClear(flag);
|
||||
}
|
||||
|
||||
@@ -1701,7 +1701,7 @@ void CopyFrontierTrainerText(u8 whichText, u16 trainerId)
|
||||
FrontierSpeechToString(gSaveBlock2Ptr->frontier.ereaderTrainer.greeting);
|
||||
else if (trainerId == TRAINER_FRONTIER_BRAIN)
|
||||
CopyFrontierBrainText(FALSE);
|
||||
else if (trainerId < TRAINER_RECORD_MIXING_FRIEND)
|
||||
else if (trainerId < FRONTIER_TRAINERS_COUNT)
|
||||
FrontierSpeechToString(gFacilityTrainers[trainerId].speechBefore);
|
||||
else if (trainerId < TRAINER_RECORD_MIXING_APPRENTICE)
|
||||
FrontierSpeechToString(gSaveBlock2Ptr->frontier.towerRecords[trainerId - TRAINER_RECORD_MIXING_FRIEND].greeting);
|
||||
@@ -1717,7 +1717,7 @@ void CopyFrontierTrainerText(u8 whichText, u16 trainerId)
|
||||
{
|
||||
CopyFrontierBrainText(FALSE);
|
||||
}
|
||||
else if (trainerId < TRAINER_RECORD_MIXING_FRIEND)
|
||||
else if (trainerId < FRONTIER_TRAINERS_COUNT)
|
||||
{
|
||||
FrontierSpeechToString(gFacilityTrainers[trainerId].speechWin);
|
||||
}
|
||||
@@ -1745,7 +1745,7 @@ void CopyFrontierTrainerText(u8 whichText, u16 trainerId)
|
||||
{
|
||||
CopyFrontierBrainText(TRUE);
|
||||
}
|
||||
else if (trainerId < TRAINER_RECORD_MIXING_FRIEND)
|
||||
else if (trainerId < FRONTIER_TRAINERS_COUNT)
|
||||
{
|
||||
FrontierSpeechToString(gFacilityTrainers[trainerId].speechLose);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user