diff --git a/DataParser.cs b/DataParser.cs index b2bbc6c..20edbb1 100644 --- a/DataParser.cs +++ b/DataParser.cs @@ -122,6 +122,80 @@ private static void LoadMonoBehaviours() monoBehaviourCollection[pe] = Task.Run(() => fileManager.GetMonoBehaviours(pe)); } + /// + /// Gets the appropriate path for a specific language. + /// + private static PathEnum GetMessageBundlePathForLanguage(Language language, bool isKanji = false) + { + return language switch + { + Language.Japanese => isKanji ? PathEnum.JpnKanji : PathEnum.Jpn, + Language.English => PathEnum.English, + Language.French => PathEnum.French, + Language.Italian => PathEnum.Italian, + Language.German => PathEnum.German, + Language.Spanish => PathEnum.Spanish, + Language.Korean => PathEnum.Korean, + Language.SimpChinese => PathEnum.SimpChinese, + Language.TradChinese => PathEnum.TradChinese, + _ => PathEnum.CommonMsbt, + }; + } + + /// + /// Gets the appropriate message file prefix for a specific language. + /// + private static string GetMessageFilePrefixForLanguage(Language language, bool isKanji = false) + { + return language switch + { + Language.Japanese => isKanji ? "jpn_kanji" : "jpn", + Language.English => "english", + Language.French => "french", + Language.Italian => "italian", + Language.German => "german", + Language.Spanish => "spanish", + Language.Korean => "korean", + Language.SimpChinese => "simp_chinese", + Language.TradChinese => "trad_chinese", + _ => "", + }; + } + + /// + /// Formats the message file name to have the proper language prefix. + /// + private static string FormatMessageFileNameForLanguage(string fileName, Language language, bool isKanji = false) + { + return string.Join("_", GetMessageFilePrefixForLanguage(language, isKanji), fileName); + } + + /// + /// Gets all the labels of a message file in a specific language. + /// + private static async Task FindLabelArrayOfMessageFileAsync(string fileName, Language language, bool isKanji = false) + { + string fullFileName = FormatMessageFileNameForLanguage(fileName, language, isKanji); + PathEnum pathForLanguage = GetMessageBundlePathForLanguage(language, isKanji); + + var baseField = (await monoBehaviourCollection[PathEnum.CommonMsbt]).Find(m => Encoding.Default.GetString(m.children[3].value.value.asString) == fullFileName) ?? + (await monoBehaviourCollection[pathForLanguage]).Find(m => Encoding.Default.GetString(m.children[3].value.value.asString) == fullFileName); + return baseField?.children[8].children[0].children ?? Array.Empty(); + } + + /// + /// Gets all the labels of a message file in a specific language. + /// + private static AssetTypeValueField[] FindLabelArrayOfMessageFile(string fileName, Language language, bool isKanji = false) + { + string fullFileName = FormatMessageFileNameForLanguage(fileName, language, isKanji); + PathEnum pathForLanguage = GetMessageBundlePathForLanguage(language, isKanji); + + var baseField = fileManager.GetMonoBehaviours(PathEnum.CommonMsbt).Find(m => Encoding.Default.GetString(m.children[3].value.value.asString) == fullFileName) ?? + fileManager.GetMonoBehaviours(pathForLanguage).Find(m => Encoding.Default.GetString(m.children[3].value.value.asString) == fullFileName); + return baseField?.children[8].children[0].children ?? Array.Empty(); + } + /// /// Overwrites GlobalData with parsed TrainerTypes. /// @@ -129,9 +203,8 @@ private static async Task ParseTrainerTypes() { gameData.trainerTypes = new(); AssetTypeValueField monoBehaviour = (await monoBehaviourCollection[PathEnum.DprMasterdatas]).Find(m => Encoding.Default.GetString(m.children[3].value.value.asString) == "TrainerTable"); - AssetTypeValueField nameData = (await monoBehaviourCollection[PathEnum.English]).Find(m => Encoding.Default.GetString(m.children[3].value.value.asString) == "english_dp_trainers_type"); - AssetTypeValueField[] nameFields = nameData.children[8].children[0].children; + AssetTypeValueField[] nameFields = await FindLabelArrayOfMessageFileAsync("dp_trainers_type", Language.English); Dictionary trainerTypeNames = new(); foreach (AssetTypeValueField label in nameFields) if (label.children[6].children[0].childrenCount > 0) @@ -159,7 +232,7 @@ private static async Task ParseTrainerTypes() private static async Task ParseNatures() { gameData.natures = new(); - AssetTypeValueField[] natureFields = (await monoBehaviourCollection[PathEnum.English]).Find(m => Encoding.Default.GetString(m.children[3].value.value.asString) == "english_ss_seikaku").children[8].children[0].children; + AssetTypeValueField[] natureFields = await FindLabelArrayOfMessageFileAsync("ss_seikaku", Language.English); for (int natureID = 0; natureID < natureFields.Length; natureID++) { @@ -191,7 +264,7 @@ private static void ParseDamagaCategories() private static async Task ParseTypings() { gameData.typings = new(); - AssetTypeValueField[] typingFields = (await monoBehaviourCollection[PathEnum.English]).Find(m => Encoding.Default.GetString(m.children[3].value.value.asString) == "english_ss_typename").children[8].children[0].children; + AssetTypeValueField[] typingFields = await FindLabelArrayOfMessageFileAsync("ss_typename", Language.English); for (int typingID = 0; typingID < typingFields.Length; typingID++) { @@ -209,7 +282,7 @@ private static async Task ParseTypings() private static async Task ParseAbilities() { gameData.abilities = new(); - AssetTypeValueField[] abilityFields = (await monoBehaviourCollection[PathEnum.English]).Find(m => Encoding.Default.GetString(m.children[3].value.value.asString) == "english_ss_tokusei").children[8].children[0].children; + AssetTypeValueField[] abilityFields = await FindLabelArrayOfMessageFileAsync("ss_tokusei", Language.English); for (int abilityID = 0; abilityID < abilityFields.Length; abilityID++) { @@ -324,9 +397,8 @@ private static async Task ParseTrainers() { gameData.trainers = new(); AssetTypeValueField monoBehaviour = (await monoBehaviourCollection[PathEnum.DprMasterdatas]).Find(m => Encoding.Default.GetString(m.children[3].value.value.asString) == "TrainerTable"); - AssetTypeValueField nameData = (await monoBehaviourCollection[PathEnum.English]).Find(m => Encoding.Default.GetString(m.children[3].value.value.asString) == "english_dp_trainers_name"); - AssetTypeValueField[] nameFields = nameData.children[8].children[0].children; + AssetTypeValueField[] nameFields = await FindLabelArrayOfMessageFileAsync("dp_trainers_name", Language.English); Dictionary trainerNames = new(); gameData.trainerNames = trainerNames; foreach (AssetTypeValueField label in nameFields) @@ -406,9 +478,8 @@ private static async Task ParseBattleTowerTrainers() AssetTypeValueField monoBehaviour = (await monoBehaviourCollection[PathEnum.DprMasterdatas]).Find(m => Encoding.Default.GetString(m.children[3].value.value.asString) == "TowerTrainerTable"); AssetTypeValueField monoBehaviour2 = (await monoBehaviourCollection[PathEnum.DprMasterdatas]).Find(m => Encoding.Default.GetString(m.children[3].value.value.asString) == "TowerSingleStockTable"); AssetTypeValueField monoBehaviour3 = (await monoBehaviourCollection[PathEnum.DprMasterdatas]).Find(m => Encoding.Default.GetString(m.children[3].value.value.asString) == "TowerDoubleStockTable"); - AssetTypeValueField nameData = (await monoBehaviourCollection[PathEnum.English]).Find(m => Encoding.Default.GetString(m.children[3].value.value.asString) == "english_dp_trainers_name"); - AssetTypeValueField[] nameFields = nameData.children[8].children[0].children; + AssetTypeValueField[] nameFields = await FindLabelArrayOfMessageFileAsync("dp_trainers_name", Language.English); Dictionary trainerNames = new(); gameData.trainerNames = trainerNames; foreach (AssetTypeValueField label in nameFields) @@ -422,15 +493,15 @@ private static async Task ParseBattleTowerTrainers() for (int trainerIdx = 0; trainerIdx < trainerFields.Length; trainerIdx++) { BattleTowerTrainer trainer = new(); - trainer.trainerID2 = trainerFields[trainerIdx].children[0].value.value.asUInt32; - trainer.trainerTypeID = trainerFields[trainerIdx].children[1].value.value.asInt32; + trainer.trainerID2 = trainerFields[trainerIdx].children[0].GetValue().AsUInt(); + trainer.trainerTypeID = trainerFields[trainerIdx].children[1].GetValue().AsInt(); trainer.trainerTypeID2 = -1; ; - trainer.battleTowerPokemonID1 = trainerFields[trainerIdx].children[2].children[0].children[0].value.value.asUInt32; - trainer.battleTowerPokemonID2 = trainerFields[trainerIdx].children[2].children[0].children[1].value.value.asUInt32; - trainer.battleTowerPokemonID3 = trainerFields[trainerIdx].children[2].children[0].children[2].value.value.asUInt32; + trainer.battleTowerPokemonID1 = trainerFields[trainerIdx].children[2].children[0].children[0].GetValue().AsUInt(); + trainer.battleTowerPokemonID2 = trainerFields[trainerIdx].children[2].children[0].children[1].GetValue().AsUInt(); + trainer.battleTowerPokemonID3 = trainerFields[trainerIdx].children[2].children[0].children[2].GetValue().AsUInt(); trainer.battleTowerPokemonID4 = 0; - trainer.battleBGM = trainerFields[trainerIdx].children[3].value.value.ToString(); - trainer.winBGM = trainerFields[trainerIdx].children[4].value.value.ToString(); + trainer.battleBGM = trainerFields[trainerIdx].children[3].GetValue().AsString(); + trainer.winBGM = trainerFields[trainerIdx].children[4].GetValue().AsString(); trainer.nameLabel = nameFieldsTower[trainer.trainerTypeID].children[1].GetValue().AsString(); trainer.name = trainerNames[trainer.nameLabel]; trainer.nameLabel2 = null; @@ -442,15 +513,15 @@ private static async Task ParseBattleTowerTrainers() for (int trainerIdx = 0; trainerIdx < trainerFieldsDouble.Length; trainerIdx++) { BattleTowerTrainer trainer = new(); - trainer.trainerID2 = trainerFieldsDouble[trainerIdx].children[0].value.value.asUInt32; - trainer.trainerTypeID = trainerFieldsDouble[trainerIdx].children[1].children[0].children[0].value.value.asInt32; ; - trainer.trainerTypeID2 = trainerFieldsDouble[trainerIdx].children[1].children[0].children[1].value.value.asInt32; ; - trainer.battleTowerPokemonID1 = trainerFieldsDouble[trainerIdx].children[2].children[0].children[0].value.value.asUInt32; - trainer.battleTowerPokemonID2 = trainerFieldsDouble[trainerIdx].children[2].children[0].children[1].value.value.asUInt32; - trainer.battleTowerPokemonID3 = trainerFieldsDouble[trainerIdx].children[2].children[0].children[2].value.value.asUInt32; - trainer.battleTowerPokemonID4 = trainerFieldsDouble[trainerIdx].children[2].children[0].children[3].value.value.asUInt32; - trainer.battleBGM = trainerFieldsDouble[trainerIdx].children[3].value.value.ToString(); - trainer.winBGM = trainerFieldsDouble[trainerIdx].children[4].value.value.ToString(); + trainer.trainerID2 = trainerFieldsDouble[trainerIdx].children[0].GetValue().AsUInt(); + trainer.trainerTypeID = trainerFieldsDouble[trainerIdx].children[1].children[0].children[0].GetValue().AsInt(); + trainer.trainerTypeID2 = trainerFieldsDouble[trainerIdx].children[1].children[0].children[1].GetValue().AsInt(); + trainer.battleTowerPokemonID1 = trainerFieldsDouble[trainerIdx].children[2].children[0].children[0].GetValue().AsUInt(); + trainer.battleTowerPokemonID2 = trainerFieldsDouble[trainerIdx].children[2].children[0].children[1].GetValue().AsUInt(); + trainer.battleTowerPokemonID3 = trainerFieldsDouble[trainerIdx].children[2].children[0].children[2].GetValue().AsUInt(); + trainer.battleTowerPokemonID4 = trainerFieldsDouble[trainerIdx].children[2].children[0].children[3].GetValue().AsUInt(); + trainer.battleBGM = trainerFieldsDouble[trainerIdx].children[3].GetValue().AsString(); + trainer.winBGM = trainerFieldsDouble[trainerIdx].children[4].GetValue().AsString(); trainer.nameLabel = nameFieldsTower[trainer.trainerTypeID].children[1].GetValue().AsString(); trainer.name = trainerNames[trainer.nameLabel]; if (trainer.trainerTypeID2 != -1) @@ -635,13 +706,12 @@ private static async Task ParsePokemon() gameData.dexEntries = new(); gameData.personalEntries = new(); List monoBehaviours = (await monoBehaviourCollection[PathEnum.PersonalMasterdatas]); - AssetTypeValueField textData = (await monoBehaviourCollection[PathEnum.CommonMsbt]).Find(m => Encoding.Default.GetString(m.children[3].value.value.asString) == "english_ss_monsname"); AssetTypeValueField[] levelUpMoveFields = monoBehaviours.Find(m => Encoding.Default.GetString(m.children[3].value.value.asString) == "WazaOboeTable").children[4].children[0].children; AssetTypeValueField[] eggMoveFields = monoBehaviours.Find(m => Encoding.Default.GetString(m.children[3].value.value.asString) == "TamagoWazaTable").children[4].children[0].children; AssetTypeValueField[] evolveFields = monoBehaviours.Find(m => Encoding.Default.GetString(m.children[3].value.value.asString) == "EvolveTable").children[4].children[0].children; AssetTypeValueField[] personalFields = monoBehaviours.Find(m => Encoding.Default.GetString(m.children[3].value.value.asString) == "PersonalTable").children[4].children[0].children; - AssetTypeValueField[] textFields = textData.children[8].children[0].children; + AssetTypeValueField[] textFields = await FindLabelArrayOfMessageFileAsync("ss_monsname", Language.English); if (levelUpMoveFields.Length < personalFields.Length) MainForm.ShowParserError("Oh my, this WazaOboeTable is missing some stuff...\n" + @@ -960,10 +1030,9 @@ private static async Task ParseTMs() { gameData.tms = new(); AssetTypeValueField monoBehaviour = (await monoBehaviourCollection[PathEnum.PersonalMasterdatas]).Find(m => Encoding.Default.GetString(m.children[3].value.value.asString) == "ItemTable"); - AssetTypeValueField textData = (await monoBehaviourCollection[PathEnum.English]).Find(m => Encoding.Default.GetString(m.children[3].value.value.asString) == "english_ss_itemname"); AssetTypeValueField[] tmFields = monoBehaviour.children[5].children[0].children; - AssetTypeValueField[] textFields = textData.children[8].children[0].children; + AssetTypeValueField[] textFields = await FindLabelArrayOfMessageFileAsync("ss_itemname", Language.English); for (int tmID = 0; tmID < tmFields.Length; tmID++) { TM tm = new(); @@ -1339,11 +1408,10 @@ private static async Task ParseMoves() gameData.moves = new(); AssetTypeValueField monoBehaviour = (await monoBehaviourCollection[PathEnum.PersonalMasterdatas]).Find(m => Encoding.Default.GetString(m.children[3].value.value.asString) == "WazaTable"); AssetTypeValueField animationData = (await monoBehaviourCollection[PathEnum.BattleMasterdatas]).Find(m => Encoding.Default.GetString(m.children[3].value.value.asString) == "BattleDataTable"); - AssetTypeValueField textData = (await monoBehaviourCollection[PathEnum.English]).Find(m => Encoding.Default.GetString(m.children[3].value.value.asString) == "english_ss_wazaname"); AssetTypeValueField[] moveFields = monoBehaviour.children[4].children[0].children; AssetTypeValueField[] animationFields = animationData.children[8].children[0].children; - AssetTypeValueField[] textFields = textData.children[8].children[0].children; + AssetTypeValueField[] textFields = await FindLabelArrayOfMessageFileAsync("ss_wazaname", Language.English); if (animationFields.Length < moveFields.Length) MainForm.ShowParserError("Oh my, this BattleDataTable is missing some stuff...\n" + @@ -1488,16 +1556,15 @@ private static async Task ParseItems() { gameData.items = new(); AssetTypeValueField monoBehaviour = (await monoBehaviourCollection[PathEnum.PersonalMasterdatas]).Find(m => Encoding.Default.GetString(m.children[3].value.value.asString) == "ItemTable"); - AssetTypeValueField textData = (await monoBehaviourCollection[PathEnum.English]).Find(m => Encoding.Default.GetString(m.children[3].value.value.asString) == "english_ss_itemname"); AssetTypeValueField[] itemFields = monoBehaviour.children[4].children[0].children; - AssetTypeValueField[] textFields = textData.children[8].children[0].children; + AssetTypeValueField[] textFields = await FindLabelArrayOfMessageFileAsync("ss_itemname", Language.English); if (textFields.Length < itemFields.Length) - MainForm.ShowParserError("Oh my, this english_ss_itemname is missing some stuff...\n" + + MainForm.ShowParserError("Oh my, this " + FormatMessageFileNameForLanguage("ss_itemname", Language.English) + " is missing some stuff...\n" + "I don't feel so good...\n" + "ItemTable entries: " + itemFields.Length + "\n" + - "english_ss_itemname entries: " + textFields.Length + "??"); + FormatMessageFileNameForLanguage("ss_itemname", Language.English) + " entries: " + textFields.Length + "??"); for (int itemIdx = 0; itemIdx < itemFields.Length; itemIdx++) { @@ -1579,16 +1646,16 @@ public static async Task ParseAllMessageFiles() gameData.messageFileSets[i] = new(); gameData.messageFileSets[i].messageFiles = new(); } - gameData.messageFileSets[0].langID = 1; - gameData.messageFileSets[1].langID = 1; - gameData.messageFileSets[2].langID = 2; - gameData.messageFileSets[3].langID = 3; - gameData.messageFileSets[4].langID = 4; - gameData.messageFileSets[5].langID = 5; - gameData.messageFileSets[6].langID = 7; - gameData.messageFileSets[7].langID = 8; - gameData.messageFileSets[8].langID = 9; - gameData.messageFileSets[9].langID = 10; + gameData.messageFileSets[0].langID = Language.Japanese; + gameData.messageFileSets[1].langID = Language.Japanese; + gameData.messageFileSets[2].langID = Language.English; + gameData.messageFileSets[3].langID = Language.French; + gameData.messageFileSets[4].langID = Language.Italian; + gameData.messageFileSets[5].langID = Language.German; + gameData.messageFileSets[6].langID = Language.Spanish; + gameData.messageFileSets[7].langID = Language.Korean; + gameData.messageFileSets[8].langID = Language.SimpChinese; + gameData.messageFileSets[9].langID = Language.TradChinese; List monoBehaviours = await monoBehaviourCollection[PathEnum.CommonMsbt]; monoBehaviours.AddRange(await monoBehaviourCollection[PathEnum.English]); @@ -1606,7 +1673,7 @@ public static async Task ParseAllMessageFiles() { MessageFile messageFile = new(); messageFile.mName = Encoding.Default.GetString(monoBehaviours[mIdx].children[3].value.value.asString); - messageFile.langID = monoBehaviours[mIdx].children[5].value.value.asInt32; + messageFile.langID = (Language)monoBehaviours[mIdx].children[5].value.value.asInt32; messageFile.isKanji = monoBehaviours[mIdx].children[7].value.value.asUInt8; //Parse LabelData @@ -1676,34 +1743,34 @@ public static async Task ParseAllMessageFiles() switch (messageFile.langID) { - case 1: + case Language.Japanese: if (messageFile.isKanji == 0) gameData.messageFileSets[0].messageFiles.Add(messageFile); else gameData.messageFileSets[1].messageFiles.Add(messageFile); break; - case 2: + case Language.English: gameData.messageFileSets[2].messageFiles.Add(messageFile); break; - case 3: + case Language.French: gameData.messageFileSets[3].messageFiles.Add(messageFile); break; - case 4: + case Language.Italian: gameData.messageFileSets[4].messageFiles.Add(messageFile); break; - case 5: + case Language.German: gameData.messageFileSets[5].messageFiles.Add(messageFile); break; - case 7: + case Language.Spanish: gameData.messageFileSets[6].messageFiles.Add(messageFile); break; - case 8: + case Language.Korean: gameData.messageFileSets[7].messageFiles.Add(messageFile); break; - case 9: + case Language.SimpChinese: gameData.messageFileSets[8].messageFiles.Add(messageFile); break; - case 10: + case Language.TradChinese: gameData.messageFileSets[9].messageFiles.Add(messageFile); break; } @@ -2070,11 +2137,10 @@ private static void CommitMoves() { AssetTypeValueField monoBehaviour = fileManager.GetMonoBehaviours(PathEnum.PersonalMasterdatas).Find(m => Encoding.Default.GetString(m.children[3].value.value.asString) == "WazaTable"); AssetTypeValueField animationData = fileManager.GetMonoBehaviours(PathEnum.BattleMasterdatas).Find(m => Encoding.Default.GetString(m.children[3].value.value.asString) == "BattleDataTable"); - AssetTypeValueField textData = fileManager.GetMonoBehaviours(PathEnum.English).Find(m => Encoding.Default.GetString(m.children[3].value.value.asString) == "english_ss_wazaname"); AssetTypeValueField[] moveFields = monoBehaviour.children[4].children[0].children; AssetTypeValueField[] animationFields = animationData.children[8].children[0].children; - AssetTypeValueField[] textFields = textData.children[8].children[0].children; + AssetTypeValueField[] textFields = FindLabelArrayOfMessageFile("ss_wazaname", Language.English); for (int moveID = 0; moveID < moveFields.Length; moveID++) { Move move = gameData.moves[moveID]; @@ -2131,10 +2197,9 @@ private static void CommitMoves() private static void CommitTMs() { AssetTypeValueField monoBehaviour = fileManager.GetMonoBehaviours(PathEnum.PersonalMasterdatas).Find(m => Encoding.Default.GetString(m.children[3].value.value.asString) == "ItemTable"); - AssetTypeValueField textData = fileManager.GetMonoBehaviours(PathEnum.English).Find(m => Encoding.Default.GetString(m.children[3].value.value.asString) == "english_ss_itemname"); AssetTypeValueField[] tmFields = monoBehaviour.children[5].children[0].children; - AssetTypeValueField[] textFields = textData.children[8].children[0].children; + AssetTypeValueField[] textFields = FindLabelArrayOfMessageFile("ss_itemname", Language.English); for (int tmID = 0; tmID < tmFields.Length; tmID++) { TM tm = gameData.tms[tmID]; @@ -2152,10 +2217,9 @@ private static void CommitTMs() private static void CommitItems() { AssetTypeValueField monoBehaviour = fileManager.GetMonoBehaviours(PathEnum.PersonalMasterdatas).Find(m => Encoding.Default.GetString(m.children[3].value.value.asString) == "ItemTable"); - AssetTypeValueField textData = fileManager.GetMonoBehaviours(PathEnum.English).Find(m => Encoding.Default.GetString(m.children[3].value.value.asString) == "english_ss_itemname"); AssetTypeValueField[] itemFields = monoBehaviour.children[4].children[0].children; - AssetTypeValueField[] textFields = textData.children[8].children[0].children; + AssetTypeValueField[] textFields = FindLabelArrayOfMessageFile("ss_itemname", Language.English); for (int itemIdx = 0; itemIdx < itemFields.Length; itemIdx++) { Item item = gameData.items[itemIdx]; @@ -2883,7 +2947,7 @@ private static AssetTypeValueField[] PrimitiveATVFArray(T[] values, AssetType } /// - /// Updates loaded bundle with EncounterTables. + /// Updates loaded bundle with MessageFileSets. /// private static void CommitMessageFileSets() { diff --git a/GlobalData.cs b/GlobalData.cs index af28f52..4e8c574 100644 --- a/GlobalData.cs +++ b/GlobalData.cs @@ -199,9 +199,10 @@ public static int Conform(AbsoluteBoundary a, int x) public static string GetZoneName(int index) { - if (index == -1) - return Zones.zoneNames.Last(); - return Zones.zoneNames[index]; + if (index > -1 && index < Zones.zoneNames.Length) + return Zones.zoneNames[index]; + + return Zones.defaultName; } public enum PathEnum diff --git a/Structs/GameDataTypes.cs b/Structs/GameDataTypes.cs index 5a5de5c..4ef8755 100644 --- a/Structs/GameDataTypes.cs +++ b/Structs/GameDataTypes.cs @@ -3,6 +3,7 @@ using System.Linq; using System.Text.RegularExpressions; using static ImpostersOrdeal.ExternalJsonStructs; +using static ImpostersOrdeal.GlobalData; namespace ImpostersOrdeal { @@ -657,7 +658,7 @@ public class HoneyTreeEncounter public class MessageFileSet { - public int langID; + public Language langID; public List messageFiles; public List GetStrings() @@ -678,7 +679,7 @@ public void SetStrings(List strings) public class MessageFile { public string mName; - public int langID; + public Language langID; public byte isKanji; public List labelDatas; @@ -1786,5 +1787,18 @@ public interface INamedEntity public string GetName(); public bool IsValid(); } + + public enum Language + { + Japanese = 1, + English = 2, + French = 3, + Italian = 4, + German = 5, + Spanish = 7, + Korean = 8, + SimpChinese = 9, + TradChinese = 10 + } } } diff --git a/Structs/ZoneID.cs b/Structs/ZoneID.cs index d2782ec..f78c93a 100644 --- a/Structs/ZoneID.cs +++ b/Structs/ZoneID.cs @@ -6,1332 +6,1333 @@ namespace ImpostersOrdeal { - public enum ZoneID // TypeDefIndex: 3814 - { - C01 = 0, - C01FS0101 = 1, - C01PC0101 = 2, - C01PC0102 = 3, - C01PC0103 = 4, - C01R0101 = 5, - C01R0102 = 6, - C01R0103 = 7, - C01R0201 = 8, - C01R0202 = 9, - C01R0203 = 10, - C01R0204 = 11, - C01R0205 = 12, - C01R0206 = 13, - C01R0207 = 14, - C01R0208 = 15, - C01R0301 = 16, - C01R0302 = 17, - C01R0501 = 18, - C01R0502 = 19, - C01R0601 = 20, - C01R0701 = 21, - C01R0801 = 22, - C01R0802 = 23, - C02 = 24, - C02FS0101 = 25, - C02GYM0101 = 26, - C02PC0101 = 27, - C02PC0102 = 28, - C02PC0103 = 29, - C02R0101 = 30, - C02R0102 = 31, - C02R0103 = 32, - C02R0201 = 33, - C02R0301 = 34, - C02R0401 = 35, - C02R0501 = 36, - C02R0601 = 37, - C03 = 38, - C03FS0101 = 39, - C03GYM0101 = 40, - C03PC0101 = 41, - C03PC0102 = 42, - C03PC0103 = 43, - C03R0101 = 44, - C03R0102 = 45, - C03R0201 = 46, - C03R0202 = 47, - C03R0301 = 48, - C03R0401 = 49, - C03R0501 = 50, - C03R0601 = 51, - C03R0602 = 52, - C03R0701 = 53, - C04 = 54, - C04FS0101 = 55, - C04GYM0101 = 56, - C04GYM0102 = 57, - C04PC0101 = 58, - C04PC0102 = 59, - C04PC0103 = 60, - C04R0101 = 61, - C04R0201 = 62, - C04R0202 = 63, - C04R0203 = 64, - C04R0204 = 65, - C04R0301 = 66, - C04R0302 = 67, - C04R0303 = 68, - C04R0401 = 69, - C04R0501 = 70, - C04R0601 = 71, - C04R0701 = 72, - C04R0801 = 73, - C05 = 74, - C05FS0101 = 75, - C05GYM0101 = 76, - C05GYM0102 = 77, - C05GYM0103 = 78, - C05GYM0104 = 79, - C05GYM0105 = 80, - C05GYM0106 = 81, - C05GYM0107 = 82, - C05GYM0108 = 83, - C05GYM0109 = 84, - C05GYM0110 = 85, - C05GYM0111 = 86, - C05GYM0112 = 87, - C05GYM0113 = 88, - C05PC0101 = 89, - C05PC0102 = 90, - C05PC0103 = 91, - C05R0101 = 92, - C05R0102 = 93, - C05R0103 = 94, - C05R0201 = 95, - C05R0301 = 96, - C05R0401 = 97, - C05R0501 = 98, - C05R0601 = 99, - C05R0701 = 100, - C05R0801 = 101, - C05R0802 = 102, - C05R0803 = 103, - C05R0901 = 104, - C05R1001 = 105, - C05R1101 = 106, - C05R1102 = 107, - C05R1103 = 108, - C05R1201 = 109, - C06 = 110, - C06FS0101 = 111, - C06GYM0101 = 112, - C06PC0101 = 113, - C06PC0102 = 114, - C06PC0103 = 115, - C06R0101 = 116, - C06R0102 = 117, - C06R0201 = 118, - C06R0301 = 119, - C06R0401 = 120, - C06R0501 = 121, - C06R0601 = 122, - C07 = 123, - C07GYM0101 = 124, - C07PC0101 = 125, - C07PC0102 = 126, - C07PC0103 = 127, - C07R0101 = 128, - C07R0201 = 129, - C07R0202 = 130, - C07R0203 = 131, - C07R0204 = 132, - C07R0205 = 133, - C07R0206 = 134, - C07R0301 = 135, - C07R0401 = 136, - C07R0501 = 137, - C07R0601 = 138, - C07R0701 = 139, - C07R0801 = 140, - C07R0901 = 141, - C08 = 142, - C08FS0101 = 143, - C08GYM0101 = 144, - C08GYM0102 = 145, - C08GYM0103 = 146, - C08PC0101 = 147, - C08PC0102 = 148, - C08PC0103 = 149, - C08R0101 = 150, - C08R0201 = 151, - C08R0301 = 152, - C08R0401 = 153, - C08R0501 = 154, - C08R0601 = 155, - C08R0701 = 156, - C08R0801 = 157, - C08R0802 = 158, - C09 = 159, - C09FS0101 = 160, - C09GYM0101 = 161, - C09PC0101 = 162, - C09PC0102 = 163, - C09PC0103 = 164, - C09R0101 = 165, - C09R0201 = 166, - C10 = 167, - C10PC0101 = 168, - C10PC0102 = 169, - C10PC0103 = 170, - C10R0101 = 171, - C10R0102 = 172, - C10R0103 = 173, - C10R0104 = 174, - C10R0105 = 175, - C10R0106 = 176, - C10R0107 = 177, - C10R0108 = 178, - C10R0109 = 179, - C10R0110 = 180, - C10R0111 = 181, - C10R0112 = 182, - C10R0113 = 183, - C10R0114 = 184, - C10R0115 = 185, - C11 = 186, - C11FS0101 = 187, - C11PC0101 = 188, - C11PC0102 = 189, - C11PC0103 = 190, - C11R0101 = 191, - C11R0201 = 192, - C11R0301 = 193, - C11R0401 = 194, - D01R0101 = 195, - D01R0102 = 196, - D02 = 197, - D02R0101 = 198, - D03 = 199, - D03R0101 = 200, - D04 = 201, - D04R0101 = 202, - D05R0101 = 203, - D05R0102 = 204, - D05R0103 = 205, - D05R0104 = 206, - D05R0105 = 207, - D05R0106 = 208, - D05R0107 = 209, - D05R0108 = 210, - D05R0109 = 211, - D05R0110 = 212, - D05R0111 = 213, - D05R0112 = 214, - D05R0113 = 215, - D05R0114 = 216, - D05R0115 = 217, - D05R0116 = 218, - D06R0201 = 219, - D06R0202 = 220, - D06R0203 = 221, - D06R0204 = 222, - D06R0205 = 223, - D06R0206 = 224, - D07R0101 = 225, - D07R0102 = 226, - D07R0103 = 227, - D07R0104 = 228, - D07R0105 = 229, - D07R0106 = 230, - D07R0107 = 231, - D07R0108 = 232, - D07R0109 = 233, - D07R0110 = 234, - D07R0111 = 235, - D07R0112 = 236, - D07R0113 = 237, - D07R0114 = 238, - D07R0115 = 239, - D07R0116 = 240, - D07R0117 = 241, - D07R0118 = 242, - D07R0119 = 243, - D09R0101 = 244, - D09R0102 = 245, - D09R0103 = 246, - D09R0104 = 247, - D09R0105 = 248, - D09R0106 = 249, - D10R0101 = 250, - D11R0101 = 251, - D12R0101 = 252, - D13R0101 = 253, - D13R0102 = 254, - D14R0101 = 255, - D14R0102 = 256, - D15 = 257, - D15R0101 = 258, - D16 = 259, - D16R0101 = 260, - D16R0102 = 261, - D16R0103 = 262, - D17R0101 = 263, - D17R0102 = 264, - D17R0103 = 265, - D17R0104 = 266, - D17R0105 = 267, - D17R0106 = 268, - D17R0107 = 269, - D17R0108 = 270, - D17R0109 = 271, - D17R0110 = 272, - D17R0111 = 273, - D17R0112 = 274, - D17R0113 = 275, - D17R0114 = 276, - D17R0115 = 277, - D17R0116 = 278, - D17R0117 = 279, - D17R0118 = 280, - D17R0119 = 281, - D17R0120 = 282, - D17R0121 = 283, - D17R0122 = 284, - D18 = 285, - D20R0101 = 286, - D20R0102 = 287, - D20R0103 = 288, - D20R0104 = 289, - D20R0105 = 290, - D20R0106 = 291, - D21R0101 = 292, - D21R0102 = 293, - D22R0101 = 294, - D22R0102 = 295, - D22R0103 = 296, - D23R0101 = 297, - D24 = 298, - D24R0101 = 299, - D24R0102 = 300, - D24R0103 = 301, - D24R0104 = 302, - D24R0105 = 303, - D24R0106 = 304, - D24R0201 = 305, - D25R0101 = 306, - D25R0102 = 307, - D25R0103 = 308, - D25R0104 = 309, - D25R0105 = 310, - D25R0106 = 311, - D25R0107 = 312, - D25R0108 = 313, - D25R0109 = 314, - D26R0101 = 315, - D26R0102 = 316, - D26R0103 = 317, - D26R0104 = 318, - D26R0105 = 319, - D26R0106 = 320, - D26R0107 = 321, - D26R0108 = 322, - D27R0101 = 323, - D27R0102 = 324, - D27R0103 = 325, - D28R0101 = 326, - D28R0102 = 327, - D28R0103 = 328, - D29R0101 = 329, - D29R0102 = 330, - D29R0103 = 331, - D30 = 332, - D30R0101 = 333, - D31 = 334, - D31R0101 = 335, - D31R0201 = 336, - D31R0202 = 337, - D31R0203 = 338, - D31R0204 = 339, - D31R0205 = 340, - D31R0206 = 341, - D31R0207 = 342, - DIRECT2 = 343, - DIRECT4 = 344, - EVERYWHERE = 345, - L01 = 346, - L02 = 347, - L02R0101 = 348, - L02R0201 = 349, - L02R0301 = 350, - L03 = 351, - L04 = 352, - NOTHING = 353, - R201 = 354, - R202 = 355, - R203 = 356, - R204A = 357, - R204B = 358, - R205A = 359, - R205AR0101 = 360, - R205B = 361, - R206 = 362, - R206R0101 = 363, - R207 = 364, - R208 = 365, - R208R0101 = 366, - R209 = 367, - R209R0101 = 368, - R209R0102 = 369, - R209R0103 = 370, - R209R0104 = 371, - R209R0105 = 372, - R210A = 373, - R210AR0101 = 374, - R210B = 375, - R210BR0101 = 376, - R211A = 377, - R211B = 378, - R212A = 379, - R212AR0101 = 380, - R212AR0102 = 381, - R212AR0103 = 382, - R212B = 383, - R212BR0101 = 384, - R213 = 385, - R213R0101 = 386, - R213R0201 = 387, - R213R0301 = 388, - R213R0401 = 389, - R213R0501 = 390, - R213R0601 = 391, - R214 = 392, - R214R0101 = 393, - R215 = 394, - R216 = 395, - R216R0101 = 396, - R217 = 397, - R217R0101 = 398, - R217R0201 = 399, - R218 = 400, - R218R0101 = 401, - R218R0201 = 402, - R219 = 403, - R221 = 404, - R221R0101 = 405, - R221R0201 = 406, - R222 = 407, - R222R0101 = 408, - R222R0201 = 409, - R222R0301 = 410, - R224 = 411, - R225 = 412, - R225R0101 = 413, - R227 = 414, - R227R0101 = 415, - R228 = 416, - R228R0101 = 417, - R228R0201 = 418, - R228R0301 = 419, - R229 = 420, - RECORD = 421, - T01 = 422, - T01R0101 = 423, - T01R0102 = 424, - T01R0201 = 425, - T01R0202 = 426, - T01R0301 = 427, - T01R0401 = 428, - T02 = 429, - T02FS0101 = 430, - T02PC0101 = 431, - T02PC0102 = 432, - T02PC0103 = 433, - T02R0101 = 434, - T02R0201 = 435, - T02R0202 = 436, - T02R0301 = 437, - T03 = 438, - T03FS0101 = 439, - T03PC0101 = 440, - T03PC0102 = 441, - T03PC0103 = 442, - T03R0101 = 443, - T03R0201 = 444, - T03R0301 = 445, - T04 = 446, - T04FS0101 = 447, - T04PC0101 = 448, - T04PC0102 = 449, - T04PC0103 = 450, - T04R0101 = 451, - T04R0201 = 452, - T04R0301 = 453, - T04R0401 = 454, - T04R0501 = 455, - T05 = 456, - T05PC0101 = 457, - T05PC0102 = 458, - T05PC0103 = 459, - T05R0101 = 460, - T05R0201 = 461, - T05R0301 = 462, - T05R0401 = 463, - T05R0501 = 464, - T06 = 465, - T06FS0101 = 466, - T06PC0101 = 467, - T06PC0102 = 468, - T06PC0103 = 469, - T06R0101 = 470, - T06R0201 = 471, - T06R0301 = 472, - T07 = 473, - T07FS0101 = 474, - T07PC0101 = 475, - T07PC0102 = 476, - T07PC0103 = 477, - T07R0101 = 478, - T07R0102 = 479, - T07R0103 = 480, - T07R0201 = 481, - T07R0301 = 482, - UG = 483, - UNION = 484, - W220 = 485, - W223 = 486, - W226 = 487, - W226R0101 = 488, - W230 = 489, - W231 = 490, - UNION01 = 491, - UNION02 = 492, - UNION03 = 493, - C04R0205 = 494, - D10R0201 = 495, - D10R0202 = 496, - D10R0301 = 497, - D10R0302 = 498, - D10R0303 = 499, - D10R0401 = 500, - D10R0402 = 501, - D10R0403 = 502, - D10R0501 = 503, - D10R0502 = 504, - D10R0601 = 505, - D10R0701 = 506, - D10R0801 = 507, - UGA01 = 508, - UGA02 = 509, - UGA03 = 510, - UGA04 = 511, - UGA05 = 512, - UGA06 = 513, - UGA07 = 514, - UGA08 = 515, - UGA09 = 516, - UGA10 = 517, - UGB01 = 518, - UGB02 = 519, - UGB03 = 520, - UGB04 = 521, - UGB05 = 522, - UGB06 = 523, - UGB07 = 524, - UGC01 = 525, - UGD01 = 526, - UGD02 = 527, - UGD03 = 528, - UGD04 = 529, - UGD05 = 530, - UGE01 = 531, - UGE02 = 532, - UGE03 = 533, - UGE04 = 534, - UGE05 = 535, - UGF01 = 536, - UGF02 = 537, - UGF03 = 538, - UGF04 = 539, - UGF05 = 540, - UGF06 = 541, - UGF07 = 542, - UGSPACE01 = 543, - UGSPACE02 = 544, - UGSPACE03 = 545, - UGSPACE04 = 546, - UGSPACE05 = 547, - UGSPACE06 = 548, - UGSPACE07 = 549, - UGSPACE08 = 550, - UGSPACE09 = 551, - UGSPACE10 = 552, - UGSPACE11 = 553, - UGSPACE12 = 554, - UGSPACE13 = 555, - UGSPACE14 = 556, - UGSPACE15 = 557, - UGSPACE16 = 558, - UGSPACE17 = 559, - UGSPACE18 = 560, - UGSPACE19 = 561, - UGSPACE20 = 562, - UGSPACE21 = 563, - UGSPACE22 = 564, - UGSPACE23 = 565, - UGSPACE24 = 566, - UGSPACE25 = 567, - UGSPACE26 = 568, - UGSPACE27 = 569, - UGSPACE28 = 570, - UGSPACE29 = 571, - UGSPACE30 = 572, - UGSPACE31 = 573, - UGSPACE32 = 574, - UGSPACE33 = 575, - UGSPACE34 = 576, - UGSPACE35 = 577, - UGSPACE36 = 578, - UGSPACE37 = 579, - UGSPACE38 = 580, - UGSPACE39 = 581, - UGSPACE40 = 582, - UGSPACE41 = 583, - UGSPACE42 = 584, - UGSPACE43 = 585, - UGSPACE44 = 586, - UGSPACE45 = 587, - UGSPACE46 = 588, - UGSPACE47 = 589, - UGSPACE48 = 590, - UGSPACE49 = 591, - UGSPACE50 = 592, - UGSPACE51 = 593, - UGSPACE52 = 594, - UGSPACE53 = 595, - UGSPACE54 = 596, - UGSPACE55 = 597, - UGSPACE56 = 598, - UGSPACE57 = 599, - UGSPACE58 = 600, - UGSPACE59 = 601, - UGSPACE60 = 602, - UGSPACE61 = 603, - UGSPACE62 = 604, - UGSPACE63 = 605, - UGSPACE64 = 606, - UGSPACE65 = 607, - UGSPACE66 = 608, - UGSPACE67 = 609, - UGSPACE68 = 610, - UGSPACEL01 = 611, - UGSPACEL02 = 612, - UGSPACEL03 = 613, - UGSPACEL04 = 614, - UGSPACEL05 = 615, - UGSPACEL06 = 616, - UGSPACEL07 = 617, - D05R0117 = 618, - D10R0901 = 619, - UGSECRETBASE01 = 620, - UGSECRETBASE02 = 621, - UGSECRETBASE03 = 622, - UGSECRETBASE04 = 623, - D10R0902 = 624, - SEA01 = 625, - C01R0209 = 626, - UGAASECRETBASE01 = 627, - UGAASECRETBASE02 = 628, - UGAASECRETBASE03 = 629, - UGABSECRETBASE01 = 630, - UGABSECRETBASE02 = 631, - UGABSECRETBASE03 = 632, - UGBASECRETBASE01 = 633, - UGBASECRETBASE02 = 634, - UGBASECRETBASE03 = 635, - UGCASECRETBASE01 = 636, - UGCASECRETBASE02 = 637, - UGCASECRETBASE03 = 638, - UGDASECRETBASE01 = 639, - UGDASECRETBASE02 = 640, - UGDASECRETBASE03 = 641, - UGEASECRETBASE01 = 642, - UGEASECRETBASE02 = 643, - UGEASECRETBASE03 = 644, - UGFASECRETBASE01 = 645, - UGFASECRETBASE02 = 646, - UGFASECRETBASE03 = 647, - D10R0202B = 648, - D10R0301B = 649, - D10R0302B = 650, - D10R0303B = 651, - D10R0401B = 652, - D10R0402B = 653, - D10R0403B = 654, - D10R0501B = 655, - D10R0502B = 656, - D10R0601B = 657, - UNKNOWN = -1, - } + public enum ZoneID + { + C01 = 0, + C01FS0101 = 1, + C01PC0101 = 2, + C01PC0102 = 3, + C01PC0103 = 4, + C01R0101 = 5, + C01R0102 = 6, + C01R0103 = 7, + C01R0201 = 8, + C01R0202 = 9, + C01R0203 = 10, + C01R0204 = 11, + C01R0205 = 12, + C01R0206 = 13, + C01R0207 = 14, + C01R0208 = 15, + C01R0301 = 16, + C01R0302 = 17, + C01R0501 = 18, + C01R0502 = 19, + C01R0601 = 20, + C01R0701 = 21, + C01R0801 = 22, + C01R0802 = 23, + C02 = 24, + C02FS0101 = 25, + C02GYM0101 = 26, + C02PC0101 = 27, + C02PC0102 = 28, + C02PC0103 = 29, + C02R0101 = 30, + C02R0102 = 31, + C02R0103 = 32, + C02R0201 = 33, + C02R0301 = 34, + C02R0401 = 35, + C02R0501 = 36, + C02R0601 = 37, + C03 = 38, + C03FS0101 = 39, + C03GYM0101 = 40, + C03PC0101 = 41, + C03PC0102 = 42, + C03PC0103 = 43, + C03R0101 = 44, + C03R0102 = 45, + C03R0201 = 46, + C03R0202 = 47, + C03R0301 = 48, + C03R0401 = 49, + C03R0501 = 50, + C03R0601 = 51, + C03R0602 = 52, + C03R0701 = 53, + C04 = 54, + C04FS0101 = 55, + C04GYM0101 = 56, + C04GYM0102 = 57, + C04PC0101 = 58, + C04PC0102 = 59, + C04PC0103 = 60, + C04R0101 = 61, + C04R0201 = 62, + C04R0202 = 63, + C04R0203 = 64, + C04R0204 = 65, + C04R0301 = 66, + C04R0302 = 67, + C04R0303 = 68, + C04R0401 = 69, + C04R0501 = 70, + C04R0601 = 71, + C04R0701 = 72, + C04R0801 = 73, + C05 = 74, + C05FS0101 = 75, + C05GYM0101 = 76, + C05GYM0102 = 77, + C05GYM0103 = 78, + C05GYM0104 = 79, + C05GYM0105 = 80, + C05GYM0106 = 81, + C05GYM0107 = 82, + C05GYM0108 = 83, + C05GYM0109 = 84, + C05GYM0110 = 85, + C05GYM0111 = 86, + C05GYM0112 = 87, + C05GYM0113 = 88, + C05PC0101 = 89, + C05PC0102 = 90, + C05PC0103 = 91, + C05R0101 = 92, + C05R0102 = 93, + C05R0103 = 94, + C05R0201 = 95, + C05R0301 = 96, + C05R0401 = 97, + C05R0501 = 98, + C05R0601 = 99, + C05R0701 = 100, + C05R0801 = 101, + C05R0802 = 102, + C05R0803 = 103, + C05R0901 = 104, + C05R1001 = 105, + C05R1101 = 106, + C05R1102 = 107, + C05R1103 = 108, + C05R1201 = 109, + C06 = 110, + C06FS0101 = 111, + C06GYM0101 = 112, + C06PC0101 = 113, + C06PC0102 = 114, + C06PC0103 = 115, + C06R0101 = 116, + C06R0102 = 117, + C06R0201 = 118, + C06R0301 = 119, + C06R0401 = 120, + C06R0501 = 121, + C06R0601 = 122, + C07 = 123, + C07GYM0101 = 124, + C07PC0101 = 125, + C07PC0102 = 126, + C07PC0103 = 127, + C07R0101 = 128, + C07R0201 = 129, + C07R0202 = 130, + C07R0203 = 131, + C07R0204 = 132, + C07R0205 = 133, + C07R0206 = 134, + C07R0301 = 135, + C07R0401 = 136, + C07R0501 = 137, + C07R0601 = 138, + C07R0701 = 139, + C07R0801 = 140, + C07R0901 = 141, + C08 = 142, + C08FS0101 = 143, + C08GYM0101 = 144, + C08GYM0102 = 145, + C08GYM0103 = 146, + C08PC0101 = 147, + C08PC0102 = 148, + C08PC0103 = 149, + C08R0101 = 150, + C08R0201 = 151, + C08R0301 = 152, + C08R0401 = 153, + C08R0501 = 154, + C08R0601 = 155, + C08R0701 = 156, + C08R0801 = 157, + C08R0802 = 158, + C09 = 159, + C09FS0101 = 160, + C09GYM0101 = 161, + C09PC0101 = 162, + C09PC0102 = 163, + C09PC0103 = 164, + C09R0101 = 165, + C09R0201 = 166, + C10 = 167, + C10PC0101 = 168, + C10PC0102 = 169, + C10PC0103 = 170, + C10R0101 = 171, + C10R0102 = 172, + C10R0103 = 173, + C10R0104 = 174, + C10R0105 = 175, + C10R0106 = 176, + C10R0107 = 177, + C10R0108 = 178, + C10R0109 = 179, + C10R0110 = 180, + C10R0111 = 181, + C10R0112 = 182, + C10R0113 = 183, + C10R0114 = 184, + C10R0115 = 185, + C11 = 186, + C11FS0101 = 187, + C11PC0101 = 188, + C11PC0102 = 189, + C11PC0103 = 190, + C11R0101 = 191, + C11R0201 = 192, + C11R0301 = 193, + C11R0401 = 194, + D01R0101 = 195, + D01R0102 = 196, + D02 = 197, + D02R0101 = 198, + D03 = 199, + D03R0101 = 200, + D04 = 201, + D04R0101 = 202, + D05R0101 = 203, + D05R0102 = 204, + D05R0103 = 205, + D05R0104 = 206, + D05R0105 = 207, + D05R0106 = 208, + D05R0107 = 209, + D05R0108 = 210, + D05R0109 = 211, + D05R0110 = 212, + D05R0111 = 213, + D05R0112 = 214, + D05R0113 = 215, + D05R0114 = 216, + D05R0115 = 217, + D05R0116 = 218, + D06R0201 = 219, + D06R0202 = 220, + D06R0203 = 221, + D06R0204 = 222, + D06R0205 = 223, + D06R0206 = 224, + D07R0101 = 225, + D07R0102 = 226, + D07R0103 = 227, + D07R0104 = 228, + D07R0105 = 229, + D07R0106 = 230, + D07R0107 = 231, + D07R0108 = 232, + D07R0109 = 233, + D07R0110 = 234, + D07R0111 = 235, + D07R0112 = 236, + D07R0113 = 237, + D07R0114 = 238, + D07R0115 = 239, + D07R0116 = 240, + D07R0117 = 241, + D07R0118 = 242, + D07R0119 = 243, + D09R0101 = 244, + D09R0102 = 245, + D09R0103 = 246, + D09R0104 = 247, + D09R0105 = 248, + D09R0106 = 249, + D10R0101 = 250, + D11R0101 = 251, + D12R0101 = 252, + D13R0101 = 253, + D13R0102 = 254, + D14R0101 = 255, + D14R0102 = 256, + D15 = 257, + D15R0101 = 258, + D16 = 259, + D16R0101 = 260, + D16R0102 = 261, + D16R0103 = 262, + D17R0101 = 263, + D17R0102 = 264, + D17R0103 = 265, + D17R0104 = 266, + D17R0105 = 267, + D17R0106 = 268, + D17R0107 = 269, + D17R0108 = 270, + D17R0109 = 271, + D17R0110 = 272, + D17R0111 = 273, + D17R0112 = 274, + D17R0113 = 275, + D17R0114 = 276, + D17R0115 = 277, + D17R0116 = 278, + D17R0117 = 279, + D17R0118 = 280, + D17R0119 = 281, + D17R0120 = 282, + D17R0121 = 283, + D17R0122 = 284, + D18 = 285, + D20R0101 = 286, + D20R0102 = 287, + D20R0103 = 288, + D20R0104 = 289, + D20R0105 = 290, + D20R0106 = 291, + D21R0101 = 292, + D21R0102 = 293, + D22R0101 = 294, + D22R0102 = 295, + D22R0103 = 296, + D23R0101 = 297, + D24 = 298, + D24R0101 = 299, + D24R0102 = 300, + D24R0103 = 301, + D24R0104 = 302, + D24R0105 = 303, + D24R0106 = 304, + D24R0201 = 305, + D25R0101 = 306, + D25R0102 = 307, + D25R0103 = 308, + D25R0104 = 309, + D25R0105 = 310, + D25R0106 = 311, + D25R0107 = 312, + D25R0108 = 313, + D25R0109 = 314, + D26R0101 = 315, + D26R0102 = 316, + D26R0103 = 317, + D26R0104 = 318, + D26R0105 = 319, + D26R0106 = 320, + D26R0107 = 321, + D26R0108 = 322, + D27R0101 = 323, + D27R0102 = 324, + D27R0103 = 325, + D28R0101 = 326, + D28R0102 = 327, + D28R0103 = 328, + D29R0101 = 329, + D29R0102 = 330, + D29R0103 = 331, + D30 = 332, + D30R0101 = 333, + D31 = 334, + D31R0101 = 335, + D31R0201 = 336, + D31R0202 = 337, + D31R0203 = 338, + D31R0204 = 339, + D31R0205 = 340, + D31R0206 = 341, + D31R0207 = 342, + DIRECT2 = 343, + DIRECT4 = 344, + EVERYWHERE = 345, + L01 = 346, + L02 = 347, + L02R0101 = 348, + L02R0201 = 349, + L02R0301 = 350, + L03 = 351, + L04 = 352, + NOTHING = 353, + R201 = 354, + R202 = 355, + R203 = 356, + R204A = 357, + R204B = 358, + R205A = 359, + R205AR0101 = 360, + R205B = 361, + R206 = 362, + R206R0101 = 363, + R207 = 364, + R208 = 365, + R208R0101 = 366, + R209 = 367, + R209R0101 = 368, + R209R0102 = 369, + R209R0103 = 370, + R209R0104 = 371, + R209R0105 = 372, + R210A = 373, + R210AR0101 = 374, + R210B = 375, + R210BR0101 = 376, + R211A = 377, + R211B = 378, + R212A = 379, + R212AR0101 = 380, + R212AR0102 = 381, + R212AR0103 = 382, + R212B = 383, + R212BR0101 = 384, + R213 = 385, + R213R0101 = 386, + R213R0201 = 387, + R213R0301 = 388, + R213R0401 = 389, + R213R0501 = 390, + R213R0601 = 391, + R214 = 392, + R214R0101 = 393, + R215 = 394, + R216 = 395, + R216R0101 = 396, + R217 = 397, + R217R0101 = 398, + R217R0201 = 399, + R218 = 400, + R218R0101 = 401, + R218R0201 = 402, + R219 = 403, + R221 = 404, + R221R0101 = 405, + R221R0201 = 406, + R222 = 407, + R222R0101 = 408, + R222R0201 = 409, + R222R0301 = 410, + R224 = 411, + R225 = 412, + R225R0101 = 413, + R227 = 414, + R227R0101 = 415, + R228 = 416, + R228R0101 = 417, + R228R0201 = 418, + R228R0301 = 419, + R229 = 420, + RECORD = 421, + T01 = 422, + T01R0101 = 423, + T01R0102 = 424, + T01R0201 = 425, + T01R0202 = 426, + T01R0301 = 427, + T01R0401 = 428, + T02 = 429, + T02FS0101 = 430, + T02PC0101 = 431, + T02PC0102 = 432, + T02PC0103 = 433, + T02R0101 = 434, + T02R0201 = 435, + T02R0202 = 436, + T02R0301 = 437, + T03 = 438, + T03FS0101 = 439, + T03PC0101 = 440, + T03PC0102 = 441, + T03PC0103 = 442, + T03R0101 = 443, + T03R0201 = 444, + T03R0301 = 445, + T04 = 446, + T04FS0101 = 447, + T04PC0101 = 448, + T04PC0102 = 449, + T04PC0103 = 450, + T04R0101 = 451, + T04R0201 = 452, + T04R0301 = 453, + T04R0401 = 454, + T04R0501 = 455, + T05 = 456, + T05PC0101 = 457, + T05PC0102 = 458, + T05PC0103 = 459, + T05R0101 = 460, + T05R0201 = 461, + T05R0301 = 462, + T05R0401 = 463, + T05R0501 = 464, + T06 = 465, + T06FS0101 = 466, + T06PC0101 = 467, + T06PC0102 = 468, + T06PC0103 = 469, + T06R0101 = 470, + T06R0201 = 471, + T06R0301 = 472, + T07 = 473, + T07FS0101 = 474, + T07PC0101 = 475, + T07PC0102 = 476, + T07PC0103 = 477, + T07R0101 = 478, + T07R0102 = 479, + T07R0103 = 480, + T07R0201 = 481, + T07R0301 = 482, + UG = 483, + UNION = 484, + W220 = 485, + W223 = 486, + W226 = 487, + W226R0101 = 488, + W230 = 489, + W231 = 490, + UNION01 = 491, + UNION02 = 492, + UNION03 = 493, + C04R0205 = 494, + D10R0201 = 495, + D10R0202 = 496, + D10R0301 = 497, + D10R0302 = 498, + D10R0303 = 499, + D10R0401 = 500, + D10R0402 = 501, + D10R0403 = 502, + D10R0501 = 503, + D10R0502 = 504, + D10R0601 = 505, + D10R0701 = 506, + D10R0801 = 507, + UGA01 = 508, + UGA02 = 509, + UGA03 = 510, + UGA04 = 511, + UGA05 = 512, + UGA06 = 513, + UGA07 = 514, + UGA08 = 515, + UGA09 = 516, + UGA10 = 517, + UGB01 = 518, + UGB02 = 519, + UGB03 = 520, + UGB04 = 521, + UGB05 = 522, + UGB06 = 523, + UGB07 = 524, + UGC01 = 525, + UGD01 = 526, + UGD02 = 527, + UGD03 = 528, + UGD04 = 529, + UGD05 = 530, + UGE01 = 531, + UGE02 = 532, + UGE03 = 533, + UGE04 = 534, + UGE05 = 535, + UGF01 = 536, + UGF02 = 537, + UGF03 = 538, + UGF04 = 539, + UGF05 = 540, + UGF06 = 541, + UGF07 = 542, + UGSPACE01 = 543, + UGSPACE02 = 544, + UGSPACE03 = 545, + UGSPACE04 = 546, + UGSPACE05 = 547, + UGSPACE06 = 548, + UGSPACE07 = 549, + UGSPACE08 = 550, + UGSPACE09 = 551, + UGSPACE10 = 552, + UGSPACE11 = 553, + UGSPACE12 = 554, + UGSPACE13 = 555, + UGSPACE14 = 556, + UGSPACE15 = 557, + UGSPACE16 = 558, + UGSPACE17 = 559, + UGSPACE18 = 560, + UGSPACE19 = 561, + UGSPACE20 = 562, + UGSPACE21 = 563, + UGSPACE22 = 564, + UGSPACE23 = 565, + UGSPACE24 = 566, + UGSPACE25 = 567, + UGSPACE26 = 568, + UGSPACE27 = 569, + UGSPACE28 = 570, + UGSPACE29 = 571, + UGSPACE30 = 572, + UGSPACE31 = 573, + UGSPACE32 = 574, + UGSPACE33 = 575, + UGSPACE34 = 576, + UGSPACE35 = 577, + UGSPACE36 = 578, + UGSPACE37 = 579, + UGSPACE38 = 580, + UGSPACE39 = 581, + UGSPACE40 = 582, + UGSPACE41 = 583, + UGSPACE42 = 584, + UGSPACE43 = 585, + UGSPACE44 = 586, + UGSPACE45 = 587, + UGSPACE46 = 588, + UGSPACE47 = 589, + UGSPACE48 = 590, + UGSPACE49 = 591, + UGSPACE50 = 592, + UGSPACE51 = 593, + UGSPACE52 = 594, + UGSPACE53 = 595, + UGSPACE54 = 596, + UGSPACE55 = 597, + UGSPACE56 = 598, + UGSPACE57 = 599, + UGSPACE58 = 600, + UGSPACE59 = 601, + UGSPACE60 = 602, + UGSPACE61 = 603, + UGSPACE62 = 604, + UGSPACE63 = 605, + UGSPACE64 = 606, + UGSPACE65 = 607, + UGSPACE66 = 608, + UGSPACE67 = 609, + UGSPACE68 = 610, + UGSPACEL01 = 611, + UGSPACEL02 = 612, + UGSPACEL03 = 613, + UGSPACEL04 = 614, + UGSPACEL05 = 615, + UGSPACEL06 = 616, + UGSPACEL07 = 617, + D05R0117 = 618, + D10R0901 = 619, + UGSECRETBASE01 = 620, + UGSECRETBASE02 = 621, + UGSECRETBASE03 = 622, + UGSECRETBASE04 = 623, + D10R0902 = 624, + SEA01 = 625, + C01R0209 = 626, + UGAASECRETBASE01 = 627, + UGAASECRETBASE02 = 628, + UGAASECRETBASE03 = 629, + UGABSECRETBASE01 = 630, + UGABSECRETBASE02 = 631, + UGABSECRETBASE03 = 632, + UGBASECRETBASE01 = 633, + UGBASECRETBASE02 = 634, + UGBASECRETBASE03 = 635, + UGCASECRETBASE01 = 636, + UGCASECRETBASE02 = 637, + UGCASECRETBASE03 = 638, + UGDASECRETBASE01 = 639, + UGDASECRETBASE02 = 640, + UGDASECRETBASE03 = 641, + UGEASECRETBASE01 = 642, + UGEASECRETBASE02 = 643, + UGEASECRETBASE03 = 644, + UGFASECRETBASE01 = 645, + UGFASECRETBASE02 = 646, + UGFASECRETBASE03 = 647, + D10R0202B = 648, + D10R0301B = 649, + D10R0302B = 650, + D10R0303B = 651, + D10R0401B = 652, + D10R0402B = 653, + D10R0403B = 654, + D10R0501B = 655, + D10R0502B = 656, + D10R0601B = 657, + UNKNOWN = -1, + } - public static class Zones + public static class Zones { + public static readonly string defaultName = "Unknown"; + public static readonly string[] zoneNames = new string[] { "Jubilife City", - "Jubilife Poké Mart", - "Jubilife Pokémon Center 1F", - "Jubilife Pokémon Center 2F", - "Jubilife Pokémon Center B1F", - "Jubilife Pokétch Company 1F", - "Jubilife Pokétch Company 2F", - "Jubilife Pokétch Company 3F", - "Jubilife TV 1F", - "Jubilife TV 2F", - "Jubilife TV 3F", - "Jubilife TV 4F", - "Jubilife TV Clip Room (Ball Decos)", - "Jubilife Global Ranking Room", - "Jubilife Group Ranking Room", - "Jubilife TV Elevator", - "Jubilife Building 1 1F (South building)", - "Jubilife Building 1 2F (South building)", - "Jubilife Building 2 1F (Condominiums)", - "Jubilife Building 2 2F (Condominiums)", - "Jubilife GWS", - "Jubilife Trainer's School 1F", - "Jubilife Building 3 1F (Southwest by GWS)", - "Jubilife Building 3 2F (Southwest by GWS)", + "Jubilife - Poké Mart", + "Jubilife - Center 1F", + "Jubilife - Center 2F", + "Jubilife - Center B1F", + "Jubilife - Pokétch Company 1F", + "Jubilife - Pokétch Company 2F", + "Jubilife - Pokétch Company 3F", + "Jubilife TV - 1F", + "Jubilife TV - 2F", + "Jubilife TV - 3F", + "Jubilife TV - 4F", + "Jubilife TV - Gym Leader Capsules", + "Jubilife TV - Global Ranking Room", + "Jubilife TV - Group Ranking Room", + "Jubilife TV - Elv.", + "Jubilife - Bdg. 1 1F (South)", + "Jubilife - Bdg. 1 2F (South)", + "Jubilife - Bdg. 2 1F (Condominiums)", + "Jubilife - Bdg. 2 2F (Condominiums)", + "Jubilife - GWS", + "Jubilife - Trainer's School", + "Jubilife - Bdg. 3 1F (SW by GWS)", + "Jubilife - Bdg. 3 2F (SW by GWS)", "Canalave City", - "Canalave Poké Mart", - "Canalave Gym (Steel)", - "Canalave Pokémon Center 1F", - "Canalave Pokémon Center 2F", - "Canalave Pokémon Center B1F", - "Canalave Library 1F", - "Canalave Library 2F", - "Canalave Library 3F", - "Canalave Private House 1 ()", - "Canalave Private House 2 ()", - "Canalave Private House 3 (Darkrai house?)", - "Canalave Private House 4 ()", - "Canalave Private House 5 ()", + "Canalave - Poké Mart", + "Canalave - Gym", + "Canalave - Center 1F", + "Canalave - Center 2F", + "Canalave - Center B1F", + "Canalave - Library 1F", + "Canalave - Library 2F", + "Canalave - Library 3F", + "Canalave - House 1 (SE)", + "Canalave - House 2 (South of Center)", + "Canalave - Darkrai House", + "Canalave - House 4 (SW)", + "Canalave - House 5 (South of Gym)", "Oreburgh City", - "Oreburgh Poké Mart", - "Oreburgh Oreburgh Gym (Rock)", - "Oreburgh Pokémon Center 1F", - "Oreburgh Pokémon Center 2F", - "Oreburgh Pokémon Center B1F", - "Oreburgh Building 1 1F (most NW)", - "Oreburgh Building 1 2F (most NW)", - "Oreburgh Building 2 1F (west of Mart)", - "Oreburgh Building 2 2F (west of Mart)", - "Oreburgh Private House 1 (west of Center)", - "Oreburgh Mining Museum 1F", - "Oreburgh Private House 2 (west of Gym)", - "Oreburgh Building 3 1F (SE of Center)", - "Oreburgh Building 3 2F (SE of Center)", - "Oreburgh Private House 3 (near Mine)", + "Oreburgh - Poké Mart", + "Oreburgh - Gym", + "Oreburgh - Center 1F", + "Oreburgh - Center 2F", + "Oreburgh - Center B1F", + "Oreburgh - Bdg. 1 1F (most NW)", + "Oreburgh - Bdg. 1 2F (most NW)", + "Oreburgh - Bdg. 2 1F (West of Mart)", + "Oreburgh - Bdg. 2 2F (West of Mart)", + "Oreburgh - House 1 (West of Center)", + "Oreburgh - Mining Museum", + "Oreburgh - House 2 (West of Gym)", + "Oreburgh - Bdg. 3 1F (SE of Center)", + "Oreburgh - Bdg. 3 2F (SE of Center)", + "Oreburgh - House 3 (Near Mine)", "Eterna City", - "Eterna Poké Mart", - "Eterna Gym 1 (Grass) (Lobby)", - "Eterna Gym 2 (Grass) (Main)", - "Eterna Pokémon Center 1F", - "Eterna Pokémon Center 2F", - "Eterna Pokémon Center B1F", - "Eterna Rad Rickshaw's Cycle Shop", - "Team Galactic Eterna Building 1F", - "Team Galactic Eterna Building 2F", - "Team Galactic Eterna Building 3F", - "Team Galactic Eterna Building 4F", - "Eterna Condominums 1F (Name Rater) (Checked ZoneID)", - "Eterna Condominums 2F", - "Eterna Condominums 3F", - "Eterna Cycling Road Gate", - "Eterna Private House 1 (Herb Shop)", - "Eterna Private House 2 (west of Gym)", - "Eterna Private House 3 (south of Statue)", - "Eterna Underground Man's House", + "Eterna - Poké Mart", + "Eterna - Gym Lobby", + "Eterna - Gym Main Room", + "Eterna - Center 1F", + "Eterna - Center 2F", + "Eterna - Center B1F", + "Eterna - Cycle Shop", + "Eterna - Galac. Bdg. 1F", + "Eterna - Galac. Bdg. 2F", + "Eterna - Galac. Bdg. 3F", + "Eterna - Galac. Bdg. 4F", + "Eterna - Eterna Condominums 1F", + "Eterna - Eterna Condominums 2F", + "Eterna - Eterna Condominums 3F", + "Eterna - Cycling Road Gate", + "Eterna - House 1 (Herb Shop)", + "Eterna - House 2 (West of Gym)", + "Eterna - House 3 (South of Statue)", + "Eterna - Underground Man's House", "Hearthome City", - "HeartHome Poké Mart", - "HeartHome Gym (Ghost) (Lobby)", - "HeartHome Gym (Ghost) (not there yet)", - "HeartHome Gym (Ghost) (check zone id vs.)", - "HeartHome Gym (Ghost) (trainers iirc?)", - "HeartHome Gym (Ghost) ()", - "HeartHome Gym (Ghost) ()", - "HeartHome Gym (Ghost) ()", - "HeartHome Gym (Ghost) ()", - "HeartHome Gym (Ghost) ()", - "HeartHome Gym (Ghost) ()", - "HeartHome Gym (Ghost) ()", - "HeartHome Gym (Ghost) ()", - "HeartHome Gym (Ghost) ()", - "HeartHome Pokémon Center 1F", - "HeartHome Pokémon Center 2F", - "HeartHome Pokémon Center B1F", - "HeartHome Building 1 1F (east of Fanclub)", - "HeartHome Building 1 2F (east of Fanclub)", - "HeartHome Building 1 Elevator (east of Fanclub)", - "HeartHome Pokémon Fan Club", - "HeartHome Amity Square West Gate", - "HeartHome Amity Square East Gate", - "HeartHome Route 208 Gate", - "HeartHome Route 209 Gate", - "HeartHome Route 212 Gate", - "HeartHome Building 2 1F (west of Gym)", - "HeartHome Building 2 2F (west of Gym)", - "HeartHome Building 2 Elevator (west of Gym)", - "HeartHome Bebe's House (east of Center)", - "HeartHome Poffin House (west of Mart)", - "HeartHome Contest Hall (Main Lobby)", - "HeartHome Contest Hall? (inaccessible?)", - "HeartHome Contest Hall (Stage room)", - "HeartHome Church", + "Hearthome - Poké Mart", + "Hearthome - Gym Lobby", + "Hearthome - Gym Trainer Room 1", + "Hearthome - Gym Trainer Room 2", + "Hearthome - Gym Question 2", + "Hearthome - Gym Trainer Room 3", + "Hearthome - Gym Question 3", + "Hearthome - Gym Trainer Room 4", + "Hearthome - Gym Question 4", + "Hearthome - Gym Trainer Room 5", + "Hearthome - Gym Trainer Room 6", + "Hearthome - Gym Trainer Room 7", + "Hearthome - Gym Trainer Room 8", + "Hearthome - Gym Leader Room", + "Hearthome - Center 1F", + "Hearthome - Center 2F", + "Hearthome - Center B1F", + "Hearthome - Bdg. 1 1F (East of Fanclub)", + "Hearthome - Bdg. 1 2F (East of Fanclub)", + "Hearthome - Bdg. 1 Elv. (East of Fanclub)", + "Hearthome - Pokémon Fan Club", + "Hearthome - Amity Square West Gate", + "Hearthome - Amity Square East Gate", + "Hearthome - Route 208 Gate", + "Hearthome - Route 209 Gate", + "Hearthome - Route 212 Gate", + "Hearthome - Bdg. 2 1F (West of Gym)", + "Hearthome - Bdg. 2 2F (West of Gym)", + "Hearthome - Bdg. 2 Elv. (West of Gym)", + "Hearthome - Bebe's House (East of Center)", + "Hearthome - Poffin House (West of Mart)", + "Hearthome - Contest Hall (Main Lobby)", + "Hearthome - Contest Hall? (inaccessible?)", + "Hearthome - Contest Hall (Stage room)", + "Hearthome - Church", "Pastoria City", - "Pastoria Poké Mart", - "Pastoria Gym (Water)", - "Pastoria Pokémon Center 1F", - "Pastoria Pokémon Center 2F", - "Pastoria Pokémon Center B1F", - "Pastoria Great Marsh Gate 1F", - "Pastoria Great Marsh Gate 2F", - "Pastoria Private House 1 (west of Mart) (berry lady)", - "Pastoria Private House 2 (north of Mart)", - "Pastoria Private House 3 (Move Relearner)", - "Pastoria Private House 4 (east of Gym)", - "Pastoria Private House 5 (east of Marsh Gate) (ribbon guy)", + "Pastoria - Poké Mart", + "Pastoria - Gym", + "Pastoria - Center 1F", + "Pastoria - Center 2F", + "Pastoria - Center B1F", + "Pastoria - Great Marsh Gate 1F", + "Pastoria - Great Marsh Gate 2F", + "Pastoria - House 1 (West of Mart)", + "Pastoria - House 2 (North of Mart)", + "Pastoria - House 3 (NW of Mart)", + "Pastoria - House 4 (East of Gym)", + "Pastoria - House 5 (East of Marsh Gate)", "Veilstone City", - "Veilstone Gym (Fighting)", - "Veilstone Pokémon Center 1F", - "Veilstone Pokémon Center 2F", - "Veilstone Pokémon Center B1F", - "Veilstone Style Shop (replaces Game Corner)", - "Veilstone Department Store 1F", - "Veilstone Department Store 2F", - "Veilstone Department Store 3F", - "Veilstone Department Store 4F", - "Veilstone Department Store 5F", - "Veilstone Department Store Elevator", - "Veilstone Warehouse", - "Veilstone Style Shop Storage (replaces Prize House)", - "Veilstone Private House 1 (west of Style Shop)", - "Veilstone Private House 2 (east of Dept. Store)", - "Veilstone Private House 3 (north of Center)", - "Veilstone Private House 4 (west of House 1))", - "Veilstone Route 215 Gate", - "Sunyshore Sunyshore City", - "Sunyshore Poké Mart", - "Sunyshore Gym (Electric) ()", - "Sunyshore Gym (Electric) ()", - "Sunyshore Gym (Electric) ()", - "Sunyshore Pokémon Center 1F", - "Sunyshore Pokémon Center 2F", - "Sunyshore Pokémon Center B1F", - "Sunyshore Market", - "Sunyshore Private House 1 ()", - "Sunyshore Private House 2 ()", - "Sunyshore Private House 3 ()", - "Sunyshore Private House 4 ()", - "Sunyshore Private House 5 ()", - "Sunyshore Private House 6 ()", - "Sunyshore Vista Lighthouse Observation Deck", - "Sunyshore Vista Lighthouse Elevator", + "Veilstone - Gym", + "Veilstone - Center 1F", + "Veilstone - Center 2F", + "Veilstone - Center B1F", + "Veilstone - Style Shop", + "Veilstone - Department Store 1F", + "Veilstone - Department Store 2F", + "Veilstone - Department Store 3F", + "Veilstone - Department Store 4F", + "Veilstone - Department Store 5F", + "Veilstone - Department Store Elv.", + "Veilstone - Warehouse", + "Veilstone - Style Shop Storage", + "Veilstone - House 1 (South of Gym, right)", + "Veilstone - House 2 (East of Dept. Store)", + "Veilstone - House 3 (North of Center)", + "Veilstone - House 4 (South of Gym, left)", + "Veilstone - Route 215 Gate", + "Sunyshore City", + "Sunyshore - Poké Mart", + "Sunyshore - Gym Room 1", + "Sunyshore - Gym Room 2", + "Sunyshore - Gym Room 3", + "Sunyshore - Center 1F", + "Sunyshore - Center 2F", + "Sunyshore - Center B1F", + "Sunyshore - Sunyshore Market", + "Sunyshore - House 1 (NE section, right)", + "Sunyshore - House 2 (West of Mart)", + "Sunyshore - House 3 (NE section, left)", + "Sunyshore - Unused House 4", + "Sunyshore - Unused House 5", + "Sunyshore - House 6 (SE)", + "Sunyshore - Lighthouse Top", + "Sunyshore - Lighthouse Elv.", "Snowpoint City", - "Snowpoint Poké Mart", - "Snowpoint Gym (Ice)", - "Snowpoint Pokémon Center 1F", - "Snowpoint Pokémon Center 2F", - "Snowpoint Pokémon Center B1F", - "Snowpoint Private House 1 ()", - "Snowpoint Private House 2 ()", + "Snowpoint - Poké Mart", + "Snowpoint - Gym", + "Snowpoint - Center 1F", + "Snowpoint - Center 2F", + "Snowpoint - Center B1F", + "Snowpoint - House 1 (NW)", + "Snowpoint - House 2 (NE)", "Pokémon League", - "Pokemon League Pokémon Center 1F", - "Pokemon League Pokémon Center 2F", - "Pokemon League Pokémon Center B1F", - "Pokemon League", - "Pokemon League", - "Pokemon League", - "Pokemon League", - "Pokemon League", - "Pokemon League", - "Pokemon League", - "Pokemon League", - "Pokemon League", - "Pokemon League", - "Pokemon League", - "Pokemon League", - "Pokemon League", - "Pokemon League", - "Pokemon League", + "Pokémon League - VR Center 1F", + "Pokémon League - VR Center 2F", + "Pokémon League - VR Center B1F", + "Pokémon League - League Lobby", + "Pokémon League - Lift to Elite Four 1", + "Pokémon League - Elite Four 1", + "Pokémon League - Lift to Elite Four 2", + "Pokémon League - Elite Four 2", + "Pokémon League - Lift to Elite Four 3", + "Pokémon League - Elite Four 3", + "Pokémon League - Lift to Elite Four 4", + "Pokémon League - Elite Four 4", + "Pokémon League - Lift to Champion", + "Pokémon League - Champion Room", + "Pokémon League - Hall to Hall of Fame", + "Pokémon League - Hall of Fame", + "Pokémon League - League 2F", + "Pokémon League - League B1F", "Fight Area", - "Fight Area: Poké Mart", - "Fight Area: Pokémon Center 1F", - "Fight Area: Pokémon Center 2F", - "Fight Area: Pokémon Center B1F", - "191", - "Fight Area: Route 225 Gate", - "Fight Area: Private House 1 ()", - "Fight Area: Private House 2 ()", - "Oreburgh Mine 1F", - "Oreburgh Mine B1F", + "Fight Area - Poké Mart", + "Fight Area - Center 1F", + "Fight Area - Center 2F", + "Fight Area - Center B1F", + "Fight Area - Battle Park Gate", + "Fight Area - Route 225 Gate", + "Fight Area - House 1 (West of Mart)", + "Fight Area - House 2 (South of Center)", + "Oreburgh Mine - B1F", + "Oreburgh Mine - B2F", "Valley Windworks (Outside)", "Valley Windworks (Inside)", - "Eterna Forest Exterior (Cut Tree Path)", + "Eterna Forest (Outside)", "Eterna Forest", - "Fuego Ironworks (Outside?)", - "Fuego Ironworks (Inside?)", - "Mt. Coronet ~ Route 207 Entrance", - "Mt. Coronet ~ 2F", - "Mt. Coronet ~ 3F", - "Mt. Coronet ~ Snow Area", - "Mt. Coronet ~ Summit", - "Mt. Coronet ~ 4F", - "Mt. Coronet ~ 5F", - "Mt. Coronet ~ 6F", - "Mt. Coronet ~ 7F", - "Mt. Coronet ~ Tunnel to Route 211 Entrance", - "Mt. Coronet ~ Route 216 Entrance", - "Mt. Coronet ~ Route 211 Entrance", - "Mt. Coronet ~ B1F", - "216", - "217", - "218", - "Great Marsh Area 1", - "Great Marsh Area 2", - "Great Marsh Area 3", - "Great Marsh Area 4", - "Great Marsh Area 5", - "Great Marsh Area 6", - "Solaceon Ruins", - "Solaceon Ruins", - "Solaceon Ruins", - "Solaceon Ruins", - "Solaceon Ruins", - "Solaceon Ruins", - "Solaceon Ruins", - "Solaceon Ruins", - "Solaceon Ruins", - "Solaceon Ruins", - "Solaceon Ruins", - "Solaceon Ruins", - "Solaceon Ruins", - "Solaceon Ruins", - "Solaceon Ruins", - "Solaceon Ruins", - "Solaceon Ruins", - "Solaceon Ruins", - "Solaceon Ruins", - "Victory Road ~ 1F", - "Victory Road ~ 2F", - "Victory Road ~ B1F", - "247", - "248", - "249", - "250", - "Amity Square (Hearthome)", + "Fuego Ironworks (Outside)", + "Fuego Ironworks (Inside)", + "Mt. Coronet - South 1F 1 (207-208)", + "Mt. Coronet - 2F", + "Mt. Coronet - 3F", + "Mt. Coronet - Summit North", + "Mt. Coronet - Summit South", + "Mt. Coronet - 4F (Waterfall)", + "Mt. Coronet - 4F (Towards Spear Pillar)", + "Mt. Coronet - 5F", + "Mt. Coronet - 6F", + "Mt. Coronet - South 1F 2 (Rock Climb Room)", + "Mt. Coronet - North 1F 2 (216)", + "Mt. Coronet - North 1F 1 (211)", + "Mt. Coronet - B1F", + "Spear Pillar - Diamond", + "Spear Pillar - Pearl", + "Hall of Origin - Diamond", + "Great Marsh - Area 1", + "Great Marsh - Area 2", + "Great Marsh - Area 3", + "Great Marsh - Area 4", + "Great Marsh - Area 5", + "Great Marsh - Area 6", + "Solaceon Ruins - 2F", + "Solaceon Ruins - 1F", + "Solaceon Ruins - F Room Dead End (NE)", + "Solaceon Ruins - 1F Dead End (NW)", + "Solaceon Ruins - F Room", + "Solaceon Ruins - 1F Dead End (SE)", + "Solaceon Ruins - R Room", + "Solaceon Ruins - F Room Dead End (SE)", + "Solaceon Ruins - N Room Dead End (SE)", + "Solaceon Ruins - E Room Dead End (SW)", + "Solaceon Ruins - R Room Dead End (NW)", + "Solaceon Ruins - R Room Dead End (SW)", + "Solaceon Ruins - I Room", + "Solaceon Ruins - N Room", + "Solaceon Ruins - E Room", + "Solaceon Ruins - D Room", + "Solaceon Ruins - I Room Dead End (SE)", + "Solaceon Ruins - N Room Dead End (NW)", + "Solaceon Ruins - E Room Dead End (SE)", + "Victory Road - 1F", + "Victory Road - 2F", + "Victory Road - B1F", + "Victory Road - 1F Back (Marley)", + "Victory Road - 1F Back (Entrance)", + "Victory Road - 1F Back (214 Exit)", + "Pal Park - Unused", + "Amity Square", "Ravaged Path", - "Floral Path (Floaroma)", - "Floral Path: Private House", - "Oreburgh Tunnel 1F", - "Oreburgh Tunnel B1F", - "257", - "258", + "Floaroma Meadow", + "Floaroma Meadow - House", + "Oreburgh Tunnel - 1F", + "Oreburgh Tunnel - B1F", + "Fullmoon Island", + "Fullmoon Island - Cresselia Room", "Stark Mountain (Outside)", - "Stark Mountain (Entrance)", - "Stark Mountain (Interior)", - "262", + "Stark Mountain - Entrance", + "Stark Mountain - Interior", + "Stark Mountain - Heatran's Room", "Sendoff Spring", - "Turnback Cave", - "Turnback Cave", - "Turnback Cave", - "Turnback Cave", - "Turnback Cave", - "Turnback Cave", - "Turnback Cave", - "Turnback Cave", - "Turnback Cave", - "Turnback Cave", - "Turnback Cave", - "Turnback Cave", - "Turnback Cave", - "Turnback Cave", - "Turnback Cave", - "Turnback Cave", - "Turnback Cave", - "Turnback Cave", - "Turnback Cave", - "Turnback Cave", - "Turnback Cave", + "Turnback Cave - Entrance", + "Turnback Cave - d17r0103", + "Turnback Cave - d17r0104", + "Turnback Cave - d17r0105", + "Turnback Cave - d17r0106", + "Turnback Cave - d17r0107", + "Turnback Cave - d17r0108", + "Turnback Cave - d17r0109", + "Turnback Cave - d17r0110", + "Turnback Cave - d17r0111", + "Turnback Cave - d17r0112", + "Turnback Cave - d17r0113", + "Turnback Cave - d17r0114", + "Turnback Cave - d17r0115", + "Turnback Cave - d17r0116", + "Turnback Cave - d17r0117", + "Turnback Cave - d17r0118", + "Turnback Cave - d17r0119", + "Turnback Cave - d17r0120", + "Turnback Cave - d17r0121", + "Turnback Cave - d17r0122", "Flower Paradise", - "Snowpoint Temple", - "Snowpoint Temple", - "Snowpoint Temple", - "Snowpoint Temple", - "Snowpoint Temple", - "Snowpoint Temple", - "Wayward Cave", - "Wayward Cave", - "Maniac Tunnel", - "Maniac Tunnel", + "Snowpoint Temple - 1F", + "Snowpoint Temple - B1F", + "Snowpoint Temple - B2F", + "Snowpoint Temple - B3F", + "Snowpoint Temple - B4F", + "Snowpoint Temple - B5F", + "Wayward Cave - Main Area", + "Wayward Cave - Secret Area", + "Ruin Maniac Cave - Small", + "Ruin Maniac Cave - Large", "Maniac Tunnel", "Trophy Garden", "Iron Island (Outside)", - "299", - "300", - "301", - "302", - "303", - "304", - "305", - "Old Chateau", - "Old Chateau", - "Old Chateau", - "Old Chateau", - "Old Chateau", - "Old Chateau", - "Old Chateau", - "Old Chateau", - "Old Chateau", - "Team Galactic HQ 1F", - "Team Galactic HQ 2F", - "Team Galactic HQ 3F", - "Team Galactic HQ 4F", - "319", - "320", - "321", - "322", + "Iron Island - 1F", + "Iron Island - B1F Left", + "Iron Island - B1F Right", + "Iron Island - B2F Right", + "Iron Island - B2F Left (Riley's Room)", + "Iron Island - B3F", + "Iron Island - House", + "Old Chateau - Lobby", + "Old Chateau - Dining Room", + "Old Chateau - 2F Small Rooms", + "Old Chateau - 2F Hallway", + "Old Chateau - Hallway Room 1", + "Old Chateau - Hallway Room 2", + "Old Chateau - Hallway Room 3", + "Old Chateau - Hallway Room 4", + "Old Chateau - Hallway Room 5", + "Team Galactic HQ - 1F", + "Team Galactic HQ - 2F", + "Team Galactic HQ - 3F", + "Team Galactic HQ - 4F", + "Team Galactic HQ - B1F", + "Team Galactic HQ - B2F", + "Team Galactic HQ - Lake Trio Room", + "Team Galactic HQ - Hallway to Lake Trio", "Lake Verity (Before)", "Lake Verity (After)", - "325", - "326", + "Verity Cavern", + "Lake Valor (Before)", "Lake Valor (After)", - "328", - "329", + "Valor Cavern", + "Lake Acuity (Before)", "Lake Acuity (After)", - "331", - "332", - "333", - "334", - "335", - "336", - "337", - "338", - "339", - "340", - "341", - "342", - "343", - "344", - "345", - "346", + "Acuity Cavern", + "Newmoon Island", + "Newmoon Island - Darkrai Room", + "Battle Park", + "Battle Park - Point Corner", + "Battle Tower - Lobby", + "Battle Tower - d31r0202", + "Battle Tower - d31r0203", + "Battle Tower - d31r0204", + "Battle Tower - d31r0205", + "Battle Tower - d31r0206", + "Battle Tower - d31r0207", + "Local Battle Room (Singles) (?)", + "Local Battle Room (Doubles) (?)", + "EVERYWHERE", + "Verity Lakefront", "Valor Lakefront", - "348", - "349", - "350", + "Valor Lakefront - Restaurant", + "Valor Lakefront - House 1 (NE)", + "Valor Lakefront - House 2 (NW)", "Acuity Lakefront", - "352", - "353", + "Spring Path", + "NOTHING", "Route 201", "Route 202", "Route 203", - "Route 204 ~ South", - "Route 204 ~ North", - "Route 205 ~ South", - "Route 205: Rest House", - "Route 205 ~ North", + "Route 204 (South)", + "Route 204 (North)", + "Route 205 (South)", + "Route 205 - House", + "Route 205 (North)", "Route 206", - "363", + "Route 206 - Cycling Road Gate", "Route 207", "Route 208", - "366", + "Route 208 - House", "Route 209", - "Lost Tower 1F", - "Lost Tower 2F", - "Lost Tower 3F", - "Lost Tower 4F", - "Lost Tower 5F", - "Route 210 ~ South", - "374", - "Route 210 ~ North", - "376", - "Route 211 ~ West", - "Route 211 ~ East", - "Route 212 ~ North", - "380", - "381", - "382", - "Route 212 ~ South", - "384", + "Lost Tower - 1F", + "Lost Tower - 2F", + "Lost Tower - 3F", + "Lost Tower - 4F", + "Lost Tower - 5F", + "Route 210 (South)", + "Route 210 - Café Cabin", + "Route 210 (North)", + "Route 210 - House (North)", + "Route 211 (West)", + "Route 211 (East)", + "Route 212 (North)", + "Pokémon Mansion - Lobby", + "Pokémon Mansion - Rooms (Left)", + "Pokémon Mansion - Backlot Room", + "Route 212 (South)", + "Route 212 - House (South)", "Route 213", - "386", - "387", - "388", - "389", - "390", - "391", + "Route 213 - Pastoria Gate", + "Route 213 - House", + "Valor Lakefront - Hotel", + "Valor Lakefront - House 3 (Most SE)", + "Valor Lakefront - House 4 (SW)", + "Valor Lakefront - House 5 (SE, Rock Climb)", "Route 214", - "393", + "Route 214 - Veilstone Gate", "Route 215", "Route 216", - "396", + "Route 216 - House", "Route 217", - "398", - "399", + "Route 217 - House 1 (SW)", + "Route 217 - House 2 (NE)", "Route 218", - "Route 218: Jubilife Gate", - "402", + "Route 218 - Jubilife Gate", + "Route 218 - Canalave Gate", "Route 219", "Route 221", - "405", - "406", + "Ramanas Park - Lobby", + "Route 221 - House", "Route 222", - "408", - "409", - "410", + "Route 222 - House 1 (Left)", + "Route 222 - House 2 (Right)", + "Route 222 - Sunyshore Gate", "Route 224", "Route 225", - "413", + "Route 225 - House", "Route 227", - "415", + "Route 227 - House", "Route 228", - "417", - "418", - "419", + "Route 228 - Route 226 Gate", + "Route 228 - House 1 (North)", + "Route 228 - House 2 (South)", "Route 229", - "421", + "RECORD", "Twinleaf Town", - "Twinleaf Rival's House 1F", - "Twinleaf Rival's House 2F", - "Twinleaf Player's House 1F", - "Twinleaf Player's House 2F", - "Twinleaf Private House 1 (north of Player house)", - "Twinleaf Private House 2 (west of Player house)", + "Twinleaf - Rival's House 1F", + "Twinleaf - Rival's House 2F", + "Twinleaf - Player's House 1F", + "Twinleaf - Player's House 2F", + "Twinleaf - House 3 (North of Player's House)", + "Twinleaf - House 4 (West of Player's House)", "Sandgem Town", - "Sandgem Poké Mart", - "Sandgem Pokémon Center 1F", - "Sandgem Pokémon Center 2F", - "Sandgem Pokémon Center B1F", - "Sandgem Pokémon Research Lab", - "Sandgem Dawn/Lucas' House 1F", - "Sandgem Dawn/Lucas' House 2F", - "Sandgem Private House 1 (SW House)", + "Sandgem - Poké Mart", + "Sandgem - Center 1F", + "Sandgem - Center 2F", + "Sandgem - Center B1F", + "Sandgem - Pokémon Research Lab", + "Sandgem - Dawn/Lucas' House 1F", + "Sandgem - Dawn/Lucas' House 2F", + "Sandgem - House (SW)", "Floaroma Town", - "Floaroma Poké Mart", - "Floaroma Pokémon Center 1F", - "Floaroma Pokémon Center 2F", - "Floaroma Pokémon Center B1F", - "Floaroma Flower Shop", - "Floaroma Private House 1 (east of Center)", - "Floaroma Private House 1 (NW of Center)", + "Floaroma - Poké Mart", + "Floaroma - Center 1F", + "Floaroma - Center 2F", + "Floaroma - Center B1F", + "Floaroma - Flower Shop", + "Floaroma - House 1 (East of Center)", + "Floaroma - House 2 (NW of Center)", "Solaceon Town", - "Solaceon Poké Mart", - "Solaceon Pokémon Center 1F", - "Solaceon Pokémon Center 2F", - "Solaceon Pokémon Center B1F", - "Solaceon Pokémon Nursery", - "Solaceon Private House 1 ()", - "Solaceon Private House 2 ()", - "Solaceon Private House 3 ()", - "Solaceon Private House 4 ()", + "Solaceon - Poké Mart", + "Solaceon - Center 1F", + "Solaceon - Center 2F", + "Solaceon - Center B1F", + "Solaceon - Pokémon Nursery", + "Solaceon - House 1 (NW)", + "Solaceon - Pokémon News Press", + "Solaceon - House 2 (North of Center)", + "Solaceon - House 3 (West of Ruins)", "Celestic Town", - "Celestic Pokémon Center 1F", - "Celestic Pokémon Center 2F", - "Celestic Pokémon Center B1F", - "Celestic", - "Celestic Private House 1 ()", - "Celestic Private House 2 ()", - "Celestic Private House 3 ()", - "464", + "Celestic - Center 1F", + "Celestic - Center 2F", + "Celestic - Center B1F", + "Celestic - Large House", + "Celestic - House 1 (Shop)", + "Celestic - House 2 (NE)", + "Celestic - House 3 (SW)", + "Celestic - Cave", "Survival Area", - "Survival Area: Poké Mart", - "Survival Area: Pokémon Center 1F", - "Survival Area: Pokémon Center 2F", - "Survival Area: Pokémon Center B1F", - "Survival Area: Private House 1 ()", - "Survival Area: Private House 2 ()", - "Survival Area: Private House 3 ()", + "Survival Area - Poké Mart", + "Survival Area - Center 1F", + "Survival Area - Center 2F", + "Survival Area - Center B1F", + "Survival Area - House 1 (West of Center)", + "Survival Area - House 2 (South of Center)", + "Survival Area - House 3 (North)", "Resort Area", - "Resort Area: Poké Mart", - "Resort Area: Pokémon Center 1F", - "Resort Area: Pokémon Center 2F", - "Resort Area: Pokémon Center B1F", - "Resort Area: Ribbon Syndicate 1F", - "Resort Area: Ribbon Syndicate 2F", - "Resort Area: Ribbon Syndicate Elevator", - "Resort Area: Private House 1 ()", - "Resort Area: Private House 2 ()", - "483", - "484", + "Resort Area - Poké Mart", + "Resort Area - Center 1F", + "Resort Area - Center 2F", + "Resort Area - Center B1F", + "Resort Area - Ribbon Syndicate 1F", + "Resort Area - Ribbon Syndicate 2F", + "Resort Area - Ribbon Syndicate Elv.", + "Resort Area - House 1 (South of Center)", + "Resort Area - House 2 (South of Syndicate)", + "Underground - UNUSED", + "Union Room", "Route 220", "Route 223", "Route 226", - "Route 226: Private house", + "Route 226 - House", "Route 230", - "490", - "491", - "492", - "493", - "494", - "Ramanas Park", - "Ramanas Park", - "Ramanas Park", - "Ramanas Park", - "Ramanas Park", - "Groudon's Ramanas Room", - "Kyogre's Ramanas Room", - "Rayquaza's Ramanas Room", - "Ramanas Park", - "Ramanas Park", - "Ramanas Park", - "Ramanas Park", - "Ramanas Park", - "508", - "509", - "510", - "511", - "512", - "513", - "514", - "515", - "516", - "517", - "518", - "519", - "520", - "521", - "522", - "523", - "524", - "525", - "526", - "527", - "528", - "529", - "530", - "531", - "532", - "533", - "534", - "535", - "536", - "537", - "538", - "539", - "540", - "541", - "542", - "543", - "544", - "545", - "546", - "547", - "548", - "549", - "550", - "551", - "552", - "553", - "554", - "555", - "556", - "557", - "558", - "559", - "560", - "561", - "562", - "563", - "564", - "565", - "566", - "567", - "568", - "569", - "570", - "571", - "572", - "573", - "574", - "575", - "576", - "577", - "578", - "579", - "580", - "581", - "582", - "583", - "584", - "585", - "586", - "587", - "588", - "589", - "590", - "591", - "592", - "593", - "594", - "595", - "596", - "597", - "598", - "599", - "600", - "601", - "602", - "603", - "604", - "605", - "606", - "607", - "608", - "609", - "610", - "611", - "612", - "613", - "614", - "615", - "616", - "617", - "618", - "619", - "620", - "621", - "622", - "623", - "624", - "625", - "Jubilife TV (?room behind guy in Clip Room)", - "627", - "628", - "629", - "630", - "631", - "632", - "633", - "634", - "635", - "636", - "637", - "638", - "639", - "640", - "641", - "642", - "643", - "644", - "645", - "646", - "647", - "648", - "649", - "650", - "651", - "652", - "653", - "654", - "655", - "656", - "657", - "UNKNOWN" + "Seabreak Path", + "Union Room Receptionist - union01", + "Union Room Receptionist - union02", + "Union Room Receptionist - union03", + "Eterna - Galac. Bdg. Rotom Room", + "Ramanas Park - d10r0201", + "Ramanas Park - d10r0202", + "Ramanas Park - d10r0301", + "Ramanas Park - d10r0302", + "Ramanas Park - d10r0303", + "Ramanas Park - Groudon", + "Ramanas Park - Kyogre", + "Ramanas Park - Rayquaza", + "Ramanas Park - d10r0501", + "Ramanas Park - d10r0502", + "Ramanas Park - Mewtwo", + "Ramanas Park - d10r0701", + "Ramanas Park - d10r0801", + "Underground Corridor - uga01", + "Underground Corridor - uga02", + "Underground Corridor - uga03", + "Underground Corridor - uga04", + "Underground Corridor - uga05", + "Underground Corridor - uga06", + "Underground Corridor - uga07", + "Underground Corridor - uga08", + "Underground Corridor - uga09", + "Underground Corridor - uga10", + "Underground Corridor - ugb01", + "Underground Corridor - ugb02", + "Underground Corridor - ugb03", + "Underground Corridor - ugb04", + "Underground Corridor - ugb05", + "Underground Corridor - ugb06", + "Underground Corridor - ugb07", + "Underground Corridor - ugc01", + "Underground Corridor - ugd01", + "Underground Corridor - ugd02", + "Underground Corridor - ugd03", + "Underground Corridor - ugd04", + "Underground Corridor - ugd05", + "Underground Corridor - uge01", + "Underground Corridor - uge02", + "Underground Corridor - uge03", + "Underground Corridor - uge04", + "Underground Corridor - uge05", + "Underground Corridor - ugf01", + "Underground Corridor - ugf02", + "Underground Corridor - ugf03", + "Underground Corridor - ugf04", + "Underground Corridor - ugf05", + "Underground Corridor - ugf06", + "Underground Corridor - ugf07", + "Underground Room - ugspace01", + "Underground Room - ugspace02", + "Underground Room - ugspace03", + "Underground Room - ugspace04", + "Underground Room - ugspace05", + "Underground Room - ugspace06", + "Underground Room - ugspace07", + "Underground Room - ugspace08", + "Underground Room - ugspace09", + "Underground Room - ugspace10", + "Underground Room - ugspace11", + "Underground Room - ugspace12", + "Underground Room - ugspace13", + "Underground Room - ugspace14", + "Underground Room - ugspace15", + "Underground Room - ugspace16", + "Underground Room - ugspace17", + "Underground Room - ugspace18", + "Underground Room - ugspace19", + "Underground Room - ugspace20", + "Underground Room - ugspace21", + "Underground Room - ugspace22", + "Underground Room - ugspace23", + "Underground Room - ugspace24", + "Underground Room - ugspace25", + "Underground Room - ugspace26", + "Underground Room - ugspace27", + "Underground Room - ugspace28", + "Underground Room - ugspace29", + "Underground Room - ugspace30", + "Underground Room - ugspace31", + "Underground Room - ugspace32", + "Underground Room - ugspace33", + "Underground Room - ugspace34", + "Underground Room - ugspace35", + "Underground Room - ugspace36", + "Underground Room - ugspace37", + "Underground Room - ugspace38", + "Underground Room - ugspace39", + "Underground Room - ugspace40", + "Underground Room - ugspace41", + "Underground Room - ugspace42", + "Underground Room - ugspace43", + "Underground Room - ugspace44", + "Underground Room - ugspace45", + "Underground Room - ugspace46", + "Underground Room - ugspace47", + "Underground Room - ugspace48", + "Underground Room - ugspace49", + "Underground Room - ugspace50", + "Underground Room - ugspace51", + "Underground Room - ugspace52", + "Underground Room - ugspace53", + "Underground Room - ugspace54", + "Underground Room - ugspace55", + "Underground Room - ugspace56", + "Underground Room - ugspace57", + "Underground Room - ugspace58", + "Underground Room - ugspace59", + "Underground Room - ugspace60", + "Underground Room - ugspace61", + "Underground Room - ugspace62", + "Underground Room - ugspace63", + "Underground Room - ugspace64", + "Underground Room - ugspace65", + "Underground Room - ugspace66", + "Underground Room - ugspace67", + "Underground Room - ugspace68", + "Underground Room - ugspacel01", + "Underground Room - ugspacel02", + "Underground Room - ugspacel03", + "Underground Room - ugspacel04", + "Underground Room - ugspacel05", + "Underground Room - ugspacel06", + "Underground Room - ugspacel07", + "Hall of Origin - Pearl", + "Ramanas Park - d10r0901", + "Underground - Secret Base 1", + "Underground - Secret Base 2", + "Underground - Secret Base 3", + "Underground - Secret Base 4", + "Ramanas Park - d10r0902", + "Boat Cutscene", + "Jubilife TV - E4 Capsules", + "Underground Secret Base - ugaasecretbase01", + "Underground Secret Base - ugaasecretbase02", + "Underground Secret Base - ugaasecretbase03", + "Underground Secret Base - ugabsecretbase01", + "Underground Secret Base - ugabsecretbase02", + "Underground Secret Base - ugabsecretbase03", + "Underground Secret Base - ugbasecretbase01", + "Underground Secret Base - ugbasecretbase02", + "Underground Secret Base - ugbasecretbase03", + "Underground Secret Base - ugcasecretbase01", + "Underground Secret Base - ugcasecretbase02", + "Underground Secret Base - ugcasecretbase03", + "Underground Secret Base - ugdasecretbase01", + "Underground Secret Base - ugdasecretbase02", + "Underground Secret Base - ugdasecretbase03", + "Underground Secret Base - ugeasecretbase01", + "Underground Secret Base - ugeasecretbase02", + "Underground Secret Base - ugeasecretbase03", + "Underground Secret Base - ugfasecretbase01", + "Underground Secret Base - ugfasecretbase02", + "Underground Secret Base - ugfasecretbase03", + "Ramanas Park - d10r0202b", + "Ramanas Park - d10r0301b", + "Ramanas Park - d10r0302b", + "Ramanas Park - d10r0303b", + "Ramanas Park - Groudon B", + "Ramanas Park - Kyogre B", + "Ramanas Park - Rayquaza B", + "Ramanas Park - d10r0501b", + "Ramanas Park - d10r0502b", + "Ramanas Park - Mewtwo B" }; } }