mirror of
https://github.com/glest/glest-source.git
synced 2025-02-24 19:52:25 +01:00
- now show scenario logo files when user selects a scenario with a loading screen
This commit is contained in:
parent
4344a958d6
commit
438bedd4fa
@ -199,8 +199,8 @@ Texture2D * Game::findFactionLogoTexture(const GameSettings *settings, Logger *l
|
||||
return result;
|
||||
}
|
||||
|
||||
string Game::extractScenarioLogoFile(const GameSettings *settings, string factionLogoFilter,
|
||||
string &result, Logger *logger, bool & loadingImageUsed) {
|
||||
string Game::extractScenarioLogoFile(const GameSettings *settings, string &result,
|
||||
bool &loadingImageUsed, Logger *logger, string factionLogoFilter) {
|
||||
string scenarioDir = "";
|
||||
if(settings->getScenarioDir() != "") {
|
||||
scenarioDir = settings->getScenarioDir();
|
||||
@ -208,6 +208,9 @@ string Game::extractScenarioLogoFile(const GameSettings *settings, string factio
|
||||
scenarioDir = scenarioDir.erase(scenarioDir.size() - 4, 4);
|
||||
scenarioDir = scenarioDir.erase(scenarioDir.size() - settings->getScenario().size(), settings->getScenario().size() + 1);
|
||||
}
|
||||
|
||||
//printf("!!! extractScenarioLogoFile scenarioDir [%s] factionLogoFilter [%s]\n",scenarioDir.c_str(),factionLogoFilter.c_str());
|
||||
|
||||
vector<string> loadScreenList;
|
||||
findAll(scenarioDir + factionLogoFilter, loadScreenList, false, false);
|
||||
if(loadScreenList.size() > 0) {
|
||||
@ -227,8 +230,8 @@ string Game::extractScenarioLogoFile(const GameSettings *settings, string factio
|
||||
return scenarioDir;
|
||||
}
|
||||
|
||||
string Game::extractFactionLogoFile(bool &loadingImageUsed, string factionName, Logger *logger,
|
||||
string scenarioDir, string techName, string factionLogoFilter) {
|
||||
string Game::extractFactionLogoFile(bool &loadingImageUsed, string factionName,
|
||||
string scenarioDir, string techName, Logger *logger, string factionLogoFilter) {
|
||||
string result = "";
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugSystem).enabled) SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d] Searching for faction loading screen\n",__FILE__,__FUNCTION__,__LINE__);
|
||||
|
||||
@ -305,7 +308,7 @@ string Game::extractFactionLogoFile(bool &loadingImageUsed, string factionName,
|
||||
}
|
||||
|
||||
string Game::extractTechLogoFile(string scenarioDir, string techName,
|
||||
string factionLogoFilter, Logger *logger, bool &loadingImageUsed) {
|
||||
bool &loadingImageUsed, Logger *logger,string factionLogoFilter) {
|
||||
string result = "";
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugSystem).enabled) SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d] Searching for tech loading screen\n",__FILE__,__FUNCTION__,__LINE__);
|
||||
Config &config = Config::getInstance();
|
||||
@ -344,16 +347,17 @@ string Game::extractTechLogoFile(string scenarioDir, string techName,
|
||||
return result;
|
||||
}
|
||||
|
||||
string Game::findFactionLogoFile(const GameSettings *settings, Logger *logger,string factionLogoFilter) {
|
||||
string Game::findFactionLogoFile(const GameSettings *settings, Logger *logger,
|
||||
string factionLogoFilter) {
|
||||
string result = "";
|
||||
if(settings == NULL) {
|
||||
result = "";
|
||||
}
|
||||
string mapName= settings->getMap();
|
||||
string tilesetName= settings->getTileset();
|
||||
string techName= settings->getTech();
|
||||
string scenarioName= settings->getScenario();
|
||||
bool loadingImageUsed=false;
|
||||
string mapName = settings->getMap();
|
||||
string tilesetName = settings->getTileset();
|
||||
string techName = settings->getTech();
|
||||
string scenarioName = settings->getScenario();
|
||||
bool loadingImageUsed = false;
|
||||
|
||||
if(logger != NULL) {
|
||||
logger->setState(Lang::getInstance().get("Loading"));
|
||||
@ -370,16 +374,17 @@ string Game::findFactionLogoFile(const GameSettings *settings, Logger *logger,st
|
||||
string scenarioDir = "";
|
||||
bool skipCustomLoadScreen = false;
|
||||
if(skipCustomLoadScreen == false) {
|
||||
scenarioDir = extractScenarioLogoFile(settings,
|
||||
factionLogoFilter, result, logger, loadingImageUsed);
|
||||
scenarioDir = extractScenarioLogoFile(settings, result, loadingImageUsed,
|
||||
logger, factionLogoFilter);
|
||||
}
|
||||
// try to use a faction related loading screen
|
||||
if(skipCustomLoadScreen == false && loadingImageUsed == false) {
|
||||
for(int i=0; i < settings->getFactionCount(); ++i ) {
|
||||
if( settings->getFactionControl(i) == ctHuman ||
|
||||
(settings->getFactionControl(i) == ctNetwork && settings->getThisFactionIndex() == i)) {
|
||||
|
||||
result = extractFactionLogoFile(loadingImageUsed, settings->getFactionTypeName(i),
|
||||
logger,scenarioDir, techName, factionLogoFilter);
|
||||
scenarioDir, techName, logger, factionLogoFilter);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -388,7 +393,7 @@ string Game::findFactionLogoFile(const GameSettings *settings, Logger *logger,st
|
||||
// try to use a tech related loading screen
|
||||
if(skipCustomLoadScreen == false && loadingImageUsed == false){
|
||||
result = extractTechLogoFile(scenarioDir, techName,
|
||||
factionLogoFilter, logger, loadingImageUsed);
|
||||
loadingImageUsed, logger, factionLogoFilter);
|
||||
}
|
||||
|
||||
return result;
|
||||
@ -416,24 +421,23 @@ vector<Texture2D *> Game::processTech(string techName) {
|
||||
factionLogo = Game::extractFactionLogoFile(
|
||||
loadingImageUsed,
|
||||
currentFactionName_factionPreview,
|
||||
NULL,
|
||||
"",
|
||||
techName,
|
||||
NULL,
|
||||
"preview_screen.*");
|
||||
|
||||
if(factionLogo == "") {
|
||||
factionLogo = Game::extractFactionLogoFile(
|
||||
loadingImageUsed,
|
||||
currentFactionName_factionPreview,
|
||||
NULL,
|
||||
"",
|
||||
techName,
|
||||
NULL,
|
||||
"loading_screen.*");
|
||||
}
|
||||
if(factionLogo != "") {
|
||||
Texture2D *texture = Renderer::preloadTexture(factionLogo);
|
||||
logoFiles.push_back(texture);
|
||||
// Renderer::findFactionLogoTexture(factionLogo);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -170,11 +170,11 @@ public:
|
||||
void endPerformanceTimer();
|
||||
Vec2i getPerformanceTimerResults();
|
||||
|
||||
static Texture2D * findFactionLogoTexture(const GameSettings *settings, Logger *logger,string factionLogoFilter="loading_screen.*", bool useTechDefaultIfFilterNotFound=true);
|
||||
static string findFactionLogoFile(const GameSettings *settings, Logger *logger, string factionLogoFilter="loading_screen.*");
|
||||
static string extractScenarioLogoFile(const GameSettings *settings, string factionLogoFilter,string &result, Logger *logger, bool &loadingImageUsed);
|
||||
static string extractFactionLogoFile(bool &loadingImageUsed, string factionName, Logger *logger,string scenarioDir, string techName, string factionLogoFilter);
|
||||
static string extractTechLogoFile(string scenarioDir, string techName,string factionLogoFilter, Logger *logger, bool &loadingImageUsed);
|
||||
static Texture2D * findFactionLogoTexture(const GameSettings *settings, Logger *logger=NULL,string factionLogoFilter="loading_screen.*", bool useTechDefaultIfFilterNotFound=true);
|
||||
static string findFactionLogoFile(const GameSettings *settings, Logger *logger=NULL, string factionLogoFilter="loading_screen.*");
|
||||
static string extractScenarioLogoFile(const GameSettings *settings, string &result, bool &loadingImageUsed, Logger *logger=NULL, string factionLogoFilter="loading_screen.*");
|
||||
static string extractFactionLogoFile(bool &loadingImageUsed, string factionName, string scenarioDir, string techName, Logger *logger=NULL, string factionLogoFilter="loading_screen.*");
|
||||
static string extractTechLogoFile(string scenarioDir, string techName, bool &loadingImageUsed, Logger *logger=NULL,string factionLogoFilter="loading_screen.*");
|
||||
|
||||
|
||||
bool getGameOver() { return gameOver; }
|
||||
|
@ -1821,7 +1821,6 @@ void MenuStateCustomGame::update() {
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) chrono.start();
|
||||
|
||||
if(enableFactionTexturePreview == true) {
|
||||
|
||||
if( currentTechName_factionPreview != gameSettings.getTech() ||
|
||||
currentFactionName_factionPreview != gameSettings.getFactionTypeName(gameSettings.getThisFactionIndex())) {
|
||||
|
||||
|
@ -35,6 +35,9 @@ MenuStateScenario::MenuStateScenario(Program *program, MainMenu *mainMenu, const
|
||||
MenuState(program, mainMenu, "scenario")
|
||||
{
|
||||
containerName = "Scenario";
|
||||
enableScenarioTexturePreview=false;
|
||||
scenarioLogoTexture=NULL;
|
||||
|
||||
Lang &lang= Lang::getInstance();
|
||||
NetworkManager &networkManager= NetworkManager::getInstance();
|
||||
|
||||
@ -156,6 +159,10 @@ void MenuStateScenario::render(){
|
||||
|
||||
Renderer &renderer= Renderer::getInstance();
|
||||
|
||||
if(scenarioLogoTexture != NULL) {
|
||||
renderer.renderBackground(scenarioLogoTexture);
|
||||
}
|
||||
|
||||
if(mainMessageBox.getEnabled()){
|
||||
renderer.renderMessageBox(&mainMessageBox);
|
||||
}
|
||||
@ -206,7 +213,6 @@ void MenuStateScenario::setScenario(int i){
|
||||
}
|
||||
|
||||
void MenuStateScenario::loadScenarioInfo(string file, ScenarioInfo *scenarioInfo){
|
||||
|
||||
Lang &lang= Lang::getInstance();
|
||||
|
||||
XmlTree xmlTree;
|
||||
@ -308,6 +314,24 @@ void MenuStateScenario::loadScenarioInfo(string file, ScenarioInfo *scenarioInfo
|
||||
else {
|
||||
scenarioInfo->fogOfWar = true;
|
||||
}
|
||||
|
||||
enableScenarioTexturePreview = true;
|
||||
if(enableScenarioTexturePreview == true) {
|
||||
GameSettings gameSettings;
|
||||
loadGameSettings(scenarioInfo, &gameSettings);
|
||||
|
||||
string scenarioLogo = "";
|
||||
bool loadingImageUsed = false;
|
||||
|
||||
Game::extractScenarioLogoFile(&gameSettings, scenarioLogo, loadingImageUsed);
|
||||
if(scenarioLogo != "") {
|
||||
scenarioLogoTexture = Renderer::findFactionLogoTexture(scenarioLogo);
|
||||
}
|
||||
else {
|
||||
scenarioLogoTexture = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void MenuStateScenario::loadGameSettings(const ScenarioInfo *scenarioInfo, GameSettings *gameSettings){
|
||||
|
@ -49,6 +49,9 @@ private:
|
||||
|
||||
string autoloadScenarioName;
|
||||
|
||||
bool enableScenarioTexturePreview;
|
||||
Texture2D *scenarioLogoTexture;
|
||||
|
||||
public:
|
||||
MenuStateScenario(Program *program, MainMenu *mainMenu, const vector<string> &dirList, string autoloadScenarioName="");
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user