private void pbSource_MouseMove(object sender, MouseEventArgs e) { if (e.X != srcPt.X || e.Y != srcPt.Y) { srcPt.X = e.X; srcPt.Y = e.Y; Color c = bmpSrc.GetPixel(srcPt.X, srcPt.Y); Province p = null; if (srcChroma.TryGetValue(c.ToArgb(), out p)) { toolTip1.Show(p.ToString(), pbSource, new Point(srcPt.X, srcPt.Y - 20)); StatusLabel.Text = p.ToString(); } } }
private void pbTarget_MouseMove(object sender, MouseEventArgs e) { if (e.X != destPt.X || e.Y != destPt.Y) { destPt.X = e.X; destPt.Y = e.Y; Color c = bmpDest.GetPixel(destPt.X, destPt.Y); Province p = null; if (destChroma.TryGetValue(c.ToArgb(), out p)) { toolTip1.Show(p.ToString(), pbTarget, new Point(destPt.X, destPt.Y - 20)); StatusLabel.Text = p.ToString(); } } }
public ProvinceMapping(string line, string srcTag, string destTag, List <Province> possibleSources, List <Province> possibleDests, string currentMapping) { string[] tokens = line.Split(' ', '\t'); int parseMode = 0; foreach (string s in tokens) { if (s == "=" || s == String.Empty) { continue; } else if (s == "link" || s == "{" || s == "}" || s == "=") { parseMode = 0; } else if (s == srcTag) { parseMode = 1; } else if (s == destTag) { parseMode = 2; } else if (s == "resettable") { parseMode = 3; } else if (s[0] == '#') { break; } else { switch (parseMode) { case 1: { // provID is src int provID = int.Parse(s.Trim('}')); Province prov = possibleSources.Find( delegate(Province p) { return(p.ID == provID); }); if (prov == null) { throw new Exception(String.Format("Province \"{0}\" appears in a mapping, but not in game data!", prov.ToString())); } if (prov.mappings.ContainsKey(currentMapping)) { throw new Exception(String.Format("Province \"{0}\" appears in more than one mapping!", prov.ToString())); } prov.mappings.Add(currentMapping, this); srcProvs.Add(prov); break; } case 2: { // provID is dest int provID = int.Parse(s.Trim('}')); Province prov = possibleDests.Find( delegate(Province p) { return(p.ID == provID); }); if (prov == null) { throw new Exception(String.Format("Province \"{0}\" appears in a mapping, but not in game data!", prov.ToString())); } if (prov.mappings.ContainsKey(currentMapping)) { throw new Exception(String.Format("Province \"{0}\" appears in more than one mapping!", prov.ToString())); } prov.mappings.Add(currentMapping, this); destProvs.Add(prov); break; } case 3: { string region = s.Trim('}'); resettableRegions.Add(region); break; } default: throw new Exception(String.Format("Unexpected token {0}", s)); } parseMode = 0; } } }