diff --git a/pokeemerald-tools/gen-new-pokedex.py b/pokeemerald-tools/gen-new-pokedex.py index 1b423fafad..535801ba94 100644 --- a/pokeemerald-tools/gen-new-pokedex.py +++ b/pokeemerald-tools/gen-new-pokedex.py @@ -4,6 +4,7 @@ import openpyxl as pyxl +from openpyxl.utils import get_column_letter from openpyxl.workbook import Workbook from openpyxl import load_workbook @@ -17,7 +18,16 @@ National = "NATIONAL" #SpeciesIndex = 1573 #based on mega_glimmora being 1572 SpeciesIndex = 0 #based on making new species.h -with open("test_pokedex.h", WriteOrAdd) as file: +#Print high level information about datafile being accessed +if Debug: + print(f"First row for species {PkmnDataFile.min_row}") + print(f"Last row for species {PkmnDataFile.max_row}") + print(f"First column of species-data ") + print(f"Last column of species-data ") + print(f"First column of tutor-data #{PkmnDataFile.min_column}, Letter:{get_column_letter(PkmnDataFile.min_column)}") + print(f"Last column of tutor-data #{PkmnDataFile.max_column}, Letter:{get_column_letter(PkmnDataFile.max_column)}") + +with open("test_species.h", WriteOrAdd) as file: file.write("//Species File Update\n") file.write("#ifndef GUARD_CONSTANTS_SPECIES_H\n") file.write("#define GUARD_CONSTANTS_SPECIES_H\n\n") @@ -36,13 +46,15 @@ with open("test_pokedex.h", WriteOrAdd) as file: file.write(f"#define NUM_SPECIES SPECIES_EGG\n") file.write(f"#define SPECIES_SHINY_TAG 5000\n") file.write(f"#endif // GUARD_CONSTANTS_SPECIES_H\n") - + + file.write("//end of program") # file.write("//National Dex Start\n") # for species in PkmnDataFile.iter_rows(min_row=2, max_row=PkmnDataFile.max_row, min_col=PkmnDataFile.min_column, max_col=PkmnDataFile.max_column): # for data in species: # if PkmnDataFile.cell(row = PkmnDataFile.min_row, column = data.column).value == ".natDexNeeded" and data.value == 1: # file.write("\t" + National + "_DEX_" + PkmnDataFile.cell(row = data.row, column = PkmnDataFile.min_column).value + ",\n") - + +with open("test_dex.h", WriteOrAdd) as file: file.write("\n//" + Region + " Dex Start\n") for species in PkmnDataFile.iter_rows(min_row=2, max_row=PkmnDataFile.max_row, min_col=1, max_col=1): for data in species: diff --git a/pokeemerald-tools/gen-new-pokemon.py b/pokeemerald-tools/gen-new-pokemon.py index fbce31c7b3..e6309f77b6 100644 --- a/pokeemerald-tools/gen-new-pokemon.py +++ b/pokeemerald-tools/gen-new-pokemon.py @@ -1,10 +1,14 @@ #Tool for creating new gen.h files for emerald expansion #Takes information from excel sheet and prepares .h file for custom pokemon +import time import openpyxl as pyxl +from openpyxl.utils import get_column_letter from openpyxl.workbook import Workbook from openpyxl import load_workbook +start = time.time() + #Globals for making header, opening data, debug prints, etc Debug = 1 WriteOrAdd = 'w' @@ -27,123 +31,119 @@ for row in PkmnDataFile.iter_rows(min_row=1, max_row=1, min_col=1, max_col=PkmnD print(data.value) #with open(GenName+".h", WriteOrAdd) as file: -with open("test_families.h", WriteOrAdd) as file: +with open("evolved_families.h", WriteOrAdd) as file: #Print high level information about datafile being accessed if Debug: print(f"First row for species {PkmnDataFile.min_row}") print(f"Last row for species {PkmnDataFile.max_row}") print(f"First column of species-data {PkmnDataFile.min_column}") print(f"Last column of species-data {PkmnDataFile.max_column}") + print(f"First column of tutor-data #{PkmnDataFile.min_column}, Letter:{get_column_letter(PkmnDataFile.min_column)}") + print(f"Last column of tutor-data #{PkmnDataFile.max_column}, Letter:{get_column_letter(PkmnDataFile.max_column)}") #Write top level information to species file file.write(Header + "\n") #Begin writing species information to .h file - if Debug == 1: - #Start from second row so you do not grab data headers - for species in PkmnDataFile.iter_rows(min_row=2, max_row=13, min_col=PkmnDataFile.min_column, max_col=PkmnDataFile.max_column): - #for species in PkmnDataFile.iter_rows(min_row=2, max_row=PkmnDataFile.max_row, min_col=PkmnDataFile.min_column, max_col=PkmnDataFile.max_column): - if species[PkmnDataFile.max_column-1].value == 1:#species tuple is 0 indexed; maxcol is 1 indexed - print("New Species Found!: " + species[PkmnDataFile.min_column-1].value) - file.write("#endif\n\n#if P_FAMILY_" + species[PkmnDataFile.min_column-1].value + "\n") - file.write("\t[SPECIES_" + str(species[PkmnDataFile.min_column-1].value) + "] =\n") - file.write("\t{\n") - - #step through each element of the species - for data in species: - if PkmnDataFile.cell(row = PkmnDataFile.min_row, column = data.column).value == ".types": - types = data.value.split(',') - type1 = types[0] - type2 = types[1] - if type1 == type2: #Check for single typing - file.write("\t\t.types = MON_TYPES(TYPE_" + type1 + "),\n") - else: - file.write("\t\t.types = MON_TYPES(TYPE_" + type1 + ", TYPE_"+ type2 + "),\n") - elif PkmnDataFile.cell(row = PkmnDataFile.min_row, column = data.column).value == ".eggGroups": - types = data.value.split(',') - type1 = types[0] - type2 = types[1] - if type1 == type2: #Check for single egg group - file.write("\t\t.eggGroups = MON_EGG_GROUPS(EGG_GROUP_" + type1 + "),\n") - else: - file.write("\t\t.eggGroups = MON_EGG_GROUPS(EGG_GROUP_" + type1 + ", EGG_GROUP_"+ type2 + "),\n") - elif PkmnDataFile.cell(row = PkmnDataFile.min_row, column = data.column).value == ".abilities": - types = data.value.split(',') - type1 = "ABILITY_" + types[0] - type2 = "ABILITY_" + types[1] - type3 = "ABILITY_" + types[2] - file.write("\t\t.abilities = { " + type1 + ", " + type2 + " , " + type3 + " },\n") - elif PkmnDataFile.cell(row = PkmnDataFile.min_row, column = data.column).value == ".bodyColor": - file.write("\t\t.bodyColor = BODY_COLOR_" + data.value + ",\n") - elif PkmnDataFile.cell(row = PkmnDataFile.min_row, column = data.column).value == ".speciesName": - fixCase = data.value - fixCase = fixCase[0] + fixCase[1:len(fixCase)].lower() - file.write("\t\t" + SpeciesStructAttributes[data.column-1] + " = _(\"" + fixCase + "\"),\n") - elif PkmnDataFile.cell(row = PkmnDataFile.min_row, column = data.column).value == ".categoryName": - fixCase = data.value - fixCase = fixCase[0] + fixCase[1:len(fixCase)].lower() - file.write("\t\t" + SpeciesStructAttributes[data.column-1] + " = _(\"" + fixCase + "\"),\n") - elif PkmnDataFile.cell(row = PkmnDataFile.min_row, column = data.column).value == ".description": - file.write("\t\t.description = COMPOUD_STRING(\n\t\t\t\"" + data.value + "\"),\n") - elif PkmnDataFile.cell(row = PkmnDataFile.min_row, column = data.column).value == ".frontPic": - fixCase = PkmnDataFile.cell(row = data.row, column = PkmnDataFile.min_column).value - fixCase = fixCase[0] + fixCase[1:len(fixCase)].lower() - file.write("\t\t.frontPic = gMonFrontPic_" + fixCase + ",\n") - elif PkmnDataFile.cell(row = PkmnDataFile.min_row, column = data.column).value == ".frontPicSize": - file.write("\t\t.frontPicSize = MON_COORDS_SIZE(" + data.value + "),\n") - elif PkmnDataFile.cell(row = PkmnDataFile.min_row, column = data.column).value == ".backPic": - fixCase = PkmnDataFile.cell(row = data.row, column = PkmnDataFile.min_column).value - fixCase = fixCase[0] + fixCase[1:len(fixCase)].lower() - file.write("\t\t.backPic = gMonBackPic_" + fixCase + ",\n") - elif PkmnDataFile.cell(row = PkmnDataFile.min_row, column = data.column).value == ".backPicSize": - file.write("\t\t.backPicSize = MON_COORDS_SIZE(" + data.value + "),\n") - elif PkmnDataFile.cell(row = PkmnDataFile.min_row, column = data.column).value == ".palette": - fixCase = PkmnDataFile.cell(row = data.row, column = PkmnDataFile.min_column).value - fixCase = fixCase[0] + fixCase[1:len(fixCase)].lower() - file.write("\t\t.palette = gMonPalette_" + fixCase + ",\n") - elif PkmnDataFile.cell(row = PkmnDataFile.min_row, column = data.column).value == ".shinyPalette": - fixCase = PkmnDataFile.cell(row = data.row, column = PkmnDataFile.min_column).value - fixCase = fixCase[0] + fixCase[1:len(fixCase)].lower() - file.write("\t\t.shinyPalette = gMonShinyPalette_" + fixCase + ",\n") - elif PkmnDataFile.cell(row = PkmnDataFile.min_row, column = data.column).value == "FOOTPRINT": - fixCase = PkmnDataFile.cell(row = data.row, column = PkmnDataFile.min_column).value - fixCase = fixCase[0] + fixCase[1:len(fixCase)].lower() - file.write("\t\tFOOTPRINT(" + fixCase + ")\n") - elif PkmnDataFile.cell(row = PkmnDataFile.min_row, column = data.column).value == ".iconSprite": - fixCase = PkmnDataFile.cell(row = data.row, column = PkmnDataFile.min_column).value - fixCase = fixCase[0] + fixCase[1:len(fixCase)].lower() - file.write("\t\t.iconSprite = gMonIcon_" + fixCase + ",\n") - elif PkmnDataFile.cell(row = PkmnDataFile.min_row, column = data.column).value == ".levelUpLearnset": - fixCase = PkmnDataFile.cell(row = data.row, column = PkmnDataFile.min_column).value - fixCase = fixCase[0] + fixCase[1:len(fixCase)].lower() - file.write("\t\t.levelUpLearnset = s" + fixCase + "LevelUpLearnset,\n") - elif PkmnDataFile.cell(row = PkmnDataFile.min_row, column = data.column).value == ".teachableLearnset": - fixCase = PkmnDataFile.cell(row = data.row, column = PkmnDataFile.min_column).value - fixCase = fixCase[0] + fixCase[1:len(fixCase)].lower() - file.write("\t\t.teachableLearnSet = s" + fixCase + "TeachableLearnset,\n") - elif PkmnDataFile.cell(row = PkmnDataFile.min_row, column = data.column).value == ".eggMoveLearnset": - fixCase = PkmnDataFile.cell(row = data.row, column = PkmnDataFile.min_column).value - fixCase = fixCase[0] + fixCase[1:len(fixCase)].lower() - file.write("\t\t.eggMoveLearnset = s" + fixCase + "TeachableLearnset,\n") - elif PkmnDataFile.cell(row = PkmnDataFile.min_row, column = data.column).value == ".evolutions" and data.value != None: - file.write("\t\t.evolutions = EVOLUTION({EVO_LEVEL, " + data.value + ", SPECIES_" + PkmnDataFile.cell(data.row + 1, PkmnDataFile.min_column).value + "}),\n") - elif PkmnDataFile.cell(row = PkmnDataFile.min_row, column = data.column).value == "newspecies": - continue - elif PkmnDataFile.cell(row = PkmnDataFile.min_row, column = data.column).value == ".natDexNeeded": - continue - elif not data.value: - continue + #Start from second row so you do not grab data headers + for species in PkmnDataFile.iter_rows(min_row=2, max_row=13, min_col=PkmnDataFile.min_column, max_col=PkmnDataFile.max_column): + #for species in PkmnDataFile.iter_rows(min_row=2, max_row=PkmnDataFile.max_row, min_col=PkmnDataFile.min_column, max_col=PkmnDataFile.max_column): + if species[PkmnDataFile.max_column-1].value == 1:#species tuple is 0 indexed; maxcol is 1 indexed + print("New Species Found!: " + species[PkmnDataFile.min_column-1].value) + file.write("#endif\n\n#if P_FAMILY_" + species[PkmnDataFile.min_column-1].value + "\n") + file.write("\t[SPECIES_" + str(species[PkmnDataFile.min_column-1].value) + "] =\n") + file.write("\t{\n") + + #step through each element of the species + for data in species: + if PkmnDataFile.cell(row = PkmnDataFile.min_row, column = data.column).value == ".types": + types = data.value.split(',') + type1 = types[0] + type2 = types[1] + if type1 == type2: #Check for single typing + file.write("\t\t.types = MON_TYPES(TYPE_" + type1 + "),\n") else: - file.write("\t\t" + SpeciesStructAttributes[data.column-1] + " = " + str(data.value) + ",\n") - - #close this species - file.write("\t\t},\n\n") + file.write("\t\t.types = MON_TYPES(TYPE_" + type1 + ", TYPE_"+ type2 + "),\n") + elif PkmnDataFile.cell(row = PkmnDataFile.min_row, column = data.column).value == ".eggGroups": + types = data.value.split(',') + type1 = types[0] + type2 = types[1] + if type1 == type2: #Check for single egg group + file.write("\t\t.eggGroups = MON_EGG_GROUPS(EGG_GROUP_" + type1 + "),\n") + else: + file.write("\t\t.eggGroups = MON_EGG_GROUPS(EGG_GROUP_" + type1 + ", EGG_GROUP_"+ type2 + "),\n") + elif PkmnDataFile.cell(row = PkmnDataFile.min_row, column = data.column).value == ".abilities": + types = data.value.split(',') + type1 = "ABILITY_" + types[0] + type2 = "ABILITY_" + types[1] + type3 = "ABILITY_" + types[2] + file.write("\t\t.abilities = { " + type1 + ", " + type2 + " , " + type3 + " },\n") + elif PkmnDataFile.cell(row = PkmnDataFile.min_row, column = data.column).value == ".bodyColor": + file.write("\t\t.bodyColor = BODY_COLOR_" + data.value + ",\n") + elif PkmnDataFile.cell(row = PkmnDataFile.min_row, column = data.column).value == ".speciesName": + fixCase = data.value + fixCase = fixCase[0] + fixCase[1:len(fixCase)].lower() + file.write("\t\t" + SpeciesStructAttributes[data.column-1] + " = _(\"" + fixCase + "\"),\n") + elif PkmnDataFile.cell(row = PkmnDataFile.min_row, column = data.column).value == ".categoryName": + fixCase = data.value + fixCase = fixCase[0] + fixCase[1:len(fixCase)].lower() + file.write("\t\t" + SpeciesStructAttributes[data.column-1] + " = _(\"" + fixCase + "\"),\n") + elif PkmnDataFile.cell(row = PkmnDataFile.min_row, column = data.column).value == ".description": + file.write("\t\t.description = COMPOUD_STRING(\n\t\t\t\"" + data.value + "\"),\n") + elif PkmnDataFile.cell(row = PkmnDataFile.min_row, column = data.column).value == ".frontPic": + fixCase = PkmnDataFile.cell(row = data.row, column = PkmnDataFile.min_column).value + fixCase = fixCase[0] + fixCase[1:len(fixCase)].lower() + file.write("\t\t.frontPic = gMonFrontPic_" + fixCase + ",\n") + elif PkmnDataFile.cell(row = PkmnDataFile.min_row, column = data.column).value == ".frontPicSize": + file.write("\t\t.frontPicSize = MON_COORDS_SIZE(" + data.value + "),\n") + elif PkmnDataFile.cell(row = PkmnDataFile.min_row, column = data.column).value == ".backPic": + fixCase = PkmnDataFile.cell(row = data.row, column = PkmnDataFile.min_column).value + fixCase = fixCase[0] + fixCase[1:len(fixCase)].lower() + file.write("\t\t.backPic = gMonBackPic_" + fixCase + ",\n") + elif PkmnDataFile.cell(row = PkmnDataFile.min_row, column = data.column).value == ".backPicSize": + file.write("\t\t.backPicSize = MON_COORDS_SIZE(" + data.value + "),\n") + elif PkmnDataFile.cell(row = PkmnDataFile.min_row, column = data.column).value == ".palette": + fixCase = PkmnDataFile.cell(row = data.row, column = PkmnDataFile.min_column).value + fixCase = fixCase[0] + fixCase[1:len(fixCase)].lower() + file.write("\t\t.palette = gMonPalette_" + fixCase + ",\n") + elif PkmnDataFile.cell(row = PkmnDataFile.min_row, column = data.column).value == ".shinyPalette": + fixCase = PkmnDataFile.cell(row = data.row, column = PkmnDataFile.min_column).value + fixCase = fixCase[0] + fixCase[1:len(fixCase)].lower() + file.write("\t\t.shinyPalette = gMonShinyPalette_" + fixCase + ",\n") + elif PkmnDataFile.cell(row = PkmnDataFile.min_row, column = data.column).value == "FOOTPRINT": + fixCase = PkmnDataFile.cell(row = data.row, column = PkmnDataFile.min_column).value + fixCase = fixCase[0] + fixCase[1:len(fixCase)].lower() + file.write("\t\tFOOTPRINT(" + fixCase + ")\n") + elif PkmnDataFile.cell(row = PkmnDataFile.min_row, column = data.column).value == ".iconSprite": + fixCase = PkmnDataFile.cell(row = data.row, column = PkmnDataFile.min_column).value + fixCase = fixCase[0] + fixCase[1:len(fixCase)].lower() + file.write("\t\t.iconSprite = gMonIcon_" + fixCase + ",\n") + elif PkmnDataFile.cell(row = PkmnDataFile.min_row, column = data.column).value == ".levelUpLearnset": + fixCase = PkmnDataFile.cell(row = data.row, column = PkmnDataFile.min_column).value + fixCase = fixCase[0] + fixCase[1:len(fixCase)].lower() + file.write("\t\t.levelUpLearnset = s" + fixCase + "LevelUpLearnset,\n") + elif PkmnDataFile.cell(row = PkmnDataFile.min_row, column = data.column).value == ".teachableLearnset": + fixCase = PkmnDataFile.cell(row = data.row, column = PkmnDataFile.min_column).value + fixCase = fixCase[0] + fixCase[1:len(fixCase)].lower() + file.write("\t\t.teachableLearnSet = s" + fixCase + "TeachableLearnset,\n") + elif PkmnDataFile.cell(row = PkmnDataFile.min_row, column = data.column).value == ".eggMoveLearnset": + fixCase = PkmnDataFile.cell(row = data.row, column = PkmnDataFile.min_column).value + fixCase = fixCase[0] + fixCase[1:len(fixCase)].lower() + file.write("\t\t.eggMoveLearnset = s" + fixCase + "TeachableLearnset,\n") + elif PkmnDataFile.cell(row = PkmnDataFile.min_row, column = data.column).value == ".evolutions" and data.value != None: + file.write("\t\t.evolutions = EVOLUTION({EVO_LEVEL, " + data.value + ", SPECIES_" + PkmnDataFile.cell(data.row + 1, PkmnDataFile.min_column).value + "}),\n") + elif PkmnDataFile.cell(row = PkmnDataFile.min_row, column = data.column).value == "newspecies": + continue + elif PkmnDataFile.cell(row = PkmnDataFile.min_row, column = data.column).value == ".natDexNeeded": + continue + elif not data.value: + continue + else: + file.write("\t\t" + SpeciesStructAttributes[data.column-1] + " = " + str(data.value) + ",\n") + + #close this species + file.write("\t\t},\n\n") - elif Debug == 0: - for species in PkmnDataFile.rows: - for data in species: - if data.max_column.value == 1: - print("New Species Found") - print(data.value) - + end = time.time() + print(f"Time: {end - start} seconds") file.write("//end of program") \ No newline at end of file diff --git a/pokeemerald-tools/pkmndata.xlsx b/pokeemerald-tools/pkmndata.xlsx index 900745c460..635fdf0c02 100644 Binary files a/pokeemerald-tools/pkmndata.xlsx and b/pokeemerald-tools/pkmndata.xlsx differ diff --git a/pokeemerald-tools/test_dex.h b/pokeemerald-tools/test_dex.h new file mode 100644 index 0000000000..140323a6e3 --- /dev/null +++ b/pokeemerald-tools/test_dex.h @@ -0,0 +1,357 @@ + +//KANTO Dex Start + KANTO_DEX_BULBASAUR, + KANTO_DEX_IVYSAUR, + KANTO_DEX_VENUSAUR, + KANTO_DEX_ECOSAUR, + KANTO_DEX_TERARISAUR, + KANTO_DEX_SYMBISAUR, + KANTO_DEX_CHARMANDER, + KANTO_DEX_CHARMELEON, + KANTO_DEX_CHARIZARD, + KANTO_DEX_CHARIGUANA, + KANTO_DEX_CHARIANA, + KANTO_DEX_CHARIATHAN, + KANTO_DEX_SQUIRTLE, + KANTO_DEX_WARTORTLE, + KANTO_DEX_BLASTOISE, + KANTO_DEX_FERRAPIN, + KANTO_DEX_FORTOISE, + KANTO_DEX_TURTILLERY, + KANTO_DEX_CATERPIE, + KANTO_DEX_METAPOD, + KANTO_DEX_BUTTERFREE, + KANTO_DEX_BUTTEFLARE, + KANTO_DEX_PYREFREE, + KANTO_DEX_IMPSECT, + KANTO_DEX_WEEDLE, + KANTO_DEX_KAKUNA, + KANTO_DEX_BEEDRILL, + KANTO_DEX_BEEBRUTE, + KANTO_DEX_DRONARCH, + KANTO_DEX_SEPISTRIKE, + KANTO_DEX_PIDGEY, + KANTO_DEX_PIDGEOTTO, + KANTO_DEX_PIDGEOT, + KANTO_DEX_PIDGAERO, + KANTO_DEX_PIDGEOZONE, + KANTO_DEX_PIDGEPHYR, + KANTO_DEX_RATTATA, + KANTO_DEX_RATICATE, + KANTO_DEX_RATTCHET, + KANTO_DEX_RATTARULE, + KANTO_DEX_SPEAROW, + KANTO_DEX_FEAROW, + KANTO_DEX_SNEEROW, + KANTO_DEX_ORNITHOW, + KANTO_DEX_EKANS, + KANTO_DEX_ARBOK, + KANTO_DEX_NOHTYP, + KANTO_DEX_ADNOKANA, + KANTO_DEX_PIKACHU, + KANTO_DEX_RAICHU, + KANTO_DEX_GOROCHU, + KANTO_DEX_STROMACHU, + KANTO_DEX_SANDSHREW, + KANTO_DEX_SANDSLASH, + KANTO_DEX_SANDSLAM, + KANTO_DEX_FERODILLO, + KANTO_DEX_NIDORAN_F, + KANTO_DEX_NIDORINA, + KANTO_DEX_NIDOQUEEN, + KANTO_DEX_NIDOREGAL, + KANTO_DEX_NIDOARCHY, + KANTO_DEX_NIDORAN_M, + KANTO_DEX_NIDORINO, + KANTO_DEX_NIDOKING, + KANTO_DEX_NIDORULY, + KANTO_DEX_NIDOMINATE, + KANTO_DEX_CLEFAIRY, + KANTO_DEX_CLEFABLE, + KANTO_DEX_CLEFAEFAE, + KANTO_DEX_CLEFANAUT, + KANTO_DEX_VULPIX, + KANTO_DEX_NINETALES, + KANTO_DEX_SPIRITALES, + KANTO_DEX_YOKAYUBI, + KANTO_DEX_JIGGLYPUFF, + KANTO_DEX_WIGGLYTUFF, + KANTO_DEX_GIGGLYHUFF, + KANTO_DEX_BOGGLYFUFF, + KANTO_DEX_ZUBAT, + KANTO_DEX_GOLBAT, + KANTO_DEX_CROBAT, + KANTO_DEX_POLABAT, + KANTO_DEX_VISIBAT, + KANTO_DEX_HORRIBAT, + KANTO_DEX_ODDISH, + KANTO_DEX_GLOOM, + KANTO_DEX_VILEPLUME, + KANTO_DEX_RAFFLURK, + KANTO_DEX_CONCORPSIA, + KANTO_DEX_PARAS, + KANTO_DEX_PARASECT, + KANTO_DEX_SECTASITE, + KANTO_DEX_FUNGALITH, + KANTO_DEX_VENONAT, + KANTO_DEX_VENOMOTH, + KANTO_DEX_VENOMENA, + KANTO_DEX_VENOMENON, + KANTO_DEX_DIGLETT, + KANTO_DEX_DUGTRIO, + KANTO_DEX_DUGROUPLE, + KANTO_DEX_UNEARTHLET, + KANTO_DEX_DIGLENOID, + KANTO_DEX_MEOWTH, + KANTO_DEX_PERSIAN, + KANTO_DEX_FELANKH, + KANTO_DEX_PATRAPHINX, + KANTO_DEX_PSYDUCK, + KANTO_DEX_GOLDUCK, + KANTO_DEX_GILDUCK, + KANTO_DEX_PLATINUPUS, + KANTO_DEX_MANKEY, + KANTO_DEX_PRIMEAPE, + KANTO_DEX_GORILLASH, + KANTO_DEX_BONUMBELL, + KANTO_DEX_GROWLITHE, + KANTO_DEX_ARCANINE, + KANTO_DEX_SINGESHA, + KANTO_DEX_GUARDIANCE, + KANTO_DEX_POLIWAG, + KANTO_DEX_POLIWHIRL, + KANTO_DEX_POLIWRATH, + KANTO_DEX_POLITOES, + KANTO_DEX_POLIWISE, + KANTO_DEX_POLIATH, + KANTO_DEX_ABRA, + KANTO_DEX_KADABRA, + KANTO_DEX_ALAKAZAM, + KANTO_DEX_SIMSALABIM, + KANTO_DEX_VOHOODU, + KANTO_DEX_TZARKARTZ, + KANTO_DEX_MACHOP, + KANTO_DEX_MACHOKE, + KANTO_DEX_MACHAMP, + KANTO_DEX_MACHULK, + KANTO_DEX_ABOMACHULK, + KANTO_DEX_MACHITAN, + KANTO_DEX_BELLSPROUT, + KANTO_DEX_WEEPINBELL, + KANTO_DEX_VICTREEBEL, + KANTO_DEX_MUCKTRIBEL, + KANTO_DEX_CARNABELL, + KANTO_DEX_DEVLORA, + KANTO_DEX_TENTACOOL, + KANTO_DEX_TENTACRUEL, + KANTO_DEX_TENTACATE, + KANTO_DEX_TENTABOMA, + KANTO_DEX_GEODUDE, + KANTO_DEX_GRAVELER, + KANTO_DEX_GOLEM, + KANTO_DEX_SLAGOLEM, + KANTO_DEX_MOLTREM, + KANTO_DEX_VOLCANICOL, + KANTO_DEX_PONYTA, + KANTO_DEX_RAPIDASH, + KANTO_DEX_COMBUSTANG, + KANTO_DEX_KNIGHTMARE, + KANTO_DEX_SLOWPOKE, + KANTO_DEX_SLOWBRO, + KANTO_DEX_SLOWMATE, + KANTO_DEX_SLOWCHUM, + KANTO_DEX_MAGNEMITE, + KANTO_DEX_MAGNETON, + KANTO_DEX_MAGNEZONE, + KANTO_DEX_MAGNEMELD, + KANTO_DEX_MAGNEMASTR, + KANTO_DEX_FARFETCHD, + KANTO_DEX_FORFOWLD, + KANTO_DEX_FOWLNTOM, + KANTO_DEX_DODUO, + KANTO_DEX_DODRIO, + KANTO_DEX_QUADODO, + KANTO_DEX_DODOZEN, + KANTO_DEX_SEEL, + KANTO_DEX_DEWGONG, + KANTO_DEX_PRECIPED, + KANTO_DEX_MANATII, + KANTO_DEX_GRIMER, + KANTO_DEX_MUK, + KANTO_DEX_GUNK, + KANTO_DEX_SKUM, + KANTO_DEX_SHELLDER, + KANTO_DEX_CLOYSTER, + KANTO_DEX_ANENEMY, + KANTO_DEX_GLAISHELL, + KANTO_DEX_GASTLY, + KANTO_DEX_HAUNTER, + KANTO_DEX_GENGAR, + KANTO_DEX_GENGONE, + KANTO_DEX_POLTERGAST, + KANTO_DEX_GRIMM, + KANTO_DEX_ONIX, + KANTO_DEX_STEELIX, + KANTO_DEX_PLATNIX, + KANTO_DEX_OBSIDIANIX, + KANTO_DEX_STALAGMIX, + KANTO_DEX_DROWZEE, + KANTO_DEX_HYPNO, + KANTO_DEX_LULLOO, + KANTO_DEX_SOMNISOOTH, + KANTO_DEX_KRABBY, + KANTO_DEX_KINGLER, + KANTO_DEX_KRAKLAW, + KANTO_DEX_TEKLAWNO, + KANTO_DEX_VOLTORB, + KANTO_DEX_ELECTRODE, + KANTO_DEX_ELECTRODES, + KANTO_DEX_ELECTRODEX, + KANTO_DEX_ELECTRODEM, + KANTO_DEX_EXEGGCUTE, + KANTO_DEX_EXEGGUTOR, + KANTO_DEX_EXEGGITY, + KANTO_DEX_EXEGGTRIC, + KANTO_DEX_CUBONE, + KANTO_DEX_MAROWAK, + KANTO_DEX_OSSELOBBER, + KANTO_DEX_WRAIWRATH, + KANTO_DEX_HITMONLEE, + KANTO_DEX_CLEEVOYANT, + KANTO_DEX_SPIRITULEE, + KANTO_DEX_HITMONCHAN, + KANTO_DEX_ENCHANCED, + KANTO_DEX_RADIACHAN, + KANTO_DEX_LICKITUNG, + KANTO_DEX_LICKILICKY, + KANTO_DEX_LICKILOLLY, + KANTO_DEX_LICKILATO, + KANTO_DEX_KOFFING, + KANTO_DEX_WEEZING, + KANTO_DEX_HEEVING, + KANTO_DEX_CHOHKING, + KANTO_DEX_RHYHORN, + KANTO_DEX_RHYDON, + KANTO_DEX_RHYPERIOR, + KANTO_DEX_RHYMARKABL, + KANTO_DEX_RHYLIC, + KANTO_DEX_RHYBORN, + KANTO_DEX_CHANSEY, + KANTO_DEX_BLISSEY, + KANTO_DEX_GOGETTEY, + KANTO_DEX_LUKKEY, + KANTO_DEX_FORTUNITEY, + KANTO_DEX_TANGELA, + KANTO_DEX_TANGROWTH, + KANTO_DEX_TANGATHER, + KANTO_DEX_TANGOLIATH, + KANTO_DEX_TANGRAPPLE, + KANTO_DEX_KANGAKID, + KANTO_DEX_KANGASKHAN, + KANTO_DEX_KANGALLOUS, + KANTO_DEX_KANGARUTAL, + KANTO_DEX_HORSEA, + KANTO_DEX_SEADRA, + KANTO_DEX_KINGDRA, + KANTO_DEX_LORDRA, + KANTO_DEX_PINNADRA, + KANTO_DEX_GOLDEEN, + KANTO_DEX_SEAKING, + KANTO_DEX_SEAREX, + KANTO_DEX_CAPRISEA, + KANTO_DEX_STARYU, + KANTO_DEX_STARMIE, + KANTO_DEX_STARUS, + KANTO_DEX_STARWE, + KANTO_DEX_MR_MIME, + KANTO_DEX_MR_JEST, + KANTO_DEX_MR_FOOL, + KANTO_DEX_SCYTHER, + KANTO_DEX_SCIZOR, + KANTO_DEX_RAZER, + KANTO_DEX_CLAYMOR, + KANTO_DEX_JYNX, + KANTO_DEX_JYNKIES, + KANTO_DEX_JEEPERS, + KANTO_DEX_ELECTABUZZ, + KANTO_DEX_ELECTIVIRE, + KANTO_DEX_ELECTIVINE, + KANTO_DEX_ELECTIWIZZ, + KANTO_DEX_MAGMAR, + KANTO_DEX_MAGMORTAR, + KANTO_DEX_MAGMORE, + KANTO_DEX_MAGMOLTEN, + KANTO_DEX_PINSIR, + KANTO_DEX_PINSIRIOR, + KANTO_DEX_ABYSSIR, + KANTO_DEX_TAUROS, + KANTO_DEX_TAUROX, + KANTO_DEX_OXENFREE, + KANTO_DEX_MAGIKARP, + KANTO_DEX_GYARADOS, + KANTO_DEX_HYDRADOS, + KANTO_DEX_DRACOSMIC, + KANTO_DEX_QUAZAR, + KANTO_DEX_LAPRAS, + KANTO_DEX_LOCHLASS, + KANTO_DEX_NESSEA, + KANTO_DEX_DITTO, + KANTO_DEX_MORPHO, + KANTO_DEX_METAMORPHO, + KANTO_DEX_EEVEE, + KANTO_DEX_VAPOREON, + KANTO_DEX_RIVEON, + KANTO_DEX_BRINEON, + KANTO_DEX_JOLTEON, + KANTO_DEX_PLASMEON, + KANTO_DEX_GALVEON, + KANTO_DEX_FLAREON, + KANTO_DEX_SMOLDEON, + KANTO_DEX_INFERNEON, + KANTO_DEX_PORYGON, + KANTO_DEX_PORYGON2, + KANTO_DEX_PORYGONZ, + KANTO_DEX_PORYGONX, + KANTO_DEX_PORYGONQ, + KANTO_DEX_PORYGON2A4, + KANTO_DEX_OMANYTE, + KANTO_DEX_OMASTAR, + KANTO_DEX_OMAPAL, + KANTO_DEX_OMAGUS, + KANTO_DEX_KABUTO, + KANTO_DEX_KABUTOPS, + KANTO_DEX_KABUTAK, + KANTO_DEX_KABUSTION, + KANTO_DEX_AERODACTYL, + KANTO_DEX_MANDILUFT, + KANTO_DEX_AMBALITHIC, + KANTO_DEX_SNORLAX, + KANTO_DEX_ACTLAX, + KANTO_DEX_GRIZZLAX, + KANTO_DEX_ARTICUNO, + KANTO_DEX_SNOWONE, + KANTO_DEX_FROSTUNUS, + KANTO_DEX_ZAPDOS, + KANTO_DEX_SHOCKATOO, + KANTO_DEX_VOLTDUO, + KANTO_DEX_MOLTRES, + KANTO_DEX_IGNITHREE, + KANTO_DEX_INFERNTRI, + KANTO_DEX_DRATINI, + KANTO_DEX_DRAGONAIR, + KANTO_DEX_DRAGONITE, + KANTO_DEX_DRAGONIER, + KANTO_DEX_DRAGONACE, + KANTO_DEX_DRAGONTALE, + KANTO_DEX_MEWTWO, + KANTO_DEX_MEWTHREE, + KANTO_DEX_MEWFOUR, + KANTO_DEX_MEW, + KANTO_DEX_NYU, + KANTO_DEX_IOTA, + KANTO_DEX_MISSINGNO1, + KANTO_DEX_MISSINGNO2, + KANTO_DEX_MISSINGNO3, + KANTO_DEX_MISSINGNO4, + KANTO_DEX_MISSINGNO5, +//end of program \ No newline at end of file diff --git a/pokeemerald-tools/test_species.h b/pokeemerald-tools/test_species.h new file mode 100644 index 0000000000..58456195db --- /dev/null +++ b/pokeemerald-tools/test_species.h @@ -0,0 +1,365 @@ +//Species File Update +#ifndef GUARD_CONSTANTS_SPECIES_H +#define GUARD_CONSTANTS_SPECIES_H + +#define SPECIES_NONE 0 +#define SPECIES_BULBASAUR 1 +#define SPECIES_IVYSAUR 2 +#define SPECIES_VENUSAUR 3 +#define SPECIES_ECOSAUR 4 +#define SPECIES_TERARISAUR 5 +#define SPECIES_SYMBISAUR 6 +#define SPECIES_CHARMANDER 7 +#define SPECIES_CHARMELEON 8 +#define SPECIES_CHARIZARD 9 +#define SPECIES_CHARIGUANA 10 +#define SPECIES_CHARIANA 11 +#define SPECIES_CHARIATHAN 12 +#define SPECIES_SQUIRTLE 13 +#define SPECIES_WARTORTLE 14 +#define SPECIES_BLASTOISE 15 +#define SPECIES_FERRAPIN 16 +#define SPECIES_FORTOISE 17 +#define SPECIES_TURTILLERY 18 +#define SPECIES_CATERPIE 19 +#define SPECIES_METAPOD 20 +#define SPECIES_BUTTERFREE 21 +#define SPECIES_BUTTEFLARE 22 +#define SPECIES_PYREFREE 23 +#define SPECIES_IMPSECT 24 +#define SPECIES_WEEDLE 25 +#define SPECIES_KAKUNA 26 +#define SPECIES_BEEDRILL 27 +#define SPECIES_BEEBRUTE 28 +#define SPECIES_DRONARCH 29 +#define SPECIES_SEPISTRIKE 30 +#define SPECIES_PIDGEY 31 +#define SPECIES_PIDGEOTTO 32 +#define SPECIES_PIDGEOT 33 +#define SPECIES_PIDGAERO 34 +#define SPECIES_PIDGEOZONE 35 +#define SPECIES_PIDGEPHYR 36 +#define SPECIES_RATTATA 37 +#define SPECIES_RATICATE 38 +#define SPECIES_RATTCHET 39 +#define SPECIES_RATTARULE 40 +#define SPECIES_SPEAROW 41 +#define SPECIES_FEAROW 42 +#define SPECIES_SNEEROW 43 +#define SPECIES_ORNITHOW 44 +#define SPECIES_EKANS 45 +#define SPECIES_ARBOK 46 +#define SPECIES_NOHTYP 47 +#define SPECIES_ADNOKANA 48 +#define SPECIES_PIKACHU 49 +#define SPECIES_RAICHU 50 +#define SPECIES_GOROCHU 51 +#define SPECIES_STROMACHU 52 +#define SPECIES_SANDSHREW 53 +#define SPECIES_SANDSLASH 54 +#define SPECIES_SANDSLAM 55 +#define SPECIES_FERODILLO 56 +#define SPECIES_NIDORAN_F 57 +#define SPECIES_NIDORINA 58 +#define SPECIES_NIDOQUEEN 59 +#define SPECIES_NIDOREGAL 60 +#define SPECIES_NIDOARCHY 61 +#define SPECIES_NIDORAN_M 62 +#define SPECIES_NIDORINO 63 +#define SPECIES_NIDOKING 64 +#define SPECIES_NIDORULY 65 +#define SPECIES_NIDOMINATE 66 +#define SPECIES_CLEFAIRY 67 +#define SPECIES_CLEFABLE 68 +#define SPECIES_CLEFAEFAE 69 +#define SPECIES_CLEFANAUT 70 +#define SPECIES_VULPIX 71 +#define SPECIES_NINETALES 72 +#define SPECIES_SPIRITALES 73 +#define SPECIES_YOKAYUBI 74 +#define SPECIES_JIGGLYPUFF 75 +#define SPECIES_WIGGLYTUFF 76 +#define SPECIES_GIGGLYHUFF 77 +#define SPECIES_BOGGLYFUFF 78 +#define SPECIES_ZUBAT 79 +#define SPECIES_GOLBAT 80 +#define SPECIES_CROBAT 81 +#define SPECIES_POLABAT 82 +#define SPECIES_VISIBAT 83 +#define SPECIES_HORRIBAT 84 +#define SPECIES_ODDISH 85 +#define SPECIES_GLOOM 86 +#define SPECIES_VILEPLUME 87 +#define SPECIES_RAFFLURK 88 +#define SPECIES_CONCORPSIA 89 +#define SPECIES_PARAS 90 +#define SPECIES_PARASECT 91 +#define SPECIES_SECTASITE 92 +#define SPECIES_FUNGALITH 93 +#define SPECIES_VENONAT 94 +#define SPECIES_VENOMOTH 95 +#define SPECIES_VENOMENA 96 +#define SPECIES_VENOMENON 97 +#define SPECIES_DIGLETT 98 +#define SPECIES_DUGTRIO 99 +#define SPECIES_DUGROUPLE 100 +#define SPECIES_UNEARTHLET 101 +#define SPECIES_DIGLENOID 102 +#define SPECIES_MEOWTH 103 +#define SPECIES_PERSIAN 104 +#define SPECIES_FELANKH 105 +#define SPECIES_PATRAPHINX 106 +#define SPECIES_PSYDUCK 107 +#define SPECIES_GOLDUCK 108 +#define SPECIES_GILDUCK 109 +#define SPECIES_PLATINUPUS 110 +#define SPECIES_MANKEY 111 +#define SPECIES_PRIMEAPE 112 +#define SPECIES_GORILLASH 113 +#define SPECIES_BONUMBELL 114 +#define SPECIES_GROWLITHE 115 +#define SPECIES_ARCANINE 116 +#define SPECIES_SINGESHA 117 +#define SPECIES_GUARDIANCE 118 +#define SPECIES_POLIWAG 119 +#define SPECIES_POLIWHIRL 120 +#define SPECIES_POLIWRATH 121 +#define SPECIES_POLITOES 122 +#define SPECIES_POLIWISE 123 +#define SPECIES_POLIATH 124 +#define SPECIES_ABRA 125 +#define SPECIES_KADABRA 126 +#define SPECIES_ALAKAZAM 127 +#define SPECIES_SIMSALABIM 128 +#define SPECIES_VOHOODU 129 +#define SPECIES_TZARKARTZ 130 +#define SPECIES_MACHOP 131 +#define SPECIES_MACHOKE 132 +#define SPECIES_MACHAMP 133 +#define SPECIES_MACHULK 134 +#define SPECIES_ABOMACHULK 135 +#define SPECIES_MACHITAN 136 +#define SPECIES_BELLSPROUT 137 +#define SPECIES_WEEPINBELL 138 +#define SPECIES_VICTREEBEL 139 +#define SPECIES_MUCKTRIBEL 140 +#define SPECIES_CARNABELL 141 +#define SPECIES_DEVLORA 142 +#define SPECIES_TENTACOOL 143 +#define SPECIES_TENTACRUEL 144 +#define SPECIES_TENTACATE 145 +#define SPECIES_TENTABOMA 146 +#define SPECIES_GEODUDE 147 +#define SPECIES_GRAVELER 148 +#define SPECIES_GOLEM 149 +#define SPECIES_SLAGOLEM 150 +#define SPECIES_MOLTREM 151 +#define SPECIES_VOLCANICOL 152 +#define SPECIES_PONYTA 153 +#define SPECIES_RAPIDASH 154 +#define SPECIES_COMBUSTANG 155 +#define SPECIES_KNIGHTMARE 156 +#define SPECIES_SLOWPOKE 157 +#define SPECIES_SLOWBRO 158 +#define SPECIES_SLOWMATE 159 +#define SPECIES_SLOWCHUM 160 +#define SPECIES_MAGNEMITE 161 +#define SPECIES_MAGNETON 162 +#define SPECIES_MAGNEZONE 163 +#define SPECIES_MAGNEMELD 164 +#define SPECIES_MAGNEMASTR 165 +#define SPECIES_FARFETCHD 166 +#define SPECIES_FORFOWLD 167 +#define SPECIES_FOWLNTOM 168 +#define SPECIES_DODUO 169 +#define SPECIES_DODRIO 170 +#define SPECIES_QUADODO 171 +#define SPECIES_DODOZEN 172 +#define SPECIES_SEEL 173 +#define SPECIES_DEWGONG 174 +#define SPECIES_PRECIPED 175 +#define SPECIES_MANATII 176 +#define SPECIES_GRIMER 177 +#define SPECIES_MUK 178 +#define SPECIES_GUNK 179 +#define SPECIES_SKUM 180 +#define SPECIES_SHELLDER 181 +#define SPECIES_CLOYSTER 182 +#define SPECIES_ANENEMY 183 +#define SPECIES_GLAISHELL 184 +#define SPECIES_GASTLY 185 +#define SPECIES_HAUNTER 186 +#define SPECIES_GENGAR 187 +#define SPECIES_GENGONE 188 +#define SPECIES_POLTERGAST 189 +#define SPECIES_GRIMM 190 +#define SPECIES_ONIX 191 +#define SPECIES_STEELIX 192 +#define SPECIES_PLATNIX 193 +#define SPECIES_OBSIDIANIX 194 +#define SPECIES_STALAGMIX 195 +#define SPECIES_DROWZEE 196 +#define SPECIES_HYPNO 197 +#define SPECIES_LULLOO 198 +#define SPECIES_SOMNISOOTH 199 +#define SPECIES_KRABBY 200 +#define SPECIES_KINGLER 201 +#define SPECIES_KRAKLAW 202 +#define SPECIES_TEKLAWNO 203 +#define SPECIES_VOLTORB 204 +#define SPECIES_ELECTRODE 205 +#define SPECIES_ELECTRODES 206 +#define SPECIES_ELECTRODEX 207 +#define SPECIES_ELECTRODEM 208 +#define SPECIES_EXEGGCUTE 209 +#define SPECIES_EXEGGUTOR 210 +#define SPECIES_EXEGGITY 211 +#define SPECIES_EXEGGTRIC 212 +#define SPECIES_CUBONE 213 +#define SPECIES_MAROWAK 214 +#define SPECIES_OSSELOBBER 215 +#define SPECIES_WRAIWRATH 216 +#define SPECIES_HITMONLEE 217 +#define SPECIES_CLEEVOYANT 218 +#define SPECIES_SPIRITULEE 219 +#define SPECIES_HITMONCHAN 220 +#define SPECIES_ENCHANCED 221 +#define SPECIES_RADIACHAN 222 +#define SPECIES_LICKITUNG 223 +#define SPECIES_LICKILICKY 224 +#define SPECIES_LICKILOLLY 225 +#define SPECIES_LICKILATO 226 +#define SPECIES_KOFFING 227 +#define SPECIES_WEEZING 228 +#define SPECIES_HEEVING 229 +#define SPECIES_CHOHKING 230 +#define SPECIES_RHYHORN 231 +#define SPECIES_RHYDON 232 +#define SPECIES_RHYPERIOR 233 +#define SPECIES_RHYMARKABL 234 +#define SPECIES_RHYLIC 235 +#define SPECIES_RHYBORN 236 +#define SPECIES_CHANSEY 237 +#define SPECIES_BLISSEY 238 +#define SPECIES_GOGETTEY 239 +#define SPECIES_LUKKEY 240 +#define SPECIES_FORTUNITEY 241 +#define SPECIES_TANGELA 242 +#define SPECIES_TANGROWTH 243 +#define SPECIES_TANGATHER 244 +#define SPECIES_TANGOLIATH 245 +#define SPECIES_TANGRAPPLE 246 +#define SPECIES_KANGAKID 247 +#define SPECIES_KANGASKHAN 248 +#define SPECIES_KANGALLOUS 249 +#define SPECIES_KANGARUTAL 250 +#define SPECIES_HORSEA 251 +#define SPECIES_SEADRA 252 +#define SPECIES_KINGDRA 253 +#define SPECIES_LORDRA 254 +#define SPECIES_PINNADRA 255 +#define SPECIES_GOLDEEN 256 +#define SPECIES_SEAKING 257 +#define SPECIES_SEAREX 258 +#define SPECIES_CAPRISEA 259 +#define SPECIES_STARYU 260 +#define SPECIES_STARMIE 261 +#define SPECIES_STARUS 262 +#define SPECIES_STARWE 263 +#define SPECIES_MR_MIME 264 +#define SPECIES_MR_JEST 265 +#define SPECIES_MR_FOOL 266 +#define SPECIES_SCYTHER 267 +#define SPECIES_SCIZOR 268 +#define SPECIES_RAZER 269 +#define SPECIES_CLAYMOR 270 +#define SPECIES_JYNX 271 +#define SPECIES_JYNKIES 272 +#define SPECIES_JEEPERS 273 +#define SPECIES_ELECTABUZZ 274 +#define SPECIES_ELECTIVIRE 275 +#define SPECIES_ELECTIVINE 276 +#define SPECIES_ELECTIWIZZ 277 +#define SPECIES_MAGMAR 278 +#define SPECIES_MAGMORTAR 279 +#define SPECIES_MAGMORE 280 +#define SPECIES_MAGMOLTEN 281 +#define SPECIES_PINSIR 282 +#define SPECIES_PINSIRIOR 283 +#define SPECIES_ABYSSIR 284 +#define SPECIES_TAUROS 285 +#define SPECIES_TAUROX 286 +#define SPECIES_OXENFREE 287 +#define SPECIES_MAGIKARP 288 +#define SPECIES_GYARADOS 289 +#define SPECIES_HYDRADOS 290 +#define SPECIES_DRACOSMIC 291 +#define SPECIES_QUAZAR 292 +#define SPECIES_LAPRAS 293 +#define SPECIES_LOCHLASS 294 +#define SPECIES_NESSEA 295 +#define SPECIES_DITTO 296 +#define SPECIES_MORPHO 297 +#define SPECIES_METAMORPHO 298 +#define SPECIES_EEVEE 299 +#define SPECIES_VAPOREON 300 +#define SPECIES_RIVEON 301 +#define SPECIES_BRINEON 302 +#define SPECIES_JOLTEON 303 +#define SPECIES_PLASMEON 304 +#define SPECIES_GALVEON 305 +#define SPECIES_FLAREON 306 +#define SPECIES_SMOLDEON 307 +#define SPECIES_INFERNEON 308 +#define SPECIES_PORYGON 309 +#define SPECIES_PORYGON2 310 +#define SPECIES_PORYGONZ 311 +#define SPECIES_PORYGONX 312 +#define SPECIES_PORYGONQ 313 +#define SPECIES_PORYGON2A4 314 +#define SPECIES_OMANYTE 315 +#define SPECIES_OMASTAR 316 +#define SPECIES_OMAPAL 317 +#define SPECIES_OMAGUS 318 +#define SPECIES_KABUTO 319 +#define SPECIES_KABUTOPS 320 +#define SPECIES_KABUTAK 321 +#define SPECIES_KABUSTION 322 +#define SPECIES_AERODACTYL 323 +#define SPECIES_MANDILUFT 324 +#define SPECIES_AMBALITHIC 325 +#define SPECIES_SNORLAX 326 +#define SPECIES_ACTLAX 327 +#define SPECIES_GRIZZLAX 328 +#define SPECIES_ARTICUNO 329 +#define SPECIES_SNOWONE 330 +#define SPECIES_FROSTUNUS 331 +#define SPECIES_ZAPDOS 332 +#define SPECIES_SHOCKATOO 333 +#define SPECIES_VOLTDUO 334 +#define SPECIES_MOLTRES 335 +#define SPECIES_IGNITHREE 336 +#define SPECIES_INFERNTRI 337 +#define SPECIES_DRATINI 338 +#define SPECIES_DRAGONAIR 339 +#define SPECIES_DRAGONITE 340 +#define SPECIES_DRAGONIER 341 +#define SPECIES_DRAGONACE 342 +#define SPECIES_DRAGONTALE 343 +#define SPECIES_MEWTWO 344 +#define SPECIES_MEWTHREE 345 +#define SPECIES_MEWFOUR 346 +#define SPECIES_MEW 347 +#define SPECIES_NYU 348 +#define SPECIES_IOTA 349 +#define SPECIES_MISSINGNO1 350 +#define SPECIES_MISSINGNO2 351 +#define SPECIES_MISSINGNO3 352 +#define SPECIES_MISSINGNO4 353 +#define SPECIES_MISSINGNO5 354 + +#define SPECIES_EGG 355 +#define NUM_SPECIES SPECIES_EGG +#define SPECIES_SHINY_TAG 5000 +#endif // GUARD_CONSTANTS_SPECIES_H +//end of program \ No newline at end of file