private bool DebugDynamicPointerNames()
{
List<DynamicPointer> tempList = new List<DynamicPointer>();
int foundMatches = 0;
Dictionary<DynamicPointer, int> values = new Dictionary<DynamicPointer, int>();
foreach (DynamicPointer dp in pointerNames.Keys)
{
tempList.Add(dp);
values.Add(dp, 0);
}
foreach (DynamicPointer dp in tempList)
{
foreach (string line in scripts[tabControl1.SelectedIndex].Lines)
{
if (line.StartsWith("#org ") && dp.Name.Equals(line.Split(' ')[1].Substring(1)))
{
pointerNames[dp] = true;
values[dp]++;
if (foundMatches != 1)
{
pointerNames[dp] = false;
}
}
}
}
foreach (DynamicPointer dp in pointerNames.Keys)
{
if (!pointerNames[dp] && values[dp] == 0)
{
MessageBox.Show("The dynamic pointer \"@" + dp.Name + "\" (on line " + dp.LineNumber + ", parameter number " + (dp.ParameterNumber + 1) + ") does not have a valid value associated with it.");
return false;
}
else if (!pointerNames[dp] && values[dp] > 1)
{
MessageBox.Show("The dynamic pointer \"@" + dp.Name + "\" (on line " + dp.LineNumber + ", parameter number " + (dp.ParameterNumber + 1) + ") has more than one valid value associated with it.\nDid you accidentally duplicate a #org line?");
return false;
}
}
return true;
}