diff options
Diffstat (limited to 'games/lordsawar/files')
-rw-r--r-- | games/lordsawar/files/patch-configure | 20 | ||||
-rw-r--r-- | games/lordsawar/files/patch-src_game.cpp | 98 | ||||
-rw-r--r-- | games/lordsawar/files/patch-src_ucompose.hpp | 14 |
3 files changed, 132 insertions, 0 deletions
diff --git a/games/lordsawar/files/patch-configure b/games/lordsawar/files/patch-configure new file mode 100644 index 000000000000..7e42d74e5343 --- /dev/null +++ b/games/lordsawar/files/patch-configure @@ -0,0 +1,20 @@ +Index: configure +@@ -4622,7 +4622,7 @@ + LDFLAGS="$LDFLAGS -lSDL_mixer" + LIBS="-lSDL_mixer $LIBS" + +- if test $CC = "gcc" || test $CXX = "g++"; then ++ if test $CC = "gcc" || test $CXX = "g++" || test $CXX = "c++"; then + + if test "$cross_compiling" = yes; then + { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling +@@ -13798,8 +13798,7 @@ + + rm -f src/main.o + +-LORDSAWAR_DATADIR="$datadir/lordsawar" +-LORDSAWAR_DATADIR=${LORDSAWAR_DATADIR/'${prefix}'/$prefix} ++eval LORDSAWAR_DATADIR="$datadir/lordsawar" + + + ac_config_files="$ac_config_files dat/Makefile dat/army/Makefile dat/army/default/Makefile dat/army/bigdefault/Makefile dat/tilesets/Makefile dat/tilesets/default/Makefile dat/tilesets/default/misc/Makefile dat/tilesets/bigdefault/Makefile dat/tilesets/bigdefault/misc/Makefile dat/shield/Makefile dat/shield/default/Makefile dat/shield/plain/Makefile dat/citysets/Makefile dat/citysets/default/Makefile dat/citysets/bigdefault/Makefile dat/various/Makefile dat/various/items/Makefile dat/various/editor/Makefile dat/map/Makefile dat/ggz/Makefile dat/ggz/lordsawar.dsc dat/ggz/lordsawar-server.dsc dat/music/Makefile dat/glade/Makefile dat/glade/editor/Makefile intl/Makefile po/Makefile.in po/Makefile Makefile src/Makefile doc/Makefile src/server/Makefile src/editor/Makefile src/gui/Makefile" diff --git a/games/lordsawar/files/patch-src_game.cpp b/games/lordsawar/files/patch-src_game.cpp new file mode 100644 index 000000000000..0f565bfff75e --- /dev/null +++ b/games/lordsawar/files/patch-src_game.cpp @@ -0,0 +1,98 @@ +Index: src/game.cpp +@@ -1115,15 +1115,6 @@ + int + Game::loadHeroTemplates() + { +- FILE *fileptr = fopen (File::getMiscFile("heronames").c_str(), "r"); +- char *line = NULL; +- size_t len = 0; +- ssize_t read; +- int retval; +- int gender; +- int side; +- size_t bytesread = 0; +- char *tmp; + const Armysetlist* al = Armysetlist::getInstance(); + const Army* herotype; + +@@ -1131,51 +1122,41 @@ + std::vector<const Army*> heroes; + Player *p = Playerlist::getInstance()->getNeutral(); + for (unsigned int j = 0; j < al->getSize(p->getArmyset()); j++) +- { ++ { + const Army *a = al->getArmy (p->getArmyset(), j); + if (a->isHero()) +- heroes.push_back(a); ++ heroes.push_back(a); + } ++ ++ std::ifstream file(File::getMiscFile("heronames").c_str()); + +- if (fileptr == NULL) +- return -1; +- while ((read = getline (&line, &len, fileptr)) != -1) +- { +- bytesread = 0; +- retval = sscanf (line, "%d%d%n", &side, &gender, &bytesread); +- if (retval != 2) +- { +- free (line); +- return -2; +- } +- while (isspace(line[bytesread]) && line[bytesread] != '\0') +- bytesread++; +- tmp = strchr (&line[bytesread], '\n'); +- if (tmp) +- tmp[0] = '\0'; +- if (strlen (&line[bytesread]) == 0) +- { +- free (line); +- return -3; +- } +- if (side < 0 || side > (int) MAX_PLAYERS) +- { +- free (line); +- return -4; ++ if (file.good()) { ++ std::string buffer, name; ++ int side, gender; ++ ++ while (std::getline(file, buffer)) { ++ std::istringstream line(buffer); ++ if (!(line >> side >> gender >> name)) ++ return -2; ++ ++ if (side < 0 || side > (int) MAX_PLAYERS) ++ return -4; ++ ++ herotype = heroes[rand() % heroes.size()]; ++ Hero *newhero = new Hero (*herotype, "", NULL); ++ ++ if (gender) ++ newhero->setGender(Hero::MALE); ++ else ++ newhero->setGender(Hero::FEMALE); ++ ++ newhero->setName (name); ++ d_herotemplates[side].push_back (newhero); + } ++ } else ++ return -1; + +- herotype = heroes[rand() % heroes.size()]; +- Hero *newhero = new Hero (*herotype, "", NULL); +- if (gender) +- newhero->setGender(Hero::MALE); +- else +- newhero->setGender(Hero::FEMALE); +- newhero->setName (&line[bytesread]); +- d_herotemplates[side].push_back (newhero); +- } +- if (line) +- free (line); +- fclose (fileptr); ++ file.close(); + return 0; + } + diff --git a/games/lordsawar/files/patch-src_ucompose.hpp b/games/lordsawar/files/patch-src_ucompose.hpp new file mode 100644 index 000000000000..660825131678 --- /dev/null +++ b/games/lordsawar/files/patch-src_ucompose.hpp @@ -0,0 +1,14 @@ +Index: src/ucompose.hpp +@@ -178,9 +178,9 @@ + inline Composition::Composition(std::string fmt) + : arg_no(1) + { +-#if __GNUC__ >= 3 +- os.imbue(std::locale("")); // use the user's locale for the stream +-#endif ++//#if __GNUC__ >= 3 ++// os.imbue(std::locale("")); // use the user's locale for the stream ++//#endif + std::string::size_type b = 0, i = 0; + + // fill in output with the strings between the %1 %2 %3 etc. and |