diff options
author | hondew <pokehondew@gmail.com> | 2020-08-30 14:14:38 -0400 |
---|---|---|
committer | hondew <pokehondew@gmail.com> | 2020-08-30 14:14:38 -0400 |
commit | e46b35455d1e2af8c8c2d291ce1cc28e682d9095 (patch) | |
tree | 76855f3dedad94ba34a8f8b40811a1005107b5ae /src/tv.c | |
parent | 328aecc96e690c437e52663a1445417e8aa78df6 (diff) | |
parent | a9719c92bfa4c6b6dcf57e9516f184721152ad80 (diff) |
Merge branch 'master' into pokeball-doc
Diffstat (limited to 'src/tv.c')
-rw-r--r-- | src/tv.c | 759 |
1 files changed, 379 insertions, 380 deletions
@@ -387,39 +387,39 @@ static const u8 *const sTVBravoTrainerBattleTowerTextGroup[] = { }; static const u8 *const sTVContestLiveUpdatesTextGroup[] = { - gTVContestLiveUpdatesText00, - gTVContestLiveUpdatesText01, - gTVContestLiveUpdatesText02, - gTVContestLiveUpdatesText03, - gTVContestLiveUpdatesText04, - gTVContestLiveUpdatesText05, - gTVContestLiveUpdatesText06, - gTVContestLiveUpdatesText07, - gTVContestLiveUpdatesText08, - gTVContestLiveUpdatesText09, - gTVContestLiveUpdatesText10, - gTVContestLiveUpdatesText11, - gTVContestLiveUpdatesText12, - gTVContestLiveUpdatesText13, - gTVContestLiveUpdatesText14, - gTVContestLiveUpdatesText15, - gTVContestLiveUpdatesText16, - gTVContestLiveUpdatesText17, - gTVContestLiveUpdatesText18, - gTVContestLiveUpdatesText19, - gTVContestLiveUpdatesText20, - gTVContestLiveUpdatesText21, - gTVContestLiveUpdatesText22, - gTVContestLiveUpdatesText23, - gTVContestLiveUpdatesText24, - gTVContestLiveUpdatesText25, - gTVContestLiveUpdatesText26, - gTVContestLiveUpdatesText27, - gTVContestLiveUpdatesText28, - gTVContestLiveUpdatesText29, - gTVContestLiveUpdatesText30, - gTVContestLiveUpdatesText31, - gTVContestLiveUpdatesText32 + [CONTESTLIVE_STATE_INTRO] = ContestLiveUpdates_Text_Intro, + [CONTESTLIVE_STATE_WON_BOTH_ROUNDS] = ContestLiveUpdates_Text_WonBothRounds, + [CONTESTLIVE_STATE_BETTER_ROUND2] = ContestLiveUpdates_Text_BetterRound2, + [CONTESTLIVE_STATE_EQUAL_ROUNDS] = ContestLiveUpdates_Text_EqualRounds, + [CONTESTLIVE_STATE_BETTER_ROUND1] = ContestLiveUpdates_Text_BetterRound1, + [CONTESTLIVE_STATE_GOT_NERVOUS] = ContestLiveUpdates_Text_GotNervous, + [CONTESTLIVE_STATE_STARTLED_OTHER] = ContestLiveUpdates_Text_StartledFoes, + [CONTESTLIVE_STATE_USED_COMBO] = ContestLiveUpdates_Text_UsedCombo, + [CONTESTLIVE_STATE_EXCITING_APPEAL] = ContestLiveUpdates_Text_ExcitingAppeal, + [CONTESTLIVE_STATE_COOL] = ContestLiveUpdates_Text_WasCool, + [CONTESTLIVE_STATE_BEAUTIFUL] = ContestLiveUpdates_Text_WasBeautiful, + [CONTESTLIVE_STATE_CUTE] = ContestLiveUpdates_Text_WasCute, + [CONTESTLIVE_STATE_SMART] = ContestLiveUpdates_Text_WasSmart, + [CONTESTLIVE_STATE_TOUGH] = ContestLiveUpdates_Text_WasTough, + [CONTESTLIVE_STATE_VERY_EXCITING_APPEAL] = ContestLiveUpdates_Text_VeryExcitingAppeal, + [CONTESTLIVE_STATE_VERY_COOL] = ContestLiveUpdates_Text_VeryCool, + [CONTESTLIVE_STATE_VERY_BEAUTIFUL] = ContestLiveUpdates_Text_VeryBeautiful, + [CONTESTLIVE_STATE_VERY_CUTE] = ContestLiveUpdates_Text_VeryCute, + [CONTESTLIVE_STATE_VERY_SMART] = ContestLiveUpdates_Text_VerySmart, + [CONTESTLIVE_STATE_VERY_TOUGH] = ContestLiveUpdates_Text_VeryTough, + [CONTESTLIVE_STATE_TOOK_BREAK] = ContestLiveUpdates_Text_TookBreak, + [CONTESTLIVE_STATE_GOT_STARTLED] = ContestLiveUpdates_Text_GotStartled, + [CONTESTLIVE_STATE_USED_MOVE] = ContestLiveUpdates_Text_MoveWonderful, + [CONTESTLIVE_STATE_TALK_ABOUT_LOSER] = ContestLiveUpdates_Text_TalkAboutAnotherMon, + [CONTESTLIVE_STATE_NO_APPEALS] = ContestLiveUpdates_Text_FailedToAppeal, + [CONTESTLIVE_STATE_LAST_BOTH] = ContestLiveUpdates_Text_LastInBothRounds, + [CONTESTLIVE_STATE_NOT_EXCITING_ENOUGH] = ContestLiveUpdates_Text_NotExcitingEnough, + [CONTESTLIVE_STATE_LOST_AFTER_ROUND1_WIN] = ContestLiveUpdates_Text_LostAfterWinningRound1, + [CONTESTLIVE_STATE_NO_EXCITING_APPEALS] = ContestLiveUpdates_Text_NeverExciting, + [CONTESTLIVE_STATE_LOST_SMALL_MARGIN] = ContestLiveUpdates_Text_LostBySmallMargin, + [CONTESTLIVE_STATE_REPEATED_APPEALS] = ContestLiveUpdates_Text_RepeatedAppeals, + [CONTESTLIVE_STATE_LOST] = ContestLiveUpdates_Text_ValiantEffortButLost, + [CONTESTLIVE_STATE_OUTRO] = ContestLiveUpdates_Text_Outro }; static const u8 *const sTVPokemonBattleUpdateTextGroup[] = { @@ -1268,19 +1268,19 @@ static void InterviewAfter_ContestLiveUpdates(void) show2 = &gSaveBlock1Ptr->tvShows[sCurTVShowSlot]; show2->contestLiveUpdates.kind = TVSHOW_CONTEST_LIVE_UPDATES; show2->contestLiveUpdates.active = TRUE; - StringCopy(show2->contestLiveUpdates.playerName, gSaveBlock2Ptr->playerName); + StringCopy(show2->contestLiveUpdates.winningTrainerName, gSaveBlock2Ptr->playerName); // Show only begins running if player won, so always load players name show2->contestLiveUpdates.category = gSpecialVar_ContestCategory; - show2->contestLiveUpdates.species = GetMonData(&gPlayerParty[gContestMonPartyIndex], MON_DATA_SPECIES, NULL); - show2->contestLiveUpdates.winningSpecies = show->contestLiveUpdates.winningSpecies; - show2->contestLiveUpdates.appealFlags2 = show->contestLiveUpdates.appealFlags2; - show2->contestLiveUpdates.round1Rank = show->contestLiveUpdates.round1Rank; - show2->contestLiveUpdates.round2Rank = show->contestLiveUpdates.round2Rank; + show2->contestLiveUpdates.winningSpecies = GetMonData(&gPlayerParty[gContestMonPartyIndex], MON_DATA_SPECIES, NULL); + show2->contestLiveUpdates.losingSpecies = show->contestLiveUpdates.losingSpecies; + show2->contestLiveUpdates.loserAppealFlag = show->contestLiveUpdates.loserAppealFlag; + show2->contestLiveUpdates.round1Placing = show->contestLiveUpdates.round1Placing; + show2->contestLiveUpdates.round2Placing = show->contestLiveUpdates.round2Placing; show2->contestLiveUpdates.move = show->contestLiveUpdates.move; - show2->contestLiveUpdates.appealFlags1 = show->contestLiveUpdates.appealFlags1; - StringCopy(show2->contestLiveUpdates.winningTrainerName, show->contestLiveUpdates.winningTrainerName); + show2->contestLiveUpdates.winnerAppealFlag = show->contestLiveUpdates.winnerAppealFlag; + StringCopy(show2->contestLiveUpdates.losingTrainerName, show->contestLiveUpdates.losingTrainerName); tv_store_id_2x(show2); - show2->contestLiveUpdates.language = gGameLanguage; - show2->contestLiveUpdates.winningTrainerLanguage = show->contestLiveUpdates.winningTrainerLanguage; + show2->contestLiveUpdates.winningTrainerLanguage = gGameLanguage; + show2->contestLiveUpdates.losingTrainerLanguage = show->contestLiveUpdates.losingTrainerLanguage; DeleteTVShowInArrayByIdx(gSaveBlock1Ptr->tvShows, LAST_TVSHOW_IDX); } } @@ -1399,7 +1399,7 @@ void PutFanClubSpecialOnTheAir(void) } } -void ContestLiveUpdates_BeforeInterview_1(u8 a0) +void ContestLiveUpdates_Init(u8 round1Placing) { TVShow *show; @@ -1408,12 +1408,12 @@ void ContestLiveUpdates_BeforeInterview_1(u8 a0) if (sCurTVShowSlot != -1) { show = &gSaveBlock1Ptr->tvShows[LAST_TVSHOW_IDX]; - show->contestLiveUpdates.round1Rank = a0; + show->contestLiveUpdates.round1Placing = round1Placing; show->contestLiveUpdates.kind = TVSHOW_CONTEST_LIVE_UPDATES; } } -void ContestLiveUpdates_BeforeInterview_2(u8 a0) +void ContestLiveUpdates_SetRound2Placing(u8 round2Placing) { TVShow *show; @@ -1421,11 +1421,11 @@ void ContestLiveUpdates_BeforeInterview_2(u8 a0) sCurTVShowSlot = FindEmptyTVSlotWithinFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); if (sCurTVShowSlot != -1) { - show->contestLiveUpdates.round2Rank = a0; + show->contestLiveUpdates.round2Placing = round2Placing; } } -void ContestLiveUpdates_BeforeInterview_3(u8 a0) +void ContestLiveUpdates_SetWinnerAppealFlag(u8 flag) { TVShow *show; @@ -1433,11 +1433,11 @@ void ContestLiveUpdates_BeforeInterview_3(u8 a0) sCurTVShowSlot = FindEmptyTVSlotWithinFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); if (sCurTVShowSlot != -1) { - show->contestLiveUpdates.appealFlags1 = a0; + show->contestLiveUpdates.winnerAppealFlag = flag; } } -void ContestLiveUpdates_BeforeInterview_4(u16 a0) +void ContestLiveUpdates_SetWinnerMoveUsed(u16 move) { TVShow *show; @@ -1445,11 +1445,11 @@ void ContestLiveUpdates_BeforeInterview_4(u16 a0) sCurTVShowSlot = FindEmptyTVSlotWithinFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); if (sCurTVShowSlot != -1) { - show->contestLiveUpdates.move = a0; + show->contestLiveUpdates.move = move; } } -void ContestLiveUpdates_BeforeInterview_5(u8 a0, u8 a1) +void ContestLiveUpdates_SetLoserData(u8 flag, u8 loser) { TVShow *show; @@ -1457,21 +1457,21 @@ void ContestLiveUpdates_BeforeInterview_5(u8 a0, u8 a1) sCurTVShowSlot = FindEmptyTVSlotWithinFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); if (sCurTVShowSlot != -1) { - show->contestLiveUpdates.winningSpecies = gContestMons[a1].species; - StringCopy(show->contestLiveUpdates.winningTrainerName, gContestMons[a1].trainerName); - StripExtCtrlCodes(show->contestLiveUpdates.winningTrainerName); - show->contestLiveUpdates.appealFlags2 = a0; - if (a1 + 1 > gNumLinkContestPlayers) + show->contestLiveUpdates.losingSpecies = gContestMons[loser].species; + StringCopy(show->contestLiveUpdates.losingTrainerName, gContestMons[loser].trainerName); + StripExtCtrlCodes(show->contestLiveUpdates.losingTrainerName); + show->contestLiveUpdates.loserAppealFlag = flag; + if (loser + 1 > gNumLinkContestPlayers) { - show->contestLiveUpdates.winningTrainerLanguage = gLinkPlayers[0].language; + show->contestLiveUpdates.losingTrainerLanguage = gLinkPlayers[0].language; } - else if (gGameLanguage == LANGUAGE_JAPANESE || gLinkPlayers[a1].language == LANGUAGE_JAPANESE) + else if (gGameLanguage == LANGUAGE_JAPANESE || gLinkPlayers[loser].language == LANGUAGE_JAPANESE) { - show->contestLiveUpdates.winningTrainerLanguage = LANGUAGE_JAPANESE; + show->contestLiveUpdates.losingTrainerLanguage = LANGUAGE_JAPANESE; } else { - show->contestLiveUpdates.winningTrainerLanguage = gLinkPlayers[a1].language; + show->contestLiveUpdates.losingTrainerLanguage = gLinkPlayers[loser].language; } } } @@ -1836,31 +1836,25 @@ static void TryEndMassOutbreak(u16 days) gSaveBlock1Ptr->outbreakDaysLeft -= days; } -void sub_80ED950(bool8 flag) +void RecordFishingAttemptForTV(bool8 caughtFish) { - if (flag) + if (caughtFish) { if (sPokemonAnglerAttemptCounters >> 8 > 4) - { PutFishingAdviceShowOnTheAir(); - } + sPokemonAnglerAttemptCounters &= 0xFF; if (sPokemonAnglerAttemptCounters != 0xFF) - { sPokemonAnglerAttemptCounters += 0x01; - } } else { if ((u8)sPokemonAnglerAttemptCounters > 4) - { PutFishingAdviceShowOnTheAir(); - } + sPokemonAnglerAttemptCounters &= 0xFF00; if (sPokemonAnglerAttemptCounters >> 8 != 0xFF) - { sPokemonAnglerAttemptCounters += 0x0100; - } } } @@ -1930,7 +1924,7 @@ void sub_80EDA80(void) } } -void sub_80EDB44(void) +void TryPutTodaysRivalTrainerOnAir(void) { TVShow *show; u32 i; @@ -3448,7 +3442,7 @@ void ChangePokemonNickname(void) GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_NICKNAME, gStringVar3); GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_NICKNAME, gStringVar2); - DoNamingScreen(3, gStringVar2, GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_SPECIES, NULL), GetMonGender(&gPlayerParty[gSpecialVar_0x8004]), GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_PERSONALITY, NULL), ChangePokemonNickname_CB); + DoNamingScreen(NAMING_SCREEN_NICKNAME, gStringVar2, GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_SPECIES, NULL), GetMonGender(&gPlayerParty[gSpecialVar_0x8004]), GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_PERSONALITY, NULL), ChangePokemonNickname_CB); } void ChangePokemonNickname_CB(void) @@ -3464,7 +3458,7 @@ void ChangeBoxPokemonNickname(void) boxMon = GetBoxedMonPtr(gSpecialVar_MonBoxId, gSpecialVar_MonBoxPos); GetBoxMonData(boxMon, MON_DATA_NICKNAME, gStringVar3); GetBoxMonData(boxMon, MON_DATA_NICKNAME, gStringVar2); - DoNamingScreen(3, gStringVar2, GetBoxMonData(boxMon, MON_DATA_SPECIES, NULL), GetBoxMonGender(boxMon), GetBoxMonData(boxMon, MON_DATA_PERSONALITY, NULL), ChangeBoxPokemonNickname_CB); + DoNamingScreen(NAMING_SCREEN_NICKNAME, gStringVar2, GetBoxMonData(boxMon, MON_DATA_SPECIES, NULL), GetBoxMonGender(boxMon), GetBoxMonData(boxMon, MON_DATA_PERSONALITY, NULL), ChangeBoxPokemonNickname_CB); } void ChangeBoxPokemonNickname_CB(void) @@ -3810,10 +3804,10 @@ static void sub_80F0708(void) // FIXME: register allocation shenanigans switch (gSaveBlock1Ptr->tvShows[i].common.kind) { case TVSHOW_CONTEST_LIVE_UPDATES: - j = (&gSaveBlock1Ptr->tvShows[i])->contestLiveUpdates.species; - sub_80F0B24(j, i); j = (&gSaveBlock1Ptr->tvShows[i])->contestLiveUpdates.winningSpecies; sub_80F0B24(j, i); + j = (&gSaveBlock1Ptr->tvShows[i])->contestLiveUpdates.losingSpecies; + sub_80F0B24(j, i); break; case TVSHOW_3_CHEERS_FOR_POKEBLOCKS: break; @@ -4307,8 +4301,8 @@ static void sub_80F12A4(TVShow *shows) curShow->bravoTrainerTower.pokemonNameLanguage = TV_GetStringLanguage(curShow->bravoTrainerTower.pokemonName); break; case TVSHOW_CONTEST_LIVE_UPDATES: - curShow->contestLiveUpdates.language = TV_GetStringLanguage(curShow->contestLiveUpdates.playerName); curShow->contestLiveUpdates.winningTrainerLanguage = TV_GetStringLanguage(curShow->contestLiveUpdates.winningTrainerName); + curShow->contestLiveUpdates.losingTrainerLanguage = TV_GetStringLanguage(curShow->contestLiveUpdates.losingTrainerName); break; case TVSHOW_3_CHEERS_FOR_POKEBLOCKS: curShow->threeCheers.language = TV_GetStringLanguage(curShow->threeCheers.playerName); @@ -5173,6 +5167,12 @@ static void DoTVShowPokemonNewsMassOutbreak(void) ShowFieldMessage(sTVMassOutbreakTextGroup[sTVShowState]); } +// TV Show that plays after a Link Contest. +// First talks about the winner and something they did, then about a losing player and something they did +// The show is only generated when the player wins, but can be record mixed to other games +// Each state buffers any needed data for a message to print from sTVContestLiveUpdatesTextGroup +// Many cases in this function are identical, and its size can be reduced a good deal by collapsing them +// Can't get this to match while collapsing them though static void DoTVShowPokemonContestLiveUpdates(void) { TVShow *show; @@ -5183,339 +5183,338 @@ static void DoTVShowPokemonContestLiveUpdates(void) state = sTVShowState; switch (state) { - case 0: - BufferContestName(gStringVar1, show->contestLiveUpdates.category); - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); - TVShowConvertInternationalString(gStringVar3, show->contestLiveUpdates.playerName, show->contestLiveUpdates.language); - if (show->contestLiveUpdates.round1Rank == show->contestLiveUpdates.round2Rank) - { - if (show->contestLiveUpdates.round1Rank == 0) - { - sTVShowState = 1; - } - else - { - sTVShowState = 3; - } - } - else if (show->contestLiveUpdates.round1Rank > show->contestLiveUpdates.round2Rank) + case CONTESTLIVE_STATE_INTRO: + BufferContestName(gStringVar1, show->contestLiveUpdates.category); + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + TVShowConvertInternationalString(gStringVar3, show->contestLiveUpdates.winningTrainerName, show->contestLiveUpdates.winningTrainerLanguage); + if (show->contestLiveUpdates.round1Placing == show->contestLiveUpdates.round2Placing) + { + if (show->contestLiveUpdates.round1Placing == 0) { - sTVShowState = 2; + sTVShowState = CONTESTLIVE_STATE_WON_BOTH_ROUNDS; } else { - sTVShowState = 4; + sTVShowState = CONTESTLIVE_STATE_EQUAL_ROUNDS; } + } + else if (show->contestLiveUpdates.round1Placing > show->contestLiveUpdates.round2Placing) + { + sTVShowState = CONTESTLIVE_STATE_BETTER_ROUND2; + } + else + { + sTVShowState = CONTESTLIVE_STATE_BETTER_ROUND1; + } + break; + case CONTESTLIVE_STATE_WON_BOTH_ROUNDS: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + switch (show->contestLiveUpdates.winnerAppealFlag) + { + case CONTESTLIVE_FLAG_EXCITING_APPEAL: + sTVShowState = CONTESTLIVE_STATE_EXCITING_APPEAL; break; - case 1: - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); - switch (show->contestLiveUpdates.appealFlags1) - { - case 0x01: - sTVShowState = 8; - break; - case 0x02: - sTVShowState = 5; - break; - case 0x04: - sTVShowState = 14; - break; - case 0x08: - sTVShowState = 7; - break; - case 0x10: - sTVShowState = 6; - break; - case 0x20: - sTVShowState = 20; - break; - case 0x40: - sTVShowState = 21; - break; - case 0x80: - sTVShowState = 22; - break; - } + case CONTESTLIVE_FLAG_GOT_NERVOUS: + sTVShowState = CONTESTLIVE_STATE_GOT_NERVOUS; break; - case 2: - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); - switch (show->contestLiveUpdates.appealFlags1) - { - case 0x01: - sTVShowState = 8; - break; - case 0x02: - sTVShowState = 5; - break; - case 0x04: - sTVShowState = 14; - break; - case 0x08: - sTVShowState = 7; - break; - case 0x10: - sTVShowState = 6; - break; - case 0x20: - sTVShowState = 20; - break; - case 0x40: - sTVShowState = 21; - break; - case 0x80: - sTVShowState = 22; - break; - } + case CONTESTLIVE_FLAG_MAXED_EXCITEMENT: + sTVShowState = CONTESTLIVE_STATE_VERY_EXCITING_APPEAL; break; - case 3: - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); - TVShowConvertInternationalString(gStringVar3, show->contestLiveUpdates.playerName, show->contestLiveUpdates.language); - switch (show->contestLiveUpdates.appealFlags1) - { - case 0x01: - sTVShowState = 8; - break; - case 0x02: - sTVShowState = 5; - break; - case 0x04: - sTVShowState = 14; - break; - case 0x08: - sTVShowState = 7; - break; - case 0x10: - sTVShowState = 6; - break; - case 0x20: - sTVShowState = 20; - break; - case 0x40: - sTVShowState = 21; - break; - case 0x80: - sTVShowState = 22; - break; - } + case CONTESTLIVE_FLAG_USED_COMBO: + sTVShowState = CONTESTLIVE_STATE_USED_COMBO; break; - case 4: - switch (show->contestLiveUpdates.category) - { - case 0: - StringCopy(gStringVar1, gText_Cool); - break; - case 1: - StringCopy(gStringVar1, gText_Beauty); - break; - case 2: - StringCopy(gStringVar1, gText_Cute); - break; - case 3: - StringCopy(gStringVar1, gText_Smart); - break; - case 4: - StringCopy(gStringVar1, gText_Tough); - break; - } - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); - switch (show->contestLiveUpdates.appealFlags1) - { - case 0x01: - sTVShowState = 8; - break; - case 0x02: - sTVShowState = 5; - break; - case 0x04: - sTVShowState = 14; - break; - case 0x08: - sTVShowState = 7; - break; - case 0x10: - sTVShowState = 6; - break; - case 0x20: - sTVShowState = 20; - break; - case 0x40: - sTVShowState = 21; - break; - case 0x80: - sTVShowState = 22; - break; - } + case CONTESTLIVE_FLAG_STARTLED_OTHER: + sTVShowState = CONTESTLIVE_STATE_STARTLED_OTHER; break; - case 5: - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); - sTVShowState = 23; + case CONTESTLIVE_FLAG_SKIPPED_TURN: + sTVShowState = CONTESTLIVE_STATE_TOOK_BREAK; break; - case 6: - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); - sTVShowState = 23; + case CONTESTLIVE_FLAG_GOT_STARTLED: + sTVShowState = CONTESTLIVE_STATE_GOT_STARTLED; break; - case 7: - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); - sTVShowState = 23; + case CONTESTLIVE_FLAG_MADE_APPEAL: + sTVShowState = CONTESTLIVE_STATE_USED_MOVE; break; - case 8: - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); - switch (show->contestLiveUpdates.category) - { - case 0: - sTVShowState = 9; - break; - case 1: - sTVShowState = 10; - break; - case 2: - sTVShowState = 11; - break; - case 3: - sTVShowState = 12; - break; - case 4: - sTVShowState = 13; - break; - } + } + break; + case CONTESTLIVE_STATE_BETTER_ROUND2: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + switch (show->contestLiveUpdates.winnerAppealFlag) + { + case CONTESTLIVE_FLAG_EXCITING_APPEAL: + sTVShowState = CONTESTLIVE_STATE_EXCITING_APPEAL; break; - case 9: - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); - sTVShowState = 23; + case CONTESTLIVE_FLAG_GOT_NERVOUS: + sTVShowState = CONTESTLIVE_STATE_GOT_NERVOUS; break; - case 10: - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); - sTVShowState = 23; + case CONTESTLIVE_FLAG_MAXED_EXCITEMENT: + sTVShowState = CONTESTLIVE_STATE_VERY_EXCITING_APPEAL; break; - case 11: - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); - sTVShowState = 23; + case CONTESTLIVE_FLAG_USED_COMBO: + sTVShowState = CONTESTLIVE_STATE_USED_COMBO; break; - case 12: - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); - sTVShowState = 23; + case CONTESTLIVE_FLAG_STARTLED_OTHER: + sTVShowState = CONTESTLIVE_STATE_STARTLED_OTHER; break; - case 13: - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); - sTVShowState = 23; + case CONTESTLIVE_FLAG_SKIPPED_TURN: + sTVShowState = CONTESTLIVE_STATE_TOOK_BREAK; break; - case 14: - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); - switch (show->contestLiveUpdates.category) - { - case 0: - sTVShowState = 15; - break; - case 1: - sTVShowState = 16; - break; - case 2: - sTVShowState = 17; - break; - case 3: - sTVShowState = 18; - break; - case 4: - sTVShowState = 19; - break; - } + case CONTESTLIVE_FLAG_GOT_STARTLED: + sTVShowState = CONTESTLIVE_STATE_GOT_STARTLED; break; - case 15: - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); - sTVShowState = 23; + case CONTESTLIVE_FLAG_MADE_APPEAL: + sTVShowState = CONTESTLIVE_STATE_USED_MOVE; break; - case 16: - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); - sTVShowState = 23; + } + break; + case CONTESTLIVE_STATE_EQUAL_ROUNDS: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + TVShowConvertInternationalString(gStringVar3, show->contestLiveUpdates.winningTrainerName, show->contestLiveUpdates.winningTrainerLanguage); + switch (show->contestLiveUpdates.winnerAppealFlag) + { + case CONTESTLIVE_FLAG_EXCITING_APPEAL: + sTVShowState = CONTESTLIVE_STATE_EXCITING_APPEAL; break; - case 17: - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); - sTVShowState = 23; + case CONTESTLIVE_FLAG_GOT_NERVOUS: + sTVShowState = CONTESTLIVE_STATE_GOT_NERVOUS; break; - case 18: - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); - sTVShowState = 23; - break; - case 19: - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); - sTVShowState = 23; - break; - case 20: - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); - sTVShowState = 23; - break; - case 21: - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); - sTVShowState = 23; - break; - case 22: - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); - StringCopy(gStringVar3, gMoveNames[show->contestLiveUpdates.move]); - sTVShowState = 23; - break; - case 23: - StringCopy(gStringVar1, gSpeciesNames[show->contestLiveUpdates.species]); - TVShowConvertInternationalString(gStringVar2, show->contestLiveUpdates.winningTrainerName, show->contestLiveUpdates.winningTrainerLanguage); - StringCopy(gStringVar3, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); - switch (show->contestLiveUpdates.appealFlags2) - { - case 0x01: - sTVShowState = 31; - break; - case 0x02: - sTVShowState = 30; - break; - case 0x04: - sTVShowState = 29; - break; - case 0x08: - sTVShowState = 28; - break; - case 0x10: - sTVShowState = 27; - break; - case 0x20: - sTVShowState = 26; - break; - case 0x40: - sTVShowState = 25; - break; - case 0x80: - sTVShowState = 24; - break; - } + case CONTESTLIVE_FLAG_MAXED_EXCITEMENT: + sTVShowState = CONTESTLIVE_STATE_VERY_EXCITING_APPEAL; break; - case 24: - StringCopy(gStringVar1, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); - sTVShowState = 32; + case CONTESTLIVE_FLAG_USED_COMBO: + sTVShowState = CONTESTLIVE_STATE_USED_COMBO; break; - case 25: - TVShowConvertInternationalString(gStringVar1, show->contestLiveUpdates.winningTrainerName, show->contestLiveUpdates.winningTrainerLanguage); - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); - sTVShowState = 32; + case CONTESTLIVE_FLAG_STARTLED_OTHER: + sTVShowState = CONTESTLIVE_STATE_STARTLED_OTHER; break; - case 28: - sTVShowState = 32; + case CONTESTLIVE_FLAG_SKIPPED_TURN: + sTVShowState = CONTESTLIVE_STATE_TOOK_BREAK; break; - case 29: - TVShowConvertInternationalString(gStringVar1, show->contestLiveUpdates.playerName, show->contestLiveUpdates.language); - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); - TVShowConvertInternationalString(gStringVar3, show->contestLiveUpdates.winningTrainerName, show->contestLiveUpdates.winningTrainerLanguage); - sTVShowState = 32; + case CONTESTLIVE_FLAG_GOT_STARTLED: + sTVShowState = CONTESTLIVE_STATE_GOT_STARTLED; break; - case 26: - case 27: - case 30: - case 31: - TVShowConvertInternationalString(gStringVar1, show->contestLiveUpdates.winningTrainerName, show->contestLiveUpdates.winningTrainerLanguage); - sTVShowState = 32; + case CONTESTLIVE_FLAG_MADE_APPEAL: + sTVShowState = CONTESTLIVE_STATE_USED_MOVE; break; - case 32: - - TVShowConvertInternationalString(gStringVar1, show->contestLiveUpdates.playerName, show->contestLiveUpdates.language); - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); - TVShowDone(); + } + break; + case CONTESTLIVE_STATE_BETTER_ROUND1: + switch (show->contestLiveUpdates.category) + { + case CONTEST_CATEGORY_COOL: + StringCopy(gStringVar1, gText_Cool); break; + case CONTEST_CATEGORY_BEAUTY: + StringCopy(gStringVar1, gText_Beauty); + break; + case CONTEST_CATEGORY_CUTE: + StringCopy(gStringVar1, gText_Cute); + break; + case CONTEST_CATEGORY_SMART: + StringCopy(gStringVar1, gText_Smart); + break; + case CONTEST_CATEGORY_TOUGH: + StringCopy(gStringVar1, gText_Tough); + break; + } + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + switch (show->contestLiveUpdates.winnerAppealFlag) + { + case CONTESTLIVE_FLAG_EXCITING_APPEAL: + sTVShowState = CONTESTLIVE_STATE_EXCITING_APPEAL; + break; + case CONTESTLIVE_FLAG_GOT_NERVOUS: + sTVShowState = CONTESTLIVE_STATE_GOT_NERVOUS; + break; + case CONTESTLIVE_FLAG_MAXED_EXCITEMENT: + sTVShowState = CONTESTLIVE_STATE_VERY_EXCITING_APPEAL; + break; + case CONTESTLIVE_FLAG_USED_COMBO: + sTVShowState = CONTESTLIVE_STATE_USED_COMBO; + break; + case CONTESTLIVE_FLAG_STARTLED_OTHER: + sTVShowState = CONTESTLIVE_STATE_STARTLED_OTHER; + break; + case CONTESTLIVE_FLAG_SKIPPED_TURN: + sTVShowState = CONTESTLIVE_STATE_TOOK_BREAK; + break; + case CONTESTLIVE_FLAG_GOT_STARTLED: + sTVShowState = CONTESTLIVE_STATE_GOT_STARTLED; + break; + case CONTESTLIVE_FLAG_MADE_APPEAL: + sTVShowState = CONTESTLIVE_STATE_USED_MOVE; + break; + } + break; + case CONTESTLIVE_STATE_GOT_NERVOUS: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + sTVShowState = CONTESTLIVE_STATE_TALK_ABOUT_LOSER; + break; + case CONTESTLIVE_STATE_STARTLED_OTHER: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + sTVShowState = CONTESTLIVE_STATE_TALK_ABOUT_LOSER; + break; + case CONTESTLIVE_STATE_USED_COMBO: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + sTVShowState = CONTESTLIVE_STATE_TALK_ABOUT_LOSER; + break; + case CONTESTLIVE_STATE_EXCITING_APPEAL: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + switch (show->contestLiveUpdates.category) + { + case CONTEST_CATEGORY_COOL: + sTVShowState = CONTESTLIVE_STATE_COOL; + break; + case CONTEST_CATEGORY_BEAUTY: + sTVShowState = CONTESTLIVE_STATE_BEAUTIFUL; + break; + case CONTEST_CATEGORY_CUTE: + sTVShowState = CONTESTLIVE_STATE_CUTE; + break; + case CONTEST_CATEGORY_SMART: + sTVShowState = CONTESTLIVE_STATE_SMART; + break; + case CONTEST_CATEGORY_TOUGH: + sTVShowState = CONTESTLIVE_STATE_TOUGH; + break; + } + break; + case CONTESTLIVE_STATE_COOL: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + sTVShowState = CONTESTLIVE_STATE_TALK_ABOUT_LOSER; + break; + case CONTESTLIVE_STATE_BEAUTIFUL: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + sTVShowState = CONTESTLIVE_STATE_TALK_ABOUT_LOSER; + break; + case CONTESTLIVE_STATE_CUTE: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + sTVShowState = CONTESTLIVE_STATE_TALK_ABOUT_LOSER; + break; + case CONTESTLIVE_STATE_SMART: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + sTVShowState = CONTESTLIVE_STATE_TALK_ABOUT_LOSER; + break; + case CONTESTLIVE_STATE_TOUGH: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + sTVShowState = CONTESTLIVE_STATE_TALK_ABOUT_LOSER; + break; + case CONTESTLIVE_STATE_VERY_EXCITING_APPEAL: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + switch (show->contestLiveUpdates.category) + { + case CONTEST_CATEGORY_COOL: + sTVShowState = CONTESTLIVE_STATE_VERY_COOL; + break; + case CONTEST_CATEGORY_BEAUTY: + sTVShowState = CONTESTLIVE_STATE_VERY_BEAUTIFUL; + break; + case CONTEST_CATEGORY_CUTE: + sTVShowState = CONTESTLIVE_STATE_VERY_CUTE; + break; + case CONTEST_CATEGORY_SMART: + sTVShowState = CONTESTLIVE_STATE_VERY_SMART; + break; + case CONTEST_CATEGORY_TOUGH: + sTVShowState = CONTESTLIVE_STATE_VERY_TOUGH; + break; + } + break; + case CONTESTLIVE_STATE_VERY_COOL: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + sTVShowState = CONTESTLIVE_STATE_TALK_ABOUT_LOSER; + break; + case CONTESTLIVE_STATE_VERY_BEAUTIFUL: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + sTVShowState = CONTESTLIVE_STATE_TALK_ABOUT_LOSER; + break; + case CONTESTLIVE_STATE_VERY_CUTE: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + sTVShowState = CONTESTLIVE_STATE_TALK_ABOUT_LOSER; + break; + case CONTESTLIVE_STATE_VERY_SMART: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + sTVShowState = CONTESTLIVE_STATE_TALK_ABOUT_LOSER; + break; + case CONTESTLIVE_STATE_VERY_TOUGH: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + sTVShowState = CONTESTLIVE_STATE_TALK_ABOUT_LOSER; + break; + case CONTESTLIVE_STATE_TOOK_BREAK: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + sTVShowState = CONTESTLIVE_STATE_TALK_ABOUT_LOSER; + break; + case CONTESTLIVE_STATE_GOT_STARTLED: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + sTVShowState = CONTESTLIVE_STATE_TALK_ABOUT_LOSER; + break; + case CONTESTLIVE_STATE_USED_MOVE: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + StringCopy(gStringVar3, gMoveNames[show->contestLiveUpdates.move]); + sTVShowState = CONTESTLIVE_STATE_TALK_ABOUT_LOSER; + break; + case CONTESTLIVE_STATE_TALK_ABOUT_LOSER: + StringCopy(gStringVar1, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + TVShowConvertInternationalString(gStringVar2, show->contestLiveUpdates.losingTrainerName, show->contestLiveUpdates.losingTrainerLanguage); + StringCopy(gStringVar3, gSpeciesNames[show->contestLiveUpdates.losingSpecies]); + switch (show->contestLiveUpdates.loserAppealFlag) + { + case CONTESTLIVE_FLAG_LOST: + sTVShowState = CONTESTLIVE_STATE_LOST; + break; + case CONTESTLIVE_FLAG_REPEATED_MOVE: + sTVShowState = CONTESTLIVE_STATE_REPEATED_APPEALS; + break; + case CONTESTLIVE_FLAG_LOST_SMALL_MARGIN: + sTVShowState = CONTESTLIVE_STATE_LOST_SMALL_MARGIN; + break; + case CONTESTLIVE_FLAG_NO_EXCITEMENT: + sTVShowState = CONTESTLIVE_STATE_NO_EXCITING_APPEALS; + break; + case CONTESTLIVE_FLAG_BLEW_LEAD: + sTVShowState = CONTESTLIVE_STATE_LOST_AFTER_ROUND1_WIN; + break; + case CONTESTLIVE_FLAG_MISSED_EXCITEMENT: + sTVShowState = CONTESTLIVE_STATE_NOT_EXCITING_ENOUGH; + break; + case CONTESTLIVE_FLAG_LAST_BOTH_ROUNDS: + sTVShowState = CONTESTLIVE_STATE_LAST_BOTH; + break; + case CONTESTLIVE_FLAG_NO_APPEALS: + sTVShowState = CONTESTLIVE_STATE_NO_APPEALS; + break; + } + break; + case CONTESTLIVE_STATE_NO_APPEALS: + StringCopy(gStringVar1, gSpeciesNames[show->contestLiveUpdates.losingSpecies]); + sTVShowState = CONTESTLIVE_STATE_OUTRO; + break; + case CONTESTLIVE_STATE_LAST_BOTH: + TVShowConvertInternationalString(gStringVar1, show->contestLiveUpdates.losingTrainerName, show->contestLiveUpdates.losingTrainerLanguage); + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.losingSpecies]); + sTVShowState = CONTESTLIVE_STATE_OUTRO; + break; + case CONTESTLIVE_STATE_NO_EXCITING_APPEALS: + sTVShowState = CONTESTLIVE_STATE_OUTRO; + break; + case CONTESTLIVE_STATE_LOST_SMALL_MARGIN: + TVShowConvertInternationalString(gStringVar1, show->contestLiveUpdates.winningTrainerName, show->contestLiveUpdates.winningTrainerLanguage); + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + TVShowConvertInternationalString(gStringVar3, show->contestLiveUpdates.losingTrainerName, show->contestLiveUpdates.losingTrainerLanguage); + sTVShowState = CONTESTLIVE_STATE_OUTRO; + break; + case CONTESTLIVE_STATE_NOT_EXCITING_ENOUGH: + case CONTESTLIVE_STATE_LOST_AFTER_ROUND1_WIN: + case CONTESTLIVE_STATE_REPEATED_APPEALS: + case CONTESTLIVE_STATE_LOST: + TVShowConvertInternationalString(gStringVar1, show->contestLiveUpdates.losingTrainerName, show->contestLiveUpdates.losingTrainerLanguage); + sTVShowState = CONTESTLIVE_STATE_OUTRO; + break; + case CONTESTLIVE_STATE_OUTRO: + TVShowConvertInternationalString(gStringVar1, show->contestLiveUpdates.winningTrainerName, show->contestLiveUpdates.winningTrainerLanguage); + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + TVShowDone(); + break; } ShowFieldMessage(sTVContestLiveUpdatesTextGroup[state]); } |