decomp more menu_input

This commit is contained in:
Seth Barberee 2023-06-30 07:41:42 -07:00
parent d18b00758b
commit 27fade4e9c
5 changed files with 357 additions and 633 deletions

View File

@ -582,632 +582,4 @@ _08013658: .4byte 0x000001ff
_0801365C: .4byte 0x000003f3
thumb_func_end sub_8013470
thumb_func_start sub_8013660
sub_8013660:
push {r4,lr}
adds r4, r0, 0
movs r1, 0x1A
ldrsh r0, [r4, r1]
cmp r0, 0
ble _0801367A
adds r0, r4, 0
bl UpdateMenuCursorSpriteCoords
adds r0, r4, 0
adds r0, 0x8
bl sub_801332C
_0801367A:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8013660
thumb_func_start UpdateMenuCursorSpriteCoords
UpdateMenuCursorSpriteCoords:
push {r4,r5,lr}
adds r5, r0, 0
ldr r0, [r5]
lsls r4, r0, 3
adds r4, r0
lsls r4, 3
ldr r0, _080136B8
adds r4, r0
movs r1, 0
ldrsh r0, [r4, r1]
lsls r0, 3
ldrh r2, [r5, 0x4]
adds r0, r2
strh r0, [r5, 0x8]
movs r0, 0x18
ldrsh r1, [r5, r0]
adds r0, r5, 0
bl sub_8013800
movs r2, 0x2
ldrsh r1, [r4, r2]
lsls r1, 3
adds r1, r0
strh r1, [r5, 0xA]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080136B8: .4byte gUnknown_2027370
thumb_func_end UpdateMenuCursorSpriteCoords
thumb_func_start MoveMenuCursorDown
MoveMenuCursorDown:
push {lr}
adds r1, r0, 0
movs r3, 0
strh r3, [r1, 0x24]
movs r0, 0x1A
ldrsh r2, [r1, r0]
cmp r2, 0
ble _080136DA
ldrh r0, [r1, 0x18]
adds r0, 0x1
strh r0, [r1, 0x18]
lsls r0, 16
asrs r0, 16
cmp r0, r2
blt _080136DC
_080136DA:
strh r3, [r1, 0x18]
_080136DC:
pop {r0}
bx r0
thumb_func_end MoveMenuCursorDown
thumb_func_start sub_80136E0
sub_80136E0:
push {r4,r5,lr}
adds r2, r0, 0
lsls r1, 24
lsrs r5, r1, 24
movs r1, 0
strh r1, [r2, 0x24]
ldrh r4, [r2, 0x1A]
movs r0, 0x1A
ldrsh r3, [r2, r0]
cmp r3, 0
ble _08013708
ldrh r0, [r2, 0x18]
adds r0, 0x1
strh r0, [r2, 0x18]
lsls r0, 16
asrs r0, 16
cmp r0, r3
blt _08013710
cmp r5, 0
beq _0801370C
_08013708:
strh r1, [r2, 0x18]
b _08013710
_0801370C:
subs r0, r4, 0x1
strh r0, [r2, 0x18]
_08013710:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_80136E0
thumb_func_start MoveMenuCursorUp
MoveMenuCursorUp:
push {r4,lr}
adds r1, r0, 0
movs r2, 0
strh r2, [r1, 0x24]
ldrh r3, [r1, 0x1A]
movs r4, 0x1A
ldrsh r0, [r1, r4]
cmp r0, 0
bgt _0801372E
strh r2, [r1, 0x18]
b _0801373E
_0801372E:
ldrh r0, [r1, 0x18]
subs r0, 0x1
strh r0, [r1, 0x18]
lsls r0, 16
cmp r0, 0
bge _0801373E
subs r0, r3, 0x1
strh r0, [r1, 0x18]
_0801373E:
pop {r4}
pop {r0}
bx r0
thumb_func_end MoveMenuCursorUp
thumb_func_start sub_8013744
sub_8013744:
push {r4-r6,lr}
adds r2, r0, 0
lsls r1, 24
lsrs r1, 24
adds r5, r1, 0
movs r3, 0
strh r3, [r2, 0x24]
ldrh r4, [r2, 0x1A]
movs r6, 0x1A
ldrsh r0, [r2, r6]
cmp r0, 0
bgt _08013760
strh r3, [r2, 0x18]
b _08013778
_08013760:
ldrh r0, [r2, 0x18]
subs r0, 0x1
strh r0, [r2, 0x18]
lsls r0, 16
cmp r0, 0
bge _08013778
cmp r1, 0
beq _08013776
subs r0, r4, 0x1
strh r0, [r2, 0x18]
b _08013778
_08013776:
strh r5, [r2, 0x18]
_08013778:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_8013744
thumb_func_start sub_8013780
sub_8013780:
push {lr}
adds r2, r0, 0
cmp r1, 0
bge _0801378E
movs r0, 0
strh r0, [r2, 0x18]
b _080137A0
_0801378E:
movs r3, 0x1A
ldrsh r0, [r2, r3]
cmp r1, r0
blt _0801379E
ldrh r0, [r2, 0x1A]
subs r0, 0x1
strh r0, [r2, 0x18]
b _080137A0
_0801379E:
strh r1, [r2, 0x18]
_080137A0:
movs r0, 0
strh r0, [r2, 0x24]
pop {r0}
bx r0
thumb_func_end sub_8013780
thumb_func_start sub_80137A8
sub_80137A8:
movs r1, 0x18
ldrsh r0, [r0, r1]
bx lr
thumb_func_end sub_80137A8
thumb_func_start sub_80137B0
sub_80137B0:
push {r4,lr}
adds r4, r0, 0
cmp r1, 0
ble _080137BC
lsls r0, r1, 8
b _080137E2
_080137BC:
ldr r3, _080137F4
ldr r1, [r4]
lsls r0, r1, 3
adds r0, r1
lsls r1, r0, 3
adds r0, r3, 0
adds r0, 0xC
adds r0, r1, r0
ldr r0, [r0]
movs r2, 0
cmp r0, 0x6
bne _080137D6
movs r2, 0x10
_080137D6:
adds r0, r1, r3
movs r1, 0x6
ldrsh r0, [r0, r1]
lsls r0, 3
subs r0, r2
lsls r0, 8
_080137E2:
movs r2, 0x1C
ldrsh r1, [r4, r2]
bl __divsi3
str r0, [r4, 0x10]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080137F4: .4byte gUnknown_2027370
thumb_func_end sub_80137B0
thumb_func_start sub_80137F8
sub_80137F8:
lsls r1, 8
str r1, [r0, 0x10]
bx lr
thumb_func_end sub_80137F8
thumb_func_start sub_8013800
sub_8013800:
push {lr}
movs r3, 0x6
ldrsh r2, [r0, r3]
ldr r0, [r0, 0x10]
muls r0, r1
cmp r0, 0
bge _08013810
adds r0, 0xFF
_08013810:
asrs r0, 8
adds r0, r2, r0
pop {r1}
bx r1
thumb_func_end sub_8013800
thumb_func_start sub_8013818
sub_8013818:
push {r4,lr}
adds r4, r0, 0
str r3, [r4]
movs r0, 0
strh r1, [r4, 0x22]
strh r2, [r4, 0x1C]
strh r0, [r4, 0x14]
strh r0, [r4, 0x24]
strh r0, [r4, 0x18]
strh r0, [r4, 0x1E]
adds r0, r4, 0
adds r0, 0x28
bl sub_801317C
adds r0, r4, 0
bl sub_8013984
adds r0, r4, 0
movs r1, 0xC
bl sub_80137F8
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8013818
thumb_func_start sub_8013848
sub_8013848:
push {r4,lr}
adds r4, r0, 0
str r3, [r4]
movs r0, 0
strh r1, [r4, 0x22]
strh r2, [r4, 0x1C]
strh r0, [r4, 0x14]
strh r0, [r4, 0x24]
strh r0, [r4, 0x18]
strh r0, [r4, 0x1E]
adds r0, r4, 0
adds r0, 0x28
bl sub_801317C
adds r0, r4, 0
bl sub_8013984
adds r0, r4, 0
movs r1, 0x18
bl sub_80137F8
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8013848
thumb_func_start sub_8013878
sub_8013878:
push {r4-r6,lr}
adds r5, r0, 0
adds r6, r1, 0
cmp r6, 0
bge _08013886
movs r6, 0
b _08013890
_08013886:
movs r1, 0x22
ldrsh r0, [r5, r1]
cmp r6, r0
blt _08013890
subs r6, r0, 0x1
_08013890:
movs r0, 0x1C
ldrsh r1, [r5, r0]
adds r0, r6, 0
bl __divsi3
movs r4, 0
strh r0, [r5, 0x1E]
movs r0, 0x1C
ldrsh r1, [r5, r0]
adds r0, r6, 0
bl __modsi3
strh r0, [r5, 0x18]
strh r4, [r5, 0x24]
adds r0, r5, 0
bl sub_8013984
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_8013878
thumb_func_start sub_80138B8
sub_80138B8:
push {r4-r7,lr}
adds r5, r0, 0
lsls r4, r1, 24
lsrs r4, 24
movs r0, 0x1E
ldrsh r7, [r5, r0]
movs r1, 0x18
ldrsh r6, [r5, r1]
adds r0, r5, 0
bl AddMenuCursorSprite
cmp r4, 0
beq _0801391C
adds r0, r5, 0
bl GetKeyPress
cmp r0, 0x8
beq _080138F8
cmp r0, 0x8
bgt _080138E6
cmp r0, 0x7
beq _080138F0
b _0801391C
_080138E6:
cmp r0, 0x9
beq _0801390E
cmp r0, 0xA
beq _08013916
b _0801391C
_080138F0:
adds r0, r5, 0
bl MoveMenuCursorUp
b _080138FE
_080138F8:
adds r0, r5, 0
bl MoveMenuCursorDown
_080138FE:
movs r1, 0x18
ldrsh r0, [r5, r1]
cmp r6, r0
beq _0801391C
movs r0, 0x3
bl PlayMenuSoundEffect
b _0801391C
_0801390E:
adds r0, r5, 0
bl sub_8013A7C
b _0801391C
_08013916:
adds r0, r5, 0
bl sub_8013A54
_0801391C:
movs r1, 0x1E
ldrsh r0, [r5, r1]
cmp r7, r0
bne _08013928
movs r0, 0
b _08013930
_08013928:
movs r0, 0x4
bl PlayMenuSoundEffect
movs r0, 0x1
_08013930:
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_80138B8
thumb_func_start sub_8013938
sub_8013938:
push {r4,r5,lr}
adds r4, r0, 0
movs r0, 0x1E
ldrsh r5, [r4, r0]
movs r0, 0
strh r0, [r4, 0x1A]
strh r0, [r4, 0x14]
adds r0, r4, 0
bl AddMenuCursorSprite
adds r0, r4, 0
bl GetKeyPress
cmp r0, 0x9
beq _0801395C
cmp r0, 0xA
beq _08013964
b _0801396A
_0801395C:
adds r0, r4, 0
bl sub_8013A7C
b _0801396A
_08013964:
adds r0, r4, 0
bl sub_8013A54
_0801396A:
movs r1, 0x1E
ldrsh r0, [r4, r1]
cmp r5, r0
bne _08013976
movs r0, 0
b _0801397E
_08013976:
movs r0, 0x4
bl PlayMenuSoundEffect
movs r0, 0x1
_0801397E:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8013938
thumb_func_start sub_8013984
sub_8013984:
push {r4-r6,lr}
adds r4, r0, 0
ldr r1, [r4]
lsls r0, r1, 3
adds r0, r1
lsls r0, 3
ldr r1, _08013A20
adds r6, r0, r1
ldrh r1, [r4, 0x1C]
movs r2, 0x1C
ldrsh r0, [r4, r2]
cmp r0, 0
bne _080139A2
adds r0, r1, 0x1
strh r0, [r4, 0x1C]
_080139A2:
movs r1, 0x22
ldrsh r0, [r4, r1]
movs r2, 0x1C
ldrsh r1, [r4, r2]
bl __divsi3
adds r5, r0, 0
strh r5, [r4, 0x20]
movs r1, 0x22
ldrsh r0, [r4, r1]
movs r2, 0x1C
ldrsh r1, [r4, r2]
bl __modsi3
cmp r0, 0
beq _080139C6
adds r0, r5, 0x1
strh r0, [r4, 0x20]
_080139C6:
movs r0, 0x1E
ldrsh r1, [r4, r0]
movs r2, 0x20
ldrsh r0, [r4, r2]
subs r0, 0x1
ldrh r5, [r4, 0x20]
cmp r1, r0
ble _080139DA
subs r0, r5, 0x1
strh r0, [r4, 0x1E]
_080139DA:
movs r0, 0x1E
ldrsh r1, [r4, r0]
movs r2, 0x20
ldrsh r0, [r4, r2]
subs r0, 0x1
cmp r1, r0
bne _080139F8
movs r1, 0x22
ldrsh r0, [r4, r1]
movs r2, 0x1C
ldrsh r1, [r4, r2]
bl __modsi3
cmp r0, 0
bne _080139FA
_080139F8:
ldrh r0, [r4, 0x1C]
_080139FA:
strh r0, [r4, 0x1A]
movs r0, 0x18
ldrsh r1, [r4, r0]
movs r2, 0x1A
ldrsh r0, [r4, r2]
subs r0, 0x1
cmp r1, r0
ble _08013A10
ldrh r0, [r4, 0x1A]
subs r0, 0x1
strh r0, [r4, 0x18]
_08013A10:
movs r1, 0
strh r1, [r4, 0x4]
ldr r0, [r6, 0xC]
cmp r0, 0x6
bne _08013A24
movs r0, 0x10
strh r0, [r4, 0x6]
b _08013A26
.align 2, 0
_08013A20: .4byte gUnknown_2027370
_08013A24:
strh r1, [r4, 0x6]
_08013A26:
lsls r0, r5, 16
asrs r0, 16
cmp r0, 0x1
bgt _08013A32
movs r0, 0
b _08013A40
_08013A32:
movs r1, 0
ldrsh r0, [r6, r1]
movs r2, 0x4
ldrsh r1, [r6, r2]
adds r0, r1
subs r0, 0x2
lsls r0, 3
_08013A40:
strh r0, [r4, 0xC]
movs r1, 0x2
ldrsh r0, [r6, r1]
adds r0, 0x1
lsls r0, 3
subs r0, 0x2
strh r0, [r4, 0xE]
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_8013984
thumb_func_start sub_8013A54
sub_8013A54:
push {lr}
adds r2, r0, 0
movs r0, 0x1E
ldrsh r1, [r2, r0]
movs r3, 0x20
ldrsh r0, [r2, r3]
subs r0, 0x1
cmp r1, r0
bge _08013A6C
ldrh r0, [r2, 0x1E]
adds r0, 0x1
b _08013A6E
_08013A6C:
movs r0, 0
_08013A6E:
strh r0, [r2, 0x1E]
adds r0, r2, 0
bl sub_8013984
pop {r0}
bx r0
thumb_func_end sub_8013A54
thumb_func_start sub_8013A7C
sub_8013A7C:
push {lr}
adds r1, r0, 0
ldrh r2, [r1, 0x1E]
movs r3, 0x1E
ldrsh r0, [r1, r3]
cmp r0, 0
bgt _08013A90
ldrh r0, [r1, 0x20]
subs r0, 0x1
b _08013A92
_08013A90:
subs r0, r2, 0x1
_08013A92:
strh r0, [r1, 0x1E]
adds r0, r1, 0
bl sub_8013984
pop {r0}
bx r0
thumb_func_end sub_8013A7C
.align 2,0

View File

@ -64,13 +64,13 @@ struct MenuInputStruct
{
s32 unk0;
/* 0x4 */ u16 unk4;
/* 0x6 */ u16 unk6;
/* 0x6 */ s16 unk6;
/* 0x8 */ u16 unk8;
/* 0x8 */ u16 unkA;
/* 0xC */ u16 unkC;
/* 0xE */ u16 unkE;
/* 0x10 */ u32 unk10;
/* 0x14 */ u16 unk14;
/* 0x14 */ s16 unk14;
/* 0x16 */ u16 unk16;
/* 0x18 */ s16 menuIndex;
/* 0x1A */ s16 unk1A;

View File

@ -2,9 +2,10 @@
#define GUARD_TEXT_H
struct UnkTextStruct1 {
u8 fill00[4];
u16 unk04;
u8 fill06[2];
s16 unk0;
s16 unk2;
s16 unk04;
s16 unk6;
u16 unk08;
u16 fillA;
u32 unkC;

View File

@ -95,6 +95,7 @@ SECTIONS {
src/more_input.o(.text);
src/menu_input.o(.text);
asm/menu_input.o(.text);
src/menu_input_1.o(.text);
asm/code_80130A8.o(.text);
src/code_8012A18_1.o(.text);
src/felicity_bank.o(.text);

350
src/menu_input_1.c Normal file
View File

@ -0,0 +1,350 @@
#include "global.h"
#include "constants/input.h"
#include "input.h"
#include "text.h"
extern struct UnkTextStruct1 gUnknown_2027370[4];
extern void PlayMenuSoundEffect(u32);
extern void AddMenuCursorSprite(struct MenuInputStruct *);
extern void sub_8013A7C(struct MenuInputStruct *);
extern void sub_8013A54(struct MenuInputStruct *);
extern s32 GetKeyPress(struct MenuInputStruct *);
extern void MoveMenuCursorUp(struct MenuInputStruct *);
extern void MoveMenuCursorDown(struct MenuInputStruct *);
void sub_8013984(struct MenuInputStruct *);
void sub_801317C(struct MenuInputStructSub *);
void sub_80137F8(struct MenuInputStruct *, u32);
s32 sub_8013800(struct MenuInputStruct *param_1, s32 param_2);
void UpdateMenuCursorSpriteCoords(struct MenuInputStruct *param_1);
void sub_801332C(u16 *);
void sub_8013660(struct MenuInputStruct *param_1)
{
if (0 < param_1->unk1A)
{
UpdateMenuCursorSpriteCoords(param_1);
sub_801332C(&param_1->unk8);
}
}
void UpdateMenuCursorSpriteCoords(struct MenuInputStruct *param_1)
{
s32 index;
struct UnkTextStruct1 *temp;
index = param_1->unk0;
temp = &gUnknown_2027370[index];
param_1->unk8 = temp->unk0 * 8 + param_1->unk4;
param_1->unkA = temp->unk2 * 8 + sub_8013800(param_1, param_1->menuIndex);
}
void MoveMenuCursorDown(struct MenuInputStruct *param_1)
{
param_1->unk24 = 0;
if (param_1->unk1A < 1) {
param_1->menuIndex = 0;
}
else {
param_1->menuIndex++;
if (param_1->menuIndex >= param_1->unk1A) {
param_1->menuIndex = 0;
}
}
}
void sub_80136E0(struct MenuInputStruct *param_1, u8 param_2)
{
param_1->unk24 = 0;
if (param_1->unk1A < 1) {
param_1->menuIndex = 0;
}
else {
param_1->menuIndex++;
if (param_1->menuIndex >= param_1->unk1A) {
if (param_2 != 0) {
param_1->menuIndex = 0;
}
else
{
param_1->menuIndex = param_1->unk1A - 1;
}
}
}
}
void MoveMenuCursorUp(struct MenuInputStruct *param_1)
{
param_1->unk24 = 0;
if (param_1->unk1A < 1) {
param_1->menuIndex = 0;
}
else {
param_1->menuIndex--;
if (param_1->menuIndex < 0) {
param_1->menuIndex = param_1->unk1A + -1;
}
}
}
void sub_8013744(struct MenuInputStruct *param_1, u8 param_2)
{
param_1->unk24 = 0;
if (param_1->unk1A < 1) {
param_1->menuIndex = 0;
}
else {
param_1->menuIndex--;
if (param_1->menuIndex < 0) {
if (param_2 != 0) {
param_1->menuIndex = param_1->unk1A + -1;
}
else {
param_1->menuIndex = 0;
}
}
}
}
void sub_8013780(struct MenuInputStruct *param_1, s32 param_2)
{
if (param_2 < 0) {
param_1->menuIndex = 0;
}
else if (param_2 >= param_1->unk1A) {
param_1->menuIndex = param_1->unk1A - 1;
}
else {
param_1->menuIndex = param_2;
}
param_1->unk24 = 0;
}
s32 sub_80137A8(struct MenuInputStruct *param_1)
{
return param_1->menuIndex;
}
void sub_80137B0(struct MenuInputStruct *param_1, s32 param_2)
{
s32 iVar1;
#ifndef NONMATCHING
register s32 iVar2 asm("r0");
#else
s32 iVar2;
#endif
if (param_2 >= 1) {
iVar2 = param_2 << 8;
}
else
{
if (gUnknown_2027370[param_1->unk0].unkC == 6)
{
iVar1 = 0x10;
}
else
{
iVar1 = 0;
}
iVar2 = (gUnknown_2027370[param_1->unk0].unk6 * 8 - iVar1);
iVar2 <<= 8;
}
param_1->unk10 = iVar2 / param_1->unk1C;
}
void sub_80137F8(struct MenuInputStruct *param_1, u32 param_2)
{
param_1->unk10 = param_2 << 8;
}
s32 sub_8013800(struct MenuInputStruct *param_1, s32 param_2)
{
s32 iVar1;
s32 iVar2;
iVar2 = param_1->unk6;
iVar1 = param_2 * param_1->unk10;
if (iVar1 < 0) {
iVar1 = iVar1 + 0xff;
}
return (iVar2 + (iVar1 >> 8));
}
void sub_8013818(struct MenuInputStruct *param_1, short param_2, u16 param_3, s32 param_4)
{
param_1->unk0 = param_4;
param_1->unk22 = param_2;
param_1->unk1C = param_3;
param_1->unk14 = 0;
param_1->unk24 = 0;
param_1->menuIndex = 0;
param_1->unk1E = 0;
sub_801317C(&param_1->unk28);
sub_8013984(param_1);
sub_80137F8(param_1,0xC);
}
void sub_8013848(struct MenuInputStruct *param_1, short param_2, u16 param_3, s32 param_4)
{
param_1->unk0 = param_4;
param_1->unk22 = param_2;
param_1->unk1C = param_3;
param_1->unk14 = 0;
param_1->unk24 = 0;
param_1->menuIndex = 0;
param_1->unk1E = 0;
sub_801317C(&param_1->unk28);
sub_8013984(param_1);
sub_80137F8(param_1,0x18);
}
void sub_8013878(struct MenuInputStruct *param_1, int param_2)
{
if (param_2 < 0) {
param_2 = 0;
}
else if (param_2 >= param_1->unk22) {
param_2 = param_1->unk22 + -1;
}
param_1->unk1E = param_2 / param_1->unk1C;
param_1->menuIndex = param_2 % param_1->unk1C;
param_1->unk24 = 0;
sub_8013984(param_1);
}
bool8 sub_80138B8(struct MenuInputStruct *param_1, bool8 param_2)
{
s32 sVar1;
s32 oldIndex;
sVar1 = param_1->unk1E;
oldIndex = param_1->menuIndex;
AddMenuCursorSprite(param_1);
if(param_2)
{
switch(GetKeyPress(param_1))
{
case INPUT_DPAD_UP:
MoveMenuCursorUp(param_1);
if(oldIndex != param_1->menuIndex)
PlayMenuSoundEffect(3);
break;
case INPUT_DPAD_DOWN:
MoveMenuCursorDown(param_1);
if(oldIndex != param_1->menuIndex)
PlayMenuSoundEffect(3);
break;
case INPUT_DPAD_LEFT:
sub_8013A7C(param_1);
break;
case INPUT_DPAD_RIGHT:
sub_8013A54(param_1);
break;
}
}
if (sVar1 != param_1->unk1E) {
PlayMenuSoundEffect(4);
return TRUE;
}
else
{
return FALSE;
}
}
bool8 sub_8013938(struct MenuInputStruct *param_1)
{
s32 sVar1;
sVar1 = param_1->unk1E;
param_1->unk1A = 0;
param_1->unk14 = 0;
AddMenuCursorSprite(param_1);
switch(GetKeyPress(param_1))
{
case INPUT_DPAD_LEFT:
sub_8013A7C(param_1);
break;
case INPUT_DPAD_RIGHT:
sub_8013A54(param_1);
break;
}
if (sVar1 != param_1->unk1E) {
PlayMenuSoundEffect(4);
return TRUE;
}
else
{
return FALSE;
}
}
void sub_8013984(struct MenuInputStruct * param_1) {
s32 iVar2;
s32 iVar4;
struct UnkTextStruct1 *ptr;
iVar4 = param_1->unk0;
ptr = &gUnknown_2027370[iVar4];
if (param_1->unk1C == 0) {
param_1->unk1C++;
}
param_1->unk20 = param_1->unk22 / param_1->unk1C;
iVar2 = (param_1->unk22 % param_1->unk1C);
if (iVar2 != 0) {
param_1->unk20++;
}
if (param_1->unk1E > param_1->unk20 - 1) {
param_1->unk1E = param_1->unk20 - 1;
}
if ((param_1->unk1E != param_1->unk20 - 1) || (param_1->unk22 % param_1->unk1C == 0))
{
param_1->unk1A = param_1->unk1C;
}
else
{
param_1->unk1A = param_1->unk22 % param_1->unk1C;
}
if (param_1->menuIndex > param_1->unk1A - 1) {
param_1->menuIndex = param_1->unk1A - 1;
}
param_1->unk4 = 0;
if (ptr->unkC == 6) {
param_1->unk6 = 0x10;
}
else {
param_1->unk6 = 0;
}
if (param_1->unk20 < 2) {
param_1->unkC = 0;
}
else {
param_1->unkC = (ptr->unk0 + ptr->unk04 + -2) * 8;
}
param_1->unkE = ((ptr->unk2) + 1) * 8 + -2;
}
void sub_8013A54(struct MenuInputStruct *param_1)
{
if (param_1->unk1E < param_1->unk20 - 1) {
param_1->unk1E++;
}
else
{
param_1->unk1E = 0;
}
sub_8013984(param_1);
}
void sub_8013A7C(struct MenuInputStruct *param_1)
{
if (param_1->unk1E < 1) {
param_1->unk1E = param_1->unk20 - 1;
}
else
{
param_1->unk1E--;
}
sub_8013984(param_1);
}