diff options
author | GriffinR <griffin.g.richards@gmail.com> | 2020-11-27 11:12:05 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-11-27 11:12:05 -0500 |
commit | f8a1bf14fbb4dae6ffb93b921e6b590e8cef5a4d (patch) | |
tree | 1f6ccd9f670f08250e2e70bc7bc31acc4b85c57c /src | |
parent | 7377bc438bcf9b0c1bfa4478d6ab794ad8cdde89 (diff) | |
parent | f2e7684b177c5dec2958e2ba81b1ae237c9e15e5 (diff) |
Merge pull request #371 from GriffinRichards/data-pokedex
Move pokedex_screen data from asm to C
Diffstat (limited to 'src')
-rw-r--r-- | src/data/pokemon/pokedex_categories.h | 1001 | ||||
-rw-r--r-- | src/graphics.c | 2 | ||||
-rw-r--r-- | src/pokedex_screen.c | 779 | ||||
-rw-r--r-- | src/strings.c | 76 |
4 files changed, 1731 insertions, 127 deletions
diff --git a/src/data/pokemon/pokedex_categories.h b/src/data/pokemon/pokedex_categories.h new file mode 100644 index 000000000..0553fc0f7 --- /dev/null +++ b/src/data/pokemon/pokedex_categories.h @@ -0,0 +1,1001 @@ +static const u16 sDexCategory_GrasslandPkmn_Page1[] = { + SPECIES_RATTATA, + SPECIES_RATICATE, + SPECIES_SENTRET, + SPECIES_FURRET, +}; + +static const u16 sDexCategory_GrasslandPkmn_Page2[] = { + SPECIES_ZIGZAGOON, + SPECIES_LINOONE, + SPECIES_POOCHYENA, + SPECIES_MIGHTYENA, +}; + +static const u16 sDexCategory_GrasslandPkmn_Page3[] = { + SPECIES_NIDORAN_F, + SPECIES_NIDORINA, + SPECIES_NIDOQUEEN, +}; + +static const u16 sDexCategory_GrasslandPkmn_Page4[] = { + SPECIES_NIDORAN_M, + SPECIES_NIDORINO, + SPECIES_NIDOKING, +}; + +static const u16 sDexCategory_GrasslandPkmn_Page5[] = { + SPECIES_DODUO, + SPECIES_DODRIO, + SPECIES_TAILLOW, + SPECIES_SWELLOW, +}; + +static const u16 sDexCategory_GrasslandPkmn_Page6[] = { + SPECIES_TANGELA, + SPECIES_ROSELIA, + SPECIES_SUNKERN, + SPECIES_SUNFLORA, +}; + +static const u16 sDexCategory_GrasslandPkmn_Page7[] = { + SPECIES_HOPPIP, + SPECIES_SKIPLOOM, + SPECIES_JUMPLUFF, +}; + +static const u16 sDexCategory_GrasslandPkmn_Page8[] = { + SPECIES_ODDISH, + SPECIES_GLOOM, + SPECIES_VILEPLUME, + SPECIES_BELLOSSOM, +}; + +static const u16 sDexCategory_GrasslandPkmn_Page9[] = { + SPECIES_EKANS, + SPECIES_ARBOK, +}; + +static const u16 sDexCategory_GrasslandPkmn_Page10[] = { + SPECIES_IGGLYBUFF, + SPECIES_JIGGLYPUFF, + SPECIES_WIGGLYTUFF, +}; + +static const u16 sDexCategory_GrasslandPkmn_Page11[] = { + SPECIES_MAREEP, + SPECIES_FLAAFFY, + SPECIES_AMPHAROS, +}; + +static const u16 sDexCategory_GrasslandPkmn_Page12[] = { + SPECIES_FARFETCHD, + SPECIES_LICKITUNG, +}; + +static const u16 sDexCategory_GrasslandPkmn_Page13[] = { + SPECIES_SCYTHER, + SPECIES_SCIZOR, +}; + +static const u16 sDexCategory_GrasslandPkmn_Page14[] = { + SPECIES_DROWZEE, + SPECIES_HYPNO, + SPECIES_GULPIN, + SPECIES_SWALOT, +}; + +static const u16 sDexCategory_GrasslandPkmn_Page15[] = { + SPECIES_KANGASKHAN, + SPECIES_GIRAFARIG, +}; + +static const u16 sDexCategory_GrasslandPkmn_Page16[] = { + SPECIES_TAUROS, + SPECIES_MILTANK, +}; + +static const u16 sDexCategory_GrasslandPkmn_Page17[] = { + SPECIES_VULPIX, + SPECIES_NINETALES, + SPECIES_PONYTA, + SPECIES_RAPIDASH, +}; + +static const u16 sDexCategory_GrasslandPkmn_Page18[] = { + SPECIES_ELEKID, + SPECIES_ELECTABUZZ, + SPECIES_ELECTRIKE, + SPECIES_MANECTRIC, +}; + +static const u16 sDexCategory_GrasslandPkmn_Page19[] = { + SPECIES_ZANGOOSE, + SPECIES_SEVIPER, +}; + +static const u16 sDexCategory_GrasslandPkmn_Page20[] = { + SPECIES_PLUSLE, + SPECIES_MINUN, +}; + +static const u16 sDexCategory_GrasslandPkmn_Page21[] = { + SPECIES_GROWLITHE, + SPECIES_ARCANINE, +}; + +static const u16 sDexCategory_GrasslandPkmn_Page22[] = { + SPECIES_CASTFORM, + SPECIES_CHIMECHO, +}; + +static const u16 sDexCategory_GrasslandPkmn_Page23[] = { + SPECIES_BULBASAUR, + SPECIES_IVYSAUR, + SPECIES_VENUSAUR, +}; + +static const u16 sDexCategory_GrasslandPkmn_Page24[] = { + SPECIES_CHIKORITA, + SPECIES_BAYLEEF, + SPECIES_MEGANIUM, +}; + +static const u16 sDexCategory_GrasslandPkmn_Page25[] = { + SPECIES_CYNDAQUIL, + SPECIES_QUILAVA, + SPECIES_TYPHLOSION, +}; + +static const u16 sDexCategory_GrasslandPkmn_Page26[] = { + SPECIES_TORCHIC, + SPECIES_COMBUSKEN, + SPECIES_BLAZIKEN, +}; + +static const u16 sDexCategory_GrasslandPkmn_Page27[] = { + SPECIES_RAIKOU, + SPECIES_ENTEI, + SPECIES_SUICUNE, +}; + +static const u16 sDexCategory_ForestPkmn_Page1[] = { + SPECIES_CATERPIE, + SPECIES_METAPOD, + SPECIES_BUTTERFREE, +}; + +static const u16 sDexCategory_ForestPkmn_Page2[] = { + SPECIES_WEEDLE, + SPECIES_KAKUNA, + SPECIES_BEEDRILL, +}; + +static const u16 sDexCategory_ForestPkmn_Page3[] = { + SPECIES_WURMPLE, + SPECIES_SILCOON, + SPECIES_BEAUTIFLY, +}; + +static const u16 sDexCategory_ForestPkmn_Page4[] = { + SPECIES_CASCOON, + SPECIES_DUSTOX, +}; + +static const u16 sDexCategory_ForestPkmn_Page5[] = { + SPECIES_PIDGEY, + SPECIES_PIDGEOTTO, + SPECIES_PIDGEOT, +}; + +static const u16 sDexCategory_ForestPkmn_Page6[] = { + SPECIES_HOOTHOOT, + SPECIES_NOCTOWL, + SPECIES_NATU, + SPECIES_XATU, +}; + +static const u16 sDexCategory_ForestPkmn_Page7[] = { + SPECIES_PICHU, + SPECIES_PIKACHU, + SPECIES_RAICHU, +}; + +static const u16 sDexCategory_ForestPkmn_Page8[] = { + SPECIES_BELLSPROUT, + SPECIES_WEEPINBELL, + SPECIES_VICTREEBEL, +}; + +static const u16 sDexCategory_ForestPkmn_Page9[] = { + SPECIES_PARAS, + SPECIES_PARASECT, + SPECIES_SHROOMISH, + SPECIES_BRELOOM, +}; + +static const u16 sDexCategory_ForestPkmn_Page10[] = { + SPECIES_SEEDOT, + SPECIES_NUZLEAF, + SPECIES_SHIFTRY, +}; + +static const u16 sDexCategory_ForestPkmn_Page11[] = { + SPECIES_VENONAT, + SPECIES_VENOMOTH, + SPECIES_YANMA, +}; + +static const u16 sDexCategory_ForestPkmn_Page12[] = { + SPECIES_LEDYBA, + SPECIES_LEDIAN, + SPECIES_SPINARAK, + SPECIES_ARIADOS, +}; + +static const u16 sDexCategory_ForestPkmn_Page13[] = { + SPECIES_NINCADA, + SPECIES_NINJASK, + SPECIES_SHEDINJA, +}; + +static const u16 sDexCategory_ForestPkmn_Page14[] = { + SPECIES_VOLBEAT, + SPECIES_ILLUMISE, +}; + +static const u16 sDexCategory_ForestPkmn_Page15[] = { + SPECIES_PINECO, + SPECIES_FORRETRESS, +}; + +static const u16 sDexCategory_ForestPkmn_Page16[] = { + SPECIES_SLAKOTH, + SPECIES_VIGOROTH, + SPECIES_SLAKING, +}; + +static const u16 sDexCategory_ForestPkmn_Page17[] = { + SPECIES_SKITTY, + SPECIES_DELCATTY, +}; + +static const u16 sDexCategory_ForestPkmn_Page18[] = { + SPECIES_MURKROW, + SPECIES_SNEASEL, +}; + +static const u16 sDexCategory_ForestPkmn_Page19[] = { + SPECIES_EXEGGCUTE, + SPECIES_EXEGGUTOR, + SPECIES_SUDOWOODO, +}; + +static const u16 sDexCategory_ForestPkmn_Page20[] = { + SPECIES_AIPOM, + SPECIES_STANTLER, + SPECIES_KECLEON, +}; + +static const u16 sDexCategory_ForestPkmn_Page21[] = { + SPECIES_PINSIR, + SPECIES_HERACROSS, +}; + +static const u16 sDexCategory_ForestPkmn_Page22[] = { + SPECIES_SWABLU, + SPECIES_ALTARIA, + SPECIES_TROPIUS, +}; + +static const u16 sDexCategory_ForestPkmn_Page23[] = { + SPECIES_DUSKULL, + SPECIES_DUSCLOPS, +}; + +static const u16 sDexCategory_ForestPkmn_Page24[] = { + SPECIES_TOGEPI, + SPECIES_TOGETIC, +}; + +static const u16 sDexCategory_ForestPkmn_Page25[] = { + SPECIES_TREECKO, + SPECIES_GROVYLE, + SPECIES_SCEPTILE, +}; + +static const u16 sDexCategory_ForestPkmn_Page26[] = { + SPECIES_CELEBI, +}; + +static const u16 sDexCategory_WatersEdgePkmn_Page1[] = { + SPECIES_GOLDEEN, + SPECIES_SEAKING, +}; + +static const u16 sDexCategory_WatersEdgePkmn_Page2[] = { + SPECIES_MAGIKARP, + SPECIES_GYARADOS, + SPECIES_KRABBY, + SPECIES_KINGLER, +}; + +static const u16 sDexCategory_WatersEdgePkmn_Page3[] = { + SPECIES_CORPHISH, + SPECIES_CRAWDAUNT, + SPECIES_BARBOACH, + SPECIES_WHISCASH, +}; + +static const u16 sDexCategory_WatersEdgePkmn_Page4[] = { + SPECIES_LOTAD, + SPECIES_LOMBRE, + SPECIES_LUDICOLO, +}; + +static const u16 sDexCategory_WatersEdgePkmn_Page5[] = { + SPECIES_SURSKIT, + SPECIES_MASQUERAIN, +}; + +static const u16 sDexCategory_WatersEdgePkmn_Page6[] = { + SPECIES_PSYDUCK, + SPECIES_GOLDUCK, + SPECIES_WOOPER, + SPECIES_QUAGSIRE, +}; + +static const u16 sDexCategory_WatersEdgePkmn_Page7[] = { + SPECIES_POLIWAG, + SPECIES_POLIWHIRL, + SPECIES_POLIWRATH, + SPECIES_POLITOED, +}; + +static const u16 sDexCategory_WatersEdgePkmn_Page8[] = { + SPECIES_AZURILL, + SPECIES_MARILL, + SPECIES_AZUMARILL, +}; + +static const u16 sDexCategory_WatersEdgePkmn_Page9[] = { + SPECIES_SLOWPOKE, + SPECIES_SLOWBRO, + SPECIES_SLOWKING, +}; + +static const u16 sDexCategory_WatersEdgePkmn_Page10[] = { + SPECIES_FEEBAS, + SPECIES_MILOTIC, +}; + +static const u16 sDexCategory_WatersEdgePkmn_Page11[] = { + SPECIES_ANORITH, + SPECIES_ARMALDO, +}; + +static const u16 sDexCategory_WatersEdgePkmn_Page12[] = { + SPECIES_DRATINI, + SPECIES_DRAGONAIR, + SPECIES_DRAGONITE, +}; + +static const u16 sDexCategory_WatersEdgePkmn_Page13[] = { + SPECIES_SQUIRTLE, + SPECIES_WARTORTLE, + SPECIES_BLASTOISE, +}; + +static const u16 sDexCategory_WatersEdgePkmn_Page14[] = { + SPECIES_TOTODILE, + SPECIES_CROCONAW, + SPECIES_FERALIGATR, +}; + +static const u16 sDexCategory_WatersEdgePkmn_Page15[] = { + SPECIES_MUDKIP, + SPECIES_MARSHTOMP, + SPECIES_SWAMPERT, +}; + +static const u16 sDexCategory_WatersEdgePkmn_Page16[] = { + SPECIES_LATIAS, + SPECIES_LATIOS, +}; + +static const u16 sDexCategory_SeaPkmn_Page1[] = { + SPECIES_TENTACOOL, + SPECIES_TENTACRUEL, +}; + +static const u16 sDexCategory_SeaPkmn_Page2[] = { + SPECIES_WINGULL, + SPECIES_PELIPPER, +}; + +static const u16 sDexCategory_SeaPkmn_Page3[] = { + SPECIES_STARYU, + SPECIES_STARMIE, +}; + +static const u16 sDexCategory_SeaPkmn_Page4[] = { + SPECIES_CHINCHOU, + SPECIES_LANTURN, + SPECIES_REMORAID, + SPECIES_OCTILLERY, +}; + +static const u16 sDexCategory_SeaPkmn_Page5[] = { + SPECIES_SHELLDER, + SPECIES_CLOYSTER, +}; + +static const u16 sDexCategory_SeaPkmn_Page6[] = { + SPECIES_CLAMPERL, + SPECIES_HUNTAIL, + SPECIES_GOREBYSS, +}; + +static const u16 sDexCategory_SeaPkmn_Page7[] = { + SPECIES_QWILFISH, + SPECIES_CORSOLA, + SPECIES_MANTINE, + SPECIES_LUVDISC, +}; + +static const u16 sDexCategory_SeaPkmn_Page8[] = { + SPECIES_SEEL, + SPECIES_DEWGONG, +}; + +static const u16 sDexCategory_SeaPkmn_Page9[] = { + SPECIES_SPHEAL, + SPECIES_SEALEO, + SPECIES_WALREIN, +}; + +static const u16 sDexCategory_SeaPkmn_Page10[] = { + SPECIES_CARVANHA, + SPECIES_SHARPEDO, + SPECIES_WAILMER, + SPECIES_WAILORD, +}; + +static const u16 sDexCategory_SeaPkmn_Page11[] = { + SPECIES_HORSEA, + SPECIES_SEADRA, + SPECIES_KINGDRA, +}; + +static const u16 sDexCategory_SeaPkmn_Page12[] = { + SPECIES_RELICANTH, +}; + +static const u16 sDexCategory_SeaPkmn_Page13[] = { + SPECIES_LAPRAS, +}; + +static const u16 sDexCategory_SeaPkmn_Page14[] = { + SPECIES_OMANYTE, + SPECIES_OMASTAR, + SPECIES_KABUTO, + SPECIES_KABUTOPS, +}; + +static const u16 sDexCategory_SeaPkmn_Page15[] = { + SPECIES_LILEEP, + SPECIES_CRADILY, +}; + +static const u16 sDexCategory_SeaPkmn_Page16[] = { + SPECIES_KYOGRE, +}; + +static const u16 sDexCategory_CavePkmn_Page1[] = { + SPECIES_ZUBAT, + SPECIES_GOLBAT, + SPECIES_CROBAT, +}; + +static const u16 sDexCategory_CavePkmn_Page2[] = { + SPECIES_DIGLETT, + SPECIES_DUGTRIO, + SPECIES_ONIX, + SPECIES_STEELIX, +}; + +static const u16 sDexCategory_CavePkmn_Page3[] = { + SPECIES_SWINUB, + SPECIES_PILOSWINE, + SPECIES_SNORUNT, + SPECIES_GLALIE, +}; + +static const u16 sDexCategory_CavePkmn_Page4[] = { + SPECIES_WHISMUR, + SPECIES_LOUDRED, + SPECIES_EXPLOUD, +}; + +static const u16 sDexCategory_CavePkmn_Page5[] = { + SPECIES_MISDREAVUS, + SPECIES_DUNSPARCE, + SPECIES_NOSEPASS, +}; + +static const u16 sDexCategory_CavePkmn_Page6[] = { + SPECIES_SABLEYE, + SPECIES_MAWILE, +}; + +static const u16 sDexCategory_CavePkmn_Page7[] = { + SPECIES_GASTLY, + SPECIES_HAUNTER, + SPECIES_GENGAR, +}; + +static const u16 sDexCategory_CavePkmn_Page8[] = { + SPECIES_WYNAUT, + SPECIES_WOBBUFFET, +}; + +static const u16 sDexCategory_CavePkmn_Page9[] = { + SPECIES_LUNATONE, + SPECIES_SOLROCK, +}; + +static const u16 sDexCategory_CavePkmn_Page10[] = { + SPECIES_REGIROCK, + SPECIES_REGICE, + SPECIES_REGISTEEL, +}; + +static const u16 sDexCategory_MountainPkmn_Page1[] = { + SPECIES_GEODUDE, + SPECIES_GRAVELER, + SPECIES_GOLEM, +}; + +static const u16 sDexCategory_MountainPkmn_Page2[] = { + SPECIES_MANKEY, + SPECIES_PRIMEAPE, + SPECIES_SPOINK, + SPECIES_GRUMPIG, +}; + +static const u16 sDexCategory_MountainPkmn_Page3[] = { + SPECIES_MACHOP, + SPECIES_MACHOKE, + SPECIES_MACHAMP, +}; + +static const u16 sDexCategory_MountainPkmn_Page4[] = { + SPECIES_CLEFFA, + SPECIES_CLEFAIRY, + SPECIES_CLEFABLE, +}; + +static const u16 sDexCategory_MountainPkmn_Page5[] = { + SPECIES_CUBONE, + SPECIES_MAROWAK, +}; + +static const u16 sDexCategory_MountainPkmn_Page6[] = { + SPECIES_SLUGMA, + SPECIES_MAGCARGO, + SPECIES_NUMEL, + SPECIES_CAMERUPT, +}; + +static const u16 sDexCategory_MountainPkmn_Page7[] = { + SPECIES_MAKUHITA, + SPECIES_HARIYAMA, + SPECIES_MEDITITE, + SPECIES_MEDICHAM, +}; + +static const u16 sDexCategory_MountainPkmn_Page8[] = { + SPECIES_SHUCKLE, + SPECIES_TEDDIURSA, + SPECIES_URSARING, + SPECIES_DELIBIRD, +}; + +static const u16 sDexCategory_MountainPkmn_Page9[] = { + SPECIES_GLIGAR, + SPECIES_SPINDA, +}; + +static const u16 sDexCategory_MountainPkmn_Page10[] = { + SPECIES_MAGBY, + SPECIES_MAGMAR, + SPECIES_TORKOAL, +}; + +static const u16 sDexCategory_MountainPkmn_Page11[] = { + SPECIES_ARON, + SPECIES_LAIRON, + SPECIES_AGGRON, +}; + +static const u16 sDexCategory_MountainPkmn_Page12[] = { + SPECIES_LARVITAR, + SPECIES_PUPITAR, + SPECIES_TYRANITAR, +}; + +static const u16 sDexCategory_MountainPkmn_Page13[] = { + SPECIES_SNORLAX, +}; + +static const u16 sDexCategory_MountainPkmn_Page14[] = { + SPECIES_ABSOL, +}; + +static const u16 sDexCategory_MountainPkmn_Page15[] = { + SPECIES_AERODACTYL, +}; + +static const u16 sDexCategory_MountainPkmn_Page16[] = { + SPECIES_CHARMANDER, + SPECIES_CHARMELEON, + SPECIES_CHARIZARD, +}; + +static const u16 sDexCategory_MountainPkmn_Page17[] = { + SPECIES_JIRACHI, +}; + +static const u16 sDexCategory_RoughTerrainPkmn_Page1[] = { + SPECIES_SPEAROW, + SPECIES_FEAROW, +}; + +static const u16 sDexCategory_RoughTerrainPkmn_Page2[] = { + SPECIES_SANDSHREW, + SPECIES_SANDSLASH, + SPECIES_RHYHORN, + SPECIES_RHYDON, +}; + +static const u16 sDexCategory_RoughTerrainPkmn_Page3[] = { + SPECIES_MAGNEMITE, + SPECIES_MAGNETON, +}; + +static const u16 sDexCategory_RoughTerrainPkmn_Page4[] = { + SPECIES_HOUNDOUR, + SPECIES_HOUNDOOM, + SPECIES_PHANPY, + SPECIES_DONPHAN, +}; + +static const u16 sDexCategory_RoughTerrainPkmn_Page5[] = { + SPECIES_CACNEA, + SPECIES_CACTURNE, +}; + +static const u16 sDexCategory_RoughTerrainPkmn_Page6[] = { + SPECIES_TRAPINCH, + SPECIES_VIBRAVA, + SPECIES_FLYGON, +}; + +static const u16 sDexCategory_RoughTerrainPkmn_Page7[] = { + SPECIES_SKARMORY, +}; + +static const u16 sDexCategory_RoughTerrainPkmn_Page8[] = { + SPECIES_BALTOY, + SPECIES_CLAYDOL, +}; + +static const u16 sDexCategory_RoughTerrainPkmn_Page9[] = { + SPECIES_BAGON, + SPECIES_SHELGON, + SPECIES_SALAMENCE, +}; + +static const u16 sDexCategory_RoughTerrainPkmn_Page10[] = { + SPECIES_BELDUM, + SPECIES_METANG, + SPECIES_METAGROSS, +}; + +static const u16 sDexCategory_RoughTerrainPkmn_Page11[] = { + SPECIES_GROUDON, +}; + +static const u16 sDexCategory_UrbanPkmn_Page1[] = { + SPECIES_MEOWTH, + SPECIES_PERSIAN, + SPECIES_SNUBBULL, + SPECIES_GRANBULL, +}; + +static const u16 sDexCategory_UrbanPkmn_Page2[] = { + SPECIES_GRIMER, + SPECIES_MUK, + SPECIES_KOFFING, + SPECIES_WEEZING, +}; + +static const u16 sDexCategory_UrbanPkmn_Page3[] = { + SPECIES_SHUPPET, + SPECIES_BANETTE, +}; + +static const u16 sDexCategory_UrbanPkmn_Page4[] = { + SPECIES_ABRA, + SPECIES_KADABRA, + SPECIES_ALAKAZAM, +}; + +static const u16 sDexCategory_UrbanPkmn_Page5[] = { + SPECIES_RALTS, + SPECIES_KIRLIA, + SPECIES_GARDEVOIR, +}; + +static const u16 sDexCategory_UrbanPkmn_Page6[] = { + SPECIES_SMOOCHUM, + SPECIES_JYNX, + SPECIES_MR_MIME, + SPECIES_SMEARGLE, +}; + +static const u16 sDexCategory_UrbanPkmn_Page7[] = { + SPECIES_TYROGUE, + SPECIES_HITMONLEE, + SPECIES_HITMONCHAN, + SPECIES_HITMONTOP, +}; + +static const u16 sDexCategory_UrbanPkmn_Page8[] = { + SPECIES_CHANSEY, + SPECIES_BLISSEY, +}; + +static const u16 sDexCategory_UrbanPkmn_Page9[] = { + SPECIES_VOLTORB, + SPECIES_ELECTRODE, + SPECIES_PORYGON, + SPECIES_PORYGON2, +}; + +static const u16 sDexCategory_UrbanPkmn_Page10[] = { + SPECIES_DITTO, +}; + +static const u16 sDexCategory_UrbanPkmn_Page11[] = { + SPECIES_EEVEE, + SPECIES_VAPOREON, + SPECIES_JOLTEON, + SPECIES_FLAREON, +}; + +static const u16 sDexCategory_UrbanPkmn_Page12[] = { + SPECIES_ESPEON, + SPECIES_UMBREON, +}; + +static const u16 sDexCategory_RarePkmn_Page1[] = { + SPECIES_UNOWN, +}; + +static const u16 sDexCategory_RarePkmn_Page2[] = { + SPECIES_ARTICUNO, + SPECIES_ZAPDOS, + SPECIES_MOLTRES, +}; + +static const u16 sDexCategory_RarePkmn_Page3[] = { + SPECIES_LUGIA, +}; + +static const u16 sDexCategory_RarePkmn_Page4[] = { + SPECIES_HO_OH, +}; + +static const u16 sDexCategory_RarePkmn_Page5[] = { + SPECIES_RAYQUAZA, +}; + +static const u16 sDexCategory_RarePkmn_Page6[] = { + SPECIES_DEOXYS, +}; + +static const u16 sDexCategory_RarePkmn_Page7[] = { + SPECIES_MEWTWO, +}; + +static const u16 sDexCategory_RarePkmn_Page8[] = { + SPECIES_MEW, +}; + +#define DEX_CATEGORY(name){sDexCategory_##name, NELEMS(sDexCategory_##name)} + +static const struct PokedexCategoryPage sDexCategory_GrasslandPkmn[] = { + DEX_CATEGORY(GrasslandPkmn_Page1), + DEX_CATEGORY(GrasslandPkmn_Page2), + DEX_CATEGORY(GrasslandPkmn_Page3), + DEX_CATEGORY(GrasslandPkmn_Page4), + DEX_CATEGORY(GrasslandPkmn_Page5), + DEX_CATEGORY(GrasslandPkmn_Page6), + DEX_CATEGORY(GrasslandPkmn_Page7), + DEX_CATEGORY(GrasslandPkmn_Page8), + DEX_CATEGORY(GrasslandPkmn_Page9), + DEX_CATEGORY(GrasslandPkmn_Page10), + DEX_CATEGORY(GrasslandPkmn_Page11), + DEX_CATEGORY(GrasslandPkmn_Page12), + DEX_CATEGORY(GrasslandPkmn_Page13), + DEX_CATEGORY(GrasslandPkmn_Page14), + DEX_CATEGORY(GrasslandPkmn_Page15), + DEX_CATEGORY(GrasslandPkmn_Page16), + DEX_CATEGORY(GrasslandPkmn_Page17), + DEX_CATEGORY(GrasslandPkmn_Page18), + DEX_CATEGORY(GrasslandPkmn_Page19), + DEX_CATEGORY(GrasslandPkmn_Page20), + DEX_CATEGORY(GrasslandPkmn_Page21), + DEX_CATEGORY(GrasslandPkmn_Page22), + DEX_CATEGORY(GrasslandPkmn_Page23), + DEX_CATEGORY(GrasslandPkmn_Page24), + DEX_CATEGORY(GrasslandPkmn_Page25), + DEX_CATEGORY(GrasslandPkmn_Page26), + DEX_CATEGORY(GrasslandPkmn_Page27), +}; + +static const struct PokedexCategoryPage sDexCategory_ForestPkmn[] = { + DEX_CATEGORY(ForestPkmn_Page1), + DEX_CATEGORY(ForestPkmn_Page2), + DEX_CATEGORY(ForestPkmn_Page3), + DEX_CATEGORY(ForestPkmn_Page4), + DEX_CATEGORY(ForestPkmn_Page5), + DEX_CATEGORY(ForestPkmn_Page6), + DEX_CATEGORY(ForestPkmn_Page7), + DEX_CATEGORY(ForestPkmn_Page8), + DEX_CATEGORY(ForestPkmn_Page9), + DEX_CATEGORY(ForestPkmn_Page10), + DEX_CATEGORY(ForestPkmn_Page11), + DEX_CATEGORY(ForestPkmn_Page12), + DEX_CATEGORY(ForestPkmn_Page13), + DEX_CATEGORY(ForestPkmn_Page14), + DEX_CATEGORY(ForestPkmn_Page15), + DEX_CATEGORY(ForestPkmn_Page16), + DEX_CATEGORY(ForestPkmn_Page17), + DEX_CATEGORY(ForestPkmn_Page18), + DEX_CATEGORY(ForestPkmn_Page19), + DEX_CATEGORY(ForestPkmn_Page20), + DEX_CATEGORY(ForestPkmn_Page21), + DEX_CATEGORY(ForestPkmn_Page22), + DEX_CATEGORY(ForestPkmn_Page23), + DEX_CATEGORY(ForestPkmn_Page24), + DEX_CATEGORY(ForestPkmn_Page25), + DEX_CATEGORY(ForestPkmn_Page26), +}; + +static const struct PokedexCategoryPage sDexCategory_WatersEdgePkmn[] = { + DEX_CATEGORY(WatersEdgePkmn_Page1), + DEX_CATEGORY(WatersEdgePkmn_Page2), + DEX_CATEGORY(WatersEdgePkmn_Page3), + DEX_CATEGORY(WatersEdgePkmn_Page4), + DEX_CATEGORY(WatersEdgePkmn_Page5), + DEX_CATEGORY(WatersEdgePkmn_Page6), + DEX_CATEGORY(WatersEdgePkmn_Page7), + DEX_CATEGORY(WatersEdgePkmn_Page8), + DEX_CATEGORY(WatersEdgePkmn_Page9), + DEX_CATEGORY(WatersEdgePkmn_Page10), + DEX_CATEGORY(WatersEdgePkmn_Page11), + DEX_CATEGORY(WatersEdgePkmn_Page12), + DEX_CATEGORY(WatersEdgePkmn_Page13), + DEX_CATEGORY(WatersEdgePkmn_Page14), + DEX_CATEGORY(WatersEdgePkmn_Page15), + DEX_CATEGORY(WatersEdgePkmn_Page16), +}; + +static const struct PokedexCategoryPage sDexCategory_SeaPkmn[] = { + DEX_CATEGORY(SeaPkmn_Page1), + DEX_CATEGORY(SeaPkmn_Page2), + DEX_CATEGORY(SeaPkmn_Page3), + DEX_CATEGORY(SeaPkmn_Page4), + DEX_CATEGORY(SeaPkmn_Page5), + DEX_CATEGORY(SeaPkmn_Page6), + DEX_CATEGORY(SeaPkmn_Page7), + DEX_CATEGORY(SeaPkmn_Page8), + DEX_CATEGORY(SeaPkmn_Page9), + DEX_CATEGORY(SeaPkmn_Page10), + DEX_CATEGORY(SeaPkmn_Page11), + DEX_CATEGORY(SeaPkmn_Page12), + DEX_CATEGORY(SeaPkmn_Page13), + DEX_CATEGORY(SeaPkmn_Page14), + DEX_CATEGORY(SeaPkmn_Page15), + DEX_CATEGORY(SeaPkmn_Page16), +}; + +static const struct PokedexCategoryPage sDexCategory_CavePkmn[] = { + DEX_CATEGORY(CavePkmn_Page1), + DEX_CATEGORY(CavePkmn_Page2), + DEX_CATEGORY(CavePkmn_Page3), + DEX_CATEGORY(CavePkmn_Page4), + DEX_CATEGORY(CavePkmn_Page5), + DEX_CATEGORY(CavePkmn_Page6), + DEX_CATEGORY(CavePkmn_Page7), + DEX_CATEGORY(CavePkmn_Page8), + DEX_CATEGORY(CavePkmn_Page9), + DEX_CATEGORY(CavePkmn_Page10), +}; + +static const struct PokedexCategoryPage sDexCategory_MountainPkmn[] = { + DEX_CATEGORY(MountainPkmn_Page1), + DEX_CATEGORY(MountainPkmn_Page2), + DEX_CATEGORY(MountainPkmn_Page3), + DEX_CATEGORY(MountainPkmn_Page4), + DEX_CATEGORY(MountainPkmn_Page5), + DEX_CATEGORY(MountainPkmn_Page6), + DEX_CATEGORY(MountainPkmn_Page7), + DEX_CATEGORY(MountainPkmn_Page8), + DEX_CATEGORY(MountainPkmn_Page9), + DEX_CATEGORY(MountainPkmn_Page10), + DEX_CATEGORY(MountainPkmn_Page11), + DEX_CATEGORY(MountainPkmn_Page12), + DEX_CATEGORY(MountainPkmn_Page13), + DEX_CATEGORY(MountainPkmn_Page14), + DEX_CATEGORY(MountainPkmn_Page15), + DEX_CATEGORY(MountainPkmn_Page16), + DEX_CATEGORY(MountainPkmn_Page17), +}; + +static const struct PokedexCategoryPage sDexCategory_RoughTerrainPkmn[] = { + DEX_CATEGORY(RoughTerrainPkmn_Page1), + DEX_CATEGORY(RoughTerrainPkmn_Page2), + DEX_CATEGORY(RoughTerrainPkmn_Page3), + DEX_CATEGORY(RoughTerrainPkmn_Page4), + DEX_CATEGORY(RoughTerrainPkmn_Page5), + DEX_CATEGORY(RoughTerrainPkmn_Page6), + DEX_CATEGORY(RoughTerrainPkmn_Page7), + DEX_CATEGORY(RoughTerrainPkmn_Page8), + DEX_CATEGORY(RoughTerrainPkmn_Page9), + DEX_CATEGORY(RoughTerrainPkmn_Page10), + DEX_CATEGORY(RoughTerrainPkmn_Page11), +}; + +static const struct PokedexCategoryPage sDexCategory_UrbanPkmn[] = { + DEX_CATEGORY(UrbanPkmn_Page1), + DEX_CATEGORY(UrbanPkmn_Page2), + DEX_CATEGORY(UrbanPkmn_Page3), + DEX_CATEGORY(UrbanPkmn_Page4), + DEX_CATEGORY(UrbanPkmn_Page5), + DEX_CATEGORY(UrbanPkmn_Page6), + DEX_CATEGORY(UrbanPkmn_Page7), + DEX_CATEGORY(UrbanPkmn_Page8), + DEX_CATEGORY(UrbanPkmn_Page9), + DEX_CATEGORY(UrbanPkmn_Page10), + DEX_CATEGORY(UrbanPkmn_Page11), + DEX_CATEGORY(UrbanPkmn_Page12), +}; + +static const struct PokedexCategoryPage sDexCategory_RarePkmn[] = { + DEX_CATEGORY(RarePkmn_Page1), + DEX_CATEGORY(RarePkmn_Page2), + DEX_CATEGORY(RarePkmn_Page3), + DEX_CATEGORY(RarePkmn_Page4), + DEX_CATEGORY(RarePkmn_Page5), + DEX_CATEGORY(RarePkmn_Page6), + DEX_CATEGORY(RarePkmn_Page7), + DEX_CATEGORY(RarePkmn_Page8), +}; + +struct { + const struct PokedexCategoryPage * page; + u8 count; +} const gDexCategories[] = { + DEX_CATEGORY(GrasslandPkmn), + DEX_CATEGORY(ForestPkmn), + DEX_CATEGORY(WatersEdgePkmn), + DEX_CATEGORY(SeaPkmn), + DEX_CATEGORY(CavePkmn), + DEX_CATEGORY(MountainPkmn), + DEX_CATEGORY(RoughTerrainPkmn), + DEX_CATEGORY(UrbanPkmn), + DEX_CATEGORY(RarePkmn), +}; diff --git a/src/graphics.c b/src/graphics.c index a262ef8e2..c9fc09a1e 100644 --- a/src/graphics.c +++ b/src/graphics.c @@ -1246,7 +1246,7 @@ const u16 gUnknown_8E9BF28[] = INCBIN_U16("graphics/interface/link_rfu_frame.gba const u32 gUnknown_8E9BF48[] = INCBIN_U32("graphics/interface/link_rfu_status.4bpp.lz"); const u16 gUnknown_8E9C14C[] = INCBIN_U16("graphics/interface/pokedex_abc.gbapal"); -const u32 gUnknown_8E9C16C[] = INCBIN_U32("graphics/interface/pokedex_abc.4bpp.lz"); +const u16 gUnknown_8E9C16C[] = INCBIN_U16("graphics/interface/pokedex_abc.4bpp.lz"); const u16 gPSSMenu_Pal[] = INCBIN_U16("graphics/interface/box_tiles_pal1.gbapal"); const u16 gUnknown_8E9C3F8[] = INCBIN_U16("graphics/interface/box_tiles_pal2.gbapal"); diff --git a/src/pokedex_screen.c b/src/pokedex_screen.c index a36108425..0d140cfe3 100644 --- a/src/pokedex_screen.c +++ b/src/pokedex_screen.c @@ -69,8 +69,14 @@ struct PokedexScreenData struct PokedexScreenWindowGfx { - const u16 *map; - const u16 *pal; + const u16 * map; + const u16 * pal; +}; + +struct PokedexCategoryPage +{ + const u16 * species; + u8 count; }; EWRAM_DATA struct PokedexScreenData * gUnknown_203ACF0 = NULL; @@ -114,6 +120,9 @@ void sub_81068DC(u8 category, u8 a1); u8 sub_8106AF8(u16 a0); void sub_8106B34(void); void sub_8106E78(const u8 *a0, s32 a1); +static void sub_8102EC0(s32 itemIndex, bool8 onInit, struct ListMenu *list); +static void sub_8102F48(u8 windowId, s32 itemId, u8 y); +static void sub_8103A40(u8 windowId, s32 itemId, u8 y); #include "data/pokemon_graphics/footprint_table.h" @@ -132,21 +141,21 @@ const u16 gUnknown_84406C8[] = { }; const u16 gUnknown_84406E0[] = INCBIN_U16("graphics/pokedex/unk_84406E0.gbapal"); -const u32 gUnknown_84408E0[] = INCBIN_U32("graphics/pokedex/unk_84408E0.bin.lz"); -const u32 gUnknown_8440BD8[] = INCBIN_U32("graphics/pokedex/unk_8440BD8.bin.lz"); +const u16 gUnknown_84408E0[] = INCBIN_U16("graphics/pokedex/unk_84408E0.bin.lz"); +const u16 gUnknown_8440BD8[] = INCBIN_U16("graphics/pokedex/unk_8440BD8.bin.lz"); const u32 gUnknown_8440EF0[] = INCBIN_U32("graphics/pokedex/unk_8440EF0.bin.lz"); -const u32 gUnknown_844112C[] = INCBIN_U32("graphics/pokedex/unk_844112C.bin.lz"); -const u32 gUnknown_84414BC[] = INCBIN_U32("graphics/pokedex/unk_84414BC.bin.lz"); +const u16 gUnknown_844112C[] = INCBIN_U16("graphics/pokedex/unk_844112C.bin.lz"); +const u16 gUnknown_84414BC[] = INCBIN_U16("graphics/pokedex/unk_84414BC.bin.lz"); const u32 gUnknown_8441808[] = INCBIN_U32("graphics/pokedex/unk_8441808.bin.lz"); -const u32 gUnknown_8441A40[] = INCBIN_U32("graphics/pokedex/unk_8441A40.bin.lz"); -const u32 gUnknown_8441D54[] = INCBIN_U32("graphics/pokedex/unk_8441D54.bin.lz"); -const u32 gUnknown_8442004[] = INCBIN_U32("graphics/pokedex/unk_8442004.bin.lz"); -const u32 gUnknown_844223C[] = INCBIN_U32("graphics/pokedex/unk_844223C.bin.lz"); -const u32 gUnknown_84424E4[] = INCBIN_U32("graphics/pokedex/unk_84424E4.bin.lz"); -const u32 gUnknown_8442838[] = INCBIN_U32("graphics/pokedex/unk_8442838.bin.lz"); -const u32 gUnknown_8442BC0[] = INCBIN_U32("graphics/pokedex/unk_8442BC0.bin.lz"); -const u32 gUnknown_8442EF8[] = INCBIN_U32("graphics/pokedex/unk_8442EF8.bin.lz"); -const u32 gUnknown_844318C[] = INCBIN_U32("graphics/pokedex/unk_844318C.bin.lz"); +const u16 gUnknown_8441A40[] = INCBIN_U16("graphics/pokedex/unk_8441A40.bin.lz"); +const u16 gUnknown_8441D54[] = INCBIN_U16("graphics/pokedex/unk_8441D54.bin.lz"); +const u16 gUnknown_8442004[] = INCBIN_U16("graphics/pokedex/unk_8442004.bin.lz"); +const u16 gUnknown_844223C[] = INCBIN_U16("graphics/pokedex/unk_844223C.bin.lz"); +const u16 gUnknown_84424E4[] = INCBIN_U16("graphics/pokedex/unk_84424E4.bin.lz"); +const u16 gUnknown_8442838[] = INCBIN_U16("graphics/pokedex/unk_8442838.bin.lz"); +const u16 gUnknown_8442BC0[] = INCBIN_U16("graphics/pokedex/unk_8442BC0.bin.lz"); +const u16 gUnknown_8442EF8[] = INCBIN_U16("graphics/pokedex/unk_8442EF8.bin.lz"); +const u16 gUnknown_844318C[] = INCBIN_U16("graphics/pokedex/unk_844318C.bin.lz"); const u16 gUnknown_8443420[] = INCBIN_U16("graphics/pokedex/unk_8443420.gbapal"); const u16 gUnknown_8443440[] = INCBIN_U16("graphics/pokedex/unk_8443440.gbapal"); const u16 gUnknown_8443460[] = INCBIN_U16("graphics/pokedex/unk_8443460.gbapal"); @@ -180,29 +189,622 @@ static const u8 gExpandedPlaceholder_PokedexDescription[] = _(""); #include "data/pokemon/pokedex_text.h" #include "data/pokemon/pokedex_entries.h" -extern const struct BgTemplate gUnknown_8451EBC[4]; -extern const struct WindowTemplate gUnknown_8451ECC[]; -extern const struct PokedexScreenData gUnknown_8451EE4; -extern const struct WindowTemplate gUnknown_8451F54; -extern const struct WindowTemplate gUnknown_8451F5C; -extern const struct WindowTemplate gUnknown_8451F64; -extern const struct ListMenuTemplate gUnknown_8452004; -extern const struct ListMenuTemplate gUnknown_84520BC; -extern const struct ScrollArrowsTemplate gUnknown_84520D4; -extern const struct ScrollArrowsTemplate gUnknown_84520E4; -extern const struct PokedexScreenWindowGfx gUnknown_84520F4[]; -extern const struct WindowTemplate gUnknown_845216C; -extern const struct ListMenuTemplate gUnknown_8452174; -extern const struct ListMenuWindowRect gUnknown_845218C; -extern const struct ScrollArrowsTemplate gUnknown_84521B4; -extern const struct WindowTemplate gUnknown_84521C4; -extern const struct WindowTemplate gUnknown_84521CC; -extern const u16 gUnknown_845228C[]; -extern const u8 (*const gUnknown_8452334[])[4]; -extern const u8 *const gDexCategoryNamePtrs[]; -extern const u8 gUnknown_8452388[][30]; -extern const struct ScrollArrowsTemplate gUnknown_84524B4; -extern const struct CursorStruct gUnknown_84524C4; +static const struct BgTemplate sUnknown_8451EBC[] = { + { + .bg = 0, + .charBaseIndex = 0, + .mapBaseIndex = 5, + .screenSize = 0, + .paletteMode = 0, + .priority = 0, + .baseTile = 0x0000 + }, + { + .bg = 1, + .charBaseIndex = 2, + .mapBaseIndex = 4, + .screenSize = 0, + .paletteMode = 0, + .priority = 1, + .baseTile = 0x0000 + }, + { + .bg = 2, + .charBaseIndex = 2, + .mapBaseIndex = 6, + .screenSize = 0, + .paletteMode = 0, + .priority = 2, + .baseTile = 0x0000 + }, + { + .bg = 3, + .charBaseIndex = 0, + .mapBaseIndex = 7, + .screenSize = 0, + .paletteMode = 0, + .priority = 3, + .baseTile = 0x0000 + }, +}; + +static const struct WindowTemplate sUnknown_8451ECC[] = { + { + .bg = 0, + .tilemapLeft = 0, + .tilemapTop = 0, + .width = 30, + .height = 2, + .paletteNum = 15, + .baseBlock = 0x03c4 + }, + { + .bg = 0, + .tilemapLeft = 0, + .tilemapTop = 18, + .width = 30, + .height = 2, + .paletteNum = 15, + .baseBlock = 0x0388 + }, + { + .bg = 255, + .tilemapLeft = 0, + .tilemapTop = 0, + .width = 0, + .height = 0, + .paletteNum = 0, + .baseBlock = 0x0000 + }, +}; + +static const struct PokedexScreenData sUnknown_8451EE4 = { + .field_10 = 1, + .field_14 = -1, + .field_15 = -1, + .field_16 = -1, + .field_18 = {-1, -1, -1, -1}, + .field_20 = {-1, -1, -1, -1}, + .field_24 = {-1, -1, -1, -1}, + .field_40 = -1, + .field_4A = {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, + .field_60 = -1, + .field_61 = -1, +}; + + +static const struct WindowTemplate sUnknown_8451F54 = { + .bg = 1, + .tilemapLeft = 1, + .tilemapTop = 2, + .width = 20, + .height = 16, + .paletteNum = 0, + .baseBlock = 0x0008 + }; + +static const struct WindowTemplate sUnknown_8451F5C = { + .bg = 1, + .tilemapLeft = 21, + .tilemapTop = 11, + .width = 8, + .height = 6, + .paletteNum = 1, + .baseBlock = 0x0148 + }; + +static const struct WindowTemplate sUnknown_8451F64 = { + .bg = 1, + .tilemapLeft = 21, + .tilemapTop = 2, + .width = 9, + .height = 9, + .paletteNum = 0, + .baseBlock = 0x0178 + }; + +static const struct ListMenuItem sUnknown_8451F6C[] = { + {gText_PokemonList, -3}, + {gText_NumericalMode, 9}, + {gText_PokemonHabitats, -3}, + {gText_DexCategory_GrasslandPkmn, 0}, + {gText_DexCategory_ForestPkmn, 1}, + {gText_DexCategory_WatersEdgePkmn, 2}, + {gText_DexCategory_SeaPkmn, 3}, + {gText_DexCategory_CavePkmn, 4}, + {gText_DexCategory_MountainPkmn, 5}, + {gText_DexCategory_RoughTerrainPkmn, 6}, + {gText_DexCategory_UrbanPkmn, 7}, + {gText_DexCategory_RarePkmn, 8}, + {gText_Search, -3}, + {gText_AToZMode, 10}, + {gText_TypeMode, 11}, + {gText_LightestMode, 12}, + {gText_SmallestMode, 13}, + {gText_PokedexOther, -3}, + {gText_ClosePokedex, -2}, +}; + +static const struct ListMenuTemplate sUnknown_8452004 = { + .items = sUnknown_8451F6C, + .moveCursorFunc = sub_8102EC0, + .itemPrintFunc = sub_8102F48, + .totalItems = NELEMS(sUnknown_8451F6C), + .maxShowed = 9, + .windowId = 0, + .header_X = 0, + .item_X = 12, + .cursor_X = 4, + .upText_Y = 2, + .cursorPal = 1, + .fillValue = 0, + .cursorShadowPal = 3, + .lettersSpacing = 1, + .itemVerticalPadding = 0, + .scrollMultiple = 0, + .fontId = 2, + .cursorKind = 0, +}; + +static const struct ListMenuItem sUnknown_845201C[] = { + {gText_PokemonList, -3}, + {gText_NumericalModeKanto, 9}, + {gText_NumericalModeNational, 14}, + {gText_PokemonHabitats, -3}, + {gText_DexCategory_GrasslandPkmn, 0}, + {gText_DexCategory_ForestPkmn, 1}, + {gText_DexCategory_WatersEdgePkmn, 2}, + {gText_DexCategory_SeaPkmn, 3}, + {gText_DexCategory_CavePkmn, 4}, + {gText_DexCategory_MountainPkmn, 5}, + {gText_DexCategory_RoughTerrainPkmn, 6}, + {gText_DexCategory_UrbanPkmn, 7}, + {gText_DexCategory_RarePkmn, 8}, + {gText_Search, -3}, + {gText_AToZMode, 10}, + {gText_TypeMode, 11}, + {gText_LightestMode, 12}, + {gText_SmallestMode, 13}, + {gText_PokedexOther, -3}, + {gText_ClosePokedex, -2}, +}; + +static const struct ListMenuTemplate sUnknown_84520BC = { + .items = sUnknown_845201C, + .moveCursorFunc = sub_8102EC0, + .itemPrintFunc = sub_8102F48, + .totalItems = NELEMS(sUnknown_845201C), + .maxShowed = 9, + .windowId = 0, + .header_X = 0, + .item_X = 12, + .cursor_X = 4, + .upText_Y = 2, + .cursorPal = 1, + .fillValue = 0, + .cursorShadowPal = 3, + .lettersSpacing = 1, + .itemVerticalPadding = 0, + .scrollMultiple = 0, + .fontId = 2, + .cursorKind = 0, +}; + +static const struct ScrollArrowsTemplate sUnknown_84520D4 = { + .firstArrowType = 2, + .firstX = 200, + .firstY = 19, + .secondArrowType = 3, + .secondX = 200, + .secondY = 141, + .fullyUpThreshold = 0, + .fullyDownThreshold = 10, + .tileTag = 2000, + .palTag = 0xFFFF, + .palNum = 1 +}; + +static const struct ScrollArrowsTemplate sUnknown_84520E4 = { + .firstArrowType = 2, + .firstX = 200, + .firstY = 19, + .secondArrowType = 3, + .secondX = 200, + .secondY = 141, + .fullyUpThreshold = 0, + .fullyDownThreshold = 11, + .tileTag = 2000, + .palTag = 0xFFFF, + .palNum = 1 +}; + + +static const struct PokedexScreenWindowGfx sUnknown_84520F4[] = { + {.map = gUnknown_84414BC, .pal = gUnknown_84434A0}, + {.map = gUnknown_844112C, .pal = gUnknown_8443480}, + {.map = gUnknown_8442838, .pal = gUnknown_8443580}, + {.map = gUnknown_8442004, .pal = gUnknown_8443520}, + {.map = gUnknown_84408E0, .pal = gUnknown_8443420}, + {.map = gUnknown_8441A40, .pal = gUnknown_84434E0}, + {.map = gUnknown_84424E4, .pal = gUnknown_8443560}, + {.map = gUnknown_8440BD8, .pal = gUnknown_8443440}, + {.map = gUnknown_8441D54, .pal = gUnknown_8443500}, + {.map = gUnknown_844223C, .pal = gUnknown_8443540}, + {.map = gUnknown_8E9C16C, .pal = gUnknown_8E9C14C}, + {.map = gUnknown_8442BC0, .pal = gUnknown_84435A0}, + {.map = gUnknown_8442EF8, .pal = gUnknown_84435C0}, + {.map = gUnknown_844318C, .pal = gUnknown_84435E0}, + {.map = gUnknown_844223C, .pal = gUnknown_8443540}, +}; + +static const struct WindowTemplate sUnknown_845216C = { + .bg = 1, + .tilemapLeft = 2, + .tilemapTop = 2, + .width = 23, + .height = 16, + .paletteNum = 0, + .baseBlock = 0x0008 +}; + +static const struct ListMenuTemplate sUnknown_8452174 = { + .items = sUnknown_8451F6C, + .moveCursorFunc = ListMenuDefaultCursorMoveFunc, + .itemPrintFunc = sub_8103A40, + .totalItems = 0, + .maxShowed = 9, + .windowId = 0, + .header_X = 0, + .item_X = 56, + .cursor_X = 4, + .upText_Y = 2, + .cursorPal = 1, + .fillValue = 0, + .cursorShadowPal = 3, + .lettersSpacing = 1, + .itemVerticalPadding = 0, + .scrollMultiple = 1, + .fontId = 2, + .cursorKind = 0, +}; + +static const struct ListMenuWindowRect sUnknown_845218C = { + .x = 0, + .y = 0, + .width = 5, + .height = 16, + .palNum = 0, +}; + +// Unused +static const u8 gUnknown_8452194[] = { + 0x05, 0x00, 0x02, 0x10, 0x01, 0x00, 0x00, 0x00, + 0x07, 0x00, 0x08, 0x10, 0x00, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x08, 0x10, 0x02, 0x00, 0x00, 0x00, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00 +}; + +static const struct ScrollArrowsTemplate sUnknown_84521B4 = { + .firstArrowType = 2, + .firstX = 200, + .firstY = 19, + .secondArrowType = 3, + .secondX = 200, + .secondY = 141, + .fullyUpThreshold = 0, + .fullyDownThreshold = 0, + .tileTag = 2000, + .palTag = 0xFFFF, + .palNum = 1, +}; + +static const struct WindowTemplate sUnknown_84521C4 = { + .bg = 2, + .tilemapLeft = 0, + .tilemapTop = 0, + .width = 8, + .height = 8, + .paletteNum = 0, + .baseBlock = 0x0000 +}; + +static const struct WindowTemplate sUnknown_84521CC = { + .bg = 1, + .tilemapLeft = 0, + .tilemapTop = 0, + .width = 8, + .height = 5, + .paletteNum = 0, + .baseBlock = 0x0000 +}; + +const struct WindowTemplate gUnknown_84521D4 = { + .bg = 1, + .tilemapLeft = 19, + .tilemapTop = 3, + .width = 8, + .height = 8, + .paletteNum = 9, + .baseBlock = 0x01a8 +}; + +const struct WindowTemplate gUnknown_84521DC = { + .bg = 1, + .tilemapLeft = 2, + .tilemapTop = 3, + .width = 13, + .height = 8, + .paletteNum = 0, + .baseBlock = 0x01e8 +}; + +const struct WindowTemplate gUnknown_84521E4 = { + .bg = 1, + .tilemapLeft = 0, + .tilemapTop = 11, + .width = 30, + .height = 7, + .paletteNum = 0, + .baseBlock = 0x0250 +}; + +const struct WindowTemplate gUnknown_84521EC = { + .bg = 2, + .tilemapLeft = 1, + .tilemapTop = 2, + .width = 4, + .height = 4, + .paletteNum = 10, + .baseBlock = 0x01a8 +}; + +const struct WindowTemplate gUnknown_84521F4 = { + .bg = 2, + .tilemapLeft = 5, + .tilemapTop = 2, + .width = 8, + .height = 3, + .paletteNum = 0, + .baseBlock = 0x01b8 +}; + +const struct WindowTemplate gUnknown_84521FC = { + .bg = 2, + .tilemapLeft = 2, + .tilemapTop = 7, + .width = 10, + .height = 2, + .paletteNum = 0, + .baseBlock = 0x01d0 +}; + +const struct WindowTemplate gUnknown_8452204 = { + .bg = 2, + .tilemapLeft = 18, + .tilemapTop = 2, + .width = 10, + .height = 2, + .paletteNum = 0, + .baseBlock = 0x01e4 +}; + +const struct WindowTemplate gUnknown_845220C = { + .bg = 2, + .tilemapLeft = 5, + .tilemapTop = 5, + .width = 8, + .height = 2, + .paletteNum = 11, + .baseBlock = 0x01f8 +}; + +const struct WindowTemplate gUnknown_8452214 = { + .bg = 2, + .tilemapLeft = 17, + .tilemapTop = 4, + .width = 12, + .height = 9, + .paletteNum = 0, + .baseBlock = 0x0208 +}; + +static const struct WindowTemplate sUnknown_845221C = { + .bg = 2, + .tilemapLeft = 13, + .tilemapTop = 4, + .width = 4, + .height = 3, + .paletteNum = 0, + .baseBlock = 0x0274 +}; + +static const struct WindowTemplate sUnknown_8452224 = { + .bg = 2, + .tilemapLeft = 13, + .tilemapTop = 7, + .width = 4, + .height = 3, + .paletteNum = 0, + .baseBlock = 0x0280 +}; + +static const struct WindowTemplate sUnknown_845222C = { + .bg = 2, + .tilemapLeft = 13, + .tilemapTop = 10, + .width = 4, + .height = 3, + .paletteNum = 0, + .baseBlock = 0x028c +}; + +static const struct WindowTemplate sUnknown_8452234 = { + .bg = 2, + .tilemapLeft = 13, + .tilemapTop = 13, + .width = 4, + .height = 4, + .paletteNum = 0, + .baseBlock = 0x0298 +}; + +static const struct WindowTemplate sUnknown_845223C = { + .bg = 2, + .tilemapLeft = 17, + .tilemapTop = 13, + .width = 4, + .height = 4, + .paletteNum = 0, + .baseBlock = 0x02a8 +}; + +static const struct WindowTemplate sUnknown_8452244 = { + .bg = 2, + .tilemapLeft = 21, + .tilemapTop = 13, + .width = 4, + .height = 4, + .paletteNum = 0, + .baseBlock = 0x02b8 +}; + +static const struct WindowTemplate sUnknown_845224C = { + .bg = 2, + .tilemapLeft = 25, + .tilemapTop = 13, + .width = 4, + .height = 4, + .paletteNum = 0, + .baseBlock = 0x02c8 +}; + +struct { + const struct WindowTemplate * window; + const u32 * tilemap; +} const gUnknown_8452254[] = { + {&sUnknown_845221C, gUnknown_8443910}, + {&sUnknown_8452224, gUnknown_8443988}, + {&sUnknown_845222C, gUnknown_84439FC}, + {&sUnknown_8452234, gUnknown_8443A78}, + {&sUnknown_845223C, gUnknown_8443AF8}, + {&sUnknown_8452244, gUnknown_8443BB0}, + {&sUnknown_845224C, gUnknown_8443C54}, +}; + +static const u16 sUnknown_845228C[] = INCBIN_U16("graphics/pokedex/unk_845228C.bin"); + +static const u8 sUnknown_845230C[][4] = { + {0x0b, 0x03, 0x0b, 0x0b}, +}; + +static const u8 sUnknown_8452310[][4] = { + {0x03, 0x03, 0x0b, 0x03}, + {0x12, 0x09, 0x0a, 0x0b}, +}; + +static const u8 sUnknown_8452318[][4] = { + {0x01, 0x02, 0x09, 0x02}, + {0x0b, 0x09, 0x03, 0x0b}, + {0x15, 0x03, 0x15, 0x0b} +}; + +static const u8 sUnknown_8452324[][4] = { + {0x00, 0x02, 0x06, 0x03}, + {0x07, 0x0a, 0x00, 0x0c}, + {0x0f, 0x0a, 0x16, 0x0b}, + {0x16, 0x02, 0x0f, 0x04} +}; + +const u8 (*const gUnknown_8452334[])[4] = { + sUnknown_845230C, + sUnknown_8452310, + sUnknown_8452318, + sUnknown_8452324, +}; + +static const u8 * const sDexCategoryNamePtrs[] = { + gText_DexCategory_GrasslandPkmn, + gText_DexCategory_ForestPkmn, + gText_DexCategory_WatersEdgePkmn, + gText_DexCategory_SeaPkmn, + gText_DexCategory_CavePkmn, + gText_DexCategory_MountainPkmn, + gText_DexCategory_RoughTerrainPkmn, + gText_DexCategory_UrbanPkmn, + gText_DexCategory_RarePkmn, +}; + +const u16 gUnknown_8452368[] = INCBIN_U16("graphics/pokedex/unk_8452368.gbapal"); + +static const u8 sUnknown_8452388[][30] = { + { + 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, + 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, + 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e + }, { + 0x05, 0x0b, 0x11, 0x17, 0x1d, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, + 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, + 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e + }, { + 0x02, 0x05, 0x08, 0x0b, 0x0e, 0x11, 0x14, 0x17, 0x1a, 0x1d, + 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, + 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e + }, { + 0x02, 0x03, 0x05, 0x07, 0x09, 0x0b, 0x0d, 0x0f, 0x11, 0x13, + 0x15, 0x17, 0x19, 0x1b, 0x1d, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, + 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e + }, { + 0x02, 0x04, 0x05, 0x07, 0x08, 0x0a, 0x0b, 0x0d, 0x0e, 0x10, + 0x11, 0x13, 0x14, 0x16, 0x17, 0x19, 0x1a, 0x1c, 0x1d, 0x1e, + 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e + }, { + 0x01, 0x02, 0x03, 0x04, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, + 0x0d, 0x0f, 0x10, 0x11, 0x13, 0x14, 0x15, 0x17, 0x18, 0x19, + 0x1b, 0x1c, 0x1d, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e + }, { + 0x01, 0x02, 0x03, 0x04, 0x05, 0x07, 0x08, 0x09, 0x0a, 0x0b, + 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x14, 0x15, 0x16, + 0x17, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1e, 0x1e, 0x1e + }, { + 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0b, + 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x15, 0x16, + 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1e, 0x1e + }, { + 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, + 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, + 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e + }, { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, + 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, + 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d + }, +}; + +static const struct ScrollArrowsTemplate sUnknown_84524B4 = { + .firstArrowType = 0, + .firstX = 16, + .firstY = 80, + .secondArrowType = 1, + .secondX = 224, + .secondY = 80, + .fullyUpThreshold = 0, + .fullyDownThreshold = 0, + .tileTag = 2000, + .palTag = 0xFFFF, + .palNum = 1, +}; + +const struct CursorStruct gUnknown_84524C4 = { + .left = 0, + .top = 160, + .rowWidth = 64, + .rowHeight = 40, + .tileTag = 2002, + .palTag = 0xFFFF, + .palNum = 4, +}; + +#include "data/pokemon/pokedex_categories.h" void sub_81024C0(void) { @@ -239,7 +841,7 @@ void sub_810250C(void) ResetTasks(); ScanlineEffect_Stop(); ResetBgsAndClearDma3BusyFlags(TRUE); - InitBgsFromTemplates(0, gUnknown_8451EBC, NELEMS(gUnknown_8451EBC)); + InitBgsFromTemplates(0, sUnknown_8451EBC, NELEMS(sUnknown_8451EBC)); SetBgTilemapBuffer(3, (u16*)Alloc(BG_SCREEN_SIZE)); SetBgTilemapBuffer(2, (u16*)Alloc(BG_SCREEN_SIZE)); SetBgTilemapBuffer(1, (u16*)Alloc(BG_SCREEN_SIZE)); @@ -248,14 +850,14 @@ void sub_810250C(void) DecompressAndLoadBgGfxUsingHeap(3, (void*)gUnknown_84403AC, BG_SCREEN_SIZE, 0, 0); else DecompressAndLoadBgGfxUsingHeap(3, (void*)gUnknown_8440274, BG_SCREEN_SIZE, 0, 0); - InitWindows(gUnknown_8451ECC); + InitWindows(sUnknown_8451ECC); DeactivateAllTextPrinters(); m4aSoundVSyncOn(); SetVBlankCallback(sub_81024C0); EnableInterrupts(INTR_FLAG_VBLANK); taskId = CreateTask(sub_810287C, 0); gUnknown_203ACF0 = Alloc(sizeof(struct PokedexScreenData)); - *gUnknown_203ACF0 = gUnknown_8451EE4; + *gUnknown_203ACF0 = sUnknown_8451EE4; gUnknown_203ACF0->field_00 = taskId; gUnknown_203ACF0->field_44 = Alloc(NATIONAL_DEX_COUNT * sizeof(struct ListMenuItem)); gUnknown_203ACF0->field_6A = sub_8104BBC(0, 1); @@ -381,9 +983,9 @@ static void sub_810287C(u8 taskId) case 5: ListMenuGetScrollAndRow(gUnknown_203ACF0->field_17, &gUnknown_203ACF0->field_62, NULL); if (IsNationalPokedexEnabled()) - gUnknown_203ACF0->field_60 = AddScrollIndicatorArrowPair(&gUnknown_84520E4, &gUnknown_203ACF0->field_62); + gUnknown_203ACF0->field_60 = AddScrollIndicatorArrowPair(&sUnknown_84520E4, &gUnknown_203ACF0->field_62); else - gUnknown_203ACF0->field_60 = AddScrollIndicatorArrowPair(&gUnknown_84520D4, &gUnknown_203ACF0->field_62); + gUnknown_203ACF0->field_60 = AddScrollIndicatorArrowPair(&sUnknown_84520D4, &gUnknown_203ACF0->field_62); gUnknown_203ACF0->field_01 = 6; break; case 6: @@ -478,41 +1080,41 @@ static void sub_8102C28(void) FillBgTilemapBufferRect(3, 0x00E, 0, 0, 30, 20, 0x00); FillBgTilemapBufferRect(2, 0x000, 0, 0, 30, 20, 0x11); FillBgTilemapBufferRect(1, 0x000, 0, 0, 30, 20, 0x11); - gUnknown_203ACF0->field_14 = AddWindow(&gUnknown_8451F54); - gUnknown_203ACF0->field_15 = AddWindow(&gUnknown_8451F5C); - gUnknown_203ACF0->field_16 = AddWindow(&gUnknown_8451F64); + gUnknown_203ACF0->field_14 = AddWindow(&sUnknown_8451F54); + gUnknown_203ACF0->field_15 = AddWindow(&sUnknown_8451F5C); + gUnknown_203ACF0->field_16 = AddWindow(&sUnknown_8451F64); if (IsNationalPokedexEnabled()) { - listMenuTemplate = gUnknown_84520BC; + listMenuTemplate = sUnknown_84520BC; listMenuTemplate.windowId = gUnknown_203ACF0->field_14; gUnknown_203ACF0->field_17 = ListMenuInit(&listMenuTemplate, gUnknown_203ACF0->field_12, gUnknown_203ACF0->field_10); FillWindowPixelBuffer(gUnknown_203ACF0->field_16, PIXEL_FILL(0)); - sub_81047C8(gUnknown_203ACF0->field_16, 0, gUnknown_8415DC4, 0, 2, 0); - sub_81047C8(gUnknown_203ACF0->field_16, 0, gUnknown_8415DD1, 8, 13, 0); + sub_81047C8(gUnknown_203ACF0->field_16, 0, gText_Seen, 0, 2, 0); + sub_81047C8(gUnknown_203ACF0->field_16, 0, gText_Kanto, 8, 13, 0); sub_810491C(gUnknown_203ACF0->field_16, 0, gUnknown_203ACF0->field_66, 52, 13, 2); - sub_81047C8(gUnknown_203ACF0->field_16, 0, gUnknown_8415DD7, 8, 24, 0); + sub_81047C8(gUnknown_203ACF0->field_16, 0, gText_National, 8, 24, 0); sub_810491C(gUnknown_203ACF0->field_16, 0, gUnknown_203ACF0->field_6A, 52, 24, 2); - sub_81047C8(gUnknown_203ACF0->field_16, 0, gUnknown_8415DCA, 0, 37, 0); - sub_81047C8(gUnknown_203ACF0->field_16, 0, gUnknown_8415DD1, 8, 48, 0); + sub_81047C8(gUnknown_203ACF0->field_16, 0, gText_Owned, 0, 37, 0); + sub_81047C8(gUnknown_203ACF0->field_16, 0, gText_Kanto, 8, 48, 0); sub_810491C(gUnknown_203ACF0->field_16, 0, gUnknown_203ACF0->field_68, 52, 48, 2); - sub_81047C8(gUnknown_203ACF0->field_16, 0, gUnknown_8415DD7, 8, 59, 0); + sub_81047C8(gUnknown_203ACF0->field_16, 0, gText_National, 8, 59, 0); sub_810491C(gUnknown_203ACF0->field_16, 0, gUnknown_203ACF0->field_6C, 52, 59, 2); } else { - listMenuTemplate = gUnknown_8452004; + listMenuTemplate = sUnknown_8452004; listMenuTemplate.windowId = gUnknown_203ACF0->field_14; gUnknown_203ACF0->field_17 = ListMenuInit(&listMenuTemplate, gUnknown_203ACF0->field_12, gUnknown_203ACF0->field_10); FillWindowPixelBuffer(gUnknown_203ACF0->field_16, PIXEL_FILL(0)); - sub_81047C8(gUnknown_203ACF0->field_16, 1, gUnknown_8415DC4, 0, 9, 0); + sub_81047C8(gUnknown_203ACF0->field_16, 1, gText_Seen, 0, 9, 0); sub_810491C(gUnknown_203ACF0->field_16, 1, gUnknown_203ACF0->field_66, 32, 21, 2); - sub_81047C8(gUnknown_203ACF0->field_16, 1, gUnknown_8415DCA, 0, 37, 0); + sub_81047C8(gUnknown_203ACF0->field_16, 1, gText_Owned, 0, 37, 0); sub_810491C(gUnknown_203ACF0->field_16, 1, gUnknown_203ACF0->field_68, 32, 49, 2); } FillWindowPixelBuffer(0, PIXEL_FILL(15)); - sub_8106E78(gUnknown_8415D9C, 1); + sub_8106E78(gText_PokedexTableOfContents, 1); FillWindowPixelBuffer(1, PIXEL_FILL(15)); - sub_8104C2C(gUnknown_8415DB8); + sub_8104C2C(gText_PickOK); PutWindowTilemap(0); CopyWindowToVram(0, COPYWIN_GFX); PutWindowTilemap(1); @@ -521,7 +1123,7 @@ static void sub_8102C28(void) CopyWindowToVram(gUnknown_203ACF0->field_16, COPYWIN_GFX); } -void sub_8102EC0(s32 itemIndex, bool8 onInit, struct ListMenu *list) +static void sub_8102EC0(s32 itemIndex, bool8 onInit, struct ListMenu *list) { if (!onInit) PlaySE(SE_SELECT); @@ -532,16 +1134,17 @@ void sub_8102EC0(s32 itemIndex, bool8 onInit, struct ListMenu *list) } else { - CopyToWindowPixelBuffer(gUnknown_203ACF0->field_15, gUnknown_84520F4[itemIndex].map, 0x000, 0x000); - LoadPalette(gUnknown_84520F4[itemIndex].pal, 0x10, 0x20); + CopyToWindowPixelBuffer(gUnknown_203ACF0->field_15, sUnknown_84520F4[itemIndex].map, 0x000, 0x000); + LoadPalette(sUnknown_84520F4[itemIndex].pal, 0x10, 0x20); } PutWindowTilemap(gUnknown_203ACF0->field_15); CopyWindowToVram(gUnknown_203ACF0->field_15, COPYWIN_GFX); } -void sub_8102F48(u8 windowId, u32 itemId, u8 y) +static void sub_8102F48(u8 windowId, s32 itemId, u8 y) { - if (itemId > 8 || gUnknown_203ACF0->field_08 & (1 << itemId)) + u32 itemId_ = itemId; + if (itemId_ > 8 || gUnknown_203ACF0->field_08 & (1 << itemId_)) ListMenuOverrideSetColors(1, 0, 3); else ListMenuOverrideSetColors(10, 0, 11); @@ -619,14 +1222,14 @@ static void sub_810317C(void) struct ListMenuTemplate template; FillBgTilemapBufferRect(3, 0x00E, 0, 0, 30, 20, 0x00); FillBgTilemapBufferRect(1, 0x000, 0, 0, 32, 32, 0x11); - gUnknown_203ACF0->field_40 = AddWindow(&gUnknown_845216C); - template = gUnknown_8452174; + gUnknown_203ACF0->field_40 = AddWindow(&sUnknown_845216C); + template = sUnknown_8452174; template.items = gUnknown_203ACF0->field_44; template.windowId = gUnknown_203ACF0->field_40; template.totalItems = gUnknown_203ACF0->field_48; sub_8103924(&template, gUnknown_203ACF0->field_42); FillWindowPixelBuffer(0, PIXEL_FILL(15)); - sub_8106E78(gUnknown_8415F3D, 1); + sub_8106E78(gText_PokemonListNoColor, 1); FillWindowPixelBuffer(1, PIXEL_FILL(15)); sub_8104C2C(gText_PickOKExit); CopyWindowToVram(0, COPYWIN_GFX); @@ -705,14 +1308,14 @@ static void sub_810345C(void) struct ListMenuTemplate template; FillBgTilemapBufferRect(3, 0x00E, 0, 0, 30, 20, 0x00); FillBgTilemapBufferRect(1, 0x000, 0, 0, 32, 32, 0x11); - gUnknown_203ACF0->field_40 = AddWindow(&gUnknown_845216C); - template = gUnknown_8452174; + gUnknown_203ACF0->field_40 = AddWindow(&sUnknown_845216C); + template = sUnknown_8452174; template.items = gUnknown_203ACF0->field_44; template.windowId = gUnknown_203ACF0->field_40; template.totalItems = gUnknown_203ACF0->field_48; sub_8103924(&template, gUnknown_203ACF0->field_42); FillWindowPixelBuffer(0, PIXEL_FILL(15)); - sub_8106E78(gUnknown_8415F4A, 1); + sub_8106E78(gText_SearchNoColor, 1); FillWindowPixelBuffer(1, PIXEL_FILL(15)); sub_8104C2C(gText_PickOKExit); CopyWindowToVram(0, COPYWIN_GFX); @@ -744,7 +1347,7 @@ static u16 sub_8103518(u8 a0) } else { - gUnknown_203ACF0->field_44[i].label = gUnknown_8415F66; + gUnknown_203ACF0->field_44[i].label = gText_5Dashes; } gUnknown_203ACF0->field_44[i].index = (caught << 17) + (seen << 16) + NationalPokedexNumToSpecies(ndex_num); } @@ -830,7 +1433,7 @@ static u16 sub_8103518(u8 a0) } else { - gUnknown_203ACF0->field_44[i].label = gUnknown_8415F66; + gUnknown_203ACF0->field_44[i].label = gText_5Dashes; } gUnknown_203ACF0->field_44[i].index = (caught << 17) + (seen << 16) + NationalPokedexNumToSpecies(ndex_num); } @@ -845,16 +1448,16 @@ static void sub_8103924(const struct ListMenuTemplate * template, u8 a1) { default: case 0: - gUnknown_203ACF0->field_41 = ListMenuInitInRect(template, &gUnknown_845218C, gUnknown_203ACF0->field_36, gUnknown_203ACF0->field_34); + gUnknown_203ACF0->field_41 = ListMenuInitInRect(template, &sUnknown_845218C, gUnknown_203ACF0->field_36, gUnknown_203ACF0->field_34); break; case 1: case 2: case 3: case 4: - gUnknown_203ACF0->field_41 = ListMenuInitInRect(template, &gUnknown_845218C, gUnknown_203ACF0->field_3A, gUnknown_203ACF0->field_38); + gUnknown_203ACF0->field_41 = ListMenuInitInRect(template, &sUnknown_845218C, gUnknown_203ACF0->field_3A, gUnknown_203ACF0->field_38); break; case 5: - gUnknown_203ACF0->field_41 = ListMenuInitInRect(template, &gUnknown_845218C, gUnknown_203ACF0->field_3E, gUnknown_203ACF0->field_3C); + gUnknown_203ACF0->field_41 = ListMenuInitInRect(template, &sUnknown_845218C, gUnknown_203ACF0->field_3E, gUnknown_203ACF0->field_3C); break; } } @@ -881,9 +1484,9 @@ static void sub_8103988(u8 a0) static u8 sub_81039F0(void) { - struct ScrollArrowsTemplate template = gUnknown_84521B4; - if (gUnknown_203ACF0->field_48 > gUnknown_8452174.maxShowed) - template.fullyDownThreshold = gUnknown_203ACF0->field_48 - gUnknown_8452174.maxShowed; + struct ScrollArrowsTemplate template = sUnknown_84521B4; + if (gUnknown_203ACF0->field_48 > sUnknown_8452174.maxShowed) + template.fullyDownThreshold = gUnknown_203ACF0->field_48 - sUnknown_8452174.maxShowed; else template.fullyDownThreshold = 0; return AddScrollIndicatorArrowPair(&template, &gUnknown_203ACF0->field_62); @@ -896,7 +1499,7 @@ struct PokedexListItem bool8 caught:1; }; -void sub_8103A40(u8 windowId, s32 itemId, u8 y) +static void sub_8103A40(u8 windowId, s32 itemId, u8 y) { u32 itemId_ = itemId; u16 species = itemId_; @@ -1222,7 +1825,7 @@ static void sub_8103AC8(u8 taskId) static u8 sub_8104234(void) { - struct ScrollArrowsTemplate template = gUnknown_84524B4; + struct ScrollArrowsTemplate template = sUnknown_84524B4; template.fullyUpThreshold = gUnknown_203ACF0->field_29; template.fullyDownThreshold = gUnknown_203ACF0->field_2A - 1; gUnknown_203ACF0->field_62 = gUnknown_203ACF0->field_2B; @@ -1564,7 +2167,7 @@ void sub_81049FC(u8 windowId, u16 species, u16 paletteOffset) void sub_8104A34(u8 windowId, u8 fontId, u16 species, u8 x, u8 y) { u16 dexNum = SpeciesToNationalPokedexNum(species); - sub_81047C8(windowId, fontId, gUnknown_8415FFF, x, y, 0); + sub_81047C8(windowId, fontId, gText_PokedexNo, x, y, 0); sub_8104880(windowId, fontId, dexNum, x + 9, y, 0); } @@ -1649,10 +2252,10 @@ bool8 sub_8104C64(u16 a0, u8 a1, u8 a2) { struct WindowTemplate template; a2--; - CopyToBgTilemapBufferRect_ChangePalette(3, gUnknown_845228C, gUnknown_8452334[a2][a1][0], gUnknown_8452334[a2][a1][1], 8, 8, a1 + 5); + CopyToBgTilemapBufferRect_ChangePalette(3, sUnknown_845228C, gUnknown_8452334[a2][a1][0], gUnknown_8452334[a2][a1][1], 8, 8, a1 + 5); if (gUnknown_203ACF0->field_20[a1] == 0xFF) { - template = gUnknown_84521C4; + template = sUnknown_84521C4; template.tilemapLeft = gUnknown_8452334[a2][a1][0]; template.tilemapTop = gUnknown_8452334[a2][a1][1]; template.paletteNum = a1 + 1; @@ -1670,7 +2273,7 @@ bool8 sub_8104C64(u16 a0, u8 a1, u8 a2) { if (a0 != SPECIES_NONE) { - template = gUnknown_84521CC; + template = sUnknown_84521CC; template.tilemapLeft = gUnknown_8452334[a2][a1][2]; template.tilemapTop = gUnknown_8452334[a2][a1][3]; template.baseBlock = a1 * 40 + 0x108; @@ -1703,7 +2306,7 @@ void sub_8104E90(void) void sub_8104EC0(u8 unused, u16 a1, u16 a2, u8 unused2, u8 unused3) { u8 buffer[30]; - u8 *ptr = StringCopy(buffer, gUnknown_8416002); + u8 *ptr = StringCopy(buffer, gText_Page); ptr = ConvertIntToDecimalStringN(ptr, a1, STR_CONV_MODE_RIGHT_ALIGN, 2); *ptr++ = CHAR_SLASH; ptr = ConvertIntToDecimalStringN(ptr, a2, STR_CONV_MODE_RIGHT_ALIGN, 2); @@ -1719,17 +2322,17 @@ bool8 sub_8104F0C(bool8 a0) FillWindowPixelBuffer(0, PIXEL_FILL(15)); if (a0) { - sub_8106E78(gDexCategoryNamePtrs[gUnknown_203ACF0->field_28], 1); + sub_8106E78(sDexCategoryNamePtrs[gUnknown_203ACF0->field_28], 1); } else { - sub_8106E78(gDexCategoryNamePtrs[gUnknown_203ACF0->field_28], 0); + sub_8106E78(sDexCategoryNamePtrs[gUnknown_203ACF0->field_28], 0); sub_8104EC0(0, sub_8106AF8(gUnknown_203ACF0->field_2B), sub_8106AF8(gUnknown_203ACF0->field_2A - 1), 160, 2); } CopyWindowToVram(0, COPYWIN_GFX); FillWindowPixelBuffer(1, PIXEL_FILL(15)); if (!a0) - sub_8104C2C(gUnknown_8415F6C); + sub_8104C2C(gText_PickFlipPageCheckCancel); CopyWindowToVram(1, COPYWIN_GFX); if (gUnknown_203ACF0->field_18[0] != 0xFFFF) sub_8104C64(gUnknown_203ACF0->field_18[0], 0, gUnknown_203ACF0->field_2C); @@ -1824,7 +2427,7 @@ bool8 sub_81051F0(u8 a0) u16 *sp0C = gUnknown_203ACF0->field_5C + 0x000; for (i = 0; i < 30; i++) { - r4 = gUnknown_8452388[a0][i]; + r4 = sUnknown_8452388[a0][i]; if (r4 == 30) { sub_81051D0(0x000, bg1buff, i); diff --git a/src/strings.c b/src/strings.c index c2c066268..24ab271f4 100644 --- a/src/strings.c +++ b/src/strings.c @@ -52,13 +52,13 @@ ALIGNED(4) const u8 gText_UPDOWNPick_ABUTTONBBUTTONCancel[] = _("{DPAD_UPDOWN}PI ALIGNED(4) const u8 gText_ABUTTONExit[] = _("{A_BUTTON}EXIT"); const u8 gText_Boy[] = _("BOY"); const u8 gText_Girl[] = _("GIRL"); -const u8 gUnknown_8415D9C[] = _("POKéDEX TABLE OF CONTENTS"); -const u8 gUnknown_8415DB8[] = _("{DPAD_UPDOWN}PICK {A_BUTTON}OK"); -const u8 gUnknown_8415DC4[] = _("Seen:"); -const u8 gUnknown_8415DCA[] = _("Owned:"); -const u8 gUnknown_8415DD1[] = _("KANTO"); -const u8 gUnknown_8415DD7[] = _("NATIONAL"); -const u8 gUnknown_8415DE0[] = _("{COLOR WHITE2}{SHADOW LIGHT_BLUE}POKéMON HABITATS"); +const u8 gText_PokedexTableOfContents[] = _("POKéDEX TABLE OF CONTENTS"); +const u8 gText_PickOK[] = _("{DPAD_UPDOWN}PICK {A_BUTTON}OK"); +const u8 gText_Seen[] = _("Seen:"); +const u8 gText_Owned[] = _("Owned:"); +const u8 gText_Kanto[] = _("KANTO"); +const u8 gText_National[] = _("NATIONAL"); +const u8 gText_PokemonHabitats[] = _("{COLOR WHITE2}{SHADOW LIGHT_BLUE}POKéMON HABITATS"); const u8 gText_DexCategory_GrasslandPkmn[] = _("Grassland POKéMON"); const u8 gText_DexCategory_ForestPkmn[] = _("Forest POKéMON"); const u8 gText_DexCategory_WatersEdgePkmn[] = _("Water's-edge POKéMON"); @@ -68,38 +68,38 @@ const u8 gText_DexCategory_MountainPkmn[] = _("Mountain POKéMON"); const u8 gText_DexCategory_RoughTerrainPkmn[] = _("Rough-terrain POKéMON"); const u8 gText_DexCategory_UrbanPkmn[] = _("Urban POKéMON"); const u8 gText_DexCategory_RarePkmn[] = _("Rare POKéMON"); -const u8 gUnknown_8415E88[] = _("{COLOR WHITE2}{SHADOW LIGHT_BLUE}SEARCH"); -const u8 gUnknown_8415E95[] = _("NUMERICAL MODE"); -const u8 gUnknown_8415EA4[] = _("A TO Z MODE"); -const u8 gUnknown_8415EB0[] = _("{COLOR WHITE2}{SHADOW LIGHT_BLUE}OTHER"); -const u8 gUnknown_8415EBC[] = _("ずかんの つかいかた"); -const u8 gUnknown_8415EC7[] = _("CLOSE POKéDEX"); -const u8 gUnknown_8415ED5[] = _("TYPE MODE"); -const u8 gUnknown_8415EDF[] = _("LIGHTEST MODE"); -const u8 gUnknown_8415EED[] = _("SMALLEST MODE"); -const u8 gUnknown_8415EFB[] = _("{COLOR WHITE2}{SHADOW LIGHT_BLUE}POKéMON LIST"); -const u8 gUnknown_8415F0E[] = _("NUMERICAL MODE: KANTO"); -const u8 gUnknown_8415F24[] = _("NUMERICAL MODE: NATIONAL"); -const u8 gUnknown_8415F3D[] = _("POKéMON LIST"); -const u8 gUnknown_8415F4A[] = _("SEARCH"); +const u8 gText_Search[] = _("{COLOR WHITE2}{SHADOW LIGHT_BLUE}SEARCH"); +const u8 gText_NumericalMode[] = _("NUMERICAL MODE"); +const u8 gText_AToZMode[] = _("A TO Z MODE"); +const u8 gText_PokedexOther[] = _("{COLOR WHITE2}{SHADOW LIGHT_BLUE}OTHER"); +const u8 gTextJP_HowToUsePokedex[] = _("ずかんの つかいかた"); +const u8 gText_ClosePokedex[] = _("CLOSE POKéDEX"); +const u8 gText_TypeMode[] = _("TYPE MODE"); +const u8 gText_LightestMode[] = _("LIGHTEST MODE"); +const u8 gText_SmallestMode[] = _("SMALLEST MODE"); +const u8 gText_PokemonList[] = _("{COLOR WHITE2}{SHADOW LIGHT_BLUE}POKéMON LIST"); +const u8 gText_NumericalModeKanto[] = _("NUMERICAL MODE: KANTO"); +const u8 gText_NumericalModeNational[] = _("NUMERICAL MODE: NATIONAL"); +const u8 gText_PokemonListNoColor[] = _("POKéMON LIST"); +const u8 gText_SearchNoColor[] = _("SEARCH"); const u8 gText_PickOKExit[] = _("{DPAD_UPDOWN}PICK {A_BUTTON}OK {B_BUTTON}CANCEL"); -const u8 gUnknown_8415F66[] = _("-----"); -const u8 gUnknown_8415F6C[] = _("{DPAD_LEFTRIGHT}PICK{PLUS}FLIP PAGE {A_BUTTON}CHECK {B_BUTTON}CANCEL"); -const u8 gUnknown_8415F8F[] = _(" POKéMON"); -const u8 gUnknown_8415F98[] = _("HT"); -const u8 gUnknown_8415F9B[] = _("WT"); -const u8 gUnknown_8415F9E[] = _("”"); -const u8 gUnknown_8415FA0[] = _("lbs."); -const u8 gUnknown_8415FA5[] = _("ポケモンデ-タ"); -const u8 gUnknown_8415FAD[] = _("{START_BUTTON}CRY"); -const u8 gUnknown_8415FB3[] = _("{A_BUTTON}NEXT DATA {B_BUTTON}CANCEL"); -const u8 gUnknown_8415FC8[] = _("{A_BUTTON}NEXT"); -const u8 gUnknown_8415FCF[] = _("{A_BUTTON}CANCEL {B_BUTTON}PREVIOUS DATA"); -const u8 gUnknown_8415FE8[] = _("AREA"); -const u8 gUnknown_8415FED[] = _("SIZE"); -const u8 gUnknown_8415FF2[] = _("AREA UNKNOWN"); -const u8 gUnknown_8415FFF[] = _("{NO}"); -const u8 gUnknown_8416002[] = _("PAGE"); +const u8 gText_5Dashes[] = _("-----"); +const u8 gText_PickFlipPageCheckCancel[] = _("{DPAD_LEFTRIGHT}PICK{PLUS}FLIP PAGE {A_BUTTON}CHECK {B_BUTTON}CANCEL"); +const u8 gText_PokedexPokemon[] = _(" POKéMON"); +const u8 gText_HT[] = _("HT"); +const u8 gText_WT[] = _("WT"); +const u8 gText_PokedexQuotationMark[] = _("”"); // Unused +const u8 gText_Lbs[] = _("lbs."); +const u8 gTextJP_PokemonData[] = _("ポケモンデ-タ"); +const u8 gText_Cry[] = _("{START_BUTTON}CRY"); +const u8 gText_NextDataCancel[] = _("{A_BUTTON}NEXT DATA {B_BUTTON}CANCEL"); +const u8 gText_Next[] = _("{A_BUTTON}NEXT"); +const u8 gText_CancelPreviousData[] = _("{A_BUTTON}CANCEL {B_BUTTON}PREVIOUS DATA"); +const u8 gText_Area[] = _("AREA"); +const u8 gText_Size[] = _("SIZE"); +const u8 gText_AreaUnknown[] = _("AREA UNKNOWN"); +const u8 gText_PokedexNo[] = _("{NO}"); +const u8 gText_Page[] = _("PAGE"); ALIGNED(4) const u8 gText_WelcomeToHOF[] = _("Welcome to the HALL OF FAME!"); ALIGNED(4) const u8 gUnknown_8416028[] = _("みつけた ポケモン {STR_VAR_1}!\nつかまえた ポケモン {STR_VAR_2}!\pオダマキはかせの\nポケモンずかん ひょうか!\pオダマキ“どれどれ\p"); ALIGNED(4) const u8 gUnknown_8416068[] = _("ここまでの レポ-トを かきしるしています!\nでんげんを きらないでください"); |