diff options
author | scnorton <scnorton@biociphers.org> | 2017-05-30 10:29:22 -0400 |
---|---|---|
committer | scnorton <scnorton@biociphers.org> | 2017-05-30 10:29:22 -0400 |
commit | 432f5372c711696e818a26c545ac030539f72f5e (patch) | |
tree | 595efb5474128da4f802c9bd38a485cc0d6716bf | |
parent | f2e369d6835a4405644f1a1c9936a06d7cb52775 (diff) |
sub_80BDC14; get ResetGabbyAndTy matching
-rwxr-xr-x | asm/tv.s | 53 | ||||
-rw-r--r-- | include/global.fieldmap.h | 26 | ||||
-rw-r--r-- | include/global.h | 10 | ||||
-rwxr-xr-x | src/tv.c | 70 |
4 files changed, 39 insertions, 120 deletions
@@ -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 { @@ -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[]); |