From e21d7bd5f7b116f4bfd91a269649e969e2998d02 Mon Sep 17 00:00:00 2001 From: GenZmeY Date: Mon, 14 Jun 2021 07:23:36 +0300 Subject: [PATCH] geometry fix --- ScoreboardExt/Classes/GUIStyleBase.uc | 105 +++++++++++--------------- ScoreboardExt/Classes/KFScoreBoard.uc | 4 +- 2 files changed, 45 insertions(+), 64 deletions(-) diff --git a/ScoreboardExt/Classes/GUIStyleBase.uc b/ScoreboardExt/Classes/GUIStyleBase.uc index 0c92c20..523a92c 100644 --- a/ScoreboardExt/Classes/GUIStyleBase.uc +++ b/ScoreboardExt/Classes/GUIStyleBase.uc @@ -509,7 +509,7 @@ final function DrawWhiteBox(float XS, float YS, optional bool bClip) Canvas.DrawTile(ItemTex, XS, YS, 19, 45, 1,1, ,bClip); } -final function DrawCornerSmart(out float X, float Y, int Edge, int CornerPosition, int CornerShape) +final function DrawCornerSmart(float X, float Y, int Edge, int CornerPosition, int CornerShape) { switch (CornerPosition) { @@ -521,12 +521,10 @@ final function DrawCornerSmart(out float X, float Y, int Edge, int CornerPositio case ECS_BeveledCorner: Canvas.SetPos(X, Y); DrawCornerTex(Edge, 0); - X += Edge; return; case ECS_VerticalCorner: Canvas.SetPos(X, Y - Edge); DrawCornerTex(Edge, 1); - X += Edge; return; case ECS_HorisontalCorner: Canvas.SetPos(X - Edge, Y); @@ -539,19 +537,16 @@ final function DrawCornerSmart(out float X, float Y, int Edge, int CornerPositio case ECS_Corner: return; case ECS_BeveledCorner: - Canvas.SetPos(X, Y); + Canvas.SetPos(X - Edge, Y); DrawCornerTex(Edge, 1); - X += Edge; return; case ECS_VerticalCorner: - Canvas.SetPos(X, Y - Edge); + Canvas.SetPos(X - Edge, Y - Edge); DrawCornerTex(Edge, 0); - X += Edge; return; case ECS_HorisontalCorner: Canvas.SetPos(X, Y); DrawCornerTex(Edge, 3); - X += Edge; return; } case ECP_BottomLeft: @@ -560,17 +555,15 @@ final function DrawCornerSmart(out float X, float Y, int Edge, int CornerPositio case ECS_Corner: return; case ECS_BeveledCorner: - Canvas.SetPos(X, Y); + Canvas.SetPos(X, Y - Edge); DrawCornerTex(Edge, 2); - X += Edge; return; case ECS_VerticalCorner: Canvas.SetPos(X, Y); DrawCornerTex(Edge, 3); - X += Edge; return; case ECS_HorisontalCorner: - Canvas.SetPos(X - Edge, Y); + Canvas.SetPos(X - Edge, Y - Edge); DrawCornerTex(Edge, 0); return; } @@ -580,76 +573,64 @@ final function DrawCornerSmart(out float X, float Y, int Edge, int CornerPositio case ECS_Corner: return; case ECS_BeveledCorner: - Canvas.SetPos(X, Y); + Canvas.SetPos(X - Edge, Y - Edge); DrawCornerTex(Edge, 3); - X += Edge; return; case ECS_VerticalCorner: - Canvas.SetPos(X, Y); + Canvas.SetPos(X - Edge, Y); DrawCornerTex(Edge, 2); - X += Edge; return; case ECS_HorisontalCorner: - Canvas.SetPos(X, Y); + Canvas.SetPos(X, Y - Edge); DrawCornerTex(Edge, 1); - X += Edge; return; } } } -final function FillSmart(out float X, float Y, float W, float H, int Edge, int LeftShape, int RightShape) -{ - if (LeftShape != ECS_HorisontalCorner && LeftShape != ECS_Corner) - { - W -= Edge; - } - - if (RightShape != ECS_HorisontalCorner && RightShape != ECS_Corner) - { - W -= Edge; - } - - if (LeftShape != ECS_VerticalCorner) - { - Canvas.SetPos(X, Y); - DrawWhiteBox(W, H); - } - - X += W; -} - final function DrawRectBoxSmart(float X, float Y, float W, float H, int Edge, int TopLeftShape, int TopRightShape, int BottomLeftShape, int BottomRightShape) { - local float TopY, MidY, BottomY, XPos; - local int FillCount; - local float MidRectHeight; + local float BoxX, BoxY, BoxW, BoxH; - FillCount = 0; - - if (TopLeftShape != ECS_VerticalCorner) - FillCount++; - if (BottomLeftShape != ECS_VerticalCorner) - FillCount++; - MidRectHeight = H - Edge * FillCount; - - TopY = Y; MidY = TopY + (TopLeftShape == ECS_VerticalCorner ? 0 : Edge); BottomY = MidY + MidRectHeight; - // Top Line - XPos = X; - DrawCornerSmart(XPos, TopY, Edge, ECP_TopLeft, TopLeftShape); - FillSmart(XPos, TopY, W, Edge, Edge, TopLeftShape, TopRightShape); - DrawCornerSmart(XPos, TopY, Edge, ECP_TopRight, TopRightShape); + DrawCornerSmart(X, Y, Edge, ECP_TopLeft, TopLeftShape); + + BoxX = X; BoxY = Y; BoxW = W; BoxH = Edge; + if (TopLeftShape == ECS_BeveledCorner) + { + BoxX += Edge; + BoxW -= Edge; + } + if (TopRightShape == ECS_BeveledCorner) + { + BoxW -= Edge; + } + Canvas.SetPos(BoxX, Y); + DrawWhiteBox(BoxW, Edge); + + DrawCornerSmart(X + W, Y, Edge, ECP_TopRight, TopRightShape); // Mid Line - XPos = X; - FillSmart(XPos, MidY, W, MidRectHeight, Edge, ECS_Corner, ECS_Corner); + Canvas.SetPos(X, Y + Edge); + DrawWhiteBox(W, H - Edge * 2); // Bottom Line - XPos = X; - DrawCornerSmart(XPos, BottomY, Edge, ECP_BottomLeft, BottomLeftShape); - FillSmart(XPos, BottomY, W, Edge, Edge, BottomLeftShape, BottomRightShape); - DrawCornerSmart(XPos, BottomY, Edge, ECP_BottomRight, BottomRightShape); + DrawCornerSmart(X, Y + H, Edge, ECP_BottomLeft, BottomLeftShape); + + BoxX = X; BoxY = Y + H - Edge; BoxW = W; BoxH = Edge; + if (BottomLeftShape == ECS_BeveledCorner) + { + BoxX += Edge; + BoxW -= Edge; + } + if (BottomRightShape == ECS_BeveledCorner) + { + BoxW -= Edge; + } + Canvas.SetPos(BoxX, Y + H - Edge); + DrawWhiteBox(BoxW, Edge); + + DrawCornerSmart(X + W, Y + H, Edge, ECP_BottomRight, BottomRightShape); } final function DrawRectBox(float X, float Y, float Width, float Height, int Edge, optional byte Extrav) diff --git a/ScoreboardExt/Classes/KFScoreBoard.uc b/ScoreboardExt/Classes/KFScoreBoard.uc index adc7f72..82eaa52 100644 --- a/ScoreboardExt/Classes/KFScoreBoard.uc +++ b/ScoreboardExt/Classes/KFScoreBoard.uc @@ -108,7 +108,7 @@ function DrawRectPreviewWithText(float X, float Y, float WH, int Shape, float Fo local float TextWidth; local float TextHeight; - Canvas.SetDrawColor(150, 150, 150, 200); + Canvas.SetDrawColor(50, 50, 50, 200); Owner.CurrentStyle.DrawRectBox(X, Y, WH, WH, 16, Shape); Canvas.SetDrawColor(250, 250, 250, 255); @@ -132,7 +132,7 @@ function DrawRectPreview(float FontScalar) Height = Canvas.ClipY * 0.4; BoxWH = Width / 13; - BoxWHD = BoxWH * 0.3; + BoxWHD = BoxWH * 0.5; X = XPosCenter - Width * 0.5; Y = YPosCenter - Height * 0.5;