Skip to content

Commit 6553f9a

Browse files
committed
Moved signals initialization after world info addition
1 parent 35ea800 commit 6553f9a

File tree

3 files changed

+28
-2
lines changed

3 files changed

+28
-2
lines changed

Source/Orts.Simulation/Simulation/Signalling/SignalHead.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,6 @@ public void SetSignalType(TrItem[] TrItems, SignalConfigurationFile sigCFG)
143143
usedCsSignalScript = Signals.CsSignalScripts.LoadSignalScript(signalType.Script)
144144
?? Signals.CsSignalScripts.LoadSignalScript(signalType.Name);
145145
usedCsSignalScript?.AttachToHead(this);
146-
usedCsSignalScript?.Initialize();
147146

148147
// set signal speeds
149148
foreach (SignalAspect thisAspect in signalType.Aspects)
@@ -188,8 +187,11 @@ public void SetSignalType(TrItem[] TrItems, SignalConfigurationFile sigCFG)
188187
Trace.TraceWarning("SignalObject trItem={0}, trackNode={1} has SignalHead with undefined SignalType {2}.",
189188
mainSignal.trItem, mainSignal.trackNode, sigItem.SignalType);
190189
}
190+
}
191191

192-
192+
public void Initialize()
193+
{
194+
usedCsSignalScript?.Initialize();
193195
}
194196

195197
/// <summary>

Source/Orts.Simulation/Simulation/Signalling/SignalObject.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1902,6 +1902,14 @@ public void SetSignalType(SignalConfigurationFile sigCFG)
19021902
}
19031903
}
19041904

1905+
public void Initialize()
1906+
{
1907+
foreach (SignalHead head in SignalHeads)
1908+
{
1909+
head.Initialize();
1910+
}
1911+
}
1912+
19051913
/// <summary>
19061914
/// Gets the display aspect for the track monitor.
19071915
/// </summary>

Source/Orts.Simulation/Simulation/Signalling/Signals.cs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,8 @@ public Signals(Simulator simulator, SignalConfigurationFile sigcfg, Cancellation
121121
// Add World info
122122
AddWorldInfo();
123123

124+
InitializeSignals();
125+
124126
// check for any backfacing heads in signals
125127
// if found, split signal
126128
SplitBackfacing(trackDB.TrItemTable, trackDB.TrackNodes);
@@ -1179,6 +1181,20 @@ private void AddWorldInfo()
11791181
}
11801182
}
11811183
}
1184+
1185+
private void InitializeSignals()
1186+
{
1187+
foreach (SignalObject signal in SignalObjects)
1188+
{
1189+
if (signal != null)
1190+
{
1191+
if (signal.isSignal || signal.isSpeedSignal)
1192+
{
1193+
signal.Initialize();
1194+
}
1195+
}
1196+
}
1197+
}
11821198

11831199
/// <summary>
11841200
/// FindByTrItem : find required signalObj + signalHead

0 commit comments

Comments
 (0)