diff --git a/OpenRa.Game/Traits/Render/RenderBuilding.cs b/OpenRa.Game/Traits/Render/RenderBuilding.cs index dd38d47cea..6cdd4a7ab8 100644 --- a/OpenRa.Game/Traits/Render/RenderBuilding.cs +++ b/OpenRa.Game/Traits/Render/RenderBuilding.cs @@ -5,15 +5,20 @@ namespace OpenRa.Traits { public class RenderBuildingInfo : RenderSimpleInfo { - public override object Create(Actor self) { return new RenderBuilding(self); } + public override object Create(Actor self) { return new RenderBuilding(self);} } public class RenderBuilding : RenderSimple, INotifyDamage, INotifySold { static readonly int[] bibStarts = { 0, 0, 1, 5, 11 }; - public RenderBuilding(Actor self) - : base(self) + public RenderBuilding( Actor self ) + : this( self, () => 0 ) + { + } + + public RenderBuilding(Actor self, Func baseFacing) + : base(self, baseFacing) { if( Game.skipMakeAnims ) Complete( self ); diff --git a/OpenRa.Game/Traits/Render/RenderBuildingTurreted.cs b/OpenRa.Game/Traits/Render/RenderBuildingTurreted.cs index d005f3b0c2..32ab9550ac 100644 --- a/OpenRa.Game/Traits/Render/RenderBuildingTurreted.cs +++ b/OpenRa.Game/Traits/Render/RenderBuildingTurreted.cs @@ -9,7 +9,7 @@ namespace OpenRa.Traits class RenderBuildingTurreted : RenderBuilding, INotifyBuildComplete { public RenderBuildingTurreted(Actor self) - : base(self) + : base(self, () => self.traits.Get().turretFacing) { } diff --git a/OpenRa.Game/Traits/Render/RenderInfantry.cs b/OpenRa.Game/Traits/Render/RenderInfantry.cs index 2685233743..c8d711d44c 100644 --- a/OpenRa.Game/Traits/Render/RenderInfantry.cs +++ b/OpenRa.Game/Traits/Render/RenderInfantry.cs @@ -11,9 +11,8 @@ namespace OpenRa.Traits public class RenderInfantry : RenderSimple, INotifyAttack, INotifyDamage { public RenderInfantry(Actor self) - : base(self) + : base(self, () => self.traits.Get().Facing) { - anim = new Animation( GetImage( self ), () => self.traits.Get().Facing ); anim.PlayFacing("stand", () => self.traits.Get().Facing); } diff --git a/OpenRa.Game/Traits/Render/RenderSimple.cs b/OpenRa.Game/Traits/Render/RenderSimple.cs index b0540fe8dc..829902730c 100644 --- a/OpenRa.Game/Traits/Render/RenderSimple.cs +++ b/OpenRa.Game/Traits/Render/RenderSimple.cs @@ -21,9 +21,9 @@ namespace OpenRa.Traits return self.Info.Traits.Get().Image ?? self.Info.Name; } - public RenderSimple(Actor self) + public RenderSimple(Actor self, Func baseFacing) { - anims.Add( "", new Animation( GetImage(self) ) ); + anims.Add( "", new Animation( GetImage(self), baseFacing ) ); } public virtual IEnumerable Render( Actor self ) diff --git a/OpenRa.Game/Traits/Render/RenderUnit.cs b/OpenRa.Game/Traits/Render/RenderUnit.cs index 3c203180f3..259f48f8eb 100644 --- a/OpenRa.Game/Traits/Render/RenderUnit.cs +++ b/OpenRa.Game/Traits/Render/RenderUnit.cs @@ -13,9 +13,8 @@ namespace OpenRa.Traits class RenderUnit : RenderSimple, INotifyDamage { public RenderUnit(Actor self) - : base(self) + : base(self, () => self.traits.Get().Facing) { - anim = new Animation( GetImage( self ), () => self.traits.Get().Facing ); PlayFacingAnim(self); anims.Add( "smoke", new AnimationWithOffset( new Animation( "smoke_m" ), null, () => !isSmoking ) ); diff --git a/OpenRa.Game/Traits/Render/RenderUnitMuzzleFlash.cs b/OpenRa.Game/Traits/Render/RenderUnitMuzzleFlash.cs index 1299d44210..83165794f6 100644 --- a/OpenRa.Game/Traits/Render/RenderUnitMuzzleFlash.cs +++ b/OpenRa.Game/Traits/Render/RenderUnitMuzzleFlash.cs @@ -19,9 +19,9 @@ namespace OpenRa.Traits var attack = self.traits.Get(); var attackInfo = self.Info.Traits.Get(); - var muzzleFlash = new Animation(GetImage(self)); + var muzzleFlash = new Animation(GetImage(self), ()=>unit.Facing); muzzleFlash.PlayFetchIndex("muzzle", - () => (Util.QuantizeFacing(unit.Facing, 8)) * 6 + (int)(attack.primaryRecoil * 5.9f)); + () => (int)(attack.primaryRecoil * 5.9f)); anims.Add( "muzzle", new AnimationWithOffset( muzzleFlash, () => attackInfo.PrimaryOffset.AbsOffset(), diff --git a/OpenRa.Game/Traits/Render/RenderUnitTurreted.cs b/OpenRa.Game/Traits/Render/RenderUnitTurreted.cs index 5cd0326057..315d00ff15 100644 --- a/OpenRa.Game/Traits/Render/RenderUnitTurreted.cs +++ b/OpenRa.Game/Traits/Render/RenderUnitTurreted.cs @@ -19,7 +19,7 @@ namespace OpenRa.Traits var attack = self.traits.GetOrDefault(); var attackInfo = self.Info.Traits.Get(); - var turretAnim = new Animation(GetImage(self)); + var turretAnim = new Animation(GetImage(self), () => turreted.turretFacing ); turretAnim.PlayFacing( "turret", () => turreted.turretFacing ); if( attackInfo.PrimaryOffset != null ) @@ -36,10 +36,9 @@ namespace OpenRa.Traits if( attackInfo.MuzzleFlash ) { - var muzzleFlash = new Animation( GetImage(self) ); + var muzzleFlash = new Animation( GetImage(self), () => self.traits.Get().turretFacing ); muzzleFlash.PlayFetchIndex( "muzzle", - () => ( Util.QuantizeFacing( self.traits.Get().turretFacing, 8 ) ) * 6 - + (int)( attack.primaryRecoil * 5.9f ) ); /* hack: recoil can be 1.0f, but don't overflow into next anim */ + () => (int)( attack.primaryRecoil * 5.9f ) ); /* hack: recoil can be 1.0f, but don't overflow into next anim */ anims.Add( "muzzle_flash", new AnimationWithOffset( muzzleFlash, () => Util.GetTurretPosition(self, unit, attackInfo.PrimaryOffset, attack.primaryRecoil), diff --git a/mods/ra/sequences.xml b/mods/ra/sequences.xml index facce4693b..ee99c16f21 100644 --- a/mods/ra/sequences.xml +++ b/mods/ra/sequences.xml @@ -150,22 +150,22 @@ - - + + - - + + - - + + @@ -226,80 +226,80 @@ - + - + - + - - + + - - + + - - + + - - + + - - - - + + + + - + - - - + + + - - + + - + - + - + - + @@ -401,16 +401,16 @@ - - + + - - + + - - + + @@ -460,23 +460,23 @@ - + - + - + - + - + @@ -841,6 +841,6 @@ - +