through sub_811CF88
This commit is contained in:
@@ -5,514 +5,6 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_811CBE4
|
||||
sub_811CBE4: @ 811CBE4
|
||||
push {r4-r6,lr}
|
||||
sub sp, 0x4
|
||||
lsls r0, 24
|
||||
lsrs r6, r0, 24
|
||||
adds r0, r6, 0
|
||||
movs r1, 0
|
||||
bl GetWordTaskArg
|
||||
adds r5, r0, 0
|
||||
adds r0, 0x91
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
bne _0811CC1C
|
||||
ldr r0, _0811CC14 @ =gMain
|
||||
ldrh r1, [r0, 0x2C]
|
||||
movs r0, 0x2
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _0811CC1C
|
||||
ldr r1, _0811CC18 @ =sub_811CF88
|
||||
adds r0, r6, 0
|
||||
bl sub_811C718
|
||||
b _0811CD5A
|
||||
.align 2, 0
|
||||
_0811CC14: .4byte gMain
|
||||
_0811CC18: .4byte sub_811CF88
|
||||
_0811CC1C:
|
||||
adds r0, r5, 0
|
||||
adds r0, 0x92
|
||||
ldrh r1, [r0]
|
||||
adds r4, r0, 0
|
||||
cmp r1, 0x9
|
||||
bls _0811CC2A
|
||||
b _0811CD5A
|
||||
_0811CC2A:
|
||||
lsls r0, r1, 2
|
||||
ldr r1, _0811CC34 @ =_0811CC38
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_0811CC34: .4byte _0811CC38
|
||||
.align 2, 0
|
||||
_0811CC38:
|
||||
.4byte _0811CC60
|
||||
.4byte _0811CC7C
|
||||
.4byte _0811CCAC
|
||||
.4byte _0811CCC0
|
||||
.4byte _0811CCCC
|
||||
.4byte _0811CCE0
|
||||
.4byte _0811CCF0
|
||||
.4byte _0811CCF8
|
||||
.4byte _0811CD0C
|
||||
.4byte _0811CD38
|
||||
_0811CC60:
|
||||
movs r0, 0
|
||||
bl SetVBlankCallback
|
||||
adds r0, r5, 0
|
||||
adds r0, 0xA8
|
||||
adds r1, r5, 0
|
||||
adds r1, 0x98
|
||||
ldrh r1, [r1]
|
||||
bl sub_811D184
|
||||
movs r0, 0
|
||||
bl sub_811D830
|
||||
b _0811CD2A
|
||||
_0811CC7C:
|
||||
bl sub_811D280
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0
|
||||
bne _0811CD5A
|
||||
movs r1, 0x1
|
||||
negs r1, r1
|
||||
str r0, [sp]
|
||||
adds r0, r1, 0
|
||||
movs r2, 0x10
|
||||
movs r3, 0
|
||||
bl BeginNormalPaletteFade
|
||||
ldrh r0, [r4]
|
||||
adds r0, 0x1
|
||||
strh r0, [r4]
|
||||
ldr r0, _0811CCA8 @ =sub_811C6E8
|
||||
bl SetVBlankCallback
|
||||
b _0811CD5A
|
||||
.align 2, 0
|
||||
_0811CCA8: .4byte sub_811C6E8
|
||||
_0811CCAC:
|
||||
ldr r0, _0811CCBC @ =gPaletteFade
|
||||
ldrb r1, [r0, 0x7]
|
||||
movs r0, 0x80
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
bne _0811CD5A
|
||||
b _0811CD2A
|
||||
.align 2, 0
|
||||
_0811CCBC: .4byte gPaletteFade
|
||||
_0811CCC0:
|
||||
adds r0, r5, 0
|
||||
adds r0, 0x9C
|
||||
ldrb r0, [r0]
|
||||
bl sub_811D948
|
||||
b _0811CD2A
|
||||
_0811CCCC:
|
||||
adds r0, r5, 0
|
||||
adds r0, 0x96
|
||||
ldrh r0, [r0]
|
||||
adds r1, r5, 0
|
||||
adds r1, 0x9C
|
||||
ldrb r1, [r1]
|
||||
movs r2, 0
|
||||
bl sub_811DC54
|
||||
b _0811CD2A
|
||||
_0811CCE0:
|
||||
bl sub_811DD90
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _0811CD5A
|
||||
bl sub_811D2A8
|
||||
b _0811CD2A
|
||||
_0811CCF0:
|
||||
movs r0, 0x8
|
||||
bl sub_811D2EC
|
||||
b _0811CD2A
|
||||
_0811CCF8:
|
||||
bl sub_811D4EC
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _0811CD5A
|
||||
adds r1, r5, 0
|
||||
adds r1, 0x91
|
||||
movs r0, 0x1
|
||||
strb r0, [r1]
|
||||
b _0811CD2A
|
||||
_0811CD0C:
|
||||
ldr r0, _0811CD34 @ =gMain
|
||||
ldrh r1, [r0, 0x2E]
|
||||
movs r0, 0x3
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _0811CD5A
|
||||
movs r1, 0x1
|
||||
negs r1, r1
|
||||
movs r0, 0
|
||||
str r0, [sp]
|
||||
adds r0, r1, 0
|
||||
movs r2, 0
|
||||
movs r3, 0x10
|
||||
bl BeginNormalPaletteFade
|
||||
_0811CD2A:
|
||||
ldrh r0, [r4]
|
||||
adds r0, 0x1
|
||||
strh r0, [r4]
|
||||
b _0811CD5A
|
||||
.align 2, 0
|
||||
_0811CD34: .4byte gMain
|
||||
_0811CD38:
|
||||
ldr r0, _0811CD64 @ =gPaletteFade
|
||||
ldrb r1, [r0, 0x7]
|
||||
movs r0, 0x80
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
bne _0811CD5A
|
||||
ldr r0, [r5, 0x4]
|
||||
bl SetMainCallback2
|
||||
bl sub_811D29C
|
||||
adds r0, r5, 0
|
||||
bl Free
|
||||
adds r0, r6, 0
|
||||
bl DestroyTask
|
||||
_0811CD5A:
|
||||
add sp, 0x4
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0811CD64: .4byte gPaletteFade
|
||||
thumb_func_end sub_811CBE4
|
||||
|
||||
thumb_func_start sub_811CD68
|
||||
sub_811CD68: @ 811CD68
|
||||
push {r4-r6,lr}
|
||||
sub sp, 0x4
|
||||
lsls r0, 24
|
||||
lsrs r6, r0, 24
|
||||
adds r0, r6, 0
|
||||
movs r1, 0
|
||||
bl GetWordTaskArg
|
||||
adds r5, r0, 0
|
||||
ldr r0, _0811CD90 @ =gMain
|
||||
ldrh r1, [r0, 0x2E]
|
||||
movs r0, 0x2
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _0811CD98
|
||||
ldr r1, _0811CD94 @ =sub_811CF88
|
||||
adds r0, r6, 0
|
||||
bl sub_811C718
|
||||
b _0811CE3E
|
||||
.align 2, 0
|
||||
_0811CD90: .4byte gMain
|
||||
_0811CD94: .4byte sub_811CF88
|
||||
_0811CD98:
|
||||
adds r4, r5, 0
|
||||
adds r4, 0x92
|
||||
ldrh r0, [r4]
|
||||
cmp r0, 0x1
|
||||
beq _0811CDD2
|
||||
cmp r0, 0x1
|
||||
bgt _0811CDAC
|
||||
cmp r0, 0
|
||||
beq _0811CDB6
|
||||
b _0811CE3E
|
||||
_0811CDAC:
|
||||
cmp r0, 0x2
|
||||
beq _0811CE00
|
||||
cmp r0, 0x3
|
||||
beq _0811CE24
|
||||
b _0811CE3E
|
||||
_0811CDB6:
|
||||
movs r0, 0
|
||||
bl SetVBlankCallback
|
||||
adds r0, r5, 0
|
||||
adds r0, 0xA8
|
||||
adds r1, r5, 0
|
||||
adds r1, 0x98
|
||||
ldrh r1, [r1]
|
||||
bl sub_811D184
|
||||
movs r0, 0x3
|
||||
bl sub_811D830
|
||||
b _0811CE16
|
||||
_0811CDD2:
|
||||
bl sub_811D280
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0
|
||||
bne _0811CE3E
|
||||
movs r1, 0x1
|
||||
negs r1, r1
|
||||
str r0, [sp]
|
||||
adds r0, r1, 0
|
||||
movs r2, 0x10
|
||||
movs r3, 0
|
||||
bl BeginNormalPaletteFade
|
||||
ldrh r0, [r4]
|
||||
adds r0, 0x1
|
||||
strh r0, [r4]
|
||||
ldr r0, _0811CDFC @ =sub_811C6E8
|
||||
bl SetVBlankCallback
|
||||
b _0811CE3E
|
||||
.align 2, 0
|
||||
_0811CDFC: .4byte sub_811C6E8
|
||||
_0811CE00:
|
||||
ldr r0, _0811CE20 @ =gPaletteFade
|
||||
ldrb r1, [r0, 0x7]
|
||||
movs r0, 0x80
|
||||
ands r0, r1
|
||||
lsls r0, 24
|
||||
lsrs r1, r0, 24
|
||||
cmp r1, 0
|
||||
bne _0811CE3E
|
||||
adds r0, r5, 0
|
||||
adds r0, 0x9E
|
||||
strh r1, [r0]
|
||||
_0811CE16:
|
||||
ldrh r0, [r4]
|
||||
adds r0, 0x1
|
||||
strh r0, [r4]
|
||||
b _0811CE3E
|
||||
.align 2, 0
|
||||
_0811CE20: .4byte gPaletteFade
|
||||
_0811CE24:
|
||||
adds r1, r5, 0
|
||||
adds r1, 0x9E
|
||||
ldrh r0, [r1]
|
||||
adds r0, 0x1
|
||||
strh r0, [r1]
|
||||
lsls r0, 16
|
||||
lsrs r0, 16
|
||||
cmp r0, 0x14
|
||||
bls _0811CE3E
|
||||
ldr r1, _0811CE48 @ =sub_811CE4C
|
||||
adds r0, r6, 0
|
||||
bl sub_811C718
|
||||
_0811CE3E:
|
||||
add sp, 0x4
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0811CE48: .4byte sub_811CE4C
|
||||
thumb_func_end sub_811CD68
|
||||
|
||||
thumb_func_start sub_811CE4C
|
||||
sub_811CE4C: @ 811CE4C
|
||||
push {r4-r6,lr}
|
||||
lsls r0, 24
|
||||
lsrs r6, r0, 24
|
||||
adds r0, r6, 0
|
||||
movs r1, 0
|
||||
bl GetWordTaskArg
|
||||
adds r5, r0, 0
|
||||
adds r0, 0x91
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
bne _0811CE88
|
||||
ldr r0, _0811CE80 @ =gMain
|
||||
ldrh r1, [r0, 0x2E]
|
||||
movs r0, 0x2
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _0811CE88
|
||||
bl sub_811D5B0
|
||||
ldr r1, _0811CE84 @ =sub_811CF88
|
||||
adds r0, r6, 0
|
||||
bl sub_811C718
|
||||
b _0811CF7E
|
||||
.align 2, 0
|
||||
_0811CE80: .4byte gMain
|
||||
_0811CE84: .4byte sub_811CF88
|
||||
_0811CE88:
|
||||
adds r0, r5, 0
|
||||
adds r0, 0x92
|
||||
ldrh r1, [r0]
|
||||
adds r4, r0, 0
|
||||
cmp r1, 0x9
|
||||
bhi _0811CF7E
|
||||
lsls r0, r1, 2
|
||||
ldr r1, _0811CEA0 @ =_0811CEA4
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_0811CEA0: .4byte _0811CEA4
|
||||
.align 2, 0
|
||||
_0811CEA4:
|
||||
.4byte _0811CECC
|
||||
.4byte _0811CEE0
|
||||
.4byte _0811CEEC
|
||||
.4byte _0811CEFC
|
||||
.4byte _0811CF02
|
||||
.4byte _0811CF0E
|
||||
.4byte _0811CF14
|
||||
.4byte _0811CF28
|
||||
.4byte _0811CF46
|
||||
.4byte _0811CF6C
|
||||
_0811CECC:
|
||||
adds r0, r5, 0
|
||||
adds r0, 0x96
|
||||
ldrh r0, [r0]
|
||||
bl sub_811DCF0
|
||||
adds r1, r5, 0
|
||||
adds r1, 0x9E
|
||||
movs r0, 0
|
||||
strh r0, [r1]
|
||||
b _0811CF5E
|
||||
_0811CEE0:
|
||||
bl sub_811D2A8
|
||||
movs r0, 0x7
|
||||
bl sub_811D2EC
|
||||
b _0811CF5E
|
||||
_0811CEEC:
|
||||
bl sub_811D4EC
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _0811CF7E
|
||||
bl sub_811D2D0
|
||||
b _0811CF5E
|
||||
_0811CEFC:
|
||||
bl sub_811D6EC
|
||||
b _0811CF5E
|
||||
_0811CF02:
|
||||
bl sub_811D6FC
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _0811CF7E
|
||||
b _0811CF5E
|
||||
_0811CF0E:
|
||||
bl sub_811D5A0
|
||||
b _0811CF5E
|
||||
_0811CF14:
|
||||
bl sub_811D5C0
|
||||
lsls r0, 24
|
||||
lsrs r1, r0, 24
|
||||
cmp r1, 0
|
||||
bne _0811CF7E
|
||||
adds r0, r5, 0
|
||||
adds r0, 0x9E
|
||||
strh r1, [r0]
|
||||
b _0811CF5E
|
||||
_0811CF28:
|
||||
adds r1, r5, 0
|
||||
adds r1, 0x9E
|
||||
ldrh r0, [r1]
|
||||
adds r0, 0x1
|
||||
strh r0, [r1]
|
||||
lsls r0, 16
|
||||
lsrs r0, 16
|
||||
cmp r0, 0x1E
|
||||
bls _0811CF7E
|
||||
bl sub_811D2A8
|
||||
movs r0, 0x9
|
||||
bl sub_811D2EC
|
||||
b _0811CF5E
|
||||
_0811CF46:
|
||||
bl sub_811D4EC
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _0811CF7E
|
||||
ldr r0, _0811CF68 @ =0x00000101
|
||||
bl PlayFanfare
|
||||
adds r1, r5, 0
|
||||
adds r1, 0x91
|
||||
movs r0, 0x1
|
||||
strb r0, [r1]
|
||||
_0811CF5E:
|
||||
ldrh r0, [r4]
|
||||
adds r0, 0x1
|
||||
strh r0, [r4]
|
||||
b _0811CF7E
|
||||
.align 2, 0
|
||||
_0811CF68: .4byte 0x00000101
|
||||
_0811CF6C:
|
||||
bl IsFanfareTaskInactive
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0811CF7E
|
||||
ldr r1, _0811CF84 @ =sub_811CF88
|
||||
adds r0, r6, 0
|
||||
bl sub_811C718
|
||||
_0811CF7E:
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0811CF84: .4byte sub_811CF88
|
||||
thumb_func_end sub_811CE4C
|
||||
|
||||
thumb_func_start sub_811CF88
|
||||
sub_811CF88: @ 811CF88
|
||||
push {r4-r6,lr}
|
||||
lsls r0, 24
|
||||
lsrs r6, r0, 24
|
||||
adds r0, r6, 0
|
||||
movs r1, 0
|
||||
bl GetWordTaskArg
|
||||
adds r5, r0, 0
|
||||
adds r4, r5, 0
|
||||
adds r4, 0x92
|
||||
ldrh r0, [r4]
|
||||
cmp r0, 0
|
||||
beq _0811CFA8
|
||||
cmp r0, 0x1
|
||||
beq _0811CFC8
|
||||
b _0811D008
|
||||
_0811CFA8:
|
||||
ldr r0, _0811CFC4 @ =sub_811C6E8
|
||||
bl SetVBlankCallback
|
||||
movs r0, 0x1
|
||||
negs r0, r0
|
||||
movs r1, 0x10
|
||||
movs r2, 0
|
||||
bl BlendPalettes
|
||||
ldrh r0, [r4]
|
||||
adds r0, 0x1
|
||||
strh r0, [r4]
|
||||
b _0811D008
|
||||
.align 2, 0
|
||||
_0811CFC4: .4byte sub_811C6E8
|
||||
_0811CFC8:
|
||||
ldr r0, _0811D010 @ =gPaletteFade
|
||||
ldrb r1, [r0, 0x7]
|
||||
movs r0, 0x80
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
bne _0811D008
|
||||
adds r0, r5, 0
|
||||
adds r0, 0xA4
|
||||
ldr r0, [r0]
|
||||
cmp r0, 0x1
|
||||
bne _0811CFE8
|
||||
bl IsCryFinished
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0811D008
|
||||
_0811CFE8:
|
||||
ldr r0, _0811D014 @ =gUnknown_203B090
|
||||
adds r1, r5, 0
|
||||
adds r1, 0x91
|
||||
ldrb r1, [r1]
|
||||
str r1, [r0]
|
||||
ldr r0, [r5, 0x4]
|
||||
bl SetMainCallback2
|
||||
adds r0, r6, 0
|
||||
bl DestroyTask
|
||||
bl sub_811D29C
|
||||
adds r0, r5, 0
|
||||
bl Free
|
||||
_0811D008:
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0811D010: .4byte gPaletteFade
|
||||
_0811D014: .4byte gUnknown_203B090
|
||||
thumb_func_end sub_811CF88
|
||||
|
||||
thumb_func_start sub_811D018
|
||||
sub_811D018: @ 811D018
|
||||
push {r4,lr}
|
||||
|
||||
@@ -30,6 +30,7 @@ struct PokemonSpecialAnim
|
||||
/*0x00a8*/ u8 field_00a8[0x2834];
|
||||
}; // size=0x28dc
|
||||
|
||||
EWRAM_DATA bool32 gUnknown_203B090 = FALSE;
|
||||
EWRAM_DATA u8 gUnknown_203B094 = 0;
|
||||
|
||||
struct PokemonSpecialAnim * sub_811C5D4(u8 slotId, u16 itemId, MainCallback callback);
|
||||
@@ -54,11 +55,17 @@ void sub_811D4D4(void);
|
||||
bool8 sub_811D4EC(void);
|
||||
void sub_811D4FC(void);
|
||||
bool8 sub_811D530(void);
|
||||
void sub_811D5A0(void);
|
||||
void sub_811D5B0(void);
|
||||
bool8 sub_811D5C0(void);
|
||||
void sub_811D6EC(void);
|
||||
bool8 sub_811D6FC(void);
|
||||
bool8 sub_811D754(void);
|
||||
void sub_811D830(u8 a0);
|
||||
void sub_811D948(u8 closeness);
|
||||
bool8 sub_811D9A8(void);
|
||||
void sub_811DC54(u16 itemId, u8 closeness, u8 a2);
|
||||
void sub_811DCF0(u16 itemId);
|
||||
bool8 sub_811DD90(void);
|
||||
void sub_811E040(void);
|
||||
|
||||
@@ -410,3 +417,224 @@ void sub_811CA20(u8 taskId)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_811CBE4(u8 taskId)
|
||||
{
|
||||
struct PokemonSpecialAnim * ptr = (void *)GetWordTaskArg(taskId, 0);
|
||||
|
||||
if (!ptr->cancelDisabled && JOY_HELD(B_BUTTON))
|
||||
{
|
||||
sub_811C718(taskId, sub_811CF88);
|
||||
return;
|
||||
}
|
||||
|
||||
switch (ptr->state)
|
||||
{
|
||||
case 0:
|
||||
SetVBlankCallback(NULL);
|
||||
sub_811D184(ptr->field_00a8, ptr->animType);
|
||||
sub_811D830(0);
|
||||
ptr->state++;
|
||||
break;
|
||||
case 1:
|
||||
if (!sub_811D280())
|
||||
{
|
||||
BeginNormalPaletteFade(0xFFFFFFFF, -1, 16, 0, RGB_BLACK);
|
||||
ptr->state++;
|
||||
SetVBlankCallback(sub_811C6E8);
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (!gPaletteFade.active)
|
||||
{
|
||||
ptr->state++;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
sub_811D948(ptr->closeness);
|
||||
ptr->state++;
|
||||
break;
|
||||
case 4:
|
||||
sub_811DC54(ptr->itemId, ptr->closeness, 0);
|
||||
ptr->state++;
|
||||
break;
|
||||
case 5:
|
||||
if (!sub_811DD90())
|
||||
{
|
||||
sub_811D2A8();
|
||||
ptr->state++;
|
||||
}
|
||||
break;
|
||||
case 6:
|
||||
sub_811D2EC(8);
|
||||
ptr->state++;
|
||||
break;
|
||||
case 7:
|
||||
if (!sub_811D4EC())
|
||||
{
|
||||
ptr->cancelDisabled = TRUE;
|
||||
ptr->state++;
|
||||
}
|
||||
break;
|
||||
case 8:
|
||||
if (JOY_NEW(A_BUTTON | B_BUTTON))
|
||||
{
|
||||
BeginNormalPaletteFade(0xFFFFFFFF, -1, 0, 16, RGB_BLACK);
|
||||
ptr->state++;
|
||||
}
|
||||
break;
|
||||
case 9:
|
||||
if (!gPaletteFade.active)
|
||||
{
|
||||
SetMainCallback2(ptr->savedCallback);
|
||||
sub_811D29C();
|
||||
Free(ptr);
|
||||
DestroyTask(taskId);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_811CD68(u8 taskId)
|
||||
{
|
||||
struct PokemonSpecialAnim * ptr = (void *)GetWordTaskArg(taskId, 0);
|
||||
|
||||
if (JOY_NEW(B_BUTTON))
|
||||
{
|
||||
sub_811C718(taskId, sub_811CF88);
|
||||
return;
|
||||
}
|
||||
|
||||
switch (ptr->state)
|
||||
{
|
||||
case 0:
|
||||
SetVBlankCallback(NULL);
|
||||
sub_811D184(ptr->field_00a8, ptr->animType);
|
||||
sub_811D830(3);
|
||||
ptr->state++;
|
||||
break;
|
||||
case 1:
|
||||
if (!sub_811D280())
|
||||
{
|
||||
BeginNormalPaletteFade(0xFFFFFFFF, -1, 16, 0, RGB_BLACK);
|
||||
ptr->state++;
|
||||
SetVBlankCallback(sub_811C6E8);
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (!gPaletteFade.active)
|
||||
{
|
||||
ptr->field_009e = 0;
|
||||
ptr->state++;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
ptr->field_009e++;
|
||||
if (ptr->field_009e > 20)
|
||||
{
|
||||
sub_811C718(taskId, sub_811CE4C);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_811CE4C(u8 taskId)
|
||||
{
|
||||
struct PokemonSpecialAnim * ptr = (void *)GetWordTaskArg(taskId, 0);
|
||||
|
||||
if (!ptr->cancelDisabled && JOY_NEW(B_BUTTON))
|
||||
{
|
||||
sub_811D5B0();
|
||||
sub_811C718(taskId, sub_811CF88);
|
||||
return;
|
||||
}
|
||||
|
||||
switch (ptr->state)
|
||||
{
|
||||
case 0:
|
||||
sub_811DCF0(ptr->itemId);
|
||||
ptr->field_009e = 0;
|
||||
ptr->state++;
|
||||
break;
|
||||
case 1:
|
||||
sub_811D2A8();
|
||||
sub_811D2EC(7);
|
||||
ptr->state++;
|
||||
break;
|
||||
case 2:
|
||||
if (!sub_811D4EC())
|
||||
{
|
||||
sub_811D2D0();
|
||||
ptr->state++;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
sub_811D6EC();
|
||||
ptr->state++;
|
||||
break;
|
||||
case 4:
|
||||
if (!sub_811D6FC())
|
||||
{
|
||||
ptr->state++;
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
sub_811D5A0();
|
||||
ptr->state++;
|
||||
break;
|
||||
case 6:
|
||||
if (!sub_811D5C0())
|
||||
{
|
||||
ptr->field_009e = 0;
|
||||
ptr->state++;
|
||||
}
|
||||
break;
|
||||
case 7:
|
||||
ptr->field_009e++;
|
||||
if (ptr->field_009e > 30)
|
||||
{
|
||||
sub_811D2A8();
|
||||
sub_811D2EC(9);
|
||||
ptr->state++;
|
||||
}
|
||||
break;
|
||||
case 8:
|
||||
if (!sub_811D4EC())
|
||||
{
|
||||
PlayFanfare(MUS_FANFA1);
|
||||
ptr->cancelDisabled = TRUE;
|
||||
ptr->state++;
|
||||
}
|
||||
break;
|
||||
case 9:
|
||||
if (IsFanfareTaskInactive())
|
||||
{
|
||||
sub_811C718(taskId, sub_811CF88);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_811CF88(u8 taskId)
|
||||
{
|
||||
struct PokemonSpecialAnim * ptr = (void *)GetWordTaskArg(taskId, 0);
|
||||
|
||||
switch (ptr->state)
|
||||
{
|
||||
case 0:
|
||||
SetVBlankCallback(sub_811C6E8);
|
||||
BlendPalettes(0xFFFFFFFF, 16, RGB_BLACK);
|
||||
ptr->state++;
|
||||
break;
|
||||
case 1:
|
||||
if (!gPaletteFade.active && (ptr->field_00a4 != 1 || IsCryFinished()))
|
||||
{
|
||||
gUnknown_203B090 = ptr->cancelDisabled;
|
||||
SetMainCallback2(ptr->savedCallback);
|
||||
DestroyTask(taskId);
|
||||
sub_811D29C();
|
||||
Free(ptr);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user