/// <summary>
 /// Sets the square on map to status.
 /// </summary>
 /// <param name="leftTopSquarePos">The left top square pos.</param>
 /// <param name="status">The status of map elem.</param>
 /// <param name="addVisibleStart">if set to <c>true</c> add to coords _map.Visible{X|Y}Start.</param>
 private void SetSquareOnMapTo(Point leftTopSquarePos, MapElemStatus status, bool addVisibleStart = true)
 {
   Helpers.TowerSquareCycle(
     (dx, dy) =>
     {
       _map.SetMapElemStatus(
         leftTopSquarePos.X + dx + (addVisibleStart ? _map.VisibleXStart : 0),
         leftTopSquarePos.Y + dy + (addVisibleStart ? _map.VisibleYStart : 0), status);
       return true;
     }, 0);
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="MapElem"/> struct.
 /// </summary>
 /// <param name="pictNumber">The pict number.</param>
 /// <param name="angleOfRotate">The angle of rotate.</param>
 /// <param name="status">The status.</param>
 public MapElem(int pictNumber, int angleOfRotate, MapElemStatus status)
 {
   PictNumber = pictNumber;
   AngleOfRotate = angleOfRotate;
   Status = status;
 }
 /// <summary>
 /// Sets the map elem status.
 /// </summary>
 /// <param name="x">The x.</param>
 /// <param name="y">The y.</param>
 /// <param name="status">The status.</param>
 internal void SetMapElemStatus(int x, int y, MapElemStatus status)
 {
   _mapArray[y, x].Status = status;
 }