From f2a0fe945ac44814b271bf3fb6e9df1464d6ccc5 Mon Sep 17 00:00:00 2001 From: Jared Adams Date: Wed, 8 Apr 2009 07:06:50 -0600 Subject: Make some more file build for both servers Also some cleanup in main.cpp --- src/CMakeLists.txt | 8 +-- src/Makefile.am | 8 +-- src/gui/char_server.cpp | 123 ----------------------------------------- src/gui/char_server.h | 65 ---------------------- src/gui/serverselectdialog.cpp | 123 +++++++++++++++++++++++++++++++++++++++++ src/gui/serverselectdialog.h | 65 ++++++++++++++++++++++ src/main.cpp | 48 ++++------------ src/main.h | 3 - 8 files changed, 208 insertions(+), 235 deletions(-) delete mode 100644 src/gui/char_server.cpp delete mode 100644 src/gui/char_server.h create mode 100644 src/gui/serverselectdialog.cpp create mode 100644 src/gui/serverselectdialog.h (limited to 'src') diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 89c70081..2409bc1c 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -114,8 +114,6 @@ SET(SRCS gui/buy.h gui/buysell.cpp gui/buysell.h - gui/char_select.cpp - gui/char_select.h gui/charcreatedialog.cpp gui/charcreatedialog.h gui/chat.cpp @@ -163,6 +161,8 @@ SET(SRCS gui/npcintegerdialog.h gui/npclistdialog.cpp gui/npclistdialog.h + gui/npcpostdialog.cpp + gui/npcpostdialog.h gui/npcstringdialog.cpp gui/npcstringdialog.h gui/npc_text.cpp @@ -185,6 +185,8 @@ SET(SRCS gui/sdlinput.h gui/sell.cpp gui/sell.h + gui/serverselectdialog.cpp + gui/serverselectdialog.h gui/setup.cpp gui/setup.h gui/setup_audio.cpp @@ -471,8 +473,6 @@ SET(SRCS_TMW gui/guildwindow.h gui/magic.cpp gui/magic.h - gui/npcpostdialog.cpp - gui/npcpostdialog.h gui/quitdialog.cpp gui/quitdialog.h gui/serverdialog.cpp diff --git a/src/Makefile.am b/src/Makefile.am index b8ce31a6..b19c065f 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -118,6 +118,8 @@ tmw_SOURCES = gui/widgets/avatar.cpp \ gui/npcintegerdialog.h \ gui/npclistdialog.cpp \ gui/npclistdialog.h \ + gui/npcpostdialog.cpp \ + gui/npcpostdialog.h \ gui/npcstringdialog.cpp \ gui/npcstringdialog.h \ gui/ok_dialog.cpp \ @@ -138,6 +140,8 @@ tmw_SOURCES = gui/widgets/avatar.cpp \ gui/sdlinput.h \ gui/sell.cpp \ gui/sell.h \ + gui/serverselectdialog.cpp \ + gui/serverselectdialog.h \ gui/setup.cpp \ gui/setup.h \ gui/setup_audio.cpp \ @@ -374,8 +378,6 @@ tmw_SOURCES += \ gui/guildwindow.h \ gui/magic.cpp \ gui/magic.h \ - gui/npcpostdialog.cpp \ - gui/npcpostdialog.h \ gui/quitdialog.cpp \ gui/quitdialog.h \ gui/serverdialog.cpp \ @@ -456,8 +458,6 @@ endif if SERVER_EATHENA tmw_CXXFLAGS += -DEATHENA_SUPPORT tmw_SOURCES += \ - gui/char_server.cpp \ - gui/char_server.h \ gui/skill.cpp \ gui/skill.h \ gui/status.cpp \ diff --git a/src/gui/char_server.cpp b/src/gui/char_server.cpp deleted file mode 100644 index 48f8dedc..00000000 --- a/src/gui/char_server.cpp +++ /dev/null @@ -1,123 +0,0 @@ -/* - * The Mana World - * Copyright (C) 2004 The Mana World Development Team - * - * This file is part of The Mana World. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#include "gui/char_server.h" - -#include "gui/widgets/button.h" -#include "gui/widgets/listbox.h" -#include "gui/widgets/scrollarea.h" - -#include "logindata.h" -#include "main.h" -#include "serverinfo.h" - -#include "utils/gettext.h" -#include "utils/stringutils.h" - -extern SERVER_INFO **server_info; - -/** - * 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, int nextState): - Window(_("Select Server")), - mLoginData(loginData), - mNextState(nextState) -{ - mServerListModel = new ServerListModel; - mServerList = new ListBox(mServerListModel); - ScrollArea *mScrollArea = new ScrollArea(mServerList); - mOkButton = new Button(_("OK"), "ok", this); - Button *mCancelButton = new Button(_("Cancel"), "cancel", this); - - setContentSize(200, 100); - - mCancelButton->setPosition( - 200 - mCancelButton->getWidth() - 5, - 100 - mCancelButton->getHeight() - 5); - mOkButton->setPosition( - mCancelButton->getX() - mOkButton->getWidth() - 5, - 100 - mOkButton->getHeight() - 5); - mScrollArea->setHorizontalScrollPolicy(gcn::ScrollArea::SHOW_NEVER); - mScrollArea->setDimension(gcn::Rectangle( - 5, 5, 200 - 2 * 5, - 100 - 3 * 5 - mCancelButton->getHeight() - - mScrollArea->getFrameSize())); - - mServerList->setActionEventId("ok"); - - //mServerList->addActionListener(this); - - add(mScrollArea); - add(mOkButton); - add(mCancelButton); - - if (n_server == 0) - // Disable Ok button - mOkButton->setEnabled(false); - else - // Select first server - mServerList->setSelected(1); - - center(); - setVisible(true); - mOkButton->requestFocus(); -} - -ServerSelectDialog::~ServerSelectDialog() -{ - delete mServerListModel; -} - -void ServerSelectDialog::action(const gcn::ActionEvent &event) -{ - if (event.getId() == "ok") - { - mOkButton->setEnabled(false); - const SERVER_INFO *si = server_info[mServerList->getSelected()]; - mLoginData->hostname = ipToString(si->address); - mLoginData->port = si->port; - mLoginData->updateHost = si->updateHost; - state = mNextState; - } - else if (event.getId() == "cancel") - state = STATE_LOGIN; -} - -int ServerListModel::getNumberOfElements() -{ - return n_server; -} - -std::string ServerListModel::getElementAt(int i) -{ - const SERVER_INFO *si = server_info[i]; - return si->name + " (" + toString(si->online_users) + ")"; -} diff --git a/src/gui/char_server.h b/src/gui/char_server.h deleted file mode 100644 index b80ad286..00000000 --- a/src/gui/char_server.h +++ /dev/null @@ -1,65 +0,0 @@ -/* - * The Mana World - * Copyright (C) 2004 The Mana World Development Team - * - * This file is part of The Mana World. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#ifndef _CHAR_SEL_SERVER_H -#define _CHAR_SEL_SERVER_H - -#include "gui/widgets/window.h" - -#include -#include - -class LoginData; -class ServerListModel; - -/** - * The server select dialog. - * - * \ingroup Interface - */ -class ServerSelectDialog : public Window, public gcn::ActionListener { - public: - /** - * Constructor - * - * @see Window::Window - */ - ServerSelectDialog(LoginData *loginData, int nextState); - - /** - * Destructor. - */ - ~ServerSelectDialog(); - - /** - * Called when receiving actions from the widgets. - */ - void action(const gcn::ActionEvent &event); - - private: - LoginData *mLoginData; - ServerListModel *mServerListModel; - gcn::ListBox *mServerList; - gcn::Button *mOkButton; - int mNextState; -}; - -#endif diff --git a/src/gui/serverselectdialog.cpp b/src/gui/serverselectdialog.cpp new file mode 100644 index 00000000..bcc756b7 --- /dev/null +++ b/src/gui/serverselectdialog.cpp @@ -0,0 +1,123 @@ +/* + * The Mana World + * Copyright (C) 2004 The Mana World Development Team + * + * This file is part of The Mana World. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include "gui/serverselectdialog.h" + +#include "gui/widgets/button.h" +#include "gui/widgets/listbox.h" +#include "gui/widgets/scrollarea.h" + +#include "logindata.h" +#include "main.h" +#include "serverinfo.h" + +#include "utils/gettext.h" +#include "utils/stringutils.h" + +extern SERVER_INFO **server_info; + +/** + * 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, int nextState): + Window(_("Select Server")), + mLoginData(loginData), + mNextState(nextState) +{ + mServerListModel = new ServerListModel; + mServerList = new ListBox(mServerListModel); + ScrollArea *mScrollArea = new ScrollArea(mServerList); + mOkButton = new Button(_("OK"), "ok", this); + Button *mCancelButton = new Button(_("Cancel"), "cancel", this); + + setContentSize(200, 100); + + mCancelButton->setPosition( + 200 - mCancelButton->getWidth() - 5, + 100 - mCancelButton->getHeight() - 5); + mOkButton->setPosition( + mCancelButton->getX() - mOkButton->getWidth() - 5, + 100 - mOkButton->getHeight() - 5); + mScrollArea->setHorizontalScrollPolicy(gcn::ScrollArea::SHOW_NEVER); + mScrollArea->setDimension(gcn::Rectangle( + 5, 5, 200 - 2 * 5, + 100 - 3 * 5 - mCancelButton->getHeight() - + mScrollArea->getFrameSize())); + + mServerList->setActionEventId("ok"); + + //mServerList->addActionListener(this); + + add(mScrollArea); + add(mOkButton); + add(mCancelButton); + + if (n_server == 0) + // Disable Ok button + mOkButton->setEnabled(false); + else + // Select first server + mServerList->setSelected(1); + + center(); + setVisible(true); + mOkButton->requestFocus(); +} + +ServerSelectDialog::~ServerSelectDialog() +{ + delete mServerListModel; +} + +void ServerSelectDialog::action(const gcn::ActionEvent &event) +{ + if (event.getId() == "ok") + { + mOkButton->setEnabled(false); + const SERVER_INFO *si = server_info[mServerList->getSelected()]; + mLoginData->hostname = ipToString(si->address); + mLoginData->port = si->port; + mLoginData->updateHost = si->updateHost; + state = mNextState; + } + else if (event.getId() == "cancel") + state = STATE_LOGIN; +} + +int ServerListModel::getNumberOfElements() +{ + return n_server; +} + +std::string ServerListModel::getElementAt(int i) +{ + const SERVER_INFO *si = server_info[i]; + return si->name + " (" + toString(si->online_users) + ")"; +} diff --git a/src/gui/serverselectdialog.h b/src/gui/serverselectdialog.h new file mode 100644 index 00000000..b80ad286 --- /dev/null +++ b/src/gui/serverselectdialog.h @@ -0,0 +1,65 @@ +/* + * The Mana World + * Copyright (C) 2004 The Mana World Development Team + * + * This file is part of The Mana World. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#ifndef _CHAR_SEL_SERVER_H +#define _CHAR_SEL_SERVER_H + +#include "gui/widgets/window.h" + +#include +#include + +class LoginData; +class ServerListModel; + +/** + * The server select dialog. + * + * \ingroup Interface + */ +class ServerSelectDialog : public Window, public gcn::ActionListener { + public: + /** + * Constructor + * + * @see Window::Window + */ + ServerSelectDialog(LoginData *loginData, int nextState); + + /** + * Destructor. + */ + ~ServerSelectDialog(); + + /** + * Called when receiving actions from the widgets. + */ + void action(const gcn::ActionEvent &event); + + private: + LoginData *mLoginData; + ServerListModel *mServerListModel; + gcn::ListBox *mServerList; + gcn::Button *mOkButton; + int mNextState; +}; + +#endif diff --git a/src/main.cpp b/src/main.cpp index 800f6b3b..de1ce635 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -44,9 +44,6 @@ #include "gui/widgets/label.h" #include "gui/widgets/progressbar.h" -#ifdef EATHENA_SUPPORT -#include "gui/char_server.h" -#endif #include "gui/char_select.h" #include "gui/gui.h" #include "gui/login.h" @@ -54,6 +51,7 @@ #include "gui/palette.h" #include "gui/register.h" #include "gui/sdlinput.h" +#include "gui/serverselectdialog.h" #include "gui/setup.h" #ifdef TMWSERV_SUPPORT #include "gui/connection.h" @@ -139,19 +137,19 @@ namespace } listener; } -#ifdef TMWSERV_SUPPORT std::string token; //used to store magic_token -extern Net::Connection *gameServerConnection; -extern Net::Connection *chatServerConnection; -extern Net::Connection *accountServerConnection; -#else // Account infos char n_server, n_character; // TODO Anyone knows a good location for this? Or a way to make it non-global? class SERVER_INFO; SERVER_INFO **server_info; + +#ifdef TMWSERV_SUPPORT +extern Net::Connection *gameServerConnection; +extern Net::Connection *chatServerConnection; +extern Net::Connection *accountServerConnection; #endif Graphics *graphics; @@ -167,12 +165,6 @@ Configuration branding; /**< XML branding information reader */ Logger *logger; /**< Log object */ KeyboardConfig keyboard; -/*#ifdef TMWSERV_SUPPORT -Net::Connection *gameServerConnection = 0; -Net::Connection *chatServerConnection = 0; -Net::Connection *accountServerConnection = 0; -#endif*/ - LoginData loginData; LockedArray charInfo(maxSlot + 1); @@ -808,25 +800,6 @@ static void accountRegister(LoginData *loginData) loginData->password, loginData->email); } -static void accountUnRegister(LoginData *loginData) -{ - Net::getLoginHandler()->unregisterAccount(loginData->username, - loginData->password); - -} - -static void accountChangePassword(LoginData *loginData) -{ - Net::getLoginHandler()->changePassword(loginData->username, - loginData->password, - loginData->newPassword); -} - -static void accountChangeEmail(LoginData *loginData) -{ - Net::getLoginHandler()->changeEmail(loginData->newEmail); -} - static void switchCharacter(std::string *passToken) { Net::getLogoutHandler()->reset(); @@ -1291,7 +1264,7 @@ int main(int argc, char *argv[]) case STATE_CHANGEEMAIL_ATTEMPT: logger->log("State: CHANGE EMAIL ATTEMPT"); - accountChangeEmail(&loginData); + Net::getLoginHandler()->changeEmail(loginData.newEmail); break; case STATE_CHANGEEMAIL: @@ -1306,7 +1279,9 @@ int main(int argc, char *argv[]) case STATE_CHANGEPASSWORD_ATTEMPT: logger->log("State: CHANGE PASSWORD ATTEMPT"); - accountChangePassword(&loginData); + Net::getLoginHandler()->changePassword(loginData.username, + loginData.password, + loginData.newPassword); break; case STATE_CHANGEPASSWORD: @@ -1321,7 +1296,8 @@ int main(int argc, char *argv[]) case STATE_UNREGISTER_ATTEMPT: logger->log("State: UNREGISTER ATTEMPT"); - accountUnRegister(&loginData); + Net::getLoginHandler()->unregisterAccount( + loginData.username, loginData.password); break; case STATE_UNREGISTER: diff --git a/src/main.h b/src/main.h index 7f13740c..ca5969d0 100644 --- a/src/main.h +++ b/src/main.h @@ -131,11 +131,8 @@ const short defaultMusicVolume = 60; // Defines the number of usable player slots const short maxSlot = 2; -#ifdef TMWSERV_SUPPORT extern std::string token; -#else extern char n_server, n_character; -#endif extern unsigned char state; extern std::string errorMessage; -- cgit v1.2.3-70-g09d2