Fix C&C options menu fade effect.

This commit is contained in:
Paul Chote
2013-04-06 16:41:13 +13:00
parent 2cb634b8f5
commit fe091487cc
4 changed files with 13 additions and 4 deletions

View File

@@ -191,6 +191,7 @@ namespace OpenRA
if (orderManager.NetFrameNumber == 0)
orderManager.LastTickTime = Environment.TickCount;
world.TickRender(worldRenderer);
viewport.Tick();
}
}

View File

@@ -34,6 +34,7 @@ namespace OpenRA.Traits
}
public interface ITick { void Tick(Actor self); }
public interface ITickRender { void TickRender(WorldRenderer wr, Actor self); }
public interface IRender { IEnumerable<Renderable> Render(Actor self, WorldRenderer wr); }
public interface IAutoSelectionSize { int2 SelectionSize(Actor self); }

View File

@@ -13,6 +13,7 @@ using System.Collections.Generic;
using System.Linq;
using OpenRA.Effects;
using OpenRA.FileFormats;
using OpenRA.Graphics;
using OpenRA.Network;
using OpenRA.Orders;
using OpenRA.Support;
@@ -192,7 +193,12 @@ namespace OpenRA
while (frameEndActions.Count != 0)
frameEndActions.Dequeue()(this);
}
// For things that want to update their render state once per tick, ignoring pause state
public void TickRender(WorldRenderer wr)
{
ActorsWithTrait<ITickRender>().Do(x => x.Trait.TickRender(wr, x.Actor));
}
public IEnumerable<Actor> Actors { get { return actors; } }

View File

@@ -11,6 +11,7 @@
using System.Collections.Generic;
using System.Drawing;
using OpenRA.FileFormats;
using OpenRA.Graphics;
using OpenRA.Traits;
namespace OpenRA.Mods.Cnc
@@ -22,7 +23,7 @@ namespace OpenRA.Mods.Cnc
public object Create(ActorInitializer init) { return new CncMenuPaletteEffect(this); }
}
public class CncMenuPaletteEffect : IPaletteModifier, ITick
public class CncMenuPaletteEffect : IPaletteModifier, ITickRender
{
public enum EffectType { None, Black, Desaturated }
public readonly CncMenuPaletteEffectInfo Info;
@@ -40,7 +41,7 @@ namespace OpenRA.Mods.Cnc
to = type;
}
public void Tick(Actor self)
public void TickRender(WorldRenderer wr, Actor self)
{
if (remainingFrames > 0)
remainingFrames--;