summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xasm/tv.s85
-rw-r--r--include/global.h6
-rwxr-xr-xsrc/tv.c50
3 files changed, 43 insertions, 98 deletions
diff --git a/asm/tv.s b/asm/tv.s
index 0c52853af..03867f465 100755
--- a/asm/tv.s
+++ b/asm/tv.s
@@ -7,91 +7,6 @@
.text
- thumb_func_start TakeTVShowInSearchOfTrainersOffTheAir
-TakeTVShowInSearchOfTrainersOffTheAir: @ 80BDC80
- ldr r0, _080BDC94 @ =gSaveBlock1
- ldr r1, _080BDC98 @ =0x00002b1a
- adds r0, r1
- ldrb r2, [r0]
- movs r1, 0x11
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- bx lr
- .align 2, 0
-_080BDC94: .4byte gSaveBlock1
-_080BDC98: .4byte 0x00002b1a
- thumb_func_end TakeTVShowInSearchOfTrainersOffTheAir
-
- thumb_func_start GabbyAndTyGetBattleNum
-GabbyAndTyGetBattleNum: @ 80BDC9C
- push {lr}
- ldr r0, _080BDCBC @ =gSaveBlock1
- ldr r2, _080BDCC0 @ =0x00002b19
- adds r1, r0, r2
- ldrb r0, [r1]
- cmp r0, 0x5
- bls _080BDCB8
- ldrb r0, [r1]
- movs r1, 0x3
- bl __umodsi3
- adds r0, 0x6
- lsls r0, 24
- lsrs r0, 24
-_080BDCB8:
- pop {r1}
- bx r1
- .align 2, 0
-_080BDCBC: .4byte gSaveBlock1
-_080BDCC0: .4byte 0x00002b19
- thumb_func_end GabbyAndTyGetBattleNum
-
- thumb_func_start IsTVShowInSearchOfTrainersAiring
-IsTVShowInSearchOfTrainersAiring: @ 80BDCC4
- ldr r0, _080BDCD4 @ =gSaveBlock1
- ldr r1, _080BDCD8 @ =0x00002b1a
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 27
- lsrs r0, 31
- bx lr
- .align 2, 0
-_080BDCD4: .4byte gSaveBlock1
-_080BDCD8: .4byte 0x00002b1a
- thumb_func_end IsTVShowInSearchOfTrainersAiring
-
- thumb_func_start GabbyAndTyGetLastQuote
-GabbyAndTyGetLastQuote: @ 80BDCDC
- push {r4,r5,lr}
- ldr r0, _080BDD00 @ =gSaveBlock1
- ldr r1, _080BDD04 @ =0x00002b16
- adds r4, r0, r1
- ldrh r0, [r4]
- ldr r5, _080BDD08 @ =0x0000ffff
- cmp r0, r5
- beq _080BDD10
- ldr r0, _080BDD0C @ =gStringVar1
- ldrh r1, [r4]
- bl sub_80EB3FC
- ldrh r1, [r4]
- adds r0, r5, 0
- orrs r0, r1
- strh r0, [r4]
- movs r0, 0x1
- b _080BDD12
- .align 2, 0
-_080BDD00: .4byte gSaveBlock1
-_080BDD04: .4byte 0x00002b16
-_080BDD08: .4byte 0x0000ffff
-_080BDD0C: .4byte gStringVar1
-_080BDD10:
- movs r0, 0
-_080BDD12:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end GabbyAndTyGetLastQuote
-
thumb_func_start sub_80BDD18
sub_80BDD18: @ 80BDD18
push {lr}
diff --git a/include/global.h b/include/global.h
index 311a84af8..0257e4110 100644
--- a/include/global.h
+++ b/include/global.h
@@ -447,10 +447,10 @@ struct UnknownSaveStruct2ABC {
struct GabbyAndTyData {
/*2b10*/ u16 mon1;
/*2b12*/ u16 mon2;
- /*2b14*/ u16 move1;
- /*2b16*/ u16 move2;
+ /*2b14*/ u16 lastMove;
+ /*2b16*/ u16 quote;
/*2b18*/ u8 mapnum;
- /*2b19*/ u8 val9; // counter?
+ /*2b19*/ u8 battleNum;
/*2b1a*/ u8 valA_0:1;
/*2b1a*/ u8 valA_1:1;
/*2b1a*/ u8 valA_2:1;
diff --git a/src/tv.c b/src/tv.c
index 0d04372be..d1ac9126a 100755
--- a/src/tv.c
+++ b/src/tv.c
@@ -385,8 +385,8 @@ void ResetGabbyAndTy(void)
{
gSaveBlock1.gabbyAndTyData.mon1 = 0;
gSaveBlock1.gabbyAndTyData.mon2 = 0;
- gSaveBlock1.gabbyAndTyData.move1 = 0;
- gSaveBlock1.gabbyAndTyData.move2 = 0xffff;
+ gSaveBlock1.gabbyAndTyData.lastMove = 0;
+ gSaveBlock1.gabbyAndTyData.quote = 0xffff;
gSaveBlock1.gabbyAndTyData.valA_0 = 0;
gSaveBlock1.gabbyAndTyData.valA_1 = 0;
gSaveBlock1.gabbyAndTyData.valA_2 = 0;
@@ -400,7 +400,7 @@ void ResetGabbyAndTy(void)
gSaveBlock1.gabbyAndTyData.valB_4 = 0;
gSaveBlock1.gabbyAndTyData.valB_5 = 0;
gSaveBlock1.gabbyAndTyData.mapnum = 0;
- gSaveBlock1.gabbyAndTyData.val9 = 0;
+ gSaveBlock1.gabbyAndTyData.battleNum = 0;
}
void TakeTVShowInSearchOfTrainersOffTheAir(void);
@@ -410,10 +410,10 @@ void GabbyAndTyBeforeInterview(void)
u8 i;
gSaveBlock1.gabbyAndTyData.mon1 = gUnknown_030042E0.var06;
gSaveBlock1.gabbyAndTyData.mon2 = gUnknown_030042E0.var26;
- gSaveBlock1.gabbyAndTyData.move1 = gUnknown_030042E0.var22;
- if (gSaveBlock1.gabbyAndTyData.val9 != 0xff)
+ gSaveBlock1.gabbyAndTyData.lastMove = gUnknown_030042E0.var22;
+ if (gSaveBlock1.gabbyAndTyData.battleNum != 0xff)
{
- gSaveBlock1.gabbyAndTyData.val9 ++;
+ gSaveBlock1.gabbyAndTyData.battleNum ++;
}
gSaveBlock1.gabbyAndTyData.valA_0 = gUnknown_030042E0.var05_0;
if (gUnknown_030042E0.var00)
@@ -445,7 +445,7 @@ void GabbyAndTyBeforeInterview(void)
gSaveBlock1.gabbyAndTyData.valA_3 = 1;
}
TakeTVShowInSearchOfTrainersOffTheAir();
- if (gSaveBlock1.gabbyAndTyData.move1 == 0)
+ if (gSaveBlock1.gabbyAndTyData.lastMove == 0)
{
FlagSet(1);
}
@@ -462,6 +462,36 @@ void sub_80BDC14(void)
IncrementGameStat(GAME_STAT_GOT_INTERVIEWED);
}
+void TakeTVShowInSearchOfTrainersOffTheAir(void)
+{
+ gSaveBlock1.gabbyAndTyData.valA_4 = 0;
+}
+
+u8 GabbyAndTyGetBattleNum(void)
+{
+ if (gSaveBlock1.gabbyAndTyData.battleNum >= 6)
+ {
+ return (gSaveBlock1.gabbyAndTyData.battleNum % 3) + 6;
+ }
+ return gSaveBlock1.gabbyAndTyData.battleNum;
+}
+
+bool8 IsTVShowInSearchOfTrainersAiring(void)
+{
+ return gSaveBlock1.gabbyAndTyData.valA_4;
+}
+
+bool8 GabbyAndTyGetLastQuote(void)
+{
+ if (gSaveBlock1.gabbyAndTyData.quote == 0xffff)
+ {
+ return FALSE;
+ }
+ sub_80EB3FC(gStringVar1, gSaveBlock1.gabbyAndTyData.quote);
+ gSaveBlock1.gabbyAndTyData.quote |= 0xffff;
+ return TRUE;
+}
+
asm(".section .text_a");
s8 sub_80BF74C(TVShow tvShow[]);
@@ -3242,7 +3272,7 @@ void DoTVShowInSearchOfTrainers(void) {
switch (switchval) {
case 0:
sub_80FBFB4(gStringVar1, gSaveBlock1.gabbyAndTyData.mapnum, 0);
- if (gSaveBlock1.gabbyAndTyData.val9 > 1) {
+ if (gSaveBlock1.gabbyAndTyData.battleNum > 1) {
gUnknown_020387E8 = 1;
} else {
gUnknown_020387E8 = 2;
@@ -3266,7 +3296,7 @@ void DoTVShowInSearchOfTrainers(void) {
break;
case 3:
StringCopy(gStringVar1, gSpeciesNames[gSaveBlock1.gabbyAndTyData.mon1]);
- StringCopy(gStringVar2, gMoveNames[gSaveBlock1.gabbyAndTyData.move1]);
+ StringCopy(gStringVar2, gMoveNames[gSaveBlock1.gabbyAndTyData.lastMove]);
StringCopy(gStringVar3, gSpeciesNames[gSaveBlock1.gabbyAndTyData.mon2]);
gUnknown_020387E8 = 8;
break;
@@ -3277,7 +3307,7 @@ void DoTVShowInSearchOfTrainers(void) {
gUnknown_020387E8 = 8;
break;
case 8:
- sub_80EB3FC(gStringVar1, gSaveBlock1.gabbyAndTyData.move2);
+ sub_80EB3FC(gStringVar1, gSaveBlock1.gabbyAndTyData.quote);
StringCopy(gStringVar2, gSpeciesNames[gSaveBlock1.gabbyAndTyData.mon1]);
StringCopy(gStringVar3, gSpeciesNames[gSaveBlock1.gabbyAndTyData.mon2]);
gScriptResult = 1;