summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorscnorton <scnorton@biociphers.org>2017-05-30 10:29:22 -0400
committerscnorton <scnorton@biociphers.org>2017-05-30 10:29:22 -0400
commit432f5372c711696e818a26c545ac030539f72f5e (patch)
tree595efb5474128da4f802c9bd38a485cc0d6716bf
parentf2e369d6835a4405644f1a1c9936a06d7cb52775 (diff)
sub_80BDC14; get ResetGabbyAndTy matching
-rwxr-xr-xasm/tv.s53
-rw-r--r--include/global.fieldmap.h26
-rw-r--r--include/global.h10
-rwxr-xr-xsrc/tv.c70
4 files changed, 39 insertions, 120 deletions
diff --git a/asm/tv.s b/asm/tv.s
index 808754ba3..0c52853af 100755
--- a/asm/tv.s
+++ b/asm/tv.s
@@ -7,59 +7,6 @@
.text
- thumb_func_start sub_80BDC14
-sub_80BDC14: @ 80BDC14
- push {r4-r6,lr}
- ldr r4, _080BDC70 @ =gSaveBlock1
- ldr r0, _080BDC74 @ =0x00002b1a
- adds r6, r4, r0
- ldrb r3, [r6]
- lsls r1, r3, 31
- adds r0, 0x1
- adds r5, r4, r0
- lsrs r1, 31
- ldrb r2, [r5]
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- movs r1, 0x2
- ands r1, r3
- movs r2, 0x3
- negs r2, r2
- ands r0, r2
- orrs r0, r1
- movs r1, 0x4
- ands r1, r3
- subs r2, 0x2
- ands r0, r2
- orrs r0, r1
- movs r1, 0x8
- ands r1, r3
- subs r2, 0x4
- ands r0, r2
- orrs r0, r1
- strb r0, [r5]
- movs r0, 0x10
- orrs r3, r0
- strb r3, [r6]
- ldr r0, _080BDC78 @ =gMapHeader
- ldrb r0, [r0, 0x14]
- ldr r1, _080BDC7C @ =0x00002b18
- adds r4, r1
- strb r0, [r4]
- movs r0, 0x6
- bl IncrementGameStat
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BDC70: .4byte gSaveBlock1
-_080BDC74: .4byte 0x00002b1a
-_080BDC78: .4byte gMapHeader
-_080BDC7C: .4byte 0x00002b18
- thumb_func_end sub_80BDC14
-
thumb_func_start TakeTVShowInSearchOfTrainersOffTheAir
TakeTVShowInSearchOfTrainersOffTheAir: @ 80BDC80
ldr r0, _080BDC94 @ =gSaveBlock1
diff --git a/include/global.fieldmap.h b/include/global.fieldmap.h
index 62b699e67..a0fe0e6ab 100644
--- a/include/global.fieldmap.h
+++ b/include/global.fieldmap.h
@@ -160,20 +160,20 @@ struct MapConnections
struct MapHeader
{
- struct MapData *mapData;
- struct MapEvents *events;
- u8 *mapScripts;
- struct MapConnections *connections;
- u16 music;
- u16 mapDataId;
- u8 name;
- u8 cave;
- u8 weather;
+ /* 0x00 */ struct MapData *mapData;
+ /* 0x04 */ struct MapEvents *events;
+ /* 0x08 */ u8 *mapScripts;
+ /* 0x0C */ struct MapConnections *connections;
+ /* 0x10 */ u16 music;
+ /* 0x12 */ u16 mapDataId;
+ /* 0x14 */ u8 name;
+ /* 0x15 */ u8 cave;
+ /* 0x16 */ u8 weather;
/* 0x17 */ u8 mapType;
- u8 filler_18;
- u8 escapeRope;
- u8 flags;
- u8 battleType;
+ /* 0x18 */ u8 filler_18;
+ /* 0x19 */ u8 escapeRope;
+ /* 0x1A */ u8 flags;
+ /* 0x1B */ u8 battleType;
};
struct MapObject
diff --git a/include/global.h b/include/global.h
index def6708c3..311a84af8 100644
--- a/include/global.h
+++ b/include/global.h
@@ -455,8 +455,14 @@ struct GabbyAndTyData {
/*2b1a*/ u8 valA_1:1;
/*2b1a*/ u8 valA_2:1;
/*2b1a*/ u8 valA_3:1;
- /*2b1a*/ u8 valA_4:4;
- /*2b1b*/ u8 valB;
+ /*2b1a*/ u8 valA_4:1;
+ /*2b1a*/ u8 valA_5:3;
+ /*2b1b*/ u8 valB_0:1;
+ /*2b1b*/ u8 valB_1:1;
+ /*2b1b*/ u8 valB_2:1;
+ /*2b1b*/ u8 valB_3:1;
+ /*2b1b*/ u8 valB_4:1;
+ /*2b1b*/ u8 valB_5:3;
};
struct RecordMixing_UnknownStruct {
diff --git a/src/tv.c b/src/tv.c
index 33fad5da2..0d04372be 100755
--- a/src/tv.c
+++ b/src/tv.c
@@ -381,7 +381,6 @@ u8 special_0x4a(void)
return gSpecialVar_0x8004;
}
-#ifdef NONMATCHING
void ResetGabbyAndTy(void)
{
gSaveBlock1.gabbyAndTyData.mon1 = 0;
@@ -393,60 +392,16 @@ void ResetGabbyAndTy(void)
gSaveBlock1.gabbyAndTyData.valA_2 = 0;
gSaveBlock1.gabbyAndTyData.valA_3 = 0;
gSaveBlock1.gabbyAndTyData.valA_4 = 0;
- gSaveBlock1.gabbyAndTyData.valB = 0;
+ gSaveBlock1.gabbyAndTyData.valA_5 = 0;
+ gSaveBlock1.gabbyAndTyData.valB_0 = 0;
+ gSaveBlock1.gabbyAndTyData.valB_1 = 0;
+ gSaveBlock1.gabbyAndTyData.valB_2 = 0;
+ gSaveBlock1.gabbyAndTyData.valB_3 = 0;
+ gSaveBlock1.gabbyAndTyData.valB_4 = 0;
+ gSaveBlock1.gabbyAndTyData.valB_5 = 0;
gSaveBlock1.gabbyAndTyData.mapnum = 0;
gSaveBlock1.gabbyAndTyData.val9 = 0;
}
-#else
-__attribute__((naked))
-void ResetGabbyAndTy(void)
-{
- asm(".syntax unified\n"
- "\tpush {r4,lr}\n"
- "\tldr r2, _080BDAF8 @ =gSaveBlock1\n"
- "\tldr r1, _080BDAFC @ =0x00002b10\n"
- "\tadds r0, r2, r1\n"
- "\tmovs r3, 0\n"
- "\tmovs r1, 0\n"
- "\tstrh r1, [r0]\n"
- "\tldr r4, _080BDB00 @ =0x00002b12\n"
- "\tadds r0, r2, r4\n"
- "\tstrh r1, [r0]\n"
- "\tadds r4, 0x2\n"
- "\tadds r0, r2, r4\n"
- "\tstrh r1, [r0]\n"
- "\tldr r0, _080BDB04 @ =0x00002b16\n"
- "\tadds r1, r2, r0\n"
- "\tldr r0, _080BDB08 @ =0x0000ffff\n"
- "\tstrh r0, [r1]\n"
- "\tadds r4, 0x6\n"
- "\tadds r1, r2, r4\n"
- "\tmovs r0, 0\n"
- "\tstrb r0, [r1]\n"
- "\tldr r0, _080BDB0C @ =0x00002b1b\n"
- "\tadds r1, r2, r0\n"
- "\tmovs r0, 0\n"
- "\tstrb r0, [r1]\n"
- "\tldr r1, _080BDB10 @ =0x00002b18\n"
- "\tadds r0, r2, r1\n"
- "\tstrb r3, [r0]\n"
- "\tsubs r4, 0x1\n"
- "\tadds r2, r4\n"
- "\tstrb r3, [r2]\n"
- "\tpop {r4}\n"
- "\tpop {r0}\n"
- "\tbx r0\n"
- "\t.align 2, 0\n"
- "_080BDAF8: .4byte gSaveBlock1\n"
- "_080BDAFC: .4byte 0x00002b10\n"
- "_080BDB00: .4byte 0x00002b12\n"
- "_080BDB04: .4byte 0x00002b16\n"
- "_080BDB08: .4byte 0x0000ffff\n"
- "_080BDB0C: .4byte 0x00002b1b\n"
- "_080BDB10: .4byte 0x00002b18\n"
- ".syntax divided\n");
-}
-#endif
void TakeTVShowInSearchOfTrainersOffTheAir(void);
@@ -496,6 +451,17 @@ void GabbyAndTyBeforeInterview(void)
}
}
+void sub_80BDC14(void)
+{
+ gSaveBlock1.gabbyAndTyData.valB_0 = gSaveBlock1.gabbyAndTyData.valA_0;
+ gSaveBlock1.gabbyAndTyData.valB_1 = gSaveBlock1.gabbyAndTyData.valA_1;
+ gSaveBlock1.gabbyAndTyData.valB_2 = gSaveBlock1.gabbyAndTyData.valA_2;
+ gSaveBlock1.gabbyAndTyData.valB_3 = gSaveBlock1.gabbyAndTyData.valA_3;
+ gSaveBlock1.gabbyAndTyData.valA_4 = 1;
+ gSaveBlock1.gabbyAndTyData.mapnum = gMapHeader.name;
+ IncrementGameStat(GAME_STAT_GOT_INTERVIEWED);
+}
+
asm(".section .text_a");
s8 sub_80BF74C(TVShow tvShow[]);