summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorScott Norton <Scott Norton>2017-05-30 08:38:05 -0400
committerPikalaxALT <pikalax1@gmail.com>2017-05-30 08:40:02 -0400
commit2cd382d3c65c19dbd9812ce977d6cfcc2aef8dff (patch)
treecf615bac1f38d55636a5b4f6aaacd56a84c38911
parente78a3021bbac8f439797265b727803ee5ea40484 (diff)
ResetGabbyAndTy (nonmatching)
-rwxr-xr-xasm/tv.s79
-rw-r--r--include/global.h36
-rwxr-xr-xsrc/tv.c79
3 files changed, 97 insertions, 97 deletions
diff --git a/asm/tv.s b/asm/tv.s
index 5955a9bbb..55b4f898a 100755
--- a/asm/tv.s
+++ b/asm/tv.s
@@ -7,85 +7,6 @@
.text
- thumb_func_start special_0x4a
-special_0x4a: @ 80BDA78
- push {lr}
- ldr r2, _080BDAA4 @ =gSpecialVar_0x8004
- ldrh r1, [r2]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BDAA8 @ =gSaveBlock1 + 0x2738
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x29
- bne _080BDAAC
- movs r3, 0xF1
- lsls r3, 2
- adds r0, r1, r3
- ldrh r0, [r0]
- cmp r0, 0
- beq _080BDAAC
- bl sub_80BDA30
- lsls r0, 24
- lsrs r0, 24
- b _080BDAAE
- .align 2, 0
-_080BDAA4: .4byte gSpecialVar_0x8004
-_080BDAA8: .4byte gSaveBlock1 + 0x2738
-_080BDAAC:
- ldrb r0, [r2]
-_080BDAAE:
- pop {r1}
- bx r1
- thumb_func_end special_0x4a
-
- thumb_func_start ResetGabbyAndTy
-ResetGabbyAndTy: @ 80BDAB4
- push {r4,lr}
- ldr r2, _080BDAF8 @ =gSaveBlock1
- ldr r1, _080BDAFC @ =0x00002b10
- adds r0, r2, r1
- movs r3, 0
- movs r1, 0
- strh r1, [r0]
- ldr r4, _080BDB00 @ =0x00002b12
- adds r0, r2, r4
- strh r1, [r0]
- adds r4, 0x2
- adds r0, r2, r4
- strh r1, [r0]
- ldr r0, _080BDB04 @ =0x00002b16
- adds r1, r2, r0
- ldr r0, _080BDB08 @ =0x0000ffff
- strh r0, [r1]
- adds r4, 0x6
- adds r1, r2, r4
- movs r0, 0
- strb r0, [r1]
- ldr r0, _080BDB0C @ =0x00002b1b
- adds r1, r2, r0
- movs r0, 0
- strb r0, [r1]
- ldr r1, _080BDB10 @ =0x00002b18
- adds r0, r2, r1
- strb r3, [r0]
- subs r4, 0x1
- adds r2, r4
- strb r3, [r2]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BDAF8: .4byte gSaveBlock1
-_080BDAFC: .4byte 0x00002b10
-_080BDB00: .4byte 0x00002b12
-_080BDB04: .4byte 0x00002b16
-_080BDB08: .4byte 0x0000ffff
-_080BDB0C: .4byte 0x00002b1b
-_080BDB10: .4byte 0x00002b18
- thumb_func_end ResetGabbyAndTy
-
thumb_func_start GabbyAndTyBeforeInterview
GabbyAndTyBeforeInterview: @ 80BDB14
push {r4,r5,lr}
diff --git a/include/global.h b/include/global.h
index efe67c55c..8db05ba9f 100644
--- a/include/global.h
+++ b/include/global.h
@@ -94,7 +94,7 @@ struct UCoords16
struct SecretBaseRecord
{
- /*0x1A08*/ u8 sbr_field_0; // ID?
+ /*ID?*/ /*0x1A08*/ u8 sbr_field_0;
/*0x1A09*/ u8 sbr_field_1_0:4;
/*0x1A09*/ u8 gender:1;
/*0x1A09*/ u8 sbr_field_1_5:1;
@@ -445,18 +445,18 @@ struct UnknownSaveStruct2ABC {
};
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;
+ /*2b10*/ u16 mon1;
+ /*2b12*/ u16 mon2;
+ /*2b14*/ u16 move1;
+ /*2b16*/ u16 move2;
+ /*2b18*/ u8 mapnum;
+ /*2b19*/ u8 val9;
+ /*2b1a*/ u8 valA_0:1;
+ /*2b1a*/ u8 valA_1:1;
+ /*2b1a*/ u8 valA_2:1;
+ /*2b1a*/ u8 valA_3:1;
+ /*2b1a*/ u8 valA_4:4;
+ /*2b1b*/ u8 valB;
};
struct RecordMixing_UnknownStruct {
@@ -524,7 +524,7 @@ struct SaveBlock1 /* 0x02025734 */
/*0x2B0C*/ u8 outbreakUnk4;
/*0x2B0D*/ u8 outbreakPokemonProbability;
/*0x2B0E*/ u16 outbreakUnk5;
- /*0x2B18*/ struct GabbyAndTyData gabbyAndTyData;
+ /*0x2B10*/ struct GabbyAndTyData gabbyAndTyData;
/*0x2B1C*/ u16 unk2B1C[6];
/*0x2B28*/ u16 unk2B28[6];
/*0x2B34*/ u16 unk2B34[6];
@@ -607,11 +607,11 @@ struct SaveBlock2 /* 0x02024EA4 */
/*0x10*/ u8 playTimeMinutes;
/*0x11*/ u8 playTimeSeconds;
/*0x12*/ u8 playTimeVBlanks;
- /*0x13*/ u8 optionsButtonMode; // OPTIONS_BUTTON_MODE_[NORMAL/LR/L_EQUALS_A]
- /*0x14*/ u16 optionsTextSpeed:3; // OPTIONS_TEXT_SPEED_[SLOW/MID/FAST]
+ /*OPTIONS_BUTTON_MODE_[NORMAL/LR/L_EQUALS_A]*/ /*0x13*/ u8 optionsButtonMode;
+ /*OPTIONS_TEXT_SPEED_[SLOW/MID/FAST]*/ /*0x14*/ u16 optionsTextSpeed:3;
u16 optionsWindowFrameType:5; // Specifies one of the 20 decorative borders for text boxes
- u16 optionsSound:1; // OPTIONS_SOUND_[MONO/STEREO]
- u16 optionsBattleStyle:1; // OPTIONS_BATTLE_STYLE_[SHIFT/SET]
+ /*OPTIONS_SOUND_[MONO/STEREO]*/ u16 optionsSound:1;
+ /*OPTIONS_BATTLE_STYLE_[SHIFT/SET]*/ u16 optionsBattleStyle:1;
u16 optionsBattleSceneOff:1; // whether battle animations are disabled
u16 regionMapZoom:1; // whether the map is zoomed in
/*0x18*/ struct Pokedex pokedex;
diff --git a/src/tv.c b/src/tv.c
index af86a335b..521bbcb74 100755
--- a/src/tv.c
+++ b/src/tv.c
@@ -365,6 +365,85 @@ u8 sub_80BDA30(void)
return 0xff;
}
+u8 special_0x4a(void)
+{
+ TVShow *tvShow;
+ tvShow = &gSaveBlock1.tvShows[gSpecialVar_0x8004];
+ if (tvShow->common.var00 == TVSHOW_MASS_OUTBREAK && gSaveBlock1.outbreakPokemonSpecies)
+ {
+ return sub_80BDA30();
+ }
+ return gSpecialVar_0x8004;
+}
+
+#ifdef NONMATCHING
+void ResetGabbyAndTy(void)
+{
+ gSaveBlock1.gabbyAndTyData.mon1 = 0;
+ gSaveBlock1.gabbyAndTyData.mon2 = 0;
+ gSaveBlock1.gabbyAndTyData.move1 = 0;
+ gSaveBlock1.gabbyAndTyData.move2 = 0xffff;
+ gSaveBlock1.gabbyAndTyData.valA_0 = 0;
+ gSaveBlock1.gabbyAndTyData.valA_1 = 0;
+ gSaveBlock1.gabbyAndTyData.valA_2 = 0;
+ gSaveBlock1.gabbyAndTyData.valA_3 = 0;
+ gSaveBlock1.gabbyAndTyData.valA_4 = 0;
+ gSaveBlock1.gabbyAndTyData.valB = 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
+
+
asm(".section .text_a");
s8 sub_80BF74C(TVShow tvShow[]);