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 /src/net/eathena | |
parent | d72a885e0b2c8a2b50a846b5c083fd158078f9c5 (diff) | |
download | manaplus-93d55e71b137a43149775ac1283f20acea9a9947.tar.gz manaplus-93d55e71b137a43149775ac1283f20acea9a9947.tar.bz2 manaplus-93d55e71b137a43149775ac1283f20acea9a9947.tar.xz manaplus-93d55e71b137a43149775ac1283f20acea9a9947.zip |
Move receive code from adminhandler into separate file.
Diffstat (limited to 'src/net/eathena')
-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 |
4 files changed, 127 insertions, 59 deletions
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; }; |