ATC Dimetronic: Allow custom speed codes

This commit is contained in:
Marc Riera 2024-12-22 01:25:28 +01:00
parent e962d851b2
commit 77869e9c1e
3 changed files with 169 additions and 57 deletions

View file

@ -1,4 +1,6 @@
using System;
using System.Globalization;
using System.Collections.Generic;
using OpenBveApi.Runtime;
namespace OpenbveFcmbTrainPlugin
@ -32,6 +34,7 @@ namespace OpenbveFcmbTrainPlugin
internal Speed AtcDimetronicYardSpeedLimit = new Speed(25 / 3.6);
internal bool AtcDimetronicAtoAvailable;
internal List<AtcDimetronic.SignalCode> AtcDimetronicSignalCodes = new List<AtcDimetronic.SignalCode>();
}
/// <summary>Represents the plugin settings.</summary>
@ -207,6 +210,18 @@ namespace OpenbveFcmbTrainPlugin
case "atoavailable":
PluginSettings.AtcDimetronicAtoAvailable = string.Compare(Value, "false", StringComparison.OrdinalIgnoreCase) != 0;
break;
default:
int aspect;
if (int.TryParse(Key, NumberStyles.Integer, CultureInfo.InvariantCulture, out aspect))
{
AtcDimetronic.SignalCode signalCode = new AtcDimetronic.SignalCode(aspect, Value);
if (signalCode != null)
{
PluginSettings.AtcDimetronicSignalCodes.Add(signalCode);
break;
}
}
break;
}
break;
}