Merge pull request #10886 from reaperrr/fix-gravitybomb

Fix GravityBomb crash when Image is null
This commit is contained in:
abcdefg30
2016-03-12 18:36:44 +01:00

View File

@@ -31,6 +31,8 @@ namespace OpenRA.Mods.Common.Effects
public readonly bool Shadow = false;
[PaletteReference] public readonly string ShadowPalette = "shadow";
public readonly WDist Velocity = WDist.Zero;
[Desc("Value added to velocity every tick.")]
@@ -56,10 +58,10 @@ namespace OpenRA.Mods.Common.Effects
velocity = new WVec(WDist.Zero, WDist.Zero, -info.Velocity);
acceleration = new WVec(WDist.Zero, WDist.Zero, info.Acceleration);
anim = new Animation(args.SourceActor.World, info.Image);
if (!string.IsNullOrEmpty(info.Image))
{
anim = new Animation(args.SourceActor.World, info.Image);
if (!string.IsNullOrEmpty(info.OpenSequence))
anim.PlayThen(info.OpenSequence, () => anim.PlayRepeating(info.Sequence));
else
@@ -85,6 +87,9 @@ namespace OpenRA.Mods.Common.Effects
public IEnumerable<IRenderable> Render(WorldRenderer wr)
{
if (anim == null)
yield break;
var world = args.SourceActor.World;
if (!world.FogObscures(pos))
{
@@ -92,7 +97,7 @@ namespace OpenRA.Mods.Common.Effects
{
var dat = world.Map.DistanceAboveTerrain(pos);
var shadowPos = pos - new WVec(0, 0, dat.Length);
foreach (var r in anim.Render(shadowPos, wr.Palette("shadow")))
foreach (var r in anim.Render(shadowPos, wr.Palette(info.ShadowPalette)))
yield return r;
}