summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2018-12-02 17:25:59 -0500
committerPikalaxALT <pikalaxalt@gmail.com>2018-12-02 17:25:59 -0500
commit5151db6054d0704584fdf53e55840e262cde32a4 (patch)
tree561679502ad7dc94835c7c63236f3a655d874700
parent39a9e186e05fd87d7b4787822b7207e8ab9fd9fd (diff)
sub_8146288
-rw-r--r--asm/mevent_8145654.s50
-rw-r--r--data/data_8466FB8.s16
-rw-r--r--include/global.h1
-rw-r--r--src/mevent_8145654.c50
4 files changed, 55 insertions, 62 deletions
diff --git a/asm/mevent_8145654.s b/asm/mevent_8145654.s
index 152a8759a..22b042b50 100644
--- a/asm/mevent_8145654.s
+++ b/asm/mevent_8145654.s
@@ -5,56 +5,6 @@
.text
- @ file boundary maybe
-
- thumb_func_start sub_8146288
-sub_8146288: @ 8146288
- push {r4-r6,lr}
- adds r4, r0, 0
- cmp r4, 0
- beq _0814629E
- ldr r5, =gUnknown_203F3CC
- ldr r0, =0x000013a4
- bl AllocZeroed
- str r0, [r5]
- cmp r0, 0
- bne _081462AC
-_0814629E:
- movs r0, 0
- b _081462DC
- .pool
-_081462AC:
- movs r6, 0xDE
- lsls r6, 1
- adds r1, r4, 0
- adds r2, r6, 0
- bl memcpy
- ldr r1, [r5]
- ldrb r0, [r1, 0x3]
- cmp r0, 0x7
- bls _081462C4
- movs r0, 0
- strb r0, [r1, 0x3]
-_081462C4:
- ldr r2, [r5]
- adds r3, r2, r6
- ldrb r0, [r2, 0x3]
- lsls r0, 4
- ldr r1, =gUnknown_8468720
- adds r0, r1
- str r0, [r3]
- ldr r0, =0x000001c1
- adds r1, r2, r0
- movs r0, 0xFF
- strb r0, [r1]
- movs r0, 0x1
-_081462DC:
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8146288
-
thumb_func_start sub_81462EC
sub_81462EC: @ 81462EC
push {r4,lr}
diff --git a/data/data_8466FB8.s b/data/data_8466FB8.s
index 7acd28401..389b0d584 100644
--- a/data/data_8466FB8.s
+++ b/data/data_8466FB8.s
@@ -3,14 +3,24 @@
.section .rodata
+ .macro window_template bg, left, top, width, height, pal, baseTile
+ .byte \bg, \left, \top, \width, \height, \pal
+ .2byte \baseTile
+ .endm
+
gUnknown_8468038:: @ 8468038
- .incbin "baserom.gba", 0x468038, 0x8
+ .byte 0x00, 0x02, 0x03
+ .byte 0x00, 0x01, 0x02
+ .align 2
gUnknown_8468040:: @ 8468040
- .incbin "baserom.gba", 0x468040, 0x10
+ window_template 0x00, 0x01, 0x00, 0x1c, 0x03, 0x0f, 0x0000
+ window_template 0x02, 0x01, 0x03, 0x1c, 0x14, 0x0f, 0x0000
+ .align 2
gUnknown_8468050:: @ 8468050
- .incbin "baserom.gba", 0x468050, 0x10
+ .byte 0x02, 0xe8, 0x18, 0x03, 0xe8, 0x98
+ .2byte 0x0000, 0x0002, 0x1000, 0x1000, 0x0000
gUnknown_8468060::
.incbin "baserom.gba", 0x468060, 0x20
diff --git a/include/global.h b/include/global.h
index 783a2c375..840c90725 100644
--- a/include/global.h
+++ b/include/global.h
@@ -599,6 +599,7 @@ struct MEventBuffer_3120_Sub
{
u16 unk_00;
u8 unk_02;
+ u8 unk_03;
u8 filler_04[440];
};
diff --git a/src/mevent_8145654.c b/src/mevent_8145654.c
index 578b90b54..4c81cb620 100644
--- a/src/mevent_8145654.c
+++ b/src/mevent_8145654.c
@@ -48,13 +48,7 @@ struct UnkStruct_203F3C8
/*045C*/ u8 buffer_045C[0x1000];
};
-struct UnkStruct_203F3CC
-{
- /*0000*/ u8 filler_0000[0x13a4];
-};
-
EWRAM_DATA struct UnkStruct_203F3C8 * gUnknown_203F3C8 = NULL;
-EWRAM_DATA struct UnkStruct_203F3CC * gUnknown_203F3CC = NULL;
void sub_8145A98(void);
void sub_8145D18(u8 whichWindow);
@@ -138,11 +132,11 @@ bool32 sub_8145654(struct MEventBuffer_32E0_Sub * r5, struct MEventBuffer_3430_S
return FALSE;
gUnknown_203F3C8->unk_0000 = *r5;
gUnknown_203F3C8->unk_014C = *r6;
- if (gUnknown_203F3C8->unk_0000.unk_08_2 > 7)
+ if (gUnknown_203F3C8->unk_0000.unk_08_2 >= NELEMS(gUnknown_8467FB8))
gUnknown_203F3C8->unk_0000.unk_08_2 = 0;
- if (gUnknown_203F3C8->unk_0000.unk_08_0 > 2)
+ if (gUnknown_203F3C8->unk_0000.unk_08_0 >= NELEMS(gUnknown_8467070))
gUnknown_203F3C8->unk_0000.unk_08_0 = 0;
- if (gUnknown_203F3C8->unk_0000.unk_09 > 7)
+ if (gUnknown_203F3C8->unk_0000.unk_09 > NELEMS(gUnknown_203F3C8->unk_017D))
gUnknown_203F3C8->unk_0000.unk_09 = 0;
gUnknown_203F3C8->unk_0170 = &gUnknown_8467FB8[gUnknown_203F3C8->unk_0000.unk_08_2];
return TRUE;
@@ -445,3 +439,41 @@ void sub_81461D8(void)
FreeSpritePaletteByTag(0x8000);
}
}
+
+struct UnkStruct_8468720
+{
+ u8 unk0;
+ const void * unk4;
+ const void * unk8;
+ const void * unkC;
+};
+
+struct UnkStruct_203F3CC
+{
+ /*0000*/ struct MEventBuffer_3120_Sub unk_0000;
+ /*01bc*/ const struct UnkStruct_8468720 * unk_01BC;
+ /*01c0*/ u8 unk_01C0;
+ /*01c1*/ u8 unk_01C1;
+ /*01c2*/ u8 filler_01C2[0x11e2];
+};
+
+EWRAM_DATA struct UnkStruct_203F3CC * gUnknown_203F3CC = NULL;
+
+extern const struct TextColor gUnknown_8468038[2];
+extern const struct UnkStruct_8468720 gUnknown_8468720[8];
+extern const struct ScrollIndicatorArrowPairTemplate gUnknown_8468050;
+
+bool32 sub_8146288(const struct MEventBuffer_3120_Sub * a0)
+{
+ if (a0 == NULL)
+ return FALSE;
+ gUnknown_203F3CC = AllocZeroed(sizeof(struct UnkStruct_203F3CC));
+ if (gUnknown_203F3CC == NULL)
+ return FALSE;
+ gUnknown_203F3CC->unk_0000 = *a0;
+ if (gUnknown_203F3CC->unk_0000.unk_03 >= NELEMS(gUnknown_8468720))
+ gUnknown_203F3CC->unk_0000.unk_03 = 0;
+ gUnknown_203F3CC->unk_01BC = &gUnknown_8468720[gUnknown_203F3CC->unk_0000.unk_03];
+ gUnknown_203F3CC->unk_01C1 = 0xFF;
+ return TRUE;
+}