summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2014-01-03 20:33:54 +0300
committerAndrei Karas <akaras@inbox.ru>2014-01-03 20:33:54 +0300
commit576d56c7b5636cf95ac8eb1650949da6a26a1bd7 (patch)
treeeb7b037cece1d1e6b9cddb206ac75c780a644129
parent9b1fed5643a2447495cf4b43309a23ada7901c03 (diff)
downloadplus-576d56c7b5636cf95ac8eb1650949da6a26a1bd7.tar.gz
plus-576d56c7b5636cf95ac8eb1650949da6a26a1bd7.tar.bz2
plus-576d56c7b5636cf95ac8eb1650949da6a26a1bd7.tar.xz
plus-576d56c7b5636cf95ac8eb1650949da6a26a1bd7.zip
fix server config saving if select switch character or switch server.
-rw-r--r--src/client.cpp1
-rw-r--r--src/configuration.cpp3
-rw-r--r--src/gui/windows/quitdialog.cpp1
3 files changed, 5 insertions, 0 deletions
diff --git a/src/client.cpp b/src/client.cpp
index f86365cc9..27c55dcee 100644
--- a/src/client.cpp
+++ b/src/client.cpp
@@ -1705,6 +1705,7 @@ int Client::gameExec()
Net::getGameHandler()->disconnect();
Net::getGameHandler()->clear();
mServerName.clear();
+ serverConfig.write();
serverConfig.unload();
mState = STATE_CHOOSE_SERVER;
diff --git a/src/configuration.cpp b/src/configuration.cpp
index da6e97501..cb7adf8f1 100644
--- a/src/configuration.cpp
+++ b/src/configuration.cpp
@@ -801,6 +801,9 @@ void ConfigurationObject::writeToXML(const XmlTextWriterPtr writer)
void Configuration::write()
{
+ if (mConfigPath.empty())
+ return;
+
// Do not attempt to write to file that cannot be opened for writing
FILE *const testFile = fopen(mConfigPath.c_str(), "w");
if (!testFile)
diff --git a/src/gui/windows/quitdialog.cpp b/src/gui/windows/quitdialog.cpp
index 215987ffb..ff9f669b7 100644
--- a/src/gui/windows/quitdialog.cpp
+++ b/src/gui/windows/quitdialog.cpp
@@ -195,6 +195,7 @@ void QuitDialog::action(const gcn::ActionEvent &event)
{
Net::getCharServerHandler()->switchCharacter();
Game::closeDialogs();
+ serverConfig.write();
}
}
}