Skip to content

Commit

Permalink
Automatic merge of T1.5-rc1-38-gdff850087 and 11 pull requests
Browse files Browse the repository at this point in the history
- Pull request #570 at 824f96f: Experimental glTF 2.0 support with PBR lighting
- Pull request #630 at 704731a: Sky Color Fix (Addresses Trello Roadmap Card #367 for More accurate sunrise and sunset)
- Pull request #650 at 0106424: Renewed Russian translation up to 1.5-rc1 version
- Pull request #652 at 918fdb1: Add button functions to Raildriver
- Pull request #667 at aa5c629: Fix typo in Czech translation of menu
- Pull request #677 at 0483b62: Correct double heading bug
- Pull request #688 at e44897d: adds Help Icons to Video tab
- Pull request #690 at 3399d4b: Sync turntables and transfertables in multiplayer mode
- Pull request #692 at c82a76d: Italian translation for OR 1.5
- Pull request #699 at 6baf43d: Bug fix for https://bugs.launchpad.net/or/+bug/1987453. Web: HUD/Force Information, some labels not visible.
- Pull request #700 at 5c98e2f: Fix for crash during signal loading
  • Loading branch information
openrails-bot committed Aug 24, 2022
13 parents 158936c + dff8500 + 824f96f + 704731a + 0106424 + 918fdb1 + aa5c629 + 0483b62 + e44897d + 3399d4b + c82a76d + 6baf43d + 5c98e2f commit 3f18f55
Show file tree
Hide file tree
Showing 4 changed files with 30 additions and 19 deletions.
2 changes: 1 addition & 1 deletion Source/Orts.Simulation/Simulation/Physics/Train.cs
Expand Up @@ -8140,7 +8140,7 @@ public void UpdateManualMode(int signalObjectIndex)
bool hasEndSignal = false; // ends with cleared signal
int sectionWithSignalIndex = 0;

SignalObject previousSignal = new SignalObject(signalRef);
SignalObject previousSignal = new SignalObject(signalRef, SignalObjectType.Signal);

for (int iindex = 0; iindex < newRoute.Count && !endWithSignal; iindex++)
{
Expand Down
38 changes: 22 additions & 16 deletions Source/Orts.Simulation/Simulation/Signalling/SignalObject.cs
Expand Up @@ -90,20 +90,7 @@ public enum Permission
public int thisRef; // This signal's reference.
public int direction; // Direction facing on track

public SignalObjectType Type
{
get
{
if (SignalHeads.Exists(x => x.Function.MstsFunction != MstsSignalFunction.SPEED))
{
return SignalObjectType.Signal;
}
else
{
return SpeedPostWorldObject != null ? SignalObjectType.SpeedPost : SignalObjectType.SpeedSignal;
}
}
}
public SignalObjectType Type { get; protected set; }
public List<SignalHead> SignalHeads = new List<SignalHead>();

public int SignalNumClearAhead_MSTS = -2; // Overall maximum SignalNumClearAhead over all heads (MSTS calculation)
Expand Down Expand Up @@ -203,10 +190,12 @@ public int trItem
/// <summary>
/// Constructor for empty item
/// </summary>
public SignalObject(Signals signalReference)
public SignalObject(Signals signalReference, SignalObjectType type)
{
signalRef = signalReference;

Type = type;

LockedTrains = new List<KeyValuePair<int, int>>();

foreach (SignalFunction function in signalRef.SignalFunctions.Values)
Expand All @@ -222,7 +211,18 @@ public SignalObject(Signals signalReference)
public SignalObject(SignalObject copy)
{
signalRef = copy.signalRef;
WorldObject = new SignalWorldObject(copy.WorldObject);
Type = copy.Type;
switch (Type)
{
case SignalObjectType.Signal:
case SignalObjectType.SpeedSignal:
WorldObject = new SignalWorldObject(copy.WorldObject);
break;

case SignalObjectType.SpeedPost:
SpeedPostWorldObject = new SpeedPostWorldObject(copy.SpeedPostWorldObject);
break;
}

trackNode = copy.trackNode;
LockedTrains = new List<KeyValuePair<int, int>>();
Expand Down Expand Up @@ -1881,6 +1881,12 @@ public void SetSignalType(SignalConfigurationFile sigCFG)
{
sigHead.SetSignalType(trItems, sigCFG);
}

if (Type == SignalObjectType.Signal
&& !SignalHeads.Exists(x => x.Function.MstsFunction != MstsSignalFunction.SPEED))
{
Type = SignalObjectType.SpeedSignal;
}
}

public void Initialize()
Expand Down
4 changes: 2 additions & 2 deletions Source/Orts.Simulation/Simulation/Signalling/Signals.cs
Expand Up @@ -1010,7 +1010,7 @@ private int AddSignal(int trackNode, int nodeIndx, SignalItem sigItem, int TDBRe
{
validSignal = true;

SignalObjects[foundSignals] = new SignalObject(this);
SignalObjects[foundSignals] = new SignalObject(this, SignalObjectType.Signal);
SignalObjects[foundSignals].direction = (int)sigItem.Direction;
SignalObjects[foundSignals].trackNode = trackNode;
SignalObjects[foundSignals].trRefIndex = nodeIndx;
Expand Down Expand Up @@ -1056,7 +1056,7 @@ private int AddSignal(int trackNode, int nodeIndx, SignalItem sigItem, int TDBRe
/// </summary>
private int AddSpeed(int trackNode, int nodeIndx, SpeedPostItem speedItem, int TDBRef, TrackSectionsFile tsectiondat, TrackDatabaseFile tdbfile)
{
SignalObjects[foundSignals] = new SignalObject(this);
SignalObjects[foundSignals] = new SignalObject(this, SignalObjectType.SpeedPost);
SignalObjects[foundSignals].direction = 0; // preset - direction not yet known //
SignalObjects[foundSignals].trackNode = trackNode;
SignalObjects[foundSignals].trRefIndex = nodeIndx;
Expand Down
Expand Up @@ -12,5 +12,10 @@ public SpeedPostWorldObject(SpeedPostObj speedPostItem)
// get filename in Uppercase
SFileName = Path.GetFileName(speedPostItem.FileName).ToUpperInvariant();
}

public SpeedPostWorldObject(SpeedPostWorldObject other)
{
SFileName = other.SFileName;
}
}
}

0 comments on commit 3f18f55

Please sign in to comment.