summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xasm/tv.s276
-rw-r--r--include/global.h2
-rwxr-xr-xsrc/tv.c85
3 files changed, 84 insertions, 279 deletions
diff --git a/asm/tv.s b/asm/tv.s
index 5fe5371a9..0fb78ff2f 100755
--- a/asm/tv.s
+++ b/asm/tv.s
@@ -7,282 +7,6 @@
.text
- thumb_func_start DoTVShowBravoTrainerPokemonProfile
-DoTVShowBravoTrainerPokemonProfile: @ 80C091C
- push {r4,r5,lr}
- ldr r0, _080C0948 @ =gSpecialVar_0x8004
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080C094C @ =gSaveBlock1 + 0x2738
- adds r4, r0, r1
- ldr r1, _080C0950 @ =gScriptResult
- movs r0, 0
- strh r0, [r1]
- ldr r0, _080C0954 @ =gUnknown_020387E8
- ldrb r5, [r0]
- cmp r5, 0x8
- bls _080C093C
- b _080C0B7A
-_080C093C:
- lsls r0, r5, 2
- ldr r1, _080C0958 @ =_080C095C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C0948: .4byte gSpecialVar_0x8004
-_080C094C: .4byte gSaveBlock1 + 0x2738
-_080C0950: .4byte gScriptResult
-_080C0954: .4byte gUnknown_020387E8
-_080C0958: .4byte _080C095C
- .align 2, 0
-_080C095C:
- .4byte _080C0980
- .4byte _080C09D8
- .4byte _080C0A10
- .4byte _080C0A40
- .4byte _080C0A74
- .4byte _080C0AA8
- .4byte _080C0AEC
- .4byte _080C0B34
- .4byte _080C0B64
-_080C0980:
- ldr r0, _080C09C0 @ =gStringVar1
- adds r1, r4, 0
- adds r1, 0x16
- ldrb r2, [r4, 0x1E]
- bl TVShowConvertInternationalString
- ldrb r1, [r4, 0x13]
- lsls r1, 29
- lsrs r1, 29
- movs r0, 0x1
- bl CopyContestCategoryToStringVar
- ldrb r1, [r4, 0x13]
- lsls r1, 27
- lsrs r1, 30
- movs r0, 0x2
- bl sub_80BEF10
- ldrh r1, [r4, 0x2]
- movs r0, 0xB
- muls r0, r1
- ldr r1, _080C09C4 @ =gSpeciesNames
- adds r0, r1
- adds r1, r4, 0
- adds r1, 0x8
- bl StringCompareWithoutExtCtrlCodes
- cmp r0, 0
- bne _080C09CC
- ldr r1, _080C09C8 @ =gUnknown_020387E8
- movs r0, 0x8
- b _080C0B78
- .align 2, 0
-_080C09C0: .4byte gStringVar1
-_080C09C4: .4byte gSpeciesNames
-_080C09C8: .4byte gUnknown_020387E8
-_080C09CC:
- ldr r1, _080C09D4 @ =gUnknown_020387E8
- movs r0, 0x1
- b _080C0B78
- .align 2, 0
-_080C09D4: .4byte gUnknown_020387E8
-_080C09D8:
- ldr r0, _080C0A04 @ =gStringVar1
- ldrh r2, [r4, 0x2]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C0A08 @ =gSpeciesNames
- adds r1, r2
- bl StringCopy
- ldr r0, _080C0A0C @ =gStringVar2
- adds r1, r4, 0
- adds r1, 0x8
- ldrb r2, [r4, 0x1F]
- bl TVShowConvertInternationalString
- ldrb r1, [r4, 0x13]
- lsls r1, 29
- lsrs r1, 29
- movs r0, 0x2
- bl CopyContestCategoryToStringVar
- b _080C0B74
- .align 2, 0
-_080C0A04: .4byte gStringVar1
-_080C0A08: .4byte gSpeciesNames
-_080C0A0C: .4byte gStringVar2
-_080C0A10:
- ldr r0, _080C0A2C @ =gStringVar1
- adds r1, r4, 0
- adds r1, 0x16
- ldrb r2, [r4, 0x1E]
- bl TVShowConvertInternationalString
- ldrb r1, [r4, 0x13]
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- bne _080C0A34
- ldr r1, _080C0A30 @ =gUnknown_020387E8
- movs r0, 0x3
- b _080C0B78
- .align 2, 0
-_080C0A2C: .4byte gStringVar1
-_080C0A30: .4byte gUnknown_020387E8
-_080C0A34:
- ldr r1, _080C0A3C @ =gUnknown_020387E8
- movs r0, 0x4
- b _080C0B78
- .align 2, 0
-_080C0A3C: .4byte gUnknown_020387E8
-_080C0A40:
- ldr r0, _080C0A68 @ =gStringVar1
- adds r1, r4, 0
- adds r1, 0x16
- ldrb r2, [r4, 0x1E]
- bl TVShowConvertInternationalString
- ldr r0, _080C0A6C @ =gStringVar2
- ldrh r1, [r4, 0x4]
- bl sub_80EB3FC
- ldrb r1, [r4, 0x13]
- lsls r1, 25
- lsrs r1, 30
- adds r1, 0x1
- movs r0, 0x2
- bl sub_80BF088
- ldr r1, _080C0A70 @ =gUnknown_020387E8
- movs r0, 0x5
- b _080C0B78
- .align 2, 0
-_080C0A68: .4byte gStringVar1
-_080C0A6C: .4byte gStringVar2
-_080C0A70: .4byte gUnknown_020387E8
-_080C0A74:
- ldr r0, _080C0A9C @ =gStringVar1
- adds r1, r4, 0
- adds r1, 0x16
- ldrb r2, [r4, 0x1E]
- bl TVShowConvertInternationalString
- ldr r0, _080C0AA0 @ =gStringVar2
- ldrh r1, [r4, 0x4]
- bl sub_80EB3FC
- ldrb r1, [r4, 0x13]
- lsls r1, 25
- lsrs r1, 30
- adds r1, 0x1
- movs r0, 0x2
- bl sub_80BF088
- ldr r1, _080C0AA4 @ =gUnknown_020387E8
- movs r0, 0x5
- b _080C0B78
- .align 2, 0
-_080C0A9C: .4byte gStringVar1
-_080C0AA0: .4byte gStringVar2
-_080C0AA4: .4byte gUnknown_020387E8
-_080C0AA8:
- ldr r0, _080C0AD4 @ =gStringVar1
- adds r1, r4, 0
- adds r1, 0x16
- ldrb r2, [r4, 0x1E]
- bl TVShowConvertInternationalString
- ldrb r1, [r4, 0x13]
- lsls r1, 29
- lsrs r1, 29
- movs r0, 0x1
- bl CopyContestCategoryToStringVar
- ldr r0, _080C0AD8 @ =gStringVar3
- ldrh r1, [r4, 0x6]
- bl sub_80EB3FC
- ldrh r0, [r4, 0x14]
- cmp r0, 0
- beq _080C0AE0
- ldr r1, _080C0ADC @ =gUnknown_020387E8
- movs r0, 0x6
- b _080C0B78
- .align 2, 0
-_080C0AD4: .4byte gStringVar1
-_080C0AD8: .4byte gStringVar3
-_080C0ADC: .4byte gUnknown_020387E8
-_080C0AE0:
- ldr r1, _080C0AE8 @ =gUnknown_020387E8
- movs r0, 0x7
- b _080C0B78
- .align 2, 0
-_080C0AE8: .4byte gUnknown_020387E8
-_080C0AEC:
- ldr r0, _080C0B1C @ =gStringVar1
- ldrh r2, [r4, 0x2]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C0B20 @ =gSpeciesNames
- adds r1, r2
- bl StringCopy
- ldr r0, _080C0B24 @ =gStringVar2
- ldrh r2, [r4, 0x14]
- movs r1, 0xD
- muls r1, r2
- ldr r2, _080C0B28 @ =gMoveNames
- adds r1, r2
- bl StringCopy
- ldr r0, _080C0B2C @ =gStringVar3
- ldrh r1, [r4, 0x6]
- bl sub_80EB3FC
- ldr r1, _080C0B30 @ =gUnknown_020387E8
- movs r0, 0x7
- b _080C0B78
- .align 2, 0
-_080C0B1C: .4byte gStringVar1
-_080C0B20: .4byte gSpeciesNames
-_080C0B24: .4byte gStringVar2
-_080C0B28: .4byte gMoveNames
-_080C0B2C: .4byte gStringVar3
-_080C0B30: .4byte gUnknown_020387E8
-_080C0B34:
- ldr r0, _080C0B58 @ =gStringVar1
- adds r1, r4, 0
- adds r1, 0x16
- ldrb r2, [r4, 0x1E]
- bl TVShowConvertInternationalString
- ldr r0, _080C0B5C @ =gStringVar2
- ldrh r2, [r4, 0x2]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C0B60 @ =gSpeciesNames
- adds r1, r2
- bl StringCopy
- bl TVShowDone
- b _080C0B7A
- .align 2, 0
-_080C0B58: .4byte gStringVar1
-_080C0B5C: .4byte gStringVar2
-_080C0B60: .4byte gSpeciesNames
-_080C0B64:
- ldr r0, _080C0B8C @ =gStringVar1
- ldrh r2, [r4, 0x2]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C0B90 @ =gSpeciesNames
- adds r1, r2
- bl StringCopy
-_080C0B74:
- ldr r1, _080C0B94 @ =gUnknown_020387E8
- movs r0, 0x2
-_080C0B78:
- strb r0, [r1]
-_080C0B7A:
- ldr r0, _080C0B98 @ =gTVBravoTrainerTextGroup
- lsls r1, r5, 2
- adds r1, r0
- ldr r0, [r1]
- bl ShowFieldMessage
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C0B8C: .4byte gStringVar1
-_080C0B90: .4byte gSpeciesNames
-_080C0B94: .4byte gUnknown_020387E8
-_080C0B98: .4byte gTVBravoTrainerTextGroup
- thumb_func_end DoTVShowBravoTrainerPokemonProfile
-
thumb_func_start DoTVShowBravoTrainerBattleTowerProfile
DoTVShowBravoTrainerBattleTowerProfile: @ 80C0B9C
push {r4,r5,lr}
diff --git a/include/global.h b/include/global.h
index 0257e4110..2fad98eb4 100644
--- a/include/global.h
+++ b/include/global.h
@@ -342,7 +342,7 @@ struct TVShowBravoTrainerPokemonProfiles {
/*0x08*/ u8 pokemonNickname[11];
/*0x13*/ u8 contestCategory:3;
/*0x13*/ u8 contestRank:2;
- /*0x13*/ u8 var13_5:2;
+ /*0x13*/ u8 contestResult:2;
/*0x13*/ u8 var13_7:1;
/*0x14*/ u16 var14;
/*0x16*/ u8 playerName[8];
diff --git a/src/tv.c b/src/tv.c
index f06f93acf..6b43a16d0 100755
--- a/src/tv.c
+++ b/src/tv.c
@@ -808,7 +808,7 @@ void sub_80BE188(void) {
show->bravoTrainer.contestCategory = buffer->bravoTrainer.contestCategory;
show->bravoTrainer.contestRank = buffer->bravoTrainer.contestRank;
show->bravoTrainer.var14 = buffer->bravoTrainer.var14;
- show->bravoTrainer.var13_5 = buffer->bravoTrainer.var13_5;
+ show->bravoTrainer.contestResult = buffer->bravoTrainer.contestResult;
show->bravoTrainer.contestCategory = buffer->bravoTrainer.contestCategory;
sub_80BE160(show);
show->bravoTrainer.language = GAME_LANGUAGE;
@@ -834,7 +834,7 @@ void sub_80BE284(u8 a0) {
show = &gSaveBlock1.tvShows[24];
gUnknown_03005D38.var0 = sub_80BF720(gSaveBlock1.tvShows);
if (gUnknown_03005D38.var0 != -1) {
- show->bravoTrainer.var13_5 = a0;
+ show->bravoTrainer.contestResult = a0;
show->bravoTrainer.contestCategory = gScriptContestCategory;
show->bravoTrainer.contestRank = gScriptContestRank;
show->bravoTrainer.species = GetMonData(&gPlayerParty[gUnknown_02038694], MON_DATA_SPECIES, NULL);
@@ -2995,6 +2995,87 @@ void TVShowConvertInternationalString(u8 *dest, u8 *src, u8 language) {
}
}
+void DoTVShowBravoTrainerPokemonProfile(void)
+{
+ TVShow *tvShow;
+ u8 switchval;
+
+ tvShow = &gSaveBlock1.tvShows[gSpecialVar_0x8004];
+ gScriptResult = 0;
+ switchval = gUnknown_020387E8;
+ switch(switchval)
+ {
+ case 0:
+ TVShowConvertInternationalString(gStringVar1, tvShow->bravoTrainer.playerName, tvShow->bravoTrainer.language);
+ CopyContestCategoryToStringVar(1, tvShow->bravoTrainer.contestCategory);
+ sub_80BEF10(2, tvShow->bravoTrainer.contestRank);
+ if (!StringCompareWithoutExtCtrlCodes(gSpeciesNames[tvShow->bravoTrainer.species], tvShow->bravoTrainer.pokemonNickname))
+ {
+ gUnknown_020387E8 = 8;
+ } else
+ {
+ gUnknown_020387E8 = 1;
+ }
+ break;
+ case 1:
+ StringCopy(gStringVar1, gSpeciesNames[tvShow->bravoTrainer.species]);
+ TVShowConvertInternationalString(gStringVar2, tvShow->bravoTrainer.pokemonNickname, tvShow->bravoTrainer.var1f);
+ CopyContestCategoryToStringVar(2, tvShow->bravoTrainer.contestCategory);
+ gUnknown_020387E8 = 2;
+ break;
+ case 2:
+ TVShowConvertInternationalString(gStringVar1, tvShow->bravoTrainer.playerName, tvShow->bravoTrainer.language);
+ if (tvShow->bravoTrainer.contestResult == 0) // placed first
+ {
+ gUnknown_020387E8 = 3;
+ } else
+ {
+ gUnknown_020387E8 = 4;
+ }
+ break;
+ case 3:
+ TVShowConvertInternationalString(gStringVar1, tvShow->bravoTrainer.playerName, tvShow->bravoTrainer.language);
+ sub_80EB3FC(gStringVar2, tvShow->bravoTrainer.var04[0]);
+ sub_80BF088(2, tvShow->bravoTrainer.contestResult + 1);
+ gUnknown_020387E8 = 5;
+ break;
+ case 4:
+ TVShowConvertInternationalString(gStringVar1, tvShow->bravoTrainer.playerName, tvShow->bravoTrainer.language);
+ sub_80EB3FC(gStringVar2, tvShow->bravoTrainer.var04[0]);
+ sub_80BF088(2, tvShow->bravoTrainer.contestResult + 1);
+ gUnknown_020387E8 = 5;
+ break;
+ case 5:
+ TVShowConvertInternationalString(gStringVar1, tvShow->bravoTrainer.playerName, tvShow->bravoTrainer.language);
+ CopyContestCategoryToStringVar(1, tvShow->bravoTrainer.contestCategory);
+ sub_80EB3FC(gStringVar3, tvShow->bravoTrainer.var04[1]);
+ if (tvShow->bravoTrainer.var14)
+ {
+ gUnknown_020387E8 = 6;
+ } else
+ {
+ gUnknown_020387E8 = 7;
+ }
+ break;
+ case 6:
+ StringCopy(gStringVar1, gSpeciesNames[tvShow->bravoTrainer.species]);
+ StringCopy(gStringVar2, gMoveNames[tvShow->bravoTrainer.var14]);
+ sub_80EB3FC(gStringVar3, tvShow->bravoTrainer.var04[1]);
+ gUnknown_020387E8 = 7;
+ break;
+ case 7:
+ TVShowConvertInternationalString(gStringVar1, tvShow->bravoTrainer.playerName, tvShow->bravoTrainer.language);
+ StringCopy(gStringVar2, gSpeciesNames[tvShow->bravoTrainer.species]);
+ TVShowDone();
+ break;
+ case 8:
+ StringCopy(gStringVar1, gSpeciesNames[tvShow->bravoTrainer.species]);
+ gUnknown_020387E8 = 2;
+ break;
+ }
+ ShowFieldMessage(gTVBravoTrainerTextGroup[switchval]);
+}
+
asm(".section .text_c");
void TVShowConvertInternationalString(u8 *, u8 *, u8);