through sub_800D658

This commit is contained in:
PikalaxALT 2017-11-30 22:05:07 -05:00
parent f974812e9b
commit 9f4ecadbfa
2 changed files with 54 additions and 103 deletions

View file

@ -5,106 +5,6 @@
.text
thumb_func_start sub_800D610
sub_800D610: @ 800D610
push {lr}
ldr r1, =gUnknown_03004140
ldrb r0, [r1, 0x2]
cmp r0, 0
beq _0800D628
ldrb r0, [r1, 0x2]
movs r0, 0
strb r0, [r1, 0x2]
movs r0, 0x45
movs r1, 0
bl sub_800D30C
_0800D628:
pop {r0}
bx r0
.pool
thumb_func_end sub_800D610
thumb_func_start sub_800D630
sub_800D630: @ 800D630
push {lr}
ldr r1, =gUnknown_03004140
ldrb r0, [r1, 0x2]
cmp r0, 0
bne _0800D648
movs r0, 0x45
movs r1, 0
bl sub_800D30C
b _0800D654
.pool
_0800D648:
ldrb r0, [r1, 0x2]
cmp r0, 0x1
bne _0800D654
ldrb r0, [r1, 0x2]
movs r0, 0x2
strb r0, [r1, 0x2]
_0800D654:
pop {r0}
bx r0
thumb_func_end sub_800D630
thumb_func_start sub_800D658
sub_800D658: @ 800D658
push {lr}
ldr r0, =gUnknown_03004140
ldrb r1, [r0, 0x7]
adds r2, r0, 0
cmp r1, 0
beq _0800D6C2
ldrb r0, [r2, 0x4]
subs r0, 0x5
cmp r0, 0x6
bhi _0800D6C2
lsls r0, 2
ldr r1, =_0800D680
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_0800D680:
.4byte _0800D69C
.4byte _0800D6A4
.4byte _0800D6AE
.4byte _0800D6AE
.4byte _0800D6B4
.4byte _0800D6B4
.4byte _0800D6BA
_0800D69C:
movs r0, 0x3
strb r0, [r2, 0x7]
movs r0, 0x9
b _0800D6C0
_0800D6A4:
movs r0, 0x2
strb r0, [r2, 0x7]
movs r0, 0x1
strh r0, [r2, 0x1A]
b _0800D6C2
_0800D6AE:
movs r0, 0x2
strb r0, [r2, 0x7]
b _0800D6C2
_0800D6B4:
movs r0, 0x28
strh r0, [r2, 0x1A]
b _0800D6C2
_0800D6BA:
movs r0, 0x28
strh r0, [r2, 0x1A]
movs r0, 0xA
_0800D6C0:
strb r0, [r2, 0x4]
_0800D6C2:
pop {r0}
bx r0
thumb_func_end sub_800D658
@ file boundary?
thumb_func_start sub_800D6C8

View file

@ -32,11 +32,11 @@ static void sub_800D158(void);
static void sub_800D20C(void);
static void sub_800D268(void);
static u8 sub_800D294(void);
void sub_800D30C(u8 a0, u8 a1);
static void sub_800D30C(u8 a0, u8 a1);
static void sub_800D334(u8 a0);
static void sub_800D358(u8 a0);
static void sub_800D434(void);
void sub_800D610(void);
static void sub_800D610(void);
void sub_800D630(void);
// .rodata
@ -1209,7 +1209,7 @@ static u8 sub_800D294(void)
return flags;
}
void sub_800D30C(u8 a0, u8 a1)
static void sub_800D30C(u8 a0, u8 a1)
{
if (gUnknown_03004140.unk_40 != NULL)
{
@ -1362,3 +1362,54 @@ u8 sub_800D5D0(u8 a0)
}
return 0;
}
static void sub_800D610(void)
{
if (gUnknown_03004140.unk_02)
{
gUnknown_03004140.unk_02 = 0;
sub_800D30C(0x45, 0x00);
}
}
void sub_800D630(void)
{
if (gUnknown_03004140.unk_02 == 0)
{
sub_800D30C(0x45, 0x00);
}
else if (gUnknown_03004140.unk_02 == 1)
{
gUnknown_03004140.unk_02 = 2;
}
}
void sub_800D658(void)
{
if (gUnknown_03004140.unk_07)
{
switch (gUnknown_03004140.unk_04)
{
case 5:
gUnknown_03004140.unk_07 = 3;
gUnknown_03004140.unk_04 = 9;
break;
case 6:
gUnknown_03004140.unk_07 = 2;
gUnknown_03004140.unk_1a = 1;
break;
case 7:
case 8:
gUnknown_03004140.unk_07 = 2;
break;
case 9:
case 10:
gUnknown_03004140.unk_1a = 40;
break;
case 11:
gUnknown_03004140.unk_1a = 40;
gUnknown_03004140.unk_04 = 10;
break;
}
}
}