- bugfixes for network scenarios to use proper fog of war settings from scenario (also victory conditions etc)
This commit is contained in:
parent
0338841689
commit
ca03fab5aa
|
@ -1567,6 +1567,10 @@ void MenuStateConnectedGame::loadGameSettings(GameSettings *gameSettings) {
|
|||
if(checkBoxScenario.getValue() == true) {
|
||||
gameSettings->setScenario(scenarioInfo.name);
|
||||
gameSettings->setScenarioDir(Scenario::getScenarioPath(dirList, scenarioInfo.name));
|
||||
|
||||
gameSettings->setDefaultResources(scenarioInfo.defaultResources);
|
||||
gameSettings->setDefaultUnits(scenarioInfo.defaultUnits);
|
||||
gameSettings->setDefaultVictoryConditions(scenarioInfo.defaultVictoryConditions);
|
||||
}
|
||||
else {
|
||||
gameSettings->setScenario("");
|
||||
|
@ -1638,9 +1642,11 @@ void MenuStateConnectedGame::loadGameSettings(GameSettings *gameSettings) {
|
|||
}
|
||||
}
|
||||
|
||||
if(checkBoxScenario.getValue() == false) {
|
||||
gameSettings->setDefaultUnits(true);
|
||||
gameSettings->setDefaultResources(true);
|
||||
gameSettings->setDefaultVictoryConditions(true);
|
||||
}
|
||||
|
||||
gameSettings->setFogOfWar(listBoxFogOfWar.getSelectedItemIndex() == 0 ||
|
||||
listBoxFogOfWar.getSelectedItemIndex() == 1 );
|
||||
|
@ -3563,12 +3569,33 @@ void MenuStateConnectedGame::setupUIFromGameSettings(GameSettings *gameSettings,
|
|||
|
||||
checkBoxScenario.setValue((gameSettings->getScenario() != ""));
|
||||
if(checkBoxScenario.getValue() == true) {
|
||||
int originalFOWValue = listBoxFogOfWar.getSelectedItemIndex();
|
||||
|
||||
string scenario = gameSettings->getScenario();
|
||||
listBoxScenario.setSelectedItem(formatString(scenario));
|
||||
string file = Scenario::getScenarioPath(dirList, scenario);
|
||||
Scenario::loadScenarioInfo(file, &scenarioInfo);
|
||||
|
||||
gameSettings->setScenarioDir(Scenario::getScenarioPath(dirList, scenarioInfo.name));
|
||||
|
||||
gameSettings->setDefaultResources(scenarioInfo.defaultResources);
|
||||
gameSettings->setDefaultUnits(scenarioInfo.defaultUnits);
|
||||
gameSettings->setDefaultVictoryConditions(scenarioInfo.defaultVictoryConditions);
|
||||
|
||||
//printf("scenarioInfo.fogOfWar = %d scenarioInfo.fogOfWar_exploredFlag = %d\n",scenarioInfo.fogOfWar,scenarioInfo.fogOfWar_exploredFlag);
|
||||
if(scenarioInfo.fogOfWar == false && scenarioInfo.fogOfWar_exploredFlag == false) {
|
||||
listBoxFogOfWar.setSelectedItemIndex(2);
|
||||
}
|
||||
else if(scenarioInfo.fogOfWar_exploredFlag == true) {
|
||||
listBoxFogOfWar.setSelectedItemIndex(1);
|
||||
}
|
||||
else {
|
||||
listBoxFogOfWar.setSelectedItemIndex(0);
|
||||
}
|
||||
|
||||
if(originalFOWValue != listBoxFogOfWar.getSelectedItemIndex()) {
|
||||
cleanupMapPreviewTexture();
|
||||
}
|
||||
}
|
||||
|
||||
//printf("A gameSettings->getTileset() [%s]\n",gameSettings->getTileset().c_str());
|
||||
|
@ -3754,6 +3781,7 @@ void MenuStateConnectedGame::setupUIFromGameSettings(GameSettings *gameSettings,
|
|||
}
|
||||
|
||||
// FogOfWar
|
||||
if(checkBoxScenario.getValue() == false) {
|
||||
int originalFOWValue = listBoxFogOfWar.getSelectedItemIndex();
|
||||
listBoxFogOfWar.setSelectedItemIndex(0); // default is 0!
|
||||
if(gameSettings->getFogOfWar() == false){
|
||||
|
@ -3767,6 +3795,7 @@ void MenuStateConnectedGame::setupUIFromGameSettings(GameSettings *gameSettings,
|
|||
if(originalFOWValue != listBoxFogOfWar.getSelectedItemIndex()) {
|
||||
cleanupMapPreviewTexture();
|
||||
}
|
||||
}
|
||||
|
||||
// Allow Observers
|
||||
if(gameSettings->getAllowObservers()) {
|
||||
|
|
|
@ -2904,6 +2904,10 @@ void MenuStateCustomGame::loadGameSettings(GameSettings *gameSettings,bool force
|
|||
if(checkBoxScenario.getValue() == true) {
|
||||
gameSettings->setScenario(scenarioInfo.name);
|
||||
gameSettings->setScenarioDir(Scenario::getScenarioPath(dirList, scenarioInfo.name));
|
||||
|
||||
gameSettings->setDefaultResources(scenarioInfo.defaultResources);
|
||||
gameSettings->setDefaultUnits(scenarioInfo.defaultUnits);
|
||||
gameSettings->setDefaultVictoryConditions(scenarioInfo.defaultVictoryConditions);
|
||||
}
|
||||
else {
|
||||
gameSettings->setScenario("");
|
||||
|
@ -2921,11 +2925,12 @@ void MenuStateCustomGame::loadGameSettings(GameSettings *gameSettings,bool force
|
|||
gameSettings->setDefaultResources(autoStartSettings->getDefaultResources());
|
||||
gameSettings->setDefaultVictoryConditions(autoStartSettings->getDefaultVictoryConditions());
|
||||
}
|
||||
else {
|
||||
else if(checkBoxScenario.getValue() == false) {
|
||||
gameSettings->setDefaultUnits(true);
|
||||
gameSettings->setDefaultResources(true);
|
||||
gameSettings->setDefaultVictoryConditions(true);
|
||||
}
|
||||
|
||||
gameSettings->setFogOfWar(listBoxFogOfWar.getSelectedItemIndex() == 0 ||
|
||||
listBoxFogOfWar.getSelectedItemIndex() == 1 );
|
||||
|
||||
|
@ -3290,6 +3295,18 @@ void MenuStateCustomGame::setupUIFromGameSettings(const GameSettings &gameSettin
|
|||
checkBoxScenario.setValue((gameSettings.getScenario() != ""));
|
||||
if(checkBoxScenario.getValue() == true) {
|
||||
listBoxScenario.setSelectedItem(formatString(gameSettings.getScenario()));
|
||||
|
||||
loadScenarioInfo(Scenario::getScenarioPath(dirList, scenarioFiles[listBoxScenario.getSelectedItemIndex()]), &scenarioInfo);
|
||||
//printf("scenarioInfo.fogOfWar = %d scenarioInfo.fogOfWar_exploredFlag = %d\n",scenarioInfo.fogOfWar,scenarioInfo.fogOfWar_exploredFlag);
|
||||
if(scenarioInfo.fogOfWar == false && scenarioInfo.fogOfWar_exploredFlag == false) {
|
||||
listBoxFogOfWar.setSelectedItemIndex(2);
|
||||
}
|
||||
else if(scenarioInfo.fogOfWar_exploredFlag == true) {
|
||||
listBoxFogOfWar.setSelectedItemIndex(1);
|
||||
}
|
||||
else {
|
||||
listBoxFogOfWar.setSelectedItemIndex(0);
|
||||
}
|
||||
}
|
||||
|
||||
string mapFile = gameSettings.getMap();
|
||||
|
@ -3322,6 +3339,7 @@ void MenuStateCustomGame::setupUIFromGameSettings(const GameSettings &gameSettin
|
|||
Lang &lang= Lang::getInstance();
|
||||
|
||||
//FogOfWar
|
||||
if(checkBoxScenario.getValue() == false) {
|
||||
listBoxFogOfWar.setSelectedItemIndex(0); // default is 0!
|
||||
if(gameSettings.getFogOfWar() == false){
|
||||
listBoxFogOfWar.setSelectedItemIndex(2);
|
||||
|
@ -3332,6 +3350,7 @@ void MenuStateCustomGame::setupUIFromGameSettings(const GameSettings &gameSettin
|
|||
listBoxFogOfWar.setSelectedItemIndex(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//printf("In [%s::%s line %d]\n",__FILE__,__FUNCTION__,__LINE__);
|
||||
|
||||
|
@ -4055,6 +4074,17 @@ void MenuStateCustomGame::processScenario() {
|
|||
//printf("listBoxScenario.getSelectedItemIndex() = %d [%s] scenarioFiles.size() = %d\n",listBoxScenario.getSelectedItemIndex(),listBoxScenario.getSelectedItem().c_str(),scenarioFiles.size());
|
||||
loadScenarioInfo(Scenario::getScenarioPath(dirList, scenarioFiles[listBoxScenario.getSelectedItemIndex()]), &scenarioInfo);
|
||||
|
||||
//printf("scenarioInfo.fogOfWar = %d scenarioInfo.fogOfWar_exploredFlag = %d\n",scenarioInfo.fogOfWar,scenarioInfo.fogOfWar_exploredFlag);
|
||||
if(scenarioInfo.fogOfWar == false && scenarioInfo.fogOfWar_exploredFlag == false) {
|
||||
listBoxFogOfWar.setSelectedItemIndex(2);
|
||||
}
|
||||
else if(scenarioInfo.fogOfWar_exploredFlag == true) {
|
||||
listBoxFogOfWar.setSelectedItemIndex(1);
|
||||
}
|
||||
else {
|
||||
listBoxFogOfWar.setSelectedItemIndex(0);
|
||||
}
|
||||
|
||||
listBoxTechTree.setSelectedItem(formatString(scenarioInfo.techTreeName));
|
||||
reloadFactions(false);
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user