mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2024-12-25 11:14:15 +01:00
through sub_8018A50
This commit is contained in:
parent
5bf7886a70
commit
1ce07deeac
@ -5,372 +5,6 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_8018838
|
||||
sub_8018838: @ 8018838
|
||||
push {lr}
|
||||
sub sp, 0xC
|
||||
cmp r0, 0
|
||||
beq _08018846
|
||||
cmp r0, 0x1
|
||||
beq _0801885E
|
||||
b _08018876
|
||||
_08018846:
|
||||
movs r0, 0x20
|
||||
str r0, [sp]
|
||||
str r0, [sp, 0x4]
|
||||
movs r0, 0x11
|
||||
str r0, [sp, 0x8]
|
||||
movs r0, 0
|
||||
movs r1, 0
|
||||
movs r2, 0
|
||||
movs r3, 0
|
||||
bl FillBgTilemapBufferRect
|
||||
b _08018876
|
||||
_0801885E:
|
||||
movs r0, 0x20
|
||||
str r0, [sp]
|
||||
movs r0, 0x1E
|
||||
str r0, [sp, 0x4]
|
||||
movs r0, 0x11
|
||||
str r0, [sp, 0x8]
|
||||
movs r0, 0
|
||||
movs r1, 0
|
||||
movs r2, 0
|
||||
movs r3, 0x2
|
||||
bl FillBgTilemapBufferRect
|
||||
_08018876:
|
||||
movs r0, 0
|
||||
bl CopyBgTilemapBufferToVram
|
||||
add sp, 0xC
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8018838
|
||||
|
||||
thumb_func_start sub_8018884
|
||||
sub_8018884: @ 8018884
|
||||
push {r4,lr}
|
||||
sub sp, 0x14
|
||||
adds r1, r0, 0
|
||||
ldr r4, =gStringVar4
|
||||
adds r0, r4, 0
|
||||
bl StringExpandPlaceholders
|
||||
movs r0, 0x1
|
||||
movs r1, 0x11
|
||||
bl FillWindowPixelBuffer
|
||||
movs r1, 0
|
||||
str r1, [sp]
|
||||
str r1, [sp, 0x4]
|
||||
ldr r0, =gUnknown_082F0728
|
||||
str r0, [sp, 0x8]
|
||||
str r1, [sp, 0xC]
|
||||
str r4, [sp, 0x10]
|
||||
movs r0, 0x1
|
||||
movs r1, 0x1
|
||||
movs r2, 0
|
||||
movs r3, 0x1
|
||||
bl AddTextPrinterParameterized4
|
||||
movs r0, 0x1
|
||||
movs r1, 0x1
|
||||
movs r2, 0xF
|
||||
bl sub_8098858
|
||||
movs r0, 0x1
|
||||
bl PutWindowTilemap
|
||||
movs r0, 0x1
|
||||
movs r1, 0x3
|
||||
bl CopyWindowToVram
|
||||
add sp, 0x14
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.pool
|
||||
thumb_func_end sub_8018884
|
||||
|
||||
thumb_func_start sub_80188DC
|
||||
sub_80188DC: @ 80188DC
|
||||
push {lr}
|
||||
movs r0, 0x1
|
||||
bl rbox_fill_rectangle
|
||||
movs r0, 0x1
|
||||
bl ClearWindowTilemap
|
||||
movs r0, 0x1
|
||||
movs r1, 0x1
|
||||
bl CopyWindowToVram
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_80188DC
|
||||
|
||||
thumb_func_start mevent_0814257C
|
||||
mevent_0814257C: @ 80188F8
|
||||
push {r4,lr}
|
||||
sub sp, 0xC
|
||||
adds r4, r0, 0
|
||||
adds r0, r1, 0
|
||||
ldrb r2, [r4]
|
||||
cmp r2, 0x1
|
||||
beq _08018920
|
||||
cmp r2, 0x1
|
||||
bgt _08018910
|
||||
cmp r2, 0
|
||||
beq _0801891A
|
||||
b _08018980
|
||||
_08018910:
|
||||
cmp r2, 0x2
|
||||
beq _08018954
|
||||
cmp r2, 0xFF
|
||||
beq _0801897C
|
||||
b _08018980
|
||||
_0801891A:
|
||||
bl sub_8018884
|
||||
b _08018944
|
||||
_08018920:
|
||||
movs r0, 0
|
||||
str r0, [sp]
|
||||
ldr r0, =gUnknown_02022C58
|
||||
str r0, [sp, 0x4]
|
||||
adds r0, 0x1
|
||||
str r0, [sp, 0x8]
|
||||
movs r0, 0x1
|
||||
movs r1, 0xD0
|
||||
movs r2, 0x14
|
||||
movs r3, 0x1
|
||||
bl DrawDownArrow
|
||||
ldr r0, =gMain
|
||||
ldrh r1, [r0, 0x2E]
|
||||
movs r0, 0x3
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _08018980
|
||||
_08018944:
|
||||
ldrb r0, [r4]
|
||||
adds r0, 0x1
|
||||
b _0801897E
|
||||
.pool
|
||||
_08018954:
|
||||
movs r0, 0x1
|
||||
str r0, [sp]
|
||||
ldr r0, =gUnknown_02022C58
|
||||
str r0, [sp, 0x4]
|
||||
adds r0, 0x1
|
||||
str r0, [sp, 0x8]
|
||||
movs r0, 0x1
|
||||
movs r1, 0xD0
|
||||
movs r2, 0x14
|
||||
movs r3, 0x1
|
||||
bl DrawDownArrow
|
||||
movs r0, 0
|
||||
strb r0, [r4]
|
||||
bl sub_80188DC
|
||||
movs r0, 0x1
|
||||
b _08018982
|
||||
.pool
|
||||
_0801897C:
|
||||
movs r0, 0x2
|
||||
_0801897E:
|
||||
strb r0, [r4]
|
||||
_08018980:
|
||||
movs r0, 0
|
||||
_08018982:
|
||||
add sp, 0xC
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end mevent_0814257C
|
||||
|
||||
thumb_func_start sub_801898C
|
||||
sub_801898C: @ 801898C
|
||||
push {lr}
|
||||
sub sp, 0xC
|
||||
movs r0, 0
|
||||
str r0, [sp]
|
||||
ldr r0, =gUnknown_02022C58
|
||||
str r0, [sp, 0x4]
|
||||
adds r0, 0x1
|
||||
str r0, [sp, 0x8]
|
||||
movs r0, 0x1
|
||||
movs r1, 0xD0
|
||||
movs r2, 0x14
|
||||
movs r3, 0x1
|
||||
bl DrawDownArrow
|
||||
add sp, 0xC
|
||||
pop {r0}
|
||||
bx r0
|
||||
.pool
|
||||
thumb_func_end sub_801898C
|
||||
|
||||
thumb_func_start sub_80189B4
|
||||
sub_80189B4: @ 80189B4
|
||||
push {lr}
|
||||
sub sp, 0xC
|
||||
movs r0, 0x1
|
||||
str r0, [sp]
|
||||
ldr r0, =gUnknown_02022C58
|
||||
str r0, [sp, 0x4]
|
||||
adds r0, 0x1
|
||||
str r0, [sp, 0x8]
|
||||
movs r0, 0x1
|
||||
movs r1, 0xD0
|
||||
movs r2, 0x14
|
||||
movs r3, 0x1
|
||||
bl DrawDownArrow
|
||||
add sp, 0xC
|
||||
pop {r0}
|
||||
bx r0
|
||||
.pool
|
||||
thumb_func_end sub_80189B4
|
||||
|
||||
thumb_func_start sub_80189DC
|
||||
sub_80189DC: @ 80189DC
|
||||
push {r4,lr}
|
||||
adds r4, r0, 0
|
||||
ldrb r0, [r4]
|
||||
cmp r0, 0
|
||||
beq _080189EC
|
||||
cmp r0, 0x1
|
||||
beq _08018A08
|
||||
b _08018A14
|
||||
_080189EC:
|
||||
bl sub_801898C
|
||||
ldr r0, =gMain
|
||||
ldrh r1, [r0, 0x2E]
|
||||
movs r0, 0x3
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _08018A14
|
||||
ldrb r0, [r4]
|
||||
adds r0, 0x1
|
||||
strb r0, [r4]
|
||||
b _08018A14
|
||||
.pool
|
||||
_08018A08:
|
||||
bl sub_80189B4
|
||||
movs r0, 0
|
||||
strb r0, [r4]
|
||||
movs r0, 0x1
|
||||
b _08018A16
|
||||
_08018A14:
|
||||
movs r0, 0
|
||||
_08018A16:
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_80189DC
|
||||
|
||||
thumb_func_start sub_8018A1C
|
||||
sub_8018A1C: @ 8018A1C
|
||||
push {r4,lr}
|
||||
adds r4, r0, 0
|
||||
ldrb r0, [r4]
|
||||
cmp r0, 0
|
||||
bne _08018A2C
|
||||
adds r0, r1, 0
|
||||
bl sub_8018884
|
||||
_08018A2C:
|
||||
ldrb r0, [r4]
|
||||
adds r0, 0x1
|
||||
strb r0, [r4]
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x78
|
||||
bhi _08018A3E
|
||||
movs r0, 0
|
||||
b _08018A48
|
||||
_08018A3E:
|
||||
movs r0, 0
|
||||
strb r0, [r4]
|
||||
bl sub_80188DC
|
||||
movs r0, 0x1
|
||||
_08018A48:
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8018A1C
|
||||
|
||||
thumb_func_start sub_8018A50
|
||||
sub_8018A50: @ 8018A50
|
||||
push {r4,r5,lr}
|
||||
sub sp, 0x24
|
||||
lsls r2, 24
|
||||
add r1, sp, 0x4
|
||||
ldr r0, =gUnknown_082F0638
|
||||
ldm r0!, {r3-r5}
|
||||
stm r1!, {r3-r5}
|
||||
ldm r0!, {r3-r5}
|
||||
stm r1!, {r3-r5}
|
||||
ldr r0, =gUnknown_082F05E0
|
||||
ldr r1, [r0, 0x4]
|
||||
ldr r0, [r0]
|
||||
str r0, [sp, 0x1C]
|
||||
str r1, [sp, 0x20]
|
||||
cmp r2, 0
|
||||
bne _08018A80
|
||||
ldr r0, =gUnknown_082F0608
|
||||
b _08018A82
|
||||
.pool
|
||||
_08018A80:
|
||||
ldr r0, =gUnknown_082F0620
|
||||
_08018A82:
|
||||
str r0, [sp, 0x4]
|
||||
add r0, sp, 0x4
|
||||
bl sub_81DB41C
|
||||
adds r3, r0, 0
|
||||
movs r0, 0x1
|
||||
ands r0, r3
|
||||
cmp r0, 0
|
||||
beq _08018A96
|
||||
adds r3, 0x1
|
||||
_08018A96:
|
||||
lsls r1, r3, 24
|
||||
ldr r0, =0x00ffffff
|
||||
ldr r2, [sp, 0x1C]
|
||||
ands r2, r0
|
||||
orrs r2, r1
|
||||
str r2, [sp, 0x1C]
|
||||
cmp r3, 0x1D
|
||||
bgt _08018ACC
|
||||
movs r0, 0x1E
|
||||
subs r0, r3
|
||||
lsrs r1, r0, 31
|
||||
adds r0, r1
|
||||
asrs r0, 1
|
||||
lsls r0, 24
|
||||
lsrs r0, 16
|
||||
ldr r1, =0xffff00ff
|
||||
ands r1, r2
|
||||
orrs r1, r0
|
||||
str r1, [sp, 0x1C]
|
||||
b _08018AD2
|
||||
.pool
|
||||
_08018ACC:
|
||||
ldr r0, =0xffff00ff
|
||||
ands r2, r0
|
||||
str r2, [sp, 0x1C]
|
||||
_08018AD2:
|
||||
add r0, sp, 0x1C
|
||||
movs r1, 0xE0
|
||||
str r1, [sp]
|
||||
add r1, sp, 0x4
|
||||
movs r2, 0x1
|
||||
movs r3, 0xA
|
||||
bl DoMysteryGiftListMenu
|
||||
adds r4, r0, 0
|
||||
movs r0, 0x1
|
||||
negs r0, r0
|
||||
cmp r4, r0
|
||||
beq _08018AFA
|
||||
movs r0, 0x2
|
||||
bl ClearWindowTilemap
|
||||
movs r0, 0x2
|
||||
movs r1, 0x1
|
||||
bl CopyWindowToVram
|
||||
_08018AFA:
|
||||
adds r0, r4, 0
|
||||
add sp, 0x24
|
||||
pop {r4,r5}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.pool
|
||||
thumb_func_end sub_8018A50
|
||||
|
||||
thumb_func_start sub_8018B08
|
||||
sub_8018B08: @ 8018B08
|
||||
push {r4-r6,lr}
|
||||
|
@ -20,12 +20,12 @@
|
||||
#include "ereader_screen.h"
|
||||
#include "international_string_util.h"
|
||||
#include "list_menu.h"
|
||||
#include "string_util.h"
|
||||
|
||||
void bgid_upload_textbox_1(u8 bgId);
|
||||
void task_add_00_mystery_gift(void);
|
||||
|
||||
EWRAM_DATA u8 gUnknown_02022C58 = 0;
|
||||
EWRAM_DATA u8 gUnknown_02022C59 = 0;
|
||||
EWRAM_DATA u8 gUnknown_02022C58[2] = {};
|
||||
|
||||
const u16 gUnkTextboxBorderPal[] = INCBIN_U16("graphics/interface/unk_textbox_border.gbapal");
|
||||
const u32 gUnkTextboxBorderGfx[] = INCBIN_U32("graphics/interface/unk_textbox_border.4bpp.lz");
|
||||
@ -492,3 +492,146 @@ void sub_8018798(u32 bg)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8018838(bool32 arg)
|
||||
{
|
||||
switch (arg)
|
||||
{
|
||||
case 0:
|
||||
FillBgTilemapBufferRect(0, 0, 0, 0, 32, 32, 0x11);
|
||||
break;
|
||||
case 1:
|
||||
FillBgTilemapBufferRect(0, 0, 0, 2, 32, 30, 0x11);
|
||||
break;
|
||||
}
|
||||
CopyBgTilemapBufferToVram(0);
|
||||
}
|
||||
|
||||
void sub_8018884(const u8 *str)
|
||||
{
|
||||
StringExpandPlaceholders(gStringVar4, str);
|
||||
FillWindowPixelBuffer(1, 0x11);
|
||||
AddTextPrinterParameterized4(1, 1, 0, 1, 0, 0, gUnknown_082F0728, 0, gStringVar4);
|
||||
sub_8098858(1, 0x001, 0xF);
|
||||
PutWindowTilemap(1);
|
||||
CopyWindowToVram(1, 3);
|
||||
}
|
||||
|
||||
void sub_80188DC(void)
|
||||
{
|
||||
rbox_fill_rectangle(1);
|
||||
ClearWindowTilemap(1);
|
||||
CopyWindowToVram(1, 1);
|
||||
}
|
||||
|
||||
bool32 mevent_0814257C(u8 *textState, const u8 *str)
|
||||
{
|
||||
switch (*textState)
|
||||
{
|
||||
case 0:
|
||||
sub_8018884(str);
|
||||
goto inc;
|
||||
case 1:
|
||||
DrawDownArrow(1, 0xD0, 0x14, 1, FALSE, &gUnknown_02022C58[0], &gUnknown_02022C58[1]);
|
||||
if (({gMain.newKeys & (A_BUTTON | B_BUTTON);}))
|
||||
{
|
||||
inc:
|
||||
(*textState)++;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
DrawDownArrow(1, 0xD0, 0x14, 1, TRUE, &gUnknown_02022C58[0], &gUnknown_02022C58[1]);
|
||||
*textState = 0;
|
||||
sub_80188DC();
|
||||
return TRUE;
|
||||
case 0xFF:
|
||||
*textState = 2;
|
||||
break;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void sub_801898C(void)
|
||||
{
|
||||
DrawDownArrow(1, 0xD0, 0x14, 1, FALSE, &gUnknown_02022C58[0], &gUnknown_02022C58[1]);
|
||||
}
|
||||
|
||||
void sub_80189B4(void)
|
||||
{
|
||||
DrawDownArrow(1, 0xD0, 0x14, 1, TRUE, &gUnknown_02022C58[0], &gUnknown_02022C58[1]);
|
||||
}
|
||||
|
||||
bool32 sub_80189DC(u8 * textState)
|
||||
{
|
||||
switch (*textState)
|
||||
{
|
||||
case 0:
|
||||
sub_801898C();
|
||||
if (({gMain.newKeys & (A_BUTTON | B_BUTTON);}))
|
||||
{
|
||||
(*textState)++;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
sub_80189B4();
|
||||
*textState = 0;
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bool32 sub_8018A1C(u8 * counter, const u8 * str)
|
||||
{
|
||||
if (*counter == 0)
|
||||
{
|
||||
sub_8018884(str);
|
||||
}
|
||||
if (++(*counter) > 120)
|
||||
{
|
||||
*counter = 0;
|
||||
sub_80188DC();
|
||||
return TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
s32 sub_8018A50(u32 unused0, u32 unused1, bool8 r2)
|
||||
{
|
||||
struct ListMenuTemplate listMenuTemplate = gUnknown_082F0638;
|
||||
struct WindowTemplate windowTemplate = gUnknown_082F05E0;
|
||||
s32 r3;
|
||||
s32 r4;
|
||||
|
||||
if (r2 == FALSE)
|
||||
{
|
||||
listMenuTemplate.items = gUnknown_082F0608;
|
||||
}
|
||||
else
|
||||
{
|
||||
listMenuTemplate.items = gUnknown_082F0620;
|
||||
}
|
||||
r3 = sub_81DB41C(&listMenuTemplate);
|
||||
if (r3 & 1)
|
||||
{
|
||||
r3++;
|
||||
}
|
||||
windowTemplate.width = r3;
|
||||
if (r3 < 30)
|
||||
{
|
||||
windowTemplate.tilemapLeft = (30 - r3) / 2;
|
||||
}
|
||||
else
|
||||
{
|
||||
windowTemplate.tilemapLeft = 0;
|
||||
}
|
||||
r4 = DoMysteryGiftListMenu(&windowTemplate, &listMenuTemplate, 1, 0x00A, 0xE0);
|
||||
if (r4 != -1)
|
||||
{
|
||||
ClearWindowTilemap(2);
|
||||
CopyWindowToVram(2, 1);
|
||||
}
|
||||
return r4;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user