Merge pull request #1421 from GriffinRichards/doc-tvrecordmix

Document TV
This commit is contained in:
GriffinR
2021-04-29 00:25:01 -04:00
committed by GitHub
35 changed files with 3028 additions and 3417 deletions

View File

@@ -5039,7 +5039,7 @@ static void HandleEndTurn_FinishBattle(void)
}
}
}
PutPokemonTodayCaughtOnAir();
TryPutPokemonTodayOnAir();
}
if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK
@@ -5052,7 +5052,7 @@ static void HandleEndTurn_FinishBattle(void)
| BATTLE_TYPE_WALLY_TUTORIAL))
&& gBattleResults.shinyWildMon)
{
sub_80EE184();
TryPutBreakingNewsOnAir();
}
sub_8186444();

View File

@@ -36,7 +36,6 @@
#include "constants/event_objects.h"
#include "constants/moves.h"
#include "constants/easy_chat.h"
#include "constants/tv.h"
extern const u8 MossdeepCity_SpaceCenter_2F_EventScript_MaxieTrainer[];
extern const u8 MossdeepCity_SpaceCenter_2F_EventScript_TabithaTrainer[];

View File

@@ -42,7 +42,6 @@
#include "constants/moves.h"
#include "constants/rgb.h"
#include "constants/songs.h"
#include "constants/tv.h"
// This file's functions.
static void LoadContestPalettes(void);

View File

@@ -44,7 +44,6 @@
#include "constants/game_stat.h"
#include "constants/rgb.h"
#include "constants/songs.h"
#include "constants/tv.h"
#include "contest.h"
enum {

View File

@@ -24,7 +24,7 @@
#include "constants/region_map_sections.h"
// this file's functions
static void ClearDaycareMonMail(struct DayCareMail *mail);
static void ClearDaycareMonMail(struct DaycareMail *mail);
static void SetInitialEggData(struct Pokemon *mon, u16 species, struct DayCare *daycare);
static u8 GetDaycareCompatibilityScore(struct DayCare *daycare);
static void DaycarePrintMonInfo(u8 windowId, s32 daycareSlotId, u8 y);
@@ -120,7 +120,7 @@ u8 CountPokemonInDaycare(struct DayCare *daycare)
return count;
}
void InitDaycareMailRecordMixing(struct DayCare *daycare, struct RecordMixingDayCareMail *daycareMail)
void InitDaycareMailRecordMixing(struct DayCare *daycare, struct RecordMixingDaycareMail *daycareMail)
{
u8 i;
u8 numDaycareMons = 0;
@@ -131,13 +131,9 @@ void InitDaycareMailRecordMixing(struct DayCare *daycare, struct RecordMixingDay
{
numDaycareMons++;
if (GetBoxMonData(&daycare->mons[i].mon, MON_DATA_HELD_ITEM) == ITEM_NONE)
{
daycareMail->holdsItem[i] = FALSE;
}
else
{
daycareMail->holdsItem[i] = TRUE;
}
}
else
{
@@ -154,7 +150,7 @@ static s8 Daycare_FindEmptySpot(struct DayCare *daycare)
for (i = 0; i < DAYCARE_MON_COUNT; i++)
{
if (GetBoxMonData(&daycare->mons[i].mon, MON_DATA_SPECIES) == 0)
if (GetBoxMonData(&daycare->mons[i].mon, MON_DATA_SPECIES) == SPECIES_NONE)
return i;
}
@@ -349,7 +345,7 @@ u8 GetNumLevelsGainedFromDaycare(void)
return 0;
}
static void ClearDaycareMonMail(struct DayCareMail *mail)
static void ClearDaycareMonMail(struct DaycareMail *mail)
{
s32 i;

View File

@@ -1652,7 +1652,7 @@ static void PlaceDecoration(u8 taskId)
gSprites[sDecor_CameraSpriteObjectIdx1].pos1.y += 2;
if (gMapHeader.regionMapSectionId == MAPSEC_SECRET_BASE)
TV_PutSecretBaseVisitOnTheAir();
TryPutSecretBaseVisitOnAir();
CancelDecorating_(taskId);
}
@@ -2260,7 +2260,7 @@ static void Task_PutAwayDecoration(u8 taskId)
StringExpandPlaceholders(gStringVar4, gText_DecorationReturnedToPC);
DisplayItemMessageOnField(taskId, gStringVar4, ContinuePuttingAwayDecorationsPrompt);
if (gMapHeader.regionMapSectionId == MAPSEC_SECRET_BASE)
TV_PutSecretBaseVisitOnTheAir();
TryPutSecretBaseVisitOnAir();
}
break;
}

View File

@@ -1474,8 +1474,8 @@ void ShowEasyChatScreen(void)
words = &gSaveBlock1Ptr->tvShows[gSpecialVar_0x8005].fanclubOpinions.words[gSpecialVar_0x8006];
displayedPersonType = EASY_CHAT_PERSON_REPORTER_FEMALE;
break;
case EASY_CHAT_TYPE_UNK_8:
words = gSaveBlock1Ptr->tvShows[gSpecialVar_0x8005].unkShow04.words;
case EASY_CHAT_TYPE_DUMMY_SHOW:
words = gSaveBlock1Ptr->tvShows[gSpecialVar_0x8005].dummy.words;
displayedPersonType = EASY_CHAT_PERSON_REPORTER_MALE;
break;
case EASY_CHAT_TYPE_TRENDY_PHRASE:

View File

@@ -57,7 +57,6 @@
#include "constants/map_types.h"
#include "constants/maps.h"
#include "constants/mevent.h"
#include "constants/tv.h"
#include "constants/script_menu.h"
#include "constants/slot_machine.h"
#include "constants/songs.h"
@@ -1622,7 +1621,7 @@ void BufferLottoTicketNumber(void)
{
if (gSpecialVar_Result >= 10000)
{
TV_PrintIntToStringVar(0, gSpecialVar_Result);
ConvertIntToDecimalString(0, gSpecialVar_Result);
}
else if (gSpecialVar_Result >= 1000)
{

View File

@@ -22,7 +22,6 @@
#include "constants/metatile_behaviors.h"
#include "constants/metatile_labels.h"
#include "constants/songs.h"
#include "constants/tv.h"
EWRAM_DATA struct MapPosition gPlayerFacingPosition = {0};

View File

@@ -1552,16 +1552,16 @@ static void CheckPutFrontierTVShowOnAir(void)
switch (battleMode)
{
case FRONTIER_MODE_SINGLES:
TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode], 1);
TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode], FRONTIER_SHOW_TOWER_SINGLES);
break;
case FRONTIER_MODE_DOUBLES:
TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode], 2);
TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode], FRONTIER_SHOW_TOWER_DOUBLES);
break;
case FRONTIER_MODE_MULTIS:
TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode], 3);
TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode], FRONTIER_SHOW_TOWER_MULTIS);
break;
case FRONTIER_MODE_LINK_MULTIS:
TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode], 4);
TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode], FRONTIER_SHOW_TOWER_LINK_MULTIS);
break;
}
}
@@ -1575,9 +1575,9 @@ static void CheckPutFrontierTVShowOnAir(void)
&& ShouldAirFrontierTVShow())
{
if (battleMode == FRONTIER_MODE_SINGLES)
TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.domeWinStreaks[battleMode][lvlMode], 5);
TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.domeWinStreaks[battleMode][lvlMode], FRONTIER_SHOW_DOME_SINGLES);
else
TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.domeWinStreaks[battleMode][lvlMode], 6);
TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.domeWinStreaks[battleMode][lvlMode], FRONTIER_SHOW_DOME_DOUBLES);
}
}
break;
@@ -1589,9 +1589,9 @@ static void CheckPutFrontierTVShowOnAir(void)
&& ShouldAirFrontierTVShow())
{
if (battleMode == FRONTIER_MODE_SINGLES)
TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.palaceWinStreaks[battleMode][lvlMode], 11);
TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.palaceWinStreaks[battleMode][lvlMode], FRONTIER_SHOW_PALACE_SINGLES);
else
TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.palaceWinStreaks[battleMode][lvlMode], 12);
TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.palaceWinStreaks[battleMode][lvlMode], FRONTIER_SHOW_PALACE_DOUBLES);
}
}
break;
@@ -1602,7 +1602,7 @@ static void CheckPutFrontierTVShowOnAir(void)
if (gSaveBlock2Ptr->frontier.arenaWinStreaks[lvlMode] > 1
&& ShouldAirFrontierTVShow())
{
TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.arenaWinStreaks[lvlMode], 10);
TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.arenaWinStreaks[lvlMode], FRONTIER_SHOW_ARENA);
}
}
break;
@@ -1615,9 +1615,9 @@ static void CheckPutFrontierTVShowOnAir(void)
&& ShouldAirFrontierTVShow())
{
if (battleMode == FRONTIER_MODE_SINGLES)
TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.factoryWinStreaks[battleMode][lvlMode], 7);
TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.factoryWinStreaks[battleMode][lvlMode], FRONTIER_SHOW_FACTORY_SINGLES);
else
TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.factoryWinStreaks[battleMode][lvlMode], 8);
TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.factoryWinStreaks[battleMode][lvlMode], FRONTIER_SHOW_FACTORY_DOUBLES);
}
}
break;
@@ -1628,7 +1628,7 @@ static void CheckPutFrontierTVShowOnAir(void)
if (gSaveBlock2Ptr->frontier.pikeWinStreaks[lvlMode] > 1
&& ShouldAirFrontierTVShow())
{
TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.pikeWinStreaks[lvlMode], 9);
TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.pikeWinStreaks[lvlMode], FRONTIER_SHOW_PIKE);
}
}
break;
@@ -1639,7 +1639,7 @@ static void CheckPutFrontierTVShowOnAir(void)
if (gSaveBlock2Ptr->frontier.pyramidWinStreaks[lvlMode] > 1
&& ShouldAirFrontierTVShow())
{
TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.pyramidWinStreaks[lvlMode], 13);
TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.pyramidWinStreaks[lvlMode], FRONTIER_SHOW_PYRAMID);
}
}
break;

View File

@@ -14,7 +14,6 @@
#include "battle_pyramid_bag.h"
#include "constants/items.h"
#include "constants/hold_effects.h"
#include "constants/tv.h"
extern u16 gUnknown_0203CF30[];

View File

@@ -680,45 +680,43 @@ void ScrSpecial_SetMauvilleOldManObjEventGfx(void)
// Language fixers?
void sub_8120B70(union OldMan * oldMan)
void SanitizeMauvilleOldManForRuby(union OldMan * oldMan)
{
s32 i;
u8 playerName[PLAYER_NAME_LENGTH + 1];
switch (oldMan->common.id)
{
case MAUVILLE_MAN_TRADER:
case MAUVILLE_MAN_TRADER:
{
struct MauvilleOldManTrader * trader = &oldMan->trader;
for (i = 0; i < NUM_TRADER_ITEMS; i++)
{
struct MauvilleOldManTrader * trader = &oldMan->trader;
for (i = 0; i < NUM_TRADER_ITEMS; i++)
if (trader->language[i] == LANGUAGE_JAPANESE)
ConvertInternationalString(trader->playerNames[i], LANGUAGE_JAPANESE);
}
break;
}
case MAUVILLE_MAN_STORYTELLER:
{
struct MauvilleManStoryteller * storyteller = &oldMan->storyteller;
for (i = 0; i < NUM_STORYTELLER_TALES; i++)
{
if (storyteller->gameStatIDs[i] != 0)
{
if (trader->language[i] == LANGUAGE_JAPANESE)
memcpy(playerName, storyteller->trainerNames[i], PLAYER_NAME_LENGTH);
playerName[PLAYER_NAME_LENGTH] = EOS;
if (IsStringJapanese(playerName))
{
ConvertInternationalString(trader->playerNames[i], LANGUAGE_JAPANESE);
memset(playerName, CHAR_SPACE, PLAYER_NAME_LENGTH + 1);
StringCopy(playerName, gText_Friend);
memcpy(storyteller->trainerNames[i], playerName, PLAYER_NAME_LENGTH);
storyteller->language[i] = GAME_LANGUAGE;
}
}
}
break;
case MAUVILLE_MAN_STORYTELLER:
{
struct MauvilleManStoryteller * storyteller = &oldMan->storyteller;
for (i = 0; i < NUM_STORYTELLER_TALES; i++)
{
if (storyteller->gameStatIDs[i] != 0)
{
memcpy(playerName, storyteller->trainerNames[i], PLAYER_NAME_LENGTH);
playerName[PLAYER_NAME_LENGTH] = EOS;
if (IsStringJapanese(playerName))
{
memset(playerName, CHAR_SPACE, PLAYER_NAME_LENGTH + 1);
StringCopy(playerName, gText_Friend);
memcpy(storyteller->trainerNames[i], playerName, PLAYER_NAME_LENGTH);
storyteller->language[i] = GAME_LANGUAGE;
}
}
}
}
break;
break;
}
}
}

View File

@@ -509,12 +509,14 @@ void RemoveStartMenuWindow(void)
}
}
u16 sub_8197A30(void)
// Unused
static u16 GetDialogFrameBaseTileNum(void)
{
return DLG_WINDOW_BASE_TILE_NUM;
}
u16 sub_8197A38(void)
// Unused
static u16 GetStandardFrameBaseTileNum(void)
{
return STD_WINDOW_BASE_TILE_NUM;
}

View File

@@ -8,7 +8,6 @@
#include "script_pokemon_util.h"
#include "tv.h"
#include "constants/heal_locations.h"
#include "constants/tv.h"
int GameClear(void)
{

View File

@@ -51,7 +51,7 @@ struct PlayerRecordsRS
PokeNews pokeNews[POKE_NEWS_COUNT];
OldMan oldMan;
struct DewfordTrend dewfordTrends[SAVED_TRENDS_COUNT];
struct RecordMixingDayCareMail dayCareMail;
struct RecordMixingDaycareMail daycareMail;
struct RSBattleTowerRecord battleTowerRecord;
u16 giftItem;
u16 filler11C8[0x32];
@@ -64,7 +64,7 @@ struct PlayerRecordsEmerald
/* 0x1004 */ PokeNews pokeNews[POKE_NEWS_COUNT];
/* 0x1044 */ OldMan oldMan;
/* 0x1084 */ struct DewfordTrend dewfordTrends[SAVED_TRENDS_COUNT];
/* 0x10ac */ struct RecordMixingDayCareMail dayCareMail;
/* 0x10ac */ struct RecordMixingDaycareMail daycareMail;
/* 0x1124 */ struct EmeraldBattleTowerRecord battleTowerRecord;
/* 0x1210 */ u16 giftItem;
/* 0x1214 */ LilycoveLady lilycoveLady;
@@ -87,7 +87,7 @@ static TVShow *sTvShowsSave;
static PokeNews *sPokeNewsSave;
static OldMan *sOldManSave;
static struct DewfordTrend *sDewfordTrendsSave;
static struct RecordMixingDayCareMail *gUnknown_03001148;
static struct RecordMixingDaycareMail *sDaycareMailSave;
static void *sBattleTowerSave;
static LilycoveLady *sLilycoveLadySave;
static void *sApprenticesSave;
@@ -96,7 +96,7 @@ static u32 sRecordStructSize;
static u8 gUnknown_03001160;
static struct PlayerHallRecords *gUnknown_03001168[3];
static EWRAM_DATA struct RecordMixingDayCareMail gUnknown_02039F9C = {0};
static EWRAM_DATA struct RecordMixingDaycareMail sDaycareMail = {0};
static EWRAM_DATA union PlayerRecords *sReceivedRecords = NULL;
static EWRAM_DATA union PlayerRecords *sSentRecord = NULL;
@@ -115,14 +115,14 @@ static void ReceiveOldManData(OldMan *, size_t, u8);
static void ReceiveBattleTowerData(void *battleTowerRecord, size_t, u8);
static void ReceiveLilycoveLadyData(LilycoveLady *, size_t, u8);
static void sub_80E7B2C(const u8 *);
static void ReceiveDaycareMailData(struct RecordMixingDayCareMail *, size_t, u8, TVShow *);
static void ReceiveDaycareMailData(struct RecordMixingDaycareMail *, size_t, u8, TVShow *);
static void ReceiveGiftItem(u16 *item, u8 which);
static void Task_DoRecordMixing(u8 taskId);
static void GetSavedApprentices(struct Apprentice *dst, struct Apprentice *src);
static void ReceiveApprenticeData(struct Apprentice *mixApprentice, size_t recordSize, u32 multiplayerId);
static void ReceiveRankingHallRecords(struct PlayerHallRecords *hallRecords, size_t arg1, u32 arg2);
static void sub_80E89F8(struct RecordMixingDayCareMail *dst);
static void SanitizeDayCareMailForRuby(struct RecordMixingDayCareMail *src);
static void GetRecordMixingDaycareMail(struct RecordMixingDaycareMail *dst);
static void SanitizeDaycareMailForRuby(struct RecordMixingDaycareMail *src);
static void SanitizeEmeraldBattleTowerRecord(struct EmeraldBattleTowerRecord *arg0);
static void SanitizeRubyBattleTowerRecord(struct RSBattleTowerRecord *src);
@@ -180,7 +180,7 @@ static void SetSrcLookupPointers(void)
sPokeNewsSave = gSaveBlock1Ptr->pokeNews;
sOldManSave = &gSaveBlock1Ptr->oldMan;
sDewfordTrendsSave = gSaveBlock1Ptr->dewfordTrends;
gUnknown_03001148 = &gUnknown_02039F9C;
sDaycareMailSave = &sDaycareMail;
sBattleTowerSave = &gSaveBlock2Ptr->frontier.towerPlayer;
sLilycoveLadySave = &gSaveBlock1Ptr->lilycoveLady;
sApprenticesSave = gSaveBlock2Ptr->apprentices;
@@ -191,11 +191,11 @@ static void PrepareUnknownExchangePacket(struct PlayerRecordsRS *dest)
{
memcpy(dest->secretBases, sSecretBasesSave, sizeof(dest->secretBases));
memcpy(dest->tvShows, sTvShowsSave, sizeof(dest->tvShows));
sub_80F14F8(dest->tvShows);
SanitizeTVShowLocationsForRuby(dest->tvShows);
memcpy(dest->pokeNews, sPokeNewsSave, sizeof(dest->pokeNews));
memcpy(&dest->oldMan, sOldManSave, sizeof(dest->oldMan));
memcpy(dest->dewfordTrends, sDewfordTrendsSave, sizeof(dest->dewfordTrends));
sub_80E89F8(&dest->dayCareMail);
GetRecordMixingDaycareMail(&dest->daycareMail);
EmeraldBattleTowerRecordToRuby(sBattleTowerSave, &dest->battleTowerRecord);
if (GetMultiplayerId() == 0)
@@ -207,13 +207,13 @@ static void PrepareExchangePacketForRubySapphire(struct PlayerRecordsRS *dest)
memcpy(dest->secretBases, sSecretBasesSave, sizeof(dest->secretBases));
ClearJapaneseSecretBases(dest->secretBases);
memcpy(dest->tvShows, sTvShowsSave, sizeof(dest->tvShows));
sub_80F1208(dest->tvShows);
SanitizeTVShowsForRuby(dest->tvShows);
memcpy(dest->pokeNews, sPokeNewsSave, sizeof(dest->pokeNews));
memcpy(&dest->oldMan, sOldManSave, sizeof(dest->oldMan));
sub_8120B70(&dest->oldMan);
SanitizeMauvilleOldManForRuby(&dest->oldMan);
memcpy(dest->dewfordTrends, sDewfordTrendsSave, sizeof(dest->dewfordTrends));
sub_80E89F8(&dest->dayCareMail);
SanitizeDayCareMailForRuby(&dest->dayCareMail);
GetRecordMixingDaycareMail(&dest->daycareMail);
SanitizeDaycareMailForRuby(&dest->daycareMail);
EmeraldBattleTowerRecordToRuby(sBattleTowerSave, &dest->battleTowerRecord);
SanitizeRubyBattleTowerRecord(&dest->battleTowerRecord);
@@ -224,7 +224,7 @@ static void PrepareExchangePacketForRubySapphire(struct PlayerRecordsRS *dest)
static void PrepareExchangePacket(void)
{
SetPlayerSecretBaseParty();
sub_80F0BB8();
DeactivateAllNormalTVShows();
SetSrcLookupPointers();
if (Link_AnyPartnersPlayingRubyOrSapphire())
@@ -242,7 +242,7 @@ static void PrepareExchangePacket(void)
memcpy(&sSentRecord->emerald.oldMan, sOldManSave, sizeof(sSentRecord->emerald.oldMan));
memcpy(&sSentRecord->emerald.lilycoveLady, sLilycoveLadySave, sizeof(sSentRecord->emerald.lilycoveLady));
memcpy(sSentRecord->emerald.dewfordTrends, sDewfordTrendsSave, sizeof(sSentRecord->emerald.dewfordTrends));
sub_80E89F8(&sSentRecord->emerald.dayCareMail);
GetRecordMixingDaycareMail(&sSentRecord->emerald.daycareMail);
memcpy(&sSentRecord->emerald.battleTowerRecord, sBattleTowerSave, sizeof(sSentRecord->emerald.battleTowerRecord));
SanitizeEmeraldBattleTowerRecord(&sSentRecord->emerald.battleTowerRecord);
@@ -261,7 +261,7 @@ static void ReceiveExchangePacket(u32 which)
// Ruby/Sapphire
sub_80E7B2C((void *)sReceivedRecords->ruby.tvShows);
ReceiveSecretBasesData(sReceivedRecords->ruby.secretBases, sizeof(struct PlayerRecordsRS), which);
ReceiveDaycareMailData(&sReceivedRecords->ruby.dayCareMail, sizeof(struct PlayerRecordsRS), which, sReceivedRecords->ruby.tvShows);
ReceiveDaycareMailData(&sReceivedRecords->ruby.daycareMail, sizeof(struct PlayerRecordsRS), which, sReceivedRecords->ruby.tvShows);
ReceiveBattleTowerData(&sReceivedRecords->ruby.battleTowerRecord, sizeof(struct PlayerRecordsRS), which);
ReceiveTvShowsData(sReceivedRecords->ruby.tvShows, sizeof(struct PlayerRecordsRS), which);
ReceivePokeNewsData(sReceivedRecords->ruby.pokeNews, sizeof(struct PlayerRecordsRS), which);
@@ -278,7 +278,7 @@ static void ReceiveExchangePacket(u32 which)
ReceivePokeNewsData(sReceivedRecords->emerald.pokeNews, sizeof(struct PlayerRecordsEmerald), which);
ReceiveOldManData(&sReceivedRecords->emerald.oldMan, sizeof(struct PlayerRecordsEmerald), which);
ReceiveDewfordTrendData(sReceivedRecords->emerald.dewfordTrends, sizeof(struct PlayerRecordsEmerald), which);
ReceiveDaycareMailData(&sReceivedRecords->emerald.dayCareMail, sizeof(struct PlayerRecordsEmerald), which, sReceivedRecords->emerald.tvShows);
ReceiveDaycareMailData(&sReceivedRecords->emerald.daycareMail, sizeof(struct PlayerRecordsEmerald), which, sReceivedRecords->emerald.tvShows);
ReceiveBattleTowerData(&sReceivedRecords->emerald.battleTowerRecord, sizeof(struct PlayerRecordsEmerald), which);
ReceiveGiftItem(&sReceivedRecords->emerald.giftItem, which);
ReceiveLilycoveLadyData(&sReceivedRecords->emerald.lilycoveLady, sizeof(struct PlayerRecordsEmerald), which);
@@ -319,7 +319,7 @@ static void Task_RecordMixing_Main(u8 taskId)
{
case 0: // init
sSentRecord = malloc(sizeof(union PlayerRecords));
sReceivedRecords = malloc(sizeof(union PlayerRecords) * 4);
sReceivedRecords = malloc(sizeof(union PlayerRecords) * MAX_LINK_PLAYERS);
SetLocalLinkPlayerId(gSpecialVar_0x8005);
VarSet(VAR_TEMP_0, 1);
gUnknown_03001130 = FALSE;
@@ -665,7 +665,7 @@ static void ReceiveBattleTowerData(void *battleTowerRecord, size_t recordSize, u
{
memcpy((void *)battleTowerRecord + recordSize * which, (void *)battleTowerRecord + recordSize * mixIndices[which], sizeof(struct EmeraldBattleTowerRecord));
dest = (void *)battleTowerRecord + recordSize * which;
for (i = 0; i < 4; i ++)
for (i = 0; i < MAX_FRONTIER_PARTY_SIZE; i++)
{
btPokemon = &dest->party[i];
if (btPokemon->species != SPECIES_NONE && IsStringJapanese(btPokemon->nickname))
@@ -706,22 +706,22 @@ static void ReceiveLilycoveLadyData(LilycoveLady *lilycoveLady, size_t recordSiz
}
}
static u8 sub_80E7A9C(struct DayCareMail *rmMail)
static u8 sub_80E7A9C(struct DaycareMail *rmMail)
{
return rmMail->message.itemId;
}
static void sub_80E7AA4(struct RecordMixingDayCareMail *src, size_t recordSize, u8 (*idxs)[2], u8 which0, u8 which1)
static void sub_80E7AA4(struct RecordMixingDaycareMail *src, size_t recordSize, u8 (*idxs)[2], u8 which0, u8 which1)
{
struct DayCareMail buffer;
struct RecordMixingDayCareMail *mail1;
struct RecordMixingDayCareMail *mail2;
struct DaycareMail buffer;
struct RecordMixingDaycareMail *mail1;
struct RecordMixingDaycareMail *mail2;
mail1 = (void *)src + recordSize * idxs[which0][0];
memcpy(&buffer, &mail1->mail[idxs[which0][1]], sizeof(struct DayCareMail));
memcpy(&buffer, &mail1->mail[idxs[which0][1]], sizeof(struct DaycareMail));
mail2 = (void *)src + recordSize * idxs[which1][0];
memcpy(&mail1->mail[idxs[which0][1]], &mail2->mail[idxs[which1][1]], sizeof(struct DayCareMail));
memcpy(&mail2->mail[idxs[which1][1]], &buffer, sizeof(struct DayCareMail));
memcpy(&mail1->mail[idxs[which0][1]], &mail2->mail[idxs[which1][1]], sizeof(struct DaycareMail));
memcpy(&mail2->mail[idxs[which1][1]], &buffer, sizeof(struct DaycareMail));
}
static void sub_80E7B2C(const u8 *src)
@@ -730,7 +730,7 @@ static void sub_80E7B2C(const u8 *src)
s32 i;
sum = 0;
for (i = 0; i < 256; i ++)
for (i = 0; i < 256; i++)
sum += src[i];
gUnknown_03001160 = sum;
@@ -741,17 +741,17 @@ static u8 sub_80E7B54(void)
return gUnknown_03001160;
}
static void ReceiveDaycareMailData(struct RecordMixingDayCareMail *src, size_t recordSize, u8 which, TVShow *shows)
static void ReceiveDaycareMailData(struct RecordMixingDaycareMail *src, size_t recordSize, u8 which, TVShow *shows)
{
u16 i, j;
u8 linkPlayerCount;
u8 tableId;
struct RecordMixingDayCareMail *_src;
struct RecordMixingDaycareMail *_src;
u8 which0, which1;
void *ptr;
u8 sp04[4];
u8 sp08[4];
struct RecordMixingDayCareMail *sp0c[4];
struct RecordMixingDaycareMail *sp0c[4];
u8 sp1c[4][2];
u8 sp24[4][2];
u8 sp34;
@@ -777,10 +777,10 @@ static void ReceiveDaycareMailData(struct RecordMixingDayCareMail *src, size_t r
_src = (void *)src + i * recordSize;
language = gLinkPlayers[i].language;
version = gLinkPlayers[i].version & 0xFF;
for (j = 0; j < _src->numDaycareMons; j ++)
for (j = 0; j < _src->numDaycareMons; j++)
{
u16 otNameLanguage, nicknameLanguage;
struct DayCareMail *recordMixingMail = &_src->mail[j];
struct DaycareMail *recordMixingMail = &_src->mail[j];
if (!recordMixingMail->message.itemId)
continue;
@@ -835,7 +835,7 @@ static void ReceiveDaycareMailData(struct RecordMixingDayCareMail *src, size_t r
if (_src->numDaycareMons == 0)
continue;
for (j = 0; j < _src->numDaycareMons; j ++)
for (j = 0; j < _src->numDaycareMons; j++)
{
if (!_src->holdsItem[j])
sp1c[i][j] = 1;
@@ -913,8 +913,8 @@ static void ReceiveDaycareMailData(struct RecordMixingDayCareMail *src, size_t r
}
_src = (void *)src + which * recordSize;
memcpy(&gSaveBlock1Ptr->daycare.mons[0].mail, &_src->mail[0], sizeof(struct DayCareMail));
memcpy(&gSaveBlock1Ptr->daycare.mons[1].mail, &_src->mail[1], sizeof(struct DayCareMail));
memcpy(&gSaveBlock1Ptr->daycare.mons[0].mail, &_src->mail[0], sizeof(struct DaycareMail));
memcpy(&gSaveBlock1Ptr->daycare.mons[1].mail, &_src->mail[1], sizeof(struct DaycareMail));
SeedRng(oldSeed);
}
@@ -957,7 +957,7 @@ static void Task_DoRecordMixing(u8 taskId)
case 2:
SetContinueGameWarpStatusToDynamicWarp();
FullSaveGame();
task->data[0] ++;
task->data[0]++;
break;
case 3:
if (CheckSaveFile())
@@ -971,7 +971,7 @@ static void Task_DoRecordMixing(u8 taskId)
if (++task->data[1] > 10)
{
SetCloseLinkCallback();
task->data[0] ++;
task->data[0]++;
}
break;
case 5:
@@ -984,7 +984,7 @@ static void Task_DoRecordMixing(u8 taskId)
if (!sub_801048C(FALSE))
{
CreateTask(Task_LinkSave, 5);
task->data[0] ++;
task->data[0]++;
}
break;
case 7: // wait for Task_LinkSave to finish.
@@ -1003,7 +1003,7 @@ static void Task_DoRecordMixing(u8 taskId)
break;
case 8:
SetLinkStandbyCallback();
task->data[0] ++;
task->data[0]++;
break;
case 9:
if (IsLinkTaskFinished())
@@ -1061,13 +1061,9 @@ static void GetSavedApprentices(struct Apprentice *dst, struct Apprentice *src)
break;
case 2:
if (Random2() > 0x3333)
{
dst[1] = src[gSaveBlock2Ptr->playerApprentice.saveId + 1];
}
else
{
dst[1] = src[((gSaveBlock2Ptr->playerApprentice.saveId + 1) % (APPRENTICE_COUNT - 1) + 1)];
}
break;
}
}
@@ -1221,7 +1217,7 @@ static void sub_80E8578(struct RecordMixingHallRecords *dst, void *hallRecords,
for (l = 0; l < 3; l++)
{
if (GetTrainerId(dst->hallRecords2P[j][l].id1) == GetTrainerId(gUnknown_03001168[k]->twoPlayers[j].id1)
&& GetTrainerId(dst->hallRecords2P[j][l].id2) == GetTrainerId(gUnknown_03001168[k]->twoPlayers[j].id2))
&& GetTrainerId(dst->hallRecords2P[j][l].id2) == GetTrainerId(gUnknown_03001168[k]->twoPlayers[j].id2))
{
var_68++;
if (dst->hallRecords2P[j][l].winStreak < gUnknown_03001168[k]->twoPlayers[j].winStreak)
@@ -1308,21 +1304,21 @@ static void ReceiveRankingHallRecords(struct PlayerHallRecords *hallRecords, siz
Free(largeStructPtr);
}
static void sub_80E89F8(struct RecordMixingDayCareMail *dst)
static void GetRecordMixingDaycareMail(struct RecordMixingDaycareMail *dst)
{
gUnknown_02039F9C.mail[0] = gSaveBlock1Ptr->daycare.mons[0].mail;
gUnknown_02039F9C.mail[1] = gSaveBlock1Ptr->daycare.mons[1].mail;
InitDaycareMailRecordMixing(&gSaveBlock1Ptr->daycare, &gUnknown_02039F9C);
*dst = *gUnknown_03001148;
sDaycareMail.mail[0] = gSaveBlock1Ptr->daycare.mons[0].mail;
sDaycareMail.mail[1] = gSaveBlock1Ptr->daycare.mons[1].mail;
InitDaycareMailRecordMixing(&gSaveBlock1Ptr->daycare, &sDaycareMail);
*dst = *sDaycareMailSave;
}
static void SanitizeDayCareMailForRuby(struct RecordMixingDayCareMail *src)
static void SanitizeDaycareMailForRuby(struct RecordMixingDaycareMail *src)
{
s32 i;
for (i = 0; i < src->numDaycareMons; i++)
{
struct DayCareMail *mail = &src->mail[i];
struct DaycareMail *mail = &src->mail[i];
if (mail->message.itemId != 0)
{
if (mail->gameLanguage != LANGUAGE_JAPANESE)
@@ -1342,10 +1338,10 @@ static void SanitizeEmeraldBattleTowerRecord(struct EmeraldBattleTowerRecord *ds
{
s32 i;
for (i = 0; i < 4; i++)
for (i = 0; i < MAX_FRONTIER_PARTY_SIZE; i++)
{
struct BattleTowerPokemon *towerMon = &dst->party[i];
if (towerMon->species != 0)
if (towerMon->species != SPECIES_NONE)
StripExtCtrlCodes(towerMon->nickname);
}

View File

@@ -1968,7 +1968,7 @@ static void ExitRoulette(u8 taskId)
gSpecialVar_0x8004 = TRUE;
else
gSpecialVar_0x8004 = FALSE;
AlertTVOfNewCoinTotal(GetCoins());
TryPutFindThatGamerOnAir(GetCoins());
BeginHardwarePaletteFade(0xFF, 0, 0, 16, 0);
gTasks[taskId].func = Task_ExitRoulette;
}

View File

@@ -65,7 +65,7 @@ void EnterSafariMode(void)
void ExitSafariMode(void)
{
sub_80EE44C(sSafariZoneCaughtMons, sSafariZonePkblkUses);
TryPutSafariFanClubOnAir(sSafariZoneCaughtMons, sSafariZonePkblkUses);
ResetSafariZoneFlag();
ClearAllPokeblockFeeders();
gNumSafariBalls = 0;

View File

@@ -22,7 +22,6 @@
#include "string_util.h"
#include "tv.h"
#include "constants/items.h"
#include "constants/tv.h"
#include "constants/battle_frontier.h"
static void CB2_ReturnFromChooseHalfParty(void);

View File

@@ -47,7 +47,6 @@
#include "constants/secret_bases.h"
#include "constants/songs.h"
#include "constants/trainers.h"
#include "constants/tv.h"
// Values for registryStatus
enum {

View File

@@ -38,7 +38,6 @@
#include "constants/metatile_behaviors.h"
#include "constants/rgb.h"
#include "constants/songs.h"
#include "constants/tv.h"
#define TAG_SCROLL_ARROW 2100
#define TAG_ITEM_ICON_BASE 2110
@@ -48,7 +47,7 @@ static EWRAM_DATA struct ShopData *sShopData = NULL;
static EWRAM_DATA struct ListMenuItem *sListMenuItems = NULL;
static EWRAM_DATA u8 (*sItemNames)[16] = {0};
static EWRAM_DATA u8 sPurchaseHistoryId = 0;
EWRAM_DATA struct ItemSlot gMartPurchaseHistory[3] = {0};
EWRAM_DATA struct ItemSlot gMartPurchaseHistory[SMARTSHOPPER_NUM_ITEMS] = {0};
static void Task_ShopMenu(u8 taskId);
static void Task_HandleShopMenuQuit(u8 taskId);
@@ -373,7 +372,7 @@ static void Task_HandleShopMenuQuit(u8 taskId)
{
ClearStdWindowAndFrameToTransparent(sMartInfo.windowId, 2);
RemoveWindow(sMartInfo.windowId);
SaveRecordedItemPurchasesForTVShow();
TryPutSmartShopperOnAir();
ScriptContext2_Disable();
DestroyTask(taskId);

View File

@@ -1592,7 +1592,7 @@ static bool8 SlotAction_WaitMsg_NoMoreCoins(struct Task *task)
static bool8 SlotAction_EndGame(struct Task *task)
{
SetCoins(sSlotMachine->coins);
AlertTVOfNewCoinTotal(GetCoins());
TryPutFindThatGamerOnAir(GetCoins());
BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB(0, 0, 0));
sSlotMachine->state++; // SLOT_ACTION_FREE
return FALSE;

6062
src/tv.c

File diff suppressed because it is too large Load Diff