Use ExtraData for SetStance and SetUnitStance.

This commit is contained in:
Paul Chote
2014-06-21 22:06:46 +12:00
parent 7d24053f52
commit 2af123034d
4 changed files with 7 additions and 6 deletions

View File

@@ -237,7 +237,7 @@ namespace OpenRA.Network
return;
var targetPlayer = order.Player.World.Players.FirstOrDefault(p => p.InternalName == order.TargetString);
var newStance = (Stance)order.TargetLocation.X;
var newStance = (Stance)order.ExtraData;
SetPlayerStance(world, order.Player, targetPlayer, newStance);

View File

@@ -66,7 +66,7 @@ namespace OpenRA.Mods.RA
public void ResolveOrder(Actor self, Order order)
{
if (order.OrderString == "SetUnitStance" && info.EnableStances)
Stance = (UnitStance)order.TargetLocation.X;
Stance = (UnitStance)order.ExtraData;
}
public void Damaged(Actor self, AttackInfo e)

View File

@@ -87,9 +87,11 @@ namespace OpenRA.Mods.RA.Widgets.Logic
if (!p.World.LobbyInfo.GlobalSettings.FragileAlliances)
return; // stance changes are banned
// HACK: Abuse of the type system here with `CPos`
world.IssueOrder(new Order("SetStance", world.LocalPlayer.PlayerActor, false)
{ TargetLocation = new CPos((int)ss, 0), TargetString = p.InternalName, SuppressVisualFeedback = true });
{
ExtraData = (uint)ss,
TargetString = p.InternalName,
});
bw.Text = ss.ToString();
}

View File

@@ -164,8 +164,7 @@ namespace OpenRA.Mods.RA.Widgets
if (at != null)
at.PredictedStance = nextStance;
// FIXME: Abuse of the type system here with `CPos`
return new Order("SetUnitStance", a, false) { TargetLocation = new CPos((int)nextStance, 0), SuppressVisualFeedback = true };
return new Order("SetUnitStance", a, false) { ExtraData = (uint)nextStance };
});
Game.Debug("Unit stance set to: {0}".F(nextStance));