From 30b9a4d6b479ecfcb84d4803f5d15ee9b6c7edd6 Mon Sep 17 00:00:00 2001 From: Ilya Zhuravlev Date: Sun, 3 Feb 2013 16:19:09 +0400 Subject: Add Freetype support --- src/main.cpp | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) (limited to 'src/main.cpp') diff --git a/src/main.cpp b/src/main.cpp index 6f4095148..968dc8d60 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -68,6 +68,9 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "profiler.h" #include "log.h" #include "mods.h" +#if USE_FREETYPE +#include "xCGUITTFont.h" +#endif #include "util/string.h" #include "subgame.h" #include "quicktune.h" @@ -767,11 +770,19 @@ int main(int argc, char *argv[]) log_register_thread("main"); - // Set locale. This is for forcing '.' as the decimal point. - std::locale::global(std::locale("C")); - // This enables printing all characters in bitmap font - setlocale(LC_CTYPE, "en_US"); + // This enables internatonal characters input + if( setlocale(LC_ALL, "") == NULL ) + { + fprintf( stderr, "%s: warning: could not set default locale\n", argv[0] ); + } + // Set locale. This is for forcing '.' as the decimal point. + try { + std::locale::global(std::locale(std::locale(""), "C", std::locale::numeric)); + setlocale(LC_NUMERIC, "C"); + } catch (const std::exception& ex) { + errorstream<<"Could not set numeric locale to C"<getGUIEnvironment(); gui::IGUISkin* skin = guienv->getSkin(); + #if USE_FREETYPE + std::string font_path = g_settings->get("font_path"); + u16 font_size = g_settings->getU16("font_size"); + gui::IGUIFont *font = gui::CGUITTFont::createTTFont(guienv, font_path.c_str(), font_size); + #else gui::IGUIFont* font = guienv->getFont(getTexturePath("fontlucida.png").c_str()); + #endif if(font) skin->setFont(font); else -- cgit v1.2.3