Option to separate dex letter filter by single letter

This commit is contained in:
Eduardo Quezada 2022-10-11 11:41:57 -03:00
parent 95b32afbc0
commit eff21004f8
4 changed files with 146 additions and 0 deletions

View file

@ -10,6 +10,7 @@
#define P_KADABRA_EVERSTONE GEN_LATEST // Since Gen 4, Kadabra can evolve even when holding an Everstone.
#define P_NIDORAN_M_DITTO_BREED GEN_LATEST // Since Gen 5, when Nidoran♂ breeds with Ditto it can produce Nidoran♀ offspring. Before, it would only yield male offspring. This change also applies to Volbeat.
#define P_HIPPO_GENDER_DIFF_ICONS TRUE // If TRUE, will give Hippopotas and Hippowdon custom icons for their female forms.
#define P_DEX_SEARCH_SINGLE_LETTER TRUE // If TRUE, the Pokédex filter by name will be separated by letter, instead of groups of 3 letters.
// Modifying the latest generation WILL change the saveblock due to Dex flags and will require a new save file.
// Forms are kept based on the base species, Eg: Meowth and Persian will keep all of their forms, but Perrserker will not be available if P_GEN_8_POKEMON is set to FALSE.

View file

@ -1143,6 +1143,34 @@ extern const u8 gText_DexSortHeaviestTitle[];
extern const u8 gText_DexSortLightestTitle[];
extern const u8 gText_DexSortTallestTitle[];
extern const u8 gText_DexSortSmallestTitle[];
#if P_DEX_SEARCH_SINGLE_LETTER == TRUE
extern const u8 gText_DexSearchAlphaA[];
extern const u8 gText_DexSearchAlphaB[];
extern const u8 gText_DexSearchAlphaC[];
extern const u8 gText_DexSearchAlphaD[];
extern const u8 gText_DexSearchAlphaE[];
extern const u8 gText_DexSearchAlphaF[];
extern const u8 gText_DexSearchAlphaG[];
extern const u8 gText_DexSearchAlphaH[];
extern const u8 gText_DexSearchAlphaI[];
extern const u8 gText_DexSearchAlphaJ[];
extern const u8 gText_DexSearchAlphaK[];
extern const u8 gText_DexSearchAlphaL[];
extern const u8 gText_DexSearchAlphaM[];
extern const u8 gText_DexSearchAlphaN[];
extern const u8 gText_DexSearchAlphaO[];
extern const u8 gText_DexSearchAlphaP[];
extern const u8 gText_DexSearchAlphaQ[];
extern const u8 gText_DexSearchAlphaR[];
extern const u8 gText_DexSearchAlphaS[];
extern const u8 gText_DexSearchAlphaT[];
extern const u8 gText_DexSearchAlphaU[];
extern const u8 gText_DexSearchAlphaV[];
extern const u8 gText_DexSearchAlphaW[];
extern const u8 gText_DexSearchAlphaX[];
extern const u8 gText_DexSearchAlphaY[];
extern const u8 gText_DexSearchAlphaZ[];
#else
extern const u8 gText_DexSearchAlphaABC[];
extern const u8 gText_DexSearchAlphaDEF[];
extern const u8 gText_DexSearchAlphaGHI[];
@ -1152,6 +1180,7 @@ extern const u8 gText_DexSearchAlphaPQR[];
extern const u8 gText_DexSearchAlphaSTU[];
extern const u8 gText_DexSearchAlphaVWX[];
extern const u8 gText_DexSearchAlphaYZ[];
#endif
extern const u8 gText_DexSearchColorRed[];
extern const u8 gText_DexSearchColorBlue[];
extern const u8 gText_DexSearchColorYellow[];

View file

@ -82,6 +82,34 @@ enum
enum
{
#if P_DEX_SEARCH_SINGLE_LETTER == TRUE
NAME_A = 1,
NAME_B,
NAME_C,
NAME_D,
NAME_E,
NAME_F,
NAME_G,
NAME_H,
NAME_I,
NAME_J,
NAME_K,
NAME_L,
NAME_M,
NAME_N,
NAME_O,
NAME_P,
NAME_Q,
NAME_R,
NAME_S,
NAME_T,
NAME_U,
NAME_V,
NAME_W,
NAME_X,
NAME_Y,
NAME_Z,
#else
NAME_ABC = 1,
NAME_DEF,
NAME_GHI,
@ -91,6 +119,7 @@ enum
NAME_STU,
NAME_VWX,
NAME_YZ,
#endif
};
// For scrolling search parameter
@ -993,6 +1022,34 @@ static const u8 sText_TenDashes2[] = _("----------");
static const u8 sLetterSearchRanges[][4] =
{
{}, // Name not specified, shouldn't be reached
#if P_DEX_SEARCH_SINGLE_LETTER == TRUE
[NAME_A] = {CHAR_A, 1, CHAR_a, 1},
[NAME_B] = {CHAR_B, 1, CHAR_b, 1},
[NAME_C] = {CHAR_C, 1, CHAR_c, 1},
[NAME_D] = {CHAR_D, 1, CHAR_d, 1},
[NAME_E] = {CHAR_E, 1, CHAR_e, 1},
[NAME_F] = {CHAR_F, 1, CHAR_f, 1},
[NAME_G] = {CHAR_G, 1, CHAR_g, 1},
[NAME_H] = {CHAR_H, 1, CHAR_h, 1},
[NAME_I] = {CHAR_I, 1, CHAR_i, 1},
[NAME_J] = {CHAR_J, 1, CHAR_j, 1},
[NAME_K] = {CHAR_K, 1, CHAR_k, 1},
[NAME_L] = {CHAR_L, 1, CHAR_l, 1},
[NAME_M] = {CHAR_M, 1, CHAR_m, 1},
[NAME_N] = {CHAR_N, 1, CHAR_n, 1},
[NAME_O] = {CHAR_O, 1, CHAR_o, 1},
[NAME_P] = {CHAR_P, 1, CHAR_p, 1},
[NAME_Q] = {CHAR_Q, 1, CHAR_q, 1},
[NAME_R] = {CHAR_R, 1, CHAR_r, 1},
[NAME_S] = {CHAR_S, 1, CHAR_s, 1},
[NAME_T] = {CHAR_T, 1, CHAR_t, 1},
[NAME_U] = {CHAR_U, 1, CHAR_u, 1},
[NAME_V] = {CHAR_V, 1, CHAR_v, 1},
[NAME_W] = {CHAR_W, 1, CHAR_w, 1},
[NAME_X] = {CHAR_X, 1, CHAR_x, 1},
[NAME_Y] = {CHAR_Y, 1, CHAR_y, 1},
[NAME_Z] = {CHAR_Z, 1, CHAR_z, 1},
#else
[NAME_ABC] = {CHAR_A, 3, CHAR_a, 3},
[NAME_DEF] = {CHAR_D, 3, CHAR_d, 3},
[NAME_GHI] = {CHAR_G, 3, CHAR_g, 3},
@ -1002,6 +1059,7 @@ static const u8 sLetterSearchRanges[][4] =
[NAME_STU] = {CHAR_S, 3, CHAR_s, 3},
[NAME_VWX] = {CHAR_V, 3, CHAR_v, 3},
[NAME_YZ] = {CHAR_Y, 2, CHAR_y, 2},
#endif
};
#define LETTER_IN_RANGE_UPPER(letter, range) \
@ -1346,6 +1404,34 @@ static const struct SearchOptionText sDexOrderOptions[] =
static const struct SearchOptionText sDexSearchNameOptions[] =
{
{gText_DexEmptyString, gText_DexSearchDontSpecify},
#if P_DEX_SEARCH_SINGLE_LETTER == TRUE
[NAME_A] = {gText_DexEmptyString, gText_DexSearchAlphaA},
[NAME_B] = {gText_DexEmptyString, gText_DexSearchAlphaB},
[NAME_C] = {gText_DexEmptyString, gText_DexSearchAlphaC},
[NAME_D] = {gText_DexEmptyString, gText_DexSearchAlphaD},
[NAME_E] = {gText_DexEmptyString, gText_DexSearchAlphaE},
[NAME_F] = {gText_DexEmptyString, gText_DexSearchAlphaF},
[NAME_G] = {gText_DexEmptyString, gText_DexSearchAlphaG},
[NAME_H] = {gText_DexEmptyString, gText_DexSearchAlphaH},
[NAME_I] = {gText_DexEmptyString, gText_DexSearchAlphaI},
[NAME_J] = {gText_DexEmptyString, gText_DexSearchAlphaJ},
[NAME_K] = {gText_DexEmptyString, gText_DexSearchAlphaK},
[NAME_L] = {gText_DexEmptyString, gText_DexSearchAlphaL},
[NAME_M] = {gText_DexEmptyString, gText_DexSearchAlphaM},
[NAME_N] = {gText_DexEmptyString, gText_DexSearchAlphaN},
[NAME_O] = {gText_DexEmptyString, gText_DexSearchAlphaO},
[NAME_P] = {gText_DexEmptyString, gText_DexSearchAlphaP},
[NAME_Q] = {gText_DexEmptyString, gText_DexSearchAlphaQ},
[NAME_R] = {gText_DexEmptyString, gText_DexSearchAlphaR},
[NAME_S] = {gText_DexEmptyString, gText_DexSearchAlphaS},
[NAME_T] = {gText_DexEmptyString, gText_DexSearchAlphaT},
[NAME_U] = {gText_DexEmptyString, gText_DexSearchAlphaU},
[NAME_V] = {gText_DexEmptyString, gText_DexSearchAlphaV},
[NAME_W] = {gText_DexEmptyString, gText_DexSearchAlphaW},
[NAME_X] = {gText_DexEmptyString, gText_DexSearchAlphaX},
[NAME_Y] = {gText_DexEmptyString, gText_DexSearchAlphaY},
[NAME_Z] = {gText_DexEmptyString, gText_DexSearchAlphaZ},
#else
[NAME_ABC] = {gText_DexEmptyString, gText_DexSearchAlphaABC},
[NAME_DEF] = {gText_DexEmptyString, gText_DexSearchAlphaDEF},
[NAME_GHI] = {gText_DexEmptyString, gText_DexSearchAlphaGHI},
@ -1355,6 +1441,7 @@ static const struct SearchOptionText sDexSearchNameOptions[] =
[NAME_STU] = {gText_DexEmptyString, gText_DexSearchAlphaSTU},
[NAME_VWX] = {gText_DexEmptyString, gText_DexSearchAlphaVWX},
[NAME_YZ] = {gText_DexEmptyString, gText_DexSearchAlphaYZ},
#endif
{},
};

View file

@ -131,6 +131,34 @@ const u8 gText_DexSortHeaviestTitle[] = _("HEAVIEST MODE");
const u8 gText_DexSortLightestTitle[] = _("LIGHTEST MODE");
const u8 gText_DexSortTallestTitle[] = _("TALLEST MODE");
const u8 gText_DexSortSmallestTitle[] = _("SMALLEST MODE");
#if P_DEX_SEARCH_SINGLE_LETTER == TRUE
const u8 gText_DexSearchAlphaA[] = _("A");
const u8 gText_DexSearchAlphaB[] = _("B");
const u8 gText_DexSearchAlphaC[] = _("C");
const u8 gText_DexSearchAlphaD[] = _("D");
const u8 gText_DexSearchAlphaE[] = _("E");
const u8 gText_DexSearchAlphaF[] = _("F");
const u8 gText_DexSearchAlphaG[] = _("G");
const u8 gText_DexSearchAlphaH[] = _("H");
const u8 gText_DexSearchAlphaI[] = _("I");
const u8 gText_DexSearchAlphaJ[] = _("J");
const u8 gText_DexSearchAlphaK[] = _("K");
const u8 gText_DexSearchAlphaL[] = _("L");
const u8 gText_DexSearchAlphaM[] = _("M");
const u8 gText_DexSearchAlphaN[] = _("N");
const u8 gText_DexSearchAlphaO[] = _("O");
const u8 gText_DexSearchAlphaP[] = _("P");
const u8 gText_DexSearchAlphaQ[] = _("Q");
const u8 gText_DexSearchAlphaR[] = _("R");
const u8 gText_DexSearchAlphaS[] = _("S");
const u8 gText_DexSearchAlphaT[] = _("T");
const u8 gText_DexSearchAlphaU[] = _("U");
const u8 gText_DexSearchAlphaV[] = _("V");
const u8 gText_DexSearchAlphaW[] = _("W");
const u8 gText_DexSearchAlphaX[] = _("X");
const u8 gText_DexSearchAlphaY[] = _("Y");
const u8 gText_DexSearchAlphaZ[] = _("Z");
#else
const u8 gText_DexSearchAlphaABC[] = _("ABC");
const u8 gText_DexSearchAlphaDEF[] = _("DEF");
const u8 gText_DexSearchAlphaGHI[] = _("GHI");
@ -140,6 +168,7 @@ const u8 gText_DexSearchAlphaPQR[] = _("PQR");
const u8 gText_DexSearchAlphaSTU[] = _("STU");
const u8 gText_DexSearchAlphaVWX[] = _("VWX");
const u8 gText_DexSearchAlphaYZ[] = _("YZ");
#endif
const u8 gText_DexSearchColorRed[] = _("RED");
const u8 gText_DexSearchColorBlue[] = _("BLUE");
const u8 gText_DexSearchColorYellow[] = _("YELLOW");