Terraria.Graphics.Capture.CaptureInterface.GetMapCoords C# (CSharp) Method

GetMapCoords() private static method

private static GetMapCoords ( int PinX, int PinY, int Goal, Point &result ) : bool
PinX int
PinY int
Goal int
result Point
return bool
        private static bool GetMapCoords(int PinX, int PinY, int Goal, out Point result)
        {
            if (!Main.mapFullscreen)
            {
                result = new Point(-1, -1);
                return false;
            }

            float num3 = 2f;
            int num4 = Main.maxTilesX / Main.textureMaxWidth;
            int num5 = Main.maxTilesY / Main.textureMaxHeight;
            float num6 = 10f;
            float num7 = 10f;
            float num8 = (float)(Main.maxTilesX - 10);
            float num9 = (float)(Main.maxTilesY - 10);
            num3 = Main.mapFullscreenScale;
            float num10 = (float)(Main.screenWidth / Main.maxTilesX * 0.800000011920929);
            if (Main.mapFullscreenScale < num10)
                Main.mapFullscreenScale = num10;
            if (Main.mapFullscreenScale > 16.0)
                Main.mapFullscreenScale = 16f;
            float num11 = Main.mapFullscreenScale;
            if (Main.mapFullscreenPos.X < num6)
                Main.mapFullscreenPos.X = num6;
            if (Main.mapFullscreenPos.X > num8)
                Main.mapFullscreenPos.X = num8;
            if (Main.mapFullscreenPos.Y < num7)
                Main.mapFullscreenPos.Y = num7;
            if (Main.mapFullscreenPos.Y > num9)
                Main.mapFullscreenPos.Y = num9;

            float num12 = Main.mapFullscreenPos.X;
            float num13 = Main.mapFullscreenPos.Y;
            float num14 = num12 * num11;
            float num15 = num13 * num11;
            float num16 = -num14 + (float)(Main.screenWidth / 2);
            float num17 = -num15 + (float)(Main.screenHeight / 2);
            float x1 = num16 + num6 * num11;
            float y1 = num17 + num7 * num11;
            float num18 = (float)(Main.maxTilesX / 840) * Main.mapFullscreenScale;
            float num19 = x1;
            float num20 = y1;
            float num21 = (float)Main.mapTexture.Width;
            float num22 = (float)Main.mapTexture.Height;
            float num23;
            float num24;
            float num25;
            float num26;
            if (Main.maxTilesX == 8400)
            {
                float num27 = num18 * 0.999f;
                num23 = num19 - 40.6f * num27;
                num24 = y1 - 5f * num27;
                num25 = (num21 - 8.045f) * num27;
                float num28 = (num22 + 0.12f) * num27;
                if (num27 < 1.2)
                    num26 = num28 + 1f;
            }
            else if (Main.maxTilesX == 6400)
            {
                float num27 = num18 * 1.09f;
                num23 = num19 - 38.8f * num27;
                num24 = y1 - 3.85f * num27;
                num25 = (num21 - 13.6f) * num27;
                float num28 = (num22 - 6.92f) * num27;
                if (num27 < 1.2)
                    num26 = num28 + 2f;
            }
            else if (Main.maxTilesX == 6300)
            {
                float num27 = num18 * 1.09f;
                num23 = num19 - 39.8f * num27;
                num24 = y1 - 4.08f * num27;
                num25 = (num21 - 26.69f) * num27;
                float num28 = (num22 - 6.92f) * num27;
                if (num27 < 1.2)
                    num26 = num28 + 2f;
            }
            else if (Main.maxTilesX == 4200)
            {
                float num27 = num18 * 0.998f;
                num23 = num19 - 37.3f * num27;
                num24 = num20 - 1.7f * num27;
                num25 = (num21 - 16f) * num27;
                num26 = (num22 - 8.31f) * num27;
            }

            if (Goal == 0)
            {
                int x2 = (int)((-x1 + PinX) / num11 + num6);
                int y2 = (int)((-y1 + PinY) / num11 + num7);
                bool flag = false;
                if ((double)x2 < num6)
                    flag = true;
                if ((double)x2 >= num8)
                    flag = true;
                if ((double)y2 < num7)
                    flag = true;
                if ((double)y2 >= num9)
                    flag = true;

                if (!flag)
                {
                    result = new Point(x2, y2);
                    return true;
                }

                result = new Point(-1, -1);
                return false;
            }

            if (Goal == 1)
            {
                Vector2 vector2_1 = new Vector2(x1, y1);
                Vector2 vector2_2 = new Vector2((float)PinX, (float)PinY) * num11 - new Vector2(10f * num11);
                result = Utils.ToPoint(vector2_1 + vector2_2);
                return true;
            }

            result = new Point(-1, -1);
            return false;
        }