Match sub_8013D10

This commit is contained in:
Kermalis 2023-09-13 02:48:56 -04:00
parent d41f643fdb
commit 7e2926f75c
4 changed files with 41 additions and 105 deletions

View File

@ -5,110 +5,6 @@
.text
thumb_func_start sub_8013D10
sub_8013D10:
push {r4-r7,lr}
adds r6, r0, 0
ldr r0, [r6, 0x14]
lsls r1, r0, 3
adds r1, r0
lsls r1, 3
ldr r0, _08013D34
adds r7, r1, r0
adds r4, r6, 0
adds r4, 0x24
ldrb r5, [r4]
bl sub_8012AE8
cmp r0, 0x9
beq _08013D38
cmp r0, 0xA
beq _08013D4E
b _08013D62
.align 2, 0
_08013D34: .4byte gUnknown_2027370
_08013D38:
ldrb r1, [r4]
adds r0, r6, 0
adds r0, 0x25
ldrb r0, [r0]
subs r0, 0x1
cmp r1, r0
bge _08013D4A
adds r0, r1, 0x1
b _08013D5C
_08013D4A:
movs r0, 0
b _08013D60
_08013D4E:
ldrb r0, [r4]
cmp r0, 0
bne _08013D5A
adds r0, r6, 0
adds r0, 0x25
ldrb r0, [r0]
_08013D5A:
subs r0, 0x1
_08013D5C:
lsls r0, 24
lsrs r0, 24
_08013D60:
adds r5, r0, 0
_08013D62:
adds r4, r6, 0
adds r4, 0x24
ldrb r0, [r4]
cmp r5, r0
beq _08013D7C
strb r5, [r4]
movs r0, 0x3
bl PlayMenuSoundEffect
adds r1, r6, 0
adds r1, 0x26
movs r0, 0x8
strb r0, [r1]
_08013D7C:
ldrb r0, [r4]
adds r0, 0x1
lsls r1, r0, 1
adds r1, r0
lsls r1, 2
ldr r2, [r6, 0x1C]
subs r2, r1
movs r1, 0
ldrsh r0, [r7, r1]
lsls r0, 3
adds r2, r0
subs r2, 0x3
ldr r0, _08013DC8
ands r2, r0
ldrh r1, [r6, 0x2A]
movs r0, 0xFE
lsls r0, 8
ands r0, r1
orrs r0, r2
strh r0, [r6, 0x2A]
movs r1, 0x2
ldrsh r0, [r7, r1]
lsls r0, 3
ldr r1, [r6, 0x20]
adds r1, r0
subs r1, 0x7
ldr r0, _08013DCC
ands r1, r0
lsls r1, 4
ldrh r2, [r6, 0x2E]
movs r0, 0xF
ands r0, r2
orrs r0, r1
strh r0, [r6, 0x2E]
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08013DC8: .4byte 0x000001ff
_08013DCC: .4byte 0x00000fff
thumb_func_end sub_8013D10
thumb_func_start sub_8013DD0
sub_8013DD0:
push {r4,r5,lr}

View File

@ -6,7 +6,6 @@
#include "text.h"
// code_80130A8.s
extern void sub_8013D10(unkStructFor8013AA0 *);
extern bool8 sub_8013DD0(unkStructFor8013AA0 *);
extern void sub_8013F84(void);
extern void sub_80140B4(UnkTextStruct2 *);

View File

@ -55,5 +55,6 @@ void nullsub_34(MenuInputStructSub *);
void sub_8013AA0(unkStructFor8013AA0 *);
u32 sub_8013BBC(unkStructFor8013AA0 *);
void sub_8013C68(unkStructFor8013AA0 *);
void sub_8013D10(unkStructFor8013AA0 *);
#endif // GUARD_MENU_INPUT_H

View File

@ -1309,4 +1309,44 @@ void sub_8013C68(unkStructFor8013AA0 *a0)
for (i = 0; i < a0->unk10; i++)
sub_800792C(a0->unk14, a0->unk1C - ((i + 1) * 12) - 1, a0->unk20 + 10, 11, 5);
}
void sub_8013D10(unkStructFor8013AA0 *a0)
{
u8 uVar4;
UnkTextStruct1 *ptr;
ptr = &gUnknown_2027370[a0->unk14];
uVar4 = a0->unk24;
switch (sub_8012AE8()) {
case 9:
uVar4 = a0->unk24 < a0->unk25 - 1 ? a0->unk24 + 1 : 0;
break;
case 10:
uVar4 = a0->unk24 == 0 ? a0->unk25 - 1 : a0->unk24 - 1;
break;
}
if (uVar4 != a0->unk24) {
a0->unk24 = uVar4;
PlayMenuSoundEffect(3);
a0->unk26 = 8;
}
{
s32 temp = (a0->unk1C - ((a0->unk24 + 1) * 12) + (ptr->unk0 * 8)) - 3;
temp &= SPRITEOAM_MAX_X;
temp <<= SPRITEOAM_SHIFT_X;
a0->unk28.attrib2 &= ~SPRITEOAM_MASK_X;
a0->unk28.attrib2 |= temp;
} while (0);
{
s32 temp = a0->unk20 + (ptr->unk2 * 8) - 7;
temp &= SPRITEOAM_MAX_UNK6_4;
temp <<= SPRITEOAM_SHIFT_UNK6_4;
a0->unk28.unk6 &= ~SPRITEOAM_MASK_UNK6_4;
a0->unk28.unk6 |= temp;
} while (0);
}