Exemple #1
0
        public void ChangeMode(GameScreenMode mode)
        {
            ActionBox.ClearOptions();
            ClearTileMarks();
            this.mode    = mode;
            showTitle    = true;
            titleColor.A = 255;
            handlers.Clear();

            if (mode == GameScreenMode.TacticsMode)
            {
                handlers.Push(new TacticsInputHandler(this));
            }
            else if (mode == GameScreenMode.BattleMode)
            {
                handlers.Push(new BattleInputHandler(this));
            }
        }
Exemple #2
0
        public void ShowScreen(GameScreenMode mode)
        {
            if (mode == GameScreenMode.RecentGames && ConfigManager.Config.Preferences.DisableGameSelectionScreen)
            {
                this.Visible = false;
                return;
            }
            else if (mode != GameScreenMode.RecentGames && Mode == mode && this.Visible)
            {
                this.Visible = false;
                if (_needResume)
                {
                    EmuApi.Resume();
                }
                return;
            }

            Mode          = mode;
            _recentGames  = new List <RecentGameInfo>();
            _currentIndex = 0;

            if (mode == GameScreenMode.RecentGames)
            {
                _needResume      = false;
                tlpTitle.Visible = false;
                List <string> files = Directory.GetFiles(ConfigManager.RecentGamesFolder, "*.rgd").OrderByDescending((file) => new FileInfo(file).LastWriteTime).ToList();
                for (int i = 0; i < files.Count && _recentGames.Count < 36; i++)
                {
                    _recentGames.Add(new RecentGameInfo()
                    {
                        FileName = files[i]
                    });
                }
            }
            else
            {
                if (!this.Visible)
                {
                    _needResume = Pause();
                }

                lblScreenTitle.Text = mode == GameScreenMode.LoadState ? ResourceHelper.GetMessage("LoadStateDialog") : ResourceHelper.GetMessage("SaveStateDialog");
                tlpTitle.Visible    = true;

                string romName = EmuApi.GetRomInfo().GetRomName();
                for (int i = 0; i < (mode == GameScreenMode.LoadState ? 11 : 10); i++)
                {
                    _recentGames.Add(new RecentGameInfo()
                    {
                        FileName = Path.Combine(ConfigManager.SaveStateFolder, romName + "_" + (i + 1) + ".mss"), Name = i == 10 ? ResourceHelper.GetMessage("AutoSave") : ResourceHelper.GetMessage("SlotNumber", i + 1), SaveSlot = (uint)i + 1
                    });
                }
                if (mode == GameScreenMode.LoadState)
                {
                    _recentGames.Add(new RecentGameInfo()
                    {
                        FileName = Path.Combine(ConfigManager.RecentGamesFolder, romName + ".rgd"), Name = ResourceHelper.GetMessage("LastSession")
                    });
                }
            }

            InitGrid();

            if (_recentGames.Count == 0)
            {
                this.Visible     = false;
                tmrInput.Enabled = false;
            }
            else
            {
                UpdateGameInfo();
                tmrInput.Enabled = true;
            }

            picPrevGame.Visible = _recentGames.Count > _elementsPerPage;
            picNextGame.Visible = _recentGames.Count > _elementsPerPage;
            this.Visible        = true;
        }
Exemple #3
0
 public void ShowGameScreen(GameScreenMode mode)
 {
     ctrlRecentGames.ShowScreen(mode);
     ResizeRecentGames();
 }