added World.NeutralPlayer

This commit is contained in:
Chris Forbes
2010-03-17 19:19:35 +13:00
parent e30fa307cf
commit b1d7f1fd69
6 changed files with 14 additions and 9 deletions

View File

@@ -29,7 +29,6 @@ using OpenRA.Orders;
using OpenRA.Support;
using OpenRA.Traits;
using OpenRA.Widgets;
using OpenRA.Network;
namespace OpenRA
{

View File

@@ -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<IOnGameStart>())
ssu.SpawnStartingUnits(world.players[client.Index], sp);
ssu.GameStarted(world.players[client.Index], sp);
}
Game.viewport.GoToStartLocation( Game.world.LocalPlayer );

View File

@@ -143,7 +143,7 @@ namespace OpenRA.Network
class ReplayConnection : IConnection
{
uint nextFrame = 1;
//uint nextFrame = 1;
FileStream replayStream;
public ReplayConnection( string replayFilename )

View File

@@ -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);
}
}
}

View File

@@ -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
{

View File

@@ -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)