- cache the techname and selected faction when doing a faction preview in lobbies

This commit is contained in:
Mark Vejvoda 2010-10-30 03:29:29 +00:00
parent b1ff035f9e
commit 465ae629ba
4 changed files with 40 additions and 14 deletions

View File

@ -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);
}
}
}
}

View File

@ -116,6 +116,9 @@ private:
bool enableFactionTexturePreview;
bool enableMapPreview;
string currentTechName_factionPreview;
string currentFactionName_factionPreview;
string currentFactionLogo;
Texture2D *factionTexture;

View File

@ -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);
}
}
}

View File

@ -125,6 +125,9 @@ private:
bool enableFactionTexturePreview;
bool enableMapPreview;
string currentTechName_factionPreview;
string currentFactionName_factionPreview;
string currentFactionLogo;
Texture2D *factionTexture;