aboutsummaryrefslogtreecommitdiff
path: root/games/freeorion
diff options
context:
space:
mode:
authorJK Wood <joshuakwood@gmail.com>2021-07-11 09:27:39 +0200
committerWilly Sudiarto Raharjo <willysr@slackbuilds.org>2021-07-12 18:53:12 +0700
commite99d3b8224d24d114bd49c4123106c58d6786e25 (patch)
tree4f4bb9227fa578667395c80bcf724e97d00dbf79 /games/freeorion
parent04daf541c30dda4425778a69c9edd929c41223e4 (diff)
games/freeorion: Fix build.
Signed-off-by: Matteo Bernardini <ponce@slackbuilds.org> Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
Diffstat (limited to 'games/freeorion')
-rw-r--r--games/freeorion/freeorion.SlackBuild2
-rw-r--r--games/freeorion/ftb.patch103
2 files changed, 105 insertions, 0 deletions
diff --git a/games/freeorion/freeorion.SlackBuild b/games/freeorion/freeorion.SlackBuild
index 200c58d79991..5adf3f40cc70 100644
--- a/games/freeorion/freeorion.SlackBuild
+++ b/games/freeorion/freeorion.SlackBuild
@@ -74,6 +74,8 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
+patch -p0 < $CWD/ftb.patch
+
# tell cmake to use clang
export CC=/usr/bin/clang
export CXX=/usr/bin/clang++
diff --git a/games/freeorion/ftb.patch b/games/freeorion/ftb.patch
new file mode 100644
index 000000000000..5b888eca7650
--- /dev/null
+++ b/games/freeorion/ftb.patch
@@ -0,0 +1,103 @@
+--- 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 <cfloat>
+ #include "../util/Logger.h"
+ #include "../util/Random.h"
+ #include "../util/i18n.h"