sub_813504C
This commit is contained in:
parent
dfa5f24e59
commit
1b3fcb83f2
2 changed files with 51 additions and 88 deletions
|
@ -5,90 +5,6 @@
|
||||||
|
|
||||||
.text
|
.text
|
||||||
|
|
||||||
thumb_func_start sub_813504C
|
|
||||||
sub_813504C: @ 813504C
|
|
||||||
push {r4-r6,lr}
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r3, r0, 24
|
|
||||||
lsls r1, 24
|
|
||||||
lsrs r4, r1, 24
|
|
||||||
cmp r4, 0x1
|
|
||||||
beq _08135060
|
|
||||||
cmp r4, 0x2
|
|
||||||
beq _081350A0
|
|
||||||
b _081350DE
|
|
||||||
_08135060:
|
|
||||||
ldr r0, =gTasks
|
|
||||||
lsls r1, r3, 2
|
|
||||||
adds r1, r3
|
|
||||||
lsls r1, 3
|
|
||||||
adds r1, r0
|
|
||||||
ldrh r2, [r1, 0xE]
|
|
||||||
movs r5, 0xE
|
|
||||||
ldrsh r0, [r1, r5]
|
|
||||||
cmp r0, 0
|
|
||||||
ble _08135080
|
|
||||||
subs r0, r2, 0x1
|
|
||||||
strh r0, [r1, 0xE]
|
|
||||||
b _081350DE
|
|
||||||
.pool
|
|
||||||
_08135080:
|
|
||||||
movs r0, 0x3B
|
|
||||||
strh r0, [r1, 0xE]
|
|
||||||
ldrh r2, [r1, 0xC]
|
|
||||||
movs r6, 0xC
|
|
||||||
ldrsh r0, [r1, r6]
|
|
||||||
cmp r0, 0
|
|
||||||
ble _08135092
|
|
||||||
subs r0, r2, 0x1
|
|
||||||
b _08135094
|
|
||||||
_08135092:
|
|
||||||
movs r0, 0x17
|
|
||||||
_08135094:
|
|
||||||
strh r0, [r1, 0xC]
|
|
||||||
adds r0, r3, 0
|
|
||||||
adds r1, r4, 0
|
|
||||||
bl sub_81350E8
|
|
||||||
b _081350DE
|
|
||||||
_081350A0:
|
|
||||||
ldr r0, =gTasks
|
|
||||||
lsls r1, r3, 2
|
|
||||||
adds r1, r3
|
|
||||||
lsls r1, 3
|
|
||||||
adds r1, r0
|
|
||||||
ldrh r2, [r1, 0xE]
|
|
||||||
movs r5, 0xE
|
|
||||||
ldrsh r0, [r1, r5]
|
|
||||||
cmp r0, 0x3A
|
|
||||||
bgt _081350C0
|
|
||||||
adds r0, r2, 0x1
|
|
||||||
strh r0, [r1, 0xE]
|
|
||||||
b _081350DE
|
|
||||||
.pool
|
|
||||||
_081350C0:
|
|
||||||
movs r5, 0
|
|
||||||
strh r5, [r1, 0xE]
|
|
||||||
ldrh r2, [r1, 0xC]
|
|
||||||
movs r6, 0xC
|
|
||||||
ldrsh r0, [r1, r6]
|
|
||||||
cmp r0, 0x16
|
|
||||||
bgt _081350D4
|
|
||||||
adds r0, r2, 0x1
|
|
||||||
strh r0, [r1, 0xC]
|
|
||||||
b _081350D6
|
|
||||||
_081350D4:
|
|
||||||
strh r5, [r1, 0xC]
|
|
||||||
_081350D6:
|
|
||||||
adds r0, r3, 0
|
|
||||||
adds r1, r4, 0
|
|
||||||
bl sub_81350E8
|
|
||||||
_081350DE:
|
|
||||||
movs r0, 0
|
|
||||||
pop {r4-r6}
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
thumb_func_end sub_813504C
|
|
||||||
|
|
||||||
thumb_func_start sub_81350E8
|
thumb_func_start sub_81350E8
|
||||||
sub_81350E8: @ 81350E8
|
sub_81350E8: @ 81350E8
|
||||||
push {lr}
|
push {lr}
|
||||||
|
|
|
@ -34,8 +34,9 @@ static void sub_8134F10(u8 taskId);
|
||||||
static void sub_8134F40(u8 taskId);
|
static void sub_8134F40(u8 taskId);
|
||||||
static void sub_8134F78(u8 taskId);
|
static void sub_8134F78(u8 taskId);
|
||||||
static void sub_8134FB0(u8 taskId);
|
static void sub_8134FB0(u8 taskId);
|
||||||
static u16 sub_8134FFC(u16 a0, u8 a1, u8 a2);
|
static u16 sub_8134FFC(u16 a0, u8 command, u8 a2);
|
||||||
void sub_813504C(u8 taskId, u8 a1);
|
static bool32 sub_813504C(u8 taskId, u8 command);
|
||||||
|
void sub_81350E8(u8 taskId, u8 command);
|
||||||
void sub_8135130(u8 taskId);
|
void sub_8135130(u8 taskId);
|
||||||
void sub_81351AC(struct Sprite *sprite);
|
void sub_81351AC(struct Sprite *sprite);
|
||||||
void sub_8135244(struct Sprite *sprite);
|
void sub_8135244(struct Sprite *sprite);
|
||||||
|
@ -816,10 +817,10 @@ static u8 sub_8134FD4(u16 a0)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static u16 sub_8134FFC(u16 a0, u8 a1, u8 a2)
|
static u16 sub_8134FFC(u16 a0, u8 command, u8 a2)
|
||||||
{
|
{
|
||||||
u8 r1 = sub_8134FD4(a2);
|
u8 r1 = sub_8134FD4(a2);
|
||||||
switch (a1)
|
switch (command)
|
||||||
{
|
{
|
||||||
case 1:
|
case 1:
|
||||||
if (a0) a0 -= r1;
|
if (a0) a0 -= r1;
|
||||||
|
@ -832,3 +833,49 @@ static u16 sub_8134FFC(u16 a0, u8 a1, u8 a2)
|
||||||
}
|
}
|
||||||
return a0;
|
return a0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static bool32 sub_813504C(u8 taskId, u8 command)
|
||||||
|
{
|
||||||
|
switch (command)
|
||||||
|
{
|
||||||
|
case 1:
|
||||||
|
if (gTasks[taskId].data[3] > 0)
|
||||||
|
{
|
||||||
|
gTasks[taskId].data[3]--;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
gTasks[taskId].data[3] = 59;
|
||||||
|
if (gTasks[taskId].data[2] > 0)
|
||||||
|
{
|
||||||
|
gTasks[taskId].data[2]--;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
gTasks[taskId].data[2] = 23;
|
||||||
|
}
|
||||||
|
sub_81350E8(taskId, command);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
if (gTasks[taskId].data[3] < 59)
|
||||||
|
{
|
||||||
|
gTasks[taskId].data[3]++;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
gTasks[taskId].data[3] = 0;
|
||||||
|
if (gTasks[taskId].data[2] < 23)
|
||||||
|
{
|
||||||
|
gTasks[taskId].data[2]++;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
gTasks[taskId].data[2] = 0;
|
||||||
|
}
|
||||||
|
sub_81350E8(taskId, command);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue