summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/secret_base.s57
-rw-r--r--src/secret_base.c15
2 files changed, 15 insertions, 57 deletions
diff --git a/asm/secret_base.s b/asm/secret_base.s
index 0b3af4ef5..ba44d6052 100644
--- a/asm/secret_base.s
+++ b/asm/secret_base.s
@@ -5,63 +5,6 @@
.text
- thumb_func_start sub_80E916C
-sub_80E916C: @ 80E916C
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080E91D4
- ldr r0, =sCurSecretBaseId
- ldrb r0, [r0]
- movs r1, 0xA
- bl __udivsi3
- ldr r1, =gSaveBlock1Ptr
- ldr r1, [r1]
- movs r5, 0x4
- ldrsb r5, [r1, r5]
- ldrb r1, [r1, 0x5]
- lsls r1, 24
- asrs r1, 24
- movs r2, 0x1
- negs r2, r2
- ldr r4, =gUnknown_0858CFE8
- lsls r0, 26
- asrs r0, 24
- adds r3, r0, 0x2
- adds r3, r4
- ldrb r3, [r3]
- lsls r3, 24
- asrs r3, 24
- adds r0, 0x3
- adds r0, r4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- str r0, [sp]
- adds r0, r5, 0
- bl Overworld_SetWarpDestination
- bl warp_in
- ldr r1, =gFieldCallback
- ldr r0, =sub_80E9108
- str r0, [r1]
- ldr r0, =c2_load_new_map
- bl SetMainCallback2
- adds r0, r6, 0
- bl DestroyTask
-_080E91D4:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80E916C
-
thumb_func_start sub_80E91F8
sub_80E91F8: @ 80E91F8
push {lr}
diff --git a/src/secret_base.c b/src/secret_base.c
index 0cdf6b010..7f868720b 100644
--- a/src/secret_base.c
+++ b/src/secret_base.c
@@ -332,3 +332,18 @@ void sub_80E9108(void)
pal_fill_black();
CreateTask(sub_80E90C8, 0);
}
+
+void sub_80E916C(u8 taskId)
+{
+ s8 idx;
+
+ if (!gPaletteFade.active)
+ {
+ idx = sCurSecretBaseId / 10 * 4;
+ Overworld_SetWarpDestination(gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1, gUnknown_0858CFE8[idx + 2], gUnknown_0858CFE8[idx + 3]);
+ warp_in();
+ gFieldCallback = sub_80E9108;
+ SetMainCallback2(c2_load_new_map);
+ DestroyTask(taskId);
+ }
+}