remove duplicated crap from CncLoadScreen

This commit is contained in:
Chris Forbes
2011-05-22 21:34:59 +12:00
parent fdfa3fc1d3
commit 5ad2c43761
2 changed files with 32 additions and 62 deletions

View File

@@ -76,58 +76,63 @@ namespace OpenRA.Widgets
rect.Right + r, rect.Bottom + b); rect.Right + r, rect.Bottom + b);
} }
public static void DrawPanelPartial(string collection, Rectangle Bounds, PanelSides ps) public static void DrawPanelPartial(string collection, Rectangle bounds, PanelSides ps)
{ {
var images = new[] { "border-t", "border-b", "border-l", "border-r", "corner-tl", "corner-tr", "corner-bl", "corner-br", "background" }; var images = new[] { "border-t", "border-b", "border-l", "border-r", "corner-tl", "corner-tr", "corner-bl", "corner-br", "background" };
var ss = images.Select(i => ChromeProvider.GetImage(collection, i)).ToArray(); var ss = images.Select(i => ChromeProvider.GetImage(collection, i)).ToArray();
DrawPanelPartial(ss, bounds, ps);
}
public static void DrawPanelPartial(Sprite[] ss, Rectangle bounds, PanelSides ps)
{
// Background // Background
FillRectWithSprite(new Rectangle(Bounds.Left + (int)ss[2].size.X, if (ps.HasFlags(PanelSides.Center))
Bounds.Top + (int)ss[0].size.Y, FillRectWithSprite(new Rectangle(bounds.Left + (int)ss[2].size.X,
Bounds.Right - (int)ss[3].size.X - Bounds.Left - (int)ss[2].size.X, bounds.Top + (int)ss[0].size.Y,
Bounds.Bottom - (int)ss[1].size.Y - Bounds.Top - (int)ss[0].size.Y), bounds.Right - (int)ss[3].size.X - bounds.Left - (int)ss[2].size.X,
bounds.Bottom - (int)ss[1].size.Y - bounds.Top - (int)ss[0].size.Y),
ss[8]); ss[8]);
// Left border // Left border
if (ps.HasFlags(PanelSides.Left)) if (ps.HasFlags(PanelSides.Left))
FillRectWithSprite(new Rectangle(Bounds.Left, FillRectWithSprite(new Rectangle(bounds.Left,
Bounds.Top + (int)ss[0].size.Y, bounds.Top + (int)ss[0].size.Y,
(int)ss[2].size.X, (int)ss[2].size.X,
Bounds.Bottom - (int)ss[1].size.Y - Bounds.Top - (int)ss[0].size.Y), bounds.Bottom - (int)ss[1].size.Y - bounds.Top - (int)ss[0].size.Y),
ss[2]); ss[2]);
// Right border // Right border
if (ps.HasFlags(PanelSides.Right)) if (ps.HasFlags(PanelSides.Right))
FillRectWithSprite(new Rectangle(Bounds.Right - (int)ss[3].size.X, FillRectWithSprite(new Rectangle(bounds.Right - (int)ss[3].size.X,
Bounds.Top + (int)ss[0].size.Y, bounds.Top + (int)ss[0].size.Y,
(int)ss[2].size.X, (int)ss[2].size.X,
Bounds.Bottom - (int)ss[1].size.Y - Bounds.Top - (int)ss[0].size.Y), bounds.Bottom - (int)ss[1].size.Y - bounds.Top - (int)ss[0].size.Y),
ss[3]); ss[3]);
// Top border // Top border
if (ps.HasFlags(PanelSides.Top)) if (ps.HasFlags(PanelSides.Top))
FillRectWithSprite(new Rectangle(Bounds.Left + (int)ss[2].size.X, FillRectWithSprite(new Rectangle(bounds.Left + (int)ss[2].size.X,
Bounds.Top, bounds.Top,
Bounds.Right - (int)ss[3].size.X - Bounds.Left - (int)ss[2].size.X, bounds.Right - (int)ss[3].size.X - bounds.Left - (int)ss[2].size.X,
(int)ss[0].size.Y), (int)ss[0].size.Y),
ss[0]); ss[0]);
// Bottom border // Bottom border
if (ps.HasFlags(PanelSides.Bottom)) if (ps.HasFlags(PanelSides.Bottom))
FillRectWithSprite(new Rectangle(Bounds.Left + (int)ss[2].size.X, FillRectWithSprite(new Rectangle(bounds.Left + (int)ss[2].size.X,
Bounds.Bottom - (int)ss[1].size.Y, bounds.Bottom - (int)ss[1].size.Y,
Bounds.Right - (int)ss[3].size.X - Bounds.Left - (int)ss[2].size.X, bounds.Right - (int)ss[3].size.X - bounds.Left - (int)ss[2].size.X,
(int)ss[0].size.Y), (int)ss[0].size.Y),
ss[1]); ss[1]);
if (ps.HasFlags(PanelSides.Left | PanelSides.Top)) if (ps.HasFlags(PanelSides.Left | PanelSides.Top))
DrawRGBA(ss[4], new float2(Bounds.Left, Bounds.Top)); DrawRGBA(ss[4], new float2(bounds.Left, bounds.Top));
if (ps.HasFlags(PanelSides.Right | PanelSides.Top)) if (ps.HasFlags(PanelSides.Right | PanelSides.Top))
DrawRGBA(ss[5], new float2(Bounds.Right - ss[5].size.X, Bounds.Top)); DrawRGBA(ss[5], new float2(bounds.Right - ss[5].size.X, bounds.Top));
if (ps.HasFlags(PanelSides.Left | PanelSides.Bottom)) if (ps.HasFlags(PanelSides.Left | PanelSides.Bottom))
DrawRGBA(ss[6], new float2(Bounds.Left, Bounds.Bottom - ss[6].size.Y)); DrawRGBA(ss[6], new float2(bounds.Left, bounds.Bottom - ss[6].size.Y));
if (ps.HasFlags(PanelSides.Right | PanelSides.Bottom)) if (ps.HasFlags(PanelSides.Right | PanelSides.Bottom))
DrawRGBA(ss[7], new float2(Bounds.Right - ss[7].size.X, Bounds.Bottom - ss[7].size.Y)); DrawRGBA(ss[7], new float2(bounds.Right - ss[7].size.X, bounds.Bottom - ss[7].size.Y));
} }
@@ -203,7 +208,9 @@ namespace OpenRA.Widgets
Top = 2, Top = 2,
Right = 4, Right = 4,
Bottom = 8, Bottom = 8,
Center = 16,
All = Left | Top | Right | Bottom Edges = Left | Top | Right | Bottom,
All = Edges | Center,
} }
} }

View File

@@ -73,7 +73,8 @@ namespace OpenRA.Mods.Cnc
r.RgbaSpriteRenderer.DrawSprite(gdiLogo, gdiPos); r.RgbaSpriteRenderer.DrawSprite(gdiLogo, gdiPos);
r.RgbaSpriteRenderer.DrawSprite(nodLogo, nodPos); r.RgbaSpriteRenderer.DrawSprite(nodLogo, nodPos);
r.RgbaSpriteRenderer.DrawSprite(evaLogo, evaPos); r.RgbaSpriteRenderer.DrawSprite(evaLogo, evaPos);
DrawBorder();
WidgetUtils.DrawPanelPartial(ss, Bounds, PanelSides.Edges);
var barY = Renderer.Resolution.Height-78; var barY = Renderer.Resolution.Height-78;
text = "Loading"; text = "Loading";
@@ -92,45 +93,7 @@ namespace OpenRA.Mods.Cnc
r.EndFrame( nih ); r.EndFrame( nih );
} }
void DrawBorder()
{
// Left border
WidgetUtils.FillRectWithSprite(new Rectangle(Bounds.Left,
Bounds.Top + (int)ss[0].size.Y,
(int)ss[2].size.X,
Bounds.Bottom - (int)ss[1].size.Y - Bounds.Top - (int)ss[0].size.Y),
ss[2]);
// Right border
WidgetUtils.FillRectWithSprite(new Rectangle(Bounds.Right - (int)ss[3].size.X,
Bounds.Top + (int)ss[0].size.Y,
(int)ss[2].size.X,
Bounds.Bottom - (int)ss[1].size.Y - Bounds.Top - (int)ss[0].size.Y),
ss[3]);
// Top border
WidgetUtils.FillRectWithSprite(new Rectangle(Bounds.Left + (int)ss[2].size.X,
Bounds.Top,
Bounds.Right - (int)ss[3].size.X - Bounds.Left - (int)ss[2].size.X,
(int)ss[0].size.Y),
ss[0]);
// Bottom border
WidgetUtils.FillRectWithSprite(new Rectangle(Bounds.Left + (int)ss[2].size.X,
Bounds.Bottom - (int)ss[1].size.Y,
Bounds.Right - (int)ss[3].size.X - Bounds.Left - (int)ss[2].size.X,
(int)ss[0].size.Y),
ss[1]);
WidgetUtils.DrawRGBA(ss[4], new float2(Bounds.Left, Bounds.Top));
WidgetUtils.DrawRGBA(ss[5], new float2(Bounds.Right - ss[5].size.X, Bounds.Top));
WidgetUtils.DrawRGBA(ss[6], new float2(Bounds.Left, Bounds.Bottom - ss[6].size.Y));
WidgetUtils.DrawRGBA(ss[7], new float2(Bounds.Right - ss[7].size.X, Bounds.Bottom - ss[7].size.Y));
}
public void StartGame() public void StartGame()
{ {
TestAndContinue(); TestAndContinue();