sub_812F4A8
This commit is contained in:
@@ -5,309 +5,6 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_812F4A8
|
||||
sub_812F4A8: @ 812F4A8
|
||||
push {r4-r7,lr}
|
||||
sub sp, 0x14
|
||||
lsls r0, 24
|
||||
lsrs r2, r0, 24
|
||||
lsls r0, r2, 2
|
||||
adds r0, r2
|
||||
lsls r6, r0, 3
|
||||
ldr r7, _0812F4D8 @ =gTasks+0x8
|
||||
adds r5, r6, r7
|
||||
ldr r0, _0812F4DC @ =gMain
|
||||
movs r1, 0x87
|
||||
lsls r1, 3
|
||||
adds r3, r0, r1
|
||||
ldrb r1, [r3]
|
||||
adds r4, r0, 0
|
||||
cmp r1, 0x4
|
||||
bls _0812F4CC
|
||||
b _0812F6C0
|
||||
_0812F4CC:
|
||||
lsls r0, r1, 2
|
||||
ldr r1, _0812F4E0 @ =_0812F4E4
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_0812F4D8: .4byte gTasks+0x8
|
||||
_0812F4DC: .4byte gMain
|
||||
_0812F4E0: .4byte _0812F4E4
|
||||
.align 2, 0
|
||||
_0812F4E4:
|
||||
.4byte _0812F4F8
|
||||
.4byte _0812F538
|
||||
.4byte _0812F5B4
|
||||
.4byte _0812F644
|
||||
.4byte _0812F688
|
||||
_0812F4F8:
|
||||
ldr r0, _0812F534 @ =gPaletteFade
|
||||
ldrb r1, [r0, 0x7]
|
||||
movs r0, 0x80
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _0812F506
|
||||
b _0812F71C
|
||||
_0812F506:
|
||||
movs r0, 0x40
|
||||
movs r1, 0xF0
|
||||
bl SetGpuReg
|
||||
movs r1, 0x85
|
||||
lsls r1, 5
|
||||
movs r0, 0x44
|
||||
bl SetGpuReg
|
||||
movs r0, 0x48
|
||||
movs r1, 0x3F
|
||||
bl SetGpuReg
|
||||
movs r0, 0x4A
|
||||
movs r1, 0x1F
|
||||
bl SetGpuReg
|
||||
movs r1, 0x80
|
||||
lsls r1, 6
|
||||
movs r0, 0
|
||||
bl SetGpuRegBits
|
||||
b _0812F676
|
||||
.align 2, 0
|
||||
_0812F534: .4byte gPaletteFade
|
||||
_0812F538:
|
||||
ldrh r1, [r4, 0x2E]
|
||||
movs r0, 0x3
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
bne _0812F544
|
||||
b _0812F71C
|
||||
_0812F544:
|
||||
movs r0, 0x1
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _0812F55C
|
||||
ldr r0, _0812F558 @ =sOakSpeechResources
|
||||
ldr r1, [r0]
|
||||
ldrh r0, [r1, 0x12]
|
||||
adds r0, 0x1
|
||||
b _0812F56A
|
||||
.align 2, 0
|
||||
_0812F558: .4byte sOakSpeechResources
|
||||
_0812F55C:
|
||||
ldr r0, _0812F58C @ =sOakSpeechResources
|
||||
ldr r1, [r0]
|
||||
ldrh r0, [r1, 0x12]
|
||||
cmp r0, 0
|
||||
bne _0812F568
|
||||
b _0812F71C
|
||||
_0812F568:
|
||||
subs r0, 0x1
|
||||
_0812F56A:
|
||||
strh r0, [r1, 0x12]
|
||||
movs r0, 0x5
|
||||
bl PlaySE
|
||||
ldr r0, _0812F58C @ =sOakSpeechResources
|
||||
ldr r0, [r0]
|
||||
ldrh r0, [r0, 0x12]
|
||||
cmp r0, 0x3
|
||||
bne _0812F594
|
||||
ldr r0, _0812F590 @ =gMain
|
||||
movs r1, 0x87
|
||||
lsls r1, 3
|
||||
adds r0, r1
|
||||
movs r1, 0x4
|
||||
strb r1, [r0]
|
||||
b _0812F71C
|
||||
.align 2, 0
|
||||
_0812F58C: .4byte sOakSpeechResources
|
||||
_0812F590: .4byte gMain
|
||||
_0812F594:
|
||||
ldr r1, _0812F5B0 @ =0x00000241
|
||||
movs r0, 0x50
|
||||
bl SetGpuReg
|
||||
ldrh r0, [r5, 0x1E]
|
||||
movs r1, 0x10
|
||||
subs r1, r0
|
||||
orrs r1, r0
|
||||
lsls r1, 16
|
||||
lsrs r1, 16
|
||||
movs r0, 0x52
|
||||
bl SetGpuReg
|
||||
b _0812F6A2
|
||||
.align 2, 0
|
||||
_0812F5B0: .4byte 0x00000241
|
||||
_0812F5B4:
|
||||
ldrh r1, [r5, 0x1E]
|
||||
subs r1, 0x2
|
||||
strh r1, [r5, 0x1E]
|
||||
movs r0, 0x10
|
||||
subs r0, r1
|
||||
lsls r0, 8
|
||||
orrs r1, r0
|
||||
lsls r1, 16
|
||||
lsrs r1, 16
|
||||
movs r0, 0x52
|
||||
bl SetGpuReg
|
||||
movs r1, 0x1E
|
||||
ldrsh r0, [r5, r1]
|
||||
cmp r0, 0
|
||||
ble _0812F5D6
|
||||
b _0812F71C
|
||||
_0812F5D6:
|
||||
ldrb r0, [r5, 0x1C]
|
||||
movs r1, 0
|
||||
bl FillWindowPixelBuffer
|
||||
ldrb r0, [r5, 0x1C]
|
||||
movs r1, 0x1
|
||||
str r1, [sp]
|
||||
movs r2, 0
|
||||
str r2, [sp, 0x4]
|
||||
ldr r1, _0812F620 @ =gUnknown_8462EEC
|
||||
str r1, [sp, 0x8]
|
||||
str r2, [sp, 0xC]
|
||||
ldr r2, _0812F624 @ =gUnknown_8462EF0
|
||||
ldr r4, _0812F628 @ =sOakSpeechResources
|
||||
ldr r1, [r4]
|
||||
ldrh r1, [r1, 0x12]
|
||||
lsls r1, 2
|
||||
adds r1, r2
|
||||
ldr r1, [r1]
|
||||
str r1, [sp, 0x10]
|
||||
movs r1, 0x2
|
||||
movs r2, 0x3
|
||||
movs r3, 0x5
|
||||
bl AddTextPrinterParametrized2
|
||||
ldr r0, [r4]
|
||||
ldrh r0, [r0, 0x12]
|
||||
cmp r0, 0
|
||||
bne _0812F630
|
||||
bl sub_810F71C
|
||||
ldr r0, _0812F62C @ =gUnknown_8415D48
|
||||
movs r1, 0
|
||||
movs r2, 0x1
|
||||
bl sub_810F5E8
|
||||
b _0812F6A2
|
||||
.align 2, 0
|
||||
_0812F620: .4byte gUnknown_8462EEC
|
||||
_0812F624: .4byte gUnknown_8462EF0
|
||||
_0812F628: .4byte sOakSpeechResources
|
||||
_0812F62C: .4byte gUnknown_8415D48
|
||||
_0812F630:
|
||||
bl sub_810F71C
|
||||
ldr r0, _0812F640 @ =gUnknown_8415D50
|
||||
movs r1, 0
|
||||
movs r2, 0x1
|
||||
bl sub_810F5E8
|
||||
b _0812F6A2
|
||||
.align 2, 0
|
||||
_0812F640: .4byte gUnknown_8415D50
|
||||
_0812F644:
|
||||
ldrh r1, [r5, 0x1E]
|
||||
adds r1, 0x2
|
||||
strh r1, [r5, 0x1E]
|
||||
movs r4, 0x10
|
||||
subs r0, r4, r1
|
||||
lsls r0, 8
|
||||
orrs r1, r0
|
||||
lsls r1, 16
|
||||
lsrs r1, 16
|
||||
movs r0, 0x52
|
||||
bl SetGpuReg
|
||||
movs r1, 0x1E
|
||||
ldrsh r0, [r5, r1]
|
||||
cmp r0, 0xF
|
||||
ble _0812F71C
|
||||
strh r4, [r5, 0x1E]
|
||||
movs r0, 0x50
|
||||
movs r1, 0
|
||||
bl SetGpuReg
|
||||
movs r0, 0x52
|
||||
movs r1, 0
|
||||
bl SetGpuReg
|
||||
_0812F676:
|
||||
ldr r0, _0812F684 @ =gMain
|
||||
movs r1, 0x87
|
||||
lsls r1, 3
|
||||
adds r0, r1
|
||||
movs r1, 0x1
|
||||
strb r1, [r0]
|
||||
b _0812F71C
|
||||
.align 2, 0
|
||||
_0812F684: .4byte gMain
|
||||
_0812F688:
|
||||
ldr r1, _0812F6B4 @ =gTasks
|
||||
lsls r0, r2, 2
|
||||
adds r0, r2
|
||||
lsls r0, 3
|
||||
adds r0, r1
|
||||
ldrb r0, [r0, 0x12]
|
||||
bl sub_8006398
|
||||
ldr r0, _0812F6B8 @ =0x00000145
|
||||
bl PlayBGM
|
||||
movs r0, 0x18
|
||||
strh r0, [r5, 0x1E]
|
||||
_0812F6A2:
|
||||
ldr r1, _0812F6BC @ =gMain
|
||||
movs r0, 0x87
|
||||
lsls r0, 3
|
||||
adds r1, r0
|
||||
ldrb r0, [r1]
|
||||
adds r0, 0x1
|
||||
strb r0, [r1]
|
||||
b _0812F71C
|
||||
.align 2, 0
|
||||
_0812F6B4: .4byte gTasks
|
||||
_0812F6B8: .4byte 0x00000145
|
||||
_0812F6BC: .4byte gMain
|
||||
_0812F6C0:
|
||||
ldrh r0, [r5, 0x1E]
|
||||
movs r1, 0x1E
|
||||
ldrsh r4, [r5, r1]
|
||||
cmp r4, 0
|
||||
beq _0812F6D0
|
||||
subs r0, 0x1
|
||||
strh r0, [r5, 0x1E]
|
||||
b _0812F71C
|
||||
_0812F6D0:
|
||||
strb r4, [r3]
|
||||
ldr r0, _0812F724 @ =sOakSpeechResources
|
||||
ldr r0, [r0]
|
||||
strh r4, [r0, 0x12]
|
||||
movs r0, 0x40
|
||||
movs r1, 0
|
||||
bl SetGpuReg
|
||||
movs r0, 0x44
|
||||
movs r1, 0
|
||||
bl SetGpuReg
|
||||
movs r0, 0x48
|
||||
movs r1, 0
|
||||
bl SetGpuReg
|
||||
movs r0, 0x4A
|
||||
movs r1, 0
|
||||
bl SetGpuReg
|
||||
movs r1, 0x80
|
||||
lsls r1, 6
|
||||
movs r0, 0
|
||||
bl ClearGpuRegBits
|
||||
movs r0, 0x1
|
||||
negs r0, r0
|
||||
str r4, [sp]
|
||||
movs r1, 0x2
|
||||
movs r2, 0
|
||||
movs r3, 0x10
|
||||
bl BeginNormalPaletteFade
|
||||
adds r0, r7, 0
|
||||
subs r0, 0x8
|
||||
adds r0, r6, r0
|
||||
ldr r1, _0812F728 @ =sub_812F72C
|
||||
str r1, [r0]
|
||||
_0812F71C:
|
||||
add sp, 0x14
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0812F724: .4byte sOakSpeechResources
|
||||
_0812F728: .4byte sub_812F72C
|
||||
thumb_func_end sub_812F4A8
|
||||
|
||||
thumb_func_start sub_812F72C
|
||||
sub_812F72C: @ 812F72C
|
||||
push {r4-r7,lr}
|
||||
|
||||
@@ -43,6 +43,7 @@ void sub_812F180(u8 taskId);
|
||||
void sub_812F274(u8 taskId);
|
||||
void sub_812F33C(u8 taskId);
|
||||
void sub_812F4A8(u8 taskId);
|
||||
void sub_812F72C(u8 taskId);
|
||||
void sub_8130FD4(u8 taskId, u8 state);
|
||||
|
||||
extern const u8 gUnknown_8415D2C[];
|
||||
@@ -844,3 +845,103 @@ void sub_812F33C(u8 taskId)
|
||||
gTasks[taskId].func = sub_812F4A8;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_812F4A8(u8 taskId)
|
||||
{
|
||||
s16 * data = gTasks[taskId].data;
|
||||
switch (gMain.state)
|
||||
{
|
||||
case 0:
|
||||
if (!gPaletteFade.active)
|
||||
{
|
||||
SetGpuReg(REG_OFFSET_WIN0H, 0x00F0);
|
||||
SetGpuReg(REG_OFFSET_WIN0V, 0x10A0);
|
||||
SetGpuReg(REG_OFFSET_WININ, 0x003F);
|
||||
SetGpuReg(REG_OFFSET_WINOUT, 0x001F);
|
||||
SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON);
|
||||
gMain.state = 1;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (JOY_NEW((A_BUTTON | B_BUTTON)))
|
||||
{
|
||||
if (JOY_NEW(A_BUTTON))
|
||||
{
|
||||
sOakSpeechResources->unk_0012++;
|
||||
}
|
||||
else if (sOakSpeechResources->unk_0012 != 0)
|
||||
{
|
||||
sOakSpeechResources->unk_0012--;
|
||||
}
|
||||
else
|
||||
{
|
||||
break;
|
||||
}
|
||||
PlaySE(SE_SELECT);
|
||||
if (sOakSpeechResources->unk_0012 == 3)
|
||||
{
|
||||
gMain.state = 4;
|
||||
}
|
||||
else
|
||||
{
|
||||
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG0 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG1);
|
||||
SetGpuReg(REG_OFFSET_BLDALPHA, (16 - data[15]) | data[15]);
|
||||
gMain.state++;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
data[15] -= 2;
|
||||
SetGpuReg(REG_OFFSET_BLDALPHA, ((16 - data[15]) << 8) | data[15]);
|
||||
if (data[15] <= 0)
|
||||
{
|
||||
FillWindowPixelBuffer(data[14], 0x00);
|
||||
AddTextPrinterParametrized2(data[14], 2, 3, 5, 1, 0, &gUnknown_8462EEC, 0, gUnknown_8462EF0[sOakSpeechResources->unk_0012]);
|
||||
if (sOakSpeechResources->unk_0012 == 0)
|
||||
{
|
||||
sub_810F71C();
|
||||
sub_810F5E8(gUnknown_8415D48, 0, 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
sub_810F71C();
|
||||
sub_810F5E8(gUnknown_8415D50, 0, 1);
|
||||
}
|
||||
gMain.state++;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
data[15] += 2;
|
||||
SetGpuReg(REG_OFFSET_BLDALPHA, ((16 - data[15]) << 8) | data[15]);
|
||||
if (data[15] >= 16)
|
||||
{
|
||||
data[15] = 16;
|
||||
SetGpuReg(REG_OFFSET_BLDCNT, 0);
|
||||
SetGpuReg(REG_OFFSET_BLDALPHA, 0);
|
||||
gMain.state = 1;
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
sub_8006398(gTasks[taskId].data[5]);
|
||||
PlayBGM(325);
|
||||
data[15] = 24;
|
||||
gMain.state++;
|
||||
break;
|
||||
default:
|
||||
if (data[15] != 0)
|
||||
data[15]--;
|
||||
else
|
||||
{
|
||||
gMain.state = 0;
|
||||
sOakSpeechResources->unk_0012 = 0;
|
||||
SetGpuReg(REG_OFFSET_WIN0H, 0);
|
||||
SetGpuReg(REG_OFFSET_WIN0V, 0);
|
||||
SetGpuReg(REG_OFFSET_WININ, 0);
|
||||
SetGpuReg(REG_OFFSET_WINOUT, 0);
|
||||
ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON);
|
||||
BeginNormalPaletteFade(0xFFFFFFFF, 2, 0, 16, RGB_BLACK);
|
||||
gTasks[taskId].func = sub_812F72C;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user