summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
author Willy Sudiarto Raharjo2017-07-07 00:37:58 +0200
committer Matteo Bernardini2019-08-18 09:14:32 +0200
commit27ea38ef3bc2383204f762c8cd404310ab1a8d3b (patch)
tree7510838088ef3da5a6c05c8712f7e9c38e7a0b14
parentd04189e642ca17186cb9b2b5899fa9c12aceb782 (diff)
downloadslackbuilds-xu4.tar.gz
games/xu4: Fix build on -current.xu4
Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org> Signed-off-by: Matteo Bernardini <ponce@slackbuilds.org>
-rw-r--r--games/xu4/gcc7.patch90
-rw-r--r--games/xu4/xu4.SlackBuild3
2 files changed, 93 insertions, 0 deletions
diff --git a/games/xu4/gcc7.patch b/games/xu4/gcc7.patch
new file mode 100644
index 0000000000..29f2cceee4
--- /dev/null
+++ b/games/xu4/gcc7.patch
@@ -0,0 +1,90 @@
+--- xu4-20130612_svn/src/image_sdl.cpp.orig 2017-07-07 05:16:49.443617174 +0700
++++ xu4-20130612_svn/src/image_sdl.cpp 2017-07-07 05:25:40.763657058 +0700
+@@ -349,7 +349,7 @@
+ unsigned int y_finish = std::min(int(bottom), oy + span + 1);
+ for (y = y_start; y < y_finish; ++y) {
+
+- int divisor = 1 + span * 2 - abs(ox - x) - abs(oy - y);
++ int divisor = 1 + span * 2 - std::abs((long int) (ox - x)) - std::abs((long int) (oy - y));
+
+ unsigned int r, g, b, a;
+ getPixel(x, y, r, g, b, a);
+--- xu4-20130612_svn/src/map.cpp.orig 2017-07-07 05:26:04.108658810 +0700
++++ xu4-20130612_svn/src/map.cpp 2017-07-07 05:28:17.857668850 +0700
+@@ -123,14 +123,14 @@
+ if (map && map->border_behavior == Map::BORDER_WRAP) {
+ MapCoords me = *this;
+
+- if (abs(me.x - c.x) > abs(me.x + map->width - c.x))
++ if (std::abs((long int) (me.x - c.x)) > std::abs((long int) (me.x + map->width - c.x)))
+ me.x += map->width;
+- else if (abs(me.x - c.x) > abs(me.x - map->width - c.x))
++ else if (std::abs((long int) (me.x - c.x)) > std::abs((long int) (me.x - map->width - c.x)))
+ me.x -= map->width;
+
+- if (abs(me.y - c.y) > abs(me.y + map->width - c.y))
++ if (std::abs((long int) (me.y - c.y)) > std::abs((long int) (me.y + map->width - c.y)))
+ me.y += map->height;
+- else if (abs(me.y - c.y) > abs(me.y - map->width - c.y))
++ else if (std::abs((long int) (me.y - c.y)) > std::abs((long int) (me.y - map->width - c.y)))
+ me.y -= map->height;
+
+ dx = me.x - c.x;
+--- xu4-20130612_svn/src/person.cpp.orig 2017-07-07 05:28:34.604670107 +0700
++++ xu4-20130612_svn/src/person.cpp 2017-07-07 05:29:29.432674223 +0700
+@@ -221,7 +221,7 @@
+ eventHandler->pushController(&getPlayerCtrl);
+ int player = getPlayerCtrl.waitFor();
+ if (player != -1) {
+- string player_str = to_string(player+1);
++ string player_str = to_string((long int) player+1);
+ script->setVar(script->getInputName(), player_str);
+ }
+ else script->unsetVar(script->getInputName());
+--- xu4-20130612_svn/src/script.cpp.orig 2017-07-07 05:29:46.242675485 +0700
++++ xu4-20130612_svn/src/script.cpp 2017-07-07 05:31:00.015681023 +0700
+@@ -44,7 +44,7 @@
+
+ Script::Variable::Variable(const int &v) : set(true) {
+ i_val = v;
+- s_val = to_string(v);
++ s_val = to_string((long int) v);
+ }
+
+ int& Script::Variable::getInt() { return i_val; }
+@@ -503,7 +503,7 @@
+ }
+ // Get the current iterator for our loop
+ else if (item == "iterator")
+- prop = to_string(this->iterator);
++ prop = to_string((long int) this->iterator);
+ else if ((pos = item.find("show_inventory:")) < item.length()) {
+ pos = item.find(":");
+ string itemScript = item.substr(pos+1);
+@@ -611,7 +611,7 @@
+ if (content.empty())
+ errorWarning("Error: empty math() function");
+
+- prop = to_string(mathValue(content));
++ prop = to_string((long int) mathValue(content));
+ }
+
+ /**
+@@ -643,7 +643,7 @@
+
+ /* generate a random number */
+ else if (funcName == "random")
+- prop = to_string(xu4_random((int)strtol(content.c_str(), NULL, 10)));
++ prop = to_string((long int) xu4_random((int)strtol(content.c_str(), NULL, 10)));
+
+ /* replaced with "true" if content is empty, or "false" if not */
+ else if (funcName == "isempty") {
+@@ -1391,7 +1391,7 @@
+ string children_results;
+
+ mathParseChildren(current, &children_results);
+- *result = to_string(mathValue(children_results));
++ *result = to_string((long int) mathValue(children_results));
+ }
+ }
+ }
diff --git a/games/xu4/xu4.SlackBuild b/games/xu4/xu4.SlackBuild
index d4439ca2cc..08a91827bf 100644
--- a/games/xu4/xu4.SlackBuild
+++ b/games/xu4/xu4.SlackBuild
@@ -73,6 +73,9 @@ sed -i -e '/border\.png/s,^,//,' src/imagemgr.cpp
# validate the game's XML files. So:
sed -i '/#define *DEFAULT_VALIDATE_XML/s,1,0,' src/settings.h
+# Patch for GCC 7
+patch -p1 < $CWD/gcc7.patch
+
# The -DNPERF stops u4 from creating a debug/ in the current dir.
make -C src DEBUGCXXFLAGS="-DNPERF $SLKCFLAGS" prefix=/usr libdir=$PKGLIBDIR
make -C src install prefix=$PKG/usr libdir=$PKGLIBDIR