void StopPlayingMap(ProgramEvents.StopPlayingMap e)
        {
            int prevSilver = GetMaxSilverYield(e.MapFileName);
            GameInstances.Add(e);

            if(e.GameState == Client.Game.GameState.Won && CurrentMap != null)
            {
                if (!Program.Settings.DeveloperMainMenu)
                {
                    if (e.SilverYield > prevSilver)
                        SilverCoins += e.SilverYield - prevSilver;

                    bool d;
                    if (!CompletedMaps.TryGetValue(CurrentMap.MapName, out d)) d = false;
                    CompletedMaps[CurrentMap.MapName] = true;

                    int ge = 0;
                    if (!d)
                    {
                        ge = CurrentMap.Yield;
                        GoldCoins += CurrentMap.Yield;
                    }

                    Save();
                    if(!d)
                        Program.Instance.SignalEvent(new ProgramEvents.CompletedMap
                        {
                            MapName = CurrentMap.MapName,
                            GoldEarned = ge
                        });
                }
            }
            CurrentMap = null;
            currentMapFileName = null;
        }
 void StartPlayingMap(ProgramEvents.StartPlayingMap e)
 {
     currentMapFileName = e.MapName;
     CurrentMap = Campaign.Campaign1().GetMapByFilename(e.MapName);
     Save();
 }