- 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; switchSetupRequestFlagType |= ssrft_NetworkPlayerName;
updateDataSynchDetailText = false; updateDataSynchDetailText = false;
currentTechName_factionPreview="";
currentFactionName_factionPreview="";
currentFactionLogo = ""; currentFactionLogo = "";
factionTexture=NULL; factionTexture=NULL;
lastMissingMap=""; lastMissingMap="";
@ -999,13 +1002,20 @@ void MenuStateConnectedGame::update() {
if( clientInterface != NULL && clientInterface->isConnected() && if( clientInterface != NULL && clientInterface->isConnected() &&
gameSettings != NULL) { gameSettings != NULL) {
string factionLogo = Game::findFactionLogoFile(gameSettings, NULL,"preview_screen.*"); if( currentTechName_factionPreview != gameSettings->getTech() ||
if(factionLogo == "") { currentFactionName_factionPreview != gameSettings->getFactionTypeName(gameSettings->getThisFactionIndex())) {
factionLogo = Game::findFactionLogoFile(gameSettings, NULL);
} currentTechName_factionPreview=gameSettings->getTech();
if(currentFactionLogo != factionLogo) { currentFactionName_factionPreview=gameSettings->getFactionTypeName(gameSettings->getThisFactionIndex());
currentFactionLogo = factionLogo;
loadFactionTexture(currentFactionLogo); 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 enableFactionTexturePreview;
bool enableMapPreview; bool enableMapPreview;
string currentTechName_factionPreview;
string currentFactionName_factionPreview;
string currentFactionLogo; string currentFactionLogo;
Texture2D *factionTexture; Texture2D *factionTexture;

View File

@ -57,6 +57,8 @@ MenuStateCustomGame::MenuStateCustomGame(Program *program, MainMenu *mainMenu, b
generalErrorToShow = "---"; generalErrorToShow = "---";
currentFactionLogo = ""; currentFactionLogo = "";
factionTexture=NULL; factionTexture=NULL;
currentTechName_factionPreview="";
currentFactionName_factionPreview="";
publishToMasterserverThread = NULL; publishToMasterserverThread = NULL;
Lang &lang= Lang::getInstance(); Lang &lang= Lang::getInstance();
@ -1554,13 +1556,21 @@ void MenuStateCustomGame::update() {
if(chrono.getMillis() > 0) chrono.start(); if(chrono.getMillis() > 0) chrono.start();
if(enableFactionTexturePreview == true) { if(enableFactionTexturePreview == true) {
string factionLogo = Game::findFactionLogoFile(&gameSettings, NULL,"preview_screen.*");
if(factionLogo == "") { if( currentTechName_factionPreview != gameSettings.getTech() ||
factionLogo = Game::findFactionLogoFile(&gameSettings, NULL); currentFactionName_factionPreview != gameSettings.getFactionTypeName(gameSettings.getThisFactionIndex())) {
}
if(currentFactionLogo != factionLogo) { currentTechName_factionPreview=gameSettings.getTech();
currentFactionLogo = factionLogo; currentFactionName_factionPreview=gameSettings.getFactionTypeName(gameSettings.getThisFactionIndex());
loadFactionTexture(currentFactionLogo);
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 enableFactionTexturePreview;
bool enableMapPreview; bool enableMapPreview;
string currentTechName_factionPreview;
string currentFactionName_factionPreview;
string currentFactionLogo; string currentFactionLogo;
Texture2D *factionTexture; Texture2D *factionTexture;