--- UI/CombatReport/GraphicalSummary.cpp 2021-07-10 14:11:25.281161865 -0500 +++ UI/CombatReport/GraphicalSummary.cpp 2021-07-10 14:11:34.010981701 -0500 @@ -409,91 +409,6 @@ m_y_axis_label->MoveTo(GG::Pt(-m_y_axis_label->MinUsableSize().x / 2 - AXIS_WIDTH, Height()/2 - m_y_axis_label->Height()/2)); } - void DrawArrow(GG::Pt begin, GG::Pt end) { - double head_width = 5.0; - // A vector (math) of the arrow we wish to draw - GG::Pt direction = end - begin; - double length = sqrt(1.0*(Value(direction.x)*Value(direction.x) + - Value(direction.y)*Value(direction.y))); - if (length == 0) { - return; - } - - // The point in the main line of the arrow, - // paraller to which the head ends - // \. - // \. - // --------h--> - // /. - // /. - // h is at the handle - GG::Pt handle; - // How much to move off the handle to get to - // the end point of one of the head lines - GG::X delta_x; - GG::Y delta_y; - - if (direction.x != 0 && direction.y != 0) { - // In a skewed arrow we need - // a bit of geometry to figure out the head - double x = Value(direction.x); - double y = Value(direction.y); - double normalizer = head_width / sqrt(1 + x*x / (y*y)); - delta_x = GG::X(normalizer); - delta_y = GG::Y(- x / y * normalizer); - - handle = end - GG::Pt((head_width / length) * direction.x, (head_width / length) * direction.y); - } else if (direction.x == 0) { - // Vertical arrow - handle = end; - handle.y -= boost::math::sign(Value(direction.y))*GG::Y(head_width); - delta_x = GG::X(head_width); - delta_y = GG::Y0; - } else { - //horizontal arrow - handle = end; - handle.x -= boost::math::sign(Value(direction.x)) * GG::X(head_width); - delta_x = GG::X0; - delta_y = GG::Y(head_width); - } - - GG::Pt left_head = handle; - GG::Pt right_head = handle; - - left_head.x += delta_x; - left_head.y += delta_y; - // The other line is on the opposite side of the handle - right_head.x -= delta_x; - right_head.y -= delta_y; - - GG::glColor(GG::CLR_WHITE); - glLineWidth(2); - glDisable(GL_TEXTURE_2D); - - GG::GL2DVertexBuffer verts; - verts.reserve(6); - verts.store(Value(begin.x), Value(begin.y)); - verts.store(Value(end.x), Value(end.y)); - verts.store(Value(end.x), Value(end.y)); - verts.store(Value(left_head.x), Value(left_head.y)); - verts.store(Value(end.x), Value(end.y)); - verts.store(Value(right_head.x),Value(right_head.y)); - verts.activate(); - - glDrawArrays(GL_LINES, 0, verts.size()); - - glEnable(GL_TEXTURE_2D); - } - - void Render() override { - // Draw the axes outside th3e client area - GG::Pt begin(ClientUpperLeft().x - AXIS_WIDTH/2, ClientLowerRight().y + AXIS_HEIGHT/2); - GG::Pt x_end(ClientLowerRight().x, begin.y); - GG::Pt y_end(begin.x, ClientUpperLeft().y); - DrawArrow(begin, x_end); - DrawArrow(begin, y_end); - } - void SizeMove(const GG::Pt& ul, const GG::Pt& lr) override { GG::Wnd::SizeMove(ul, lr); DoLayout(); --- universe/Conditions.cpp 2021-07-10 14:11:05.049579392 -0500 +++ universe/Conditions.cpp 2021-07-10 14:13:39.582389758 -0500 @@ -1,5 +1,6 @@ #include "Conditions.h" +#include #include "../util/Logger.h" #include "../util/Random.h" #include "../util/i18n.h"