public HudManager(string varFilePath, Control tabControl, WatchVariableFlowLayoutPanel watchVariablePanelHud) : base(varFilePath, watchVariablePanelHud) { _tabControl = tabControl; SplitContainer splitContainerHud = tabControl.Controls["splitContainerHud"] as SplitContainer; (splitContainerHud.Panel1.Controls["buttonFullHp"] as Button).Click += (sender, e) => ButtonUtilities.FullHp(); (splitContainerHud.Panel1.Controls["buttonDie"] as Button).Click += (sender, e) => ButtonUtilities.Die(); (splitContainerHud.Panel1.Controls["buttonGameOver"] as Button).Click += (sender, e) => ButtonUtilities.GameOver(); (splitContainerHud.Panel1.Controls["button99Coins"] as Button).Click += (sender, e) => ButtonUtilities.Coins99(); (splitContainerHud.Panel1.Controls["button100CoinStar"] as Button).Click += (sender, e) => ButtonUtilities.CoinStar100(); (splitContainerHud.Panel1.Controls["button100Lives"] as Button).Click += (sender, e) => ButtonUtilities.Lives100(); (splitContainerHud.Panel1.Controls["buttonStandardHud"] as Button).Click += (sender, e) => ButtonUtilities.StandardHud(); _turnOnOffHudButton = splitContainerHud.Panel1.Controls["buttonTurnOnOffHud"] as BinaryButton; _turnOnOffHudButton.Initialize( "Turn Off HUD", "Turn On HUD", () => ButtonUtilities.SetHudVisibility(false), () => ButtonUtilities.SetHudVisibility(true), () => (Config.Stream.GetByte(MarioConfig.StructAddress + HudConfig.VisibilityOffset) & HudConfig.VisibilityMask) == 0); ControlUtilities.AddContextMenuStripFunctions( _turnOnOffHudButton, new List <string>() { "Disable HUD by Changing Level Index", "Enable HUD by Changing Level Index", "Disable HUD by Removing Function", "Enable HUD by Removing Function", }, new List <Action>() { () => ButtonUtilities.SetHudVisibility(false, true), () => ButtonUtilities.SetHudVisibility(true, true), () => ButtonUtilities.SetHudVisibility(false, false), () => ButtonUtilities.SetHudVisibility(true, false), }); _checkBoxFullHP = splitContainerHud.Panel1.Controls["checkBoxFullHP"] as CheckBox; }
public HudManager(List <WatchVariable> hudData, Control tabControl, NoTearFlowLayoutPanel noTearFlowLayoutPanelHud) : base(hudData, noTearFlowLayoutPanelHud) { _tabControl = tabControl; SplitContainer splitContainerHud = tabControl.Controls["splitContainerHud"] as SplitContainer; (splitContainerHud.Panel1.Controls["buttonFullHp"] as Button).Click += (sender, e) => ButtonUtilities.FullHp(); (splitContainerHud.Panel1.Controls["buttonDie"] as Button).Click += (sender, e) => ButtonUtilities.Die(); (splitContainerHud.Panel1.Controls["button99Coins"] as Button).Click += (sender, e) => ButtonUtilities.Coins99(); (splitContainerHud.Panel1.Controls["button100Lives"] as Button).Click += (sender, e) => ButtonUtilities.Lives100(); (splitContainerHud.Panel1.Controls["buttonStandardHud"] as Button).Click += (sender, e) => ButtonUtilities.StandardHud(); _turnOnOffHudButton = splitContainerHud.Panel1.Controls["buttonTurnOnOffHud"] as BinaryButton; _turnOnOffHudButton.Initialize( "Turn Off HUD", "Turn On HUD", () => ButtonUtilities.SetHudVisibility(false), () => ButtonUtilities.SetHudVisibility(true), () => (Config.Stream.GetByte(Config.Mario.StructAddress + Config.Hud.VisibilityOffset) & Config.Hud.VisibilityMask) == 0); _checkBoxFullHP = splitContainerHud.Panel1.Controls["checkBoxFullHP"] as CheckBox; }
public VarHackManager(Control varHackControlControl, VarHackFlowLayoutPanel varHackPanel) { _varHackPanel = varHackPanel; // Top buttons SplitContainer splitContainerVarHack = varHackControlControl.Controls["splitContainerVarHack"] as SplitContainer; Button buttonVarHackAddNewVariable = splitContainerVarHack.Panel1.Controls["buttonVarHackAddNewVariable"] as Button; buttonVarHackAddNewVariable.Click += (sender, e) => _varHackPanel.AddNewControl(); ControlUtilities.AddContextMenuStripFunctions( buttonVarHackAddNewVariable, new List <string>() { "RNG Index", "Floor YNorm", "Defacto Speed", "Sliding Speed", "Mario Action", "Mario Animation", "DYaw Intended - Facing", "DYaw Intended - Facing (HAU)", }, new List <Action>() { () => AddVariable("RngIndex"), () => AddVariable("FloorYNorm"), () => AddVariable("DefactoSpeed"), () => AddVariable("SlidingSpeed"), () => AddVariable("MarioAction"), () => AddVariable("MarioAnimation"), () => AddVariable("DYawIntendFacing"), () => AddVariable("DYawIntendFacingHau"), }); Button buttonVarHackOpenVars = splitContainerVarHack.Panel1.Controls["buttonVarHackOpenVars"] as Button; buttonVarHackOpenVars.Click += (sender, e) => _varHackPanel.OpenVariables(); Button buttonVarHackSaveVars = splitContainerVarHack.Panel1.Controls["buttonVarHackSaveVars"] as Button; buttonVarHackSaveVars.Click += (sender, e) => _varHackPanel.SaveVariables(); Button buttonVarHackClearVariables = splitContainerVarHack.Panel1.Controls["buttonVarHackClearVars"] as Button; buttonVarHackClearVariables.Click += (sender, e) => _varHackPanel.ClearVariables(); Button buttonVarHackShowVariableBytesInLittleEndian = splitContainerVarHack.Panel1.Controls["buttonVarHackShowVariableBytesInLittleEndian"] as Button; buttonVarHackShowVariableBytesInLittleEndian.Click += (sender, e) => _varHackPanel.ShowVariableBytesInLittleEndian(); Button buttonVarHackShowVariableBytesInBigEndian = splitContainerVarHack.Panel1.Controls["buttonVarHackShowVariableBytesInBigEndian"] as Button; buttonVarHackShowVariableBytesInBigEndian.Click += (sender, e) => _varHackPanel.ShowVariableBytesInBigEndian(); // Bottom buttons Button buttonVarHackApplyVariablesToMemory = splitContainerVarHack.Panel1.Controls["buttonVarHackApplyVariablesToMemory"] as Button; buttonVarHackApplyVariablesToMemory.Click += (sender, e) => _varHackPanel.ApplyVariablesToMemory(); Button buttonVarHackClearVariablesInMemory = splitContainerVarHack.Panel1.Controls["buttonVarHackClearVariablesInMemory"] as Button; buttonVarHackClearVariablesInMemory.Click += (sender, e) => _varHackPanel.ClearVariablesInMemory(); _buttonEnableDisableRomHack = splitContainerVarHack.Panel1.Controls["buttonEnableDisableRomHack"] as BinaryButton; _buttonEnableDisableRomHack.Initialize( "Enable ROM Hack", "Disable ROM Hack", () => VarHackConfig.ShowVarRomHack.LoadPayload(), () => VarHackConfig.ShowVarRomHack.ClearPayload(), () => VarHackConfig.ShowVarRomHack.Enabled); ControlUtilities.AddContextMenuStripFunctions( _buttonEnableDisableRomHack, new List <string>() { "1f Delay Hack (Standard)", "0f Delay Hack (Experimental)" }, new List <Action>() { () => VarHackConfig.ShowVarRomHack.LoadPayload(), () => VarHackConfig.ShowVarRomHack2.LoadPayload(), }); // Middle buttons _textBoxXPosValue = splitContainerVarHack.Panel1.Controls["textBoxXPosValue"] as BetterTextbox; _textBoxXPosValue.AddEnterAction(() => SetPositionsAndApplyVariablesToMemory()); _textBoxXPosValue.Text = VarHackConfig.DefaultXPos.ToString(); InitializePositionControls( _textBoxXPosValue, splitContainerVarHack.Panel1.Controls["textBoxXPosChange"] as TextBox, splitContainerVarHack.Panel1.Controls["buttonXPosSubtract"] as Button, splitContainerVarHack.Panel1.Controls["buttonXPosAdd"] as Button); _textBoxYPosValue = splitContainerVarHack.Panel1.Controls["textBoxYPosValue"] as BetterTextbox; _textBoxYPosValue.AddEnterAction(() => SetPositionsAndApplyVariablesToMemory()); _textBoxYPosValue.Text = VarHackConfig.DefaultYPos.ToString(); InitializePositionControls( _textBoxYPosValue, splitContainerVarHack.Panel1.Controls["textBoxYPosChange"] as TextBox, splitContainerVarHack.Panel1.Controls["buttonYPosSubtract"] as Button, splitContainerVarHack.Panel1.Controls["buttonYPosAdd"] as Button); _textBoxYDeltaValue = splitContainerVarHack.Panel1.Controls["textBoxYDeltaValue"] as BetterTextbox; _textBoxYDeltaValue.AddEnterAction(() => SetPositionsAndApplyVariablesToMemory()); _textBoxYDeltaValue.Text = VarHackConfig.DefaultYDelta.ToString(); InitializePositionControls( _textBoxYDeltaValue, splitContainerVarHack.Panel1.Controls["textBoxYDeltaChange"] as TextBox, splitContainerVarHack.Panel1.Controls["buttonYDeltaSubtract"] as Button, splitContainerVarHack.Panel1.Controls["buttonYDeltaAdd"] as Button); Button buttonSetPositionsAndApplyVariablesToMemory = splitContainerVarHack.Panel1.Controls["buttonSetPositionsAndApplyVariablesToMemory"] as Button; buttonSetPositionsAndApplyVariablesToMemory.Click += (sender, e) => SetPositionsAndApplyVariablesToMemory(); }
public CameraManager(string varFilePath, Control tabControl, WatchVariableFlowLayoutPanel variableTable) : base(varFilePath, variableTable) { var splitContainer = tabControl.Controls["splitContainerCamera"] as SplitContainer; var cameraPosGroupBox = splitContainer.Panel1.Controls["groupBoxCameraPos"] as GroupBox; ControlUtilities.InitializeThreeDimensionController( CoordinateSystem.Euler, true, cameraPosGroupBox, cameraPosGroupBox.Controls["buttonCameraPosXn"] as Button, cameraPosGroupBox.Controls["buttonCameraPosXp"] as Button, cameraPosGroupBox.Controls["buttonCameraPosZn"] as Button, cameraPosGroupBox.Controls["buttonCameraPosZp"] as Button, cameraPosGroupBox.Controls["buttonCameraPosXnZn"] as Button, cameraPosGroupBox.Controls["buttonCameraPosXnZp"] as Button, cameraPosGroupBox.Controls["buttonCameraPosXpZn"] as Button, cameraPosGroupBox.Controls["buttonCameraPosXpZp"] as Button, cameraPosGroupBox.Controls["buttonCameraPosYp"] as Button, cameraPosGroupBox.Controls["buttonCameraPosYn"] as Button, cameraPosGroupBox.Controls["textBoxCameraPosXZ"] as TextBox, cameraPosGroupBox.Controls["textBoxCameraPosY"] as TextBox, cameraPosGroupBox.Controls["checkBoxCameraPosRelative"] as CheckBox, (float hOffset, float vOffset, float nOffset, bool useRelative) => { ButtonUtilities.TranslateCamera( hOffset, nOffset, -1 * vOffset, useRelative); }); var cameraSphericalPosGroupBox = splitContainer.Panel1.Controls["groupBoxCameraSphericalPos"] as GroupBox; ControlUtilities.InitializeThreeDimensionController( CoordinateSystem.Spherical, false, cameraSphericalPosGroupBox, cameraSphericalPosGroupBox.Controls["buttonCameraSphericalPosTn"] as Button, cameraSphericalPosGroupBox.Controls["buttonCameraSphericalPosTp"] as Button, cameraSphericalPosGroupBox.Controls["buttonCameraSphericalPosPn"] as Button, cameraSphericalPosGroupBox.Controls["buttonCameraSphericalPosPp"] as Button, cameraSphericalPosGroupBox.Controls["buttonCameraSphericalPosTnPn"] as Button, cameraSphericalPosGroupBox.Controls["buttonCameraSphericalPosTnPp"] as Button, cameraSphericalPosGroupBox.Controls["buttonCameraSphericalPosTpPn"] as Button, cameraSphericalPosGroupBox.Controls["buttonCameraSphericalPosTpPp"] as Button, cameraSphericalPosGroupBox.Controls["buttonCameraSphericalPosRn"] as Button, cameraSphericalPosGroupBox.Controls["buttonCameraSphericalPosRp"] as Button, cameraSphericalPosGroupBox.Controls["textBoxCameraSphericalPosTP"] as TextBox, cameraSphericalPosGroupBox.Controls["textBoxCameraSphericalPosR"] as TextBox, cameraSphericalPosGroupBox.Controls["checkBoxCameraSphericalPosPivotOnFocus"] as CheckBox, (float hOffset, float vOffset, float nOffset, bool pivotOnFocus) => { ButtonUtilities.TranslateCameraSpherically( -1 * nOffset, hOffset, -1 * vOffset, getSphericalPivotPoint(pivotOnFocus)); }); _buttonDisableFOVFunctions = splitContainer.Panel1.Controls["buttonDisableFOVFunctions"] as BinaryButton; _buttonDisableFOVFunctions.Initialize( "Disable FOV Functions", "Enable FOV Functions", () => { List <uint> addresses = CameraConfig.FovFunctionAddresses; for (int i = 0; i < addresses.Count; i++) { Config.Stream.SetValue(0, addresses[i]); } }, () => { List <uint> addresses = CameraConfig.FovFunctionAddresses; List <uint> values = CameraConfig.FovFunctionValues; for (int i = 0; i < addresses.Count; i++) { Config.Stream.SetValue(values[i], addresses[i]); } }, () => { return(CameraConfig.FovFunctionAddresses.All( address => Config.Stream.GetUInt32(address) == 0)); }); }
public VarHackManager(Control varHackControlControl, VarHackPanel varHackPanel) { _varHackPanel = varHackPanel; // Top buttons SplitContainer splitContainerVarHack = varHackControlControl.Controls["splitContainerVarHack"] as SplitContainer; Button buttonVarHackAddNewVariable = splitContainerVarHack.Panel1.Controls["buttonVarHackAddNewVariable"] as Button; buttonVarHackAddNewVariable.Click += (sender, e) => _varHackPanel.AddNewControl(); ControlUtilities.AddContextMenuStripFunctions( buttonVarHackAddNewVariable, new List <string>() { "RNG Index", "Floor YNorm", "Defacto Speed", "Mario Action", "Mario Animation", }, new List <Action>() { () => AddVariable(() => "Index " + RngIndexer.GetRngIndex()), () => AddVariable(() => { uint triFloorAddress = Config.Stream.GetUInt32(MarioConfig.StructAddress + MarioConfig.FloorTriangleOffset); float yNorm = Config.Stream.GetSingle(triFloorAddress + TriangleOffsetsConfig.NormY); return("YNorm " + FormatDouble(yNorm, 4, true)); }), () => AddVariable(() => "Defacto " + FormatInteger(WatchVariableSpecialUtilities.GetMarioDeFactoSpeed())), () => AddVariable(() => "Action " + TableConfig.MarioActions.GetActionName()), () => AddVariable(() => "Animation " + TableConfig.MarioAnimations.GetAnimationName()), }); Button buttonVarHackClearVariables = splitContainerVarHack.Panel1.Controls["buttonVarHackClearVariables"] as Button; buttonVarHackClearVariables.Click += (sender, e) => _varHackPanel.ClearControls(); Button buttonVarHackShowVariableBytesInLittleEndian = splitContainerVarHack.Panel1.Controls["buttonVarHackShowVariableBytesInLittleEndian"] as Button; buttonVarHackShowVariableBytesInLittleEndian.Click += (sender, e) => _varHackPanel.ShowVariableBytesInLittleEndian(); Button buttonVarHackShowVariableBytesInBigEndian = splitContainerVarHack.Panel1.Controls["buttonVarHackShowVariableBytesInBigEndian"] as Button; buttonVarHackShowVariableBytesInBigEndian.Click += (sender, e) => _varHackPanel.ShowVariableBytesInBigEndian(); // Bottom buttons Button buttonVarHackApplyVariablesToMemory = splitContainerVarHack.Panel1.Controls["buttonVarHackApplyVariablesToMemory"] as Button; buttonVarHackApplyVariablesToMemory.Click += (sender, e) => _varHackPanel.ApplyVariablesToMemory(); Button buttonVarHackClearVariablesInMemory = splitContainerVarHack.Panel1.Controls["buttonVarHackClearVariablesInMemory"] as Button; buttonVarHackClearVariablesInMemory.Click += (sender, e) => _varHackPanel.ClearVariablesInMemory(); _buttonEnableDisableRomHack = splitContainerVarHack.Panel1.Controls["buttonEnableDisableRomHack"] as BinaryButton; _buttonEnableDisableRomHack.Initialize( "Enable ROM Hack", "Disable ROM Hack", () => VarHackConfig.ShowVarRomHack.LoadPayload(), () => VarHackConfig.ShowVarRomHack.ClearPayload(), () => VarHackConfig.ShowVarRomHack.Enabled); // Middle buttons _textBoxXPosValue = splitContainerVarHack.Panel1.Controls["textBoxXPosValue"] as BetterTextbox; _textBoxXPosValue.AddEnterAction(() => SetPositionsAndApplyVariablesToMemory()); _textBoxXPosValue.Text = VarHackConfig.DefaultXPos.ToString(); InitializePositionControls( _textBoxXPosValue, splitContainerVarHack.Panel1.Controls["textBoxXPosChange"] as TextBox, splitContainerVarHack.Panel1.Controls["buttonXPosSubtract"] as Button, splitContainerVarHack.Panel1.Controls["buttonXPosAdd"] as Button); _textBoxYPosValue = splitContainerVarHack.Panel1.Controls["textBoxYPosValue"] as BetterTextbox; _textBoxYPosValue.AddEnterAction(() => SetPositionsAndApplyVariablesToMemory()); _textBoxYPosValue.Text = VarHackConfig.DefaultYPos.ToString(); InitializePositionControls( _textBoxYPosValue, splitContainerVarHack.Panel1.Controls["textBoxYPosChange"] as TextBox, splitContainerVarHack.Panel1.Controls["buttonYPosSubtract"] as Button, splitContainerVarHack.Panel1.Controls["buttonYPosAdd"] as Button); _textBoxYDeltaValue = splitContainerVarHack.Panel1.Controls["textBoxYDeltaValue"] as BetterTextbox; _textBoxYDeltaValue.AddEnterAction(() => SetPositionsAndApplyVariablesToMemory()); _textBoxYDeltaValue.Text = VarHackConfig.DefaultYDelta.ToString(); InitializePositionControls( _textBoxYDeltaValue, splitContainerVarHack.Panel1.Controls["textBoxYDeltaChange"] as TextBox, splitContainerVarHack.Panel1.Controls["buttonYDeltaSubtract"] as Button, splitContainerVarHack.Panel1.Controls["buttonYDeltaAdd"] as Button); Button buttonSetPositionsAndApplyVariablesToMemory = splitContainerVarHack.Panel1.Controls["buttonSetPositionsAndApplyVariablesToMemory"] as Button; buttonSetPositionsAndApplyVariablesToMemory.Click += (sender, e) => SetPositionsAndApplyVariablesToMemory(); }