diff --git a/OpenRA.Mods.Cnc/CncLoadScreen.cs b/OpenRA.Mods.Cnc/CncLoadScreen.cs index 0fc1311e36..17873c7d22 100644 --- a/OpenRA.Mods.Cnc/CncLoadScreen.cs +++ b/OpenRA.Mods.Cnc/CncLoadScreen.cs @@ -20,10 +20,12 @@ namespace OpenRA.Mods.Cnc public class CncLoadScreen : ILoadScreen { Dictionary Info; - Stopwatch lastLoadScreen = new Stopwatch(); + Stopwatch loadTimer = new Stopwatch(); Sprite[] ss; - float2 nodPos, gdiPos, evaPos; - Sprite nodLogo, gdiLogo, evaLogo; + string text; + int loadTick; + float2 nodPos, gdiPos, evaPos, textPos; + Sprite nodLogo, gdiLogo, evaLogo, brightBlock, dimBlock; Rectangle Bounds; Renderer r; NullInputHandler nih = new NullInputHandler(); @@ -55,27 +57,39 @@ namespace OpenRA.Mods.Cnc nodPos = new float2(Renderer.Resolution.Width/3 - 256, Renderer.Resolution.Height/2 - 128); gdiPos = new float2(Renderer.Resolution.Width*2/3, Renderer.Resolution.Height/2 - 128); evaPos = new float2(Renderer.Resolution.Width-43-128, 43); + + brightBlock = new Sprite(s, new Rectangle(320,0,16,35), TextureChannel.Alpha); + dimBlock = new Sprite(s, new Rectangle(336,0,16,35), TextureChannel.Alpha); } public void Display() { - if (r == null) + if (r == null || loadTimer.ElapsedTime() < 0.25) return; + loadTimer.Reset(); - // Update text at most every 0.5 seconds - if (lastLoadScreen.ElapsedTime() < 0.5) - return; - var font = r.Fonts["BigBold"]; - var text = "Connecting to EVA..."; - lastLoadScreen.Reset(); - var textSize = font.Measure(text); - + loadTick = ++loadTick % 8; r.BeginFrame(float2.Zero); r.RgbaSpriteRenderer.DrawSprite(gdiLogo, gdiPos); r.RgbaSpriteRenderer.DrawSprite(nodLogo, nodPos); r.RgbaSpriteRenderer.DrawSprite(evaLogo, evaPos); DrawBorder(); - font.DrawText(text, new float2((Renderer.Resolution.Width - textSize.X) / 2, (Renderer.Resolution.Height - textSize.Y) / 2), Color.White); + + var barY = Renderer.Resolution.Height-78; + text = "Loading"; + var textSize = r.Fonts["BigBold"].Measure(text); + textPos = new float2((Renderer.Resolution.Width - textSize.X) / 2, barY); + r.Fonts["BigBold"].DrawText(text, textPos, Color.DarkRed); + + for (var i = 0; i <= 8; i++) + { + var block = loadTick == i ? brightBlock : dimBlock; + r.RgbaSpriteRenderer.DrawSprite(block, + new float2(Renderer.Resolution.Width/2 - 114 - i*32, barY)); + r.RgbaSpriteRenderer.DrawSprite(block, + new float2(Renderer.Resolution.Width/2 + 114 + i*32-16, barY)); + } + r.EndFrame( nih ); } diff --git a/artsrc/cnc/chrome.svg b/artsrc/cnc/chrome.svg index 7b2bbb987d..bf32901bab 100644 --- a/artsrc/cnc/chrome.svg +++ b/artsrc/cnc/chrome.svg @@ -54,9 +54,9 @@ borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" - inkscape:zoom="2.8284271" - inkscape:cx="280.3593" - inkscape:cy="454.1963" + inkscape:zoom="4" + inkscape:cx="293.08008" + inkscape:cy="512.48057" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="false" @@ -101,51 +101,46 @@ inkscape:groupmode="layer" id="layer1" transform="translate(0,-540.3622)"> - - - - - - + + + + + + diff --git a/mods/cnc/uibits/chrome.png b/mods/cnc/uibits/chrome.png index bd661c63da..c56c4ccc3a 100644 Binary files a/mods/cnc/uibits/chrome.png and b/mods/cnc/uibits/chrome.png differ