Fix Map.Contains checks for maps with height.
If a cell lacked any valid projected cells, then it is off the map entirely. The previous logic would think such a cell was within the map as none of projected cells were out of bounds (as there were no projected cells to fail the check).
This commit is contained in:
@@ -65,17 +65,15 @@ namespace OpenRA.Traits
|
||||
.ToArray();
|
||||
|
||||
if (Footprint.Length == 0)
|
||||
throw new ArgumentException(("This frozen actor has no footprint! Please report a bug!\n" +
|
||||
throw new ArgumentException(("This frozen actor has no footprint.\n" +
|
||||
"Actor Name: {0}\n" +
|
||||
"Actor Location: {1}\n" +
|
||||
"Input footprint: [{2}]\n" +
|
||||
"Input footprint (shroud.Contains): [{3}]\n" +
|
||||
"Input footprint (map.Contains): [{4}]")
|
||||
"Input footprint (after shroud.Contains): [{3}]")
|
||||
.F(actor.Info.Name,
|
||||
actor.Location.ToString(),
|
||||
footprint.Select(p => p.ToString()).JoinWith("|"),
|
||||
footprint.Select(p => shroud.Contains(p).ToString()).JoinWith("|"),
|
||||
footprint.Select(p => actor.World.Map.Contains(p).ToString()).JoinWith("|")));
|
||||
footprint.Select(p => shroud.Contains(p).ToString()).JoinWith("|")));
|
||||
|
||||
CenterPosition = self.CenterPosition;
|
||||
Bounds = self.Bounds;
|
||||
|
||||
Reference in New Issue
Block a user