DoTVShowPokemonFanClubOpinions

This commit is contained in:
PikalaxALT
2017-05-19 12:05:04 -04:00
parent 63f05cfc7c
commit b0925c52d7
4 changed files with 46 additions and 121 deletions
-110
View File
@@ -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.
+2 -2
View File
@@ -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];
+2 -2
View File
@@ -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
+42 -7
View File
@@ -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;