From 8b6ff78fe647e6f9348cd4206baea255195f7ce4 Mon Sep 17 00:00:00 2001 From: Dmytro Lytovchenko Date: Sat, 22 Jun 2019 13:35:15 +0200 Subject: [PATCH 1/4] Created lane turn buttons; Replaced tiny GUI buttons with new --- TLM/TLM/Resources/TurnSigns/ButtonF.png | Bin 0 -> 965 bytes TLM/TLM/Resources/TurnSigns/ButtonFGray.png | Bin 0 -> 1281 bytes TLM/TLM/Resources/TurnSigns/ButtonL.png | Bin 0 -> 2028 bytes TLM/TLM/Resources/TurnSigns/ButtonLGray.png | Bin 0 -> 2789 bytes TLM/TLM/Resources/TurnSigns/ButtonR.png | Bin 0 -> 2073 bytes TLM/TLM/Resources/TurnSigns/ButtonRGray.png | Bin 0 -> 2802 bytes TLM/TLM/TLM.csproj | 10 ++ TLM/TLM/UI/SubTools/LaneArrowTool.cs | 103 +++++++++++++++----- TLM/TLM/UI/TextureResources.cs | 20 +++- 9 files changed, 106 insertions(+), 27 deletions(-) create mode 100644 TLM/TLM/Resources/TurnSigns/ButtonF.png create mode 100644 TLM/TLM/Resources/TurnSigns/ButtonFGray.png create mode 100644 TLM/TLM/Resources/TurnSigns/ButtonL.png create mode 100644 TLM/TLM/Resources/TurnSigns/ButtonLGray.png create mode 100644 TLM/TLM/Resources/TurnSigns/ButtonR.png create mode 100644 TLM/TLM/Resources/TurnSigns/ButtonRGray.png diff --git a/TLM/TLM/Resources/TurnSigns/ButtonF.png b/TLM/TLM/Resources/TurnSigns/ButtonF.png new file mode 100644 index 0000000000000000000000000000000000000000..745165717f242f5d0f6143904e2082b26071b53e GIT binary patch literal 965 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 literal 0 HcmV?d00001 diff --git a/TLM/TLM/Resources/TurnSigns/ButtonLGray.png b/TLM/TLM/Resources/TurnSigns/ButtonLGray.png new file mode 100644 index 0000000000000000000000000000000000000000..323331892a34d7711f2825ad1cc468ea5e5621ef GIT binary patch literal 2789 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 S-!n&FC;)5igl@JBO#dJJRu#nn literal 0 HcmV?d00001 diff --git a/TLM/TLM/Resources/TurnSigns/ButtonR.png b/TLM/TLM/Resources/TurnSigns/ButtonR.png new file mode 100644 index 0000000000000000000000000000000000000000..d712da2adaae1498eb0358d340878931b54fb553 GIT binary patch literal 2073 zcmcIl`#;m|AKo;~JZw%Ql0(i($)Pbrj9AQRMWvb;5p&M;B$h+YrK~;L*C`rHL|){O zQy!-|C6TpnIrJ=MCZP=J`F{E%zCXP0_kCTj_xrxC>!&-*6MsqurV0arKr*f_SZ|+}d6U#lk)Dj3JneB=_NuXR37IVpJXB0Db z#SVRg`p0Hbl*xyqQ|&X=?p5Ej_k_4;QV~4aC8x*U=UMU&wb-iyJ^b4*W%By95A;kz z<+%;TqI)RYf4b|Z-@5UF9u^m2{u~eI?$SHI-}SxE7nODleC};g4(Cok{2RL<{FWuv z?#+6|-t(87VVdOTQR z*XF)M2xh;>*RMVm3irg2iJ9R(rykW#!{-(a*C*AQS%;cBJ}5=mWt#&Y4lyn;ZaJ6L z435chnE5&nhCF(b4B5Y@3^5v6<3>#_nfkMAN5J8gGe$I@8H1Mbq?nj> zQ;Mb%ES*ba0~u5muBx_MTUl+ZxVZw7foWoKmH%vJM1 zS?OF+0C`{y<1oLZ74=`&F0g-q1dRX36Z{y7L{@h64p>?Y+-PotA@Kr%ppjS(SZJFh zzqFHt*WT#(h4HHfLa(m87l@{r#_84_0gSeNRmbT)B%BCP`2jB1aItQ>JUgBumFLjR zk#vzkh!0Ga_K4jXwA=;N__J&z=})tQUdSK~u+1E}jfzGx$mF6l>mBT`uLw?Xsb-RD zJ9}}Xg4hWJGo`BKmcI%jlUJ(*U6)@*&b9{5wkOYKc!lWe>kC`A6VdeE_c$8+Jzs{K zn@Oi)9u>6~j|K;Lp^MeDxddo>^NSZTuKkk@nQ7>v_M;FkA;rSXEH;rpByaqKzAP!3 zOpRAh5BJeFUtsfIEPf76VkUqsu^x`{(-RXDeR-qqeg{+hfOG&FR9_}`?5$THq5HaaSM;pE>>35Rp$QjJJerg5)MS4|RA4Hs2u zbrtXchHVeVY-!nQ2hq&mH=HOJbMMJYYd!Ck2vr}ZaqySKbutCYT>;lAZjIO<-uP*C zDR}r}GCaId+EK2gBKB^Q32^OQE2FN*ufzs0{y5t>)dseGv$$6+ zlf|XY0R;}#0*&4kyQ!i`+0+VeOf6SQ%E`$Q&42Iy?ZhPgN;KrAiq7xJtU3C}XC#R| zj;i6C(BX44%w9&fy+9-qT{t$shG>@Z8+$3<#}o=9{@j^&ym6>FFfoy{?H*0Lj?=gu zy)}CxTp@F_ConK@pIywZl<`8BAm-B`v?*^YOzAR2)?x=y7h2mz@sjYZ`|#-?Udt{Z zIt_+MOCGO1f$%q5$tbSDYE#iJ=BS1KQHJPJ`n`Vr{%^Bz%nrgMkbLXlWoe(sZ^y=T z{Ho{tnN?N#-A=lsO|6oCa_djY7FfFVMbz-}hYx>Hi0bON@6ll=2$?g1Sv1_EVu; z`T3e8nN?q0NNT(0wN1m1est%?`D>8ZvVAp0g{z(kT5&0lBiWgAi#GxmV>#@X0~ev{ zWgCN(Fy7O(#GZJaMk?-j(N6_`zp1b@+XTMOx3Vo#%t_k=ib$htMI)HCW7$EGXg^U{ z{85a1RTud4ud~*K>^}JO3MCVr2If-J3WdFi2n)f)0Ho zmieZ5eI1Dc_isAQgr|%}n=VI4DHCg^cAz7T-hK68>v4R`tS?My0(7nEgYL0$+?n;Q zkL^dI@Ln1?sF60XR|>AboP5H<;ycuMouA_=C-r7qZ5*cbxu_G}-hPMJkah>)jxk0T zS}Q`*v*+`Z8{94`1Dn4RBxV6v3BT#7|1Fql%WW2DGQ#a;B3eL zKOrSgY|m4EBG}+px0HL^p;Y#5J-O15N#9R7YyQl0h!@-WeA-wMc8XY{By)IG4DV`F lx8375D?7vNIr=00UvRMyHJ!hsR}K8!AXg_mw$6cg`+uav&_VzJ literal 0 HcmV?d00001 diff --git a/TLM/TLM/Resources/TurnSigns/ButtonRGray.png b/TLM/TLM/Resources/TurnSigns/ButtonRGray.png new file mode 100644 index 0000000000000000000000000000000000000000..941ba2257eca863dbbfbe48e55c55b15ba965fd5 GIT binary patch literal 2802 zcmcgu`9IX%7a!YTOeTa7#zZou-%jYft6VFwr^X8zs;Ui0c!%s%pqd=g>J0iP20)Q_ZYUOqn1QPB1Ydmi$j|o8V z@U?TU*PJP&Ymq)-L{O-Yf5?q9Lz|D_ASI>Y+MaR5u;YlR zphvUcdw5s5L?*P~+&us}`E#|U7H+C&3s+ZDTjJBsNg+5OO2xCYc9>UrGV}8CNa=i^ zzS}25ZF*`M@5L9-L*Y~aa_o|p^zzCI;a7kdnZ3nMg4%!sDHQVh`Z}I}uz!%CM;hGz zxJc;$%iNgH)fmtPmtN>PR6EoiZgdnGKS$l zKFw{ePO81{!PfvZ^oyWzUAk{K#HK-Kjss@+kwlXiid!6_{92)07n+8SWTKYWD8sBtiRaVq?$#j4}>d zn`*sh<~|Y|WdSB0J99>sqTn!ZXM@FJG2!9d?>_m)FN6pVVZ1XB-<#XnL1U(CbY2k^6YRslVjk1QzYb}eGxo~hDboi$H#H)$r?arg_V_+Hwy}mIOTeWwqBZK zCM*99j*X2K=?AgQ(hz1=opQRzjU4tE-QC^y4wnkSD80oi<&~99U%rrRgp`n%Bw_6$ zIpzQ+y0vv>R$kujPJ{z!&C8+XJNlNpaVand%w4` z5w~nmC?<-N2Xvm~?BOvGs?ECWdyF?i>PQCx6veQa!28;Z(mQ}|IONi6Bky-pS^a9{PklYMNCwuS)!3ihf?Z0MTS?CM7DOgffrp}tw?a*+zqt4OaYWp8m|z+FHl=uT_T>r zpWZ6f^E?u+@I4s!)cu@_@j`W7wIOeu)A~VO10F}#!2DNMBc3pyX@(|!InDVrTb}?0 z!@qSZZ&DC!0S)s3vV&RE@Ha0iI))B9!pSUx&|KXr=Om0DuE-o(Kqw>+e zH-pPt{;?XVfGH(H43-6Wo5GjJ9EH(PVPRo<)Y-)k$#+rZ3`W7bGWB*bJKawh@ zy%9Dk|B(Ecx6DF%b9)`%X)79qEiF{a*$Jiwx(0E(+YXM7VmZUNK8=lq z@Yma#+|@C1J*DNvSPTvbKuAcJG}l7)JfV{>iD&eVW`{RNLIsUP7V9F41nWKiVsn)W z{5!cZ4fWD5vC;x<(;3S_CT&Phml&R31NyUbPh)=MmTsSJ7;1~#J5xjyDIv?<2^k$z z9K1}%sj90T*ctbk##B=Hicp=*pR1EC+;3)3F&I-I&){jAz356{_uXB9jq0&u+w-$v zsgMWD{81KN7NNqNY*kD`wHnWZDry?Vf>R4N->R91ojf(8Pnq$nQDddb{F3sXMMp;J zcdi$St`_-VaV1q%iVdZyDC6LnotSXaN#AYy zJH-R?kNj07*p+2vowq;cHfSbP%RI6)bH*I&pgoRfM~OwidCp(%!UuRA46zir);4`$ z4l8&n?Z5K!_?D@D`3$LrNYY=VXfj?UY7|AAr_g9CAFD7c!_#dps=fivrR}toc!Ng# z<_+-Nacy!{$&OS;z6kJE4-+|+xXZWX#CS^jccmHM;?cg^8UzEyf~>r61Lv<;_Z{4B zNJ$PoitzUG@{*1k<)K+Fnf1I{Q`W%ZZUQVk9*;@D$&Xka;_=BZdplq3z(zMn=C%+ literal 0 HcmV?d00001 diff --git a/TLM/TLM/TLM.csproj b/TLM/TLM/TLM.csproj index cb126ecb2..151e55a78 100644 --- a/TLM/TLM/TLM.csproj +++ b/TLM/TLM/TLM.csproj @@ -458,6 +458,16 @@ + + + + + + + + + + mkdir "$(LOCALAPPDATA)\Colossal Order\Cities_Skylines\Addons\Mods\$(TargetName)" diff --git a/TLM/TLM/UI/SubTools/LaneArrowTool.cs b/TLM/TLM/UI/SubTools/LaneArrowTool.cs index e9577dbd4..c5e42f6fa 100644 --- a/TLM/TLM/UI/SubTools/LaneArrowTool.cs +++ b/TLM/TLM/UI/SubTools/LaneArrowTool.cs @@ -19,6 +19,27 @@ namespace TrafficManager.UI.SubTools { public class LaneArrowTool : SubTool { + /// + /// Arrow sign bits are combined together to find index in turn arrow textures + /// located in TextureResources.TurnSignTextures. + /// + public const int SIGN_BIT_LEFT = 1; + public const int SIGN_BIT_FORWARD = 2; + public const int SIGN_BIT_RIGHT = 4; + + /// Size for white turn sign in the GUI + private const float BUTTON_GUI_SCALE = 50f; + + /// + /// Sum of widths of GUI elements for 1 lane. + /// NOTE this also adds spacing between lane columns. + /// + private const float LANE_GUI_WIDTH = BUTTON_GUI_SCALE * 1.33f + (2f * LANE_LABEL_OFFSET_X); + private const float GUI_HEIGHT = 24f + BUTTON_GUI_SCALE * 1.66f; // label size + buttons + + /// The horizontal offset for "Lane #" text in each column + private const float LANE_LABEL_OFFSET_X = 36f; + private bool _cursorInSecondaryPanel; public LaneArrowTool(TrafficManagerTool mainTool) : base(mainTool) { @@ -30,15 +51,20 @@ public override bool IsCursorInPanel() { } public override void OnPrimaryClickOverlay() { - if (HoveredNodeId == 0 || HoveredSegmentId == 0) return; + if (HoveredNodeId == 0 || HoveredSegmentId == 0) { + return; + } var netFlags = Singleton.instance.m_nodes.m_buffer[HoveredNodeId].m_flags; + if ((netFlags & NetNode.Flags.Junction) == NetNode.Flags.None) { + return; + } - if ((netFlags & NetNode.Flags.Junction) == NetNode.Flags.None) return; - - if (Singleton.instance.m_segments.m_buffer[HoveredSegmentId].m_startNode != HoveredNodeId && - Singleton.instance.m_segments.m_buffer[HoveredSegmentId].m_endNode != HoveredNodeId) + var hoveredSegment = Singleton.instance.m_segments.m_buffer[HoveredSegmentId]; + if (hoveredSegment.m_startNode != HoveredNodeId && + hoveredSegment.m_endNode != HoveredNodeId) { return; + } SelectedSegmentId = HoveredSegmentId; SelectedNodeId = HoveredNodeId; @@ -79,16 +105,19 @@ public override void OnToolGUI(Event e) { if (diff.magnitude > TrafficManagerTool.MaxOverlayDistance) return; // do not draw if too distant - int width = numLanes * 128; - var windowRect3 = new Rect(screenPos.x - width / 2, screenPos.y - 70, width, 50); - GUILayout.Window(250, windowRect3, _guiLaneChangeWindow, "", BorderlessStyle); - _cursorInSecondaryPanel = windowRect3.Contains(Event.current.mousePosition); + int width = numLanes * (int)LANE_GUI_WIDTH; + var proposedWindowRect = new Rect(screenPos.x - width / 2, screenPos.y - 70, width, GUI_HEIGHT); + var actualWindowRect = GUILayout.Window(250, proposedWindowRect, _guiLaneChangeWindow, "", BorderlessStyle); + _cursorInSecondaryPanel = actualWindowRect.Contains(Event.current.mousePosition); } public override void RenderOverlay(RenderManager.CameraInfo cameraInfo) { NetManager netManager = Singleton.instance; //Log._Debug($"LaneArrow Overlay: {HoveredNodeId} {HoveredSegmentId} {SelectedNodeId} {SelectedSegmentId}"); - if (!_cursorInSecondaryPanel && HoveredSegmentId != 0 && HoveredNodeId != 0 && (HoveredSegmentId != SelectedSegmentId || HoveredNodeId != SelectedNodeId)) { + if (!_cursorInSecondaryPanel + && HoveredSegmentId != 0 + && HoveredNodeId != 0 + && (HoveredSegmentId != SelectedSegmentId || HoveredNodeId != SelectedNodeId)) { var nodeFlags = netManager.m_nodes.m_buffer[HoveredNodeId].m_flags; if ((netManager.m_segments.m_buffer[HoveredSegmentId].m_startNode == HoveredNodeId || netManager.m_segments.m_buffer[HoveredSegmentId].m_endNode == HoveredNodeId) && (nodeFlags & NetNode.Flags.Junction) != NetNode.Flags.None) { @@ -118,42 +147,67 @@ private void _guiLaneChangeWindow(int num) { for (var i = 0; i < laneList.Count; i++) { var flags = (NetLane.Flags)Singleton.instance.m_lanes.m_buffer[laneList[i].laneId].m_flags; - var style1 = new GUIStyle("button"); - var style2 = new GUIStyle("button") { - normal = { textColor = new Color32(255, 0, 0, 255) }, - hover = { textColor = new Color32(255, 0, 0, 255) }, - focused = { textColor = new Color32(255, 0, 0, 255) } - }; - var laneStyle = new GUIStyle { contentOffset = new Vector2(12f, 0f) }; var laneTitleStyle = new GUIStyle { - contentOffset = new Vector2(36f, 2f), + contentOffset = new Vector2(LANE_LABEL_OFFSET_X, 2f), normal = { textColor = new Color(1f, 1f, 1f) } }; GUILayout.BeginVertical(laneStyle); GUILayout.Label(Translation.GetString("Lane") + " " + (i + 1), laneTitleStyle); + + //---------------------- + // Button group + //---------------------- GUILayout.BeginVertical(); GUILayout.BeginHorizontal(); + GUILayout.FlexibleSpace(); if (!Flags.applyLaneArrowFlags(laneList[i].laneId)) { Flags.removeLaneArrowFlags(laneList[i].laneId); } Flags.LaneArrowChangeResult res = Flags.LaneArrowChangeResult.Invalid; + bool buttonClicked = false; - if (GUILayout.Button("←", ((flags & NetLane.Flags.Left) == NetLane.Flags.Left ? style1 : style2), GUILayout.Width(35), GUILayout.Height(25))) { + var isLeft = (flags & NetLane.Flags.Left) == NetLane.Flags.Left; + var isForward = (flags & NetLane.Flags.Forward) == NetLane.Flags.Forward; + var isRight = (flags & NetLane.Flags.Right) == NetLane.Flags.Right; + + if (GUILayout.Button(isForward ? TextureResources.TurnButtonForward : TextureResources.TurnButtonForwardGray, + GUILayout.Width(BUTTON_GUI_SCALE * 1.33f), + GUILayout.Height(BUTTON_GUI_SCALE * 0.66f))) { buttonClicked = true; - LaneArrowManager.Instance.ToggleLaneArrows(laneList[i].laneId, startNode, Flags.LaneArrows.Left, out res); + LaneArrowManager.Instance.ToggleLaneArrows(laneList[i].laneId, startNode, + Flags.LaneArrows.Forward, out res); } - if (GUILayout.Button("↑", ((flags & NetLane.Flags.Forward) == NetLane.Flags.Forward ? style1 : style2), GUILayout.Width(25), GUILayout.Height(35))) { + GUILayout.FlexibleSpace(); + GUILayout.EndHorizontal(); + + //---------------------- + // Arrow sign row + //---------------------- + GUILayout.BeginHorizontal(); + GUILayout.FlexibleSpace(); + if (GUILayout.Button(isLeft ? TextureResources.TurnButtonLeft : TextureResources.TurnButtonLeftGray, + GUILayout.Width(BUTTON_GUI_SCALE * 0.66f), + GUILayout.Height(BUTTON_GUI_SCALE))) { buttonClicked = true; - LaneArrowManager.Instance.ToggleLaneArrows(laneList[i].laneId, startNode, Flags.LaneArrows.Forward, out res); + LaneArrowManager.Instance.ToggleLaneArrows(laneList[i].laneId, startNode, + Flags.LaneArrows.Left, out res); } - if (GUILayout.Button("→", ((flags & NetLane.Flags.Right) == NetLane.Flags.Right ? style1 : style2), GUILayout.Width(35), GUILayout.Height(25))) { + if (GUILayout.Button(isRight ? TextureResources.TurnButtonRight : TextureResources.TurnButtonRightGray, + GUILayout.Width(BUTTON_GUI_SCALE * 0.66f), + GUILayout.Height(BUTTON_GUI_SCALE))) { buttonClicked = true; - LaneArrowManager.Instance.ToggleLaneArrows(laneList[i].laneId, startNode, Flags.LaneArrows.Right, out res); + LaneArrowManager.Instance.ToggleLaneArrows(laneList[i].laneId, startNode, + Flags.LaneArrows.Right, out res); } + GUILayout.FlexibleSpace(); + GUILayout.EndHorizontal(); + //---------------------- + // Button click handling + //---------------------- if (buttonClicked) { switch (res) { case Flags.LaneArrowChangeResult.Invalid: @@ -169,7 +223,6 @@ private void _guiLaneChangeWindow(int num) { } } - GUILayout.EndHorizontal(); GUILayout.EndVertical(); GUILayout.EndVertical(); } diff --git a/TLM/TLM/UI/TextureResources.cs b/TLM/TLM/UI/TextureResources.cs index 60c2d49b0..ad9085be9 100644 --- a/TLM/TLM/UI/TextureResources.cs +++ b/TLM/TLM/UI/TextureResources.cs @@ -8,6 +8,7 @@ using TrafficManager.Manager.Impl; using TrafficManager.Traffic; using TrafficManager.UI; +using TrafficManager.UI.SubTools; using TrafficManager.Util; using UnityEngine; using static TrafficManager.Traffic.Data.PrioritySegment; @@ -42,6 +43,14 @@ public class TextureResources public static readonly Texture2D PedestrianModeAutomaticTexture2D; public static readonly Texture2D PedestrianModeManualTexture2D; public static readonly IDictionary PrioritySignTextures; + + public static readonly Texture2D TurnButtonLeft; + public static readonly Texture2D TurnButtonRight; + public static readonly Texture2D TurnButtonForward; + public static readonly Texture2D TurnButtonLeftGray; + public static readonly Texture2D TurnButtonRightGray; + public static readonly Texture2D TurnButtonForwardGray; + public static readonly Texture2D SignRemoveTexture2D; public static readonly Texture2D ClockPlayTexture2D; public static readonly Texture2D ClockPauseTexture2D; @@ -123,7 +132,14 @@ static TextureResources() PrioritySignTextures[PriorityType.Main] = LoadDllResource("sign_priority.png", 200, 200); PrioritySignTextures[PriorityType.Stop] = LoadDllResource("sign_stop.png", 200, 200); PrioritySignTextures[PriorityType.Yield] = LoadDllResource("sign_yield.png", 200, 200); - + + TurnButtonLeft = LoadDllResource("TurnSigns.ButtonL.png", 80, 127); + TurnButtonRight = LoadDllResource("TurnSigns.ButtonR.png", 80, 127); + TurnButtonForward = LoadDllResource("TurnSigns.ButtonF.png", 62, 62); + TurnButtonLeftGray = LoadDllResource("TurnSigns.ButtonLGray.png", 80, 127); + TurnButtonRightGray = LoadDllResource("TurnSigns.ButtonRGray.png", 80, 127); + TurnButtonForwardGray = LoadDllResource("TurnSigns.ButtonFGray.png", 62, 62); + // delete priority sign SignRemoveTexture2D = LoadDllResource("remove_signs.png", 256, 256); @@ -264,5 +280,5 @@ static byte[] ReadToEnd(Stream stream) stream.Position = originalPosition; } } - } + } } \ No newline at end of file From 575cd6c4f14651e1ce61787890bd5b833ef7f1ef Mon Sep 17 00:00:00 2001 From: dmytro lytovchenko Date: Sat, 22 Jun 2019 16:27:09 +0200 Subject: [PATCH 2/4] Darker X on disabled buttons --- TLM/TLM/Resources/TurnSigns/ButtonFGray.png | Bin 1281 -> 1657 bytes TLM/TLM/Resources/TurnSigns/ButtonLGray.png | Bin 2789 -> 2474 bytes TLM/TLM/Resources/TurnSigns/ButtonRGray.png | Bin 2802 -> 2467 bytes 3 files changed, 0 insertions(+), 0 deletions(-) diff --git a/TLM/TLM/Resources/TurnSigns/ButtonFGray.png b/TLM/TLM/Resources/TurnSigns/ButtonFGray.png index a30ab8eb9a23bb91063b7d9efce9e09549abb5f3..acaaf56b2d55097181b3bb67da6f9abf5fb169e2 100644 GIT binary patch delta 1585 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 SdaP9d0000oQLmJ5J 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 From 681fd7487feb9233cb7b0750b9ec1f30c6efe7d9 Mon Sep 17 00:00:00 2001 From: dmytro lytovchenko Date: Sat, 22 Jun 2019 20:00:11 +0200 Subject: [PATCH 3/4] Narrow lane arrow GUI a tiny bit; Cleaner arrows --- TLM/TLM/Resources/TurnSigns/ButtonF.png | Bin 965 -> 933 bytes TLM/TLM/Resources/TurnSigns/ButtonFGray.png | Bin 1657 -> 862 bytes TLM/TLM/Resources/TurnSigns/ButtonL.png | Bin 2028 -> 1321 bytes TLM/TLM/Resources/TurnSigns/ButtonLGray.png | Bin 2474 -> 1362 bytes TLM/TLM/Resources/TurnSigns/ButtonR.png | Bin 2073 -> 1276 bytes TLM/TLM/Resources/TurnSigns/ButtonRGray.png | Bin 2467 -> 1301 bytes TLM/TLM/UI/SubTools/LaneArrowTool.cs | 2 +- 7 files changed, 1 insertion(+), 1 deletion(-) diff --git a/TLM/TLM/Resources/TurnSigns/ButtonF.png b/TLM/TLM/Resources/TurnSigns/ButtonF.png index 745165717f242f5d0f6143904e2082b26071b53e..89db7f75cad7ae9d68ac36a06f6727af5bc390ae 100644 GIT binary patch delta 854 zcmV-c1F8JQ2c-v)B#|)~3c>&Y4#EKyC`y2lQzw5TNkldg^O;xk*r*Z#z#V{?IdZXNlR)8lvFfih-1vNE?kS^)-XeS2rLj=*B2Q9rP zpU)pcCRZq`B{7Ca9#=tY@1U=yHDqy>YQ665@W|l_%HrY_Vz`TvO70+oXCR8Zptpag z#4cTYjX3U*OsCM=dl1PT&{GJsX7d*iC$a|YUNv=R?Q zw4Xwua2P#=WOZ%Lnc?9tG>B>+$#nVwyoIK$Y4#2eUn#Kd&qVaq^auI%>L=+p=?_UL zR8{5Qb$Ce!;!g&9=VXO@*U2MH3iW>|*dtaG$z-z;EYqQD+aw;gVKo-CPS1sxtonW4U^Nl9OQl^K*q7cSLz6;l zxq%fIXQI*In|E(5Kkhi2oPW{zfR$VzI~TB$3uNa4R&s&tT);{$kev%y$wj-}?(hm$ za`F7-i^PYmPZvn%aWu}E&XGROlA@$((iG_w=>+LG>FC49kB-1fE@<%Z$In}#Aqw`2 gtuv1MI6@%s7vm}LkI(6xdjJ3c07*qoM6N<$f>8OSQ2+n{ delta 884 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 diff --git a/TLM/TLM/Resources/TurnSigns/ButtonL.png b/TLM/TLM/Resources/TurnSigns/ButtonL.png index e665655d96d192be86e65a0887eb0daa2bd32c00..6da0d7df23741e4763f91929d8b711930659daac 100644 GIT binary patch delta 1246 zcmb`A|2xwO0LN`@+LvN&OXvw>^r87yj*QEEY#LX-<&keOa_0K7IL~3Hd^Vw`T5UB; zDjSNP^mTPsoR$)OQ^Un_zMJF0xo5LX#JT_BUcbFx&+~p>)8@A@7sw({OH7N2iCGJ5 zBM{0H?Q?<r>Z4j351e!Ehr=MABS zc)G=P3_Xmdt7CLU_YqaBAGqL7cx3%!f6_WW(0$53QUUtJ27X!w8O@OU=*si?5GaQH`geTWM`>v-Zm;3@-5r z35&1_twg|=L=D(ImOh5+;_nQ!rgQ139t4tmh(fbu+izr(O+B)7;v<}+jN01T!Bj<_ zh)GrJ#H?XW(EdNq(yMNXq+>>-(Tw^GFJif94Y6@?KUM1;Ht=iXlg@uinnF?&1Srd* zCY#&0vu=6MGZ5&|0TZ8VB};bg)%w`stdG8R)m`sF1d0op2KRI3cTq#5bsMc6UF7sN zdn_a@N1Mv4OQpi(qn9S!e}n~sWp&RkArY9Uk1_VJYR_b=}qn9Q-O%N1;{s8B14i!<2lwk=lX3C9MQY{g}A zV1!8N1gXE@5b&8_V77Oev#G&gFxdK#8d%d77s)6Je&x)*-W_uq%Oy(L=Yhc$=j9sq zCm-)C6Vq%tPnDe0*nd9DDZ%Z85>+W+#JFs9{^(PXF6RyTd|VcE^@_euQjU9DEXdVH zzg=Bx-hQZD8R=Yr`8LxOiLu)Q21>H&HA^w&HlVgtV6AFc#C;t=#x?u(J{BfyXqtWELH9;4`w?#Te z(AL?`(^sTf=HxDBG?s{C|1IlUnDMVcFE@82BJksq4EqQgI`JP?>ZxYgCaeoHT@T zN42o9(B?Ll_dGT@#A_3v>~%@%nS!2Xj;L6=-#Pp zEPG^h%sb4hvP(=pS7n5L#XEbrTUImYbWZwSp12b`C&-o+!X*(hu?&gn2;u+{Xrzmr z=18n7`p@Dq(I7wcf0MyA*?Gq9VhrIglFzZh-(7p4!xpUr6U!XRF*9eOD3K6rHisUKX`Mt4t>id4M8a>GQ%27=#8ZZncf=$y z9;fD14xPpm-dIg1mSSpi3eV$uulL{gdhb8KpZmVP*Z2Bf*IlFV4M8_j0LS^dV?gyU zcZnGKItslYkWw%B8M&Ioa5Dj50iM_+#H4fIS!c;QIL)jLnB1aT@(be+Ph!sA(1Bv6 zC{T>dWn~m$TZY-eYB~*jw@FnM!@*vfGr^CP5<}PtBYpjcl30B=bWLx5-}U@Q>e!gy zWO--yA1qe$OcAp4rAFwpw8M`b+vfy*UZX^&Z%zD#*zln|@Ba7q(;fl}Bm#J1>7`Oh z7~ab(CE`tChGiCfQXtqvee&7@By}=I(e!(i5QtFT_YrVg2CKXrkbO5Y8n69qAEbK5 z0(=GzhKp<~jvrli-nsGwM!WHUB!HkCNhU8SwVEFD_I8o0yu~&m5kPhP zODWKKcZOD%{FzUE()g*KwGWy^Yf>>WyAj*!lS5Fm^URBe5`|L^j*h@D zcwV?`*ucHtlGqke4mCt^p~;(@BXnHxN?E;6`tIj5K}5%+uId3iyt%1X3?p|+4ysR6 zvOXOs0BLaU%F~Y-tA+|OCoGG~sJLjwJbFK};WH_AyMHSZk9USvz9k|XJ$OG>*EN%T zazAbL5CX%nEehei)*8jPp7%+B150i{H>t2MtoFngcb*6iXlQ5v8SEh5l|rp~65mZY zy-L_yY%}v^W-%yg_Bs=%v+|)(V_vSF!%3A#RAqar?>YThBC!&Cgnb^&J>=r@dqM2( zBTO7f2hho>%k4KP+XnA&XW~$*uH*S!Zp#ZAjaDnRrlST8c)k`EK>*coLcHtxwgm=B zCG3DUnSv+{Z+^=T>cJS%)EQGbt&9YTzef&<|CCp!=y<}xyo%TAYDBXuN#Hz1o3rqh zmpK}PAu!0KVpPwvM`xn@R=^dJS&O5o?^t(mU?<&Dwc+v4pMl-5lVe9hUgh`dq3C{_tvm>XAhLo3a(?VEIPF&+>Upl_kb02Hm8(~;ZclkFbwGClz&z-DCbj36(BCg0AgYYWE=iRP zObGDdQP-@@>?w>uOgnUtW}L4dsv{pHm6L5{R7EfaGh# z>2*jQr<1D(<$Vp6dd7I~ho9e;=T{ae?(OiiEE3+eKeNDzI(&&tls|cJ*{Cc|RY@E@ z)kfr;d=HLj4kml;NDFK#-}6YVC)?&5VBaA-7T)`=#B9B57A1qt$jVW><`dBrZ)c(q z$r~O2$g~(-=2c&~L17WiTe@*I(%?ipBlr|}xluLyM)>O%2bDja;m+v$K4!wZs8esP zc631viw)%&u4nKR%AEH`wg0B})|c?eDBVHj`+_6tVKr{pbSuq=m{?--$?ZTJtPA~@ zPxKPz0hn(+_iHHCcriJcVA_9QHpf2g>wc?NE_bDasa^50xZnd~G4{|8G8OcDaGPJV z#MgkaqUPmCdBhe;4hj!n&`pRw=3~rj-a9ownx_sbDhG|__pj9)vNY=6Dcnp0FDx3^ zqWeU+VK_bFoc!os(P8Dw$pC*p1e>zl(;$NtzYm}=n7S2g$B4H(FH-hJJft$efzC^l zHy|;u6l~FyT@Jwe_EWIRGCj@Dv07FI(z*r+$;QSeP8g-|aVfELQ!BloM@cytmYqE# zWHFudIMz;{nIM&Lv)>Tb#lu&-$mQl>-#|PQSDpsI>ZOZ-h+I?!Uk?A z(bfJ7fd5JUFZi&VHzX24OO#$`u|fGADnoB>-;GO*p06r*ixvhPbOf^BGy9bVBOR#f gIDKvJl1G1od$R4Dp=&W+psn%5;j#4?nV|H401M)x00000 diff --git a/TLM/TLM/Resources/TurnSigns/ButtonLGray.png b/TLM/TLM/Resources/TurnSigns/ButtonLGray.png index 60fa5205b9c1701210fc51955d024f3997c106e1..b8b9fe3b0b9089f4f263ee3ff70f2b7148342f84 100644 GIT binary patch delta 1284 zcmb`={Zo<$0KoC*L6AhtN8^0gz|6N&M`5Yi`Q&tE;(H5CP{&LQ6;Ia7<7V+#2Vz!| zT_q}NWz%w#in8=l(Q(SMl5{~D%$H<&HiM#sw5_#2VR!rf{JHyHUp-0?MH1uyuu2ZH z)s;49zw+f_RdF%fcOzK~+NgrG6qlhl?D!?WgoHx&r@IsCRJS?R=ATuU+70lQ*aqwl zymJaeqSJa{CA%3|hkp80^D06w5Zgcg$`tQbr;Y6D8VP^-yY`RBC<`}L5fi2Labn?* zlU!68G%%5QUDRL}iD^z^?UhA0cc!I>?cayyj3RBt;F#Pt@cgbDGMTBCQ!EHf?r9?D1R^Pq9zDYS@O0k2 zTbG$^C2xFD!enIHsx=zJ=)yq?9~CQX>El0PpR(VRb%|c70OD<|TYrAnr#af<$x}AS zjIl10k-kD85b!$2ip(MkkVMV;?%klNKJhL+*IC}%U%<)DodqQvXf3epD1D+Mtb+tJaGh)ikp4)htH z5o|v9xD(&G;c-P3TU1d|VX@_!r*Em-Rb-Oj$n}ujmhD9~WfASx8I27eclsU4RxcD5 zM_n-?XTX~o5A^O;zYaYIDh=QAx|U`0h1cHIJbtkb5O$Rv*$gTO7Hagh^x4;A_olT* zd_;9Nelt>DiNzf7AxU3Wkb6Nt6VS#}_}z$R0pzgDwY=E+`6E ze;sJRkn&E$v;*IgE9#zN=3yRiyX zx$TVqQs?Us2|o*9ImT#E7ju|z(INq=s%k?Ws!p__O!Z2N4E_9*$^c<3*%uU+RIg(n z+NWpk0d6J=#khvLz`hYj(jYm{$@owa^J9m6a6m}dezfO_l2g7>w9`C>opv0_|mOXOF7YUz@y~VxV>bq2~6G; Wmj4||ZQ3>od@e3FF{UFr=lDNLU_IFY delta 2405 zcmb_c`#;l-7oWL2<~EneCCg=FF3V-P^pGsKP44DSCXA=3xh2XzhVo2!j8QU+DM@n6 zt&%2})-t3hkxE;oqAWzDXW#EH-+$nHUgwu{d!O?@uh%&fGL0%F_A>n-kV3y$5AE0@ z&D8*aAaTwZ{Heo>)raD>1Job3C_m$2yO-{euI_OTN5)(~?)*`&7Fi(MU(jZdSoU&a z>e7`pwWr5!Bqo11zm2PU=y^#|N$HHv)Y&%&^9r;um>riJutVu~dZK3xgU_ltI+t`}9^GIEfe+cc8|YA3`xAO-)TT;%9`#K{q1nyh#Tl zWnK`)94D&tfcF%?F$cD_EQs|$*yN~@nVGrN@cgs3kVqsp`=M6f%f28M+m6XY(*cgS zUHVe*!SYR;t2v49^Zaj2Zr5;S;O_S~z+IK%qw9l%ark{nU=wq2+}qjP`x+S?YS+9j zyP|$=LtA-r)IY-^trH1-9_5=quI45Z^XT@iq~lQxUu)b z*=Q2!8#3VdK2fITu!e^A5XJ&9G08zKE6Ba5$1vL3+DVqo}CJ2_J%k#N64?tGh7C zDL>v-DJ7vBPU`gASQL8NymHIBK2R=gse;wGOY`L;IuPxiA&MXj8PJ>4CF?ear|`b+ zybLf^$~eyVw#_Cz)&Tk~1XP2jTIq?6sj^%bSnWTIQ2h4wb4z*vd~I!QejaScR3K+? zkittP9P6?-e8^se=Ib+cd`K#yoo72Qvf-Ml7vbJD`m{t>U48G8z#wsZOomlJhG zD+_!+bqPNW!toKlE=)pNT3W@?qtt}5y0!W9>zg3E9=VW1&j8v7@vu;1Y62Q8$g0&b zp`PPI{BSWBSzSTb>X<-h(Cq#N&{C>c{a5 z_~3rh_-1cTwxgIz|rdDD?FCi}|Z^@RnO#@V0UgsRd(*whY$ zH^F`WQK%#*aY1&BIlb3CHlb>O4FcS zp4b%!7it!IAs+c=WNhr+{FS7PUM4L*6Y!m$vVvCj?OLD&d%L21Jd!j5rdMZU-I1rp9*XoLreJ- zL3yk|16jj(soYllS|#{H%h$e{thB6Z-k}bnuGSzFg+0V7v?qMZh~i#1wK!|9W2iU| zE{DrxbU=UEc)`rK*l9IVOkM}^#O$B=YNmEe;KPRYC^nxDH$FWXq*_=cm!urPr<8TRyo-Mdk=X0g3u%VgI@TrmNfb~>$s;qRN}BfPl0aC^ zz@APKCyKc8>zYeCP=KIPba%i+g#xN9k=LLFxWUHNq>+wcto#v#(N_A-1f(9C0-EkE zyxALc=ZUWaRp@rB{HTfINq!t6pn}SkH`#daE;8Y>HD?ZOFa_0Kd1P*QE}|ZY-z!I{%83 z#_d2U+O~|0ZhKno+Vh=fTWF}y(66wRmYA()++{B>C+&KAHf7LHjWWx_-IiVPdc38f zY;>N@ou*RBjoYN#vhW_1ZpDN&yw$ANIUw&AST(-I@i&|8)<-^^kU?4W@BKtox%~5I z##=_yvw)Krs^g>D*r$IA66M2yi@dU>yJwQ#3D#6huZCq_kqOc{kb-C_uq+~`9xf|nnlP` j+dE*=GG>FN1w1Ygv}?uQ{IyRlNF+EHFX!figq(i?Tn$`R diff --git a/TLM/TLM/Resources/TurnSigns/ButtonR.png b/TLM/TLM/Resources/TurnSigns/ButtonR.png index d712da2adaae1498eb0358d340878931b54fb553..f229f13597c344f4d25315c77876435b15bc3c04 100644 GIT binary patch delta 1201 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 diff --git a/TLM/TLM/Resources/TurnSigns/ButtonRGray.png b/TLM/TLM/Resources/TurnSigns/ButtonRGray.png index e08fbfce73b5d693d70571db88e10bd44c838df1..d630df15d59d93310891207b4e2272406b89d675 100644 GIT binary patch delta 1223 zcmZ21Je6yL4c7q%2EGG~S=Tx_C%UQCvrP7MaSW-5dwXYZc5tr5@xraDxxW6sCR?|C zJGwkeQ_SkdGA`L&zvN#m>zMrD#RH|T)t@)p-Ztj2TDgNmsj0rP*-GOFy9U>}W3S6| zRQ67uJa5kHUHx2*EOicx2)|6!pXGA8< zAVHJ>HI=RD+(W>)>^n&6JJ0`2v7upKXSQedcxN$+S zmiJ4lF%h4r4aTiJE@}~ zBC}&5Q_@m}HlB`1cOF@R&0P}A3TeECVh(4xl6)HKXILcVG|bRQ>S>rEk+h~^21nAF z1_^1yGKZel7eWb6*4KCT_V(6azjp16|BYi@%6!5f^lyZ1{+X1Qcka)UQ*nw%HZcZo znL2f_m?y41oo}hUnG*SY2Uto z&3>OBEz}VXWHMMOyK?X1%X>01UU!~g^of5T79M_*o8GW>-o~kdIRW5ZpqTgZ9yWC4>tb0?}Tz5EHpS+Lz_^)M+UynFf zGEV-uapQ5IDw)GZ9|PnL%$UEc7Dzk%ty=H@n^A4{?Ah@k6Tdt?%=xceLvHd9zg;^*`FCheZ~O$^?(pCc5OEM2;EcZu}%T>kiarP=?tJXT(7Aoq%O zhK{aY9nixwek_~xL~-uih`pOwf6P2~$aycrTKivRWn~}4x5&p>7as6h`f2L9`iwWb z7|hSjuXl03?y7ptqU??C+{%ZyJelhj%w5!Zg|%W!T)kI&WnkyS-!B~>+^Y9vdc>PN zO>G+IjGoYA_bz0{?fCF&YZUi?uf{y_gU&$>Yszo0`NrVq<8x=x;XMZB6{m_OF>GmS z|HjbQ({pFZ;XM}VuJgCeEo5B#aG{?=&7x;VEhisvmT_2Ju|hcD&FSeUv%Yf96{=XF zv7po@g>}NQ+PkmUa3p9}oM2mUC3ySY1@#R}A1*Xg*jM|z^FFta5I-+dgqBc8!2K$b{d0L#DYRrica|0Z-w yhp)fCZ_8HGt-o()WHD#4dNY3PUiTu3y^i@_#6O$q#ZD~@K;Y@>=d#Wzp$PzOn>S|w delta 2398 zcmb_d`#;l-`$h+24sDN9$ztX(S>@1HKIp3tgKIsoEJ?_4}JE0|Az1V+jYOL`@XN&ef@B;luQ4}#VWVS$*Hx;*XNy^ z&GRq@lnjV?w}8aZ+54nujli96wBNG}iSh$h6?#H58C&BF7}zeh-83x;hD1+h`J2{N^Y zUE%W(if_<0ThjR@FB|by;g^2#wZ6Hl-bco6BR2@`;O86)%rO`}jya0s`7F3;q^Ac4 z<>@Hey4Rm9^IN`EL!^5v?6Vgoit|o4AqXw_aC)?r*%`U4f82np?*9;U3MMi$vq#GW zO3Gt=Zp2)(-MI}y&V=T^>D+Fu(l3Rrb^9_j2(f#VGeRQyIh~og7?J%;3 z44~D8>G4?V{n4wKu#BD%)Be4|RVk#shpE>vz=a{>c*!eTuupgCqvYKVgU^8CyNnwc zUb`{fHTLuBz01^dgD-=VlYTtDb>xoW`|0#(E0x3Wd2gkxoCu-WE%jZ9;rSW0rLz0Z zp9g=<#7BK-AdIx~p%(RZAFFJTIpZvRQo^4YUPme((zb{A?N<1yI#oX7h0NU2lkUh) zAeHEIqU}lEG#{?UYGxzU+KhOUjq21=Kq7h(;?pL6~F9)k> z1XvmMZ>6q#<{pgRigUb9 zxzX8U)Yug?w>WNyYHkvo}06E*`Mew|LJbwQFq$?yVf1MN(qh zLnf}qLJJ_7MkUS(2_6)Ho0xIol*}Oeyu?A)M1e_L$Q_i&=q00Qt`es4DVm!95dMAq zdnGfX%B59{=6Fj@Zxyt5jtcO3%Rn)8k{9K96Nd9s2M!eD3E=?X>e7Vxw`aQjSwN)e zbB2dO3>ChG?p+C}R}-%7YTRyK*zgxJkA)?w(7C?kJ7F0Jp;Bx+?-Yjg-uJ7l^eGgX z7a)w#krl8*Jvg&@RfXT-OdA12vun>vBf8ei)#}!{5Dm4K72{B7 z1R?%5)AL(Kv5(il4+D}L+mbr>Ns)QvNY6t9Qg~(O`1Qk;gD#H*%0C(9Sb7#*_o<+# zXSV!bd=pELk>Ni2*ly;LsC@G=Vv4AqOCHRqAsVedb9}Z7+wIL5(tj6mqc@nx@B*YK zl=jiMUZD>pXHMkRe5_LpkkMXfoMB*bCaaaMV16zBw`LGKW&uYD|LQpQ0r8w^YVl=K z=*rX;)2wa9qtxZF=<4L*yEx6`3#|iEsS;ncd5W1H(`En1@*SbEU|5+79;Znx_PiXd zi-z4;_ZIx|DRs6FtuE+!XZHla(becfuSLo?HKT3f^CsBbVV7%7eGAKl0i0N>{>)lC z5%rp-D8AX}c`}f0ECw&1s87Q?rG3saJVZcjdk|ut;#Cym0T1S&sqAD)D9=;LWoN3S zF>KBh9ylfs+xm8lgnr($OgHO)h;84ls~fS#*lEGqYU-IZQiw-v10MJnEoWK_eQah? zI|>xt)g4CFnN_deXCnHbCRUHJ`U>~8@JB&-3*J`Ws9aw?RT&kR+#zCXOT~p1`w`m= zp5pq<=iy@-V$c%Ah&XuCgz7#{u-?Koh?#<$gnYhX$;qjp+2eh#VhA`IZzVm5l#VZ& zt{p_Fr?btfgMdms{H9RDsP0WqaFSuAC5bLBXLE5Fsz4F%r|GzF-}+XH?G`%eYfV(> z=jJt6{xMfD;>7NX!Glg>d04>aNNI_DwJUJtODkAepY>(qwJEX!BHb{yWQQp=H6AF;VAxHYl&!q4ygpd1<`Ojlf=#T37`}cE5 ztSNkIy@GS&%ajK@bp*DatE&YaDJ}X?yx-7Gn_*gU((2?`jF4CLJ@&0KY)%`rN4oFv z(}MvQz^U|HXn<$xF}4#@tndM5pk0v-X~12=cW?QR;s0^|pDB(C(~C|ub|u;T9k57Z z}zj!y{&A{wo_>t2Pq_J-o` W1nKeChr>y7vLX_E@lV}PUjHA{fp>)f diff --git a/TLM/TLM/UI/SubTools/LaneArrowTool.cs b/TLM/TLM/UI/SubTools/LaneArrowTool.cs index c5e42f6fa..0d2b18dff 100644 --- a/TLM/TLM/UI/SubTools/LaneArrowTool.cs +++ b/TLM/TLM/UI/SubTools/LaneArrowTool.cs @@ -34,7 +34,7 @@ public class LaneArrowTool : SubTool { /// Sum of widths of GUI elements for 1 lane. /// NOTE this also adds spacing between lane columns. /// - private const float LANE_GUI_WIDTH = BUTTON_GUI_SCALE * 1.33f + (2f * LANE_LABEL_OFFSET_X); + private const float LANE_GUI_WIDTH = BUTTON_GUI_SCALE * 1.33f + LANE_LABEL_OFFSET_X; private const float GUI_HEIGHT = 24f + BUTTON_GUI_SCALE * 1.66f; // label size + buttons /// The horizontal offset for "Lane #" text in each column From 064a89ba55e8096e2258ded7c0719007b34c63de Mon Sep 17 00:00:00 2001 From: dmytro lytovchenko Date: Sat, 22 Jun 2019 20:44:43 +0200 Subject: [PATCH 4/4] Remove 'Lane'+i titles on lane arrows tool --- TLM/TLM/UI/SubTools/LaneArrowTool.cs | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/TLM/TLM/UI/SubTools/LaneArrowTool.cs b/TLM/TLM/UI/SubTools/LaneArrowTool.cs index 0d2b18dff..963c1eca4 100644 --- a/TLM/TLM/UI/SubTools/LaneArrowTool.cs +++ b/TLM/TLM/UI/SubTools/LaneArrowTool.cs @@ -34,11 +34,11 @@ public class LaneArrowTool : SubTool { /// Sum of widths of GUI elements for 1 lane. /// NOTE this also adds spacing between lane columns. /// - private const float LANE_GUI_WIDTH = BUTTON_GUI_SCALE * 1.33f + LANE_LABEL_OFFSET_X; - private const float GUI_HEIGHT = 24f + BUTTON_GUI_SCALE * 1.66f; // label size + buttons + private const float LANE_GUI_WIDTH = BUTTON_GUI_SCALE * 1.33f + LANE_EXTRA_WIDTH; + private const float GUI_HEIGHT = BUTTON_GUI_SCALE * 1.66f; // label size + buttons - /// The horizontal offset for "Lane #" text in each column - private const float LANE_LABEL_OFFSET_X = 36f; + /// Some spacing between lane GUI elements + private const float LANE_EXTRA_WIDTH = 36f; private bool _cursorInSecondaryPanel; @@ -149,13 +149,7 @@ private void _guiLaneChangeWindow(int num) { var laneStyle = new GUIStyle { contentOffset = new Vector2(12f, 0f) }; - var laneTitleStyle = new GUIStyle { - contentOffset = new Vector2(LANE_LABEL_OFFSET_X, 2f), - normal = { textColor = new Color(1f, 1f, 1f) } - }; - GUILayout.BeginVertical(laneStyle); - GUILayout.Label(Translation.GetString("Lane") + " " + (i + 1), laneTitleStyle); //---------------------- // Button group