summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2018-11-25 21:58:52 -0500
committerPikalaxALT <pikalaxalt@gmail.com>2018-11-25 21:58:52 -0500
commit82c7bd49aa07293c840254bccc144836057f2c65 (patch)
treea48b50f14766b8009969cc03dd177aee6130e18c
parent5c013a089798efa1819986528de4af8470a9c329 (diff)
through sub_812DB64
-rw-r--r--asm/fame_checker.s91
-rw-r--r--include/list_menu.h29
-rw-r--r--src/fame_checker.c49
3 files changed, 57 insertions, 112 deletions
diff --git a/asm/fame_checker.s b/asm/fame_checker.s
index aa0cb17c4..471e9921b 100644
--- a/asm/fame_checker.s
+++ b/asm/fame_checker.s
@@ -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}
diff --git a/include/list_menu.h b/include/list_menu.h
index 89adeaba0..fc829940e 100644
--- a/include/list_menu.h
+++ b/include/list_menu.h
@@ -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 {
diff --git a/src/fame_checker.c b/src/fame_checker.c
index 0c7072fb4..203d1ca6c 100644
--- a/src/fame_checker.c
+++ b/src/fame_checker.c
@@ -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;
+}