summaryrefslogtreecommitdiff
path: root/src/progs/manaplus/client.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/progs/manaplus/client.cpp')
-rw-r--r--src/progs/manaplus/client.cpp30
1 files changed, 22 insertions, 8 deletions
diff --git a/src/progs/manaplus/client.cpp b/src/progs/manaplus/client.cpp
index d8ba7e1c2..6b05b0809 100644
--- a/src/progs/manaplus/client.cpp
+++ b/src/progs/manaplus/client.cpp
@@ -497,6 +497,7 @@ void Client::gameInit()
loginData.password = settings.options.password;
LoginDialog::savedPassword = settings.options.password;
loginData.remember = (serverConfig.getValue("remember", 1) != 0);
+ loginData.remember_password = (serverConfig.getValue("remember_password", 1) != 0);
loginData.registerLogin = false;
if (mCurrentServer.hostname.empty())
@@ -517,6 +518,9 @@ void Client::gameInit()
if (loginData.username.empty() && loginData.remember)
loginData.username = serverConfig.getValue("username", "");
+
+ if (loginData.password.empty() && loginData.remember_password)
+ loginData.password = serverConfig.getValue("password", "");
if (mState != State::ERROR)
mState = State::CHOOSE_SERVER;
@@ -853,16 +857,28 @@ void Client::stateConnectServer1()
{
loginData.username = settings.options.username;
}
-#ifdef SAVE_PASSWORD
- LoginDialog::savedPassword = loginData.remember ?
- serverConfig.getValue("password", "") : "";
- loginData.password = LoginDialog::savedPassword;
- settings.options.password = LoginDialog::savedPassword;
-#endif
+
+ if (settings.options.password.empty())
+ {
+ if (loginData.remember_password)
+ {
+ LoginDialog::savedPassword = serverConfig.getValue("password", "");
+ loginData.password = LoginDialog::savedPassword;
+ settings.options.password = LoginDialog::savedPassword;
+ }
+ else
+ loginData.password.clear();
+ }
+ else
+ {
+ loginData.password = settings.options.password;
+ }
+
settings.login = loginData.username;
WindowManager::updateTitle();
loginData.remember = (serverConfig.getValue("remember", 1) != 0);
+ loginData.remember_password = (serverConfig.getValue("remember_password", 1) != 0);
Net::connectToServer(mCurrentServer);
#ifdef USE_MUMBLE
@@ -1638,13 +1654,11 @@ int Client::gameExec()
case State::ERROR:
BLOCK_START("Client::gameExec State::ERROR")
config.write();
-#ifdef SAVE_PASSWORD
if (errorMessage == "Wrong password.")
{
serverConfig.setValue("password", "");
serverConfig.write();
}
-#endif
if (mOldState == State::GAME)
serverConfig.write();
logger->log1("State: ERROR");