public void MarkLocation(MarkerItem markerItem, int xPos, int yPos) { if (xPos > m_mapProvinceDefinitionItem.GetLength(0) || yPos > m_mapProvinceDefinitionItem.GetLength(1)) { return; } var provinceDefinitionItem = m_mapProvinceDefinitionItem[xPos, yPos]; if (!markerItem.Provinces.Contains(provinceDefinitionItem)) { return; } if (markerItem.Location == provinceDefinitionItem.Id) { return; } var oldProvince = markerItem.Provinces.Find(findItem => findItem.Id == markerItem.Location); if (oldProvince != null) { DrawCheckeredListPixel(oldProvince, markerItem.Color); } markerItem.Location = provinceDefinitionItem.Id; DrawCheckeredListPixel(provinceDefinitionItem, Color.Black); }
public void MarkLocation(MarkerItem markerItem, int xPos, int yPos) { if (xPos <= m_mapProvinceDefinitionItem.GetLength(0) && yPos <= m_mapProvinceDefinitionItem.GetLength(1)) { ProvinceDefinitionItem provinceDefinitionItem = m_mapProvinceDefinitionItem[xPos, yPos]; if (markerItem.ListProvince.Contains(provinceDefinitionItem)) { if (markerItem.Location != provinceDefinitionItem.IdProvince) { ProvinceDefinitionItem oldProvinceDefinitionItem = markerItem.ListProvince.Find(findItem => (findItem.IdProvince == markerItem.Location)); if (oldProvinceDefinitionItem != null) { DrawCheckeredListPixel(oldProvinceDefinitionItem, markerItem.Color); } markerItem.Location = provinceDefinitionItem.IdProvince; DrawCheckeredListPixel(provinceDefinitionItem, Color.Black); } else { // nothing todo } } } }
public void MarkOutgoing(MarkerItem markerItem) { foreach (MarkerItem outgoingMarkerItem in markerItem.ListOutgoing) { foreach (ProvinceDefinitionItem provinceDefinitionItem in outgoingMarkerItem.ListProvince) { if (outgoingMarkerItem.Location != provinceDefinitionItem.IdProvince) { DrawHorizontalListPixel(provinceDefinitionItem, Color.White); } } } foreach (MarkerItem ingoingMarkerItem in m_listMarkerItem) { if (ingoingMarkerItem.ListOutgoing.Contains(markerItem)) { foreach (ProvinceDefinitionItem provinceDefinitionItem in ingoingMarkerItem.ListProvince) { if (ingoingMarkerItem.Location != provinceDefinitionItem.IdProvince) { DrawVerticalListPixel(provinceDefinitionItem, Color.White); } } } } }
public void Mark(MarkerItem markerItem, int xPos, int yPos) { if (xPos > m_mapProvinceDefinitionItem.GetLength(0) || yPos > m_mapProvinceDefinitionItem.GetLength(1)) { return; } var province = m_mapProvinceDefinitionItem[xPos, yPos]; Color drawColor; if (markerItem.Provinces.Contains(province)) { markerItem.Provinces.Remove(province); drawColor = Color.FromArgb(0, 0, 0, 0); } else { foreach (var clearMarkerItem in MarkerItems) { clearMarkerItem.Provinces.Remove(province); } markerItem.Provinces.Add(province); drawColor = markerItem.Color; } foreach (var pixel in province.Pixels) { BitmapMapOverlay.SetPixel(pixel.XPos, pixel.YPos, drawColor); } }
public void ChangeMarker(MarkerItem oldMarkerItem, MarkerItem markerItem) { if (oldMarkerItem != null) { foreach (MarkerItem outgoingMarkerItem in oldMarkerItem.ListOutgoing) { foreach (ProvinceDefinitionItem provinceDefinitionItem in outgoingMarkerItem.ListProvince) { if (outgoingMarkerItem.Location != provinceDefinitionItem.IdProvince) { DrawHorizontalListPixel(provinceDefinitionItem, outgoingMarkerItem.Color); } } } foreach (MarkerItem ingoingMarkerItem in m_listMarkerItem) { if (ingoingMarkerItem.ListOutgoing.Contains(oldMarkerItem)) { foreach (ProvinceDefinitionItem provinceDefinitionItem in ingoingMarkerItem.ListProvince) { if (ingoingMarkerItem.Location != provinceDefinitionItem.IdProvince) { DrawVerticalListPixel(provinceDefinitionItem, ingoingMarkerItem.Color); } } } } } //--------------------------------------------------------------------- foreach (MarkerItem outgoingMarkerItem in markerItem.ListOutgoing) { foreach (ProvinceDefinitionItem provinceDefinitionItem in outgoingMarkerItem.ListProvince) { if (outgoingMarkerItem.Location != provinceDefinitionItem.IdProvince) { DrawHorizontalListPixel(provinceDefinitionItem, Color.White); } } } foreach (MarkerItem ingoingMarkerItem in m_listMarkerItem) { if (ingoingMarkerItem.ListOutgoing.Contains(markerItem)) { foreach (ProvinceDefinitionItem provinceDefinitionItem in ingoingMarkerItem.ListProvince) { if (ingoingMarkerItem.Location != provinceDefinitionItem.IdProvince) { DrawVerticalListPixel(provinceDefinitionItem, Color.White); } } } } }
public void MarkOutgoing(MarkerItem markerItem) { var provinces = from outgoingMarkerItem in markerItem.OutgoingItems from provinceDefinitionItem in outgoingMarkerItem.Provinces where outgoingMarkerItem.Location != provinceDefinitionItem.Id select provinceDefinitionItem; foreach (var province in provinces) { DrawHorizontalListPixel(province, Color.White); } foreach (var province in MarkerItems.Where(ingoingMarkerItem => ingoingMarkerItem.OutgoingItems.Contains(markerItem)).SelectMany(ingoingMarkerItem => ingoingMarkerItem.Provinces.Where(provinceDefinitionItem => ingoingMarkerItem.Location != provinceDefinitionItem.Id))) { DrawVerticalListPixel(province, Color.White); } }
public void MarkOutgoing(MarkerItem markerItem, int xPos, int yPos) { if (xPos <= m_mapProvinceDefinitionItem.GetLength(0) && yPos <= m_mapProvinceDefinitionItem.GetLength(1)) { ProvinceDefinitionItem markedProvinceDefinitionItem = m_mapProvinceDefinitionItem[xPos, yPos]; MarkerItem outgoingMarkterItem = m_listMarkerItem.Find(findItem => findItem.ListProvince.Contains(markedProvinceDefinitionItem)); if ((outgoingMarkterItem != null) && (outgoingMarkterItem != markerItem) && !outgoingMarkterItem.ListOutgoing.Contains(markerItem)) { if (markerItem.ListOutgoing.Contains(outgoingMarkterItem)) { markerItem.ListOutgoing.Remove(outgoingMarkterItem); foreach (ProvinceDefinitionItem provinceDefinitionItem in outgoingMarkterItem.ListProvince) { if (outgoingMarkterItem.Location != provinceDefinitionItem.IdProvince) { DrawHorizontalListPixel(provinceDefinitionItem, outgoingMarkterItem.Color); } } } else { markerItem.ListOutgoing.Add(outgoingMarkterItem); foreach (ProvinceDefinitionItem provinceDefinitionItem in outgoingMarkterItem.ListProvince) { if (outgoingMarkterItem.Location != provinceDefinitionItem.IdProvince) { DrawHorizontalListPixel(provinceDefinitionItem, Color.White); } } } } else { // nothing todo } } }
//------------------------------------------------------------------------ public void Mark(MarkerItem markerItem, int xPos, int yPos) { if (xPos <= m_mapProvinceDefinitionItem.GetLength(0) && yPos <= m_mapProvinceDefinitionItem.GetLength(1)) { ProvinceDefinitionItem provinceDefinitionItem = m_mapProvinceDefinitionItem[xPos, yPos]; Color drawColor; if (markerItem.ListProvince.Contains(provinceDefinitionItem)) { markerItem.ListProvince.Remove(provinceDefinitionItem); drawColor = Color.FromArgb(0, 0, 0, 0); } else { foreach (MarkerItem clearMarkerItem in m_listMarkerItem) { clearMarkerItem.ListProvince.Remove(provinceDefinitionItem); } markerItem.ListProvince.Add(provinceDefinitionItem); drawColor = markerItem.Color; } //------------------------------------------------------------------ foreach (Pixel pixel in provinceDefinitionItem.ListPixel) { m_bitmapMapOverlay.SetPixel(pixel.XPos, pixel.YPos, drawColor); } } else { int k = 4711; } }
public void ChangeMarker(MarkerItem oldMarkerItem, MarkerItem markerItem) { if (oldMarkerItem != null) { foreach (var outgoingMi in oldMarkerItem.OutgoingItems) { foreach (var province in outgoingMi.Provinces.Where(province => outgoingMi.Location != province.Id)) { DrawHorizontalListPixel(province, outgoingMi.Color); } } foreach (var ingoingMi in MarkerItems.Where(mi => mi.OutgoingItems.Contains(oldMarkerItem))) { foreach (var province in ingoingMi.Provinces.Where(province => ingoingMi.Location != province.Id)) { DrawVerticalListPixel(province, ingoingMi.Color); } } } foreach (var provinceDefinitionItem in markerItem.OutgoingItems.SelectMany(outgoingMarkerItem => outgoingMarkerItem.Provinces .Where(provinceDefinitionItem => outgoingMarkerItem.Location != provinceDefinitionItem.Id))) { DrawHorizontalListPixel(provinceDefinitionItem, Color.White); } foreach (var provinceDefinitionItem in MarkerItems.Where(ingoingMarkerItem => ingoingMarkerItem.OutgoingItems.Contains(markerItem)).SelectMany(ingoingMarkerItem => ingoingMarkerItem.Provinces.Where(provinceDefinitionItem => ingoingMarkerItem.Location != provinceDefinitionItem.Id))) { DrawVerticalListPixel(provinceDefinitionItem, Color.White); } }
public void MarkOutgoing(MarkerItem markerItem, int xPos, int yPos) { if (xPos > m_mapProvinceDefinitionItem.GetLength(0) || yPos > m_mapProvinceDefinitionItem.GetLength(1)) { return; } var markedProvince = m_mapProvinceDefinitionItem[xPos, yPos]; var outgoingMarkerItem = MarkerItems.Find(mi => mi.Provinces.Contains(markedProvince)); if (outgoingMarkerItem == null || outgoingMarkerItem == markerItem || outgoingMarkerItem.OutgoingItems.Contains(markerItem)) { return; } if (markerItem.OutgoingItems.Contains(outgoingMarkerItem)) { markerItem.OutgoingItems.Remove(outgoingMarkerItem); foreach (var provinceDefinitionItem in outgoingMarkerItem.Provinces.Where(provinceDefinitionItem => outgoingMarkerItem.Location != provinceDefinitionItem.Id)) { DrawHorizontalListPixel(provinceDefinitionItem, outgoingMarkerItem.Color); } } else { markerItem.OutgoingItems.Add(outgoingMarkerItem); foreach (var provinceDefinitionItem in outgoingMarkerItem.Provinces.Where(provinceDefinitionItem => outgoingMarkerItem.Location != provinceDefinitionItem.Id)) { DrawHorizontalListPixel(provinceDefinitionItem, Color.White); } } }
public void ReadMarker(String pathOfMarkerFile) { m_listMarkerItem.Clear(); if (File.Exists(pathOfMarkerFile)) { Dictionary <int, int> dictDuplicateIdProvince = new Dictionary <int, int> (); String[] listMarker = File.ReadAllLines(pathOfMarkerFile, m_encoding1252); foreach (String marker in listMarker) { if (!marker.Contains('#')) { String[] listSplittedMarker = marker.Split('|'); if (listSplittedMarker.Length == 5) { int r, g, b; String name; name = listSplittedMarker[0]; int.TryParse(listSplittedMarker[1], out r); int.TryParse(listSplittedMarker[2], out g); int.TryParse(listSplittedMarker[3], out b); String[] listIdProvince = listSplittedMarker[4].Split(','); MarkerItem markerItem = m_listMarkerItem.Find(searchItem => ((searchItem.R == r) && (searchItem.G == g) && (searchItem.B == b))); if (markerItem == null) { markerItem = new MarkerItem(name, r, g, b, 255, 0, ""); foreach (String stringIdProvince in listIdProvince) { int idProvince = -1; int.TryParse(stringIdProvince.Trim(), out idProvince); if ((idProvince > 0) && !dictDuplicateIdProvince.ContainsKey(idProvince)) { ProvinceDefinitionItem provinceDefinitionItem = m_listProvinceDefinition.Find(findItem => findItem.IdProvince == idProvince); if (provinceDefinitionItem != null) { dictDuplicateIdProvince.Add(idProvince, idProvince); markerItem.ListProvince.Add(provinceDefinitionItem); } } } m_listMarkerItem.Add(markerItem); } } else if (listSplittedMarker.Length == 7) { int r = 0, g = 0, b = 0, location = 0; String name; name = listSplittedMarker[0]; int.TryParse(listSplittedMarker[1], out r); int.TryParse(listSplittedMarker[2], out g); int.TryParse(listSplittedMarker[3], out b); int.TryParse(listSplittedMarker[4], out location); String[] listIdProvince = listSplittedMarker[6].Split(','); MarkerItem markerItem = m_listMarkerItem.Find(searchItem => ((searchItem.R == r) && (searchItem.G == g) && (searchItem.B == b))); if (markerItem == null) { markerItem = new MarkerItem(name, r, g, b, 255, location, listSplittedMarker[5]); foreach (String stringIdProvince in listIdProvince) { int idProvince = -1; int.TryParse(stringIdProvince.Trim(), out idProvince); if ((idProvince > 0) && !dictDuplicateIdProvince.ContainsKey(idProvince)) { ProvinceDefinitionItem provinceDefinitionItem = m_listProvinceDefinition.Find(findItem => findItem.IdProvince == idProvince); if (provinceDefinitionItem != null) { dictDuplicateIdProvince.Add(idProvince, idProvince); markerItem.ListProvince.Add(provinceDefinitionItem); } } } m_listMarkerItem.Add(markerItem); } else { int k = 4711; } } else { int k = 4711; } } } //------------------------------------------------------------------ foreach (MarkerItem markerItem in m_listMarkerItem) { String[] listOutgoing = markerItem.Outgoing.Split(','); foreach (String outgoing in listOutgoing) { if (outgoing.Length > 0) { markerItem.ListOutgoing.AddRange(m_listMarkerItem.FindAll(findItem => findItem.Name.Equals(outgoing))); } } } } }
public void ReadMarker(string pathOfMarkerFile) { MarkerItems.Clear(); if (!File.Exists(pathOfMarkerFile)) { return; } var dictDuplicateIdProvince = new Dictionary <int, int>(); string[] markers = File.ReadAllLines(pathOfMarkerFile, m_encoding1252); foreach (string marker in markers) { if (marker.Contains('#')) { continue; } string[] listSplittedMarker = marker.Split('|'); switch (listSplittedMarker.Length) { case 5: { var name = listSplittedMarker[0]; int.TryParse(listSplittedMarker[1], out var r); int.TryParse(listSplittedMarker[2], out var g); int.TryParse(listSplittedMarker[3], out var b); string[] listIdProvince = listSplittedMarker[4].Split(','); var markerItem = MarkerItems.Find(searchItem => searchItem.R == r && searchItem.G == g && searchItem.B == b); if (markerItem == null) { markerItem = new MarkerItem(name, r, g, b, 255, 0, ""); foreach (string stringIdProvince in listIdProvince) { int.TryParse(stringIdProvince.Trim(), out var idProvince); if (idProvince <= 0 || dictDuplicateIdProvince.ContainsKey(idProvince)) { continue; } var provinceDefinitionItem = Provinces.Find(findItem => findItem.Id == idProvince); if (provinceDefinitionItem == null) { continue; } dictDuplicateIdProvince.Add(idProvince, idProvince); markerItem.Provinces.Add(provinceDefinitionItem); } MarkerItems.Add(markerItem); } break; } case 7: { var name = listSplittedMarker[0]; int.TryParse(listSplittedMarker[1], out int r); int.TryParse(listSplittedMarker[2], out int g); int.TryParse(listSplittedMarker[3], out int b); int.TryParse(listSplittedMarker[4], out int location); string[] listIdProvince = listSplittedMarker[6].Split(','); var markerItem = MarkerItems.Find(searchItem => searchItem.R == r && searchItem.G == g && searchItem.B == b); if (markerItem != null) { continue; } markerItem = new MarkerItem(name, r, g, b, 255, location, listSplittedMarker[5]); var provinceIds = listIdProvince.Select(strId => { int.TryParse(strId.Trim(), out var id); return(id); }).Where(id => (id <= 0 || dictDuplicateIdProvince.ContainsKey(id)) == false).ToList(); var provinces = provinceIds.Select(id => Provinces.Find(province => province.Id == id)); foreach (var province in provinces) { dictDuplicateIdProvince.Add(province.Id, province.Id); markerItem.Provinces.Add(province); } MarkerItems.Add(markerItem); break; } } } foreach (var markerItem in MarkerItems) { string[] listOutgoing = markerItem.Outgoing.Split(','); foreach (string outgoing in listOutgoing.Where(outgoing => outgoing.Length > 0)) { markerItem.OutgoingItems.AddRange(MarkerItems.FindAll(findItem => findItem.Name.Equals(outgoing))); } } }