protected (List <(float x, float y, float z)> vertices, float lineWidth, Color color) GetData(bool whichLine)
        {
            float marioX = Config.Stream.GetFloat(MarioConfig.StructAddress + MarioConfig.XOffset);
            float marioY = Config.Stream.GetFloat(MarioConfig.StructAddress + MarioConfig.YOffset);
            float marioZ = Config.Stream.GetFloat(MarioConfig.StructAddress + MarioConfig.ZOffset);

            List <(float x, float y, float z)> vertices = new List <(float x, float y, float z)>();
            float lineWidth;
            Color color;

            if (whichLine)
            {
                uint wallTriangle = _customWallTri ?? Config.Stream.GetUInt(MarioConfig.StructAddress + MarioConfig.WallTriangleOffset);
                if (wallTriangle != 0)
                {
                    double wallUphillAngle = WatchVariableSpecialUtilities.GetTriangleUphillAngle(wallTriangle);
                    (float x2, float z2) = ((float, float))MoreMath.AddVectorToPoint(60, wallUphillAngle, marioX, marioZ);
                    vertices.Add((x2, marioY + 100, z2));
                    vertices.Add((x2, marioY + 238, z2));
                }
                else
                {
                    vertices.Add((marioX, marioY + 100, marioZ));
                    vertices.Add((marioX, marioY + 238, marioZ));
                }
                lineWidth = Size;
                color     = Color;
            }
            else
            {
                vertices.Add((marioX, marioY + 30, marioZ));
                vertices.Add((marioX, marioY + 150, marioZ));
                lineWidth = LineWidth;
                color     = LineColor;
            }

            return(vertices, lineWidth, color);
        }