Skip to content

Commit bec4b34

Browse files
authored
Merge branch 'master' into bugfix/Fix-TrainCarOperations-TrainOperationsViewer-overlap
2 parents 992191c + 5d79907 commit bec4b34

File tree

92 files changed

+15030
-9018
lines changed

Some content is hidden

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

92 files changed

+15030
-9018
lines changed

Source/Documentation/Manual/appendices.rst

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -64,12 +64,16 @@ Volumetric Flow m^3/s air flow m^3/s
6464
\ L/min
6565
\ L/s
6666
Speed m/s other m/s m/s meter per second
67+
\ cm/s centimeters per second
68+
\ mm/s millimeters per second
6769
\ km/h
6870
\ kph kph kilometer per hour
69-
\ kmh kmh misspelling accepted by MSTS
70-
\ kmph
71-
\ mph dynamic mph mph miles per hour
72-
brake
71+
\ kmh kmh, misspelling accepted by MSTS
72+
kmph
73+
\ mph dynamic mph mph miles per hour,
74+
brake legacy dynamic brake parameters use mph default
75+
\ ft/s feet per second
76+
\ in/s inches per second
7377
Frequency Hz Hz Hertz
7478
\ rps revolutions per second
7579
\ rpm

Source/Documentation/Manual/cruisecontrol.rst

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,9 @@ A list of the available .eng file CC parameters follows here below.
138138
"ModeSwitchAllowedWithThrottleNotAtZero", "Switch from manual to auto and vice-versa can occur also when throttle lever is not at 0", "Boolean", "FALSE"
139139
"DisableManualSwitchToAutoWhenSetSpeedNotAtTop", "Manual Switch to Cruise Control Auto Mode can't occur when speed is not set at maximum value and at the same moment train speed is not 0", "Boolean", "FALSE"
140140
"UseTrainBrakeAndDynBrake", "CC uses train brake and dyn brake together", "Boolean", "FALSE"
141+
"UseDynBrake", "CC uses dyn brake", "Boolean", "TRUE"
142+
"TrainBrakeCommandHasPriorityOverCruiseControl", "A manual train braking inhibits Cruise Control to use both dynamic braking and tractive force", "Boolean", "TRUE"
143+
"TrainBrakeCommandHasPriorityOverAcceleratingCruiseControl", "A manual train braking inhibits Cruise Control to use tractive force", "Boolean", "TRUE"
141144
"SpeedDeltaToEnableTrainBrake", "This is the minimum speed delta between actual speed and desired speed for the CC to use also the train brake", "Float(speed)", "5m/s"
142145
"SpeedDeltaToEnableFullTrainBrake", "This is the minimum speed delta between actual speed and desired speed for the CC to use also the train brake with no reduced intensity", "Float(speed)", "10m/s"
143146
"TrainBrakeMinPercentValue", "This is the minimum train brake percent used by the CC. 0 means no braking, 100 means full service braking", "Float(percent)", "30"

Source/Documentation/Manual/developing.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ Rolling Stock
2222
- 3D cabs add realism.
2323
- OR graphics renders the results of the rolling stock developers at higher
2424
resolution.
25-
- Rolling stock running on super-elevated track improves gaming experience.
25+
- Rolling stock running on superelevated track improves gaming experience.
2626

2727
Routes
2828
======

Source/Documentation/Manual/driving.rst

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1411,7 +1411,8 @@ Changing the Train Driven by the Player
14111411
General
14121412
-------
14131413

1414-
This function only works in activity mode, and allows the player to select
1414+
This function works in activity mode as well as in timetable mode,
1415+
and allows the player to select
14151416
another (existing) train from a list and to start driving it.
14161417

14171418
This function can be called more than once. A new information window has
@@ -1453,17 +1454,20 @@ completely appeared on the screen - if it is far away from the player train
14531454
this can require several seconds to load the *world* around the train) the
14541455
switch of control occurs.
14551456

1456-
The AI train string now becomes red and is moved to the first position.The
1457-
train can be driven, or set to autopilot mode. The former player train
1458-
becomes an AI train.
1457+
The AI train string now becomes red and is moved to the first position.
1458+
In timetable mode the new player train is automatically set to autopilot mode,
1459+
while this does not apply to activity mode. However in both timetable and
1460+
activity mode the player can switch forth and back to autopilot mode.
1461+
The former player train becomes an AI train.
14591462

14601463
Here is the final situation:
14611464

14621465
.. image:: images/driving-train-list-3.png
14631466
:align: center
14641467
:scale: 80%
14651468

1466-
If the second left-click was performed with the Shift key down, the former
1469+
In activity mode only, if the second left-click was performed with the Shift
1470+
key down, the former
14671471
player train still becomes an AI train, but it is put in a suspended mode
14681472
(only if its speed is 0). It won't move until it becomes a player train
14691473
again. A suspended train is shown in orange color on the Train List window.
@@ -1472,7 +1476,8 @@ The new player train can can be switched to manual mode, can also request to
14721476
pass signals at danger with the ``<Tab>`` command, and can be moved outside
14731477
of its original path. However before switching control to still another train,
14741478
the new player train must be returned to the original path or put in suspend
1475-
mode; or else it will disappear, as occurs for AI trains running outside their
1479+
mode (last is possible only in activity mode); or else it will disappear,
1480+
as occurs for AI trains running outside their
14761481
path.
14771482

14781483
The sequence may be restarted to switch to a new train or to switch back to
@@ -1482,15 +1487,9 @@ Train switching also works in activity mode together with multiplayer mode,
14821487
in the sense that the dispatcher player can switch its played train, and
14831488
the related information is sent to the client players.
14841489

1485-
The Train List window is also available in
1486-
:ref:`Timetable mode <start-timetable>`. In this case the
1487-
names of all trains except the player train are shown in white (they can't
1488-
be driven), however with a single click on a train in the window the
1489-
external view cameras become linked to that train, as occurs with the Alt-9
1490-
command described :ref:`further below <driving-changing-view>`.
14911490

1492-
Switching to a static train
1493-
---------------------------
1491+
Switching to a static train (only activity mode)
1492+
------------------------------------------------
14941493

14951494
In the Train List window the drivable static consists (that is the ones
14961495
that have at least an engine provided with a cab) are also listed (in

Source/Documentation/Manual/features-rollingstock.rst

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1482,7 +1482,8 @@ containers of same length).
14821482
Multiple passenger viewpoints
14831483
=============================
14841484

1485-
Additional passenger viewpoints may be added within a carriage that
1485+
Additional passenger viewpoints may be added within a carriage or
1486+
locomotive that
14861487
is provided with passenger viewpoint.
14871488

14881489
.. index::
@@ -1492,7 +1493,7 @@ is provided with passenger viewpoint.
14921493
single: RotationLimit
14931494
single: StartDirection
14941495

1495-
Such additional passenger viewpoints are defined within an include file
1496+
Such additional passenger viewpoints may be defined within an include file
14961497
with the format shown in
14971498
following example for the legacy oebarcar.wag (located in the 380 folder)
14981499
MSTS wagon::
@@ -1519,6 +1520,9 @@ MSTS wagon::
15191520
)
15201521
)
15211522

1523+
If the passenger viewpoints are defined in the base .wag or .eng file, they
1524+
must be defined below the Inside () block.
1525+
15221526
At runtime, when in passenger view, the player may pass from one viewpoint to
15231527
the other by pressing Shift-5.
15241528

@@ -1706,7 +1710,7 @@ needed in the .cvf file (same applies also for wipers, doors and so on as seen f
17061710
ORTS_EXTERNALLEFTWINDOWREAR
17071711
ORTS_EXTERNALRIGHTWINDOWREAR
17081712

1709-
LEFTWINDOW and RIGHTWINDOW are the names of the controls that can be inserted in the
1713+
ORTS_LEFTWINDOW and ORTS_RIGHTWINDOW are the names of the controls that can be inserted in the
17101714
.cvf file and in the 3Dcab .s file to command the state change with the mouse.
17111715

17121716
Here is an example of the animation of the left window in a 2D cab::

Source/Documentation/Manual/features-route.rst

Lines changed: 134 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -858,24 +858,147 @@ Defining Curve Superelevation
858858

859859
.. index::
860860
single: ORTSTrackSuperElevation
861+
single: ORTSSuperElevation
862+
single: MaxFreightUnderbalance
863+
single: MaxPassengerUnderbalance
864+
single: MinimumCant
865+
single: MaximumCant
866+
single: Precision
867+
single: MaxRunOffSlope
868+
single: MaxRunOffSpeed
869+
single: MinimumSpeed
870+
single: MaximumSpeed
871+
single: ORTSForceSuperElevation
872+
single: TrackGauge
861873

862874
This feature allows curves within the route to be assigned a value for superelevation. It
863-
is inserted either in the route's root .trk file or in the "Include" .trk file.
875+
is inserted either in the route's root .trk file or in the "Include" .trk file. Before
876+
starting, the predominant gauge of track on the route should be given using the legacy
877+
``TrackGauge`` token. The default units used are meters, though other units are supported
878+
as in other parts of the program. If ``TrackGauge`` is set to 0 (like most MSTS routes)
879+
or not present in the .trk file, then the default gauge given in the
880+
:ref:`Superelevation Options <options-superelevation>` will be used for superelevation calculations.
881+
882+
Defining a superelevation standard in the .trk file will control both the simulated level of
883+
superelevation on each track section on the entire route and the amount of visual
884+
superelevation generated by the dynamic track system. However, in some cases it may be desired
885+
to manually influence the use of visual superelevation due to (un)desired graphical effects.
886+
The token ``ORTSForceSuperElevation`` can be given a true/false value to force enable/disable
887+
visual superelevation effects regardless of user settings and other ORTS behaviors. Adding
888+
this token will have no impact on the physical simulation of superelevation, this only forces
889+
the graphical elements to be enabled or disabled.
890+
891+
To define a superelevation standard, add an ``ORTSSuperElevation`` block to the route's .trk
892+
file and add some (or all) of the following parameters inside the ``ORTSSuperElevation`` block:
893+
894+
- ``MaxFreightUnderbalance`` -- The maximum amount (using units of length) of cant deficiency/underbalance
895+
that should be allowed for trains travelling at the freight speed limit. Larger allowed underbalance
896+
results in less extreme superelevation. (Default 100 mm for metric routes, 2 in for imperial routes.)
897+
- ``MaxPassengerUnderbalance`` -- The maximum amount (using units of length) of cant deficiency/underbalance
898+
that should be allowed for trains travelling at the passenger speed limit. (Default 150 mm / 3 in.)
899+
For comfort reasons, the underbalance values should be equal to or less than the
900+
``ORTSUnbalancedSuperElevation`` value used by the rolling stock on the route. If the superelevation
901+
required to achieve the max passenger underbalance is different from that required for freight, the
902+
curve will use whichever superelevation is larger (the actual amount of underbalance may be lower).
903+
- ``MinimumCant`` -- If a curve needs superelevation, the amount of superelevation will be no lower than
904+
this value (given in units of length). (Default 10 mm / 0.5 in.)
905+
- ``MaximumCant`` -- Sets the maximum amount of superelevation (units of length) that any curve is allowed
906+
to have, regardless of other factors. Usually curves should be designed to avoid reaching this limit, as
907+
exceeding the limit could result in excessive curve force or even trains toppling over at low speeds.
908+
(Default 180 mm / 6 in.)
909+
- ``Precision`` -- Determines the accuracy (in length) to which the superelevation is maintained. If
910+
the superelevation required by a curve is not a nice number, it will be rounded up to the nearest
911+
multiple of ``Precision``. (Default 5 mm / 0.25 in.)
912+
- ``MaxRunOffSlope`` -- Sets a limit on the amount of change in superelevation per unit length along a curve
913+
(quantity is unitless). This allows for smooth transition between flat and superelevated track at low speeds.
914+
(Default 0.003.)
915+
- ``MaxRunOffSpeed`` -- Sets a limit on the amount of change in superelevation per second (units of speed) when
916+
travelling at the max speed for the curve. This allows for smooth transition between flat and superelevated
917+
track at high speeds. (Default 55 mm/sec / 1.5 in/sec.)
918+
- ``MinimumSpeed`` -- The minimum speed limit required for superelevation to be added to a curve. Useful for
919+
preventing superelevation from being generated in yards. (Default 25 kmh / 15 mph.)
920+
- ``MaximumSpeed`` -- The maximum speed limit allowed for superelevation to be added to a curve. This
921+
is only useful if a route needs multiple sets of superelevation settings. See section below for a
922+
description on use of multiple superelevation standards. (Default unlimited.)
923+
924+
Any parameters not specified will use the default values, which are suitable for most medium-speed routes.
925+
Upon route loading, the given parameters will be used to calculate the appropriate amount of superelevation
926+
for each curve based on the curve radius and speed limits. An example ``ORTSSuperElevation`` block which
927+
defines the superelevation standard used by Union Pacific is given below::
928+
929+
ORTSSuperElevation(
930+
MaxFreightUnderbalance ( 1in )
931+
MaxPassengerUnderbalance ( 3in )
932+
MinimumCant ( 0.25in )
933+
MaximumCant ( 5in )
934+
Precision ( 0.25in )
935+
MaxRunOffSlope ( 0.0019 )
936+
MaxRunOffSpeed ( 1.25in/s )
937+
MinimumSpeed ( 15mph )
938+
)
864939

865-
It should be noted that currently this information only applies to physics calculations
866-
for superelevation. The visual movement of the train due to superelevation is set within
867-
the option menu.
940+
Note that it is also possible to create a superelevation standard which entirely disables superelevation
941+
on the route, should the real railroad not use superelevation. This can be achieved by setting
942+
``MaximumCant ( 0 )`` and leaving all other values default. Note that this disables both physics and visual
943+
superelevation::
868944

869-
The values are assigned by inserting the following parameter::
945+
ORTSSuperElevation(
946+
MaximumCant ( 0 )
947+
)
870948

871-
ORTSTrackSuperElevation ( x y .......... )
949+
More than one ``ORTSSuperElevation`` block can be added to the .trk file to facilitate routes that require
950+
different superelevation standards for different track speeds (for example, a route with both standard speed
951+
160 kmh tracks and dedicated 300 kmh high speed tracks). If a track has a speed limit below ``MinimumSpeed``
952+
or above ``MaximumSpeed``, the track will skip the superelevation standard defined and check the next standard in
953+
the .trk file to see if the speed limit is in between the min and max of that standard. Only if the track
954+
speed is out of bounds for every superelevation standard will no superelevation be applied at all. For
955+
example, to have 3 different types of superelevation on one route, one from 25-60 kmh, another from 60-160 kmh,
956+
and a third standard for 160 kph and up, the required Minimum/MaximumSpeed settings would look like this::
957+
958+
ORTSSuperElevation(
959+
...
960+
MinimumSpeed ( 25km/h )
961+
MaximumSpeed ( 60km/h )
962+
)
963+
ORTSSuperElevation(
964+
...
965+
MinimumSpeed ( 60km/h )
966+
MaximumSpeed ( 160km/h )
967+
)
968+
ORTSSuperElevation(
969+
...
970+
MinimumSpeed ( 160km/h )
971+
)
972+
973+
Note that the order of the ``ORTSSuperElevation`` blocks is important; they are read from top down
974+
so the slowest superelevation standard should be on top of all faster superelevation standards.
975+
976+
Open Rails also supports a simpler way to define superelevation based on curve radius only, resulting
977+
in the same superelevation regardless of track speed. If a railroad uses this simplified method, they
978+
would provide a table of track curve radii and the superelevation used at that radius (usually also
979+
including a maximum speed for the curve). This table can then be provided to OR using the
980+
``ORTSTrackSuperElevation`` parameter in the .trk file::
981+
982+
ORTSTrackSuperElevation (
983+
x1 y1
984+
x2 y2
985+
........
986+
)
872987
873-
where x and y are a series of paired parameters specifying the curve radius in metres (x value),
874-
and the amount of superelevation in metres (y value). The statement will take as many paired
875-
values as desired. Each paired set of values must have an x and y value present. If it is desired
876-
to 'hold' a certain value of SuperElevation for a number of different radii curves, then the same
988+
Where x and y are a series of paired parameters specifying the curve radius (default meters)
989+
(x value), and the amount of superelevation (default meters) (y value). The statement will take
990+
as many paired values as desired, as long as the radius values are in increasing order.
991+
Each paired set of values must have an x and y value present. If it is desired
992+
to 'hold' a certain value of superelevation for a number of different radii curves, then the same
877993
y value needs to be used for succeeding values of curve radius. Where the y value changes between
878-
curve radii, then Open Rails will extrapolate the y value between the two points.
994+
curve radii, then Open Rails will interpolate the y value between the two points.
995+
996+
Superelevation calculated using ``ORTSSuperElevation`` will generally override any values
997+
entered in ``ORTSTrackSuperElevation`` unless the ``ORTSSuperElevation`` block did not specify
998+
a value for ``MaxFreightUnderbalance`` or ``MaxPassengerUnderbalance``. If neither is given,
999+
superelevation will be replaced with the value given by ``ORTSTrackSuperElevation``, but will
1000+
be adjusted to match the given values of minimum and maximum cant, precision, and runoff. This
1001+
way, it is possible to represent a wide variety of superelevation configurations.
8791002

8801003

8811004
Overhead (catenary) wire
Loading
Loading
Binary file not shown.
Binary file not shown.
Loading

Source/Documentation/Manual/news.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ What's been added
2424
- more accurate wheelslip using Polach adhesion
2525
- duplex and booster steam engines (e.g. T1 class)
2626
- cloud-free skies
27+
- sounds conditional on season, weather and time of day
2728
- more air and dynamic brake options for locos
2829
- mouse control for scripted brake controllers
2930

@@ -39,6 +40,7 @@ What's been improved
3940
- controls for electric locos
4041
- air brake features for both European and American brake systems
4142
- accurate friction simulation for 4 types of brake shoes
43+
- superelevation system rewritten to be smoother and more configurable
4244

4345

4446
Other changes

Source/Documentation/Manual/operation.rst

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -641,7 +641,7 @@ Calculation of Train Speed Limit
641641
- local signal speed limit
642642
- local speedpost speed limit
643643
- local temporary speedpost speed limit
644-
- first parameter ``MaxVelocityA`` in ``.con`` file, if bigger than zero and not
644+
- first parameter of ``MaxVelocity`` line in ``.con`` file, if bigger than zero and not
645645
equal 40
646646
- locomotive speed limit in ``.eng`` file in the other cases.
647647

@@ -651,18 +651,11 @@ Calculation of Train Speed Limit
651651
- local signal speed limit
652652
- local speedpost speed limit
653653
- local temporary speedpost speed limit
654-
- first parameter ``MaxVelocityA`` in ``.con`` file, if bigger than zero and not
655-
equal 40
654+
- first parameter of ``MaxVelocity`` line in ``.con`` file, if bigger than zero and not
655+
equal 40, multiplied by the Efficiency as explained :ref:``here <operation-performance>``
656656
- locomotive speed limit in ``.eng`` file in the other cases.
657657

658658

659-
- route speed limit as defined in the ``.trk`` file
660-
- local signal speed limit
661-
- local speedpost speed limit
662-
- local temporary speedpost speed limit
663-
- first parameter ``MaxVelocityA`` in ``.con`` file, if bigger than zero,
664-
multiplied by the Efficiency as explained :ref:``here <operation-performance>``.
665-
666659
Start of Run of AI train in a Section Reserved by Another Train
667660
---------------------------------------------------------------
668661

0 commit comments

Comments
 (0)