summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTal Hayon <talhayon1@gmail.com>2022-08-26 14:59:23 +0300
committerTal Hayon <talhayon1@gmail.com>2022-08-26 14:59:38 +0300
commit487277e786a5ff3aae916d2cafde97352d324d90 (patch)
treebedbed639944589ee0e44e422573a53c6577d011
parente4def8a88dfae9d943d5eaaf9fbca97746416e48 (diff)
Match KinstoneMenu_Type1
-rw-r--r--asm/non_matching/menu/kinstone_menu/KinstoneMenu_Type1.inc172
-rw-r--r--src/menu/kinstone_menu.c32
2 files changed, 15 insertions, 189 deletions
diff --git a/asm/non_matching/menu/kinstone_menu/KinstoneMenu_Type1.inc b/asm/non_matching/menu/kinstone_menu/KinstoneMenu_Type1.inc
deleted file mode 100644
index 19ed0509..00000000
--- a/asm/non_matching/menu/kinstone_menu/KinstoneMenu_Type1.inc
+++ /dev/null
@@ -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
diff --git a/src/menu/kinstone_menu.c b/src/menu/kinstone_menu.c
index 8e78e296..71ee6fa0 100644
--- a/src/menu/kinstone_menu.c
+++ b/src/menu/kinstone_menu.c
@@ -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;