private void PerformQuickDuplication() { int?iter1StartObserved = ParsingUtilities.ParseIntNullable( _gui.TextBoxQuickDuplication1stIterationStart.Text); int?iter2StartObserved = ParsingUtilities.ParseIntNullable( _gui.TextBoxQuickDuplication2ndIterationStart.Text); int?totalIters = ParsingUtilities.ParseIntNullable( _gui.TextBoxQuickDuplicationTotalIterations.Text); if (!iter1StartObserved.HasValue || !iter2StartObserved.HasValue || !totalIters.HasValue) { return; } int iter1Start = iter1StartObserved.Value - 1; int iter2Start = iter2StartObserved.Value - 1; int multiplicity = totalIters.Value - 1; int iter1End = iter2Start - 1; M64CopiedData copiedData = M64CopiedData.CreateCopiedData( _gui.DataGridViewInputs, _m64File.CurrentFileName, iter1Start, iter1End, true /* useRow */); _m64File.Paste(copiedData, iter2Start, true /* insert */, multiplicity); }
protected override ContextMenuStrip GetContextMenuStrip(MapTracker targetTracker) { if (_contextMenuStrip == null) { _itemUseRelativeAngles = new ToolStripMenuItem("Use Relative Angles"); _itemUseRelativeAngles.Click += (sender, e) => _itemUseRelativeAngles.Checked = !_itemUseRelativeAngles.Checked; ToolStripMenuItem itemSetAngleDiff = new ToolStripMenuItem("Set Angle Diff"); itemSetAngleDiff.Click += (sender, e) => { string text = DialogUtilities.GetStringFromDialog(labelText: "Enter angle diff."); int? angleDiff = ParsingUtilities.ParseIntNullable(text); if (angleDiff.HasValue && angleDiff.Value > 0) { _angleDiff = angleDiff.Value; } }; _contextMenuStrip = new ContextMenuStrip(); _contextMenuStrip.Items.Add(_itemUseRelativeAngles); _contextMenuStrip.Items.Add(itemSetAngleDiff); } return(_contextMenuStrip); }
public (int, int)? GetPendulumSwingIndexExtendedPair(int amplitude) { string index = GetPendulumSwingIndexExtended(amplitude); if (index == Double.NaN.ToString()) { return(null); } int plusIndex = index.IndexOf('+'); int?primaryIndex, secondaryIndex; if (plusIndex == -1) { primaryIndex = ParsingUtilities.ParseIntNullable(index); secondaryIndex = 0; } else { primaryIndex = ParsingUtilities.ParseIntNullable(index.Substring(0, plusIndex)); secondaryIndex = ParsingUtilities.ParseIntNullable(index.Substring(plusIndex + 1)); } if (primaryIndex == null || secondaryIndex == null) { return(null); } return(primaryIndex.Value, secondaryIndex.Value); }
public MiscManager(List <WatchVariableControlPrecursor> variables, WatchVariablePanel variableTable, Control miscControl) : base(variables, variableTable) { SplitContainer splitContainerMisc = miscControl.Controls["splitContainerMisc"] as SplitContainer; _checkBoxTurnOffMusic = splitContainerMisc.Panel1.Controls["checkBoxTurnOffMusic"] as CheckBox; GroupBox groupBoxRNGIndexTester = splitContainerMisc.Panel1.Controls["groupBoxRNGIndexTester"] as GroupBox; TextBox textBoxRNGIndexTester = groupBoxRNGIndexTester.Controls["textBoxRNGIndexTester"] as TextBox; Button buttonRNGIndexTester = groupBoxRNGIndexTester.Controls["buttonRNGIndexTester"] as Button; buttonRNGIndexTester.Click += (sender, e) => { int?rngIndexNullable = ParsingUtilities.ParseIntNullable(textBoxRNGIndexTester.Text); if (!rngIndexNullable.HasValue) { return; } int rngIndex = rngIndexNullable.Value; ushort rngValue = RngIndexer.GetRngValue(rngIndex); Config.Stream.SetValue(rngValue, MiscConfig.RngAddress); int nextRngIndex = rngIndex + 1; textBoxRNGIndexTester.Text = nextRngIndex.ToString(); }; }
public SoundManager(TabPage tabPage) { SplitContainer splitContainerSound = tabPage.Controls["splitContainerSound"] as SplitContainer; SplitContainer splitContainerSoundMusic = splitContainerSound.Panel1.Controls["splitContainerSoundMusic"] as SplitContainer; ListBox listBoxSoundMusic = splitContainerSoundMusic.Panel1.Controls["listBoxSoundMusic"] as ListBox; TextBox textBoxSoundMusic = splitContainerSoundMusic.Panel2.Controls["textBoxSoundMusic"] as TextBox; Button buttonSoundPlayMusic = splitContainerSoundMusic.Panel2.Controls["buttonSoundPlayMusic"] as Button; SplitContainer splitContainerSoundSoundEffect = splitContainerSound.Panel2.Controls["splitContainerSoundSoundEffect"] as SplitContainer; ListBox listBoxSoundSoundEffect = splitContainerSoundSoundEffect.Panel1.Controls["listBoxSoundSoundEffect"] as ListBox; TextBox textBoxSoundSoundEffect = splitContainerSoundSoundEffect.Panel2.Controls["textBoxSoundSoundEffect"] as TextBox; Button buttonSoundPlaySoundEffect = splitContainerSoundSoundEffect.Panel2.Controls["buttonSoundPlaySoundEffect"] as Button; TableConfig.MusicData.GetMusicEntryList().ForEach(musicEntry => listBoxSoundMusic.Items.Add(musicEntry)); listBoxSoundMusic.Click += (sender, e) => { MusicEntry musicEntry = listBoxSoundMusic.SelectedItem as MusicEntry; textBoxSoundMusic.Text = musicEntry.Index.ToString(); }; buttonSoundPlayMusic.Click += (sender, e) => { int?musicIndexNullable = ParsingUtilities.ParseIntNullable(textBoxSoundMusic.Text); if (musicIndexNullable == null) { return; } int musicIndex = musicIndexNullable.Value; if (musicIndex < 0 || musicIndex > 34) { return; } uint setMusic = RomVersionConfig.SwitchMap(0x80320544, 0x8031F690); InGameFunctionCall.WriteInGameFunctionCall(setMusic, 0, (uint)musicIndex, 0); }; foreach (uint soundEffect in _soundEffects) { string soundEffectString = HexUtilities.FormatValue(soundEffect, 4); listBoxSoundSoundEffect.Items.Add(soundEffectString); } listBoxSoundSoundEffect.Click += (sender, e) => { textBoxSoundSoundEffect.Text = listBoxSoundSoundEffect.SelectedItem.ToString() + "FF81"; }; buttonSoundPlaySoundEffect.Click += (sender, e) => { uint setSound = RomVersionConfig.SwitchMap(0x8031EB00, 0x8031DC78); uint soundArg = RomVersionConfig.SwitchMap(0x803331F0, 0x803320E0); uint?soundEffectNullable = ParsingUtilities.ParseHexNullable(textBoxSoundSoundEffect.Text); if (!soundEffectNullable.HasValue) { return; } uint soundEffect = soundEffectNullable.Value; InGameFunctionCall.WriteInGameFunctionCall(setSound, soundEffect, soundArg); }; }
public void Goto(int?gotoValueNullable = null) { gotoValueNullable = gotoValueNullable ?? ParsingUtilities.ParseIntNullable(_gui.TextBoxGoto.Text); if (gotoValueNullable.HasValue) { int gotoValue = M64Utilities.ConvertDisplayedValueToFrame(gotoValueNullable.Value); ControlUtilities.TableGoTo(_gui.DataGridViewInputs, gotoValue); } }
private void SetPositionsAndApplyVariablesToMemory() { int?xPos = ParsingUtilities.ParseIntNullable(_textBoxXPosValue.Text); int?yPos = ParsingUtilities.ParseIntNullable(_textBoxYPosValue.Text); int?yDelta = ParsingUtilities.ParseIntNullable(_textBoxYDeltaValue.Text); if (!xPos.HasValue || !yPos.HasValue || !yDelta.HasValue) { return; } _varHackPanel.SetPositions(xPos.Value, yPos.Value, yDelta.Value); _varHackPanel.ApplyVariablesToMemory(); }
private void SetValuesOfSelection(CellSelectionType cellSelectionType, bool value) { (int?startFrame, int?endFrame) = GetFrameBounds(); List <M64InputCell> cells = M64Utilities.GetSelectedInputCells( _gui.DataGridViewInputs, cellSelectionType, startFrame, endFrame, _gui.TextBoxSelectionInputs.Text); int?intOnValue = ParsingUtilities.ParseIntNullable(_gui.TextBoxOnValue.Text); cells.ForEach(cell => cell.SetValue(value, intOnValue)); _gui.DataGridViewInputs.Refresh(); }
private static void InitializeAddSubtractGetSetFuncionality( Button buttonSubtract, Button buttonAdd, Button buttonGet, Button buttonSet, TextBox textboxAddSubtract, TextBox textboxGetSet, Action <int> setterFunction, Func <int> getterFunction) { buttonSubtract.Click += (sender, e) => { int?intValueNullable = ParsingUtilities.ParseIntNullable(textboxAddSubtract.Text); if (!intValueNullable.HasValue) { return; } int intValue = intValueNullable.Value; int newValue = getterFunction() - intValue; setterFunction(newValue); }; buttonAdd.Click += (sender, e) => { int?intValueNullable = ParsingUtilities.ParseIntNullable(textboxAddSubtract.Text); if (!intValueNullable.HasValue) { return; } int intValue = intValueNullable.Value; int newValue = getterFunction() + intValue; setterFunction(newValue); }; buttonGet.Click += (sender, e) => { textboxGetSet.Text = getterFunction().ToString(); }; buttonSet.Click += (sender, e) => { int?intValueNullable = ParsingUtilities.ParseIntNullable(textboxGetSet.Text); if (!intValueNullable.HasValue) { return; } int intValue = intValueNullable.Value; setterFunction(intValue); }; }
public override void InitializeTab() { base.InitializeTab(); TableConfig.MusicData = XmlConfigParser.OpenMusicTable(@"Config/MusicData.xml"); TableConfig.MusicData.GetMusicEntryList().ForEach(musicEntry => listBoxSoundMusic.Items.Add(musicEntry)); listBoxSoundMusic.Click += (sender, e) => { MusicEntry musicEntry = listBoxSoundMusic.SelectedItem as MusicEntry; textBoxSoundMusic.Text = musicEntry.Index.ToString(); }; buttonSoundPlayMusic.Click += (sender, e) => { int?musicIndexNullable = ParsingUtilities.ParseIntNullable(textBoxSoundMusic.Text); if (musicIndexNullable == null) { return; } int musicIndex = musicIndexNullable.Value; if (musicIndex < 0 || musicIndex > 34) { return; } uint setMusic = RomVersionConfig.SwitchMap(0x80320544, 0x8031F690); InGameFunctionCall.WriteInGameFunctionCall(setMusic, 0, (uint)musicIndex, 0); }; foreach (uint soundEffect in _soundEffects) { string soundEffectString = HexUtilities.FormatValue(soundEffect, 4); listBoxSoundSoundEffect.Items.Add(soundEffectString); } listBoxSoundSoundEffect.Click += (sender, e) => { textBoxSoundSoundEffect.Text = listBoxSoundSoundEffect.SelectedItem.ToString() + "FF81"; }; buttonSoundPlaySoundEffect.Click += (sender, e) => { uint setSound = RomVersionConfig.SwitchMap(0x8031EB00, 0x8031DC78); uint soundArg = RomVersionConfig.SwitchMap(0x803331F0, 0x803320E0); uint?soundEffectNullable = ParsingUtilities.ParseHexNullable(textBoxSoundSoundEffect.Text); if (!soundEffectNullable.HasValue) { return; } uint soundEffect = soundEffectNullable.Value; InGameFunctionCall.WriteInGameFunctionCall(setSound, soundEffect, soundArg); }; }
public static void OpenPopOutForm(XElement element) { VariablePopOutForm form = new VariablePopOutForm(); List <XElement> subElements = element.Elements().ToList(); List <WatchVariableControl> controls = subElements .ConvertAll(subElement => new WatchVariableControlPrecursor(subElement)) .ConvertAll(precursor => precursor.CreateWatchVariableControl()); form.ShowForm(); bool?borderless = ParsingUtilities.ParseBoolNullable(element.Attribute(XName.Get("borderless"))?.Value); if (borderless.HasValue && borderless.Value) { form.SetBorderless(borderless.Value); } bool?alwaysOnTop = ParsingUtilities.ParseBoolNullable(element.Attribute(XName.Get("alwaysOnTop"))?.Value); if (alwaysOnTop.HasValue && alwaysOnTop.Value) { form.SetAlwaysOnTop(alwaysOnTop.Value); } int?locationX = ParsingUtilities.ParseIntNullable(element.Attribute(XName.Get("locationX"))?.Value); int?locationY = ParsingUtilities.ParseIntNullable(element.Attribute(XName.Get("locationY"))?.Value); if (locationX.HasValue && locationY.HasValue) { form.Location = new System.Drawing.Point(locationX.Value, locationY.Value); } int?width = ParsingUtilities.ParseIntNullable(element.Attribute(XName.Get("width"))?.Value); if (width.HasValue) { form.Width = width.Value; } int?height = ParsingUtilities.ParseIntNullable(element.Attribute(XName.Get("height"))?.Value); if (height.HasValue) { form.Height = height.Value; } form.Initialize(controls); }
private (int?startFrame, int?endFrame) GetFrameBounds() { int?startFrame = ParsingUtilities.ParseIntNullable(_gui.TextBoxSelectionStartFrame.Text); int?endFrame = ParsingUtilities.ParseIntNullable(_gui.TextBoxSelectionEndFrame.Text); if (startFrame.HasValue) { startFrame = M64Utilities.ConvertDisplayedValueToFrame(startFrame.Value); } if (endFrame.HasValue) { endFrame = M64Utilities.ConvertDisplayedValueToFrame(endFrame.Value); } return(startFrame, endFrame); }
public override void InitializeTab() { base.InitializeTab(); _numSnowParticles = 0; _snowParticleControls = new List <List <WatchVariableControl> >(); buttonSnowRetrieve.Click += (sender, e) => { int?snowIndexNullable = ParsingUtilities.ParseIntNullable(textBoxSnowIndex.Text); if (!snowIndexNullable.HasValue) { return; } int snowIndex = snowIndexNullable.Value; if (snowIndex < 0 || snowIndex > _numSnowParticles) { return; } ButtonUtilities.RetrieveSnow(snowIndex); }; ControlUtilities.InitializeThreeDimensionController( CoordinateSystem.Euler, true, groupBoxSnowPosition, "SnowPosition", (float hOffset, float vOffset, float nOffset, bool useRelative) => { int?snowIndexNullable = ParsingUtilities.ParseIntNullable(textBoxSnowIndex.Text); if (!snowIndexNullable.HasValue) { return; } int snowIndex = snowIndexNullable.Value; if (snowIndex < 0 || snowIndex > _numSnowParticles) { return; } ButtonUtilities.TranslateSnow( snowIndex, hOffset, nOffset, -1 * vOffset, useRelative); }); }
public override ContextMenuStrip GetContextMenuStrip() { if (_contextMenuStrip == null) { _itemUseRelativeAngles = new ToolStripMenuItem("Use Relative Angles"); _itemUseRelativeAngles.Click += (sender, e) => { MapObjectSettings settings = new MapObjectSettings( changeAngleRangeUseRelativeAngles: true, newAngleRangeUseRelativeAngles: !_useRelativeAngles); GetParentMapTracker().ApplySettings(settings); }; string suffix = string.Format(" ({0})", _angleDiff); _itemSetAngleDiff = new ToolStripMenuItem(SET_ANGLE_DIFF_TEXT + suffix); _itemSetAngleDiff.Click += (sender, e) => { string text = DialogUtilities.GetStringFromDialog(labelText: "Enter angle diff."); int? angleDiff = ParsingUtilities.ParseIntNullable(text); if (!angleDiff.HasValue || angleDiff.Value <= 0) { return; } MapObjectSettings settings = new MapObjectSettings( changeAngleRangeAngleDiff: true, newAngleRangeAngleDiff: angleDiff.Value); GetParentMapTracker().ApplySettings(settings); }; _itemUseInGameAngles = new ToolStripMenuItem("Use In-Game Angles"); _itemUseInGameAngles.Click += (sender, e) => { MapObjectSettings settings = new MapObjectSettings( changeAngleRangeUseInGameAngles: true, newAngleRangeUseInGameAngles: !_useInGameAngles); GetParentMapTracker().ApplySettings(settings); }; _contextMenuStrip = new ContextMenuStrip(); _contextMenuStrip.Items.Add(_itemUseRelativeAngles); _contextMenuStrip.Items.Add(_itemSetAngleDiff); _contextMenuStrip.Items.Add(_itemUseInGameAngles); } return(_contextMenuStrip); }
public MiscManager(List <WatchVariable> watchVariables, NoTearFlowLayoutPanel variableTable, Control miscControl) : base(watchVariables, variableTable) { SplitContainer splitContainerMisc = miscControl.Controls["splitContainerMisc"] as SplitContainer; GroupBox groupBoxRNGIndex = splitContainerMisc.Panel1.Controls["groupBoxRNGIndex"] as GroupBox; _betterTextboxRNGIndex = groupBoxRNGIndex.Controls["betterTextboxRNGIndex"] as BetterTextbox; _betterTextboxRNGIndex.AddEnterAction(() => { int?index = ParsingUtilities.ParseIntNullable(_betterTextboxRNGIndex.Text); if (index.HasValue) { ushort rngValue = RngIndexer.GetRngValue(index.Value); Config.Stream.SetValue(rngValue, Config.RngAddress); } }); _checkBoxTurnOffMusic = splitContainerMisc.Panel1.Controls["checkBoxTurnOffMusic"] as CheckBox; }
private void PasteData(bool insert) { M64CopiedData copiedData = _gui.ListBoxCopied.SelectedItem as M64CopiedData; if (copiedData == null) { return; } (int?startFrame, int?endFrame) = GetFrameBounds(); if (!startFrame.HasValue) { return; } int?multiplicity = ParsingUtilities.ParseIntNullable(_gui.TextBoxPasteMultiplicity.Text); if (!multiplicity.HasValue) { return; } _m64File.Paste(copiedData, startFrame.Value, insert, multiplicity.Value); }
private void InitializePositionControls( TextBox valueTextbox, TextBox changeTextbox, Button subtractButton, Button addButton) { subtractButton.Click += (sender, e) => { int?change = ParsingUtilities.ParseIntNullable(changeTextbox.Text); if (!change.HasValue) { return; } int?oldValue = ParsingUtilities.ParseIntNullable(valueTextbox.Text); if (!oldValue.HasValue) { return; } int newValue = oldValue.Value - change.Value; valueTextbox.Text = newValue.ToString(); SetPositionsAndApplyVariablesToMemory(); }; addButton.Click += (sender, e) => { int?change = ParsingUtilities.ParseIntNullable(changeTextbox.Text); if (!change.HasValue) { return; } int?oldValue = ParsingUtilities.ParseIntNullable(valueTextbox.Text); if (!oldValue.HasValue) { return; } int newValue = oldValue.Value + change.Value; valueTextbox.Text = newValue.ToString(); SetPositionsAndApplyVariablesToMemory(); }; }
public MiscManager(string varFilePath, WatchVariableFlowLayoutPanel variableTable, Control miscControl) : base(varFilePath, variableTable, ALL_VAR_GROUPS, VISIBLE_VAR_GROUPS) { SplitContainer splitContainerMisc = miscControl.Controls["splitContainerMisc"] as SplitContainer; _checkBoxTurnOffMusic = splitContainerMisc.Panel1.Controls["checkBoxTurnOffMusic"] as CheckBox; GroupBox groupBoxRNGIndexTester = splitContainerMisc.Panel1.Controls["groupBoxRNGIndexTester"] as GroupBox; TextBox textBoxRNGIndexTester = groupBoxRNGIndexTester.Controls["textBoxRNGIndexTester"] as TextBox; Button buttonRNGIndexTester = groupBoxRNGIndexTester.Controls["buttonRNGIndexTester"] as Button; buttonRNGIndexTester.Click += (sender, e) => { int?rngIndexNullable = ParsingUtilities.ParseIntNullable(textBoxRNGIndexTester.Text); if (!rngIndexNullable.HasValue) { return; } int rngIndex = rngIndexNullable.Value; ushort rngValue = RngIndexer.GetRngValue(rngIndex); Config.Stream.SetValue(rngValue, MiscConfig.RngAddress); int nextRngIndex = rngIndex + 1; textBoxRNGIndexTester.Text = nextRngIndex.ToString(); }; Button buttonMiscGoToCourse = splitContainerMisc.Panel1.Controls["buttonMiscGoToCourse"] as Button; buttonMiscGoToCourse.ContextMenuStrip = new ContextMenuStrip(); foreach (CourseToGoTo courseToGoTo in _coursesToGoTo) { ToolStripMenuItem item = new ToolStripMenuItem(courseToGoTo.Name); item.Click += (sender, e) => InGameFunctionCall.WriteInGameFunctionCall( RomVersionConfig.SwitchMap(0x8024978C, 0x8024975C), (uint)courseToGoTo.Index); buttonMiscGoToCourse.ContextMenuStrip.Items.Add(item); } buttonMiscGoToCourse.Click += (sender, e) => buttonMiscGoToCourse.ContextMenuStrip.Show(Cursor.Position); }
protected override string HandleHexDisplaying(string stringValue) { if (!_displayAsHex) { return(stringValue); } int? numHexDigits = GetHexDigitCount(); string stringHexDigits = numHexDigits?.ToString() ?? ""; int?intValueNullable = ParsingUtilities.ParseIntNullable(stringValue); if (intValueNullable.HasValue) { string hexFormat = String.Format("{0:X" + stringHexDigits + "}", intValueNullable.Value); if (numHexDigits.HasValue && hexFormat.Length > numHexDigits.Value) { hexFormat = hexFormat.Substring(hexFormat.Length - numHexDigits.Value); } return("0x" + hexFormat); } uint?uintValueNullable = ParsingUtilities.ParseUIntNullable(stringValue); if (uintValueNullable.HasValue) { string hexFormat = String.Format("{0:X" + stringHexDigits + "}", uintValueNullable.Value); if (numHexDigits.HasValue && hexFormat.Length > numHexDigits.Value) { hexFormat = hexFormat.Substring(hexFormat.Length - numHexDigits.Value); } return("0x" + hexFormat); } return(stringValue); }
public override void InitializeTab() { base.InitializeTab(); // Misc Image pictureBoxMisc.Image = Config.ObjectAssociations.MiscImage.Value; panelMiscBorder.BackColor = Config.ObjectAssociations.MiscColor; pictureBoxMisc.BackColor = Config.ObjectAssociations.MiscColor.Lighten(0.5); watchVariablePanelMisc.SetGroups(ALL_VAR_GROUPS, VISIBLE_VAR_GROUPS); buttonRNGIndexTester.Click += (sender, e) => { int?rngIncrementullable = ParsingUtilities.ParseIntNullable(txtRNGIncrement.Text); int?rngIndexNullable = ParsingUtilities.ParseIntNullable(textBoxRNGIndexTester.Text); if (!rngIndexNullable.HasValue || !rngIncrementullable.HasValue) { return; } int rngIndex = rngIndexNullable.Value; ushort rngValue = RngIndexer.GetRngValue(rngIndex); Config.Stream.SetValue(rngValue, MiscConfig.RngAddress); int nextRngIndex = rngIndex + rngIncrementullable.Value; textBoxRNGIndexTester.Text = nextRngIndex.ToString(); }; buttonMiscGoToCourse.ContextMenuStrip = new ContextMenuStrip(); foreach (CourseToGoTo courseToGoTo in _coursesToGoTo) { ToolStripMenuItem item = new ToolStripMenuItem(courseToGoTo.Name); item.Click += (sender, e) => InGameFunctionCall.WriteInGameFunctionCall( RomVersionConfig.SwitchMap(0x8024978C, 0x8024975C), (uint)courseToGoTo.Index); buttonMiscGoToCourse.ContextMenuStrip.Items.Add(item); } buttonMiscGoToCourse.Click += (sender, e) => buttonMiscGoToCourse.ContextMenuStrip.Show(Cursor.Position); }
private bool ValueQualifies(object memoryObject, object oldMemoryObject, object searchObject1, object searchObject2, Type type) { if (type == typeof(byte)) { byte?memoryValue = ParsingUtilities.ParseByteNullable(memoryObject); if (!memoryValue.HasValue) { return(false); } byte?oldMemoryValue = ParsingUtilities.ParseByteNullable(oldMemoryObject); byte?searchValue1 = ParsingUtilities.ParseByteNullable(searchObject1); byte?searchValue2 = ParsingUtilities.ParseByteNullable(searchObject2); ValueRelationship valueRelationship = (ValueRelationship)comboBoxSearchValueRelationship.SelectedItem; switch (valueRelationship) { case ValueRelationship.EqualTo: if (!searchValue1.HasValue) { return(false); } return(memoryValue.Value == searchValue1.Value); case ValueRelationship.NotEqualTo: if (!searchValue1.HasValue) { return(false); } return(memoryValue.Value != searchValue1.Value); case ValueRelationship.GreaterThan: if (!searchValue1.HasValue) { return(false); } return(memoryValue.Value > searchValue1.Value); case ValueRelationship.LessThan: if (!searchValue1.HasValue) { return(false); } return(memoryValue.Value < searchValue1.Value); case ValueRelationship.GreaterThanOrEqualTo: if (!searchValue1.HasValue) { return(false); } return(memoryValue.Value >= searchValue1.Value); case ValueRelationship.LessThanOrEqualTo: if (!searchValue1.HasValue) { return(false); } return(memoryValue.Value <= searchValue1.Value); case ValueRelationship.Changed: if (!oldMemoryValue.HasValue) { return(false); } return(memoryValue.Value != oldMemoryValue.Value); case ValueRelationship.DidNotChange: if (!oldMemoryValue.HasValue) { return(false); } return(memoryValue.Value == oldMemoryValue.Value); case ValueRelationship.Increased: if (!oldMemoryValue.HasValue) { return(false); } return(memoryValue.Value > oldMemoryValue.Value); case ValueRelationship.Decreased: if (!oldMemoryValue.HasValue) { return(false); } return(memoryValue.Value < oldMemoryValue.Value); case ValueRelationship.IncreasedBy: if (!oldMemoryValue.HasValue || !searchValue1.HasValue) { return(false); } return(memoryValue.Value == oldMemoryValue.Value + searchValue1.Value); case ValueRelationship.DecreasedBy: if (!oldMemoryValue.HasValue || !searchValue1.HasValue) { return(false); } return(memoryValue.Value == oldMemoryValue.Value - searchValue1.Value); case ValueRelationship.BetweenExclusive: if (!searchValue1.HasValue || !searchValue2.HasValue) { return(false); } return(searchValue1.Value < memoryValue.Value && memoryValue.Value < searchValue2.Value); case ValueRelationship.BetweenInclusive: if (!searchValue1.HasValue || !searchValue2.HasValue) { return(false); } return(searchValue1.Value <= memoryValue.Value && memoryValue.Value <= searchValue2.Value); case ValueRelationship.EverythingPasses: return(true); default: throw new ArgumentOutOfRangeException(); } } if (type == typeof(sbyte)) { sbyte?memoryValue = ParsingUtilities.ParseSByteNullable(memoryObject); if (!memoryValue.HasValue) { return(false); } sbyte? oldMemoryValue = ParsingUtilities.ParseSByteNullable(oldMemoryObject); sbyte? searchValue1 = ParsingUtilities.ParseSByteNullable(searchObject1); sbyte? searchValue2 = ParsingUtilities.ParseSByteNullable(searchObject2); ValueRelationship valueRelationship = (ValueRelationship)comboBoxSearchValueRelationship.SelectedItem; switch (valueRelationship) { case ValueRelationship.EqualTo: if (!searchValue1.HasValue) { return(false); } return(memoryValue.Value == searchValue1.Value); case ValueRelationship.NotEqualTo: if (!searchValue1.HasValue) { return(false); } return(memoryValue.Value != searchValue1.Value); case ValueRelationship.GreaterThan: if (!searchValue1.HasValue) { return(false); } return(memoryValue.Value > searchValue1.Value); case ValueRelationship.LessThan: if (!searchValue1.HasValue) { return(false); } return(memoryValue.Value < searchValue1.Value); case ValueRelationship.GreaterThanOrEqualTo: if (!searchValue1.HasValue) { return(false); } return(memoryValue.Value >= searchValue1.Value); case ValueRelationship.LessThanOrEqualTo: if (!searchValue1.HasValue) { return(false); } return(memoryValue.Value <= searchValue1.Value); case ValueRelationship.Changed: if (!oldMemoryValue.HasValue) { return(false); } return(memoryValue.Value != oldMemoryValue.Value); case ValueRelationship.DidNotChange: if (!oldMemoryValue.HasValue) { return(false); } return(memoryValue.Value == oldMemoryValue.Value); case ValueRelationship.Increased: if (!oldMemoryValue.HasValue) { return(false); } return(memoryValue.Value > oldMemoryValue.Value); case ValueRelationship.Decreased: if (!oldMemoryValue.HasValue) { return(false); } return(memoryValue.Value < oldMemoryValue.Value); case ValueRelationship.IncreasedBy: if (!oldMemoryValue.HasValue || !searchValue1.HasValue) { return(false); } return(memoryValue.Value == oldMemoryValue.Value + searchValue1.Value); case ValueRelationship.DecreasedBy: if (!oldMemoryValue.HasValue || !searchValue1.HasValue) { return(false); } return(memoryValue.Value == oldMemoryValue.Value - searchValue1.Value); case ValueRelationship.BetweenExclusive: if (!searchValue1.HasValue || !searchValue2.HasValue) { return(false); } return(searchValue1.Value < memoryValue.Value && memoryValue.Value < searchValue2.Value); case ValueRelationship.BetweenInclusive: if (!searchValue1.HasValue || !searchValue2.HasValue) { return(false); } return(searchValue1.Value <= memoryValue.Value && memoryValue.Value <= searchValue2.Value); case ValueRelationship.EverythingPasses: return(true); default: throw new ArgumentOutOfRangeException(); } } if (type == typeof(short)) { short?memoryValue = ParsingUtilities.ParseShortNullable(memoryObject); if (!memoryValue.HasValue) { return(false); } short? oldMemoryValue = ParsingUtilities.ParseShortNullable(oldMemoryObject); short? searchValue1 = ParsingUtilities.ParseShortNullable(searchObject1); short? searchValue2 = ParsingUtilities.ParseShortNullable(searchObject2); ValueRelationship valueRelationship = (ValueRelationship)comboBoxSearchValueRelationship.SelectedItem; switch (valueRelationship) { case ValueRelationship.EqualTo: if (!searchValue1.HasValue) { return(false); } return(memoryValue.Value == searchValue1.Value); case ValueRelationship.NotEqualTo: if (!searchValue1.HasValue) { return(false); } return(memoryValue.Value != searchValue1.Value); case ValueRelationship.GreaterThan: if (!searchValue1.HasValue) { return(false); } return(memoryValue.Value > searchValue1.Value); case ValueRelationship.LessThan: if (!searchValue1.HasValue) { return(false); } return(memoryValue.Value < searchValue1.Value); case ValueRelationship.GreaterThanOrEqualTo: if (!searchValue1.HasValue) { return(false); } return(memoryValue.Value >= searchValue1.Value); case ValueRelationship.LessThanOrEqualTo: if (!searchValue1.HasValue) { return(false); } return(memoryValue.Value <= searchValue1.Value); case ValueRelationship.Changed: if (!oldMemoryValue.HasValue) { return(false); } return(memoryValue.Value != oldMemoryValue.Value); case ValueRelationship.DidNotChange: if (!oldMemoryValue.HasValue) { return(false); } return(memoryValue.Value == oldMemoryValue.Value); case ValueRelationship.Increased: if (!oldMemoryValue.HasValue) { return(false); } return(memoryValue.Value > oldMemoryValue.Value); case ValueRelationship.Decreased: if (!oldMemoryValue.HasValue) { return(false); } return(memoryValue.Value < oldMemoryValue.Value); case ValueRelationship.IncreasedBy: if (!oldMemoryValue.HasValue || !searchValue1.HasValue) { return(false); } return(memoryValue.Value == oldMemoryValue.Value + searchValue1.Value); case ValueRelationship.DecreasedBy: if (!oldMemoryValue.HasValue || !searchValue1.HasValue) { return(false); } return(memoryValue.Value == oldMemoryValue.Value - searchValue1.Value); case ValueRelationship.BetweenExclusive: if (!searchValue1.HasValue || !searchValue2.HasValue) { return(false); } return(searchValue1.Value < memoryValue.Value && memoryValue.Value < searchValue2.Value); case ValueRelationship.BetweenInclusive: if (!searchValue1.HasValue || !searchValue2.HasValue) { return(false); } return(searchValue1.Value <= memoryValue.Value && memoryValue.Value <= searchValue2.Value); case ValueRelationship.EverythingPasses: return(true); default: throw new ArgumentOutOfRangeException(); } } if (type == typeof(ushort)) { ushort?memoryValue = ParsingUtilities.ParseUShortNullable(memoryObject); if (!memoryValue.HasValue) { return(false); } ushort? oldMemoryValue = ParsingUtilities.ParseUShortNullable(oldMemoryObject); ushort? searchValue1 = ParsingUtilities.ParseUShortNullable(searchObject1); ushort? searchValue2 = ParsingUtilities.ParseUShortNullable(searchObject2); ValueRelationship valueRelationship = (ValueRelationship)comboBoxSearchValueRelationship.SelectedItem; switch (valueRelationship) { case ValueRelationship.EqualTo: if (!searchValue1.HasValue) { return(false); } return(memoryValue.Value == searchValue1.Value); case ValueRelationship.NotEqualTo: if (!searchValue1.HasValue) { return(false); } return(memoryValue.Value != searchValue1.Value); case ValueRelationship.GreaterThan: if (!searchValue1.HasValue) { return(false); } return(memoryValue.Value > searchValue1.Value); case ValueRelationship.LessThan: if (!searchValue1.HasValue) { return(false); } return(memoryValue.Value < searchValue1.Value); case ValueRelationship.GreaterThanOrEqualTo: if (!searchValue1.HasValue) { return(false); } return(memoryValue.Value >= searchValue1.Value); case ValueRelationship.LessThanOrEqualTo: if (!searchValue1.HasValue) { return(false); } return(memoryValue.Value <= searchValue1.Value); case ValueRelationship.Changed: if (!oldMemoryValue.HasValue) { return(false); } return(memoryValue.Value != oldMemoryValue.Value); case ValueRelationship.DidNotChange: if (!oldMemoryValue.HasValue) { return(false); } return(memoryValue.Value == oldMemoryValue.Value); case ValueRelationship.Increased: if (!oldMemoryValue.HasValue) { return(false); } return(memoryValue.Value > oldMemoryValue.Value); case ValueRelationship.Decreased: if (!oldMemoryValue.HasValue) { return(false); } return(memoryValue.Value < oldMemoryValue.Value); case ValueRelationship.IncreasedBy: if (!oldMemoryValue.HasValue || !searchValue1.HasValue) { return(false); } return(memoryValue.Value == oldMemoryValue.Value + searchValue1.Value); case ValueRelationship.DecreasedBy: if (!oldMemoryValue.HasValue || !searchValue1.HasValue) { return(false); } return(memoryValue.Value == oldMemoryValue.Value - searchValue1.Value); case ValueRelationship.BetweenExclusive: if (!searchValue1.HasValue || !searchValue2.HasValue) { return(false); } return(searchValue1.Value < memoryValue.Value && memoryValue.Value < searchValue2.Value); case ValueRelationship.BetweenInclusive: if (!searchValue1.HasValue || !searchValue2.HasValue) { return(false); } return(searchValue1.Value <= memoryValue.Value && memoryValue.Value <= searchValue2.Value); case ValueRelationship.EverythingPasses: return(true); default: throw new ArgumentOutOfRangeException(); } } if (type == typeof(int)) { int?memoryValue = ParsingUtilities.ParseIntNullable(memoryObject); if (!memoryValue.HasValue) { return(false); } int?oldMemoryValue = ParsingUtilities.ParseIntNullable(oldMemoryObject); int?searchValue1 = ParsingUtilities.ParseIntNullable(searchObject1); int?searchValue2 = ParsingUtilities.ParseIntNullable(searchObject2); ValueRelationship valueRelationship = (ValueRelationship)comboBoxSearchValueRelationship.SelectedItem; switch (valueRelationship) { case ValueRelationship.EqualTo: if (!searchValue1.HasValue) { return(false); } return(memoryValue.Value == searchValue1.Value); case ValueRelationship.NotEqualTo: if (!searchValue1.HasValue) { return(false); } return(memoryValue.Value != searchValue1.Value); case ValueRelationship.GreaterThan: if (!searchValue1.HasValue) { return(false); } return(memoryValue.Value > searchValue1.Value); case ValueRelationship.LessThan: if (!searchValue1.HasValue) { return(false); } return(memoryValue.Value < searchValue1.Value); case ValueRelationship.GreaterThanOrEqualTo: if (!searchValue1.HasValue) { return(false); } return(memoryValue.Value >= searchValue1.Value); case ValueRelationship.LessThanOrEqualTo: if (!searchValue1.HasValue) { return(false); } return(memoryValue.Value <= searchValue1.Value); case ValueRelationship.Changed: if (!oldMemoryValue.HasValue) { return(false); } return(memoryValue.Value != oldMemoryValue.Value); case ValueRelationship.DidNotChange: if (!oldMemoryValue.HasValue) { return(false); } return(memoryValue.Value == oldMemoryValue.Value); case ValueRelationship.Increased: if (!oldMemoryValue.HasValue) { return(false); } return(memoryValue.Value > oldMemoryValue.Value); case ValueRelationship.Decreased: if (!oldMemoryValue.HasValue) { return(false); } return(memoryValue.Value < oldMemoryValue.Value); case ValueRelationship.IncreasedBy: if (!oldMemoryValue.HasValue || !searchValue1.HasValue) { return(false); } return(memoryValue.Value == oldMemoryValue.Value + searchValue1.Value); case ValueRelationship.DecreasedBy: if (!oldMemoryValue.HasValue || !searchValue1.HasValue) { return(false); } return(memoryValue.Value == oldMemoryValue.Value - searchValue1.Value); case ValueRelationship.BetweenExclusive: if (!searchValue1.HasValue || !searchValue2.HasValue) { return(false); } return(searchValue1.Value < memoryValue.Value && memoryValue.Value < searchValue2.Value); case ValueRelationship.BetweenInclusive: if (!searchValue1.HasValue || !searchValue2.HasValue) { return(false); } return(searchValue1.Value <= memoryValue.Value && memoryValue.Value <= searchValue2.Value); case ValueRelationship.EverythingPasses: return(true); default: throw new ArgumentOutOfRangeException(); } } if (type == typeof(uint)) { uint?memoryValue = ParsingUtilities.ParseUIntNullable(memoryObject); if (!memoryValue.HasValue) { return(false); } uint?oldMemoryValue = ParsingUtilities.ParseUIntNullable(oldMemoryObject); uint?searchValue1 = ParsingUtilities.ParseUIntNullable(searchObject1); uint?searchValue2 = ParsingUtilities.ParseUIntNullable(searchObject2); ValueRelationship valueRelationship = (ValueRelationship)comboBoxSearchValueRelationship.SelectedItem; switch (valueRelationship) { case ValueRelationship.EqualTo: if (!searchValue1.HasValue) { return(false); } return(memoryValue.Value == searchValue1.Value); case ValueRelationship.NotEqualTo: if (!searchValue1.HasValue) { return(false); } return(memoryValue.Value != searchValue1.Value); case ValueRelationship.GreaterThan: if (!searchValue1.HasValue) { return(false); } return(memoryValue.Value > searchValue1.Value); case ValueRelationship.LessThan: if (!searchValue1.HasValue) { return(false); } return(memoryValue.Value < searchValue1.Value); case ValueRelationship.GreaterThanOrEqualTo: if (!searchValue1.HasValue) { return(false); } return(memoryValue.Value >= searchValue1.Value); case ValueRelationship.LessThanOrEqualTo: if (!searchValue1.HasValue) { return(false); } return(memoryValue.Value <= searchValue1.Value); case ValueRelationship.Changed: if (!oldMemoryValue.HasValue) { return(false); } return(memoryValue.Value != oldMemoryValue.Value); case ValueRelationship.DidNotChange: if (!oldMemoryValue.HasValue) { return(false); } return(memoryValue.Value == oldMemoryValue.Value); case ValueRelationship.Increased: if (!oldMemoryValue.HasValue) { return(false); } return(memoryValue.Value > oldMemoryValue.Value); case ValueRelationship.Decreased: if (!oldMemoryValue.HasValue) { return(false); } return(memoryValue.Value < oldMemoryValue.Value); case ValueRelationship.IncreasedBy: if (!oldMemoryValue.HasValue || !searchValue1.HasValue) { return(false); } return(memoryValue.Value == oldMemoryValue.Value + searchValue1.Value); case ValueRelationship.DecreasedBy: if (!oldMemoryValue.HasValue || !searchValue1.HasValue) { return(false); } return(memoryValue.Value == oldMemoryValue.Value - searchValue1.Value); case ValueRelationship.BetweenExclusive: if (!searchValue1.HasValue || !searchValue2.HasValue) { return(false); } return(searchValue1.Value < memoryValue.Value && memoryValue.Value < searchValue2.Value); case ValueRelationship.BetweenInclusive: if (!searchValue1.HasValue || !searchValue2.HasValue) { return(false); } return(searchValue1.Value <= memoryValue.Value && memoryValue.Value <= searchValue2.Value); case ValueRelationship.EverythingPasses: return(true); default: throw new ArgumentOutOfRangeException(); } } if (type == typeof(float)) { float?memoryValue = ParsingUtilities.ParseFloatNullable(memoryObject); if (!memoryValue.HasValue) { return(false); } float? oldMemoryValue = ParsingUtilities.ParseFloatNullable(oldMemoryObject); float? searchValue1 = ParsingUtilities.ParseFloatNullable(searchObject1); float? searchValue2 = ParsingUtilities.ParseFloatNullable(searchObject2); ValueRelationship valueRelationship = (ValueRelationship)comboBoxSearchValueRelationship.SelectedItem; switch (valueRelationship) { case ValueRelationship.EqualTo: if (!searchValue1.HasValue) { return(false); } return(memoryValue.Value == searchValue1.Value); case ValueRelationship.NotEqualTo: if (!searchValue1.HasValue) { return(false); } return(memoryValue.Value != searchValue1.Value); case ValueRelationship.GreaterThan: if (!searchValue1.HasValue) { return(false); } return(memoryValue.Value > searchValue1.Value); case ValueRelationship.LessThan: if (!searchValue1.HasValue) { return(false); } return(memoryValue.Value < searchValue1.Value); case ValueRelationship.GreaterThanOrEqualTo: if (!searchValue1.HasValue) { return(false); } return(memoryValue.Value >= searchValue1.Value); case ValueRelationship.LessThanOrEqualTo: if (!searchValue1.HasValue) { return(false); } return(memoryValue.Value <= searchValue1.Value); case ValueRelationship.Changed: if (!oldMemoryValue.HasValue) { return(false); } return(memoryValue.Value != oldMemoryValue.Value); case ValueRelationship.DidNotChange: if (!oldMemoryValue.HasValue) { return(false); } return(memoryValue.Value == oldMemoryValue.Value); case ValueRelationship.Increased: if (!oldMemoryValue.HasValue) { return(false); } return(memoryValue.Value > oldMemoryValue.Value); case ValueRelationship.Decreased: if (!oldMemoryValue.HasValue) { return(false); } return(memoryValue.Value < oldMemoryValue.Value); case ValueRelationship.IncreasedBy: if (!oldMemoryValue.HasValue || !searchValue1.HasValue) { return(false); } return(memoryValue.Value == oldMemoryValue.Value + searchValue1.Value); case ValueRelationship.DecreasedBy: if (!oldMemoryValue.HasValue || !searchValue1.HasValue) { return(false); } return(memoryValue.Value == oldMemoryValue.Value - searchValue1.Value); case ValueRelationship.BetweenExclusive: if (!searchValue1.HasValue || !searchValue2.HasValue) { return(false); } return(searchValue1.Value < memoryValue.Value && memoryValue.Value < searchValue2.Value); case ValueRelationship.BetweenInclusive: if (!searchValue1.HasValue || !searchValue2.HasValue) { return(false); } return(searchValue1.Value <= memoryValue.Value && memoryValue.Value <= searchValue2.Value); case ValueRelationship.EverythingPasses: return(true); default: throw new ArgumentOutOfRangeException(); } } if (type == typeof(double)) { double?memoryValue = ParsingUtilities.ParseDoubleNullable(memoryObject); if (!memoryValue.HasValue) { return(false); } double? oldMemoryValue = ParsingUtilities.ParseDoubleNullable(oldMemoryObject); double? searchValue1 = ParsingUtilities.ParseDoubleNullable(searchObject1); double? searchValue2 = ParsingUtilities.ParseDoubleNullable(searchObject2); ValueRelationship valueRelationship = (ValueRelationship)comboBoxSearchValueRelationship.SelectedItem; switch (valueRelationship) { case ValueRelationship.EqualTo: if (!searchValue1.HasValue) { return(false); } return(memoryValue.Value == searchValue1.Value); case ValueRelationship.NotEqualTo: if (!searchValue1.HasValue) { return(false); } return(memoryValue.Value != searchValue1.Value); case ValueRelationship.GreaterThan: if (!searchValue1.HasValue) { return(false); } return(memoryValue.Value > searchValue1.Value); case ValueRelationship.LessThan: if (!searchValue1.HasValue) { return(false); } return(memoryValue.Value < searchValue1.Value); case ValueRelationship.GreaterThanOrEqualTo: if (!searchValue1.HasValue) { return(false); } return(memoryValue.Value >= searchValue1.Value); case ValueRelationship.LessThanOrEqualTo: if (!searchValue1.HasValue) { return(false); } return(memoryValue.Value <= searchValue1.Value); case ValueRelationship.Changed: if (!oldMemoryValue.HasValue) { return(false); } return(memoryValue.Value != oldMemoryValue.Value); case ValueRelationship.DidNotChange: if (!oldMemoryValue.HasValue) { return(false); } return(memoryValue.Value == oldMemoryValue.Value); case ValueRelationship.Increased: if (!oldMemoryValue.HasValue) { return(false); } return(memoryValue.Value > oldMemoryValue.Value); case ValueRelationship.Decreased: if (!oldMemoryValue.HasValue) { return(false); } return(memoryValue.Value < oldMemoryValue.Value); case ValueRelationship.IncreasedBy: if (!oldMemoryValue.HasValue || !searchValue1.HasValue) { return(false); } return(memoryValue.Value == oldMemoryValue.Value + searchValue1.Value); case ValueRelationship.DecreasedBy: if (!oldMemoryValue.HasValue || !searchValue1.HasValue) { return(false); } return(memoryValue.Value == oldMemoryValue.Value - searchValue1.Value); case ValueRelationship.BetweenExclusive: if (!searchValue1.HasValue || !searchValue2.HasValue) { return(false); } return(searchValue1.Value < memoryValue.Value && memoryValue.Value < searchValue2.Value); case ValueRelationship.BetweenInclusive: if (!searchValue1.HasValue || !searchValue2.HasValue) { return(false); } return(searchValue1.Value <= memoryValue.Value && memoryValue.Value <= searchValue2.Value); case ValueRelationship.EverythingPasses: return(true); default: throw new ArgumentOutOfRangeException(); } } throw new ArgumentOutOfRangeException(); }
public SnowManager(string varFilePath, WatchVariableFlowLayoutPanel variableTable, TabPage tabPageSnow) : base(varFilePath, variableTable, ALL_VAR_GROUPS, VISIBLE_VAR_GROUPS) { _numSnowParticles = 0; _snowParticleControls = new List <List <WatchVariableControl> >(); SplitContainer splitContainerSnow = tabPageSnow.Controls["splitContainerSnow"] as SplitContainer; TextBox textBoxSnowIndex = splitContainerSnow.Panel1.Controls["textBoxSnowIndex"] as TextBox; Button buttonSnowRetrieve = splitContainerSnow.Panel1.Controls["buttonSnowRetrieve"] as Button; buttonSnowRetrieve.Click += (sender, e) => { int?snowIndexNullable = ParsingUtilities.ParseIntNullable(textBoxSnowIndex.Text); if (!snowIndexNullable.HasValue) { return; } int snowIndex = snowIndexNullable.Value; if (snowIndex < 0 || snowIndex > _numSnowParticles) { return; } ButtonUtilities.RetrieveSnow(snowIndex); }; GroupBox groupBoxSnowPosition = splitContainerSnow.Panel1.Controls["groupBoxSnowPosition"] as GroupBox; ControlUtilities.InitializeThreeDimensionController( CoordinateSystem.Euler, true, groupBoxSnowPosition, groupBoxSnowPosition.Controls["buttonSnowPositionXn"] as Button, groupBoxSnowPosition.Controls["buttonSnowPositionXp"] as Button, groupBoxSnowPosition.Controls["buttonSnowPositionZn"] as Button, groupBoxSnowPosition.Controls["buttonSnowPositionZp"] as Button, groupBoxSnowPosition.Controls["buttonSnowPositionXnZn"] as Button, groupBoxSnowPosition.Controls["buttonSnowPositionXnZp"] as Button, groupBoxSnowPosition.Controls["buttonSnowPositionXpZn"] as Button, groupBoxSnowPosition.Controls["buttonSnowPositionXpZp"] as Button, groupBoxSnowPosition.Controls["buttonSnowPositionYp"] as Button, groupBoxSnowPosition.Controls["buttonSnowPositionYn"] as Button, groupBoxSnowPosition.Controls["textBoxSnowPositionXZ"] as TextBox, groupBoxSnowPosition.Controls["textBoxSnowPositionY"] as TextBox, groupBoxSnowPosition.Controls["checkBoxSnowPositionRelative"] as CheckBox, (float hOffset, float vOffset, float nOffset, bool useRelative) => { int?snowIndexNullable = ParsingUtilities.ParseIntNullable(textBoxSnowIndex.Text); if (!snowIndexNullable.HasValue) { return; } int snowIndex = snowIndexNullable.Value; if (snowIndex < 0 || snowIndex > _numSnowParticles) { return; } ButtonUtilities.TranslateSnow( snowIndex, hOffset, nOffset, -1 * vOffset, useRelative); }); }
private void textBoxOpacity_EnterAction() { SetOpacity(ParsingUtilities.ParseIntNullable(textBoxOpacity.Text)); }
private void CalculateCoinTrajectories() { ClearCoinTrajectories(); double?hSpeedScale = ParsingUtilities.ParseIntNullable(textBoxCoinHSpeedScale.Text); double?vSpeedScale = ParsingUtilities.ParseIntNullable(textBoxCoinVSpeedScale.Text); double?vSpeedOffset = ParsingUtilities.ParseIntNullable(textBoxCoinVSpeedOffset.Text); bool coinParamOrderParsed = Enum.TryParse(textBoxCoinParamOrder.Text, out CoinParamOrder coinParamOrder); int? numCoins = ParsingUtilities.ParseIntNullable(textBoxCoinNumCoins.Text); if (!hSpeedScale.HasValue || !vSpeedScale.HasValue || !vSpeedOffset.HasValue || !coinParamOrderParsed || !numCoins.HasValue) { DialogUtilities.DisplayMessage( "Could not parse coin param fields.", "Parsing Error"); return; } CoinObject coinObject = new CoinObject( hSpeedScale: hSpeedScale.Value, vSpeedScale: vSpeedScale.Value, vSpeedOffset: vSpeedOffset.Value, coinParamOrder: coinParamOrder, numCoins: numCoins.Value, name: "Dummy"); int?startingRngIndexNullable = ParsingUtilities.ParseIntNullable( textBoxCoinCustomizatonStartingRngIndex.Text); int startingRngIndex = startingRngIndexNullable ?? RngIndexer.GetRngIndex(); int?numDecimalDigitsNullable = ParsingUtilities.ParseIntNullable( textBoxCoinCustomizatonNumDecimalDigits.Text); int numDecimalDigits = numDecimalDigitsNullable ?? 3; List <int> rngIndexes = Enumerable.Range(0, 65114).ToList(); foreach (int rngIndex in rngIndexes) { // rng based values ushort rngValue = RngIndexer.GetRngValue(rngIndex); int rngToGo = MoreMath.NonNegativeModulus(rngIndex - startingRngIndex, 65114); // coin trajectory List <CoinTrajectory> coinTrajectories = coinObject.CalculateCoinTrajectories(rngIndex); // filter the values CoinTrajectoryFilter filter = new CoinTrajectoryFilter( ParsingUtilities.ParseDoubleNullable(textBoxCoinFilterHSpeedMin.Text), ParsingUtilities.ParseDoubleNullable(textBoxCoinFilterHSpeedMax.Text), ParsingUtilities.ParseDoubleNullable(textBoxCoinFilterVSpeedMin.Text), ParsingUtilities.ParseDoubleNullable(textBoxCoinFilterVSpeedMax.Text), ParsingUtilities.ParseDoubleNullable(textBoxCoinFilterAngleMin.Text), ParsingUtilities.ParseDoubleNullable(textBoxCoinFilterAngleMax.Text), ParsingUtilities.ParseIntNullable(textBoxCoinFilterRequiredNumOfQualifiedCoins.Text)); if (!filter.Qualifies(coinTrajectories)) { continue; } if (!checkBoxCoinCustomizatonDisplayNonQualifiedCoinsOfAQualifiedCoinGroup.Checked) { coinTrajectories = coinTrajectories.FindAll( coinTrajectory => filter.Qualifies(coinTrajectory)); } List <double> hSpeedList = coinTrajectories.ConvertAll( coinTrajectory => Math.Round(coinTrajectory.HSpeed, numDecimalDigits)); List <double> vSpeedList = coinTrajectories.ConvertAll( coinTrajectory => Math.Round(coinTrajectory.VSpeed, numDecimalDigits)); List <ushort> angleList = coinTrajectories.ConvertAll( coinTrajectory => coinTrajectory.Angle); object hSpeedJoined = hSpeedList.Count == 1 ? hSpeedList[0] : (object)String.Join(", ", hSpeedList); object vSpeedJoined = vSpeedList.Count == 1 ? vSpeedList[0] : (object)String.Join(", ", vSpeedList); object angleJoined = angleList.Count == 1 ? angleList[0] : (object)String.Join(", ", angleList); // add a new row to the table dataGridViewCoin.Rows.Add( rngIndex, rngValue, rngToGo, hSpeedJoined, vSpeedJoined, angleJoined); } }