private void btnNewOption_Click(object sender, EventArgs e)
{
DialogOption newOption = new DialogOption();
newOption.ID = _dialog.Options.Count + 1;
if (_dialog.Options.Count > 0)
{
// Copy Show & Say settings from previous option
newOption.Say = _dialog.Options[_dialog.Options.Count - 1].Say;
newOption.Show = _dialog.Options[_dialog.Options.Count - 1].Show;
}
else
{
newOption.Say = true;
newOption.Show = true;
}
_dialog.Options.Add(newOption);
DialogOptionEditor newEditor = new DialogOptionEditor(newOption);
_optionPanes.Add(newEditor);
flowLayoutPanel1.Controls.Remove(btnNewOption);
flowLayoutPanel1.Controls.Remove(btnDeleteOption);
flowLayoutPanel1.Controls.Add(newEditor);
flowLayoutPanel1.Controls.Add(btnNewOption);
flowLayoutPanel1.Controls.Add(btnDeleteOption);
newEditor.Focus();
if (_dialog.Options.Count >= Dialog.MAX_OPTIONS_PER_DIALOG)
{
btnNewOption.Visible = false;
}
else
{
btnDeleteOption.Visible = true;
}
SaveData();
// Ensure there is an entry point in the script for this
if (!_dialog.Script.Contains(Environment.NewLine + "@" + newOption.ID))
{
if (!_dialog.Script.EndsWith(Environment.NewLine))
{
_dialog.Script += Environment.NewLine;
}
_dialog.Script += "@" + newOption.ID + Environment.NewLine + "return" + Environment.NewLine;
scintillaEditor.SetText(_dialog.Script);
}
}