Allow to accelerate trains slowly towards red signals from stand.

Previously, it was impossible to accelerate a standing train once it was ~10m in front of a red signal.
This commit is contained in:
orwell96 2018-10-29 20:49:31 +01:00
parent ef50505e95
commit 6298f8b081
1 changed files with 21 additions and 11 deletions

View File

@ -33,6 +33,7 @@ local ADD_SLOW = 1
local ADD_FAST = 7 local ADD_FAST = 7
local ZONE_ROLL = 2 local ZONE_ROLL = 2
local ZONE_HOLD = 5 -- added on top of ZONE_ROLL local ZONE_HOLD = 5 -- added on top of ZONE_ROLL
local ZONE_VSLOW = 2 -- When speed is <2, still allow accelerating
local SHUNT_SPEED_MAX = 4 local SHUNT_SPEED_MAX = 4
@ -175,17 +176,26 @@ local function apply_control(id, train)
--train.debug = train.debug .. "BRAKE!!!" --train.debug = train.debug .. "BRAKE!!!"
return return
end end
i = advtrains.path_get_index_by_offset(train, i, -ZONE_ROLL) if v1==0 and v0<2 then
if i <= train.index then i = advtrains.path_get_index_by_offset(train, i, -ZONE_VSLOW)
-- roll control if i <= train.index then
train.ctrl.lzb = 2 -- roll control
return train.ctrl.lzb = 2
end return
i = advtrains.path_get_index_by_offset(train, i, -ZONE_HOLD) end
if i <= train.index then else
-- hold speed i = advtrains.path_get_index_by_offset(train, i, -ZONE_ROLL)
train.ctrl.lzb = 3 if i <= train.index then
return -- roll control
train.ctrl.lzb = 2
return
end
i = advtrains.path_get_index_by_offset(train, i, -ZONE_HOLD)
if i <= train.index then
-- hold speed
train.ctrl.lzb = 3
return
end
end end
end end
end end