Merge pull request #1421 from GriffinRichards/doc-tvrecordmix
Document TV
This commit is contained in:
@@ -78,6 +78,21 @@
|
||||
|
||||
#define FRONTIER_MANIAC_MESSAGE_COUNT 3
|
||||
|
||||
// Frontier TV Show
|
||||
#define FRONTIER_SHOW_TOWER_SINGLES 1
|
||||
#define FRONTIER_SHOW_TOWER_DOUBLES 2
|
||||
#define FRONTIER_SHOW_TOWER_MULTIS 3
|
||||
#define FRONTIER_SHOW_TOWER_LINK_MULTIS 4
|
||||
#define FRONTIER_SHOW_DOME_SINGLES 5
|
||||
#define FRONTIER_SHOW_DOME_DOUBLES 6
|
||||
#define FRONTIER_SHOW_FACTORY_SINGLES 7
|
||||
#define FRONTIER_SHOW_FACTORY_DOUBLES 8
|
||||
#define FRONTIER_SHOW_PIKE 9
|
||||
#define FRONTIER_SHOW_ARENA 10
|
||||
#define FRONTIER_SHOW_PALACE_SINGLES 11
|
||||
#define FRONTIER_SHOW_PALACE_DOUBLES 12
|
||||
#define FRONTIER_SHOW_PYRAMID 13
|
||||
|
||||
// Frontier Gambler
|
||||
#define FRONTIER_GAMBLER_WAITING 0
|
||||
#define FRONTIER_GAMBLER_PLACED_BET 1
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
#define EASY_CHAT_TYPE_INTERVIEW 5
|
||||
#define EASY_CHAT_TYPE_BARD_SONG 6
|
||||
#define EASY_CHAT_TYPE_FAN_CLUB 7
|
||||
#define EASY_CHAT_TYPE_UNK_8 8
|
||||
#define EASY_CHAT_TYPE_DUMMY_SHOW 8
|
||||
#define EASY_CHAT_TYPE_TRENDY_PHRASE 9
|
||||
#define EASY_CHAT_TYPE_GABBY_AND_TY 10
|
||||
#define EASY_CHAT_TYPE_CONTEST_INTERVIEW 11
|
||||
|
||||
@@ -42,6 +42,8 @@
|
||||
#define METATILE_General_BlueCaveOpen 0x1B1
|
||||
|
||||
// gTileset_Building
|
||||
#define METATILE_Building_TV_Off 0x002
|
||||
#define METATILE_Building_TV_On 0x003
|
||||
#define METATILE_Building_PC_Off 0x004
|
||||
#define METATILE_Building_PC_On 0x005
|
||||
|
||||
|
||||
@@ -6,12 +6,22 @@
|
||||
#define POKENEWS_GAME_CORNER 2
|
||||
#define POKENEWS_LILYCOVE 3
|
||||
#define POKENEWS_BLENDMASTER 4
|
||||
#define NUM_POKENEWS_TYPES 4 // Excludes NONE
|
||||
|
||||
// TV shows are categorized as being in one of 3 groups
|
||||
// - TVGROUP_NORMAL, TV shows that can appear without Record Mixing
|
||||
// - TVGROUP_RECORD_MIX, TV shows that can only appear via Record Mixing
|
||||
// - TVGROUP_OUTBREAK, just contains TVSHOW_MASS_OUTBREAK
|
||||
// Each group was allotted 20 spaces arbitrarily, though none use all 20
|
||||
|
||||
#define TVSHOW_OFF_AIR 0
|
||||
|
||||
// TVGROUP_NORMAL
|
||||
#define TVGROUP_NORMAL_START 1
|
||||
#define TVSHOW_FAN_CLUB_LETTER 1
|
||||
#define TVSHOW_RECENT_HAPPENINGS 2
|
||||
#define TVSHOW_PKMN_FAN_CLUB_OPINIONS 3
|
||||
#define TVSHOW_UNKN_SHOWTYPE_04 4
|
||||
#define TVSHOW_DUMMY 4
|
||||
#define TVSHOW_NAME_RATER_SHOW 5
|
||||
#define TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE 6
|
||||
#define TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE 7
|
||||
@@ -20,7 +30,11 @@
|
||||
#define TVSHOW_BATTLE_UPDATE 10
|
||||
#define TVSHOW_FAN_CLUB_SPECIAL 11
|
||||
#define TVSHOW_LILYCOVE_CONTEST_LADY 12
|
||||
// //
|
||||
//
|
||||
#define TVGROUP_NORMAL_END 20
|
||||
|
||||
// TVGROUP_RECORD_MIX
|
||||
#define TVGROUP_RECORD_MIX_START 21
|
||||
#define TVSHOW_POKEMON_TODAY_CAUGHT 21
|
||||
#define TVSHOW_SMART_SHOPPER 22
|
||||
#define TVSHOW_POKEMON_TODAY_FAILED 23
|
||||
@@ -40,8 +54,22 @@
|
||||
#define TVSHOW_NUMBER_ONE 37
|
||||
#define TVSHOW_SECRET_BASE_SECRETS 38
|
||||
#define TVSHOW_SAFARI_FAN_CLUB 39
|
||||
// //
|
||||
#define TVSHOW_MASS_OUTBREAK 41
|
||||
#define TVGROUP_RECORD_MIX_END 40
|
||||
|
||||
// TVGROUP_OUTBREAK
|
||||
#define TVGROUP_OUTBREAK_START 41
|
||||
#define TVSHOW_MASS_OUTBREAK 41
|
||||
//
|
||||
#define TVGROUP_OUTBREAK_END 60
|
||||
|
||||
// The first 5 elements of gSaveBlock1Ptr->tvShows are reserved
|
||||
// for TV shows from TVGROUP_NORMAL. The remainder are for TV
|
||||
// shows from TVGROUP_RECORD_MIX.
|
||||
#define NUM_NORMAL_TVSHOW_SLOTS 5
|
||||
|
||||
#define PLAYERS_HOUSE_TV_NONE 0
|
||||
#define PLAYERS_HOUSE_TV_LATI 1
|
||||
#define PLAYERS_HOUSE_TV_MOVIE 2
|
||||
|
||||
// Number of ribbons to put Spot the Cuties on air
|
||||
#define NUM_CUTIES_RIBBONS 4
|
||||
@@ -221,4 +249,6 @@
|
||||
#define CONTESTLADYLIVE_STATE_LOST 2
|
||||
#define CONTESTLADYLIVE_STATE_LOST_BADLY 3
|
||||
|
||||
#define SMARTSHOPPER_NUM_ITEMS 3
|
||||
|
||||
#endif //GUARD_CONSTANTS_TV_H
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
u8 *GetMonNickname2(struct Pokemon *mon, u8 *dest);
|
||||
u8 *GetBoxMonNickname(struct BoxPokemon *mon, u8 *dest);
|
||||
u8 CountPokemonInDaycare(struct DayCare *daycare);
|
||||
void InitDaycareMailRecordMixing(struct DayCare *daycare, struct RecordMixingDayCareMail *daycareMail);
|
||||
void InitDaycareMailRecordMixing(struct DayCare *daycare, struct RecordMixingDaycareMail *daycareMail);
|
||||
void StoreSelectedPokemonInDaycare(void);
|
||||
u16 TakePokemonFromDaycare(void);
|
||||
void GetDaycareCost(void);
|
||||
|
||||
@@ -727,7 +727,7 @@ struct ContestWinner
|
||||
u8 contestRank;
|
||||
};
|
||||
|
||||
struct DayCareMail
|
||||
struct DaycareMail
|
||||
{
|
||||
struct MailStruct message;
|
||||
u8 OT_name[PLAYER_NAME_LENGTH + 1];
|
||||
@@ -739,7 +739,7 @@ struct DayCareMail
|
||||
struct DaycareMon
|
||||
{
|
||||
struct BoxPokemon mon;
|
||||
struct DayCareMail mail;
|
||||
struct DaycareMail mail;
|
||||
u32 steps;
|
||||
};
|
||||
|
||||
@@ -750,9 +750,9 @@ struct DayCare
|
||||
u8 stepCounter;
|
||||
};
|
||||
|
||||
struct RecordMixingDayCareMail
|
||||
struct RecordMixingDaycareMail
|
||||
{
|
||||
struct DayCareMail mail[DAYCARE_MON_COUNT];
|
||||
struct DaycareMail mail[DAYCARE_MON_COUNT];
|
||||
u32 numDaycareMons;
|
||||
bool16 holdsItem[DAYCARE_MON_COUNT];
|
||||
};
|
||||
|
||||
@@ -1,13 +1,15 @@
|
||||
#ifndef GUARD_GLOBAL_TV_H
|
||||
#define GUARD_GLOBAL_TV_H
|
||||
|
||||
#include "constants/tv.h"
|
||||
|
||||
typedef union // size = 0x24
|
||||
{
|
||||
// Common
|
||||
struct {
|
||||
/*0x00*/ u8 kind;
|
||||
/*0x01*/ bool8 active;
|
||||
/*0x02*/ u8 pad02[26];
|
||||
/*0x02*/ u8 data[26];
|
||||
/*0x1C*/ u8 srcTrainerId3Lo;
|
||||
/*0x1D*/ u8 srcTrainerId3Hi;
|
||||
/*0x1E*/ u8 srcTrainerId2Lo;
|
||||
@@ -22,7 +24,7 @@ typedef union // size = 0x24
|
||||
struct {
|
||||
/*0x00*/ u8 kind;
|
||||
/*0x01*/ bool8 active;
|
||||
/*0x02*/ u8 pad02[34];
|
||||
/*0x02*/ u8 data[34];
|
||||
} commonInit;
|
||||
|
||||
// Local shows
|
||||
@@ -40,7 +42,7 @@ typedef union // size = 0x24
|
||||
struct {
|
||||
/*0x00*/ u8 kind;
|
||||
/*0x01*/ bool8 active;
|
||||
/*0x02*/ u16 var02;
|
||||
/*0x02*/ u16 species;
|
||||
/*0x04*/ u16 words[6];
|
||||
/*0x10*/ u8 playerName[PLAYER_NAME_LENGTH + 1];
|
||||
/*0x18*/ u8 language;
|
||||
@@ -62,16 +64,16 @@ typedef union // size = 0x24
|
||||
/*0x1C*/ u16 words[4];
|
||||
} fanclubOpinions;
|
||||
|
||||
// TVSHOW_UNKN_SHOWTYPE_04 (dummied out)
|
||||
// TVSHOW_DUMMY
|
||||
struct {
|
||||
/*0x00*/ u8 kind;
|
||||
/*0x01*/ bool8 active;
|
||||
/*0x02*/ u16 words[2];
|
||||
/*0x06*/ u16 var06;
|
||||
/*0x06*/ u16 species;
|
||||
/*0x08*/ u8 pad_08[3];
|
||||
/*0x0b*/ u8 string_0b[12];
|
||||
/*0x0b*/ u8 name[12];
|
||||
/*0x17*/ u8 language;
|
||||
} unkShow04;
|
||||
} dummy;
|
||||
|
||||
// TVSHOW_NAME_RATER_SHOW
|
||||
struct {
|
||||
@@ -212,8 +214,8 @@ typedef union // size = 0x24
|
||||
/*0x02*/ u8 priceReduced;
|
||||
/*0x03*/ u8 language;
|
||||
/*0x04*/ u8 pad04[2];
|
||||
/*0x06*/ u16 itemIds[3];
|
||||
/*0x0C*/ u16 itemAmounts[3];
|
||||
/*0x06*/ u16 itemIds[SMARTSHOPPER_NUM_ITEMS];
|
||||
/*0x0C*/ u16 itemAmounts[SMARTSHOPPER_NUM_ITEMS];
|
||||
/*0x12*/ u8 shopLocation;
|
||||
/*0x13*/ u8 playerName[PLAYER_NAME_LENGTH + 1];
|
||||
} smartshopperShow;
|
||||
@@ -401,7 +403,7 @@ typedef union // size = 0x24
|
||||
/*0x08*/ u16 species3;
|
||||
/*0x0a*/ u16 species4;
|
||||
/*0x0c*/ u8 language;
|
||||
/*0x0d*/ u8 facility;
|
||||
/*0x0d*/ u8 facilityAndMode;
|
||||
/*0x0e*/ u8 filler_0e[5];
|
||||
/*0x13*/ u8 playerName[PLAYER_NAME_LENGTH + 1];
|
||||
} frontier;
|
||||
|
||||
@@ -7,7 +7,7 @@ void SetMauvilleOldMan(void);
|
||||
u8 GetCurrentMauvilleOldMan(void);
|
||||
void ScrSpecial_SetMauvilleOldManObjEventGfx(void);
|
||||
u8 sub_81201C8(void);
|
||||
void sub_8120B70(OldMan *dest);
|
||||
void SanitizeMauvilleOldManForRuby(OldMan *dest);
|
||||
void sub_8120670(void);
|
||||
void SanitizeReceivedRubyOldMan(union OldMan * oldMan, u32 r1, u32 r6);
|
||||
void SanitizeReceivedEmeraldOldMan(union OldMan * oldMan, u32 unused, u32 a2);
|
||||
|
||||
30
include/tv.h
30
include/tv.h
@@ -1,13 +1,10 @@
|
||||
#ifndef GUARD_TV_H
|
||||
#define GUARD_TV_H
|
||||
|
||||
#define SLOT_MACHINE 0
|
||||
#define ROULETTE 1
|
||||
|
||||
extern u8 *const gTVStringVarPtrs[3];
|
||||
|
||||
void ClearTVShowData(void);
|
||||
void sub_80EE184(void);
|
||||
void TryPutBreakingNewsOnAir(void);
|
||||
void TryPutBattleSeminarOnAir(u16 foeSpecies, u16 species, u8 moveIdx, const u16 *movePtr, u16 betterMove);
|
||||
void TryPutFrontierTVShowOnAir(u16 winStreak, u8 facility);
|
||||
void DoTVShow(void);
|
||||
@@ -23,41 +20,37 @@ void ReceiveTvShowsData(void *src, u32 size, u8 masterIdx);
|
||||
void TryPutSpotTheCutiesOnAir(struct Pokemon *pokemon, u8 ribbonMonDataIdx);
|
||||
u32 GetPlayerIDAsU32(void);
|
||||
bool8 GetPriceReduction(u8 newsKind);
|
||||
void sub_80F14F8(TVShow *shows);
|
||||
void SanitizeTVShowLocationsForRuby(TVShow *shows);
|
||||
size_t CountDigits(int value);
|
||||
u8 GetRibbonCount(struct Pokemon *pokemon);
|
||||
void AlertTVThatPlayerPlayedSlotMachine(u16 nCoinsSpent);
|
||||
void AlertTVThatPlayerPlayedRoulette(u16 nCoinsSpent);
|
||||
void AlertTVOfNewCoinTotal(u16 nCoinsPaidOut);
|
||||
void TryPutFindThatGamerOnAir(u16 nCoinsPaidOut);
|
||||
void TryPutSecretBaseSecretsOnAir(void);
|
||||
void TryPutTodaysRivalTrainerOnAir(void);
|
||||
void TryPutTrendWatcherOnAir(const u16 *words);
|
||||
void sub_80EDA80(void);
|
||||
void ReceivePokeNewsData(void *src, u32 size, u8 masterIdx);
|
||||
void sub_80F0BB8(void);
|
||||
void DeactivateAllNormalTVShows(void);
|
||||
void RecordFishingAttemptForTV(bool8 caughtFish);
|
||||
void IncrementDailySlotsUses(void);
|
||||
void IncrementDailyRouletteUses(void);
|
||||
void IncrementDailyWildBattles(void);
|
||||
void IncrementDailyBerryBlender(void);
|
||||
void sub_80F1208(TVShow *shows);
|
||||
void sub_80EE44C(u8 nMonsCaught, u8 nPkblkUsed);
|
||||
void sub_80F14F8(TVShow *shows);
|
||||
size_t sub_80EF370(int value);
|
||||
void SanitizeTVShowsForRuby(TVShow *shows);
|
||||
void TryPutSafariFanClubOnAir(u8 nMonsCaught, u8 nPkblkUsed);
|
||||
bool8 Put3CheersForPokeblocksOnTheAir(const u8 *partnersName, u8 flavor, u8 unused, u8 sheen, u8 language);
|
||||
void SetPokemonAnglerSpecies(u16 species);
|
||||
void UpdateTVShowsPerDay(u16 days);
|
||||
void PutPokemonTodayCaughtOnAir(void);
|
||||
void TV_PutSecretBaseVisitOnTheAir(void);
|
||||
void TryPutPokemonTodayOnAir(void);
|
||||
void TryPutSecretBaseVisitOnAir(void);
|
||||
void PutBattleUpdateOnTheAir(u8 opponentLinkPlayerId, u16 move, u16 speciesPlayer, u16 speciesOpponent);
|
||||
void BravoTrainerPokemonProfile_BeforeInterview1(u16 move);
|
||||
void InterviewBefore(void);
|
||||
void InterviewAfter(void);
|
||||
void UpdateTVScreensOnMap(int, int);
|
||||
void TV_PrintIntToStringVar(u8 varIdx, int value);
|
||||
void SaveRecordedItemPurchasesForTVShow(void);
|
||||
void ConvertIntToDecimalString(u8 varIdx, int value);
|
||||
void TryPutSmartShopperOnAir(void);
|
||||
bool8 ShouldAirFrontierTVShow(void);
|
||||
void sub_80EE8C8(u16 winStreak, u8 facilityAndMode);
|
||||
void BravoTrainerPokemonProfile_BeforeInterview2(u8 contestStandingPlace);
|
||||
void ContestLiveUpdates_Init(u8 round1Placing);
|
||||
void ContestLiveUpdates_SetRound2Placing(u8 round2Placing);
|
||||
@@ -65,5 +58,8 @@ void ContestLiveUpdates_SetWinnerAppealFlag(u8 flag);
|
||||
void ContestLiveUpdates_SetWinnerMoveUsed(u16 move);
|
||||
void ContestLiveUpdates_SetLoserData(u8 flag, u8 loser);
|
||||
void ResetGabbyAndTy(void);
|
||||
u8 CheckForPlayersHouseNews(void);
|
||||
bool8 IsGabbyAndTyShowOnTheAir(void);
|
||||
void TryPutTrainerFanClubOnAir(void);
|
||||
|
||||
#endif //GUARD_TV_H
|
||||
|
||||
Reference in New Issue
Block a user