sub_811A428
This commit is contained in:
parent
0984461aeb
commit
cdfdd2a29a
2 changed files with 49 additions and 80 deletions
|
@ -5,85 +5,6 @@
|
|||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_811A428
|
||||
sub_811A428: @ 811A428
|
||||
push {r4-r6,lr}
|
||||
lsls r0, 24
|
||||
lsrs r5, r0, 24
|
||||
lsls r0, r5, 2
|
||||
adds r0, r5
|
||||
lsls r0, 3
|
||||
ldr r1, =gTasks + 0x8
|
||||
adds r6, r0, r1
|
||||
movs r1, 0
|
||||
ldrsh r0, [r6, r1]
|
||||
cmp r0, 0x4
|
||||
bhi _0811A4BC
|
||||
lsls r0, 2
|
||||
ldr r1, =_0811A454
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.pool
|
||||
.align 2, 0
|
||||
_0811A454:
|
||||
.4byte _0811A468
|
||||
.4byte _0811A47C
|
||||
.4byte _0811A482
|
||||
.4byte _0811A498
|
||||
.4byte _0811A4B0
|
||||
_0811A468:
|
||||
movs r0, 0
|
||||
bl SetVBlankCallback
|
||||
bl ResetSpriteData
|
||||
bl FreeAllSpritePalettes
|
||||
bl ResetPaletteFade
|
||||
b _0811A4C0
|
||||
_0811A47C:
|
||||
bl sub_811F28C
|
||||
b _0811A49C
|
||||
_0811A482:
|
||||
ldrb r4, [r6, 0x2]
|
||||
adds r0, r5, 0
|
||||
movs r1, 0x2
|
||||
bl GetWordTaskArg
|
||||
adds r1, r0, 0
|
||||
ldrb r2, [r6, 0xE]
|
||||
adds r0, r4, 0
|
||||
bl sub_811A95C
|
||||
b _0811A49C
|
||||
_0811A498:
|
||||
bl sub_811BF8C
|
||||
_0811A49C:
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _0811A4C0
|
||||
adds r0, r5, 0
|
||||
movs r1, 0x4
|
||||
bl GetWordTaskArg
|
||||
bl sub_811A4D0
|
||||
b _0811A4C0
|
||||
_0811A4B0:
|
||||
bl sub_811BFA4
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0811A4C0
|
||||
b _0811A4C6
|
||||
_0811A4BC:
|
||||
movs r0, 0
|
||||
b _0811A4C8
|
||||
_0811A4C0:
|
||||
ldrh r0, [r6]
|
||||
adds r0, 0x1
|
||||
strh r0, [r6]
|
||||
_0811A4C6:
|
||||
movs r0, 0x1
|
||||
_0811A4C8:
|
||||
pop {r4-r6}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_811A428
|
||||
|
||||
thumb_func_start sub_811A4D0
|
||||
sub_811A4D0: @ 811A4D0
|
||||
push {r4,lr}
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
// Static RAM declarations
|
||||
static void sub_811A2C0(u8);
|
||||
static void sub_811A278(void);
|
||||
/*static*/ bool8 sub_811A428(u8);
|
||||
static bool8 sub_811A428(u8);
|
||||
static void sub_811A2FC(u8);
|
||||
/*static*/ u16 sub_811AAAC(void);
|
||||
/*static*/ bool32 sub_811A88C(u16);
|
||||
|
@ -22,6 +22,10 @@ static void sub_811A2FC(u8);
|
|||
/*static*/ bool8 sub_811C170(void);
|
||||
/*static*/ void sub_811A8A4(u16);
|
||||
/*static*/ void sub_811A4D0(u32);
|
||||
bool8 sub_811F28C(void);
|
||||
bool8 sub_811A95C(u8, u32, u8);
|
||||
bool8 sub_811BF8C(void);
|
||||
bool8 sub_811BFA4(void);
|
||||
|
||||
// Static ROM declarations
|
||||
|
||||
|
@ -139,3 +143,47 @@ static void sub_811A2FC(u8 taskId)
|
|||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static bool8 sub_811A428(u8 taskId)
|
||||
{
|
||||
s16 *data;
|
||||
|
||||
data = gTasks[taskId].data;
|
||||
switch (data[0])
|
||||
{
|
||||
case 0:
|
||||
SetVBlankCallback(NULL);
|
||||
ResetSpriteData();
|
||||
FreeAllSpritePalettes();
|
||||
ResetPaletteFade();
|
||||
break;
|
||||
case 1:
|
||||
if (!sub_811F28C())
|
||||
{
|
||||
sub_811A4D0(GetWordTaskArg(taskId, 0x04));
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (!sub_811A95C(data[1], GetWordTaskArg(taskId, 0x02), data[7]))
|
||||
{
|
||||
sub_811A4D0(GetWordTaskArg(taskId, 0x04));
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if (!sub_811BF8C())
|
||||
{
|
||||
sub_811A4D0(GetWordTaskArg(taskId, 0x04));
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
if (sub_811BFA4())
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
return FALSE;
|
||||
}
|
||||
data[0] ++;
|
||||
return TRUE;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue