sub_812EF50
This commit is contained in:
@@ -5,170 +5,6 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_812EF50
|
||||
sub_812EF50: @ 812EF50
|
||||
push {r4-r7,lr}
|
||||
mov r7, r10
|
||||
mov r6, r9
|
||||
mov r5, r8
|
||||
push {r5-r7}
|
||||
sub sp, 0x14
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
mov r8, r0
|
||||
movs r6, 0
|
||||
ldr r4, _0812EF80 @ =sOakSpeechResources
|
||||
ldr r0, [r4]
|
||||
ldrh r1, [r0, 0x12]
|
||||
subs r0, r1, 0x1
|
||||
lsls r0, 24
|
||||
lsrs r7, r0, 24
|
||||
cmp r1, 0
|
||||
bne _0812EF84
|
||||
bl sub_812EEB0
|
||||
mov r0, r8
|
||||
lsls r0, 2
|
||||
mov r10, r0
|
||||
b _0812F06A
|
||||
.align 2, 0
|
||||
_0812EF80: .4byte sOakSpeechResources
|
||||
_0812EF84:
|
||||
ldr r0, _0812F038 @ =gUnknown_8415D50
|
||||
movs r1, 0
|
||||
movs r2, 0x1
|
||||
bl sub_810F5E8
|
||||
lsls r1, r7, 1
|
||||
mov r9, r1
|
||||
mov r3, r8
|
||||
lsls r3, 2
|
||||
mov r10, r3
|
||||
adds r5, r4, 0
|
||||
_0812EF9A:
|
||||
ldr r1, _0812F03C @ =gUnknown_8462EB4
|
||||
ldr r0, [r5]
|
||||
ldrh r0, [r0, 0x12]
|
||||
lsls r0, 2
|
||||
adds r0, r1
|
||||
lsls r1, r6, 3
|
||||
ldr r0, [r0]
|
||||
adds r0, r1
|
||||
bl AddWindow
|
||||
ldr r1, [r5]
|
||||
lsls r4, r6, 1
|
||||
adds r1, 0x14
|
||||
adds r1, r4
|
||||
strh r0, [r1]
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
bl PutWindowTilemap
|
||||
ldr r0, [r5]
|
||||
adds r0, 0x14
|
||||
adds r0, r4
|
||||
ldrb r0, [r0]
|
||||
movs r1, 0
|
||||
bl FillWindowPixelBuffer
|
||||
ldr r0, [r5]
|
||||
adds r0, 0x14
|
||||
adds r0, r4
|
||||
ldrb r0, [r0]
|
||||
movs r1, 0x1
|
||||
str r1, [sp]
|
||||
str r1, [sp, 0x4]
|
||||
ldr r1, _0812F040 @ =gUnknown_8462EE8
|
||||
str r1, [sp, 0x8]
|
||||
movs r1, 0
|
||||
str r1, [sp, 0xC]
|
||||
ldr r2, _0812F044 @ =gUnknown_8463074
|
||||
mov r3, r9
|
||||
adds r1, r3, r7
|
||||
adds r1, r6, r1
|
||||
lsls r1, 2
|
||||
adds r1, r2
|
||||
ldr r1, [r1]
|
||||
str r1, [sp, 0x10]
|
||||
movs r1, 0x2
|
||||
movs r2, 0x6
|
||||
movs r3, 0
|
||||
bl AddTextPrinterParametrized2
|
||||
ldr r0, [r5]
|
||||
adds r0, 0x14
|
||||
adds r0, r4
|
||||
ldrb r0, [r0]
|
||||
movs r1, 0x3
|
||||
bl CopyWindowToVram
|
||||
adds r0, r6, 0x1
|
||||
lsls r0, 24
|
||||
lsrs r6, r0, 24
|
||||
cmp r6, 0x2
|
||||
bls _0812EF9A
|
||||
ldr r0, _0812F048 @ =sOakSpeechResources
|
||||
ldr r0, [r0]
|
||||
ldrh r0, [r0, 0x12]
|
||||
cmp r0, 0x1
|
||||
bne _0812F050
|
||||
ldr r1, _0812F04C @ =gUnknown_8460D94
|
||||
movs r0, 0x5
|
||||
str r0, [sp]
|
||||
movs r0, 0x10
|
||||
str r0, [sp, 0x4]
|
||||
movs r0, 0x1
|
||||
movs r2, 0x1
|
||||
movs r3, 0x3
|
||||
bl CopyToBgTilemapBufferRect
|
||||
b _0812F064
|
||||
.align 2, 0
|
||||
_0812F038: .4byte gUnknown_8415D50
|
||||
_0812F03C: .4byte gUnknown_8462EB4
|
||||
_0812F040: .4byte gUnknown_8462EE8
|
||||
_0812F044: .4byte gUnknown_8463074
|
||||
_0812F048: .4byte sOakSpeechResources
|
||||
_0812F04C: .4byte gUnknown_8460D94
|
||||
_0812F050:
|
||||
ldr r1, _0812F0A0 @ =gUnknown_8460E34
|
||||
movs r0, 0x5
|
||||
str r0, [sp]
|
||||
movs r0, 0x10
|
||||
str r0, [sp, 0x4]
|
||||
movs r0, 0x1
|
||||
movs r2, 0x1
|
||||
movs r3, 0x3
|
||||
bl CopyToBgTilemapBufferRect
|
||||
_0812F064:
|
||||
movs r0, 0x1
|
||||
bl CopyBgTilemapBufferToVram
|
||||
_0812F06A:
|
||||
movs r0, 0x2
|
||||
bl stdpal_get
|
||||
ldrh r2, [r0, 0x1E]
|
||||
ldr r0, _0812F0A4 @ =0xffffdfff
|
||||
movs r1, 0x1
|
||||
negs r1, r1
|
||||
str r2, [sp]
|
||||
movs r2, 0x10
|
||||
movs r3, 0
|
||||
bl BeginNormalPaletteFade
|
||||
ldr r1, _0812F0A8 @ =gTasks
|
||||
mov r0, r10
|
||||
add r0, r8
|
||||
lsls r0, 3
|
||||
adds r0, r1
|
||||
ldr r1, _0812F0AC @ =sub_812F0B0
|
||||
str r1, [r0]
|
||||
add sp, 0x14
|
||||
pop {r3-r5}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
mov r10, r5
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0812F0A0: .4byte gUnknown_8460E34
|
||||
_0812F0A4: .4byte 0xffffdfff
|
||||
_0812F0A8: .4byte gTasks
|
||||
_0812F0AC: .4byte sub_812F0B0
|
||||
thumb_func_end sub_812EF50
|
||||
|
||||
thumb_func_start sub_812F0B0
|
||||
sub_812F0B0: @ 812F0B0
|
||||
push {r4,r5,lr}
|
||||
|
||||
+2
-1
@@ -599,8 +599,9 @@ gUnknown_8415D48:: @ 8415D48
|
||||
|
||||
.align 2
|
||||
gUnknown_8415D50:: @ 8415D50
|
||||
.incbin "baserom.gba", 0x415D50, 0x10
|
||||
.string "{KEYGFX_A_BUTTON}NEXT {KEYGFX_B_BUTTON}BACK$"
|
||||
|
||||
.align 2
|
||||
gUnknown_8415D60:: @ 8415D60
|
||||
.incbin "baserom.gba", 0x415D60, 0x18
|
||||
|
||||
|
||||
@@ -40,5 +40,6 @@ void sub_810F4D8(u8 windowId, bool32 someBool);
|
||||
void *sub_80F68F0(u8 bgId, const void *src, u32 size, u16 offset, u8 mode);
|
||||
void sub_810F558(u8, u8, u8, u8, u16);
|
||||
void sub_810F650(const u8 *, const u8 *, u8, u32, u8);
|
||||
void sub_810F5E8(const u8 *, u32, u8);
|
||||
|
||||
#endif // GUARD_MENU_H
|
||||
|
||||
+46
-7
@@ -22,8 +22,8 @@ struct OakSpeechResources
|
||||
{
|
||||
u8 filler_0000[0x12];
|
||||
u16 unk_0012;
|
||||
u16 unk_0014;
|
||||
u8 filler_0016[9];
|
||||
u16 unk_0014[3];
|
||||
u8 filler_001A[5];
|
||||
u8 unk_001F;
|
||||
u8 filler_0020[0x1800];
|
||||
u8 bg2TilemapBuffer[0x400];
|
||||
@@ -39,6 +39,7 @@ void sub_812F0B0(u8 taskId);
|
||||
|
||||
extern const u8 gUnknown_8415D2C[];
|
||||
extern const u8 gUnknown_8415D48[];
|
||||
extern const u8 gUnknown_8415D50[];
|
||||
|
||||
const u8 gUnknown_845FD54[][5] = {
|
||||
[SPECIES_BULBASAUR - 1] = {0x16, 0x1b, 0x30, 0x16, 0x29},
|
||||
@@ -459,9 +460,13 @@ const u8 gUnknown_845FD54[][5] = {
|
||||
ALIGNED(4) const u16 gUnknown_8460568[] = INCBIN_U16("data/oak_speech/unk_8460568.gbapal");
|
||||
const u32 gUnknown_84605E8[] = INCBIN_U32("data/oak_speech/unk_84605E8.4bpp.lz");
|
||||
|
||||
extern const u16 gUnknown_8460D94[];
|
||||
extern const u16 gUnknown_8460E34[];
|
||||
|
||||
extern const struct BgTemplate gUnknown_8462E58[3];
|
||||
extern const struct WindowTemplate *const gUnknown_8462EB4[3];
|
||||
extern const struct TextColor gUnknown_8462EE8;
|
||||
extern const u8 *const gUnknown_8463074[];
|
||||
|
||||
void sub_812E944(u8 a0, u8 a1, u8 a2, u8 a3, u8 a4, u8 a5)
|
||||
{
|
||||
@@ -661,11 +666,45 @@ void sub_812EB58(u8 taskId)
|
||||
void sub_812EEB0(void)
|
||||
{
|
||||
sub_810F650(gUnknown_8415D2C, gUnknown_8415D48, 0, 0, 1);
|
||||
sOakSpeechResources->unk_0014 = AddWindow(gUnknown_8462EB4[sOakSpeechResources->unk_0012]);
|
||||
PutWindowTilemap(sOakSpeechResources->unk_0014);
|
||||
FillWindowPixelBuffer(sOakSpeechResources->unk_0014, 0x00);
|
||||
AddTextPrinterParametrized2(sOakSpeechResources->unk_0014, 2, 2, 0, 1, 1, &gUnknown_8462EE8, 0, gUnknown_81C582D);
|
||||
CopyWindowToVram(sOakSpeechResources->unk_0014, 3);
|
||||
sOakSpeechResources->unk_0014[0] = AddWindow(gUnknown_8462EB4[sOakSpeechResources->unk_0012]);
|
||||
PutWindowTilemap(sOakSpeechResources->unk_0014[0]);
|
||||
FillWindowPixelBuffer(sOakSpeechResources->unk_0014[0], 0x00);
|
||||
AddTextPrinterParametrized2(sOakSpeechResources->unk_0014[0], 2, 2, 0, 1, 1, &gUnknown_8462EE8, 0, gUnknown_81C582D);
|
||||
CopyWindowToVram(sOakSpeechResources->unk_0014[0], 3);
|
||||
FillBgTilemapBufferRect_Palette0(1, 0x3000, 1, 3, 5, 16);
|
||||
CopyBgTilemapBufferToVram(1);
|
||||
}
|
||||
|
||||
void sub_812EF50(u8 taskId)
|
||||
{
|
||||
u8 i = 0;
|
||||
u8 r7 = sOakSpeechResources->unk_0012 - 1;
|
||||
if (sOakSpeechResources->unk_0012 == 0)
|
||||
{
|
||||
sub_812EEB0();
|
||||
}
|
||||
else
|
||||
{
|
||||
sub_810F5E8(gUnknown_8415D50, 0, 1);
|
||||
for (i = 0; i < 3; i++)
|
||||
{
|
||||
sOakSpeechResources->unk_0014[i] = AddWindow(&gUnknown_8462EB4[sOakSpeechResources->unk_0012][i]);
|
||||
PutWindowTilemap(sOakSpeechResources->unk_0014[i]);
|
||||
FillWindowPixelBuffer(sOakSpeechResources->unk_0014[i], 0x00);
|
||||
AddTextPrinterParametrized2(sOakSpeechResources->unk_0014[i], 2, 6, 0, 1, 1, &gUnknown_8462EE8, 0, gUnknown_8463074[i + r7 * 3]);
|
||||
CopyWindowToVram(sOakSpeechResources->unk_0014[i], 3);
|
||||
}
|
||||
|
||||
if (sOakSpeechResources->unk_0012 == 1)
|
||||
{
|
||||
CopyToBgTilemapBufferRect(1, gUnknown_8460D94, 1, 3, 5, 16);
|
||||
}
|
||||
else
|
||||
{
|
||||
CopyToBgTilemapBufferRect(1, gUnknown_8460E34, 1, 3, 5, 16);
|
||||
}
|
||||
CopyBgTilemapBufferToVram(1);
|
||||
}
|
||||
BeginNormalPaletteFade(0xFFFFDFFF, -1, 16, 0, stdpal_get(2)[15]);
|
||||
gTasks[taskId].func = sub_812F0B0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user