diff options
Diffstat (limited to 'src/gui')
-rw-r--r-- | src/gui/char_select.cpp | 2 | ||||
-rw-r--r-- | src/gui/char_server.cpp | 26 | ||||
-rw-r--r-- | src/gui/char_server.h | 22 |
3 files changed, 24 insertions, 26 deletions
diff --git a/src/gui/char_select.cpp b/src/gui/char_select.cpp index c54481f4..621dc461 100644 --- a/src/gui/char_select.cpp +++ b/src/gui/char_select.cpp @@ -222,7 +222,7 @@ void CharSelectDialog::attemptCharDelete() // Request character deletion MessageOut outMsg(mNetwork); outMsg.writeInt16(0x0068); - outMsg.writeInt32(mCharInfo->getEntry()->mLoginId); + outMsg.writeInt32(mCharInfo->getEntry()->mCharId); outMsg.writeString("a@a.com", 40); mCharInfo->lock(); } diff --git a/src/gui/char_server.cpp b/src/gui/char_server.cpp index c66d4436..876bcd0e 100644 --- a/src/gui/char_server.cpp +++ b/src/gui/char_server.cpp @@ -29,13 +29,27 @@ #include "listbox.h" #include "scrollarea.h" +#include "../logindata.h" #include "../main.h" #include "../serverinfo.h" +#include "../net/network.h" // TODO this is just for iptostring, move that? + extern SERVER_INFO **server_info; -ServerSelectDialog::ServerSelectDialog(): - Window("Select Server") +/** + * The list model for the server list. + */ +class ServerListModel : public gcn::ListModel { + public: + virtual ~ServerListModel() {}; + + int getNumberOfElements(); + std::string getElementAt(int i); +}; + +ServerSelectDialog::ServerSelectDialog(LoginData *loginData): + Window("Select Server"), mLoginData(loginData) { serverListModel = new ServerListModel(); serverList = new ListBox(serverListModel); @@ -91,6 +105,9 @@ ServerSelectDialog::action(const std::string& eventId) { if (eventId == "ok") { okButton->setEnabled(false); + const SERVER_INFO *si = server_info[serverList->getSelected()]; + mLoginData->hostname = iptostring(si->address); + mLoginData->port = si->port; state = CHAR_CONNECT_STATE; } else if (eventId == "cancel") { @@ -98,11 +115,6 @@ ServerSelectDialog::action(const std::string& eventId) } } -SERVER_INFO* ServerSelectDialog::getServerInfo() -{ - return server_info[serverList->getSelected()]; -} - int ServerListModel::getNumberOfElements() { diff --git a/src/gui/char_server.h b/src/gui/char_server.h index ed6e4c14..b4112d75 100644 --- a/src/gui/char_server.h +++ b/src/gui/char_server.h @@ -31,18 +31,8 @@ #include "../guichanfwd.h" -class SERVER_INFO; - -/** - * The list model for the server list. - */ -class ServerListModel : public gcn::ListModel { - public: - virtual ~ServerListModel() {}; - - int getNumberOfElements(); - std::string getElementAt(int i); -}; +class LoginData; +class ServerListModel; /** * The server select dialog. @@ -56,7 +46,7 @@ class ServerSelectDialog : public Window, public gcn::ActionListener { * * @see Window::Window */ - ServerSelectDialog(); + ServerSelectDialog(LoginData *loginData); /** * Destructor. @@ -68,12 +58,8 @@ class ServerSelectDialog : public Window, public gcn::ActionListener { */ void action(const std::string& eventId); - /** - * Returns the index of the selected server - */ - SERVER_INFO* getServerInfo(); - private: + LoginData *mLoginData; ServerListModel *serverListModel; gcn::ListBox *serverList; gcn::Button *okButton; |