BizHawk/BizHawk.Client.EmuHawk/config/AutofireConfig.cs

71 lines
1.7 KiB
C#

using System;
using System.Windows.Forms;
using BizHawk.Client.Common;
namespace BizHawk.Client.EmuHawk
{
public partial class AutofireConfig : Form
{
private readonly Config _config;
private readonly AutofireController _autoFireController;
private readonly AutoFireStickyXorAdapter _stickyXorAdapter;
public AutofireConfig(
Config config,
AutofireController autoFireController,
AutoFireStickyXorAdapter stickyXorAdapter)
{
_config = config;
_autoFireController = autoFireController;
_stickyXorAdapter = stickyXorAdapter;
InitializeComponent();
}
private void AutofireConfig_Load(object sender, EventArgs e)
{
if (_config.AutofireOn < OnNumeric.Minimum)
{
OnNumeric.Value = OnNumeric.Minimum;
}
else if (_config.AutofireOn > OnNumeric.Maximum)
{
OnNumeric.Value = OnNumeric.Maximum;
}
else
{
OnNumeric.Value = _config.AutofireOn;
}
if (_config.AutofireOff < OffNumeric.Minimum)
{
OffNumeric.Value = OffNumeric.Minimum;
}
else if (_config.AutofireOff > OffNumeric.Maximum)
{
OffNumeric.Value = OffNumeric.Maximum;
}
else
{
OffNumeric.Value = _config.AutofireOff;
}
LagFrameCheck.Checked = _config.AutofireLagFrames;
}
private void Ok_Click(object sender, EventArgs e)
{
_autoFireController.On = _config.AutofireOn = (int)OnNumeric.Value;
_autoFireController.Off = _config.AutofireOff = (int)OffNumeric.Value;
_config.AutofireLagFrames = LagFrameCheck.Checked;
_stickyXorAdapter.SetOnOffPatternFromConfig();
Close();
}
private void Cancel_Click(object sender, EventArgs e)
{
Close();
}
}
}