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"
};
}
}