When zooming using the mousewheel, zoom towards the pointer location.
This commit is contained in:
committed by
Oliver Brakmann
parent
b417b267dd
commit
914950c4a5
@@ -97,6 +97,14 @@ namespace OpenRA.Graphics
|
|||||||
Zoom = (zoom * (float)Math.Exp(dz)).Clamp(unlockMinZoom ? unlockedMinZoom : minZoom, maxZoom);
|
Zoom = (zoom * (float)Math.Exp(dz)).Clamp(unlockMinZoom ? unlockedMinZoom : minZoom, maxZoom);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void AdjustZoom(float dz, int2 center)
|
||||||
|
{
|
||||||
|
var oldCenter = worldRenderer.Viewport.ViewToWorldPx(center);
|
||||||
|
AdjustZoom(dz);
|
||||||
|
var newCenter = worldRenderer.Viewport.ViewToWorldPx(center);
|
||||||
|
CenterLocation += oldCenter - newCenter;
|
||||||
|
}
|
||||||
|
|
||||||
public void ToggleZoom()
|
public void ToggleZoom()
|
||||||
{
|
{
|
||||||
// Unlocked zooms always reset to the default zoom
|
// Unlocked zooms always reset to the default zoom
|
||||||
|
|||||||
@@ -87,7 +87,7 @@ namespace OpenRA.Mods.Common.Widgets
|
|||||||
{
|
{
|
||||||
if (mi.Event == MouseInputEvent.Scroll && mi.Modifiers.HasModifier(Game.Settings.Game.ZoomModifier))
|
if (mi.Event == MouseInputEvent.Scroll && mi.Modifiers.HasModifier(Game.Settings.Game.ZoomModifier))
|
||||||
{
|
{
|
||||||
worldRenderer.Viewport.AdjustZoom(mi.Delta.Y * Game.Settings.Game.ZoomSpeed);
|
worldRenderer.Viewport.AdjustZoom(mi.Delta.Y * Game.Settings.Game.ZoomSpeed, mi.Location);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -315,7 +315,7 @@ namespace OpenRA.Mods.Common.Widgets
|
|||||||
{
|
{
|
||||||
if (mi.Event == MouseInputEvent.Scroll && mi.Modifiers.HasModifier(Game.Settings.Game.ZoomModifier))
|
if (mi.Event == MouseInputEvent.Scroll && mi.Modifiers.HasModifier(Game.Settings.Game.ZoomModifier))
|
||||||
{
|
{
|
||||||
worldRenderer.Viewport.AdjustZoom(mi.Delta.Y * Game.Settings.Game.ZoomSpeed);
|
worldRenderer.Viewport.AdjustZoom(mi.Delta.Y * Game.Settings.Game.ZoomSpeed, mi.Location);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user