- bug fixes and patches from hasufell related to:
- fontconfig not working - new cmake option to control inclusion of libvlc - new commandline option to force where to look for fonts: --font-path=x - removal of libluajit from cmake
This commit is contained in:
parent
53f1163ca4
commit
d322f73284
|
@ -44,6 +44,7 @@ OPTION(BUILD_MEGAGLEST_MODEL_IMPORT_EXPORT_TOOLS "Build model import/export tool
|
||||||
OPTION(BUILD_MEGAGLEST_MODEL_VIEWER "Build model viewer" ON)
|
OPTION(BUILD_MEGAGLEST_MODEL_VIEWER "Build model viewer" ON)
|
||||||
OPTION(BUILD_MEGAGLEST_MAP_EDITOR "Build map editor" ON)
|
OPTION(BUILD_MEGAGLEST_MAP_EDITOR "Build map editor" ON)
|
||||||
OPTION(BUILD_MEGAGLEST "Build MegaGlest" ON)
|
OPTION(BUILD_MEGAGLEST "Build MegaGlest" ON)
|
||||||
|
OPTION(WITH_VLC "Use libVLC to play videos" ON)
|
||||||
|
|
||||||
FIND_PROGRAM(HELP2MAN "help2man")
|
FIND_PROGRAM(HELP2MAN "help2man")
|
||||||
|
|
||||||
|
|
|
@ -1151,6 +1151,29 @@ int setupGameItemPaths(int argc, char** argv, Config *config) {
|
||||||
}
|
}
|
||||||
|
|
||||||
Text::DEFAULT_FONT_PATH = pathCache[GameConstants::path_data_CacheLookupKey];
|
Text::DEFAULT_FONT_PATH = pathCache[GameConstants::path_data_CacheLookupKey];
|
||||||
|
if(hasCommandArgument(argc, argv,GAME_ARGS[GAME_ARG_FONT_PATH]) == true) {
|
||||||
|
int foundParamIndIndex = -1;
|
||||||
|
hasCommandArgument(argc, argv,string(GAME_ARGS[GAME_ARG_FONT_PATH]) + string("="),&foundParamIndIndex);
|
||||||
|
if(foundParamIndIndex < 0) {
|
||||||
|
hasCommandArgument(argc, argv,string(GAME_ARGS[GAME_ARG_FONT_PATH]),&foundParamIndIndex);
|
||||||
|
}
|
||||||
|
string customPath = argv[foundParamIndIndex];
|
||||||
|
vector<string> paramPartTokens;
|
||||||
|
Tokenize(customPath,paramPartTokens,"=");
|
||||||
|
if(paramPartTokens.size() >= 2 && paramPartTokens[1].length() > 0) {
|
||||||
|
string customPathValue = paramPartTokens[1];
|
||||||
|
Properties::applyTagsToValue(customPathValue);
|
||||||
|
|
||||||
|
Text::DEFAULT_FONT_PATH_ABSOLUTE = customPathValue;
|
||||||
|
if(SystemFlags::VERBOSE_MODE_ENABLED) printf("Using custom fonts path [%s]\n",customPathValue.c_str());
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
|
||||||
|
printf("\nInvalid path specified on commandline [%s] value [%s]\n\n",argv[foundParamIndIndex],(paramPartTokens.size() >= 2 ? paramPartTokens[1].c_str() : NULL));
|
||||||
|
printParameterHelp(argv[0],false);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -110,23 +110,23 @@ IF(BUILD_MEGAGLEST_MODEL_VIEWER OR BUILD_MEGAGLEST_MAP_EDITOR OR BUILD_MEGAGLEST
|
||||||
# ENDIF()
|
# ENDIF()
|
||||||
|
|
||||||
|
|
||||||
FIND_PACKAGE(LUAJIT)
|
# FIND_PACKAGE(LUAJIT)
|
||||||
IF(LUAJIT_FOUND)
|
# IF(LUAJIT_FOUND)
|
||||||
MESSAGE(STATUS "**NOTE: LUAJIT found, this should improve Lua performance.")
|
# MESSAGE(STATUS "**NOTE: LUAJIT found, this should improve Lua performance.")
|
||||||
|
#
|
||||||
INCLUDE_DIRECTORIES(${LUAJIT_INCLUDE_DIR})
|
# INCLUDE_DIRECTORIES(${LUAJIT_INCLUDE_DIR})
|
||||||
IF(UNIX)
|
# IF(UNIX)
|
||||||
SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${LUAJIT_LIBRARIES} "libdl.so")
|
# SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${LUAJIT_LIBRARIES} "libdl.so")
|
||||||
ENDIF()
|
# ENDIF()
|
||||||
ELSE()
|
# ELSE()
|
||||||
MESSAGE(STATUS "**WARNING: LUAJIT NOT found, so Lua performance may suffer.")
|
# MESSAGE(STATUS "**WARNING: LUAJIT NOT found, so Lua performance may suffer.")
|
||||||
|
#
|
||||||
FIND_PACKAGE(LUA REQUIRED)
|
FIND_PACKAGE(LUA REQUIRED)
|
||||||
INCLUDE_DIRECTORIES(${LUA_INCLUDE_DIR})
|
INCLUDE_DIRECTORIES(${LUA_INCLUDE_DIR})
|
||||||
IF(UNIX)
|
IF(UNIX)
|
||||||
SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${LUA_LIBRARIES} "libdl.so")
|
SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${LUA_LIBRARIES} "libdl.so")
|
||||||
ENDIF()
|
ENDIF()
|
||||||
ENDIF()
|
# ENDIF()
|
||||||
|
|
||||||
OPTION(WANT_STATIC_LIBS "builds as many static libs as possible" OFF)
|
OPTION(WANT_STATIC_LIBS "builds as many static libs as possible" OFF)
|
||||||
|
|
||||||
|
@ -223,7 +223,7 @@ IF(BUILD_MEGAGLEST_MODEL_VIEWER OR BUILD_MEGAGLEST_MAP_EDITOR OR BUILD_MEGAGLEST
|
||||||
SET(LIBVLC_MIN_VERSION "1.1.0")
|
SET(LIBVLC_MIN_VERSION "1.1.0")
|
||||||
FIND_PACKAGE(LIBVLC)
|
FIND_PACKAGE(LIBVLC)
|
||||||
|
|
||||||
IF(LIBVLC_FOUND AND NOT LIBVLC_VERSION STRLESS "${LIBVLC_MIN_VERSION}")
|
IF(LIBVLC_FOUND AND WITH_VLC AND NOT LIBVLC_VERSION STRLESS "${LIBVLC_MIN_VERSION}")
|
||||||
MESSAGE(STATUS "**NOTE: LIBVLC found so videos are supported.")
|
MESSAGE(STATUS "**NOTE: LIBVLC found so videos are supported.")
|
||||||
INCLUDE_DIRECTORIES(${LIBVLC_INCLUDE_DIR})
|
INCLUDE_DIRECTORIES(${LIBVLC_INCLUDE_DIR})
|
||||||
IF(UNIX)
|
IF(UNIX)
|
||||||
|
@ -239,6 +239,12 @@ IF(BUILD_MEGAGLEST_MODEL_VIEWER OR BUILD_MEGAGLEST_MAP_EDITOR OR BUILD_MEGAGLEST
|
||||||
|
|
||||||
ELSE()
|
ELSE()
|
||||||
MESSAGE(STATUS "**WARNING: LIBVLC NOT found so videos are NOT supported.")
|
MESSAGE(STATUS "**WARNING: LIBVLC NOT found so videos are NOT supported.")
|
||||||
|
|
||||||
|
IF(WITH_VLC)
|
||||||
|
MESSAGE(STATUS "**WARNING: LIBVLC NOT found so videos are NOT supported.")
|
||||||
|
ELSE()
|
||||||
|
MESSAGE(STATUS "LIBVLC disabled so videos are NOT supported.")
|
||||||
|
ENDIF()
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
|
||||||
#########################################################################################
|
#########################################################################################
|
||||||
|
|
|
@ -32,6 +32,7 @@ protected:
|
||||||
public:
|
public:
|
||||||
|
|
||||||
static std::string DEFAULT_FONT_PATH;
|
static std::string DEFAULT_FONT_PATH;
|
||||||
|
static std::string DEFAULT_FONT_PATH_ABSOLUTE;
|
||||||
|
|
||||||
Text(FontTextHandlerType type);
|
Text(FontTextHandlerType type);
|
||||||
virtual ~Text();
|
virtual ~Text();
|
||||||
|
|
|
@ -59,6 +59,7 @@ const char *GAME_ARGS[] = {
|
||||||
"--data-path",
|
"--data-path",
|
||||||
"--ini-path",
|
"--ini-path",
|
||||||
"--log-path",
|
"--log-path",
|
||||||
|
"--font-path",
|
||||||
"--show-ini-settings",
|
"--show-ini-settings",
|
||||||
"--convert-models",
|
"--convert-models",
|
||||||
"--use-language",
|
"--use-language",
|
||||||
|
@ -131,6 +132,7 @@ enum GAME_ARG_TYPE {
|
||||||
GAME_ARG_DATA_PATH,
|
GAME_ARG_DATA_PATH,
|
||||||
GAME_ARG_INI_PATH,
|
GAME_ARG_INI_PATH,
|
||||||
GAME_ARG_LOG_PATH,
|
GAME_ARG_LOG_PATH,
|
||||||
|
GAME_ARG_FONT_PATH,
|
||||||
GAME_ARG_SHOW_INI_SETTINGS,
|
GAME_ARG_SHOW_INI_SETTINGS,
|
||||||
GAME_ARG_CONVERT_MODELS,
|
GAME_ARG_CONVERT_MODELS,
|
||||||
GAME_ARG_USE_LANGUAGE,
|
GAME_ARG_USE_LANGUAGE,
|
||||||
|
@ -347,6 +349,10 @@ void printParameterHelp(const char *argv0, bool foundInvalidArgs) {
|
||||||
printf("\n%s=x\t\t\tSets the game logs path to x",GAME_ARGS[GAME_ARG_LOG_PATH]);
|
printf("\n%s=x\t\t\tSets the game logs path to x",GAME_ARGS[GAME_ARG_LOG_PATH]);
|
||||||
printf("\n \t\texample:");
|
printf("\n \t\texample:");
|
||||||
printf("\n %s %s=~/game_logs/",extractFileFromDirectoryPath(argv0).c_str(),GAME_ARGS[GAME_ARG_LOG_PATH]);
|
printf("\n %s %s=~/game_logs/",extractFileFromDirectoryPath(argv0).c_str(),GAME_ARGS[GAME_ARG_LOG_PATH]);
|
||||||
|
printf("\n%s=x\t\t\tSets the game fonts path to x",GAME_ARGS[GAME_ARG_FONT_PATH]);
|
||||||
|
printf("\n \t\texample:");
|
||||||
|
printf("\n %s %s=~/myfonts/",extractFileFromDirectoryPath(argv0).c_str(),GAME_ARGS[GAME_ARG_FONT_PATH]);
|
||||||
|
|
||||||
printf("\n%s=x\t\tdisplay merged ini settings information.",GAME_ARGS[GAME_ARG_SHOW_INI_SETTINGS]);
|
printf("\n%s=x\t\tdisplay merged ini settings information.",GAME_ARGS[GAME_ARG_SHOW_INI_SETTINGS]);
|
||||||
printf("\n \t\tWhere x is an optional property name to");
|
printf("\n \t\tWhere x is an optional property name to");
|
||||||
printf("\n \t\t filter (default shows all).");
|
printf("\n \t\t filter (default shows all).");
|
||||||
|
|
|
@ -366,6 +366,9 @@ string findFontFamily(const char* font, const char *fontFamily) {
|
||||||
// -DWANT_FONTCONFIG=Off
|
// -DWANT_FONTCONFIG=Off
|
||||||
FcFini();
|
FcFini();
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
if(SystemFlags::VERBOSE_MODE_ENABLED) printf("******************* FONT CONFIG will not be called font [%s] fontFamily [%s]!\n",(font != NULL ? font : "null"),(fontFamily != NULL ? fontFamily : "null"));
|
||||||
|
}
|
||||||
#else
|
#else
|
||||||
if(SystemFlags::VERBOSE_MODE_ENABLED) printf("******************* NO FONT CONFIG ENABLED!\n");
|
if(SystemFlags::VERBOSE_MODE_ENABLED) printf("******************* NO FONT CONFIG ENABLED!\n");
|
||||||
#endif
|
#endif
|
||||||
|
@ -382,17 +385,19 @@ const char* findFont(const char *firstFontToTry,const char *firstFontFamilyToTry
|
||||||
path = filename; \
|
path = filename; \
|
||||||
if( font == NULL && path != NULL && strlen(path) > 0 && fileExists(path) == true ) { \
|
if( font == NULL && path != NULL && strlen(path) > 0 && fileExists(path) == true ) { \
|
||||||
font = strdup(path); \
|
font = strdup(path); \
|
||||||
if(SystemFlags::VERBOSE_MODE_ENABLED) printf("#1 candidate font file [%s]\n",(font != NULL ? font : "null")); \
|
if(SystemFlags::VERBOSE_MODE_ENABLED) printf("#1 candidate font file exists [%s]\n",(font != NULL ? font : "null")); \
|
||||||
} \
|
} \
|
||||||
if(SystemFlags::VERBOSE_MODE_ENABLED) printf("#1 Searching for font file [%s] result [%s]\n",(path != NULL ? path : "null"),(font != NULL ? font : "null")); \
|
if(SystemFlags::VERBOSE_MODE_ENABLED) printf("#1 Searching for font file [%s] result [%s]\n",(path != NULL ? path : "null"),(font != NULL ? font : "null")); \
|
||||||
if( font != NULL && fontFamily != NULL && strlen(fontFamily) > 0) { \
|
if( font == NULL && fontFamily != NULL && strlen(fontFamily) > 0) { \
|
||||||
|
if(SystemFlags::VERBOSE_MODE_ENABLED) printf("#2 Searching for font [%s] family [%s]\n",(font != NULL ? font : "null"),(fontFamily != NULL ? fontFamily : "null")); \
|
||||||
string fileFound = findFontFamily(font, fontFamily); \
|
string fileFound = findFontFamily(font, fontFamily); \
|
||||||
if(fileFound != "") { \
|
if(fileFound != "") { \
|
||||||
path = fileFound.c_str(); \
|
path = fileFound.c_str(); \
|
||||||
if( font != NULL && path && strlen(path) > 0 && fileExists(path) == true ) { \
|
if(SystemFlags::VERBOSE_MODE_ENABLED) printf("#2 candidate font file found [%s]\n",fileFound.c_str()); \
|
||||||
free((void*)font); \
|
if( path != NULL && strlen(path) > 0 && fileExists(path) == true ) { \
|
||||||
|
if(font) free((void*)font); \
|
||||||
font = strdup(path); \
|
font = strdup(path); \
|
||||||
if(SystemFlags::VERBOSE_MODE_ENABLED) printf("#2 candidate font file [%s]\n",(font != NULL ? font : "null")); \
|
if(SystemFlags::VERBOSE_MODE_ENABLED) printf("#2 candidate font file has been set[%s]\n",(font != NULL ? font : "null")); \
|
||||||
} \
|
} \
|
||||||
} \
|
} \
|
||||||
if(SystemFlags::VERBOSE_MODE_ENABLED) printf("#2 Searching for font family [%s] result [%s]\n",(fontFamily != NULL ? fontFamily : "null"),(font != NULL ? font : "null")); \
|
if(SystemFlags::VERBOSE_MODE_ENABLED) printf("#2 Searching for font family [%s] result [%s]\n",(fontFamily != NULL ? fontFamily : "null"),(font != NULL ? font : "null")); \
|
||||||
|
@ -420,6 +425,10 @@ const char* findFont(const char *firstFontToTry,const char *firstFontFamilyToTry
|
||||||
|
|
||||||
if(getenv("MEGAGLEST_FONT") != NULL) {
|
if(getenv("MEGAGLEST_FONT") != NULL) {
|
||||||
tryFont = getenv("MEGAGLEST_FONT");
|
tryFont = getenv("MEGAGLEST_FONT");
|
||||||
|
|
||||||
|
if(Text::DEFAULT_FONT_PATH_ABSOLUTE != "") {
|
||||||
|
tryFont = Text::DEFAULT_FONT_PATH_ABSOLUTE + "/" + extractFileFromDirectoryPath(tryFont);
|
||||||
|
}
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
replaceAll(tryFont, "/", "\\");
|
replaceAll(tryFont, "/", "\\");
|
||||||
#endif
|
#endif
|
||||||
|
@ -433,16 +442,20 @@ const char* findFont(const char *firstFontToTry,const char *firstFontFamilyToTry
|
||||||
|
|
||||||
string data_path = Text::DEFAULT_FONT_PATH;
|
string data_path = Text::DEFAULT_FONT_PATH;
|
||||||
string defaultFont = data_path + "data/core/fonts/LinBiolinum_RB.ttf";//LinBiolinum_Re-0.6.4.ttf
|
string defaultFont = data_path + "data/core/fonts/LinBiolinum_RB.ttf";//LinBiolinum_Re-0.6.4.ttf
|
||||||
|
if(Text::DEFAULT_FONT_PATH_ABSOLUTE != "") {
|
||||||
|
data_path = Text::DEFAULT_FONT_PATH;
|
||||||
|
defaultFont = data_path + "/LinBiolinum_RB.ttf";//LinBiolinum_Re-0.6.4.ttf
|
||||||
|
}
|
||||||
tryFont = defaultFont;
|
tryFont = defaultFont;
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
replaceAll(tryFont, "/", "\\");
|
replaceAll(tryFont, "/", "\\");
|
||||||
#endif
|
#endif
|
||||||
CHECK_FONT_PATH(tryFont.c_str(),"Linux Biolinum O:style=Bold")
|
CHECK_FONT_PATH(tryFont.c_str(),"Linux Biolinum O:style=Bold")
|
||||||
|
|
||||||
#ifdef FONT_PATH
|
#ifdef FONT_PATH
|
||||||
// Get distro-specified font path
|
// Get distro-specified font path
|
||||||
CHECK_FONT_PATH(FONT_PATH)
|
CHECK_FONT_PATH(FONT_PATH)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
CHECK_FONT_PATH("/usr/share/fonts/truetype/uralic/gothub__.ttf","Gothic Uralic:style=Regular")
|
CHECK_FONT_PATH("/usr/share/fonts/truetype/uralic/gothub__.ttf","Gothic Uralic:style=Regular")
|
||||||
|
|
||||||
|
@ -486,6 +499,11 @@ const char* findFont(const char *firstFontToTry,const char *firstFontFamilyToTry
|
||||||
CHECK_FONT_PATH("/usr/share/fonts/truetype/freefont/FreeSans.ttf","FreeSans")
|
CHECK_FONT_PATH("/usr/share/fonts/truetype/freefont/FreeSans.ttf","FreeSans")
|
||||||
CHECK_FONT_PATH("/usr/share/fonts/truetype/freefont/FreeMono.ttf","FreeMono")
|
CHECK_FONT_PATH("/usr/share/fonts/truetype/freefont/FreeMono.ttf","FreeMono")
|
||||||
|
|
||||||
|
// gentoo paths
|
||||||
|
CHECK_FONT_PATH("/usr/share/fonts/freefont-ttf/FreeSerif.ttf","FreeSerif")
|
||||||
|
CHECK_FONT_PATH("/usr/share/fonts/freefont-ttf/FreeSans.ttf","FreeSans")
|
||||||
|
CHECK_FONT_PATH("/usr/share/fonts/freefont-ttf/FreeMono.ttf","FreeMono")
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
CHECK_FONT_PATH("c:\\windows\\fonts\\verdana.ttf",NULL)
|
CHECK_FONT_PATH("c:\\windows\\fonts\\verdana.ttf",NULL)
|
||||||
CHECK_FONT_PATH("c:\\windows\\fonts\\tahoma.ttf",NULL)
|
CHECK_FONT_PATH("c:\\windows\\fonts\\tahoma.ttf",NULL)
|
||||||
|
|
|
@ -13,6 +13,7 @@
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
std::string Text::DEFAULT_FONT_PATH = "";
|
std::string Text::DEFAULT_FONT_PATH = "";
|
||||||
|
std::string Text::DEFAULT_FONT_PATH_ABSOLUTE = "";
|
||||||
|
|
||||||
//====================================================================
|
//====================================================================
|
||||||
Text::Text(FontTextHandlerType type) {
|
Text::Text(FontTextHandlerType type) {
|
||||||
|
|
Loading…
Reference in New Issue