From da649050e6a92a199e1ba6ec09f456b184e51809 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Wed, 26 Aug 2015 16:44:50 +0300 Subject: Move receive code from generalhandler into separate file. --- src/CMakeLists.txt | 4 + src/Makefile.am | 4 + src/net/eathena/generalhandler.cpp | 119 +---------------------- src/net/eathena/generalhandler.h | 4 - src/net/eathena/generalrecv.cpp | 193 +++++++++++++++++++++++++++++++++++++ src/net/eathena/generalrecv.h | 39 ++++++++ src/net/tmwa/generalhandler.cpp | 51 +--------- src/net/tmwa/generalhandler.h | 2 - src/net/tmwa/generalrecv.cpp | 132 +++++++++++++++++++++++++ src/net/tmwa/generalrecv.h | 38 ++++++++ 10 files changed, 417 insertions(+), 169 deletions(-) create mode 100644 src/net/eathena/generalrecv.cpp create mode 100644 src/net/eathena/generalrecv.h create mode 100644 src/net/tmwa/generalrecv.cpp create mode 100644 src/net/tmwa/generalrecv.h (limited to 'src') diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 2615d52ff..926b7512b 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1417,6 +1417,8 @@ SET(SRCS_TMWA net/tmwa/gamerecv.h net/tmwa/generalhandler.cpp net/tmwa/generalhandler.h + net/tmwa/generalrecv.cpp + net/tmwa/generalrecv.h net/tmwa/guildhandler.cpp net/tmwa/guildhandler.h net/tmwa/guildmanager.cpp @@ -1593,6 +1595,8 @@ SET(SRCS_EATHENA net/eathena/gamerecv.h net/eathena/generalhandler.cpp net/eathena/generalhandler.h + net/eathena/generalrecv.cpp + net/eathena/generalrecv.h net/eathena/guildhandler.cpp net/eathena/guildhandler.h net/eathena/homunculushandler.cpp diff --git a/src/Makefile.am b/src/Makefile.am index 99e1443cb..a73b4a464 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1260,6 +1260,8 @@ manaplus_SOURCES += \ net/tmwa/gamerecv.h \ net/tmwa/generalhandler.cpp \ net/tmwa/generalhandler.h \ + net/tmwa/generalrecv.cpp \ + net/tmwa/generalrecv.h \ net/tmwa/guildhandler.cpp \ net/tmwa/guildhandler.h \ net/tmwa/guildmanager.cpp \ @@ -1439,6 +1441,8 @@ manaplus_SOURCES += gui/windows/bankwindow.cpp \ net/eathena/gamerecv.h \ net/eathena/generalhandler.cpp \ net/eathena/generalhandler.h \ + net/eathena/generalrecv.cpp \ + net/eathena/generalrecv.h \ net/eathena/guildhandler.cpp \ net/eathena/guildhandler.h \ net/eathena/homunculushandler.cpp \ diff --git a/src/net/eathena/generalhandler.cpp b/src/net/eathena/generalhandler.cpp index 2f404ce76..d81a05d9d 100644 --- a/src/net/eathena/generalhandler.cpp +++ b/src/net/eathena/generalhandler.cpp @@ -32,6 +32,8 @@ #include "gui/widgets/tabs/chat/guildtab.h" #include "gui/widgets/tabs/chat/partytab.h" +#include "net/eathena/generalrecv.h" + #include "net/eathena/adminhandler.h" #include "net/eathena/auctionhandler.h" #include "net/eathena/bankhandler.h" @@ -79,9 +81,6 @@ extern Net::GeneralHandler *generalHandler; namespace EAthena { -ServerInfo charServer; -ServerInfo mapServer; - GeneralHandler::GeneralHandler() : MessageHandler(), mAdminHandler(new AdminHandler), @@ -149,11 +148,11 @@ void GeneralHandler::handleMessage(Net::MessageIn &msg) switch (msg.getId()) { case SMSG_CONNECTION_PROBLEM: - processConnectionProblem(msg); + GeneralRecv::processConnectionProblem(msg); break; case SMSG_MAP_NOT_FOUND: - processMapNotFound(msg); + GeneralRecv::processMapNotFound(msg); break; default: @@ -161,116 +160,6 @@ void GeneralHandler::handleMessage(Net::MessageIn &msg) } } -void GeneralHandler::processConnectionProblem(Net::MessageIn &msg) -{ - const uint8_t code = msg.readUInt8("flag"); - logger->log("Connection problem: %u", static_cast(code)); - - switch (code) - { - case 0: - errorMessage = _("Authentication failed."); - break; - case 1: - errorMessage = _("No servers available."); - break; - case 2: - if (client->getState() == STATE_GAME) - { - errorMessage = _("Someone else is trying to use " - "this account."); - } - else - { - errorMessage = _("This account is already logged in."); - } - break; - case 3: - errorMessage = _("Speed hack detected."); - break; - case 4: - errorMessage = _("Server full."); - break; - case 5: - errorMessage = _("Sorry, you are underaged."); - break; - case 8: - errorMessage = _("Duplicated login."); - break; - case 9: - errorMessage = _("To many connections from same ip."); - break; - case 10: - errorMessage = _("Not paid for this time."); - break; - case 11: - errorMessage = _("Pay suspended."); - break; - case 12: - errorMessage = _("Pay changed."); - break; - case 13: - errorMessage = _("Pay wrong ip."); - break; - case 14: - errorMessage = _("Pay game room."); - break; - case 15: - errorMessage = _("Disconnect forced by GM."); - break; - case 16: - case 17: - errorMessage = _("Ban japan refuse."); - break; - case 18: - errorMessage = _("Remained other account."); - break; - case 100: - errorMessage = _("Ip unfair."); - break; - case 101: - errorMessage = _("Ip count all."); - break; - case 102: - errorMessage = _("Ip count."); - break; - case 103: - case 104: - errorMessage = _("Memory."); - break; - case 105: - errorMessage = _("Han valid."); - break; - case 106: - errorMessage = _("Ip limited access."); - break; - case 107: - errorMessage = _("Over characters list."); - break; - case 108: - errorMessage = _("Ip blocked."); - break; - case 109: - errorMessage = _("Invalid password count."); - break; - case 110: - errorMessage = _("Not allowed race."); - break; - default: - errorMessage = _("Unknown connection error."); - break; - } - client->setState(STATE_ERROR); -} - -void GeneralHandler::processMapNotFound(Net::MessageIn &msg) -{ - const int sz = msg.readInt16("len") - 4; - msg.readString(sz, "map name?"); - errorMessage = _("Map not found"); - client->setState(STATE_ERROR); -} - void GeneralHandler::load() { (new Network)->registerHandler(this); diff --git a/src/net/eathena/generalhandler.h b/src/net/eathena/generalhandler.h index c2cb44787..0a7089c5d 100644 --- a/src/net/eathena/generalhandler.h +++ b/src/net/eathena/generalhandler.h @@ -63,10 +63,6 @@ class GeneralHandler final : public MessageHandler, void gameEnded() const override final; protected: - static void processConnectionProblem(Net::MessageIn &msg); - - static void processMapNotFound(Net::MessageIn &msg); - MessageHandlerPtr mAdminHandler; MessageHandlerPtr mBeingHandler; MessageHandlerPtr mBuySellHandler; diff --git a/src/net/eathena/generalrecv.cpp b/src/net/eathena/generalrecv.cpp new file mode 100644 index 000000000..bdee78d7d --- /dev/null +++ b/src/net/eathena/generalrecv.cpp @@ -0,0 +1,193 @@ +/* + * The ManaPlus Client + * Copyright (C) 2009 The Mana World Development Team + * Copyright (C) 2009-2010 The Mana Developers + * Copyright (C) 2011-2015 The ManaPlus Developers + * + * This file is part of The ManaPlus Client. + * + * 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, see . + */ + +#include "net/eathena/generalrecv.h" + +#include "client.h" +#include "configuration.h" + +#include "gui/windows/skilldialog.h" +#include "gui/windows/socialwindow.h" +#include "gui/windows/statuswindow.h" + +#include "gui/widgets/tabs/chat/guildtab.h" +#include "gui/widgets/tabs/chat/partytab.h" + +#include "net/eathena/adminhandler.h" +#include "net/eathena/auctionhandler.h" +#include "net/eathena/bankhandler.h" +#include "net/eathena/beinghandler.h" +#include "net/eathena/buyingstorehandler.h" +#include "net/eathena/buysellhandler.h" +#include "net/eathena/cashshophandler.h" +#include "net/eathena/chathandler.h" +#include "net/eathena/charserverhandler.h" +#include "net/eathena/elementalhandler.h" +#include "net/eathena/familyhandler.h" +#include "net/eathena/friendshandler.h" +#include "net/eathena/gamehandler.h" +#include "net/eathena/guildhandler.h" +#include "net/eathena/homunculushandler.h" +#include "net/eathena/inventoryhandler.h" +#include "net/eathena/itemhandler.h" +#include "net/eathena/loginhandler.h" +#include "net/eathena/mailhandler.h" +#include "net/eathena/markethandler.h" +#include "net/eathena/mercenaryhandler.h" +#include "net/eathena/network.h" +#include "net/eathena/npchandler.h" +#include "net/eathena/partyhandler.h" +#include "net/eathena/pethandler.h" +#include "net/eathena/playerhandler.h" +#include "net/eathena/protocol.h" +#include "net/eathena/roulettehandler.h" +#include "net/eathena/searchstorehandler.h" +#include "net/eathena/serverfeatures.h" +#include "net/eathena/tradehandler.h" +#include "net/eathena/skillhandler.h" +#include "net/eathena/questhandler.h" +#include "net/eathena/vendinghandler.h" + +#include "resources/db/itemdbstat.h" + +#include "utils/delete2.h" +#include "utils/gettext.h" + +#include "debug.h" + +namespace EAthena +{ + +ServerInfo charServer; +ServerInfo mapServer; + +void GeneralRecv::processConnectionProblem(Net::MessageIn &msg) +{ + const uint8_t code = msg.readUInt8("flag"); + logger->log("Connection problem: %u", static_cast(code)); + + switch (code) + { + case 0: + errorMessage = _("Authentication failed."); + break; + case 1: + errorMessage = _("No servers available."); + break; + case 2: + if (client->getState() == STATE_GAME) + { + errorMessage = _("Someone else is trying to use " + "this account."); + } + else + { + errorMessage = _("This account is already logged in."); + } + break; + case 3: + errorMessage = _("Speed hack detected."); + break; + case 4: + errorMessage = _("Server full."); + break; + case 5: + errorMessage = _("Sorry, you are underaged."); + break; + case 8: + errorMessage = _("Duplicated login."); + break; + case 9: + errorMessage = _("To many connections from same ip."); + break; + case 10: + errorMessage = _("Not paid for this time."); + break; + case 11: + errorMessage = _("Pay suspended."); + break; + case 12: + errorMessage = _("Pay changed."); + break; + case 13: + errorMessage = _("Pay wrong ip."); + break; + case 14: + errorMessage = _("Pay game room."); + break; + case 15: + errorMessage = _("Disconnect forced by GM."); + break; + case 16: + case 17: + errorMessage = _("Ban japan refuse."); + break; + case 18: + errorMessage = _("Remained other account."); + break; + case 100: + errorMessage = _("Ip unfair."); + break; + case 101: + errorMessage = _("Ip count all."); + break; + case 102: + errorMessage = _("Ip count."); + break; + case 103: + case 104: + errorMessage = _("Memory."); + break; + case 105: + errorMessage = _("Han valid."); + break; + case 106: + errorMessage = _("Ip limited access."); + break; + case 107: + errorMessage = _("Over characters list."); + break; + case 108: + errorMessage = _("Ip blocked."); + break; + case 109: + errorMessage = _("Invalid password count."); + break; + case 110: + errorMessage = _("Not allowed race."); + break; + default: + errorMessage = _("Unknown connection error."); + break; + } + client->setState(STATE_ERROR); +} + +void GeneralRecv::processMapNotFound(Net::MessageIn &msg) +{ + const int sz = msg.readInt16("len") - 4; + msg.readString(sz, "map name?"); + errorMessage = _("Map not found"); + client->setState(STATE_ERROR); +} + +} // namespace EAthena diff --git a/src/net/eathena/generalrecv.h b/src/net/eathena/generalrecv.h new file mode 100644 index 000000000..d18c81a09 --- /dev/null +++ b/src/net/eathena/generalrecv.h @@ -0,0 +1,39 @@ +/* + * The ManaPlus Client + * Copyright (C) 2009 The Mana World Development Team + * Copyright (C) 2009-2010 The Mana Developers + * Copyright (C) 2011-2015 The ManaPlus Developers + * + * This file is part of The ManaPlus Client. + * + * 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, see . + */ + +#ifndef NET_EATHENA_GENERALRECV_H +#define NET_EATHENA_GENERALRECV_H + +#include "net/generalhandler.h" + +#include "net/eathena/messagehandler.h" + +namespace EAthena +{ + namespace GeneralRecv + { + void processConnectionProblem(Net::MessageIn &msg); + void processMapNotFound(Net::MessageIn &msg); + } // namespace GeneralRecv +} // namespace EAthena + +#endif // NET_EATHENA_GENERALRECV_H diff --git a/src/net/tmwa/generalhandler.cpp b/src/net/tmwa/generalhandler.cpp index 8c173f248..4f03f490e 100644 --- a/src/net/tmwa/generalhandler.cpp +++ b/src/net/tmwa/generalhandler.cpp @@ -32,6 +32,8 @@ #include "gui/widgets/tabs/chat/guildtab.h" #include "gui/widgets/tabs/chat/partytab.h" +#include "net/tmwa/generalrecv.h" + #include "net/tmwa/adminhandler.h" #include "net/tmwa/beinghandler.h" #include "net/tmwa/buysellhandler.h" @@ -84,9 +86,6 @@ extern Net::GeneralHandler *generalHandler; namespace TmwAthena { -ServerInfo charServer; -ServerInfo mapServer; - GeneralHandler::GeneralHandler() : MessageHandler(), mAdminHandler(new AdminHandler), @@ -165,7 +164,7 @@ void GeneralHandler::handleMessage(Net::MessageIn &msg) switch (msg.getId()) { case SMSG_CONNECTION_PROBLEM: - processConnectionProblem(msg); + GeneralRecv::processConnectionProblem(msg); break; default: @@ -174,50 +173,6 @@ void GeneralHandler::handleMessage(Net::MessageIn &msg) BLOCK_END("GeneralHandler::handleMessage") } -void GeneralHandler::processConnectionProblem(Net::MessageIn &msg) -{ - const uint8_t code = msg.readUInt8("flag"); - logger->log("Connection problem: %u", static_cast(code)); - - switch (code) - { - case 0: - // TRANSLATORS: error message - errorMessage = _("Authentication failed."); - break; - case 1: - // TRANSLATORS: error message - errorMessage = _("No servers available."); - break; - case 2: - if (client->getState() == STATE_GAME) - { - // TRANSLATORS: error message - errorMessage = _("Someone else is trying to use this " - "account."); - } - else - { - // TRANSLATORS: error message - errorMessage = _("This account is already logged in."); - } - break; - case 3: - // TRANSLATORS: error message - errorMessage = _("Speed hack detected."); - break; - case 8: - // TRANSLATORS: error message - errorMessage = _("Duplicated login."); - break; - default: - // TRANSLATORS: error message - errorMessage = _("Unknown connection error."); - break; - } - client->setState(STATE_ERROR); -} - void GeneralHandler::load() { (new Network)->registerHandler(this); diff --git a/src/net/tmwa/generalhandler.h b/src/net/tmwa/generalhandler.h index 118d6dc4d..66aea3869 100644 --- a/src/net/tmwa/generalhandler.h +++ b/src/net/tmwa/generalhandler.h @@ -63,8 +63,6 @@ class GeneralHandler final : public MessageHandler, void gameEnded() const override final; protected: - static void processConnectionProblem(Net::MessageIn &msg); - MessageHandlerPtr mAdminHandler; MessageHandlerPtr mBeingHandler; MessageHandlerPtr mBuySellHandler; diff --git a/src/net/tmwa/generalrecv.cpp b/src/net/tmwa/generalrecv.cpp new file mode 100644 index 000000000..bf84accb3 --- /dev/null +++ b/src/net/tmwa/generalrecv.cpp @@ -0,0 +1,132 @@ +/* + * The ManaPlus Client + * Copyright (C) 2009 The Mana World Development Team + * Copyright (C) 2009-2010 The Mana Developers + * Copyright (C) 2011-2015 The ManaPlus Developers + * + * This file is part of The ManaPlus Client. + * + * 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, see . + */ + +#include "net/tmwa/generalrecv.h" + +#include "client.h" +#include "configuration.h" + +#include "gui/windows/skilldialog.h" +#include "gui/windows/socialwindow.h" +#include "gui/windows/statuswindow.h" + +#include "gui/widgets/tabs/chat/guildtab.h" +#include "gui/widgets/tabs/chat/partytab.h" + +#include "net/tmwa/adminhandler.h" +#include "net/tmwa/beinghandler.h" +#include "net/tmwa/buysellhandler.h" +#include "net/tmwa/chathandler.h" +#include "net/tmwa/charserverhandler.h" +#include "net/tmwa/gamehandler.h" +#include "net/tmwa/guildhandler.h" +#include "net/tmwa/inventoryhandler.h" +#include "net/tmwa/itemhandler.h" +#include "net/tmwa/loginhandler.h" +#include "net/tmwa/network.h" +#include "net/tmwa/npchandler.h" +#include "net/tmwa/partyhandler.h" +#include "net/tmwa/pethandler.h" +#include "net/tmwa/playerhandler.h" +#include "net/tmwa/protocol.h" +#include "net/tmwa/serverfeatures.h" +#include "net/tmwa/tradehandler.h" +#include "net/tmwa/skillhandler.h" +#include "net/tmwa/questhandler.h" + +#ifdef EATHENA_SUPPORT +#include "net/tmwa/auctionhandler.h" +#include "net/tmwa/bankhandler.h" +#include "net/tmwa/battlegroundhandler.h" +#include "net/tmwa/buyingstorehandler.h" +#include "net/tmwa/cashshophandler.h" +#include "net/tmwa/elementalhandler.h" +#include "net/tmwa/familyhandler.h" +#include "net/tmwa/friendshandler.h" +#include "net/tmwa/homunculushandler.h" +#include "net/tmwa/mailhandler.h" +#include "net/tmwa/maphandler.h" +#include "net/tmwa/markethandler.h" +#include "net/tmwa/mercenaryhandler.h" +#include "net/tmwa/roulettehandler.h" +#include "net/tmwa/searchstorehandler.h" +#include "net/tmwa/vendinghandler.h" +#endif + +#include "resources/db/itemdbstat.h" + +#include "utils/delete2.h" +#include "utils/gettext.h" + +#include "debug.h" + +namespace TmwAthena +{ + +ServerInfo charServer; +ServerInfo mapServer; + +void GeneralRecv::processConnectionProblem(Net::MessageIn &msg) +{ + const uint8_t code = msg.readUInt8("flag"); + logger->log("Connection problem: %u", static_cast(code)); + + switch (code) + { + case 0: + // TRANSLATORS: error message + errorMessage = _("Authentication failed."); + break; + case 1: + // TRANSLATORS: error message + errorMessage = _("No servers available."); + break; + case 2: + if (client->getState() == STATE_GAME) + { + // TRANSLATORS: error message + errorMessage = _("Someone else is trying to use this " + "account."); + } + else + { + // TRANSLATORS: error message + errorMessage = _("This account is already logged in."); + } + break; + case 3: + // TRANSLATORS: error message + errorMessage = _("Speed hack detected."); + break; + case 8: + // TRANSLATORS: error message + errorMessage = _("Duplicated login."); + break; + default: + // TRANSLATORS: error message + errorMessage = _("Unknown connection error."); + break; + } + client->setState(STATE_ERROR); +} + +} // namespace TmwAthena diff --git a/src/net/tmwa/generalrecv.h b/src/net/tmwa/generalrecv.h new file mode 100644 index 000000000..769fc9dfd --- /dev/null +++ b/src/net/tmwa/generalrecv.h @@ -0,0 +1,38 @@ +/* + * The ManaPlus Client + * Copyright (C) 2009 The Mana World Development Team + * Copyright (C) 2009-2010 The Mana Developers + * Copyright (C) 2011-2015 The ManaPlus Developers + * + * This file is part of The ManaPlus Client. + * + * 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, see . + */ + +#ifndef NET_TMWA_GENERALRECV_H +#define NET_TMWA_GENERALRECV_H + +#include "net/generalhandler.h" + +#include "net/tmwa/messagehandler.h" + +namespace TmwAthena +{ + namespace GeneralRecv + { + void processConnectionProblem(Net::MessageIn &msg); + } // namespace GeneralRecv +} // namespace TmwAthena + +#endif // NET_TMWA_GENERALRECV_H -- cgit v1.2.3-70-g09d2