From 8d6cfd83b7523727d2392bed88f4b1e5c80b3159 Mon Sep 17 00:00:00 2001 From: Paul Chote Date: Sat, 9 Jan 2010 16:05:32 +1300 Subject: [PATCH] New radar bin behavior test --- OpenRa.Game/Chrome.cs | 15 ++++++++++----- OpenRa.Game/Graphics/Minimap.cs | 14 ++++++++++---- radarbin-border.png | Bin 0 -> 2888 bytes 3 files changed, 20 insertions(+), 9 deletions(-) create mode 100644 radarbin-border.png diff --git a/OpenRa.Game/Chrome.cs b/OpenRa.Game/Chrome.cs index 9a16d6a188..4bf21f5aab 100644 --- a/OpenRa.Game/Chrome.cs +++ b/OpenRa.Game/Chrome.cs @@ -59,10 +59,12 @@ namespace OpenRa.Game // Radar readonly Sheet radarBinTextureAllied; readonly Sheet radarBinTextureSoviet; + readonly Sheet radarBinTextureBorder; readonly Sprite radarBinAllied; readonly Sprite radarBinSoviet; + readonly Sprite radarBinBorder; static float2 radarOpenOrigin = new float2(Game.viewport.Width - 250, 29); - static float2 radarClosedOrigin = new float2(Game.viewport.Width - 250, -155); + static float2 radarClosedOrigin = new float2(Game.viewport.Width - 250, -162); float2 radarOrigin; bool radarAnimating = false; int radarVelocity = 15; @@ -102,9 +104,11 @@ namespace OpenRa.Game // Radar radarBinTextureAllied = new Sheet(renderer, "radarbin-allies.png"); radarBinTextureSoviet = new Sheet(renderer, "radarbin-soviet.png"); + radarBinTextureBorder = new Sheet(renderer, "radarbin-border.png"); radarBinAllied = new Sprite(radarBinTextureAllied, new Rectangle(0, 0, 210, 201), TextureChannel.Alpha); radarBinSoviet = new Sprite(radarBinTextureSoviet, new Rectangle(0,0,210,201), TextureChannel.Alpha); - + radarBinBorder = new Sprite(radarBinTextureBorder, new Rectangle(0, 0, 210, 201), TextureChannel.Alpha); + radarOrigin = radarClosedOrigin; var powerIndicator = new Animation("power"); @@ -249,13 +253,14 @@ namespace OpenRa.Game hadRadar = hasRadar; var isJammed = false; // todo: MRJ can do this - + /* rgbaRenderer.DrawSprite((Game.LocalPlayer.Race == Race.Allies) ? radarBinAllied : radarBinSoviet, radarOrigin, PaletteType.Chrome); - + */ + rgbaRenderer.DrawSprite(radarBinBorder,radarOrigin,PaletteType.Chrome); rgbaRenderer.Flush(); - if (!radarAnimating && hasRadar) + if (hasRadar || radarAnimating) Game.minimap.Draw(radarOrigin + new float2(9,0), hasRadar, isJammed); } diff --git a/OpenRa.Game/Graphics/Minimap.cs b/OpenRa.Game/Graphics/Minimap.cs index f0428ef407..51487212c2 100644 --- a/OpenRa.Game/Graphics/Minimap.cs +++ b/OpenRa.Game/Graphics/Minimap.cs @@ -1,4 +1,5 @@ -using System.Drawing; +using System; +using System.Drawing; using System.Linq; using OpenRa.Game.Traits; using OpenRa.FileFormats; @@ -12,6 +13,7 @@ namespace OpenRa.Game.Graphics SpriteRenderer rgbaRenderer; Sprite sprite; Bitmap terrain, oreLayer; + const int alpha = 230; public void Tick() { } @@ -20,7 +22,11 @@ namespace OpenRa.Game.Graphics sheet = new Sheet(r, new Size(128, 128)); rgbaRenderer = new SpriteRenderer(r, true, r.RgbaSpriteShader); - sprite = new Sprite(sheet, new Rectangle(0, 0, 128, 128), TextureChannel.Alpha); + var size = Math.Max(Rules.Map.Width, Rules.Map.Height); + var dw = (size - Rules.Map.Width) / 2; + var dh = (size - Rules.Map.Height) / 2; + + sprite = new Sprite(sheet, new Rectangle(Rules.Map.Offset.X+dw, Rules.Map.Offset.Y+dh, size, size), TextureChannel.Alpha); } Color[] terrainTypeColors; @@ -55,8 +61,8 @@ namespace OpenRa.Game.Graphics for (var y = 0; y < 128; y++) for (var x = 0; x < 128; x++) terrain.SetPixel(x, y, Rules.Map.IsInMap(x, y) - ? terrainTypeColors[Rules.TileSet.GetWalkability(Rules.Map.MapTiles[x, y])] - : Color.Black); + ? Color.FromArgb(alpha, terrainTypeColors[Rules.TileSet.GetWalkability(Rules.Map.MapTiles[x, y])]) + : Color.FromArgb(alpha, Color.Black)); } if (oreLayer == null) diff --git a/radarbin-border.png b/radarbin-border.png new file mode 100644 index 0000000000000000000000000000000000000000..3f49748b688034b2ddedda9565c08ec2380b7b73 GIT binary patch literal 2888 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