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 0000000000..3f49748b68 Binary files /dev/null and b/radarbin-border.png differ