Fix radar viewport rectangle
This commit is contained in:
@@ -38,6 +38,17 @@ namespace OpenRA.Graphics
|
|||||||
public float2 Location { get { return scrollPosition; } }
|
public float2 Location { get { return scrollPosition; } }
|
||||||
public float2 CenterLocation { get { return scrollPosition + 0.5f/Zoom*screenSize.ToFloat2(); } }
|
public float2 CenterLocation { get { return scrollPosition + 0.5f/Zoom*screenSize.ToFloat2(); } }
|
||||||
|
|
||||||
|
public Rectangle WorldRect
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return new Rectangle(scrollPosition.X / Game.CellSize,
|
||||||
|
scrollPosition.Y / Game.CellSize,
|
||||||
|
(int)(screenSize.X / Zoom / Game.CellSize),
|
||||||
|
(int)(screenSize.Y / Zoom / Game.CellSize));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public int Width { get { return screenSize.X; } }
|
public int Width { get { return screenSize.X; } }
|
||||||
public int Height { get { return screenSize.Y; } }
|
public int Height { get { return screenSize.Y; } }
|
||||||
public float Zoom = 1f;
|
public float Zoom = 1f;
|
||||||
|
|||||||
@@ -148,8 +148,10 @@ namespace OpenRA.Mods.RA.Widgets
|
|||||||
// Draw viewport rect
|
// Draw viewport rect
|
||||||
if (radarAnimationFrame == radarSlideAnimationLength + radarActivateAnimationLength)
|
if (radarAnimationFrame == radarSlideAnimationLength + radarActivateAnimationLength)
|
||||||
{
|
{
|
||||||
var tl = CellToMinimapPixel(new int2((int)(Game.viewport.Location.X/Game.CellSize), (int)(Game.viewport.Location.Y/Game.CellSize)));
|
var wr = Game.viewport.WorldRect;
|
||||||
var br = CellToMinimapPixel(new int2((int)((Game.viewport.Location.X + Game.viewport.Width)/Game.CellSize), (int)((Game.viewport.Location.Y + Game.viewport.Height)/Game.CellSize)));
|
var wro = new int2(wr.X, wr.Y);
|
||||||
|
var tl = CellToMinimapPixel(wro);
|
||||||
|
var br = CellToMinimapPixel(wro + new int2(wr.Width, wr.Height));
|
||||||
|
|
||||||
Game.Renderer.EnableScissor((int)mapRect.Left, (int)mapRect.Top, (int)mapRect.Width, (int)mapRect.Height);
|
Game.Renderer.EnableScissor((int)mapRect.Left, (int)mapRect.Top, (int)mapRect.Width, (int)mapRect.Height);
|
||||||
Game.Renderer.LineRenderer.DrawRect(tl, br, Color.White);
|
Game.Renderer.LineRenderer.DrawRect(tl, br, Color.White);
|
||||||
|
|||||||
@@ -138,8 +138,11 @@ namespace OpenRA.Mods.RA.Widgets
|
|||||||
// Draw viewport rect
|
// Draw viewport rect
|
||||||
if (hasRadar && !Animating)
|
if (hasRadar && !Animating)
|
||||||
{
|
{
|
||||||
var tl = CellToMinimapPixel(new int2((int)(Game.viewport.Location.X/Game.CellSize), (int)(Game.viewport.Location.Y/Game.CellSize)));
|
var wr = Game.viewport.WorldRect;
|
||||||
var br = CellToMinimapPixel(new int2((int)((Game.viewport.Location.X + Game.viewport.Width)/Game.CellSize), (int)((Game.viewport.Location.Y + Game.viewport.Height)/Game.CellSize)));
|
var wro = new int2(wr.X, wr.Y);
|
||||||
|
var tl = CellToMinimapPixel(wro);
|
||||||
|
var br = CellToMinimapPixel(wro + new int2(wr.Width, wr.Height));
|
||||||
|
|
||||||
Game.Renderer.EnableScissor((int)mapRect.Left, (int)mapRect.Top, (int)mapRect.Width, (int)mapRect.Height);
|
Game.Renderer.EnableScissor((int)mapRect.Left, (int)mapRect.Top, (int)mapRect.Width, (int)mapRect.Height);
|
||||||
Game.Renderer.LineRenderer.DrawRect(tl, br, Color.White);
|
Game.Renderer.LineRenderer.DrawRect(tl, br, Color.White);
|
||||||
Game.Renderer.DisableScissor();
|
Game.Renderer.DisableScissor();
|
||||||
|
|||||||
Reference in New Issue
Block a user