///<summary>Show information (modal) about current levelset</summary> private void ActionLevelSetInfo() { string sMessage; //Main information sMessage = "File: " + uLevelSet.sFileName + "\r\n"; if (uLevelSet.sTitle.Length > 0) sMessage += "Name: " + uLevelSet.sTitle + "\r\n"; else sMessage += "Unnamed levelset\r\n"; if (uLevelSet.sAuthor.Length > 0) sMessage += "Author: " + uLevelSet.sAuthor + "\r\n"; if (uLevelSet.sCopyright.Length > 0) sMessage += "Copyright: " + uLevelSet.sCopyright + "\r\n"; if (uLevelSet.sComment.Length > 0) sMessage += "Comment: " + uLevelSet.sComment + "\r\n"; //Statistic sMessage += "\r\nLevels: " + uLevelSet.GetLevelsNum().ToString() + "\r\n"; sMessage += "Unsolved: " + uLevelSet.GetNumOfUnsolved().ToString() + "\r\n"; sMessage += "Now loaded level " + (uLevelSet.GetCurrentLevel() + 1).ToString() + ", '" + uGame.sTitle + "'\r\n"; formShowInfo frmInf = new formShowInfo(); LogSimpleLine(ActionID.ShowForm, "LevelSet Info; " + uLevelSet.sFileName); frmInf.ShowInfoText(sMessage, "LevelSet Info");//Show }
/* public void ActionChooseLevel() { ChooseLevel hChooseLevel = new ChooseLevel(); hChooseLevel.bShowOnlyUnsolvedLevels = uSetting.bShowOnlyUnsolvedLevels; DialogResult uSelectResult; uSelectResult = hChooseLevel.SelectLevel(uLevelSet); if (uSelectResult == DialogResult.OK) { if (uLevelSet.LoadLevel(uCurrentLevel, hChooseLevel.iSelectedLevel)==0) AfterLoadLevel(); } uSetting.bShowOnlyUnsolvedLevels = hChooseLevel.bShowOnlyUnsolvedLevels; }*/ /* public void ActionChooseLevelSet() { ChooseLevelSet hChooseLevelSet = new ChooseLevelSet(); //hChooseLevel.bShowOnlyUnsolvedLevels = uSetting.bShowOnlyUnsolvedLevels; if (hChooseLevelSet.SelectLevelSet(uLevelSetList) == DialogResult.OK) { FunctionResult uRV; Cursor.Current = Cursors.WaitCursor; //LoadLevelSet(hChooseLevelSet.sSelectedSet); uRV = uLevelSetList.LoadLevelSet(uLevelSet, hChooseLevelSet.iSelectedSet); if (uRV != FunctionResult.OK) { MessageBox.Show("Unable to load LevelSet, result: " + uRV.ToString(), "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1); goto lExit; } uSetting.sLastLevelSet = uLevelSetList.GetCurrentLevelSet(); int iNum = uLevelSet.GetNextUnsolved(); if (iNum == -1) { iNum = 0; } uLevelSet.LoadLevel(uCurrentLevel, iNum);//__what if not loaded? AfterLoadLevel(); SaveSettings(); lExit: Cursor.Current = Cursors.Default; } //uSetting.bShowOnlyUnsolvedLevels = hChooseLevel.bShowOnlyUnsolvedLevels; }*/ /* public void ActionChooseLevelSet_OLD() { /* OpenFileDialog hSelectLevelSet = openFileDialog1; //new OpenFileDialog(); hSelectLevelSet.InitialDirectory = sApplicationDirectory + @"Levels";//sLevelsDirectory; hSelectLevelSet.Filter = "All files (*.*)|*.*"; if (hSelectLevelSet.ShowDialog() == DialogResult.OK) { MessageBox.Show(hSelectLevelSet.FileName);//sFileName); //LoadLevelSet(hSelectLevelSet.FileName. } /**/ /* // * simple choose of file OpenFile hSelectLevelSet = new OpenFile(); hSelectLevelSet.sFolder = sLevelsDirectory; hSelectLevelSet.sTitle = "Select Level Set"; //string sFileName; if (hSelectLevelSet.SelectFileForLoad()) { //MessageBox.Show(hSelectLevelSet.sFileName); LoadLevelSet(hSelectLevelSet.sFileName); uLevelSet.LoadLevel(uCurrentLevel, 0);//__what if not loaded? AfterLoadLevel(); SaveSettings(); } }*/ /* public void ActionSetPlayerName() { InputBox sGetPlayerName = new InputBox(); if (sGetPlayerName.AskUser(uSetting.sPlayerName, "Player name", "Input player name:") == DialogResult.OK) { uSetting.sPlayerName = sGetPlayerName.GetResult(); SaveSettings(); } }*/ ///<summary>Show (modal) information about current level</summary> private void ActionLevelInfo() { //Main information string sMessage = "Level #" + (uLevelSet.GetCurrentLevel() + 1).ToString() + "\r\n"; if (uGame.sTitle.Length > 0) sMessage += "Name: " + uGame.sTitle + "\r\n"; if (uGame.sAuthor.Length > 0) sMessage += "Author: " + uGame.sAuthor + "\r\n"; if (uGame.sComment.Length > 0) sMessage += "Comment: " + uGame.sComment + "\r\n"; //Solving status and records if (uGame.IsSolved()) { sMessage += "\r\nLevel is solved\r\n\r\n";//"+1" - to numerate level from 1 sMessage += "Best moves: " + uGame.uBestMovesSolution.iMoves.ToString() + "\r\n" + "'" + uGame.uBestMovesSolution.sName + "'\r\n\r\n"; sMessage += "Best pushes: " + uGame.uBestPushesSolution.iPushes.ToString() + "\r\n" + "'" + uGame.uBestPushesSolution.sName + "'\r\n\r\n"; } else { sMessage += "\r\nLevel not solved\r\n";//"+1" - to numerate level from 1 } //Sizes and statistic of elements sMessage += "Size: " + uGame.iXsize.ToString() + "x" + uGame.iYsize.ToString() + "\r\n"; LevelStats uLevelStats = uGame.CalcLevelStats(); if (uLevelStats.iNumPlayers != 1) { sMessage += uLevelStats.iNumPlayers.ToString() + " players,\r\n"; } else sMessage += "One player,\r\n"; if (uLevelStats.iNumBoxes == uLevelStats.iNumTargets) { sMessage += uLevelStats.iNumBoxes.ToString() + " boxes and targets,\r\n"; } else { sMessage += uLevelStats.iNumBoxes.ToString() + " boxes, " + uLevelStats.iNumTargets.ToString() + " targets,\r\n"; } sMessage += uLevelStats.iNumWalls.ToString() + " walls, "; sMessage += uLevelStats.iNumEmpty.ToString() + " spaces, "; sMessage += uLevelStats.iNumBackground.ToString() + " unused\r\n"; sMessage += "Now " + uLevelStats.iNumBoxesOnTargets.ToString() + " boxes set to targets"; sMessage += "\r\n" + uGame.iNumRemainExceedBoxes.ToString() + " exceeding boxes not in deadlock"; //sMessage += "Best pushes: '" + uCurrentLevel.uBestPushesSolution.sName + "' " + uCurrentLevel.uBestPushesSolution.iMoves.ToString() + "/" + uCurrentLevel.uBestPushesSolution.iPushes.ToString() + "\r\n"; //MessageBox.Show(sMessage, "Level information"); formShowInfo frmInf = new formShowInfo(); LogSimpleLine(ActionID.ShowForm, "Level Info; " + (uLevelSet.GetCurrentLevel() + 1).ToString() + "; " + uLevelSet.sFileName); frmInf.ShowInfoText(sMessage, "Level Info");//Showing to user }