I have a simple problem I am sure, but I cant get $maxdelay to work when I have $cruise and $max in the #speedmph row.
For a specific train in the speed row I have something like '$max=90 $cruise=75', commas not included. This works fine and the trains max is shown as 75mph in the Track Monitor. However, if there is a delay I would like the speed to be able to return to the max of 90mph.
Using '$max=90 $cruise=75 $maxdelay=2' causes the sim to crash on loading. I understand the $maxdelay syntax to be correct where the delay is 2 minutes.
If I use '$max=90 $cruise=75 /maxdelay=2' the sim does not crash but the max is not increased after the the 2 minute delay is exceeded.
Mick Clarke
MEC
Page 1 of 1
Syntax problem
#2
Posted 28 October 2021 - 01:25 AM
Hi.
I'm trying to emulate what you are experiencing.
Can you try it in the format that crashes, and share the log file, please?
I'm trying to emulate what you are experiencing.
Can you try it in the format that crashes, and share the log file, please?
#3
Posted 28 October 2021 - 02:41 PM
Here is the error message
Error: System.InvalidOperationException: Nullable object must have a value.
at System.ThrowHelper.ThrowInvalidOperationException(ExceptionResource resource)
at System.Nullable`1.get_Value()
at Orts.Simulation.Timetables.TTTrain.UpdateMinimalDelay() in F:\ADRIANA\Carlo\OR_Work\Git_ORTS_source_mio\Source\Orts.Simulation\Simulation\Timetables\TTTrain.cs:line 2883
at Orts.Simulation.Timetables.TTTrain.Update(Single elapsedClockSeconds, Boolean auxiliaryUpdate) in F:\ADRIANA\Carlo\OR_Work\Git_ORTS_source_mio\Source\Orts.Simulation\Simulation\Timetables\TTTrain.cs:line 2810
at Orts.Simulation.Simulator.Update(Single elapsedClockSeconds) in F:\ADRIANA\Carlo\OR_Work\Git_ORTS_source_mio\Source\Orts.Simulation\Simulation\Simulator.cs:line 706
at Orts.Viewer3D.Viewer.Update(RenderFrame frame, Single elapsedRealTime) in F:\ADRIANA\Carlo\OR_Work\Git_ORTS_source_mio\Source\RunActivity\Viewer3D\Viewer.cs:line 797
at Orts.Viewer3D.Processes.GameStateViewer3D.Update(RenderFrame frame, Double totalRealSeconds) in F:\ADRIANA\Carlo\OR_Work\Git_ORTS_source_mio\Source\RunActivity\Viewer3D\Processes\GameStateViewer3D.cs:line 123
at Orts.Viewer3D.Processes.UpdaterProcess.Update() in F:\ADRIANA\Carlo\OR_Work\Git_ORTS_source_mio\Source\RunActivity\Viewer3D\Processes\UpdaterProcess.cs:line 131
at Orts.Viewer3D.Processes.UpdaterProcess.DoUpdate() in F:\ADRIANA\Carlo\OR_Work\Git_ORTS_source_mio\Source\RunActivity\Viewer3D\Processes\UpdaterProcess.cs:line 108
at Orts.Viewer3D.Processes.UpdaterProcess.UpdaterThread() in F:\ADRIANA\Carlo\OR_Work\Git_ORTS_source_mio\Source\RunActivity\Viewer3D\Processes\UpdaterProcess.cs:line 74
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
Mick Clarke
MEC
Error: System.InvalidOperationException: Nullable object must have a value.
at System.ThrowHelper.ThrowInvalidOperationException(ExceptionResource resource)
at System.Nullable`1.get_Value()
at Orts.Simulation.Timetables.TTTrain.UpdateMinimalDelay() in F:\ADRIANA\Carlo\OR_Work\Git_ORTS_source_mio\Source\Orts.Simulation\Simulation\Timetables\TTTrain.cs:line 2883
at Orts.Simulation.Timetables.TTTrain.Update(Single elapsedClockSeconds, Boolean auxiliaryUpdate) in F:\ADRIANA\Carlo\OR_Work\Git_ORTS_source_mio\Source\Orts.Simulation\Simulation\Timetables\TTTrain.cs:line 2810
at Orts.Simulation.Simulator.Update(Single elapsedClockSeconds) in F:\ADRIANA\Carlo\OR_Work\Git_ORTS_source_mio\Source\Orts.Simulation\Simulation\Simulator.cs:line 706
at Orts.Viewer3D.Viewer.Update(RenderFrame frame, Single elapsedRealTime) in F:\ADRIANA\Carlo\OR_Work\Git_ORTS_source_mio\Source\RunActivity\Viewer3D\Viewer.cs:line 797
at Orts.Viewer3D.Processes.GameStateViewer3D.Update(RenderFrame frame, Double totalRealSeconds) in F:\ADRIANA\Carlo\OR_Work\Git_ORTS_source_mio\Source\RunActivity\Viewer3D\Processes\GameStateViewer3D.cs:line 123
at Orts.Viewer3D.Processes.UpdaterProcess.Update() in F:\ADRIANA\Carlo\OR_Work\Git_ORTS_source_mio\Source\RunActivity\Viewer3D\Processes\UpdaterProcess.cs:line 131
at Orts.Viewer3D.Processes.UpdaterProcess.DoUpdate() in F:\ADRIANA\Carlo\OR_Work\Git_ORTS_source_mio\Source\RunActivity\Viewer3D\Processes\UpdaterProcess.cs:line 108
at Orts.Viewer3D.Processes.UpdaterProcess.UpdaterThread() in F:\ADRIANA\Carlo\OR_Work\Git_ORTS_source_mio\Source\RunActivity\Viewer3D\Processes\UpdaterProcess.cs:line 74
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
Mick Clarke
MEC
Page 1 of 1