summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2017-05-19 17:40:50 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2017-05-19 17:40:50 -0400
commitf5195f6462e54c9bf4c4035129a48c76dd15c0cb (patch)
treef83cb765e2a5dfd9452106a255c8881f50382e75
parentf8c731037ecf076d5ea6374fd7f953d062425852 (diff)
DoTVShow (back to swiss cheese)
-rw-r--r--asm/tv.s121
-rw-r--r--include/tv.h17
-rw-r--r--ld_script.txt2
-rw-r--r--src/tv.c70
4 files changed, 80 insertions, 130 deletions
diff --git a/asm/tv.s b/asm/tv.s
index a7121167f..93c90ff92 100644
--- a/asm/tv.s
+++ b/asm/tv.s
@@ -2718,126 +2718,7 @@ _080C07BC: .4byte gSaveBlock1
_080C07C0: .4byte 0x00002abd
thumb_func_end sub_80C0788
- thumb_func_start DoTVShow
-DoTVShow: @ 80C07C4
- push {lr}
- ldr r2, _080C07F8 @ =gSaveBlock1
- ldr r0, _080C07FC @ =gSpecialVar_0x8004
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r2
- ldr r2, _080C0800 @ =0x00002739
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _080C07E0
- b _080C08F8
-_080C07E0:
- subs r2, 0x1
- adds r0, r1, r2
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r0, 0x28
- bls _080C07EE
- b _080C08F8
-_080C07EE:
- lsls r0, 2
- ldr r1, _080C0804 @ =_080C0808
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C07F8: .4byte gSaveBlock1
-_080C07FC: .4byte gSpecialVar_0x8004
-_080C0800: .4byte 0x00002739
-_080C0804: .4byte _080C0808
- .align 2, 0
-_080C0808:
- .4byte _080C08AC
- .4byte _080C08B2
- .4byte _080C08B8
- .4byte _080C08BE
- .4byte _080C08E2
- .4byte _080C08CA
- .4byte _080C08D0
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08D6
- .4byte _080C08DC
- .4byte _080C08E8
- .4byte _080C08EE
- .4byte _080C08F4
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08C4
-_080C08AC:
- bl DoTVShowPokemonFanClubLetter
- b _080C08F8
-_080C08B2:
- bl DoTVShowRecentHappenings
- b _080C08F8
-_080C08B8:
- bl DoTVShowPokemonFanClubOpinions
- b _080C08F8
-_080C08BE:
- bl nullsub_22
- b _080C08F8
-_080C08C4:
- bl DoTVShowPokemonNewsMassOutbreak
- b _080C08F8
-_080C08CA:
- bl DoTVShowBravoTrainerPokemonProfile
- b _080C08F8
-_080C08D0:
- bl DoTVShowBravoTrainerBattleTowerProfile
- b _080C08F8
-_080C08D6:
- bl DoTVShowPokemonTodaySuccessfulCapture
- b _080C08F8
-_080C08DC:
- bl DoTVShowTodaysSmartShopper
- b _080C08F8
-_080C08E2:
- bl DoTVShowTheNameRaterShow
- b _080C08F8
-_080C08E8:
- bl DoTVShowPokemonTodayFailedCapture
- b _080C08F8
-_080C08EE:
- bl DoTVShowPokemonAngler
- b _080C08F8
-_080C08F4:
- bl DoTVShowTheWorldOfMasters
-_080C08F8:
- pop {r0}
- bx r0
- thumb_func_end DoTVShow
+.section .dotvshow
thumb_func_start TVShowConvertInternationalString
TVShowConvertInternationalString: @ 80C08FC
diff --git a/include/tv.h b/include/tv.h
index c4aafebb5..b1ed61a82 100644
--- a/include/tv.h
+++ b/include/tv.h
@@ -7,12 +7,17 @@
enum
{
TVSHOW_FAN_CLUB_LETTER = 1,
- TVSHOW_RECENT_HAPPENINGS = 2,
- TVSHOW_PKMN_FAN_CLUB_OPINIONS = 3,
- TVSHOW_UNKN_SHOWTYPE_04 = 4,
- TVSHOW_NAME_RATER_SHOW = 5,
- TVSHOW_FISHING_ADVICE = 6,
- TVSHOW_WORLD_OF_MASTERS = 7,
+ TVSHOW_RECENT_HAPPENINGS,
+ TVSHOW_PKMN_FAN_CLUB_OPINIONS,
+ TVSHOW_UNKN_SHOWTYPE_04,
+ TVSHOW_NAME_RATER_SHOW,
+ TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE,
+ TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE,
+ TVSHOW_POKEMON_TODAY_CAUGHT = 21,
+ TVSHOW_SMART_SHOPPER,
+ TVSHOW_POKEMON_TODAY_FAILED,
+ TVSHOW_FISHING_ADVICE,
+ TVSHOW_WORLD_OF_MASTERS,
TVSHOW_MASS_OUTBREAK = 41,
};
#endif //POKERUBY_TV_H
diff --git a/ld_script.txt b/ld_script.txt
index 4f0203800..be5c78907 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -180,6 +180,8 @@ SECTIONS {
asm/tv.o(.text);
src/tv.o(.text_a);
asm/tv.o(.text_80BE8EC);
+ src/tv.o(.dotvshow);
+ asm/tv.o(.dotvshow);
src/tv.o(.text_c);
asm/contest_link_80C2020.o(.text);
src/script_pokemon_util_80C4BF0.o(.text);
diff --git a/src/tv.c b/src/tv.c
index 064360fba..71e13e9ce 100644
--- a/src/tv.c
+++ b/src/tv.c
@@ -850,10 +850,10 @@ void sub_80BF2C4(void)
case TVSHOW_NAME_RATER_SHOW:
sub_80BF478();
break;
- case TVSHOW_FISHING_ADVICE:
+ case TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE:
sub_80BF484();
break;
- case TVSHOW_WORLD_OF_MASTERS:
+ case TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE:
sub_80BF4BC();
break;
}
@@ -906,7 +906,7 @@ void sub_80BF478(void)
void sub_80BF484(void)
{
TVShow *show;
- sub_80BF25C(TVSHOW_FISHING_ADVICE);
+ sub_80BF25C(TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE);
if (gScriptResult == 0) {
show = &gSaveBlock1.tvShows.shows[gUnknown_03005D38.var0];
sub_80EB6FC(show->recentHappenings.var04, 2); // wrong struct ident, fix later
@@ -916,7 +916,7 @@ void sub_80BF484(void)
void sub_80BF4BC(void)
{
TVShow *show;
- sub_80BF25C(TVSHOW_WORLD_OF_MASTERS);
+ sub_80BF25C(TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE);
if (gScriptResult == 0) {
show = &gSaveBlock1.tvShows.shows[gUnknown_03005D38.var0];
sub_80EB6FC(show->fanclubOpinions.var18, 1); // wrong struct ident, fix later
@@ -1621,6 +1621,68 @@ _080BFF58:\n\
}
#endif
+asm(".section .dotvshow\n");
+
+void DoTVShowPokemonFanClubLetter(void);
+void DoTVShowRecentHappenings(void);
+void DoTVShowPokemonFanClubOpinions(void);
+void nullsub_22(void);
+void DoTVShowPokemonNewsMassOutbreak(void);
+void DoTVShowBravoTrainerPokemonProfile(void);
+void DoTVShowBravoTrainerBattleTowerProfile(void);
+void DoTVShowPokemonTodaySuccessfulCapture(void);
+void DoTVShowTodaysSmartShopper(void);
+void DoTVShowTheNameRaterShow(void);
+void DoTVShowPokemonTodayFailedCapture(void);
+void DoTVShowPokemonAngler(void);
+void DoTVShowTheWorldOfMasters(void);
+
+void DoTVShow(void) {
+ if (gSaveBlock1.tvShows.shows[gSpecialVar_0x8004].common.var01 != 0) {
+ switch (gSaveBlock1.tvShows.shows[gSpecialVar_0x8004].common.var00) {
+ case TVSHOW_FAN_CLUB_LETTER:
+ DoTVShowPokemonFanClubLetter();
+ break;
+ case TVSHOW_RECENT_HAPPENINGS:
+ DoTVShowRecentHappenings();
+ break;
+ case TVSHOW_PKMN_FAN_CLUB_OPINIONS:
+ DoTVShowPokemonFanClubOpinions();
+ break;
+ case TVSHOW_UNKN_SHOWTYPE_04:
+ nullsub_22();
+ break;
+ case TVSHOW_MASS_OUTBREAK:
+ DoTVShowPokemonNewsMassOutbreak();
+ break;
+ case TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE:
+ DoTVShowBravoTrainerPokemonProfile();
+ break;
+ case TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE:
+ DoTVShowBravoTrainerBattleTowerProfile();
+ break;
+ case TVSHOW_POKEMON_TODAY_CAUGHT:
+ DoTVShowPokemonTodaySuccessfulCapture();
+ break;
+ case TVSHOW_SMART_SHOPPER:
+ DoTVShowTodaysSmartShopper();
+ break;
+ case TVSHOW_NAME_RATER_SHOW:
+ DoTVShowTheNameRaterShow();
+ break;
+ case TVSHOW_POKEMON_TODAY_FAILED:
+ DoTVShowPokemonTodayFailedCapture();
+ break;
+ case TVSHOW_FISHING_ADVICE:
+ DoTVShowPokemonAngler();
+ break;
+ case TVSHOW_WORLD_OF_MASTERS:
+ DoTVShowTheWorldOfMasters();
+ break;
+ }
+ }
+}
+
asm(".section .text_c");
void TVShowConvertInternationalString(u8 *, u8 *, u8);