more refs to Game.world (Orders, etc)
This commit is contained in:
@@ -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 );
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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 );
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user