Battle_Script_Pro.Form1.DebugDynamicPointerNames C# (CSharp) Method

DebugDynamicPointerNames() private method

private DebugDynamicPointerNames ( ) : bool
return bool
        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;
        }
Form1