From ff6a348bb1975dd2e181d006abfff3c7e0ecdc72 Mon Sep 17 00:00:00 2001 From: Perttu Ahola Date: Tue, 15 Feb 2011 22:27:10 +0200 Subject: [PATCH] fixed slight error in server build --- src/CMakeLists.txt | 2 +- src/tile.cpp | 17 +++++++++++++---- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 3fccce66..1c684b0f 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -172,7 +172,7 @@ else() if(BUILD_SERVER) set_target_properties(minetestserver PROPERTIES - COMPILE_DEFINITIONS "-DSERVER") + COMPILE_DEFINITIONS "SERVER") endif(BUILD_SERVER) endif() diff --git a/src/tile.cpp b/src/tile.cpp index aa4b3d04..24cd9c01 100644 --- a/src/tile.cpp +++ b/src/tile.cpp @@ -20,14 +20,23 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "tile.h" #include "debug.h" #include "main.h" // for g_settings +#include "filesys.h" +/* + Gets the path to a texture by first checking if the texture exists + in texture_path and if not, using the data path. +*/ 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; + if(texture_path != "") + { + std::string fullpath = texture_path + '/' + filename; + if(fs::PathExists(fullpath)) + return fullpath; + } + + return porting::getDataPath(filename.c_str()); } TextureSource::TextureSource(IrrlichtDevice *device):