freeze animations during pause to visualize it better

This commit is contained in:
Matthias Mailänder
2014-07-03 21:09:58 +02:00
parent d1e18cad7a
commit 960248fe44
20 changed files with 65 additions and 2 deletions

View File

@@ -128,6 +128,9 @@ namespace OpenRA.Traits
public virtual void TickRender(WorldRenderer wr, Actor self)
{
if (wr.world.Paused == World.PauseState.Paused)
return;
foreach (var a in anims.Values)
a.Animation.Animation.Tick();
}

View File

@@ -185,6 +185,9 @@ namespace OpenRA.Mods.RA
public void TickRender(WorldRenderer wr, Actor self)
{
if (wr.world.Paused == World.PauseState.Paused)
return;
// Take a copy so that Tick() can remove animations
foreach (var m in muzzles.ToList())
m.Animation.Tick();

View File

@@ -29,6 +29,9 @@ namespace OpenRA.Mods.RA
public void TickRender(WorldRenderer wr, Actor self)
{
if (wr.world.Paused == World.PauseState.Paused)
return;
if (remainingFrames > 0)
remainingFrames--;
}

View File

@@ -43,6 +43,9 @@ namespace OpenRA.Mods.RA
public void TickRender(WorldRenderer wr, Actor self)
{
if (wr.world.Paused == World.PauseState.Paused)
return;
t += 0.25f;
if (t >= 256) t = 0;
}

View File

@@ -21,7 +21,7 @@ namespace OpenRA.Mods.RA.Effects
public readonly string Palette = "effect";
public readonly int BrightZaps = 1;
public readonly int DimZaps = 2;
public IEffect Create(ProjectileArgs args) { return new TeslaZap( this, args ); }
public IEffect Create(ProjectileArgs args) { return new TeslaZap(this, args); }
}
class TeslaZap : IEffect

View File

@@ -28,6 +28,9 @@ namespace OpenRA.Mods.RA
float t = 0;
public void TickRender(WorldRenderer wr, Actor self)
{
if (wr.world.Paused == World.PauseState.Paused)
return;
t += .5f;
}

View File

@@ -29,6 +29,9 @@ namespace OpenRA.Mods.RA
public void TickRender(WorldRenderer wr, Actor self)
{
if (wr.world.Paused == World.PauseState.Paused)
return;
if (remainingFrames > 0)
remainingFrames--;
}

View File

@@ -55,6 +55,9 @@ namespace OpenRA.Mods.RA.Render
public override void TickRender(WorldRenderer wr, Actor self)
{
if (wr.world.Paused == World.PauseState.Paused)
return;
base.TickRender(wr, self);
if (buildComplete)

View File

@@ -47,6 +47,9 @@ namespace OpenRA.Mods.RA.Render
public override void TickRender(WorldRenderer wr, Actor self)
{
if (wr.world.Paused == World.PauseState.Paused)
return;
base.TickRender(wr, self);
}

View File

@@ -64,7 +64,11 @@ namespace OpenRA.Mods.RA.Render
public override void TickRender(WorldRenderer wr, Actor self)
{
if (wr.world.Paused == World.PauseState.Paused)
return;
base.TickRender(wr, self);
if (isOpen && !self.World.ActorMap.GetUnitsAt(openExit).Any( a => a != self ))
{
isOpen = false;

View File

@@ -34,6 +34,9 @@ namespace OpenRA.Mods.RA.Render
public override void TickRender(WorldRenderer wr, Actor self)
{
if (wr.world.Paused == World.PauseState.Paused)
return;
if (disguise.AsSprite != intendedSprite)
{
intendedSprite = disguise.AsSprite;

View File

@@ -37,6 +37,9 @@ namespace OpenRA.Mods.RA.Render
public override void TickRender(WorldRenderer wr, Actor self)
{
if (wr.world.Paused == World.PauseState.Paused)
return;
var desiredState = harv.Fullness * (info.ImagesByFullness.Length - 1) / 100;
var desiredImage = info.ImagesByFullness[desiredState];

View File

@@ -82,6 +82,9 @@ namespace OpenRA.Mods.RA.Render
public override void TickRender(WorldRenderer wr, Actor self)
{
if (wr.world.Paused == World.PauseState.Paused)
return;
base.TickRender(wr, self);
if ((State == AnimationState.Moving || dirty) && !move.IsMoving)

View File

@@ -46,6 +46,9 @@ namespace OpenRA.Mods.RA.Render
public override void TickRender(WorldRenderer wr, Actor self)
{
if (wr.world.Paused == World.PauseState.Paused)
return;
if (wasPanic != sc.Panicking)
dirty = true;

View File

@@ -73,6 +73,9 @@ namespace OpenRA.Mods.RA.Render
public override void TickRender(WorldRenderer wr, Actor self)
{
if (wr.world.Paused == World.PauseState.Paused)
return;
if (ShouldBeOpen())
Open();
else

View File

@@ -37,6 +37,9 @@ namespace OpenRA.Mods.RA.Render
public override void TickRender(WorldRenderer wr, Actor self)
{
if (wr.world.Paused == World.PauseState.Paused)
return;
var sequence = (armament.IsReloading ? "empty-" : "") + (attack.IsAttacking ? "aim" : "idle");
if (sequence != DefaultAnimation.CurrentSequence.Name)
DefaultAnimation.ReplaceAnim(sequence);

View File

@@ -41,6 +41,9 @@ namespace OpenRA.Mods.RA.Render
public void TickRender(WorldRenderer wr, Actor self)
{
if (wr.world.Paused == World.PauseState.Paused)
return;
if (self.IsDead() || buildComplete)
return;

View File

@@ -97,6 +97,9 @@ namespace OpenRA.Mods.RA.Render
public void TickRender(WorldRenderer wr, Actor self)
{
if (wr.world.Paused == World.PauseState.Paused)
return;
foreach (var a in anims.Values)
a.Animation.Tick();
}

View File

@@ -53,6 +53,7 @@ namespace OpenRA.Mods.RA
public override void Tick(Actor self)
{
base.Tick(self);
if (IsProne && --remainingProneTime == 0)
LocalOffset = WVec.Zero;
}
@@ -101,10 +102,14 @@ namespace OpenRA.Mods.RA
public override void TickRender(WorldRenderer wr, Actor self)
{
if (wr.world.Paused == World.PauseState.Paused)
return;
if (wasProne != tc.IsProne)
dirty = true;
wasProne = tc.IsProne;
base.TickRender(wr, self);
}
}

View File

@@ -36,7 +36,13 @@ namespace OpenRA.Mods.RA
this.info = info;
}
public void TickRender(WorldRenderer wr, Actor self) { t += .25f; }
public void TickRender(WorldRenderer wr, Actor self)
{
if (wr.world.Paused == World.PauseState.Paused)
return;
t += .25f;
}
uint[] temp = new uint[7]; /* allocating this on the fly actually hurts our profile */