through sub_81042EC

This commit is contained in:
PikalaxALT
2019-12-11 20:30:09 -05:00
parent af1c24b751
commit e2a4da3a01
2 changed files with 163 additions and 484 deletions
-483
View File
@@ -5,489 +5,6 @@
.text
thumb_func_start sub_8104234
sub_8104234: @ 8104234
push {r4,lr}
sub sp, 0x10
mov r1, sp
ldr r0, _0810427C @ =gUnknown_84524B4
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldr r0, [r0]
str r0, [r1]
mov r1, sp
ldr r0, _08104280 @ =gUnknown_203ACF0
ldr r2, [r0]
adds r0, r2, 0
adds r0, 0x29
ldrb r0, [r0]
strh r0, [r1, 0x6]
adds r0, r2, 0
adds r0, 0x2A
ldrb r0, [r0]
subs r0, 0x1
strh r0, [r1, 0x8]
adds r0, r2, 0
adds r0, 0x2B
ldrb r0, [r0]
adds r1, r2, 0
adds r1, 0x62
strh r0, [r1]
mov r0, sp
bl AddScrollIndicatorArrowPair
lsls r0, 24
lsrs r0, 24
add sp, 0x10
pop {r4}
pop {r1}
bx r1
.align 2, 0
_0810427C: .4byte gUnknown_84524B4
_08104280: .4byte gUnknown_203ACF0
thumb_func_end sub_8104234
thumb_func_start sub_8104284
sub_8104284: @ 8104284
push {lr}
ldr r0, _081042B0 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x13]
cmp r0, 0x1
beq _081042C0
cmp r0, 0x1
ble _081042E6
cmp r0, 0x2
bne _081042E6
ldr r0, _081042B4 @ =gMain
ldr r2, [r0, 0x2C]
ldr r1, _081042B8 @ =0x00200100
adds r0, r2, 0
ands r0, r1
cmp r0, r1
beq _081042CE
ldr r0, _081042BC @ =0x00100100
ands r2, r0
cmp r2, r0
beq _081042E2
b _081042E6
.align 2, 0
_081042B0: .4byte gSaveBlock2Ptr
_081042B4: .4byte gMain
_081042B8: .4byte 0x00200100
_081042BC: .4byte 0x00100100
_081042C0:
ldr r0, _081042D4 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x80
lsls r0, 2
ands r0, r1
cmp r0, 0
beq _081042D8
_081042CE:
movs r0, 0x1
b _081042E8
.align 2, 0
_081042D4: .4byte gMain
_081042D8:
movs r0, 0x80
lsls r0, 1
ands r0, r1
cmp r0, 0
beq _081042E6
_081042E2:
movs r0, 0x2
b _081042E8
_081042E6:
movs r0, 0
_081042E8:
pop {r1}
bx r1
thumb_func_end sub_8104284
thumb_func_start sub_81042EC
sub_81042EC: @ 81042EC
push {r4,r5,lr}
sub sp, 0x8
lsls r0, 24
lsrs r4, r0, 24
ldr r1, _0810430C @ =gUnknown_203ACF0
ldr r0, [r1]
ldrb r0, [r0, 0x1]
adds r5, r1, 0
cmp r0, 0xC
bls _08104302
b _08104656
_08104302:
lsls r0, 2
ldr r1, _08104310 @ =_08104314
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0810430C: .4byte gUnknown_203ACF0
_08104310: .4byte _08104314
.align 2, 0
_08104314:
.4byte _08104348
.4byte _08104368
.4byte _08104398
.4byte _081043AC
.4byte _081043E0
.4byte _08104418
.4byte _08104508
.4byte _08104528
.4byte _08104538
.4byte _0810455C
.4byte _081045F2
.4byte _08104604
.4byte _08104630
_08104348:
movs r0, 0x3
bl HideBg
movs r0, 0x2
bl HideBg
movs r0, 0x1
bl HideBg
ldr r0, _08104364 @ =gUnknown_203ACF0
ldr r1, [r0]
movs r0, 0x2
b _08104654
.align 2, 0
_08104364: .4byte gUnknown_203ACF0
_08104368:
movs r0, 0x2
bl HideBg
movs r0, 0x1
bl HideBg
ldr r1, _0810438C @ =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
ldr r1, _08104390 @ =sub_8102F80
str r1, [r0]
ldr r0, _08104394 @ =gUnknown_203ACF0
ldr r1, [r0]
movs r0, 0
b _08104654
.align 2, 0
_0810438C: .4byte gTasks
_08104390: .4byte sub_8102F80
_08104394: .4byte gUnknown_203ACF0
_08104398:
ldr r0, [r5]
adds r0, 0x2C
movs r1, 0x1
strb r1, [r0]
movs r0, 0
bl sub_8105E1C
ldr r1, [r5]
movs r0, 0x3
b _08104654
_081043AC:
movs r0, 0x3
bl CopyBgTilemapBufferToVram
movs r0, 0x2
bl CopyBgTilemapBufferToVram
movs r0, 0x1
bl CopyBgTilemapBufferToVram
movs r0, 0
bl CopyBgTilemapBufferToVram
ldr r4, _081043DC @ =gUnknown_203ACF0
ldr r0, [r4]
adds r0, 0x5A
ldrh r0, [r0]
movs r1, 0
movs r2, 0x7D
movs r3, 0xA
bl PlayCry2
ldr r1, [r4]
movs r0, 0x4
b _08104654
.align 2, 0
_081043DC: .4byte gUnknown_203ACF0
_081043E0:
ldr r0, _0810440C @ =0xffff7fff
ldr r1, _08104410 @ =0x0000ffff
str r1, [sp]
movs r1, 0
movs r2, 0x10
movs r3, 0
bl BeginNormalPaletteFade
movs r0, 0x3
bl ShowBg
movs r0, 0x2
bl ShowBg
movs r0, 0x1
bl ShowBg
ldr r0, _08104414 @ =gUnknown_203ACF0
ldr r1, [r0]
movs r0, 0x5
b _08104654
.align 2, 0
_0810440C: .4byte 0xffff7fff
_08104410: .4byte 0x0000ffff
_08104414: .4byte gUnknown_203ACF0
_08104418:
ldr r0, _0810444C @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _08104454
bl sub_8106014
movs r0, 0x1E
str r0, [sp]
movs r0, 0x10
str r0, [sp, 0x4]
movs r0, 0x1
movs r1, 0
movs r2, 0
movs r3, 0x2
bl FillBgTilemapBufferRect_Palette0
movs r0, 0x1
bl CopyBgTilemapBufferToVram
ldr r0, _08104450 @ =gUnknown_203ACF0
ldr r1, [r0]
movs r0, 0x7
b _08104654
.align 2, 0
_0810444C: .4byte gMain
_08104450: .4byte gUnknown_203ACF0
_08104454:
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _08104484
bl sub_8106014
ldr r0, _08104478 @ =0xffff7fff
ldr r1, _0810447C @ =0x0000ffff
str r1, [sp]
movs r1, 0
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
ldr r0, _08104480 @ =gUnknown_203ACF0
ldr r1, [r0]
movs r0, 0x1
b _08104654
.align 2, 0
_08104478: .4byte 0xffff7fff
_0810447C: .4byte 0x0000ffff
_08104480: .4byte gUnknown_203ACF0
_08104484:
movs r0, 0x40
ands r0, r1
cmp r0, 0
beq _081044C0
movs r0, 0x1
bl sub_8104664
cmp r0, 0
beq _081044C0
bl sub_8106014
ldr r0, _081044B4 @ =0xffff7fff
ldr r1, _081044B8 @ =0x0000ffff
str r1, [sp]
movs r1, 0
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
ldr r0, _081044BC @ =gUnknown_203ACF0
ldr r1, [r0]
movs r0, 0x6
b _08104654
.align 2, 0
_081044B4: .4byte 0xffff7fff
_081044B8: .4byte 0x0000ffff
_081044BC: .4byte gUnknown_203ACF0
_081044C0:
ldr r0, _081044F8 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _081044CE
b _081045EC
_081044CE:
movs r0, 0
bl sub_8104664
cmp r0, 0
bne _081044DA
b _081045EC
_081044DA:
bl sub_8106014
ldr r0, _081044FC @ =0xffff7fff
ldr r1, _08104500 @ =0x0000ffff
str r1, [sp]
movs r1, 0
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
ldr r0, _08104504 @ =gUnknown_203ACF0
ldr r1, [r0]
movs r0, 0x6
b _08104654
.align 2, 0
_081044F8: .4byte gMain
_081044FC: .4byte 0xffff7fff
_08104500: .4byte 0x0000ffff
_08104504: .4byte gUnknown_203ACF0
_08104508:
movs r0, 0x2
bl HideBg
movs r0, 0x1
bl HideBg
ldr r0, _08104524 @ =gUnknown_203ACF0
ldr r1, [r0]
ldr r0, [r1, 0x30]
adds r2, r1, 0
adds r2, 0x5A
strh r0, [r2]
movs r0, 0x2
b _08104654
.align 2, 0
_08104524: .4byte gUnknown_203ACF0
_08104528:
bl sub_810603C
ldr r0, _08104534 @ =gUnknown_203ACF0
ldr r1, [r0]
movs r0, 0x8
b _08104654
.align 2, 0
_08104534: .4byte gUnknown_203ACF0
_08104538:
movs r0, 0x3
bl CopyBgTilemapBufferToVram
movs r0, 0x2
bl CopyBgTilemapBufferToVram
movs r0, 0x1
bl CopyBgTilemapBufferToVram
movs r0, 0
bl CopyBgTilemapBufferToVram
ldr r0, _08104558 @ =gUnknown_203ACF0
ldr r1, [r0]
movs r0, 0x9
b _08104654
.align 2, 0
_08104558: .4byte gUnknown_203ACF0
_0810455C:
ldr r0, _08104580 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _08104590
ldr r0, _08104584 @ =0xffff7fff
ldr r1, _08104588 @ =0x0000ffff
str r1, [sp]
movs r1, 0
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
ldr r0, _0810458C @ =gUnknown_203ACF0
ldr r1, [r0]
movs r0, 0xC
b _08104654
.align 2, 0
_08104580: .4byte gMain
_08104584: .4byte 0xffff7fff
_08104588: .4byte 0x0000ffff
_0810458C: .4byte gUnknown_203ACF0
_08104590:
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _081045EC
movs r5, 0x1E
str r5, [sp]
movs r4, 0x10
str r4, [sp, 0x4]
movs r0, 0x2
movs r1, 0
movs r2, 0
movs r3, 0x2
bl FillBgTilemapBufferRect_Palette0
str r5, [sp]
str r4, [sp, 0x4]
movs r0, 0x1
movs r1, 0
movs r2, 0
movs r3, 0x2
bl FillBgTilemapBufferRect_Palette0
str r5, [sp]
str r4, [sp, 0x4]
movs r0, 0
movs r1, 0
movs r2, 0
movs r3, 0x2
bl FillBgTilemapBufferRect_Palette0
movs r0, 0x2
bl CopyBgTilemapBufferToVram
movs r0, 0x1
bl CopyBgTilemapBufferToVram
movs r0, 0
bl CopyBgTilemapBufferToVram
ldr r0, _081045E8 @ =gUnknown_203ACF0
ldr r1, [r0]
movs r0, 0xA
b _08104654
.align 2, 0
_081045E8: .4byte gUnknown_203ACF0
_081045EC:
bl sub_8106B34
b _08104656
_081045F2:
bl sub_81067C0
ldr r0, _08104600 @ =gUnknown_203ACF0
ldr r1, [r0]
movs r0, 0xB
b _08104654
.align 2, 0
_08104600: .4byte gUnknown_203ACF0
_08104604:
movs r0, 0
bl sub_8105E1C
movs r0, 0x3
bl CopyBgTilemapBufferToVram
movs r0, 0x2
bl CopyBgTilemapBufferToVram
movs r0, 0x1
bl CopyBgTilemapBufferToVram
movs r0, 0
bl CopyBgTilemapBufferToVram
ldr r0, _0810462C @ =gUnknown_203ACF0
ldr r1, [r0]
movs r0, 0x5
b _08104654
.align 2, 0
_0810462C: .4byte gUnknown_203ACF0
_08104630:
bl sub_81067C0
movs r0, 0x1E
str r0, [sp]
movs r0, 0x10
str r0, [sp, 0x4]
movs r0, 0
movs r1, 0
movs r2, 0
movs r3, 0x2
bl FillBgTilemapBufferRect_Palette0
movs r0, 0
bl CopyBgTilemapBufferToVram
ldr r0, _08104660 @ =gUnknown_203ACF0
ldr r1, [r0]
movs r0, 0x1
_08104654:
strb r0, [r1, 0x1]
_08104656:
add sp, 0x8
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08104660: .4byte gUnknown_203ACF0
thumb_func_end sub_81042EC
thumb_func_start sub_8104664
sub_8104664: @ 8104664
push {r4-r7,lr}
+163 -1
View File
@@ -92,9 +92,10 @@ void sub_8103924(const struct ListMenuTemplate * a0, u8 a1);
u8 sub_81039F0(void);
void sub_8103988(u8 a0);
void sub_8103AC8(u8 taskId);
int sub_8104284(void);
u8 sub_8104234(void);
int sub_8104284(void);
void sub_81042EC(u8 taskId);
bool32 sub_8104664(u8 a0);
void sub_81047B0(u8 *a0);
void sub_81047C8(u8 a0, u8 a1, const u8 *a2, u8 a3, u8 a4, u8 a5);
void sub_810491C(u8 a0, u8 a1, u16 a2, u8 a3, u8 a4, u8 a5);
@@ -143,6 +144,7 @@ extern const struct ScrollArrowsTemplate gUnknown_84520E4;
extern const struct PokedexScreenWindowGfx gUnknown_84520F4[];
extern const struct ListMenuWindowRect gUnknown_845218C;
extern const struct ScrollArrowsTemplate gUnknown_84521B4;
extern const struct ScrollArrowsTemplate gUnknown_84524B4;
extern const struct CursorStruct gUnknown_84524C4;
void sub_81024C0(void)
@@ -1163,3 +1165,163 @@ void sub_8103AC8(u8 taskId)
break;
}
}
u8 sub_8104234(void)
{
struct ScrollArrowsTemplate template = gUnknown_84524B4;
template.fullyUpThreshold = gUnknown_203ACF0->field_29;
template.fullyDownThreshold = gUnknown_203ACF0->field_2A - 1;
gUnknown_203ACF0->field_62 = gUnknown_203ACF0->field_2B;
return AddScrollIndicatorArrowPair(&template, &gUnknown_203ACF0->field_62);
}
int sub_8104284(void)
{
switch (gSaveBlock2Ptr->optionsButtonMode)
{
case OPTIONS_BUTTON_MODE_L_EQUALS_A:
// Using the JOY_HELD and JOY_NEW macros here does not match!
if ((gMain.heldKeys & R_BUTTON) && (gMain.newKeys & DPAD_LEFT))
return 1;
else if ((gMain.heldKeys & R_BUTTON) && (gMain.newKeys & DPAD_RIGHT))
return 2;
else
return 0;
case OPTIONS_BUTTON_MODE_LR:
if (gMain.newKeys & L_BUTTON)
return 1;
else if (gMain.newKeys & R_BUTTON)
return 2;
else
return 0;
default:
case OPTIONS_BUTTON_MODE_HELP:
return 0;
}
}
void sub_81042EC(u8 taskId)
{
switch (gUnknown_203ACF0->field_01)
{
case 0:
HideBg(3);
HideBg(2);
HideBg(1);
gUnknown_203ACF0->field_01 = 2;
break;
case 1:
HideBg(2);
HideBg(1);
gTasks[taskId].func = sub_8102F80;
gUnknown_203ACF0->field_01 = 0;
break;
case 2:
gUnknown_203ACF0->field_2C = 1;
sub_8105E1C(0);
gUnknown_203ACF0->field_01 = 3;
break;
case 3:
CopyBgTilemapBufferToVram(3);
CopyBgTilemapBufferToVram(2);
CopyBgTilemapBufferToVram(1);
CopyBgTilemapBufferToVram(0);
PlayCry2(gUnknown_203ACF0->field_5A, 0, 125, 10);
gUnknown_203ACF0->field_01 = 4;
break;
case 4:
BeginNormalPaletteFade(0xFFFF7FFF, 0, 16, 0, RGB_WHITEALPHA);
ShowBg(3);
ShowBg(2);
ShowBg(1);
gUnknown_203ACF0->field_01 = 5;
break;
case 5:
if (JOY_NEW(A_BUTTON))
{
sub_8106014();
FillBgTilemapBufferRect_Palette0(1, 0x000, 0, 2, 30, 16);
CopyBgTilemapBufferToVram(1);
gUnknown_203ACF0->field_01 = 7;
}
else if (JOY_NEW(B_BUTTON))
{
sub_8106014();
BeginNormalPaletteFade(0xFFFF7FFF, 0, 0, 16, RGB_WHITEALPHA);
gUnknown_203ACF0->field_01 = 1;
}
else if (JOY_NEW(DPAD_UP) && sub_8104664(1))
{
sub_8106014();
BeginNormalPaletteFade(0xFFFF7FFF, 0, 0, 16, RGB_WHITEALPHA);
gUnknown_203ACF0->field_01 = 6;
}
else if (JOY_NEW(DPAD_DOWN) && sub_8104664(0))
{
sub_8106014();
BeginNormalPaletteFade(0xFFFF7FFF, 0, 0, 16, RGB_WHITEALPHA);
gUnknown_203ACF0->field_01 = 6;
}
else
{
sub_8106B34();
}
break;
case 6:
HideBg(2);
HideBg(1);
gUnknown_203ACF0->field_5A = gUnknown_203ACF0->field_30;
gUnknown_203ACF0->field_01 = 2;
break;
case 7:
sub_810603C();
gUnknown_203ACF0->field_01 = 8;
break;
case 8:
CopyBgTilemapBufferToVram(3);
CopyBgTilemapBufferToVram(2);
CopyBgTilemapBufferToVram(1);
CopyBgTilemapBufferToVram(0);
gUnknown_203ACF0->field_01 = 9;
break;
case 9:
if (JOY_NEW(A_BUTTON))
{
BeginNormalPaletteFade(0xFFFF7FFF, 0, 0, 16, RGB_WHITEALPHA);
gUnknown_203ACF0->field_01 = 12;
}
else if (JOY_NEW(B_BUTTON))
{
FillBgTilemapBufferRect_Palette0(2, 0x000, 0, 2, 30, 16);
FillBgTilemapBufferRect_Palette0(1, 0x000, 0, 2, 30, 16);
FillBgTilemapBufferRect_Palette0(0, 0x000, 0, 2, 30, 16);
CopyBgTilemapBufferToVram(2);
CopyBgTilemapBufferToVram(1);
CopyBgTilemapBufferToVram(0);
gUnknown_203ACF0->field_01 = 10;
}
else
{
sub_8106B34();
}
break;
case 10:
sub_81067C0();
gUnknown_203ACF0->field_01 = 11;
break;
case 11:
sub_8105E1C(0);
CopyBgTilemapBufferToVram(3);
CopyBgTilemapBufferToVram(2);
CopyBgTilemapBufferToVram(1);
CopyBgTilemapBufferToVram(0);
gUnknown_203ACF0->field_01 = 5;
break;
case 12:
sub_81067C0();
FillBgTilemapBufferRect_Palette0(0, 0x000, 0, 2, 30, 16);
CopyBgTilemapBufferToVram(0);
gUnknown_203ACF0->field_01 = 1;
break;
}
}