sub_8146884
This commit is contained in:
@@ -5,140 +5,6 @@
|
|||||||
|
|
||||||
.text
|
.text
|
||||||
|
|
||||||
thumb_func_start sub_8146884
|
|
||||||
sub_8146884: @ 8146884
|
|
||||||
push {r4-r6,lr}
|
|
||||||
lsls r0, 16
|
|
||||||
lsrs r4, r0, 16
|
|
||||||
adds r3, r4, 0
|
|
||||||
ldr r2, =gUnknown_203F3CC
|
|
||||||
ldr r0, [r2]
|
|
||||||
mov r12, r0
|
|
||||||
movs r0, 0xE1
|
|
||||||
lsls r0, 1
|
|
||||||
add r0, r12
|
|
||||||
ldrb r1, [r0]
|
|
||||||
movs r5, 0x1
|
|
||||||
adds r0, r5, 0
|
|
||||||
ands r0, r1
|
|
||||||
adds r6, r2, 0
|
|
||||||
cmp r0, 0
|
|
||||||
beq _081468B4
|
|
||||||
bl sub_8146B58
|
|
||||||
_081468AA:
|
|
||||||
movs r0, 0xFF
|
|
||||||
b _0814697A
|
|
||||||
.pool
|
|
||||||
_081468B4:
|
|
||||||
cmp r4, 0x2
|
|
||||||
beq _081468D0
|
|
||||||
cmp r4, 0x2
|
|
||||||
bgt _081468C2
|
|
||||||
cmp r4, 0x1
|
|
||||||
beq _081468CC
|
|
||||||
b _081468AA
|
|
||||||
_081468C2:
|
|
||||||
cmp r3, 0x40
|
|
||||||
beq _081468D4
|
|
||||||
cmp r3, 0x80
|
|
||||||
beq _08146904
|
|
||||||
b _081468AA
|
|
||||||
_081468CC:
|
|
||||||
movs r0, 0
|
|
||||||
b _0814697A
|
|
||||||
_081468D0:
|
|
||||||
movs r0, 0x1
|
|
||||||
b _0814697A
|
|
||||||
_081468D4:
|
|
||||||
movs r0, 0xE3
|
|
||||||
lsls r0, 1
|
|
||||||
add r0, r12
|
|
||||||
ldrh r0, [r0]
|
|
||||||
cmp r0, 0
|
|
||||||
beq _081468AA
|
|
||||||
movs r0, 0xE0
|
|
||||||
lsls r0, 1
|
|
||||||
add r0, r12
|
|
||||||
ldrb r1, [r0]
|
|
||||||
adds r0, r5, 0
|
|
||||||
ands r0, r1
|
|
||||||
cmp r0, 0
|
|
||||||
bne _081468AA
|
|
||||||
ldr r2, =0x000001c3
|
|
||||||
add r2, r12
|
|
||||||
ldrb r1, [r2]
|
|
||||||
movs r0, 0x2
|
|
||||||
negs r0, r0
|
|
||||||
ands r0, r1
|
|
||||||
b _08146932
|
|
||||||
.pool
|
|
||||||
_08146904:
|
|
||||||
movs r0, 0xE3
|
|
||||||
lsls r0, 1
|
|
||||||
add r0, r12
|
|
||||||
movs r1, 0xE2
|
|
||||||
lsls r1, 1
|
|
||||||
add r1, r12
|
|
||||||
ldrh r0, [r0]
|
|
||||||
ldrh r1, [r1]
|
|
||||||
cmp r0, r1
|
|
||||||
beq _081468AA
|
|
||||||
movs r0, 0xE0
|
|
||||||
lsls r0, 1
|
|
||||||
add r0, r12
|
|
||||||
ldrb r1, [r0]
|
|
||||||
adds r0, r5, 0
|
|
||||||
ands r0, r1
|
|
||||||
cmp r0, 0
|
|
||||||
bne _081468AA
|
|
||||||
ldr r2, =0x000001c3
|
|
||||||
add r2, r12
|
|
||||||
ldrb r0, [r2]
|
|
||||||
movs r1, 0x1
|
|
||||||
orrs r0, r1
|
|
||||||
_08146932:
|
|
||||||
strb r0, [r2]
|
|
||||||
ldr r2, [r6]
|
|
||||||
movs r4, 0xE1
|
|
||||||
lsls r4, 1
|
|
||||||
adds r2, r4
|
|
||||||
ldrb r0, [r2]
|
|
||||||
movs r1, 0x1
|
|
||||||
orrs r0, r1
|
|
||||||
strb r0, [r2]
|
|
||||||
ldr r3, [r6]
|
|
||||||
adds r3, r4
|
|
||||||
ldrb r1, [r3]
|
|
||||||
movs r2, 0x1
|
|
||||||
adds r0, r2, 0
|
|
||||||
ands r0, r1
|
|
||||||
movs r1, 0x4
|
|
||||||
orrs r0, r1
|
|
||||||
strb r0, [r3]
|
|
||||||
ldr r1, [r6]
|
|
||||||
adds r4, 0x1
|
|
||||||
adds r1, r4
|
|
||||||
ldrb r3, [r1]
|
|
||||||
adds r0, r2, 0
|
|
||||||
ands r0, r3
|
|
||||||
strb r0, [r1]
|
|
||||||
ldr r0, [r6]
|
|
||||||
adds r0, r4
|
|
||||||
ldrb r0, [r0]
|
|
||||||
ands r2, r0
|
|
||||||
cmp r2, 0
|
|
||||||
beq _08146978
|
|
||||||
movs r0, 0x3
|
|
||||||
b _0814697A
|
|
||||||
.pool
|
|
||||||
_08146978:
|
|
||||||
movs r0, 0x2
|
|
||||||
_0814697A:
|
|
||||||
pop {r4-r6}
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
thumb_func_end sub_8146884
|
|
||||||
|
|
||||||
thumb_func_start sub_8146980
|
thumb_func_start sub_8146980
|
||||||
sub_8146980: @ 8146980
|
sub_8146980: @ 8146980
|
||||||
push {r4-r6,lr}
|
push {r4-r6,lr}
|
||||||
|
|||||||
+47
-3
@@ -456,9 +456,13 @@ struct UnkStruct_203F3CC
|
|||||||
/*0000*/ struct MEventBuffer_3120_Sub unk_0000;
|
/*0000*/ struct MEventBuffer_3120_Sub unk_0000;
|
||||||
/*01bc*/ const struct UnkStruct_8468720 * unk_01BC;
|
/*01bc*/ const struct UnkStruct_8468720 * unk_01BC;
|
||||||
/*01c0*/ u8 unk_01C0_0:1;
|
/*01c0*/ u8 unk_01C0_0:1;
|
||||||
/*01c0*/ u8 unk_01C0_1:7;
|
u8 unk_01C0_1:7;
|
||||||
/*01c1*/ u8 unk_01C1;
|
/*01c1*/ u8 unk_01C1;
|
||||||
/*01c2*/ u8 filler_01C2[4];
|
/*01c2*/ u8 unk_01C2_0:1;
|
||||||
|
u8 unk_01C2_1:7;
|
||||||
|
/*01c3*/ u8 unk_01C3_0:1;
|
||||||
|
u8 unk_01C3_1:7;
|
||||||
|
/*01c4*/ u16 unk_01C4;
|
||||||
/*01c6*/ u16 unk_01C6;
|
/*01c6*/ u16 unk_01C6;
|
||||||
/*01c8*/ u16 unk_01C8[2];
|
/*01c8*/ u16 unk_01C8[2];
|
||||||
/*01cc*/ u8 filler_01CC[0x1C8];
|
/*01cc*/ u8 filler_01CC[0x1C8];
|
||||||
@@ -470,6 +474,7 @@ EWRAM_DATA struct UnkStruct_203F3CC * gUnknown_203F3CC = NULL;
|
|||||||
|
|
||||||
void sub_8146980(void);
|
void sub_8146980(void);
|
||||||
void sub_8146A30(void);
|
void sub_8146A30(void);
|
||||||
|
void sub_8146B58(void);
|
||||||
|
|
||||||
extern const struct TextColor gUnknown_8468038[2];
|
extern const struct TextColor gUnknown_8468038[2];
|
||||||
extern const struct WindowTemplate gUnknown_8468040[2];
|
extern const struct WindowTemplate gUnknown_8468040[2];
|
||||||
@@ -657,4 +662,43 @@ void sub_8146834(void)
|
|||||||
gUnknown_203F3CC->unk_01C1 = AddScrollIndicatorArrowPair(&gUnknown_203F3CC->unk_0394, &gUnknown_203F3CC->unk_01C6);
|
gUnknown_203F3CC->unk_01C1 = AddScrollIndicatorArrowPair(&gUnknown_203F3CC->unk_0394, &gUnknown_203F3CC->unk_01C6);
|
||||||
gUnknown_203F3CC->unk_01C0_0 = FALSE;
|
gUnknown_203F3CC->unk_01C0_0 = FALSE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
u8 sub_8146884(u16 input)
|
||||||
|
{
|
||||||
|
if (gUnknown_203F3CC->unk_01C2_0)
|
||||||
|
{
|
||||||
|
sub_8146B58();
|
||||||
|
return 0xFF;
|
||||||
|
}
|
||||||
|
switch (input)
|
||||||
|
{
|
||||||
|
case A_BUTTON:
|
||||||
|
return 0;
|
||||||
|
case B_BUTTON:
|
||||||
|
return 1;
|
||||||
|
case DPAD_UP:
|
||||||
|
if (gUnknown_203F3CC->unk_01C6 == 0)
|
||||||
|
return 0xFF;
|
||||||
|
if (gUnknown_203F3CC->unk_01C0_0)
|
||||||
|
return 0xFF;
|
||||||
|
gUnknown_203F3CC->unk_01C3_0 = FALSE;
|
||||||
|
break;
|
||||||
|
case DPAD_DOWN:
|
||||||
|
if (gUnknown_203F3CC->unk_01C6 == gUnknown_203F3CC->unk_01C4)
|
||||||
|
return 0xFF;
|
||||||
|
if (gUnknown_203F3CC->unk_01C0_0)
|
||||||
|
return 0xFF;
|
||||||
|
gUnknown_203F3CC->unk_01C3_0 = TRUE;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
return 0xFF;
|
||||||
|
}
|
||||||
|
gUnknown_203F3CC->unk_01C2_0 = TRUE;
|
||||||
|
gUnknown_203F3CC->unk_01C2_1 = 2;
|
||||||
|
gUnknown_203F3CC->unk_01C3_1 = 0;
|
||||||
|
if (gUnknown_203F3CC->unk_01C3_0 == FALSE)
|
||||||
|
return 2;
|
||||||
|
else
|
||||||
|
return 3;
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user