summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTal Hayon <talhayon1@gmail.com>2022-04-06 12:06:20 +0300
committerTal Hayon <talhayon1@gmail.com>2022-04-06 12:06:20 +0300
commitefbd375eb48572090bb543d54f56ba83ca2b6792 (patch)
treee8925456ea451c45baf0d1ee97089fe450225056
parent5db4564087109ad55c8cd85fee330d96a2ef43b4 (diff)
Match sub_080A65AC
-rw-r--r--asm/non_matching/subtask2/sub_080A65AC.inc47
-rw-r--r--src/subtask2.c24
2 files changed, 23 insertions, 48 deletions
diff --git a/asm/non_matching/subtask2/sub_080A65AC.inc b/asm/non_matching/subtask2/sub_080A65AC.inc
deleted file mode 100644
index af942a59..00000000
--- a/asm/non_matching/subtask2/sub_080A65AC.inc
+++ /dev/null
@@ -1,47 +0,0 @@
- .syntax unified
- push {r4, lr}
- ldr r0, _080A65E4 @ =gFadeControl
- ldrb r0, [r0]
- cmp r0, #0
- bne _080A6600
- ldr r4, _080A65E8 @ =gMenu
- adds r1, r4, #0
- adds r1, #0x2c
- ldrb r0, [r1]
- adds r0, #1
- strb r0, [r1]
- ldrh r0, [r4, #8]
- cmp r0, #0
- beq _080A65EC
- cmp r0, #0x1e
- bne _080A65DA
- ldrh r0, [r4, #0x12]
- strh r0, [r4, #0x10]
- movs r0, #0x20
- strb r0, [r1]
- adds r0, #0xe3
- bl SoundReq
-_080A65DA:
- ldrh r0, [r4, #8]
- subs r0, #1
- strh r0, [r4, #8]
- b _080A6600
- .align 2, 0
-_080A65E4: .4byte gFadeControl
-_080A65E8: .4byte gMenu
-_080A65EC:
- ldr r0, _080A6604 @ =gInput
- ldrh r0, [r0, #2]
- cmp r0, #1
- blt _080A6600
- cmp r0, #2
- ble _080A65FC
- cmp r0, #8
- bne _080A6600
-_080A65FC:
- bl Subtask_Exit
-_080A6600:
- pop {r4, pc}
- .align 2, 0
-_080A6604: .4byte gInput
- .syntax divided
diff --git a/src/subtask2.c b/src/subtask2.c
index e21f5720..11ac02be 100644
--- a/src/subtask2.c
+++ b/src/subtask2.c
@@ -504,7 +504,29 @@ void sub_080A6534(void) {
SetFade(4, 8);
}
-ASM_FUNC("asm/non_matching/subtask2/sub_080A65AC.inc", void sub_080A65AC())
+void sub_080A65AC(void) {
+ if (!gFadeControl.active) {
+ gGenericMenu.unk2c++;
+ switch (gMenu.transitionTimer) {
+ case 0x1e:
+ gGenericMenu.unk10.h[0] = gGenericMenu.unk10.h[1];
+ gGenericMenu.unk2c = 0x20;
+ SoundReq(SFX_103);
+ default:
+ gMenu.transitionTimer--;
+ break;
+ case 0:
+ switch (gInput.newKeys) {
+ case A_BUTTON:
+ case B_BUTTON:
+ case START_BUTTON:
+ Subtask_Exit();
+ break;
+ }
+ break;
+ }
+ }
+}
void sub_080A6608(void) {
extern void (*const gUnk_08128E78[])(void);