diff --git a/CMakeLists.txt b/CMakeLists.txt index a91fc43..8324f61 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -25,14 +25,11 @@ find_package_handle_standard_args(LibSqlite3 DEFAULT_MSG LIBSQLITE3_LIBRARY LIB mark_as_advanced(LIBSQLITE3_INCLUDE_DIR LIBSQLITE3_LIBRARY ) -find_package(Boost COMPONENTS system filesystem) - include_directories( "${PROJECT_BINARY_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_BINARY_DIR}" ${LIBSQLITE3_INCLUDE_DIRS} - ${Boost_INCLUDE_DIRS} ) set(mapper_HDRS @@ -54,7 +51,6 @@ add_executable(minetest_mapper target_link_libraries( minetest_mapper ${LIBSQLITE3_LIBRARIES} - ${Boost_LIBRARIES} gd z ) diff --git a/TileGenerator.cpp b/TileGenerator.cpp index 9ea8807..d5d363a 100644 --- a/TileGenerator.cpp +++ b/TileGenerator.cpp @@ -14,7 +14,8 @@ #include #include #include -#include +#include +#include "config.h" #include "TileGenerator.h" using namespace std; @@ -554,41 +555,48 @@ void TileGenerator::renderPlayers(const std::string &inputPath) int color = rgb2int(m_playerColor.r, m_playerColor.g, m_playerColor.b); string playersPath = inputPath + "players"; - boost::filesystem::path path(playersPath.c_str()); - boost::filesystem::directory_iterator end_iter; - boost::filesystem::directory_iterator iter(path); - for (; iter != end_iter; ++iter) { - if (!boost::filesystem::is_directory(iter->status())) { - string path = iter->path().string(); - - ifstream in; - in.open(path.c_str(), ifstream::in); - string buffer; - string name; - string position; - while (getline(in, buffer)) { - if (buffer.find("name = ") == 0) { - name = buffer.substr(7); - } - else if (buffer.find("position = ") == 0) { - position = buffer.substr(12, buffer.length() - 13); - } - } - double x, y, z; - char comma; - istringstream positionStream(position, istringstream::in); - positionStream >> x; - positionStream >> comma; - positionStream >> y; - positionStream >> comma; - positionStream >> z; - int imageX = x / 10 - m_xMin * 16 + m_border; - int imageY = m_mapHeight - (z / 10 - m_zMin * 16) + m_border; - - gdImageArc(m_image, imageX, imageY, 5, 5, 0, 360, color); - gdImageString(m_image, gdFontGetMediumBold(), imageX + 2, imageY + 2, reinterpret_cast(const_cast(name.c_str())), color); - } + DIR *dir; + dir = opendir (playersPath.c_str()); + if (dir == NULL) { + return; } + + struct dirent *ent; + while ((ent = readdir (dir)) != NULL) { + if (ent->d_type == DT_DIR) { + continue; + } + + string path = playersPath + PATH_SEPARATOR + ent->d_name; + + ifstream in; + in.open(path.c_str(), ifstream::in); + string buffer; + string name; + string position; + while (getline(in, buffer)) { + if (buffer.find("name = ") == 0) { + name = buffer.substr(7); + } + else if (buffer.find("position = ") == 0) { + position = buffer.substr(12, buffer.length() - 13); + } + } + double x, y, z; + char comma; + istringstream positionStream(position, istringstream::in); + positionStream >> x; + positionStream >> comma; + positionStream >> y; + positionStream >> comma; + positionStream >> z; + int imageX = x / 10 - m_xMin * 16 + m_border; + int imageY = m_mapHeight - (z / 10 - m_zMin * 16) + m_border; + + gdImageArc(m_image, imageX, imageY, 5, 5, 0, 360, color); + gdImageString(m_image, gdFontGetMediumBold(), imageX + 2, imageY + 2, reinterpret_cast(const_cast(name.c_str())), color); + } + closedir(dir); } inline std::list TileGenerator::getZValueList() const diff --git a/config.h b/config.h new file mode 100644 index 0000000..f158e51 --- /dev/null +++ b/config.h @@ -0,0 +1,14 @@ +/* + * ===================================================================== + * Version: 1.0 + * Created: 01.09.2012 12:58:02 + * Author: Miroslav Bendík + * Company: LinuxOS.sk + * ===================================================================== + */ + +#if MSDOS || __OS2__ || __NT__ || _WIN32 +#define PATH_SEPARATOR '\\' +#else +#define PATH_SEPARATOR '/' +#endif