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; lastTime += Settings.Timestep;
chrome.Tick(); chrome.Tick();
orderManager.TickImmediate(); orderManager.TickImmediate( world );
if (orderManager.IsReadyForNextFrame) if (orderManager.IsReadyForNextFrame)
{ {
orderManager.Tick(); orderManager.Tick( world );
if (controller.orderGenerator != null) if (controller.orderGenerator != null)
controller.orderGenerator.Tick( world ); 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 return Game.world.players
.Where(x => x.Value.Index == index) .Where(x => x.Value.Index == index)
.First().Value; .First().Value;
} }
public static Order Deserialize(BinaryReader r) public static Order Deserialize(World world, BinaryReader r)
{ {
switch (r.ReadByte()) switch (r.ReadByte())
{ {
@@ -87,7 +87,7 @@ namespace OpenRa
targetString = r.ReadString(); targetString = r.ReadString();
Actor subject, targetActor; 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 null;
return new Order( order, subject, targetActor, targetLocation, targetString); return new Order( order, subject, targetActor, targetLocation, targetString);
@@ -99,7 +99,7 @@ namespace OpenRa
var name = r.ReadString(); var name = r.ReadString();
var data = 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: default:
@@ -113,7 +113,7 @@ namespace OpenRa
return a.ActorID; return a.ActorID;
} }
static bool TryGetActorFromUInt(uint aID, out Actor ret ) static bool TryGetActorFromUInt(World world, uint aID, out Actor ret )
{ {
if( aID == 0xFFFFFFFF ) if( aID == 0xFFFFFFFF )
{ {
@@ -122,7 +122,7 @@ namespace OpenRa
} }
else 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; ret = a;
return true; return true;

View File

@@ -22,14 +22,14 @@ namespace OpenRa.Orders
ms.WriteTo(s); 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 ms = new MemoryStream(bytes);
var reader = new BinaryReader(ms); var reader = new BinaryReader(ms);
var ret = new List<Order>(); var ret = new List<Order>();
while( ms.Position < ms.Length ) while( ms.Position < ms.Length )
{ {
var o = Order.Deserialize( reader ); var o = Order.Deserialize( world, reader );
if( o != null ) if( o != null )
ret.Add( o ); 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 var orders = sources
.SelectMany(s => s.OrdersForFrame(frame)) .SelectMany(s => s.OrdersForFrame(frame))
.SelectMany(x => x.ToOrderList()) .SelectMany(x => x.ToOrderList(world))
.OrderBy(o => o.Player.Index) .OrderBy(o => o.Player.Index)
.ToList(); .ToList();
@@ -69,24 +69,24 @@ namespace OpenRa.Orders
savingReplay.WriteFrameData(orders, frame); savingReplay.WriteFrameData(orders, frame);
} }
public void TickImmediate() public void TickImmediate( World world )
{ {
var localOrders = Game.controller.GetRecentOrders(true); var localOrders = Game.controller.GetRecentOrders(true);
if (localOrders.Count > 0) if (localOrders.Count > 0)
foreach (var p in sources) foreach (var p in sources)
p.SendLocalOrders(0, localOrders); 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); var localOrders = Game.controller.GetRecentOrders(false);
foreach( var p in sources ) foreach( var p in sources )
p.SendLocalOrders( frameNumber + FramesAhead, localOrders ); p.SendLocalOrders( frameNumber + FramesAhead, localOrders );
ProcessOrders(frameNumber, true); ProcessOrders(world, frameNumber, true);
++frameNumber; ++frameNumber;

View File

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