mirror of
https://github.com/zeldaret/tmc
synced 2026-05-23 23:05:38 -04:00
Match KinstoneMenu_Type1
This commit is contained in:
@@ -1,172 +0,0 @@
|
||||
.syntax unified
|
||||
push {r4, r5, lr}
|
||||
ldr r0, _080A3C9C @ =gFadeControl
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _080A3C78
|
||||
b _080A3DA8
|
||||
_080A3C78:
|
||||
ldr r5, _080A3CA0 @ =gMenu
|
||||
movs r0, #2
|
||||
strb r0, [r5, #1]
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x28
|
||||
ldrb r0, [r0]
|
||||
lsls r2, r0, #0x10
|
||||
ldr r0, [r5, #0x10]
|
||||
subs r4, r2, r0
|
||||
adds r1, r4, #0
|
||||
cmp r4, #0
|
||||
bge _080A3C92
|
||||
rsbs r1, r4, #0
|
||||
_080A3C92:
|
||||
ldr r0, _080A3CA4 @ =0x00001FFD
|
||||
cmp r1, r0
|
||||
bhi _080A3CA8
|
||||
str r2, [r5, #0x10]
|
||||
b _080A3CDE
|
||||
.align 2, 0
|
||||
_080A3C9C: .4byte gFadeControl
|
||||
_080A3CA0: .4byte gMenu
|
||||
_080A3CA4: .4byte 0x00001FFD
|
||||
_080A3CA8:
|
||||
movs r0, #1
|
||||
strb r0, [r5, #1]
|
||||
adds r0, r4, #0
|
||||
bl sub_08000E44
|
||||
adds r2, r0, #0
|
||||
adds r0, r4, #0
|
||||
cmp r0, #0
|
||||
bge _080A3CBE
|
||||
ldr r1, _080A3D18 @ =0x0001FFFF
|
||||
adds r0, r0, r1
|
||||
_080A3CBE:
|
||||
asrs r4, r0, #0x11
|
||||
cmp r4, #0
|
||||
bge _080A3CC6
|
||||
rsbs r4, r4, #0
|
||||
_080A3CC6:
|
||||
cmp r4, #5
|
||||
ble _080A3CCC
|
||||
movs r4, #5
|
||||
_080A3CCC:
|
||||
ldr r0, _080A3D1C @ =gUnk_081280EE
|
||||
adds r0, r4, r0
|
||||
ldrb r1, [r0]
|
||||
ldr r0, _080A3D20 @ =0x00000666
|
||||
muls r0, r2, r0
|
||||
muls r1, r0, r1
|
||||
ldr r0, [r5, #0x10]
|
||||
adds r0, r0, r1
|
||||
str r0, [r5, #0x10]
|
||||
_080A3CDE:
|
||||
adds r3, r5, #0
|
||||
adds r3, #0x29
|
||||
ldrb r2, [r3]
|
||||
ldr r0, [r5, #0x10]
|
||||
adds r1, r0, #0
|
||||
cmp r0, #0
|
||||
bge _080A3CF0
|
||||
ldr r4, _080A3D24 @ =0x0000FFFF
|
||||
adds r1, r0, r4
|
||||
_080A3CF0:
|
||||
asrs r1, r1, #0x10
|
||||
cmp r2, r1
|
||||
beq _080A3CFE
|
||||
strb r1, [r3]
|
||||
movs r0, #0x69
|
||||
bl SoundReq
|
||||
_080A3CFE:
|
||||
ldr r2, _080A3D28 @ =gInput
|
||||
ldrh r1, [r2, #2]
|
||||
ldr r0, _080A3D2C @ =0x0000020A
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _080A3D30
|
||||
movs r0, #2
|
||||
bl SetMenuType
|
||||
movs r0, #0x6c
|
||||
bl SoundReq
|
||||
b _080A3DA8
|
||||
.align 2, 0
|
||||
_080A3D18: .4byte 0x0001FFFF
|
||||
_080A3D1C: .4byte gUnk_081280EE
|
||||
_080A3D20: .4byte 0x00000666
|
||||
_080A3D24: .4byte 0x0000FFFF
|
||||
_080A3D28: .4byte gInput
|
||||
_080A3D2C: .4byte 0x0000020A
|
||||
_080A3D30:
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x28
|
||||
ldrb r4, [r0]
|
||||
ldrh r1, [r2, #4]
|
||||
adds r5, r0, #0
|
||||
cmp r1, #0x20
|
||||
beq _080A3D56
|
||||
cmp r1, #0x20
|
||||
bgt _080A3D4C
|
||||
cmp r1, #1
|
||||
beq _080A3D5E
|
||||
cmp r1, #0x10
|
||||
beq _080A3D5A
|
||||
b _080A3D8A
|
||||
_080A3D4C:
|
||||
cmp r1, #0x40
|
||||
beq _080A3D56
|
||||
cmp r1, #0x80
|
||||
beq _080A3D5A
|
||||
b _080A3D8A
|
||||
_080A3D56:
|
||||
subs r4, #1
|
||||
b _080A3D8A
|
||||
_080A3D5A:
|
||||
adds r4, #1
|
||||
b _080A3D8A
|
||||
_080A3D5E:
|
||||
ldr r2, _080A3DAC @ =gMenu
|
||||
ldrb r0, [r2, #1]
|
||||
cmp r0, #2
|
||||
bne _080A3D8A
|
||||
ldr r0, [r2, #0x10]
|
||||
cmp r0, #0
|
||||
bge _080A3D70
|
||||
ldr r1, _080A3DB0 @ =0x0000FFFF
|
||||
adds r0, r0, r1
|
||||
_080A3D70:
|
||||
asrs r4, r0, #0x10
|
||||
ldr r0, _080A3DB4 @ =gSave
|
||||
movs r1, #0x8c
|
||||
lsls r1, r1, #1
|
||||
adds r0, r0, r1
|
||||
adds r0, r4, r0
|
||||
ldrb r1, [r0]
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x2a
|
||||
strb r1, [r0]
|
||||
movs r0, #3
|
||||
bl SetMenuType
|
||||
_080A3D8A:
|
||||
bl sub_080A3B48
|
||||
cmp r0, r4
|
||||
bgt _080A3D94
|
||||
subs r4, r0, #1
|
||||
_080A3D94:
|
||||
cmp r0, #1
|
||||
bgt _080A3D9A
|
||||
movs r4, #0
|
||||
_080A3D9A:
|
||||
cmp r4, #0
|
||||
bge _080A3DA0
|
||||
movs r4, #0
|
||||
_080A3DA0:
|
||||
ldrb r0, [r5]
|
||||
cmp r0, r4
|
||||
beq _080A3DA8
|
||||
strb r4, [r5]
|
||||
_080A3DA8:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_080A3DAC: .4byte gMenu
|
||||
_080A3DB0: .4byte 0x0000FFFF
|
||||
_080A3DB4: .4byte gSave
|
||||
.syntax divided
|
||||
+15
-17
@@ -142,50 +142,49 @@ const u8 gUnk_081280EE[] = {
|
||||
0x5u, 0x7u, 0xau, 0xeu, 0x13u, 0x1au,
|
||||
};
|
||||
|
||||
NONMATCH("asm/non_matching/menu/kinstone_menu/KinstoneMenu_Type1.inc", void KinstoneMenu_Type1(void)) {
|
||||
s32 tmp1, tmp2, tmp3, tmp4, tmp5;
|
||||
u8* ptr;
|
||||
void KinstoneMenu_Type1(void) {
|
||||
s32 tmp1, tmp2, tmp3, tmp4;
|
||||
GenericMenu* menu;
|
||||
if (gFadeControl.active) {
|
||||
return;
|
||||
}
|
||||
menu = &gGenericMenu;
|
||||
menu->base.column_idx = 2;
|
||||
tmp2 = menu->unk28 * 0x10000;
|
||||
tmp2 = menu->unk28 << 0x10;
|
||||
tmp1 = tmp2 - menu->unk10.i;
|
||||
if ((tmp1 < 0 ? -tmp1 : tmp1) <= 0x1ffdu) {
|
||||
menu->unk10.i = tmp2;
|
||||
} else {
|
||||
menu->base.column_idx = 1;
|
||||
tmp2 = sub_08000E44(tmp1);
|
||||
tmp1 = tmp1 / 0x20000;
|
||||
if (tmp1 < 0)
|
||||
tmp1 = -tmp1;
|
||||
if (tmp1 > 5) {
|
||||
tmp1 = 5;
|
||||
tmp3 = tmp1 / 0x20000;
|
||||
if (tmp3 < 0)
|
||||
tmp3 = -tmp3;
|
||||
if (tmp3 > 5) {
|
||||
tmp3 = 5;
|
||||
}
|
||||
menu->unk10.i += gUnk_081280EE[tmp1] * 0x666 * tmp2;
|
||||
menu->unk10.i += gUnk_081280EE[tmp3] * 0x666 * tmp2;
|
||||
}
|
||||
if (menu->unk29 != menu->unk10.i / 0x10000) {
|
||||
menu->unk29 = menu->unk10.i / 0x10000;
|
||||
SoundReq(SFX_TEXTBOX_CHOICE);
|
||||
}
|
||||
if ((gInput.newKeys & 0x20a) != 0) {
|
||||
if ((gInput.newKeys & (L_BUTTON | START_BUTTON | B_BUTTON)) != 0) {
|
||||
SetMenuType(2);
|
||||
SoundReq(SFX_MENU_CANCEL);
|
||||
return;
|
||||
}
|
||||
tmp3 = menu->unk28;
|
||||
switch (gInput.unk4) {
|
||||
case 0x20:
|
||||
case 0x40:
|
||||
case DPAD_LEFT:
|
||||
case DPAD_UP:
|
||||
tmp3--;
|
||||
break;
|
||||
case 0x10:
|
||||
case 0x80:
|
||||
case DPAD_RIGHT:
|
||||
case DPAD_DOWN:
|
||||
tmp3++;
|
||||
break;
|
||||
case 1:
|
||||
case A_BUTTON:
|
||||
if (gMenu.column_idx == 2) {
|
||||
tmp3 = gGenericMenu.unk10.i / 0x10000;
|
||||
gGenericMenu.unk2a = gSave.unk118[tmp3];
|
||||
@@ -207,7 +206,6 @@ NONMATCH("asm/non_matching/menu/kinstone_menu/KinstoneMenu_Type1.inc", void Kins
|
||||
menu->unk28 = tmp3;
|
||||
}
|
||||
}
|
||||
END_NONMATCH
|
||||
|
||||
void KinstoneMenu_Type2(void) {
|
||||
const struct_080C9CBC* ptr;
|
||||
|
||||
Reference in New Issue
Block a user