summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2017-05-18 13:38:20 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2017-05-18 13:38:20 -0400
commitb97e078c6e84cf6cf5fe7539e4dcc2d24de494c8 (patch)
tree4a2f4f4c4a4677de93da22392729c5332499d3dc /src
parent095d071cab1950f404f7fb5b6c0ff04ccc6c37f2 (diff)
sub_80BFD44
Diffstat (limited to 'src')
-rw-r--r--src/record_mixing.c2
-rw-r--r--src/tv.c43
2 files changed, 44 insertions, 1 deletions
diff --git a/src/record_mixing.c b/src/record_mixing.c
index 76fe13059..ddf9a5376 100644
--- a/src/record_mixing.c
+++ b/src/record_mixing.c
@@ -185,7 +185,7 @@ _080B93AC: .4byte 0x000011c8\n\
void sub_80B93B0(u32 a)
{
sub_80BD674(unk_2008000.secretBases, sizeof(struct PlayerRecords), a);
- sub_80BFD44(unk_2008000.tvShows, sizeof(struct PlayerRecords), a);
+ sub_80BFD44((u8 *)unk_2008000.tvShows, sizeof(struct PlayerRecords), a);
sub_80C0514(unk_2008000.filler1004, sizeof(struct PlayerRecords), a);
sub_80B9B1C(unk_2008000.filler1044, sizeof(struct PlayerRecords), a);
//UB: Too many arguments for function "sub_80FA4E4"
diff --git a/src/tv.c b/src/tv.c
index a5a4690a2..665949feb 100644
--- a/src/tv.c
+++ b/src/tv.c
@@ -910,6 +910,49 @@ void sub_80BFD20(void)
RemoveFieldObjectByLocalIdAndMap(5, gSaveBlock1.location.mapNum, gSaveBlock1.location.mapGroup);
}
+extern u8 ewram[];
+#define gUnknown_02007000 (*(struct ewramStruct_0207000 *)(ewram + 0x7000))
+
+struct ewramStruct_0207000 {
+ struct SaveTVStruct tvshows[4];
+};
+
+void sub_80BFE24(struct SaveTVStruct *arg0, struct SaveTVStruct *arg1, struct SaveTVStruct *arg2, struct SaveTVStruct *arg3);
+
+void sub_80C04A0(void);
+void sub_80C01D4(void);
+void sub_80C0408(void);
+
+void sub_80BFD44(u8 *arg0, u32 arg1, u8 arg2)
+{
+ u8 i;
+ struct ewramStruct_0207000 *ewramTVShows;
+ for (i=0; i<4; i++) {
+ memcpy(&gUnknown_02007000.tvshows[i], &arg0[i * arg1], sizeof(struct SaveTVStruct));
+ }
+ ewramTVShows = &gUnknown_02007000;
+ switch (arg2) {
+ case 0:
+ sub_80BFE24(&gSaveBlock1.tvShows, &ewramTVShows->tvshows[1], &ewramTVShows->tvshows[2], &ewramTVShows->tvshows[3]);
+ break;
+ case 1:
+ sub_80BFE24(&ewramTVShows->tvshows[0], &gSaveBlock1.tvShows, &ewramTVShows->tvshows[2], &ewramTVShows->tvshows[3]);
+ break;
+ case 2:
+ sub_80BFE24(&ewramTVShows->tvshows[0], &ewramTVShows->tvshows[1], &gSaveBlock1.tvShows, &ewramTVShows->tvshows[3]);
+ break;
+ case 3:
+ sub_80BFE24(&ewramTVShows->tvshows[0], &ewramTVShows->tvshows[1], &ewramTVShows->tvshows[2], &gSaveBlock1.tvShows);
+ break;
+ }
+ sub_80BF588(gSaveBlock1.tvShows.shows);
+ sub_80C04A0();
+ sub_80BF588(gSaveBlock1.tvShows.shows);
+ sub_80C01D4();
+ sub_80C0408();
+}
+
+
asm(".section .text_c");
void DoTVShowPokemonNewsMassOutbreak(void)