Don't break the order stream if a frozen actor refers to a bogus player.

This commit is contained in:
Paul Chote
2018-01-01 12:37:15 +00:00
committed by ltem
parent 47fa9e496d
commit b3cde077fc

View File

@@ -107,15 +107,18 @@ namespace OpenRA
case TargetType.FrozenActor: case TargetType.FrozenActor:
{ {
var playerActorID = r.ReadUInt32();
var frozenActorID = r.ReadUInt32();
Actor playerActor; Actor playerActor;
if (world == null || !TryGetActorFromUInt(world, r.ReadUInt32(), out playerActor)) if (world == null || !TryGetActorFromUInt(world, playerActorID, out playerActor))
break; break;
var frozenLayer = playerActor.TraitOrDefault<FrozenActorLayer>(); var frozenLayer = playerActor.TraitOrDefault<FrozenActorLayer>();
if (frozenLayer == null) if (frozenLayer == null)
break; break;
var frozen = frozenLayer.FromID(r.ReadUInt32()); var frozen = frozenLayer.FromID(frozenActorID);
if (frozen != null) if (frozen != null)
target = Target.FromFrozenActor(frozen); target = Target.FromFrozenActor(frozen);