Fix target lines appearing not long enough on screen

Also changes the Delay attribute from ticks to milliseconds.
This commit is contained in:
Oliver Brakmann
2020-07-12 17:40:12 +02:00
committed by abcdefg30
parent 04bfd62f2f
commit 60a7f53491
3 changed files with 51 additions and 6 deletions

View File

@@ -20,8 +20,8 @@ namespace OpenRA.Mods.Common.Traits
[Desc("Renders target lines between order waypoints.")]
public class DrawLineToTargetInfo : TraitInfo
{
[Desc("Delay (in ticks) before the target lines disappear.")]
public readonly int Delay = 60;
[Desc("Delay (in milliseconds) before the target lines disappear.")]
public readonly int Delay = 2400;
[Desc("Width (in pixels) of the target lines.")]
public readonly int LineWidth = 1;
@@ -42,7 +42,7 @@ namespace OpenRA.Mods.Common.Traits
{
readonly DrawLineToTargetInfo info;
readonly List<IRenderable> renderableCache = new List<IRenderable>();
int lifetime;
long lifetime;
public DrawLineToTarget(Actor self, DrawLineToTargetInfo info)
{
@@ -55,7 +55,7 @@ namespace OpenRA.Mods.Common.Traits
return;
// Reset the order line timeout.
lifetime = info.Delay;
lifetime = Game.RunTime + info.Delay;
}
void INotifySelected.Selected(Actor self)
@@ -71,7 +71,7 @@ namespace OpenRA.Mods.Common.Traits
// Players want to see the lines when in waypoint mode.
var force = Game.GetModifierKeys().HasModifier(Modifiers.Shift) || self.World.OrderGenerator is ForceModifiersOrderGenerator;
if (--lifetime <= 0 && !force)
if (Game.RunTime > lifetime && !force)
yield break;
var pal = wr.Palette(TileSet.TerrainPaletteInternalName);
@@ -93,7 +93,7 @@ namespace OpenRA.Mods.Common.Traits
// Players want to see the lines when in waypoint mode.
var force = Game.GetModifierKeys().HasModifier(Modifiers.Shift) || self.World.OrderGenerator is ForceModifiersOrderGenerator;
if (--lifetime <= 0 && !force)
if (Game.RunTime > lifetime && !force)
return Enumerable.Empty<IRenderable>();
renderableCache.Clear();