public string CornerInfoToString(ZoneCorners corners)
        {
            StringBuilder sb = new StringBuilder();

            if ((corners & ZoneCorners.TopLeft) != 0)
            {
                sb.Append(" TopLeft");
            }

            if ((corners & ZoneCorners.TopRight) != 0)
            {
                sb.Append(" TopRight");
            }

            if ((corners & ZoneCorners.BottomLeft) != 0)
            {
                sb.Append(" BottomLeft");
            }

            if ((corners & ZoneCorners.BottomRight) != 0)
            {
                sb.Append(" BottomRight");
            }

            return sb.ToString();
        }
        private ZoneCorners TransposeCorner(MiscSection ms, ZoneCorners corner)
        {
            if (ms.Rotation == 1)
            {
                switch (corner)
                {
                    case ZoneCorners.BottomLeft:
                        return ZoneCorners.BottomRight;
                    case ZoneCorners.BottomRight:
                        return ZoneCorners.TopRight;
                    case ZoneCorners.TopLeft:
                        return ZoneCorners.BottomLeft;
                    case ZoneCorners.TopRight:
                        return ZoneCorners.TopLeft;
                }
            }
            else if (ms.Rotation == 2)
            {
                switch (corner)
                {
                    case ZoneCorners.BottomLeft:
                        return ZoneCorners.TopRight;
                    case ZoneCorners.BottomRight:
                        return ZoneCorners.TopLeft;
                    case ZoneCorners.TopLeft:
                        return ZoneCorners.BottomRight;
                    case ZoneCorners.TopRight:
                        return ZoneCorners.BottomLeft;
                }
            }
            else if (ms.Rotation == 3)
            {
                switch (corner)
                {
                    case ZoneCorners.BottomLeft:
                        return ZoneCorners.TopLeft;
                    case ZoneCorners.BottomRight:
                        return ZoneCorners.BottomLeft;
                    case ZoneCorners.TopLeft:
                        return ZoneCorners.TopRight;
                    case ZoneCorners.TopRight:
                        return ZoneCorners.BottomRight;
                }
            }

            return corner;
        }