From 5659134c8c88bd4c54e76da3e8db570917722fac Mon Sep 17 00:00:00 2001 From: ywang Date: Sat, 19 Dec 2020 19:40:13 +0100 Subject: [PATCH] Improved speed indication The speed indicator is now shown on 4 lines: Line 1: ATC target speed (blue arrow pointing down) Line 2: Train velocity (black line) Line 3: Speed limit (if any) (red line) Line 4: Next speed limit (red arrow pointing up) --- .../textures/advtrains_hud_speed_atc.png | Bin 0 -> 139 bytes advtrains/textures/advtrains_hud_speed_bg.png | Bin 0 -> 101 bytes .../textures/advtrains_hud_speed_ind.png | Bin 0 -> 67 bytes .../textures/advtrains_hud_speed_limit.png | Bin 0 -> 82 bytes .../textures/advtrains_hud_speed_max.png | Bin 0 -> 75 bytes .../textures/advtrains_hud_speed_next.png | Bin 0 -> 144 bytes advtrains/trainhud.lua | 55 +++++++++--------- 7 files changed, 28 insertions(+), 27 deletions(-) create mode 100644 advtrains/textures/advtrains_hud_speed_atc.png create mode 100644 advtrains/textures/advtrains_hud_speed_bg.png create mode 100644 advtrains/textures/advtrains_hud_speed_ind.png create mode 100644 advtrains/textures/advtrains_hud_speed_limit.png create mode 100644 advtrains/textures/advtrains_hud_speed_max.png create mode 100644 advtrains/textures/advtrains_hud_speed_next.png diff --git a/advtrains/textures/advtrains_hud_speed_atc.png b/advtrains/textures/advtrains_hud_speed_atc.png new file mode 100644 index 0000000000000000000000000000000000000000..81f790155b89b919e54c871c24a646e4a5494b8d GIT binary patch literal 139 zcmeAS@N?(olHy`uVBq!ia0vp^tU$~mzyu`UG1ut>sUS}m#}JO_-sP7SFy`iO6#9IkIZY?*NH*`W-Ja%r(71G7&c2#w na@&T$CI8PeJFPHj;bmk<M?s literal 0 HcmV?d00001 diff --git a/advtrains/textures/advtrains_hud_speed_ind.png b/advtrains/textures/advtrains_hud_speed_ind.png new file mode 100644 index 0000000000000000000000000000000000000000..5e278919c6315c1105e93db3f99b346427285f25 GIT binary patch literal 67 zcmeAS@N?(olHy`uVBq!ia0vp^%s|Y|2qYLLF>uubDK1YJ#}E$Lsc=sh#}JO_3~%(}KD?@hM#kvi1o^=0) and "" or "^[resize\\:3x22") + local si = {} + if max < 20 then + si[#si+1] = ("%d,77=(advtrains_hud_speed_max.png^[resize\\:%dx22)"):format(max*5,100-max*5) end - st[#st+1] = velstr(vel, "Speed:") - if max then st[#st+1] = velstr(max, "Max. Speed:") end - if res then st[#st+1] = res == 0 - and attrans("OVERRUN RED SIGNAL! Examine situation and reverse train to move again.") - or velstr(res, "Restriction:") end - - if train.tarvelocity or train.atc_command then - st[#st+1] = ("ATC: %s%s%s"):format( - train.tarvelocity and (velstr(train.tarvelocity).." ") or "", - train.atc_delay and advtrains.abs_ceil(train.atc_delay).."s " or "", - train.atc_command or "") + if res and res>=0 then + si[#si+1] = ("%d,88=advtrains_hud_speed_limit.png"):format(res*4.85) + end + if train.tarvelocity then + si[#si+1] = ("%d,66=advtrains_hud_speed_atc.png"):format(train.tarvelocity*4.85) end - local lzb = train.lzb - - local i = 1 - while i<=#lzb.oncoming do - local k = lzb.oncoming[i] - st[#st+1] = "LZB: speed limit ["..(k.spd or "E")..("] in %.1f m"):format(k.idx-train.index) - if k.spd == 0 then - break + if lzb and lzb.oncoming then + for i = 1, #lzb.oncoming do + local k = lzb.oncoming[i] + if k.spd and k.spd >= 0 then + si[#si+1] = ("%d,102=advtrains_hud_speed_next.png"):format(k.spd*4.85) + break + end end - i=i+1 end - return table.concat(st,"\n"), ht + if res and res == 0 then + st[#st+1] = attrans("OVERRUN RED SIGNAL! Examine situation and reverse train to move again.") + end + + if train.atc_command then + st[#st+1] = ("ATC: %s%s"):format(train.atc_delay and advtrains.abs_ceil(train.atc_delay).."s " or "", train.atc_command or "") + end + + return table.concat(st,"\n"), #si>0 and ht..":"..table.concat(si,":") or ht end