summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorscnorton <scnorton@biociphers.org>2017-07-20 17:33:51 -0400
committerscnorton <scnorton@biociphers.org>2017-07-20 17:33:51 -0400
commit1761e09ccdfb575c98e728f63a31cbc5db5c5935 (patch)
tree26bd8286b9497d74be2459295452fe0b211b6b29
parenta44190a0b09c8fc0a6d5517218942f9aa3bbe188 (diff)
Through sub_80BCB10
-rw-r--r--asm/secret_base.s85
-rw-r--r--src/secret_base.c23
2 files changed, 22 insertions, 86 deletions
diff --git a/asm/secret_base.s b/asm/secret_base.s
index 9440307f8..cbcf2e1c7 100644
--- a/asm/secret_base.s
+++ b/asm/secret_base.s
@@ -6,91 +6,6 @@
.section .text_80BC1D0
- thumb_func_start sub_80BCAEC
-sub_80BCAEC: @ 80BCAEC
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x14
- movs r1, 0x8
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r1, _080BCB0C @ =gUnknown_083D13E4
- adds r0, r4, 0
- bl DoYesNoFuncWithChoice
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BCB0C: .4byte gUnknown_083D13E4
- thumb_func_end sub_80BCAEC
-
- thumb_func_start sub_80BCB10
-sub_80BCB10: @ 80BCB10
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- lsls r0, r5, 2
- adds r0, r5
- lsls r6, r0, 3
- ldr r7, _080BCB80 @ =gTasks + 0x8
- adds r4, r6, r7
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r2, _080BCB84 @ =gSaveBlock1
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 5
- adds r0, r2
- ldr r1, _080BCB88 @ =0x00001a09
- adds r0, r1
- ldrb r2, [r0]
- movs r1, 0x3F
- ands r1, r2
- strb r1, [r0]
- ldrh r0, [r4]
- subs r0, 0x1
- strh r0, [r4]
- ldrh r1, [r4, 0x4]
- movs r2, 0x4
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080BCB5C
- subs r0, r1, 0x1
- strh r0, [r4, 0x4]
-_080BCB5C:
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0x7
- bgt _080BCB6A
- ldrh r0, [r4, 0x6]
- subs r0, 0x1
- strh r0, [r4, 0x6]
-_080BCB6A:
- adds r0, r5, 0
- bl sub_80BC7D8
- adds r0, r7, 0
- subs r0, 0x8
- adds r0, r6, r0
- ldr r1, _080BCB8C @ =sub_80BC824
- str r1, [r0]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BCB80: .4byte gTasks + 0x8
-_080BCB84: .4byte gSaveBlock1
-_080BCB88: .4byte 0x00001a09
-_080BCB8C: .4byte sub_80BC824
- thumb_func_end sub_80BCB10
-
thumb_func_start sub_80BCB90
sub_80BCB90: @ 80BCB90
push {r4,lr}
diff --git a/src/secret_base.c b/src/secret_base.c
index b5d1ef310..4904f7667 100644
--- a/src/secret_base.c
+++ b/src/secret_base.c
@@ -114,7 +114,7 @@ const struct MenuAction2 gUnknown_083D13D4[] = {
{gUnknownText_Exit, sub_80BCBF8}
};
-void (*const gUnknown_083D13E4[])(u8) = {
+const struct YesNoFuncTable gUnknown_083D13E4 = {
sub_80BCB90,
sub_80BCBC0
};
@@ -1108,6 +1108,7 @@ void SecretBasePC_Registry(void)
CreateTask(Task_SecretBasePC_Registry, 0);
}
+// This function tries to keep gTasks + 8 in a register. It should not.
#ifdef NONMATCHING
void Task_SecretBasePC_Registry(u8 taskId)
{
@@ -1372,3 +1373,23 @@ void sub_80BCA84(u8 taskId)
StringExpandPlaceholders(gStringVar4, gOtherText_OkayToDeleteFromRegistry);
DisplayItemMessageOnField(taskId, gStringVar4, sub_80BCAEC, 0);
}
+
+void sub_80BCAEC(u8 taskId)
+{
+ DisplayYesNoMenu(20, 8, 1);
+ DoYesNoFuncWithChoice(taskId, &gUnknown_083D13E4);
+}
+
+void sub_80BCB10(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ MenuZeroFillWindowRect(0, 0, 29, 19);
+ gSaveBlock1.secretBases[data[4]].sbr_field_1_6 = 0;
+ data[0]--;
+ if (data[2] > 0)
+ data[2]--;
+ if (data[0] < 8)
+ data[3]--;
+ sub_80BC7D8(taskId);
+ gTasks[taskId].func = sub_80BC824;
+}