Skip to content

Commit 40437ed

Browse files
committed
Fix multiple bugs where translating colors caused colors to stop working
1 parent 7a8f48a commit 40437ed

6 files changed

Lines changed: 30 additions & 23 deletions

File tree

src/TSMapEditor/Models/TriggerCondition.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ namespace TSMapEditor.Models
1010
/// </summary>
1111
public class TriggerCondition : ICloneable
1212
{
13-
public const int DEF_PARAM_COUNT = 2;
14-
public const int MAX_PARAM_COUNT = 4;
13+
public const int DEF_PARAM_COUNT = TriggerEventType.DEF_PARAM_COUNT;
14+
public const int MAX_PARAM_COUNT = TriggerEventType.MAX_PARAM_COUNT;
1515

1616
public TriggerCondition()
1717
{

src/TSMapEditor/UI/UIHelpers.cs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
using Rampastring.XNAUI.Input;
22
using Rampastring.XNAUI.XNAControls;
33
using System.Collections.Generic;
4+
using TSMapEditor.Misc;
5+
using TSMapEditor.Models;
46
using TSMapEditor.UI.Controls;
57

68
namespace TSMapEditor.UI
@@ -51,5 +53,18 @@ public static T GetScrollItem<T>(List<T> list, T current, Cursor cursor, bool al
5153

5254
return current;
5355
}
56+
57+
public static void AddColorOptionsToDropDown(NamedColor[] colors, XNADropDown dropDown)
58+
{
59+
foreach (var supportedColor in colors)
60+
{
61+
dropDown.AddItem(new XNADropDownItem()
62+
{
63+
Text = Translate("NamedColors." + supportedColor.Name, supportedColor.Name),
64+
TextColor = supportedColor.Value,
65+
Tag = supportedColor.Name
66+
});
67+
}
68+
}
5469
}
5570
}

src/TSMapEditor/UI/Windows/PlaceWaypointWindow.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ public override void Initialize()
4545
// Init color dropdown options
4646
ddWaypointColor = FindChild<XNADropDown>(nameof(ddWaypointColor));
4747
ddWaypointColor.AddItem(Translate(this, "None", "None"));
48-
Array.ForEach(Waypoint.SupportedColors, sc => ddWaypointColor.AddItem(Translate("NamedColors." + sc.Name, sc.Name), sc.Value));
48+
UIHelpers.AddColorOptionsToDropDown(Waypoint.SupportedColors, ddWaypointColor);
4949
}
5050

5151
private void BtnPlace_LeftClick(object sender, EventArgs e)
@@ -79,7 +79,7 @@ public bool PlaceWaypoint(int waypointNumber, Point2D cellCoords)
7979
return false;
8080
}
8181

82-
string waypointColor = ddWaypointColor.SelectedItem != null ? ddWaypointColor.SelectedItem.Text : null;
82+
string waypointColor = ddWaypointColor.SelectedItem != null ? (string)ddWaypointColor.SelectedItem.Tag : null;
8383

8484
mutationManager.PerformMutation(new PlaceWaypointMutation(mutationTarget, cellCoords, waypointNumber, waypointColor));
8585
return true;

src/TSMapEditor/UI/Windows/ScriptsWindow.cs

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -245,13 +245,10 @@ public override void Initialize()
245245
btnEditorPresetValues = FindChild<MenuButton>(nameof(btnEditorPresetValues));
246246
btnEditorPresetValuesWindow = FindChild<EditorButton>(nameof(btnEditorPresetValuesWindow));
247247
lblActionDescriptionValue = FindChild<XNALabel>(nameof(lblActionDescriptionValue));
248-
ddScriptColor = FindChild<XNADropDown>(nameof(ddScriptColor));
248+
ddScriptColor = FindChild<XNADropDown>(nameof(ddScriptColor));
249249

250250
ddScriptColor.AddItem(Translate(this, "None", "None"));
251-
Array.ForEach(Script.SupportedColors, supportedColor =>
252-
{
253-
ddScriptColor.AddItem(Translate("NamedColors." + supportedColor.Name, supportedColor.Name), supportedColor.Value);
254-
});
251+
UIHelpers.AddColorOptionsToDropDown(Script.SupportedColors, ddScriptColor);
255252

256253
tbFilter.TextChanged += TbFilter_TextChanged;
257254

@@ -619,7 +616,7 @@ private void DdScriptColor_SelectedIndexChanged(object sender, EventArgs e)
619616
return;
620617
}
621618

622-
editedScript.EditorColor = ddScriptColor.SelectedItem.Text;
619+
editedScript.EditorColor = (string)ddScriptColor.SelectedItem.Tag;
623620
lbScriptTypes.SelectedItem.TextColor = ddScriptColor.SelectedItem.TextColor.Value;
624621
}
625622

@@ -1081,7 +1078,7 @@ private void EditScript(Script script)
10811078
lbActions.AddTaggedItem(new ScriptListBoxItemTag(actionEntry, text, description));
10821079
}
10831080

1084-
ddScriptColor.SelectedIndex = ddScriptColor.Items.FindIndex(item => item.Text == editedScript.EditorColor);
1081+
ddScriptColor.SelectedIndex = ddScriptColor.Items.FindIndex(item => (string)item.Tag == editedScript.EditorColor);
10851082
if (ddScriptColor.SelectedIndex < 0)
10861083
ddScriptColor.SelectedIndex = 0;
10871084

src/TSMapEditor/UI/Windows/TeamTypesWindow.cs

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -113,10 +113,7 @@ public override void Initialize()
113113
ddTeamTypeColor = FindChild<XNADropDown>(nameof(ddTeamTypeColor));
114114

115115
ddTeamTypeColor.AddItem(Translate(this, "HouseColor", "House Color"));
116-
foreach (var supportedColor in TeamType.SupportedColors)
117-
{
118-
ddTeamTypeColor.AddItem(Translate("NamedColors." + supportedColor.Name, supportedColor.Name), supportedColor.Value);
119-
}
116+
UIHelpers.AddColorOptionsToDropDown(TeamType.SupportedColors, ddTeamTypeColor);
120117
ddTeamTypeColor.SelectedIndexChanged += DdTeamTypeColor_SelectedIndexChanged;
121118

122119
tbFilter.TextChanged += TbFilter_TextChanged;
@@ -675,7 +672,7 @@ private void EditTeamType(TeamType teamType)
675672
tbMax.Value = editedTeamType.Max;
676673
tbTechLevel.Value = editedTeamType.TechLevel;
677674

678-
ddTeamTypeColor.SelectedIndex = ddTeamTypeColor.Items.FindIndex(item => item.Text == editedTeamType.EditorColor);
675+
ddTeamTypeColor.SelectedIndex = ddTeamTypeColor.Items.FindIndex(item => (string)item.Tag == editedTeamType.EditorColor);
679676
if (ddTeamTypeColor.SelectedIndex == -1)
680677
ddTeamTypeColor.SelectedIndex = 0;
681678

@@ -743,7 +740,7 @@ private void TbTransportWaypoint_TextChanged(object sender, EventArgs e)
743740

744741
private void DdTeamTypeColor_SelectedIndexChanged(object sender, EventArgs e)
745742
{
746-
editedTeamType.EditorColor = ddTeamTypeColor.SelectedIndex < 1 ? null : ddTeamTypeColor.SelectedItem.Text;
743+
editedTeamType.EditorColor = ddTeamTypeColor.SelectedIndex < 1 ? null : (string)ddTeamTypeColor.SelectedItem.Tag;
747744
lbTeamTypes.SelectedItem.TextColor = editedTeamType.GetXNAColor();
748745
}
749746

src/TSMapEditor/UI/Windows/TriggersWindow.cs

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -158,10 +158,7 @@ public override void Initialize()
158158
// Init color dropdown options
159159
ddTriggerColor = FindChild<XNADropDown>(nameof(ddTriggerColor));
160160
ddTriggerColor.AddItem(Translate(this, "Color.None", "None"));
161-
Array.ForEach(Trigger.SupportedColors, sc =>
162-
{
163-
ddTriggerColor.AddItem(Translate("NamedColors." + sc.Name, sc.Name), sc.Value);
164-
});
161+
UIHelpers.AddColorOptionsToDropDown(Trigger.SupportedColors, ddTriggerColor);
165162

166163
lbEvents = FindChild<EditorListBox>(nameof(lbEvents));
167164
selEventType = FindChild<EditorPopUpSelector>(nameof(selEventType));
@@ -1923,6 +1920,7 @@ private void EventWindowDarkeningPanel_Hidden(object sender, EventArgs e)
19231920
{
19241921
var condition = new TriggerCondition(triggerEventType);
19251922
editedTrigger.Conditions.Add(condition);
1923+
SetTriggerEventHardcodedParameters(condition);
19261924
EditTrigger(editedTrigger);
19271925
lbEvents.SelectedIndex = lbEvents.Items.Count - 1;
19281926

@@ -2348,7 +2346,7 @@ private void EditTrigger(Trigger trigger)
23482346
chkEasy.Checked = editedTrigger.Easy;
23492347
chkMedium.Checked = editedTrigger.Normal;
23502348
chkHard.Checked = editedTrigger.Hard;
2351-
ddTriggerColor.SelectedIndex = ddTriggerColor.Items.FindIndex(item => item.Text == editedTrigger.EditorColor);
2349+
ddTriggerColor.SelectedIndex = ddTriggerColor.Items.FindIndex(item => (string)item.Tag == editedTrigger.EditorColor);
23522350
if (ddTriggerColor.SelectedIndex < 0)
23532351
ddTriggerColor.SelectedIndex = 0;
23542352

@@ -2407,7 +2405,7 @@ private void DdTriggerColor_SelectedIndexChanged(object sender, EventArgs e)
24072405
return;
24082406
}
24092407

2410-
editedTrigger.EditorColor = ddTriggerColor.SelectedItem.Text;
2408+
editedTrigger.EditorColor = (string)ddTriggerColor.SelectedItem.Tag;
24112409
lbTriggers.SelectedItem.TextColor = ddTriggerColor.SelectedItem.TextColor.Value;
24122410
}
24132411

0 commit comments

Comments
 (0)