summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/tv.s209
-rw-r--r--include/global.h17
-rw-r--r--src/tv.c57
3 files changed, 73 insertions, 210 deletions
diff --git a/asm/tv.s b/asm/tv.s
index f92e462e5..bb1b2756d 100644
--- a/asm/tv.s
+++ b/asm/tv.s
@@ -4927,215 +4927,6 @@ nullsub_22: @ 80C1BF4
.section .text_80C1C5C
- thumb_func_start DoTVShowInSearchOfTrainers
-DoTVShowInSearchOfTrainers: @ 80C1C5C
- push {r4-r7,lr}
- ldr r0, _080C1C7C @ =gScriptResult
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080C1C80 @ =gUnknown_020387E8
- ldrb r7, [r0]
- adds r2, r0, 0
- cmp r7, 0x8
- bls _080C1C70
- b _080C1DF8
-_080C1C70:
- lsls r0, r7, 2
- ldr r1, _080C1C84 @ =_080C1C88
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C1C7C: .4byte gScriptResult
-_080C1C80: .4byte gUnknown_020387E8
-_080C1C84: .4byte _080C1C88
- .align 2, 0
-_080C1C88:
- .4byte _080C1CAC
- .4byte _080C1CF0
- .4byte _080C1CF6
- .4byte _080C1D44
- .4byte _080C1DB0
- .4byte _080C1DB0
- .4byte _080C1DB0
- .4byte _080C1DB0
- .4byte _080C1DB6
-_080C1CAC:
- ldr r0, _080C1CD0 @ =gStringVar1
- ldr r4, _080C1CD4 @ =gSaveBlock1
- ldr r2, _080C1CD8 @ =0x00002b18
- adds r1, r4, r2
- ldrb r1, [r1]
- movs r2, 0
- bl sub_80FBFB4
- ldr r0, _080C1CDC @ =0x00002b19
- adds r4, r0
- ldrb r0, [r4]
- cmp r0, 0x1
- bls _080C1CE4
- ldr r1, _080C1CE0 @ =gUnknown_020387E8
- movs r0, 0x1
- strb r0, [r1]
- b _080C1DF8
- .align 2, 0
-_080C1CD0: .4byte gStringVar1
-_080C1CD4: .4byte gSaveBlock1
-_080C1CD8: .4byte 0x00002b18
-_080C1CDC: .4byte 0x00002b19
-_080C1CE0: .4byte gUnknown_020387E8
-_080C1CE4:
- ldr r1, _080C1CEC @ =gUnknown_020387E8
- movs r0, 0x2
- strb r0, [r1]
- b _080C1DF8
- .align 2, 0
-_080C1CEC: .4byte gUnknown_020387E8
-_080C1CF0:
- movs r0, 0x2
- strb r0, [r2]
- b _080C1DF8
-_080C1CF6:
- ldr r0, _080C1D0C @ =gSaveBlock1
- ldr r1, _080C1D10 @ =0x00002b1a
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080C1D14
- movs r0, 0x4
- strb r0, [r2]
- b _080C1DF8
- .align 2, 0
-_080C1D0C: .4byte gSaveBlock1
-_080C1D10: .4byte 0x00002b1a
-_080C1D14:
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _080C1D22
- movs r0, 0x5
- strb r0, [r2]
- b _080C1DF8
-_080C1D22:
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080C1D30
- movs r0, 0x6
- strb r0, [r2]
- b _080C1DF8
-_080C1D30:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080C1D3E
- movs r0, 0x7
- strb r0, [r2]
- b _080C1DF8
-_080C1D3E:
- movs r0, 0x3
- strb r0, [r2]
- b _080C1DF8
-_080C1D44:
- ldr r0, _080C1D88 @ =gStringVar1
- ldr r4, _080C1D8C @ =gSaveBlock1
- ldr r2, _080C1D90 @ =0x00002b10
- adds r1, r4, r2
- ldrh r1, [r1]
- movs r6, 0xB
- muls r1, r6
- ldr r5, _080C1D94 @ =gSpeciesNames
- adds r1, r5
- bl StringCopy
- ldr r0, _080C1D98 @ =gStringVar2
- ldr r2, _080C1D9C @ =0x00002b14
- adds r1, r4, r2
- ldrh r2, [r1]
- movs r1, 0xD
- muls r1, r2
- ldr r2, _080C1DA0 @ =gMoveNames
- adds r1, r2
- bl StringCopy
- ldr r0, _080C1DA4 @ =gStringVar3
- ldr r1, _080C1DA8 @ =0x00002b12
- adds r4, r1
- ldrh r1, [r4]
- muls r1, r6
- adds r1, r5
- bl StringCopy
- ldr r1, _080C1DAC @ =gUnknown_020387E8
- movs r0, 0x8
- strb r0, [r1]
- b _080C1DF8
- .align 2, 0
-_080C1D88: .4byte gStringVar1
-_080C1D8C: .4byte gSaveBlock1
-_080C1D90: .4byte 0x00002b10
-_080C1D94: .4byte gSpeciesNames
-_080C1D98: .4byte gStringVar2
-_080C1D9C: .4byte 0x00002b14
-_080C1DA0: .4byte gMoveNames
-_080C1DA4: .4byte gStringVar3
-_080C1DA8: .4byte 0x00002b12
-_080C1DAC: .4byte gUnknown_020387E8
-_080C1DB0:
- movs r0, 0x8
- strb r0, [r2]
- b _080C1DF8
-_080C1DB6:
- ldr r0, _080C1E0C @ =gStringVar1
- ldr r4, _080C1E10 @ =gSaveBlock1
- ldr r2, _080C1E14 @ =0x00002b16
- adds r1, r4, r2
- ldrh r1, [r1]
- bl sub_80EB3FC
- ldr r0, _080C1E18 @ =gStringVar2
- ldr r2, _080C1E1C @ =0x00002b10
- adds r1, r4, r2
- ldrh r1, [r1]
- movs r6, 0xB
- muls r1, r6
- ldr r5, _080C1E20 @ =gSpeciesNames
- adds r1, r5
- bl StringCopy
- ldr r0, _080C1E24 @ =gStringVar3
- ldr r1, _080C1E28 @ =0x00002b12
- adds r4, r1
- ldrh r1, [r4]
- muls r1, r6
- adds r1, r5
- bl StringCopy
- ldr r1, _080C1E2C @ =gScriptResult
- movs r0, 0x1
- strh r0, [r1]
- ldr r1, _080C1E30 @ =gUnknown_020387E8
- movs r0, 0
- strb r0, [r1]
- bl TakeTVShowInSearchOfTrainersOffTheAir
-_080C1DF8:
- ldr r0, _080C1E34 @ =gTVGabbyAndTyTextGroup
- lsls r1, r7, 2
- adds r1, r0
- ldr r0, [r1]
- bl ShowFieldMessage
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C1E0C: .4byte gStringVar1
-_080C1E10: .4byte gSaveBlock1
-_080C1E14: .4byte 0x00002b16
-_080C1E18: .4byte gStringVar2
-_080C1E1C: .4byte 0x00002b10
-_080C1E20: .4byte gSpeciesNames
-_080C1E24: .4byte gStringVar3
-_080C1E28: .4byte 0x00002b12
-_080C1E2C: .4byte gScriptResult
-_080C1E30: .4byte gUnknown_020387E8
-_080C1E34: .4byte gTVGabbyAndTyTextGroup
- thumb_func_end DoTVShowInSearchOfTrainers
-
thumb_func_start DoTVShowPokemonAngler
DoTVShowPokemonAngler: @ 80C1E38
push {r4,r5,lr}
diff --git a/include/global.h b/include/global.h
index 9a9e08fbb..0f794d8f0 100644
--- a/include/global.h
+++ b/include/global.h
@@ -398,6 +398,21 @@ struct UnknownSaveStruct2ABC {
u16 val2;
};
+struct GabbyAndTyData {
+ u16 mon1;
+ u16 mon2;
+ u16 move1;
+ u16 move2;
+ u8 mapnum;
+ u8 val9;
+ u8 valA_0:1;
+ u8 valA_1:1;
+ u8 valA_2:1;
+ u8 valA_3:1;
+ u8 valA_4:4;
+ u8 valB;
+};
+
struct SaveBlock1 /* 0x02025734 */
{
/*0x00*/ struct Coords16 pos;
@@ -459,7 +474,7 @@ struct SaveBlock1 /* 0x02025734 */
/*0x2B0C*/ u8 outbreakUnk4;
/*0x2B0D*/ u8 outbreakPokemonProbability;
/*0x2B0E*/ u16 outbreakUnk5;
- /*0x2B10*/ u8 filler_2B0E[0xC];
+ /*0x2B18*/ struct GabbyAndTyData gabbyAndTyData;
/*0x2B1C*/ u16 unk2B1C[6];
/*0x2B28*/ u16 unk2B28[6];
/*0x2B34*/ u16 unk2B34[6];
diff --git a/src/tv.c b/src/tv.c
index c0a399306..d64599897 100644
--- a/src/tv.c
+++ b/src/tv.c
@@ -50,7 +50,9 @@ extern u8 gUnknown_020387E8;
extern struct UnkTvStruct gUnknown_03005D38;
extern u8 gSpeciesNames[][11];
+extern u8 gMoveNames[][13];
extern u8 *gTVPokemonOutbreakTextGroup[];
+extern u8 *gTVGabbyAndTyTextGroup[];
extern struct OutbreakPokemon gPokeOutbreakSpeciesList[5];
extern void sub_80BEBF4(void);
@@ -1608,6 +1610,8 @@ _080BFF58:\n\
asm(".section .text_c");
+void TakeTVShowInSearchOfTrainersOffTheAir(void);
+
void DoTVShowPokemonNewsMassOutbreak(void)
{
TVShow *tvShow;
@@ -1624,6 +1628,59 @@ void DoTVShowPokemonNewsMassOutbreak(void)
ShowFieldMessage(gTVPokemonOutbreakTextGroup[gUnknown_020387E8]);
}
+void DoTVShowInSearchOfTrainers(void) {
+ u8 switchval;
+ gScriptResult = 0;
+ switchval = gUnknown_020387E8;
+ switch (switchval) {
+ case 0:
+ sub_80FBFB4(gStringVar1, gSaveBlock1.gabbyAndTyData.mapnum, 0);
+ if (gSaveBlock1.gabbyAndTyData.val9 > 1) {
+ gUnknown_020387E8 = 1;
+ } else {
+ gUnknown_020387E8 = 2;
+ }
+ break;
+ case 1:
+ gUnknown_020387E8 = 2;
+ break;
+ case 2:
+ if (gSaveBlock1.gabbyAndTyData.valA_0 == 0) {
+ gUnknown_020387E8 = 4;
+ } else if (gSaveBlock1.gabbyAndTyData.valA_3 != 0) {
+ gUnknown_020387E8 = 5;
+ } else if (gSaveBlock1.gabbyAndTyData.valA_2 != 0) {
+ gUnknown_020387E8 = 6;
+ } else if (gSaveBlock1.gabbyAndTyData.valA_1 != 0) {
+ gUnknown_020387E8 = 7;
+ } else {
+ gUnknown_020387E8 = 3;
+ }
+ break;
+ case 3:
+ StringCopy(gStringVar1, gSpeciesNames[gSaveBlock1.gabbyAndTyData.mon1]);
+ StringCopy(gStringVar2, gMoveNames[gSaveBlock1.gabbyAndTyData.move1]);
+ StringCopy(gStringVar3, gSpeciesNames[gSaveBlock1.gabbyAndTyData.mon2]);
+ gUnknown_020387E8 = 8;
+ break;
+ case 4:
+ case 5:
+ case 6:
+ case 7:
+ gUnknown_020387E8 = 8;
+ break;
+ case 8:
+ sub_80EB3FC(gStringVar1, gSaveBlock1.gabbyAndTyData.move2);
+ StringCopy(gStringVar2, gSpeciesNames[gSaveBlock1.gabbyAndTyData.mon1]);
+ StringCopy(gStringVar3, gSpeciesNames[gSaveBlock1.gabbyAndTyData.mon2]);
+ gScriptResult = 1;
+ gUnknown_020387E8 = 0;;
+ TakeTVShowInSearchOfTrainersOffTheAir();
+ break;
+ }
+ ShowFieldMessage(gTVGabbyAndTyTextGroup[switchval]);
+}
+
asm(".section .text_d");
void TVShowDone(void)