more refs to Game.world (Orders, etc)

This commit is contained in:
Bob
2010-01-21 13:47:06 +13:00
parent f01990cae1
commit 232ed72bbf
5 changed files with 17 additions and 17 deletions

View File

@@ -125,11 +125,11 @@ namespace OpenRa
lastTime += Settings.Timestep;
chrome.Tick();
orderManager.TickImmediate();
orderManager.TickImmediate( world );
if (orderManager.IsReadyForNextFrame)
{
orderManager.Tick();
orderManager.Tick( world );
if (controller.orderGenerator != null)
controller.orderGenerator.Tick( world );

View File

@@ -64,14 +64,14 @@ namespace OpenRa
}
}
static Player LookupPlayer(uint index)
static Player LookupPlayer(World world, uint index)
{
return Game.world.players
.Where(x => x.Value.Index == index)
.First().Value;
}
public static Order Deserialize(BinaryReader r)
public static Order Deserialize(World world, BinaryReader r)
{
switch (r.ReadByte())
{
@@ -87,7 +87,7 @@ namespace OpenRa
targetString = r.ReadString();
Actor subject, targetActor;
if( !TryGetActorFromUInt( subjectId, out subject ) || !TryGetActorFromUInt( targetActorId, out targetActor ) )
if( !TryGetActorFromUInt( world, subjectId, out subject ) || !TryGetActorFromUInt( world, targetActorId, out targetActor ) )
return null;
return new Order( order, subject, targetActor, targetLocation, targetString);
@@ -99,7 +99,7 @@ namespace OpenRa
var name = r.ReadString();
var data = r.ReadString();
return new Order( name, LookupPlayer( playerID ).PlayerActor, null, int2.Zero, data ) { IsImmediate = true };
return new Order( name, LookupPlayer( world, playerID ).PlayerActor, null, int2.Zero, data ) { IsImmediate = true };
}
default:
@@ -113,7 +113,7 @@ namespace OpenRa
return a.ActorID;
}
static bool TryGetActorFromUInt(uint aID, out Actor ret )
static bool TryGetActorFromUInt(World world, uint aID, out Actor ret )
{
if( aID == 0xFFFFFFFF )
{
@@ -122,7 +122,7 @@ namespace OpenRa
}
else
{
foreach( var a in Game.world.Actors.Where( x => x.ActorID == aID ) )
foreach( var a in world.Actors.Where( x => x.ActorID == aID ) )
{
ret = a;
return true;

View File

@@ -22,14 +22,14 @@ namespace OpenRa.Orders
ms.WriteTo(s);
}
public static List<Order> ToOrderList(this byte[] bytes)
public static List<Order> ToOrderList(this byte[] bytes, World world)
{
var ms = new MemoryStream(bytes);
var reader = new BinaryReader(ms);
var ret = new List<Order>();
while( ms.Position < ms.Length )
{
var o = Order.Deserialize( reader );
var o = Order.Deserialize( world, reader );
if( o != null )
ret.Add( o );
}

View File

@@ -54,11 +54,11 @@ namespace OpenRa.Orders
}
}
void ProcessOrders(int frame, bool save)
void ProcessOrders(World world, int frame, bool save)
{
var orders = sources
.SelectMany(s => s.OrdersForFrame(frame))
.SelectMany(x => x.ToOrderList())
.SelectMany(x => x.ToOrderList(world))
.OrderBy(o => o.Player.Index)
.ToList();
@@ -69,24 +69,24 @@ namespace OpenRa.Orders
savingReplay.WriteFrameData(orders, frame);
}
public void TickImmediate()
public void TickImmediate( World world )
{
var localOrders = Game.controller.GetRecentOrders(true);
if (localOrders.Count > 0)
foreach (var p in sources)
p.SendLocalOrders(0, localOrders);
ProcessOrders(0, false);
ProcessOrders(world, 0, false);
}
public void Tick()
public void Tick( World world )
{
var localOrders = Game.controller.GetRecentOrders(false);
foreach( var p in sources )
p.SendLocalOrders( frameNumber + FramesAhead, localOrders );
ProcessOrders(frameNumber, true);
ProcessOrders(world, frameNumber, true);
++frameNumber;

View File

@@ -19,7 +19,7 @@ namespace OpenRa.Orders
}
case "AssignPlayer":
{
Game.world.LocalPlayer = order.Player;
order.Player.World.LocalPlayer = order.Player;
Game.chat.AddLine(order.Player, "is now YOU.");
break;
}