From c678d35bdb06ea29dfa10d64539e3c76be8b5d66 Mon Sep 17 00:00:00 2001 From: Titus Tscharntke Date: Thu, 1 Apr 2010 18:59:05 +0000 Subject: [PATCH] new glest ini, font handling changed!!! "dynamic" fonts for linux ( maybe an error fallback should be added in gl_wrap.cpp if font is not available ) better option menu layout --- mk/linux/glest.ini | 14 +++-- source/glest_game/global/core_data.cpp | 58 +++++++++++++------ source/glest_game/menu/menu_state_options.cpp | 9 ++- .../sources/platform/sdl/gl_wrap.cpp | 1 + 4 files changed, 54 insertions(+), 28 deletions(-) diff --git a/mk/linux/glest.ini b/mk/linux/glest.ini index 42423353..428770dc 100644 --- a/mk/linux/glest.ini +++ b/mk/linux/glest.ini @@ -27,12 +27,14 @@ FocusArrows=true FogOfWar=true FogOfWarSmoothing=true FogOfWarSmoothingFrameSkip=3 -FontConsole=-*-*-*-*-*-*-12-*-*-*-*-*-*-* -FontDisplay=-*-*-*-*-*-*-12-*-*-*-*-*-*-* -FontMenuBig=-*-*-bold-*-*-*-16-*-*-*-*-*-*-* -FontMenuNormal=-*-*-*-*-*-*-12-*-*-*-*-*-*-* -FontMenuSmall=-*-*-*-*-*-*-10-*-*-*-*-*-*-* -FontMenuVeryBig=-*-*-bold-*-*-*-20-*-*-*-*-*-*-* +FontConsolePostfix=-*-*-*-*-*-*-* +FontConsolePrefix=-*-*-*-*-*-*- +FontDisplayPostfix=-*-*-*-*-*-*-* +FontDisplayPrefix=-*-*-*-*-*-*- +FontMenuBigPostfix=-*-*-*-*-*-*-* +FontMenuBigPrefix=-*-*-bold-*-*-*- +FontMenuNormalPostfix=-*-*-*-*-*-*-* +FontMenuNormalPrefix=-*-*-*-*-*-*- Lang=english MaxLights=3 NetPlayerName=SoftCoder diff --git a/source/glest_game/global/core_data.cpp b/source/glest_game/global/core_data.cpp index fe89e36a..95ea0fd6 100644 --- a/source/glest_game/global/core_data.cpp +++ b/source/glest_game/global/core_data.cpp @@ -81,41 +81,64 @@ void CoreData::load(){ //display font Config &config= Config::getInstance(); - string displayFontName= config.getString("FontDisplay"); - + string displayFontNamePrefix=config.getString("FontDisplayPrefix"); + string displayFontNamePostfix=config.getString("FontDisplayPostfix"); + int displayFontSize=computeFontSize(15); + string displayFontName=displayFontNamePrefix+intToStr(displayFontSize)+displayFontNamePostfix; displayFont= renderer.newFont(rsGlobal); displayFont->setType(displayFontName); - displayFont->setSize(computeFontSize(15)); + displayFont->setSize(displayFontSize); + + menuFontSmall=displayFont; + menuFontNormal=displayFont; + menuFontBig=displayFont; + menuFontVeryBig=displayFont; + consoleFont=displayFont; //menu fonts - string menuFontNameSmall= config.getString("FontMenuSmall"); - + string menuFontNameSmallPrefix= config.getString("FontMenuNormalPrefix"); + string menuFontNameSmallPostfix= config.getString("FontMenuNormalPostfix"); + int menuFontNameSmallSize=computeFontSize(12); + string menuFontNameSmall=menuFontNameSmallPrefix+intToStr(menuFontNameSmallSize)+menuFontNameSmallPostfix; menuFontSmall= renderer.newFont(rsGlobal); menuFontSmall->setType(menuFontNameSmall); - menuFontSmall->setSize(computeFontSize(10)); - - string menuFontNameNormal= config.getString("FontMenuNormal"); + menuFontSmall->setSize(menuFontNameSmallSize); + + + string menuFontNameNormalPrefix= config.getString("FontMenuNormalPrefix"); + string menuFontNameNormalPostfix= config.getString("FontMenuNormalPostfix"); + int menuFontNameNormalSize=computeFontSize(13); + string menuFontNameNormal= menuFontNameNormalPrefix+intToStr(menuFontNameNormalSize)+menuFontNameNormalPostfix; menuFontNormal= renderer.newFont(rsGlobal); menuFontNormal->setType(menuFontNameNormal); - menuFontNormal->setSize(computeFontSize(12)); + menuFontNormal->setSize(menuFontNameNormalSize); menuFontNormal->setWidth(Font::wBold); - string menuFontNameBig= config.getString("FontMenuBig"); + + string menuFontNameBigPrefix= config.getString("FontMenuBigPrefix"); + string menuFontNameBigPostfix= config.getString("FontMenuBigPostfix"); + int menuFontNameBigSize=computeFontSize(20); + string menuFontNameBig= menuFontNameBigPrefix+intToStr(menuFontNameBigSize)+menuFontNameBigPostfix; menuFontBig= renderer.newFont(rsGlobal); menuFontBig->setType(menuFontNameBig); - menuFontBig->setSize(computeFontSize(16)); + menuFontBig->setSize(menuFontNameBigSize); - string menuFontNameVeryBig= config.getString("FontMenuVeryBig"); + string menuFontNameVeryBigPrefix= config.getString("FontMenuBigPrefix"); + string menuFontNameVeryBigPostfix= config.getString("FontMenuBigPostfix"); + int menuFontNameVeryBigSize=computeFontSize(25); + string menuFontNameVeryBig= menuFontNameVeryBigPrefix+intToStr(menuFontNameVeryBigSize)+menuFontNameVeryBigPostfix; menuFontVeryBig= renderer.newFont(rsGlobal); menuFontVeryBig->setType(menuFontNameVeryBig); - menuFontVeryBig->setSize(computeFontSize(20)); + menuFontVeryBig->setSize(menuFontNameVeryBigSize); //console font - string consoleFontName= Config::getInstance().getString("FontConsole"); - + string consoleFontNamePrefix= config.getString("FontConsolePrefix"); + string consoleFontNamePostfix= config.getString("FontConsolePostfix"); + int consoleFontNameSize=computeFontSize(16); + string consoleFontName= consoleFontNamePrefix+intToStr(consoleFontNameSize)+consoleFontNamePostfix; consoleFont= renderer.newFont(rsGlobal); consoleFont->setType(consoleFontName); - consoleFont->setSize(computeFontSize(16)); + consoleFont->setSize(consoleFontNameSize); //sounds clickSoundA.load(dir+"/menu/sound/click_a.wav"); @@ -135,10 +158,11 @@ void CoreData::load(){ int CoreData::computeFontSize(int size){ int screenH= Config::getInstance().getInt("ScreenHeight"); - int rs= size*screenH/750; + int rs= size*screenH/1024; if(rs<12){ rs= 12; } + SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d] fontsize orginal %d calculated:%d \n",__FILE__,__FUNCTION__,__LINE__,size,rs); return rs; } diff --git a/source/glest_game/menu/menu_state_options.cpp b/source/glest_game/menu/menu_state_options.cpp index 9a15cee0..f15e02f7 100644 --- a/source/glest_game/menu/menu_state_options.cpp +++ b/source/glest_game/menu/menu_state_options.cpp @@ -37,18 +37,17 @@ MenuStateOptions::MenuStateOptions(Program *program, MainMenu *mainMenu): Shared::Platform::getFullscreenVideoModes(&modeInfos); activeInputLabel=NULL; - int leftline=640; - int rightline=640; - int leftLabelStart=50; + int leftline=670; + int rightline=670; + int leftLabelStart=250; int leftColumnStart=leftLabelStart+150; int rightLabelStart=500; int rightColumnStart=rightLabelStart+150; - int buttonRowPos=20; + int buttonRowPos=80; int captionOffset=75; - leftline-=30; labelAudioSection.init(leftLabelStart+captionOffset, leftline); labelAudioSection.setFont(CoreData::getInstance().getMenuFontVeryBig()); labelAudioSection.setText(lang.get("Audio")); diff --git a/source/shared_lib/sources/platform/sdl/gl_wrap.cpp b/source/shared_lib/sources/platform/sdl/gl_wrap.cpp index c06d23b0..03e78253 100644 --- a/source/shared_lib/sources/platform/sdl/gl_wrap.cpp +++ b/source/shared_lib/sources/platform/sdl/gl_wrap.cpp @@ -88,6 +88,7 @@ void createGlFontBitmaps(uint32 &base, const string &type, int size, int width, if(display == 0) { throw std::runtime_error("Couldn't create font: display is 0"); } + SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d] trying to load font %s\n",__FILE__,__FUNCTION__,__LINE__,type.c_str()); XFontStruct* fontInfo = XLoadQueryFont(display, type.c_str()); if(!fontInfo) { throw std::runtime_error("Font not found.");