Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ $CC13=ddSide:XNADropDown
$CC14=lblSide:XNALabel
$CC15=ddHouseType:XNADropDown
$CC16=lblHouse:XNALabel
$CC17=chkEnabled:XNACheckBox
$CCline1=panelLine1:XNAPanel
$CCc1=lblConditionHeader:XNALabel
$CCc2=ddConditionType:XNADropDown
Expand Down Expand Up @@ -157,9 +158,14 @@ $X=getRight(ddSide) + (HORIZONTAL_SPACING * 2)
$Y=getY(lblSide)
$Text=translate(House:)

[chkEnabled]
$X=getX(lblName)
$Y=getBottom(ddSide) + VERTICAL_SPACING
$Text=translate(Enabled)

[panelLine1]
$X=getX(lblSelectedAITrigger)
$Y=getBottom(ddHouseType) + (VERTICAL_SPACING * 3)
$Y=getBottom(chkEnabled) + (VERTICAL_SPACING * 3)
$Width=getWidth(AITriggersWindow) - getX(panelLine1) - EMPTY_SPACE_SIDES
$Height=0

Expand Down
17 changes: 17 additions & 0 deletions src/TSMapEditor/Initialization/MapLoader.cs
Original file line number Diff line number Diff line change
Expand Up @@ -1099,6 +1099,23 @@ public static void ReadAITriggerTypes(IMap map, IniFile mapIni)
}

Logger.Log("AITriggerTypes read successfully.");

section = mapIni.GetSection("AITriggerTypesEnable");
if (section == null)
return;

foreach (var kvp in section.Keys)
{
string aiTriggerININame = kvp.Key;

var aiTrigger = map.AITriggerTypes.Find(aiTriggerType => aiTriggerType.ININame == aiTriggerININame);
if (aiTrigger == null)
continue;

aiTrigger.Enabled = Conversions.BooleanFromString(kvp.Value, true);
}

Logger.Log("AITriggerTypesEnable read successfully.");
}

public static void ReadHouseTypes(IMap map, IniFile mapIni)
Expand Down
8 changes: 3 additions & 5 deletions src/TSMapEditor/Initialization/MapWriter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -371,12 +371,10 @@ public static void WriteAITriggerTypes(List<AITriggerType> aiTriggerTypes, IniFi
iniFile.AddSection(enablesSection);
}

// Enable local AI triggers that haven't been enabled or disabled
// by the user yet
// Enable or disable local AI triggers
for (int i = 0; i < aiTriggerTypes.Count; i++)
{
if (!enablesSection.KeyExists(aiTriggerTypes[i].ININame))
enablesSection.SetStringValue(aiTriggerTypes[i].ININame, "yes");
{
enablesSection.SetBooleanValue(aiTriggerTypes[i].ININame, aiTriggerTypes[i].Enabled, BooleanStringStyle.YESNO_LOWERCASE);
}
}

Expand Down
1 change: 1 addition & 0 deletions src/TSMapEditor/Models/AITriggerType.cs
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,7 @@ public AITriggerType(string iniName)
public bool Easy { get; set; } = true;
public bool Medium { get; set; } = true;
public bool Hard { get; set; } = true;
public bool Enabled { get; set; } = false;

public AITriggerType Clone(string newUniqueId)
{
Expand Down
11 changes: 11 additions & 0 deletions src/TSMapEditor/UI/Windows/AITriggersWindow.cs
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ public AITriggersWindow(WindowManager windowManager, Map map) : base(windowManag
private EditorTextBox tbName;
private XNADropDown ddSide;
private XNADropDown ddHouseType;
private XNACheckBox chkEnabled;
private XNADropDown ddConditionType;
private XNADropDown ddComparator;
private EditorNumberTextBox tbQuantity;
Expand Down Expand Up @@ -86,6 +87,7 @@ public override void Initialize()
tbName = FindChild<EditorTextBox>(nameof(tbName));
ddSide = FindChild<XNADropDown>(nameof(ddSide));
ddHouseType = FindChild<XNADropDown>(nameof(ddHouseType));
chkEnabled = FindChild<XNACheckBox>(nameof(chkEnabled));
ddConditionType = FindChild<XNADropDown>(nameof(ddConditionType));
ddComparator = FindChild<XNADropDown>(nameof(ddComparator));
tbQuantity = FindChild<EditorNumberTextBox>(nameof(tbQuantity));
Expand Down Expand Up @@ -358,6 +360,7 @@ private void EditAITrigger(AITriggerType aiTriggerType)
tbName.TextChanged -= TbName_TextChanged;
ddSide.SelectedIndexChanged -= DdSide_SelectedIndexChanged;
ddHouseType.SelectedIndexChanged -= DdHouse_SelectedIndexChanged;
chkEnabled.CheckedChanged -= chkEnabled_CheckedChanged;
ddConditionType.SelectedIndexChanged -= DdConditionType_SelectedIndexChanged;
ddComparator.SelectedIndexChanged -= DdComparator_SelectedIndexChanged;
tbQuantity.TextChanged -= TbQuantity_TextChanged;
Expand All @@ -378,6 +381,7 @@ private void EditAITrigger(AITriggerType aiTriggerType)
tbName.Text = string.Empty;
ddSide.SelectedIndex = -1;
ddHouseType.SelectedIndex = -1;
chkEnabled.Checked = false;
ddConditionType.SelectedIndex = -1;
ddComparator.SelectedIndex = -1;
tbQuantity.Text = string.Empty;
Expand All @@ -399,6 +403,7 @@ private void EditAITrigger(AITriggerType aiTriggerType)
tbName.Text = editedAITrigger.Name;
ddSide.SelectedIndex = editedAITrigger.Side < ddSide.Items.Count ? editedAITrigger.Side : 0;
ddHouseType.SelectedIndex = ddHouseType.Items.FindIndex(ddi => ddi.Text == editedAITrigger.OwnerName);
chkEnabled.Checked = editedAITrigger.Enabled;
ddConditionType.SelectedIndex = ((int)aiTriggerType.ConditionType + 1);
ddComparator.SelectedIndex = (int)aiTriggerType.Comparator.ComparatorOperator;
tbQuantity.Value = aiTriggerType.Comparator.Quantity;
Expand All @@ -418,6 +423,7 @@ private void EditAITrigger(AITriggerType aiTriggerType)
tbName.TextChanged += TbName_TextChanged;
ddSide.SelectedIndexChanged += DdSide_SelectedIndexChanged;
ddHouseType.SelectedIndexChanged += DdHouse_SelectedIndexChanged;
chkEnabled.CheckedChanged += chkEnabled_CheckedChanged;
ddConditionType.SelectedIndexChanged += DdConditionType_SelectedIndexChanged;
ddComparator.SelectedIndexChanged += DdComparator_SelectedIndexChanged;
tbQuantity.TextChanged += TbQuantity_TextChanged;
Expand Down Expand Up @@ -514,6 +520,11 @@ private void ChkEnabledOnHard_CheckedChanged(object sender, EventArgs e)
editedAITrigger.Hard = chkEnabledOnHard.Checked;
}

private void chkEnabled_CheckedChanged(object sender, EventArgs e)
{
editedAITrigger.Enabled = chkEnabled.Checked;
}

public void Open()
{
ListAITriggers();
Expand Down
Loading