diff options
author | Andrei Karas <akaras@inbox.ru> | 2015-08-23 17:09:34 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2015-08-23 17:09:34 +0300 |
commit | 93d55e71b137a43149775ac1283f20acea9a9947 (patch) | |
tree | de78979b0c41bc2e96e16d7fdac9ab41b0c71319 | |
parent | d72a885e0b2c8a2b50a846b5c083fd158078f9c5 (diff) | |
download | mv-93d55e71b137a43149775ac1283f20acea9a9947.tar.gz mv-93d55e71b137a43149775ac1283f20acea9a9947.tar.bz2 mv-93d55e71b137a43149775ac1283f20acea9a9947.tar.xz mv-93d55e71b137a43149775ac1283f20acea9a9947.zip |
Move receive code from adminhandler into separate file.
-rw-r--r-- | src/CMakeLists.txt | 4 | ||||
-rw-r--r-- | src/Makefile.am | 4 | ||||
-rw-r--r-- | src/net/ea/admin.cpp | 44 | ||||
-rw-r--r-- | src/net/ea/admin.h | 41 | ||||
-rw-r--r-- | src/net/ea/adminhandler.cpp | 8 | ||||
-rw-r--r-- | src/net/ea/adminhandler.h | 3 | ||||
-rw-r--r-- | src/net/eathena/admin.cpp | 84 | ||||
-rw-r--r-- | src/net/eathena/admin.h | 36 | ||||
-rw-r--r-- | src/net/eathena/adminhandler.cpp | 60 | ||||
-rw-r--r-- | src/net/eathena/adminhandler.h | 6 | ||||
-rw-r--r-- | src/net/tmwa/adminhandler.cpp | 4 |
11 files changed, 223 insertions, 71 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index a5694f788..6427077e0 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1339,6 +1339,8 @@ SET(DYE_CMD_SRCS ) SET(SRCS_EVOL + net/ea/admin.cpp + net/ea/admin.h net/ea/adminhandler.cpp net/ea/adminhandler.h net/ea/beinghandler.cpp @@ -1512,6 +1514,8 @@ SET(SRCS_EATHENA net/roulettehandler.h net/searchstorehandler.h net/vendinghandler.h + net/eathena/admin.cpp + net/eathena/admin.h net/eathena/adminhandler.cpp net/eathena/adminhandler.h net/eathena/auctionhandler.cpp diff --git a/src/Makefile.am b/src/Makefile.am index aa9192666..4467997b9 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1181,6 +1181,8 @@ manaplus_SOURCES += main.cpp \ net/packetdefine.h \ net/packetlimiter.cpp \ net/packetlimiter.h \ + net/ea/admin.cpp \ + net/ea/admin.h \ net/ea/adminhandler.cpp \ net/ea/adminhandler.h \ net/ea/beinghandler.cpp \ @@ -1358,6 +1360,8 @@ manaplus_SOURCES += gui/windows/bankwindow.cpp \ net/roulettehandler.h \ net/searchstorehandler.h \ net/vendinghandler.h \ + net/eathena/admin.cpp \ + net/eathena/admin.h \ net/eathena/adminhandler.cpp \ net/eathena/adminhandler.h \ net/eathena/auctionhandler.cpp \ diff --git a/src/net/ea/admin.cpp b/src/net/ea/admin.cpp new file mode 100644 index 000000000..fb6973c6e --- /dev/null +++ b/src/net/ea/admin.cpp @@ -0,0 +1,44 @@ +/* + * The ManaPlus Client + * Copyright (C) 2004-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 <http://www.gnu.org/licenses/>. + */ + +#include "net/ea/admin.h" + +#include "notifymanager.h" + +#include "enums/resources/notifytypes.h" + +#include "net/messagein.h" + +#include "debug.h" + +namespace Ea +{ + +void Admin::processKickAck(Net::MessageIn &msg) +{ + if (msg.readInt32("flag") == 0) + NotifyManager::notify(NotifyTypes::KICK_FAIL); + else + NotifyManager::notify(NotifyTypes::KICK_SUCCEED); +} + +} // namespace Ea diff --git a/src/net/ea/admin.h b/src/net/ea/admin.h new file mode 100644 index 000000000..c9beea3cb --- /dev/null +++ b/src/net/ea/admin.h @@ -0,0 +1,41 @@ +/* + * The ManaPlus Client + * Copyright (C) 2004-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 <http://www.gnu.org/licenses/>. + */ + +#ifndef NET_EA_ADMIN_H +#define NET_EA_ADMIN_H + +#include "localconsts.h" + +namespace Net +{ + class MessageIn; +} + +namespace Ea +{ + namespace Admin + { + void processKickAck(Net::MessageIn &msg); + } // namespace Admin +} // namespace Ea + +#endif // NET_EA_ADMIN_H diff --git a/src/net/ea/adminhandler.cpp b/src/net/ea/adminhandler.cpp index 455f9acb2..d73019467 100644 --- a/src/net/ea/adminhandler.cpp +++ b/src/net/ea/adminhandler.cpp @@ -82,12 +82,4 @@ void AdminHandler::createItems(const int id, GENERAL_CHANNEL); } -void AdminHandler::processKickAck(Net::MessageIn &msg) -{ - if (msg.readInt32("flag") == 0) - NotifyManager::notify(NotifyTypes::KICK_FAIL); - else - NotifyManager::notify(NotifyTypes::KICK_SUCCEED); -} - } // namespace Ea diff --git a/src/net/ea/adminhandler.h b/src/net/ea/adminhandler.h index ab7b8c557..bf8ad7b06 100644 --- a/src/net/ea/adminhandler.h +++ b/src/net/ea/adminhandler.h @@ -63,9 +63,6 @@ class AdminHandler notfinal : public Net::AdminHandler void createItems(const int id, const ItemColor color, const int amount) const override final; - - protected: - static void processKickAck(Net::MessageIn &msg); }; } // namespace Ea diff --git a/src/net/eathena/admin.cpp b/src/net/eathena/admin.cpp new file mode 100644 index 000000000..1a8fdd7c3 --- /dev/null +++ b/src/net/eathena/admin.cpp @@ -0,0 +1,84 @@ +/* + * The ManaPlus Client + * 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 <http://www.gnu.org/licenses/>. + */ + +#include "net/eathena/admin.h" + +#include "logger.h" + +#include "being/being.h" + +#include "net/eathena/messageout.h" +#include "net/eathena/protocol.h" + +#include "debug.h" + +namespace EAthena +{ + +void Admin::processAdminGetLoginAck(Net::MessageIn &msg) +{ + UNIMPLIMENTEDPACKET; + msg.readBeingId("account id"); + msg.readString(24, "login"); +} + +void Admin::processSetTileType(Net::MessageIn &msg) +{ + UNIMPLIMENTEDPACKET; + // +++ here need set collision tile for map + msg.readInt16("x"); + msg.readInt16("y"); + msg.readInt16("type"); + msg.readString(16, "map name"); +} + +void Admin::processAccountStats(Net::MessageIn &msg) +{ + UNIMPLIMENTEDPACKET; + // +++ need show in other players stats window, nick in mStatsName + msg.readUInt8("str"); + msg.readUInt8("need str"); + msg.readUInt8("agi"); + msg.readUInt8("need agi"); + msg.readUInt8("vit"); + msg.readUInt8("need vit"); + msg.readUInt8("int"); + msg.readUInt8("need int"); + msg.readUInt8("dex"); + msg.readUInt8("need dex"); + msg.readUInt8("luk"); + msg.readUInt8("need luk"); + msg.readInt16("attack"); + msg.readInt16("refine"); + msg.readInt16("matk max"); + msg.readInt16("matk min"); + msg.readInt16("item def"); + msg.readInt16("plus def"); + msg.readInt16("mdef"); + msg.readInt16("plus mdef"); + msg.readInt16("hit"); + msg.readInt16("flee"); + msg.readInt16("flee2/10"); + msg.readInt16("cri/10"); + msg.readInt16("speed"); + msg.readInt16("zero"); +} + +} // namespace EAthena diff --git a/src/net/eathena/admin.h b/src/net/eathena/admin.h new file mode 100644 index 000000000..85fc8e546 --- /dev/null +++ b/src/net/eathena/admin.h @@ -0,0 +1,36 @@ +/* + * The ManaPlus Client + * 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 <http://www.gnu.org/licenses/>. + */ + +#ifndef NET_EATHENA_ADMIN_H +#define NET_EATHENA_ADMIN_H + +#include "net/eathena/messagehandler.h" + +namespace EAthena +{ + namespace Admin + { + void processAdminGetLoginAck(Net::MessageIn &msg); + void processSetTileType(Net::MessageIn &msg); + void processAccountStats(Net::MessageIn &msg); + } // namespace Admin +} // namespace EAthena + +#endif // NET_EATHENA_ADMIN_H diff --git a/src/net/eathena/adminhandler.cpp b/src/net/eathena/adminhandler.cpp index 92e158a8e..e44d66c60 100644 --- a/src/net/eathena/adminhandler.cpp +++ b/src/net/eathena/adminhandler.cpp @@ -26,6 +26,9 @@ #include "being/being.h" +#include "net/ea/admin.h" + +#include "net/eathena/admin.h" #include "net/eathena/messageout.h" #include "net/eathena/protocol.h" @@ -59,16 +62,16 @@ void AdminHandler::handleMessage(Net::MessageIn &msg) switch (msg.getId()) { case SMSG_ADMIN_KICK_ACK: - processKickAck(msg); + Ea::Admin::processKickAck(msg); break; case SMSG_ADMIN_GET_LOGIN_ACK: - processAdminGetLoginAck(msg); + Admin::processAdminGetLoginAck(msg); break; case SMSG_ADMIN_SET_TILE_TYPE: - processSetTileType(msg); + Admin::processSetTileType(msg); break; case SMSG_ADMIN_ACCOUNT_STATS: - processAccountStats(msg); + Admin::processAccountStats(msg); break; default: break; @@ -184,23 +187,6 @@ void AdminHandler::unequipAll(const Being *const being) const outMsg.writeBeingId(being->getId(), "account id"); } -void AdminHandler::processAdminGetLoginAck(Net::MessageIn &msg) -{ - UNIMPLIMENTEDPACKET; - msg.readBeingId("account id"); - msg.readString(24, "login"); -} - -void AdminHandler::processSetTileType(Net::MessageIn &msg) -{ - UNIMPLIMENTEDPACKET; - // +++ here need set collision tile for map - msg.readInt16("x"); - msg.readInt16("y"); - msg.readInt16("type"); - msg.readString(16, "map name"); -} - void AdminHandler::requestStats(const std::string &name) { mStatsName = name; @@ -208,36 +194,4 @@ void AdminHandler::requestStats(const std::string &name) outMsg.writeString(name, 24, "name"); } -void AdminHandler::processAccountStats(Net::MessageIn &msg) -{ - UNIMPLIMENTEDPACKET; - // +++ need show in other players stats window, nick in mStatsName - msg.readUInt8("str"); - msg.readUInt8("need str"); - msg.readUInt8("agi"); - msg.readUInt8("need agi"); - msg.readUInt8("vit"); - msg.readUInt8("need vit"); - msg.readUInt8("int"); - msg.readUInt8("need int"); - msg.readUInt8("dex"); - msg.readUInt8("need dex"); - msg.readUInt8("luk"); - msg.readUInt8("need luk"); - msg.readInt16("attack"); - msg.readInt16("refine"); - msg.readInt16("matk max"); - msg.readInt16("matk min"); - msg.readInt16("item def"); - msg.readInt16("plus def"); - msg.readInt16("mdef"); - msg.readInt16("plus mdef"); - msg.readInt16("hit"); - msg.readInt16("flee"); - msg.readInt16("flee2/10"); - msg.readInt16("cri/10"); - msg.readInt16("speed"); - msg.readInt16("zero"); -} - } // namespace EAthena diff --git a/src/net/eathena/adminhandler.h b/src/net/eathena/adminhandler.h index e1e76f75f..97571f05b 100644 --- a/src/net/eathena/adminhandler.h +++ b/src/net/eathena/adminhandler.h @@ -76,12 +76,6 @@ class AdminHandler final : public MessageHandler, public Ea::AdminHandler void requestStats(const std::string &name) override final; protected: - static void processAdminGetLoginAck(Net::MessageIn &msg); - - static void processSetTileType(Net::MessageIn &msg); - - static void processAccountStats(Net::MessageIn &msg); - static std::string mStatsName; }; diff --git a/src/net/tmwa/adminhandler.cpp b/src/net/tmwa/adminhandler.cpp index 64638ad46..1d378a77b 100644 --- a/src/net/tmwa/adminhandler.cpp +++ b/src/net/tmwa/adminhandler.cpp @@ -26,6 +26,8 @@ #include "net/chathandler.h" +#include "net/ea/admin.h" + #include "net/tmwa/messageout.h" #include "net/tmwa/protocol.h" @@ -57,7 +59,7 @@ void AdminHandler::handleMessage(Net::MessageIn &msg) switch (msg.getId()) { case SMSG_ADMIN_KICK_ACK: - processKickAck(msg); + Ea::Admin::processKickAck(msg); break; default: |