summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/tv.s139
-rw-r--r--include/global.h3
-rw-r--r--include/tv.h17
-rw-r--r--src/tv.c57
4 files changed, 65 insertions, 151 deletions
diff --git a/asm/tv.s b/asm/tv.s
index 15c9ea3f8..6cc8332af 100644
--- a/asm/tv.s
+++ b/asm/tv.s
@@ -2739,145 +2739,6 @@ _080BF39C: .4byte gUnknown_03005D38
_080BF3A0: .4byte gSaveBlock1 + 0x2738
thumb_func_end sub_80BF334
- thumb_func_start sub_80BF3A4
-sub_80BF3A4: @ 80BF3A4
- push {lr}
- movs r0, 0x2
- bl sub_80BF25C
- ldr r0, _080BF3D0 @ =gScriptResult
- ldrh r0, [r0]
- cmp r0, 0
- bne _080BF3CC
- ldr r0, _080BF3D4 @ =gUnknown_03005D38
- movs r1, 0
- ldrsb r1, [r0, r1]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BF3D8 @ =gSaveBlock1 + 0x2738
- adds r0, r1
- adds r0, 0x4
- movs r1, 0x6
- bl sub_80EB6FC
-_080BF3CC:
- pop {r0}
- bx r0
- .align 2, 0
-_080BF3D0: .4byte gScriptResult
-_080BF3D4: .4byte gUnknown_03005D38
-_080BF3D8: .4byte gSaveBlock1 + 0x2738
- thumb_func_end sub_80BF3A4
-
- thumb_func_start sub_80BF3DC
-sub_80BF3DC: @ 80BF3DC
- push {r4-r6,lr}
- movs r0, 0x3
- bl sub_80BF25C
- ldr r0, _080BF450 @ =gScriptResult
- ldrh r0, [r0]
- cmp r0, 0
- bne _080BF448
- ldr r6, _080BF454 @ =gStringVar1
- bl GetLeadMonIndex
- lsls r0, 24
- lsrs r0, 24
- movs r5, 0x64
- muls r0, r5
- ldr r4, _080BF458 @ =gPlayerParty
- adds r0, r4
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- movs r1, 0xB
- muls r1, r0
- ldr r0, _080BF45C @ =gSpeciesNames
- adds r1, r0
- adds r0, r6, 0
- bl StringCopy
- bl GetLeadMonIndex
- lsls r0, 24
- lsrs r0, 24
- muls r0, r5
- adds r0, r4
- ldr r4, _080BF460 @ =gStringVar2
- movs r1, 0x2
- adds r2, r4, 0
- bl GetMonData
- adds r0, r4, 0
- bl StringGetEnd10
- ldr r0, _080BF464 @ =gUnknown_03005D38
- movs r1, 0
- ldrsb r1, [r0, r1]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BF468 @ =gSaveBlock1 + 0x2738
- adds r0, r1
- adds r0, 0x1C
- movs r1, 0x2
- bl sub_80EB6FC
-_080BF448:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BF450: .4byte gScriptResult
-_080BF454: .4byte gStringVar1
-_080BF458: .4byte gPlayerParty
-_080BF45C: .4byte gSpeciesNames
-_080BF460: .4byte gStringVar2
-_080BF464: .4byte gUnknown_03005D38
-_080BF468: .4byte gSaveBlock1 + 0x2738
- thumb_func_end sub_80BF3DC
-
- thumb_func_start sub_80BF46C
-sub_80BF46C: @ 80BF46C
- ldr r1, _080BF474 @ =gScriptResult
- movs r0, 0x1
- strh r0, [r1]
- bx lr
- .align 2, 0
-_080BF474: .4byte gScriptResult
- thumb_func_end sub_80BF46C
-
- thumb_func_start sub_80BF478
-sub_80BF478: @ 80BF478
- push {lr}
- movs r0, 0x5
- bl sub_80BF25C
- pop {r0}
- bx r0
- thumb_func_end sub_80BF478
-
- thumb_func_start sub_80BF484
-sub_80BF484: @ 80BF484
- push {lr}
- movs r0, 0x6
- bl sub_80BF25C
- ldr r0, _080BF4B0 @ =gScriptResult
- ldrh r0, [r0]
- cmp r0, 0
- bne _080BF4AC
- ldr r0, _080BF4B4 @ =gUnknown_03005D38
- movs r1, 0
- ldrsb r1, [r0, r1]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BF4B8 @ =gSaveBlock1 + 0x2738
- adds r0, r1
- adds r0, 0x4
- movs r1, 0x2
- bl sub_80EB6FC
-_080BF4AC:
- pop {r0}
- bx r0
- .align 2, 0
-_080BF4B0: .4byte gScriptResult
-_080BF4B4: .4byte gUnknown_03005D38
-_080BF4B8: .4byte gSaveBlock1 + 0x2738
- thumb_func_end sub_80BF484
-
.section .text_80BF544
thumb_func_start sub_80BFF68
diff --git a/include/global.h b/include/global.h
index 73a826dd2..5ea13f7cc 100644
--- a/include/global.h
+++ b/include/global.h
@@ -227,7 +227,8 @@ struct TVShowFanclubOpinions {
/*0x0E*/ u8 var0E;
/*0x0F*/ u8 var0F;
/*0x10*/ u8 var10[8];
- /*0x18*/ u16 var18[6];
+ /*0x18*/ u16 var18[2];
+ /*0x1C*/ u16 var1C[4];
};
struct TVShowNameRaterShow {
diff --git a/include/tv.h b/include/tv.h
new file mode 100644
index 000000000..e7186b05b
--- /dev/null
+++ b/include/tv.h
@@ -0,0 +1,17 @@
+//
+// Created by Scott Norton on 5/18/17.
+//
+
+#ifndef POKERUBY_TV_H
+#define POKERUBY_TV_H
+enum
+{
+ TVSHOW_FAN_CLUB_LETTER = 1,
+ TVSHOW_RECENT_HAPPENINGS = 2,
+ TVSHOW_PKMN_FAN_CLUB_OPINIONS = 3,
+ TVSHOW_NAME_RATER_SHOW = 5,
+ TVSHOW_UNK_SHOWTYPE_06 = 6,
+ TVSHOW_UNK_SHOWTYPE_07 = 7,
+ TVSHOW_MASS_OUTBREAK = 41,
+};
+#endif //POKERUBY_TV_H
diff --git a/src/tv.c b/src/tv.c
index 12bd70ac9..9e40d4132 100644
--- a/src/tv.c
+++ b/src/tv.c
@@ -1,5 +1,6 @@
#include "global.h"
#include "asm.h"
+#include "tv.h"
#include "event_data.h"
#include "field_message_box.h"
#include "flags.h"
@@ -15,15 +16,6 @@
#include "link.h"
#include "easy_chat.h"
-enum
-{
- TVSHOW_FAN_CLUB_LETTER = 1,
- TVSHOW_RECENT_HAPPENINGS = 2,
- TVSHOW_PKMN_FAN_CLUB_OPINIONS = 3,
- TVSHOW_NAME_RATER_SHOW = 5,
- TVSHOW_MASS_OUTBREAK = 41,
-};
-
struct UnkTvStruct
{
s8 var0;
@@ -456,13 +448,56 @@ asm(".section .text_b");
void sub_80BF25C(u8);
+void sub_80BF3A4(void)
+{
+ TVShow *show;
+ sub_80BF25C(TVSHOW_RECENT_HAPPENINGS);
+ if (gScriptResult == 0) {
+ show = &gSaveBlock1.tvShows.shows[gUnknown_03005D38.var0];
+ sub_80EB6FC(show->recentHappenings.var04, 6);
+ }
+}
+
+void sub_80BF3DC(void)
+{
+ TVShow *show;
+ sub_80BF25C(TVSHOW_PKMN_FAN_CLUB_OPINIONS);
+ if (gScriptResult == 0) {
+ StringCopy(gStringVar1, gSpeciesNames[GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_SPECIES, 0)]);
+ GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_NICKNAME, gStringVar2);
+ StringGetEnd10(gStringVar2);
+ show = &gSaveBlock1.tvShows.shows[gUnknown_03005D38.var0];
+ sub_80EB6FC(show->fanclubOpinions.var1C, 2);
+ }
+}
+
+void sub_80BF46C(void)
+{
+ gScriptResult = 1;
+}
+
+void sub_80BF478(void)
+{
+ sub_80BF25C(TVSHOW_NAME_RATER_SHOW);
+}
+
+void sub_80BF484(void)
+{
+ TVShow *show;
+ sub_80BF25C(TVSHOW_UNK_SHOWTYPE_06);
+ if (gScriptResult == 0) {
+ show = &gSaveBlock1.tvShows.shows[gUnknown_03005D38.var0];
+ sub_80EB6FC(show->recentHappenings.var04, 2); // wrong struct ident, fix later
+ }
+}
+
void sub_80BF4BC(void)
{
TVShow *show;
- sub_80BF25C(7);
+ sub_80BF25C(TVSHOW_UNK_SHOWTYPE_07);
if (gScriptResult == 0) {
show = &gSaveBlock1.tvShows.shows[gUnknown_03005D38.var0];
- sub_80EB6FC(show->fanclubOpinions.var18, 1);
+ sub_80EB6FC(show->fanclubOpinions.var18, 1); // wrong struct ident, fix later
}
}