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
|
.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
|
thumb_func_start sub_811A4D0
|
||||||
sub_811A4D0: @ 811A4D0
|
sub_811A4D0: @ 811A4D0
|
||||||
push {r4,lr}
|
push {r4,lr}
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
// Static RAM declarations
|
// Static RAM declarations
|
||||||
static void sub_811A2C0(u8);
|
static void sub_811A2C0(u8);
|
||||||
static void sub_811A278(void);
|
static void sub_811A278(void);
|
||||||
/*static*/ bool8 sub_811A428(u8);
|
static bool8 sub_811A428(u8);
|
||||||
static void sub_811A2FC(u8);
|
static void sub_811A2FC(u8);
|
||||||
/*static*/ u16 sub_811AAAC(void);
|
/*static*/ u16 sub_811AAAC(void);
|
||||||
/*static*/ bool32 sub_811A88C(u16);
|
/*static*/ bool32 sub_811A88C(u16);
|
||||||
|
@ -22,6 +22,10 @@ static void sub_811A2FC(u8);
|
||||||
/*static*/ bool8 sub_811C170(void);
|
/*static*/ bool8 sub_811C170(void);
|
||||||
/*static*/ void sub_811A8A4(u16);
|
/*static*/ void sub_811A8A4(u16);
|
||||||
/*static*/ void sub_811A4D0(u32);
|
/*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
|
// Static ROM declarations
|
||||||
|
|
||||||
|
@ -139,3 +143,47 @@ static void sub_811A2FC(u8 taskId)
|
||||||
break;
|
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