summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2017-05-19 12:05:04 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2017-05-19 12:05:04 -0400
commitb0925c52d7294e1f2ce2db2c8de08f8df2a8bd64 (patch)
tree36973b48e510adfb274e5387e6a593e6ec00617e
parent63f05cfc7c3634545a9230b0ce41259bcc61aef0 (diff)
DoTVShowPokemonFanClubOpinions
-rw-r--r--asm/tv.s110
-rw-r--r--include/global.h4
-rw-r--r--include/tv.h4
-rw-r--r--src/tv.c49
4 files changed, 46 insertions, 121 deletions
diff --git a/asm/tv.s b/asm/tv.s
index cb9b6d0d5..ba6802c68 100644
--- a/asm/tv.s
+++ b/asm/tv.s
@@ -4815,114 +4815,4 @@ _080C1AFC:
_080C1B04: .4byte gTVRecentHappeningsTextGroup
thumb_func_end DoTVShowRecentHappenings
- thumb_func_start DoTVShowPokemonFanClubOpinions
-DoTVShowPokemonFanClubOpinions: @ 80C1B08
- push {r4-r6,lr}
- ldr r0, _080C1B30 @ =gSpecialVar_0x8004
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080C1B34 @ =gSaveBlock1 + 0x2738
- adds r4, r0, r1
- ldr r1, _080C1B38 @ =gScriptResult
- movs r0, 0
- strh r0, [r1]
- ldr r6, _080C1B3C @ =gUnknown_020387E8
- ldrb r5, [r6]
- cmp r5, 0x3
- bgt _080C1B40
- cmp r5, 0x1
- bge _080C1B88
- cmp r5, 0
- beq _080C1B46
- b _080C1BD6
- .align 2, 0
-_080C1B30: .4byte gSpecialVar_0x8004
-_080C1B34: .4byte gSaveBlock1 + 0x2738
-_080C1B38: .4byte gScriptResult
-_080C1B3C: .4byte gUnknown_020387E8
-_080C1B40:
- cmp r5, 0x4
- beq _080C1BC0
- b _080C1BD6
-_080C1B46:
- ldr r0, _080C1B78 @ =gStringVar1
- adds r1, r4, 0x5
- ldrb r2, [r4, 0xD]
- bl TVShowConvertInternationalString
- ldr r0, _080C1B7C @ =gStringVar2
- ldrh r2, [r4, 0x2]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C1B80 @ =gSpeciesNames
- adds r1, r2
- bl StringCopy
- ldr r0, _080C1B84 @ =gStringVar3
- adds r1, r4, 0
- adds r1, 0x10
- ldrb r2, [r4, 0xE]
- bl TVShowConvertInternationalString
- ldrb r0, [r4, 0x4]
- lsrs r0, 4
- adds r0, 0x1
- strb r0, [r6]
- b _080C1BD6
- .align 2, 0
-_080C1B78: .4byte gStringVar1
-_080C1B7C: .4byte gStringVar2
-_080C1B80: .4byte gSpeciesNames
-_080C1B84: .4byte gStringVar3
-_080C1B88:
- ldr r0, _080C1BB0 @ =gStringVar1
- adds r1, r4, 0x5
- ldrb r2, [r4, 0xD]
- bl TVShowConvertInternationalString
- ldr r0, _080C1BB4 @ =gStringVar2
- ldrh r2, [r4, 0x2]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C1BB8 @ =gSpeciesNames
- adds r1, r2
- bl StringCopy
- ldr r0, _080C1BBC @ =gStringVar3
- ldrh r1, [r4, 0x1C]
- bl sub_80EB3FC
- movs r0, 0x4
- strb r0, [r6]
- b _080C1BD6
- .align 2, 0
-_080C1BB0: .4byte gStringVar1
-_080C1BB4: .4byte gStringVar2
-_080C1BB8: .4byte gSpeciesNames
-_080C1BBC: .4byte gStringVar3
-_080C1BC0:
- ldr r0, _080C1BE8 @ =gStringVar1
- adds r1, r4, 0x5
- ldrb r2, [r4, 0xD]
- bl TVShowConvertInternationalString
- ldr r0, _080C1BEC @ =gStringVar3
- ldrh r1, [r4, 0x1E]
- bl sub_80EB3FC
- bl TVShowDone
-_080C1BD6:
- ldr r0, _080C1BF0 @ =gTVFanClubOpinionsTextGroup
- lsls r1, r5, 2
- adds r1, r0
- ldr r0, [r1]
- bl ShowFieldMessage
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C1BE8: .4byte gStringVar1
-_080C1BEC: .4byte gStringVar3
-_080C1BF0: .4byte gTVFanClubOpinionsTextGroup
- thumb_func_end DoTVShowPokemonFanClubOpinions
-
- thumb_func_start nullsub_22
-nullsub_22: @ 80C1BF4
- bx lr
- thumb_func_end nullsub_22
-
.align 2, 0 @ Don't pad with nop.
diff --git a/include/global.h b/include/global.h
index cd7bdcdb3..836ba3880 100644
--- a/include/global.h
+++ b/include/global.h
@@ -224,8 +224,8 @@ struct TVShowFanclubOpinions {
/*0x02*/ u16 var02;
/*0x04*/ u8 var04A:4;
u8 var04B:4;
- /*0x05*/ u8 var05[8];
- /*0x0D*/ u8 var0D;
+ /*0x05*/ u8 playerName[8];
+ /*0x0D*/ u8 language;
/*0x0E*/ u8 var0E;
/*0x0F*/ u8 var0F;
/*0x10*/ u8 var10[8];
diff --git a/include/tv.h b/include/tv.h
index f6dd7a007..c4aafebb5 100644
--- a/include/tv.h
+++ b/include/tv.h
@@ -11,8 +11,8 @@ enum
TVSHOW_PKMN_FAN_CLUB_OPINIONS = 3,
TVSHOW_UNKN_SHOWTYPE_04 = 4,
TVSHOW_NAME_RATER_SHOW = 5,
- TVSHOW_UNK_SHOWTYPE_06 = 6,
- TVSHOW_UNK_SHOWTYPE_07 = 7,
+ TVSHOW_FISHING_ADVICE = 6,
+ TVSHOW_WORLD_OF_MASTERS = 7,
TVSHOW_MASS_OUTBREAK = 41,
};
#endif //POKERUBY_TV_H
diff --git a/src/tv.c b/src/tv.c
index a371e17f7..b237640ed 100644
--- a/src/tv.c
+++ b/src/tv.c
@@ -51,6 +51,7 @@ extern struct UnkTvStruct gUnknown_03005D38;
extern u8 gSpeciesNames[][11];
extern u8 gMoveNames[][13];
+extern u8 *gTVFanClubOpinionsTextGroup[];
extern u8 *gTVPokemonOutbreakTextGroup[];
extern u8 *gTVGabbyAndTyTextGroup[];
extern u8 *gTVFishingGuruAdviceTextGroup[];
@@ -208,13 +209,13 @@ void sub_80BE6A0(void)
tvShow->fanclubOpinions.var04B = gSpecialVar_0x8007;
- StringCopy(tvShow->fanclubOpinions.var05, gSaveBlock2.playerName);
+ StringCopy(tvShow->fanclubOpinions.playerName, gSaveBlock2.playerName);
GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_NICKNAME, tvShow->fanclubOpinions.var10);
tvShow->fanclubOpinions.var02 = GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_SPECIES, NULL);
sub_80BE160(tvShow);
- tvShow->fanclubOpinions.var0D = GAME_LANGUAGE;
+ tvShow->fanclubOpinions.language = GAME_LANGUAGE;
tvShow->fanclubOpinions.var0E = sub_80BDEAC(tvShow->fanclubOpinions.var10);
StripExtCtrlCodes(tvShow->fanclubOpinions.var10);
}
@@ -839,10 +840,10 @@ void sub_80BF2C4(void)
case TVSHOW_NAME_RATER_SHOW:
sub_80BF478();
break;
- case TVSHOW_UNK_SHOWTYPE_06:
+ case TVSHOW_FISHING_ADVICE:
sub_80BF484();
break;
- case TVSHOW_UNK_SHOWTYPE_07:
+ case TVSHOW_WORLD_OF_MASTERS:
sub_80BF4BC();
break;
}
@@ -895,7 +896,7 @@ void sub_80BF478(void)
void sub_80BF484(void)
{
TVShow *show;
- sub_80BF25C(TVSHOW_UNK_SHOWTYPE_06);
+ sub_80BF25C(TVSHOW_FISHING_ADVICE);
if (gScriptResult == 0) {
show = &gSaveBlock1.tvShows.shows[gUnknown_03005D38.var0];
sub_80EB6FC(show->recentHappenings.var04, 2); // wrong struct ident, fix later
@@ -905,7 +906,7 @@ void sub_80BF484(void)
void sub_80BF4BC(void)
{
TVShow *show;
- sub_80BF25C(TVSHOW_UNK_SHOWTYPE_07);
+ sub_80BF25C(TVSHOW_WORLD_OF_MASTERS);
if (gScriptResult == 0) {
show = &gSaveBlock1.tvShows.shows[gUnknown_03005D38.var0];
sub_80EB6FC(show->fanclubOpinions.var18, 1); // wrong struct ident, fix later
@@ -1447,7 +1448,7 @@ __attribute__((naked))
void sub_80BFE24(struct SaveTVStruct *arg0, struct SaveTVStruct *arg1, struct SaveTVStruct *arg2, struct SaveTVStruct *arg3)
{
asm(".syntax unified\n\
- push {r4-r7,lr}\n\
+ push {r4-r7,lr}\n\
mov r7, r10\n\
mov r6, r9\n\
mov r5, r8\n\
@@ -1616,6 +1617,40 @@ void TVShowConvertInternationalString(u8 *, u8 *, u8);
void TakeTVShowInSearchOfTrainersOffTheAir(void);
+void DoTVShowPokemonFanClubOpinions(void) {
+ TVShow *tvShow;
+ u8 switchval;
+ tvShow = &gSaveBlock1.tvShows.shows[gSpecialVar_0x8004];
+ gScriptResult = 0;
+ switchval = gUnknown_020387E8;
+ switch (switchval) {
+ case 0:
+ TVShowConvertInternationalString(gStringVar1, tvShow->fanclubOpinions.playerName, tvShow->fanclubOpinions.language);
+ StringCopy(gStringVar2, gSpeciesNames[tvShow->fanclubOpinions.var02]);
+ TVShowConvertInternationalString(gStringVar3, tvShow->fanclubOpinions.var10, tvShow->fanclubOpinions.var0E);
+ gUnknown_020387E8 = tvShow->fanclubOpinions.var04B + 1;
+ break;
+ case 1:
+ case 2:
+ case 3:
+ TVShowConvertInternationalString(gStringVar1, tvShow->fanclubOpinions.playerName, tvShow->fanclubOpinions.language);
+ StringCopy(gStringVar2, gSpeciesNames[tvShow->fanclubOpinions.var02]);
+ sub_80EB3FC(gStringVar3, tvShow->fanclubOpinions.var1C[0]);
+ gUnknown_020387E8 = 4;
+ break;
+ case 4:
+ TVShowConvertInternationalString(gStringVar1, tvShow->fanclubOpinions.playerName, tvShow->fanclubOpinions.language);
+ sub_80EB3FC(gStringVar3, tvShow->fanclubOpinions.var1C[1]);
+ TVShowDone();
+ break;
+ }
+ ShowFieldMessage(gTVFanClubOpinionsTextGroup[switchval]);
+}
+
+void nullsub_22(void) {
+
+}
+
void DoTVShowPokemonNewsMassOutbreak(void)
{
TVShow *tvShow;