aboutsummaryrefslogtreecommitdiff
path: root/advtrains_interlocking/distant_signals.lua
diff options
context:
space:
mode:
Diffstat (limited to 'advtrains_interlocking/distant_signals.lua')
-rw-r--r--advtrains_interlocking/distant_signals.lua19
1 files changed, 17 insertions, 2 deletions
diff --git a/advtrains_interlocking/distant_signals.lua b/advtrains_interlocking/distant_signals.lua
index 0da1c10..340cf74 100644
--- a/advtrains_interlocking/distant_signals.lua
+++ b/advtrains_interlocking/distant_signals.lua
@@ -1,3 +1,10 @@
+--[[
+Distant signaling modes:
+ true: set route for the next signal
+ false: do not set route for the next signal
+ nil: hide distant signal information
+]]
+
local interlocking = advtrains.interlocking
local ildb = advtrains.interlocking.db
@@ -6,7 +13,11 @@ local function update_distant(tcbs)
if not tcbs.aspect then tcbs.aspect = table.copy(interlocking.DANGER) end
local asp = tcbs.aspect
if tcbs.distant_of then
- asp.dst = (ildb.get_tcbs(tcbs.distant_of[1]).aspect or interlocking.DANGER).main
+ if tcbs.distant_mode == nil then
+ asp.dst = nil
+ else
+ asp.dst = (ildb.get_tcbs(tcbs.distant_of[1]).aspect or interlocking.DANGER).main
+ end
end
interlocking.update_signal_aspect(tcbs)
if tcbs.distant then
@@ -14,7 +25,11 @@ local function update_distant(tcbs)
for i = 1, #dst do
local s = ildb.get_tcbs(dst[i])
if not s.aspect then s.aspect = table.copy(interlocking.DANGER) end
- s.aspect.dst = asp.main
+ if s.distant_mode == nil then
+ s.aspect.dst = nil
+ else
+ s.aspect.dst = asp.main
+ end
interlocking.update_signal_aspect(s)
end
end