Exemplo n.º 1
0
 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();
         }
     }
 }
Exemplo n.º 2
0
 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();
         }
     }
 }
Exemplo n.º 3
0
        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;
                }
            }
        }