summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/tv.s157
-rw-r--r--include/global.h14
-rw-r--r--src/tv.c46
3 files changed, 60 insertions, 157 deletions
diff --git a/asm/tv.s b/asm/tv.s
index 89e286342..fdd25c332 100644
--- a/asm/tv.s
+++ b/asm/tv.s
@@ -4298,161 +4298,4 @@ _080C15DC:
_080C15F0: .4byte gTVPokemonTodayTextGroup
thumb_func_end DoTVShowPokemonTodaySuccessfulCapture
- thumb_func_start DoTVShowPokemonTodayFailedCapture
-DoTVShowPokemonTodayFailedCapture: @ 80C15F4
- push {r4,r5,lr}
- ldr r0, _080C1620 @ =gSpecialVar_0x8004
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080C1624 @ =gSaveBlock1 + 0x2738
- adds r4, r0, r1
- ldr r1, _080C1628 @ =gScriptResult
- movs r0, 0
- strh r0, [r1]
- ldr r0, _080C162C @ =gUnknown_020387E8
- ldrb r5, [r0]
- cmp r5, 0x6
- bls _080C1614
- b _080C173C
-_080C1614:
- lsls r0, r5, 2
- ldr r1, _080C1630 @ =_080C1634
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C1620: .4byte gSpecialVar_0x8004
-_080C1624: .4byte gSaveBlock1 + 0x2738
-_080C1628: .4byte gScriptResult
-_080C162C: .4byte gUnknown_020387E8
-_080C1630: .4byte _080C1634
- .align 2, 0
-_080C1634:
- .4byte _080C1650
- .4byte _080C1684
- .4byte _080C16D8
- .4byte _080C16D8
- .4byte _080C171C
- .4byte _080C171C
- .4byte _080C1738
-_080C1650:
- ldr r0, _080C1674 @ =gStringVar1
- adds r1, r4, 0
- adds r1, 0x13
- ldrb r2, [r4, 0x2]
- bl TVShowConvertInternationalString
- ldr r0, _080C1678 @ =gStringVar2
- ldrh r2, [r4, 0xC]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C167C @ =gSpeciesNames
- adds r1, r2
- bl StringCopy
- ldr r1, _080C1680 @ =gUnknown_020387E8
- movs r0, 0x1
- strb r0, [r1]
- b _080C173C
- .align 2, 0
-_080C1674: .4byte gStringVar1
-_080C1678: .4byte gStringVar2
-_080C167C: .4byte gSpeciesNames
-_080C1680: .4byte gUnknown_020387E8
-_080C1684:
- ldr r0, _080C16B8 @ =gStringVar1
- adds r1, r4, 0
- adds r1, 0x13
- ldrb r2, [r4, 0x2]
- bl TVShowConvertInternationalString
- ldr r0, _080C16BC @ =gStringVar2
- ldrb r1, [r4, 0x12]
- movs r2, 0
- bl sub_80FBFB4
- ldr r0, _080C16C0 @ =gStringVar3
- ldrh r2, [r4, 0xE]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C16C4 @ =gSpeciesNames
- adds r1, r2
- bl StringCopy
- ldrb r0, [r4, 0x11]
- cmp r0, 0x1
- bne _080C16CC
- ldr r1, _080C16C8 @ =gUnknown_020387E8
- movs r0, 0x3
- strb r0, [r1]
- b _080C173C
- .align 2, 0
-_080C16B8: .4byte gStringVar1
-_080C16BC: .4byte gStringVar2
-_080C16C0: .4byte gStringVar3
-_080C16C4: .4byte gSpeciesNames
-_080C16C8: .4byte gUnknown_020387E8
-_080C16CC:
- ldr r1, _080C16D4 @ =gUnknown_020387E8
- movs r0, 0x2
- strb r0, [r1]
- b _080C173C
- .align 2, 0
-_080C16D4: .4byte gUnknown_020387E8
-_080C16D8:
- ldr r0, _080C1708 @ =gStringVar1
- adds r1, r4, 0
- adds r1, 0x13
- ldrb r2, [r4, 0x2]
- bl TVShowConvertInternationalString
- ldrb r1, [r4, 0x10]
- movs r0, 0x1
- bl sub_80BF088
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 16
- cmp r0, 0
- bne _080C1710
- ldr r1, _080C170C @ =gUnknown_020387E8
- movs r0, 0x5
- strb r0, [r1]
- b _080C173C
- .align 2, 0
-_080C1708: .4byte gStringVar1
-_080C170C: .4byte gUnknown_020387E8
-_080C1710:
- ldr r1, _080C1718 @ =gUnknown_020387E8
- movs r0, 0x4
- strb r0, [r1]
- b _080C173C
- .align 2, 0
-_080C1718: .4byte gUnknown_020387E8
-_080C171C:
- ldr r0, _080C1730 @ =gStringVar1
- adds r1, r4, 0
- adds r1, 0x13
- ldrb r2, [r4, 0x2]
- bl TVShowConvertInternationalString
- ldr r1, _080C1734 @ =gUnknown_020387E8
- movs r0, 0x6
- strb r0, [r1]
- b _080C173C
- .align 2, 0
-_080C1730: .4byte gStringVar1
-_080C1734: .4byte gUnknown_020387E8
-_080C1738:
- bl TVShowDone
-_080C173C:
- ldr r0, _080C1750 @ =gTVPokemonTodayFailedCaptureTextGroup
- lsls r1, r5, 2
- adds r1, r0
- ldr r0, [r1]
- bl ShowFieldMessage
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C1750: .4byte gTVPokemonTodayFailedCaptureTextGroup
- thumb_func_end DoTVShowPokemonTodayFailedCapture
-
.align 2, 0 @ Don't pad with nop.
diff --git a/include/global.h b/include/global.h
index e372afe15..4ba4100dd 100644
--- a/include/global.h
+++ b/include/global.h
@@ -199,6 +199,19 @@ struct TVShowCommon {
/*0x23*/ u8 trainerIdHi;
};
+struct TVShowPokemonToday {
+ /*0x00*/ u8 var00;
+ /*0x01*/ u8 var01;
+ /*0x02*/ u8 language;
+ /*0x03*/ u8 pad03[9];
+ /*0x0c*/ u16 species;
+ /*0x0e*/ u16 species2;
+ /*0x10*/ u8 var10;
+ /*0x11*/ u8 var11;
+ /*0x12*/ u8 var12;
+ /*0x13*/ u8 playerName[8];
+};
+
struct TVShowFanClubLetter {
/*0x00*/ u8 var00;
/*0x01*/ u8 var01;
@@ -317,6 +330,7 @@ typedef union TVShow {
struct TVShowWorldOfMasters worldOfMasters;
struct TVShowSmartShopper smartshopperShow;
struct TVShowContestWinner contestShow;
+ struct TVShowPokemonToday pokemonToday;
} TVShow;
struct MailStruct
diff --git a/src/tv.c b/src/tv.c
index d303c3fe9..8a340719d 100644
--- a/src/tv.c
+++ b/src/tv.c
@@ -1626,6 +1626,52 @@ void TVShowConvertInternationalString(u8 *, u8 *, u8);
void TakeTVShowInSearchOfTrainersOffTheAir(void);
+void DoTVShowPokemonTodayFailedCapture(void) {
+ TVShow *tvShow;
+ u8 switchval;
+ u16 rval;
+ tvShow = &gSaveBlock1.tvShows.shows[gSpecialVar_0x8004];
+ gScriptResult = 0;
+ switchval = gUnknown_020387E8;
+ switch (switchval) {
+ case 0:
+ TVShowConvertInternationalString(gStringVar1, tvShow->pokemonToday.playerName, tvShow->pokemonToday.language);
+ StringCopy(gStringVar2, gSpeciesNames[tvShow->pokemonToday.species]);
+ gUnknown_020387E8 = 1;
+ break;
+ case 1:
+ TVShowConvertInternationalString(gStringVar1, tvShow->pokemonToday.playerName, tvShow->pokemonToday.language);
+ sub_80FBFB4(gStringVar2, tvShow->pokemonToday.var12, 0);
+ StringCopy(gStringVar3, gSpeciesNames[tvShow->pokemonToday.species2]);
+ if (tvShow->pokemonToday.var11 == 1) {
+ gUnknown_020387E8 = 3;
+ } else {
+ gUnknown_020387E8 = 2;
+ }
+ break;
+ case 2:
+ case 3:
+ TVShowConvertInternationalString(gStringVar1, tvShow->pokemonToday.playerName, tvShow->pokemonToday.language);
+ sub_80BF088(1, tvShow->pokemonToday.var10);
+ rval = (Random() % 3);
+ if (rval == 0) {
+ gUnknown_020387E8 = 5;
+ } else {
+ gUnknown_020387E8 = 4;
+ }
+ break;
+ case 4:
+ case 5:
+ TVShowConvertInternationalString(gStringVar1, tvShow->pokemonToday.playerName, tvShow->pokemonToday.language);
+ gUnknown_020387E8 = 6;
+ break;
+ case 6:
+ TVShowDone();
+ break;
+ }
+ ShowFieldMessage(gTVPokemonTodayFailedCaptureTextGroup[switchval]);
+}
+
void DoTVShowPokemonFanClubLetter(void) {
TVShow *tvShow;
u8 switchval;