summaryrefslogtreecommitdiff
path: root/src/battle_tower.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/battle_tower.c')
-rw-r--r--src/battle_tower.c74
1 files changed, 38 insertions, 36 deletions
diff --git a/src/battle_tower.c b/src/battle_tower.c
index c55180965..aa4ca84e6 100644
--- a/src/battle_tower.c
+++ b/src/battle_tower.c
@@ -24,15 +24,17 @@
#include "tv.h"
#include "battle_factory.h"
#include "constants/battle_frontier.h"
+#include "constants/battle_tower.h"
#include "constants/items.h"
#include "constants/trainers.h"
#include "constants/event_objects.h"
#include "constants/moves.h"
#include "constants/species.h"
#include "constants/easy_chat.h"
+#include "constants/tv.h"
-extern const u8 MossdeepCity_SpaceCenter_2F_EventScript_224157[];
-extern const u8 MossdeepCity_SpaceCenter_2F_EventScript_224166[];
+extern const u8 MossdeepCity_SpaceCenter_2F_EventScript_MaxieTrainer[];
+extern const u8 MossdeepCity_SpaceCenter_2F_EventScript_TabithaTrainer[];
// EWRAM vars.
EWRAM_DATA const struct BattleFrontierTrainer *gFacilityTrainers = NULL;
@@ -51,7 +53,7 @@ static void AwardBattleTowerRibbons(void);
static void SaveBattleTowerProgress(void);
static void sub_8163914(void);
static void nullsub_61(void);
-static void SpriteCB_Null6(void);
+static void nullsub_116(void);
static void sub_81642A0(void);
static void sub_8164828(void);
static void sub_8164B74(void);
@@ -1050,24 +1052,24 @@ struct
#include "data/battle_frontier/battle_tent.h"
-static void (* const gUnknown_085DF96C[])(void) =
-{
- sub_8161F94,
- sub_8162054,
- sub_81620F4,
- ChooseNextBattleTowerTrainer,
- sub_81621C0,
- AwardBattleTowerRibbons,
- SaveBattleTowerProgress,
- sub_8163914,
- nullsub_61,
- SpriteCB_Null6,
- sub_81642A0,
- sub_8164828,
- sub_8164B74,
- sub_8164DCC,
- sub_8164DE4,
- sub_8164E04,
+static void (* const sBattleTowerFuncs[])(void) =
+{
+ [BATTLE_TOWER_FUNC_0] = sub_8161F94,
+ [BATTLE_TOWER_FUNC_1] = sub_8162054,
+ [BATTLE_TOWER_FUNC_2] = sub_81620F4,
+ [BATTLE_TOWER_FUNC_CHOOSE_TRAINER] = ChooseNextBattleTowerTrainer,
+ [BATTLE_TOWER_FUNC_4] = sub_81621C0,
+ [BATTLE_TOWER_FUNC_GIVE_RIBBONS] = AwardBattleTowerRibbons,
+ [BATTLE_TOWER_FUNC_SAVE] = SaveBattleTowerProgress,
+ [BATTLE_TOWER_FUNC_7] = sub_8163914,
+ [BATTLE_TOWER_FUNC_NOP] = nullsub_61,
+ [BATTLE_TOWER_FUNC_NOP2] = nullsub_116,
+ [BATTLE_TOWER_FUNC_10] = sub_81642A0,
+ [BATTLE_TOWER_FUNC_11] = sub_8164828,
+ [BATTLE_TOWER_FUNC_12] = sub_8164B74,
+ [BATTLE_TOWER_FUNC_13] = sub_8164DCC,
+ [BATTLE_TOWER_FUNC_14] = sub_8164DE4,
+ [BATTLE_TOWER_FUNC_15] = sub_8164E04,
};
static const u32 gUnknown_085DF9AC[][2] =
@@ -1144,9 +1146,9 @@ static const u16 gUnknown_085DFA52[] =
};
// code
-void sub_8161F74(void)
+void CallBattleTowerFunc(void)
{
- gUnknown_085DF96C[gSpecialVar_0x8004]();
+ sBattleTowerFuncs[gSpecialVar_0x8004]();
}
static void sub_8161F94(void)
@@ -1270,10 +1272,10 @@ static bool8 ChooseSpecialBattleTowerTrainer(void)
if (battleMode == FRONTIER_MODE_SINGLES)
{
ValidateApprenticesChecksums();
- for (i = 0; i < 4; i++)
+ for (i = 0; i < APPRENTICE_COUNT; i++)
{
if (gSaveBlock2Ptr->apprentices[i].lvlMode != 0
- && gUnknown_085DF9EC[gSaveBlock2Ptr->apprentices[i].field_1] == winStreak
+ && gUnknown_085DF9EC[gSaveBlock2Ptr->apprentices[i].numQuestions] == winStreak
&& gSaveBlock2Ptr->apprentices[i].lvlMode - 1 == lvlMode)
{
trainerIds[idsCount] = i + TRAINER_RECORD_MIXING_APPRENTICE;
@@ -1998,7 +2000,7 @@ static void Unused_CreateApprenticeMons(u16 trainerId, u8 firstMonId)
u8 fixedIV = 0;
struct Apprentice *apprentice = &gSaveBlock2Ptr->apprentices[0];
- if (apprentice->field_1 < 5)
+ if (apprentice->numQuestions < 5)
fixedIV = 6;
else
fixedIV = 9;
@@ -2176,7 +2178,7 @@ static void sub_8163914(void)
else if (trainerId < TRAINER_RECORD_MIXING_APPRENTICE)
FrontierSpeechToString(gSaveBlock2Ptr->frontier.towerRecords[trainerId - TRAINER_RECORD_MIXING_FRIEND].greeting);
else
- CopyFriendsApprenticeChallengeText(trainerId - TRAINER_RECORD_MIXING_APPRENTICE);
+ BufferApprenticeChallengeText(trainerId - TRAINER_RECORD_MIXING_APPRENTICE);
}
static void HandleSpecialTrainerBattleEnd(void)
@@ -2349,9 +2351,9 @@ void DoSpecialTrainerBattle(void)
gBattleTypeFlags = BATTLE_TYPE_TRAINER | BATTLE_TYPE_DOUBLE | BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_MULTI | BATTLE_TYPE_INGAME_PARTNER;
FillPartnerParty(TRAINER_STEVEN_PARTNER);
gApproachingTrainerId = 0;
- BattleSetup_ConfigureTrainerBattle(MossdeepCity_SpaceCenter_2F_EventScript_224157 + 1);
+ BattleSetup_ConfigureTrainerBattle(MossdeepCity_SpaceCenter_2F_EventScript_MaxieTrainer + 1);
gApproachingTrainerId = 1;
- BattleSetup_ConfigureTrainerBattle(MossdeepCity_SpaceCenter_2F_EventScript_224166 + 1);
+ BattleSetup_ConfigureTrainerBattle(MossdeepCity_SpaceCenter_2F_EventScript_TabithaTrainer + 1);
gPartnerTrainerId = TRAINER_STEVEN_PARTNER;
CreateTask(Task_StartBattleAfterTransition, 1);
PlayMapChosenOrBattleBGM(0);
@@ -2437,7 +2439,7 @@ static void nullsub_61(void)
}
-static void SpriteCB_Null6(void)
+static void nullsub_116(void)
{
}
@@ -2567,10 +2569,10 @@ static void sub_81642A0(void)
r10 = 0;
ValidateApprenticesChecksums();
- for (i = 0; i < 4; i++)
+ for (i = 0; i < APPRENTICE_COUNT; i++)
{
if (gSaveBlock2Ptr->apprentices[i].lvlMode != 0
- && gUnknown_085DF9EC[gSaveBlock2Ptr->apprentices[i].field_1] / 7 <= challengeNum
+ && gUnknown_085DF9EC[gSaveBlock2Ptr->apprentices[i].numQuestions] / 7 <= challengeNum
&& gSaveBlock2Ptr->apprentices[i].lvlMode - 1 == lvlMode)
{
k = 0;
@@ -3026,9 +3028,9 @@ static void AwardBattleTowerRibbons(void)
ribbons[i] = prevBest;
}
}
- if (ribbons[0].count > 4)
+ if (ribbons[0].count > NUM_CUTIES_RIBBONS)
{
- sub_80EE4DC(&gSaveBlock1Ptr->playerParty[ribbons[0].partyIndex], ribbonType);
+ TryPutSpotTheCutiesOnAir(&gSaveBlock1Ptr->playerParty[ribbons[0].partyIndex], ribbonType);
}
}
}
@@ -3191,7 +3193,7 @@ static void FillPartnerParty(u16 trainerId)
sStevenMons[i].fixedIV,
TRUE, i, // BUG: personality was stored in the 'j' variable. As a result, Steven's pokemon do not have the intended natures.
OT_ID_PRESET, STEVEN_OTID);
- for (j = 0; j < 6; j++)
+ for (j = 0; j < PARTY_SIZE; j++)
SetMonData(&gPlayerParty[3 + i], MON_DATA_HP_EV + j, &sStevenMons[i].evs[j]);
for (j = 0; j < MAX_MON_MOVES; j++)
SetMonMoveSlot(&gPlayerParty[3 + i], sStevenMons[i].moves[j], j);
@@ -3391,7 +3393,7 @@ static void ValidateApprenticesChecksums(void)
{
s32 i, j;
- for (i = 0; i < 4; i++)
+ for (i = 0; i < APPRENTICE_COUNT; i++)
{
u32 *data = (u32*) &gSaveBlock2Ptr->apprentices[i];
u32 checksum = 0;