- 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) {
|
|||
}
|
||||
}
|
||||
|
||||
gameSettings->setDefaultUnits(true);
|
||||
gameSettings->setDefaultResources(true);
|
||||
gameSettings->setDefaultVictoryConditions(true);
|
||||
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,18 +3781,20 @@ void MenuStateConnectedGame::setupUIFromGameSettings(GameSettings *gameSettings,
|
|||
}
|
||||
|
||||
// FogOfWar
|
||||
int originalFOWValue = listBoxFogOfWar.getSelectedItemIndex();
|
||||
listBoxFogOfWar.setSelectedItemIndex(0); // default is 0!
|
||||
if(gameSettings->getFogOfWar() == false){
|
||||
listBoxFogOfWar.setSelectedItemIndex(2);
|
||||
}
|
||||
if((gameSettings->getFlagTypes1() & ft1_show_map_resources) == ft1_show_map_resources){
|
||||
if(gameSettings->getFogOfWar() == true){
|
||||
listBoxFogOfWar.setSelectedItemIndex(1);
|
||||
if(checkBoxScenario.getValue() == false) {
|
||||
int originalFOWValue = listBoxFogOfWar.getSelectedItemIndex();
|
||||
listBoxFogOfWar.setSelectedItemIndex(0); // default is 0!
|
||||
if(gameSettings->getFogOfWar() == false){
|
||||
listBoxFogOfWar.setSelectedItemIndex(2);
|
||||
}
|
||||
if((gameSettings->getFlagTypes1() & ft1_show_map_resources) == ft1_show_map_resources){
|
||||
if(gameSettings->getFogOfWar() == true){
|
||||
listBoxFogOfWar.setSelectedItemIndex(1);
|
||||
}
|
||||
}
|
||||
if(originalFOWValue != listBoxFogOfWar.getSelectedItemIndex()) {
|
||||
cleanupMapPreviewTexture();
|
||||
}
|
||||
}
|
||||
if(originalFOWValue != listBoxFogOfWar.getSelectedItemIndex()) {
|
||||
cleanupMapPreviewTexture();
|
||||
}
|
||||
|
||||
// Allow Observers
|
||||
|
|
|
@ -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,12 +2925,13 @@ 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 ||
|
||||
|
||||
gameSettings->setFogOfWar(listBoxFogOfWar.getSelectedItemIndex() == 0 ||
|
||||
listBoxFogOfWar.getSelectedItemIndex() == 1 );
|
||||
|
||||
gameSettings->setAllowObservers(listBoxAllowObservers.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,14 +3339,16 @@ void MenuStateCustomGame::setupUIFromGameSettings(const GameSettings &gameSettin
|
|||
Lang &lang= Lang::getInstance();
|
||||
|
||||
//FogOfWar
|
||||
listBoxFogOfWar.setSelectedItemIndex(0); // default is 0!
|
||||
if(gameSettings.getFogOfWar() == false){
|
||||
listBoxFogOfWar.setSelectedItemIndex(2);
|
||||
}
|
||||
if(checkBoxScenario.getValue() == false) {
|
||||
listBoxFogOfWar.setSelectedItemIndex(0); // default is 0!
|
||||
if(gameSettings.getFogOfWar() == false){
|
||||
listBoxFogOfWar.setSelectedItemIndex(2);
|
||||
}
|
||||
|
||||
if((gameSettings.getFlagTypes1() & ft1_show_map_resources) == ft1_show_map_resources){
|
||||
if(gameSettings.getFogOfWar() == true){
|
||||
listBoxFogOfWar.setSelectedItemIndex(1);
|
||||
if((gameSettings.getFlagTypes1() & ft1_show_map_resources) == ft1_show_map_resources){
|
||||
if(gameSettings.getFogOfWar() == true){
|
||||
listBoxFogOfWar.setSelectedItemIndex(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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