diff options
Diffstat (limited to 'src/pokedex.c')
-rw-r--r-- | src/pokedex.c | 315 |
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]; } } |