Document ribbon TV show, add new ribbon IDs/size

This commit is contained in:
GriffinR
2021-02-18 09:59:24 -05:00
parent 642ae8295e
commit 02c1fbd733
8 changed files with 217 additions and 144 deletions
+16 -16
View File
@@ -1736,7 +1736,7 @@ gTVTrainerFanClubText11:: @ 08286B4F
.string "FANS: {STR_VAR_2}!\p" .string "FANS: {STR_VAR_2}!\p"
.string "FANS: {STR_VAR_3}!$" .string "FANS: {STR_VAR_3}!$"
gTVCutiesText00:: @ 08286D8F TVSpotTheCuties_Text_Intro:: @ 08286D8F
.string "SPOT THE CUTIES!\n" .string "SPOT THE CUTIES!\n"
.string "POKéMON IN RIBBONS!\p" .string "POKéMON IN RIBBONS!\p"
.string "Hello, my sweet viewers!\p" .string "Hello, my sweet viewers!\p"
@@ -1748,29 +1748,29 @@ gTVCutiesText00:: @ 08286D8F
.string "Today's featured pretty POKéMON\n" .string "Today's featured pretty POKéMON\n"
.string "is {STR_VAR_1}'s {STR_VAR_2}.$" .string "is {STR_VAR_1}'s {STR_VAR_2}.$"
gTVCutiesText01:: @ 08286E9D TVSpotTheCuties_Text_RibbonsLow:: @ 08286E9D
.string "The number of RIBBONS that\n" .string "The number of RIBBONS that\n"
.string "{STR_VAR_2} wears is {STR_VAR_3}.\p" .string "{STR_VAR_2} wears is {STR_VAR_3}.\p"
.string "It says a lot about how much\n" .string "It says a lot about how much\n"
.string "{STR_VAR_1} adores the POKéMON.$" .string "{STR_VAR_1} adores the POKéMON.$"
gTVCutiesText02:: @ 08286EFC TVSpotTheCuties_Text_RibbonsMid:: @ 08286EFC
.string "{STR_VAR_2} wears an amazing\n" .string "{STR_VAR_2} wears an amazing\n"
.string "{STR_VAR_3} RIBBONS!\p" .string "{STR_VAR_3} RIBBONS!\p"
.string "It speaks volumes about {STR_VAR_1}'s\n" .string "It speaks volumes about {STR_VAR_1}'s\n"
.string "commitment to the POKéMON!$" .string "commitment to the POKéMON!$"
gTVCutiesText03:: @ 08286F54 TVSpotTheCuties_Text_RibbonsHigh:: @ 08286F54
.string "{STR_VAR_2} wears an incredible\n" .string "{STR_VAR_2} wears an incredible\n"
.string "{STR_VAR_3} RIBBONS!\p" .string "{STR_VAR_3} RIBBONS!\p"
.string "It shows you {STR_VAR_1}'s total\n" .string "It shows you {STR_VAR_1}'s total\n"
.string "dedication as a collector!$" .string "dedication as a collector!$"
gTVCutiesText04:: @ 08286FAA TVSpotTheCuties_Text_RibbonIntro:: @ 08286FAA
.string "Let us take a closer look at the many\n" .string "Let us take a closer look at the many\n"
.string "RIBBONS worn by {STR_VAR_2}.$" .string "RIBBONS worn by {STR_VAR_2}.$"
gTVCutiesText05:: @ 08286FE4 TVSpotTheCuties_Text_RibbonChampion:: @ 08286FE4
.string "The CHAMPION RIBBON is especially\n" .string "The CHAMPION RIBBON is especially\n"
.string "fetching.\p" .string "fetching.\p"
.string "{STR_VAR_2} received it upon entering\n" .string "{STR_VAR_2} received it upon entering\n"
@@ -1780,7 +1780,7 @@ gTVCutiesText05:: @ 08286FE4
.string "{STR_VAR_2} and the CHAMP RIBBON!\n" .string "{STR_VAR_2} and the CHAMP RIBBON!\n"
.string "The combination is super effective!$" .string "The combination is super effective!$"
gTVCutiesText06:: @ 082870A3 TVSpotTheCuties_Text_RibbonCool:: @ 082870A3
.string "The COOL RIBBON is especially\n" .string "The COOL RIBBON is especially\n"
.string "fetching.\p" .string "fetching.\p"
.string "{STR_VAR_2} received it for winning\n" .string "{STR_VAR_2} received it for winning\n"
@@ -1790,7 +1790,7 @@ gTVCutiesText06:: @ 082870A3
.string "{STR_VAR_2} and the COOL RIBBON!\n" .string "{STR_VAR_2} and the COOL RIBBON!\n"
.string "The combination is super effective!$" .string "The combination is super effective!$"
gTVCutiesText07:: @ 0828715A TVSpotTheCuties_Text_RibbonBeauty:: @ 0828715A
.string "The BEAUTY RIBBON is especially\n" .string "The BEAUTY RIBBON is especially\n"
.string "fetching.\p" .string "fetching.\p"
.string "{STR_VAR_2} received it for winning\n" .string "{STR_VAR_2} received it for winning\n"
@@ -1800,7 +1800,7 @@ gTVCutiesText07:: @ 0828715A
.string "{STR_VAR_2} and the BEAUTY RIBBON!\n" .string "{STR_VAR_2} and the BEAUTY RIBBON!\n"
.string "The combination is super effective!$" .string "The combination is super effective!$"
gTVCutiesText08:: @ 08287215 TVSpotTheCuties_Text_RibbonCute:: @ 08287215
.string "The CUTE RIBBON is especially\n" .string "The CUTE RIBBON is especially\n"
.string "fetching.\p" .string "fetching.\p"
.string "{STR_VAR_2} received it for winning\n" .string "{STR_VAR_2} received it for winning\n"
@@ -1810,7 +1810,7 @@ gTVCutiesText08:: @ 08287215
.string "{STR_VAR_2} and the CUTE RIBBON!\n" .string "{STR_VAR_2} and the CUTE RIBBON!\n"
.string "The combination is super effective!$" .string "The combination is super effective!$"
gTVCutiesText09:: @ 082872CC TVSpotTheCuties_Text_RibbonSmart:: @ 082872CC
.string "The SMART RIBBON is especially\n" .string "The SMART RIBBON is especially\n"
.string "fetching.\p" .string "fetching.\p"
.string "{STR_VAR_2} received it for winning\n" .string "{STR_VAR_2} received it for winning\n"
@@ -1820,7 +1820,7 @@ gTVCutiesText09:: @ 082872CC
.string "{STR_VAR_2} and the SMART RIBBON!\n" .string "{STR_VAR_2} and the SMART RIBBON!\n"
.string "The combination is super effective!$" .string "The combination is super effective!$"
gTVCutiesText10:: @ 08287387 TVSpotTheCuties_Text_RibbonTough:: @ 08287387
.string "The TOUGH RIBBON is especially\n" .string "The TOUGH RIBBON is especially\n"
.string "fetching.\p" .string "fetching.\p"
.string "{STR_VAR_2} received it for winning\n" .string "{STR_VAR_2} received it for winning\n"
@@ -1830,7 +1830,7 @@ gTVCutiesText10:: @ 08287387
.string "{STR_VAR_2} and the TOUGH RIBBON!\n" .string "{STR_VAR_2} and the TOUGH RIBBON!\n"
.string "The combination is super effective!$" .string "The combination is super effective!$"
gTVCutiesText11:: @ 08287442 TVSpotTheCuties_Text_RibbonWinning:: @ 08287442
.string "The WINNING RIBBON is especially\n" .string "The WINNING RIBBON is especially\n"
.string "fetching.\p" .string "fetching.\p"
.string "{STR_VAR_2} received it for its feats\n" .string "{STR_VAR_2} received it for its feats\n"
@@ -1840,7 +1840,7 @@ gTVCutiesText11:: @ 08287442
.string "{STR_VAR_2} and the WINNING RIBBON!\n" .string "{STR_VAR_2} and the WINNING RIBBON!\n"
.string "The combination is super effective!$" .string "The combination is super effective!$"
gTVCutiesText12:: @ 08287508 TVSpotTheCuties_Text_RibbonVictory:: @ 08287508
.string "The VICTORY RIBBON is especially\n" .string "The VICTORY RIBBON is especially\n"
.string "fetching.\p" .string "fetching.\p"
.string "{STR_VAR_2} received it for its feats\n" .string "{STR_VAR_2} received it for its feats\n"
@@ -1850,7 +1850,7 @@ gTVCutiesText12:: @ 08287508
.string "{STR_VAR_2} and the VICTORY RIBBON!\n" .string "{STR_VAR_2} and the VICTORY RIBBON!\n"
.string "The combination is super effective!$" .string "The combination is super effective!$"
gTVCutiesText13:: @ 082875D9 TVSpotTheCuties_Text_RibbonArtist:: @ 082875D9
.string "The ARTIST RIBBON is especially\n" .string "The ARTIST RIBBON is especially\n"
.string "fetching.\p" .string "fetching.\p"
.string "{STR_VAR_2} received it for being\n" .string "{STR_VAR_2} received it for being\n"
@@ -1860,7 +1860,7 @@ gTVCutiesText13:: @ 082875D9
.string "{STR_VAR_2} and the ARTIST RIBBON!\n" .string "{STR_VAR_2} and the ARTIST RIBBON!\n"
.string "The combination is super effective!$" .string "The combination is super effective!$"
gTVCutiesText14:: @ 082876A1 TVSpotTheCuties_Text_RibbonEffort:: @ 082876A1
.string "The Hard Worker RIBBON is\n" .string "The Hard Worker RIBBON is\n"
.string "especially fetching.\p" .string "especially fetching.\p"
.string "{STR_VAR_2} received it for being\n" .string "{STR_VAR_2} received it for being\n"
@@ -1870,7 +1870,7 @@ gTVCutiesText14:: @ 082876A1
.string "{STR_VAR_2} and the Hard Worker RIBBON!\n" .string "{STR_VAR_2} and the Hard Worker RIBBON!\n"
.string "The combination is super effective!$" .string "The combination is super effective!$"
gTVCutiesText15:: @ 08287779 TVSpotTheCuties_Text_Outro:: @ 08287779
.string "…Sigh…\p" .string "…Sigh…\p"
.string "RIBBONS and POKéMON…\n" .string "RIBBONS and POKéMON…\n"
.string "They go so wonderfully together!\p" .string "They go so wonderfully together!\p"
+49
View File
@@ -182,6 +182,55 @@
#define MON_DATA_SPATK2 87 #define MON_DATA_SPATK2 87
#define MON_DATA_SPDEF2 88 #define MON_DATA_SPDEF2 88
// Ribbon IDs used by TV and Pokénav
#define CHAMPION_RIBBON 0
#define COOL_RIBBON_NORMAL 1
#define COOL_RIBBON_SUPER 2
#define COOL_RIBBON_HYPER 3
#define COOL_RIBBON_MASTER 4
#define BEAUTY_RIBBON_NORMAL 5
#define BEAUTY_RIBBON_SUPER 6
#define BEAUTY_RIBBON_HYPER 7
#define BEAUTY_RIBBON_MASTER 8
#define CUTE_RIBBON_NORMAL 9
#define CUTE_RIBBON_SUPER 10
#define CUTE_RIBBON_HYPER 11
#define CUTE_RIBBON_MASTER 12
#define SMART_RIBBON_NORMAL 13
#define SMART_RIBBON_SUPER 14
#define SMART_RIBBON_HYPER 15
#define SMART_RIBBON_MASTER 16
#define TOUGH_RIBBON_NORMAL 17
#define TOUGH_RIBBON_SUPER 18
#define TOUGH_RIBBON_HYPER 19
#define TOUGH_RIBBON_MASTER 20
#define WINNING_RIBBON 21
#define VICTORY_RIBBON 22
#define ARTIST_RIBBON 23
#define EFFORT_RIBBON 24
#define MARINE_RIBBON 25
#define LAND_RIBBON 26
#define SKY_RIBBON 27
#define COUNTRY_RIBBON 28
#define NATIONAL_RIBBON 29
#define EARTH_RIBBON 30
#define WORLD_RIBBON 31
#define FIRST_GIFT_RIBBON MARINE_RIBBON
#define LAST_GIFT_RIBBON WORLD_RIBBON
#define NUM_GIFT_RIBBONS (1 + LAST_GIFT_RIBBON - FIRST_GIFT_RIBBON)
// The above gift ribbons (Marine - World) are
// special distribution ribbons that correspond to
// 1 bit each in the Pokémon struct. Gen 4 hard-codes
// each of these to the given name. In Gen 3 they're
// used to get an index into giftRibbons in the save block,
// which can have a value 0-64 (0 is 'no ribbon') that
// corresponds to one of the special ribbons listed
// in gGiftRibbonDescriptionPointers. Most of these were
// never distributed
#define MAX_GIFT_RIBBON 64
#define MIN_LEVEL 1 #define MIN_LEVEL 1
#define MAX_LEVEL 100 #define MAX_LEVEL 100
+18
View File
@@ -188,4 +188,22 @@
#define CONTESTLIVE_FLAG_LAST_BOTH_ROUNDS (1 << 6) #define CONTESTLIVE_FLAG_LAST_BOTH_ROUNDS (1 << 6)
#define CONTESTLIVE_FLAG_NO_APPEALS (1 << 7) #define CONTESTLIVE_FLAG_NO_APPEALS (1 << 7)
// TV Show states for Spot the Cuties
#define SPOTCUTIES_STATE_INTRO 0
#define SPOTCUTIES_STATE_RIBBONS_LOW 1
#define SPOTCUTIES_STATE_RIBBONS_MID 2
#define SPOTCUTIES_STATE_RIBBONS_HIGH 3
#define SPOTCUTIES_STATE_RIBBON_INTRO 4
#define SPOTCUTIES_STATE_RIBBON_CHAMPION 5
#define SPOTCUTIES_STATE_RIBBON_COOL 6
#define SPOTCUTIES_STATE_RIBBON_BEAUTY 7
#define SPOTCUTIES_STATE_RIBBON_CUTE 8
#define SPOTCUTIES_STATE_RIBBON_SMART 9
#define SPOTCUTIES_STATE_RIBBON_TOUGH 10
#define SPOTCUTIES_STATE_RIBBON_WINNING 11
#define SPOTCUTIES_STATE_RIBBON_VICTORY 12
#define SPOTCUTIES_STATE_RIBBON_ARTIST 13
#define SPOTCUTIES_STATE_RIBBON_EFFORT 14
#define SPOTCUTIES_STATE_OUTRO 15
#endif //GUARD_CONSTANTS_TV_H #endif //GUARD_CONSTANTS_TV_H
+16 -16
View File
@@ -196,22 +196,22 @@ extern const u8 gTVTrainerFanClubText08[];
extern const u8 gTVTrainerFanClubText09[]; extern const u8 gTVTrainerFanClubText09[];
extern const u8 gTVTrainerFanClubText10[]; extern const u8 gTVTrainerFanClubText10[];
extern const u8 gTVTrainerFanClubText11[]; extern const u8 gTVTrainerFanClubText11[];
extern const u8 gTVCutiesText00[]; extern const u8 TVSpotTheCuties_Text_Intro[];
extern const u8 gTVCutiesText01[]; extern const u8 TVSpotTheCuties_Text_RibbonsLow[];
extern const u8 gTVCutiesText02[]; extern const u8 TVSpotTheCuties_Text_RibbonsMid[];
extern const u8 gTVCutiesText03[]; extern const u8 TVSpotTheCuties_Text_RibbonsHigh[];
extern const u8 gTVCutiesText04[]; extern const u8 TVSpotTheCuties_Text_RibbonIntro[];
extern const u8 gTVCutiesText05[]; extern const u8 TVSpotTheCuties_Text_RibbonChampion[];
extern const u8 gTVCutiesText06[]; extern const u8 TVSpotTheCuties_Text_RibbonCool[];
extern const u8 gTVCutiesText07[]; extern const u8 TVSpotTheCuties_Text_RibbonBeauty[];
extern const u8 gTVCutiesText08[]; extern const u8 TVSpotTheCuties_Text_RibbonCute[];
extern const u8 gTVCutiesText09[]; extern const u8 TVSpotTheCuties_Text_RibbonSmart[];
extern const u8 gTVCutiesText10[]; extern const u8 TVSpotTheCuties_Text_RibbonTough[];
extern const u8 gTVCutiesText11[]; extern const u8 TVSpotTheCuties_Text_RibbonWinning[];
extern const u8 gTVCutiesText12[]; extern const u8 TVSpotTheCuties_Text_RibbonVictory[];
extern const u8 gTVCutiesText13[]; extern const u8 TVSpotTheCuties_Text_RibbonArtist[];
extern const u8 gTVCutiesText14[]; extern const u8 TVSpotTheCuties_Text_RibbonEffort[];
extern const u8 gTVCutiesText15[]; extern const u8 TVSpotTheCuties_Text_Outro[];
extern const u8 gTVPokemonNewsBattleFrontierText00[]; extern const u8 gTVPokemonNewsBattleFrontierText00[];
extern const u8 gTVPokemonNewsBattleFrontierText01[]; extern const u8 gTVPokemonNewsBattleFrontierText01[];
extern const u8 gTVPokemonNewsBattleFrontierText02[]; extern const u8 gTVPokemonNewsBattleFrontierText02[];
+4
View File
@@ -2765,7 +2765,11 @@ static void AwardBattleTowerRibbons(void)
{ {
s32 i; s32 i;
u32 partyIndex; u32 partyIndex;
#ifdef BUGFIX
struct RibbonCounter ribbons[MAX_FRONTIER_PARTY_SIZE];
#else
struct RibbonCounter ribbons[3]; // BUG: 4 Pokemon can receive ribbons in a double battle mode. struct RibbonCounter ribbons[3]; // BUG: 4 Pokemon can receive ribbons in a double battle mode.
#endif
u8 ribbonType = 0; u8 ribbonType = 0;
u8 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; u8 lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
u8 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE); u8 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE);
+1 -1
View File
@@ -1408,7 +1408,7 @@ void GiveLeadMonEffortRibbon(void)
SetMonData(leadMon, MON_DATA_EFFORT_RIBBON, &ribbonSet); SetMonData(leadMon, MON_DATA_EFFORT_RIBBON, &ribbonSet);
if (GetRibbonCount(leadMon) > NUM_CUTIES_RIBBONS) if (GetRibbonCount(leadMon) > NUM_CUTIES_RIBBONS)
{ {
TryPutSpotTheCutiesOnAir(leadMon, 0x47); TryPutSpotTheCutiesOnAir(leadMon, MON_DATA_EFFORT_RIBBON);
} }
} }
+2 -2
View File
@@ -198,10 +198,10 @@ void GiveGiftRibbonToParty(u8 index, u8 ribbonId)
s32 i; s32 i;
bool32 gotRibbon = FALSE; bool32 gotRibbon = FALSE;
u8 data = 1; u8 data = 1;
u8 array[8]; u8 array[ARRAY_COUNT(sGiftRibbonsMonDataIds)];
memcpy(array, sGiftRibbonsMonDataIds, sizeof(sGiftRibbonsMonDataIds)); memcpy(array, sGiftRibbonsMonDataIds, sizeof(sGiftRibbonsMonDataIds));
if (index < GIFT_RIBBONS_COUNT && ribbonId < 65) if (index < GIFT_RIBBONS_COUNT && ribbonId <= MAX_GIFT_RIBBON)
{ {
gSaveBlock1Ptr->giftRibbons[index] = ribbonId; gSaveBlock1Ptr->giftRibbons[index] = ribbonId;
for (i = 0; i < PARTY_SIZE; i++) for (i = 0; i < PARTY_SIZE; i++)
+111 -109
View File
@@ -139,7 +139,7 @@ static void sub_80EF120(u16 days);
static void sub_80EDA48(u16 days); static void sub_80EDA48(u16 days);
static void sub_80EEB98(u16 days); static void sub_80EEB98(u16 days);
void PutFishingAdviceShowOnTheAir(void); void PutFishingAdviceShowOnTheAir(void);
u8 TV_MonDataIdxToRibbon(u8 monDataIdx); static u8 MonDataIdxToRibbon(u8 monDataIdx);
static void sub_80EEBF4(u8 actionIdx); static void sub_80EEBF4(u8 actionIdx);
bool8 IsPriceDiscounted(u8 newsKind); bool8 IsPriceDiscounted(u8 newsKind);
static void InterviewBefore_FanClubLetter(void); static void InterviewBefore_FanClubLetter(void);
@@ -592,22 +592,22 @@ static const u8 *const sTVTrainerFanClubTextGroup[] = {
}; };
static const u8 *const sTVCutiesTextGroup[] = { static const u8 *const sTVCutiesTextGroup[] = {
gTVCutiesText00, [SPOTCUTIES_STATE_INTRO] = TVSpotTheCuties_Text_Intro,
gTVCutiesText01, [SPOTCUTIES_STATE_RIBBONS_LOW] = TVSpotTheCuties_Text_RibbonsLow,
gTVCutiesText02, [SPOTCUTIES_STATE_RIBBONS_MID] = TVSpotTheCuties_Text_RibbonsMid,
gTVCutiesText03, [SPOTCUTIES_STATE_RIBBONS_HIGH] = TVSpotTheCuties_Text_RibbonsHigh,
gTVCutiesText04, [SPOTCUTIES_STATE_RIBBON_INTRO] = TVSpotTheCuties_Text_RibbonIntro,
gTVCutiesText05, [SPOTCUTIES_STATE_RIBBON_CHAMPION] = TVSpotTheCuties_Text_RibbonChampion,
gTVCutiesText06, [SPOTCUTIES_STATE_RIBBON_COOL] = TVSpotTheCuties_Text_RibbonCool,
gTVCutiesText07, [SPOTCUTIES_STATE_RIBBON_BEAUTY] = TVSpotTheCuties_Text_RibbonBeauty,
gTVCutiesText08, [SPOTCUTIES_STATE_RIBBON_CUTE] = TVSpotTheCuties_Text_RibbonCute,
gTVCutiesText09, [SPOTCUTIES_STATE_RIBBON_SMART] = TVSpotTheCuties_Text_RibbonSmart,
gTVCutiesText10, [SPOTCUTIES_STATE_RIBBON_TOUGH] = TVSpotTheCuties_Text_RibbonTough,
gTVCutiesText11, [SPOTCUTIES_STATE_RIBBON_WINNING] = TVSpotTheCuties_Text_RibbonWinning,
gTVCutiesText12, [SPOTCUTIES_STATE_RIBBON_VICTORY] = TVSpotTheCuties_Text_RibbonVictory,
gTVCutiesText13, [SPOTCUTIES_STATE_RIBBON_ARTIST] = TVSpotTheCuties_Text_RibbonArtist,
gTVCutiesText14, [SPOTCUTIES_STATE_RIBBON_EFFORT] = TVSpotTheCuties_Text_RibbonEffort,
gTVCutiesText15 [SPOTCUTIES_STATE_OUTRO] = TVSpotTheCuties_Text_Outro
}; };
static const u8 *const sTVPokemonNewsBattleFrontierTextGroup[] = { static const u8 *const sTVPokemonNewsBattleFrontierTextGroup[] = {
@@ -2369,7 +2369,7 @@ void TryPutSpotTheCutiesOnAir(struct Pokemon *pokemon, u8 ribbonMonDataIdx)
GetMonData(pokemon, MON_DATA_NICKNAME, show->cuties.nickname); GetMonData(pokemon, MON_DATA_NICKNAME, show->cuties.nickname);
StripExtCtrlCodes(show->cuties.nickname); StripExtCtrlCodes(show->cuties.nickname);
show->cuties.nRibbons = GetRibbonCount(pokemon); show->cuties.nRibbons = GetRibbonCount(pokemon);
show->cuties.selectedRibbon = TV_MonDataIdxToRibbon(ribbonMonDataIdx); show->cuties.selectedRibbon = MonDataIdxToRibbon(ribbonMonDataIdx);
tv_store_id_3x(show); tv_store_id_3x(show);
show->cuties.language = gGameLanguage; show->cuties.language = gGameLanguage;
if (show->cuties.language == LANGUAGE_JAPANESE || GetMonData(pokemon, MON_DATA_LANGUAGE) == LANGUAGE_JAPANESE) if (show->cuties.language == LANGUAGE_JAPANESE || GetMonData(pokemon, MON_DATA_LANGUAGE) == LANGUAGE_JAPANESE)
@@ -2408,26 +2408,26 @@ u8 GetRibbonCount(struct Pokemon *pokemon)
return nRibbons; return nRibbons;
} }
u8 TV_MonDataIdxToRibbon(u8 monDataIdx) static u8 MonDataIdxToRibbon(u8 monDataIdx)
{ {
if (monDataIdx == MON_DATA_CHAMPION_RIBBON) return 0; if (monDataIdx == MON_DATA_CHAMPION_RIBBON) return CHAMPION_RIBBON;
if (monDataIdx == MON_DATA_COOL_RIBBON) return 1; if (monDataIdx == MON_DATA_COOL_RIBBON) return COOL_RIBBON_NORMAL;
if (monDataIdx == MON_DATA_BEAUTY_RIBBON) return 5; if (monDataIdx == MON_DATA_BEAUTY_RIBBON) return BEAUTY_RIBBON_NORMAL;
if (monDataIdx == MON_DATA_CUTE_RIBBON) return 9; if (monDataIdx == MON_DATA_CUTE_RIBBON) return CUTE_RIBBON_NORMAL;
if (monDataIdx == MON_DATA_SMART_RIBBON) return 13; if (monDataIdx == MON_DATA_SMART_RIBBON) return SMART_RIBBON_NORMAL;
if (monDataIdx == MON_DATA_TOUGH_RIBBON) return 17; if (monDataIdx == MON_DATA_TOUGH_RIBBON) return TOUGH_RIBBON_NORMAL;
if (monDataIdx == MON_DATA_WINNING_RIBBON) return 21; if (monDataIdx == MON_DATA_WINNING_RIBBON) return WINNING_RIBBON;
if (monDataIdx == MON_DATA_VICTORY_RIBBON) return 22; if (monDataIdx == MON_DATA_VICTORY_RIBBON) return VICTORY_RIBBON;
if (monDataIdx == MON_DATA_ARTIST_RIBBON) return 23; if (monDataIdx == MON_DATA_ARTIST_RIBBON) return ARTIST_RIBBON;
if (monDataIdx == MON_DATA_EFFORT_RIBBON) return 24; if (monDataIdx == MON_DATA_EFFORT_RIBBON) return EFFORT_RIBBON;
if (monDataIdx == MON_DATA_MARINE_RIBBON) return 25; if (monDataIdx == MON_DATA_MARINE_RIBBON) return MARINE_RIBBON;
if (monDataIdx == MON_DATA_LAND_RIBBON) return 26; if (monDataIdx == MON_DATA_LAND_RIBBON) return LAND_RIBBON;
if (monDataIdx == MON_DATA_SKY_RIBBON) return 27; if (monDataIdx == MON_DATA_SKY_RIBBON) return SKY_RIBBON;
if (monDataIdx == MON_DATA_COUNTRY_RIBBON) return 28; if (monDataIdx == MON_DATA_COUNTRY_RIBBON) return COUNTRY_RIBBON;
if (monDataIdx == MON_DATA_NATIONAL_RIBBON) return 29; if (monDataIdx == MON_DATA_NATIONAL_RIBBON) return NATIONAL_RIBBON;
if (monDataIdx == MON_DATA_EARTH_RIBBON) return 30; if (monDataIdx == MON_DATA_EARTH_RIBBON) return EARTH_RIBBON;
if (monDataIdx == MON_DATA_WORLD_RIBBON) return 31; if (monDataIdx == MON_DATA_WORLD_RIBBON) return WORLD_RIBBON;
return 0; return CHAMPION_RIBBON;
} }
void TrySetUpTrainerFanClubSpecial(void) void TrySetUpTrainerFanClubSpecial(void)
@@ -6603,98 +6603,100 @@ static void DoTVShowSpotTheCuties(void)
show = &gSaveBlock1Ptr->tvShows[gSpecialVar_0x8004]; show = &gSaveBlock1Ptr->tvShows[gSpecialVar_0x8004];
gSpecialVar_Result = FALSE; gSpecialVar_Result = FALSE;
// For each state, in addition to the switch a message
// is printed from the table at the bottom
state = sTVShowState; state = sTVShowState;
switch (state) switch (state)
{ {
case 0: case SPOTCUTIES_STATE_INTRO:
TVShowConvertInternationalString(gStringVar1, show->cuties.playerName, show->cuties.language); TVShowConvertInternationalString(gStringVar1, show->cuties.playerName, show->cuties.language);
TVShowConvertInternationalString(gStringVar2, show->cuties.nickname, show->cuties.pokemonNameLanguage); TVShowConvertInternationalString(gStringVar2, show->cuties.nickname, show->cuties.pokemonNameLanguage);
// Comments following the intro depend on how many ribbons the pokemon has
if (show->cuties.nRibbons < 10) if (show->cuties.nRibbons < 10)
{ sTVShowState = SPOTCUTIES_STATE_RIBBONS_LOW;
sTVShowState = 1;
}
else if (show->cuties.nRibbons < 20) else if (show->cuties.nRibbons < 20)
{ sTVShowState = SPOTCUTIES_STATE_RIBBONS_MID;
sTVShowState = 2;
}
else else
{ sTVShowState = SPOTCUTIES_STATE_RIBBONS_HIGH;
sTVShowState = 3;
}
break; break;
case 1: case SPOTCUTIES_STATE_RIBBONS_LOW:
case 2: case SPOTCUTIES_STATE_RIBBONS_MID:
case 3: case SPOTCUTIES_STATE_RIBBONS_HIGH:
TVShowConvertInternationalString(gStringVar1, show->cuties.playerName, show->cuties.language); TVShowConvertInternationalString(gStringVar1, show->cuties.playerName, show->cuties.language);
TVShowConvertInternationalString(gStringVar2, show->cuties.nickname, show->cuties.pokemonNameLanguage); TVShowConvertInternationalString(gStringVar2, show->cuties.nickname, show->cuties.pokemonNameLanguage);
TV_PrintIntToStringVar(2, show->cuties.nRibbons); TV_PrintIntToStringVar(2, show->cuties.nRibbons);
sTVShowState = 4; sTVShowState = SPOTCUTIES_STATE_RIBBON_INTRO;
break; break;
case 4: case SPOTCUTIES_STATE_RIBBON_INTRO:
TVShowConvertInternationalString(gStringVar2, show->cuties.nickname, show->cuties.pokemonNameLanguage); TVShowConvertInternationalString(gStringVar2, show->cuties.nickname, show->cuties.pokemonNameLanguage);
switch (show->cuties.selectedRibbon) switch (show->cuties.selectedRibbon)
{ {
case 0: case CHAMPION_RIBBON:
sTVShowState = 5; sTVShowState = SPOTCUTIES_STATE_RIBBON_CHAMPION;
break; break;
case 1: case COOL_RIBBON_NORMAL:
case 2: case COOL_RIBBON_SUPER:
case 3: case COOL_RIBBON_HYPER:
case 4: case COOL_RIBBON_MASTER:
sTVShowState = 6; sTVShowState = SPOTCUTIES_STATE_RIBBON_COOL;
break; break;
case 5: case BEAUTY_RIBBON_NORMAL:
case 6: case BEAUTY_RIBBON_SUPER:
case 7: case BEAUTY_RIBBON_HYPER:
case 8: case BEAUTY_RIBBON_MASTER:
sTVShowState = 7; sTVShowState = SPOTCUTIES_STATE_RIBBON_BEAUTY;
break; break;
case 9: case CUTE_RIBBON_NORMAL:
case 10: case CUTE_RIBBON_SUPER:
case 11: case CUTE_RIBBON_HYPER:
case 12: case CUTE_RIBBON_MASTER:
sTVShowState = 8; sTVShowState = SPOTCUTIES_STATE_RIBBON_CUTE;
break; break;
case 13: case SMART_RIBBON_NORMAL:
case 14: case SMART_RIBBON_SUPER:
case 15: case SMART_RIBBON_HYPER:
case 16: case SMART_RIBBON_MASTER:
sTVShowState = 9; sTVShowState = SPOTCUTIES_STATE_RIBBON_SMART;
break; break;
case 17: case TOUGH_RIBBON_NORMAL:
case 18: case TOUGH_RIBBON_SUPER:
case 19: case TOUGH_RIBBON_HYPER:
case 20: case TOUGH_RIBBON_MASTER:
sTVShowState = 10; sTVShowState = SPOTCUTIES_STATE_RIBBON_TOUGH;
break; break;
case 21: case WINNING_RIBBON:
sTVShowState = 11; sTVShowState = SPOTCUTIES_STATE_RIBBON_WINNING;
break; break;
case 22: case VICTORY_RIBBON:
sTVShowState = 12; sTVShowState = SPOTCUTIES_STATE_RIBBON_VICTORY;
break; break;
case 23: case ARTIST_RIBBON:
sTVShowState = 13; sTVShowState = SPOTCUTIES_STATE_RIBBON_ARTIST;
break; break;
case 24: case EFFORT_RIBBON:
sTVShowState = 14; sTVShowState = SPOTCUTIES_STATE_RIBBON_EFFORT;
break; break;
// No comment is made for any of the gift ribbons.
// If the show is created for a gift ribbon
// then this state will repeat indefinitely
} }
break; break;
case 5: case SPOTCUTIES_STATE_RIBBON_CHAMPION:
case 6: case SPOTCUTIES_STATE_RIBBON_COOL:
case 7: case SPOTCUTIES_STATE_RIBBON_BEAUTY:
case 8: case SPOTCUTIES_STATE_RIBBON_CUTE:
case 9: case SPOTCUTIES_STATE_RIBBON_SMART:
case 10: case SPOTCUTIES_STATE_RIBBON_TOUGH:
case 11: case SPOTCUTIES_STATE_RIBBON_WINNING:
case 12: case SPOTCUTIES_STATE_RIBBON_VICTORY:
case 13: case SPOTCUTIES_STATE_RIBBON_ARTIST:
case 14: case SPOTCUTIES_STATE_RIBBON_EFFORT:
TVShowConvertInternationalString(gStringVar2, show->cuties.nickname, show->cuties.pokemonNameLanguage); TVShowConvertInternationalString(gStringVar2, show->cuties.nickname, show->cuties.pokemonNameLanguage);
sTVShowState = 15; sTVShowState = SPOTCUTIES_STATE_OUTRO;
break; break;
case 15: case SPOTCUTIES_STATE_OUTRO:
TVShowDone(); TVShowDone();
} }
ShowFieldMessage(sTVCutiesTextGroup[state]); ShowFieldMessage(sTVCutiesTextGroup[state]);