diff options
-rw-r--r-- | asm/secret_base.s | 57 | ||||
-rw-r--r-- | src/secret_base.c | 15 |
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); + } +} |