diff --git a/source/glest_game/menu/menu_state_connected_game.cpp b/source/glest_game/menu/menu_state_connected_game.cpp index a732c3e26..c137ce2a0 100644 --- a/source/glest_game/menu/menu_state_connected_game.cpp +++ b/source/glest_game/menu/menu_state_connected_game.cpp @@ -52,6 +52,9 @@ MenuStateConnectedGame::MenuStateConnectedGame(Program *program, MainMenu *mainM switchSetupRequestFlagType |= ssrft_NetworkPlayerName; updateDataSynchDetailText = false; + currentTechName_factionPreview=""; + currentFactionName_factionPreview=""; + currentFactionLogo = ""; factionTexture=NULL; lastMissingMap=""; @@ -999,13 +1002,20 @@ void MenuStateConnectedGame::update() { if( clientInterface != NULL && clientInterface->isConnected() && gameSettings != NULL) { - string factionLogo = Game::findFactionLogoFile(gameSettings, NULL,"preview_screen.*"); - if(factionLogo == "") { - factionLogo = Game::findFactionLogoFile(gameSettings, NULL); - } - if(currentFactionLogo != factionLogo) { - currentFactionLogo = factionLogo; - loadFactionTexture(currentFactionLogo); + if( currentTechName_factionPreview != gameSettings->getTech() || + currentFactionName_factionPreview != gameSettings->getFactionTypeName(gameSettings->getThisFactionIndex())) { + + currentTechName_factionPreview=gameSettings->getTech(); + currentFactionName_factionPreview=gameSettings->getFactionTypeName(gameSettings->getThisFactionIndex()); + + string factionLogo = Game::findFactionLogoFile(gameSettings, NULL,"preview_screen.*"); + if(factionLogo == "") { + factionLogo = Game::findFactionLogoFile(gameSettings, NULL); + } + if(currentFactionLogo != factionLogo) { + currentFactionLogo = factionLogo; + loadFactionTexture(currentFactionLogo); + } } } } diff --git a/source/glest_game/menu/menu_state_connected_game.h b/source/glest_game/menu/menu_state_connected_game.h index d2d9bfc83..6daa35109 100644 --- a/source/glest_game/menu/menu_state_connected_game.h +++ b/source/glest_game/menu/menu_state_connected_game.h @@ -116,6 +116,9 @@ private: bool enableFactionTexturePreview; bool enableMapPreview; + + string currentTechName_factionPreview; + string currentFactionName_factionPreview; string currentFactionLogo; Texture2D *factionTexture; diff --git a/source/glest_game/menu/menu_state_custom_game.cpp b/source/glest_game/menu/menu_state_custom_game.cpp index 5977ab22d..b6b7830ca 100644 --- a/source/glest_game/menu/menu_state_custom_game.cpp +++ b/source/glest_game/menu/menu_state_custom_game.cpp @@ -57,6 +57,8 @@ MenuStateCustomGame::MenuStateCustomGame(Program *program, MainMenu *mainMenu, b generalErrorToShow = "---"; currentFactionLogo = ""; factionTexture=NULL; + currentTechName_factionPreview=""; + currentFactionName_factionPreview=""; publishToMasterserverThread = NULL; Lang &lang= Lang::getInstance(); @@ -1554,13 +1556,21 @@ void MenuStateCustomGame::update() { if(chrono.getMillis() > 0) chrono.start(); if(enableFactionTexturePreview == true) { - string factionLogo = Game::findFactionLogoFile(&gameSettings, NULL,"preview_screen.*"); - if(factionLogo == "") { - factionLogo = Game::findFactionLogoFile(&gameSettings, NULL); - } - if(currentFactionLogo != factionLogo) { - currentFactionLogo = factionLogo; - loadFactionTexture(currentFactionLogo); + + if( currentTechName_factionPreview != gameSettings.getTech() || + currentFactionName_factionPreview != gameSettings.getFactionTypeName(gameSettings.getThisFactionIndex())) { + + currentTechName_factionPreview=gameSettings.getTech(); + currentFactionName_factionPreview=gameSettings.getFactionTypeName(gameSettings.getThisFactionIndex()); + + string factionLogo = Game::findFactionLogoFile(&gameSettings, NULL,"preview_screen.*"); + if(factionLogo == "") { + factionLogo = Game::findFactionLogoFile(&gameSettings, NULL); + } + if(currentFactionLogo != factionLogo) { + currentFactionLogo = factionLogo; + loadFactionTexture(currentFactionLogo); + } } } diff --git a/source/glest_game/menu/menu_state_custom_game.h b/source/glest_game/menu/menu_state_custom_game.h index dfefca9d4..371701d17 100644 --- a/source/glest_game/menu/menu_state_custom_game.h +++ b/source/glest_game/menu/menu_state_custom_game.h @@ -125,6 +125,9 @@ private: bool enableFactionTexturePreview; bool enableMapPreview; + + string currentTechName_factionPreview; + string currentFactionName_factionPreview; string currentFactionLogo; Texture2D *factionTexture;