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 < nudPatternOn.Minimum)
{
nudPatternOn.Value = nudPatternOn.Minimum;
}
else if (_config.AutofireOn > nudPatternOn.Maximum)
{
nudPatternOn.Value = nudPatternOn.Maximum;
}
else
{
nudPatternOn.Value = _config.AutofireOn;
}
if (_config.AutofireOff < nudPatternOff.Minimum)
{
nudPatternOff.Value = nudPatternOff.Minimum;
}
else if (_config.AutofireOff > nudPatternOff.Maximum)
{
nudPatternOff.Value = nudPatternOff.Maximum;
}
else
{
nudPatternOff.Value = _config.AutofireOff;
}
cbConsiderLag.Checked = _config.AutofireLagFrames;
}
private void btnDialogOK_Click(object sender, EventArgs e)
{
_autoFireController.On = _config.AutofireOn = (int)nudPatternOn.Value;
_autoFireController.Off = _config.AutofireOff = (int)nudPatternOff.Value;
_config.AutofireLagFrames = cbConsiderLag.Checked;
_stickyXorAdapter.SetOnOffPatternFromConfig();
Close();
}
private void btnDialogCancel_Click(object sender, EventArgs e)
{
Close();
}
}
}