public void LoadBounties()
        {
            // clear the bounties
            foreach (MapLayer map in m_MapBounties.Values)
            {
                map.Children.Clear();
            }

            foreach (GuildBounty bounty in GuildBountyDefinitions.BOUNTIES)
            {
                int mid = bounty.MapId;

                if (!m_MapLayers.ContainsKey(mid))
                {
                    m_MapLayers.Add(mid, new MapLayer());
                }

                BountyMapLayer b = new BountyMapLayer(bounty.Name);

                if (!m_MapBounties.ContainsKey(mid))
                {
                    m_MapBounties.Add(mid, new MapLayer());

                    // map bounties default to hidden
                    m_MapBounties[mid].Visibility = Visibility.Collapsed;

                    // we insert instead of add so events always show up under other pushpins
                    m_MapLayers[mid].Children.Insert(0, m_MapBounties[mid]);
                }

                if (bounty.Spawns != null)
                {
                    foreach (List <double> p in bounty.Spawns)
                    {
                        b.AddSpawningPoint(ArenaNetMap.Unproject(new Point(p[0], p[1]), ArenaNetMap.MaxZoomLevel));
                    }
                }

                if (bounty.Paths != null)
                {
                    int i = 0;
                    foreach (GuildBountyPath path in bounty.Paths)
                    {
                        LocationCollection locs = new LocationCollection();
                        foreach (List <double> p in path.Points)
                        {
                            locs.Add(ArenaNetMap.Unproject(new Point(p[0], p[1]), ArenaNetMap.MaxZoomLevel));
                        }
                        b.AddPath(locs, BOUNTY_PATH_BRUSHES[i], path.Direction);
                        i = (i + 1) % BOUNTY_PATH_BRUSHES.Length;
                    }
                }

                m_MapBounties[mid].Children.Add(b);
            }
        }
        public void LoadBounties()
        {
            // clear the bounties
            foreach (MapLayer map in m_MapBounties.Values)
                map.Children.Clear();

            foreach (GuildBounty bounty in GuildBountyDefinitions.BOUNTIES)
            {
                int mid = bounty.MapId;

                if (!m_MapLayers.ContainsKey(mid))
                {
                    m_MapLayers.Add(mid, new MapLayer());
                }

                BountyMapLayer b = new BountyMapLayer(bounty.Name);

                if (!m_MapBounties.ContainsKey(mid))
                {
                    m_MapBounties.Add(mid, new MapLayer());

                    // map bounties default to hidden
                    m_MapBounties[mid].Visibility = Visibility.Collapsed;

                    // we insert instead of add so events always show up under other pushpins
                    m_MapLayers[mid].Children.Insert(0, m_MapBounties[mid]);
                }

                if (bounty.Spawns != null)
                {
                    foreach (List<double> p in bounty.Spawns)
                        b.AddSpawningPoint(ArenaNetMap.Unproject(new Point(p[0], p[1]), ArenaNetMap.MaxZoomLevel));
                }

                if (bounty.Paths != null)
                {
                    int i = 0;
                    foreach (GuildBountyPath path in bounty.Paths)
                    {
                        LocationCollection locs = new LocationCollection();
                        foreach (List<double> p in path.Points)
                            locs.Add(ArenaNetMap.Unproject(new Point(p[0], p[1]), ArenaNetMap.MaxZoomLevel));
                        b.AddPath(locs, BOUNTY_PATH_BRUSHES[i], path.Direction);
                        i = (i + 1) % BOUNTY_PATH_BRUSHES.Length;
                    }
                }

                m_MapBounties[mid].Children.Add(b);
            }
        }