clean up duplication in RA SpecialPowerBinWidget overlay handling

This commit is contained in:
Chris Forbes
2011-09-24 20:54:16 +12:00
parent b83fa764d4
commit 4bc963d621

View File

@@ -27,6 +27,7 @@ namespace OpenRA.Mods.RA.Widgets
readonly World world; readonly World world;
readonly WorldRenderer worldRenderer; readonly WorldRenderer worldRenderer;
[ObjectCreator.UseCtor] [ObjectCreator.UseCtor]
public SpecialPowerBinWidget([ObjectCreator.Param] World world, [ObjectCreator.Param] WorldRenderer worldRenderer) public SpecialPowerBinWidget([ObjectCreator.Param] World world, [ObjectCreator.Param] WorldRenderer worldRenderer)
{ {
@@ -106,6 +107,7 @@ namespace OpenRA.Mods.RA.Widgets
var tl = new int2(pos.X-3,pos.Y-3); var tl = new int2(pos.X-3,pos.Y-3);
var m = new int2(pos.X+64+3,pos.Y+48+3); var m = new int2(pos.X+64+3,pos.Y+48+3);
var br = tl + new int2(64+3+20,40); var br = tl + new int2(64+3+20,40);
if (sp.TotalTime > 0) if (sp.TotalTime > 0)
br += new int2(0,20); br += new int2(0,20);
@@ -138,8 +140,8 @@ namespace OpenRA.Mods.RA.Widgets
pos += new int2(0, 20); pos += new int2(0, 20);
Game.Renderer.Fonts["Regular"].DrawText(sp.Info.LongDesc.Replace("\\n", "\n"), pos, Color.White); Game.Renderer.Fonts["Regular"].DrawText(sp.Info.LongDesc.Replace("\\n", "\n"), pos, Color.White);
} }
} }
WidgetUtils.DrawSHP(image, drawPos, worldRenderer); WidgetUtils.DrawSHP(image, drawPos, worldRenderer);
clock.PlayFetchIndex("idle", clock.PlayFetchIndex("idle",
@@ -149,14 +151,10 @@ namespace OpenRA.Mods.RA.Widgets
WidgetUtils.DrawSHP(clock.Image, drawPos, worldRenderer); WidgetUtils.DrawSHP(clock.Image, drawPos, worldRenderer);
if (sp.Ready) var overlay = sp.Ready ? "ready" : sp.Active ? null : "hold";
if (overlay != null)
{ {
ready.Play("ready"); ready.Play(overlay);
WidgetUtils.DrawSHP(ready.Image, drawPos + new float2((64 - ready.Image.size.X) / 2, 2), worldRenderer);
}
else if (!sp.Active)
{
ready.Play("hold");
WidgetUtils.DrawSHP(ready.Image, drawPos + new float2((64 - ready.Image.size.X) / 2, 2), worldRenderer); WidgetUtils.DrawSHP(ready.Image, drawPos + new float2((64 - ready.Image.size.X) / 2, 2), worldRenderer);
} }