diff --git a/OpenRa.Game/Actor.cs b/OpenRa.Game/Actor.cs index 9461c977d8..fd0432a6da 100755 --- a/OpenRa.Game/Actor.cs +++ b/OpenRa.Game/Actor.cs @@ -128,10 +128,10 @@ namespace OpenRa.Game traits.Add( new Traits.Tree( treeRenderer.GetImage( tree.Image ) ) ); } - public void Tick( Game game, int dt ) + public void Tick( Game game ) { foreach( var tick in traits.WithInterface() ) - tick.Tick( this, game, dt ); + tick.Tick( this, game ); } public float2 CenterLocation; diff --git a/OpenRa.Game/Bullet.cs b/OpenRa.Game/Bullet.cs index e2ba6fd70e..340f9d1e1e 100644 --- a/OpenRa.Game/Bullet.cs +++ b/OpenRa.Game/Bullet.cs @@ -41,12 +41,12 @@ namespace OpenRa.Game int TotalTime() { return (Dest - Src).Length * BaseBulletSpeed / Weapon.Speed; } - public void Tick(Game game, int dt) - { + public void Tick(Game game) + { if (t == 0) game.PlaySound(Weapon.Report + ".aud", false); - t += dt; + t += 40; if (t > TotalTime()) /* remove finished bullets */ game.world.AddFrameEndTask(w => w.Remove(this)); diff --git a/OpenRa.Game/Graphics/Animation.cs b/OpenRa.Game/Graphics/Animation.cs index b3be057d05..6e31358300 100644 --- a/OpenRa.Game/Graphics/Animation.cs +++ b/OpenRa.Game/Graphics/Animation.cs @@ -56,6 +56,11 @@ namespace OpenRa.Game.Graphics int timeUntilNextFrame; Action tickFunc; + public void Tick() + { + Tick( 40 ); // tick one frame + } + public void Tick( int t ) { if( tickAlways ) diff --git a/OpenRa.Game/MoveOrder.cs b/OpenRa.Game/MoveOrder.cs index 07643a3e64..9d2c23654e 100644 --- a/OpenRa.Game/MoveOrder.cs +++ b/OpenRa.Game/MoveOrder.cs @@ -26,7 +26,7 @@ namespace OpenRa.Game if (game.LocalPlayer == Unit.Owner) game.PlaySound("ackno.r00", false); var mobile = Unit.traits.Get(); - mobile.destination = Destination; + mobile.destination = Destination; mobile.desiredFacing = null; } } diff --git a/OpenRa.Game/Traits/AttackTurreted.cs b/OpenRa.Game/Traits/AttackTurreted.cs index 18cda60801..d5d94b7c2a 100755 --- a/OpenRa.Game/Traits/AttackTurreted.cs +++ b/OpenRa.Game/Traits/AttackTurreted.cs @@ -18,7 +18,7 @@ namespace OpenRa.Game.Traits self.traits.Get(); } - public void Tick( Actor self, Game game, int dt ) + public void Tick( Actor self, Game game ) { if( primaryFireDelay > 0 ) --primaryFireDelay; @@ -28,7 +28,6 @@ namespace OpenRa.Game.Traits if( target == null ) return; - var mobile = self.traits.Get(); var turreted = self.traits.Get(); turreted.desiredFacing = Util.GetFacing( target.CenterLocation - self.CenterLocation, turreted.turretFacing ); if( turreted.desiredFacing != turreted.turretFacing ) diff --git a/OpenRa.Game/Traits/Building.cs b/OpenRa.Game/Traits/Building.cs index 5792d87872..0fd51132dd 100644 --- a/OpenRa.Game/Traits/Building.cs +++ b/OpenRa.Game/Traits/Building.cs @@ -12,7 +12,7 @@ namespace OpenRa.Game.Traits } bool first = true; - public void Tick(Actor self, Game game, int dt) + public void Tick(Actor self, Game game) { if (first && self.Owner == game.LocalPlayer) { diff --git a/OpenRa.Game/Traits/McvDeploy.cs b/OpenRa.Game/Traits/McvDeploy.cs index 4738a0c573..2af66adae9 100644 --- a/OpenRa.Game/Traits/McvDeploy.cs +++ b/OpenRa.Game/Traits/McvDeploy.cs @@ -23,7 +23,7 @@ namespace OpenRa.Game.Traits return null; } - public void Tick(Actor self, Game game, int dt) + public void Tick(Actor self, Game game) { if( self.Location != DeployLocation ) return; diff --git a/OpenRa.Game/Traits/Mobile.cs b/OpenRa.Game/Traits/Mobile.cs index 0bf02fa5ee..0e206d4f37 100644 --- a/OpenRa.Game/Traits/Mobile.cs +++ b/OpenRa.Game/Traits/Mobile.cs @@ -29,13 +29,13 @@ namespace OpenRa.Game.Traits self.CenterLocation = new float2(12, 12) + Game.CellSize * float2.Lerp(fromCell, toCell, fraction); } - public void Tick(Actor self, Game game, int dt) + public void Tick(Actor self, Game game) { - Move(self, game, dt); + Move(self, game); UpdateCenterLocation(); } - void Move(Actor self, Game game, int dt) + void Move(Actor self, Game game) { if( fromCell != toCell ) desiredFacing = Util.GetFacing( toCell - fromCell, facing ); @@ -48,7 +48,7 @@ namespace OpenRa.Game.Traits desiredFacing = null; if( fromCell != toCell ) - moveFraction += dt * ((UnitInfo.MobileInfo)self.unitInfo).Speed; + moveFraction += ((UnitInfo.MobileInfo)self.unitInfo).Speed; if (moveFraction < moveFractionTotal) return; @@ -66,7 +66,7 @@ namespace OpenRa.Game.Traits self.Location = res[res.Count - 1]; int2 dir = toCell - fromCell; - moveFractionTotal = (dir.X != 0 && dir.Y != 0) ? 2500 : 2000; + moveFractionTotal = (dir.X != 0 && dir.Y != 0) ? 70 : 50; } else destination = toCell; diff --git a/OpenRa.Game/Traits/RenderBuildingWarFactory.cs b/OpenRa.Game/Traits/RenderBuildingWarFactory.cs index f1e8bbcbec..6cc13c8e5b 100644 --- a/OpenRa.Game/Traits/RenderBuildingWarFactory.cs +++ b/OpenRa.Game/Traits/RenderBuildingWarFactory.cs @@ -33,10 +33,10 @@ namespace OpenRa.Game.Traits return base.Render(self); } - public override void Tick(Actor self, Game game, int dt) + public override void Tick(Actor self, Game game) { - base.Tick(self, game, dt); - roof.Tick(dt); + base.Tick(self, game); + roof.Tick(); } } } diff --git a/OpenRa.Game/Traits/RenderSimple.cs b/OpenRa.Game/Traits/RenderSimple.cs index 1dcfaac17d..a451a14bb3 100644 --- a/OpenRa.Game/Traits/RenderSimple.cs +++ b/OpenRa.Game/Traits/RenderSimple.cs @@ -18,9 +18,9 @@ namespace OpenRa.Game.Traits public abstract IEnumerable> Render(Actor self); - public virtual void Tick(Actor self, Game game, int dt) + public virtual void Tick(Actor self, Game game) { - anim.Tick(dt); + anim.Tick(); } } } diff --git a/OpenRa.Game/Traits/RenderUnitTurreted.cs b/OpenRa.Game/Traits/RenderUnitTurreted.cs index 248c0aa60d..84e1434c26 100644 --- a/OpenRa.Game/Traits/RenderUnitTurreted.cs +++ b/OpenRa.Game/Traits/RenderUnitTurreted.cs @@ -25,10 +25,10 @@ namespace OpenRa.Game.Traits yield return Centered(turretAnim.Image, self.CenterLocation); } - public override void Tick(Actor self, Game game, int dt) + public override void Tick(Actor self, Game game) { - base.Tick(self, game, dt); - turretAnim.Tick(dt); + base.Tick(self, game); + turretAnim.Tick(); } } } diff --git a/OpenRa.Game/Traits/TraitsInterfaces.cs b/OpenRa.Game/Traits/TraitsInterfaces.cs index 5d645a1dd7..8d9dc5f6cb 100644 --- a/OpenRa.Game/Traits/TraitsInterfaces.cs +++ b/OpenRa.Game/Traits/TraitsInterfaces.cs @@ -7,7 +7,7 @@ using IjwFramework.Types; namespace OpenRa.Game.Traits { - interface ITick { void Tick(Actor self, Game game, int dt); } + interface ITick { void Tick(Actor self, Game game); } interface IRender { IEnumerable> Render(Actor self); } interface IOrder { Order Order(Actor self, Game game, int2 xy); } } diff --git a/OpenRa.Game/Traits/Turreted.cs b/OpenRa.Game/Traits/Turreted.cs index dea6cb2b16..092a7ad8fa 100644 --- a/OpenRa.Game/Traits/Turreted.cs +++ b/OpenRa.Game/Traits/Turreted.cs @@ -14,12 +14,9 @@ namespace OpenRa.Game.Traits { } - public void Tick( Actor self, Game game, int dt ) + public void Tick( Actor self, Game game ) { - // TODO: desiredFacing should follow the base unit's facing only when not in combat. - // also, we want to be able to use this for GUN; avoid referencing Mobile. - var df = desiredFacing ?? self.traits.Get().facing; - + var df = desiredFacing ?? ( self.traits.Contains() ? self.traits.Get().facing : turretFacing ); Util.TickFacing( ref turretFacing, df, self.unitInfo.ROT ); } } diff --git a/OpenRa.Game/World.cs b/OpenRa.Game/World.cs index 8e3295d2a1..5b39e719c0 100644 --- a/OpenRa.Game/World.cs +++ b/OpenRa.Game/World.cs @@ -41,9 +41,9 @@ namespace OpenRa.Game lastTime += timestep; foreach( var a in actors ) - a.Tick(game, timestep); + a.Tick(game); foreach (var b in bullets) - b.Tick(game, timestep); + b.Tick(game); Renderer.waterFrame += 0.00125f * timestep; }