diff --git a/OpenRA.Game/Chrome.cs b/OpenRA.Game/Chrome.cs index 60ffbd7a27..1c7aa1d6aa 100644 --- a/OpenRA.Game/Chrome.cs +++ b/OpenRA.Game/Chrome.cs @@ -29,7 +29,6 @@ using OpenRA.Orders; using OpenRA.Support; using OpenRA.Traits; using OpenRA.Widgets; -using OpenRA.Network; namespace OpenRA { diff --git a/OpenRA.Game/Game.cs b/OpenRA.Game/Game.cs index ba8c5b6dc6..7867a84ff5 100644 --- a/OpenRA.Game/Game.cs +++ b/OpenRA.Game/Game.cs @@ -120,11 +120,12 @@ namespace OpenRA viewport = new Viewport(clientSize, Game.world.Map.Offset, Game.world.Map.Offset + Game.world.Map.Size, renderer); Timer.Time( "ChromeProv, SeqProv, viewport: {0}" ); + // todo: delay this skipMakeAnims = true; foreach (var actorReference in world.Map.Actors) - world.CreateActor(actorReference.Name, actorReference.Location, - world.players.Values.FirstOrDefault(p => p.InternalName == actorReference.Owner) - ?? world.players[0]); + world.CreateActor(actorReference.Name, actorReference.Location, + world.players.Values.FirstOrDefault(p => p.InternalName == actorReference.Owner) + ?? world.NeutralPlayer); skipMakeAnims = false; Timer.Time( "map actors: {0}" ); @@ -297,7 +298,7 @@ namespace OpenRA foreach (var ssu in world.players[client.Index].PlayerActor .traits.WithInterface()) - ssu.SpawnStartingUnits(world.players[client.Index], sp); + ssu.GameStarted(world.players[client.Index], sp); } Game.viewport.GoToStartLocation( Game.world.LocalPlayer ); diff --git a/OpenRA.Game/Network/Connection.cs b/OpenRA.Game/Network/Connection.cs index 241ddb56f9..c8674715f2 100755 --- a/OpenRA.Game/Network/Connection.cs +++ b/OpenRA.Game/Network/Connection.cs @@ -143,7 +143,7 @@ namespace OpenRA.Network class ReplayConnection : IConnection { - uint nextFrame = 1; + //uint nextFrame = 1; FileStream replayStream; public ReplayConnection( string replayFilename ) diff --git a/OpenRA.Game/Traits/Player/SpawnDefaultUnits.cs b/OpenRA.Game/Traits/Player/SpawnDefaultUnits.cs index 8337424a9d..49fc746da3 100644 --- a/OpenRA.Game/Traits/Player/SpawnDefaultUnits.cs +++ b/OpenRA.Game/Traits/Player/SpawnDefaultUnits.cs @@ -24,9 +24,9 @@ namespace OpenRA.Traits class SpawnDefaultUnits : IOnGameStart { - public void SpawnStartingUnits(Player p, int2 sp) + public void GameStarted(Player p, int2 sp) { - p.PlayerActor.World.CreateActor("mcv", sp, p); + p.World.CreateActor("mcv", sp, p); } } } diff --git a/OpenRA.Game/Traits/TraitsInterfaces.cs b/OpenRA.Game/Traits/TraitsInterfaces.cs index 513856ccad..51f3cb26c0 100644 --- a/OpenRA.Game/Traits/TraitsInterfaces.cs +++ b/OpenRA.Game/Traits/TraitsInterfaces.cs @@ -124,7 +124,7 @@ namespace OpenRA.Traits public interface INotifySelection { void SelectionChanged(); } public interface ILoadWorldHook { void WorldLoaded(World w); } - public interface IOnGameStart { void SpawnStartingUnits(Player p, int2 sp); } + public interface IOnGameStart { void GameStarted(Player p, int2 sp); } public interface IActivity { diff --git a/OpenRA.Game/World.cs b/OpenRA.Game/World.cs index a9711918b1..a0663452d1 100644 --- a/OpenRA.Game/World.cs +++ b/OpenRA.Game/World.cs @@ -49,6 +49,11 @@ namespace OpenRA get { return players[localPlayerIndex]; } } + public Player NeutralPlayer + { + get { return players[0]; } // todo, perhaps. + } + public void SetLocalPlayer(int index) { if (index != localPlayerIndex)