ResetGabbyAndTy (nonmatching)

This commit is contained in:
Scott Norton 2017-05-30 08:38:05 -04:00 committed by PikalaxALT
parent e78a3021bb
commit 2cd382d3c6
3 changed files with 97 additions and 97 deletions

View File

@ -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}

View File

@ -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;

View File

@ -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[]);