diff --git a/OpenRa.Game/MainWindow.cs b/OpenRa.Game/MainWindow.cs index be9629ad49..a3f0cd7c54 100644 --- a/OpenRa.Game/MainWindow.cs +++ b/OpenRa.Game/MainWindow.cs @@ -94,7 +94,7 @@ namespace OpenRa.Game x1 = e.X; y1 = e.Y; - scrollPos.X = Util.Constrain(scrollPos.X, new Range(0, map.Width * 24 - ClientSize.Width)); + scrollPos.X = Util.Constrain(scrollPos.X, new Range(0, map.Width * 24 - ClientSize.Width + 128)); scrollPos.Y = Util.Constrain(scrollPos.Y, new Range(0, map.Height * 24 - ClientSize.Height)); } } @@ -106,12 +106,14 @@ namespace OpenRa.Game renderer.BeginFrame(r1, r2, scrollPos); + renderer.Device.EnableScissor(0, 0, ClientSize.Width - 128, ClientSize.Height); terrain.Draw( ClientSize, scrollPos ); world.Draw(renderer, new Range(scrollPos.X, scrollPos.X + ClientSize.Width), new Range(scrollPos.Y, scrollPos.Y + ClientSize.Height)); + renderer.Device.DisableScissor(); sidebar.Paint(ClientSize, scrollPos); renderer.EndFrame(); diff --git a/OpenRa.Game/Renderer.cs b/OpenRa.Game/Renderer.cs index 700208baea..6a2e9b5685 100644 --- a/OpenRa.Game/Renderer.cs +++ b/OpenRa.Game/Renderer.cs @@ -43,7 +43,7 @@ namespace OpenRa.Game public void BeginFrame( PointF r1, PointF r2, PointF scroll ) { device.Begin(); - //device.Clear(0, Surfaces.Color); + //device.Clear(Color.Gray.ToArgb(), Surfaces.Color); shader.SetValue(scrollHandle, scroll); shader.SetValue(r1Handle, r1); diff --git a/OpenRa.Game/Sidebar.cs b/OpenRa.Game/Sidebar.cs index 80f1a99a03..7a6b992c2f 100644 --- a/OpenRa.Game/Sidebar.cs +++ b/OpenRa.Game/Sidebar.cs @@ -34,18 +34,14 @@ namespace OpenRa.Game this.spriteRenderer = new SpriteRenderer(renderer); package = new Package("../../../hires.mix"); - LoadSprites(); + LoadSprites("../../../buildings.txt"); + LoadSprites("../../../units.txt"); techTree.CurrentRace = race; } - void LoadSprites() + void LoadSprites(string filename) { - foreach (string line in File.ReadAllLines("../../../buildings.txt")) - { - string key = line.Substring(0, line.IndexOf(',')); - sprites.Add(key, SpriteSheetBuilder.LoadSprite(package, key + "icon.shp")); - } - foreach (string line in File.ReadAllLines("../../../units.txt")) + foreach (string line in File.ReadAllLines(filename)) { string key = line.Substring(0, line.IndexOf(',')); sprites.Add(key, SpriteSheetBuilder.LoadSprite(package, key + "icon.shp")); @@ -71,6 +67,13 @@ namespace OpenRa.Game spriteRenderer.DrawSprite(sprite, location); y2 += 48; } + while (y2 < clientSize.Height) + { + Sprite sprite = sprites["DOG"]; + PointF location = new PointF(clientSize.Width - 64 + scrollOffset.X, y2 + scrollOffset.Y); + spriteRenderer.DrawSprite(sprite, location); + y2 += 48; + } spriteRenderer.Flush(); }