through sub_812DB64

This commit is contained in:
PikalaxALT
2018-11-25 21:58:52 -05:00
parent 5c013a0897
commit 82c7bd49aa
3 changed files with 57 additions and 112 deletions
-91
View File
@@ -5,97 +5,6 @@
.text
thumb_func_start sub_812DB10
sub_812DB10: @ 812DB10
push {lr}
movs r0, 0
bl sub_812E094
ldr r1, _0812DB24 @ =gUnknown_3005EC8
movs r0, 0xFF
strb r0, [r1]
pop {r0}
bx r0
.align 2, 0
_0812DB24: .4byte gUnknown_3005EC8
thumb_func_end sub_812DB10
thumb_func_start sub_812DB28
sub_812DB28: @ 812DB28
push {r4,lr}
bl sub_812DB64
bl sub_812DEF0
ldr r4, _0812DB5C @ =gUnknown_203B0FC
ldr r3, [r4]
lsls r0, 2
ldrb r2, [r3, 0x7]
movs r1, 0x3
ands r1, r2
orrs r1, r0
strb r1, [r3, 0x7]
ldr r0, _0812DB60 @ =gUnknown_3005EB0
movs r1, 0
movs r2, 0
bl ListMenuInit
ldr r1, [r4]
strb r0, [r1, 0x8]
movs r0, 0
bl sub_812DFE4
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0812DB5C: .4byte gUnknown_203B0FC
_0812DB60: .4byte gUnknown_3005EB0
thumb_func_end sub_812DB28
thumb_func_start sub_812DB64
sub_812DB64: @ 812DB64
ldr r2, _0812DBB4 @ =gUnknown_3005EB0
ldr r0, _0812DBB8 @ =gUnknown_203B100
ldr r0, [r0]
str r0, [r2]
ldr r0, _0812DBBC @ =sub_812DBC0
str r0, [r2, 0x4]
movs r0, 0
str r0, [r2, 0x8]
movs r1, 0
movs r0, 0x1
strh r0, [r2, 0xC]
strh r0, [r2, 0xE]
strb r1, [r2, 0x10]
strb r1, [r2, 0x11]
movs r0, 0x8
strb r0, [r2, 0x12]
strb r1, [r2, 0x13]
ldrb r1, [r2, 0x14]
subs r0, 0x18
ands r0, r1
movs r1, 0x4
orrs r0, r1
movs r1, 0xF
ands r0, r1
movs r1, 0x20
orrs r0, r1
strb r0, [r2, 0x14]
movs r0, 0x30
strb r0, [r2, 0x15]
movs r3, 0x3F
movs r0, 0
strb r0, [r2, 0x16]
ldrb r1, [r2, 0x17]
subs r0, 0x40
ands r0, r1
movs r1, 0x2
orrs r0, r1
ands r0, r3
strb r0, [r2, 0x17]
bx lr
.align 2, 0
_0812DBB4: .4byte gUnknown_3005EB0
_0812DBB8: .4byte gUnknown_203B100
_0812DBBC: .4byte sub_812DBC0
thumb_func_end sub_812DB64
thumb_func_start sub_812DBC0
sub_812DBC0: @ 812DBC0
push {r4-r7,lr}
+15 -14
View File
@@ -18,22 +18,23 @@ struct ListMenu;
struct ListMenuTemplate
{
const struct ListMenuItem *items;
void (* unk_04)(u32, bool8, struct ListMenu *);
void (* unk_08)(u8, s32, u8);
void (* moveCursorFunc)(s32 itemIndex, bool8 onInit, struct ListMenu *list);
void (* itemPrintFunc)(u8 windowId, s32 itemId, u8 y);
u16 totalItems;
u16 maxShowed;
u8 unk_10;
u8 unk_11;
u8 unk_12;
u8 cursor_Y;
u32 upText_Y:4; // x1, x2, x4, x8 = xF
u32 cursorColor:4; // x10, x20, x40, x80 = xF0
u32 fillColor:4; // x100, x200, x400, x800 = xF00
u32 cursorShadowColor:4; // x1000, x2000, x4000, x8000 = xF000
u32 unk_16_0:1; // x10000
u32 spaceBetweenItems:6; // x20000, x40000, x80000, x100000, x200000, x400000 = x7E0000
u32 unk_16_7:1; // x800000
u32 unk_17_0:6; // x1000000, x2000000, x4000000, x8000000, x10000000, x20000000 = x3F000000
u8 windowId;
u8 header_X;
u8 item_X;
u8 cursor_X;
u8 upText_Y:4; // x1, x2, x4, x8 = xF
u8 cursorPal:4; // x10, x20, x40, x80 = xF0
u8 fillValue:4; // x1, x2, x4, x8 = xF
u8 cursorShadowPal:4; // x10, x20, x40, x80 = xF0
u8 lettersSpacing:3;
u8 itemVerticalPadding:3;
u8 scrollMultiple:2; // x40, x80 = xC0
u8 fontId:6; // x1, x2, x4, x8, x10, x20 = x3F
u8 cursorKind:2; // x40, x80
};
struct ListMenu {
+42 -7
View File
@@ -50,16 +50,11 @@ struct FameCheckerData
u8 unk_23_2:1;
};
struct FameCheckerData2
{
u8 filler_00[0x88];
};
EWRAM_DATA u16 * gUnknown_203B0F0 = NULL;
EWRAM_DATA u16 * gUnknown_203B0F4 = NULL;
EWRAM_DATA u16 * gUnknown_203B0F8 = NULL;
EWRAM_DATA struct FameCheckerData * gUnknown_203B0FC = NULL;
EWRAM_DATA struct FameCheckerData2 * gUnknown_203B100 = NULL;
EWRAM_DATA struct ListMenuItem * gUnknown_203B100 = NULL;
EWRAM_DATA u32 gUnknown_203B104 = 0;
struct ListMenuTemplate gUnknown_3005EB0;
@@ -106,6 +101,10 @@ void sub_812D9A8(u8 a0, u16 a1);
void sub_812DA14(u8 a0);
void sub_812DB10(void);
void sub_812DB28(void);
void sub_812DB64(void);
void sub_812DBC0(s32, bool8, struct ListMenu *);
u8 sub_812DEF0(void);
void sub_812DFE4(u8);
void sub_812E000(void);
void sub_812E048(void);
u16 sub_812E064(void);
@@ -225,7 +224,7 @@ void sub_812C3F8(void)
InitWindows(gUnknown_845FC04);
DeactivateAllTextPrinters();
sub_812CEC0();
gUnknown_203B100 = AllocZeroed(sizeof(struct FameCheckerData2));
gUnknown_203B100 = AllocZeroed(17 * sizeof(struct ListMenuItem));
sub_812DB28();
gMain.state++;
break;
@@ -939,3 +938,39 @@ void sub_812DA14(u8 a0)
AddTextPrinterParametrized2(3, 0, width, 10, 0, 2, &gUnknown_845F5E3, -1, gStringVar1);
sub_812CEE0(3);
}
void sub_812DB10(void)
{
sub_812E094(0);
gUnknown_3005EC8 = 0xFF;
}
void sub_812DB28(void)
{
sub_812DB64();
gUnknown_203B0FC->unk_07_2 = sub_812DEF0();
gUnknown_203B0FC->unk_08 = ListMenuInit(&gUnknown_3005EB0, 0, 0);
sub_812DFE4(0);
}
void sub_812DB64(void)
{
gUnknown_3005EB0.items = gUnknown_203B100;
gUnknown_3005EB0.moveCursorFunc = sub_812DBC0;
gUnknown_3005EB0.itemPrintFunc = NULL;
gUnknown_3005EB0.totalItems = 1;
gUnknown_3005EB0.maxShowed = 1;
gUnknown_3005EB0.windowId = 0;
gUnknown_3005EB0.header_X = 0;
gUnknown_3005EB0.item_X = 8;
gUnknown_3005EB0.cursor_X = 0;
gUnknown_3005EB0.upText_Y = 4;
gUnknown_3005EB0.cursorPal = 2;
gUnknown_3005EB0.fillValue = 0;
gUnknown_3005EB0.cursorShadowPal = 3;
gUnknown_3005EB0.lettersSpacing = 0;
gUnknown_3005EB0.itemVerticalPadding = 0;
gUnknown_3005EB0.scrollMultiple = 0;
gUnknown_3005EB0.fontId = 2;
gUnknown_3005EB0.cursorKind = 0;
}