Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Speed Limits tool full rewrite/refactor; Render overlay refactor #991

Draft
wants to merge 27 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
2924999
WIP Speed Limits tool
kvakvs May 4, 2020
72c9228
Work on Speed Limits GUI - WIP
kvakvs Jun 26, 2020
5cbf42a
WIP build form and rename namespaces for U controls
kvakvs Jun 28, 2020
b53b2c2
Minor renaming/formatting + Filling up the speed palette
kvakvs Jun 28, 2020
0de76d4
WIP speed limits window
kvakvs Jun 29, 2020
0282ffd
Minor U refactoring; Speedlimits palette recreated WIP
kvakvs Jul 11, 2020
d00fffe
WIP Atlas creation new function signatures and types
kvakvs Jul 13, 2020
405fb51
Finished porting overlay code for speed limits. Still using IMGUI cal…
kvakvs Jul 21, 2020
53c8da2
Overlays now split into GUI and nonGUI overlay calls for current tool…
kvakvs Jul 29, 2020
e04cad7
WIP
kvakvs Aug 8, 2020
7bbbabb
Rendering speedlimits overlay refactored. Rendering overlay funcs mov…
kvakvs Aug 9, 2020
4593c8f
Grid handling in overlay rendering now has its own mini-class
kvakvs Aug 9, 2020
3fa43ec
Grid rendering code moved inside Highlight.Grid inner class
kvakvs Aug 10, 2020
8a26cf3
Refactor Get/SetSpeedLimit control values to not be `float?`
kvakvs Aug 10, 2020
5bc5c22
Alt shows defaults/overrides as small icon on segments WIP + new defa…
kvakvs Aug 17, 2020
804e762
Updated Kmh and RoadDefaults; Rendering overlay now works for speed l…
kvakvs Aug 17, 2020
cb20131
Texture loading with mipmaps; Skinned buttons in SpeedLimits
kvakvs Aug 17, 2020
26e9534
Fixed clicking for editing override speed limits
kvakvs Aug 18, 2020
cfa2c1f
WIP
kvakvs Aug 23, 2020
6eca49d
Moved overlays for speedlimits into Overlay/ subdir; Color controller…
kvakvs Aug 29, 2020
cc8c90d
new U.AtlasBuilder for button atlases
kvakvs Sep 3, 2020
06771c7
Merge remote-tracking branch 'tmpe/master' into u-speedlimits-tool
kvakvs Sep 3, 2020
fbb87e0
Signs fade with distance; OSD for speed limits
kvakvs Sep 6, 2020
f6a2a48
Larger buttons; Active speed button is colorized blue; Clicking Mph/K…
kvakvs Sep 6, 2020
eb59e3f
Moving speed limits window saves/restores position; Street highlighte…
kvakvs Sep 6, 2020
ffb6576
Fixed broken signs for vehicle restrictions
kvakvs Sep 20, 2020
14711de
Removed legacy modules; Fixed overlay icon sizes; Fixed button toggli…
kvakvs Sep 20, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
4 changes: 2 additions & 2 deletions TLM/.editorconfig
Expand Up @@ -35,11 +35,11 @@ resharper_add_imports_to_deepest_scope=true
resharper_align_linq_query=true
resharper_align_multiline_argument=true
resharper_align_multiline_calls_chain=true
resharper_align_multiline_expression=true
resharper_align_multiline_expression=false
resharper_align_multiline_extends_list=true
resharper_align_multiline_for_stmt=true
resharper_align_multiline_parameter=true
resharper_align_multiple_declaration=true
resharper_align_multiple_declaration=false
resharper_align_multline_type_parameter_constrains=true
resharper_align_multline_type_parameter_list=true
resharper_autodetect_indent_settings=true
Expand Down
2 changes: 1 addition & 1 deletion TLM/CSUtil.CameraControl
2 changes: 1 addition & 1 deletion TLM/OptionsFramework
17 changes: 6 additions & 11 deletions TLM/TLM/Constants.cs
Expand Up @@ -15,17 +15,6 @@ public static class Constants {
/// </summary>
public static readonly bool[] ALL_BOOL = { false, true };

/// <summary>
/// Conversion rate from km/h to game speed (also exists in TrafficManager.API.Constants)
/// </summary>
public const float SPEED_TO_KMPH = 50.0f; // 1.0f equals 50 km/h

/// <summary>
/// Conversion rate from MPH to game speed (also exists in TrafficManager.API.Constants)
/// </summary>
[UsedImplicitly]
public const float SPEED_TO_MPH = 32.06f; // 50 km/h converted to mph

public static float ByteToFloat(byte b) {
return b * BYTE_TO_FLOAT_SCALE;
}
Expand All @@ -41,5 +30,11 @@ public static class Constants {
}

public static IManagerFactory ManagerFactory => Manager.Impl.ManagerFactory.Instance;

/// <summary>Size for clickable signs used in overlays. Larger than readonly signs.</summary>
public const float OVERLAY_INTERACTIVE_SIGN_SIZE = 6.0f;

/// <summary>Size for readonly signs used in overlays.</summary>
public const float OVERLAY_READONLY_SIGN_SIZE = 3.8f;
}
}
2 changes: 1 addition & 1 deletion TLM/TLM/Custom/PathFinding/CustomPathFind.cs
Expand Up @@ -147,7 +147,7 @@ private struct BufferItem {
}

// stock fields
public ThreadProfiler m_pathfindProfiler;
// public ThreadProfiler m_pathfindProfiler;
private object bufferLock_;
private int bufferMinPos_;
private int bufferMaxPos_;
Expand Down
4 changes: 2 additions & 2 deletions TLM/TLM/Manager/Impl/OptionsManager.cs
Expand Up @@ -232,7 +232,7 @@ public class OptionsManager

index = LoadBool(index, OptionsMassEditTab.PriorityRoad_CrossMainR);
index = LoadBool(index, OptionsMassEditTab.PriorityRoad_AllowLeftTurns);
index = LoadBool(index, OptionsMassEditTab.PriorityRoad_EnterBlockedYeild);
index = LoadBool(index, OptionsMassEditTab.PriorityRoad_EnterBlockedYield);
index = LoadBool(index, OptionsMassEditTab.PriorityRoad_StopAtEntry);

index = LoadBool(index, OptionsMassEditTab.RoundAboutQuickFix_KeepClearYieldR);
Expand Down Expand Up @@ -297,7 +297,7 @@ public class OptionsManager

(byte)(OptionsMassEditTab.PriorityRoad_CrossMainR.Save()),
(byte)(OptionsMassEditTab.PriorityRoad_AllowLeftTurns.Save()),
(byte)(OptionsMassEditTab.PriorityRoad_EnterBlockedYeild.Save()),
(byte)(OptionsMassEditTab.PriorityRoad_EnterBlockedYield.Save()),
(byte)(OptionsMassEditTab.PriorityRoad_StopAtEntry.Save()),

(byte)(OptionsMassEditTab.RoundAboutQuickFix_KeepClearYieldR.Save()),
Expand Down
467 changes: 238 additions & 229 deletions TLM/TLM/Manager/Impl/SpeedLimitManager.cs

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion TLM/TLM/RedirectionFramework
Binary file removed TLM/TLM/Resources/MainMenu/LegacyButtons.png
Binary file not shown.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified TLM/TLM/Resources/SpeedLimits/Kmh/0.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified TLM/TLM/Resources/SpeedLimits/Kmh/10.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified TLM/TLM/Resources/SpeedLimits/Kmh/100.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified TLM/TLM/Resources/SpeedLimits/Kmh/105.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified TLM/TLM/Resources/SpeedLimits/Kmh/110.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified TLM/TLM/Resources/SpeedLimits/Kmh/115.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified TLM/TLM/Resources/SpeedLimits/Kmh/120.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified TLM/TLM/Resources/SpeedLimits/Kmh/125.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified TLM/TLM/Resources/SpeedLimits/Kmh/130.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified TLM/TLM/Resources/SpeedLimits/Kmh/135.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified TLM/TLM/Resources/SpeedLimits/Kmh/140.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified TLM/TLM/Resources/SpeedLimits/Kmh/15.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified TLM/TLM/Resources/SpeedLimits/Kmh/20.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified TLM/TLM/Resources/SpeedLimits/Kmh/25.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified TLM/TLM/Resources/SpeedLimits/Kmh/30.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified TLM/TLM/Resources/SpeedLimits/Kmh/35.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified TLM/TLM/Resources/SpeedLimits/Kmh/40.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified TLM/TLM/Resources/SpeedLimits/Kmh/45.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified TLM/TLM/Resources/SpeedLimits/Kmh/5.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified TLM/TLM/Resources/SpeedLimits/Kmh/50.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified TLM/TLM/Resources/SpeedLimits/Kmh/55.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified TLM/TLM/Resources/SpeedLimits/Kmh/60.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified TLM/TLM/Resources/SpeedLimits/Kmh/65.png
Binary file modified TLM/TLM/Resources/SpeedLimits/Kmh/70.png
Binary file modified TLM/TLM/Resources/SpeedLimits/Kmh/75.png
Binary file modified TLM/TLM/Resources/SpeedLimits/Kmh/80.png
Binary file modified TLM/TLM/Resources/SpeedLimits/Kmh/85.png
Binary file modified TLM/TLM/Resources/SpeedLimits/Kmh/90.png
Binary file modified TLM/TLM/Resources/SpeedLimits/Kmh/95.png
2,923 changes: 2,923 additions & 0 deletions TLM/TLM/Resources/SpeedLimits/Kmh/roadsigns-km-german.svg

Large diffs are not rendered by default.

Binary file added TLM/TLM/Resources/SpeedLimits/RoadDefaults/0.png
Binary file added TLM/TLM/Resources/SpeedLimits/RoadDefaults/10.png
Binary file added TLM/TLM/Resources/SpeedLimits/RoadDefaults/15.png
Binary file added TLM/TLM/Resources/SpeedLimits/RoadDefaults/20.png
Binary file added TLM/TLM/Resources/SpeedLimits/RoadDefaults/25.png
Binary file added TLM/TLM/Resources/SpeedLimits/RoadDefaults/30.png
Binary file added TLM/TLM/Resources/SpeedLimits/RoadDefaults/35.png
Binary file added TLM/TLM/Resources/SpeedLimits/RoadDefaults/40.png
Binary file added TLM/TLM/Resources/SpeedLimits/RoadDefaults/45.png
Binary file added TLM/TLM/Resources/SpeedLimits/RoadDefaults/50.png
Binary file added TLM/TLM/Resources/SpeedLimits/RoadDefaults/55.png
Binary file added TLM/TLM/Resources/SpeedLimits/RoadDefaults/65.png
Binary file added TLM/TLM/Resources/SpeedLimits/RoadDefaults/70.png
Binary file added TLM/TLM/Resources/SpeedLimits/RoadDefaults/75.png
Binary file added TLM/TLM/Resources/SpeedLimits/RoadDefaults/80.png
Binary file added TLM/TLM/Resources/SpeedLimits/RoadDefaults/85.png
Binary file added TLM/TLM/Resources/SpeedLimits/RoadDefaults/95.png
1,181 changes: 1,181 additions & 0 deletions TLM/TLM/Resources/SpeedLimits/RoadDefaults/roadsigns-default.svg

Large diffs are not rendered by default.

Binary file added TLM/TLM/Resources/SpeedLimits/kmh_2.png
Binary file added TLM/TLM/Resources/SpeedLimits/mph_2.png
Binary file added TLM/TLM/Resources/SpeedLimits/standard.png
10 changes: 6 additions & 4 deletions TLM/TLM/State/ConfigData/Main.cs
Expand Up @@ -14,13 +14,15 @@ public class Main {
public int MainMenuButtonY = 10;
public bool MainMenuButtonPosLocked = false;

/// <summary>
/// Main menu position
/// </summary>
/// <summary>Main menu position.</summary>
public int MainMenuX = MainMenuWindow.DEFAULT_MENU_X;
public int MainMenuY = MainMenuWindow.DEFAULT_MENU_Y;
public bool MainMenuPosLocked = false;

/// <summary>Speed Limits tool window position.</summary>
public int SpeedLimitsWindowX = 0;
public int SpeedLimitsWindowY = 0;

/// <summary>
/// Already displayed tutorial messages
/// </summary>
Expand Down Expand Up @@ -74,7 +76,7 @@ public class Main {
/// <summary>
/// Selected theme for road signs when MPH is active.
/// </summary>
public MphSignStyle MphRoadSignStyle = MphSignStyle.SquareUS;
public SpeedLimitSignTheme MphRoadSignStyle = SpeedLimitSignTheme.RectangularUS;

public void AddDisplayedTutorialMessage(string messageKey) {
HashSet<string> newMessages = DisplayedTutorialMessages != null
Expand Down
80 changes: 47 additions & 33 deletions TLM/TLM/State/Flags.cs
Expand Up @@ -7,6 +7,7 @@ namespace TrafficManager.State {
using System.Collections.Generic;
using System.Threading;
using System;
using TrafficManager.API.Traffic.Data;
using TrafficManager.API.Traffic.Enums;
using TrafficManager.Manager.Impl;
using TrafficManager.State.ConfigData;
Expand Down Expand Up @@ -485,7 +486,7 @@ public class Flags {
(NetSegment.Flags.Created | NetSegment.Flags.Deleted)) == NetSegment.Flags.Created;
}

public static void SetLaneSpeedLimit(uint laneId, float? speedLimit) {
public static void SetLaneSpeedLimit(uint laneId, SetSpeedLimitAction action) {
if (!CheckLane(laneId)) {
return;
}
Expand All @@ -497,7 +498,7 @@ public class Flags {

while (laneIndex < segmentInfo.m_lanes.Length && curLaneId != 0u) {
if (curLaneId == laneId) {
SetLaneSpeedLimit(segmentId, laneIndex, laneId, speedLimit);
SetLaneSpeedLimit(segmentId, laneIndex, laneId, action);
return;
}

Expand All @@ -507,28 +508,32 @@ public class Flags {
}

public static void RemoveLaneSpeedLimit(uint laneId) {
SetLaneSpeedLimit(laneId, null);
SetLaneSpeedLimit(laneId, SetSpeedLimitAction.Default());
}

public static void SetLaneSpeedLimit(ushort segmentId,
uint laneIndex,
uint laneId,
float? speedLimit) {
SetSpeedLimitAction action) {
if (segmentId <= 0 || laneId <= 0) {
return;
}

if ((Singleton<NetManager>.instance.m_segments.m_buffer[segmentId].m_flags &
NetSegment[] segmentsBuffer = Singleton<NetManager>.instance.m_segments.m_buffer;

if ((segmentsBuffer[segmentId].m_flags &
(NetSegment.Flags.Created | NetSegment.Flags.Deleted)) != NetSegment.Flags.Created) {
return;
}

if (((NetLane.Flags)Singleton<NetManager>.instance.m_lanes.m_buffer[laneId].m_flags &
NetLane[] lanesBuffer = Singleton<NetManager>.instance.m_lanes.m_buffer;

if (((NetLane.Flags)lanesBuffer[laneId].m_flags &
(NetLane.Flags.Created | NetLane.Flags.Deleted)) != NetLane.Flags.Created) {
return;
}

NetInfo segmentInfo = Singleton<NetManager>.instance.m_segments.m_buffer[segmentId].Info;
NetInfo segmentInfo = segmentsBuffer[segmentId].Info;

if (laneIndex >= segmentInfo.m_lanes.Length) {
return;
Expand All @@ -541,33 +546,41 @@ public class Flags {
$"Flags.setLaneSpeedLimit: setting speed limit of lane index {laneIndex} @ seg. " +
$"{segmentId} to {speedLimit}");
#endif
if (speedLimit == null) {
laneSpeedLimit.Remove(laneId);
switch (action.Type) {
case SetSpeedLimitAction.ValueType.Default: {
laneSpeedLimit.Remove(laneId);

if (laneSpeedLimitArray[segmentId] == null) {
return;
}
if (laneSpeedLimitArray[segmentId] == null) {
return;
}

if (laneIndex >= laneSpeedLimitArray[segmentId].Length) {
return;
}
if (laneIndex >= laneSpeedLimitArray[segmentId].Length) {
return;
}

laneSpeedLimitArray[segmentId][laneIndex] = null;
} else {
laneSpeedLimit[laneId] = speedLimit.Value;

// save speed limit into the fast-access array.
// (1) ensure that the array is defined and large enough
if (laneSpeedLimitArray[segmentId] == null) {
laneSpeedLimitArray[segmentId] = new float?[segmentInfo.m_lanes.Length];
} else if (laneSpeedLimitArray[segmentId].Length < segmentInfo.m_lanes.Length) {
float?[] oldArray = laneSpeedLimitArray[segmentId];
laneSpeedLimitArray[segmentId] = new float?[segmentInfo.m_lanes.Length];
Array.Copy(oldArray, laneSpeedLimitArray[segmentId], oldArray.Length);
laneSpeedLimitArray[segmentId][laneIndex] = null;
break;
}
case SetSpeedLimitAction.ValueType.Unlimited:
case SetSpeedLimitAction.ValueType.SetSpeed: {
laneSpeedLimit[laneId] = action.Value.GetKmph();

// save speed limit into the fast-access array.
// (1) ensure that the array is defined and large enough
if (laneSpeedLimitArray[segmentId] == null) {
laneSpeedLimitArray[segmentId] = new float?[segmentInfo.m_lanes.Length];
} else if (laneSpeedLimitArray[segmentId].Length < segmentInfo.m_lanes.Length) {
float?[] oldArray = laneSpeedLimitArray[segmentId];
laneSpeedLimitArray[segmentId] = new float?[segmentInfo.m_lanes.Length];
Array.Copy(sourceArray: oldArray,
destinationArray: laneSpeedLimitArray[segmentId],
length: oldArray.Length);
}

// (2) insert the custom speed limit
laneSpeedLimitArray[segmentId][laneIndex] = action.Value.GetKmph();
break;
}

// (2) insert the custom speed limit
laneSpeedLimitArray[segmentId][laneIndex] = speedLimit;
}
}
finally {
Expand Down Expand Up @@ -862,15 +875,16 @@ public class Flags {
return false;
}

public static float? GetLaneSpeedLimit(uint laneId) {
public static SpeedValue? GetLaneSpeedLimit(uint laneId) {
try {
Monitor.Enter(laneSpeedLimitLock);

if (laneId <= 0 || !laneSpeedLimit.TryGetValue(laneId, out float speedLimit)) {
if (laneId <= 0 || !laneSpeedLimit.TryGetValue(laneId, out float kmphOverride)) {
return null;
}

return speedLimit;
// assumption: speed limit is stored in km/h
return SpeedValue.FromKmph(kmphOverride);
}
finally {
Monitor.Exit(laneSpeedLimitLock);
Expand Down
44 changes: 44 additions & 0 deletions TLM/TLM/State/GetSpeedLimitResult.cs
@@ -0,0 +1,44 @@
namespace TrafficManager {
using System.Runtime.CompilerServices;
using TrafficManager.API.Traffic.Data;

public struct GetSpeedLimitResult {
public enum ResultType {
/// <summary>The speed limit had an override.</summary>
OverrideExists,

/// <summary>There was no override possible.</summary>
NotAvailable,
}

public ResultType Type;

/// <summary>Valid only if Type=='Value'.</summary>
public SpeedValue? OverrideValue;

public SpeedValue DefaultValue;

/// <summary>
/// Initializes a new instance of the <see cref="GetSpeedLimitResult"/> struct
/// from maybe an override value (nullable SpeedValue) and a
/// default speedlimit value for that lane type.
/// </summary>
/// <param name="value">Nullable override value.</param>
/// <param name="defaultValue">Default speed value.</param>
public GetSpeedLimitResult(SpeedValue? value, SpeedValue defaultValue) {
Type = ResultType.OverrideExists;
OverrideValue = value;
DefaultValue = defaultValue;
}

/// <summary>
/// Initializes a new instance of the <see cref="GetSpeedLimitResult"/> struct
/// as error state (no override possible).
/// </summary>
public GetSpeedLimitResult(ResultType _ignored) {
Type = ResultType.NotAvailable;
OverrideValue = null;
DefaultValue = new SpeedValue(0f);
}
}
}
6 changes: 3 additions & 3 deletions TLM/TLM/State/OptionsTabs/OptionsGeneralTab.cs
Expand Up @@ -306,13 +306,13 @@ public static class OptionsGeneralTab {
}

// The UI order is: US, UK, German
var newStyle = MphSignStyle.RoundGerman;
var newStyle = SpeedLimitSignTheme.RoundGerman;
switch (newRoadSignStyle) {
case 1:
newStyle = MphSignStyle.RoundUK;
newStyle = SpeedLimitSignTheme.RoundUK;
break;
case 0:
newStyle = MphSignStyle.SquareUS;
newStyle = SpeedLimitSignTheme.RectangularUS;
break;
}

Expand Down
4 changes: 2 additions & 2 deletions TLM/TLM/State/OptionsTabs/OptionsMassEditTab.cs
Expand Up @@ -72,7 +72,7 @@ public static class OptionsMassEditTab {
Tooltip = "Priority roads.Tooltip:Allow far turns",
};

public static CheckboxOption PriorityRoad_EnterBlockedYeild =
public static CheckboxOption PriorityRoad_EnterBlockedYield =
new CheckboxOption("PriorityRoad_EnterBlockedYeild") {
Label = "Priority roads.Option:Enter blocked yield road",
};
Expand Down Expand Up @@ -106,7 +106,7 @@ public static void MakeSettings_MassEdit(ExtUITabstrip tabStrip, int tabIndex)
UIHelperBase priorityRoadGroup = panelHelper.AddGroup(T("MassEdit.Group.Priority roads"));
PriorityRoad_CrossMainR.AddUI(priorityRoadGroup);
PriorityRoad_AllowLeftTurns.AddUI(priorityRoadGroup);
PriorityRoad_EnterBlockedYeild.AddUI(priorityRoadGroup);
PriorityRoad_EnterBlockedYield.AddUI(priorityRoadGroup);
PriorityRoad_StopAtEntry.AddUI(priorityRoadGroup);
}

Expand Down