diff options
Diffstat (limited to 'games')
-rw-r--r-- | games/xu4/gcc7.patch | 90 | ||||
-rw-r--r-- | games/xu4/xu4.SlackBuild | 3 |
2 files changed, 93 insertions, 0 deletions
diff --git a/games/xu4/gcc7.patch b/games/xu4/gcc7.patch new file mode 100644 index 0000000000000..29f2cceee4394 --- /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 d4439ca2cce29..08a91827bf6d1 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 |