better ( and dynamically changeable ) default game setups

This commit is contained in:
Titus Tscharntke 2012-09-20 21:57:00 +00:00
parent d4edad893c
commit 3017b61254
2 changed files with 17 additions and 4 deletions

View File

@ -41,7 +41,9 @@ const int MASTERSERVER_BROADCAST_MAX_WAIT_RESPONSE_SECONDS = 10;
const int MASTERSERVER_BROADCAST_PUBLISH_SECONDS = 6;
const int BROADCAST_MAP_DELAY_SECONDS = 5;
const int BROADCAST_SETTINGS_SECONDS = 4;
static const char *SAVED_GAME_FILENAME = "lastCustomGamSettings.mgg";
static const char *SAVED_GAME_FILENAME = "lastCustomGameSettings.mgg";
static const char *DEFAULT_GAME_FILENAME = "data/defaultGameSetup.mgg";
static const char *DEFAULT_NETWORKGAME_FILENAME = "data/defaultNetworkGameSetup.mgg";
struct FormatString {
void operator()(string &s) {
@ -682,6 +684,12 @@ MenuStateCustomGame::MenuStateCustomGame(Program *program, MainMenu *mainMenu,
publishToMasterserverThread->setUniqueID(__FILE__);
publishToMasterserverThread->start();
if(openNetworkSlots==true){
loadGameSettings(DEFAULT_NETWORKGAME_FILENAME);
}
else {
loadGameSettings(DEFAULT_GAME_FILENAME);
}
if(SystemFlags::getSystemSettingType(SystemFlags::debugSystem).enabled) SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line %d]\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__);
}
@ -1499,9 +1507,9 @@ void MenuStateCustomGame::updateResourceMultiplier(const int index) {
listBoxRMultiplier[index].setVisible(ct != ctHuman && ct != ctNetwork && ct != ctClosed);
}
void MenuStateCustomGame::RestoreLastGameSettings() {
void MenuStateCustomGame::loadGameSettings(std::string fileName) {
// Ensure we have set the gamesettings at least once
GameSettings gameSettings = loadGameSettingsFromFile(SAVED_GAME_FILENAME);
GameSettings gameSettings = loadGameSettingsFromFile(fileName);
if(gameSettings.getMap() == "") {
if(SystemFlags::getSystemSettingType(SystemFlags::debugSystem).enabled) SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line %d]\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__);
@ -1523,6 +1531,10 @@ void MenuStateCustomGame::RestoreLastGameSettings() {
}
}
void MenuStateCustomGame::RestoreLastGameSettings() {
loadGameSettings(SAVED_GAME_FILENAME);
}
void MenuStateCustomGame::PlayNow(bool saveGame) {
MutexSafeWrapper safeMutex((publishToMasterserverThread != NULL ? publishToMasterserverThread->getMutexThreadObjectAccessor() : NULL),string(__FILE__) + "_" + intToStr(__LINE__));
if(saveGame == true) {

View File

@ -246,12 +246,13 @@ private:
void updateAllResourceMultiplier();
void updateResourceMultiplier(const int index);
string getCurrentMapFile();
GameSettings loadGameSettingsFromFile(std::string fileName);
void setActiveInputLabel(GraphicLabel *newLable);
string getHumanPlayerName(int index=-1);
void loadFactionTexture(string filepath);
GameSettings loadGameSettingsFromFile(std::string fileName);
void loadGameSettings(std::string fileName);
void RestoreLastGameSettings();
void PlayNow(bool saveGame);