Document battle tower TV show

This commit is contained in:
GriffinR
2022-06-14 09:18:55 -04:00
parent 95f075ec90
commit 4660f8c88b
6 changed files with 134 additions and 116 deletions

111
src/tv.c
View File

@@ -373,21 +373,21 @@ static const u8 *const sTV3CheersForPokeblocksTextGroup[] = {
};
static const u8 *const sTVBravoTrainerBattleTowerTextGroup[] = {
gTVBravoTrainerBattleTowerText00,
gTVBravoTrainerBattleTowerText01,
gTVBravoTrainerBattleTowerText02,
gTVBravoTrainerBattleTowerText03,
gTVBravoTrainerBattleTowerText04,
gTVBravoTrainerBattleTowerText05,
gTVBravoTrainerBattleTowerText06,
gTVBravoTrainerBattleTowerText07,
gTVBravoTrainerBattleTowerText08,
gTVBravoTrainerBattleTowerText09,
gTVBravoTrainerBattleTowerText10,
gTVBravoTrainerBattleTowerText11,
gTVBravoTrainerBattleTowerText12,
gTVBravoTrainerBattleTowerText13,
gTVBravoTrainerBattleTowerText14
[BRAVOTOWER_STATE_INTRO] = BravoTrainerBattleTower_Text_Intro,
[BRAVOTOWER_STATE_NEW_RECORD] = BravoTrainerBattleTower_Text_NewRecord,
[BRAVOTOWER_STATE_LOST] = BravoTrainerBattleTower_Text_Lost,
[BRAVOTOWER_STATE_WON] = BravoTrainerBattleTower_Text_Won,
[BRAVOTOWER_STATE_LOST_FINAL] = BravoTrainerBattleTower_Text_LostFinal,
[BRAVOTOWER_STATE_SATISFIED] = BravoTrainerBattleTower_Text_Satisfied,
[BRAVOTOWER_STATE_UNSATISFIED] = BravoTrainerBattleTower_Text_Unsatisfied,
[BRAVOTOWER_STATE_UNUSED_1] = BravoTrainerBattleTower_Text_None1,
[BRAVOTOWER_STATE_UNUSED_2] = BravoTrainerBattleTower_Text_None2,
[BRAVOTOWER_STATE_UNUSED_3] = BravoTrainerBattleTower_Text_None3,
[BRAVOTOWER_STATE_UNUSED_4] = BravoTrainerBattleTower_Text_None4,
[BRAVOTOWER_STATE_RESPONSE] = BravoTrainerBattleTower_Text_Response,
[BRAVOTOWER_STATE_RESPONSE_SATISFIED] = BravoTrainerBattleTower_Text_ResponseSatisfied,
[BRAVOTOWER_STATE_RESPONSE_UNSATISFIED] = BravoTrainerBattleTower_Text_ResponseUnsatisfied,
[BRAVOTOWER_STATE_OUTRO] = BravoTrainerBattleTower_Text_Outro
};
static const u8 *const sTVContestLiveUpdatesTextGroup[] = {
@@ -1490,9 +1490,9 @@ static void InterviewAfter_BravoTrainerBattleTowerProfile(void)
show->bravoTrainerTower.numFights = GetCurrentBattleTowerWinStreak(gSaveBlock2Ptr->frontier.towerLvlMode, 0);
show->bravoTrainerTower.wonTheChallenge = gSaveBlock2Ptr->frontier.towerBattleOutcome;
if (gSaveBlock2Ptr->frontier.towerLvlMode == FRONTIER_LVL_50)
show->bravoTrainerTower.btLevel = 50;
show->bravoTrainerTower.btLevel = FRONTIER_MAX_LEVEL_50;
else
show->bravoTrainerTower.btLevel = 100;
show->bravoTrainerTower.btLevel = FRONTIER_MAX_LEVEL_OPEN;
show->bravoTrainerTower.interviewResponse = gSpecialVar_0x8004;
StorePlayerIdInNormalShow(show);
show->bravoTrainerTower.language = gGameLanguage;
@@ -4371,6 +4371,9 @@ static void DoTVShowBravoTrainerPokemonProfile(void)
ShowFieldMessage(sTVBravoTrainerTextGroup[state]);
}
// This is the TV show triggered by accepting the reporter's interview in the lobby of Battle Tower.
// The reporter had asked the player if they were satisfied or not with the challenge, and then asked
// for a one word Easy Chat description of their feelings about the challenge.
static void DoTVShowBravoTrainerBattleTower(void)
{
TVShow *show;
@@ -4381,85 +4384,83 @@ static void DoTVShowBravoTrainerBattleTower(void)
state = sTVShowState;
switch(state)
{
case 0:
case BRAVOTOWER_STATE_INTRO:
TVShowConvertInternationalString(gStringVar1, show->bravoTrainerTower.trainerName, show->bravoTrainerTower.language);
StringCopy(gStringVar2, gSpeciesNames[show->bravoTrainerTower.species]);
if (show->bravoTrainerTower.numFights >= 7)
sTVShowState = 1;
if (show->bravoTrainerTower.numFights >= FRONTIER_STAGES_PER_CHALLENGE)
sTVShowState = BRAVOTOWER_STATE_NEW_RECORD;
else
sTVShowState = 2;
sTVShowState = BRAVOTOWER_STATE_LOST;
break;
case 1:
if (show->bravoTrainerTower.btLevel == 50)
{
case BRAVOTOWER_STATE_NEW_RECORD:
// The TV show states a "new record" was achieved as long as all the battles in the challenge were attempted,
// regardless of any previous records or whether the final battle was won or lost.
if (show->bravoTrainerTower.btLevel == FRONTIER_MAX_LEVEL_50)
StringCopy(gStringVar1, gText_Lv50);
}
else
{
StringCopy(gStringVar1, gText_OpenLevel);
}
ConvertIntToDecimalString(1, show->bravoTrainerTower.numFights);
if (show->bravoTrainerTower.wonTheChallenge == TRUE)
sTVShowState = 3;
sTVShowState = BRAVOTOWER_STATE_WON;
else
sTVShowState = 4;
sTVShowState = BRAVOTOWER_STATE_LOST_FINAL;
break;
case 2:
case BRAVOTOWER_STATE_LOST:
TVShowConvertInternationalString(gStringVar1, show->bravoTrainerTower.pokemonName, show->bravoTrainerTower.pokemonNameLanguage);
ConvertIntToDecimalString(1, show->bravoTrainerTower.numFights + 1);
if (show->bravoTrainerTower.interviewResponse == 0)
sTVShowState = 5;
sTVShowState = BRAVOTOWER_STATE_SATISFIED;
else
sTVShowState = 6;
sTVShowState = BRAVOTOWER_STATE_UNSATISFIED;
break;
case 3:
case BRAVOTOWER_STATE_WON:
TVShowConvertInternationalString(gStringVar1, show->bravoTrainerTower.pokemonName, show->bravoTrainerTower.pokemonNameLanguage);
StringCopy(gStringVar2, gSpeciesNames[show->bravoTrainerTower.defeatedSpecies]);
if (show->bravoTrainerTower.interviewResponse == 0)
sTVShowState = 5;
sTVShowState = BRAVOTOWER_STATE_SATISFIED;
else
sTVShowState = 6;
sTVShowState = BRAVOTOWER_STATE_UNSATISFIED;
break;
case 4:
case BRAVOTOWER_STATE_LOST_FINAL:
TVShowConvertInternationalString(gStringVar1, show->bravoTrainerTower.pokemonName, show->bravoTrainerTower.pokemonNameLanguage);
StringCopy(gStringVar2, gSpeciesNames[show->bravoTrainerTower.defeatedSpecies]);
if (show->bravoTrainerTower.interviewResponse == 0)
sTVShowState = 5;
sTVShowState = BRAVOTOWER_STATE_SATISFIED;
else
sTVShowState = 6;
sTVShowState = BRAVOTOWER_STATE_UNSATISFIED;
break;
case 5:
case BRAVOTOWER_STATE_SATISFIED:
TVShowConvertInternationalString(gStringVar1, show->bravoTrainerTower.pokemonName, show->bravoTrainerTower.pokemonNameLanguage);
sTVShowState = 11;
sTVShowState = BRAVOTOWER_STATE_RESPONSE;
break;
case 6:
case BRAVOTOWER_STATE_UNSATISFIED:
TVShowConvertInternationalString(gStringVar1, show->bravoTrainerTower.pokemonName, show->bravoTrainerTower.pokemonNameLanguage);
sTVShowState = 11;
sTVShowState = BRAVOTOWER_STATE_RESPONSE;
break;
case 7:
sTVShowState = 11;
case BRAVOTOWER_STATE_UNUSED_1:
sTVShowState = BRAVOTOWER_STATE_RESPONSE;
break;
case 8:
case 9:
case 10:
case BRAVOTOWER_STATE_UNUSED_2:
case BRAVOTOWER_STATE_UNUSED_3:
case BRAVOTOWER_STATE_UNUSED_4:
TVShowConvertInternationalString(gStringVar1, show->bravoTrainerTower.trainerName, show->bravoTrainerTower.language);
sTVShowState = 11;
sTVShowState = BRAVOTOWER_STATE_RESPONSE;
break;
case 11:
case BRAVOTOWER_STATE_RESPONSE:
CopyEasyChatWord(gStringVar1, show->bravoTrainerTower.words[0]);
if (show->bravoTrainerTower.interviewResponse == 0)
sTVShowState = 12;
sTVShowState = BRAVOTOWER_STATE_RESPONSE_SATISFIED;
else
sTVShowState = 13;
sTVShowState = BRAVOTOWER_STATE_RESPONSE_UNSATISFIED;
break;
case 12:
case 13:
case BRAVOTOWER_STATE_RESPONSE_SATISFIED:
case BRAVOTOWER_STATE_RESPONSE_UNSATISFIED:
CopyEasyChatWord(gStringVar1, show->bravoTrainerTower.words[0]);
TVShowConvertInternationalString(gStringVar2, show->bravoTrainerTower.trainerName, show->bravoTrainerTower.language);
TVShowConvertInternationalString(gStringVar3, show->bravoTrainerTower.pokemonName, show->bravoTrainerTower.pokemonNameLanguage);
sTVShowState = 14;
sTVShowState = BRAVOTOWER_STATE_OUTRO;
break;
case 14:
case BRAVOTOWER_STATE_OUTRO:
TVShowConvertInternationalString(gStringVar1, show->bravoTrainerTower.trainerName, show->bravoTrainerTower.language);
StringCopy(gStringVar2, gSpeciesNames[show->bravoTrainerTower.species]);
TVShowDone();