From 7124d98538587b3af3b6cc8ec9254d52dfbd8c72 Mon Sep 17 00:00:00 2001 From: chrisf Date: Fri, 13 Jul 2007 17:10:57 +0000 Subject: [PATCH] git-svn-id: svn://svn.ijw.co.nz/svn/OpenRa@1210 993157c7-ee19-0410-b2c4-bb4e9862e678 --- OpenRa.Game/Sidebar.cs | 44 +++++++++++++++++++++++------------------- 1 file changed, 24 insertions(+), 20 deletions(-) diff --git a/OpenRa.Game/Sidebar.cs b/OpenRa.Game/Sidebar.cs index 8ca5129a05..fea0404f1d 100644 --- a/OpenRa.Game/Sidebar.cs +++ b/OpenRa.Game/Sidebar.cs @@ -50,33 +50,37 @@ namespace OpenRa.Game } } + void DrawSprite(Sprite s, ref PointF p) + { + spriteRenderer.DrawSprite(s, p); + p.Y += 48; + } + + void Fill(Size clientSize, PointF p) + { + while (p.Y < clientSize.Height) + DrawSprite(sprites["BLANK"], ref p); + } + public void Paint(Size clientSize, PointF scrollOffset) { - int y1 = 0, y2 = 0; - foreach (Item i in techTree.BuildableBuildings) + PointF buildPos = new PointF(clientSize.Width - 128 + scrollOffset.X, scrollOffset.Y); + PointF unitPos = new PointF(clientSize.Width - 64 + scrollOffset.X, scrollOffset.Y); + + foreach (Item i in techTree.BuildableItems) { Sprite sprite; if (!sprites.TryGetValue(i.tag, out sprite)) continue; - PointF location = new PointF(clientSize.Width - 128 + scrollOffset.X, y1 + scrollOffset.Y); - spriteRenderer.DrawSprite(sprite, location); - y1 += 48; - } - foreach (Item i in techTree.BuildableUnits) - { - Sprite sprite; - if (!sprites.TryGetValue(i.tag, out sprite)) continue; - PointF location = new PointF(clientSize.Width - 64 + scrollOffset.X, y2 + scrollOffset.Y); - spriteRenderer.DrawSprite(sprite, location); - y2 += 48; - } - while (y2 < clientSize.Height) - { - Sprite sprite = sprites["BLANK"]; - PointF location = new PointF(clientSize.Width - 64 + scrollOffset.X, y2 + scrollOffset.Y); - spriteRenderer.DrawSprite(sprite, location); - y2 += 48; + + if (i.IsStructure) + DrawSprite( sprite, ref buildPos ); + else + DrawSprite( sprite, ref unitPos ); } + Fill(clientSize, buildPos); + Fill(clientSize, unitPos); + spriteRenderer.Flush(); } }