summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMarcus Huderle <huderlem@gmail.com>2017-10-15 14:36:53 -0700
committerMarcus Huderle <huderlem@gmail.com>2017-10-15 14:36:53 -0700
commitfcd62bf39372bbb26e21f3dfb67ccf1782954834 (patch)
tree065d2081953cfbec1bfcca3f3f9b335f580290e8 /src
parent7d657ef56716fd01bacf4a47df50ad0ec3d03b10 (diff)
Start decomp on rest of secret_base
Diffstat (limited to 'src')
-rw-r--r--src/field/secret_base.c684
1 files changed, 671 insertions, 13 deletions
diff --git a/src/field/secret_base.c b/src/field/secret_base.c
index f221d7f16..d60938d1b 100644
--- a/src/field/secret_base.c
+++ b/src/field/secret_base.c
@@ -11,17 +11,31 @@
#include "map_constants.h"
#include "map_name_popup.h"
#include "menu.h"
+#include "menu_helpers.h"
#include "metatile_behavior.h"
#include "palette.h"
#include "pokemon.h"
#include "overworld.h"
#include "script.h"
+#include "sound.h"
#include "string_util.h"
#include "strings.h"
#include "task.h"
#include "text.h"
#include "vars.h"
+extern void sub_80BCBF8(u8 taskId);
+extern void sub_80BCC54(u8 taskId);
+extern void sub_80BC824(u8 taskId);
+extern void sub_80BC7D8(u8 taskId);
+static void sub_80BCAEC(u8 taskId);
+static void sub_80BC980(u8 taskId);
+static void sub_80BC9E4(u8 taskId);
+static u8 sub_80BC948(u8 a);
+static void Task_SecretBasePC_Registry(u8 taskId);
+
+extern struct YesNoFuncTable gUnknown_083D13E4;
+extern struct MenuAction gUnknown_083D13D4[];
extern u8 gUnknown_020387DC;
extern u16 gSpecialVar_0x8004;
extern u16 gSpecialVar_0x8005;
@@ -36,14 +50,26 @@ extern const struct
extern const u8 gUnknown_083D1374[4 * 16];
extern void *gUnknown_0300485C;
extern const u8 gUnknown_083D13EC[12];
+extern u8 gUnknown_0815F399[];
+extern u8 gUnknown_0815F49A[];
extern u8 gUnknown_081A2E14[];
+extern u8 UnknownString_81A1BB2[];
+extern u8 UnknownString_81A1F67[];
+extern u8 UnknownString_81A2254[];
+extern u8 UnknownString_81A25C3[];
+extern u8 UnknownString_81A2925[];
+extern u8 UnknownString_81A1D74[];
+extern u8 UnknownString_81A20C9[];
+extern u8 UnknownString_81A2439[];
+extern u8 UnknownString_81A2B2A[];
+extern u8 UnknownString_81A2754[];
void sub_80BB4AC(struct SecretBaseRecord *record) // 080bb4ac
{
u16 i;
u16 j;
- record->sbr_field_0 = 0;
+ record->secretBaseId = 0;
for (i=0; i<7; i++)
record->sbr_field_2[i] = 0xff;
for (i=0; i<4; i++)
@@ -93,7 +119,7 @@ void sub_80BB5E4(void) // 80bb5e4
u16 idx;
gScriptResult = 0;
for (idx=0; idx<20; idx++) {
- if (gUnknown_020387DC != gSaveBlock1.secretBases[idx].sbr_field_0)
+ if (gUnknown_020387DC != gSaveBlock1.secretBases[idx].secretBaseId)
continue;
gScriptResult = 1;
VarSet(VAR_0x4054, idx);
@@ -103,7 +129,7 @@ void sub_80BB5E4(void) // 80bb5e4
void sub_80BB63C(void) // 80bb63c
{
- if (gSaveBlock1.secretBases[0].sbr_field_0)
+ if (gSaveBlock1.secretBases[0].secretBaseId)
gScriptResult = 1;
else
gScriptResult = 0;
@@ -196,7 +222,7 @@ void sub_80BB8CC(void)
{
u8 nameLength;
u16 idx;
- gSaveBlock1.secretBases[0].sbr_field_0 = gUnknown_020387DC;
+ gSaveBlock1.secretBases[0].secretBaseId = gUnknown_020387DC;
for (idx=0; idx<4; idx++) {
gSaveBlock1.secretBases[0].trainerId[idx] = gSaveBlock2.playerTrainerId[idx];
}
@@ -215,7 +241,7 @@ void sub_80BB970(struct MapEvents *events)
for (bgevidx=0; bgevidx<events->bgEventCount; bgevidx++) {
if (events->bgEvents[bgevidx].kind == 8) {
for (jdx=0; jdx<20; jdx++) {
- if (gSaveBlock1.secretBases[jdx].sbr_field_0 == events->bgEvents[bgevidx].bgUnion.secretBaseId) {
+ if (gSaveBlock1.secretBases[jdx].secretBaseId == events->bgEvents[bgevidx].bgUnion.secretBaseId) {
tile_id = MapGridGetMetatileIdAt(events->bgEvents[bgevidx].x + 7, events->bgEvents[bgevidx].y + 7);
for (idx=0; idx<7; idx++) {
if (gUnknown_083D1358[idx].unk_083D1358_0 == tile_id) {
@@ -811,7 +837,7 @@ void sub_80BC0F8(void) {
}
void sub_80BC114(void) {
- if (gSaveBlock1.secretBases[0].sbr_field_0 != gUnknown_020387DC)
+ if (gSaveBlock1.secretBases[0].secretBaseId != gUnknown_020387DC)
gScriptResult = 1;
else
gScriptResult = 0;
@@ -821,7 +847,7 @@ u8 sub_80BC14C(u8 sbid)
{
s16 idx;
for (idx=0; idx<20; idx++) {
- if (gSaveBlock1.secretBases[idx].sbr_field_0 == sbid)
+ if (gSaveBlock1.secretBases[idx].secretBaseId == sbid)
return idx;
}
return 0;
@@ -844,7 +870,7 @@ u8 *sub_80BC190(u8 *dest, u8 arg1) { // 80bc190
}
u8 *GetSecretBaseMapName(u8 *dest) {
- gUnknown_020387DC = gSaveBlock1.secretBases[VarGet(VAR_0x4054)].sbr_field_0;
+ gUnknown_020387DC = gSaveBlock1.secretBases[VarGet(VAR_0x4054)].secretBaseId;
return sub_80BC190(dest, VarGet(VAR_0x4054));
}
@@ -856,10 +882,10 @@ void sub_80BC224(void) {
*var3 = EOS;
}
-u8 sub_80BC268(u8 foo) { // 80bc268
- if (gSaveBlock1.secretBases[foo].sbr_field_1_6)
- return 1;
- return 0;
+bool8 sub_80BC268(u8 i) { // 80bc268
+ if (gSaveBlock1.secretBases[i].sbr_field_1_6)
+ return TRUE;
+ return FALSE;
}
u8 sub_80BC298(struct Pokemon *mon) { // 80bc298
@@ -1070,6 +1096,638 @@ void sub_80BC440(void)
void SecretBasePC_PackUp(void)
{
- IncrementGameStat(20);
+ IncrementGameStat(GAME_STAT_MOVED_SECRET_BASE);
sub_80BC440();
}
+
+void sub_80BC474(void)
+{
+ u16 eventId;
+ struct MapEvents *mapEvents = gMapHeader.events;
+ for (eventId = 0; eventId < mapEvents->bgEventCount; eventId++)
+ {
+ if (mapEvents->bgEvents[eventId].kind == 8
+ && gSaveBlock1.secretBases[0].secretBaseId == mapEvents->bgEvents[eventId].bgUnion.secretBaseId)
+ {
+ u16 i;
+ s16 tileId = MapGridGetMetatileIdAt(mapEvents->bgEvents[eventId].x + 7, mapEvents->bgEvents[eventId].y + 7);
+
+ for (i = 0; i < 7; i++)
+ {
+ if (gUnknown_083D1358[i].unk_083D1358_1 == tileId)
+ {
+ MapGridSetMetatileIdAt(
+ mapEvents->bgEvents[eventId].x + 7,
+ mapEvents->bgEvents[eventId].y + 7,
+ gUnknown_083D1358[i].unk_083D1358_0 | 0xc00);
+ break;
+ }
+ }
+
+ DrawWholeMapView();
+ break;
+ }
+ }
+}
+
+void sub_80BC50C(void)
+{
+ u16 backupValue;
+ sub_80BC474();
+ IncrementGameStat(GAME_STAT_MOVED_SECRET_BASE);
+
+ backupValue = gSaveBlock1.secretBases[0].sbr_field_e;
+ ResetSecretBase(0);
+ gSaveBlock1.secretBases[0].sbr_field_e = backupValue;
+}
+
+u8 sub_80BC538(void)
+{
+ s16 secretBaseIndex;
+ u8 retVal = 0;
+
+ for (secretBaseIndex = 1; secretBaseIndex < 20; secretBaseIndex++)
+ {
+ if (sub_80BC268(secretBaseIndex) == TRUE)
+ {
+ retVal++;
+ }
+ }
+
+ return retVal;
+}
+
+void sub_80BC56C(void)
+{
+ u8 secretBaseIndex = sub_80BC14C(gUnknown_020387DC);
+ if (sub_80BC268(secretBaseIndex) == TRUE)
+ {
+ gScriptResult = 1;
+ }
+ else if (sub_80BC538() > 9)
+ {
+ gScriptResult = 2;
+ }
+ else
+ {
+ gScriptResult = 0;
+ }
+}
+
+void sub_80BC5BC(void)
+{
+ gSaveBlock1.secretBases[sub_80BC14C(gUnknown_020387DC)].sbr_field_1_6 ^= 1;
+ FlagSet(0x10C);
+}
+
+void SecretBasePC_Decoration(void)
+{
+ CreateTask(Task_SecretBasePC_Decoration, 0);
+}
+
+void SecretBasePC_Registry(void)
+{
+ CreateTask(Task_SecretBasePC_Registry, 0);
+}
+
+void Task_SecretBasePC_Registry(u8 taskId)
+{
+ s16 *taskData;
+
+ ScriptContext2_Enable();
+ sub_80F944C();
+ LoadScrollIndicatorPalette();
+
+ taskData = &gTasks[taskId].data[0];
+ taskData[0] = sub_80BC538();
+ if (taskData[0] != 0)
+ {
+ if (taskData[0] > 7) {
+ taskData[3] = 7;
+ }
+ else
+ {
+ taskData[3] = taskData[0];
+ }
+
+ taskData[1] = 0;
+ taskData[2] = 0;
+
+ MenuZeroFillWindowRect(0, 0, 29, 19);
+ sub_80BC7D8(taskId);
+
+ gTasks[taskId].func = sub_80BC824;
+ }
+ else
+ {
+ DisplayItemMessageOnField(taskId, gSecretBaseText_NoRegistry, sub_80BCC54, 0);
+ }
+}
+
+#ifdef NONMATCHING
+void sub_80BC6B0(u8 taskId)
+{
+ s16 *taskData = gTasks[taskId].data;
+ u8 count = 0;
+ u8 var1 = 0;
+ u8 i = 1;
+
+ if (var1 == taskData[2])
+ {
+ count = 1;
+ }
+ else
+ {
+ while (1)
+ {
+ if (sub_80BC268(i) == TRUE)
+ {
+ count++;
+ }
+
+ i++;
+ if (i > 19)
+ {
+ break;
+ }
+
+ if (count == taskData[2])
+ {
+ count = i;
+ break;
+ }
+ }
+ }
+
+ while (count < 20)
+ {
+ if (sub_80BC268(count) == TRUE)
+ {
+ sub_80BC190(gStringVar1, count);
+ MenuFillWindowRectWithBlankTile(18, var1 * 2 + 2, 28, var1 * 2 + 3);
+ MenuPrint(gStringVar1, 18, var1 * 2 + 2);
+
+ var1++;
+ if (var1 == 8)
+ {
+ break;
+ }
+ }
+
+ count++;
+ }
+
+ if (var1 < 8)
+ {
+ MenuFillWindowRectWithBlankTile(18, var1 * 2 + 2, 28, var1 * 2 + 3);
+ MenuPrint(gUnknownText_Exit, 18, var1 * 2 + 2);
+ DestroyVerticalScrollIndicator(1);
+
+ if (var1 != 7)
+ {
+ MenuFillWindowRectWithBlankTile(18, (((var1 << 25) + 0x4000000)) >> 24, 28, 18);
+ }
+ }
+ else
+ {
+ CreateVerticalScrollIndicators(1, 188, 152);
+ }
+
+ if (taskData[2] == 0)
+ {
+ DestroyVerticalScrollIndicator(0);
+ }
+ else
+ {
+ CreateVerticalScrollIndicators(0, 188, 8);
+ }
+}
+#else
+__attribute__((naked))
+void sub_80BC6B0(u8 taskId)
+{
+ asm(".syntax unified\n\
+ push {r4-r7,lr}\n\
+ mov r7, r8\n\
+ push {r7}\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ lsls r1, r0, 2\n\
+ adds r1, r0\n\
+ lsls r1, 3\n\
+ ldr r0, _080BC6D8 @ =gTasks + 0x8\n\
+ adds r1, r0\n\
+ mov r8, r1\n\
+ movs r4, 0\n\
+ movs r6, 0\n\
+ movs r5, 0x1\n\
+ movs r2, 0x4\n\
+ ldrsh r0, [r1, r2]\n\
+ cmp r6, r0\n\
+ bne _080BC6DC\n\
+ movs r4, 0x1\n\
+ b _080BC706\n\
+ .align 2, 0\n\
+_080BC6D8: .4byte gTasks + 0x8\n\
+_080BC6DC:\n\
+ adds r0, r5, 0\n\
+ bl sub_80BC268\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ cmp r0, 0x1\n\
+ bne _080BC6F0\n\
+ adds r0, r4, 0x1\n\
+ lsls r0, 24\n\
+ lsrs r4, r0, 24\n\
+_080BC6F0:\n\
+ adds r0, r5, 0x1\n\
+ lsls r0, 24\n\
+ lsrs r5, r0, 24\n\
+ cmp r5, 0x13\n\
+ bhi _080BC706\n\
+ mov r1, r8\n\
+ movs r2, 0x4\n\
+ ldrsh r0, [r1, r2]\n\
+ cmp r4, r0\n\
+ bne _080BC6DC\n\
+ adds r4, r5, 0\n\
+_080BC706:\n\
+ adds r5, r4, 0\n\
+ cmp r5, 0x13\n\
+ bhi _080BC75A\n\
+ ldr r7, _080BC7A0 @ =gStringVar1\n\
+_080BC70E:\n\
+ adds r0, r5, 0\n\
+ bl sub_80BC268\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ cmp r0, 0x1\n\
+ bne _080BC750\n\
+ adds r0, r7, 0\n\
+ adds r1, r5, 0\n\
+ bl sub_80BC190\n\
+ lsls r3, r6, 1\n\
+ adds r4, r3, 0x2\n\
+ lsls r4, 24\n\
+ lsrs r4, 24\n\
+ adds r3, 0x3\n\
+ lsls r3, 24\n\
+ lsrs r3, 24\n\
+ movs r0, 0x12\n\
+ adds r1, r4, 0\n\
+ movs r2, 0x1C\n\
+ bl MenuFillWindowRectWithBlankTile\n\
+ adds r0, r7, 0\n\
+ movs r1, 0x12\n\
+ adds r2, r4, 0\n\
+ bl MenuPrint\n\
+ adds r0, r6, 0x1\n\
+ lsls r0, 24\n\
+ lsrs r6, r0, 24\n\
+ cmp r6, 0x8\n\
+ beq _080BC75A\n\
+_080BC750:\n\
+ adds r0, r5, 0x1\n\
+ lsls r0, 24\n\
+ lsrs r5, r0, 24\n\
+ cmp r5, 0x13\n\
+ bls _080BC70E\n\
+_080BC75A:\n\
+ cmp r6, 0x7\n\
+ bhi _080BC7A8\n\
+ lsls r3, r6, 1\n\
+ adds r4, r3, 0x2\n\
+ lsls r4, 24\n\
+ lsrs r4, 24\n\
+ adds r3, 0x3\n\
+ lsls r3, 24\n\
+ lsrs r3, 24\n\
+ movs r0, 0x12\n\
+ adds r1, r4, 0\n\
+ movs r2, 0x1C\n\
+ bl MenuFillWindowRectWithBlankTile\n\
+ ldr r0, _080BC7A4 @ =gUnknownText_Exit\n\
+ movs r1, 0x12\n\
+ adds r2, r4, 0\n\
+ bl MenuPrint\n\
+ movs r0, 0x1\n\
+ bl DestroyVerticalScrollIndicator\n\
+ cmp r6, 0x7\n\
+ beq _080BC7B2\n\
+ lsls r1, r6, 25\n\
+ movs r0, 0x80\n\
+ lsls r0, 19\n\
+ adds r1, r0\n\
+ lsrs r1, 24\n\
+ movs r0, 0x12\n\
+ movs r2, 0x1C\n\
+ movs r3, 0x12\n\
+ bl MenuFillWindowRectWithBlankTile\n\
+ b _080BC7B2\n\
+ .align 2, 0\n\
+_080BC7A0: .4byte gStringVar1\n\
+_080BC7A4: .4byte gUnknownText_Exit\n\
+_080BC7A8:\n\
+ movs r0, 0x1\n\
+ movs r1, 0xBC\n\
+ movs r2, 0x98\n\
+ bl CreateVerticalScrollIndicators\n\
+_080BC7B2:\n\
+ mov r1, r8\n\
+ movs r2, 0x4\n\
+ ldrsh r0, [r1, r2]\n\
+ cmp r0, 0\n\
+ bne _080BC7C4\n\
+ movs r0, 0\n\
+ bl DestroyVerticalScrollIndicator\n\
+ b _080BC7CE\n\
+_080BC7C4:\n\
+ movs r0, 0\n\
+ movs r1, 0xBC\n\
+ movs r2, 0x8\n\
+ bl CreateVerticalScrollIndicators\n\
+_080BC7CE:\n\
+ pop {r3}\n\
+ mov r8, r3\n\
+ pop {r4-r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .syntax divided\n");
+}
+#endif
+
+void sub_80BC7D8(u8 taskId)
+{
+ u16 *taskData = &gTasks[taskId].data[0];
+ MenuDrawTextWindow(17, 0, 29, 19);
+ InitMenu(0, 18, 2, taskData[3] + 1, taskData[1], 11);
+ sub_80BC6B0(taskId);
+}
+
+void sub_80BC824(u8 taskId)
+{
+ s16 *taskData = gTasks[taskId].data;
+
+ if (gMain.newAndRepeatedKeys & DPAD_UP)
+ {
+ if (taskData[1])
+ {
+ PlaySE(5);
+ taskData[1] = MoveMenuCursor(-1);
+ }
+ else if (taskData[2])
+ {
+ PlaySE(5);
+ taskData[2]--;
+ sub_80BC6B0(taskId);
+ }
+ else
+ {
+ return;
+ }
+ }
+ else if (gMain.newAndRepeatedKeys & DPAD_DOWN)
+ {
+ if (taskData[1] == taskData[3])
+ {
+ if (taskData[2] + taskData[1] != taskData[0])
+ {
+ PlaySE(5);
+ taskData[2]++;
+ sub_80BC6B0(taskId);
+ }
+ }
+ else
+ {
+ PlaySE(5);
+ taskData[1] = MoveMenuCursor(1);
+ }
+ }
+ else if (gMain.newKeys & A_BUTTON)
+ {
+ PlaySE(5);
+ if (taskData[1] + taskData[2] == taskData[0])
+ {
+ HandleDestroyMenuCursors();
+ MenuZeroFillWindowRect(0, 0, 29, 19);
+ sub_80BCC54(taskId);
+ }
+ else
+ {
+ HandleDestroyMenuCursors();
+ taskData[4] = sub_80BC948(taskData[1] + taskData[2]);
+ sub_80BC980(taskId);
+ }
+ }
+ else if (gMain.newKeys & B_BUTTON)
+ {
+ PlaySE(5);
+ HandleDestroyMenuCursors();
+ MenuZeroFillWindowRect(0, 0, 29, 19);
+ sub_80BCC54(taskId);
+ }
+}
+
+u8 sub_80BC948(u8 a)
+{
+ u8 secretBaseIndex;
+ u8 count = 0;
+
+ for (secretBaseIndex = 1; secretBaseIndex < 20; secretBaseIndex++)
+ {
+ if (sub_80BC268(secretBaseIndex) == TRUE)
+ {
+ if (a == count)
+ {
+ return secretBaseIndex;
+ }
+ else
+ {
+ count++;
+ }
+ }
+ }
+
+ return 0;
+}
+
+void sub_80BC980(u8 taskId)
+{
+ PauseVerticalScrollIndicator(0);
+ PauseVerticalScrollIndicator(1);
+ MenuDrawTextWindow(1, 0, 12, 5);
+ PrintMenuItems(2, 1, 2, gUnknown_083D13D4);
+ InitMenu(0, 2, 1, 2, 0, 10);
+ gTasks[taskId].func = sub_80BC9E4;
+}
+
+void sub_80BC9E4(u8 taskId)
+{
+ if (gMain.newAndRepeatedKeys & DPAD_UP)
+ {
+ if (GetMenuCursorPos())
+ {
+ PlaySE(5);
+ MoveMenuCursor(-1);
+ }
+ }
+ else if (gMain.newAndRepeatedKeys & DPAD_DOWN)
+ {
+ if (GetMenuCursorPos() != 1)
+ {
+ PlaySE(5);
+ MoveMenuCursor(1);
+ }
+ }
+ else if (gMain.newKeys & A_BUTTON)
+ {
+ PlaySE(5);
+ gUnknown_083D13D4[GetMenuCursorPos()].func(taskId);
+ }
+ else if (gMain.newKeys & B_BUTTON)
+ {
+ PlaySE(5);
+ sub_80BCBF8(taskId);
+ }
+}
+
+void sub_80BCA84(u8 taskId)
+{
+ s16 *taskData = gTasks[taskId].data;
+
+ DestroyVerticalScrollIndicator(0);
+ DestroyVerticalScrollIndicator(1);
+ HandleDestroyMenuCursors();
+ MenuZeroFillWindowRect(0, 0, 29, 19);
+
+ sub_80BC190(gStringVar1, taskData[4]);
+ 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 *taskData = gTasks[taskId].data;
+
+ MenuZeroFillWindowRect(0, 0, 29, 19);
+
+ gSaveBlock1.secretBases[taskData[4]].sbr_field_1_6 = 0;
+ taskData[0]--;
+
+ if (taskData[2] > 0)
+ {
+ taskData[2]--;
+ }
+
+ if (taskData[0] < 8)
+ {
+ taskData[3]--;
+ }
+
+ sub_80BC7D8(taskId);
+ gTasks[taskId].func = sub_80BC824;
+}
+
+void sub_80BCB90(u8 taskId)
+{
+ MenuZeroFillWindowRect(20, 8, 26, 13);
+ DisplayItemMessageOnField(taskId, gOtherText_RegisteredDataDeleted, sub_80BCB10, 0);
+}
+
+void sub_80BCBC0(u8 taskId)
+{
+ MenuZeroFillWindowRect(0, 0, 29, 19);
+
+ sub_80BC7D8(taskId);
+ gTasks[taskId].func = sub_80BC824;
+}
+
+void sub_80BCBF8(u8 taskId)
+{
+ s16 *taskData = gTasks[taskId].data;
+
+ InitMenu(0, 18, 2, taskData[3] + 1, taskData[1], 11);
+ MenuZeroFillWindowRect(1, 0, 12, 5);
+ StartVerticalScrollIndicators(0);
+ StartVerticalScrollIndicators(1);
+
+ gTasks[taskId].func = sub_80BC824;
+}
+
+void sub_80BCC54(u8 taskId)
+{
+ u16 curBaseIndex = VarGet(VAR_0x4054);
+
+ BuyMenuFreeMemory();
+ DestroyVerticalScrollIndicator(0);
+ DestroyVerticalScrollIndicator(1);
+
+ if (curBaseIndex == 0)
+ {
+ ScriptContext1_SetupScript(gUnknown_0815F399);
+ }
+ else
+ {
+ ScriptContext1_SetupScript(gUnknown_0815F49A);
+ }
+
+ DestroyTask(taskId);
+}
+
+u8 sub_80BCCA4(u8 secretBaseIndex)
+{
+ return (gSaveBlock1.secretBases[secretBaseIndex].sbr_field_2[7] % 5)
+ + gSaveBlock1.secretBases[secretBaseIndex].gender * 5;
+}
+
+u8 *sub_80BCCE8(void)
+{
+ u8 var1 = sub_80BCCA4(VarGet(VAR_0x4054));
+
+ if (var1 == 0)
+ {
+ return UnknownString_81A1BB2;
+ }
+ else if (var1 == 1)
+ {
+ return UnknownString_81A1F67;
+ }
+ else if (var1 == 2)
+ {
+ return UnknownString_81A2254;
+ }
+ else if (var1 == 3)
+ {
+ return UnknownString_81A25C3;
+ }
+ else if (var1 == 4)
+ {
+ return UnknownString_81A2925;
+ }
+ else if (var1 == 5)
+ {
+ return UnknownString_81A1D74;
+ }
+ else if (var1 == 6)
+ {
+ return UnknownString_81A20C9;
+ }
+ else if (var1 == 7)
+ {
+ return UnknownString_81A2439;
+ }
+ else if (var1 == 8)
+ {
+ return UnknownString_81A2754;
+ }
+ else
+ {
+ return UnknownString_81A2B2A;
+ }
+}