Shows 4 digits on the main Pokédex page

This commit is contained in:
Eduardo Quezada 2023-10-27 22:59:46 -03:00
parent 7e3f11709d
commit c9619b03b1

View File

@ -2890,6 +2890,12 @@ static void CreateInterfaceSprites(u8 page)
else
{
u16 seenOwnedCount;
// Changes sprite distance based on the seen count (owned count can't ever be bigger than it)
u8 counterXDist = sPokedexView->seenCount > 999 ? 7 : 8;
u8 counterX1s = sPokedexView->seenCount > 999 ? 57 : 56;
u8 counterX10s = counterX1s - counterXDist;
u8 counterX100s = counterX10s - counterXDist;
u8 counterX1000s = counterX100s - counterXDist;
// Seen text
CreateSprite(&sSeenOwnTextSpriteTemplate, 32, 40, 1);
@ -2914,7 +2920,7 @@ static void CreateInterfaceSprites(u8 page)
// Hoenn seen value - 100s
seenOwnedCount = GetHoennPokedexCount(FLAG_GET_SEEN);
drawNextDigit = FALSE;
spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, 40, 45, 1);
spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, counterX100s, 45, 1);
digitNum = seenOwnedCount / 100;
StartSpriteAnim(&gSprites[spriteId], digitNum);
if (digitNum != 0)
@ -2923,7 +2929,7 @@ static void CreateInterfaceSprites(u8 page)
gSprites[spriteId].invisible = TRUE;
// Hoenn seen value - 10s
spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, 48, 45, 1);
spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, counterX10s, 45, 1);
digitNum = (seenOwnedCount % 100) / 10;
if (digitNum != 0 || drawNextDigit)
StartSpriteAnim(&gSprites[spriteId], digitNum);
@ -2931,38 +2937,49 @@ static void CreateInterfaceSprites(u8 page)
gSprites[spriteId].invisible = TRUE;
// Hoenn seen value - 1s
spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, 56, 45, 1);
spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, counterX1s, 45, 1);
digitNum = (seenOwnedCount % 100) % 10;
StartSpriteAnim(&gSprites[spriteId], digitNum);
// National seen value - 100s
// National seen value - 1000s
drawNextDigit = FALSE;
spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, 40, 55, 1);
digitNum = sPokedexView->seenCount / 100;
spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, counterX1000s, 55, 1);
digitNum = sPokedexView->seenCount / 1000;
StartSpriteAnim(&gSprites[spriteId], digitNum);
if (digitNum != 0)
drawNextDigit = TRUE;
else
gSprites[spriteId].invisible = TRUE;
// National seen value - 100s
spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, counterX100s, 55, 1);
digitNum = (sPokedexView->seenCount % 1000) / 100;
if (digitNum != 0 || drawNextDigit)
{
drawNextDigit = TRUE;
StartSpriteAnim(&gSprites[spriteId], digitNum);
}
else
gSprites[spriteId].invisible = TRUE;
// National seen value - 10s
spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, 48, 55, 1);
digitNum = (sPokedexView->seenCount % 100) / 10;
spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, counterX10s, 55, 1);
digitNum = ((sPokedexView->seenCount % 1000) % 100) / 10;
if (digitNum != 0 || drawNextDigit)
StartSpriteAnim(&gSprites[spriteId], digitNum);
else
gSprites[spriteId].invisible = TRUE;
// National seen value - 1s
spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, 56, 55, 1);
digitNum = (sPokedexView->seenCount % 100) % 10;
spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, counterX1s, 55, 1);
digitNum = ((sPokedexView->seenCount % 1000) % 100) % 10;
StartSpriteAnim(&gSprites[spriteId], digitNum);
seenOwnedCount = GetHoennPokedexCount(FLAG_GET_CAUGHT);
// Hoenn owned value - 100s
drawNextDigit = FALSE;
spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, 40, 81, 1);
spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, counterX100s, 81, 1);
digitNum = seenOwnedCount / 100;
StartSpriteAnim(&gSprites[spriteId], digitNum);
if (digitNum != 0)
@ -2971,7 +2988,7 @@ static void CreateInterfaceSprites(u8 page)
gSprites[spriteId].invisible = TRUE;
// Hoenn owned value - 10s
spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, 48, 81, 1);
spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, counterX10s, 81, 1);
digitNum = (seenOwnedCount % 100) / 10;
if (digitNum != 0 || drawNextDigit)
StartSpriteAnim(&gSprites[spriteId], digitNum);
@ -2979,31 +2996,42 @@ static void CreateInterfaceSprites(u8 page)
gSprites[spriteId].invisible = TRUE;
// Hoenn owned value - 1s
spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, 56, 81, 1);
spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, counterX1s, 81, 1);
digitNum = (seenOwnedCount % 100) % 10;
StartSpriteAnim(&gSprites[spriteId], digitNum);
// National owned value - 100s
// National owned value - 1000s
drawNextDigit = FALSE;
spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, 40, 91, 1);
digitNum = sPokedexView->ownCount / 100;
spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, counterX1000s, 91, 1);
digitNum = sPokedexView->ownCount / 1000;
StartSpriteAnim(&gSprites[spriteId], digitNum);
if (digitNum != 0)
drawNextDigit = TRUE;
else
gSprites[spriteId].invisible = TRUE;
// National owned value - 100s
spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, counterX100s, 91, 1);
digitNum = (sPokedexView->ownCount % 1000) / 100;
if (digitNum != 0 || drawNextDigit)
{
drawNextDigit = TRUE;
StartSpriteAnim(&gSprites[spriteId], digitNum);
}
else
gSprites[spriteId].invisible = TRUE;
// National owned value - 10s
spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, 48, 91, 1);
digitNum = (sPokedexView->ownCount % 100) / 10;
spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, counterX10s, 91, 1);
digitNum = ((sPokedexView->ownCount % 1000) % 100) / 10;
if (digitNum != 0 || drawNextDigit)
StartSpriteAnim(&gSprites[spriteId], digitNum);
else
gSprites[spriteId].invisible = TRUE;
// National owned value - 1s
spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, 56, 91, 1);
digitNum = (sPokedexView->ownCount % 100) % 10;
spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, counterX1s, 91, 1);
digitNum = ((sPokedexView->ownCount % 1000) % 100) % 10;
StartSpriteAnim(&gSprites[spriteId], digitNum);
}
spriteId = CreateSprite(&sDexListStartMenuCursorSpriteTemplate, 136, 96, 1);