Skip to content

Commit e199aa1

Browse files
Merge branch 'openrails:master' into master
2 parents d819ff9 + 4903ade commit e199aa1

File tree

111 files changed

+1900
-26235
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

111 files changed

+1900
-26235
lines changed

.config/dotnet-tools.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{
2+
"version": 1,
3+
"isRoot": true,
4+
"tools": {
5+
"dotnet-mgfxc": {
6+
"version": "3.8.0.1641",
7+
"commands": [
8+
"mgfxc"
9+
]
10+
}
11+
}
12+
}

.gitattributes

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -35,16 +35,6 @@
3535
*.svg text
3636
*.eps binary
3737

38-
39-
# https://github.com/Danimoth/gitattributes/blob/master/VisualStudio.gitattributes
40-
# Custom for Visual Studio
41-
*.sln text eol=crlf merge=union
42-
*.csproj merge=union
43-
*.vbproj merge=union
44-
*.fsproj merge=union
45-
*.dbproj merge=union
46-
47-
4838
# https://github.com/Danimoth/gitattributes/blob/master/CSharp.gitattributes
4939
# Custom for C#
5040
*.cs diff=csharp

Source/.editorconfig

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
# To learn more about .editorconfig see https://aka.ms/editorconfigdocs
2+
# BEGIN COPY FROM https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/code-style-rule-options#example-editorconfig-file
23
###############################
34
# Core EditorConfig Options #
45
###############################
6+
root = true
57
# All files
68
[*]
79
indent_style = space
@@ -58,7 +60,7 @@ dotnet_style_prefer_conditional_expression_over_return = true:silent
5860
###############################
5961
# Style Definitions
6062
dotnet_naming_style.pascal_case_style.capitalization = pascal_case
61-
# Use PascalCase for constant fields
63+
# Use PascalCase for constant fields
6264
dotnet_naming_rule.constant_fields_should_be_pascal_case.severity = suggestion
6365
dotnet_naming_rule.constant_fields_should_be_pascal_case.symbols = constant_fields
6466
dotnet_naming_rule.constant_fields_should_be_pascal_case.style = pascal_case_style
@@ -92,7 +94,7 @@ csharp_preferred_modifier_order = public,private,protected,internal,static,exter
9294
csharp_prefer_braces = true:silent
9395
csharp_style_deconstructed_variable_declaration = true:suggestion
9496
csharp_prefer_simple_default_expression = true:suggestion
95-
csharp_style_pattern_local_over_anonymous_function = true:suggestion
97+
csharp_style_prefer_local_over_anonymous_function = true:suggestion
9698
csharp_style_inlined_variable_declaration = true:suggestion
9799
###############################
98100
# C# Formatting Rules #
@@ -130,3 +132,29 @@ csharp_preserve_single_line_blocks = true
130132
[*.vb]
131133
# Modifier preferences
132134
visual_basic_preferred_modifier_order = Partial,Default,Private,Protected,Public,Friend,NotOverridable,Overridable,MustOverride,Overloads,Overrides,MustInherit,NotInheritable,Static,Shared,Shadows,ReadOnly,WriteOnly,Dim,Const,WithEvents,Widening,Narrowing,Custom,Async:suggestion
135+
# END COPY
136+
137+
#################################
138+
# Open Rails Coding Conventions #
139+
#################################
140+
[*.cs]
141+
142+
# .NET analyzers
143+
dotnet_style_require_accessibility_modifiers = omit_if_default:silent
144+
dotnet_naming_symbols.all_fields.applicable_kinds = field
145+
dotnet_naming_symbols.all_fields.applicable_accessibilities = *
146+
dotnet_naming_rule.all_fields_should_be_pascal_case.symbols = all_fields
147+
dotnet_naming_rule.all_fields_should_be_pascal_case.style = pascal_case_style
148+
dotnet_naming_rule.all_fields_should_be_pascal_case.severity = warning
149+
150+
# StyleCop analyzers
151+
dotnet_diagnostic.SA1101.severity = none # Readability: PrefixLocalCallsWithThis
152+
dotnet_diagnostic.SA1200.severity = none # Ordering: UsingDirectivesMustBePlacedCorrectly
153+
dotnet_diagnostic.SA1306.severity = none # Naming: FieldNamesMustBeginWithLowerCaseLetter
154+
dotnet_diagnostic.SA1400.severity = none # Maintainability: AccessModifierMustBeDeclared
155+
dotnet_diagnostic.SA1401.severity = none # Maintainability: FieldsMustBePrivate
156+
dotnet_diagnostic.SA1402.severity = none # Maintainability: FileMayOnlyContainASingleType
157+
dotnet_diagnostic.SA1600.severity = none # Documentation: ElementsMustBeDocumented
158+
dotnet_diagnostic.SA1602.severity = none # Documentation: EnumerationItemsMustBeDocumented
159+
dotnet_diagnostic.SA1633.severity = none # Documentation: FileMustHaveHeader
160+
dotnet_diagnostic.SA1649.severity = none # Documentation: FileNameMustMatchTypeName
-58.5 KB
Binary file not shown.
Binary file not shown.

Source/3rdPartyLibs/MonoGame/MonoGame.Framework.Content.Pipeline.xml

Lines changed: 0 additions & 7294 deletions
This file was deleted.
Binary file not shown.

Source/3rdPartyLibs/MonoGame/MonoGame.Framework.xml

Lines changed: 0 additions & 18061 deletions
This file was deleted.
Binary file not shown.
-137 KB
Binary file not shown.
Binary file not shown.
-91.5 KB
Binary file not shown.
-272 KB
Binary file not shown.

Source/ContentChecker/ContentChecker.csproj

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,6 @@
1212
<Copyright>Copyright © 2009 - 2022</Copyright>
1313
<PackageLicenseExpression>GPL-3.0-or-later</PackageLicenseExpression>
1414
</PropertyGroup>
15-
<ItemGroup>
16-
<Reference Include="MonoGame.Framework">
17-
<HintPath>$(SolutionDir)\3rdPartyLibs\MonoGame\MonoGame.Framework.dll</HintPath>
18-
</Reference>
19-
</ItemGroup>
2015
<ItemGroup>
2116
<ProjectReference Include="..\ORTS.Content\ORTS.Content.csproj" />
2217
<ProjectReference Include="..\Orts.Formats.Msts\Orts.Formats.Msts.csproj" />
@@ -27,8 +22,9 @@
2722
<ProjectReference Include="..\RunActivity\RunActivity.csproj" />
2823
</ItemGroup>
2924
<ItemGroup>
30-
<PackageReference Include="Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers" Version="0.4.336902">
25+
<PackageReference Include="Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers" Version="0.4.355802">
3126
<PrivateAssets>all</PrivateAssets>
3227
</PackageReference>
28+
<PackageReference Include="MonoGame.Framework.WindowsDX" Version="3.8.0.1641" />
3329
</ItemGroup>
3430
</Project>

Source/Contrib/ActivityEditor/ActivityEditor/ActivityEditor.csproj

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,6 @@
1515
<PackageLicenseExpression>GPL-3.0-or-later</PackageLicenseExpression>
1616
<DefineConstants>TRACE;WINDOWS;ACTIVITY_EDITOR</DefineConstants>
1717
</PropertyGroup>
18-
<ItemGroup>
19-
<Reference Include="MonoGame.Framework">
20-
<HintPath>$(SolutionDir)\3rdPartyLibs\MonoGame\MonoGame.Framework.dll</HintPath>
21-
</Reference>
22-
</ItemGroup>
2318
<ItemGroup>
2419
<Compile Update="Wizard\ActivityDescr.cs">
2520
<SubType>UserControl</SubType>
@@ -87,8 +82,9 @@
8782
<ProjectReference Include="..\LibAE\LibAE.csproj" />
8883
</ItemGroup>
8984
<ItemGroup>
90-
<PackageReference Include="Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers" Version="0.4.336902">
85+
<PackageReference Include="Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers" Version="0.4.355802">
9186
<PrivateAssets>all</PrivateAssets>
9287
</PackageReference>
88+
<PackageReference Include="MonoGame.Framework.WindowsDX" Version="3.8.0.1641" />
9389
</ItemGroup>
9490
</Project>

Source/Contrib/ActivityEditor/LibAE/LibAE.csproj

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,6 @@
1212
<PackageLicenseExpression>GPL-3.0-or-later</PackageLicenseExpression>
1313
<DefineConstants>TRACE;WINDOWS;ACTIVITY_EDITOR;JSON_OR_XML</DefineConstants>
1414
</PropertyGroup>
15-
<ItemGroup>
16-
<Reference Include="MonoGame.Framework">
17-
<HintPath>$(SolutionDir)\3rdPartyLibs\MonoGame\MonoGame.Framework.dll</HintPath>
18-
</Reference>
19-
</ItemGroup>
2015
<ItemGroup>
2116
<EmbeddedResource Include="Icon\Start.ico" />
2217
<EmbeddedResource Include="Icon\Stop.ico" />
@@ -35,9 +30,10 @@
3530
<ProjectReference Include="..\..\..\ORTS.Settings\ORTS.Settings.csproj" />
3631
</ItemGroup>
3732
<ItemGroup>
38-
<PackageReference Include="Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers" Version="0.4.336902">
33+
<PackageReference Include="Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers" Version="0.4.355802">
3934
<PrivateAssets>all</PrivateAssets>
4035
</PackageReference>
41-
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
36+
<PackageReference Include="MonoGame.Framework.WindowsDX" Version="3.8.0.1641" />
37+
<PackageReference Include="Newtonsoft.Json" Version="13.0.2" />
4238
</ItemGroup>
4339
</Project>

Source/Contrib/ContentManager/ContentManager.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
<ProjectReference Include="..\..\ORTS.Settings\ORTS.Settings.csproj" />
2929
</ItemGroup>
3030
<ItemGroup>
31-
<PackageReference Include="Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers" Version="0.4.336902">
31+
<PackageReference Include="Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers" Version="0.4.355802">
3232
<PrivateAssets>all</PrivateAssets>
3333
</PackageReference>
3434
</ItemGroup>

Source/Contrib/DataCollector/DataCollector.csproj

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,18 +13,14 @@
1313
<Copyright>Copyright © 2009 - 2022</Copyright>
1414
<PackageLicenseExpression>GPL-3.0-or-later</PackageLicenseExpression>
1515
</PropertyGroup>
16-
<ItemGroup>
17-
<Reference Include="MonoGame.Framework">
18-
<HintPath>$(SolutionDir)\3rdPartyLibs\MonoGame\MonoGame.Framework.dll</HintPath>
19-
</Reference>
20-
</ItemGroup>
2116
<ItemGroup>
2217
<ProjectReference Include="..\..\Orts.Formats.Msts\Orts.Formats.Msts.csproj" />
2318
<ProjectReference Include="..\..\ORTS.Common\ORTS.Common.csproj" />
2419
</ItemGroup>
2520
<ItemGroup>
26-
<PackageReference Include="Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers" Version="0.4.336902">
21+
<PackageReference Include="Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers" Version="0.4.355802">
2722
<PrivateAssets>all</PrivateAssets>
2823
</PackageReference>
24+
<PackageReference Include="MonoGame.Framework.WindowsDX" Version="3.8.0.1641" />
2925
</ItemGroup>
3026
</Project>

Source/Contrib/DataConverter/DataConverter.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@
1919
<ProjectReference Include="..\..\Orts.Parsers.Msts\Orts.Parsers.Msts.csproj" />
2020
</ItemGroup>
2121
<ItemGroup>
22-
<PackageReference Include="Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers" Version="0.4.336902">
22+
<PackageReference Include="Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers" Version="0.4.355802">
2323
<PrivateAssets>all</PrivateAssets>
2424
</PackageReference>
25-
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
25+
<PackageReference Include="Newtonsoft.Json" Version="13.0.2" />
2626
</ItemGroup>
2727
</Project>

Source/Contrib/DataValidator/DataValidator.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
</ItemGroup>
1919
<ItemGroup>
2020
<PackageReference Include="Microsoft.CSharp" Version="4.7.0" />
21-
<PackageReference Include="Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers" Version="0.4.336902">
21+
<PackageReference Include="Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers" Version="0.4.355802">
2222
<PrivateAssets>all</PrivateAssets>
2323
</PackageReference>
2424
</ItemGroup>

Source/Contrib/SimulatorTester/SimulatorTester.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
</ItemGroup>
2424
<ItemGroup>
2525
<PackageReference Include="Microsoft.CSharp" Version="4.7.0" />
26-
<PackageReference Include="Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers" Version="0.4.336902">
26+
<PackageReference Include="Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers" Version="0.4.355802">
2727
<PrivateAssets>all</PrivateAssets>
2828
</PackageReference>
2929
<PackageReference Include="System.Data.DataSetExtensions" Version="4.5.0" />

Source/Contrib/TrackViewer/TrackViewer.csproj

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,6 @@
2525
<SpecificVersion>False</SpecificVersion>
2626
<HintPath>..\..\3rdPartyLibs\GNU.Gettext.dll</HintPath>
2727
</Reference>
28-
<Reference Include="MonoGame.Framework">
29-
<HintPath>$(SolutionDir)\3rdPartyLibs\MonoGame\MonoGame.Framework.dll</HintPath>
30-
</Reference>
3128
</ItemGroup>
3229
<ItemGroup>
3330
<Content Include="Content\activeBroken.png">
@@ -90,12 +87,13 @@
9087
<ProjectReference Include="..\..\RunActivity\RunActivity.csproj" />
9188
</ItemGroup>
9289
<ItemGroup>
93-
<PackageReference Include="System.ServiceModel.Duplex" Version="4.9.0" />
94-
<PackageReference Include="System.ServiceModel.NetTcp" Version="4.9.0" />
95-
<PackageReference Include="System.ServiceModel.Federation" Version="4.9.0" />
96-
<PackageReference Include="Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers" Version="0.4.336902">
90+
<PackageReference Include="Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers" Version="0.4.355802">
9791
<PrivateAssets>all</PrivateAssets>
9892
</PackageReference>
99-
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
93+
<PackageReference Include="MonoGame.Framework.WindowsDX" Version="3.8.0.1641" />
94+
<PackageReference Include="Newtonsoft.Json" Version="13.0.2" />
95+
<PackageReference Include="System.ServiceModel.Duplex" Version="4.10.0" />
96+
<PackageReference Include="System.ServiceModel.NetTcp" Version="4.10.0" />
97+
<PackageReference Include="System.ServiceModel.Federation" Version="4.10.0" />
10098
</ItemGroup>
10199
</Project>

Source/Documentation/Manual/features-rollingstock.rst

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1217,6 +1217,22 @@ shape movement, however for greater accuracy the modeler can add specific values
12171217
``ORTSLengthAirHose``. In addition the length values suggested in the Derailment Coefficient should
12181218
also be added.
12191219

1220+
Passenger doors
1221+
===============
1222+
1223+
.. index:: ORTSDoors
1224+
1225+
Passenger doors are opened and closed (by default) using the ``<Q>`` and ``<Shift+Q>`` keys.
1226+
It is possible to add opening and closing delays, which can be useful to delay the indication of
1227+
"Doors closed" until all doors are fully closed.
1228+
The delays can be added inserting the following block in the wagon section of any
1229+
ENG or WAG file::
1230+
1231+
ORTSDoors (
1232+
ClosingDelay ( 5s )
1233+
OpeningDelay ( 1s )
1234+
)
1235+
12201236

12211237
C# engine scripting
12221238
===================
@@ -1705,8 +1721,8 @@ interface), which can include a (touch screen) display and buttons.
17051721
Being the display fields and icons and the buttons specific of every TCS,
17061722
a set of generic cabview controls are available, which can be customized
17071723
within the TCS script.
1708-
More precisely 48 generic cabview controls, named from ORTS_TCS1 to ORTS_TCS48
1709-
are available. All 48 may be used as two state or multistate controls,
1724+
Generic cabview controls, named ORTS_TCS1, ORTS_TCS2, and so on
1725+
are available. All of them may be used as two state or multistate controls,
17101726
like e.g.::
17111727

17121728
MultiStateDisplay (
@@ -1750,7 +1766,7 @@ like e.g.::
17501766
single: Style
17511767
single: MouseControl
17521768

1753-
Each one of the first 32 can be also used as Two-state commands/displays, like e.g.::
1769+
They can be also used as Two-state commands/displays, like e.g.::
17541770

17551771
TwoState (
17561772
Type ( ORTS_TCS7 TWO_STATE )
@@ -1768,8 +1784,8 @@ The commands are received asynchronously by the script through this method:
17681784
public override void HandleEvent(TCSEvent evt, string message)
17691785
17701786
Where evt may be TCSEvent.GenericTCSButtonPressed or TCSEvent.GenericTCSButtonReleased
1771-
and message is a string ranging from "0" to "31", which correspond to controls from
1772-
ORTS_TCS1 to ORTS_TCS32.
1787+
and message is a string representing the control number with zero-base indexing
1788+
(e.g. "5" corresponds to ORTS_TCS6).
17731789
The commands may only be triggered by the mouse, except the first two which may also be
17741790
triggered by key combinations ``Ctrl,`` (comma) and ``Ctrl.`` (period).
17751791
Here's a code excerpt from the script which manages the commands:
@@ -1830,14 +1846,14 @@ To request a display of a cabview control, method:
18301846
18311847
public Action<int, float> SetCabDisplayControl;
18321848
1833-
has to be used, where ``int`` is the index of the cab control (from 0 to 47
1834-
corresponding from ORTS_TCS1 to ORTS_TCS48), and ``float`` is the value to be
1849+
has to be used, where ``int`` is the index of the cab control (starting from 0
1850+
which corresponds to ORTS_TCS1), and ``float`` is the value to be
18351851
used to select among frames.
18361852

18371853
When the player moves the mouse over the cabview controls linked to commands,
18381854
the name of such control shortly appears on the display, like e.g. "speedometer",
18391855
as a reminder to the player.
1840-
In case of these generic commands, strings from "ORTS_TCS1" to "ORTS_TCS32" would
1856+
In case of these generic commands, strings like "ORTS_TCS1" or "ORTS_TCS32" would
18411857
appear, which aren't mnemonic at all. Therefore following method is available:
18421858

18431859
.. code-block:: csharp
Loading

Source/Documentation/Manual/physics.rst

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2159,6 +2159,10 @@ as the compressor and main air reservoir, and some of the diesel effects (as it
21592159
Some of the cab monitoring gauges provide visibility of what is happening on the powered car. To do this OR searches for
21602160
the "closest" powered car near the Control car and uses its information.
21612161

2162+
If the Control Car is "linked" with a geared power car then it will be necessary for the control car to have a gear box
2163+
controller. To get OR to set it up, it will be necessary for the ``GearBoxControllerNumberofGears ( x )``, where x = number
2164+
of gears in the associated power car, to be added to the engine section of the ENG file.
2165+
21622166

21632167
Multiple Units of Locomotives in Same Consist
21642168
=============================================
@@ -4313,12 +4317,16 @@ In real life, the battery switch may not
43134317
close instantly, so you can add a delay with the optional parameter
43144318
``ORTSBattery( Delay ( ) )`` (by default in seconds).
43154319

4320+
It is possible for the battery switch to be switched on at the start of the simulation.
4321+
To activate this behaviour, you can add the optional parameter ``ORTSBattery( DefaultOn ( 1 ) )``
4322+
43164323
Example::
43174324

43184325
Engine (
43194326
ORTSBattery (
43204327
Mode ( PushButtons )
43214328
Delay ( 2s )
4329+
DefaultOn ( 1 )
43224330
)
43234331
)
43244332

Source/Documentation/Manual/software-platform.rst

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,10 @@ A number of web-pages are included in the Open Rails installation as examples of
124124
what can be done with the APIs.
125125

126126
Some of these sample pages repeat data from the in-game panels to provide a more convenient display.
127+
The sample pages can be found in the ``Content\Web`` subfolder of the OR
128+
program folder and the web server defaults to ``Content\Web\index.html``.
129+
130+
If you choose to develop your own pages, please consider sharing them with the Open Rails community.
127131

128132
- The HUD web page repeats the F5 overlay.
129133

@@ -135,15 +139,13 @@ Some of these sample pages repeat data from the in-game panels to provide a more
135139

136140
.. image:: images/web-page-both.png
137141

138-
- The time page shows the simulation time as a digital clock and links to 3 versions of an analogue clock.
142+
- The Time page shows the simulation time as a digital clock and links to 3 versions of an analogue clock.
139143

140144
.. image:: images/web-page-clock.png
141145

146+
- The Map page shows the position and direction of the train in the real world on the OpenRailwayMap https://www.openrailwaymap.org. Different OpenRailwayMap layers are available. Usability depends on the route, position of the train is not always 100% correct.
142147

143-
The sample pages can be found in the ``Content\Web`` subfolder of the OR
144-
program folder and the web server defaults to ``Content\Web\index.html``.
145-
146-
If you choose to develop your own pages, please consider sharing them with the Open Rails community.
148+
.. image:: images/web-page-map.png
147149

148150
.. _web-server-api:
149151

@@ -186,6 +188,11 @@ Note: To avoid overloading the simulator, please keep API calls to once or twice
186188
- | ``/API/TIME``
187189
- | Retrieves just the simulation time in seconds since midnight.
188190
- | ``Orts.Viewer3D.WebServices .WebServer.ORTSApiController .ApiTime``
191+
* - | GET
192+
- | ``/API/MAP``
193+
- | Retrieves the postion and direction of the train.
194+
| Next to various Open Rails route data.
195+
- | ``Orts.Viewer3D.WebServices .WebServer.ORTSApiController .ApiMap``
189196
* - | GET
190197
- | ``/API/CABCONTROLS``
191198
- | Retrieves an array of the cab controls for the player localhost

0 commit comments

Comments
 (0)