using DSPRE.ROMFiles;
using System.Collections.Generic;
using System.Drawing;
using static DSPRE.RomInfo;

namespace DSPRE.Resources {
    public static class PokeDatabase {
        public static class Area {
            public static string[] PtAreaIconValues = new string[] {
                "[00] City",
                "[01] City",
                "[02] Town 1",
                "[03] Town 2",
                "[04] Cave",
                "[05] Forest",
                "[06] Water",
                "[07] Field",
                "[08] Island",
                "[09] Wood"
            };

            public static Dictionary<byte, string> HGSSAreaIconsDict = new Dictionary<byte, string>() {
                [00] = "Not displayed",
                [01] = "Wall",
                [02] = "Wood",
                [03] = "Town",
                [04] = "Cave",
                [05] = "Forest",
                [06] = "Water",
                [07] = "Field",
                [08] = "Lake",
                [09] = "Gray"
            };

            public static string[] HGSSAreaProperties = new string[] {
                "[00] Mystery Zone",
                "[01] City/Town",
                "[02] Route",
                "[03] Cave",
                "[04] Interior [Hide Name]",
                "[05] Pokémon Center",
                "[06] Underground",
                "[07] Unknown/Unused",
                "[08] Unknown/Unused",
                "[09] Unknown/Unused",
                "[10] Unknown/Unused",
                "[11] Unknown/Unused",
                "[12] Unknown/Unused",
                "[13] Unknown/Unused",
                "[14] Unknown/Unused",
                "[15] Unknown/Unused",
                "[16] Unknown/Unused",
            };
        }
        public static class ShowName {
            public static string[] DPShowNameValues = new string[] {
                "[000] Show",
                "[001] Show",
                "[002] Show",
                "[003] Show",
                "[004] Don't show"
            };
            public static string[] PtShowNameValues = new string[] {
                "[000] Show",
                "[001] Show",
                "[002] Show",
                "[003] Show",
                "[004] Don't show",
                "[128] Don't show",
                "[129] Show",
                "[130] Show",
                "[131] Show",
                "[132] Don't show",
                "[134] Show"
            };
        }
        public static class Weather {
            public static Dictionary<int, string> DPWeatherDict = new Dictionary<int, string> {
                [00] = "Normal",
                [01] = "Normal, somewhat dark",
                [02] = "Rain",
                [03] = "Heavy rain",
                [04] = "Thunderstorm",
                [05] = "Snowfall, slow",
                [06] = "Diamond dust",
                [07] = "Blizzard",
                [08] = "Normal [08]",
                [09] = "Volcanic ash fall, slow",
                [10] = "Sand storm",
                [11] = "Hail",
                [12] = "Rocks ascending (?)",
                [13] = "Normal [13]",
                [14] = "Fog",
                [15] = "Deep fog",
                [16] = "Dark, Flash usable",
                [17] = "Lightning, no rain",
                [18] = "Normal [18]",
                [19] = "Normal [19]",
                [20] = "Normal [20]",
                [21] = "Diamond dust [21]",
                [22] = "Volcanic ash storm",
                [23] = "Normal [23]",
                [24] = "Thunderstorm [24]",
                [25] = "Normal [25]",
                [26] = "Diamond dust [26]",
                [27] = "Diamond dust [27]",
                [28] = "Snowfall, slow [28]",
            };
            public static Dictionary<int, string> PtWeatherDict = new Dictionary<int, string> {
                [00] = "Normal",
                [01] = "Normal, somewhat dark",
                [02] = "Rain",
                [03] = "Heavy rain",
                [04] = "Thunderstorm",
                [05] = "Snowfall, slow",
                [06] = "Diamond dust",
                [07] = "Blizzard",
                [08] = "Normal [08]",
                [09] = "Volcanic ash fall, slow",
                [10] = "Sand storm",
                [11] = "Hail",
                [12] = "Rocks ascending (?)",
                [13] = "Normal [13]",
                [14] = "Fog",
                [15] = "Deep fog",
                [16] = "Dark, Flash usable",
                [17] = "Lightning, no rain",
                [18] = "Light fog",
                [19] = "Heavy fog",
                [20] = "Normal [20]",
                [21] = "Diamond dust [21]",
                [22] = "Volcanic ash fall, steady",
                [23] = "Eterna forest weather",
                [24] = "Player spotlight [24]",
                [25] = "Player spotlight [25]",
                [26] = "Dark fog",
                [27] = "Somewhat green",
                [28] = "Somewhat red",
                [29] = "Somewhat blue",
                [30] = "Dim light",
                [31] = "Normal [31]",
                [32] = "Rain [32]",
                [33] = "Normal [33]",
                [34] = "Diamond dust [34]",
                [35] = "Diamond dust [35]",
                [36] = "Snowfall, slow [36]",
            };
            public static Dictionary<int, string> HGSSWeatherDict = new Dictionary<int, string> {
                [00] = "Normal",
                [01] = "Rain",
                [02] = "Rain [2]",
                [03] = "Rain [3]",
                [04] = "Rain [4]",
                [05] = "Snow [5]",
                [06] = "Snow [6]",
                [07] = "Sandstorm (in battle only)",
                [08] = "Diamond Dust",
                [09] = "Fog",
                [10] = "Fog [10]",
                [11] = "Darkness",
                [12] = "Darkness after flash",
                [13] = "Low Light (Battle Arcade)"
            };
        }
        public static class CameraAngles {
            public static Dictionary<int, string> DPPtCameraDict = new Dictionary<int, string>() {
                [00] = "3D Normal",
                [01] = "3D Top Higher",
                [02] = "3D Front Low - Wide FOV",
                [03] = "3D Front",
                [04] = "2D Ortho",
                [05] = "3D Normal - Wide FOV",
                [06] = "3D Bird View",
                [07] = "3D Normal [07]",
                [08] = "3D Bird View Far",
                [09] = "3D Front - Wide FOV",
                [10] = "3D Top - Narrow",
                [11] = "3D Normal [11]",
                [12] = "3D Top",
                [13] = "Front 3D",
                [14] = "3D Top - Wide FOV",
                [15] = "3D Front Low"
            };
            public static Dictionary<int, string> HGSSCameraDict = new Dictionary<int, string>() {
                [00] = "3D Top View [00]",
                [01] = "3D Front High",
                [02] = "3D Lower",
                [03] = "3D Front",
                [04] = "2D Top View",
                [05] = "Normal 3D",
                [06] = "Normal 3D [06]",
                [07] = "High 3D",
                [08] = "3D Top View [08]",
                [09] = "3D Top View [09]",
                [10] = "3D High Wide",
                [11] = "3D Front Wide",
                [12] = "3D Lower Close",
                [13] = "3D Full Front",
                [14] = "3D Top View [14]",
                [15] = "2D Higher",
                [16] = "3D Top View [16]"
            };
        }
        public abstract class MusicDB {
            public static Dictionary<ushort, string> DPMusicDict = new Dictionary<ushort, string>() { //Perfectly contained in Platinum's, as it seems (?)
                [1000] = "Mystery Zone",
                [1001] = "Silence",
                [1002] = "Silence (Dungeon)",
                [1004] = "Twinleaf Town (Day)",
                [1005] = "Sandgem Town (Day)",
                [1006] = "Floaroma Town (Day)",
                [1007] = "Solaceon Town (Day)",
                [1008] = "Route 225 (Day)",
                [1009] = "Valor Lakefront (Day)",
                [1010] = "Jubilife City (Day)",
                [1011] = "Canalave City (Day)",
                [1012] = "Oreburgh City (Day)",
                [1013] = "Eterna City (Day)",
                [1014] = "Hearthome City (Day)",
                [1015] = "Pastoria City (Day)",
                [1016] = "Veilstone City (Day)",
                [1017] = "Sunyshore City (Day)",
                [1018] = "Snowpoint City (Day)",
                [1019] = "Pokémon League (Day)",
                [1020] = "Fight Area (Day)",
                [1021] = "Route 201 (Day)",
                [1022] = "Route 203 (Day)",
                [1023] = "Route 205 (Day)",
                [1024] = "Route 206 (Day)",
                [1025] = "Route 209 (Day)",
                [1026] = "Route 215 (Day)",
                [1027] = "Route 216 (Day)",
                [1028] = "Route 228 (Day)",
                [1029] = "Rowan Opening Theme",
                [1030] = "Twinleaf Town (Night)",
                [1031] = "Eterna City (Day - Variation)",
                [1032] = "Route 205 (Day - Variation)",
                [1033] = "Twinleaf Town (Night)",
                [1034] = "Sandgem Town (Night)",
                [1035] = "Floaroma Town (Night)",
                [1036] = "Pastoria City (Night)",
                [1037] = "Route 225 (Night)",
                [1038] = "Valor Lakefront (Night)",
                [1039] = "Jubilife City (Night)",
                [1040] = "Canalave City (Night)",
                [1041] = "Oreburgh City (Night)",
                [1042] = "Eterna City (Night)",
                [1043] = "Hearthome CIty (Night)",
                [1044] = "Pastoria City (Night)",
                [1045] = "Veilstone City (Night)",
                [1046] = "Sunyshore City (Night)",
                [1047] = "Snowpoint City (Night)",
                [1048] = "Pokémon League (Night)",
                [1049] = "Fight Area (Night)",
                [1050] = "Route 201 (Night)",
                [1051] = "Route 203 (Night)",
                [1052] = "Route 205 (Night)",
                [1053] = "Route 206 (Night)",
                [1054] = "Route 209 (Night)",
                [1055] = "Route 215 (Night)",
                [1056] = "Route 216 (Night)",
                [1057] = "Route 228 (Night)",
                [1058] = "Eterna City (Night - Variation)",
                [1059] = "Route 205 (Night - Variation)",
                [1060] = "The Underground",
                [1061] = "Captured a Flag!",
                [1062] = "Victory Road",
                [1063] = "Eterna Forest",
                [1064] = "Old Chateau",
                [1065] = "Cavern on the Lake",
                [1066] = "Amity Square",
                [1067] = "Team Galactic HQ",
                [1068] = "Galactic Eterna Building",
                [1069] = "Great Marsh",
                [1070] = "Lake theme (Day)",
                [1071] = "Mt. Coronet",
                [1072] = "Spear Pillar",
                [1073] = "Stark Mountain (in)",
                [1074] = "Cave 1",
                [1075] = "Cave 2",
                [1076] = "Elite 4 - Showdown",
                [1077] = "Hall of Fame",
                [1078] = "Victory Road [Unused 1]",
                [1080] = "Victory Road [Unused 2]",
                [1081] = "Pokémon Center (Day)",
                [1073] = "Stark Mountain (in) [Unused]",
                [1084] = "Hall of Fame [Unused]",
                [1085] = "Pokémon Center (Day)",
                [1086] = "Pokémon Center (Night)",
                [1087] = "Gym theme",
                [1088] = "Rowan's Lab",
                [1089] = "Poffin House",
                [1090] = "Pokémon Mart",
                [1091] = "Game Corner",
                [1092] = "Battle Tower (inside)",
                [1093] = "Jubilife TV",
                [1094] = "Team Galactic Lab",
                [1096] = "Hall of Origin",
                [1097] = "GTS theme"
            };
            public static Dictionary<ushort, string> PtMusicDict = new Dictionary<ushort, string>() {
                [1000] = "Mystery Zone",
                [1001] = "Silence",
                [1002] = "Silence (Dungeon)",
                [1004] = "Twinleaf Town (Day)",
                [1005] = "Sandgem Town (Day)",
                [1006] = "Floaroma Town (Day)",
                [1007] = "Solaceon Town (Day)",
                [1008] = "Route 225 (Day)",
                [1009] = "Valor Lakefront (Day)",
                [1010] = "Jubilife City (Day)",
                [1011] = "Canalave City (Day)",
                [1012] = "Oreburgh City (Day)",
                [1013] = "Eterna City (Day)",
                [1014] = "Hearthome City (Day)",
                [1015] = "Pastoria City (Day)",
                [1016] = "Veilstone City (Day)",
                [1017] = "Sunyshore City (Day)",
                [1018] = "Snowpoint City (Day)",
                [1019] = "Pokémon League (Day)",
                [1020] = "Fight Area (Day)",
                [1021] = "Route 201 (Day)",
                [1022] = "Route 203 (Day)",
                [1023] = "Route 205 (Day)",
                [1024] = "Route 206 (Day)",
                [1025] = "Route 209 (Day)",
                [1026] = "Route 215 (Day)",
                [1027] = "Route 216 (Day)",
                [1028] = "Route 228 (Day)",
                [1029] = "Rowan Opening Theme",
                [1030] = "Twinleaf Town (Night)",
                [1031] = "Eterna City (Day - Variation)",
                [1032] = "Route 205 (Day - Variation)",
                [1033] = "Twinleaf Town (Night)",
                [1034] = "Sandgem Town (Night)",
                [1035] = "Floaroma Town (Night)",
                [1036] = "Pastoria City (Night)",
                [1037] = "Route 225 (Night)",
                [1038] = "Valor Lakefront (Night)",
                [1039] = "Jubilife City (Night)",
                [1040] = "Canalave City (Night)",
                [1041] = "Oreburgh City (Night)",
                [1042] = "Eterna City (Night)",
                [1043] = "Hearthome CIty (Night)",
                [1044] = "Pastoria City (Night)",
                [1045] = "Veilstone City (Night)",
                [1046] = "Sunyshore City (Night)",
                [1047] = "Snowpoint City (Night)",
                [1048] = "Pokémon League (Night)",
                [1049] = "Fight Area (Night)",
                [1050] = "Route 201 (Night)",
                [1051] = "Route 203 (Night)",
                [1052] = "Route 205 (Night)",
                [1053] = "Route 206 (Night)",
                [1054] = "Route 209 (Night)",
                [1055] = "Route 215 (Night)",
                [1056] = "Route 216 (Night)",
                [1057] = "Route 228 (Night)",
                [1058] = "Eterna City (Night - Variation)",
                [1059] = "Route 205 (Night - Variation)",
                [1060] = "The Underground",
                [1061] = "Captured a Flag!",
                [1062] = "Victory Road",
                [1063] = "Eterna Forest",
                [1064] = "Old Chateau",
                [1065] = "Cavern on the Lake",
                [1066] = "Amity Square",
                [1067] = "Team Galactic HQ",
                [1068] = "Galactic Eterna Building",
                [1069] = "Great Marsh",
                [1070] = "Lake theme (Day)",
                [1071] = "Mt. Coronet",
                [1072] = "Spear Pillar",
                [1073] = "Stark Mountain (in)",
                [1074] = "Cave 1",
                [1075] = "Cave 2",
                [1076] = "Elite 4 - Showdown",
                [1077] = "Hall of Fame",
                [1078] = "Victory Road [Unused 1]",
                [1080] = "Victory Road [Unused 2]",
                [1081] = "Pokémon Center (Day)",
                [1073] = "Stark Mountain (in) [Unused]",
                [1084] = "Hall of Fame [Unused]",
                [1085] = "Pokémon Center (Day)",
                [1086] = "Pokémon Center (Night)",
                [1087] = "Gym theme",
                [1088] = "Rowan's Lab",
                [1089] = "Poffin House",
                [1090] = "Pokémon Mart",
                [1091] = "Game Corner",
                [1092] = "Battle Tower (inside)",
                [1093] = "Jubilife TV",
                [1094] = "Team Galactic Lab",
                [1096] = "Hall of Origin",
                [1097] = "GTS theme",
                [1190] = "Distortion World",
                [1191] = "Battle Arcade",
                [1192] = "Battle Hall",
                [1193] = "Battle Castle",
                [1194] = "Battle Castle [Unused]",
                [1195] = "Battle Factory",
                [1196] = "Global Terminal",
                [1198] = "Lilycove City (Bossa Nova)",
                [1212] = "Wi-Fi Plaza",
                [1213] = "Wi-Fi Plaza: Parade",
                [1218] = "Twinleaf Town (Music Box)",
            };
            public static Dictionary<ushort, string> HGSSMusicDict = new Dictionary<ushort, string>() {
                [1000] = "Mystery Zone",
                [1001] = "Silence [Outside]",
                [1002] = "Silence [Dungeon]",
                [1004] = "Opening Theme",
                [1008] = "Title Screen Theme",
                [1013] = "Bicycle Theme",
                [1018] = "New Bark Town",
                [1019] = "Cherrygrove City",
                [1020] = "Violet City",
                [1021] = "Azalea Town",
                [1022] = "Goldenrod City",
                [1023] = "Ecruteak City",
                [1024] = "Olivine City",
                [1025] = "Cianwood City",
                [1026] = "Mahogany Town",
                [1027] = "Blackthorn City",
                [1028] = "Route 29",
                [1029] = "Route 30/31",
                [1030] = "Route 32",
                [1031] = "Route 33",
                [1032] = "Route 34",
                [1033] = "Route 35/36/37",
                [1034] = "Route 40/41",
                [1035] = "Route 45/46",
                [1036] = "Route 38/39",
                [1037] = "Route 42/43/44",
                [1038] = "Vermillion City",
                [1039] = "Saffron City",
                [1040] = "Cerulean City",
                [1041] = "Lavender Town",
                [1042] = "Celadon City",
                [1043] = "Fuchsia City",
                [1044] = "Pewter City",
                [1045] = "Viridian City",
                [1046] = "Pallet Town",
                [1047] = "Cinnabar Island",
                [1050] = "Route 1",
                [1051] = "Route 2/22",
                [1052] = "Route 6",
                [1053] = "Route 4/5/9/10",
                [1054] = "Route 8/10",
                [1055] = "Route 7/16",
                [1056] = "Route 18/19/20",
                [1057] = "Route 3",
                [1058] = "Route 20/21",
                [1059] = "Route 11",
                [1060] = "Route 12/13/14/15",
                [1061] = "Route 24/25",
                [1062] = "Route 26/27",
                [1063] = "Pokémon Center",
                [1064] = "Pokémon Mart",
                [1065] = "Gym theme",
                [1066] = "Prof. Elm Lab",
                [1068] = "Kimono Girls Theater",
                [1069] = "Game Corner",
                [1070] = "Battle Frontier",
                [1071] = "Battle Tower",
                [1072] = "Sprout Tower",
                [1073] = "Ilex Forest",
                [1074] = "Ruins of Alph",
                [1075] = "National Park",
                [1076] = "Burned Tower",
                [1077] = "Bell Tower",
                [1078] = "Lighthouse",
                [1079] = "Team Rocket HQ",
                [1080] = "Ice Path",
                [1081] = "Dragon's Den",
                [1082] = "Diglett's Cave",
                [1083] = "Viridian Forest",
                [1084] = "Victory Road",
                [1085] = "Indigo Plateau",
                [1092] = "PokéAthlon Game",
                [1096] = "S.S. Aqua",
                [1097] = "Mt. Moon Plaza",
                [1099] = "Sleeping Radio Music",
                [1100] = "Pokemon March Radio",
                [1101] = "Unown Radio",
                [1102] = "Pokeflute Radio",
                [1103] = "Prof. Oak's Theme/Radio",
                [1134] = "Pokéathlon Dome (In)",
                [1141] = "Pokéathlon Dome (Out)",
                [1143] = "Battle Factory",
                [1144] = "Battle Hall",
                [1145] = "Battle Arcade",
                [1146] = "Battle Castle",
                [1151] = "Wi-Fi Union Room",
                [1153] = "WiFi Plaza Parade",
                [1154] = "GTS Terminal",
                [1155] = "Spin Trade Theme",
                [1157] = "Route 47/48",
                [1158] = "Safari Zone Gate",
                [1159] = "Pal Park",
                [1160] = "Ethan's Theme",
                [1161] = "Lyra's Theme",
                [1163] = "Kimono Girls Ritual",
                [1164] = "Kimono Girls Theme",
                [1165] = "Battle! Ho-Oh!",
                [1166] = "Battle! Lugia",
                [1166] = "Spiky-Eared Pichu",
                [1168] = "Sinjoh Ruins",
                [1169] = "Route 101 Radio",
                [1170] = "Route 201 Radio",
                [1171] = "Gym Theme [Radio]",
                [1172] = "Azalea Town [Radio]",
                [1172] = "Goldenrod City [Radio]",
                [1173] = "Battle! Kyogre/Groudon",
                [1175] = "PokéWalker Theme",
                [1176] = "Battle! Arceus (Event)",
                [1216] = "Route 17"
            };
        }
        public static class EventEditor {
            public static class Spawnables {
                public static string[] orientationsArray = new string[] {
                    "Front Interaction",
                    "Activated from the left",
                    "Activated from the right",
                    "Activated from behind",
                    "Activated from any dir",
                    "Activated from the sides",
                    "Front/Back Interaction",
                };
                public static string[] typesArray = new string[] {
                    "Misc",
                    "Board (Front Auto-Trigger)",
                    "Hidden Item",
                };
            }
            public static class Overworlds {
                public static string[] movementsArray = new string[] {
                    "[00]  None",
                    "[01]  None",
                    "[02]  Looking in all directions",
                    "[03]  Walking around in all directions",
                    "[04]  Walking Up, Down",
                    "[05]  Walking Left, Right",
                    "[06]  Looking Up, Left",
                    "[07]  Looking Up, Right",
                    "[08]  Looking Down, Left",
                    "[09]  Looking Down, Right",
                    "[10]  Looking Up, Down, Left",
                    "[11]  Looking Up, Right, Down",
                    "[12]  Looking Right, Left, Up",
                    "[13]  Looking Right, Left, Down",
                    "[14]  Facing Up",
                    "[15]  Facing Down",
                    "[16]  Facing Left",
                    "[17]  Facing Right",
                    "[18]  Counterclockwise spinning",
                    "[19]  Clockwise spinning",
                    "[20]  Running Up, Down",
                    "[21]  L Run (Up, Right)",
                    "[22]  Patrols, then stops (might crash)",
                    "[23]  Patrols, then stops (might crash)",
                    "[24]  L Run (Up, Right)",
                    "[25]  Patrols, then stops (might crash)",
                    "[26]  Patrols, then stops (might crash)",
                    "[27]  Patrols, then stops",
                    "[28]  L run (Right, Down)",
                    "[29]  L run (Left, Up)",
                    "[30]  Continuous patrolling (might crash)",
                    "[31]  Continuous patrolling (might crash)",
                    "[32]  L Run (Down, Right)",
                    "[33]  L Run (Right, Up)",
                    "[34]  Patrols Area, then stops",
                    "[35]  Patrols Area, then stops",
                    "[36]  L Run (Down, Left)",
                    "[37]  Running Up, Left, Down, Right",
                    "[38]  Running Down, Right, Up, Left",
                    "[39]  Running Left, Down, Right, Up",
                    "[40]  Running Right, Up, Left, Down",
                    "[41]  Running Up, Right, Down, Left",
                    "[42]  Running Down, Left, Up, Right",
                    "[43]  Running Left, Up, Right, Down",
                    "[44]  Running Right, Down, Left, Up",
                    "[45]  Looking Up, Down",
                    "[46]  Looking Right, Left",
                    "[47]  Crashes game (?)",
                    "[48]  Follow Hero",
                    "[49]  Semi-circle spin (Down, Right, Up)",
                    "[50]  Looking down",
                    "[51]  Hidden Under Snow",
                    "[52]  Hidden Under Snow",
                    "[53]  Hidden Underground",
                    "[54]  Hidden Under Grass",
                    "[55]  Follow Hero",
                    "[56]  Disappears",
                    "[57]  Looking Left",
                    "[58]  Looking Right",
                    "[59]  Mimick's Player facing direction",
                    "[60]  Mimick's Player facing direction",
                    "[61]  Mimick's Player facing direction",
                    "[62]  Mimick's Player facing direction",
                    "[63]  Apparently nothing (?)",
                    "[64]  Apparently nothing (?)",
                    "[65]  Apparently nothing (?)",
                    "[66]  Apparently nothing (?)",
                    "[67]  Walking Right, Left",
                    "[68]  Looking Right",
                    "[69]  Apparently nothing (?)",
                    "[70]  Apparently nothing (?)",
                    "[71]  Looking Left"
                };
            }
        }
        public static class System {
            public static Dictionary<string, gVerEnum> versionsDict = new Dictionary<string, gVerEnum>() {
                ["ADAE"] = gVerEnum.Diamond,
                ["ADAS"] = gVerEnum.Diamond,
                ["ADAI"] = gVerEnum.Diamond,
                ["ADAF"] = gVerEnum.Diamond,
                ["ADAD"] = gVerEnum.Diamond,
                ["ADAJ"] = gVerEnum.Diamond,

                ["APAE"] = gVerEnum.Pearl,
                ["APAS"] = gVerEnum.Pearl,
                ["APAI"] = gVerEnum.Pearl,
                ["APAF"] = gVerEnum.Pearl,
                ["APAD"] = gVerEnum.Pearl,
                ["APAJ"] = gVerEnum.Pearl,

                ["CPUE"] = gVerEnum.Platinum,
                ["CPUS"] = gVerEnum.Platinum,
                ["CPUI"] = gVerEnum.Platinum,
                ["CPUF"] = gVerEnum.Platinum,
                ["CPUD"] = gVerEnum.Platinum,
                ["CPUJ"] = gVerEnum.Platinum,
                ["CPUP"] = gVerEnum.Platinum,

                ["IPKE"] = gVerEnum.HeartGold,
                ["IPKS"] = gVerEnum.HeartGold,
                ["IPKI"] = gVerEnum.HeartGold,
                ["IPKF"] = gVerEnum.HeartGold,
                ["IPKD"] = gVerEnum.HeartGold,
                ["IPKJ"] = gVerEnum.HeartGold,

                ["IPGE"] = gVerEnum.SoulSilver,
                ["IPGS"] = gVerEnum.SoulSilver,
                ["IPGI"] = gVerEnum.SoulSilver,
                ["IPGF"] = gVerEnum.SoulSilver,
                ["IPGD"] = gVerEnum.SoulSilver,
                ["IPGJ"] = gVerEnum.SoulSilver
            };

            public static Dictionary<byte, string> MapCollisionPainters = new Dictionary<byte, string>() {
                [0x00] = "[00] Walkable",
                [0x04] = "[04] Grass Sound",
                [0x80] = "[80] Blocked"
            };
            public static Dictionary<byte, string> MapCollisionTypePainters = new Dictionary<byte, string>() {
                [0x00] = "[00] None",
                [0x02] = "[02] Tall Grass (Wild)",
                [0x03] = "[03] Very Tall Grass (Wild)",
                [0x06] = "[06] Tree Headbutt (HGSS)",
                [0x08] = "[08] Cave Floor",
                [0x0B] = "[0B] Old Château floor",
                [0x0C] = "[0C] Ground Mountain",
                [0x10] = "[10] River Water (Wild)",
                [0x11] = "[11] Whirlpool (HGSS)",
                [0x13] = "[13] Waterfall",
                [0x15] = "[15] Sea Water (Wild)",
                [0x16] = "[16] Puddle",
                [0x17] = "[17] Shallow Walkable water",
                [0x1D] = "[1D] Puddle (No Splashing)",
                [0x20] = "[20] Ice",
                [0x21] = "[21] Sand",
                [0x22] = "[22] Cave Underwater",
                [0x24] = "[24] Safari Zone Border",
                [0x2C] = "[2C] Magma",
                [0x2D] = "[2D] Reflection",
                [0x30] = "[30] Block Right",
                [0x31] = "[31] Block Left",
                [0x32] = "[32] Block Up",
                [0x33] = "[33] Block Down",
                [0x34] = "[34] Block Right & Up",
                [0x35] = "[35] Block Left & Up",
                [0x36] = "[36] Block Right & Down",
                [0x37] = "[37] Block Left & Down",
                [0x38] = "[38] Jump Right",
                [0x39] = "[39] Jump Left",
                [0x3A] = "[3A] Jump Up (Broken in HGSS)",
                [0x3B] = "[3B] Jump Down",
                [0x3C] = "[3C] Ladder front",
                [0x3D] = "[3D] Ladder back",
                [0x3E] = "[3E] Ladder down",
                [0x3F] = "[3F] Jump Corner DownLeft",
                [0x40] = "[40] Slide Right",
                [0x41] = "[41] Slide Left",
                [0x42] = "[42] Slide Up",
                [0x43] = "[43] Slide Down",
                [0x49] = "[49] Block Down & Up",
                [0x4A] = "[4A] Block Left & Right",
                [0x4B] = "[4B] Horiz Rock Climb",
                [0x4C] = "[4C] Vert Rock Climb",
                [0x4D] = "[4D] Stop Sliding",
                [0x5A] = "[5A] Jump Up Two Tiles",
                [0x5B] = "[5B] Jump Down Two Tiles",
                [0x5C] = "[5C] Jump Left Two Tiles",
                [0x5D] = "[5D] Jump Right Two Tiles",
                [0x5E] = "[5E] Stairs Warp (Right)",
                [0x5F] = "[5F] Stairs Warp (Left)",
                [0x62] = "[62] Warp Entrance (Right)",
                [0x63] = "[63] Warp Entrance (Left)",
                [0x64] = "[64] Warp Entrance (Up)",
                [0x65] = "[65] Warp Entrance (Down)",
                [0x67] = "[67] Warp Panel",
                [0x69] = "[69] Door Warp",
                [0x6A] = "[6A] Escalator Warp (Down-Right)",
                [0x6B] = "[6B] Escalator Warp (Up-Right)",
                [0x6C] = "[6C] Warp Right",
                [0x6D] = "[6D] Warp Left",
                [0x6E] = "[6E] Warp Up",
                [0x6F] = "[6F] Warp Down",
                [0x70] = "[70] Bridge Start",
                [0x71] = "[71] Bridge Middle",
                [0x72] = "[72] Bridge Over Cave",
                [0x73] = "[73] Bridge Over Water",
                [0x74] = "[74] Bridge Over Sand",
                [0x75] = "[75] Bridge Over Snow",
                [0x76] = "[76] Vertical bike bridge",
                [0x77] = "[77] Vertical bridge (ground enc)",
                [0x78] = "[78] Vertical bike bridge over water",
                [0x79] = "[79] Vertical bike bridge over sand",
                [0x7A] = "[7A] Horizontal bike bridge",
                [0x7B] = "[7B] Horizontal bike bridge over ground encounters",
                [0x7C] = "[7C] Horizontal bike bridge over water",
                [0x7D] = "[7D] Horizontal bike bridge over sand",
                [0x80] = "[80] Table",
                [0x83] = "[83] Storage PC",
                [0x85] = "[85] Open TownMap",
                [0x86] = "[86] TV",
                [0xA0] = "[A0] Farm Land",
                [0xA1] = "[A1] Deep Snow",
                [0xA2] = "[A2] Very Deep Snow",
                [0xA3] = "[A3] Ultra Deep Snow",
                [0xA4] = "[A4] Mud",
                [0xA5] = "[A5] Deep Mud",
                [0xA6] = "[A6] Mud Grass 1",
                [0xA7] = "[A7] Mud Grass 2",
                [0xA8] = "[A8] Snow",
                [0xA9] = "[A9] Snow with Shadows",
                [0xD5] = "[D5] Bridge (Vertical)",
                [0xD5] = "[D5] Bridge (Horizontal)",
                [0xD7] = "[D7] Bike Jump Left",
                [0xD8] = "[D8] Bike Jump Right",
                [0xD9] = "[D9] Bike Slope Top",
                [0xDA] = "[DA] Bike Slope Bottom",
                [0xDB] = "[DB] Bike parking",
                [0xE0] = "[E0] Small Bookshelf 1",
                [0xE1] = "[E1] Large Bookshelf 1",
                [0xE2] = "[E2] Large Bookshelf 2",
                [0xE3] = "[E3] Pot",
                [0xE4] = "[E4] Trash Can",
                [0xE5] = "[E5] Store Shelf 1",
                [0xE6] = "[E6] Blueprint",
                [0xEA] = "[EA] Small Bookshelf 2",
                [0xEB] = "[EB] Store Shelf 2",
                [0xEC] = "[EC] Store Shelf 3",
                [0xFF] = "[FF] No Attribute"
            };
            public static Dictionary<ushort, string> pokeNames = new Dictionary<ushort, string>() {
                [1] = "Bulbasaur",
                [2] = "Ivysaur",
                [3] = "Venusaur",
                [4] = "Charmander",
                [5] = "Charmeleon",
                [6] = "Charizard",
                [7] = "Squirtle",
                [8] = "Wartortle",
                [9] = "Blastoise",
                [10] = "Caterpie",
                [11] = "Metapod",
                [12] = "Butterfree",
                [13] = "Weedle",
                [14] = "Kakuna",
                [15] = "Beedrill",
                [16] = "Pidgey",
                [17] = "Pidgeotto",
                [18] = "Pidgeot",
                [19] = "Rattata",
                [20] = "Raticate",
                [21] = "Spearow",
                [22] = "Fearow",
                [23] = "Ekans",
                [24] = "Arbok",
                [25] = "Pikachu",
                [26] = "Raichu",
                [27] = "Sandshrew",
                [28] = "Sandslash",
                [29] = "Nidoran♀",
                [30] = "Nidorina",
                [31] = "Nidoqueen",
                [32] = "Nidoran♂",
                [33] = "Nidorino",
                [34] = "Nidoking",
                [35] = "Clefairy",
                [36] = "Clefable",
                [37] = "Vulpix",
                [38] = "Ninetales",
                [39] = "Jigglypuff",
                [40] = "Wigglytuff",
                [41] = "Zubat",
                [42] = "Golbat",
                [43] = "Oddish",
                [44] = "Gloom",
                [45] = "Vileplume",
                [46] = "Paras",
                [47] = "Parasect",
                [48] = "Venonat",
                [49] = "Venomoth",
                [50] = "Diglett",
                [51] = "Dugtrio",
                [52] = "Meowth",
                [53] = "Persian",
                [54] = "Psyduck",
                [55] = "Golduck",
                [56] = "Mankey",
                [57] = "Primeape",
                [58] = "Growlithe",
                [59] = "Arcanine",
                [60] = "Poliwag",
                [61] = "Poliwhirl",
                [62] = "Poliwrath",
                [63] = "Abra",
                [64] = "Kadabra",
                [65] = "Alakazam",
                [66] = "Machop",
                [67] = "Machoke",
                [68] = "Machamp",
                [69] = "Bellsprout",
                [70] = "Weepinbell",
                [71] = "Victreebel",
                [72] = "Tentacool",
                [73] = "Tentacruel",
                [74] = "Geodude",
                [75] = "Graveler",
                [76] = "Golem",
                [77] = "Ponyta",
                [78] = "Rapidash",
                [79] = "Slowpoke",
                [80] = "Slowbro",
                [81] = "Magnemite",
                [82] = "Magneton",
                [83] = "Farfetch’d",
                [84] = "Doduo",
                [85] = "Dodrio",
                [86] = "Seel",
                [87] = "Dewgong",
                [88] = "Grimer",
                [89] = "Muk",
                [90] = "Shellder",
                [91] = "Cloyster",
                [92] = "Gastly",
                [93] = "Haunter",
                [94] = "Gengar",
                [95] = "Onix",
                [96] = "Drowzee",
                [97] = "Hypno",
                [98] = "Krabby",
                [99] = "Kingler",
                [100] = "Voltorb",
                [101] = "Electrode",
                [102] = "Exeggcute",
                [103] = "Exeggutor",
                [104] = "Cubone",
                [105] = "Marowak",
                [106] = "Hitmonlee",
                [107] = "Hitmonchan",
                [108] = "Lickitung",
                [109] = "Koffing",
                [110] = "Weezing",
                [111] = "Rhyhorn",
                [112] = "Rhydon",
                [113] = "Chansey",
                [114] = "Tangela",
                [115] = "Kangaskhan",
                [116] = "Horsea",
                [117] = "Seadra",
                [118] = "Goldeen",
                [119] = "Seaking",
                [120] = "Staryu",
                [121] = "Starmie",
                [122] = "Mr. Mime",
                [123] = "Scyther",
                [124] = "Jynx",
                [125] = "Electabuzz",
                [126] = "Magmar",
                [127] = "Pinsir",
                [128] = "Tauros",
                [129] = "Magikarp",
                [130] = "Gyarados",
                [131] = "Lapras",
                [132] = "Ditto",
                [133] = "Eevee",
                [134] = "Vaporeon",
                [135] = "Jolteon",
                [136] = "Flareon",
                [137] = "Porygon",
                [138] = "Omanyte",
                [139] = "Omastar",
                [140] = "Kabuto",
                [141] = "Kabutops",
                [142] = "Aerodactyl",
                [143] = "Snorlax",
                [144] = "Articuno",
                [145] = "Zapdos",
                [146] = "Moltres",
                [147] = "Dratini",
                [148] = "Dragonair",
                [149] = "Dragonite",
                [150] = "Mewtwo",
                [151] = "Mew",
                [152] = "Chikorita",
                [153] = "Bayleef",
                [154] = "Meganium",
                [155] = "Cyndaquil",
                [156] = "Quilava",
                [157] = "Typhlosion",
                [158] = "Totodile",
                [159] = "Croconaw",
                [160] = "Feraligatr",
                [161] = "Sentret",
                [162] = "Furret",
                [163] = "Hoothoot",
                [164] = "Noctowl",
                [165] = "Ledyba",
                [166] = "Ledian",
                [167] = "Spinarak",
                [168] = "Ariados",
                [169] = "Crobat",
                [170] = "Chinchou",
                [171] = "Lanturn",
                [172] = "Pichu",
                [173] = "Cleffa",
                [174] = "Igglybuff",
                [175] = "Togepi",
                [176] = "Togetic",
                [177] = "Natu",
                [178] = "Xatu",
                [179] = "Mareep",
                [180] = "Flaaffy",
                [181] = "Ampharos",
                [182] = "Bellossom",
                [183] = "Marill",
                [184] = "Azumarill",
                [185] = "Sudowoodo",
                [186] = "Politoed",
                [187] = "Hoppip",
                [188] = "Skiploom",
                [189] = "Jumpluff",
                [190] = "Aipom",
                [191] = "Sunkern",
                [192] = "Sunflora",
                [193] = "Yanma",
                [194] = "Wooper",
                [195] = "Quagsire",
                [196] = "Espeon",
                [197] = "Umbreon",
                [198] = "Murkrow",
                [199] = "Slowking",
                [200] = "Misdreavus",
                [201] = "Unown",
                [202] = "Wobbuffet",
                [203] = "Girafarig",
                [204] = "Pineco",
                [205] = "Forretress",
                [206] = "Dunsparce",
                [207] = "Gligar",
                [208] = "Steelix",
                [209] = "Snubbull",
                [210] = "Granbull",
                [211] = "Qwilfish",
                [212] = "Scizor",
                [213] = "Shuckle",
                [214] = "Heracross",
                [215] = "Sneasel",
                [216] = "Teddiursa",
                [217] = "Ursaring",
                [218] = "Slugma",
                [219] = "Magcargo",
                [220] = "Swinub",
                [221] = "Piloswine",
                [222] = "Corsola",
                [223] = "Remoraid",
                [224] = "Octillery",
                [225] = "Delibird",
                [226] = "Mantine",
                [227] = "Skarmory",
                [228] = "Houndour",
                [229] = "Houndoom",
                [230] = "Kingdra",
                [231] = "Phanpy",
                [232] = "Donphan",
                [233] = "Porygon2",
                [234] = "Stantler",
                [235] = "Smeargle",
                [236] = "Tyrogue",
                [237] = "Hitmontop",
                [238] = "Smoochum",
                [239] = "Elekid",
                [240] = "Magby",
                [241] = "Miltank",
                [242] = "Blissey",
                [243] = "Raikou",
                [244] = "Entei",
                [245] = "Suicune",
                [246] = "Larvitar",
                [247] = "Pupitar",
                [248] = "Tyranitar",
                [249] = "Lugia",
                [250] = "Ho-Oh",
                [251] = "Celebi",
                [252] = "Treecko",
                [253] = "Grovyle",
                [254] = "Sceptile",
                [255] = "Torchic",
                [256] = "Combusken",
                [257] = "Blaziken",
                [258] = "Mudkip",
                [259] = "Marshtomp",
                [260] = "Swampert",
                [261] = "Poochyena",
                [262] = "Mightyena",
                [263] = "Zigzagoon",
                [264] = "Linoone",
                [265] = "Wurmple",
                [266] = "Silcoon",
                [267] = "Beautifly",
                [268] = "Cascoon",
                [269] = "Dustox",
                [270] = "Lotad",
                [271] = "Lombre",
                [272] = "Ludicolo",
                [273] = "Seedot",
                [274] = "Nuzleaf",
                [275] = "Shiftry",
                [276] = "Taillow",
                [277] = "Swellow",
                [278] = "Wingull",
                [279] = "Pelipper",
                [280] = "Ralts",
                [281] = "Kirlia",
                [282] = "Gardevoir",
                [283] = "Surskit",
                [284] = "Masquerain",
                [285] = "Shroomish",
                [286] = "Breloom",
                [287] = "Slakoth",
                [288] = "Vigoroth",
                [289] = "Slaking",
                [290] = "Nincada",
                [291] = "Ninjask",
                [292] = "Shedinja",
                [293] = "Whismur",
                [294] = "Loudred",
                [295] = "Exploud",
                [296] = "Makuhita",
                [297] = "Hariyama",
                [298] = "Azurill",
                [299] = "Nosepass",
                [300] = "Skitty",
                [301] = "Delcatty",
                [302] = "Sableye",
                [303] = "Mawile",
                [304] = "Aron",
                [305] = "Lairon",
                [306] = "Aggron",
                [307] = "Meditite",
                [308] = "Medicham",
                [309] = "Electrike",
                [310] = "Manectric",
                [311] = "Plusle",
                [312] = "Minun",
                [313] = "Volbeat",
                [314] = "Illumise",
                [315] = "Roselia",
                [316] = "Gulpin",
                [317] = "Swalot",
                [318] = "Carvanha",
                [319] = "Sharpedo",
                [320] = "Wailmer",
                [321] = "Wailord",
                [322] = "Numel",
                [323] = "Camerupt",
                [324] = "Torkoal",
                [325] = "Spoink",
                [326] = "Grumpig",
                [327] = "Spinda",
                [328] = "Trapinch",
                [329] = "Vibrava",
                [330] = "Flygon",
                [331] = "Cacnea",
                [332] = "Cacturne",
                [333] = "Swablu",
                [334] = "Altaria",
                [335] = "Zangoose",
                [336] = "Seviper",
                [337] = "Lunatone",
                [338] = "Solrock",
                [339] = "Barboach",
                [340] = "Whiscash",
                [341] = "Corphish",
                [342] = "Crawdaunt",
                [343] = "Baltoy",
                [344] = "Claydol",
                [345] = "Lileep",
                [346] = "Cradily",
                [347] = "Anorith",
                [348] = "Armaldo",
                [349] = "Feebas",
                [350] = "Milotic",
                [351] = "Castform",
                [352] = "Kecleon",
                [353] = "Shuppet",
                [354] = "Banette",
                [355] = "Duskull",
                [356] = "Dusclops",
                [357] = "Tropius",
                [358] = "Chimecho",
                [359] = "Absol",
                [360] = "Wynaut",
                [361] = "Snorunt",
                [362] = "Glalie",
                [363] = "Spheal",
                [364] = "Sealeo",
                [365] = "Walrein",
                [366] = "Clamperl",
                [367] = "Huntail",
                [368] = "Gorebyss",
                [369] = "Relicanth",
                [370] = "Luvdisc",
                [371] = "Bagon",
                [372] = "Shelgon",
                [373] = "Salamence",
                [374] = "Beldum",
                [375] = "Metang",
                [376] = "Metagross",
                [377] = "Regirock",
                [378] = "Regice",
                [379] = "Registeel",
                [380] = "Latias",
                [381] = "Latios",
                [382] = "Kyogre",
                [383] = "Groudon",
                [384] = "Rayquaza",
                [385] = "Jirachi",
                [386] = "Deoxys",
                [387] = "Turtwig",
                [388] = "Grotle",
                [389] = "Torterra",
                [390] = "Chimchar",
                [391] = "Monferno",
                [392] = "Infernape",
                [393] = "Piplup",
                [394] = "Prinplup",
                [395] = "Empoleon",
                [396] = "Starly",
                [397] = "Staravia",
                [398] = "Staraptor",
                [399] = "Bidoof",
                [400] = "Bibarel",
                [401] = "Kricketot",
                [402] = "Kricketune",
                [403] = "Shinx",
                [404] = "Luxio",
                [405] = "Luxray",
                [406] = "Budew",
                [407] = "Roserade",
                [408] = "Cranidos",
                [409] = "Rampardos",
                [410] = "Shieldon",
                [411] = "Bastiodon",
                [412] = "Burmy",
                [413] = "Wormadam",
                [414] = "Mothim",
                [415] = "Combee",
                [416] = "Vespiquen",
                [417] = "Pachirisu",
                [418] = "Buizel",
                [419] = "Floatzel",
                [420] = "Cherubi",
                [421] = "Cherrim",
                [422] = "Shellos",
                [423] = "Gastrodon",
                [424] = "Ambipom",
                [425] = "Drifloon",
                [426] = "Drifblim",
                [427] = "Buneary",
                [428] = "Lopunny",
                [429] = "Mismagius",
                [430] = "Honchkrow",
                [431] = "Glameow",
                [432] = "Purugly",
                [433] = "Chingling",
                [434] = "Stunky",
                [435] = "Skuntank",
                [436] = "Bronzor",
                [437] = "Bronzong",
                [438] = "Bonsly",
                [439] = "Mime Jr.",
                [440] = "Happiny",
                [441] = "Chatot",
                [442] = "Spiritomb",
                [443] = "Gible",
                [444] = "Gabite",
                [445] = "Garchomp",
                [446] = "Munchlax",
                [447] = "Riolu",
                [448] = "Lucario",
                [449] = "Hippopotas",
                [450] = "Hippowdon",
                [451] = "Skorupi",
                [452] = "Drapion",
                [453] = "Croagunk",
                [454] = "Toxicroak",
                [455] = "Carnivine",
                [456] = "Finneon",
                [457] = "Lumineon",
                [458] = "Mantyke",
                [459] = "Snover",
                [460] = "Abomasnow",
                [461] = "Weavile",
                [462] = "Magnezone",
                [463] = "Lickilicky",
                [464] = "Rhyperior",
                [465] = "Tangrowth",
                [466] = "Electivire",
                [467] = "Magmortar",
                [468] = "Togekiss",
                [469] = "Yanmega",
                [470] = "Leafeon",
                [471] = "Glaceon",
                [472] = "Gliscor",
                [473] = "Mamoswine",
                [474] = "Porygon-Z",
                [475] = "Gallade",
                [476] = "Probopass",
                [477] = "Dusknoir",
                [478] = "Froslass",
                [479] = "Rotom",
                [480] = "Uxie",
                [481] = "Mesprit",
                [482] = "Azelf",
                [483] = "Dialga",
                [484] = "Palkia",
                [485] = "Heatran",
                [486] = "Regigigas",
                [487] = "Giratina",
                [488] = "Cresselia",
                [489] = "Phione",
                [490] = "Manaphy",
                [491] = "Darkrai",
                [492] = "Shaymin",
                [493] = "Arceus",
                [494] = "Egg",
                [495] = "Bad Egg",
                
				// empty indices 
                [496] = "Egg",
                [497] = "Egg",
                [498] = "Egg",
                [499] = "Egg",
                [500] = "Egg",
                [501] = "Egg",
                [502] = "Egg",
                [503] = "Egg",
                [504] = "Egg",
                [505] = "Egg",
                [506] = "Egg",
                [507] = "Egg",
                [508] = "Egg",
                [509] = "Egg",
                [510] = "Egg",
                [511] = "Egg",
                [512] = "Egg",
                [513] = "Egg",
                [514] = "Egg",
                [515] = "Egg",
                [516] = "Egg",
                [517] = "Egg",
                [518] = "Egg",
                [519] = "Egg",
                [520] = "Egg",
                [521] = "Egg",
                [522] = "Egg",
                [523] = "Egg",
                [524] = "Egg",
                [525] = "Egg",
                [526] = "Egg",
                [527] = "Egg",
                [528] = "Egg",
                [529] = "Egg",
                [530] = "Egg",
                [531] = "Egg",
                [532] = "Egg",
                [533] = "Egg",
                [534] = "Egg",
                [535] = "Egg",
                [536] = "Egg",
                [537] = "Egg",
                [538] = "Egg",
                [539] = "Egg",
                [540] = "Egg",
                [541] = "Egg",
                [542] = "Egg",
                [543] = "Egg",

				// Gen V
				[544] = "Victini",
				[545] = "Snivy",
				[546] = "Servine",
				[547] = "Serperior",
				[548] = "Tepig",
				[549] = "Pignite",
				[550] = "Emboar",
				[551] = "Oshawott",
				[552] = "Dewott",
				[553] = "Samurott",
				[554] = "Patrat",
				[555] = "Watchog",
				[556] = "Lillipup",
				[557] = "Herdier",
				[558] = "Stoutland",
				[559] = "Purrloin",
				[560] = "Liepard",
				[561] = "Pansage",
				[562] = "Simisage",
				[563] = "Pansear",
				[564] = "Simisear",
				[565] = "Panpour",
				[566] = "Simipour",
				[567] = "Munna",
				[568] = "Musharna",
				[569] = "Pidove",
				[570] = "Tranquill",
				[571] = "Unfezant",
				[572] = "Blitzle",
				[573] = "Zebstrika",
				[574] = "Roggenrola",
				[575] = "Boldore",
				[576] = "Gigalith",
				[577] = "Woobat",
				[578] = "Swoobat",
				[579] = "Drilbur",
				[580] = "Excadrill",
				[581] = "Audino",
				[582] = "Timburr",
				[583] = "Gurdurr",
				[584] = "Conkeldurr",
				[585] = "Tympole",
				[586] = "Palpitoad",
				[587] = "Seismitoad",
				[588] = "Throh",
				[589] = "Sawk",
				[590] = "Sewaddle",
				[591] = "Swadloon",
				[592] = "Leavanny",
				[593] = "Venipede",
				[594] = "Whirlipede",
				[595] = "Scolipede",
				[596] = "Cottonee",
				[597] = "Whimsicott",
				[598] = "Petilil",
				[599] = "Lilligant",
				[600] = "Basculin",
				[601] = "Sandile",
				[602] = "Krokorok",
				[603] = "Krookodile",
				[604] = "Darumaka",
				[605] = "Darmanitan",
				[606] = "Maractus",
				[607] = "Dwebble",
				[608] = "Crustle",
				[609] = "Scraggy",
				[610] = "Scrafty",
				[611] = "Sigilyph",
				[612] = "Yamask",
				[613] = "Cofagrigus",
				[614] = "Tirtouga",
				[615] = "Carracosta",
				[616] = "Archen",
				[617] = "Archeops",
				[618] = "Trubbish",
				[619] = "Garbodor",
				[620] = "Zorua",
				[621] = "Zoroark",
				[622] = "Minccino",
				[623] = "Cinccino",
				[624] = "Gothita",
				[625] = "Gothorita",
				[626] = "Gothitelle",
				[627] = "Solosis",
				[628] = "Duosion",
				[629] = "Reuniclus",
				[630] = "Ducklett",
				[631] = "Swanna",
				[632] = "Vanillite",
				[633] = "Vanillish",
				[634] = "Vanilluxe",
				[635] = "Deerling",
				[636] = "Sawsbuck",
				[637] = "Emolga",
				[638] = "Karrablast",
				[639] = "Escavalier",
				[640] = "Foongus",
				[641] = "Amoonguss",
				[642] = "Frillish",
				[643] = "Jellicent",
				[644] = "Alomomola",
				[645] = "Joltik",
				[646] = "Galvantula",
				[647] = "Ferroseed",
				[648] = "Ferrothorn",
				[649] = "Klink",
				[650] = "Klang",
				[651] = "Klinklang",
				[652] = "Tynamo",
				[653] = "Eelektrik",
				[654] = "Eelektross",
				[655] = "Elgyem",
				[656] = "Beheeyem",
				[657] = "Litwick",
				[658] = "Lampent",
				[659] = "Chandelure",
				[660] = "Axew",
				[661] = "Fraxure",
				[662] = "Haxorus",
				[663] = "Cubchoo",
				[664] = "Beartic",
				[665] = "Cryogonal",
				[666] = "Shelmet",
				[667] = "Accelgor",
				[668] = "Stunfisk",
				[669] = "Mienfoo",
				[670] = "Mienshao",
				[671] = "Druddigon",
				[672] = "Golett",
				[673] = "Golurk",
				[674] = "Pawniard",
				[675] = "Bisharp",
				[676] = "Bouffalant",
				[677] = "Rufflet",
				[678] = "Braviary",
				[679] = "Vullaby",
				[680] = "Mandibuzz",
				[681] = "Heatmor",
				[682] = "Durant",
				[683] = "Deino",
				[684] = "Zweilous",
				[685] = "Hydreigon",
				[686] = "Larvesta",
				[687] = "Volcarona",
				[688] = "Cobalion",
				[689] = "Terrakion",
				[690] = "Virizion",
				[691] = "Tornadus",
				[692] = "Thundurus",
				[693] = "Reshiram",
				[694] = "Zekrom",
				[695] = "Landorus",
				[696] = "Kyurem",
				[697] = "Keldeo",
				[698] = "Meloetta",
				[699] = "Genesect",
            };
            public static class MatrixCellColors {
                /* Initialize dictionary of colors corresponding to border maps in the matrix editor */
                public static Dictionary<List<uint>, (Color back, Color fore)> DPPtmatrixColorsDict = new Dictionary<List<uint>, (Color back, Color fore)> {
                    [new List<uint> { 173, 176, 177, 179 }] = (Color.ForestGreen, Color.White),
                    [new List<uint> { 174 }] = (Color.SteelBlue, Color.White),
                    [new List<uint> { 175 }] = (Color.Sienna, Color.White),
                    [new List<uint> { 178 }] = (Color.PowderBlue, Color.Black),
                    [new List<uint> { GameMatrix.EMPTY }] = (Color.Black, Color.White)
                };
                public static Dictionary<List<uint>, (Color back, Color fore)> HGSSmatrixColorsDict = new Dictionary<List<uint>, (Color back, Color fore)> {
                    [new List<uint> { 208 }] = (Color.ForestGreen, Color.White),
                    [new List<uint> { 209 }] = (Color.SteelBlue, Color.White),
                    [new List<uint> { 210 }] = (Color.Sienna, Color.White),
                    [new List<uint> { GameMatrix.EMPTY }] = (Color.Black, Color.White)
                };
                public static Dictionary<List<uint>, (Color back, Color fore)> GenericMatrixColorsDict = new Dictionary<List<uint>, (Color back, Color fore)> {
                    [new List<uint> { 203 }] = (Color.FromArgb(80, 200, 16), Color.White),
                    [new List<uint> { 204, 209 }] = (Color.SteelBlue, Color.White),
                    [new List<uint> { 205, 206 }] = (Color.DarkGreen, Color.White),
                    [new List<uint> { 207, 208 }] = (Color.ForestGreen, Color.White),
                    [new List<uint> { 210 }] = (Color.Sienna, Color.White),
                    [new List<uint> { GameMatrix.EMPTY }] = (Color.Black, Color.White)
                };
            }
            public static class AreaPics {
                public static Dictionary<int, string> hgssAreaPicDict = new Dictionary<int, string>() {
                    [0] = "empty",
                    [1] = "hgsswall",
                    [2] = "hgsswood",
                    [3] = "hgsstown",
                    [4] = "hgsscave",
                    [5] = "hgssforest",
                    [6] = "hgsswater",
                    [7] = "hgssfield",
                    [8] = "hgsslake",
                    [9] = "hgssgray"
                };
            }
            public static class WeatherPics {
                public static Dictionary<byte[], string> dpWeatherImageDict = new Dictionary<byte[], string>() {
                    [new byte[] { 0, 8, 13, 18, 19, 20, 23, 25 }] = "dpnormal",
                    [new byte[] { 1 }] = "dpcloudy",
                    [new byte[] { 2 }] = "dprain",
                    [new byte[] { 3 }] = "dpheavyrain",
                    [new byte[] { 4, 24 }] = "dpthunderstorm",
                    [new byte[] { 5, 28 }] = "dpsnowslow",
                    [new byte[] { 6, 21, 26, 27 }] = "dpdiamondsnow",
                    [new byte[] { 7 }] = "dpblizzard",
                    [new byte[] { 9 }] = "dpsandfall",
                    [new byte[] { 10 }] = "dpsandstorm",
                    [new byte[] { 11 }] = "dphail",
                    [new byte[] { 12 }] = "dprocksascending",
                    [new byte[] { 14 }] = "dpfog",
                    [new byte[] { 15 }] = "dpfog", //deep fog
                    [new byte[] { 16 }] = "dpdark",
                    [new byte[] { 17 }] = "dplightning",
                    [new byte[] { 22 }] = "dplightsandstorm"
                };
                public static Dictionary<byte[], string> ptWeatherImageDict = new Dictionary<byte[], string>() {
                    [new byte[] { 0, 8, 13, 20, 31, 33 }] = "ptnormal",
                    [new byte[] { 1 }] = "ptcloudy",
                    [new byte[] { 2, 32 }] = "ptrain",
                    [new byte[] { 3 }] = "ptheavyrain",
                    [new byte[] { 4 }] = "ptthunderstorm",
                    [new byte[] { 5, 36 }] = "ptsnowslow",
                    [new byte[] { 6, 21, 34, 35 }] = "ptdiamondsnow",
                    [new byte[] { 7 }] = "ptblizzard",
                    [new byte[] { 9 }] = "ptsandfall",
                    [new byte[] { 10 }] = "ptsandstorm",
                    [new byte[] { 11 }] = "pthail",
                    [new byte[] { 12 }] = "ptrocksascending",
                    [new byte[] { 14, 15 }] = "ptfog",
                    [new byte[] { 16 }] = "ptdark",
                    [new byte[] { 17 }] = "ptlightning",

                    [new byte[] { 18 }] = "ptlightfog",
                    [new byte[] { 19 }] = "ptheavyfog",

                    [new byte[] { 22 }] = "ptlightsandstorm",
                    [new byte[] { 23 }] = "ptforestweather",
                    [new byte[] { 24, 25 }] = "ptspotlight",

                    [new byte[] { 26 }] = "ptdarkfog",
                    [new byte[] { 27 }] = "ptgreenish",
                    [new byte[] { 28 }] = "ptredish",
                    [new byte[] { 29 }] = "ptblueish",
                    [new byte[] { 30 }] = "ptdim",
                };

                public static Dictionary<byte[], string> hgssweatherImageDict = new Dictionary<byte[], string>() {
                    [new byte[] { 0}] = "hgssnormal",
                    [new byte[] { 1, 2, 3, 4 }] = "hgssrain",
                    [new byte[] { 5, 6 }] = "hgsssnow",
                    [new byte[] { 7 }] = "hgssnormal", //sandstorm in battle only
                    [new byte[] { 8 }] = "hgssdiamond",
                    [new byte[] { 9, 10 }] = "hgssfog",
                    [new byte[] { 11 }] = "hgssdark",
                    [new byte[] { 12 }] = "hgssdark2",
                    [new byte[] { 13 }] = "hgssArcade"
                };
            }
        }
    }
}
