diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2017-05-18 13:38:20 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2017-05-18 13:38:20 -0400 |
commit | b97e078c6e84cf6cf5fe7539e4dcc2d24de494c8 (patch) | |
tree | 4a2f4f4c4a4677de93da22392729c5332499d3dc /src | |
parent | 095d071cab1950f404f7fb5b6c0ff04ccc6c37f2 (diff) |
sub_80BFD44
Diffstat (limited to 'src')
-rw-r--r-- | src/record_mixing.c | 2 | ||||
-rw-r--r-- | src/tv.c | 43 |
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" @@ -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) |