//===================================== // Add to Redo/Undo List //===================================== private void AddToRedoUndoList() { // Clear Any Redo Elements if No Longer needed while (lRedoUndoList.Count() > iCurrentElementInRedoUndoList) { lRedoUndoList.RemoveAt(lRedoUndoList.Count() - 1); } // Add an UndoRedo Element to the List RedoUndoInfo RedoUndoinfo = new RedoUndoInfo(); ////////////////////////////////////////////////////////////////////////////////////////////////////////// RedoUndoinfo.BackgroundImageName = sBackgroundImageName; RedoUndoinfo.FullPathToImage = sFullPathToImage; ////////////////////////////////////////////////////////////////////////////////////////////////////////// RedoUndoinfo.AudioName = sAudioName; RedoUndoinfo.AudioInfoTextBoxText = AudioInfo_TextBox.Text; RedoUndoinfo.AudioLoopStart_NumericUpDownValue = (int)AudioLoopStart_NumericUpDown.Value; RedoUndoinfo.AudioLoopEnd_NumericUpDownValue = (int)AudioLoopEnd_NumericUpDown.Value; // Add Weather /////////////////////////////////////////////////////////////////////////////////////////// RedoUndoinfo.lWeatherEffectOne = new List <WeatherInfo>(); foreach (WeatherInfo Weather in lWeatherEffectOne) { WeatherInfo Weath; Weath.H = Weather.H; Weath.Texture = Weather.Texture; Weath.Type = Weather.Type; Weath.W = Weather.W; Weath.X = Weather.X; Weath.Y = Weather.Y; RedoUndoinfo.lWeatherEffectOne.Add(Weath); } RedoUndoinfo.lWeatherEffectTwo = new List <WeatherInfo>(); foreach (WeatherInfo Weather in lWeatherEffectTwo) { WeatherInfo Weath; Weath.H = Weather.H; Weath.Texture = Weather.Texture; Weath.Type = Weather.Type; Weath.W = Weather.W; Weath.X = Weather.X; Weath.Y = Weather.Y; RedoUndoinfo.lWeatherEffectTwo.Add(Weath); } RedoUndoinfo.WeatherEffect1_ComboBoxSelectedIndex = WeatherEffect1_ComboBox.SelectedIndex; RedoUndoinfo.WeatherEffect2_ComboBoxSelectedIndex = WeatherEffect2_ComboBox.SelectedIndex; RedoUndoinfo.WeatherEffectOnePower_NumericUpDownValue = (int)WeatherEffectOnePower_NumericUpDown.Value; RedoUndoinfo.WeatherEffectTwoPower_NumericUpDownValue = (int)WeatherEffectTwoPower_NumericUpDown.Value; ////////////////////////////////////////////////////////////////////////////////////////////////////////// RedoUndoinfo.TileRows_NumericUpDownValue = (int)TileRows_NumericUpDown.Value; RedoUndoinfo.TileCols_NumericUpDownValue = (int)TileCols_NumericUpDown.Value; ////////////////////////////////////////////////////////////////////////////////////////////////////////// RedoUndoinfo.lLevelDataList = new List <List <LevelInfo> >(); foreach (List <LevelInfo> LevelInfoList in lLevelInfoList) { List <LevelInfo> LevInfoList = new List <LevelInfo>(); foreach (LevelInfo LevInfo in LevelInfoList) { LevelInfo Levelinfo = new LevelInfo(); Levelinfo.X = LevInfo.X; Levelinfo.Y = LevInfo.Y; Levelinfo.W = LevInfo.W; Levelinfo.H = LevInfo.H; Levelinfo.TextureName = LevInfo.TextureName; Levelinfo.Texture = LevInfo.Texture; LevInfoList.Add(Levelinfo); } RedoUndoinfo.lLevelDataList.Add(LevInfoList); } ////////////////////////////////////////////////////////////////////////////////////////////////////////// lRedoUndoList.Add(RedoUndoinfo); iCurrentElementInRedoUndoList++; }
private void PerformRedoUndo(int RedoUndoElement) { // Make sure we are within range if ((RedoUndoElement >= 0) && (lRedoUndoList.Count() > RedoUndoElement)) { RedoUndoInfo RedoUndo = lRedoUndoList.ElementAt(RedoUndoElement); /////////////////////////////////////////////////////////////////////////////////// // Get Image Info sBackgroundImageName = RedoUndo.BackgroundImageName; sFullPathToImage = RedoUndo.FullPathToImage; if (sFullPathToImage != null && System.IO.File.Exists(sFullPathToImage)) { MapPanel.BackgroundImage = Image.FromFile(sFullPathToImage); } else { MapPanel.BackgroundImage = null; } /////////////////////////////////////////////////////////////////////////////////// // Get Audio Info sAudioName = RedoUndo.AudioName; AudioInfo_TextBox.Text = RedoUndo.AudioInfoTextBoxText; AudioLoopStart_NumericUpDown.Value = RedoUndo.AudioLoopStart_NumericUpDownValue; AudioLoopEnd_NumericUpDown.Value = RedoUndo.AudioLoopEnd_NumericUpDownValue; /////////////////////////////////////////////////////////////////////////////////// // Get Weather Info lWeatherEffectOne = RedoUndo.lWeatherEffectOne; lWeatherEffectTwo = RedoUndo.lWeatherEffectTwo; WeatherEffect1_ComboBox.SelectedIndex = RedoUndo.WeatherEffect1_ComboBoxSelectedIndex; WeatherEffect2_ComboBox.SelectedIndex = RedoUndo.WeatherEffect2_ComboBoxSelectedIndex; WeatherEffectOnePower_NumericUpDown.Value = RedoUndo.WeatherEffectOnePower_NumericUpDownValue; WeatherEffectTwoPower_NumericUpDown.Value = RedoUndo.WeatherEffectTwoPower_NumericUpDownValue; /////////////////////////////////////////////////////////////////////////////////// // Get Numeric Up/Downs Info TileRows_NumericUpDown.Value = oMapGrid.TileRowsValue = RedoUndo.TileRows_NumericUpDownValue; TileCols_NumericUpDown.Value = oMapGrid.TileColsValue = RedoUndo.TileCols_NumericUpDownValue; /////////////////////////////////////////////////////////////////////////////////// // Get Level Data lLevelInfoList = RedoUndo.lLevelDataList; // Invalidate the Map MapPanel.Invalidate(); } }