From 4c3a3f18c62da3ef8985fcce730ea649157e5b5e Mon Sep 17 00:00:00 2001 From: VicSevenT Date: Thu, 9 Apr 2026 23:38:08 -0500 Subject: [PATCH] Document and rename some TV-related structs (#1075) --- include/overlay006/ov6_02246444.h | 16 - include/overlay006/ov6_022465FC.h | 2 +- include/overlay006/struct_ov6_022465F4_decl.h | 6 - include/overlay006/tv_episode.h | 17 + include/overlay059/ov59_021D2B44.h | 14 +- include/struct_decls/struct_0202E4D4_decl.h | 6 - include/struct_decls/struct_0202E768_decl.h | 6 - include/struct_decls/struct_0202E794_decl.h | 6 - include/struct_defs/struct_0202440C.h | 43 +- include/struct_defs/struct_0202E4D4.h | 11 - include/struct_defs/struct_0202E768.h | 10 - include/struct_defs/struct_0202E794.h | 15 - ..._segment_contest_hall_showcased_pokemon.h} | 5 +- include/tv_episode_segment.h | 80 -- include/tv_segment.h | 83 ++ include/unk_0202E2CC.h | 28 +- platinum.us/main.lsf | 4 +- src/applications/party_menu/main.c | 4 +- src/battle/battle_system.c | 2 +- src/berry_patch_manager.c | 4 +- src/comm_player_manager.c | 2 +- src/contest.c | 2 +- src/encounter.c | 6 +- src/field_battle_data_transfer.c | 2 +- src/meson.build | 4 +- src/overlay005/fishing.c | 6 +- src/overlay005/size_contest.c | 2 +- src/overlay006/ov6_02246444.c | 159 --- src/overlay006/ov6_022465FC.c | 100 +- src/overlay006/tv_episode.c | 145 +++ src/overlay007/shop_menu.c | 4 +- src/overlay059/ov59_021D2B44.c | 66 +- src/overlay083/ov83_0223B5A0.c | 2 +- src/overlay094/screens/network_handler.c | 2 +- src/overlay104/frscrcmd.c | 2 +- src/overlay104/ov104_02234838.c | 2 +- src/overlay104/ov104_02239130.c | 2 +- src/scrcmd.c | 4 +- src/scrcmd_party.c | 2 +- src/scrcmd_tv_broadcast.c | 46 +- src/{tv_episode_segment.c => tv_segment.c} | 1155 ++++++++--------- src/underground/mining.c | 4 +- src/underground/player.c | 6 +- src/underground/traps.c | 2 +- src/unk_0202E2CC.c | 112 +- src/unk_0203D1B8.c | 4 +- src/unk_02048BD0.c | 6 +- src/unk_02049D08.c | 2 +- src/unk_020559DC.c | 2 +- src/unk_02097B18.c | 4 +- 50 files changed, 1065 insertions(+), 1154 deletions(-) delete mode 100644 include/overlay006/ov6_02246444.h delete mode 100644 include/overlay006/struct_ov6_022465F4_decl.h create mode 100644 include/overlay006/tv_episode.h delete mode 100644 include/struct_decls/struct_0202E4D4_decl.h delete mode 100644 include/struct_decls/struct_0202E768_decl.h delete mode 100644 include/struct_decls/struct_0202E794_decl.h delete mode 100644 include/struct_defs/struct_0202E4D4.h delete mode 100644 include/struct_defs/struct_0202E768.h delete mode 100644 include/struct_defs/struct_0202E794.h rename include/struct_defs/{tv_episode_segment_contest_hall_showcased_pokemon.h => tv_segment_contest_hall_showcased_pokemon.h} (73%) delete mode 100644 include/tv_episode_segment.h create mode 100644 include/tv_segment.h delete mode 100644 src/overlay006/ov6_02246444.c create mode 100644 src/overlay006/tv_episode.c rename src/{tv_episode_segment.c => tv_segment.c} (58%) diff --git a/include/overlay006/ov6_02246444.h b/include/overlay006/ov6_02246444.h deleted file mode 100644 index a6fca4f086..0000000000 --- a/include/overlay006/ov6_02246444.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef POKEPLATINUM_OV6_02246444_H -#define POKEPLATINUM_OV6_02246444_H - -#include "field/field_system_decl.h" -#include "overlay006/struct_ov6_022465F4_decl.h" - -void ov6_0224647C(UnkStruct_ov6_022465F4 *param0); -int ov6_0224648C(const UnkStruct_ov6_022465F4 *param0); -int ov6_02246490(const UnkStruct_ov6_022465F4 *param0); -const u16 *ov6_02246494(const UnkStruct_ov6_022465F4 *param0); -void *ov6_02246498(UnkStruct_ov6_022465F4 *param0); -int ov6_022464A4(const UnkStruct_ov6_022465F4 *param0); -UnkStruct_ov6_022465F4 *ov6_022465A0(FieldSystem *fieldSystem, int param1, int param2); -void ov6_022465F4(UnkStruct_ov6_022465F4 *param0); - -#endif // POKEPLATINUM_OV6_02246444_H diff --git a/include/overlay006/ov6_022465FC.h b/include/overlay006/ov6_022465FC.h index eb22bd8e1f..861d1f05de 100644 --- a/include/overlay006/ov6_022465FC.h +++ b/include/overlay006/ov6_022465FC.h @@ -8,7 +8,7 @@ void FieldSystem_SetTVProgramFinished(FieldSystem *fieldSystem); int TVBroadcast_GetPendingBroadcastType(FieldSystem *fieldSystem); int ov6_022468B0(FieldSystem *fieldSystem, BOOL param1, BOOL param2); -int ov6_02246920(FieldSystem *fieldSystem); +int TVBroadcast_GetNextSegmentID(FieldSystem *fieldSystem); int TVBroadcast_GetProgramFramingMessage(FieldSystem *fieldSystem, int framingMessageType); BOOL TVBroadcast_LoadSegmentMessage(FieldSystem *fieldSystem, StringTemplate *template, int segmentID, u16 *bankDestVar, u16 *messageDestVar); diff --git a/include/overlay006/struct_ov6_022465F4_decl.h b/include/overlay006/struct_ov6_022465F4_decl.h deleted file mode 100644 index 2c490e9d4c..0000000000 --- a/include/overlay006/struct_ov6_022465F4_decl.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef POKEPLATINUM_STRUCT_OV6_022465F4_DECL_H -#define POKEPLATINUM_STRUCT_OV6_022465F4_DECL_H - -typedef struct UnkStruct_ov6_022465F4_t UnkStruct_ov6_022465F4; - -#endif // POKEPLATINUM_STRUCT_OV6_022465F4_DECL_H diff --git a/include/overlay006/tv_episode.h b/include/overlay006/tv_episode.h new file mode 100644 index 0000000000..d72b21f198 --- /dev/null +++ b/include/overlay006/tv_episode.h @@ -0,0 +1,17 @@ +#ifndef POKEPLATINUM_OV6_TV_EPISODE_H +#define POKEPLATINUM_OV6_TV_EPISODE_H + +#include "struct_defs/struct_0202440C.h" + +#include "field/field_system_decl.h" + +void TVEpisode_IncrementTimesPlayed(TVEpisode *episode); +int TVEpisode_GetGender(const TVEpisode *episode); +int TVEpisode_GetLanguage(const TVEpisode *episode); +const u16 *TVEpisode_GetTrainerName(const TVEpisode *episode); +void *TVEpisode_GetSegment(TVEpisode *episode); +int TVEpisode_GetSegmentID(const TVEpisode *episode); +TVEpisode *TVEpisode_New(FieldSystem *fieldSystem, int programType, int segmentID); +void TVEpisode_Free(TVEpisode *episode); + +#endif // POKEPLATINUM_OV6_TV_EPISODE_H diff --git a/include/overlay059/ov59_021D2B44.h b/include/overlay059/ov59_021D2B44.h index 4c6956bbb4..42185926e7 100644 --- a/include/overlay059/ov59_021D2B44.h +++ b/include/overlay059/ov59_021D2B44.h @@ -2,19 +2,19 @@ #define POKEPLATINUM_OV59_021D2B44_H #include "struct_decls/struct_0202440C_decl.h" -#include "struct_decls/struct_0202E794_decl.h" +#include "struct_defs/struct_0202440C.h" #include "savedata.h" u32 ov59_021D2B44(const SaveData *saveData); u32 ov59_021D2B4C(const SaveData *saveData); u32 ov59_021D2B54(const SaveData *saveData); -UnkStruct_0202E794 *ov59_021D2C28(SaveData *saveData, enum HeapID heapID, u32 param2); -UnkStruct_0202E794 *ov59_021D2C70(SaveData *saveData, enum HeapID heapID, u32 param2); -UnkStruct_0202E794 *ov59_021D2CB4(SaveData *saveData, enum HeapID heapID, u32 param2); -UnkStruct_0202E794 *ov59_021D2CF8(SaveData *saveData, enum HeapID heapID, u32 param2); -UnkStruct_0202E794 *ov59_021D2D3C(SaveData *saveData, enum HeapID heapID, u32 param2); -UnkStruct_0202E794 *ov59_021D2D80(SaveData *saveData, enum HeapID heapID, u32 param2); +TVWifiEpisode *ov59_021D2C28(SaveData *saveData, enum HeapID heapID, u32 param2); +TVWifiEpisode *ov59_021D2C70(SaveData *saveData, enum HeapID heapID, u32 param2); +TVWifiEpisode *ov59_021D2CB4(SaveData *saveData, enum HeapID heapID, u32 param2); +TVWifiEpisode *ov59_021D2CF8(SaveData *saveData, enum HeapID heapID, u32 param2); +TVWifiEpisode *ov59_021D2D3C(SaveData *saveData, enum HeapID heapID, u32 param2); +TVWifiEpisode *ov59_021D2D80(SaveData *saveData, enum HeapID heapID, u32 param2); void ov59_021D2F10(TVBroadcast *broadcast, int param1, int param2, const void **param3, const void **param4); void ov59_021D2F38(TVBroadcast *broadcast, int param1, int param2, const void **param3, const void **param4); void ov59_021D2F60(TVBroadcast *broadcast, int param1, int param2, const void **param3, const void **param4); diff --git a/include/struct_decls/struct_0202E4D4_decl.h b/include/struct_decls/struct_0202E4D4_decl.h deleted file mode 100644 index e208f63038..0000000000 --- a/include/struct_decls/struct_0202E4D4_decl.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef POKEPLATINUM_STRUCT_0202E4D4_DECL_H -#define POKEPLATINUM_STRUCT_0202E4D4_DECL_H - -typedef struct UnkStruct_0202E4D4_t UnkStruct_0202E4D4; - -#endif // POKEPLATINUM_STRUCT_0202E4D4_DECL_H diff --git a/include/struct_decls/struct_0202E768_decl.h b/include/struct_decls/struct_0202E768_decl.h deleted file mode 100644 index e8dd6cac08..0000000000 --- a/include/struct_decls/struct_0202E768_decl.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef POKEPLATINUM_STRUCT_0202E768_DECL_H -#define POKEPLATINUM_STRUCT_0202E768_DECL_H - -typedef struct UnkStruct_0202E768_t UnkStruct_0202E768; - -#endif // POKEPLATINUM_STRUCT_0202E768_DECL_H diff --git a/include/struct_decls/struct_0202E794_decl.h b/include/struct_decls/struct_0202E794_decl.h deleted file mode 100644 index a380fe98c3..0000000000 --- a/include/struct_decls/struct_0202E794_decl.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef POKEPLATINUM_STRUCT_0202E794_DECL_H -#define POKEPLATINUM_STRUCT_0202E794_DECL_H - -typedef struct UnkStruct_0202E794_t UnkStruct_0202E794; - -#endif // POKEPLATINUM_STRUCT_0202E794_DECL_H diff --git a/include/struct_defs/struct_0202440C.h b/include/struct_defs/struct_0202440C.h index ce6ab9d1d5..c7d698a534 100644 --- a/include/struct_defs/struct_0202440C.h +++ b/include/struct_defs/struct_0202440C.h @@ -3,8 +3,6 @@ #include "constants/tv_broadcast.h" -#include "struct_defs/struct_0202E768.h" -#include "struct_defs/struct_0202E794.h" #include "struct_defs/struct_0202E7E4.h" #include "struct_defs/struct_0202E7F0.h" #include "struct_defs/struct_0202E7FC.h" @@ -13,21 +11,46 @@ #include "struct_defs/struct_0202E81C.h" #include "struct_defs/struct_0202E828.h" #include "struct_defs/struct_0202E834.h" -#include "struct_defs/tv_episode_segment_contest_hall_showcased_pokemon.h" +#include "struct_defs/tv_segment_contest_hall_showcased_pokemon.h" #define TV_BROADCAST_MAX_PLAYED_SEGMENTS 4 +typedef struct TVSegmentInstance { + u8 segmentID; + u8 timesPlayed; + u32 timestamp; + u8 segment[40]; +} TVSegmentInstance; + +typedef struct TVEpisode { + u8 segmentID; + u8 gameVersion; + u8 language; + u8 gender; + u16 name[8]; + TVSegmentInstance *details; +} TVEpisode; + +typedef struct TVWifiEpisode { + u32 trainerID; + u8 gender; + u8 gameVersion; + u8 language; + u16 name[8]; + TVSegmentInstance details; +} TVWifiEpisode; + typedef struct TVBroadcast { u8 playedSegments[TV_BROADCAST_MAX_PLAYED_SEGMENTS]; int timeSlotMinutesRemaining; u8 programFinished; - UnkStruct_0202E768 unk_0C[4]; - UnkStruct_0202E768 unk_C4[4]; - UnkStruct_0202E768 unk_17C[4]; - UnkStruct_0202E794 unk_234[16]; - UnkStruct_0202E794 unk_684[8]; - UnkStruct_0202E794 unk_8AC[8]; - TVEpisodeSegment_ContestHall_ShowcasedPokemon showcasedPokemon; + TVSegmentInstance unk_0C[4]; + TVSegmentInstance unk_C4[4]; + TVSegmentInstance unk_17C[4]; + TVWifiEpisode unk_234[16]; + TVWifiEpisode unk_684[8]; + TVWifiEpisode unk_8AC[8]; + TVSegment_ContestHall_ShowcasedPokemon showcasedPokemon; UnkStruct_0202E7E4 unk_ADE; UnkStruct_0202E7F0 unk_B02; UnkStruct_0202E7FC unk_B04; diff --git a/include/struct_defs/struct_0202E4D4.h b/include/struct_defs/struct_0202E4D4.h deleted file mode 100644 index 5f6da4ccc8..0000000000 --- a/include/struct_defs/struct_0202E4D4.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef POKEPLATINUM_STRUCT_0202E4D4_H -#define POKEPLATINUM_STRUCT_0202E4D4_H - -typedef struct UnkStruct_0202E4D4_t { - u8 unk_00; - u8 unk_01; - u32 unk_04; - u8 unk_08[40]; -} UnkStruct_0202E4D4; - -#endif // POKEPLATINUM_STRUCT_0202E4D4_H diff --git a/include/struct_defs/struct_0202E768.h b/include/struct_defs/struct_0202E768.h deleted file mode 100644 index ae0b48b57a..0000000000 --- a/include/struct_defs/struct_0202E768.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef POKEPLATINUM_STRUCT_0202E768_H -#define POKEPLATINUM_STRUCT_0202E768_H - -#include "struct_defs/struct_0202E4D4.h" - -typedef struct UnkStruct_0202E768_t { - UnkStruct_0202E4D4 unk_00; -} UnkStruct_0202E768; - -#endif // POKEPLATINUM_STRUCT_0202E768_H diff --git a/include/struct_defs/struct_0202E794.h b/include/struct_defs/struct_0202E794.h deleted file mode 100644 index e7a61ea8fd..0000000000 --- a/include/struct_defs/struct_0202E794.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef POKEPLATINUM_STRUCT_0202E794_H -#define POKEPLATINUM_STRUCT_0202E794_H - -#include "struct_defs/struct_0202E4D4.h" - -typedef struct UnkStruct_0202E794_t { - u32 unk_00; - u8 unk_04; - u8 unk_05; - u8 language; - u16 unk_08[8]; - UnkStruct_0202E4D4 unk_18; -} UnkStruct_0202E794; - -#endif // POKEPLATINUM_STRUCT_0202E794_H diff --git a/include/struct_defs/tv_episode_segment_contest_hall_showcased_pokemon.h b/include/struct_defs/tv_segment_contest_hall_showcased_pokemon.h similarity index 73% rename from include/struct_defs/tv_episode_segment_contest_hall_showcased_pokemon.h rename to include/struct_defs/tv_segment_contest_hall_showcased_pokemon.h index 9595bea4eb..c005c08af3 100644 --- a/include/struct_defs/tv_episode_segment_contest_hall_showcased_pokemon.h +++ b/include/struct_defs/tv_segment_contest_hall_showcased_pokemon.h @@ -1,9 +1,8 @@ #ifndef POKEPLATINUM_TV_EPISODE_SEGMENT_CONTEST_HALL_SHOWCASED_POKEMON_H #define POKEPLATINUM_TV_EPISODE_SEGMENT_CONTEST_HALL_SHOWCASED_POKEMON_H -typedef struct TVEpisodeSegment_ContestHall_ShowcasedPokemon { +typedef struct TVSegment_ContestHall_ShowcasedPokemon { u8 unk_00; - u8 padding_01; u16 species; u8 gender; u8 language; @@ -11,6 +10,6 @@ typedef struct TVEpisodeSegment_ContestHall_ShowcasedPokemon { u8 contestRank; u8 contestType; u8 contestPlacement; -} TVEpisodeSegment_ContestHall_ShowcasedPokemon; +} TVSegment_ContestHall_ShowcasedPokemon; #endif // POKEPLATINUM_TV_EPISODE_SEGMENT_CONTEST_HALL_SHOWCASED_POKEMON_H diff --git a/include/tv_episode_segment.h b/include/tv_episode_segment.h deleted file mode 100644 index ebb463ee96..0000000000 --- a/include/tv_episode_segment.h +++ /dev/null @@ -1,80 +0,0 @@ -#ifndef POKEPLATINUM_TV_EPISODE_SEGMENT_H -#define POKEPLATINUM_TV_EPISODE_SEGMENT_H - -#include "generated/pokemon_contest_ranks.h" -#include "generated/pokemon_contest_types.h" - -#include "struct_decls/struct_0202440C_decl.h" - -#include "field/field_system_decl.h" -#include "overlay006/struct_ov6_022465F4_decl.h" - -#include "field_battle_data_transfer.h" -#include "pokemon.h" -#include "savedata.h" -#include "string_template.h" -#include "trainer_info.h" - -int TVEpisodeSegment_LoadMessage(int programTypeID, FieldSystem *fieldSystem, StringTemplate *template, UnkStruct_ov6_022465F4 *param3, u16 *bankDestVar); -BOOL TVEpisodeSegment_IsEligible(int programTypeID, FieldSystem *fieldSystem, UnkStruct_ov6_022465F4 *param2); -void TVBroadcast_SetContestHallShowInfo(TVBroadcast *broadcast, Pokemon *mon, enum PokemonContestType contestType, enum PokemonContestRank contestRank, int contestPlacement); -void sub_0206CF48(TVBroadcast *broadcast, Pokemon *param1, enum HeapID heapID); -void FieldSystem_SaveTVEpisodeSegment_PlantingAndWateringShow(FieldSystem *fieldSystem, u16 berryItemID, u8 yieldRating, u16 yieldAmount); -void sub_0206CF9C(TVBroadcast *broadcast, int param1); -void sub_0206CFB4(TVBroadcast *broadcast, int param1); -void sub_0206CFCC(TVBroadcast *broadcast, int param1); -void sub_0206CFE4(TVBroadcast *broadcast, BOOL param1, u16 param2); -void TVBroadcast_ResetSafariGameData(TVBroadcast *broadcast); -void TVBroadcast_UpdateSafariGameData(TVBroadcast *broadcast, Pokemon *param1); -void sub_0206D048(TVBroadcast *broadcast, Pokemon *param1); -void sub_0206D088(TVBroadcast *broadcast, u8 param1, const TrainerInfo *param2); -void sub_0206D0C8(TVBroadcast *broadcast, u16 param1); -void sub_0206D0F0(TVBroadcast *broadcast); -void sub_0206D104(TVBroadcast *broadcast); -void sub_0206D12C(TVBroadcast *broadcast); -CaptureAttempt *CaptureAttempt_New(enum HeapID heapID); -void CaptureAttempt_Free(CaptureAttempt *captureAttempt); -void CaptureAttempt_Init(CaptureAttempt *captureAttempt, Pokemon *mon, int resultMask, int ballsThrown, enum HeapID heapID); -void FieldSystem_SaveTVEpisodeSegment_CatchThatPokemonShow(FieldSystem *fieldSystem, const CaptureAttempt *captureAttempt, int resultMask); -void FieldSystem_SaveTVEpisodeSegment_WhatsFishing(FieldSystem *fieldSystem, BOOL caughtFish, u16 fishingRodItemID, Pokemon *mon); -void FieldSystem_SaveTVEpisodeSegment_LoveThatGroupCorner_NewGroup(FieldSystem *fieldSystem); -void FieldSystem_SaveTVEpisodeSegment_LoveThatGroupCorner_SwitchGroup(FieldSystem *fieldSystem); -void FieldSystem_SaveTVEpisodeSegment_HiddenItemBreakingNews(FieldSystem *fieldSystem, u16 item); -void FieldSystem_SaveTVEpisodeSegment_SinnohShoppingChampCorner(SaveData *saveData, u16 item, u8 amount); -void FieldSystem_SaveTVEpisodeSegment_HappyHappyEggClub(FieldSystem *fieldSystem, Pokemon *mon); -void FieldSystem_SaveTVEpisodeSegment_RateThatNameChange(FieldSystem *fieldSystem, Pokemon *mon); -void FieldSystem_SaveTVEpisodeSegment_UndergroundTreasuresCorner(FieldSystem *fieldSystem, int item, int amount); -void FieldSystem_SaveTVEpisodeSegment_SafariGameSpecialNewsBulletin(FieldSystem *fieldSystem); -void FieldSystem_SaveTVEpisodeSegment_PokemonStorageSpecialNewsBulletin(FieldSystem *fieldSystem); -void FieldSystem_SaveTVEpisodeSegment_HerbalMedicineTrainerSightingDummy(TVBroadcast *broadcast, Pokemon *mon, u16 item); -void FieldSystem_SaveTVEpisodeSegment_PlantingAndWateringShow(FieldSystem *fieldSystem, u16 berryItemID, u8 yieldRating, u16 yieldAmount); -void FieldSystem_SaveTVEpisodeSegment_SealClubShow(TVBroadcast *broadcast, Pokemon *mon, u8 ballSeal); -void FieldSystem_SaveTVEpisodeSegment_CaptureTheFlagDigest_TakeFlag(FieldSystem *fieldSystem, const TrainerInfo *trainerInfo); -void FieldSystem_SaveTVEpisodeSegment_CaptureTheFlagDigest_LoseFlag(FieldSystem *fieldSystem, const TrainerInfo *trainerInfo); -void FieldSystem_SaveTVEpisodeSegment_HomeAndManor_NoFurniture(FieldSystem *fieldSystem); -void FieldSystem_SaveTVEpisodeSegment_HomeAndManor(FieldSystem *fieldSystem, u8 furniture); -void sub_0206DBB0(SaveData *saveData, u32 param1, Pokemon *param2, BOOL param3); -void sub_0206DC6C(FieldSystem *fieldSystem, u32 param1, Pokemon *param2); -void sub_0206DD38(FieldSystem *fieldSystem, u32 param1, u32 param2, u32 param3); -void sub_0206DDB8(SaveData *saveData, Pokemon *mon, u32 monDataParam); -void sub_0206DEEC(FieldSystem *fieldSystem, u16 param1, u16 param2); -void sub_0206DF60(FieldSystem *fieldSystem, u16 param1); -void sub_0206DFE0(SaveData *saveData); -void sub_0206E060(SaveData *saveData); -void FieldSystem_SaveTVEpisodeSegment_BattleTowerCorner(FieldSystem *fieldSystem, u16 customMessageWord); -void FieldSystem_SaveTVEpisodeSegment_YourPokemonCorner(FieldSystem *fieldSystem, u16 customMessageWord); -void FieldSystem_SaveTVEpisodeSegment_ThePoketchWatch(FieldSystem *fieldSystem, u16 customMessageWord); -void FieldSystem_SaveTVEpisodeSegment_ContestHall(FieldSystem *fieldSystem, u16 customMessageWord); -void FieldSystem_SaveTVEpisodeSegment_RightOnPhotoCorner(FieldSystem *fieldSystem, u16 customMessageWord); -void FieldSystem_SaveTVEpisodeSegment_StreetCornerPersonalityCheckup(FieldSystem *fieldSystem, u16 pokemonType); -void FieldSystem_SaveTVEpisodeSegment_ThreeCheersForPoffinCorner(FieldSystem *fieldSystem, u16 customMessageWord); -void FieldSystem_SaveTVEpisodeSegment_AmitySquareWatch(FieldSystem *fieldSystem, u16 customMessageWord); -void FieldSystem_SaveTVEpisodeSegment_BattleFrontierFrontlineNews_Single(FieldSystem *fieldSystem, u16 customMessageWord); -void FieldSystem_SaveTVEpisodeSegment_InYourFaceInterview_Question1(FieldSystem *fieldSystem, u16 customMessageWord); -void FieldSystem_SaveTVEpisodeSegment_InYourFaceInterview_Question2(FieldSystem *fieldSystem, u16 customMessageWord); -void FieldSystem_SaveTVEpisodeSegment_InYourFaceInterview_Question3(FieldSystem *fieldSystem, u16 customMessageWord); -void FieldSystem_SaveTVEpisodeSegment_InYourFaceInterview_Question4(FieldSystem *fieldSystem, u16 customMessageWord); -void FieldSystem_SaveTVEpisodeSegment_BattleFrontierFrontlineNews_Multi(FieldSystem *fieldSystem, u16 customMessageWord); -void sub_0206F2F0(SaveData *saveData); - -#endif // POKEPLATINUM_TV_EPISODE_SEGMENT_H diff --git a/include/tv_segment.h b/include/tv_segment.h new file mode 100644 index 0000000000..604c6c8b51 --- /dev/null +++ b/include/tv_segment.h @@ -0,0 +1,83 @@ +#ifndef POKEPLATINUM_TV_SEGMENT_H +#define POKEPLATINUM_TV_SEGMENT_H + +#include "generated/pokemon_contest_ranks.h" +#include "generated/pokemon_contest_types.h" + +#include "struct_decls/struct_0202440C_decl.h" +#include "struct_defs/struct_0202440C.h" + +#include "field/field_system_decl.h" + +#include "field_battle_data_transfer.h" +#include "pokemon.h" +#include "savedata.h" +#include "string_template.h" +#include "trainer_info.h" + +int TVSegment_LoadMessage(int programTypeID, FieldSystem *fieldSystem, StringTemplate *template, TVEpisode *episode, u16 *bankDestVar); +BOOL TVSegment_IsEligible(int programTypeID, FieldSystem *fieldSystem, TVEpisode *episode); + +void TVBroadcast_SetContestHallShowInfo(TVBroadcast *broadcast, Pokemon *mon, enum PokemonContestType contestType, enum PokemonContestRank contestRank, int contestPlacement); +void sub_0206CF48(TVBroadcast *broadcast, Pokemon *param1, enum HeapID heapID); +void sub_0206CF9C(TVBroadcast *broadcast, int param1); +void sub_0206CFB4(TVBroadcast *broadcast, int param1); +void sub_0206CFCC(TVBroadcast *broadcast, int param1); +void sub_0206CFE4(TVBroadcast *broadcast, BOOL param1, u16 param2); +void TVBroadcast_ResetSafariGameData(TVBroadcast *broadcast); +void TVBroadcast_UpdateSafariGameData(TVBroadcast *broadcast, Pokemon *mon); +void sub_0206D048(TVBroadcast *broadcast, Pokemon *mon); +void sub_0206D088(TVBroadcast *broadcast, u8 param1, const TrainerInfo *param2); +void sub_0206D0C8(TVBroadcast *broadcast, u16 param1); +void sub_0206D0F0(TVBroadcast *broadcast); +void sub_0206D104(TVBroadcast *broadcast); +void sub_0206D12C(TVBroadcast *broadcast); + +CaptureAttempt *CaptureAttempt_New(enum HeapID heapID); +void CaptureAttempt_Free(CaptureAttempt *captureAttempt); +void CaptureAttempt_Init(CaptureAttempt *captureAttempt, Pokemon *mon, int resultMask, int ballsThrown, enum HeapID heapID); + +void FieldSystem_SaveTVSegment_PlantingAndWateringShow(FieldSystem *fieldSystem, u16 berryItemID, u8 yieldRating, u16 yieldAmount); +void FieldSystem_SaveTVSegment_CatchThatPokemonShow(FieldSystem *fieldSystem, const CaptureAttempt *captureAttempt, int resultMask); +void FieldSystem_SaveTVSegment_WhatsFishing(FieldSystem *fieldSystem, BOOL caughtFish, u16 fishingRodItemID, Pokemon *mon); +void FieldSystem_SaveTVSegment_LoveThatGroupCorner_NewGroup(FieldSystem *fieldSystem); +void FieldSystem_SaveTVSegment_LoveThatGroupCorner_SwitchGroup(FieldSystem *fieldSystem); +void FieldSystem_SaveTVSegment_HiddenItemBreakingNews(FieldSystem *fieldSystem, u16 item); +void FieldSystem_SaveTVSegment_SinnohShoppingChampCorner(SaveData *saveData, u16 item, u8 amount); +void FieldSystem_SaveTVSegment_HappyHappyEggClub(FieldSystem *fieldSystem, Pokemon *mon); +void FieldSystem_SaveTVSegment_RateThatNameChange(FieldSystem *fieldSystem, Pokemon *mon); +void FieldSystem_SaveTVSegment_UndergroundTreasuresCorner(FieldSystem *fieldSystem, int item, int amount); +void FieldSystem_SaveTVSegment_SafariGameSpecialNewsBulletin(FieldSystem *fieldSystem); +void FieldSystem_SaveTVSegment_PokemonStorageSpecialNewsBulletin(FieldSystem *fieldSystem); +void FieldSystem_SaveTVSegment_HerbalMedicineTrainerSightingDummy(TVBroadcast *broadcast, Pokemon *mon, u16 item); +void FieldSystem_SaveTVSegment_PlantingAndWateringShow(FieldSystem *fieldSystem, u16 berryItemID, u8 yieldRating, u16 yieldAmount); +void FieldSystem_SaveTVSegment_SealClubShow(TVBroadcast *broadcast, Pokemon *param1, u8 ballSeal); +void FieldSystem_SaveTVSegment_CaptureTheFlagDigest_TakeFlag(FieldSystem *fieldSystem, const TrainerInfo *trainerInfo); +void FieldSystem_SaveTVSegment_CaptureTheFlagDigest_LoseFlag(FieldSystem *fieldSystem, const TrainerInfo *trainerInfo); +void FieldSystem_SaveTVSegment_HomeAndManor_NoFurniture(FieldSystem *fieldSystem); +void FieldSystem_SaveTVSegment_HomeAndManor(FieldSystem *fieldSystem, u8 furniture); +void sub_0206DBB0(SaveData *saveData, u32 param1, Pokemon *param2, BOOL param3); +void sub_0206DC6C(FieldSystem *fieldSystem, u32 param1, Pokemon *param2); +void sub_0206DD38(FieldSystem *fieldSystem, u32 param1, u32 param2, u32 param3); +void sub_0206DDB8(SaveData *saveData, Pokemon *mon, u32 monDataParam); +void sub_0206DEEC(FieldSystem *fieldSystem, u16 param1, u16 param2); +void sub_0206DF60(FieldSystem *fieldSystem, u16 param1); +void sub_0206DFE0(SaveData *saveData); +void sub_0206E060(SaveData *saveData); +void FieldSystem_SaveTVSegment_BattleTowerCorner(FieldSystem *fieldSystem, u16 customMessageWord); +void FieldSystem_SaveTVSegment_YourPokemonCorner(FieldSystem *fieldSystem, u16 customMessageWord); +void FieldSystem_SaveTVSegment_ThePoketchWatch(FieldSystem *fieldSystem, u16 customMessageWord); +void FieldSystem_SaveTVSegment_ContestHall(FieldSystem *fieldSystem, u16 customMessageWord); +void FieldSystem_SaveTVSegment_RightOnPhotoCorner(FieldSystem *fieldSystem, u16 customMessageWord); +void FieldSystem_SaveTVSegment_StreetCornerPersonalityCheckup(FieldSystem *fieldSystem, u16 pokemonType); +void FieldSystem_SaveTVSegment_ThreeCheersForPoffinCorner(FieldSystem *fieldSystem, u16 customMessageWord); +void FieldSystem_SaveTVSegment_AmitySquareWatch(FieldSystem *fieldSystem, u16 customWordMessage); +void FieldSystem_SaveTVSegment_BattleFrontierFrontlineNews_Single(FieldSystem *fieldSystem, u16 customWordMessage); +void FieldSystem_SaveTVSegment_InYourFaceInterview_Question1(FieldSystem *fieldSystem, u16 customWordMessage); +void FieldSystem_SaveTVSegment_InYourFaceInterview_Question2(FieldSystem *fieldSystem, u16 customWordMessage); +void FieldSystem_SaveTVSegment_InYourFaceInterview_Question3(FieldSystem *fieldSystem, u16 customWordMessage); +void FieldSystem_SaveTVSegment_InYourFaceInterview_Question4(FieldSystem *fieldSystem, u16 customWordMessage); +void FieldSystem_SaveTVSegment_BattleFrontierFrontlineNews_Multi(FieldSystem *fieldSystem, u16 customWordMessage); +void sub_0206F2F0(SaveData *saveData); + +#endif // POKEPLATINUM_TV_SEGMENT_H diff --git a/include/unk_0202E2CC.h b/include/unk_0202E2CC.h index efec78529a..0f854433e9 100644 --- a/include/unk_0202E2CC.h +++ b/include/unk_0202E2CC.h @@ -2,9 +2,7 @@ #define POKEPLATINUM_UNK_0202E2CC_H #include "struct_decls/struct_0202440C_decl.h" -#include "struct_decls/struct_0202E4D4_decl.h" -#include "struct_decls/struct_0202E768_decl.h" -#include "struct_decls/struct_0202E794_decl.h" +#include "struct_defs/struct_0202440C.h" #include "struct_defs/struct_0202E7E4.h" #include "struct_defs/struct_0202E7F0.h" #include "struct_defs/struct_0202E7FC.h" @@ -13,7 +11,7 @@ #include "struct_defs/struct_0202E81C.h" #include "struct_defs/struct_0202E828.h" #include "struct_defs/struct_0202E834.h" -#include "struct_defs/tv_episode_segment_contest_hall_showcased_pokemon.h" +#include "struct_defs/tv_segment_contest_hall_showcased_pokemon.h" int TVBroadcast_SaveSize(void); void TVBroadcast_Init(TVBroadcast *broadcast); @@ -26,21 +24,21 @@ void TVBroadcast_SetPlayedSegment(TVBroadcast *broadcast, int segmentID); BOOL TVBroadcast_IsPlayedSegment(const TVBroadcast *broadcast, int segmentID); int TVBroadcast_CountPlayedSegments(const TVBroadcast *broadcast); BOOL TVBroadcast_SaveSegmentData(TVBroadcast *broadcast, int param1, int param2, const u8 *param3); -const u16 *sub_0202E4C8(const UnkStruct_0202E794 *param0); -int sub_0202E4CC(const UnkStruct_0202E794 *param0); -int sub_0202E4D0(const UnkStruct_0202E794 *param0); -UnkStruct_0202E4D4 *sub_0202E4D4(UnkStruct_0202E794 *param0); -UnkStruct_0202E4D4 *sub_0202E4D8(UnkStruct_0202E768 *param0); -int sub_0202E55C(const UnkStruct_0202E4D4 *param0); -void sub_0202E560(UnkStruct_0202E4D4 *param0); -void *sub_0202E574(UnkStruct_0202E4D4 *param0); +const u16 *sub_0202E4C8(const TVWifiEpisode *param0); +int sub_0202E4CC(const TVWifiEpisode *param0); +int sub_0202E4D0(const TVWifiEpisode *param0); +TVSegmentInstance *sub_0202E4D4(TVWifiEpisode *param0); +TVSegmentInstance *sub_0202E4D8(TVSegmentInstance *param0); +int sub_0202E55C(const TVSegmentInstance *param0); +void sub_0202E560(TVSegmentInstance *param0); +void *sub_0202E574(TVSegmentInstance *param0); int sub_0202E614(const TVBroadcast *broadcast, int param1, int param2, BOOL param3, BOOL param4, u8 *param5); BOOL sub_0202E6B0(TVBroadcast *broadcast, int param1, int param2); -UnkStruct_0202E768 *sub_0202E768(TVBroadcast *broadcast, int param1, int param2); -UnkStruct_0202E794 *sub_0202E794(TVBroadcast *broadcast, int param1, int param2); +TVSegmentInstance *sub_0202E768(TVBroadcast *broadcast, int param1, int param2); +TVWifiEpisode *sub_0202E794(TVBroadcast *broadcast, int param1, int param2); BOOL sub_0202E7C0(int param0); int sub_0202E7D0(int param0); -TVEpisodeSegment_ContestHall_ShowcasedPokemon *TVBroadcast_GetShowcasedPokemon(TVBroadcast *broadcast); +TVSegment_ContestHall_ShowcasedPokemon *TVBroadcast_GetShowcasedPokemon(TVBroadcast *broadcast); UnkStruct_0202E7E4 *sub_0202E7E4(TVBroadcast *broadcast); UnkStruct_0202E7F0 *sub_0202E7F0(TVBroadcast *broadcast); UnkStruct_0202E7FC *sub_0202E7FC(TVBroadcast *broadcast); diff --git a/platinum.us/main.lsf b/platinum.us/main.lsf index ee98ec85ec..a0bb341e08 100644 --- a/platinum.us/main.lsf +++ b/platinum.us/main.lsf @@ -272,7 +272,7 @@ Static main Object main.nef.p/src_roaming_pokemon.c.o Object main.nef.p/src_npc_trade_task.c.o Object main.nef.p/src_cutscenes_boat_cutscene_boat_cutscene.c.o - Object main.nef.p/src_tv_episode_segment.c.o + Object main.nef.p/src_tv_segment.c.o Object main.nef.p/src_rankings_machine.c.o Object main.nef.p/src_unk_02070428.c.o Object main.nef.p/src_field_move_tasks.c.o @@ -571,7 +571,7 @@ Overlay overlay6 Object main.nef.p/src_overlay006_hm_cut_in.c.o Object main.nef.p/src_overlay006_roamer_after_battle.c.o Object main.nef.p/src_overlay006_npc_trade.c.o - Object main.nef.p/src_overlay006_ov6_02246444.c.o + Object main.nef.p/src_overlay006_tv_episode.c.o Object main.nef.p/src_overlay006_ov6_022465FC.c.o Object main.nef.p/src_overlay006_tv_commercials.c.o Object main.nef.p/src_overlay006_special_dates.c.o diff --git a/src/applications/party_menu/main.c b/src/applications/party_menu/main.c index e0722be684..78264aa8c0 100644 --- a/src/applications/party_menu/main.c +++ b/src/applications/party_menu/main.c @@ -59,7 +59,7 @@ #include "text.h" #include "touch_pad.h" #include "touch_screen.h" -#include "tv_episode_segment.h" +#include "tv_segment.h" #include "unk_0206B9D8.h" #include "vram_transfer.h" @@ -2714,7 +2714,7 @@ static int ApplyItemEffectOnPokemon(PartyMenuApplication *app) if ((Item_IsHerbalMedicine(app->partyMenu->usedItemID) == 1) && (app->partyMenu->broadcast != NULL)) { Pokemon *v2 = Party_GetPokemonBySlotIndex(app->partyMenu->party, app->currPartySlot); - FieldSystem_SaveTVEpisodeSegment_HerbalMedicineTrainerSightingDummy(app->partyMenu->broadcast, v2, app->partyMenu->usedItemID); + FieldSystem_SaveTVSegment_HerbalMedicineTrainerSightingDummy(app->partyMenu->broadcast, v2, app->partyMenu->usedItemID); } sub_020852B8(app); diff --git a/src/battle/battle_system.c b/src/battle/battle_system.c index 4aaa58d384..5a7ed406de 100644 --- a/src/battle/battle_system.c +++ b/src/battle/battle_system.c @@ -69,7 +69,7 @@ #include "text.h" #include "trainer_data.h" #include "trainer_info.h" -#include "tv_episode_segment.h" +#include "tv_segment.h" #include "unk_02014A84.h" #include "unk_0202F1D4.h" diff --git a/src/berry_patch_manager.c b/src/berry_patch_manager.c index d617adb9d3..3d70e36b13 100644 --- a/src/berry_patch_manager.c +++ b/src/berry_patch_manager.c @@ -26,7 +26,7 @@ #include "sys_task_manager.h" #include "system.h" #include "terrain_collision_manager.h" -#include "tv_episode_segment.h" +#include "tv_segment.h" #include "unk_020655F4.h" typedef struct BerryWateringTask { @@ -157,7 +157,7 @@ BOOL BerryPatches_HarvestBerry(FieldSystem *fieldSystem, MapObject *mapObject) berryID = BerryPatches_GetPatchBerryID(berryPatches, patchID); yieldAmount = BerryPatches_GetPatchYield(berryPatches, patchID); - FieldSystem_SaveTVEpisodeSegment_PlantingAndWateringShow(fieldSystem, BerryPatches_ConvertTagNumberToItemID(berryID), BerryPatches_GetPatchYieldRating(berryPatches, patchID), yieldAmount); + FieldSystem_SaveTVSegment_PlantingAndWateringShow(fieldSystem, BerryPatches_ConvertTagNumberToItemID(berryID), BerryPatches_GetPatchYieldRating(berryPatches, patchID), yieldAmount); BerryPatches_HarvestPatch(berryPatches, patchID); BerryPatchGraphics_MarkForUpdate(mapObject); diff --git a/src/comm_player_manager.c b/src/comm_player_manager.c index 3209233867..a06ba7bdad 100644 --- a/src/comm_player_manager.c +++ b/src/comm_player_manager.c @@ -39,7 +39,7 @@ #include "system.h" #include "terrain_collision_manager.h" #include "trainer_info.h" -#include "tv_episode_segment.h" +#include "tv_segment.h" #include "underground.h" #include "unk_020366A0.h" #include "unk_0205F180.h" diff --git a/src/contest.c b/src/contest.c index 90d215b056..daf814bdae 100644 --- a/src/contest.c +++ b/src/contest.c @@ -54,7 +54,7 @@ #include "sys_task_manager.h" #include "system_flags.h" #include "trainer_info.h" -#include "tv_episode_segment.h" +#include "tv_segment.h" #include "unk_020298BC.h" #include "unk_020363E8.h" #include "unk_02094EDC.h" diff --git a/src/encounter.c b/src/encounter.c index 89d4d0d652..9ed621efdd 100644 --- a/src/encounter.c +++ b/src/encounter.c @@ -44,7 +44,7 @@ #include "system_flags.h" #include "system_vars.h" #include "trainer_data.h" -#include "tv_episode_segment.h" +#include "tv_segment.h" #include "unk_0202F1D4.h" #include "unk_0203D1B8.h" #include "unk_020528D0.h" @@ -186,7 +186,7 @@ static BOOL FieldTask_Encounter(FieldTask *task) if (encounter->dto->battleType == BATTLE_TYPE_WILD_MON || encounter->dto->battleType == BATTLE_TYPE_ROAMER || encounter->dto->battleType == BATTLE_TYPE_AI_PARTNER) { - FieldSystem_SaveTVEpisodeSegment_CatchThatPokemonShow(fieldSystem, encounter->dto->captureAttempt, encounter->dto->resultMask); + FieldSystem_SaveTVSegment_CatchThatPokemonShow(fieldSystem, encounter->dto->captureAttempt, encounter->dto->resultMask); } if (CheckPlayerWonEncounter(encounter) == FALSE) { @@ -386,7 +386,7 @@ static BOOL FieldTask_WildEncounter(FieldTask *task) case 3: UpdateFieldSystemFromDTO(encounter->dto, fieldSystem); - FieldSystem_SaveTVEpisodeSegment_CatchThatPokemonShow(fieldSystem, encounter->dto->captureAttempt, encounter->dto->resultMask); + FieldSystem_SaveTVSegment_CatchThatPokemonShow(fieldSystem, encounter->dto->captureAttempt, encounter->dto->resultMask); if (CheckPlayerWonBattle(encounter->dto->resultMask) == 0) { FreeWildEncounter(encounter); diff --git a/src/field_battle_data_transfer.c b/src/field_battle_data_transfer.c index 761651fe60..7556b6ac14 100644 --- a/src/field_battle_data_transfer.c +++ b/src/field_battle_data_transfer.c @@ -50,7 +50,7 @@ #include "system_vars.h" #include "terrain_collision_manager.h" #include "trainer_info.h" -#include "tv_episode_segment.h" +#include "tv_segment.h" #include "unk_0203266C.h" #include "unk_020366A0.h" #include "unk_020559DC.h" diff --git a/src/meson.build b/src/meson.build index a3963cdd26..720e1131e7 100644 --- a/src/meson.build +++ b/src/meson.build @@ -258,7 +258,7 @@ pokeplatinum_c = files( 'roaming_pokemon.c', 'npc_trade_task.c', 'cutscenes/boat_cutscene/boat_cutscene.c', - 'tv_episode_segment.c', + 'tv_segment.c', 'rankings_machine.c', 'unk_02070428.c', 'field_move_tasks.c', @@ -459,7 +459,7 @@ pokeplatinum_c = files( 'overlay006/hm_cut_in.c', 'overlay006/roamer_after_battle.c', 'overlay006/npc_trade.c', - 'overlay006/ov6_02246444.c', + 'overlay006/tv_episode.c', 'overlay006/ov6_022465FC.c', 'overlay006/tv_commercials.c', 'overlay006/special_dates.c', diff --git a/src/overlay005/fishing.c b/src/overlay005/fishing.c index 677f0e5452..2c201f9e28 100644 --- a/src/overlay005/fishing.c +++ b/src/overlay005/fishing.c @@ -34,7 +34,7 @@ #include "sys_task.h" #include "sys_task_manager.h" #include "system.h" -#include "tv_episode_segment.h" +#include "tv_segment.h" #include "unk_020655F4.h" #include "res/text/bank/common_strings.h" @@ -137,7 +137,7 @@ BOOL FieldTask_Fishing(FieldTask *taskMan) if (caughtFish == TRUE) { Pokemon *wildFish = Party_GetPokemonBySlotIndex(fishingContext->fishEncounterDTO->parties[1], 0); - FieldSystem_SaveTVEpisodeSegment_WhatsFishing(fieldSystem, TRUE, fishingContext->fishingRodItemID, wildFish); + FieldSystem_SaveTVSegment_WhatsFishing(fieldSystem, TRUE, fishingContext->fishingRodItemID, wildFish); GameRecords_IncrementRecordValue(SaveData_GetGameRecords(fieldSystem->saveData), RECORD_CAUGHT_FISH); @@ -365,7 +365,7 @@ static BOOL FishingTask_FishGotAway(FishingTask *fishingTask, PlayerAvatar *play GameRecords_IncrementRecordValue(SaveData_GetGameRecords(fishingTask->fieldSystem->saveData), RECORD_FISH_GOT_AWAY); - FieldSystem_SaveTVEpisodeSegment_WhatsFishing(fishingTask->fieldSystem, FALSE, ConvertRodTypeToRodItem(fishingTask->rodType), NULL); + FieldSystem_SaveTVSegment_WhatsFishing(fishingTask->fieldSystem, FALSE, ConvertRodTypeToRodItem(fishingTask->rodType), NULL); return TRUE; } diff --git a/src/overlay005/size_contest.c b/src/overlay005/size_contest.c index 254c154a7f..a1adc94a2d 100644 --- a/src/overlay005/size_contest.c +++ b/src/overlay005/size_contest.c @@ -15,7 +15,7 @@ #include "string_gf.h" #include "string_template.h" #include "system_vars.h" -#include "tv_episode_segment.h" +#include "tv_segment.h" #include "vars_flags.h" #define MM_TO_TENTH_OF_INCH(length) (((length * 1000) / 254 + 5) / 10) diff --git a/src/overlay006/ov6_02246444.c b/src/overlay006/ov6_02246444.c deleted file mode 100644 index 3e899fea0a..0000000000 --- a/src/overlay006/ov6_02246444.c +++ /dev/null @@ -1,159 +0,0 @@ -#include "overlay006/ov6_02246444.h" - -#include -#include - -#include "constants/tv_broadcast.h" - -#include "struct_decls/struct_0202440C_decl.h" -#include "struct_decls/struct_0202E4D4_decl.h" -#include "struct_decls/struct_0202E768_decl.h" -#include "struct_decls/struct_0202E794_decl.h" - -#include "field/field_system.h" -#include "savedata/save_table.h" - -#include "charcode_util.h" -#include "field_battle_data_transfer.h" -#include "heap.h" -#include "save_player.h" -#include "trainer_info.h" -#include "unk_0202E2CC.h" - -struct UnkStruct_ov6_022465F4_t { - u8 unk_00; - u8 unk_01; - u8 language; - u8 unk_03; - u16 unk_04[8]; - UnkStruct_0202E4D4 *unk_14; -}; - -static void ov6_02246444(UnkStruct_ov6_022465F4 *param0) -{ - MI_CpuClear8(param0, sizeof(UnkStruct_ov6_022465F4)); -} - -static void ov6_02246450(UnkStruct_ov6_022465F4 *param0, int param1) -{ - param0->unk_03 = param1; -} - -static void ov6_02246454(UnkStruct_ov6_022465F4 *param0, int language) -{ - param0->language = language; -} - -static void ov6_02246458(UnkStruct_ov6_022465F4 *param0, int param1) -{ - param0->unk_01 = param1; -} - -static void ov6_0224645C(UnkStruct_ov6_022465F4 *param0, const u16 *param1) -{ - CharCode_CopyNumChars(param0->unk_04, param1, 7 + 1); -} - -static void ov6_02246468(UnkStruct_ov6_022465F4 *param0, UnkStruct_0202E4D4 *param1) -{ - param0->unk_00 = sub_0202E55C(param1); - param0->unk_14 = param1; -} - -void ov6_0224647C(UnkStruct_ov6_022465F4 *param0) -{ - if (param0->unk_14 != NULL) { - sub_0202E560(param0->unk_14); - } -} - -int ov6_0224648C(const UnkStruct_ov6_022465F4 *param0) -{ - return param0->unk_03; -} - -int ov6_02246490(const UnkStruct_ov6_022465F4 *param0) -{ - return param0->language; -} - -const u16 *ov6_02246494(const UnkStruct_ov6_022465F4 *param0) -{ - return param0->unk_04; -} - -void *ov6_02246498(UnkStruct_ov6_022465F4 *param0) -{ - return sub_0202E574(param0->unk_14); -} - -int ov6_022464A4(const UnkStruct_ov6_022465F4 *param0) -{ - return param0->unk_00; -} - -static UnkStruct_ov6_022465F4 *ov6_022464A8(FieldSystem *fieldSystem, UnkStruct_0202E794 *param1) -{ - UnkStruct_ov6_022465F4 *v0 = Heap_Alloc(HEAP_ID_FIELD1, sizeof(UnkStruct_ov6_022465F4)); - - ov6_02246444(v0); - ov6_0224645C(v0, sub_0202E4C8(param1)); - ov6_02246454(v0, sub_0202E4CC(param1)); - ov6_02246458(v0, sub_0202E4D0(param1)); - ov6_02246468(v0, sub_0202E4D4(param1)); - - return v0; -} - -static UnkStruct_ov6_022465F4 *ov6_022464F8(FieldSystem *fieldSystem, UnkStruct_0202E768 *param1) -{ - TrainerInfo *v0 = SaveData_GetTrainerInfo(fieldSystem->saveData); - UnkStruct_ov6_022465F4 *v1 = Heap_Alloc(HEAP_ID_FIELD1, sizeof(UnkStruct_ov6_022465F4)); - - ov6_02246444(v1); - ov6_0224645C(v1, TrainerInfo_Name(v0)); - ov6_02246450(v1, TrainerInfo_Gender(v0)); - ov6_02246454(v1, GAME_LANGUAGE); - ov6_02246458(v1, GAME_VERSION); - ov6_02246468(v1, sub_0202E4D8(param1)); - - return v1; -} - -static UnkStruct_ov6_022465F4 *ov6_02246550(FieldSystem *fieldSystem, int param1) -{ - TrainerInfo *v0 = SaveData_GetTrainerInfo(fieldSystem->saveData); - UnkStruct_ov6_022465F4 *v1 = Heap_Alloc(HEAP_ID_FIELD1, sizeof(UnkStruct_ov6_022465F4)); - - ov6_02246444(v1); - v1->unk_00 = param1; - ov6_0224645C(v1, TrainerInfo_Name(v0)); - ov6_02246450(v1, TrainerInfo_Gender(v0)); - ov6_02246454(v1, GAME_LANGUAGE); - ov6_02246458(v1, GAME_VERSION); - - v1->unk_14 = NULL; - return v1; -} - -UnkStruct_ov6_022465F4 *ov6_022465A0(FieldSystem *fieldSystem, int programType, int param2) -{ - TVBroadcast *broadcast = SaveData_GetTVBroadcast(fieldSystem->saveData); - - if ((programType == TV_PROGRAM_TYPE_SINNOH_NOW) || (programType == TV_PROGRAM_TYPE_VARIETY_HOUR)) { - return ov6_02246550(fieldSystem, param2); - } - - if (sub_0202E7C0(param2) == 0) { - UnkStruct_0202E794 *v1 = sub_0202E794(broadcast, programType, param2); - return ov6_022464A8(fieldSystem, v1); - } else { - UnkStruct_0202E768 *v2 = sub_0202E768(broadcast, programType, param2); - return ov6_022464F8(fieldSystem, v2); - } -} - -void ov6_022465F4(UnkStruct_ov6_022465F4 *param0) -{ - Heap_Free(param0); -} diff --git a/src/overlay006/ov6_022465FC.c b/src/overlay006/ov6_022465FC.c index 0a2728ff11..87b8d25031 100644 --- a/src/overlay006/ov6_022465FC.c +++ b/src/overlay006/ov6_022465FC.c @@ -1,21 +1,19 @@ #include "overlay006/ov6_022465FC.h" #include -#include #include "constants/tv_broadcast.h" #include "struct_decls/struct_0202440C_decl.h" #include "field/field_system.h" -#include "overlay006/ov6_02246444.h" +#include "overlay006/tv_episode.h" #include "savedata/save_table.h" -#include "field_battle_data_transfer.h" #include "math_util.h" #include "narc.h" #include "rtc.h" -#include "tv_episode_segment.h" +#include "tv_segment.h" #include "unk_0202E2CC.h" #include "unk_020559DC.h" @@ -132,14 +130,13 @@ void FieldSystem_SetTVProgramFinished(FieldSystem *fieldSystem) int TVBroadcast_GetPendingBroadcastType(FieldSystem *fieldSystem) { - int playedCount; TVBroadcast *broadcast = SaveData_GetTVBroadcast(fieldSystem->saveData); if (TVBroadcast_IsProgramFinished(broadcast) == TRUE) { return TV_BROADCAST_STATUS_FINISHED; } - playedCount = TVBroadcast_CountPlayedSegments(broadcast); + int playedCount = TVBroadcast_CountPlayedSegments(broadcast); if (playedCount == 0) { return TV_BROADCAST_STATUS_BEGIN; @@ -154,18 +151,14 @@ int TVBroadcast_GetPendingBroadcastType(FieldSystem *fieldSystem) static int TVBroadcast_GetScheduledProgramID(FieldSystem *fieldSystem) { - u8 tvProgramID; + int dayOfWeek = (FieldSystem_GetWeek(fieldSystem) + (RTC_WEEK_MAX - 1)) % RTC_WEEK_MAX; + int hour = FieldSystem_GetHour(fieldSystem); + int minute = FieldSystem_GetMinute(fieldSystem); + int offset = (((19 + hour) % HOURS_PER_DAY) * TV_BROADCAST_PROGRAMS_PER_HOUR + (minute / TV_BROADCAST_MINUTES_PER_PROGRAM)) * RTC_WEEK_MAX; + u8 weekTimeSlot[RTC_WEEK_MAX]; - int dayOfWeek, hour, minute; - int offset; - - dayOfWeek = (FieldSystem_GetWeek(fieldSystem) + (RTC_WEEK_MAX - 1)) % RTC_WEEK_MAX; - hour = FieldSystem_GetHour(fieldSystem); - minute = FieldSystem_GetMinute(fieldSystem); - offset = (((19 + hour) % HOURS_PER_DAY) * TV_BROADCAST_PROGRAMS_PER_HOUR + (minute / TV_BROADCAST_MINUTES_PER_PROGRAM)) * RTC_WEEK_MAX; - NARC_ReadFromMemberByIndexPair(weekTimeSlot, NARC_INDEX_ARC__TV, 0, offset, sizeof(weekTimeSlot)); - tvProgramID = weekTimeSlot[dayOfWeek]; + u8 tvProgramID = weekTimeSlot[dayOfWeek]; GF_ASSERT(0 < tvProgramID && tvProgramID < TV_BROADCAST_MAX_PROGRAM); return tvProgramID; @@ -198,13 +191,12 @@ static BOOL TVBroadcast_IsValidProgramSegmentDummy(FieldSystem *fieldSystem, int static void TVBroadcast_LoadProgramSegmentIDs(int programID, FieldSystem *fieldSystem, u8 *programSegmentIDs) { u8 loadedSegmentIDs[TV_BROADCAST_MAX_PROGRAM_SEGMENTS]; - int loadedIndex, copiedIndex; TVBroadcast *broadcast = SaveData_GetTVBroadcast(fieldSystem->saveData); TVBroadcast_LoadProgramSegmentIDsFromNarc(programID, loadedSegmentIDs); MI_CpuClear8(programSegmentIDs, sizeof(u8) * TV_BROADCAST_MAX_PROGRAM_SEGMENTS); - for (loadedIndex = 0, copiedIndex = 0; loadedIndex < TV_BROADCAST_MAX_PROGRAM_SEGMENTS; loadedIndex++) { + for (int loadedIndex = 0, copiedIndex = 0; loadedIndex < TV_BROADCAST_MAX_PROGRAM_SEGMENTS; loadedIndex++) { if (loadedSegmentIDs[loadedIndex] == NULL) { break; } @@ -261,18 +253,17 @@ static int ov6_0224678C(TVBroadcast *broadcast, int programType, int param2, BOO return 0; } -static int TVBroadcast_GetPendingEpisodeSegments(int programType, FieldSystem *fieldSystem, BOOL param2, BOOL param3, const u8 *programSegmentIDs, u8 *pendingSegmentIDs) +static int TVBroadcast_GetPendingSegments(int programType, FieldSystem *fieldSystem, BOOL param2, BOOL param3, const u8 *programSegmentIDs, u8 *pendingSegmentIDs) { u8 loadedPendingSegments[TV_BROADCAST_MAX_UNFILTERED_PENDING_SEGMENTS]; TVBroadcast *broadcast = SaveData_GetTVBroadcast(fieldSystem->saveData); - int v2, loadedIndex; int pendingCount = 0; while (*programSegmentIDs != NULL) { MI_CpuClear8(loadedPendingSegments, TV_BROADCAST_MAX_UNFILTERED_PENDING_SEGMENTS); if (ov6_0224678C(broadcast, programType, *programSegmentIDs, param2, param3, loadedPendingSegments)) { - for (loadedIndex = 0; loadedPendingSegments[loadedIndex] != 0 && loadedIndex < TV_BROADCAST_MAX_UNFILTERED_PENDING_SEGMENTS; loadedIndex++) { + for (int loadedIndex = 0; loadedPendingSegments[loadedIndex] != 0 && loadedIndex < TV_BROADCAST_MAX_UNFILTERED_PENDING_SEGMENTS; loadedIndex++) { pendingSegmentIDs[pendingCount] = loadedPendingSegments[loadedIndex]; pendingCount++; } @@ -284,32 +275,29 @@ static int TVBroadcast_GetPendingEpisodeSegments(int programType, FieldSystem *f return pendingCount; } -static void ov6_02246844(FieldSystem *fieldSystem, int programType, u8 *pendingSegmentIDs) +static void TVBroadcast_ExcludeIneligibleSegments(FieldSystem *fieldSystem, int programType, u8 *pendingSegmentIDs) { - int segmentIndex; - UnkStruct_ov6_022465F4 *v1; + for (int segmentIndex = 0; *pendingSegmentIDs != NULL && segmentIndex < TV_BROADCAST_MAX_UNFILTERED_PENDING_SEGMENTS; pendingSegmentIDs++, segmentIndex++) { + TVEpisode *episode = TVEpisode_New(fieldSystem, programType, *pendingSegmentIDs); - for (segmentIndex = 0; *pendingSegmentIDs != NULL && segmentIndex < TV_BROADCAST_MAX_UNFILTERED_PENDING_SEGMENTS; pendingSegmentIDs++, segmentIndex++) { - v1 = ov6_022465A0(fieldSystem, programType, *pendingSegmentIDs); - - if (!TVEpisodeSegment_IsEligible(programType, fieldSystem, v1)) { + if (!TVSegment_IsEligible(programType, fieldSystem, episode)) { *pendingSegmentIDs = NULL; } - ov6_022465F4(v1); + TVEpisode_Free(episode); } } -static void TVBroadcast_ExcludePlayedSegments(FieldSystem *fieldSystem, u8 *param1) +static void TVBroadcast_ExcludePlayedSegments(FieldSystem *fieldSystem, u8 *pendingSegmentIDs) { TVBroadcast *broadcast = SaveData_GetTVBroadcast(fieldSystem->saveData); - while (*param1 != 0) { - if (TVBroadcast_IsPlayedSegment(broadcast, *param1)) { - *param1 = NULL; + while (*pendingSegmentIDs != NULL) { + if (TVBroadcast_IsPlayedSegment(broadcast, *pendingSegmentIDs)) { + *pendingSegmentIDs = NULL; } - param1++; + pendingSegmentIDs++; } } @@ -317,25 +305,22 @@ int ov6_022468B0(FieldSystem *fieldSystem, BOOL param1, BOOL param2) { u8 programSegmentIDs[TV_BROADCAST_MAX_PROGRAM_SEGMENTS]; u8 pendingSegmentIDs[TV_BROADCAST_MAX_UNFILTERED_PENDING_SEGMENTS]; - int result; - int programID; - int programType; - programID = TVBroadcast_GetScheduledProgramID(fieldSystem); - programType = TVBroadcast_GetProgramType(programID); + int programID = TVBroadcast_GetScheduledProgramID(fieldSystem); + int programType = TVBroadcast_GetProgramType(programID); MI_CpuClear8(programSegmentIDs, TV_BROADCAST_MAX_PROGRAM_SEGMENTS); MI_CpuClear8(pendingSegmentIDs, TV_BROADCAST_MAX_UNFILTERED_PENDING_SEGMENTS); TVBroadcast_LoadProgramSegmentIDs(programID, fieldSystem, programSegmentIDs); - result = TVBroadcast_GetPendingEpisodeSegments(programType, fieldSystem, param1, param2, programSegmentIDs, pendingSegmentIDs); + int result = TVBroadcast_GetPendingSegments(programType, fieldSystem, param1, param2, programSegmentIDs, pendingSegmentIDs); if (result == NULL) { return NULL; } - ov6_02246844(fieldSystem, programType, pendingSegmentIDs); + TVBroadcast_ExcludeIneligibleSegments(fieldSystem, programType, pendingSegmentIDs); TVBroadcast_ExcludePlayedSegments(fieldSystem, pendingSegmentIDs); result = TVBroadcast_RandomPendingSegment(fieldSystem, pendingSegmentIDs); @@ -343,28 +328,28 @@ int ov6_022468B0(FieldSystem *fieldSystem, BOOL param1, BOOL param2) return result; } -int ov6_02246920(FieldSystem *fieldSystem) +int TVBroadcast_GetNextSegmentID(FieldSystem *fieldSystem) { - int v0 = ov6_022468B0(fieldSystem, FALSE, FALSE); + int segmentID = ov6_022468B0(fieldSystem, FALSE, FALSE); - if (v0) { - return v0; + if (segmentID) { + return segmentID; } - v0 = ov6_022468B0(fieldSystem, TRUE, FALSE); + segmentID = ov6_022468B0(fieldSystem, TRUE, FALSE); - if (v0) { - return v0; + if (segmentID) { + return segmentID; } - v0 = ov6_022468B0(fieldSystem, FALSE, TRUE); + segmentID = ov6_022468B0(fieldSystem, FALSE, TRUE); - if (v0) { - return v0; + if (segmentID) { + return segmentID; } - v0 = ov6_022468B0(fieldSystem, TRUE, TRUE); - return v0; + segmentID = ov6_022468B0(fieldSystem, TRUE, TRUE); + return segmentID; } static const TVProgramFramingMessages *TVBroadcast_GetScheduledProgramMessages(FieldSystem *fieldSystem) @@ -410,15 +395,14 @@ BOOL TVBroadcast_LoadSegmentMessage(FieldSystem *fieldSystem, StringTemplate *te int programID = TVBroadcast_GetScheduledProgramID(fieldSystem); int programType = TVBroadcast_GetProgramType(programID); TVBroadcast *broadcast = SaveData_GetTVBroadcast(fieldSystem->saveData); - UnkStruct_ov6_022465F4 *segment; TVBroadcast_SetPlayedSegment(broadcast, segmentID); - segment = ov6_022465A0(fieldSystem, programType, segmentID); + TVEpisode *episode = TVEpisode_New(fieldSystem, programType, segmentID); - ov6_0224647C(segment); - *messageDestVar = TVEpisodeSegment_LoadMessage(programType, fieldSystem, template, segment, bankDestVar); - ov6_022465F4(segment); + TVEpisode_IncrementTimesPlayed(episode); + *messageDestVar = TVSegment_LoadMessage(programType, fieldSystem, template, episode, bankDestVar); + TVEpisode_Free(episode); return TRUE; } diff --git a/src/overlay006/tv_episode.c b/src/overlay006/tv_episode.c new file mode 100644 index 0000000000..daf2a6c1bd --- /dev/null +++ b/src/overlay006/tv_episode.c @@ -0,0 +1,145 @@ +#include "overlay006/tv_episode.h" + +#include + +#include "constants/tv_broadcast.h" + +#include "struct_decls/struct_0202440C_decl.h" + +#include "field/field_system.h" +#include "savedata/save_table.h" + +#include "charcode_util.h" +#include "heap.h" +#include "save_player.h" +#include "trainer_info.h" +#include "unk_0202E2CC.h" + +static void TVEpisode_Clear(TVEpisode *episode) +{ + MI_CpuClear8(episode, sizeof(TVEpisode)); +} + +static void TVEpisode_SetGender(TVEpisode *episode, int gender) +{ + episode->gender = gender; +} + +static void TVEpisode_SetLanguage(TVEpisode *episode, int language) +{ + episode->language = language; +} + +static void TVEpisode_SetGameVersion(TVEpisode *episode, int gameVersion) +{ + episode->gameVersion = gameVersion; +} + +static void TVEpisode_SetTrainerName(TVEpisode *episode, const u16 *name) +{ + CharCode_CopyNumChars(episode->name, name, TRAINER_NAME_LEN + 1); +} + +static void TVEpisode_SetDetails(TVEpisode *episode, TVSegmentInstance *segmentInstance) +{ + episode->segmentID = sub_0202E55C(segmentInstance); + episode->details = segmentInstance; +} + +void TVEpisode_IncrementTimesPlayed(TVEpisode *episode) +{ + if (episode->details != NULL) { + sub_0202E560(episode->details); + } +} + +int TVEpisode_GetGender(const TVEpisode *episode) +{ + return episode->gender; +} + +int TVEpisode_GetLanguage(const TVEpisode *episode) +{ + return episode->language; +} + +const u16 *TVEpisode_GetTrainerName(const TVEpisode *episode) +{ + return episode->name; +} + +void *TVEpisode_GetSegment(TVEpisode *episode) +{ + return sub_0202E574(episode->details); +} + +int TVEpisode_GetSegmentID(const TVEpisode *episode) +{ + return episode->segmentID; +} + +static TVEpisode *CreateTVEpisodeFromWifiEpisode(FieldSystem *fieldSystem, TVWifiEpisode *wifiEpisode) +{ + TVEpisode *episode = Heap_Alloc(HEAP_ID_FIELD1, sizeof(TVEpisode)); + + TVEpisode_Clear(episode); + TVEpisode_SetTrainerName(episode, sub_0202E4C8(wifiEpisode)); + TVEpisode_SetLanguage(episode, sub_0202E4CC(wifiEpisode)); + TVEpisode_SetGameVersion(episode, sub_0202E4D0(wifiEpisode)); + TVEpisode_SetDetails(episode, sub_0202E4D4(wifiEpisode)); + + return episode; +} + +static TVEpisode *CreateTVEpisodeFromSegmentInstance(FieldSystem *fieldSystem, TVSegmentInstance *instance) +{ + TrainerInfo *playerInfo = SaveData_GetTrainerInfo(fieldSystem->saveData); + TVEpisode *episode = Heap_Alloc(HEAP_ID_FIELD1, sizeof(TVEpisode)); + + TVEpisode_Clear(episode); + TVEpisode_SetTrainerName(episode, TrainerInfo_Name(playerInfo)); + TVEpisode_SetGender(episode, TrainerInfo_Gender(playerInfo)); + TVEpisode_SetLanguage(episode, GAME_LANGUAGE); + TVEpisode_SetGameVersion(episode, GAME_VERSION); + TVEpisode_SetDetails(episode, sub_0202E4D8(instance)); + + return episode; +} + +static TVEpisode *CreateEmptyTVEpisode(FieldSystem *fieldSystem, int segmentID) +{ + TrainerInfo *playerInfo = SaveData_GetTrainerInfo(fieldSystem->saveData); + TVEpisode *episode = Heap_Alloc(HEAP_ID_FIELD1, sizeof(TVEpisode)); + + TVEpisode_Clear(episode); + episode->segmentID = segmentID; + TVEpisode_SetTrainerName(episode, TrainerInfo_Name(playerInfo)); + TVEpisode_SetGender(episode, TrainerInfo_Gender(playerInfo)); + TVEpisode_SetLanguage(episode, GAME_LANGUAGE); + TVEpisode_SetGameVersion(episode, GAME_VERSION); + + episode->details = NULL; + return episode; +} + +TVEpisode *TVEpisode_New(FieldSystem *fieldSystem, int programType, int segmentID) +{ + TVBroadcast *broadcast = SaveData_GetTVBroadcast(fieldSystem->saveData); + + if (programType == TV_PROGRAM_TYPE_SINNOH_NOW || programType == TV_PROGRAM_TYPE_VARIETY_HOUR) { + return CreateEmptyTVEpisode(fieldSystem, segmentID); + } + + if (sub_0202E7C0(segmentID) == 0) { + TVWifiEpisode *wifiEpisode = sub_0202E794(broadcast, programType, segmentID); + return CreateTVEpisodeFromWifiEpisode(fieldSystem, wifiEpisode); + } else { + TVSegmentInstance *instance = sub_0202E768(broadcast, programType, segmentID); + return CreateTVEpisodeFromSegmentInstance(fieldSystem, instance); + } +} + +void TVEpisode_Free(TVEpisode *episode) +{ + Heap_Free(episode); +} diff --git a/src/overlay007/shop_menu.c b/src/overlay007/shop_menu.c index 22cc6204ad..3acdadbb49 100644 --- a/src/overlay007/shop_menu.c +++ b/src/overlay007/shop_menu.c @@ -52,7 +52,7 @@ #include "system_vars.h" #include "text.h" #include "trainer_info.h" -#include "tv_episode_segment.h" +#include "tv_segment.h" #include "underground.h" #include "unk_0202C9F4.h" #include "unk_0202D05C.h" @@ -1217,7 +1217,7 @@ static u8 Shop_ConfirmItemPurchase(ShopMenu *shopMenu) if (shopMenu->martType == MART_TYPE_NORMAL) { Bag_TryAddItem(shopMenu->destInventory, shopMenu->itemId, shopMenu->itemAmount, HEAP_ID_FIELD2); - FieldSystem_SaveTVEpisodeSegment_SinnohShoppingChampCorner(shopMenu->saveData, shopMenu->itemId, shopMenu->itemAmount); + FieldSystem_SaveTVSegment_SinnohShoppingChampCorner(shopMenu->saveData, shopMenu->itemId, shopMenu->itemAmount); } else if (shopMenu->martType == MART_TYPE_FRONTIER) { Bag_TryAddItem(shopMenu->destInventory, shopMenu->itemId, shopMenu->itemAmount, HEAP_ID_FIELD2); } else if (shopMenu->martType == MART_TYPE_DECOR) { diff --git a/src/overlay059/ov59_021D2B44.c b/src/overlay059/ov59_021D2B44.c index 8d733448d9..c2074048cb 100644 --- a/src/overlay059/ov59_021D2B44.c +++ b/src/overlay059/ov59_021D2B44.c @@ -4,8 +4,6 @@ #include #include "struct_defs/struct_0202440C.h" -#include "struct_defs/struct_0202E768.h" -#include "struct_defs/struct_0202E794.h" #include "savedata/save_table.h" @@ -121,17 +119,17 @@ static const u8 *const Unk_ov59_021D33E4[] = { u32 ov59_021D2B44(const SaveData *saveData) { - return sizeof(UnkStruct_0202E794) * 4; + return sizeof(TVWifiEpisode) * 4; } u32 ov59_021D2B4C(const SaveData *saveData) { - return sizeof(UnkStruct_0202E794) * 4; + return sizeof(TVWifiEpisode) * 4; } u32 ov59_021D2B54(const SaveData *saveData) { - return sizeof(UnkStruct_0202E794) * 4; + return sizeof(TVWifiEpisode) * 4; } static BOOL ov59_021D2B5C(int param0, int param1) @@ -147,33 +145,33 @@ static BOOL ov59_021D2B5C(int param0, int param1) return 0; } -static void ov59_021D2B90(SaveData *saveData, UnkStruct_0202E794 *param1, UnkStruct_0202E768 *param2, int param3, int param4, int param5) +static void ov59_021D2B90(SaveData *saveData, TVWifiEpisode *param1, TVSegmentInstance *param2, int param3, int param4, int param5) { int v0; TrainerInfo *v1 = SaveData_GetTrainerInfo(saveData); for (v0 = 0; v0 < param3; v0++, param1++) { - MI_CpuClearFast(param1, sizeof(UnkStruct_0202E794)); + MI_CpuClearFast(param1, sizeof(TVWifiEpisode)); - param1->unk_00 = TrainerInfo_ID(v1); - param1->unk_04 = TrainerInfo_Gender(v1); - param1->unk_05 = GAME_VERSION; + param1->trainerID = TrainerInfo_ID(v1); + param1->gender = TrainerInfo_Gender(v1); + param1->gameVersion = GAME_VERSION; param1->language = GAME_LANGUAGE; - CharCode_CopyNumChars(param1->unk_08, TrainerInfo_Name(v1), 7 + 1); + CharCode_CopyNumChars(param1->name, TrainerInfo_Name(v1), 7 + 1); - param1->unk_18 = param2[v0].unk_00; - param1->unk_18.unk_01 = 0; + param1->details = param2[v0]; + param1->details.timesPlayed = 0; - if ((param4 == 1) && (ov59_021D2B5C(param5, param1->unk_18.unk_00) == 0)) { - param1->unk_18.unk_00 = 0; + if ((param4 == 1) && (ov59_021D2B5C(param5, param1->details.segmentID) == 0)) { + param1->details.segmentID = 0; } } } -UnkStruct_0202E794 *ov59_021D2C28(SaveData *saveData, enum HeapID heapID, u32 param2) +TVWifiEpisode *ov59_021D2C28(SaveData *saveData, enum HeapID heapID, u32 param2) { - UnkStruct_0202E794 *v0 = Heap_AllocAtEnd(heapID, param2); + TVWifiEpisode *v0 = Heap_AllocAtEnd(heapID, param2); TVBroadcast *broadcast = SaveData_GetTVBroadcast(saveData); GF_ASSERT(param2 == ov59_021D2B44(saveData)); @@ -182,9 +180,9 @@ UnkStruct_0202E794 *ov59_021D2C28(SaveData *saveData, enum HeapID heapID, u32 pa return v0; } -UnkStruct_0202E794 *ov59_021D2C70(SaveData *saveData, enum HeapID heapID, u32 param2) +TVWifiEpisode *ov59_021D2C70(SaveData *saveData, enum HeapID heapID, u32 param2) { - UnkStruct_0202E794 *v0 = Heap_AllocAtEnd(heapID, param2); + TVWifiEpisode *v0 = Heap_AllocAtEnd(heapID, param2); TVBroadcast *broadcast = SaveData_GetTVBroadcast(saveData); GF_ASSERT(param2 == ov59_021D2B4C(saveData)); @@ -193,9 +191,9 @@ UnkStruct_0202E794 *ov59_021D2C70(SaveData *saveData, enum HeapID heapID, u32 pa return v0; } -UnkStruct_0202E794 *ov59_021D2CB4(SaveData *saveData, enum HeapID heapID, u32 param2) +TVWifiEpisode *ov59_021D2CB4(SaveData *saveData, enum HeapID heapID, u32 param2) { - UnkStruct_0202E794 *v0 = Heap_AllocAtEnd(heapID, param2); + TVWifiEpisode *v0 = Heap_AllocAtEnd(heapID, param2); TVBroadcast *broadcast = SaveData_GetTVBroadcast(saveData); GF_ASSERT(param2 == ov59_021D2B54(saveData)); @@ -204,9 +202,9 @@ UnkStruct_0202E794 *ov59_021D2CB4(SaveData *saveData, enum HeapID heapID, u32 pa return v0; } -UnkStruct_0202E794 *ov59_021D2CF8(SaveData *saveData, enum HeapID heapID, u32 param2) +TVWifiEpisode *ov59_021D2CF8(SaveData *saveData, enum HeapID heapID, u32 param2) { - UnkStruct_0202E794 *v0 = Heap_AllocAtEnd(heapID, param2); + TVWifiEpisode *v0 = Heap_AllocAtEnd(heapID, param2); TVBroadcast *broadcast = SaveData_GetTVBroadcast(saveData); GF_ASSERT(param2 == ov59_021D2B44(saveData)); @@ -215,9 +213,9 @@ UnkStruct_0202E794 *ov59_021D2CF8(SaveData *saveData, enum HeapID heapID, u32 pa return v0; } -UnkStruct_0202E794 *ov59_021D2D3C(SaveData *saveData, enum HeapID heapID, u32 param2) +TVWifiEpisode *ov59_021D2D3C(SaveData *saveData, enum HeapID heapID, u32 param2) { - UnkStruct_0202E794 *v0 = Heap_AllocAtEnd(heapID, param2); + TVWifiEpisode *v0 = Heap_AllocAtEnd(heapID, param2); TVBroadcast *broadcast = SaveData_GetTVBroadcast(saveData); GF_ASSERT(param2 == ov59_021D2B4C(saveData)); @@ -226,9 +224,9 @@ UnkStruct_0202E794 *ov59_021D2D3C(SaveData *saveData, enum HeapID heapID, u32 pa return v0; } -UnkStruct_0202E794 *ov59_021D2D80(SaveData *saveData, enum HeapID heapID, u32 param2) +TVWifiEpisode *ov59_021D2D80(SaveData *saveData, enum HeapID heapID, u32 param2) { - UnkStruct_0202E794 *v0 = Heap_AllocAtEnd(heapID, param2); + TVWifiEpisode *v0 = Heap_AllocAtEnd(heapID, param2); TVBroadcast *broadcast = SaveData_GetTVBroadcast(saveData); GF_ASSERT(param2 == ov59_021D2B54(saveData)); @@ -237,27 +235,27 @@ UnkStruct_0202E794 *ov59_021D2D80(SaveData *saveData, enum HeapID heapID, u32 pa return v0; } -static BOOL ov59_021D2DC4(UnkStruct_0202E794 *param0, int param1, const UnkStruct_0202E794 *param2, int param3) +static BOOL ov59_021D2DC4(TVWifiEpisode *param0, int param1, const TVWifiEpisode *param2, int param3) { int v0; - if (param2->unk_18.unk_00 == 0) { + if (param2->details.segmentID == 0) { return 0; } - if (ov59_021D2B5C(param3, param2->unk_18.unk_00) == 0) { + if (ov59_021D2B5C(param3, param2->details.segmentID) == 0) { return -1; } for (v0 = 0; v0 < param1; v0++) { - if (param0[v0].unk_18.unk_00 == 0) { + if (param0[v0].details.segmentID == 0) { param0[v0] = *param2; return 1; } } for (v0 = 0; v0 < param1; v0++) { - if (param0[v0].unk_18.unk_01 >= 3) { + if (param0[v0].details.timesPlayed >= 3) { param0[v0] = *param2; return 1; } @@ -281,7 +279,7 @@ static const void **ov59_021D2E40(int param0, const void **param1, const void ** return param1; } -static void ov59_021D2E60(UnkStruct_0202E794 *param0, int param1, int param2, int param3, const void **param4, const void **param5, int param6) +static void ov59_021D2E60(TVWifiEpisode *param0, int param1, int param2, int param3, const void **param4, const void **param5, int param6) { u8 v0[16]; int v1, v2, v3; @@ -312,7 +310,7 @@ static void ov59_021D2E60(UnkStruct_0202E794 *param0, int param1, int param2, in v4 = ov59_021D2E40(v1, param4, param5); if (v4 != NULL) { - ov59_021D2DC4(param0, param1, &((UnkStruct_0202E794 *)v4[v1])[v3], param6); + ov59_021D2DC4(param0, param1, &((TVWifiEpisode *)v4[v1])[v3], param6); } } } diff --git a/src/overlay083/ov83_0223B5A0.c b/src/overlay083/ov83_0223B5A0.c index 87345953b2..a922b4739d 100644 --- a/src/overlay083/ov83_0223B5A0.c +++ b/src/overlay083/ov83_0223B5A0.c @@ -36,7 +36,7 @@ #include "sound_playback.h" #include "sprite.h" #include "system.h" -#include "tv_episode_segment.h" +#include "tv_segment.h" #include "unk_0202ACE0.h" #include "unk_020363E8.h" #include "unk_020366A0.h" diff --git a/src/overlay094/screens/network_handler.c b/src/overlay094/screens/network_handler.c index 760525b73d..ffc7cb4c29 100644 --- a/src/overlay094/screens/network_handler.c +++ b/src/overlay094/screens/network_handler.c @@ -44,7 +44,7 @@ #include "string_template.h" #include "system_vars.h" #include "text.h" -#include "tv_episode_segment.h" +#include "tv_segment.h" #include "unk_0202F180.h" #include "unk_020366A0.h" #include "unk_02038F8C.h" diff --git a/src/overlay104/frscrcmd.c b/src/overlay104/frscrcmd.c index bc38a76325..d8f6d8acb9 100644 --- a/src/overlay104/frscrcmd.c +++ b/src/overlay104/frscrcmd.c @@ -82,7 +82,7 @@ #include "system.h" #include "text.h" #include "trainer_info.h" -#include "tv_episode_segment.h" +#include "tv_segment.h" #include "unk_0202ACE0.h" #include "unk_0202D05C.h" #include "unk_0202F1D4.h" diff --git a/src/overlay104/ov104_02234838.c b/src/overlay104/ov104_02234838.c index b87312fc8d..6c6810a78c 100644 --- a/src/overlay104/ov104_02234838.c +++ b/src/overlay104/ov104_02234838.c @@ -22,7 +22,7 @@ #include "party.h" #include "pokemon.h" #include "sound.h" -#include "tv_episode_segment.h" +#include "tv_segment.h" #include "unk_02030108.h" #include "unk_0209B6F8.h" #include "unk_0209BA80.h" diff --git a/src/overlay104/ov104_02239130.c b/src/overlay104/ov104_02239130.c index 7ee7b5a63a..d9bee5cb29 100644 --- a/src/overlay104/ov104_02239130.c +++ b/src/overlay104/ov104_02239130.c @@ -26,7 +26,7 @@ #include "pokemon.h" #include "savedata.h" #include "sound.h" -#include "tv_episode_segment.h" +#include "tv_segment.h" #include "unk_020363E8.h" #include "unk_02049D08.h" #include "unk_0209B6F8.h" diff --git a/src/scrcmd.c b/src/scrcmd.c index f1207ab876..effa2a869d 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -181,7 +181,7 @@ #include "trainer_case.h" #include "trainer_data.h" #include "trainer_info.h" -#include "tv_episode_segment.h" +#include "tv_segment.h" #include "underground.h" #include "unk_02014D38.h" #include "unk_020298BC.h" @@ -5291,7 +5291,7 @@ static BOOL ScrCmd_StartEndSafariGame(ScriptContext *ctx) break; case SAFARI_GAME_INACTIVE: SystemFlag_ClearSafariGameActive(varsFlags); - FieldSystem_SaveTVEpisodeSegment_SafariGameSpecialNewsBulletin(ctx->fieldSystem); + FieldSystem_SaveTVSegment_SafariGameSpecialNewsBulletin(ctx->fieldSystem); void *journalEntryLocationEvent = JournalEntry_CreateEventSafariGame(HEAP_ID_FIELD1); JournalEntry_SaveData(ctx->fieldSystem->journalEntry, journalEntryLocationEvent, JOURNAL_LOCATION); diff --git a/src/scrcmd_party.c b/src/scrcmd_party.c index f33a127099..0913f451cd 100644 --- a/src/scrcmd_party.c +++ b/src/scrcmd_party.c @@ -21,7 +21,7 @@ #include "pokemon.h" #include "ribbon.h" #include "save_player.h" -#include "tv_episode_segment.h" +#include "tv_segment.h" #include "unk_02017038.h" #include "unk_02054884.h" #include "unk_0205DFC4.h" diff --git a/src/scrcmd_tv_broadcast.c b/src/scrcmd_tv_broadcast.c index 20aaa1d89f..ae092003fb 100644 --- a/src/scrcmd_tv_broadcast.c +++ b/src/scrcmd_tv_broadcast.c @@ -14,7 +14,7 @@ #include "struct_defs/struct_0202E808.h" #include "struct_defs/struct_0202E810.h" #include "struct_defs/struct_0202E81C.h" -#include "struct_defs/tv_episode_segment_contest_hall_showcased_pokemon.h" +#include "struct_defs/tv_segment_contest_hall_showcased_pokemon.h" #include "applications/poketch/poketch_system.h" #include "field/field_system.h" @@ -33,7 +33,7 @@ #include "script_manager.h" #include "string_gf.h" #include "string_template.h" -#include "tv_episode_segment.h" +#include "tv_segment.h" #include "unk_020298BC.h" #include "unk_0202E2CC.h" #include "unk_02054884.h" @@ -96,7 +96,7 @@ BOOL ScrCmd_CallTVBroadcast(ScriptContext *ctx) } break; case TV_BROADCAST_CALL_GET_NEXT_SEGMENT_ID: { u16 *segmentDestVar = ScriptContext_GetVarPointer(ctx); - *segmentDestVar = ov6_02246920(ctx->fieldSystem); + *segmentDestVar = TVBroadcast_GetNextSegmentID(ctx->fieldSystem); } break; } @@ -105,7 +105,7 @@ BOOL ScrCmd_CallTVBroadcast(ScriptContext *ctx) BOOL ScrCmd_236(ScriptContext *param0) { - FieldSystem_SaveTVEpisodeSegment_HiddenItemBreakingNews(param0->fieldSystem, ScriptContext_GetVar(param0)); + FieldSystem_SaveTVSegment_HiddenItemBreakingNews(param0->fieldSystem, ScriptContext_GetVar(param0)); return 0; } @@ -114,19 +114,19 @@ BOOL ScrCmd_2B8(ScriptContext *param0) Party *v0 = SaveData_GetParty(param0->fieldSystem->saveData); Pokemon *v1 = Party_GetPokemonBySlotIndex(v0, ScriptContext_GetVar(param0)); - FieldSystem_SaveTVEpisodeSegment_RateThatNameChange(param0->fieldSystem, v1); + FieldSystem_SaveTVSegment_RateThatNameChange(param0->fieldSystem, v1); return 0; } BOOL ScrCmd_30B(ScriptContext *param0) { - FieldSystem_SaveTVEpisodeSegment_PokemonStorageSpecialNewsBulletin(param0->fieldSystem); + FieldSystem_SaveTVSegment_PokemonStorageSpecialNewsBulletin(param0->fieldSystem); return 0; } BOOL ScrCmd_30C(ScriptContext *param0) { - FieldSystem_SaveTVEpisodeSegment_HomeAndManor_NoFurniture(param0->fieldSystem); + FieldSystem_SaveTVSegment_HomeAndManor_NoFurniture(param0->fieldSystem); return 0; } @@ -134,7 +134,7 @@ BOOL ScrCmd_30D(ScriptContext *param0) { u16 v0 = ScriptContext_GetVar(param0); - FieldSystem_SaveTVEpisodeSegment_HomeAndManor(param0->fieldSystem, v0); + FieldSystem_SaveTVSegment_HomeAndManor(param0->fieldSystem, v0); return 0; } @@ -321,7 +321,7 @@ static BOOL sub_02049358(FieldSystem *fieldSystem) static BOOL sub_02049368(FieldSystem *fieldSystem) { - TVEpisodeSegment_ContestHall_ShowcasedPokemon *v0 = TVBroadcast_GetShowcasedPokemon(SaveData_GetTVBroadcast(fieldSystem->saveData)); + TVSegment_ContestHall_ShowcasedPokemon *v0 = TVBroadcast_GetShowcasedPokemon(SaveData_GetTVBroadcast(fieldSystem->saveData)); return v0->unk_00; } @@ -357,24 +357,24 @@ static BOOL sub_020493B8(FieldSystem *fieldSystem) static const TVInterview sInterviews[TV_PROGRAM_TYPE_INTERVIEWS_NUM_SEGMENTS] = { { NULL, NULL, NULL, 0x3 }, - { FieldSystem_SaveTVEpisodeSegment_BattleTowerCorner, NULL, sub_02049348, 0x4 }, + { FieldSystem_SaveTVSegment_BattleTowerCorner, NULL, sub_02049348, 0x4 }, { NULL, NULL, NULL, 0x5 }, - { FieldSystem_SaveTVEpisodeSegment_YourPokemonCorner, sub_02049268, NULL, 0x6 }, + { FieldSystem_SaveTVSegment_YourPokemonCorner, sub_02049268, NULL, 0x6 }, { NULL, NULL, NULL, 0x7 }, - { FieldSystem_SaveTVEpisodeSegment_ThePoketchWatch, sub_02049288, sub_02049358, 0x8 }, - { FieldSystem_SaveTVEpisodeSegment_ContestHall, NULL, sub_02049368, 0x9 }, + { FieldSystem_SaveTVSegment_ThePoketchWatch, sub_02049288, sub_02049358, 0x8 }, + { FieldSystem_SaveTVSegment_ContestHall, NULL, sub_02049368, 0x9 }, { NULL, NULL, NULL, 0xA }, - { FieldSystem_SaveTVEpisodeSegment_RightOnPhotoCorner, NULL, sub_02049378, 0xB }, - { FieldSystem_SaveTVEpisodeSegment_StreetCornerPersonalityCheckup, NULL, NULL, 0xC }, - { FieldSystem_SaveTVEpisodeSegment_ThreeCheersForPoffinCorner, NULL, sub_02049388, 0xD }, + { FieldSystem_SaveTVSegment_RightOnPhotoCorner, NULL, sub_02049378, 0xB }, + { FieldSystem_SaveTVSegment_StreetCornerPersonalityCheckup, NULL, NULL, 0xC }, + { FieldSystem_SaveTVSegment_ThreeCheersForPoffinCorner, NULL, sub_02049388, 0xD }, { NULL, NULL, NULL, 0xE }, - { FieldSystem_SaveTVEpisodeSegment_AmitySquareWatch, sub_020492A0, sub_02049398, 0xF }, - { FieldSystem_SaveTVEpisodeSegment_BattleFrontierFrontlineNews_Single, sub_020492D4, sub_020493A8, 0x10 }, - { FieldSystem_SaveTVEpisodeSegment_InYourFaceInterview_Question1, NULL, NULL, 0x11 }, - { FieldSystem_SaveTVEpisodeSegment_InYourFaceInterview_Question2, NULL, NULL, 0x12 }, - { FieldSystem_SaveTVEpisodeSegment_InYourFaceInterview_Question3, NULL, NULL, 0x13 }, - { FieldSystem_SaveTVEpisodeSegment_InYourFaceInterview_Question4, NULL, NULL, 0x14 }, - { FieldSystem_SaveTVEpisodeSegment_BattleFrontierFrontlineNews_Multi, sub_02049308, sub_020493B8, 0x15 } + { FieldSystem_SaveTVSegment_AmitySquareWatch, sub_020492A0, sub_02049398, 0xF }, + { FieldSystem_SaveTVSegment_BattleFrontierFrontlineNews_Single, sub_020492D4, sub_020493A8, 0x10 }, + { FieldSystem_SaveTVSegment_InYourFaceInterview_Question1, NULL, NULL, 0x11 }, + { FieldSystem_SaveTVSegment_InYourFaceInterview_Question2, NULL, NULL, 0x12 }, + { FieldSystem_SaveTVSegment_InYourFaceInterview_Question3, NULL, NULL, 0x13 }, + { FieldSystem_SaveTVSegment_InYourFaceInterview_Question4, NULL, NULL, 0x14 }, + { FieldSystem_SaveTVSegment_BattleFrontierFrontlineNews_Multi, sub_02049308, sub_020493B8, 0x15 } }; BOOL ScrCmd_GetCurrentSafariGameCaughtNum(ScriptContext *ctx) diff --git a/src/tv_episode_segment.c b/src/tv_segment.c similarity index 58% rename from src/tv_episode_segment.c rename to src/tv_segment.c index c31a4e36c4..c82e1c3c95 100644 --- a/src/tv_episode_segment.c +++ b/src/tv_segment.c @@ -1,12 +1,10 @@ -#include "tv_episode_segment.h" +#include "tv_segment.h" #include -#include #include "constants/flavor.h" #include "constants/heap.h" #include "constants/overworld_weather.h" -#include "constants/species.h" #include "constants/tv_broadcast.h" #include "generated/first_arrival_to_zones.h" #include "generated/natures.h" @@ -24,13 +22,13 @@ #include "struct_defs/struct_0202E81C.h" #include "struct_defs/struct_0202E828.h" #include "struct_defs/struct_0202E834.h" -#include "struct_defs/tv_episode_segment_contest_hall_showcased_pokemon.h" +#include "struct_defs/tv_segment_contest_hall_showcased_pokemon.h" #include "applications/poketch/poketch_system.h" #include "field/field_system.h" #include "field/field_system_sub2_t.h" -#include "overlay006/ov6_02246444.h" #include "overlay006/swarm.h" +#include "overlay006/tv_episode.h" #include "savedata/save_table.h" #include "bag.h" @@ -71,114 +69,114 @@ #include "res/text/bank/tv_programs_sinnoh_now.h" #include "res/text/bank/tv_programs_trainer_sightings.h" -static void FieldSystem_SaveTVEpisodeSegment(FieldSystem *fieldSystem, int programTypeID, int segmentID, const void *segment); -static void SaveData_SaveTVEpisodeSegment(SaveData *saveData, int programTypeID, int segmentID, const void *segment); +static void FieldSystem_SaveTVSegment(FieldSystem *fieldSystem, int programTypeID, int segmentID, const void *segment); +static void SaveData_SaveTVSegment(SaveData *saveData, int programTypeID, int segmentID, const void *segment); static u8 sub_0206DE4C(Pokemon *param0); static String *sub_0206F0D8(u16 param0, enum HeapID heapID); #define TV_EPISODE_SEGMENT_SIZE 40 #define TEMPLATE_NAME_SIZE MON_NAME_LEN + 1 -typedef struct TVEpisodeSegment_Dummy { +typedef struct TVSegment_Dummy { u8 unused[TV_EPISODE_SEGMENT_SIZE]; -} TVEpisodeSegment_Dummy; +} TVSegment_Dummy; -typedef CaptureAttempt TVEpisodeSegment_CatchThatPokemonShow; +typedef CaptureAttempt TVSegment_CatchThatPokemonShow; -typedef struct TVEpisodeSegment_WhatsFishing { +typedef struct TVSegment_WhatsFishing { u16 species; u8 gender; u8 language; u8 metGame; u16 fishingRodItemID; BOOL caughtFish; -} TVEpisodeSegment_WhatsFishing; +} TVSegment_WhatsFishing; -typedef struct TVEpisodeSegment_LoveThatGroupCorner { +typedef struct TVSegment_LoveThatGroupCorner { u16 groupName[TEMPLATE_NAME_SIZE]; -} TVEpisodeSegment_LoveThatGroupCorner; +} TVSegment_LoveThatGroupCorner; -typedef struct TVEpisodeSegment_HiddenItemBreakingNews { +typedef struct TVSegment_HiddenItemBreakingNews { u16 item; u16 location; -} TVEpisodeSegment_HiddenItemBreakingNews; +} TVSegment_HiddenItemBreakingNews; -typedef struct TVEpisodeSegment_SinnohShoppingChampCorner { +typedef struct TVSegment_SinnohShoppingChampCorner { u16 item; u8 amount; -} TVEpisodeSegment_SinnohShoppingChampCorner; +} TVSegment_SinnohShoppingChampCorner; -typedef struct TVEpisodeSegment_HappyHappyEggClub { +typedef struct TVSegment_HappyHappyEggClub { u16 species; u8 gender; u8 language; u8 metGame; u16 location; -} TVEpisodeSegment_HappyHappyEggClub; +} TVSegment_HappyHappyEggClub; -typedef struct TVEpisodeSegment_RateThatNameChange { +typedef struct TVSegment_RateThatNameChange { u16 species; u8 gender; u8 language; u8 metGame; u16 nickname[TEMPLATE_NAME_SIZE]; -} TVEpisodeSegment_RateThatNameChange; +} TVSegment_RateThatNameChange; -typedef struct TVEpisodeSegment_UndergroundTreasuresCorner { +typedef struct TVSegment_UndergroundTreasuresCorner { u16 item; u16 amount; -} TVEpisodeSegment_UndergroundTreasuresCorner; +} TVSegment_UndergroundTreasuresCorner; -typedef struct TVEpisodeSegment_SafariGameSpecialNewsBulletin { +typedef struct TVSegment_SafariGameSpecialNewsBulletin { u16 species; u8 gender; u8 language; u8 metGame; u8 numPokemonCaught; -} TVEpisodeSegment_SafariGameSpecialNewsBulletin; +} TVSegment_SafariGameSpecialNewsBulletin; -typedef struct TVEpisodeSegment_PokemonStorageSpecialNewsBulletin { +typedef struct TVSegment_PokemonStorageSpecialNewsBulletin { u16 species; u8 gender; u8 language; u8 metGame; -} TVEpisodeSegment_PokemonStorageSpecialNewsBulletin; +} TVSegment_PokemonStorageSpecialNewsBulletin; -typedef struct TVEpisodeSegment_HerbalMedicineTrainerSightingDummy { +typedef struct TVSegment_HerbalMedicineTrainerSightingDummy { u16 species; u8 gender; u8 language; u8 metGame; u16 item; -} TVEpisodeSegment_HerbalMedicineTrainerSightingDummy; +} TVSegment_HerbalMedicineTrainerSightingDummy; -typedef struct TVEpisodeSegment_PlantingAndWateringShow { +typedef struct TVSegment_PlantingAndWateringShow { u16 berryItemID; u8 yieldRating; u16 yieldAmount; -} TVEpisodeSegment_PlantingAndWateringShow; +} TVSegment_PlantingAndWateringShow; -typedef struct TVEpisodeSegment_SealClubShow { +typedef struct TVSegment_SealClubShow { u16 species; u8 gender; u8 language; u8 metGame; u8 dummy; u8 ballSeal; -} TVEpisodeSegment_SealClubShow; +} TVSegment_SealClubShow; -typedef struct TVEpisodeSegment_CaptureTheFlagDigest { +typedef struct TVSegment_CaptureTheFlagDigest { int trainerInfoSize; u8 trainerInfo[sizeof(TrainerInfo)]; -} TVEpisodeSegment_CaptureTheFlagDigest; +} TVSegment_CaptureTheFlagDigest; -typedef struct TVEpisodeSegment_HomeAndManor_NoFurniture { +typedef struct TVSegment_HomeAndManor_NoFurniture { u8 dummy; -} TVEpisodeSegment_HomeAndManor_NoFurniture; +} TVSegment_HomeAndManor_NoFurniture; -typedef struct TVEpisodeSegment_HomeAndManor { +typedef struct TVSegment_HomeAndManor { u8 furniture; -} TVEpisodeSegment_HomeAndManor; +} TVSegment_HomeAndManor; typedef struct { u16 unk_00; @@ -231,12 +229,12 @@ typedef struct { UnkStruct_0202E834 unk_00; } UnkStruct_0206E098; -typedef struct TVEpisodeSegment_BattleTowerCorner { +typedef struct TVSegment_BattleTowerCorner { UnkStruct_0202E7FC outcome; u16 customMessageWord; -} TVEpisodeSegment_BattleTowerCorner; +} TVSegment_BattleTowerCorner; -typedef struct TVEpisodeSegment_YourPokemonCorner { +typedef struct TVSegment_YourPokemonCorner { u16 species; u8 gender; u8 language; @@ -244,81 +242,69 @@ typedef struct TVEpisodeSegment_YourPokemonCorner { u8 hasNickname; u16 nickname[TEMPLATE_NAME_SIZE]; u16 customMessageWord; -} TVEpisodeSegment_YourPokemonCorner; +} TVSegment_YourPokemonCorner; -typedef struct TVEpisodeSegment_ThePoketchWatch { +typedef struct TVSegment_ThePoketchWatch { int appID; u16 customMessageWord; -} TVEpisodeSegment_ThePoketchWatch; +} TVSegment_ThePoketchWatch; -typedef struct TVEpisodeSegment_ContestHall { - TVEpisodeSegment_ContestHall_ShowcasedPokemon showcasedPokemon; +typedef struct TVSegment_ContestHall { + TVSegment_ContestHall_ShowcasedPokemon showcasedPokemon; u16 customMessageWord; -} TVEpisodeSegment_ContestHall; +} TVSegment_ContestHall; -typedef struct TVEpisodeSegment_RightOnPhotoCorner { +typedef struct TVSegment_RightOnPhotoCorner { u16 species; u16 customMessageWord; -} TVEpisodeSegment_RightOnPhotoCorner; +} TVSegment_RightOnPhotoCorner; -typedef struct TVEpisodeSegment_StreetCornerPersonalityCheckup { +typedef struct TVSegment_StreetCornerPersonalityCheckup { int pokemonType; -} TVEpisodeSegment_StreetCornerPersonalityCheckup; +} TVSegment_StreetCornerPersonalityCheckup; -typedef struct TVEpisodeSegment_ThreeCheersForPoffinCorner { +typedef struct TVSegment_ThreeCheersForPoffinCorner { UnkStruct_0202E7F0 unk_00; u16 customMessageWord; -} TVEpisodeSegment_ThreeCheersForPoffinCorner; +} TVSegment_ThreeCheersForPoffinCorner; -typedef struct TVEpisodeSegment_AmitySquareWatch { +typedef struct TVSegment_AmitySquareWatch { UnkStruct_0202E7E4 unk_00; u16 customWordMessage; -} TVEpisodeSegment_AmitySquareWatch; +} TVSegment_AmitySquareWatch; -typedef struct TVEpisodeSegment_BattleFrontierFrontlineNews_Single { +typedef struct TVSegment_BattleFrontierFrontlineNews_Single { UnkStruct_0202E810 unk_00; u16 customWordMessage; -} TVEpisodeSegment_BattleFrontierFrontlineNews_Single; +} TVSegment_BattleFrontierFrontlineNews_Single; -typedef struct TVEpisodeSegment_InYourFaceInterview_Question1 { +typedef struct TVSegment_InYourFaceInterview_Question { u16 customWordMessage; -} TVEpisodeSegment_InYourFaceInterview_Question1; +} TVSegment_InYourFaceInterview_Question; -typedef struct TVEpisodeSegment_InYourFaceInterview_Question2 { - u16 customWordMessage; -} TVEpisodeSegment_InYourFaceInterview_Question2; - -typedef struct TVEpisodeSegment_InYourFaceInterview_Question3 { - u16 customWordMessage; -} TVEpisodeSegment_InYourFaceInterview_Question3; - -typedef struct TVEpisodeSegment_InYourFaceInterview_Question4 { - u16 customWordMessage; -} TVEpisodeSegment_InYourFaceInterview_Question4; - -typedef struct TVEpisodeSegment_BattleFrontierFrontlineNews_Multi { +typedef struct TVSegment_BattleFrontierFrontlineNews_Multi { UnkStruct_0202E81C unk_00; u16 customWordMessage; -} TVEpisodeSegment_BattleFrontierFrontlineNews_Multi; +} TVSegment_BattleFrontierFrontlineNews_Multi; -typedef union TVEpisodeSegment { - TVEpisodeSegment_Dummy dummy1; - TVEpisodeSegment_CatchThatPokemonShow catchThatPokemonShow; - TVEpisodeSegment_WhatsFishing whatsFishing; - TVEpisodeSegment_LoveThatGroupCorner loveThatGroupCorner; - TVEpisodeSegment_HiddenItemBreakingNews hiddenItemBreakingNews; - TVEpisodeSegment_SinnohShoppingChampCorner sinnohShoppingChampCorner; - TVEpisodeSegment_HappyHappyEggClub happyHappyEggClub; - TVEpisodeSegment_RateThatNameChange rateThatNameChange; - TVEpisodeSegment_UndergroundTreasuresCorner undergroundTreasuresCorner; - TVEpisodeSegment_SafariGameSpecialNewsBulletin safariGameSpecialNewsBulletin; - TVEpisodeSegment_PokemonStorageSpecialNewsBulletin pokemonStorageSpecialNewsBulletin; - TVEpisodeSegment_HerbalMedicineTrainerSightingDummy dummy2; - TVEpisodeSegment_PlantingAndWateringShow plantingAndWateringShow; - TVEpisodeSegment_SealClubShow sealClubShow; - TVEpisodeSegment_CaptureTheFlagDigest captureTheFlagDigest; - TVEpisodeSegment_HomeAndManor_NoFurniture homeAndManorNoFurniture; - TVEpisodeSegment_HomeAndManor homeAndManor; +typedef union TVSegmentData { + TVSegment_Dummy dummy1; + TVSegment_CatchThatPokemonShow catchThatPokemonShow; + TVSegment_WhatsFishing whatsFishing; + TVSegment_LoveThatGroupCorner loveThatGroupCorner; + TVSegment_HiddenItemBreakingNews hiddenItemBreakingNews; + TVSegment_SinnohShoppingChampCorner sinnohShoppingChampCorner; + TVSegment_HappyHappyEggClub happyHappyEggClub; + TVSegment_RateThatNameChange rateThatNameChange; + TVSegment_UndergroundTreasuresCorner undergroundTreasuresCorner; + TVSegment_SafariGameSpecialNewsBulletin safariGameSpecialNewsBulletin; + TVSegment_PokemonStorageSpecialNewsBulletin pokemonStorageSpecialNewsBulletin; + TVSegment_HerbalMedicineTrainerSightingDummy dummy2; + TVSegment_PlantingAndWateringShow plantingAndWateringShow; + TVSegment_SealClubShow sealClubShow; + TVSegment_CaptureTheFlagDigest captureTheFlagDigest; + TVSegment_HomeAndManor_NoFurniture homeAndManorNoFurniture; + TVSegment_HomeAndManor homeAndManor; UnkStruct_0206DBE8 val18; UnkStruct_0206DC9C val19; UnkStruct_0206DD5C val20; @@ -327,44 +313,41 @@ typedef union TVEpisodeSegment { UnkStruct_0206DF88 val23; UnkStruct_0206E018 val24; UnkStruct_0206E098 val25; - TVEpisodeSegment_BattleTowerCorner battleTowerCorner; - TVEpisodeSegment_YourPokemonCorner yourPokemonCorner; - TVEpisodeSegment_ThePoketchWatch thePoketchWatch; - TVEpisodeSegment_ContestHall contestHall; - TVEpisodeSegment_RightOnPhotoCorner rightOnPhotoCorner; - TVEpisodeSegment_StreetCornerPersonalityCheckup streetCornerPersonalityCheckup; - TVEpisodeSegment_ThreeCheersForPoffinCorner threeCheersForPoffinCorner; - TVEpisodeSegment_AmitySquareWatch amitySquareWatch; - TVEpisodeSegment_BattleFrontierFrontlineNews_Single battleFrontierFrontlineNewsSingle; - TVEpisodeSegment_InYourFaceInterview_Question1 inYourFaceInterviewQuestion1; - TVEpisodeSegment_InYourFaceInterview_Question2 inYourFaceInterviewQuestion2; - TVEpisodeSegment_InYourFaceInterview_Question3 inYourFaceInterviewQuestion3; - TVEpisodeSegment_InYourFaceInterview_Question4 inYourFaceInterviewQuestion4; - TVEpisodeSegment_BattleFrontierFrontlineNews_Multi battleFrontierFrontlineNewsMulti; -} TVEpisodeSegment; + TVSegment_BattleTowerCorner battleTowerCorner; + TVSegment_YourPokemonCorner yourPokemonCorner; + TVSegment_ThePoketchWatch thePoketchWatch; + TVSegment_ContestHall contestHall; + TVSegment_RightOnPhotoCorner rightOnPhotoCorner; + TVSegment_StreetCornerPersonalityCheckup streetCornerPersonalityCheckup; + TVSegment_ThreeCheersForPoffinCorner threeCheersForPoffinCorner; + TVSegment_AmitySquareWatch amitySquareWatch; + TVSegment_BattleFrontierFrontlineNews_Single battleFrontierFrontlineNewsSingle; + TVSegment_InYourFaceInterview_Question inYourFaceInterviewQuestion; + TVSegment_BattleFrontierFrontlineNews_Multi battleFrontierFrontlineNewsMulti; +} TVSegmentData; -typedef int (*TVEpisodeSegment_LoadMessageFunction)(FieldSystem *, StringTemplate *, UnkStruct_ov6_022465F4 *); -typedef BOOL (*TVEpisodeSegment_IsEligibleFunction)(FieldSystem *, UnkStruct_ov6_022465F4 *); +typedef int (*TVSegment_LoadMessageFunction)(FieldSystem *, StringTemplate *, TVEpisode *); +typedef BOOL (*TVSegment_IsEligibleFunction)(FieldSystem *, TVEpisode *); -typedef struct TVProgramSegment { - TVEpisodeSegment_LoadMessageFunction loadMessageFn; - TVEpisodeSegment_IsEligibleFunction isEligibleFn; -} TVProgramSegment; +typedef struct TVSegment { + TVSegment_LoadMessageFunction loadMessageFn; + TVSegment_IsEligibleFunction isEligibleFn; +} TVSegment; typedef struct TVProgramType { int programTypeID; u16 bankID; u16 numSegments; - const TVProgramSegment *segments; + const TVSegment *segments; } TVProgramType; #define TV_PROGRAM_SEGMENT_NULL { NULL, NULL } -static const TVProgramSegment sTrainerSightingsSegments[TV_PROGRAM_TYPE_TRAINER_SIGHTINGS_NUM_SEGMENTS]; -static const TVProgramSegment sRecordsSegments[TV_PROGRAM_TYPE_RECORDS_NUM_SEGMENTS]; -static const TVProgramSegment sInterviewsSegments[TV_PROGRAM_TYPE_INTERVIEWS_NUM_SEGMENTS]; -static const TVProgramSegment sSinnohNowSegments[TV_PROGRAM_TYPE_SINNOH_NOW_NUM_SEGMENTS]; -static const TVProgramSegment sVarietyHourSegments[TV_PROGRAM_TYPE_VARIETY_HOUR_NUM_SEGMENTS]; +static const TVSegment sTrainerSightingsSegments[TV_PROGRAM_TYPE_TRAINER_SIGHTINGS_NUM_SEGMENTS]; +static const TVSegment sRecordsSegments[TV_PROGRAM_TYPE_RECORDS_NUM_SEGMENTS]; +static const TVSegment sInterviewsSegments[TV_PROGRAM_TYPE_INTERVIEWS_NUM_SEGMENTS]; +static const TVSegment sSinnohNowSegments[TV_PROGRAM_TYPE_SINNOH_NOW_NUM_SEGMENTS]; +static const TVSegment sVarietyHourSegments[TV_PROGRAM_TYPE_VARIETY_HOUR_NUM_SEGMENTS]; static const TVProgramType sProgramTypes[TV_PROGRAM_TYPE_MAX - 1] = { [TV_PROGRAM_TYPE_INTERVIEWS - 1] = { @@ -410,37 +393,37 @@ static const TVProgramType *TVBroadcast_GetProgramType(int programTypeID) return programType; } -static const TVProgramSegment *TVProgramType_GetSegment(const TVProgramType *programType, const UnkStruct_ov6_022465F4 *param1) +static const TVSegment *TVProgramType_GetSegment(const TVProgramType *programType, const TVEpisode *episode) { - int segmentID = ov6_022464A4(param1); + int segmentID = TVEpisode_GetSegmentID(episode); GF_ASSERT(0 < segmentID && segmentID < programType->numSegments); - return &(programType->segments[segmentID - 1]); + return &programType->segments[segmentID - 1]; } -int TVEpisodeSegment_LoadMessage(int programTypeID, FieldSystem *fieldSystem, StringTemplate *template, UnkStruct_ov6_022465F4 *param3, u16 *bankDestVar) +int TVSegment_LoadMessage(int programTypeID, FieldSystem *fieldSystem, StringTemplate *template, TVEpisode *episode, u16 *bankDestVar) { - TVEpisodeSegment_LoadMessageFunction loadMessageFn; + TVSegment_LoadMessageFunction loadMessageFn; const TVProgramType *programType; - const TVProgramSegment *segment; + const TVSegment *segment; programType = TVBroadcast_GetProgramType(programTypeID); *bankDestVar = programType->bankID; - segment = TVProgramType_GetSegment(programType, param3); + segment = TVProgramType_GetSegment(programType, episode); loadMessageFn = segment->loadMessageFn; GF_ASSERT(loadMessageFn != NULL); - return loadMessageFn(fieldSystem, template, param3); + return loadMessageFn(fieldSystem, template, episode); } -BOOL TVEpisodeSegment_IsEligible(int programTypeID, FieldSystem *fieldSystem, UnkStruct_ov6_022465F4 *param2) +BOOL TVSegment_IsEligible(int programTypeID, FieldSystem *fieldSystem, TVEpisode *episode) { - TVEpisodeSegment_IsEligibleFunction isEligibleFn; + TVSegment_IsEligibleFunction isEligibleFn; const TVProgramType *programType; - const TVProgramSegment *segment; + const TVSegment *segment; programType = TVBroadcast_GetProgramType(programTypeID); - segment = TVProgramType_GetSegment(programType, param2); + segment = TVProgramType_GetSegment(programType, episode); if (segment->loadMessageFn == NULL) { return FALSE; @@ -452,27 +435,27 @@ BOOL TVEpisodeSegment_IsEligible(int programTypeID, FieldSystem *fieldSystem, Un return TRUE; } - return isEligibleFn(fieldSystem, param2); + return isEligibleFn(fieldSystem, episode); } static void sub_0206CD58(SaveData *saveData, int param1, int param2, const void *param3) { TVBroadcast *broadcast = SaveData_GetTVBroadcast(saveData); - GF_ASSERT(sizeof(TVEpisodeSegment) == TV_EPISODE_SEGMENT_SIZE); + GF_ASSERT(sizeof(TVSegmentData) == TV_EPISODE_SEGMENT_SIZE); TVBroadcast_SaveSegmentData(broadcast, param1, param2, (const u8 *)param3); } -static void FieldSystem_SaveTVEpisodeSegment(FieldSystem *fieldSystem, int programTypeID, int segmentID, const void *segment) +static void FieldSystem_SaveTVSegment(FieldSystem *fieldSystem, int programTypeID, int segmentID, const void *segment) { - SaveData_SaveTVEpisodeSegment(fieldSystem->saveData, programTypeID, segmentID, segment); + SaveData_SaveTVSegment(fieldSystem->saveData, programTypeID, segmentID, segment); } -static void SaveData_SaveTVEpisodeSegment(SaveData *saveData, int programTypeID, int segmentID, const void *segment) +static void SaveData_SaveTVSegment(SaveData *saveData, int programTypeID, int segmentID, const void *segment) { TVBroadcast *broadcast = SaveData_GetTVBroadcast(saveData); - GF_ASSERT(sizeof(TVEpisodeSegment) == TV_EPISODE_SEGMENT_SIZE); + GF_ASSERT(sizeof(TVSegmentData) == TV_EPISODE_SEGMENT_SIZE); TVBroadcast_SaveSegmentData(broadcast, programTypeID, segmentID, (const u8 *)segment); } @@ -485,9 +468,9 @@ static void sub_0206CD94(StringTemplate *template, int idx, const u16 *param2, i String_Free(string); } -static void TVEpisodeSegment_SetTemplateTrainerName(StringTemplate *template, int idx, const UnkStruct_ov6_022465F4 *param2) +static void TVSegment_SetTemplateTrainerName(StringTemplate *template, int idx, const TVEpisode *episode) { - sub_0206CD94(template, idx, ov6_02246494(param2), ov6_0224648C(param2), ov6_02246490(param2), 1); + sub_0206CD94(template, idx, TVEpisode_GetTrainerName(episode), TVEpisode_GetGender(episode), TVEpisode_GetLanguage(episode), 1); } static void sub_0206CE08(enum HeapID heapID, u16 *param1, Pokemon *mon) @@ -499,7 +482,7 @@ static void sub_0206CE08(enum HeapID heapID, u16 *param1, Pokemon *mon) String_Free(string); } -static void TVEpisodeSegment_CopyPokemonValues(Pokemon *mon, u16 *species, u8 *gender, u8 *language, u8 *metGame) +static void TVSegment_CopyPokemonValues(Pokemon *mon, u16 *species, u8 *gender, u8 *language, u8 *metGame) { *species = Pokemon_GetValue(mon, MON_DATA_SPECIES, NULL); *gender = Pokemon_GetValue(mon, MON_DATA_GENDER, NULL); @@ -507,7 +490,7 @@ static void TVEpisodeSegment_CopyPokemonValues(Pokemon *mon, u16 *species, u8 *g *metGame = Pokemon_GetValue(mon, MON_DATA_MET_GAME, NULL); } -static void TVEpisodeSegment_SetTemplatePokemonSpecies(StringTemplate *template, int idx, u16 species, u8 unused3, u8 language, u8 unused5) +static void TVSegment_SetTemplatePokemonSpecies(StringTemplate *template, int idx, u16 species, u8 unused3, u8 language, u8 unused5) { u16 speciesName[TEMPLATE_NAME_SIZE]; @@ -515,7 +498,7 @@ static void TVEpisodeSegment_SetTemplatePokemonSpecies(StringTemplate *template, sub_0206CD94(template, idx, speciesName, unused3, language, 1); } -static void TVEpisodeSegment_SetTemplateOwnPokemonSpecies(StringTemplate *template, int idx, u16 species) +static void TVSegment_SetTemplateOwnPokemonSpecies(StringTemplate *template, int idx, u16 species) { u16 speciesName[TEMPLATE_NAME_SIZE]; @@ -538,10 +521,10 @@ static void sub_0206CED0(enum HeapID heapID, Pokemon *mon, u8 *param2, u16 *para void TVBroadcast_SetContestHallShowInfo(TVBroadcast *broadcast, Pokemon *mon, enum PokemonContestType contestType, enum PokemonContestRank contestRank, int contestPlacement) { - TVEpisodeSegment_ContestHall_ShowcasedPokemon *showcasedPokemon = TVBroadcast_GetShowcasedPokemon(broadcast); + TVSegment_ContestHall_ShowcasedPokemon *showcasedPokemon = TVBroadcast_GetShowcasedPokemon(broadcast); showcasedPokemon->unk_00 = 1; - TVEpisodeSegment_CopyPokemonValues(mon, &showcasedPokemon->species, &showcasedPokemon->gender, &showcasedPokemon->language, &showcasedPokemon->metGame); + TVSegment_CopyPokemonValues(mon, &showcasedPokemon->species, &showcasedPokemon->gender, &showcasedPokemon->language, &showcasedPokemon->metGame); showcasedPokemon->contestType = contestType; showcasedPokemon->contestRank = contestRank; showcasedPokemon->contestPlacement = contestPlacement; @@ -557,7 +540,7 @@ void sub_0206CF48(TVBroadcast *broadcast, Pokemon *param1, enum HeapID heapID) v0->unk_1F = 0; v0->unk_1E = Pokemon_GetNature(param1); - TVEpisodeSegment_CopyPokemonValues(param1, &v0->unk_02, &v0->unk_04, &v0->language, &v0->unk_06); + TVSegment_CopyPokemonValues(param1, &v0->unk_02, &v0->unk_04, &v0->language, &v0->unk_06); v0->unk_07 = Pokemon_GetValue(param1, MON_DATA_HAS_NICKNAME, NULL); sub_0206CED0(heapID, param1, &v0->unk_07, v0->unk_08); @@ -620,7 +603,7 @@ void TVBroadcast_UpdateSafariGameData(TVBroadcast *broadcast, Pokemon *mon) UnkStruct_0202E808 *safariGame = TVBroadcast_GetSafariGameData(broadcast); if (safariGame->numPokemonCaught == 0) { - TVEpisodeSegment_CopyPokemonValues(mon, &safariGame->species, &safariGame->gender, &safariGame->language, &safariGame->metGame); + TVSegment_CopyPokemonValues(mon, &safariGame->species, &safariGame->gender, &safariGame->language, &safariGame->metGame); } safariGame->numPokemonCaught++; @@ -632,7 +615,7 @@ void sub_0206D048(TVBroadcast *broadcast, Pokemon *mon) UnkStruct_0202E810 *v0 = sub_0202E810(broadcast); v0->unk_00 = 1; - TVEpisodeSegment_CopyPokemonValues(mon, &v0->unk_02, &v0->unk_04, &v0->language, &v0->unk_06); + TVSegment_CopyPokemonValues(mon, &v0->unk_02, &v0->unk_04, &v0->language, &v0->unk_06); v0->unk_07 = Pokemon_GetValue(mon, MON_DATA_HAS_NICKNAME, NULL); sub_0206CED0(HEAP_ID_FIELD2, mon, &v0->unk_07, v0->unk_08); @@ -719,7 +702,7 @@ void CaptureAttempt_Init(CaptureAttempt *captureAttempt, Pokemon *mon, int resul captureAttempt->resultMask = resultMask; captureAttempt->ballsThrown = ballsThrown; - TVEpisodeSegment_CopyPokemonValues(mon, &captureAttempt->species, &captureAttempt->gender, &captureAttempt->language, &captureAttempt->metGame); + TVSegment_CopyPokemonValues(mon, &captureAttempt->species, &captureAttempt->gender, &captureAttempt->language, &captureAttempt->metGame); captureAttempt->pokeballItemID = Pokemon_GetValue(mon, MON_DATA_POKEBALL, NULL); GF_ASSERT(captureAttempt->pokeballItemID); @@ -727,10 +710,10 @@ void CaptureAttempt_Init(CaptureAttempt *captureAttempt, Pokemon *mon, int resul sub_0206CED0(heapID, mon, &captureAttempt->hasNickname, captureAttempt->nickname); } -void FieldSystem_SaveTVEpisodeSegment_CatchThatPokemonShow(FieldSystem *fieldSystem, const CaptureAttempt *captureAttempt, int resultMask) +void FieldSystem_SaveTVSegment_CatchThatPokemonShow(FieldSystem *fieldSystem, const CaptureAttempt *captureAttempt, int resultMask) { - TVEpisodeSegment segments; - TVEpisodeSegment_CatchThatPokemonShow *catchThatPokemonShow = &segments.catchThatPokemonShow; + TVSegmentData segments; + TVSegment_CatchThatPokemonShow *catchThatPokemonShow = &segments.catchThatPokemonShow; *catchThatPokemonShow = *captureAttempt; catchThatPokemonShow->resultMask = resultMask; @@ -745,43 +728,43 @@ void FieldSystem_SaveTVEpisodeSegment_CatchThatPokemonShow(FieldSystem *fieldSys switch (resultMask) { case BATTLE_RESULT_CAPTURED_MON: - FieldSystem_SaveTVEpisodeSegment(fieldSystem, TV_PROGRAM_TYPE_TRAINER_SIGHTINGS, TV_PROGRAM_SEGMENT_CATCH_THAT_POKEMON_SHOW_SUCCESS, catchThatPokemonShow); + FieldSystem_SaveTVSegment(fieldSystem, TV_PROGRAM_TYPE_TRAINER_SIGHTINGS, TV_PROGRAM_SEGMENT_CATCH_THAT_POKEMON_SHOW_SUCCESS, catchThatPokemonShow); break; case BATTLE_RESULT_WIN: case BATTLE_RESULT_PLAYER_FLED: case BATTLE_RESULT_ENEMY_FLED: if (catchThatPokemonShow->ballsThrown > 2) { - FieldSystem_SaveTVEpisodeSegment(fieldSystem, TV_PROGRAM_TYPE_TRAINER_SIGHTINGS, TV_PROGRAM_SEGMENT_CATCH_THAT_POKEMON_SHOW_FAILURE, catchThatPokemonShow); + FieldSystem_SaveTVSegment(fieldSystem, TV_PROGRAM_TYPE_TRAINER_SIGHTINGS, TV_PROGRAM_SEGMENT_CATCH_THAT_POKEMON_SHOW_FAILURE, catchThatPokemonShow); } break; } } -static int TVEpisodeSegment_LoadMessage_CatchThatPokemonShow_Success(FieldSystem *fieldSystem, StringTemplate *template, UnkStruct_ov6_022465F4 *param2) +static int TVSegment_LoadMessage_CatchThatPokemonShow_Success(FieldSystem *fieldSystem, StringTemplate *template, TVEpisode *episode) { - TVEpisodeSegment_CatchThatPokemonShow *catchThatPokemonShow = ov6_02246498(param2); + TVSegment_CatchThatPokemonShow *catchThatPokemonShow = TVEpisode_GetSegment(episode); if (catchThatPokemonShow->hasNickname) { - TVEpisodeSegment_SetTemplateTrainerName(template, 0, param2); - TVEpisodeSegment_SetTemplatePokemonSpecies(template, 1, catchThatPokemonShow->species, catchThatPokemonShow->gender, catchThatPokemonShow->language, catchThatPokemonShow->metGame); + TVSegment_SetTemplateTrainerName(template, 0, episode); + TVSegment_SetTemplatePokemonSpecies(template, 1, catchThatPokemonShow->species, catchThatPokemonShow->gender, catchThatPokemonShow->language, catchThatPokemonShow->metGame); StringTemplate_SetItemName(template, 2, catchThatPokemonShow->pokeballItemID); StringTemplate_SetNumber(template, 3, catchThatPokemonShow->ballsThrown, 3, PADDING_MODE_NONE, CHARSET_MODE_EN); sub_0206CD94(template, 4, catchThatPokemonShow->nickname, catchThatPokemonShow->gender, catchThatPokemonShow->language, 1); return TVProgramTrainerSightings_Text_CatchThatPokemonShow_Nicknamed; } else { - TVEpisodeSegment_SetTemplateTrainerName(template, 0, param2); - TVEpisodeSegment_SetTemplatePokemonSpecies(template, 1, catchThatPokemonShow->species, catchThatPokemonShow->gender, catchThatPokemonShow->language, catchThatPokemonShow->metGame); + TVSegment_SetTemplateTrainerName(template, 0, episode); + TVSegment_SetTemplatePokemonSpecies(template, 1, catchThatPokemonShow->species, catchThatPokemonShow->gender, catchThatPokemonShow->language, catchThatPokemonShow->metGame); StringTemplate_SetItemName(template, 2, catchThatPokemonShow->pokeballItemID); StringTemplate_SetNumber(template, 3, catchThatPokemonShow->ballsThrown, 3, PADDING_MODE_NONE, CHARSET_MODE_EN); return TVProgramTrainerSightings_Text_CatchThatPokemonShow_NotNicknamed; } } -static int TVEpisodeSegment_LoadMessage_CatchThatPokemonShow_Failure(FieldSystem *fieldSystem, StringTemplate *template, UnkStruct_ov6_022465F4 *param2) +static int TVSegment_LoadMessage_CatchThatPokemonShow_Failure(FieldSystem *fieldSystem, StringTemplate *template, TVEpisode *episode) { - TVEpisodeSegment_CatchThatPokemonShow *catchThatPokemonShow = ov6_02246498(param2); + TVSegment_CatchThatPokemonShow *catchThatPokemonShow = TVEpisode_GetSegment(episode); - TVEpisodeSegment_SetTemplateTrainerName(template, 0, param2); + TVSegment_SetTemplateTrainerName(template, 0, episode); StringTemplate_SetNumber(template, 1, catchThatPokemonShow->ballsThrown, 3, PADDING_MODE_NONE, CHARSET_MODE_EN); if (catchThatPokemonShow->resultMask == BATTLE_RESULT_WIN) { @@ -791,47 +774,47 @@ static int TVEpisodeSegment_LoadMessage_CatchThatPokemonShow_Failure(FieldSystem } } -static BOOL TVEpisodeSegment_IsEligible_CatchThatPokemonShow_Success(FieldSystem *fieldSystem, UnkStruct_ov6_022465F4 *param1) +static BOOL TVSegment_IsEligible_CatchThatPokemonShow_Success(FieldSystem *fieldSystem, TVEpisode *episode) { Pokedex *pokedex = SaveData_GetPokedex(fieldSystem->saveData); - TVEpisodeSegment_CatchThatPokemonShow *catchThatPokemonShow = ov6_02246498(param1); + TVSegment_CatchThatPokemonShow *catchThatPokemonShow = TVEpisode_GetSegment(episode); return Pokedex_HasSeenSpecies(pokedex, catchThatPokemonShow->species); } -void FieldSystem_SaveTVEpisodeSegment_WhatsFishing(FieldSystem *fieldSystem, BOOL caughtFish, u16 fishingRodItemID, Pokemon *mon) +void FieldSystem_SaveTVSegment_WhatsFishing(FieldSystem *fieldSystem, BOOL caughtFish, u16 fishingRodItemID, Pokemon *mon) { - TVEpisodeSegment segments; - TVEpisodeSegment_WhatsFishing *whatsFishing = &segments.whatsFishing; + TVSegmentData segments; + TVSegment_WhatsFishing *whatsFishing = &segments.whatsFishing; if (caughtFish) { - TVEpisodeSegment_CopyPokemonValues(mon, &whatsFishing->species, &whatsFishing->gender, &whatsFishing->language, &whatsFishing->metGame); + TVSegment_CopyPokemonValues(mon, &whatsFishing->species, &whatsFishing->gender, &whatsFishing->language, &whatsFishing->metGame); } whatsFishing->fishingRodItemID = fishingRodItemID; whatsFishing->caughtFish = caughtFish; - FieldSystem_SaveTVEpisodeSegment(fieldSystem, TV_PROGRAM_TYPE_TRAINER_SIGHTINGS, TV_PROGRAM_SEGMENT_WHATS_FISHING, whatsFishing); + FieldSystem_SaveTVSegment(fieldSystem, TV_PROGRAM_TYPE_TRAINER_SIGHTINGS, TV_PROGRAM_SEGMENT_WHATS_FISHING, whatsFishing); } -static int TVEpisodeSegment_LoadMessage_WhatsFishing(FieldSystem *fieldSystem, StringTemplate *template, UnkStruct_ov6_022465F4 *param2) +static int TVSegment_LoadMessage_WhatsFishing(FieldSystem *fieldSystem, StringTemplate *template, TVEpisode *episode) { - TVEpisodeSegment_WhatsFishing *whatsFishing = ov6_02246498(param2); + TVSegment_WhatsFishing *whatsFishing = TVEpisode_GetSegment(episode); - TVEpisodeSegment_SetTemplateTrainerName(template, 0, param2); + TVSegment_SetTemplateTrainerName(template, 0, episode); if (whatsFishing->caughtFish) { StringTemplate_SetItemName(template, 1, whatsFishing->fishingRodItemID); - TVEpisodeSegment_SetTemplatePokemonSpecies(template, 2, whatsFishing->species, whatsFishing->gender, whatsFishing->language, whatsFishing->metGame); + TVSegment_SetTemplatePokemonSpecies(template, 2, whatsFishing->species, whatsFishing->gender, whatsFishing->language, whatsFishing->metGame); return TVProgramTrainerSightings_Text_WhatsFishing_Success; } else { return TVProgramTrainerSightings_Text_WhatsFishing_Failure; } } -static BOOL TVEpisodeSegment_IsEligible_WhatsFishing(FieldSystem *fieldSystem, UnkStruct_ov6_022465F4 *param1) +static BOOL TVSegment_IsEligible_WhatsFishing(FieldSystem *fieldSystem, TVEpisode *episode) { - TVEpisodeSegment_WhatsFishing *whatsFishing = ov6_02246498(param1); + TVSegment_WhatsFishing *whatsFishing = TVEpisode_GetSegment(episode); if (whatsFishing->caughtFish == FALSE) { return TRUE; @@ -840,75 +823,75 @@ static BOOL TVEpisodeSegment_IsEligible_WhatsFishing(FieldSystem *fieldSystem, U return Pokedex_HasSeenSpecies(SaveData_GetPokedex(fieldSystem->saveData), whatsFishing->species); } -static void FieldSystem_SaveTVEpisodeSegment_LoveThatGroupCorner(FieldSystem *fieldSystem, int segmentID) +static void FieldSystem_SaveTVSegment_LoveThatGroupCorner(FieldSystem *fieldSystem, int segmentID) { - TVEpisodeSegment segments; - TVEpisodeSegment_LoveThatGroupCorner *loveThatGroupCorner = &segments.loveThatGroupCorner; + TVSegmentData segments; + TVSegment_LoveThatGroupCorner *loveThatGroupCorner = &segments.loveThatGroupCorner; RecordMixedRNG *rngCollection = SaveData_GetRecordMixedRNG(fieldSystem->saveData); - GF_ASSERT(sizeof(TVEpisodeSegment) == TV_EPISODE_SEGMENT_SIZE); + GF_ASSERT(sizeof(TVSegmentData) == TV_EPISODE_SEGMENT_SIZE); MI_CpuClearFast(&segments, TV_EPISODE_SEGMENT_SIZE); CharCode_CopyNumChars(loveThatGroupCorner->groupName, RecordMixedRNG_GetEntryName(rngCollection, RECORD_MIXED_RNG_PLAYER_OVERRIDE, RECORD_MIXED_RNG_GROUP_NAME), TEMPLATE_NAME_SIZE); - FieldSystem_SaveTVEpisodeSegment(fieldSystem, TV_PROGRAM_TYPE_TRAINER_SIGHTINGS, segmentID, loveThatGroupCorner); + FieldSystem_SaveTVSegment(fieldSystem, TV_PROGRAM_TYPE_TRAINER_SIGHTINGS, segmentID, loveThatGroupCorner); } -void FieldSystem_SaveTVEpisodeSegment_LoveThatGroupCorner_NewGroup(FieldSystem *fieldSystem) +void FieldSystem_SaveTVSegment_LoveThatGroupCorner_NewGroup(FieldSystem *fieldSystem) { - FieldSystem_SaveTVEpisodeSegment_LoveThatGroupCorner(fieldSystem, TV_PROGRAM_SEGMENT_LOVE_THAT_GROUP_CORNER_NEW_GROUP); + FieldSystem_SaveTVSegment_LoveThatGroupCorner(fieldSystem, TV_PROGRAM_SEGMENT_LOVE_THAT_GROUP_CORNER_NEW_GROUP); } -void FieldSystem_SaveTVEpisodeSegment_LoveThatGroupCorner_SwitchGroup(FieldSystem *fieldSystem) +void FieldSystem_SaveTVSegment_LoveThatGroupCorner_SwitchGroup(FieldSystem *fieldSystem) { - FieldSystem_SaveTVEpisodeSegment_LoveThatGroupCorner(fieldSystem, TV_PROGRAM_SEGMENT_LOVE_THAT_GROUP_CORNER_SWITCH_GROUP); + FieldSystem_SaveTVSegment_LoveThatGroupCorner(fieldSystem, TV_PROGRAM_SEGMENT_LOVE_THAT_GROUP_CORNER_SWITCH_GROUP); } -static int TVEpisodeSegment_LoadMessage_LoveThatGroupCorner_SwitchGroup(FieldSystem *fieldSystem, StringTemplate *template, UnkStruct_ov6_022465F4 *param2) +static int TVSegment_LoadMessage_LoveThatGroupCorner_SwitchGroup(FieldSystem *fieldSystem, StringTemplate *template, TVEpisode *episode) { - TVEpisodeSegment_LoveThatGroupCorner *loveThatGroupCorner = ov6_02246498(param2); + TVSegment_LoveThatGroupCorner *loveThatGroupCorner = TVEpisode_GetSegment(episode); - sub_0206CD94(template, 1, loveThatGroupCorner->groupName, 0, ov6_02246490(param2), 1); - TVEpisodeSegment_SetTemplateTrainerName(template, 0, param2); + sub_0206CD94(template, 1, loveThatGroupCorner->groupName, 0, TVEpisode_GetLanguage(episode), 1); + TVSegment_SetTemplateTrainerName(template, 0, episode); return TVProgramTrainerSightings_Text_LoveThatGroupCorner_SwitchGroup; } -static int TVEpisodeSegment_LoadMessage_LoveThatGroupCorner_NewGroup(FieldSystem *fieldSystem, StringTemplate *template, UnkStruct_ov6_022465F4 *param2) +static int TVSegment_LoadMessage_LoveThatGroupCorner_NewGroup(FieldSystem *fieldSystem, StringTemplate *template, TVEpisode *episode) { - TVEpisodeSegment_LoveThatGroupCorner *loveThatGroupCorner = ov6_02246498(param2); + TVSegment_LoveThatGroupCorner *loveThatGroupCorner = TVEpisode_GetSegment(episode); - sub_0206CD94(template, 1, loveThatGroupCorner->groupName, 0, ov6_02246490(param2), 1); - TVEpisodeSegment_SetTemplateTrainerName(template, 0, param2); + sub_0206CD94(template, 1, loveThatGroupCorner->groupName, 0, TVEpisode_GetLanguage(episode), 1); + TVSegment_SetTemplateTrainerName(template, 0, episode); return TVProgramTrainerSightings_Text_LoveThatGroupCorner_NewGroup; } -void FieldSystem_SaveTVEpisodeSegment_HiddenItemBreakingNews(FieldSystem *fieldSystem, u16 item) +void FieldSystem_SaveTVSegment_HiddenItemBreakingNews(FieldSystem *fieldSystem, u16 item) { - TVEpisodeSegment segments; - TVEpisodeSegment_HiddenItemBreakingNews *hiddenItemBreakingNews = &segments.hiddenItemBreakingNews; + TVSegmentData segments; + TVSegment_HiddenItemBreakingNews *hiddenItemBreakingNews = &segments.hiddenItemBreakingNews; hiddenItemBreakingNews->item = item; hiddenItemBreakingNews->location = MapHeader_GetMapLabelTextID(fieldSystem->location->mapId); - FieldSystem_SaveTVEpisodeSegment(fieldSystem, TV_PROGRAM_TYPE_TRAINER_SIGHTINGS, TV_PROGRAM_SEGMENT_HIDDEN_ITEM_BREAKING_NEWS, hiddenItemBreakingNews); + FieldSystem_SaveTVSegment(fieldSystem, TV_PROGRAM_TYPE_TRAINER_SIGHTINGS, TV_PROGRAM_SEGMENT_HIDDEN_ITEM_BREAKING_NEWS, hiddenItemBreakingNews); } -static int TVEpisodeSegment_LoadMessage_HiddenItemBreakingNews(FieldSystem *fieldSystem, StringTemplate *template, UnkStruct_ov6_022465F4 *param2) +static int TVSegment_LoadMessage_HiddenItemBreakingNews(FieldSystem *fieldSystem, StringTemplate *template, TVEpisode *episode) { - TVEpisodeSegment_HiddenItemBreakingNews *hiddenItemBreakingNews = ov6_02246498(param2); + TVSegment_HiddenItemBreakingNews *hiddenItemBreakingNews = TVEpisode_GetSegment(episode); StringTemplate_SetLocationName(template, 0, hiddenItemBreakingNews->location); - TVEpisodeSegment_SetTemplateTrainerName(template, 1, param2); + TVSegment_SetTemplateTrainerName(template, 1, episode); StringTemplate_SetItemName(template, 2, hiddenItemBreakingNews->item); return TVProgramTrainerSightings_Text_HiddenItemBreakingNews; } -void FieldSystem_SaveTVEpisodeSegment_SinnohShoppingChampCorner(SaveData *saveData, u16 item, u8 amount) +void FieldSystem_SaveTVSegment_SinnohShoppingChampCorner(SaveData *saveData, u16 item, u8 amount) { - TVEpisodeSegment segments; - TVEpisodeSegment_SinnohShoppingChampCorner *sinnohShoppingChampCorner = &segments.sinnohShoppingChampCorner; + TVSegmentData segments; + TVSegment_SinnohShoppingChampCorner *sinnohShoppingChampCorner = &segments.sinnohShoppingChampCorner; if (amount >= 10) { sinnohShoppingChampCorner->item = item; @@ -918,104 +901,104 @@ void FieldSystem_SaveTVEpisodeSegment_SinnohShoppingChampCorner(SaveData *saveDa sinnohShoppingChampCorner->amount = 999; } - SaveData_SaveTVEpisodeSegment(saveData, TV_PROGRAM_TYPE_TRAINER_SIGHTINGS, TV_PROGRAM_SEGMENT_SINNOH_SHOPPING_CHAMP_CORNER, sinnohShoppingChampCorner); + SaveData_SaveTVSegment(saveData, TV_PROGRAM_TYPE_TRAINER_SIGHTINGS, TV_PROGRAM_SEGMENT_SINNOH_SHOPPING_CHAMP_CORNER, sinnohShoppingChampCorner); } } -static int TVEpisodeSegment_LoadMessage_SinnohShoppingChampCorner(FieldSystem *fieldSystem, StringTemplate *template, UnkStruct_ov6_022465F4 *param2) +static int TVSegment_LoadMessage_SinnohShoppingChampCorner(FieldSystem *fieldSystem, StringTemplate *template, TVEpisode *episode) { - TVEpisodeSegment_SinnohShoppingChampCorner *sinnohShoppingChampCorner = ov6_02246498(param2); + TVSegment_SinnohShoppingChampCorner *sinnohShoppingChampCorner = TVEpisode_GetSegment(episode); StringTemplate_SetItemName(template, 0, sinnohShoppingChampCorner->item); StringTemplate_SetNumber(template, 1, sinnohShoppingChampCorner->amount, 3, PADDING_MODE_NONE, CHARSET_MODE_EN); - TVEpisodeSegment_SetTemplateTrainerName(template, 2, param2); + TVSegment_SetTemplateTrainerName(template, 2, episode); StringTemplate_SetItemNamePlural(template, 3, sinnohShoppingChampCorner->item); return TVProgramTrainerSightings_Text_SinnohShoppingChampCorner; } -void FieldSystem_SaveTVEpisodeSegment_HappyHappyEggClub(FieldSystem *fieldSystem, Pokemon *mon) +void FieldSystem_SaveTVSegment_HappyHappyEggClub(FieldSystem *fieldSystem, Pokemon *mon) { - TVEpisodeSegment segments; - TVEpisodeSegment_HappyHappyEggClub *happyHappyEggClub = &segments.happyHappyEggClub; + TVSegmentData segments; + TVSegment_HappyHappyEggClub *happyHappyEggClub = &segments.happyHappyEggClub; - TVEpisodeSegment_CopyPokemonValues(mon, &happyHappyEggClub->species, &happyHappyEggClub->gender, &happyHappyEggClub->language, &happyHappyEggClub->metGame); + TVSegment_CopyPokemonValues(mon, &happyHappyEggClub->species, &happyHappyEggClub->gender, &happyHappyEggClub->language, &happyHappyEggClub->metGame); happyHappyEggClub->location = MapHeader_GetMapLabelTextID(fieldSystem->location->mapId); - FieldSystem_SaveTVEpisodeSegment(fieldSystem, TV_PROGRAM_TYPE_TRAINER_SIGHTINGS, TV_PROGRAM_SEGMENT_HAPPY_HAPPY_EGG_CLUB, happyHappyEggClub); + FieldSystem_SaveTVSegment(fieldSystem, TV_PROGRAM_TYPE_TRAINER_SIGHTINGS, TV_PROGRAM_SEGMENT_HAPPY_HAPPY_EGG_CLUB, happyHappyEggClub); } -static int TVEpisodeSegment_LoadMessage_HappyHappyEggClub(FieldSystem *fieldSystem, StringTemplate *template, UnkStruct_ov6_022465F4 *param2) +static int TVSegment_LoadMessage_HappyHappyEggClub(FieldSystem *fieldSystem, StringTemplate *template, TVEpisode *episode) { - TVEpisodeSegment_HappyHappyEggClub *happyHappyEggClub = ov6_02246498(param2); + TVSegment_HappyHappyEggClub *happyHappyEggClub = TVEpisode_GetSegment(episode); StringTemplate_SetLocationName(template, 1, happyHappyEggClub->location); - TVEpisodeSegment_SetTemplateTrainerName(template, 0, param2); - TVEpisodeSegment_SetTemplatePokemonSpecies(template, 2, happyHappyEggClub->species, happyHappyEggClub->gender, happyHappyEggClub->language, happyHappyEggClub->metGame); + TVSegment_SetTemplateTrainerName(template, 0, episode); + TVSegment_SetTemplatePokemonSpecies(template, 2, happyHappyEggClub->species, happyHappyEggClub->gender, happyHappyEggClub->language, happyHappyEggClub->metGame); return TVProgramTrainerSightings_Text_HappyHappyEggClub; } -static BOOL TVEpisodeSegment_IsEligible_HappyHappyEggClub(FieldSystem *fieldSystem, UnkStruct_ov6_022465F4 *param1) +static BOOL TVSegment_IsEligible_HappyHappyEggClub(FieldSystem *fieldSystem, TVEpisode *episode) { - TVEpisodeSegment_HappyHappyEggClub *happyHappyEggClub = ov6_02246498(param1); + TVSegment_HappyHappyEggClub *happyHappyEggClub = TVEpisode_GetSegment(episode); return Pokedex_HasSeenSpecies(SaveData_GetPokedex(fieldSystem->saveData), happyHappyEggClub->species); } -void FieldSystem_SaveTVEpisodeSegment_RateThatNameChange(FieldSystem *fieldSystem, Pokemon *mon) +void FieldSystem_SaveTVSegment_RateThatNameChange(FieldSystem *fieldSystem, Pokemon *mon) { - TVEpisodeSegment segments; - TVEpisodeSegment_RateThatNameChange *rateThatNameChange = &segments.rateThatNameChange; + TVSegmentData segments; + TVSegment_RateThatNameChange *rateThatNameChange = &segments.rateThatNameChange; - TVEpisodeSegment_CopyPokemonValues(mon, &rateThatNameChange->species, &rateThatNameChange->gender, &rateThatNameChange->language, &rateThatNameChange->metGame); + TVSegment_CopyPokemonValues(mon, &rateThatNameChange->species, &rateThatNameChange->gender, &rateThatNameChange->language, &rateThatNameChange->metGame); sub_0206CE08(HEAP_ID_FIELD1, rateThatNameChange->nickname, mon); - FieldSystem_SaveTVEpisodeSegment(fieldSystem, TV_PROGRAM_TYPE_TRAINER_SIGHTINGS, TV_PROGRAM_SEGMENT_RATE_THAT_NAME_CHANGE, rateThatNameChange); + FieldSystem_SaveTVSegment(fieldSystem, TV_PROGRAM_TYPE_TRAINER_SIGHTINGS, TV_PROGRAM_SEGMENT_RATE_THAT_NAME_CHANGE, rateThatNameChange); } -static int TVEpisodeSegment_LoadMessage_RateThatNameChange(FieldSystem *fieldSystem, StringTemplate *template, UnkStruct_ov6_022465F4 *param2) +static int TVSegment_LoadMessage_RateThatNameChange(FieldSystem *fieldSystem, StringTemplate *template, TVEpisode *episode) { - TVEpisodeSegment_RateThatNameChange *rateThatNameChange = ov6_02246498(param2); + TVSegment_RateThatNameChange *rateThatNameChange = TVEpisode_GetSegment(episode); - TVEpisodeSegment_SetTemplateTrainerName(template, 0, param2); - TVEpisodeSegment_SetTemplatePokemonSpecies(template, 1, rateThatNameChange->species, rateThatNameChange->gender, rateThatNameChange->language, rateThatNameChange->metGame); + TVSegment_SetTemplateTrainerName(template, 0, episode); + TVSegment_SetTemplatePokemonSpecies(template, 1, rateThatNameChange->species, rateThatNameChange->gender, rateThatNameChange->language, rateThatNameChange->metGame); sub_0206CD94(template, 2, rateThatNameChange->nickname, rateThatNameChange->gender, rateThatNameChange->language, 1); return TVProgramTrainerSightings_Text_RateThatNameChange_MoreAttractive + LCRNG_RandMod(5); } -static BOOL TVEpisodeSegment_IsEligible_RateThatNameChange(FieldSystem *fieldSystem, UnkStruct_ov6_022465F4 *param1) +static BOOL TVSegment_IsEligible_RateThatNameChange(FieldSystem *fieldSystem, TVEpisode *episode) { Pokedex *pokedex = SaveData_GetPokedex(fieldSystem->saveData); - TVEpisodeSegment_RateThatNameChange *rateThatNameChange = ov6_02246498(param1); + TVSegment_RateThatNameChange *rateThatNameChange = TVEpisode_GetSegment(episode); return Pokedex_HasSeenSpecies(pokedex, rateThatNameChange->species); } -void FieldSystem_SaveTVEpisodeSegment_UndergroundTreasuresCorner(FieldSystem *fieldSystem, int item, int amount) +void FieldSystem_SaveTVSegment_UndergroundTreasuresCorner(FieldSystem *fieldSystem, int item, int amount) { - TVEpisodeSegment segments; - TVEpisodeSegment_UndergroundTreasuresCorner *undergroundTreasuresCorner = &segments.undergroundTreasuresCorner; + TVSegmentData segments; + TVSegment_UndergroundTreasuresCorner *undergroundTreasuresCorner = &segments.undergroundTreasuresCorner; undergroundTreasuresCorner->item = item; undergroundTreasuresCorner->amount = amount; - FieldSystem_SaveTVEpisodeSegment(fieldSystem, TV_PROGRAM_TYPE_TRAINER_SIGHTINGS, TV_PROGRAM_SEGMENT_UNDERGROUND_TREASURES_CORNER, undergroundTreasuresCorner); + FieldSystem_SaveTVSegment(fieldSystem, TV_PROGRAM_TYPE_TRAINER_SIGHTINGS, TV_PROGRAM_SEGMENT_UNDERGROUND_TREASURES_CORNER, undergroundTreasuresCorner); } -static int TVEpisodeSegment_LoadMessage_UndergroundTreasuresCorner(FieldSystem *fieldSystem, StringTemplate *template, UnkStruct_ov6_022465F4 *param2) +static int TVSegment_LoadMessage_UndergroundTreasuresCorner(FieldSystem *fieldSystem, StringTemplate *template, TVEpisode *episode) { - TVEpisodeSegment_UndergroundTreasuresCorner *undergroundTreasuresCorner = ov6_02246498(param2); + TVSegment_UndergroundTreasuresCorner *undergroundTreasuresCorner = TVEpisode_GetSegment(episode); - TVEpisodeSegment_SetTemplateTrainerName(template, 0, param2); + TVSegment_SetTemplateTrainerName(template, 0, episode); StringTemplate_SetUndergroundItemName(template, 1, undergroundTreasuresCorner->item); StringTemplate_SetNumber(template, 2, undergroundTreasuresCorner->amount, 3, PADDING_MODE_NONE, CHARSET_MODE_EN); return TVProgramTrainerSightings_Text_UndergroundTreasuresCorner; } -void FieldSystem_SaveTVEpisodeSegment_SafariGameSpecialNewsBulletin(FieldSystem *fieldSystem) +void FieldSystem_SaveTVSegment_SafariGameSpecialNewsBulletin(FieldSystem *fieldSystem) { - TVEpisodeSegment segments; - TVEpisodeSegment_SafariGameSpecialNewsBulletin *safariGameSpecialNewsBulletin = &segments.safariGameSpecialNewsBulletin; + TVSegmentData segments; + TVSegment_SafariGameSpecialNewsBulletin *safariGameSpecialNewsBulletin = &segments.safariGameSpecialNewsBulletin; TVBroadcast *broadcast = SaveData_GetTVBroadcast(fieldSystem->saveData); UnkStruct_0202E808 *safariGame = TVBroadcast_GetSafariGameData(broadcast); @@ -1029,36 +1012,36 @@ void FieldSystem_SaveTVEpisodeSegment_SafariGameSpecialNewsBulletin(FieldSystem safariGameSpecialNewsBulletin->metGame = safariGame->metGame; safariGameSpecialNewsBulletin->numPokemonCaught = safariGame->numPokemonCaught; - FieldSystem_SaveTVEpisodeSegment(fieldSystem, TV_PROGRAM_TYPE_TRAINER_SIGHTINGS, TV_PROGRAM_SEGMENT_SAFAR_GAME_SPECIAL_NEWS_BULLETIN, safariGameSpecialNewsBulletin); + FieldSystem_SaveTVSegment(fieldSystem, TV_PROGRAM_TYPE_TRAINER_SIGHTINGS, TV_PROGRAM_SEGMENT_SAFAR_GAME_SPECIAL_NEWS_BULLETIN, safariGameSpecialNewsBulletin); } -static int TVEpisodeSegment_LoadMessage_SafariGameSpecialNewsBulletin(FieldSystem *fieldSystem, StringTemplate *template, UnkStruct_ov6_022465F4 *param2) +static int TVSegment_LoadMessage_SafariGameSpecialNewsBulletin(FieldSystem *fieldSystem, StringTemplate *template, TVEpisode *episode) { - TVEpisodeSegment_SafariGameSpecialNewsBulletin *safariGameSpecialNewsBulletin = ov6_02246498(param2); + TVSegment_SafariGameSpecialNewsBulletin *safariGameSpecialNewsBulletin = TVEpisode_GetSegment(episode); - TVEpisodeSegment_SetTemplateTrainerName(template, 0, param2); - TVEpisodeSegment_SetTemplatePokemonSpecies(template, 1, safariGameSpecialNewsBulletin->species, safariGameSpecialNewsBulletin->gender, safariGameSpecialNewsBulletin->language, safariGameSpecialNewsBulletin->metGame); + TVSegment_SetTemplateTrainerName(template, 0, episode); + TVSegment_SetTemplatePokemonSpecies(template, 1, safariGameSpecialNewsBulletin->species, safariGameSpecialNewsBulletin->gender, safariGameSpecialNewsBulletin->language, safariGameSpecialNewsBulletin->metGame); StringTemplate_SetNumber(template, 2, safariGameSpecialNewsBulletin->numPokemonCaught, 2, PADDING_MODE_NONE, CHARSET_MODE_EN); return TVProgramTrainerSightings_Text_SafariGameSpecialNewsBulletin; } -static BOOL TVEpisodeSegment_IsEligible_SafariGameSpecialNewsBulletin(FieldSystem *fieldSystem, UnkStruct_ov6_022465F4 *param1) +static BOOL TVSegment_IsEligible_SafariGameSpecialNewsBulletin(FieldSystem *fieldSystem, TVEpisode *episode) { Pokedex *pokedex = SaveData_GetPokedex(fieldSystem->saveData); - TVEpisodeSegment_SafariGameSpecialNewsBulletin *safariGameSpecialNewsBulletin = ov6_02246498(param1); + TVSegment_SafariGameSpecialNewsBulletin *safariGameSpecialNewsBulletin = TVEpisode_GetSegment(episode); return Pokedex_HasSeenSpecies(pokedex, safariGameSpecialNewsBulletin->species); } -void FieldSystem_SaveTVEpisodeSegment_PokemonStorageSpecialNewsBulletin(FieldSystem *fieldSystem) +void FieldSystem_SaveTVSegment_PokemonStorageSpecialNewsBulletin(FieldSystem *fieldSystem) { u32 hasMale, hasFemale, hasGenderless, gender; u8 partyCount, partyIndex; Pokemon *mon; - TVEpisodeSegment segments; + TVSegmentData segments; Party *party; - TVEpisodeSegment_PokemonStorageSpecialNewsBulletin *pokemonStorageSpecialNewsBulletin = &segments.pokemonStorageSpecialNewsBulletin; + TVSegment_PokemonStorageSpecialNewsBulletin *pokemonStorageSpecialNewsBulletin = &segments.pokemonStorageSpecialNewsBulletin; hasMale = FALSE; hasFemale = FALSE; @@ -1085,24 +1068,24 @@ void FieldSystem_SaveTVEpisodeSegment_PokemonStorageSpecialNewsBulletin(FieldSys if (hasGenderless == FALSE) { if (hasMale == TRUE && hasFemale == FALSE) { mon = Party_FindFirstHatchedMon(SaveData_GetParty(fieldSystem->saveData)); - TVEpisodeSegment_CopyPokemonValues(mon, &pokemonStorageSpecialNewsBulletin->species, &pokemonStorageSpecialNewsBulletin->gender, &pokemonStorageSpecialNewsBulletin->language, &pokemonStorageSpecialNewsBulletin->metGame); - FieldSystem_SaveTVEpisodeSegment(fieldSystem, TV_PROGRAM_TYPE_TRAINER_SIGHTINGS, TV_PROGRAM_SEGMENT_POKEMON_STORAGE_SPECIAL_NEWS_BULLETIN, pokemonStorageSpecialNewsBulletin); + TVSegment_CopyPokemonValues(mon, &pokemonStorageSpecialNewsBulletin->species, &pokemonStorageSpecialNewsBulletin->gender, &pokemonStorageSpecialNewsBulletin->language, &pokemonStorageSpecialNewsBulletin->metGame); + FieldSystem_SaveTVSegment(fieldSystem, TV_PROGRAM_TYPE_TRAINER_SIGHTINGS, TV_PROGRAM_SEGMENT_POKEMON_STORAGE_SPECIAL_NEWS_BULLETIN, pokemonStorageSpecialNewsBulletin); } else if (hasMale == FALSE && hasFemale == TRUE) { mon = Party_FindFirstHatchedMon(SaveData_GetParty(fieldSystem->saveData)); - TVEpisodeSegment_CopyPokemonValues(mon, &pokemonStorageSpecialNewsBulletin->species, &pokemonStorageSpecialNewsBulletin->gender, &pokemonStorageSpecialNewsBulletin->language, &pokemonStorageSpecialNewsBulletin->metGame); - FieldSystem_SaveTVEpisodeSegment(fieldSystem, TV_PROGRAM_TYPE_TRAINER_SIGHTINGS, TV_PROGRAM_SEGMENT_POKEMON_STORAGE_SPECIAL_NEWS_BULLETIN, pokemonStorageSpecialNewsBulletin); + TVSegment_CopyPokemonValues(mon, &pokemonStorageSpecialNewsBulletin->species, &pokemonStorageSpecialNewsBulletin->gender, &pokemonStorageSpecialNewsBulletin->language, &pokemonStorageSpecialNewsBulletin->metGame); + FieldSystem_SaveTVSegment(fieldSystem, TV_PROGRAM_TYPE_TRAINER_SIGHTINGS, TV_PROGRAM_SEGMENT_POKEMON_STORAGE_SPECIAL_NEWS_BULLETIN, pokemonStorageSpecialNewsBulletin); } } return; } -static int TVEpisodeSegment_LoadMessage_PokemonStorageSpecialNewsBulletin(FieldSystem *fieldSystem, StringTemplate *template, UnkStruct_ov6_022465F4 *param2) +static int TVSegment_LoadMessage_PokemonStorageSpecialNewsBulletin(FieldSystem *fieldSystem, StringTemplate *template, TVEpisode *episode) { - TVEpisodeSegment_PokemonStorageSpecialNewsBulletin *pokemonStorageSpecialNewsBulletin = ov6_02246498(param2); + TVSegment_PokemonStorageSpecialNewsBulletin *pokemonStorageSpecialNewsBulletin = TVEpisode_GetSegment(episode); - TVEpisodeSegment_SetTemplateTrainerName(template, 0, param2); - TVEpisodeSegment_SetTemplatePokemonSpecies(template, 1, pokemonStorageSpecialNewsBulletin->species, pokemonStorageSpecialNewsBulletin->gender, pokemonStorageSpecialNewsBulletin->language, pokemonStorageSpecialNewsBulletin->metGame); + TVSegment_SetTemplateTrainerName(template, 0, episode); + TVSegment_SetTemplatePokemonSpecies(template, 1, pokemonStorageSpecialNewsBulletin->species, pokemonStorageSpecialNewsBulletin->gender, pokemonStorageSpecialNewsBulletin->language, pokemonStorageSpecialNewsBulletin->metGame); if (pokemonStorageSpecialNewsBulletin->gender == GENDER_MALE) { return TVProgramTrainerSightings_Text_PokemonStorageSpecialNewsBulletin_Male; @@ -1111,27 +1094,27 @@ static int TVEpisodeSegment_LoadMessage_PokemonStorageSpecialNewsBulletin(FieldS return TVProgramTrainerSightings_Text_PokemonStorageSpecialNewsBulletin_Female; } -static BOOL TVEpisodeSegment_IsEligible_PokemonStorageSpecialNewsBulletin(FieldSystem *fieldSystem, UnkStruct_ov6_022465F4 *param1) +static BOOL TVSegment_IsEligible_PokemonStorageSpecialNewsBulletin(FieldSystem *fieldSystem, TVEpisode *episode) { - TVEpisodeSegment_PokemonStorageSpecialNewsBulletin *pokemonStorageSpecialNewsBulletin = ov6_02246498(param1); + TVSegment_PokemonStorageSpecialNewsBulletin *pokemonStorageSpecialNewsBulletin = TVEpisode_GetSegment(episode); return Pokedex_HasSeenSpecies(SaveData_GetPokedex(fieldSystem->saveData), pokemonStorageSpecialNewsBulletin->species); } -void FieldSystem_SaveTVEpisodeSegment_HerbalMedicineTrainerSightingDummy(TVBroadcast *broadcast, Pokemon *mon, u16 item) +void FieldSystem_SaveTVSegment_HerbalMedicineTrainerSightingDummy(TVBroadcast *broadcast, Pokemon *mon, u16 item) { return; } -static BOOL TVEpisodeSegment_IsEligible_HerbalMedicineTrainerSightingDummy(FieldSystem *fieldSystem, UnkStruct_ov6_022465F4 *param1) +static BOOL TVSegment_IsEligible_HerbalMedicineTrainerSightingDummy(FieldSystem *fieldSystem, TVEpisode *episode) { return FALSE; } -void FieldSystem_SaveTVEpisodeSegment_PlantingAndWateringShow(FieldSystem *fieldSystem, u16 berryItemID, u8 yieldRating, u16 yieldAmount) +void FieldSystem_SaveTVSegment_PlantingAndWateringShow(FieldSystem *fieldSystem, u16 berryItemID, u8 yieldRating, u16 yieldAmount) { - TVEpisodeSegment segments; - TVEpisodeSegment_PlantingAndWateringShow *plantingAndWateringShow = &segments.plantingAndWateringShow; + TVSegmentData segments; + TVSegment_PlantingAndWateringShow *plantingAndWateringShow = &segments.plantingAndWateringShow; plantingAndWateringShow->berryItemID = berryItemID; plantingAndWateringShow->yieldRating = yieldRating; @@ -1140,167 +1123,167 @@ void FieldSystem_SaveTVEpisodeSegment_PlantingAndWateringShow(FieldSystem *field if (yieldRating == 5) { (void)0; } else if (yieldRating == 4) { - FieldSystem_SaveTVEpisodeSegment(fieldSystem, TV_PROGRAM_TYPE_TRAINER_SIGHTINGS, TV_PROGRAM_SEGMENT_PLANTING_AND_WATERING_SHOW, plantingAndWateringShow); + FieldSystem_SaveTVSegment(fieldSystem, TV_PROGRAM_TYPE_TRAINER_SIGHTINGS, TV_PROGRAM_SEGMENT_PLANTING_AND_WATERING_SHOW, plantingAndWateringShow); } else if (yieldRating == 0) { - FieldSystem_SaveTVEpisodeSegment(fieldSystem, TV_PROGRAM_TYPE_TRAINER_SIGHTINGS, TV_PROGRAM_SEGMENT_PLANTING_AND_WATERING_SHOW_NO_BERRIES, plantingAndWateringShow); + FieldSystem_SaveTVSegment(fieldSystem, TV_PROGRAM_TYPE_TRAINER_SIGHTINGS, TV_PROGRAM_SEGMENT_PLANTING_AND_WATERING_SHOW_NO_BERRIES, plantingAndWateringShow); } } -static int TVEpisodeSegment_LoadMessage_PlantingAndWateringShow(FieldSystem *fieldSystem, StringTemplate *template, UnkStruct_ov6_022465F4 *param2) +static int TVSegment_LoadMessage_PlantingAndWateringShow(FieldSystem *fieldSystem, StringTemplate *template, TVEpisode *episode) { - TVEpisodeSegment_PlantingAndWateringShow *plantingAndWateringShow = ov6_02246498(param2); + TVSegment_PlantingAndWateringShow *plantingAndWateringShow = TVEpisode_GetSegment(episode); - TVEpisodeSegment_SetTemplateTrainerName(template, 0, param2); + TVSegment_SetTemplateTrainerName(template, 0, episode); StringTemplate_SetItemName(template, 1, plantingAndWateringShow->berryItemID); StringTemplate_SetNumber(template, 2, plantingAndWateringShow->yieldAmount, 2, PADDING_MODE_NONE, CHARSET_MODE_EN); return TVProgramTrainerSightings_Text_PlantingAndWateringShow; } -static int TVEpisodeSegment_LoadMessage_PlantingAndWateringShow_NoBerries(FieldSystem *fieldSystem, StringTemplate *template, UnkStruct_ov6_022465F4 *param2) +static int TVSegment_LoadMessage_PlantingAndWateringShow_NoBerries(FieldSystem *fieldSystem, StringTemplate *template, TVEpisode *episode) { - TVEpisodeSegment_PlantingAndWateringShow *plantingAndWateringShow = ov6_02246498(param2); + TVSegment_PlantingAndWateringShow *plantingAndWateringShow = TVEpisode_GetSegment(episode); - TVEpisodeSegment_SetTemplateTrainerName(template, 0, param2); + TVSegment_SetTemplateTrainerName(template, 0, episode); StringTemplate_SetItemName(template, 1, plantingAndWateringShow->berryItemID); return TVProgramTrainerSightings_Text_PlantingAndWateringShow_NoBerries; } -void FieldSystem_SaveTVEpisodeSegment_SealClubShow(TVBroadcast *broadcast, Pokemon *param1, u8 ballSeal) +void FieldSystem_SaveTVSegment_SealClubShow(TVBroadcast *broadcast, Pokemon *param1, u8 ballSeal) { - TVEpisodeSegment segments; - TVEpisodeSegment_SealClubShow *sealClubShow = &segments.sealClubShow; + TVSegmentData segments; + TVSegment_SealClubShow *sealClubShow = &segments.sealClubShow; sealClubShow->ballSeal = ballSeal; sealClubShow->dummy = MTRNG_Next() % 3; - TVEpisodeSegment_CopyPokemonValues(param1, &sealClubShow->species, &sealClubShow->gender, &sealClubShow->language, &sealClubShow->metGame); + TVSegment_CopyPokemonValues(param1, &sealClubShow->species, &sealClubShow->gender, &sealClubShow->language, &sealClubShow->metGame); TVBroadcast_SaveSegmentData(broadcast, TV_PROGRAM_TYPE_TRAINER_SIGHTINGS, TV_PROGRAM_SEGMENT_SEAL_CLUB_SHOW, (const u8 *)sealClubShow); } -static int TVEpisodeSegment_LoadMessage_SealClubShow(FieldSystem *fieldSystem, StringTemplate *template, UnkStruct_ov6_022465F4 *param2) +static int TVSegment_LoadMessage_SealClubShow(FieldSystem *fieldSystem, StringTemplate *template, TVEpisode *episode) { - TVEpisodeSegment_SealClubShow *sealClubShow = ov6_02246498(param2); + TVSegment_SealClubShow *sealClubShow = TVEpisode_GetSegment(episode); - TVEpisodeSegment_SetTemplateTrainerName(template, 0, param2); + TVSegment_SetTemplateTrainerName(template, 0, episode); StringTemplate_SetBallSealName(template, 1, sealClubShow->ballSeal); - TVEpisodeSegment_SetTemplatePokemonSpecies(template, 2, sealClubShow->species, sealClubShow->gender, sealClubShow->language, sealClubShow->metGame); + TVSegment_SetTemplatePokemonSpecies(template, 2, sealClubShow->species, sealClubShow->gender, sealClubShow->language, sealClubShow->metGame); return TVProgramTrainerSightings_Text_SealClubShow_CleverlyCalculated + LCRNG_RandMod(3); } -static BOOL TVEpisodeSegment_IsEligible_SealClubShow(FieldSystem *fieldSystem, UnkStruct_ov6_022465F4 *param1) +static BOOL TVSegment_IsEligible_SealClubShow(FieldSystem *fieldSystem, TVEpisode *episode) { - TVEpisodeSegment_SealClubShow *sealClubShow = ov6_02246498(param1); + TVSegment_SealClubShow *sealClubShow = TVEpisode_GetSegment(episode); return Pokedex_HasSeenSpecies(SaveData_GetPokedex(fieldSystem->saveData), sealClubShow->species); } -static void sub_0206DA6C(TVEpisodeSegment_CaptureTheFlagDigest *captureTheFlagDigest, const TrainerInfo *param1) +static void sub_0206DA6C(TVSegment_CaptureTheFlagDigest *captureTheFlagDigest, const TrainerInfo *param1) { captureTheFlagDigest->trainerInfoSize = TrainerInfo_Size(); TrainerInfo_Copy(param1, (TrainerInfo *)captureTheFlagDigest->trainerInfo); } -static void TVEpisodeSegment_LoadMessage_CaptureTheFlagDigest(FieldSystem *fieldSystem, StringTemplate *template, UnkStruct_ov6_022465F4 *param2) +static void TVSegment_LoadMessage_CaptureTheFlagDigest(FieldSystem *fieldSystem, StringTemplate *template, TVEpisode *episode) { - TVEpisodeSegment_CaptureTheFlagDigest *captureTheFlagDigest = ov6_02246498(param2); + TVSegment_CaptureTheFlagDigest *captureTheFlagDigest = TVEpisode_GetSegment(episode); TrainerInfo *trainerInfo = (TrainerInfo *)&captureTheFlagDigest->trainerInfo; GF_ASSERT(TrainerInfo_Size() == captureTheFlagDigest->trainerInfoSize); - TVEpisodeSegment_SetTemplateTrainerName(template, 0, param2); + TVSegment_SetTemplateTrainerName(template, 0, episode); StringTemplate_SetPlayerName(template, 1, trainerInfo); } -void FieldSystem_SaveTVEpisodeSegment_CaptureTheFlagDigest_TakeFlag(FieldSystem *fieldSystem, const TrainerInfo *trainerInfo) +void FieldSystem_SaveTVSegment_CaptureTheFlagDigest_TakeFlag(FieldSystem *fieldSystem, const TrainerInfo *trainerInfo) { - TVEpisodeSegment segments; - TVEpisodeSegment_CaptureTheFlagDigest *captureTheFlagDigest = &segments.captureTheFlagDigest; + TVSegmentData segments; + TVSegment_CaptureTheFlagDigest *captureTheFlagDigest = &segments.captureTheFlagDigest; sub_0206DA6C(captureTheFlagDigest, trainerInfo); - FieldSystem_SaveTVEpisodeSegment(fieldSystem, TV_PROGRAM_TYPE_TRAINER_SIGHTINGS, TV_PROGRAM_SEGMENT_CAPTURE_THE_FLAG_DIGEST_TAKE_FLAG, captureTheFlagDigest); + FieldSystem_SaveTVSegment(fieldSystem, TV_PROGRAM_TYPE_TRAINER_SIGHTINGS, TV_PROGRAM_SEGMENT_CAPTURE_THE_FLAG_DIGEST_TAKE_FLAG, captureTheFlagDigest); } -void FieldSystem_SaveTVEpisodeSegment_CaptureTheFlagDigest_LoseFlag(FieldSystem *fieldSystem, const TrainerInfo *trainerInfo) +void FieldSystem_SaveTVSegment_CaptureTheFlagDigest_LoseFlag(FieldSystem *fieldSystem, const TrainerInfo *trainerInfo) { - TVEpisodeSegment segments; - TVEpisodeSegment_CaptureTheFlagDigest *captureTheFlagDigest = &segments.captureTheFlagDigest; + TVSegmentData segments; + TVSegment_CaptureTheFlagDigest *captureTheFlagDigest = &segments.captureTheFlagDigest; sub_0206DA6C(captureTheFlagDigest, trainerInfo); - FieldSystem_SaveTVEpisodeSegment(fieldSystem, TV_PROGRAM_TYPE_TRAINER_SIGHTINGS, TV_PROGRAM_SEGMENT_CAPTURE_THE_FLAG_DIGEST_LOSE_FLAG, captureTheFlagDigest); + FieldSystem_SaveTVSegment(fieldSystem, TV_PROGRAM_TYPE_TRAINER_SIGHTINGS, TV_PROGRAM_SEGMENT_CAPTURE_THE_FLAG_DIGEST_LOSE_FLAG, captureTheFlagDigest); } -static int TVEpisodeSegment_LoadMessage_CaptureTheFlagDigest_TakeFlag(FieldSystem *fieldSystem, StringTemplate *template, UnkStruct_ov6_022465F4 *param2) +static int TVSegment_LoadMessage_CaptureTheFlagDigest_TakeFlag(FieldSystem *fieldSystem, StringTemplate *template, TVEpisode *episode) { - TVEpisodeSegment_LoadMessage_CaptureTheFlagDigest(fieldSystem, template, param2); + TVSegment_LoadMessage_CaptureTheFlagDigest(fieldSystem, template, episode); return TVProgramTrainerSightings_Text_CaptureTheFlagDigest_TakeFlag; } -static int TVEpisodeSegment_LoadMessage_CaptureTheFlagDigest_LoseFlag(FieldSystem *fieldSystem, StringTemplate *template, UnkStruct_ov6_022465F4 *param2) +static int TVSegment_LoadMessage_CaptureTheFlagDigest_LoseFlag(FieldSystem *fieldSystem, StringTemplate *template, TVEpisode *episode) { - TVEpisodeSegment_LoadMessage_CaptureTheFlagDigest(fieldSystem, template, param2); + TVSegment_LoadMessage_CaptureTheFlagDigest(fieldSystem, template, episode); return TVProgramTrainerSightings_Text_CaptureTheFlagDigest_LoseFlag; } -static BOOL TVEpisodeSegment_IsEligible_HasExplorerKit(FieldSystem *fieldSystem, UnkStruct_ov6_022465F4 *param1) +static BOOL TVSegment_IsEligible_HasExplorerKit(FieldSystem *fieldSystem, TVEpisode *episode) { return Bag_CanRemoveItem(SaveData_GetBag(fieldSystem->saveData), ITEM_EXPLORER_KIT, 1, HEAP_ID_FIELD3); } -void FieldSystem_SaveTVEpisodeSegment_HomeAndManor_NoFurniture(FieldSystem *fieldSystem) +void FieldSystem_SaveTVSegment_HomeAndManor_NoFurniture(FieldSystem *fieldSystem) { - TVEpisodeSegment segments; - TVEpisodeSegment_HomeAndManor_NoFurniture *homeAndManorNoFurniture = &segments.homeAndManorNoFurniture; + TVSegmentData segments; + TVSegment_HomeAndManor_NoFurniture *homeAndManorNoFurniture = &segments.homeAndManorNoFurniture; homeAndManorNoFurniture->dummy = 1; - FieldSystem_SaveTVEpisodeSegment(fieldSystem, TV_PROGRAM_TYPE_TRAINER_SIGHTINGS, TV_PROGRAM_SEGMENT_HOME_AND_MANOR_NO_FURNITURE, homeAndManorNoFurniture); + FieldSystem_SaveTVSegment(fieldSystem, TV_PROGRAM_TYPE_TRAINER_SIGHTINGS, TV_PROGRAM_SEGMENT_HOME_AND_MANOR_NO_FURNITURE, homeAndManorNoFurniture); } -static int TVEpisodeSegment_LoadMessage_HomeAndManor_NoFurniture(FieldSystem *fieldSystem, StringTemplate *template, UnkStruct_ov6_022465F4 *param2) +static int TVSegment_LoadMessage_HomeAndManor_NoFurniture(FieldSystem *fieldSystem, StringTemplate *template, TVEpisode *episode) { - TVEpisodeSegment_SetTemplateTrainerName(template, 0, param2); + TVSegment_SetTemplateTrainerName(template, 0, episode); return TVProgramTrainerSightings_Text_HomeAndManor_NoFurniture; } -static BOOL TVEpisodeSegment_IsEligible_HomeAndManor_NoFurniture(FieldSystem *fieldSystem, UnkStruct_ov6_022465F4 *param1) +static BOOL TVSegment_IsEligible_HomeAndManor_NoFurniture(FieldSystem *fieldSystem, TVEpisode *episode) { return SystemFlag_HandleFirstArrivalToZone(SaveData_GetVarsFlags(fieldSystem->saveData), HANDLE_FLAG_CHECK, FIRST_ARRIVAL_RESORT_AREA); } -void FieldSystem_SaveTVEpisodeSegment_HomeAndManor(FieldSystem *fieldSystem, u8 furniture) +void FieldSystem_SaveTVSegment_HomeAndManor(FieldSystem *fieldSystem, u8 furniture) { - TVEpisodeSegment segments; - TVEpisodeSegment_HomeAndManor *homeAndManor = &segments.homeAndManor; + TVSegmentData segments; + TVSegment_HomeAndManor *homeAndManor = &segments.homeAndManor; homeAndManor->furniture = furniture; - FieldSystem_SaveTVEpisodeSegment(fieldSystem, TV_PROGRAM_TYPE_TRAINER_SIGHTINGS, TV_PROGRAM_SEGMENT_HOME_AND_MANOR, homeAndManor); + FieldSystem_SaveTVSegment(fieldSystem, TV_PROGRAM_TYPE_TRAINER_SIGHTINGS, TV_PROGRAM_SEGMENT_HOME_AND_MANOR, homeAndManor); } -static int TVEpisodeSegment_LoadMessage_HomeAndManor(FieldSystem *fieldSystem, StringTemplate *template, UnkStruct_ov6_022465F4 *param2) +static int TVSegment_LoadMessage_HomeAndManor(FieldSystem *fieldSystem, StringTemplate *template, TVEpisode *episode) { - TVEpisodeSegment_HomeAndManor *homeAndManor = ov6_02246498(param2); + TVSegment_HomeAndManor *homeAndManor = TVEpisode_GetSegment(episode); - TVEpisodeSegment_SetTemplateTrainerName(template, 0, param2); + TVSegment_SetTemplateTrainerName(template, 0, episode); StringTemplate_SetFurniture(template, 1, homeAndManor->furniture); return TVProgramTrainerSightings_Text_HomeAndManor; } -static BOOL TVEpisodeSegment_IsEligible_HomeAndManor(FieldSystem *fieldSystem, UnkStruct_ov6_022465F4 *param1) +static BOOL TVSegment_IsEligible_HomeAndManor(FieldSystem *fieldSystem, TVEpisode *episode) { return SystemFlag_HandleFirstArrivalToZone(SaveData_GetVarsFlags(fieldSystem->saveData), HANDLE_FLAG_CHECK, FIRST_ARRIVAL_RESORT_AREA); } void sub_0206DBB0(SaveData *saveData, u32 param1, Pokemon *param2, BOOL param3) { - TVEpisodeSegment segments; + TVSegmentData segments; UnkStruct_0206DBE8 *v1 = &segments.val18; - TVEpisodeSegment_CopyPokemonValues(param2, &v1->unk_02, &v1->unk_04, &v1->language, &v1->unk_06); + TVSegment_CopyPokemonValues(param2, &v1->unk_02, &v1->unk_04, &v1->language, &v1->unk_06); v1->unk_00 = param1; v1->unk_07 = param3; @@ -1308,12 +1291,12 @@ void sub_0206DBB0(SaveData *saveData, u32 param1, Pokemon *param2, BOOL param3) sub_0206CD58(saveData, 3, 1, v1); } -static int sub_0206DBE8(FieldSystem *fieldSystem, StringTemplate *param1, UnkStruct_ov6_022465F4 *param2) +static int sub_0206DBE8(FieldSystem *fieldSystem, StringTemplate *param1, TVEpisode *episode) { - UnkStruct_0206DBE8 *v0 = ov6_02246498(param2); + UnkStruct_0206DBE8 *v0 = TVEpisode_GetSegment(episode); - TVEpisodeSegment_SetTemplateTrainerName(param1, 0, param2); - TVEpisodeSegment_SetTemplatePokemonSpecies(param1, 1, v0->unk_02, v0->unk_04, v0->language, v0->unk_06); + TVSegment_SetTemplateTrainerName(param1, 0, episode); + TVSegment_SetTemplatePokemonSpecies(param1, 1, v0->unk_02, v0->unk_04, v0->language, v0->unk_06); StringTemplate_SetNumber(param1, 2, v0->unk_00, 4, PADDING_MODE_NONE, CHARSET_MODE_EN); if (v0->unk_07) { @@ -1323,9 +1306,9 @@ static int sub_0206DBE8(FieldSystem *fieldSystem, StringTemplate *param1, UnkStr } } -static BOOL sub_0206DC3C(FieldSystem *fieldSystem, UnkStruct_ov6_022465F4 *param1) +static BOOL sub_0206DC3C(FieldSystem *fieldSystem, TVEpisode *episode) { - UnkStruct_0206DBE8 *v0 = ov6_02246498(param1); + UnkStruct_0206DBE8 *v0 = TVEpisode_GetSegment(episode); if (Pokedex_HasSeenSpecies(SaveData_GetPokedex(fieldSystem->saveData), v0->unk_02) == 0) { return 0; @@ -1336,20 +1319,20 @@ static BOOL sub_0206DC3C(FieldSystem *fieldSystem, UnkStruct_ov6_022465F4 *param void sub_0206DC6C(FieldSystem *fieldSystem, u32 param1, Pokemon *param2) { - TVEpisodeSegment segments; + TVSegmentData segments; UnkStruct_0206DC9C *v1 = &segments.val19; - TVEpisodeSegment_CopyPokemonValues(param2, &v1->unk_00, &v1->unk_02, &v1->language, &v1->unk_04); + TVSegment_CopyPokemonValues(param2, &v1->unk_00, &v1->unk_02, &v1->language, &v1->unk_04); v1->unk_08 = param1; - FieldSystem_SaveTVEpisodeSegment(fieldSystem, TV_PROGRAM_TYPE_RECORDS, 3, v1); + FieldSystem_SaveTVSegment(fieldSystem, TV_PROGRAM_TYPE_RECORDS, 3, v1); } -static int sub_0206DC9C(FieldSystem *fieldSystem, StringTemplate *param1, UnkStruct_ov6_022465F4 *param2) +static int sub_0206DC9C(FieldSystem *fieldSystem, StringTemplate *param1, TVEpisode *episode) { - UnkStruct_0206DC9C *v0 = ov6_02246498(param2); + UnkStruct_0206DC9C *v0 = TVEpisode_GetSegment(episode); - TVEpisodeSegment_SetTemplateTrainerName(param1, 0, param2); - TVEpisodeSegment_SetTemplatePokemonSpecies(param1, 1, v0->unk_00, v0->unk_02, v0->language, v0->unk_04); + TVSegment_SetTemplateTrainerName(param1, 0, episode); + TVSegment_SetTemplatePokemonSpecies(param1, 1, v0->unk_00, v0->unk_02, v0->language, v0->unk_04); { u32 v1 = (((v0->unk_08 * 1000) / 254 + 5) / 10); @@ -1361,15 +1344,15 @@ static int sub_0206DC9C(FieldSystem *fieldSystem, StringTemplate *param1, UnkStr return 2; } -static BOOL sub_0206DD1C(FieldSystem *fieldSystem, UnkStruct_ov6_022465F4 *param1) +static BOOL sub_0206DD1C(FieldSystem *fieldSystem, TVEpisode *episode) { - UnkStruct_0206DC9C *v0 = ov6_02246498(param1); + UnkStruct_0206DC9C *v0 = TVEpisode_GetSegment(episode); return Pokedex_HasSeenSpecies(SaveData_GetPokedex(fieldSystem->saveData), v0->unk_00); } void sub_0206DD38(FieldSystem *fieldSystem, u32 param1, u32 param2, u32 param3) { - TVEpisodeSegment segments; + TVSegmentData segments; UnkStruct_0206DD5C *v1 = &segments.val20; if (param2 < 1000 + param1) { @@ -1380,14 +1363,14 @@ void sub_0206DD38(FieldSystem *fieldSystem, u32 param1, u32 param2, u32 param3) v1->unk_04 = param2; v1->unk_08 = param3; - FieldSystem_SaveTVEpisodeSegment(fieldSystem, TV_PROGRAM_TYPE_RECORDS, 4, v1); + FieldSystem_SaveTVSegment(fieldSystem, TV_PROGRAM_TYPE_RECORDS, 4, v1); } -static int sub_0206DD5C(FieldSystem *fieldSystem, StringTemplate *param1, UnkStruct_ov6_022465F4 *param2) +static int sub_0206DD5C(FieldSystem *fieldSystem, StringTemplate *param1, TVEpisode *episode) { - UnkStruct_0206DD5C *v0 = ov6_02246498(param2); + UnkStruct_0206DD5C *v0 = TVEpisode_GetSegment(episode); - TVEpisodeSegment_SetTemplateTrainerName(param1, 0, param2); + TVSegment_SetTemplateTrainerName(param1, 0, episode); StringTemplate_SetNumber(param1, 1, v0->unk_08, 10, PADDING_MODE_NONE, CHARSET_MODE_EN); StringTemplate_SetNumber(param1, 2, v0->unk_00, 6, PADDING_MODE_NONE, CHARSET_MODE_EN); StringTemplate_SetNumber(param1, 3, v0->unk_04, 6, PADDING_MODE_NONE, CHARSET_MODE_EN); @@ -1398,7 +1381,7 @@ static int sub_0206DD5C(FieldSystem *fieldSystem, StringTemplate *param1, UnkStr void sub_0206DDB8(SaveData *saveData, Pokemon *mon, u32 monDataParam) { u8 v0, v1; - TVEpisodeSegment segments; + TVSegmentData segments; UnkStruct_0206DE80 *v3 = &segments.val21; v1 = sub_0206DE4C(mon); @@ -1415,13 +1398,13 @@ void sub_0206DDB8(SaveData *saveData, Pokemon *mon, u32 monDataParam) return; } - TVEpisodeSegment_CopyPokemonValues(mon, &v3->unk_1C, &v3->unk_19, &v3->language, &v3->unk_1B); + TVSegment_CopyPokemonValues(mon, &v3->unk_1C, &v3->unk_19, &v3->language, &v3->unk_1B); sub_0206CED0(HEAP_ID_FIELD3, mon, &v3->unk_18, v3->unk_00); v3->unk_16 = Ribbon_MonDataParamToNameID(monDataParam); v3->unk_17 = v1; - SaveData_SaveTVEpisodeSegment(saveData, 3, 5, v3); + SaveData_SaveTVSegment(saveData, 3, 5, v3); break; } } @@ -1481,16 +1464,16 @@ static u8 sub_0206DE4C(Pokemon *param0) return v0; } -static int sub_0206DE80(FieldSystem *fieldSystem, StringTemplate *param1, UnkStruct_ov6_022465F4 *param2) +static int sub_0206DE80(FieldSystem *fieldSystem, StringTemplate *param1, TVEpisode *episode) { - UnkStruct_0206DE80 *v0 = ov6_02246498(param2); + UnkStruct_0206DE80 *v0 = TVEpisode_GetSegment(episode); - TVEpisodeSegment_SetTemplateTrainerName(param1, 0, param2); + TVSegment_SetTemplateTrainerName(param1, 0, episode); if (v0->unk_18) { sub_0206CD94(param1, 1, v0->unk_00, v0->unk_19, v0->language, 1); } else { - TVEpisodeSegment_SetTemplatePokemonSpecies(param1, 1, v0->unk_1C, v0->unk_19, v0->language, v0->unk_1B); + TVSegment_SetTemplatePokemonSpecies(param1, 1, v0->unk_1C, v0->unk_19, v0->language, v0->unk_1B); } StringTemplate_SetRibbonName(param1, 2, v0->unk_16); @@ -1501,7 +1484,7 @@ static int sub_0206DE80(FieldSystem *fieldSystem, StringTemplate *param1, UnkStr void sub_0206DEEC(FieldSystem *fieldSystem, u16 param1, u16 param2) { - TVEpisodeSegment segments; + TVSegmentData segments; UnkStruct_0206DF14 *v1 = &segments.val22; v1->unk_00 = param1; @@ -1511,15 +1494,15 @@ void sub_0206DEEC(FieldSystem *fieldSystem, u16 param1, u16 param2) v1->unk_02 = 999; } - FieldSystem_SaveTVEpisodeSegment(fieldSystem, TV_PROGRAM_TYPE_RECORDS, 8, v1); + FieldSystem_SaveTVSegment(fieldSystem, TV_PROGRAM_TYPE_RECORDS, 8, v1); } -static int sub_0206DF14(FieldSystem *fieldSystem, StringTemplate *param1, UnkStruct_ov6_022465F4 *param2) +static int sub_0206DF14(FieldSystem *fieldSystem, StringTemplate *param1, TVEpisode *episode) { u16 v0; - UnkStruct_0206DF14 *v1 = ov6_02246498(param2); + UnkStruct_0206DF14 *v1 = TVEpisode_GetSegment(episode); - TVEpisodeSegment_SetTemplateTrainerName(param1, 0, param2); + TVSegment_SetTemplateTrainerName(param1, 0, episode); StringTemplate_SetUndergroundTrapName(param1, 1, v1->unk_00); v0 = v1->unk_02; @@ -1534,7 +1517,7 @@ static int sub_0206DF14(FieldSystem *fieldSystem, StringTemplate *param1, UnkStr void sub_0206DF60(FieldSystem *fieldSystem, u16 param1) { - TVEpisodeSegment segments; + TVSegmentData segments; UnkStruct_0206DF88 *v1 = &segments.val23; v1->unk_00 = param1; @@ -1544,16 +1527,16 @@ void sub_0206DF60(FieldSystem *fieldSystem, u16 param1) } if (param1 > 1) { - FieldSystem_SaveTVEpisodeSegment(fieldSystem, TV_PROGRAM_TYPE_RECORDS, 9, v1); + FieldSystem_SaveTVSegment(fieldSystem, TV_PROGRAM_TYPE_RECORDS, 9, v1); } } -static int sub_0206DF88(FieldSystem *fieldSystem, StringTemplate *param1, UnkStruct_ov6_022465F4 *param2) +static int sub_0206DF88(FieldSystem *fieldSystem, StringTemplate *param1, TVEpisode *episode) { u16 v0; - UnkStruct_0206DF88 *v1 = ov6_02246498(param2); + UnkStruct_0206DF88 *v1 = TVEpisode_GetSegment(episode); - TVEpisodeSegment_SetTemplateTrainerName(param1, 0, param2); + TVSegment_SetTemplateTrainerName(param1, 0, episode); v0 = v1->unk_00; @@ -1566,14 +1549,14 @@ static int sub_0206DF88(FieldSystem *fieldSystem, StringTemplate *param1, UnkStr return 8; } -static BOOL sub_0206DFC8(FieldSystem *fieldSystem, UnkStruct_ov6_022465F4 *param1) +static BOOL sub_0206DFC8(FieldSystem *fieldSystem, TVEpisode *episode) { return Bag_CanRemoveItem(SaveData_GetBag(fieldSystem->saveData), ITEM_EXPLORER_KIT, 1, HEAP_ID_FIELD3); } void sub_0206DFE0(SaveData *saveData) { - TVEpisodeSegment segments; + TVSegmentData segments; UnkStruct_0206E018 *v1 = &segments.val24; UnkStruct_0202E828 *v2 = sub_0202E828(SaveData_GetTVBroadcast(saveData)); @@ -1582,28 +1565,28 @@ void sub_0206DFE0(SaveData *saveData) v2->unk_00 = 0; SaveData_SetChecksum(SAVE_TABLE_ENTRY_TV_BROADCAST); - SaveData_SaveTVEpisodeSegment(saveData, 3, 10, v1); + SaveData_SaveTVSegment(saveData, 3, 10, v1); } } -static int sub_0206E018(FieldSystem *fieldSystem, StringTemplate *param1, UnkStruct_ov6_022465F4 *param2) +static int sub_0206E018(FieldSystem *fieldSystem, StringTemplate *param1, TVEpisode *episode) { - UnkStruct_0206E018 *v0 = ov6_02246498(param2); + UnkStruct_0206E018 *v0 = TVEpisode_GetSegment(episode); - TVEpisodeSegment_SetTemplateTrainerName(param1, 0, param2); + TVSegment_SetTemplateTrainerName(param1, 0, episode); StringTemplate_SetNumber(param1, 1, v0->unk_00.unk_04, 4, PADDING_MODE_NONE, CHARSET_MODE_EN); return 9; } -static BOOL sub_0206E04C(FieldSystem *fieldSystem, UnkStruct_ov6_022465F4 *param1) +static BOOL sub_0206E04C(FieldSystem *fieldSystem, TVEpisode *episode) { return SystemFlag_HandleFirstArrivalToZone(SaveData_GetVarsFlags(fieldSystem->saveData), HANDLE_FLAG_CHECK, FIRST_ARRIVAL_FIGHT_AREA); } void sub_0206E060(SaveData *saveData) { - TVEpisodeSegment segments; + TVSegmentData segments; UnkStruct_0206E098 *v1 = &segments.val25; UnkStruct_0202E834 *v2 = sub_0202E834(SaveData_GetTVBroadcast(saveData)); @@ -1612,29 +1595,29 @@ void sub_0206E060(SaveData *saveData) v2->unk_00 = 0; SaveData_SetChecksum(SAVE_TABLE_ENTRY_TV_BROADCAST); - SaveData_SaveTVEpisodeSegment(saveData, 3, 11, v1); + SaveData_SaveTVSegment(saveData, 3, 11, v1); } } -static int sub_0206E098(FieldSystem *fieldSystem, StringTemplate *param1, UnkStruct_ov6_022465F4 *param2) +static int sub_0206E098(FieldSystem *fieldSystem, StringTemplate *param1, TVEpisode *episode) { - UnkStruct_0206E098 *v0 = ov6_02246498(param2); + UnkStruct_0206E098 *v0 = TVEpisode_GetSegment(episode); - TVEpisodeSegment_SetTemplateTrainerName(param1, 0, param2); + TVSegment_SetTemplateTrainerName(param1, 0, episode); StringTemplate_SetNumber(param1, 1, v0->unk_00.unk_02, 4, PADDING_MODE_NONE, CHARSET_MODE_EN); return 10; } -static BOOL sub_0206E0CC(FieldSystem *fieldSystem, UnkStruct_ov6_022465F4 *param1) +static BOOL sub_0206E0CC(FieldSystem *fieldSystem, TVEpisode *episode) { return SystemFlag_HandleFirstArrivalToZone(SaveData_GetVarsFlags(fieldSystem->saveData), HANDLE_FLAG_CHECK, FIRST_ARRIVAL_OREBURGH_CITY); } -void FieldSystem_SaveTVEpisodeSegment_BattleTowerCorner(FieldSystem *fieldSystem, u16 customMessageWord) +void FieldSystem_SaveTVSegment_BattleTowerCorner(FieldSystem *fieldSystem, u16 customMessageWord) { - TVEpisodeSegment segments; - TVEpisodeSegment_BattleTowerCorner *battleTowerCorner = &segments.battleTowerCorner; + TVSegmentData segments; + TVSegment_BattleTowerCorner *battleTowerCorner = &segments.battleTowerCorner; UnkStruct_0202E7FC *outcome = sub_0202E7FC(SaveData_GetTVBroadcast(fieldSystem->saveData)); battleTowerCorner->outcome = *outcome; @@ -1642,15 +1625,15 @@ void FieldSystem_SaveTVEpisodeSegment_BattleTowerCorner(FieldSystem *fieldSystem battleTowerCorner->customMessageWord = customMessageWord; SaveData_SetChecksum(SAVE_TABLE_ENTRY_TV_BROADCAST); - FieldSystem_SaveTVEpisodeSegment(fieldSystem, TV_PROGRAM_TYPE_INTERVIEWS, TV_PROGRAM_SEGMENT_BATTLE_TOWER_CORNER, battleTowerCorner); + FieldSystem_SaveTVSegment(fieldSystem, TV_PROGRAM_TYPE_INTERVIEWS, TV_PROGRAM_SEGMENT_BATTLE_TOWER_CORNER, battleTowerCorner); } -static int TVEpisodeSegment_LoadMessage_BattleTowerCorner(FieldSystem *fieldSystem, StringTemplate *template, UnkStruct_ov6_022465F4 *param2) +static int TVSegment_LoadMessage_BattleTowerCorner(FieldSystem *fieldSystem, StringTemplate *template, TVEpisode *episode) { - TVEpisodeSegment_BattleTowerCorner *battleTowerCorner = ov6_02246498(param2); + TVSegment_BattleTowerCorner *battleTowerCorner = TVEpisode_GetSegment(episode); StringTemplate_SetNumber(template, 0, battleTowerCorner->outcome.winStreak, 4, PADDING_MODE_NONE, CHARSET_MODE_EN); - TVEpisodeSegment_SetTemplateTrainerName(template, 1, param2); + TVSegment_SetTemplateTrainerName(template, 1, episode); StringTemplate_SetCustomMessageWord(template, 2, battleTowerCorner->customMessageWord); if (battleTowerCorner->outcome.win == TRUE) { @@ -1660,95 +1643,95 @@ static int TVEpisodeSegment_LoadMessage_BattleTowerCorner(FieldSystem *fieldSyst } } -static BOOL TVEpisodeSegment_IsEligible_BattleTowerCorner(FieldSystem *fieldSystem, UnkStruct_ov6_022465F4 *param1) +static BOOL TVSegment_IsEligible_BattleTowerCorner(FieldSystem *fieldSystem, TVEpisode *episode) { return SystemFlag_HandleFirstArrivalToZone(SaveData_GetVarsFlags(fieldSystem->saveData), HANDLE_FLAG_CHECK, FIRST_ARRIVAL_FIGHT_AREA); } -void FieldSystem_SaveTVEpisodeSegment_YourPokemonCorner(FieldSystem *fieldSystem, u16 customMessageWord) +void FieldSystem_SaveTVSegment_YourPokemonCorner(FieldSystem *fieldSystem, u16 customMessageWord) { - TVEpisodeSegment segments; - TVEpisodeSegment_YourPokemonCorner *yourPokemonCorner = &segments.yourPokemonCorner; + TVSegmentData segments; + TVSegment_YourPokemonCorner *yourPokemonCorner = &segments.yourPokemonCorner; Pokemon *mon = Party_FindFirstHatchedMon(SaveData_GetParty(fieldSystem->saveData)); - TVEpisodeSegment_CopyPokemonValues(mon, &yourPokemonCorner->species, &yourPokemonCorner->gender, &yourPokemonCorner->language, &yourPokemonCorner->metGame); + TVSegment_CopyPokemonValues(mon, &yourPokemonCorner->species, &yourPokemonCorner->gender, &yourPokemonCorner->language, &yourPokemonCorner->metGame); sub_0206CED0(HEAP_ID_FIELD3, mon, &yourPokemonCorner->hasNickname, yourPokemonCorner->nickname); yourPokemonCorner->customMessageWord = customMessageWord; - FieldSystem_SaveTVEpisodeSegment(fieldSystem, TV_PROGRAM_TYPE_INTERVIEWS, TV_PROGRAM_SEGMENT_YOUR_POKEMON_CORNER, yourPokemonCorner); + FieldSystem_SaveTVSegment(fieldSystem, TV_PROGRAM_TYPE_INTERVIEWS, TV_PROGRAM_SEGMENT_YOUR_POKEMON_CORNER, yourPokemonCorner); } -static int TVEpisodeSegment_LoadMessage_YourPokemonCorner(FieldSystem *fieldSystem, StringTemplate *template, UnkStruct_ov6_022465F4 *param2) +static int TVSegment_LoadMessage_YourPokemonCorner(FieldSystem *fieldSystem, StringTemplate *template, TVEpisode *episode) { - TVEpisodeSegment_YourPokemonCorner *yourPokemonCorner = ov6_02246498(param2); + TVSegment_YourPokemonCorner *yourPokemonCorner = TVEpisode_GetSegment(episode); if (yourPokemonCorner->hasNickname) { - TVEpisodeSegment_SetTemplateTrainerName(template, 0, param2); - TVEpisodeSegment_SetTemplatePokemonSpecies(template, 1, yourPokemonCorner->species, yourPokemonCorner->gender, yourPokemonCorner->language, yourPokemonCorner->metGame); + TVSegment_SetTemplateTrainerName(template, 0, episode); + TVSegment_SetTemplatePokemonSpecies(template, 1, yourPokemonCorner->species, yourPokemonCorner->gender, yourPokemonCorner->language, yourPokemonCorner->metGame); sub_0206CD94(template, 2, yourPokemonCorner->nickname, yourPokemonCorner->gender, yourPokemonCorner->language, 1); StringTemplate_SetCustomMessageWord(template, 3, yourPokemonCorner->customMessageWord); return TVProgramInterviews_Text_YourPokemonCorner_Nickname; } else { - TVEpisodeSegment_SetTemplateTrainerName(template, 0, param2); - TVEpisodeSegment_SetTemplatePokemonSpecies(template, 1, yourPokemonCorner->species, yourPokemonCorner->gender, yourPokemonCorner->language, yourPokemonCorner->metGame); + TVSegment_SetTemplateTrainerName(template, 0, episode); + TVSegment_SetTemplatePokemonSpecies(template, 1, yourPokemonCorner->species, yourPokemonCorner->gender, yourPokemonCorner->language, yourPokemonCorner->metGame); StringTemplate_SetCustomMessageWord(template, 3, yourPokemonCorner->customMessageWord); return TVProgramInterviews_Text_YourPokemonCorner_NoNickname; } } -static BOOL TVEpisodeSegment_IsEligible_YourPokemonCorner(FieldSystem *fieldSystem, UnkStruct_ov6_022465F4 *param1) +static BOOL TVSegment_IsEligible_YourPokemonCorner(FieldSystem *fieldSystem, TVEpisode *episode) { - TVEpisodeSegment_YourPokemonCorner *yourPokemonCorner = ov6_02246498(param1); + TVSegment_YourPokemonCorner *yourPokemonCorner = TVEpisode_GetSegment(episode); return Pokedex_HasSeenSpecies(SaveData_GetPokedex(fieldSystem->saveData), yourPokemonCorner->species); } -void FieldSystem_SaveTVEpisodeSegment_ThePoketchWatch(FieldSystem *fieldSystem, u16 customMessageWord) +void FieldSystem_SaveTVSegment_ThePoketchWatch(FieldSystem *fieldSystem, u16 customMessageWord) { - TVEpisodeSegment segments; - TVEpisodeSegment_ThePoketchWatch *thePoketchWatch = &segments.thePoketchWatch; + TVSegmentData segments; + TVSegment_ThePoketchWatch *thePoketchWatch = &segments.thePoketchWatch; thePoketchWatch->appID = PoketchSystem_CurrentAppID(fieldSystem->unk_04->poketchSys); thePoketchWatch->customMessageWord = customMessageWord; - FieldSystem_SaveTVEpisodeSegment(fieldSystem, TV_PROGRAM_TYPE_INTERVIEWS, TV_PROGRAM_SEGMENT_THE_POKETCH_WATCH, thePoketchWatch); + FieldSystem_SaveTVSegment(fieldSystem, TV_PROGRAM_TYPE_INTERVIEWS, TV_PROGRAM_SEGMENT_THE_POKETCH_WATCH, thePoketchWatch); } -static int TVEpisodeSegment_LoadMessage_ThePoketchWatch(FieldSystem *fieldSystem, StringTemplate *template, UnkStruct_ov6_022465F4 *param2) +static int TVSegment_LoadMessage_ThePoketchWatch(FieldSystem *fieldSystem, StringTemplate *template, TVEpisode *episode) { - TVEpisodeSegment_ThePoketchWatch *thePoketchWatch = ov6_02246498(param2); + TVSegment_ThePoketchWatch *thePoketchWatch = TVEpisode_GetSegment(episode); - TVEpisodeSegment_SetTemplateTrainerName(template, 0, param2); + TVSegment_SetTemplateTrainerName(template, 0, episode); StringTemplate_SetPoketchAppName(template, 1, thePoketchWatch->appID); StringTemplate_SetCustomMessageWord(template, 2, thePoketchWatch->customMessageWord); return TVProgramInterviews_Text_ThePoketchWatch; } -void FieldSystem_SaveTVEpisodeSegment_ContestHall(FieldSystem *fieldSystem, u16 customMessageWord) +void FieldSystem_SaveTVSegment_ContestHall(FieldSystem *fieldSystem, u16 customMessageWord) { - TVEpisodeSegment segments; - TVEpisodeSegment_ContestHall *contestHall = &segments.contestHall; - TVEpisodeSegment_ContestHall_ShowcasedPokemon *showcasedPokemon = TVBroadcast_GetShowcasedPokemon(SaveData_GetTVBroadcast(fieldSystem->saveData)); + TVSegmentData segments; + TVSegment_ContestHall *contestHall = &segments.contestHall; + TVSegment_ContestHall_ShowcasedPokemon *showcasedPokemon = TVBroadcast_GetShowcasedPokemon(SaveData_GetTVBroadcast(fieldSystem->saveData)); contestHall->showcasedPokemon = *showcasedPokemon; showcasedPokemon->unk_00 = 0; contestHall->customMessageWord = customMessageWord; SaveData_SetChecksum(SAVE_TABLE_ENTRY_TV_BROADCAST); - FieldSystem_SaveTVEpisodeSegment(fieldSystem, TV_PROGRAM_TYPE_INTERVIEWS, TV_PROGRAM_SEGMENT_CONTEST_HALL, contestHall); + FieldSystem_SaveTVSegment(fieldSystem, TV_PROGRAM_TYPE_INTERVIEWS, TV_PROGRAM_SEGMENT_CONTEST_HALL, contestHall); } -static int TVEpisodeSegment_LoadMessage_ContestHall(FieldSystem *fieldSystem, StringTemplate *template, UnkStruct_ov6_022465F4 *param2) +static int TVSegment_LoadMessage_ContestHall(FieldSystem *fieldSystem, StringTemplate *template, TVEpisode *episode) { - TVEpisodeSegment_ContestHall *contestHall = ov6_02246498(param2); + TVSegment_ContestHall *contestHall = TVEpisode_GetSegment(episode); - TVEpisodeSegment_SetTemplatePokemonSpecies(template, 0, contestHall->showcasedPokemon.species, contestHall->showcasedPokemon.gender, contestHall->showcasedPokemon.language, contestHall->showcasedPokemon.metGame); + TVSegment_SetTemplatePokemonSpecies(template, 0, contestHall->showcasedPokemon.species, contestHall->showcasedPokemon.gender, contestHall->showcasedPokemon.language, contestHall->showcasedPokemon.metGame); StringTemplate_SetContestTypeName(template, 1, Contest_GetContestTypeMessageID(contestHall->showcasedPokemon.contestType)); StringTemplate_SetContestRankName(template, 2, Contest_GetRankMessageID(contestHall->showcasedPokemon.contestRank)); StringTemplate_SetNumber(template, 3, contestHall->showcasedPokemon.contestPlacement, 1, PADDING_MODE_NONE, CHARSET_MODE_EN); - TVEpisodeSegment_SetTemplateTrainerName(template, 4, param2); + TVSegment_SetTemplateTrainerName(template, 4, episode); StringTemplate_SetCustomMessageWord(template, 5, contestHall->customMessageWord); if (contestHall->showcasedPokemon.contestPlacement == 1) { @@ -1758,16 +1741,16 @@ static int TVEpisodeSegment_LoadMessage_ContestHall(FieldSystem *fieldSystem, St } } -static BOOL TVEpisodeSegment_IsEligible_ContestHall(FieldSystem *fieldSystem, UnkStruct_ov6_022465F4 *param1) +static BOOL TVSegment_IsEligible_ContestHall(FieldSystem *fieldSystem, TVEpisode *episode) { - TVEpisodeSegment_ContestHall *contestHall = ov6_02246498(param1); + TVSegment_ContestHall *contestHall = TVEpisode_GetSegment(episode); return Pokedex_HasSeenSpecies(SaveData_GetPokedex(fieldSystem->saveData), contestHall->showcasedPokemon.species); } -void FieldSystem_SaveTVEpisodeSegment_RightOnPhotoCorner(FieldSystem *fieldSystem, u16 customMessageWord) +void FieldSystem_SaveTVSegment_RightOnPhotoCorner(FieldSystem *fieldSystem, u16 customMessageWord) { - TVEpisodeSegment segments; - TVEpisodeSegment_RightOnPhotoCorner *rightOnPhotoCorner = &segments.rightOnPhotoCorner; + TVSegmentData segments; + TVSegment_RightOnPhotoCorner *rightOnPhotoCorner = &segments.rightOnPhotoCorner; rightOnPhotoCorner->customMessageWord = customMessageWord; @@ -1776,47 +1759,47 @@ void FieldSystem_SaveTVEpisodeSegment_RightOnPhotoCorner(FieldSystem *fieldSyste rightOnPhotoCorner->species = DressUpPhoto_GetMonSpecies(photo); - FieldSystem_SaveTVEpisodeSegment(fieldSystem, TV_PROGRAM_TYPE_INTERVIEWS, TV_PROGRAM_SEGMENT_RIGHT_ON_PHOTO_CORNER, rightOnPhotoCorner); + FieldSystem_SaveTVSegment(fieldSystem, TV_PROGRAM_TYPE_INTERVIEWS, TV_PROGRAM_SEGMENT_RIGHT_ON_PHOTO_CORNER, rightOnPhotoCorner); } -static int TVEpisodeSegment_LoadMessage_RightOnPhotoCorner(FieldSystem *fieldSystem, StringTemplate *template, UnkStruct_ov6_022465F4 *param2) +static int TVSegment_LoadMessage_RightOnPhotoCorner(FieldSystem *fieldSystem, StringTemplate *template, TVEpisode *episode) { - TVEpisodeSegment_RightOnPhotoCorner *rightOnPhotoCorner = ov6_02246498(param2); + TVSegment_RightOnPhotoCorner *rightOnPhotoCorner = TVEpisode_GetSegment(episode); - TVEpisodeSegment_SetTemplateTrainerName(template, 0, param2); - TVEpisodeSegment_SetTemplateOwnPokemonSpecies(template, 1, rightOnPhotoCorner->species); + TVSegment_SetTemplateTrainerName(template, 0, episode); + TVSegment_SetTemplateOwnPokemonSpecies(template, 1, rightOnPhotoCorner->species); StringTemplate_SetCustomMessageWord(template, 2, rightOnPhotoCorner->customMessageWord); return TVProgramInterviews_Text_RightOnPhotoCorner; } -static BOOL TVEpisodeSegment_IsEligible_RightOnPhotoCorner(FieldSystem *fieldSystem, UnkStruct_ov6_022465F4 *param1) +static BOOL TVSegment_IsEligible_RightOnPhotoCorner(FieldSystem *fieldSystem, TVEpisode *episode) { - TVEpisodeSegment_RightOnPhotoCorner *rightOnPhotoCorner = ov6_02246498(param1); + TVSegment_RightOnPhotoCorner *rightOnPhotoCorner = TVEpisode_GetSegment(episode); return Pokedex_HasSeenSpecies(SaveData_GetPokedex(fieldSystem->saveData), rightOnPhotoCorner->species); } -void FieldSystem_SaveTVEpisodeSegment_StreetCornerPersonalityCheckup(FieldSystem *fieldSystem, u16 pokemonType) +void FieldSystem_SaveTVSegment_StreetCornerPersonalityCheckup(FieldSystem *fieldSystem, u16 pokemonType) { - TVEpisodeSegment segments; - TVEpisodeSegment_StreetCornerPersonalityCheckup *streetCornerPersonalityCheckup = &segments.streetCornerPersonalityCheckup; + TVSegmentData segments; + TVSegment_StreetCornerPersonalityCheckup *streetCornerPersonalityCheckup = &segments.streetCornerPersonalityCheckup; streetCornerPersonalityCheckup->pokemonType = pokemonType; - FieldSystem_SaveTVEpisodeSegment(fieldSystem, TV_PROGRAM_TYPE_INTERVIEWS, TV_PROGRAM_SEGMENT_STREET_CORNER_PERSONALITY_CHECKUP, streetCornerPersonalityCheckup); + FieldSystem_SaveTVSegment(fieldSystem, TV_PROGRAM_TYPE_INTERVIEWS, TV_PROGRAM_SEGMENT_STREET_CORNER_PERSONALITY_CHECKUP, streetCornerPersonalityCheckup); } -static int TVEpisodeSegment_LoadMessage_StreetCornerPersonalityCheckup(FieldSystem *fieldSystem, StringTemplate *template, UnkStruct_ov6_022465F4 *param2) +static int TVSegment_LoadMessage_StreetCornerPersonalityCheckup(FieldSystem *fieldSystem, StringTemplate *template, TVEpisode *episode) { - TVEpisodeSegment_StreetCornerPersonalityCheckup *streetCornerPersonalityCheckup = ov6_02246498(param2); + TVSegment_StreetCornerPersonalityCheckup *streetCornerPersonalityCheckup = TVEpisode_GetSegment(episode); - TVEpisodeSegment_SetTemplateTrainerName(template, 0, param2); + TVSegment_SetTemplateTrainerName(template, 0, episode); return TVProgramInterviews_Text_StreetCornerPersonalityCheckup_NormalType + streetCornerPersonalityCheckup->pokemonType - 1; } -void FieldSystem_SaveTVEpisodeSegment_ThreeCheersForPoffinCorner(FieldSystem *fieldSystem, u16 customMessageWord) +void FieldSystem_SaveTVSegment_ThreeCheersForPoffinCorner(FieldSystem *fieldSystem, u16 customMessageWord) { - TVEpisodeSegment segments; - TVEpisodeSegment_ThreeCheersForPoffinCorner *threeCheersForPoffinCorner = &segments.threeCheersForPoffinCorner; + TVSegmentData segments; + TVSegment_ThreeCheersForPoffinCorner *threeCheersForPoffinCorner = &segments.threeCheersForPoffinCorner; UnkStruct_0202E7F0 *v2 = sub_0202E7F0(SaveData_GetTVBroadcast(fieldSystem->saveData)); threeCheersForPoffinCorner->unk_00 = *v2; @@ -1824,15 +1807,15 @@ void FieldSystem_SaveTVEpisodeSegment_ThreeCheersForPoffinCorner(FieldSystem *fi v2->unk_00 = 0; SaveData_SetChecksum(SAVE_TABLE_ENTRY_TV_BROADCAST); - FieldSystem_SaveTVEpisodeSegment(fieldSystem, TV_PROGRAM_TYPE_INTERVIEWS, TV_PROGRAM_SEGMENT_THREE_CHEERS_FOR_POFFIN_CORNER, threeCheersForPoffinCorner); + FieldSystem_SaveTVSegment(fieldSystem, TV_PROGRAM_TYPE_INTERVIEWS, TV_PROGRAM_SEGMENT_THREE_CHEERS_FOR_POFFIN_CORNER, threeCheersForPoffinCorner); } -static int TVEpisodeSegment_LoadMessage_ThreeCheersForPoffinCorner(FieldSystem *fieldSystem, StringTemplate *template, UnkStruct_ov6_022465F4 *param2) +static int TVSegment_LoadMessage_ThreeCheersForPoffinCorner(FieldSystem *fieldSystem, StringTemplate *template, TVEpisode *episode) { - TVEpisodeSegment_ThreeCheersForPoffinCorner *threeCheersForPoffinCorner = ov6_02246498(param2); + TVSegment_ThreeCheersForPoffinCorner *threeCheersForPoffinCorner = TVEpisode_GetSegment(episode); int poffin = threeCheersForPoffinCorner->unk_00.unk_01; - TVEpisodeSegment_SetTemplateTrainerName(template, 0, param2); + TVSegment_SetTemplateTrainerName(template, 0, episode); StringTemplate_SetPoffinName(template, 1, poffin); StringTemplate_SetCustomMessageWord(template, 2, threeCheersForPoffinCorner->customMessageWord); @@ -1850,10 +1833,10 @@ static int TVEpisodeSegment_LoadMessage_ThreeCheersForPoffinCorner(FieldSystem * } } -void FieldSystem_SaveTVEpisodeSegment_AmitySquareWatch(FieldSystem *fieldSystem, u16 customWordMessage) +void FieldSystem_SaveTVSegment_AmitySquareWatch(FieldSystem *fieldSystem, u16 customWordMessage) { - TVEpisodeSegment segments; - TVEpisodeSegment_AmitySquareWatch *amitySquareWatch = &segments.amitySquareWatch; + TVSegmentData segments; + TVSegment_AmitySquareWatch *amitySquareWatch = &segments.amitySquareWatch; UnkStruct_0202E7E4 *v2 = sub_0202E7E4(SaveData_GetTVBroadcast(fieldSystem->saveData)); amitySquareWatch->unk_00 = *v2; @@ -1861,15 +1844,15 @@ void FieldSystem_SaveTVEpisodeSegment_AmitySquareWatch(FieldSystem *fieldSystem, v2->unk_00 = 0; SaveData_SetChecksum(SAVE_TABLE_ENTRY_TV_BROADCAST); - FieldSystem_SaveTVEpisodeSegment(fieldSystem, TV_PROGRAM_TYPE_INTERVIEWS, TV_PROGRAM_SEGMENT_AMITY_SQUARE_WATCH, amitySquareWatch); + FieldSystem_SaveTVSegment(fieldSystem, TV_PROGRAM_TYPE_INTERVIEWS, TV_PROGRAM_SEGMENT_AMITY_SQUARE_WATCH, amitySquareWatch); } -static int TVEpisodeSegment_LoadMessage_AmitySquareWatch(FieldSystem *fieldSystem, StringTemplate *template, UnkStruct_ov6_022465F4 *param2) +static int TVSegment_LoadMessage_AmitySquareWatch(FieldSystem *fieldSystem, StringTemplate *template, TVEpisode *episode) { - TVEpisodeSegment_AmitySquareWatch *amitySquareWatch = ov6_02246498(param2); + TVSegment_AmitySquareWatch *amitySquareWatch = TVEpisode_GetSegment(episode); - TVEpisodeSegment_SetTemplateTrainerName(template, 0, param2); - TVEpisodeSegment_SetTemplatePokemonSpecies(template, 1, amitySquareWatch->unk_00.unk_02, amitySquareWatch->unk_00.unk_04, amitySquareWatch->unk_00.language, amitySquareWatch->unk_00.unk_06); + TVSegment_SetTemplateTrainerName(template, 0, episode); + TVSegment_SetTemplatePokemonSpecies(template, 1, amitySquareWatch->unk_00.unk_02, amitySquareWatch->unk_00.unk_04, amitySquareWatch->unk_00.language, amitySquareWatch->unk_00.unk_06); StringTemplate_SetNatureName(template, 2, amitySquareWatch->unk_00.unk_1E); StringTemplate_SetCustomMessageWord(template, 5, amitySquareWatch->customWordMessage); @@ -1887,10 +1870,10 @@ static int TVEpisodeSegment_LoadMessage_AmitySquareWatch(FieldSystem *fieldSyste return TVProgramInterviews_Text_AmitySquareWatch; } -void FieldSystem_SaveTVEpisodeSegment_BattleFrontierFrontlineNews_Single(FieldSystem *fieldSystem, u16 customWordMessage) +void FieldSystem_SaveTVSegment_BattleFrontierFrontlineNews_Single(FieldSystem *fieldSystem, u16 customWordMessage) { - TVEpisodeSegment segments; - TVEpisodeSegment_BattleFrontierFrontlineNews_Single *battleFrontierFrontlineNewsSingle = &segments.battleFrontierFrontlineNewsSingle; + TVSegmentData segments; + TVSegment_BattleFrontierFrontlineNews_Single *battleFrontierFrontlineNewsSingle = &segments.battleFrontierFrontlineNewsSingle; UnkStruct_0202E810 *v2 = sub_0202E810(SaveData_GetTVBroadcast(fieldSystem->saveData)); battleFrontierFrontlineNewsSingle->unk_00 = *v2; @@ -1898,111 +1881,111 @@ void FieldSystem_SaveTVEpisodeSegment_BattleFrontierFrontlineNews_Single(FieldSy v2->unk_00 = 0; SaveData_SetChecksum(SAVE_TABLE_ENTRY_TV_BROADCAST); - FieldSystem_SaveTVEpisodeSegment(fieldSystem, TV_PROGRAM_TYPE_INTERVIEWS, TV_PROGRAM_SEGMENT_BATTLE_FRONTIER_FRONTLINE_NEWS_SINGLE, battleFrontierFrontlineNewsSingle); + FieldSystem_SaveTVSegment(fieldSystem, TV_PROGRAM_TYPE_INTERVIEWS, TV_PROGRAM_SEGMENT_BATTLE_FRONTIER_FRONTLINE_NEWS_SINGLE, battleFrontierFrontlineNewsSingle); } -static int TVEpisodeSegment_LoadMessage_BattleFrontierFrontlineNews_Single(FieldSystem *fieldSystem, StringTemplate *template, UnkStruct_ov6_022465F4 *param2) +static int TVSegment_LoadMessage_BattleFrontierFrontlineNews_Single(FieldSystem *fieldSystem, StringTemplate *template, TVEpisode *episode) { - TVEpisodeSegment_BattleFrontierFrontlineNews_Single *battleFrontierFrontlineNewsSingle = ov6_02246498(param2); + TVSegment_BattleFrontierFrontlineNews_Single *battleFrontierFrontlineNewsSingle = TVEpisode_GetSegment(episode); - TVEpisodeSegment_SetTemplateTrainerName(template, 0, param2); - TVEpisodeSegment_SetTemplatePokemonSpecies(template, 1, battleFrontierFrontlineNewsSingle->unk_00.unk_02, battleFrontierFrontlineNewsSingle->unk_00.unk_04, battleFrontierFrontlineNewsSingle->unk_00.language, battleFrontierFrontlineNewsSingle->unk_00.unk_06); + TVSegment_SetTemplateTrainerName(template, 0, episode); + TVSegment_SetTemplatePokemonSpecies(template, 1, battleFrontierFrontlineNewsSingle->unk_00.unk_02, battleFrontierFrontlineNewsSingle->unk_00.unk_04, battleFrontierFrontlineNewsSingle->unk_00.language, battleFrontierFrontlineNewsSingle->unk_00.unk_06); if (battleFrontierFrontlineNewsSingle->unk_00.unk_07) { sub_0206CD94(template, 2, battleFrontierFrontlineNewsSingle->unk_00.unk_08, battleFrontierFrontlineNewsSingle->unk_00.unk_04, battleFrontierFrontlineNewsSingle->unk_00.language, 1); } else { - TVEpisodeSegment_SetTemplatePokemonSpecies(template, 2, battleFrontierFrontlineNewsSingle->unk_00.unk_02, battleFrontierFrontlineNewsSingle->unk_00.unk_04, battleFrontierFrontlineNewsSingle->unk_00.language, battleFrontierFrontlineNewsSingle->unk_00.unk_06); + TVSegment_SetTemplatePokemonSpecies(template, 2, battleFrontierFrontlineNewsSingle->unk_00.unk_02, battleFrontierFrontlineNewsSingle->unk_00.unk_04, battleFrontierFrontlineNewsSingle->unk_00.language, battleFrontierFrontlineNewsSingle->unk_00.unk_06); } StringTemplate_SetCustomMessageWord(template, 3, battleFrontierFrontlineNewsSingle->customWordMessage); return TVProgramInterviews_Text_BattleFrontierFrontlineNews_Single; } -static BOOL TVEpisodeSegment_IsEligible_BattleFrontierFrontlineNews_Single(FieldSystem *fieldSystem, UnkStruct_ov6_022465F4 *param1) +static BOOL TVSegment_IsEligible_BattleFrontierFrontlineNews_Single(FieldSystem *fieldSystem, TVEpisode *episode) { return SystemFlag_HandleFirstArrivalToZone(SaveData_GetVarsFlags(fieldSystem->saveData), HANDLE_FLAG_CHECK, FIRST_ARRIVAL_FIGHT_AREA); } -void FieldSystem_SaveTVEpisodeSegment_InYourFaceInterview_Question1(FieldSystem *fieldSystem, u16 customWordMessage) +void FieldSystem_SaveTVSegment_InYourFaceInterview_Question1(FieldSystem *fieldSystem, u16 customWordMessage) { - TVEpisodeSegment segments; - TVEpisodeSegment_InYourFaceInterview_Question1 *inYourFaceInterviewQuestion1 = &segments.inYourFaceInterviewQuestion1; + TVSegmentData segments; + TVSegment_InYourFaceInterview_Question *inYourFaceInterviewQuestion = &segments.inYourFaceInterviewQuestion; - inYourFaceInterviewQuestion1->customWordMessage = customWordMessage; - FieldSystem_SaveTVEpisodeSegment(fieldSystem, TV_PROGRAM_TYPE_INTERVIEWS, TV_PROGRAM_SEGMENT_IN_YOUR_FACE_INTERVIEW_QUESTION_1, inYourFaceInterviewQuestion1); + inYourFaceInterviewQuestion->customWordMessage = customWordMessage; + FieldSystem_SaveTVSegment(fieldSystem, TV_PROGRAM_TYPE_INTERVIEWS, TV_PROGRAM_SEGMENT_IN_YOUR_FACE_INTERVIEW_QUESTION_1, inYourFaceInterviewQuestion); } -static int TVEpisodeSegment_LoadMessage_InYourFaceInterview_Question1(FieldSystem *fieldSystem, StringTemplate *template, UnkStruct_ov6_022465F4 *param2) +static int TVSegment_LoadMessage_InYourFaceInterview_Question1(FieldSystem *fieldSystem, StringTemplate *template, TVEpisode *episode) { - TVEpisodeSegment_InYourFaceInterview_Question1 *inYourFaceInterviewQuestion1 = ov6_02246498(param2); + TVSegment_InYourFaceInterview_Question *inYourFaceInterviewQuestion = TVEpisode_GetSegment(episode); - TVEpisodeSegment_SetTemplateTrainerName(template, 0, param2); - StringTemplate_SetCustomMessageWord(template, 1, inYourFaceInterviewQuestion1->customWordMessage); + TVSegment_SetTemplateTrainerName(template, 0, episode); + StringTemplate_SetCustomMessageWord(template, 1, inYourFaceInterviewQuestion->customWordMessage); return TVProgramInterviews_Text_InYourFaceInterview_Question1; } -void FieldSystem_SaveTVEpisodeSegment_InYourFaceInterview_Question2(FieldSystem *fieldSystem, u16 customWordMessage) +void FieldSystem_SaveTVSegment_InYourFaceInterview_Question2(FieldSystem *fieldSystem, u16 customWordMessage) { - TVEpisodeSegment segments; - TVEpisodeSegment_InYourFaceInterview_Question2 *inYourFaceInterviewQuestion2 = &segments.inYourFaceInterviewQuestion2; + TVSegmentData segments; + TVSegment_InYourFaceInterview_Question *inYourFaceInterviewQuestion = &segments.inYourFaceInterviewQuestion; - inYourFaceInterviewQuestion2->customWordMessage = customWordMessage; - FieldSystem_SaveTVEpisodeSegment(fieldSystem, TV_PROGRAM_TYPE_INTERVIEWS, TV_PROGRAM_SEGMENT_IN_YOUR_FACE_INTERVIEW_QUESTION_2, inYourFaceInterviewQuestion2); + inYourFaceInterviewQuestion->customWordMessage = customWordMessage; + FieldSystem_SaveTVSegment(fieldSystem, TV_PROGRAM_TYPE_INTERVIEWS, TV_PROGRAM_SEGMENT_IN_YOUR_FACE_INTERVIEW_QUESTION_2, inYourFaceInterviewQuestion); } -static int TVEpisodeSegment_LoadMessage_InYourFaceInterview_Question2(FieldSystem *fieldSystem, StringTemplate *template, UnkStruct_ov6_022465F4 *param2) +static int TVSegment_LoadMessage_InYourFaceInterview_Question2(FieldSystem *fieldSystem, StringTemplate *template, TVEpisode *episode) { - TVEpisodeSegment_InYourFaceInterview_Question2 *inYourFaceInterviewQuestion2 = ov6_02246498(param2); + TVSegment_InYourFaceInterview_Question *inYourFaceInterviewQuestion = TVEpisode_GetSegment(episode); - TVEpisodeSegment_SetTemplateTrainerName(template, 0, param2); - StringTemplate_SetCustomMessageWord(template, 1, inYourFaceInterviewQuestion2->customWordMessage); + TVSegment_SetTemplateTrainerName(template, 0, episode); + StringTemplate_SetCustomMessageWord(template, 1, inYourFaceInterviewQuestion->customWordMessage); return TVProgramInterviews_Text_InYourFaceInterview_Question2; } -void FieldSystem_SaveTVEpisodeSegment_InYourFaceInterview_Question3(FieldSystem *fieldSystem, u16 customWordMessage) +void FieldSystem_SaveTVSegment_InYourFaceInterview_Question3(FieldSystem *fieldSystem, u16 customWordMessage) { - TVEpisodeSegment segments; - TVEpisodeSegment_InYourFaceInterview_Question3 *inYourFaceInterviewQuestion3 = &segments.inYourFaceInterviewQuestion3; + TVSegmentData segments; + TVSegment_InYourFaceInterview_Question *inYourFaceInterviewQuestion = &segments.inYourFaceInterviewQuestion; - inYourFaceInterviewQuestion3->customWordMessage = customWordMessage; - FieldSystem_SaveTVEpisodeSegment(fieldSystem, TV_PROGRAM_TYPE_INTERVIEWS, TV_PROGRAM_SEGMENT_IN_YOUR_FACE_INTERVIEW_QUESTION_3, inYourFaceInterviewQuestion3); + inYourFaceInterviewQuestion->customWordMessage = customWordMessage; + FieldSystem_SaveTVSegment(fieldSystem, TV_PROGRAM_TYPE_INTERVIEWS, TV_PROGRAM_SEGMENT_IN_YOUR_FACE_INTERVIEW_QUESTION_3, inYourFaceInterviewQuestion); } -static int TVEpisodeSegment_LoadMessage_InYourFaceInterview_Question3(FieldSystem *fieldSystem, StringTemplate *template, UnkStruct_ov6_022465F4 *param2) +static int TVSegment_LoadMessage_InYourFaceInterview_Question3(FieldSystem *fieldSystem, StringTemplate *template, TVEpisode *episode) { - TVEpisodeSegment_InYourFaceInterview_Question3 *inYourFaceInterviewQuestion3 = ov6_02246498(param2); + TVSegment_InYourFaceInterview_Question *inYourFaceInterviewQuestion = TVEpisode_GetSegment(episode); - TVEpisodeSegment_SetTemplateTrainerName(template, 0, param2); - StringTemplate_SetCustomMessageWord(template, 1, inYourFaceInterviewQuestion3->customWordMessage); + TVSegment_SetTemplateTrainerName(template, 0, episode); + StringTemplate_SetCustomMessageWord(template, 1, inYourFaceInterviewQuestion->customWordMessage); return TVProgramInterviews_Text_InYourFaceInterview_Question3; } -void FieldSystem_SaveTVEpisodeSegment_InYourFaceInterview_Question4(FieldSystem *fieldSystem, u16 customWordMessage) +void FieldSystem_SaveTVSegment_InYourFaceInterview_Question4(FieldSystem *fieldSystem, u16 customWordMessage) { - TVEpisodeSegment segments; - TVEpisodeSegment_InYourFaceInterview_Question4 *inYourFaceInterviewQuestion4 = &segments.inYourFaceInterviewQuestion4; + TVSegmentData segments; + TVSegment_InYourFaceInterview_Question *inYourFaceInterviewQuestion = &segments.inYourFaceInterviewQuestion; - inYourFaceInterviewQuestion4->customWordMessage = customWordMessage; - FieldSystem_SaveTVEpisodeSegment(fieldSystem, TV_PROGRAM_TYPE_INTERVIEWS, TV_PROGRAM_SEGMENT_IN_YOUR_FACE_INTERVIEW_QUESTION_4, inYourFaceInterviewQuestion4); + inYourFaceInterviewQuestion->customWordMessage = customWordMessage; + FieldSystem_SaveTVSegment(fieldSystem, TV_PROGRAM_TYPE_INTERVIEWS, TV_PROGRAM_SEGMENT_IN_YOUR_FACE_INTERVIEW_QUESTION_4, inYourFaceInterviewQuestion); } -static int TVEpisodeSegment_LoadMessage_InYourFaceInterview_Question4(FieldSystem *fieldSystem, StringTemplate *template, UnkStruct_ov6_022465F4 *param2) +static int TVSegment_LoadMessage_InYourFaceInterview_Question4(FieldSystem *fieldSystem, StringTemplate *template, TVEpisode *episode) { - TVEpisodeSegment_InYourFaceInterview_Question4 *inYourFaceInterviewQuestion4 = ov6_02246498(param2); + TVSegment_InYourFaceInterview_Question *inYourFaceInterviewQuestion = TVEpisode_GetSegment(episode); - TVEpisodeSegment_SetTemplateTrainerName(template, 0, param2); - StringTemplate_SetCustomMessageWord(template, 1, inYourFaceInterviewQuestion4->customWordMessage); + TVSegment_SetTemplateTrainerName(template, 0, episode); + StringTemplate_SetCustomMessageWord(template, 1, inYourFaceInterviewQuestion->customWordMessage); return TVProgramInterviews_Text_InYourFaceInterview_Question4; } -void FieldSystem_SaveTVEpisodeSegment_BattleFrontierFrontlineNews_Multi(FieldSystem *fieldSystem, u16 customWordMessage) +void FieldSystem_SaveTVSegment_BattleFrontierFrontlineNews_Multi(FieldSystem *fieldSystem, u16 customWordMessage) { - TVEpisodeSegment segments; - TVEpisodeSegment_BattleFrontierFrontlineNews_Multi *battleFrontierFrontlineNewsMulti = &segments.battleFrontierFrontlineNewsMulti; + TVSegmentData segments; + TVSegment_BattleFrontierFrontlineNews_Multi *battleFrontierFrontlineNewsMulti = &segments.battleFrontierFrontlineNewsMulti; UnkStruct_0202E81C *v2 = sub_0202E81C(SaveData_GetTVBroadcast(fieldSystem->saveData)); battleFrontierFrontlineNewsMulti->unk_00 = *v2; @@ -2010,16 +1993,16 @@ void FieldSystem_SaveTVEpisodeSegment_BattleFrontierFrontlineNews_Multi(FieldSys v2->unk_00 = 0; SaveData_SetChecksum(SAVE_TABLE_ENTRY_TV_BROADCAST); - FieldSystem_SaveTVEpisodeSegment(fieldSystem, TV_PROGRAM_TYPE_INTERVIEWS, TV_PROGRAM_SEGMENT_BATTLE_FRONTIER_FRONTLINE_NEWS_MULTI, battleFrontierFrontlineNewsMulti); + FieldSystem_SaveTVSegment(fieldSystem, TV_PROGRAM_TYPE_INTERVIEWS, TV_PROGRAM_SEGMENT_BATTLE_FRONTIER_FRONTLINE_NEWS_MULTI, battleFrontierFrontlineNewsMulti); } -static int TVEpisodeSegment_LoadMessage_BattleFrontierFrontlineNews_Multi(FieldSystem *fieldSystem, StringTemplate *template, UnkStruct_ov6_022465F4 *param2) +static int TVSegment_LoadMessage_BattleFrontierFrontlineNews_Multi(FieldSystem *fieldSystem, StringTemplate *template, TVEpisode *episode) { int messageID; - TVEpisodeSegment_BattleFrontierFrontlineNews_Multi *battleFrontierFrontlineNewsMulti = ov6_02246498(param2); + TVSegment_BattleFrontierFrontlineNews_Multi *battleFrontierFrontlineNewsMulti = TVEpisode_GetSegment(episode); String *v2 = String_Init(64, HEAP_ID_FIELD1); - TVEpisodeSegment_SetTemplateTrainerName(template, 0, param2); + TVSegment_SetTemplateTrainerName(template, 0, episode); String_CopyChars(v2, battleFrontierFrontlineNewsMulti->unk_00.unk_06); StringTemplate_SetString(template, 1, v2, battleFrontierFrontlineNewsMulti->unk_00.unk_02, 0, battleFrontierFrontlineNewsMulti->unk_00.language); String_Free(v2); @@ -2047,7 +2030,7 @@ static int TVEpisodeSegment_LoadMessage_BattleFrontierFrontlineNews_Multi(FieldS return messageID; } -static BOOL TVEpisodeSegment_IsEligible_BattleFrontierFrontlineNews_Multi(FieldSystem *fieldSystem, UnkStruct_ov6_022465F4 *param1) +static BOOL TVSegment_IsEligible_BattleFrontierFrontlineNews_Multi(FieldSystem *fieldSystem, TVEpisode *episode) { return SystemFlag_HandleFirstArrivalToZone(SaveData_GetVarsFlags(fieldSystem->saveData), HANDLE_FLAG_CHECK, FIRST_ARRIVAL_FIGHT_AREA); } @@ -2073,7 +2056,7 @@ static int RecordMixedRNG_CountValidEntries(RecordMixedRNG *rngCollection) return count; } -static int TVEpisodeSegment_LoadMessage_DiscoveringGroups(FieldSystem *fieldSystem, StringTemplate *template, UnkStruct_ov6_022465F4 *param2) +static int TVSegment_LoadMessage_DiscoveringGroups(FieldSystem *fieldSystem, StringTemplate *template, TVEpisode *episode) { int i, validEntries, entry; enum PokemonType type; @@ -2114,7 +2097,7 @@ static int TVEpisodeSegment_LoadMessage_DiscoveringGroups(FieldSystem *fieldSyst return TVProgramSinnohNow_Text_DiscoveringGroups; } -static BOOL TVEpisodeSegment_IsEligible_DiscoveringGroups(FieldSystem *fieldSystem, UnkStruct_ov6_022465F4 *param1) +static BOOL TVSegment_IsEligible_DiscoveringGroups(FieldSystem *fieldSystem, TVEpisode *episode) { RecordMixedRNG *rngCollection = SaveData_GetRecordMixedRNG(fieldSystem->saveData); @@ -2133,7 +2116,7 @@ static u16 sOnTheSpotWeatherLocations[] = { MAP_HEADER_SNOWPOINT_CITY }; -static int TVEpisodeSegment_LoadMessage_OnTheSpotWeather(FieldSystem *fieldSystem, StringTemplate *template, UnkStruct_ov6_022465F4 *param2) +static int TVSegment_LoadMessage_OnTheSpotWeather(FieldSystem *fieldSystem, StringTemplate *template, TVEpisode *episode) { int mapHeaderID = sOnTheSpotWeatherLocations[LCRNG_RandMod(NELEMS(sOnTheSpotWeatherLocations))]; int weather = FieldSystem_GetWeather(fieldSystem, mapHeaderID); @@ -2174,13 +2157,13 @@ static int TVEpisodeSegment_LoadMessage_OnTheSpotWeather(FieldSystem *fieldSyste return TVProgramSinnohNow_Text_OnTheSpotWeather_Clear1; } -static BOOL FieldSystem_AlwaysTrue(FieldSystem *fieldSystem, UnkStruct_ov6_022465F4 *param1) +static BOOL FieldSystem_AlwaysTrue(FieldSystem *fieldSystem, TVEpisode *episode) { return TRUE; } // Skips Marts, Gyms and Pokémon Centers -static int TVEpisodeSegment_LoadMessage_YourTownsBestThree(FieldSystem *fieldSystem, StringTemplate *template, UnkStruct_ov6_022465F4 *param2) +static int TVSegment_LoadMessage_YourTownsBestThree(FieldSystem *fieldSystem, StringTemplate *template, TVEpisode *episode) { TrainerInfo *trainerInfo = SaveData_GetTrainerInfo(FieldSystem_GetSaveData(fieldSystem)); int mapID = fieldSystem->location->mapId; @@ -2250,26 +2233,26 @@ static int TVEpisodeSegment_LoadMessage_YourTownsBestThree(FieldSystem *fieldSys return TVProgramSinnohNow_Text_YourTownsBestThree_WhereWillWeGo; } -static int TVEpisodeSegment_LoadMessage_SwarmNewsFlash(FieldSystem *fieldSystem, StringTemplate *template, UnkStruct_ov6_022465F4 *param2) +static int TVSegment_LoadMessage_SwarmNewsFlash(FieldSystem *fieldSystem, StringTemplate *template, TVEpisode *episode) { u16 mapID, species; SpecialEncounter *speEnc = SaveData_GetSpecialEncounters(fieldSystem->saveData); Swarm_GetMapIdAndSpecies(SpecialEncounter_GetDailyMon(speEnc, DAILY_SWARM), &mapID, &species); StringTemplate_SetLocationName(template, 0, MapHeader_GetMapLabelTextID(mapID)); - TVEpisodeSegment_SetTemplateOwnPokemonSpecies(template, 1, species); + TVSegment_SetTemplateOwnPokemonSpecies(template, 1, species); return TVProgramSinnohNow_Text_SwarmNewsFlash; } -static BOOL TVEpisodeSegment_IsEligible_SwarmNewsFlash(FieldSystem *fieldSystem, UnkStruct_ov6_022465F4 *unused) +static BOOL TVSegment_IsEligible_SwarmNewsFlash(FieldSystem *fieldSystem, TVEpisode *episode) { SpecialEncounter *speEnc = SaveData_GetSpecialEncounters(fieldSystem->saveData); return SpecialEncounter_IsSwarmEnabled(speEnc); } // Leftover from DP -static BOOL MatchupChannelDummy(FieldSystem *fieldSystem, UnkStruct_ov6_022465F4 *param1) +static BOOL MatchupChannelDummy(FieldSystem *fieldSystem, TVEpisode *episode) { return FALSE; } @@ -2461,7 +2444,7 @@ static int BerryLookout_GetVisitedPatch(FieldSystem *fieldSystem) return patches[LCRNG_RandMod(count)]; } -static int TVEpisodeSegment_LoadMessage_BerryLookout(FieldSystem *fieldSystem, StringTemplate *template, UnkStruct_ov6_022465F4 *param2) +static int TVSegment_LoadMessage_BerryLookout(FieldSystem *fieldSystem, StringTemplate *template, TVEpisode *episode) { BerryPatch *berryPatches = MiscSaveBlock_GetBerryPatches(fieldSystem->saveData); int patchID = BerryLookout_GetVisitedPatch(fieldSystem); @@ -2484,19 +2467,19 @@ static int TVEpisodeSegment_LoadMessage_BerryLookout(FieldSystem *fieldSystem, S } } -static BOOL TVEpisodeSegment_IsEligible_BerryLookout(FieldSystem *fieldSystem, UnkStruct_ov6_022465F4 *param1) +static BOOL TVSegment_IsEligible_BerryLookout(FieldSystem *fieldSystem, TVEpisode *episode) { VarsFlags *varsFlags = SaveData_GetVarsFlags(fieldSystem->saveData); return SystemFlag_HandleFirstArrivalToZone(varsFlags, HANDLE_FLAG_CHECK, FIRST_ARRIVAL_OREBURGH_CITY); } // Leftover from DP -static BOOL PokemonResearchCornerDummy(FieldSystem *fieldSystem, UnkStruct_ov6_022465F4 *param1) +static BOOL PokemonResearchCornerDummy(FieldSystem *fieldSystem, TVEpisode *episode) { return FALSE; } -static int TVEpisodeSegment_LoadMessage_RichBoyNatureCorner(FieldSystem *fieldSystem, StringTemplate *template, UnkStruct_ov6_022465F4 *param2) +static int TVSegment_LoadMessage_RichBoyNatureCorner(FieldSystem *fieldSystem, StringTemplate *template, TVEpisode *episode) { u32 personality, i; u8 nature; @@ -2537,7 +2520,7 @@ static int TVEpisodeSegment_LoadMessage_RichBoyNatureCorner(FieldSystem *fieldSy return TVProgramSinnohNow_Text_RichBoyNatureCorner_StatAffinity; } -static int TVEpisodeSegment_LoadMessage_RoamerNewsFlash(FieldSystem *fieldSystem, StringTemplate *template, UnkStruct_ov6_022465F4 *param2) +static int TVSegment_LoadMessage_RoamerNewsFlash(FieldSystem *fieldSystem, StringTemplate *template, TVEpisode *episode) { Roamer *roamer; SpecialEncounter *speEnc; @@ -2560,7 +2543,7 @@ static int TVEpisodeSegment_LoadMessage_RoamerNewsFlash(FieldSystem *fieldSystem species = Roamer_GetData(roamer, ROAMER_DATA_SPECIES); personality = Roamer_GetData(roamer, ROAMER_DATA_PERSONALITY); - TVEpisodeSegment_SetTemplatePokemonSpecies(template, 1, species, Pokemon_GetGenderOf(species, personality), TrainerInfo_Language(trainerInfo), TrainerInfo_GameCode(trainerInfo)); + TVSegment_SetTemplatePokemonSpecies(template, 1, species, Pokemon_GetGenderOf(species, personality), TrainerInfo_Language(trainerInfo), TrainerInfo_GameCode(trainerInfo)); break; } } @@ -2568,7 +2551,7 @@ static int TVEpisodeSegment_LoadMessage_RoamerNewsFlash(FieldSystem *fieldSystem return TVProgramSinnohNow_Text_RoamerNewsFlash; } -static BOOL TVEpisodeSegment_IsEligible_RoamerNewsFlash(FieldSystem *fieldSystem, UnkStruct_ov6_022465F4 *param1) +static BOOL TVSegment_IsEligible_RoamerNewsFlash(FieldSystem *fieldSystem, TVEpisode *episode) { int i; SpecialEncounter *speEnc = SaveData_GetSpecialEncounters(fieldSystem->saveData); @@ -2595,7 +2578,7 @@ static int ImageClips_CountDressUpPhotosWithData(ImageClips *imageClips) return count; } -static int TVEpisodeSegment_LoadMessage_PokemonPhotoRating(FieldSystem *fieldSystem, StringTemplate *template, UnkStruct_ov6_022465F4 *param2) +static int TVSegment_LoadMessage_PokemonPhotoRating(FieldSystem *fieldSystem, StringTemplate *template, TVEpisode *episode) { DressUpPhoto *photo; int i, count, rand, slot; @@ -2637,7 +2620,7 @@ static int TVEpisodeSegment_LoadMessage_PokemonPhotoRating(FieldSystem *fieldSys return TVProgramSinnohNow_Text_PokemonPhotoRating; } -static BOOL TVEpisodeSegment_IsEligible_PokemonPhotoRating(FieldSystem *fieldSystem, UnkStruct_ov6_022465F4 *param1) +static BOOL TVSegment_IsEligible_PokemonPhotoRating(FieldSystem *fieldSystem, TVEpisode *episode) { ImageClips *imageClips = SaveData_GetImageClips(fieldSystem->saveData); @@ -2648,7 +2631,7 @@ static BOOL TVEpisodeSegment_IsEligible_PokemonPhotoRating(FieldSystem *fieldSys } } -static int sub_0206EF7C(FieldSystem *fieldSystem, StringTemplate *param1, UnkStruct_ov6_022465F4 *param2) +static int sub_0206EF7C(FieldSystem *fieldSystem, StringTemplate *param1, TVEpisode *episode) { u16 v0 = 0; @@ -2665,7 +2648,7 @@ static int sub_0206EF7C(FieldSystem *fieldSystem, StringTemplate *param1, UnkStr return 0 + v0; } -static int sub_0206F01C(FieldSystem *fieldSystem, StringTemplate *param1, UnkStruct_ov6_022465F4 *param2) +static int sub_0206F01C(FieldSystem *fieldSystem, StringTemplate *param1, TVEpisode *episode) { String *v0; u16 v1, v2, v3; @@ -2713,7 +2696,7 @@ static String *sub_0206F0D8(u16 param0, enum HeapID heapID) return v1; } -static BOOL sub_0206F100(FieldSystem *fieldSystem, UnkStruct_ov6_022465F4 *param1) +static BOOL sub_0206F100(FieldSystem *fieldSystem, TVEpisode *episode) { const Pokedex *pokedex = SaveData_GetPokedex(fieldSystem->saveData); @@ -2724,7 +2707,7 @@ static BOOL sub_0206F100(FieldSystem *fieldSystem, UnkStruct_ov6_022465F4 *param } } -static int sub_0206F118(FieldSystem *fieldSystem, StringTemplate *param1, UnkStruct_ov6_022465F4 *param2) +static int sub_0206F118(FieldSystem *fieldSystem, StringTemplate *param1, TVEpisode *episode) { u16 v0 = (LCRNG_Next() % 3); @@ -2737,7 +2720,7 @@ static int sub_0206F118(FieldSystem *fieldSystem, StringTemplate *param1, UnkStr } } -static int sub_0206F13C(FieldSystem *fieldSystem, StringTemplate *param1, UnkStruct_ov6_022465F4 *param2) +static int sub_0206F13C(FieldSystem *fieldSystem, StringTemplate *param1, TVEpisode *episode) { u16 v0 = (LCRNG_Next() % 3); @@ -2750,7 +2733,7 @@ static int sub_0206F13C(FieldSystem *fieldSystem, StringTemplate *param1, UnkStr } } -static int sub_0206F160(FieldSystem *fieldSystem, StringTemplate *template, UnkStruct_ov6_022465F4 *param2) +static int sub_0206F160(FieldSystem *fieldSystem, StringTemplate *template, TVEpisode *episode) { String *v0; u16 v1, v2; @@ -2762,7 +2745,7 @@ static int sub_0206F160(FieldSystem *fieldSystem, StringTemplate *template, UnkS party = SaveData_GetParty(fieldSystem->saveData); mon = Party_GetPokemonBySlotIndex(party, SaveData_GetFirstNonEggInParty(fieldSystem->saveData)); - TVEpisodeSegment_SetTemplatePokemonSpecies(template, 0, Pokemon_GetValue(mon, MON_DATA_SPECIES, NULL), Pokemon_GetValue(mon, MON_DATA_GENDER, NULL), TrainerInfo_Language(trainerInfo), TrainerInfo_GameCode(trainerInfo)); + TVSegment_SetTemplatePokemonSpecies(template, 0, Pokemon_GetValue(mon, MON_DATA_SPECIES, NULL), Pokemon_GetValue(mon, MON_DATA_GENDER, NULL), TrainerInfo_Language(trainerInfo), TrainerInfo_GameCode(trainerInfo)); StringTemplate_SetContestAccessoryName(template, 1, LCRNG_Next() % 100); v1 = (LCRNG_Next() % (NATIONAL_DEX_COUNT - 2) + 1); @@ -2787,7 +2770,7 @@ static int sub_0206F160(FieldSystem *fieldSystem, StringTemplate *template, UnkS return 17; } -static BOOL sub_0206F260(FieldSystem *fieldSystem, UnkStruct_ov6_022465F4 *param1) +static BOOL sub_0206F260(FieldSystem *fieldSystem, TVEpisode *episode) { const Pokedex *pokedex = SaveData_GetPokedex(fieldSystem->saveData); @@ -2798,17 +2781,17 @@ static BOOL sub_0206F260(FieldSystem *fieldSystem, UnkStruct_ov6_022465F4 *param } } -static int sub_0206F278(FieldSystem *fieldSystem, StringTemplate *param1, UnkStruct_ov6_022465F4 *param2) +static int sub_0206F278(FieldSystem *fieldSystem, StringTemplate *param1, TVEpisode *episode) { return 18; } -static int sub_0206F27C(FieldSystem *fieldSystem, StringTemplate *param1, UnkStruct_ov6_022465F4 *param2) +static int sub_0206F27C(FieldSystem *fieldSystem, StringTemplate *param1, TVEpisode *episode) { return 19; } -static BOOL sub_0206F280(FieldSystem *fieldSystem, UnkStruct_ov6_022465F4 *param1) +static BOOL sub_0206F280(FieldSystem *fieldSystem, TVEpisode *episode) { if (TrainerInfo_HasBadge(SaveData_GetTrainerInfo(fieldSystem->saveData), 0) == 1) { return 1; @@ -2817,7 +2800,7 @@ static BOOL sub_0206F280(FieldSystem *fieldSystem, UnkStruct_ov6_022465F4 *param } } -static int sub_0206F29C(FieldSystem *fieldSystem, StringTemplate *param1, UnkStruct_ov6_022465F4 *param2) +static int sub_0206F29C(FieldSystem *fieldSystem, StringTemplate *param1, TVEpisode *episode) { u16 v0 = (LCRNG_Next() % 9); @@ -2842,96 +2825,96 @@ static int sub_0206F29C(FieldSystem *fieldSystem, StringTemplate *param1, UnkStr } } -static const TVProgramSegment sTrainerSightingsSegments[TV_PROGRAM_TYPE_TRAINER_SIGHTINGS_NUM_SEGMENTS] = { +static const TVSegment sTrainerSightingsSegments[TV_PROGRAM_TYPE_TRAINER_SIGHTINGS_NUM_SEGMENTS] = { { - TVEpisodeSegment_LoadMessage_CatchThatPokemonShow_Success, - TVEpisodeSegment_IsEligible_CatchThatPokemonShow_Success, + TVSegment_LoadMessage_CatchThatPokemonShow_Success, + TVSegment_IsEligible_CatchThatPokemonShow_Success, }, { - TVEpisodeSegment_LoadMessage_CatchThatPokemonShow_Failure, + TVSegment_LoadMessage_CatchThatPokemonShow_Failure, NULL, }, { - TVEpisodeSegment_LoadMessage_WhatsFishing, - TVEpisodeSegment_IsEligible_WhatsFishing, + TVSegment_LoadMessage_WhatsFishing, + TVSegment_IsEligible_WhatsFishing, }, { - TVEpisodeSegment_LoadMessage_LoveThatGroupCorner_SwitchGroup, + TVSegment_LoadMessage_LoveThatGroupCorner_SwitchGroup, NULL, }, TV_PROGRAM_SEGMENT_NULL, { - TVEpisodeSegment_LoadMessage_HiddenItemBreakingNews, + TVSegment_LoadMessage_HiddenItemBreakingNews, NULL, }, { - TVEpisodeSegment_LoadMessage_SinnohShoppingChampCorner, + TVSegment_LoadMessage_SinnohShoppingChampCorner, NULL, }, { - TVEpisodeSegment_LoadMessage_HappyHappyEggClub, - TVEpisodeSegment_IsEligible_HappyHappyEggClub, + TVSegment_LoadMessage_HappyHappyEggClub, + TVSegment_IsEligible_HappyHappyEggClub, }, TV_PROGRAM_SEGMENT_NULL, { - TVEpisodeSegment_LoadMessage_RateThatNameChange, - TVEpisodeSegment_IsEligible_RateThatNameChange, + TVSegment_LoadMessage_RateThatNameChange, + TVSegment_IsEligible_RateThatNameChange, }, TV_PROGRAM_SEGMENT_NULL, TV_PROGRAM_SEGMENT_NULL, { - TVEpisodeSegment_LoadMessage_UndergroundTreasuresCorner, - TVEpisodeSegment_IsEligible_HasExplorerKit, + TVSegment_LoadMessage_UndergroundTreasuresCorner, + TVSegment_IsEligible_HasExplorerKit, }, TV_PROGRAM_SEGMENT_NULL, { - TVEpisodeSegment_LoadMessage_SafariGameSpecialNewsBulletin, - TVEpisodeSegment_IsEligible_SafariGameSpecialNewsBulletin, + TVSegment_LoadMessage_SafariGameSpecialNewsBulletin, + TVSegment_IsEligible_SafariGameSpecialNewsBulletin, }, { - TVEpisodeSegment_LoadMessage_PokemonStorageSpecialNewsBulletin, - TVEpisodeSegment_IsEligible_PokemonStorageSpecialNewsBulletin, + TVSegment_LoadMessage_PokemonStorageSpecialNewsBulletin, + TVSegment_IsEligible_PokemonStorageSpecialNewsBulletin, }, { NULL, - TVEpisodeSegment_IsEligible_HerbalMedicineTrainerSightingDummy, + TVSegment_IsEligible_HerbalMedicineTrainerSightingDummy, }, { - TVEpisodeSegment_LoadMessage_PlantingAndWateringShow, + TVSegment_LoadMessage_PlantingAndWateringShow, NULL, }, { - TVEpisodeSegment_LoadMessage_PlantingAndWateringShow_NoBerries, + TVSegment_LoadMessage_PlantingAndWateringShow_NoBerries, NULL, }, { - TVEpisodeSegment_LoadMessage_LoveThatGroupCorner_NewGroup, + TVSegment_LoadMessage_LoveThatGroupCorner_NewGroup, NULL, }, { - TVEpisodeSegment_LoadMessage_SealClubShow, - TVEpisodeSegment_IsEligible_SealClubShow, + TVSegment_LoadMessage_SealClubShow, + TVSegment_IsEligible_SealClubShow, }, { - TVEpisodeSegment_LoadMessage_CaptureTheFlagDigest_TakeFlag, - TVEpisodeSegment_IsEligible_HasExplorerKit, + TVSegment_LoadMessage_CaptureTheFlagDigest_TakeFlag, + TVSegment_IsEligible_HasExplorerKit, }, { - TVEpisodeSegment_LoadMessage_CaptureTheFlagDigest_LoseFlag, - TVEpisodeSegment_IsEligible_HasExplorerKit, + TVSegment_LoadMessage_CaptureTheFlagDigest_LoseFlag, + TVSegment_IsEligible_HasExplorerKit, }, TV_PROGRAM_SEGMENT_NULL, { - TVEpisodeSegment_LoadMessage_HomeAndManor_NoFurniture, - TVEpisodeSegment_IsEligible_HomeAndManor_NoFurniture, + TVSegment_LoadMessage_HomeAndManor_NoFurniture, + TVSegment_IsEligible_HomeAndManor_NoFurniture, }, { - TVEpisodeSegment_LoadMessage_HomeAndManor, - TVEpisodeSegment_IsEligible_HomeAndManor, + TVSegment_LoadMessage_HomeAndManor, + TVSegment_IsEligible_HomeAndManor, } }; -static const TVProgramSegment sRecordsSegments[TV_PROGRAM_TYPE_RECORDS_NUM_SEGMENTS] = { +static const TVSegment sRecordsSegments[TV_PROGRAM_TYPE_RECORDS_NUM_SEGMENTS] = { { sub_0206DBE8, sub_0206DC3C }, TV_PROGRAM_SEGMENT_NULL, { sub_0206DC9C, sub_0206DD1C }, @@ -2945,91 +2928,91 @@ static const TVProgramSegment sRecordsSegments[TV_PROGRAM_TYPE_RECORDS_NUM_SEGME { sub_0206E098, sub_0206E0CC } }; -static const TVProgramSegment sInterviewsSegments[TV_PROGRAM_TYPE_INTERVIEWS_NUM_SEGMENTS] = { +static const TVSegment sInterviewsSegments[TV_PROGRAM_TYPE_INTERVIEWS_NUM_SEGMENTS] = { TV_PROGRAM_SEGMENT_NULL, { - TVEpisodeSegment_LoadMessage_BattleTowerCorner, - TVEpisodeSegment_IsEligible_BattleTowerCorner, + TVSegment_LoadMessage_BattleTowerCorner, + TVSegment_IsEligible_BattleTowerCorner, }, TV_PROGRAM_SEGMENT_NULL, { - TVEpisodeSegment_LoadMessage_YourPokemonCorner, - TVEpisodeSegment_IsEligible_YourPokemonCorner, + TVSegment_LoadMessage_YourPokemonCorner, + TVSegment_IsEligible_YourPokemonCorner, }, TV_PROGRAM_SEGMENT_NULL, { - TVEpisodeSegment_LoadMessage_ThePoketchWatch, + TVSegment_LoadMessage_ThePoketchWatch, NULL, }, { - TVEpisodeSegment_LoadMessage_ContestHall, - TVEpisodeSegment_IsEligible_ContestHall, + TVSegment_LoadMessage_ContestHall, + TVSegment_IsEligible_ContestHall, }, TV_PROGRAM_SEGMENT_NULL, { - TVEpisodeSegment_LoadMessage_RightOnPhotoCorner, - TVEpisodeSegment_IsEligible_RightOnPhotoCorner, + TVSegment_LoadMessage_RightOnPhotoCorner, + TVSegment_IsEligible_RightOnPhotoCorner, }, { - TVEpisodeSegment_LoadMessage_StreetCornerPersonalityCheckup, + TVSegment_LoadMessage_StreetCornerPersonalityCheckup, NULL, }, { - TVEpisodeSegment_LoadMessage_ThreeCheersForPoffinCorner, + TVSegment_LoadMessage_ThreeCheersForPoffinCorner, NULL, }, TV_PROGRAM_SEGMENT_NULL, { - TVEpisodeSegment_LoadMessage_AmitySquareWatch, + TVSegment_LoadMessage_AmitySquareWatch, NULL, }, { - TVEpisodeSegment_LoadMessage_BattleFrontierFrontlineNews_Single, - TVEpisodeSegment_IsEligible_BattleFrontierFrontlineNews_Single, + TVSegment_LoadMessage_BattleFrontierFrontlineNews_Single, + TVSegment_IsEligible_BattleFrontierFrontlineNews_Single, }, { - TVEpisodeSegment_LoadMessage_InYourFaceInterview_Question1, + TVSegment_LoadMessage_InYourFaceInterview_Question1, NULL, }, { - TVEpisodeSegment_LoadMessage_InYourFaceInterview_Question2, + TVSegment_LoadMessage_InYourFaceInterview_Question2, NULL, }, { - TVEpisodeSegment_LoadMessage_InYourFaceInterview_Question3, + TVSegment_LoadMessage_InYourFaceInterview_Question3, NULL, }, { - TVEpisodeSegment_LoadMessage_InYourFaceInterview_Question4, + TVSegment_LoadMessage_InYourFaceInterview_Question4, NULL, }, { - TVEpisodeSegment_LoadMessage_BattleFrontierFrontlineNews_Multi, - TVEpisodeSegment_IsEligible_BattleFrontierFrontlineNews_Multi, + TVSegment_LoadMessage_BattleFrontierFrontlineNews_Multi, + TVSegment_IsEligible_BattleFrontierFrontlineNews_Multi, } }; -static const TVProgramSegment sSinnohNowSegments[TV_PROGRAM_TYPE_SINNOH_NOW_NUM_SEGMENTS] = { - { TVEpisodeSegment_LoadMessage_DiscoveringGroups, TVEpisodeSegment_IsEligible_DiscoveringGroups }, - { TVEpisodeSegment_LoadMessage_OnTheSpotWeather, FieldSystem_AlwaysTrue }, - { TVEpisodeSegment_LoadMessage_YourTownsBestThree, NULL }, +static const TVSegment sSinnohNowSegments[TV_PROGRAM_TYPE_SINNOH_NOW_NUM_SEGMENTS] = { + { TVSegment_LoadMessage_DiscoveringGroups, TVSegment_IsEligible_DiscoveringGroups }, + { TVSegment_LoadMessage_OnTheSpotWeather, FieldSystem_AlwaysTrue }, + { TVSegment_LoadMessage_YourTownsBestThree, NULL }, TV_PROGRAM_SEGMENT_NULL, - { TVEpisodeSegment_LoadMessage_SwarmNewsFlash, TVEpisodeSegment_IsEligible_SwarmNewsFlash }, + { TVSegment_LoadMessage_SwarmNewsFlash, TVSegment_IsEligible_SwarmNewsFlash }, TV_PROGRAM_SEGMENT_NULL, { NULL, MatchupChannelDummy }, TV_PROGRAM_SEGMENT_NULL, - { TVEpisodeSegment_LoadMessage_BerryLookout, TVEpisodeSegment_IsEligible_BerryLookout }, + { TVSegment_LoadMessage_BerryLookout, TVSegment_IsEligible_BerryLookout }, TV_PROGRAM_SEGMENT_NULL, { NULL, PokemonResearchCornerDummy }, - { TVEpisodeSegment_LoadMessage_RichBoyNatureCorner, NULL }, + { TVSegment_LoadMessage_RichBoyNatureCorner, NULL }, TV_PROGRAM_SEGMENT_NULL, TV_PROGRAM_SEGMENT_NULL, - { TVEpisodeSegment_LoadMessage_RoamerNewsFlash, TVEpisodeSegment_IsEligible_RoamerNewsFlash }, + { TVSegment_LoadMessage_RoamerNewsFlash, TVSegment_IsEligible_RoamerNewsFlash }, TV_PROGRAM_SEGMENT_NULL, - { TVEpisodeSegment_LoadMessage_PokemonPhotoRating, TVEpisodeSegment_IsEligible_PokemonPhotoRating } + { TVSegment_LoadMessage_PokemonPhotoRating, TVSegment_IsEligible_PokemonPhotoRating } }; -static const TVProgramSegment sVarietyHourSegments[TV_PROGRAM_TYPE_VARIETY_HOUR_NUM_SEGMENTS] = { +static const TVSegment sVarietyHourSegments[TV_PROGRAM_TYPE_VARIETY_HOUR_NUM_SEGMENTS] = { { sub_0206EF7C, NULL }, { sub_0206F01C, sub_0206F100 }, { sub_0206F118, NULL }, diff --git a/src/underground/mining.c b/src/underground/mining.c index 3015cf5210..8f9cc7ff9a 100644 --- a/src/underground/mining.c +++ b/src/underground/mining.c @@ -62,7 +62,7 @@ #include "terrain_collision_manager.h" #include "text.h" #include "trainer_info.h" -#include "tv_episode_segment.h" +#include "tv_segment.h" #include "underground.h" #include "vars_flags.h" #include "vram_transfer.h" @@ -2637,7 +2637,7 @@ static BOOL Mining_ProcessNextDugUpItem(MiningGameContext *ctx) if (Spheres_IsMiningItemSphere(itemID)) { UndergroundRecord_AddNumSpheresDug(undergroundRecord, 1); } else { - FieldSystem_SaveTVEpisodeSegment_UndergroundTreasuresCorner(sMiningEnv->fieldSystem, itemID, 1); + FieldSystem_SaveTVSegment_UndergroundTreasuresCorner(sMiningEnv->fieldSystem, itemID, 1); // possible bug: rare bones count toward the fossil total if ((itemID >= MINING_TREASURE_HELIX_FOSSIL) && ((MINING_TREASURE_RARE_BONE + 1) > itemID) || (itemID == MINING_TREASURE_ARMOR_FOSSIL) || (itemID == MINING_TREASURE_SKULL_FOSSIL)) { diff --git a/src/underground/player.c b/src/underground/player.c index eab7c35611..fc87650b52 100644 --- a/src/underground/player.c +++ b/src/underground/player.c @@ -37,7 +37,7 @@ #include "system_flags.h" #include "system_vars.h" #include "trainer_info.h" -#include "tv_episode_segment.h" +#include "tv_segment.h" #include "underground.h" #include "vars_flags.h" @@ -480,7 +480,7 @@ void UndergroundPlayer_ProcessFlagEvent(int unused0, int unused1, void *data, vo SystemFlag_SetDeliveredStolenFlag(SaveData_GetVarsFlags(commPlayerMan->fieldSystem->saveData)); if (commPlayerMan->heldFlagOwnerInfo[event->netID]) { - FieldSystem_SaveTVEpisodeSegment_CaptureTheFlagDigest_TakeFlag(commPlayerMan->fieldSystem, commPlayerMan->heldFlagOwnerInfo[event->netID]); + FieldSystem_SaveTVSegment_CaptureTheFlagDigest_TakeFlag(commPlayerMan->fieldSystem, commPlayerMan->heldFlagOwnerInfo[event->netID]); if (commPlayerMan->flagsRegisteredInCurrentSession != USHRT_MAX) { commPlayerMan->flagsRegisteredInCurrentSession++; @@ -501,7 +501,7 @@ void UndergroundPlayer_ProcessFlagEvent(int unused0, int unused1, void *data, vo if (commPlayerMan->heldFlagOwnerInfo[event->netID]) { if (TrainerInfo_Equals(commPlayerMan->heldFlagOwnerInfo[event->netID], CommInfo_TrainerInfo(CommSys_CurNetId())) == TRUE) { - FieldSystem_SaveTVEpisodeSegment_CaptureTheFlagDigest_LoseFlag(commPlayerMan->fieldSystem, CommInfo_TrainerInfo(event->netID)); + FieldSystem_SaveTVSegment_CaptureTheFlagDigest_LoseFlag(commPlayerMan->fieldSystem, CommInfo_TrainerInfo(event->netID)); } } diff --git a/src/underground/traps.c b/src/underground/traps.c index e9bb874b75..4bf0cebe12 100644 --- a/src/underground/traps.c +++ b/src/underground/traps.c @@ -53,7 +53,7 @@ #include "system_vars.h" #include "terrain_collision_manager.h" #include "trainer_info.h" -#include "tv_episode_segment.h" +#include "tv_segment.h" #include "underground.h" #include "unk_020366A0.h" #include "vars_flags.h" diff --git a/src/unk_0202E2CC.c b/src/unk_0202E2CC.c index 63c747fa23..4363ef3c30 100644 --- a/src/unk_0202E2CC.c +++ b/src/unk_0202E2CC.c @@ -6,9 +6,6 @@ #include "constants/tv_broadcast.h" #include "struct_defs/struct_0202440C.h" -#include "struct_defs/struct_0202E4D4.h" -#include "struct_defs/struct_0202E768.h" -#include "struct_defs/struct_0202E794.h" #include "struct_defs/struct_0202E7E4.h" #include "struct_defs/struct_0202E7F0.h" #include "struct_defs/struct_0202E7FC.h" @@ -17,14 +14,14 @@ #include "struct_defs/struct_0202E81C.h" #include "struct_defs/struct_0202E828.h" #include "struct_defs/struct_0202E834.h" -#include "struct_defs/tv_episode_segment_contest_hall_showcased_pokemon.h" +#include "struct_defs/tv_segment_contest_hall_showcased_pokemon.h" #include "inlines.h" #include "rtc.h" #include "savedata.h" static void TVBroadcast_ClearPlayedSegments(TVBroadcast *broadcast); -static UnkStruct_0202E768 *sub_0202E4DC(TVBroadcast *broadcast, int param1); +static TVSegmentInstance *sub_0202E4DC(TVBroadcast *broadcast, int param1); int TVBroadcast_SaveSize(void) { @@ -39,9 +36,9 @@ void TVBroadcast_Init(TVBroadcast *broadcast) void sub_0202E2EC(TVBroadcast *broadcast) { - MI_CpuClearFast(broadcast->unk_0C, sizeof(UnkStruct_0202E768) * 4); - MI_CpuClearFast(broadcast->unk_C4, sizeof(UnkStruct_0202E768) * 4); - MI_CpuClearFast(broadcast->unk_17C, sizeof(UnkStruct_0202E768) * 4); + MI_CpuClearFast(broadcast->unk_0C, sizeof(TVSegmentInstance) * 4); + MI_CpuClearFast(broadcast->unk_C4, sizeof(TVSegmentInstance) * 4); + MI_CpuClearFast(broadcast->unk_17C, sizeof(TVSegmentInstance) * 4); TVBroadcast_ClearWatchProgress(broadcast); SaveData_SetChecksum(SAVE_TABLE_ENTRY_TV_BROADCAST); @@ -142,29 +139,28 @@ int TVBroadcast_CountPlayedSegments(const TVBroadcast *broadcast) return playedCount; } -static void sub_0202E3F4(UnkStruct_0202E4D4 *param0, int param1, const u8 *param2) +static void sub_0202E3F4(TVSegmentInstance *param0, int segmentID, const u8 *param2) { - RTCDate v0; + RTCDate time; + GetCurrentDate(&time); - GetCurrentDate(&v0); + param0->timestamp = Date_Encode(&time); + param0->segmentID = segmentID; + param0->timesPlayed = 0; - param0->unk_04 = Date_Encode(&v0); - param0->unk_00 = param1; - param0->unk_01 = 0; - - MI_CpuCopyFast(param2, param0->unk_08, 40); + MI_CpuCopyFast(param2, param0->segment, 40); SaveData_SetChecksum(SAVE_TABLE_ENTRY_TV_BROADCAST); } BOOL TVBroadcast_SaveSegmentData(TVBroadcast *broadcast, int param1, int param2, const u8 *param3) { int i; - UnkStruct_0202E768 *v1 = sub_0202E4DC(broadcast, param1); + TVSegmentInstance *v1 = sub_0202E4DC(broadcast, param1); for (i = 0; i < 4; i++) { - if (v1[i].unk_00.unk_00 == param2) { - if (v1[i].unk_00.unk_01 >= 3) { - sub_0202E3F4(&v1[i].unk_00, param2, param3); + if (v1[i].segmentID == param2) { + if (v1[i].timesPlayed >= 3) { + sub_0202E3F4(&v1[i], param2, param3); return 1; } @@ -173,15 +169,15 @@ BOOL TVBroadcast_SaveSegmentData(TVBroadcast *broadcast, int param1, int param2, } for (i = 0; i < 4; i++) { - if (v1[i].unk_00.unk_00 == 0) { - sub_0202E3F4(&v1[i].unk_00, param2, param3); + if (v1[i].segmentID == 0) { + sub_0202E3F4(&v1[i], param2, param3); return 1; } } for (i = 0; i < 4; i++) { - if (v1[i].unk_00.unk_01 >= 3) { - sub_0202E3F4(&v1[i].unk_00, param2, param3); + if (v1[i].timesPlayed >= 3) { + sub_0202E3F4(&v1[i], param2, param3); return 1; } } @@ -191,34 +187,34 @@ BOOL TVBroadcast_SaveSegmentData(TVBroadcast *broadcast, int param1, int param2, return 0; } -const u16 *sub_0202E4C8(const UnkStruct_0202E794 *param0) +const u16 *sub_0202E4C8(const TVWifiEpisode *param0) { - return param0->unk_08; + return param0->name; } -int sub_0202E4CC(const UnkStruct_0202E794 *param0) +int sub_0202E4CC(const TVWifiEpisode *param0) { return param0->language; } -int sub_0202E4D0(const UnkStruct_0202E794 *param0) +int sub_0202E4D0(const TVWifiEpisode *param0) { - return param0->unk_05; + return param0->gameVersion; } -UnkStruct_0202E4D4 *sub_0202E4D4(UnkStruct_0202E794 *param0) +TVSegmentInstance *sub_0202E4D4(TVWifiEpisode *param0) { - return ¶m0->unk_18; + return ¶m0->details; } -UnkStruct_0202E4D4 *sub_0202E4D8(UnkStruct_0202E768 *param0) +TVSegmentInstance *sub_0202E4D8(TVSegmentInstance *param0) { - return ¶m0->unk_00; + return param0; } -static UnkStruct_0202E768 *sub_0202E4DC(TVBroadcast *broadcast, int param1) +static TVSegmentInstance *sub_0202E4DC(TVBroadcast *broadcast, int param1) { - UnkStruct_0202E768 *v0 = NULL; + TVSegmentInstance *v0 = NULL; switch (param1) { case 1: @@ -238,9 +234,9 @@ static UnkStruct_0202E768 *sub_0202E4DC(TVBroadcast *broadcast, int param1) return v0; } -static UnkStruct_0202E794 *sub_0202E518(TVBroadcast *broadcast, int param1) +static TVWifiEpisode *sub_0202E518(TVBroadcast *broadcast, int param1) { - UnkStruct_0202E794 *v0 = NULL; + TVWifiEpisode *v0 = NULL; switch (param1) { case 2: @@ -260,32 +256,32 @@ static UnkStruct_0202E794 *sub_0202E518(TVBroadcast *broadcast, int param1) return v0; } -int sub_0202E55C(const UnkStruct_0202E4D4 *param0) +int sub_0202E55C(const TVSegmentInstance *param0) { - return param0->unk_00; + return param0->segmentID; } -void sub_0202E560(UnkStruct_0202E4D4 *param0) +void sub_0202E560(TVSegmentInstance *param0) { - if (param0->unk_01 < 3) { - param0->unk_01++; + if (param0->timesPlayed < 3) { + param0->timesPlayed++; } SaveData_SetChecksum(SAVE_TABLE_ENTRY_TV_BROADCAST); } -void *sub_0202E574(UnkStruct_0202E4D4 *param0) +void *sub_0202E574(TVSegmentInstance *param0) { - return param0->unk_08; + return param0->segment; } -static int sub_0202E578(const UnkStruct_0202E768 *param0, int param1, int param2, BOOL param3, u8 *param4) +static int sub_0202E578(const TVSegmentInstance *param0, int param1, int param2, BOOL param3, u8 *param4) { int v0, v1; for (v1 = 0, v0 = 0; v0 < param1; v0++) { - if (param0[v0].unk_00.unk_00 == param2) { - int v2 = param0[v0].unk_00.unk_01; + if (param0[v0].segmentID == param2) { + int v2 = param0[v0].timesPlayed; if (param3 && v2) { param4[v1] = v0 + 1; @@ -300,14 +296,14 @@ static int sub_0202E578(const UnkStruct_0202E768 *param0, int param1, int param2 return v1; } -static int sub_0202E5B8(const UnkStruct_0202E794 *param0, int param1, int param2, BOOL param3, u8 *param4) +static int sub_0202E5B8(const TVWifiEpisode *param0, int param1, int param2, BOOL param3, u8 *param4) { int v0, v1; for (v1 = 0, v0 = 0; v0 < param1; v0++) { - int v2 = param0[v0].unk_18.unk_01; + int v2 = param0[v0].details.timesPlayed; - if (param0[v0].unk_18.unk_00 == param2) { + if (param0[v0].details.segmentID == param2) { if (param3 && v2) { param4[v1] = sub_0202E7D0(v0 + 1); v1++; @@ -356,7 +352,7 @@ BOOL sub_0202E6B0(TVBroadcast *broadcast, int param1, int param2) int v0; int i; u8 v2[4]; - UnkStruct_0202E768 *v3; + TVSegmentInstance *v3; MI_CpuClear8(v2, 4); @@ -372,7 +368,7 @@ BOOL sub_0202E6B0(TVBroadcast *broadcast, int param1, int param2) for (i = 0; i < 4 & v2[i] != 0; i++) { v3 = sub_0202E768(broadcast, param1, v2[i]); - if (v3->unk_00.unk_01 >= 3) { + if (v3->timesPlayed >= 3) { return 1; } } @@ -383,7 +379,7 @@ BOOL sub_0202E6B0(TVBroadcast *broadcast, int param1, int param2) for (i = 1; i <= 4; i++) { v3 = sub_0202E768(broadcast, param1, i); - if ((v3->unk_00.unk_00 == 0) || (v3->unk_00.unk_01 >= 3)) { + if ((v3->segmentID == 0) || (v3->timesPlayed >= 3)) { return 1; } } @@ -391,9 +387,9 @@ BOOL sub_0202E6B0(TVBroadcast *broadcast, int param1, int param2) return 0; } -UnkStruct_0202E768 *sub_0202E768(TVBroadcast *broadcast, int param1, int param2) +TVSegmentInstance *sub_0202E768(TVBroadcast *broadcast, int param1, int param2) { - UnkStruct_0202E768 *v0; + TVSegmentInstance *v0; GF_ASSERT(sub_0202E7C0(param2) == 1); @@ -403,9 +399,9 @@ UnkStruct_0202E768 *sub_0202E768(TVBroadcast *broadcast, int param1, int param2) return &v0[param2 - 1]; } -UnkStruct_0202E794 *sub_0202E794(TVBroadcast *broadcast, int param1, int param2) +TVWifiEpisode *sub_0202E794(TVBroadcast *broadcast, int param1, int param2) { - UnkStruct_0202E794 *v0; + TVWifiEpisode *v0; GF_ASSERT(sub_0202E7C0(param2) == 0); @@ -429,7 +425,7 @@ int sub_0202E7D0(int param0) return param0 | 0x80; } -TVEpisodeSegment_ContestHall_ShowcasedPokemon *TVBroadcast_GetShowcasedPokemon(TVBroadcast *broadcast) +TVSegment_ContestHall_ShowcasedPokemon *TVBroadcast_GetShowcasedPokemon(TVBroadcast *broadcast) { return &broadcast->showcasedPokemon; } diff --git a/src/unk_0203D1B8.c b/src/unk_0203D1B8.c index 44d8ef091e..b9e0590c4f 100644 --- a/src/unk_0203D1B8.c +++ b/src/unk_0203D1B8.c @@ -115,7 +115,7 @@ #include "trainer_case.h" #include "trainer_case_save_data.h" #include "trainer_info.h" -#include "tv_episode_segment.h" +#include "tv_segment.h" #include "unk_02017498.h" #include "unk_020298BC.h" #include "unk_0202C858.h" @@ -1489,7 +1489,7 @@ void FieldSystem_HatchEgg(FieldSystem *fieldSystem) Pokemon *eggMon = Party_GetFirstEgg(party); GF_ASSERT(eggMon != NULL); - FieldSystem_SaveTVEpisodeSegment_HappyHappyEggClub(fieldSystem, eggMon); + FieldSystem_SaveTVSegment_HappyHappyEggClub(fieldSystem, eggMon); EggHatchArgs args; args.mon = eggMon; diff --git a/src/unk_02048BD0.c b/src/unk_02048BD0.c index b13ac9a237..629e113118 100644 --- a/src/unk_02048BD0.c +++ b/src/unk_02048BD0.c @@ -15,7 +15,7 @@ #include "string_gf.h" #include "string_template.h" #include "trainer_info.h" -#include "tv_episode_segment.h" +#include "tv_segment.h" #include "unk_0203D1B8.h" BOOL ScrCmd_21D(ScriptContext *param0) @@ -75,7 +75,7 @@ BOOL ScrCmd_21D(ScriptContext *param0) RecordMixedRNG_CopyEntry(v1, v12, 1); if (v13) { - FieldSystem_SaveTVEpisodeSegment_LoveThatGroupCorner_SwitchGroup(param0->fieldSystem); + FieldSystem_SaveTVSegment_LoveThatGroupCorner_SwitchGroup(param0->fieldSystem); } } return 0; @@ -90,7 +90,7 @@ BOOL ScrCmd_21D(ScriptContext *param0) RecordMixedRNG_SetEntrySeed(v1, 0, MTRNG_Next()); String_Free(v14); RecordMixedRNG_CopyEntry(v1, 0, 1); - FieldSystem_SaveTVEpisodeSegment_LoveThatGroupCorner_NewGroup(param0->fieldSystem); + FieldSystem_SaveTVSegment_LoveThatGroupCorner_NewGroup(param0->fieldSystem); } break; } diff --git a/src/unk_02049D08.c b/src/unk_02049D08.c index d1ac74d990..05e03ad4fc 100644 --- a/src/unk_02049D08.c +++ b/src/unk_02049D08.c @@ -37,7 +37,7 @@ #include "system_flags.h" #include "system_vars.h" #include "trainer_info.h" -#include "tv_episode_segment.h" +#include "tv_segment.h" #include "underground.h" #include "unk_0202D05C.h" #include "unk_0204AEE8.h" diff --git a/src/unk_020559DC.c b/src/unk_020559DC.c index be25149bc7..efd32c1175 100644 --- a/src/unk_020559DC.c +++ b/src/unk_020559DC.c @@ -20,7 +20,7 @@ #include "system_data.h" #include "system_vars.h" #include "trainer_case_badge_dirt.h" -#include "tv_episode_segment.h" +#include "tv_segment.h" #include "underground.h" #include "unk_0202C858.h" #include "unk_0202E2CC.h" diff --git a/src/unk_02097B18.c b/src/unk_02097B18.c index 6216472fb1..635dc94a17 100644 --- a/src/unk_02097B18.c +++ b/src/unk_02097B18.c @@ -40,7 +40,7 @@ #include "system.h" #include "touch_pad.h" #include "touch_screen_actions.h" -#include "tv_episode_segment.h" +#include "tv_segment.h" #include "unk_0202C9F4.h" #include "vram_transfer.h" @@ -388,7 +388,7 @@ static BOOL sub_02097F38(FieldTask *param0) v12 = sub_02098164(v12); broadcast = SaveData_GetTVBroadcast(fieldSystem->saveData); - FieldSystem_SaveTVEpisodeSegment_SealClubShow(broadcast, v8, v12); + FieldSystem_SaveTVSegment_SealClubShow(broadcast, v8, v12); } } v0->unk_14 = 1;