@moorhs: sorry, I don't have a clue. You might want to specify what version of the game you're using when asking about a problem like that.
@Owen: great work
I have some questions and suggestions tho
Let's start with some mostly cosmetic suggestions:
1) when you use a condition based on a signal state, you currently show either
- "
unspecified signal" when it's not set or
- "specified signal" when it's set
I'd like to suggest a few changes:
- "
invalid signal (X,Y)" when it points to a signal that's not an exit signal. I know you can't select one during programming,
but you can change the type of a signal you already used. This makes it easier to spot mistakes
- "specified signal (X,Y)", so with the coordinates visible.
2) if you really want to be nice, you might give us the option of naming signals used so a name can be shown instead of X,Y
Some more involved suggestions:
1) when dragging logic signals, all new signals start with an empty program. Would it be possible to copy the program from the original signal ?
Maybe some other way exist to copy a signal with the programming intact ?
2) is it perhaps possible to add a a yellow state for signals with a configurable speed limit linked to it ?
A red sign reduces the trainspeed to zero, so I was hoping it was possible for a yellow sign to reduce it to some configurable higher speed.
I know, it's not exactly a goal you aimed for with this project, but I'm sure lots of players would love you for it.
Now the questions:
1) when exactly is the program of the signal executed ? My guess would be:
- when the following block changes between free and occupied
- when any of the signals mentioned in the program changes state
- maybe some kind of periodic evaluation, but that doesn't seem to match my observations
2) while under the assumption that the signal was periodically reevaluated, I created a setup that I hoped would be a presignal simulation.
It didn't work, but I found myself left with a result I couldn't explain.
Setup: straight line, programmable signal A followed a bit further with normal exit signal B
the program:
if signal B = green then
make signal green
else
if signal A = green then
make signal red
else
make signal green
endif
endif
I hoped that when signal green was red, signal A would be flashing green-red so it would slow down trains.
The result I got was that signal A became red when the train went by it and remained red until signal B became green.
When signal B became red again, signal A remained green, which I found hard to explain.
BTW: I used a logic train to get a flashing red/green light going, so it's not like I'm still looking for more then an explanation