diff options
author | Andrei Karas <akaras@inbox.ru> | 2013-02-22 00:38:26 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2013-02-22 00:38:26 +0300 |
commit | 972bbd781838c9150f87aad7c96c6bbd74a68e06 (patch) | |
tree | cc839b1ca698ec32c0dd3fc7c8d8e0ba09e8e923 | |
parent | f6f2a8072c517ee47e77979db9dbb9ecb3430cb5 (diff) | |
download | mv-972bbd781838c9150f87aad7c96c6bbd74a68e06.tar.gz mv-972bbd781838c9150f87aad7c96c6bbd74a68e06.tar.bz2 mv-972bbd781838c9150f87aad7c96c6bbd74a68e06.tar.xz mv-972bbd781838c9150f87aad7c96c6bbd74a68e06.zip |
Fix change password issue with empty players list.
-rw-r--r-- | src/gui/charselectdialog.cpp | 4 | ||||
-rw-r--r-- | src/gui/logindialog.cpp | 3 | ||||
-rw-r--r-- | src/net/eathena/charserverhandler.cpp | 3 | ||||
-rw-r--r-- | src/net/tmwa/charserverhandler.cpp | 3 |
4 files changed, 8 insertions, 5 deletions
diff --git a/src/gui/charselectdialog.cpp b/src/gui/charselectdialog.cpp index ffa88cb75..bc2c42dc7 100644 --- a/src/gui/charselectdialog.cpp +++ b/src/gui/charselectdialog.cpp @@ -319,7 +319,6 @@ CharSelectDialog::CharSelectDialog(LoginData *const data): CharSelectDialog::~CharSelectDialog() { - Net::getCharHandler()->clear(); } void CharSelectDialog::action(const gcn::ActionEvent &event) @@ -351,6 +350,7 @@ void CharSelectDialog::action(const gcn::ActionEvent &event) if (eventId == "use" && mCharacterEntries[selected]->getCharacter()) { attemptCharacterSelect(selected); +// Net::getCharHandler()->clear(); return; } else if (eventId == "new" && @@ -371,6 +371,7 @@ void CharSelectDialog::action(const gcn::ActionEvent &event) } if (eventId == "switch") { + Net::getCharHandler()->clear(); close(); } else if (eventId == "change_password") @@ -383,6 +384,7 @@ void CharSelectDialog::action(const gcn::ActionEvent &event) } else if (eventId == "unregister") { + Net::getCharHandler()->clear(); Client::setState(STATE_UNREGISTER); } else if (eventId == "try delete character") diff --git a/src/gui/logindialog.cpp b/src/gui/logindialog.cpp index b0015bf46..5767390c7 100644 --- a/src/gui/logindialog.cpp +++ b/src/gui/logindialog.cpp @@ -38,6 +38,7 @@ #include "gui/widgets/layout.h" #include "gui/widgets/passwordfield.h" +#include "net/charhandler.h" #include "net/logindata.h" #include "net/loginhandler.h" #include "net/net.h" @@ -154,6 +155,8 @@ LoginDialog::LoginDialog(LoginData *const data, std::string serverName, { setCloseButton(true); + Net::getCharHandler()->clear(); + Label *const serverLabel1 = new Label(this, _("Server:")); Label *const serverLabel2 = new Label(this, serverName); serverLabel2->adjustSize(); diff --git a/src/net/eathena/charserverhandler.cpp b/src/net/eathena/charserverhandler.cpp index 2bb7e8890..474874483 100644 --- a/src/net/eathena/charserverhandler.cpp +++ b/src/net/eathena/charserverhandler.cpp @@ -127,8 +127,7 @@ void CharServerHandler::handleMessage(Net::MessageIn &msg) mSelectedCharacter->dummy = nullptr; - delete_all(mCharacters); - mCharacters.clear(); + Net::getCharHandler()->clear(); updateCharSelectDialog(); if (mNetwork) diff --git a/src/net/tmwa/charserverhandler.cpp b/src/net/tmwa/charserverhandler.cpp index 7f84faaca..d922f0852 100644 --- a/src/net/tmwa/charserverhandler.cpp +++ b/src/net/tmwa/charserverhandler.cpp @@ -128,8 +128,7 @@ void CharServerHandler::handleMessage(Net::MessageIn &msg) mSelectedCharacter->dummy = nullptr; - delete_all(mCharacters); - mCharacters.clear(); + Net::getCharHandler()->clear(); updateCharSelectDialog(); if (mNetwork) |