- 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) {
|
if(checkBoxScenario.getValue() == true) {
|
||||||
gameSettings->setScenario(scenarioInfo.name);
|
gameSettings->setScenario(scenarioInfo.name);
|
||||||
gameSettings->setScenarioDir(Scenario::getScenarioPath(dirList, scenarioInfo.name));
|
gameSettings->setScenarioDir(Scenario::getScenarioPath(dirList, scenarioInfo.name));
|
||||||
|
|
||||||
|
gameSettings->setDefaultResources(scenarioInfo.defaultResources);
|
||||||
|
gameSettings->setDefaultUnits(scenarioInfo.defaultUnits);
|
||||||
|
gameSettings->setDefaultVictoryConditions(scenarioInfo.defaultVictoryConditions);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
gameSettings->setScenario("");
|
gameSettings->setScenario("");
|
||||||
|
@ -1638,9 +1642,11 @@ void MenuStateConnectedGame::loadGameSettings(GameSettings *gameSettings) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
gameSettings->setDefaultUnits(true);
|
if(checkBoxScenario.getValue() == false) {
|
||||||
gameSettings->setDefaultResources(true);
|
gameSettings->setDefaultUnits(true);
|
||||||
gameSettings->setDefaultVictoryConditions(true);
|
gameSettings->setDefaultResources(true);
|
||||||
|
gameSettings->setDefaultVictoryConditions(true);
|
||||||
|
}
|
||||||
|
|
||||||
gameSettings->setFogOfWar(listBoxFogOfWar.getSelectedItemIndex() == 0 ||
|
gameSettings->setFogOfWar(listBoxFogOfWar.getSelectedItemIndex() == 0 ||
|
||||||
listBoxFogOfWar.getSelectedItemIndex() == 1 );
|
listBoxFogOfWar.getSelectedItemIndex() == 1 );
|
||||||
|
@ -3563,12 +3569,33 @@ void MenuStateConnectedGame::setupUIFromGameSettings(GameSettings *gameSettings,
|
||||||
|
|
||||||
checkBoxScenario.setValue((gameSettings->getScenario() != ""));
|
checkBoxScenario.setValue((gameSettings->getScenario() != ""));
|
||||||
if(checkBoxScenario.getValue() == true) {
|
if(checkBoxScenario.getValue() == true) {
|
||||||
|
int originalFOWValue = listBoxFogOfWar.getSelectedItemIndex();
|
||||||
|
|
||||||
string scenario = gameSettings->getScenario();
|
string scenario = gameSettings->getScenario();
|
||||||
listBoxScenario.setSelectedItem(formatString(scenario));
|
listBoxScenario.setSelectedItem(formatString(scenario));
|
||||||
string file = Scenario::getScenarioPath(dirList, scenario);
|
string file = Scenario::getScenarioPath(dirList, scenario);
|
||||||
Scenario::loadScenarioInfo(file, &scenarioInfo);
|
Scenario::loadScenarioInfo(file, &scenarioInfo);
|
||||||
|
|
||||||
gameSettings->setScenarioDir(Scenario::getScenarioPath(dirList, scenarioInfo.name));
|
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());
|
//printf("A gameSettings->getTileset() [%s]\n",gameSettings->getTileset().c_str());
|
||||||
|
@ -3754,18 +3781,20 @@ void MenuStateConnectedGame::setupUIFromGameSettings(GameSettings *gameSettings,
|
||||||
}
|
}
|
||||||
|
|
||||||
// FogOfWar
|
// FogOfWar
|
||||||
int originalFOWValue = listBoxFogOfWar.getSelectedItemIndex();
|
if(checkBoxScenario.getValue() == false) {
|
||||||
listBoxFogOfWar.setSelectedItemIndex(0); // default is 0!
|
int originalFOWValue = listBoxFogOfWar.getSelectedItemIndex();
|
||||||
if(gameSettings->getFogOfWar() == false){
|
listBoxFogOfWar.setSelectedItemIndex(0); // default is 0!
|
||||||
listBoxFogOfWar.setSelectedItemIndex(2);
|
if(gameSettings->getFogOfWar() == false){
|
||||||
}
|
listBoxFogOfWar.setSelectedItemIndex(2);
|
||||||
if((gameSettings->getFlagTypes1() & ft1_show_map_resources) == ft1_show_map_resources){
|
}
|
||||||
if(gameSettings->getFogOfWar() == true){
|
if((gameSettings->getFlagTypes1() & ft1_show_map_resources) == ft1_show_map_resources){
|
||||||
listBoxFogOfWar.setSelectedItemIndex(1);
|
if(gameSettings->getFogOfWar() == true){
|
||||||
|
listBoxFogOfWar.setSelectedItemIndex(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(originalFOWValue != listBoxFogOfWar.getSelectedItemIndex()) {
|
||||||
|
cleanupMapPreviewTexture();
|
||||||
}
|
}
|
||||||
}
|
|
||||||
if(originalFOWValue != listBoxFogOfWar.getSelectedItemIndex()) {
|
|
||||||
cleanupMapPreviewTexture();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Allow Observers
|
// Allow Observers
|
||||||
|
|
|
@ -2904,6 +2904,10 @@ void MenuStateCustomGame::loadGameSettings(GameSettings *gameSettings,bool force
|
||||||
if(checkBoxScenario.getValue() == true) {
|
if(checkBoxScenario.getValue() == true) {
|
||||||
gameSettings->setScenario(scenarioInfo.name);
|
gameSettings->setScenario(scenarioInfo.name);
|
||||||
gameSettings->setScenarioDir(Scenario::getScenarioPath(dirList, scenarioInfo.name));
|
gameSettings->setScenarioDir(Scenario::getScenarioPath(dirList, scenarioInfo.name));
|
||||||
|
|
||||||
|
gameSettings->setDefaultResources(scenarioInfo.defaultResources);
|
||||||
|
gameSettings->setDefaultUnits(scenarioInfo.defaultUnits);
|
||||||
|
gameSettings->setDefaultVictoryConditions(scenarioInfo.defaultVictoryConditions);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
gameSettings->setScenario("");
|
gameSettings->setScenario("");
|
||||||
|
@ -2921,12 +2925,13 @@ void MenuStateCustomGame::loadGameSettings(GameSettings *gameSettings,bool force
|
||||||
gameSettings->setDefaultResources(autoStartSettings->getDefaultResources());
|
gameSettings->setDefaultResources(autoStartSettings->getDefaultResources());
|
||||||
gameSettings->setDefaultVictoryConditions(autoStartSettings->getDefaultVictoryConditions());
|
gameSettings->setDefaultVictoryConditions(autoStartSettings->getDefaultVictoryConditions());
|
||||||
}
|
}
|
||||||
else {
|
else if(checkBoxScenario.getValue() == false) {
|
||||||
gameSettings->setDefaultUnits(true);
|
gameSettings->setDefaultUnits(true);
|
||||||
gameSettings->setDefaultResources(true);
|
gameSettings->setDefaultResources(true);
|
||||||
gameSettings->setDefaultVictoryConditions(true);
|
gameSettings->setDefaultVictoryConditions(true);
|
||||||
}
|
}
|
||||||
gameSettings->setFogOfWar(listBoxFogOfWar.getSelectedItemIndex() == 0 ||
|
|
||||||
|
gameSettings->setFogOfWar(listBoxFogOfWar.getSelectedItemIndex() == 0 ||
|
||||||
listBoxFogOfWar.getSelectedItemIndex() == 1 );
|
listBoxFogOfWar.getSelectedItemIndex() == 1 );
|
||||||
|
|
||||||
gameSettings->setAllowObservers(listBoxAllowObservers.getSelectedItemIndex() == 1);
|
gameSettings->setAllowObservers(listBoxAllowObservers.getSelectedItemIndex() == 1);
|
||||||
|
@ -3290,6 +3295,18 @@ void MenuStateCustomGame::setupUIFromGameSettings(const GameSettings &gameSettin
|
||||||
checkBoxScenario.setValue((gameSettings.getScenario() != ""));
|
checkBoxScenario.setValue((gameSettings.getScenario() != ""));
|
||||||
if(checkBoxScenario.getValue() == true) {
|
if(checkBoxScenario.getValue() == true) {
|
||||||
listBoxScenario.setSelectedItem(formatString(gameSettings.getScenario()));
|
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();
|
string mapFile = gameSettings.getMap();
|
||||||
|
@ -3322,14 +3339,16 @@ void MenuStateCustomGame::setupUIFromGameSettings(const GameSettings &gameSettin
|
||||||
Lang &lang= Lang::getInstance();
|
Lang &lang= Lang::getInstance();
|
||||||
|
|
||||||
//FogOfWar
|
//FogOfWar
|
||||||
listBoxFogOfWar.setSelectedItemIndex(0); // default is 0!
|
if(checkBoxScenario.getValue() == false) {
|
||||||
if(gameSettings.getFogOfWar() == false){
|
listBoxFogOfWar.setSelectedItemIndex(0); // default is 0!
|
||||||
listBoxFogOfWar.setSelectedItemIndex(2);
|
if(gameSettings.getFogOfWar() == false){
|
||||||
}
|
listBoxFogOfWar.setSelectedItemIndex(2);
|
||||||
|
}
|
||||||
|
|
||||||
if((gameSettings.getFlagTypes1() & ft1_show_map_resources) == ft1_show_map_resources){
|
if((gameSettings.getFlagTypes1() & ft1_show_map_resources) == ft1_show_map_resources){
|
||||||
if(gameSettings.getFogOfWar() == true){
|
if(gameSettings.getFogOfWar() == true){
|
||||||
listBoxFogOfWar.setSelectedItemIndex(1);
|
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());
|
//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);
|
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));
|
listBoxTechTree.setSelectedItem(formatString(scenarioInfo.techTreeName));
|
||||||
reloadFactions(false);
|
reloadFactions(false);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user