From c74ad8251d0e5962d244fbeb23ff956874a8724e Mon Sep 17 00:00:00 2001 From: Eduardo Quezada Date: Sat, 28 Oct 2023 17:00:00 -0300 Subject: [PATCH] Rearranged dex scrolling list UI to accomodate 4 digits and 12 character names --- graphics/pokedex/hgss/tileset_menu_list.png | Bin 1553 -> 1554 bytes src/pokedex_plus_hgss.c | 39 ++++++++++++++------ 2 files changed, 27 insertions(+), 12 deletions(-) diff --git a/graphics/pokedex/hgss/tileset_menu_list.png b/graphics/pokedex/hgss/tileset_menu_list.png index 73ccba0112acf75d533352d314753fc121a7e946..91bf31eae92c3c2390ca5b267df5f52ccf9a324c 100644 GIT binary patch delta 1448 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 BoPq!V diff --git a/src/pokedex_plus_hgss.c b/src/pokedex_plus_hgss.c index dcb394316b..4cd875684f 100644 --- a/src/pokedex_plus_hgss.c +++ b/src/pokedex_plus_hgss.c @@ -125,12 +125,12 @@ extern const struct PokedexEntry gPokedexEntries[]; // static .rodata strings -static const u8 sText_No000[] = _("{NO}000"); +static const u8 sText_No000[] = _("000"); +static const u8 sText_No0000[] = _("0000"); static const u8 sCaughtBall_Gfx[] = INCBIN_U8("graphics/pokedex/caught_ball.4bpp"); static const u8 sText_TenDashes[] = _("----------"); ALIGNED(4) static const u8 sExpandedPlaceholder_PokedexDescription[] = _(""); static const u16 sSizeScreenSilhouette_Pal[] = INCBIN_U16("graphics/pokedex/size_silhouette.gbapal"); -static const u8 sText_TenDashes2[] = _("----------"); static const u8 sText_Stats_Buttons[] = _("{A_BUTTON}TOGGLE {DPAD_UPDOWN}MOVES"); static const u8 sText_Stats_Buttons_Decapped[] = _("{A_BUTTON}Toggle {DPAD_UPDOWN}Moves"); @@ -2691,7 +2691,7 @@ static void PrintMonDexNumAndName(u8 windowId, u8 fontId, const u8 *str, u8 left color[0] = TEXT_COLOR_TRANSPARENT; color[1] = TEXT_DYNAMIC_COLOR_6; color[2] = TEXT_COLOR_LIGHT_GRAY; - AddTextPrinterParameterized4(windowId, fontId, left * 8, (top * 8) + 1, 0, 0, color, TEXT_SKIP_DRAW, str); + AddTextPrinterParameterized4(windowId, fontId, left * 8 - 4, (top * 8) + 1, 0, 0, color, TEXT_SKIP_DRAW, str); } static void PrintMonDexNumAndName_2(u8 windowId, u8 fontId, const u8* str, u8 left, u8 top) //offset for closer numer + text @@ -2701,7 +2701,7 @@ static void PrintMonDexNumAndName_2(u8 windowId, u8 fontId, const u8* str, u8 le color[0] = TEXT_COLOR_TRANSPARENT; color[1] = TEXT_DYNAMIC_COLOR_6; color[2] = TEXT_COLOR_LIGHT_GRAY; - AddTextPrinterParameterized4(windowId, fontId, left * 8 - 3, (top * 8) + 1, 0, 0, color, -1, str); + AddTextPrinterParameterized4(windowId, fontId, left * 8 - 13, (top * 8) + 1, 0, 0, color, -1, str); } // u16 ignored is passed but never used @@ -2795,25 +2795,40 @@ static void CreateMonListEntry(u8 position, u16 b, u16 ignored) static void CreateMonDexNum(u16 entryNum, u8 left, u8 top, u16 unused) { - u8 text[6]; +#if P_DEX_FOUR_DIGITS_AMOUNT == TRUE + u8 text[5]; +#else + u8 text[4]; +#endif u16 dexNum; - memcpy(text, sText_No000, ARRAY_COUNT(text)); dexNum = sPokedexView->pokedexList[entryNum].dexNum; if (sPokedexView->dexMode == DEX_MODE_HOENN) dexNum = NationalToHoennOrder(dexNum); + if (sPokedexView->dexMode == DEX_MODE_HOENN || !P_DEX_FOUR_DIGITS_AMOUNT) + { + memcpy(text, sText_No000, ARRAY_COUNT(sText_No000)); text[2] = CHAR_0 + dexNum / 100; text[3] = CHAR_0 + (dexNum % 100) / 10; text[4] = CHAR_0 + (dexNum % 100) % 10; + } + else + { + memcpy(text, sText_No0000, ARRAY_COUNT(sText_No0000)); + text[0] = CHAR_0 + dexNum / 1000; + text[1] = CHAR_0 + (dexNum % 1000) / 100; + text[2] = CHAR_0 + (dexNum % 100) / 10; + text[3] = CHAR_0 + (dexNum % 10); + } PrintMonDexNumAndName(0, FONT_NARROW, text, left, top); } static void CreateCaughtBall(bool16 owned, u8 x, u8 y, u16 unused) { if (owned) - BlitBitmapToWindow(0, sCaughtBall_Gfx, x * 8, y * 8, 8, 16); + BlitBitmapToWindow(0, sCaughtBall_Gfx, x * 6, y * 8, 8, 16); else - FillWindowPixelRect(0, PIXEL_FILL(0), x * 8, y * 8, 8, 16); + FillWindowPixelRect(0, PIXEL_FILL(0), x * 6, y * 8, 8, 16); } static u8 CreateMonName(u16 num, u8 left, u8 top) @@ -2831,7 +2846,7 @@ static u8 CreateMonName(u16 num, u8 left, u8 top) static void ClearMonListEntry(u8 x, u8 y, u16 unused) { - FillWindowPixelRect(0, PIXEL_FILL(0), x * 8, y * 8, 0x60, 16); + FillWindowPixelRect(0, PIXEL_FILL(0), x * 6, y * 8, 0x60, 16); } // u16 ignored is passed but never used @@ -3150,7 +3165,7 @@ static u32 CreatePokedexMonSprite(u16 num, s16 x, s16 y) #define sIsDownArrow data[1] #define LIST_RIGHT_SIDE_TEXT_X 204 -#define LIST_RIGHT_SIDE_TEXT_X_OFFSET 12 +#define LIST_RIGHT_SIDE_TEXT_X_OFFSET 13 #define LIST_RIGHT_SIDE_TEXT_Y_OFFSET 13 static void CreateInterfaceSprites(u8 page) { @@ -3228,7 +3243,7 @@ static void CreateInterfaceSprites(u8 page) { u16 seenOwnedCount; u8 counterXDist = 6; - u8 counterX1s = LIST_RIGHT_SIDE_TEXT_X + 28 - (sPokedexView->seenCount > 999 ? 0 : 1); + u8 counterX1s = LIST_RIGHT_SIDE_TEXT_X + LIST_RIGHT_SIDE_TEXT_X_OFFSET + 16 - (sPokedexView->seenCount > 999 ? 0 : 1); u8 counterX10s = counterX1s - counterXDist; u8 counterX100s = counterX10s - counterXDist; u8 counterX1000s = counterX100s - counterXDist; @@ -4479,7 +4494,7 @@ static void PrintMonInfo(u32 num, u32 value, u32 owned, u32 newEntry) if (species) name = gSpeciesNames[species]; else - name = sText_TenDashes2; + name = sText_TenDashes; PrintInfoScreenTextWhite(name, 157, 17); if (owned) {