From a0e8f3afd3444e4ad7e8647672c51555b74bd218 Mon Sep 17 00:00:00 2001 From: Perttu Ahola Date: Tue, 15 Feb 2011 20:53:29 +0200 Subject: might work good on cmake+msvc now --- src/CMakeLists.txt | 12 +++++++----- src/defaultsettings.cpp | 2 ++ src/tile.cpp | 27 ++++++++++++++++++++------- 3 files changed, 29 insertions(+), 12 deletions(-) (limited to 'src') diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 6d9601c65..3fccce665 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -5,7 +5,9 @@ if(RUN_IN_PLACE) add_definitions ( -DRUN_IN_PLACE ) endif(RUN_IN_PLACE) -set(USE_GPROF 0 CACHE BOOL "Use -pg flag for g++") +if(NOT MSVC) + set(USE_GPROF 0 CACHE BOOL "Use -pg flag for g++") +endif() # Use cmake_config.h add_definitions ( -DUSE_CMAKE_CONFIG_H ) @@ -22,9 +24,9 @@ if(WIN32) set(ZLIB_INCLUDE_DIR "${PROJECT_SOURCE_DIR}/../../zlib/zlib-1.2.5" CACHE PATH "Zlib include directory") set(ZLIB_LIBRARIES "${PROJECT_SOURCE_DIR}/../../zlib125dll/dll32/zlibwapi.lib" - CACHE PATH "Path to zlibwapi.lib") + CACHE FILEPATH "Path to zlibwapi.lib") set(ZLIB_DLL "${PROJECT_SOURCE_DIR}/../../zlib125dll/dll32/zlibwapi.dll" - CACHE PATH "Path to zlibwapi.dll (for installation)") + CACHE FILEPATH "Path to zlibwapi.dll (for installation)") else() # Unix probably if(BUILD_CLIENT) @@ -149,7 +151,7 @@ if(MSVC) if(BUILD_SERVER) set_target_properties(minetestserver PROPERTIES - COMPILE_FLAGS "/D SERVER") + COMPILE_DEFINITIONS "/D SERVER") endif(BUILD_SERVER) else() @@ -170,7 +172,7 @@ else() if(BUILD_SERVER) set_target_properties(minetestserver PROPERTIES - COMPILE_FLAGS "-DSERVER") + COMPILE_DEFINITIONS "-DSERVER") endif(BUILD_SERVER) endif() diff --git a/src/defaultsettings.cpp b/src/defaultsettings.cpp index 63163add9..72f63d9fb 100644 --- a/src/defaultsettings.cpp +++ b/src/defaultsettings.cpp @@ -42,6 +42,8 @@ void set_default_settings() g_settings.setDefault("new_style_water", "false"); g_settings.setDefault("new_style_leaves", "true"); g_settings.setDefault("frametime_graph", "false"); + g_settings.setDefault("enable_texture_atlas", "true"); + g_settings.setDefault("texture_path", ""); g_settings.setDefault("free_move", "false"); g_settings.setDefault("continuous_forward", "false"); diff --git a/src/tile.cpp b/src/tile.cpp index 1bf09caff..aa4b3d042 100644 --- a/src/tile.cpp +++ b/src/tile.cpp @@ -19,6 +19,16 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "tile.h" #include "debug.h" +#include "main.h" // for g_settings + +inline std::string getTexturePath(std::string filename) +{ + std::string texture_path = g_settings.get("texture_path"); + if(texture_path == "") + return porting::getDataPath(filename.c_str()); + else + return texture_path + '/' + filename; +} TextureSource::TextureSource(IrrlichtDevice *device): m_device(device), @@ -36,7 +46,10 @@ TextureSource::TextureSource(IrrlichtDevice *device): m_name_to_id[""] = 0; // Build main texture atlas - buildMainAtlas(); + if(g_settings.getBool("enable_texture_atlas")) + buildMainAtlas(); + else + dstream<<"INFO: Not building texture atlas."<createImageFromFile( - porting::getDataPath(name.c_str()).c_str()); + getTexturePath(name.c_str()).c_str()); if(img == NULL) continue; @@ -517,7 +530,7 @@ void TextureSource::buildMainAtlas() Write image to file so that it can be inspected */ /*driver->writeImageToFile(atlas_img, - porting::getDataPath("main_atlas.png").c_str());*/ + getTexturePath("main_atlas.png").c_str());*/ } video::IImage* generate_image_from_scratch(std::string name, @@ -596,7 +609,7 @@ bool generate_image(std::string part_of_name, video::IImage *& baseimg, if(part_of_name[0] != '[') { // A normal texture; load it from a file - std::string path = porting::getDataPath(part_of_name.c_str()); + std::string path = getTexturePath(part_of_name.c_str()); dstream<<"INFO: getTextureIdDirect(): Loading path \""< pos_other(0, 16 * progression); video::IImage *crackimage = driver->createImageFromFile( - porting::getDataPath("crack.png").c_str()); + getTexturePath("crack.png").c_str()); if(crackimage) { @@ -755,7 +768,7 @@ bool generate_image(std::string part_of_name, video::IImage *& baseimg, <<"\" to combined ("<createImageFromFile( - porting::getDataPath(filename.c_str()).c_str()); + getTexturePath(filename.c_str()).c_str()); if(img) { core::dimension2d dim = img->getDimension(); @@ -814,7 +827,7 @@ bool generate_image(std::string part_of_name, video::IImage *& baseimg, std::string filename = part_of_name.substr(9); - std::string path = porting::getDataPath(filename.c_str()); + std::string path = getTexturePath(filename.c_str()); dstream<<"INFO: getTextureIdDirect(): Loading path \""<