The current signal aspect table is
asp = {
main = {
free = <bool>,
speed = <int ATC>,
},
dst = {
free = <bool>,
speed = <int ATC>,
},
shunt = {
free = <bool>,
proceed_as_main = <bool>,
},
info = {
call_on = <bool>,
dead_end = <bool>,
w_speed = <int>
}
}
The problem is the complexity of the table and the fact that asp.*.speed can and (IMHO) should control asp.*.free, making asp.*.free unnecessary. Afaik this should be enough:
asp = {
main = <int ATC>,
dst = <int ATC>,
shunt = {
free = <bool>,
proceed_as_main = <bool>,
},
info = {
call_on = <bool>,
dead_end = <bool>,
w_speed = <int>
}
}
Yes, this is unnecessary. I don't know what my initial intention behind
this was, but this is not reasonable. The next time I work on the
interlocking code, I will correct this.
That's why people *think*.
Simplifying signal aspects is one of the first things I did after forking advtrains.
Also, the current interlocking system is already able to handle dead ends and call-on route, so adding these features will (IMHO) only contribute to the complexity of debugging the mod.