sub_8111AD8

This commit is contained in:
PikalaxALT
2018-10-12 08:47:12 -04:00
parent 1125d6627e
commit 6b0f3451b8
2 changed files with 46 additions and 93 deletions
-83
View File
@@ -5,89 +5,6 @@
.text
thumb_func_start sub_8111AD8
sub_8111AD8: @ 8111AD8
push {r4,r5,lr}
ldr r4, _08111B58 @ =gUnknown_203AE94
ldrb r1, [r4]
movs r0, 0xF
ands r0, r1
cmp r0, 0x1
bne _08111B0A
ldrb r0, [r4, 0x2]
subs r0, 0x1
strb r0, [r4, 0x2]
lsls r0, 24
cmp r0, 0
bne _08111B78
movs r0, 0x10
negs r0, r0
ands r0, r1
movs r1, 0x31
negs r1, r1
ands r0, r1
movs r1, 0x10
orrs r0, r1
strb r0, [r4]
movs r0, 0x2
bl sub_8112888
_08111B0A:
ldrb r1, [r4]
movs r0, 0x30
ands r0, r1
cmp r0, 0x10
bne _08111B34
ldrb r0, [r4, 0x3]
adds r0, 0x1
strb r0, [r4, 0x3]
lsls r0, 24
lsrs r0, 24
cmp r0, 0xF
bls _08111B34
bl sub_8111E20
ldrb r0, [r4]
movs r1, 0x31
negs r1, r1
ands r1, r0
strb r1, [r4]
movs r0, 0
strb r0, [r4, 0x3]
_08111B34:
ldr r4, _08111B58 @ =gUnknown_203AE94
ldrb r0, [r4, 0x1]
cmp r0, 0x1F
bhi _08111B78
ldr r5, _08111B5C @ =gUnknown_203AE0C
lsls r0, 2
adds r0, r5
ldr r0, [r0]
bl sub_8113B44
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _08111B60
bl sub_8111B80
b _08111B78
.align 2, 0
_08111B58: .4byte gUnknown_203AE94
_08111B5C: .4byte gUnknown_203AE0C
_08111B60:
ldrb r0, [r4, 0x1]
lsls r0, 2
adds r0, r5
ldr r0, [r0]
bl sub_8113AE8
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _08111B78
bl sub_8111B80
_08111B78:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_8111AD8
thumb_func_start sub_8111B80
sub_8111B80: @ 8111B80
push {r4,lr}
+46 -10
View File
@@ -29,6 +29,8 @@ struct UnkStruct_203AE94
u8 unk_0_4:2;
u8 unk_0_6:2;
u8 unk_1;
u8 unk_2;
u8 unk_3;
};
struct UnkStruct_203AE98
@@ -70,24 +72,29 @@ void sub_811175C(u8, struct UnkStruct_203AE98 *);
void sub_81118F4(s8);
void sub_8111914(void);
void sub_8111984(void);
void sub_8112364(void);
void sub_8111A34(u8);
bool8 sub_8111F60(void);
void * sub_8113D08(void *, struct UnkStruct_203AE98 *);
void * sub_8113D94(void *, struct UnkStruct_203AE98 *);
void * sub_8113C20(void *, struct UnkStruct_203AE98 *);
void * sub_8113C8C(void *, struct UnkStruct_203AE98 *);
void * sub_8113A78(void *, void **);
void sub_8113ABC(void *);
void sub_81138F8(void);
void sub_8111AD8(void);
void sub_8111B80(void);
void sub_8111E20(void);
bool8 sub_8111F60(void);
void sub_8112364(void);
void sub_8112888(u8);
void sub_8112940(u8, struct UnkStruct_203AE98 *, u16);
void sub_811381C(void);
void sub_81138F8(void);
void * sub_8113A78(void *, void **);
void sub_8113ABC(void *);
bool8 sub_8113AE8(void *);
bool8 sub_8113B44(void *);
void sub_8113B88(void);
void sub_8113BD8(void);
void * sub_8113BF4(void *);
void * sub_8113D48(void *, struct UnkStruct_203AE98 *);
void * sub_8113C20(void *, struct UnkStruct_203AE98 *);
void * sub_8113C8C(void *, struct UnkStruct_203AE98 *);
void * sub_8113CC8(void *, struct UnkStruct_203AE98 *);
void * sub_8113D08(void *, struct UnkStruct_203AE98 *);
void * sub_8113D48(void *, struct UnkStruct_203AE98 *);
void * sub_8113D94(void *, struct UnkStruct_203AE98 *);
extern const u8 gUnknown_841A155[];
@@ -980,3 +987,32 @@ void sub_8111A34(u8 taskId)
break;
}
}
void sub_8111AD8(void)
{
if (gUnknown_203AE94.unk_0_0 == 1)
{
if (--gUnknown_203AE94.unk_2 != 0)
return;
gUnknown_203AE94.unk_0_0 = 0;
gUnknown_203AE94.unk_0_4 = 1;
sub_8112888(2);
}
if (gUnknown_203AE94.unk_0_4 == 1)
{
if (++gUnknown_203AE94.unk_3 > 15)
{
sub_8111E20();
gUnknown_203AE94.unk_0_4 = 0;
gUnknown_203AE94.unk_3 = 0;
}
}
if (gUnknown_203AE94.unk_1 < 32)
{
if (sub_8113B44(gUnknown_203AE0C[gUnknown_203AE94.unk_1]) == 1)
sub_8111B80();
else if (sub_8113AE8(gUnknown_203AE0C[gUnknown_203AE94.unk_1]) == 1)
sub_8111B80();
}
}