summaryrefslogtreecommitdiff
path: root/src/pokedex.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/pokedex.c')
-rw-r--r--src/pokedex.c315
1 files changed, 167 insertions, 148 deletions
diff --git a/src/pokedex.c b/src/pokedex.c
index 0a12ae57e..ad212385f 100644
--- a/src/pokedex.c
+++ b/src/pokedex.c
@@ -42,15 +42,15 @@ static EWRAM_DATA struct PokedexListItem *sPokedexListItem = NULL;
u8 gUnknown_030060B0;
void (*gUnknown_030060B4)(void);
-struct UnknownStruct2
+struct PokedexOption
{
- const u8 *text1;
- const u8 *text2;
+ const u8 *description;
+ const u8 *title;
};
struct UnknownStruct1
{
- const struct UnknownStruct2 *pokedexList;
+ const struct PokedexOption *pokedexList;
u8 unk4;
u8 unk5;
u16 unk6;
@@ -108,7 +108,7 @@ struct PokedexView
u16 unk628;
u16 unk62A;
u8 unk62C;
- u8 unk62D;
+ u8 initialVOffset;
u8 unk62E;
u8 unk62F;
s16 unk630;
@@ -157,18 +157,18 @@ void sub_80BBDE8(u8);
void sub_80BBE70(u8);
void sub_80BBEB8(u8);
void sub_80BC0A8(u8);
-void sub_80BC0F8(u8);
+static void HandleButtonPress_StartMenu(u8);
void sub_80BC2D4(u8);
void sub_80BC360(u8);
void sub_80BC3DC(u8);
void sub_80BC47C(u8);
bool8 sub_80BC514(u8);
-void sub_80BC844(u8);
+static void LoadPokedexBgPalette(u8);
void sub_80BC890(void);
void sub_80BC8D4(u8, u8);
-void sub_80BD154(u16, u8, u8, u16);
-void sub_80BD1F4(u16, u8, u8, u16);
-u8 sub_80BD23C(u16, u8, u8);
+static void CreateMonDexNum(u16, u8, u8, u16);
+static void CreateCaughtBall(u16, u8, u8, u16);
+static u8 CreateMonName(u16, u8, u8);
void sub_80BD28C(u8, u8, u16);
static void CreateInitialPokemonSprites(u16, u16);
bool8 sub_80BD404(u8, u8, u8);
@@ -180,7 +180,7 @@ u16 sub_80BDA8C(u16);
u32 sub_80BDACC(u16, s16, s16);
static void CreateInterfaceSprites(u8);
void sub_80BE470(struct Sprite *sprite);
-void sub_80BE604(struct Sprite *sprite);
+static void SpriteCB_Scrollbar(struct Sprite *sprite);
void sub_80BE658(struct Sprite *sprite);
void sub_80BE758(struct Sprite *sprite);
void sub_80BE780(struct Sprite *sprite);
@@ -621,7 +621,7 @@ static const struct SpriteTemplate sScrollBarSpriteTemplate =
.anims = sSpriteAnimTable_855D114,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = sub_80BE604,
+ .callback = SpriteCB_Scrollbar,
};
static const struct SpriteTemplate sArrowSpriteTemplate =
@@ -1069,90 +1069,109 @@ static const u8 gUnknown_0856EDF0[][4] =
{0xFF, 0xFF, 4, 0xFF},
};
-static const struct UnknownStruct2 gUnknown_0856EE0C[] =
+static const struct PokedexOption gDexModeOptions[] =
{
- {gUnknown_085E89A4, gUnknown_085E88DF},
- {gUnknown_085E89BB, gUnknown_085E88E9},
+ {gText_DexHoennDescription, gText_DexHoennTitle},
+ {gText_DexNatDescription, gText_DexNatTitle},
{NULL, NULL},
};
-static const struct UnknownStruct2 gUnknown_0856EE24[] =
+static const struct PokedexOption gDexSortOptions[] =
{
- {gUnknown_085E89D4, gUnknown_085E88F6},
- {gUnknown_085E8A02, gUnknown_085E8905},
- {gUnknown_085E8A37, gUnknown_085E8911},
- {gUnknown_085E8A73, gUnknown_085E891F},
- {gUnknown_085E8AAF, gUnknown_085E892D},
- {gUnknown_085E8AEA, gUnknown_085E893A},
+ {gText_DexSortNumericalDescription, gText_DexSortNumericalTitle},
+ {gText_DexSortAtoZDescription, gText_DexSortAtoZTitle},
+ {gText_DexSortHeaviestDescription, gText_DexSortHeaviestTitle},
+ {gText_DexSortLightestDescription, gText_DexSortLightestTitle},
+ {gText_DexSortTallestDescription, gText_DexSortTallestTitle},
+ {ggText_DexSortSmallestDescription, gText_DexSortSmallestTitle},
{NULL, NULL},
};
-static const struct UnknownStruct2 gUnknown_0856EE5C[] =
-{
- {gUnknown_085E8B25, gUnknown_085E8B26},
- {gUnknown_085E8B25, gUnknown_085E8948},
- {gUnknown_085E8B25, gUnknown_085E894C},
- {gUnknown_085E8B25, gUnknown_085E8950},
- {gUnknown_085E8B25, gUnknown_085E8954},
- {gUnknown_085E8B25, gUnknown_085E8958},
- {gUnknown_085E8B25, gUnknown_085E895C},
- {gUnknown_085E8B25, gUnknown_085E8960},
- {gUnknown_085E8B25, gUnknown_085E8964},
- {gUnknown_085E8B25, gUnknown_085E8968},
+static const struct PokedexOption gDexSearchAlphaOptions[] =
+{
+ {gText_DexEmptyString, gText_DexSearchDontSpecify},
+ {gText_DexEmptyString, gText_DexSearchAlphaABC},
+ {gText_DexEmptyString, gText_DexSearchAlphaDEF},
+ {gText_DexEmptyString, gText_DexSearchAlphaGHI},
+ {gText_DexEmptyString, gText_DexSearchAlphaJKL},
+ {gText_DexEmptyString, gText_DexSearchAlphaMNO},
+ {gText_DexEmptyString, gText_DexSearchAlphaPQR},
+ {gText_DexEmptyString, gText_DexSearchAlphaSTU},
+ {gText_DexEmptyString, gText_DexSearchAlphaVWX},
+ {gText_DexEmptyString, gText_DexSearchAlphaYZ},
{NULL, NULL},
};
-static const struct UnknownStruct2 gUnknown_0856EEB4[] =
-{
- {gUnknown_085E8B25, gUnknown_085E8B26},
- {gUnknown_085E8B25, gUnknown_085E896B},
- {gUnknown_085E8B25, gUnknown_085E896F},
- {gUnknown_085E8B25, gUnknown_085E8974},
- {gUnknown_085E8B25, gUnknown_085E897B},
- {gUnknown_085E8B25, gUnknown_085E8981},
- {gUnknown_085E8B25, gUnknown_085E8987},
- {gUnknown_085E8B25, gUnknown_085E898D},
- {gUnknown_085E8B25, gUnknown_085E8994},
- {gUnknown_085E8B25, gUnknown_085E8999},
- {gUnknown_085E8B25, gUnknown_085E899F},
+static const struct PokedexOption gDexSearchColorOptions[] =
+{
+ {gText_DexEmptyString, gText_DexSearchDontSpecify},
+ {gText_DexEmptyString, gText_DexSearchColorRed},
+ {gText_DexEmptyString, gText_DexSearchColorBlue},
+ {gText_DexEmptyString, gText_DexSearchColorYellow},
+ {gText_DexEmptyString, gText_DexSearchColorGreen},
+ {gText_DexEmptyString, gText_DexSearchColorBlack},
+ {gText_DexEmptyString, gText_DexSearchColorBrown},
+ {gText_DexEmptyString, gText_DexSearchColorPurple},
+ {gText_DexEmptyString, gText_DexSearchColorGray},
+ {gText_DexEmptyString, gText_DexSearchColorWhite},
+ {gText_DexEmptyString, gText_DexSearchColorPink},
{NULL, NULL},
};
-static const struct UnknownStruct2 gUnknown_0856EF14[] =
-{
- {gUnknown_085E8B25, gUnknown_085E8B35},
- {gUnknown_085E8B25, gTypeNames[TYPE_NORMAL]},
- {gUnknown_085E8B25, gTypeNames[TYPE_FIGHTING]},
- {gUnknown_085E8B25, gTypeNames[TYPE_FLYING]},
- {gUnknown_085E8B25, gTypeNames[TYPE_POISON]},
- {gUnknown_085E8B25, gTypeNames[TYPE_GROUND]},
- {gUnknown_085E8B25, gTypeNames[TYPE_ROCK]},
- {gUnknown_085E8B25, gTypeNames[TYPE_BUG]},
- {gUnknown_085E8B25, gTypeNames[TYPE_GHOST]},
- {gUnknown_085E8B25, gTypeNames[TYPE_STEEL]},
- {gUnknown_085E8B25, gTypeNames[TYPE_FIRE]},
- {gUnknown_085E8B25, gTypeNames[TYPE_WATER]},
- {gUnknown_085E8B25, gTypeNames[TYPE_GRASS]},
- {gUnknown_085E8B25, gTypeNames[TYPE_ELECTRIC]},
- {gUnknown_085E8B25, gTypeNames[TYPE_PSYCHIC]},
- {gUnknown_085E8B25, gTypeNames[TYPE_ICE]},
- {gUnknown_085E8B25, gTypeNames[TYPE_DRAGON]},
- {gUnknown_085E8B25, gTypeNames[TYPE_DARK]},
+static const struct PokedexOption gDexSearchTypeOptions[] =
+{
+ {gText_DexEmptyString, gText_DexSearchTypeNone},
+ {gText_DexEmptyString, gTypeNames[TYPE_NORMAL]},
+ {gText_DexEmptyString, gTypeNames[TYPE_FIGHTING]},
+ {gText_DexEmptyString, gTypeNames[TYPE_FLYING]},
+ {gText_DexEmptyString, gTypeNames[TYPE_POISON]},
+ {gText_DexEmptyString, gTypeNames[TYPE_GROUND]},
+ {gText_DexEmptyString, gTypeNames[TYPE_ROCK]},
+ {gText_DexEmptyString, gTypeNames[TYPE_BUG]},
+ {gText_DexEmptyString, gTypeNames[TYPE_GHOST]},
+ {gText_DexEmptyString, gTypeNames[TYPE_STEEL]},
+ {gText_DexEmptyString, gTypeNames[TYPE_FIRE]},
+ {gText_DexEmptyString, gTypeNames[TYPE_WATER]},
+ {gText_DexEmptyString, gTypeNames[TYPE_GRASS]},
+ {gText_DexEmptyString, gTypeNames[TYPE_ELECTRIC]},
+ {gText_DexEmptyString, gTypeNames[TYPE_PSYCHIC]},
+ {gText_DexEmptyString, gTypeNames[TYPE_ICE]},
+ {gText_DexEmptyString, gTypeNames[TYPE_DRAGON]},
+ {gText_DexEmptyString, gTypeNames[TYPE_DARK]},
{NULL, NULL},
};
static const u8 gUnknown_0856EFAC[] = {0x00, 0x01};
static const u8 gUnknown_0856EFAE[] = {0x00, 0x01, 0x02, 0x03, 0x04, 0x05};
-static const u8 gUnknown_0856EFB4[] = {0xFF, 0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17};
+static const u8 gDexSearchTypeIds[] = {
+ TYPE_NONE,
+ TYPE_NORMAL,
+ TYPE_FIGHTING,
+ TYPE_FLYING,
+ TYPE_POISON,
+ TYPE_GROUND,
+ TYPE_ROCK,
+ TYPE_BUG,
+ TYPE_GHOST,
+ TYPE_STEEL,
+ TYPE_FIRE,
+ TYPE_WATER,
+ TYPE_GRASS,
+ TYPE_ELECTRIC,
+ TYPE_PSYCHIC,
+ TYPE_ICE,
+ TYPE_DRAGON,
+ TYPE_DARK,
+};
static const struct UnknownStruct1 gUnknown_0856EFC8[] =
{
- {gUnknown_0856EE5C, 6, 7, 10},
- {gUnknown_0856EEB4, 8, 9, 11},
- {gUnknown_0856EF14, 10,11, 18},
- {gUnknown_0856EF14, 12, 13, 18},
- {gUnknown_0856EE24, 4, 5, 6},
- {gUnknown_0856EE0C, 2, 3, 2},
+ {gDexSearchAlphaOptions, 6, 7, 10},
+ {gDexSearchColorOptions, 8, 9, 11},
+ {gDexSearchTypeOptions, 10, 11, NUMBER_OF_MON_TYPES},
+ {gDexSearchTypeOptions, 12, 13, NUMBER_OF_MON_TYPES},
+ {gDexSortOptions, 4, 5, 6},
+ {gDexModeOptions, 2, 3, 2},
};
static const struct BgTemplate gUnknown_0856EFF8[] =
@@ -1275,7 +1294,7 @@ static void ResetPokedexView(struct PokedexView *pokedexView)
pokedexView->unk628 = 0;
pokedexView->unk62A = 0;
pokedexView->unk62C = 0;
- pokedexView->unk62D = 0;
+ pokedexView->initialVOffset = 0;
pokedexView->unk62E = 0;
pokedexView->unk62F = 0;
pokedexView->unk630 = 0;
@@ -1346,7 +1365,7 @@ void CB2_Pokedex(void)
sPokedexView->seenCount = GetNationalPokedexCount(0);
sPokedexView->ownCount = GetNationalPokedexCount(1);
}
- sPokedexView->unk62D = 8;
+ sPokedexView->initialVOffset = 8;
gMain.state++;
break;
case 3:
@@ -1599,7 +1618,7 @@ void sub_80BBEB8(u8 taskId)
sPokedexView->menuY = 0;
sPokedexView->menuIsOpen = 1;
sPokedexView->menuCursorPos = 0;
- gTasks[taskId].func = sub_80BC0F8;
+ gTasks[taskId].func = HandleButtonPress_StartMenu;
PlaySE(SE_SELECT);
}
else if (gMain.newKeys & SELECT_BUTTON)
@@ -1633,7 +1652,7 @@ void sub_80BC0A8(u8 taskId)
gTasks[taskId].func = sub_80BBEB8;
}
-void sub_80BC0F8(u8 taskId)
+static void HandleButtonPress_StartMenu(u8 taskId)
{
SetGpuReg(REG_OFFSET_BG0VOFS, sPokedexView->menuY);
@@ -1763,7 +1782,7 @@ bool8 sub_80BC514(u8 a)
SetVBlankCallback(NULL);
sPokedexView->unk64A = a;
sub_80C09B0(0);
- SetGpuReg(REG_OFFSET_BG2VOFS, sPokedexView->unk62D);
+ SetGpuReg(REG_OFFSET_BG2VOFS, sPokedexView->initialVOffset);
ResetBgsAndClearDma3BusyFlags(0);
InitBgsFromTemplates(0, gBgTemplates_0855D298, 4);
SetBgTilemapBuffer(3, AllocZeroed(0x800));
@@ -1782,7 +1801,7 @@ bool8 sub_80BC514(u8 a)
sPokedexView->unk64C_1 = FALSE;
else
sPokedexView->unk64C_1 = TRUE;
- sub_80BC844(sPokedexView->unk64C_1);
+ LoadPokedexBgPalette(sPokedexView->unk64C_1);
InitWindows(sPokemonList_WindowTemplate);
DeactivateAllTextPrinters();
PutWindowTilemap(0);
@@ -1846,7 +1865,7 @@ bool8 sub_80BC514(u8 a)
return FALSE;
}
-void sub_80BC844(u8 a)
+static void LoadPokedexBgPalette(u8 a)
{
if (a == 1)
LoadPalette(gPokedexHoennBg_Pal + 1, 1, 0xBE);
@@ -2023,7 +2042,7 @@ void sub_80BC8D4(u8 dexMode, u8 sortMode)
}
}
-void sub_80BCE2C(u8 windowId, u8 fontId, const u8* str, u8 left, u8 top)
+static void PrintMonDexNumAndName(u8 windowId, u8 fontId, const u8* str, u8 left, u8 top)
{
u8 color[3];
@@ -2033,15 +2052,15 @@ void sub_80BCE2C(u8 windowId, u8 fontId, const u8* str, u8 left, u8 top)
AddTextPrinterParameterized4(windowId, fontId, left * 8, (top * 8) + 1, 0, 0, color, -1, str);
}
-void sub_80BCE84(u8 a, u16 b, u16 c)
+static void CreateMonListEntry(u8 direction, u16 b, u16 c)
{
s16 _b;
u16 i;
u16 r2;
- switch (a)
+ switch (direction)
{
- case 0:
+ case 0: // Initial
default:
_b = b - 5;
for (i = 0; i <= 10; i++)
@@ -2055,21 +2074,21 @@ void sub_80BCE84(u8 a, u16 b, u16 c)
sub_80BD28C(0x11, i * 2, c);
if (sPokedexView->pokedexList[_b].seen)
{
- sub_80BD154(_b, 0x12, i * 2, c);
- sub_80BD1F4(sPokedexView->pokedexList[_b].owned, 0x11, i * 2, c);
- sub_80BD23C(sPokedexView->pokedexList[_b].dexNum, 0x16, i * 2);
+ CreateMonDexNum(_b, 0x12, i * 2, c);
+ CreateCaughtBall(sPokedexView->pokedexList[_b].owned, 0x11, i * 2, c);
+ CreateMonName(sPokedexView->pokedexList[_b].dexNum, 0x16, i * 2);
}
else
{
- sub_80BD154(_b, 0x12, i * 2, c);
- sub_80BD1F4(0, 0x11, i * 2, c);
- sub_80BD23C(0, 0x16, i * 2);
+ CreateMonDexNum(_b, 0x12, i * 2, c);
+ CreateCaughtBall(0, 0x11, i * 2, c);
+ CreateMonName(0, 0x16, i * 2);
}
}
_b++;
}
break;
- case 1:
+ case 1: // Up
_b = b - 5;
if (_b < 0 || _b >= NATIONAL_DEX_COUNT || sPokedexView->pokedexList[_b].dexNum == 0xFFFF)
{
@@ -2080,19 +2099,19 @@ void sub_80BCE84(u8 a, u16 b, u16 c)
sub_80BD28C(0x11, sPokedexView->unk630 * 2, c);
if (sPokedexView->pokedexList[_b].seen)
{
- sub_80BD154(_b, 0x12, sPokedexView->unk630 * 2, c);
- sub_80BD1F4(sPokedexView->pokedexList[_b].owned, 0x11, sPokedexView->unk630 * 2, c);
- sub_80BD23C(sPokedexView->pokedexList[_b].dexNum, 0x16, sPokedexView->unk630 * 2);
+ CreateMonDexNum(_b, 0x12, sPokedexView->unk630 * 2, c);
+ CreateCaughtBall(sPokedexView->pokedexList[_b].owned, 0x11, sPokedexView->unk630 * 2, c);
+ CreateMonName(sPokedexView->pokedexList[_b].dexNum, 0x16, sPokedexView->unk630 * 2);
}
else
{
- sub_80BD154(_b, 0x12, sPokedexView->unk630 * 2, c);
- sub_80BD1F4(0, 0x11, sPokedexView->unk630 * 2, c);
- sub_80BD23C(0, 0x16, sPokedexView->unk630 * 2);
+ CreateMonDexNum(_b, 0x12, sPokedexView->unk630 * 2, c);
+ CreateCaughtBall(0, 0x11, sPokedexView->unk630 * 2, c);
+ CreateMonName(0, 0x16, sPokedexView->unk630 * 2);
}
}
break;
- case 2:
+ case 2: // Down
_b = b + 5;
r2 = sPokedexView->unk630 + 10;
if (r2 > 15)
@@ -2104,15 +2123,15 @@ void sub_80BCE84(u8 a, u16 b, u16 c)
sub_80BD28C(0x11, r2 * 2, c);
if (sPokedexView->pokedexList[_b].seen)
{
- sub_80BD154(_b, 0x12, r2 * 2, c);
- sub_80BD1F4(sPokedexView->pokedexList[_b].owned, 0x11, r2 * 2, c);
- sub_80BD23C(sPokedexView->pokedexList[_b].dexNum, 0x16, r2 * 2);
+ CreateMonDexNum(_b, 0x12, r2 * 2, c);
+ CreateCaughtBall(sPokedexView->pokedexList[_b].owned, 0x11, r2 * 2, c);
+ CreateMonName(sPokedexView->pokedexList[_b].dexNum, 0x16, r2 * 2);
}
else
{
- sub_80BD154(_b, 0x12, r2 * 2, c);
- sub_80BD1F4(0, 0x11, r2 * 2, c);
- sub_80BD23C(0, 0x16, r2 * 2);
+ CreateMonDexNum(_b, 0x12, r2 * 2, c);
+ CreateCaughtBall(0, 0x11, r2 * 2, c);
+ CreateMonName(0, 0x16, r2 * 2);
}
}
break;
@@ -2120,7 +2139,7 @@ void sub_80BCE84(u8 a, u16 b, u16 c)
CopyWindowToVram(0, 2);
}
-void sub_80BD154(u16 a, u8 left, u8 top, u16 unused)
+static void CreateMonDexNum(u16 a, u8 left, u8 top, u16 unused)
{
u8 text[6];
u16 r6;
@@ -2132,10 +2151,10 @@ void sub_80BD154(u16 a, u8 left, u8 top, u16 unused)
text[2] = CHAR_0 + r6 / 100;
text[3] = CHAR_0 + (r6 % 100) / 10;
text[4] = CHAR_0 + (r6 % 100) % 10;
- sub_80BCE2C(0, 7, text, left, top);
+ PrintMonDexNumAndName(0, 7, text, left, top);
}
-void sub_80BD1F4(u16 a, u8 x, u8 y, u16 unused)
+static void CreateCaughtBall(u16 a, u8 x, u8 y, u16 unused)
{
if (a)
BlitBitmapToWindow(0, gUnknown_0855D2BE, x * 8, y * 8, 8, 16);
@@ -2143,7 +2162,7 @@ void sub_80BD1F4(u16 a, u8 x, u8 y, u16 unused)
FillWindowPixelRect(0, 0, x * 8, y * 8, 8, 16);
}
-u8 sub_80BD23C(u16 num, u8 left, u8 top)
+static u8 CreateMonName(u16 num, u8 left, u8 top)
{
const u8* str;
@@ -2152,7 +2171,7 @@ u8 sub_80BD23C(u16 num, u8 left, u8 top)
str = gSpeciesNames[num];
else
str = sText_TenDashes;
- sub_80BCE2C(0, 7, str, left, top);
+ PrintMonDexNumAndName(0, 7, str, left, top);
return StringLength(str);
}
@@ -2197,8 +2216,8 @@ static void CreateInitialPokemonSprites(u16 selectedMon, u16 b)
gSprites[spriteId].data[5] = 32;
}
- sub_80BCE84(0, selectedMon, b);
- SetGpuReg(REG_OFFSET_BG2VOFS, sPokedexView->unk62D);
+ CreateMonListEntry(0, selectedMon, b);
+ SetGpuReg(REG_OFFSET_BG2VOFS, sPokedexView->initialVOffset);
sPokedexView->unk630 = 0;
sPokedexView->unk632 = 0;
@@ -2223,7 +2242,7 @@ bool8 sub_80BD404(u8 a, u8 b, u8 c)
gSprites[sPokedexView->unk61E[i]].data[5] += b;
}
foo = 16 * (c - sPokedexView->unk62E) / c;
- SetGpuReg(REG_OFFSET_BG2VOFS, sPokedexView->unk62D + sPokedexView->unk632 * 16 - foo);
+ SetGpuReg(REG_OFFSET_BG2VOFS, sPokedexView->initialVOffset + sPokedexView->unk632 * 16 - foo);
sPokedexView->unk62C -= sPokedexView->unk628;
break;
case 2:
@@ -2233,7 +2252,7 @@ bool8 sub_80BD404(u8 a, u8 b, u8 c)
gSprites[sPokedexView->unk61E[i]].data[5] -= b;
}
foo = 16 * (c - sPokedexView->unk62E) / c;
- SetGpuReg(REG_OFFSET_BG2VOFS, sPokedexView->unk62D + sPokedexView->unk632 * 16 + foo);
+ SetGpuReg(REG_OFFSET_BG2VOFS, sPokedexView->initialVOffset + sPokedexView->unk632 * 16 + foo);
sPokedexView->unk62C += sPokedexView->unk628;
break;
}
@@ -2241,7 +2260,7 @@ bool8 sub_80BD404(u8 a, u8 b, u8 c)
}
else
{
- SetGpuReg(REG_OFFSET_BG2VOFS, sPokedexView->unk62D + sPokedexView->unk630 * 16);
+ SetGpuReg(REG_OFFSET_BG2VOFS, sPokedexView->initialVOffset + sPokedexView->unk630 * 16);
return TRUE;
}
}
@@ -2296,7 +2315,7 @@ u16 sub_80BD69C(u16 selectedMon, u16 b)
r10 = 1;
selectedMon = sub_80C0E0C(1, selectedMon, 0, sPokedexView->pokemonListCount - 1);
CreateNewPokemonSprite(1, selectedMon);
- sub_80BCE84(1, selectedMon, b);
+ CreateMonListEntry(1, selectedMon, b);
PlaySE(SE_Z_SCROLL);
}
else if ((gMain.heldKeys & DPAD_DOWN) && (selectedMon < sPokedexView->pokemonListCount - 1))
@@ -2304,7 +2323,7 @@ u16 sub_80BD69C(u16 selectedMon, u16 b)
r10 = 2;
selectedMon = sub_80C0E0C(0, selectedMon, 0, sPokedexView->pokemonListCount - 1);
CreateNewPokemonSprite(2, selectedMon);
- sub_80BCE84(2, selectedMon, b);
+ CreateMonListEntry(2, selectedMon, b);
PlaySE(SE_Z_SCROLL);
}
else if ((gMain.newKeys & DPAD_LEFT) && (selectedMon > 0))
@@ -2740,7 +2759,7 @@ void sub_80BE4E0(struct Sprite *sprite)
}
}
-void sub_80BE604(struct Sprite *sprite)
+static void SpriteCB_Scrollbar(struct Sprite *sprite)
{
if (sPokedexView->unk64A != 0 && sPokedexView->unk64A != 3)
DestroySprite(sprite);
@@ -2925,7 +2944,7 @@ void sub_80BEA24(u8 taskId)
case 2:
sub_80BFCDC(0xD);
sub_80BFD0C(sPokedexView->selectedScreen, 0xD);
- sub_80BC844(sPokedexView->unk64C_1);
+ LoadPokedexBgPalette(sPokedexView->unk64C_1);
gMain.state++;
break;
case 3:
@@ -3153,7 +3172,7 @@ void sub_80BF0AC(u8 taskId)
case 1:
sub_80BFCF4(0xD);
sub_80BFD7C(0, 0xD);
- sub_80BC844(sPokedexView->unk64C_1);
+ LoadPokedexBgPalette(sPokedexView->unk64C_1);
SetGpuReg(REG_OFFSET_BG1CNT, BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(13) | BGCNT_16COLOR | BGCNT_TXT256x256);
gMain.state++;
break;
@@ -3219,7 +3238,7 @@ void sub_80BF250(u8 taskId)
case 2:
sub_80BFCF4(0xD);
sub_80BFD7C(1, 0xD);
- sub_80BC844(sPokedexView->unk64C_1);
+ LoadPokedexBgPalette(sPokedexView->unk64C_1);
gMain.state++;
break;
case 3:
@@ -3411,7 +3430,7 @@ void sub_80BF82C(u8 taskId)
case 2:
sub_80BFCF4(0xD);
sub_80BFD7C(2, 0xD);
- sub_80BC844(sPokedexView->unk64C_1);
+ LoadPokedexBgPalette(sPokedexView->unk64C_1);
gMain.state++;
break;
case 3:
@@ -3757,7 +3776,7 @@ void sub_80BFE38(u8 taskId)
sub_80C0D30(1, gTasks[taskId].data[1]);
CopyWindowToVram(1, 2);
ResetPaletteFade();
- sub_80BC844(0);
+ LoadPokedexBgPalette(0);
gTasks[taskId].data[0]++;
break;
case 2:
@@ -4690,15 +4709,15 @@ int sub_80C0F30(u8 dexMode, u8 sortMode, u8 abcGroup, u8 bodyColor, u8 type1, u8
}
// Search by type
- if (type1 != 0xFF || type2 != 0xFF)
+ if (type1 != TYPE_NONE || type2 != TYPE_NONE)
{
- if (type1 == 0xFF)
+ if (type1 == TYPE_NONE)
{
type1 = type2;
- type2 = 0xFF;
+ type2 = TYPE_NONE;
}
- if (type2 == 0xFF)
+ if (type2 == TYPE_NONE)
{
for (i = 0, resultsCount = 0; i < sPokedexView->pokemonListCount; i++)
{
@@ -5094,7 +5113,7 @@ void sub_80C1B64(u8 taskId)
void sub_80C1BCC(u8 taskId)
{
u8 r1;
- const struct UnknownStruct2 *r8;
+ const struct PokedexOption *r8;
u16 *p1;
u16 *p2;
u16 r2;
@@ -5147,7 +5166,7 @@ void sub_80C1BCC(u8 taskId)
if (r3)
{
PlaySE(SE_SELECT);
- sub_80C2618(r8[*p1 + *p2].text1);
+ sub_80C2618(r8[*p1 + *p2].description);
CopyWindowToVram(0, 2);
}
return;
@@ -5171,7 +5190,7 @@ void sub_80C1BCC(u8 taskId)
if (r3)
{
PlaySE(SE_SELECT);
- sub_80C2618(r8[*p1 + *p2].text1);
+ sub_80C2618(r8[*p1 + *p2].description);
CopyWindowToVram(0, 2);
}
return;
@@ -5390,24 +5409,24 @@ void sub_80C20F8(u8 taskId)
sub_80C12B0(0x28, 0x10, 0x60, 0x50);
var = gTasks[taskId].data[6] + gTasks[taskId].data[7];
- sub_80C1270(gUnknown_0856EE5C[var].text2, 0x2D, 0x11);
+ sub_80C1270(gDexSearchAlphaOptions[var].title, 0x2D, 0x11);
var = gTasks[taskId].data[8] + gTasks[taskId].data[9];
- sub_80C1270(gUnknown_0856EEB4[var].text2, 0x2D, 0x21);
+ sub_80C1270(gDexSearchColorOptions[var].title, 0x2D, 0x21);
var = gTasks[taskId].data[10] + gTasks[taskId].data[11];
- sub_80C1270(gUnknown_0856EF14[var].text2, 0x2D, 0x31);
+ sub_80C1270(gDexSearchTypeOptions[var].title, 0x2D, 0x31);
var = gTasks[taskId].data[12] + gTasks[taskId].data[13];
- sub_80C1270(gUnknown_0856EF14[var].text2, 0x5D, 0x31);
+ sub_80C1270(gDexSearchTypeOptions[var].title, 0x5D, 0x31);
var = gTasks[taskId].data[4] + gTasks[taskId].data[5];
- sub_80C1270(gUnknown_0856EE24[var].text2, 0x2D, 0x41);
+ sub_80C1270(gDexSortOptions[var].title, 0x2D, 0x41);
if (IsNationalPokedexEnabled())
{
var = gTasks[taskId].data[2] + gTasks[taskId].data[3];
- sub_80C1270(gUnknown_0856EE0C[var].text2, 0x2D, 0x51);
+ sub_80C1270(gDexModeOptions[var].title, 0x2D, 0x51);
}
}
@@ -5446,45 +5465,45 @@ void sub_80C21D4(u8 a)
void sub_80C2294(u8 taskId)
{
- const struct UnknownStruct2 *r6 = gUnknown_0856EFC8[gTasks[taskId].data[1]].pokedexList;
+ const struct PokedexOption *r6 = gUnknown_0856EFC8[gTasks[taskId].data[1]].pokedexList;
const u16 *r8 = &gTasks[taskId].data[gUnknown_0856EFC8[gTasks[taskId].data[1]].unk4];
const u16 *r7 = &gTasks[taskId].data[gUnknown_0856EFC8[gTasks[taskId].data[1]].unk5];
u16 i;
u16 j;
sub_80C267C();
- for (i = 0, j = *r7; i < 6 && r6[j].text2 != NULL; i++, j++)
- sub_80C2668(i, r6[j].text2);
- sub_80C2618(r6[*r8 + *r7].text1);
+ for (i = 0, j = *r7; i < 6 && r6[j].title != NULL; i++, j++)
+ sub_80C2668(i, r6[j].title);
+ sub_80C2618(r6[*r8 + *r7].description);
}
u8 sub_80C2318(u8 taskId, u8 b)
{
const u16 *ptr1 = &gTasks[taskId].data[gUnknown_0856EFC8[b].unk4];
const u16 *ptr2 = &gTasks[taskId].data[gUnknown_0856EFC8[b].unk5];
- u16 r2 = *ptr1 + *ptr2;
+ u16 type = *ptr1 + *ptr2;
switch (b)
{
default:
return 0;
case 5:
- return gUnknown_0856EFAC[r2];
+ return gUnknown_0856EFAC[type];
case 4:
- return gUnknown_0856EFAE[r2];
+ return gUnknown_0856EFAE[type];
case 0:
- if (r2 == 0)
+ if (type == 0)
return 0xFF;
else
- return r2;
+ return type;
case 1:
- if (r2 == 0)
+ if (type == 0)
return 0xFF;
else
- return r2 - 1;
+ return type - 1;
case 2:
case 3:
- return gUnknown_0856EFB4[r2];
+ return gDexSearchTypeIds[type];
}
}