private void LoadGame(object sender, EventArgs e)
        {
            if (loadedGamesListBox.SelectedIndex < 0)
            {
                return;
            }

            SingleplayerSavedGameInfo savedGameInfo =
                (SingleplayerSavedGameInfo)loadedGamesListBox.Items[loadedGamesListBox.SelectedIndex];

#if (!DEBUG)
            try
            {
#endif
            using (UtilsDbContext db = new UtilsDbContext())
            {
                Game game = Game.Load(db, savedGameInfo);
                OnSingleplayerGameLoaded?.Invoke(game);
            }
#if (!DEBUG)
        }

        catch (Exception)
        {
            MessageBox.Show("Selected game save has been damaged.", "Error", MessageBoxButtons.OK,
                            MessageBoxIcon.Error);
        }
#endif
        }
        private void Start(object sender, EventArgs e)
        {
            try
            {
                Map map = mapSettingsControl.GetMap();

                IList <AiPlayer> aiPlayers = aiPlayerSettingsControl.GetPlayers();

                IList <Player> players = new List <Player>();
                foreach (AiPlayer aiPlayer in aiPlayers)
                {
                    players.Add(aiPlayer);
                }

                players.Add(myHumanPlayerControl.GetPlayer());

                Game game = null;
                // generate id for the game
                using (UtilsDbContext db = new UtilsDbContext())
                {
                    IEnumerable <SingleplayerSavedGameInfo> savedGamesEnum =
                        db.SingleplayerSavedGameInfos.AsEnumerable();
                    SingleplayerSavedGameInfo lastGame = savedGamesEnum.LastOrDefault();
                    int gameId = 1;
                    if (lastGame != null)
                    {
                        gameId = lastGame.Id + 1;
                    }

                    var factory = new GameFactory();
                    game = factory.CreateGame(gameId, GameType.SinglePlayer, map, players, fogOfWar: fogOfWarCheckBox.Checked);
                }


                OnGameStarted?.Invoke(game);
            }
            catch (UnauthorizedAccessException)
            {
                MessageBox.Show(
                    "One or more components required to start the game are missing! Please, reinstall the game!",
                    "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }